Learning Implicit Templates for Point-Based Clothed Human Modeling
项目地址open in new window
ECCV 2022
Abstract
我们提出的 FITE (First-Implicit-Then-Explicit) 是一个先隐后显的框架,用于为穿着服装的数字人建模。我们的框架首先学习表示粗略服装拓扑结构的隐式表面模板,然后利用模板指导点集的生成,进一步捕捉与姿势相关的服装变形(如褶皱)。我们的管道结合了隐式和显式表示法的优点,即能够处理不同的拓扑结构,并能有效捕捉精细细节。我们还提出了扩散蒙皮技术,以方便模板训练,尤其是宽松服装的模板训练,以及通过基于投影的 pose 编码从 mesh 模板中提取 pose 信息,而无需预定义的 UV 贴图或连通性。
Introduction
本文的主要贡献:
- 我们提出了一种先隐后显的穿衣人体建模框架,该框架融合了隐式和显式表示法的优点,与现有方法相比,具有更好的拓扑特性。
- 针对粗模板训练,我们提出了扩散蒙皮策略,即使在数据有限或服装宽松的情况下,也能预测出从标准空间到 pose 空间的稳定对应关系。
- 为了提取姿态信息,我们提出了基于投影的姿态编码,在没有预定义的 UV 贴图或连接性的前提下,可以通过训练后的模板学习出一个连续的特征空间。
Method
本文的任务是从一组不同服装、不同 pose 的输入中学习出逼真的可动画的穿衣数字人模型。图 2 是本文的 pipeline,第一阶段学习隐式模板,第二阶段预测依赖 pose 的位移。为了简化符号,先假设同一个人只穿一件衣服,后续会说明如何扩展到多件衣服。
本文假设输入是包含法线信息的点集形式,并且衣服覆盖了大部分的身体,因此可以从中提取出 GT 即占用场 (0 表示在外部,1 表示在内部)。对于第 i 帧输入的点集表示为 {pki}k=1Ni⊂R3,其中 Ni 表示第 i 帧输入点的数量,点 pki 处的法向量表示为 nki。
LBS:
qi=W(p,w(p),T,θi)=j=1∑24wj(p)Rji(p)(1)
- p 和 qi 分别表示标准空间下一点的坐标和其对应第 i 帧 pose 所在位置的坐标
- T 和 θi 分别表示 SMPL 在标准空间下的平均模板和第 i 帧的 pose 参数
- w(p)=(w1(p),…,w24(p))∈R24 表示标准空间下的点 p 对于每个 joint 的蒙皮权重,这个权重只是定义在 SMPL 的表面
- Rji(p) 是由 T 和 θi 确定的变换到第 i 帧 pose 的刚体变换矩阵
Stage One: Coarse Template Training with Diffused Skinning
本文用 0-1 占用场的 1/2 等值面 (1/2-level-set) 来表示服装的拓扑——也就是粗模板:
Tc={p∈R3:Fc(p)=1/2}(2)
- Tc 表示粗模板
- Fc(⋅):R3→[0,1] 表示 0-1 占用场
作者认为一个好的前向蒙皮权重场 wσw(⋅):R3→R24 (σw 是神经网络的参数) 应该具备以下两个特点:
- 对于 SMPL 表面 T 上的一点 p,w(p) 应该和 SMPL 的蒙皮权重 ws(p) 相等;
- w 应该是从 SMPL 表面自然的 diffuse 出去的,即沿着 SMPL 的法线 ns(p) 方向的变化率应该是零;
这两个特点可以用以下公式来约束:
w(p)=ws(p), ∇pw(p)⋅ns(p)=0, for p∈T(3)
因为蒙皮权重场 w 沿着 SMPL 的法线 ns(p) 方向的变化率是零,所以 w 的梯度 ∇pw 与 SMPL 表面 T 相切,又因为在 T 上时 w=ws,所以公式 3 等价于:
w(p)=ws(p), ∇pw(p)=∇Tws(p), for p∈T(4)
可以重新表述为最小化以下能量:
λps∫p∈T∣∣w(p)−ws(p)∣∣2+λgs∫p∈T∣∣∇pw(p)−∇Tws(p)∣∣2+λregs∫R3∣∣∇2w∣∣2(5)
- ∣∣∇2w∣∣2 表示平滑正则化项
本文采用 PoissonRecon 来获取 w,w 的每个 component 都是单独求解,并约束在 [0,1] 范围内,最后重新进行归一化,整个过程如图 3 所示。
通过公式 5 的到 w 后,就要训练和 pose 相关的标准空间占用场 fσf(⋅,θi):R3→[0,1],第一阶段只要粗略的 shape 能用就停止,训练完成后把 Fc 设置为:
Fc(p)=Fσf(p,θi0), where θi0=argmin{∣∣θi∣∣1:θi in the training poses}(6)
公式 6 其实就是从所有训练 pose 中挑选出 L1 范数下最接近 T-pose 的作为标准 shape。最后从 Fc(p) 中提取 1/2-level-set Tc 作为标准模板。
在得到标准空间的模板后,就可以通过 LBS 转换到 pose 空间:
qk=W(pkc+ck,w(pkc),T,θ)+rk(7)
- pkc 表示标准空间模板表面 Tc 经过均匀采样后点集 {pkc}k=1Nc 中的一个点
- qk 表示 pkc 在 pose 空间中对应的那个点
- ck 和 rk 分别是与 pose 无关的模板修正和与 pose 相关的变形,在本节后续会有更详细的说明
Pose-Agnostic Template Correction:由于 Tc 只经过粗略训练,可能还缺乏某些细节,比如面部细节,而面部细节通常与 pose 无关。本文提出一种与 pose 无关的修正位移量 ck ,通过将几何特征 gk 输入 4 层的 MLP C(⋅) 来获得。
Projection-Based Pose Encoding:本文用图片来表示编码后的 pose 相关的特征,即 position maps。首先从模版表面提取 mesh,把 pose 空间点的坐标值加标准空间点的坐标值当作颜色,用正交投影的方式渲染成 position maps。和 Animatable Gaussians 获取 position maps 的过程类似,这里借用 Animatable Gaussians 中的图 (图 4) 来展示,只不过 Animatable Gaussians 是只用 pose 空间点的坐标值当作颜色。
本文选取左前、左后、右前和右后四个角度,并且四个角度分别有略微覆盖头顶和脚底。最后用 U-Net encoders Ud 来提取 pose 相关特征:
zdi=Ud(Idi)∈RH×W×Cpose(8)
- Idi∈RH×W×3 表示第 i 个 pose 的 position maps
- Cpose 表示 feature maps 的通道数
- d=1,2,3,4 是四个角度的索引
Decoding Pose-Dependent Deformations:最后通过一个 8 层的 MLP D(⋅) 来生成公式 7 中的 rk 和基于投影的 pose 特征法线 nk:
[rkc,nkc]=D([zi(pkc),gk]), rkc,nkc∈R3(9)
- zi(p)=[z1i(p),z2i(p),z3i(p),z4i(p)]
- gk 表示几何特征
当输入数据中有多套服装时,不同服装的模板在第一阶段分别训练,但共享 template corrector C、pose encoders Ud 和 deformation decoder D。
Training Losses
先跳过。
Reference
[1]Learning Implicit Templates for Point-Based Clothed Human Modelingopen in new window