前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >DELTA: 利用混合 3D 表示学习分离式化身

DELTA: 利用混合 3D 表示学习分离式化身

作者头像
用户1324186
发布2024-01-11 14:51:11
发布2024-01-11 14:51:11
4130
举报
文章被收录于专栏:媒矿工厂媒矿工厂

论文题目:DELTA: Learning Disentangled Avatars with Hybrid 3D Representations 论文链接:https://arxiv.org/abs/2309.06441 论文作者:Yao Feng 等人 内容整理: 林宗灏 本文提出了从单目视频中重建可动画的分离式化身方法 DELTA,该方法使用显式基于网格的参数化模型来表示人体和人脸,使用隐式神经辐射场来表示服装和头发,并设计了一种端到端的可微渲染器,将网格集成至体渲染中,使得 DELTA 能够直接从单目视频中学习,而无需任何 3D 监督。实验验证了 DELTA 分离技术的有效性,证明了它在分离重建、虚拟试衣和发型转移方面的优秀表现。

目录

  • 引言
  • 方法
    • 混合显隐式 3D 表示
    • 姿势相关的变形
    • 网格集成的体渲染
    • 损失函数
  • 实验
    • 定量结果
    • 定性结果
    • 消融实验

引言

图 1:(a)分离式头部:给定单目视频输入,DELTA 输出分离的基于网格的人脸和基于 NeRF 的头发。(b)分离式人体:给定单目视频输入,DELTA 输出分离的基于网格的人体和基于 NeRF 的服装。(c)利用 DELTA 学习到的分离的头发和服装,我们可以轻松地将任何头发和服装转移到由单张图像估计得到的人体上。

为了学习可动画的逼真人类化身,研究者们对显式和隐式 3D 表示进行了大量研究,以期对整个人体(包括身体、服装、脸部、头发等)进行整体建模和捕捉。然而,就表示效果而言,这两种表示方法都不是最佳选择,因为人体化身的不同部位有着不同的建模需求。网格基于统计先验可以有效地表示人脸和身体,但通常不能很好地表示头发和服装。隐式表示法可以渲染高保真的 2D 视图,但动画化难度较大,并难以推广到未见过的姿态和表情中。

在这项工作中,我们提出了分离式化身(DELTA),它以混合显式和隐式 3D 表示为人类化身建模。DELTA 以单目 RGB 视频作为输入,生成具有分离身体和服装/头发层的人类化身。具体而言,我们考虑了 DELTA 的两个重要应用:身体与服装的分离和人脸与头发的分离。为此,DELTA 使用显式基于网格的参数化模型来表示人体和人脸,使用隐式神经辐射场来表示服装和头发。为了实现这一点,我们设计了一种端到端的可微渲染器,将网格集成至体渲染中,使得 DELTA 能够直接从单目视频中学习,而无需任何 3D 监督。最后,我们展示了如何将这两种应用轻易地结合起来,为全身化身建模,如此以来头发、人脸、人体和服装就可以完全分离,但又可以联合渲染。通过这种分离,我们可以将头发和服装转移至任意的人体形状。实验验证了 DELTA 分离技术的有效性,证明了它在分离重建、虚拟试衣和发型转移方面的优秀表现。本文的主要贡献总结如下:

  • 我们提出了分离式化身,即使用混合 3D 表示对人脸/人体和头发/服装进行建模,这种混合表示法结合了网格的统计先验和隐式函数表示的灵活性。
  • 我们设计了一种可微体渲染方法,将网格集成至体渲染中。
  • DELTA 框架是端对端可微的,它可以在单目视频上训练而无需任何 3D 监督。

方法

图 2:DELTA 以单目 RGB 视频和服装/头发的掩膜作为输入,输出具有分离式身体和服装/头发层的人类化身。绿色字母表示可优化的模块或参数。

给定单目视频,DELTA 将重建一个头部(或人体)化身,其中头部/人体与头发/服装是完全分离的。化身重建完成后,我们能够使用新的姿势对其进行动画,并轻而易举地更换发型和服装。由于 DELTA 重建头部和人体的方式有许多相似之处,我们将人脸或人体称为化身内部,将头发或服装称为化身外部以简化描述。

混合显隐式 3D 表示

我们使用 SMPL-X 来充分利用人类几何先验对人脸和人体进行基于网格的建模。由于头发和服装的几何形状非常复杂,我们建议使用 NeRF 对头发和服装进行建模。

基于 SMPL-X 的显式化身内部

SMPL-X 是一种富有表现力的人体模型,具有细致的人脸形状和表情。在静止姿势下,具有中性表情的主体定义为:

T_P(\beta,\theta,\psi) = \bar{T} + B_S(\beta;S)+B_P(\theta;P)+B_E(\psi;E) \quad (1)

其中,

\bar{T}

是静止姿势下的人体形状模板,

\beta

是人体身份参数,

B_S(\beta;S)

是身份的 blend shapes,

\theta

表示姿势参数,

B_P(\theta;P)

是姿势的 blend shapes,

\psi

表示人脸表情参数,

B_E(\psi;E)

表示表情的 blend shapes。

为了提高 SMPL-X 的灵活性,我们在规范空间中添加了额外的顶点偏移

O

。偏移量由顶点隐函数

F_d:t \rightarrow o

建模,该函数为静止模板中的顶点

t

预测偏移量

o

。因此,增强的人体表示为:

\tilde{T}_P(\beta,\theta,\psi,O)=T_P(\beta,\theta,\psi)+O \quad (2)

反照率由隐式函数

F_t:t \rightarrow c^{mesh}

表示,该函数预测每个给定顶点

t

的 RGB 颜色

c^{mesh}

。具体而言,如果视频光照均匀,我们将从模板网格

\bar{T}

中采样顶点

t

;对于更复杂的光照条件,为了更好地建模纹理,我们将在姿势变形后对顶点

t

进行采样。

基于 NeRF 的隐式化身外部

我们在规范 3D 空间中将化身外部(头发或服装)定义为隐函数

F_h:x^c \rightarrow (c^{nerf},\sigma)

,该函数以 MLP 参数化。给定规范空间中的查询点

x^c

,基于 NeRF 的隐式函数

F_h

输出 RGB 颜色

c^{nerf}

和体密度

\sigma

姿势相关的变形

显式化身内部变形

给定单目视频,我们需要为主体的运动建模。由于我们的化身内部基于 SMPL-X,因此可以很好地捕捉姿势变形和面部表情。对于给定视频帧的每一帧,我们估计形状

\theta

和表情

\psi

参数。然后,我们可以使用线性蒙皮函数(即 LBS)对头部/人体变形至观测姿态。显式 SMPL-X 网格模型的变形由一个可微函数

M(\beta,\theta,\psi,O)

建模,输出 3D 人体网格:

M(\beta,\theta,\psi,O)=\rm{LBS}(\tilde{T}_P(\beta,\theta,\psi,O),J(\beta),\theta,W) \quad (3)

其中,

W

是 LBS 函数中的权重,

J(\beta)

是人体形状的函数,表示与形状相关的关节。

隐式化身外部变形

为了在规范空间中学习基于 NeRF 的头发/服装表示,我们需要从姿势空间变形至规范空间。给定姿势空间中的查询点

x^p

(来自观察到的视频帧),我们首先找到身体表面

M

上最近的

k

个点,然后使用加权反向蒙皮函数将姿势点

x^p

变换至规范空间中(即

x^c

)。为了建立更精确的头发/服装运动和变形模型,我们进一步学习与姿势相关的变形函数

F_e:(x^c,v^p_{n(x^p)}) \rightarrow \Delta x^c \quad (4)

其中

x^p

表示观察空间中的一个点,

n(x^p)

是距离点

x^p

最近的点的索引集。

F_e

旨在预测查询点在规范空间中的非刚性变形。然后,残差

\Delta x^c

加回

x^c

,并将位移点

\tilde{x}^c=x^c+\Delta x^c

输入到规范 NeRF 模型

F_h

中,以补偿外部服装/头发在观察空间中的形变。

网格集成的体渲染

图 3:网格集成的体渲染示意图

网格光栅化

基于几何参数

(\beta,\theta,\psi)

、顶点偏移

O

、SMPL-X 顶点 RGB 颜色

c^{mesh}

和相机参数

p

,我们通过可微光栅化函数

R_m(M(\beta,\theta,\psi,F_d),c^{mesh},p)

将有色网格渲染为图像。

网格集成的体渲染

为了在体渲染时将网格考虑在内,我们设定当相机光线与三维空间中的网格相交时就会停止。给定相机光线

r(t)=q+td

,其中中心为

q

,方向为

d

,我们将人体模型

M(\beta,\theta,\psi,O)

集成至体渲染中,渲染区间为

[t_n,t_f]

。当

r(t)

M

相交时,我们设定

t_f

使得

r(t_f)

为交点。相机光线

r

的期望颜色定义为:

c(r) = \int_{t_n}^{t_f} c^{nerf}(r(t)) \cdot T(t) \cdot \sigma(r(t)) + 1_s(r) \cdot \delta(t-t_f) \cdot c^{mesh} dt \quad (5)

其中,

T(t)=\exp(-\int_{t_n}^t \sigma(r(s))ds)

1_s(r)

为指示函数,当光线与网格表面相交时为

1

,否则为

0

损失函数

总体损失函数

给定

n_f

张图像序列,我们在整个序列上联合优化

\beta

和 MLP 权重

F_d,F_h,F_t,F_e

,在每帧优化

\theta_f

p_f

。我们使用以下总体损失函数:

L=L_{recon}+L_{ext}+L_{int}+L_{reg} \quad(6)

包括重建损失

L_{recon}

、化身外部损失

L_{ext}

、化身内部损失

L_{int}

和正则化

L_{reg}

重建损失

重建损失最小化渲染图像与输入图像之间的差异:

L_{recon} = \lambda_{pixel} L_{\delta}(R_v-I) + \lambda_{semantic}L_{semantic}(R_v,I) \quad (7)

其中,

L_{\delta}

是对像素级差异进行惩罚的 Huber 损失,侧重于整体重建;

L_{semantic}

用于规范语义差异,重建更多细节。

化身外部损失

为了让 NeRF 只捕捉服装/头发等外部分量,我们采用分割掩膜来显式限制 NeRF 密度所在的空间。给定分割掩膜

S_e

,外部像素为

1

,其余为

0

,我们最小化以下外部损失:

L_{ext}=\lambda_{ext}||S_v-S_e||_{1,1} \quad (8)

其中,

S_v

为 NeRF 渲染的掩膜。最小化

L_{ext}

可以确保服装或头发以外的光线的聚合密度为

0

,因此 NeRF 模型只能捕捉到预设的外部区域。

化身内部损失

为了进一步分离化身的内部和外部,我们需要确保内部网格模型不会捕捉到任何的外部变化。为此,我们根据先验知识定义了一些额外的损失函数。首先,内部网格应与掩膜图像相匹配。给定整个化身的二值掩膜

S

,我们最小化人体轮廓

R_m^s(M,p)

与给定掩膜之间的差异:

L_{silhouette} = \lambda_{silhouette} L_{\delta}(R_m^s(M,p) - S) \quad (9)

其次,内部网格应与可见化身内部相匹配。仅优化

L_{silhouette}

会导致网格拟合化身外部(如服装、头发),尤其是对于宽松的服装或长发,这将导致在主体间迁移服装时产生明显的伪影。给定可见身体部分的二值掩膜

S_b

,我们最小化部分轮廓损失

L_{int-mask} = \lambda_{int-mask} L_{\delta}(S_b \odot R_m^s(M,p) - S_b) \quad (10)

和光度损失:

L_{skin} = \lambda_{skin} L_{\delta}(S_b \odot (R_m(M,c,p) - I)) \quad(11)

再者,内部网格应位于外部区域内,即身体或人脸一般应被服装或头发覆盖,从而得到以下损失函数:

L_{inside} = \lambda_{inside} L_{\delta}(ReLU(R_m^s(M,p) - S_c))\quad(12)

最后,被遮挡的身体顶点的肤色应与可见皮肤区域相似。为此,我们最小化被遮挡区域的身体颜色与平均皮肤颜色之间的差异:

L_{skin-insdie} = \lambda_{inside} L_{\delta}(S_c \odot (R_m(M,c,p) - C_{skin})) \quad(13)

结合上述损失函数,我们的内部化身损失表示为:

L_{int} = L_{silhouette} + L_{int-mask} + L_{skin} + L_{inside} + L_{skin-insdie} \quad(14)

正则化

我们对重建网格表面进行正则化:

L_{reg} = \lambda_{edge} L_{edge}(M) + \lambda_{offset}||O||_{2,2} \quad(15)

其中,

L_{edge}

表示有偏移和无偏移的内部网格之间的相对边缘损失。

实验

定量结果

表 1:在 People-Snapshot 上对新视图合成的定量比较。

表 2:在公开真实视频中对新姿势和表情合成的定量比较。

定性结果

图 4:与 SelfRecon 和 Anim-NeRF 关于重建的定性比较。我们的方法将服装和人体分离,因此面部和手部的细节更加丰富。

图 5:与 NHA 和 IMavatar 关于重建的定性比较。我们的方法在捕捉面部和肩部的几何形状、头发渲染质量方面表现出色。

图 6:服装重建的定性比较。与 SMPLicit 与 BCNet 相比,DELTA 能更忠实地重建不同类型的服装。

图 7:DELTA 的应用。混合表示法能够对身体姿势进行详细的控制,以及用目标服装对源主体进行装扮。

图 8:DELTA 的应用。混合表示法可以将基于 NeRF 的头发转移至另一张人脸上。

消融实验

图 9:混合表示的消融实验。与原始 NeRF 和基于网格的表示相比,我们的混合表示法能够更好地估计脸部、手部和服装的几何形状。

图 10:姿势优化的消融实验。姿势优化重建了更多的纹理细节,提高了重建的视觉质量。

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

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

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 引言
  • 方法
    • 混合显隐式 3D 表示
    • 姿势相关的变形
    • 网格集成的体渲染
    • 损失函数
  • 实验
    • 定量结果
    • 定性结果
    • 消融实验
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档