首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >InstantAvatar:从 60 秒单目视频中学习数字人化身

InstantAvatar:从 60 秒单目视频中学习数字人化身

作者头像
用户1324186
发布2023-02-03 16:46:37
发布2023-02-03 16:46:37
2.2K0
举报
文章被收录于专栏:媒矿工厂媒矿工厂

来源:Arxiv 论文作者:Tianjian Jiang, Xu Chen等 论文链接:https://arxiv.org/pdf/2212.10550.pdf 项目主页:https://tijiang13.github.io/InstantAvatar/ 内容整理:王炅昊 本论文提出了 InstantAvatar,一种针对单目视频的高效生成数字人的方法,与现有方法相比,InstantAvatar 的收敛速度提高了 130 倍,并且可以在几分钟而不是几小时内完成训练。它实现了可比甚至更好的重建质量和新颖的姿势合成结果。InstantAvatar 可以在短短 10 秒的训练时间内产生可接受的视觉质量。

目录

  • 摘要
  • 方法
    • 整体流程
    • 规范空间的神经辐射场
    • 关节运动辐射场(Articulating Radiance Fields)
    • 快速求根
    • 针对动态目标的空白空间跳跃
    • 渲染过程
    • 损失函数
  • 实验结果
    • 客观指标
    • 主观效果

摘要

创建高保真数字人类对于许多应用都很重要,包括全息投影、AR/VR、3D 图形学和新兴的元宇宙等概念。目前获取个性化头像是一个复杂的过程,通常需要使用校准的多摄像头系统,并产生大量的计算成本。在本文中,作者着手构建一个仅从单眼视频学习 3D 虚拟人的系统,该系统足够轻便,可以广泛部署,并且速度足够快,可以实现步行和使用场景。

在本文中,作者通过贡献 InstantAvatar 向单目数字人重建的现实应用迈出了重要一步,InstantAvatar 是一种可以在几秒钟内从单眼视频中重建人类化身的系统,并且可以以交互速率对这些化身进行动画处理和渲染。为了实现这种效率,作者提出了一个精心设计和设计的系统,该系统利用新兴的神经场加速结构,并结合用于动态场景的高效空白空间跳跃策略。

与现有方法相比,InstantAvatar 的收敛速度提高了 130 倍,并且可以在几分钟而不是几小时内完成训练。它实现了可比甚至更好的重建质量和新颖的姿势合成结果。当给定相同的时间预算时,作者的方法明显优于 SoTA 方法。InstantAvatar 可以在短短 10 秒的训练时间内产生可接受的视觉质量。

方法

整体流程

本文提出的整体架构如图,主要分为几个部分。

对于每一帧,作者沿着目标姿态空间中的光线采样点。然后,作者将这些点转换到归一化空间(Normalized Space),在该空间中作者移除了人的全局旋转方向和平移。在这个归一化空间中,作者使用占用网格(Occupancy Grid)过滤空白空间中的点。其余点使用关节模块变形到规范空间(Canonical Space),然后输入规范空间的神经辐射场,以获取颜色和密度。

规范空间的神经辐射场

作者使用规范空间的神经辐射场

\mathbf{f}_{\sigma_f}

,在规范空间中建模人体几何以及外观信息,具体如下所示:

\begin{aligned} \mathbf{f}_{\sigma_f}: \mathbb{R}^3 & \rightarrow \mathbb{R}^{+}, \mathbb{R}^3 \\ \mathbf{x} & \mapsto \sigma, c \end{aligned}

作者使用 Instant-NGP 来参数化

\mathbf{f}_{\sigma_f}

,它通过使用哈希表存储不同粗度尺度的特征网格来实现快速的训练和推理速度。为了预测空间中查询点的纹理和几何属性,他们读取相邻网格点处的特征并对其进行三线性插值,然后在不同级别级联插值得到的特征。连接后的特征最终使用浅层的 MLP 进行解码,获得最终的rgb和密度值。

关节运动辐射场(Articulating Radiance Fields)

要创建可运动的动态数字人,并从不同姿态的图像中学习,作者需要在目标姿势中生成可变型的辐射场。构成的辐射场定义为

\mathbf{f}_{\sigma_f}^{\prime}

\begin{aligned} \mathbf{f}_{\sigma_f}^{\prime}: \mathbb{R}^3 & \rightarrow \mathbb{R}^{+}, \mathbb{R}^3 \\ \mathbf{x}^{\prime} & \mapsto \sigma, c, \end{aligned}

该辐射场输出在目标姿态空间下的色彩和密度。为了对关节运动进行建模,作者采用了一个规范空间下的蒙皮权重场(Skinning Weight Field),如下所示:

\begin{aligned} \mathbf{w}_{\sigma_w}: \mathbb{R}^3 & \rightarrow \mathbb{R}^{n_b} \\ \mathbf{x} & \mapsto w_1, \ldots, w_{n_b} \end{aligned}

其中,

\sigma_w

为该场的参数,

n_b

为骨骼的段数。根据骨骼蒙皮公式,在规范空间中的点

\mathbf{x}

转换到目标姿态空间中的点

\mathbf{x}^{\prime}

所使用的线性混合蒙皮公式为:

\mathbf{x}^{\prime}=\sum_{i=1}^{n_b} w_i \mathbf{B}_i \mathbf{x}

反而言之,目标姿态空间中点

\mathbf{x}^{\prime}

,在规范空间中对应点

\mathbf{x}^*

的位置,需要通过上述公式的反过程。这通常需要一个求根的计算,这个计算需要迭代的通过上述公式计算损失并且进行梯度反传,从而优化规范求解出的规范空间中结果。

快速求根

基于体素表示蒙皮权重场

为了节约计算成本,作者使用了一个最新的快速求解方式Fast-SNARF,它将蒙皮权重场改为一个低分辨率的体素网格表示。作者方法的核心是在 SNARF 的每个寻根迭代中将昂贵的计算(包括 MLP 评估和 LBS 计算)分解到预计算阶段。

原本的SNARF 的主要速度瓶颈在于使用 Broyden 方法计算的每次迭代中。计算它 很耗时,因为它涉及查询蒙皮权重,这些权重是通过 SNARF 中的 MLP 参数化的,随后还需要计算线性混合蒙皮的前向传播。

作者注意到,蒙皮权重场相对连续,并不包含高频细节。因此,作者使用低分辨率体素网格

\left\{\mathbf{w}_v\right\}

重新参数化蒙皮权重场,为每一个格点位置

\mathbf{x}_v

定义了蒙皮权重

\mathbf{w}_v

, 然后通过三线性插值获得空间中任何非网格对齐点的蒙皮权重。作者发现, 64 × 64 × 16 的网格分辨率足以描述所有实验中的蒙皮权重。其总体过程如下图所示:

预计算线性混合蒙皮

在每次根查找迭代时计算线性混合蒙皮也会影响速度。为了进一步提高计算效率,作者注意到基于显式体素的蒙皮权重表示

\left\{\mathbf{w}_v\right\}

,允许作者计算给定当前身体姿势的网格点

\left\{\mathbf{T}_v\right\}

的线性混合蒙皮变换:

\mathbf{T}_v=\sum_{i=1}^{n_b} w_{v, i} \cdot \boldsymbol{B}_i .

然后,在求根期间,可以通过在

\left\{\mathbf{T}_v\right\}

中对相邻变换进行三线性插值来确定任何规范点

\mathbf{T}(\mathbf{x})

所需的变换。因此,LBS 只需要为一小组网格点,而不是根查找过程中的所有查询点运行。

针对动态目标的空白空间跳跃

作者注意到,由于 3D 人体肢体的铰接结构,人体周围的 3D 边界框由空白空间主导。这会导致在渲染过程中产生大量冗余样本查询,从而显着降低渲染速度。对于刚性物体,通过缓存粗糙的占用网格,并在未占用的网格单元中跳过样本来消除此问题。然而,对于动态对象,空白空间的确切位置在不同的帧中有所不同,具体取决于姿势。

推理阶段

在推理时,对于每个输入身体姿势,作者在姿势空间中的 64 × 64 × 64 网格上采样点,并从姿势辐射场查询它们的密度。然后作者将这些密度阈值化为二进制占用值。为了移除由于空间分辨率低而被错误标记为空的单元格,作者扩大了占据的区域以完全覆盖主体。由于此网格的低分辨率和渲染图像所需的大量查询,构建此类网格的开销占用网格可以忽略不计。

在体渲染过程中,对于未被占用的单元格内的点样本,作者直接将它们的密度设置为零,而不查询姿态辐射场。这将不必要的计算减少到最低限度,从而提高了推理速度。

训练阶段

然而,在训练期间,在每次训练迭代中构建这样一个占用网格的开销不再是微不足道的。为了避免这种开销,作者通过记录每个单独帧中占用区域的并集,为整个序列构建了一个占用网格。具体来说,作者在训练开始时构建一个占用网格,并通过获取当前占用值的移动平均值和在当前迭代中从构成辐射场查询的密度,每

k

次迭代更新一次。请注意,此占用网格是在规范化空间中定义的,其中全局方向和平移被分解,以便占用空间的联合尽可能紧密,从而进一步减少不必要的查询。

渲染过程

给定一个像素,作者从相机光心

\mathbf{o}

出发,以穿过该像素的方向

\mathbf{d}

发射一个光线

\mathbf{r}=\mathbf{o}+t \mathbf{d}

,采样

N

个点

\left\{\mathbf{x}_i^{\prime}\right\}^N

。通过将这些点重新映射回到规范空间中,并且对规范空间的辐射场模型

\mathbf{f}_{\sigma_f}

进行查询,作者可以获得这些点的色彩和密度。随后,作者对这一系列值进行累计:

C=\sum_{i=1}^N \alpha_i \prod_ {j< i}\left(1-\alpha_j\right) c_i, \text { with } \alpha_i=1-\exp \left(\sigma_i \delta_i\right)

其中

\delta_i=\left\|\mathbf{x}_{i+1}^{\prime}-\mathbf{x}_i^{\prime}\right\|

是不同采样位置处之间的距离。

损失函数

色彩损失

作者以相对鲁棒的Huber Loss作为颜色的监督损失函数:

\mathcal{L}_{\mathrm{rgb}}=\rho\left(\left\|C-C_{g t}\right\|\right)
轮廓损失

作者使用了人体的掩码先验,用它来监督网络的密度输出:

\mathcal{L}_{\text {alpha }}=\left\|\alpha-\alpha_{g t}\right\|_1
表面归一化

作者添加进一步的表面正则化,以鼓励 NeRF 模型预测出更稳定的表面:

\mathcal{L}_{\text {hard }}=-\log \left(\exp ^{-|\alpha|}+\exp ^{-|\alpha-1|}\right)+ const

其中 const 是一个常数,以确保损失值是非负的。鼓励实体表面有助于加快渲染速度,因为一旦累积的不透明度达到 1,作者就可以提前终止光线。

占用归一化

此前的数字人学习方法通常鼓励模型通过利用 SMPL 身体模型作为正则化器,来预测表面外点的零密度和表面内点的密度。这样做是为了减少身体表面附近的伪影。然而,这种正则化对身体的形状做出了很大的假设,并且不能很好地概括宽松的衣服。此外,作者凭经验发现这种正则化在去除身体附近的伪影方面无效。作者不使用 SMPL 进行正则化,而是使用作者的占用网格,这是对主体和衣服形状的更保守估计。于是,作者定义了一个额外的损失

\mathcal{L}_{\text {density }}

,它鼓励在空网格中的点具有零密度:

\mathcal{L}_{\text {density }}= \begin{cases}|\sigma(\mathbf{x})| & \text { if } \mathbf{x} \text { is in the empty space } \\ 0 & \text { otherwise }\end{cases}

实验结果

客观指标

如下表所示,作者在PeopleSnapshot数据集上和目前的方法进行了比较。其中,他们主要比较了PSNR、SSIM和LPIPS等指标,可以发现他们的收敛速度相比之下有明显的优势,并且在充分训练的情况下和当前的SoTA方法效果接近甚至更优。

主观效果

作者首先展示了其方案在新视角生成和新姿态生成两个任务上的表现。可以发现,和对比方法相比,作者的方案明显有着更少的噪声,对于新的姿态适应性也较好。

随后,作者展示了他们方案输出结果随着训练过程的变化。可以发现,他们的方案在数秒之后就有了可接受的主观结果,而此前的方案在5分钟之后仍然没有出现可接受的视觉效果。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2023-01-05,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 媒矿工厂 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 摘要
  • 方法
    • 整体流程
    • 规范空间的神经辐射场
    • 关节运动辐射场(Articulating Radiance Fields)
    • 快速求根
      • 基于体素表示蒙皮权重场
      • 预计算线性混合蒙皮
    • 针对动态目标的空白空间跳跃
      • 推理阶段
      • 训练阶段
    • 渲染过程
    • 损失函数
      • 色彩损失
      • 轮廓损失
      • 表面归一化
      • 占用归一化
  • 实验结果
    • 客观指标
    • 主观效果
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档