SMPL-论文解读

文章目录

  • 创新点
  • 算法
    • shape blend shape:
    • pose blend shape
    • Joint location
    • SMPL model
  • 训练过程
    • Pose Parameter Training
    • joint regressor
    • Shape Parameter Training
    • Optimization summary
  • DMPL
  • 实验
  • 结论

论文: 《SMPL: A skinned multi-person linear model》
github: https://smpl.is.tue.mpg.de/

创新点

作者提出一个可学习模型SMPL,其可准确表示各种体型、各种自然姿势下的人体。
LBS、DQBS在膝盖、肘部、肩膀和臀部产生严重的伪影,如图2;
SMPL-论文解读_第1张图片

算法

SMPL模型如图3所示,
SMPL-论文解读_第2张图片

SMPL解耦body shape为identity-dependent shape和non-rigid pose-dependent shape;创建mesh包括N=6890个顶点、K=23个关键点;
在无姿态 θ ⃗ ∗ \vec\theta^* θ 下平均模板shape T ‾ ∈ R 3 N \overline T \in R^{3N} TR3N,blend weight, w ∈ R N × K w \in R^{N \times K} wRN×K,如图3a所示;
依靠身材的blend shape函数 B s ( β ⃗ ) : R ∣ β ⃗ ∣ → R 3 N B_s(\vec \beta):R^{|\vec \beta|} \rightarrow R^{3N} Bs(β ):Rβ R3N,其中 β ⃗ \vec\beta β 为输入形状参数向量,输出a blend shape sculpting the subject identity;
预测K个关键点函数 J ( β ⃗ ) : ( β ⃗ ) : R ∣ β ⃗ ∣ → R 3 K J(\vec \beta):(\vec \beta):R^{|\vec \beta|} \rightarrow R^{3K} J(β ):(β ):Rβ R3K,如图3b;
依靠姿态的blend shape函数 B p ( θ ⃗ ) : R ∣ θ ⃗ ∣ → R 3 N B_p(\vec \theta):R^{|\vec \theta|} \rightarrow R^{3N} Bp(θ ):Rθ R3N,输入姿态参数 θ ⃗ \vec\theta θ ,该模块解释姿势变形的影响,如图3c所示;
最后标准蒙皮函数 W ( . ) W(.) W(.)将blend weight w w w应用于 J ( β ⃗ ) J(\vec \beta) J(β )估计的关键点周围顶点进行旋转变化,如图3d;

SMPL模型 M ( β ⃗ , θ ⃗ ; Φ ) : R ∣ θ ⃗ ∣ × ∣ β ⃗ ∣ → R 3 N M(\vec \beta,\vec \theta;\Phi):R^{|\vec \theta|\times|\vec \beta|}\rightarrow R^{3N} M(β ,θ ;Φ):Rθ ×β R3N如式5、顶点可经过式7进行变形;
在这里插入图片描述
在这里插入图片描述

shape blend shape:

如式8, β ⃗ \vec \beta β 为输入形状参数; S S S为可学习参数;输出a blend shape sculpting the subject identity;

在这里插入图片描述

pose blend shape

如式9,输入姿态参数theta,解释姿势变形的影响;
在这里插入图片描述

Joint location

J J J为变换顶点到关键点的矩阵;其建模哪些顶点重要及如何将它们与关键点位置结合,如式10;
在这里插入图片描述

SMPL model

SMPL模型可学习参数定义为 Φ = { T ‾ , w , S , J , P } \Phi=\{\overline T,w,S,J,P\} Φ={T,w,S,J,P},通过 β ⃗ \vec\beta β θ ⃗ \vec\theta θ 控制人体身材及姿态变化;SMPL模型 M ( β ⃗ , θ ⃗ ; Φ ) M(\vec\beta,\vec\theta;\Phi) M(β ,θ ;Φ)定义如式11,
在这里插入图片描述
mesh上每个顶点变换如式12,
在这里插入图片描述
其中 t P , i ( β ⃗ , θ ⃗ ; T ‾ , S , P ) t_{P,i}(\vec\beta,\vec\theta;\overline T,S,P) tP,i(β ,θ ;T,S,P)=
在这里插入图片描述
表示应用于blend shape后的顶点 i i i;

训练过程

首先在多姿态数据集训练参数 { J , w , P } \{J,w,P\} {J,w,P},在多体态数据集训练参数 { T ‾ , S } \{\overline T,S\} {T,S}

Pose Parameter Training

E D E_D ED使用平方损失函数,计算registration(表示mesh对齐)顶点与模型顶点距离, s ( j ) s(j) s(j)为与registration j对应的目标人体index
在这里插入图片描述
E Y E_Y EY用于惩罚左右不对称;
在这里插入图片描述
E J E_J EJ计算回归器 J I J_I JI预测关键点到真实关键点距离;
在这里插入图片描述
E P E_P EP防止姿态blend shape过拟合,对它们正则化到0;
在这里插入图片描述
E w E_w Ew正则化blend weight到初始化权重,如图6所示;
在这里插入图片描述
SMPL-论文解读_第3张图片
训练 { W , P } \{W,P\} {W,P}的总损失函数如公式14;
在这里插入图片描述

joint regressor

关键点回归器 J J J使用非负最小二乘损失,包含正则项,使得使用稀疏顶点预测关键点位置,如图7所示;
SMPL-论文解读_第4张图片

Shape Parameter Training

姿态归一化将原始对齐mesh, V j S V^S_j VjS转换到无姿态下对齐mesh, T ^ j S \hat T^S_j T^jS;归一化使得姿态和体态可分开建模;
最小化变换后模型的边与真值边(相邻顶点的差)之间差值, θ ⃗ j = \vec \theta_j= θ j=
在这里插入图片描述
θ ⃗ \vec \theta θ 确定后,确定 T j S T^S_j TjS,如下式,
在这里插入图片描述
{ T ^ j S } \{\hat T^S_j\} {T^jS} j = 1 S s u b j ^{S_{subj}}_{j=1} j=1Ssubj进行PCA获得 { T ‾ , S } \{\overline T,S\} {T,S};

Optimization summary

1、式14中姿态参数 θ ⃗ j \vec \theta_j θ j首先初始化,通过式15最小化模型边与对齐mesh边之间差异;
2、如式14,进行估计 { T ^ P , J ^ P , w , P , Φ } \{\hat T^P, \hat J^P,w, P,\Phi\} {T^P,J^P,w,P,Φ}
3、进行回归器J的估计;
4、对姿态归一化目标进行PCA降维获得 { T ‾ , S } \{\overline T,S\} {T,S}

DMPL

因为目标间体型差异大,为了抓住这个信息,DMPL增加动态项,如式16,17
在这里插入图片描述
在这里插入图片描述

实验

SMPL-论文解读_第5张图片

结论

我们的目标是创建骨骼驱动人体模型,可以捕获身体形状和姿态变化,与现有的图形计算和软件兼容;训练模型最小化顶点重构误差,包括the rest template, joint regressor, body shape model, pose blend shapes, and dynamic blend shapes;

你可能感兴趣的:(3D重建,论文详解,计算机视觉,3D重建,SMPL)