本文主要是介绍SMPL: A Skinned Multi-Person Linear Model,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
这篇文章就是通过数据训练一些参数
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初始化后的结果.
这篇关于SMPL: A Skinned Multi-Person Linear Model的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!