这篇文章就是通过数据训练一些参数
N N N为点数, K K K为关节数, β ⃗ \vec{\beta} β为shape blend shapes parameters, θ ⃗ \vec{\theta} θ为pose blend shapes parameters.
∣ θ ⃗ ∣ |\vec{\theta}| ∣θ∣的参数个数为 3*K + 3, 对于每个joint,3个参数表示旋转, 另外3个是root joint的旋转
公式(1) 3 axis angle -> rotation matrix
公式(2) deform each vertex, 注意 J \mathbf J J是joint的location
公式(3) 先乘以rest post的逆, 然后再乘上每个joint的post
公式(6), posed vertices 是从rest post T ˉ \bar{\mathbf T} Tˉ + shape blend shapes offset B S B_S BS + pose blend shapes offset B P B_P BP
公式(5), deformed vertices
shape blend shapes
给定一组blend shapes parameters
β
⃗
\vec{\beta}
β, 产生最终的shape displacement
B
S
∈
R
3
N
B_S\in \mathbb R^{3N}
BS∈R3N, 所要训练就是
3
N
×
∣
β
⃗
∣
3N\times|\vec \beta|
3N×∣β∣的矩阵
S
\mathcal S
S
pose blend shapes
属于Pose参数对blend shapes的微调, 从一组pose parameters
θ
⃗
\vec{\theta}
θ, 产生最终的shape displacement
B
P
∈
R
3
N
B_P\in \mathbb R^{3N}
BP∈R3N
首先他把pose的参数 θ ⃗ \vec{\theta} θ展开成 9 K 9K 9K个, 然后训练 3 N × 9 K 3N\times9K 3N×9K矩阵 P \mathcal P P
Joint locations
joint位置的估计只跟
B
S
B_S
BS有关, 跟
B
P
B_P
BP无关, 主要训练
3
N
×
3
K
3N\times3K
3N×3K的matrix
J
\mathcal J
J
后面的训练就不细讲了
公式(14),
E
D
E_D
ED是data term, 测量ground truth 到deformed vertices之间差距,
E
Y
E_Y
EY是joints及模型的对称性,
E
J
E_J
EJ是joint的估计与ground truth之间的差距,
E
P
E_P
EP是尽量让regression matrix
P
\mathcal P
P稀疏,
E
W
E_W
EW是尽量让weight尽可能接近通过segmentation初始化后的结果.