SMPL论文解读和相关基础知识介绍

SMPL是一种基于深度学习的人体三维模型,它通过形状参数和姿态参数来控制人体模型。形状参数刻画人体比例,如胖瘦、身高,而姿态参数描述关节旋转以实现动作。SMPL模型通过线性混合皮肤ning(LBS)和形状/姿态混合形状来处理形变,从而避免运动过程中的表面失真。此外,SMPL模型的关节位置依赖于形状,这使得模型能更精确地模拟人体肌肉运动。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

SMPL论文解读和相关基础知识介绍

本文首发于微信公众号:视觉三维重建 ,欢迎大家关注公众号,和你分享计算机视觉算法工程师工作的点点滴滴。

1.动画制作专业术语

科普几个有关动画制作的关键词(可能不是很正确),对于一个动画人物模型,比如Unity模型,有:

  • 顶点(vertex):动画模型可以看成多个小三角形(四边形)组成,每个小三角形就可以看成一个顶点。顶点越多,动画模型越精细。
  • 骨骼点:人体的一些关节点,类似于人体姿态估计的关键点。每个骨骼点都由一个三元组作为参数去控制(可以查看欧拉角,四元数相关概念)
  • 骨骼蒙皮(Rig):建立骨骼点和顶点的关联关系。每个骨骼点会关联许多顶点,并且每一个顶点权重不一样。通过这种关联关系,就可以通过控制骨骼点的旋转向量来控制整个人运动。
  • 纹理贴图:动画人体模型的表面纹理,即衣服裤子这些。
  • BlendShape:控制动画角色运动有两种,一种是上面说的利用Rig,还有一种是利用BlendShape。比如:生成一种笑脸和正常脸,那么通过BlendShape就可以自动生成二者过渡的动画。这种方式相比于利用Rig,可以不定义骨骼点,比较方便。
  • 蒙皮:将模型从一个姿态转变为另一个姿态,使用的转换矩阵叫做蒙皮矩阵。(Linear Blend Skinning算法)
  • 顶点权重(vertex weights):用于变形网格mesh
  • uv map:将3D多边形网格展开到2D平面得到 UV图像
  • texture map:将3D多边形网格表面的纹理展开到2D平面,得到纹理图像
  • 拓扑(topology):重新拓扑是将高分辨率模型转换为可用于动画的较小模型的过程。两个mesh拓扑结构相同是指两个mesh上面任一个三角面片的三个顶点的ID是一样的(如某一个三角面片三个顶点是2,5,8;另一个mesh上也必有一个2,5,8组成的三角面片)
  • linear blend skinning algorithm

每个关节的数据结构包含:关节名字、骨骼中其父节点的索引、关节的绑定姿势之逆变换(蒙皮网格顶点绑定至骨骼时,关节的位置、定向及缩放)

reference

2.SMPL

2.1 简介

​ smpl是指2015 马普的一篇文章“SMPL: a skinned multi-person linear model”中构建的人体参数化三维模型,人体可以理解为是一个基础模型和在该模型基础上进行形变的总和,在形变基础上进行PCA,得到刻画形状的低维参数——形状参数(shape);同时,使用运动树表示人体的姿势,即运动树每个关节点和父节点的旋转关系,该关系可以表示为三维向量,最终每个关节点的局部旋转向量构成了smpl模型的姿势参数(pose)。

​ 这种方法与传统的LBS的最大的不同在于其提出的人体姿态影像体表形貌的方法,这种方法可以模拟人的肌肉在肢体运动过程中的凸起和凹陷。因此可以避免人体在运动过程中的表面失真,可以精准的刻画人的肌肉拉伸以及收缩运动的形貌。

​ 在SMPL文章中介绍了SMPL的总体模型,这个模型是通过训练得到,就是一些参数, 该模型中β和θ是其中的输入参数,其中β代表人体高矮胖瘦、头身比等比例的10个参数,θ是代表人体整体运动位姿和24个关节相对角度的75(24*3+3;每个关节点3个自由度,再加上3个根节点)个参数,β参数是ShapeBlendPose参数,可以通过10个增量模板控制人体形状变化: 具体而言:每个参数控制人体形态的变化可以通过动图来刻画。

2.2 基本原理

在这里插入图片描述
(a )中的是由平均顶点集以及权重所描述的人体模型。
(b )中平均顶点集在体态的影响下发生了位移,同时体态对关节 J J J也产生了影响。
(c )平均顶点集在体态与动作的两重影响下发生的位移,注意此时的图并未有任何的pose。
(d) shape和pose双重影响下的SMPL模型;总共四项,分别为经过体型与姿势影响的顶点集、经过体型影响的关节,以及姿势和权重。

1. 模型生成的函数

M M M : SMPL function

W W W : Skinning function

B p B_p Bp : Pose blendshapes function

B s B_s Bs : Shape blendshapes function

J J J : Joint regressor: Predicts joints from surface

M ( β ⃗ , θ ⃗ ) = W ( T P ( β ⃗ , θ ⃗ ) , J ( β ⃗ ) , θ ⃗ , W ) M(\vec{\beta}, \vec{\theta})=W\left(T_{P}(\vec{\beta}, \vec{\theta}), J(\vec{\beta}), \vec{\theta}, \mathcal{W}\right) M(β ,θ )=W(TP(β ,θ ),J(β ),θ ,W)

W ( T ‾ , J , θ ⃗ , W ) : R 3 N × 3 K × ∣ θ ⃗ ∣ × ∣ W ∣ ↦ R 3 N W(\overline{\mathbf{T}}, \mathbf{J}, \vec{\theta}, \mathcal{W}): \mathbb{R}^{3 N \times 3 K \times|\vec{\theta}| \times|\mathcal{W}|} \mapsto \mathbb{R}^{3 N} W(T,J,θ ,W):R3N×3K×θ ×WR3N(the standard linear blend skinning function) :从模板 smpl模型中取vertics T ‾ \overline{\mathbf{T}} T ,joint locations J J J ,a pose θ ⃗ \vec{\theta} θ and the blend weights W \mathcal{W} W ,输出posed vertices

J ( β ⃗ ) : R ∣ β ⃗ ∣ ↦ R 3 K J(\vec{\beta}): \mathbb{R}^{|\vec{\beta}|} \mapsto\mathbb{R}^{3 K} J(β ):Rβ R3K :a function to predict K joint locations ;

T P ( β ⃗ , θ ⃗ ) = T ‾ + B S ( β ⃗ ) + B P ( θ ⃗ ) T_{P}(\vec{\beta}, \vec{\theta})=\overline{\mathbf{T}}+B_{S}(\vec{\beta})+B_{P}(\vec{\theta}) TP(β ,θ )=T+BS(β )+BP(θ )

B S ( β ⃗ ) : R ∣ β ⃗ ∣ ↦ R 3 N B_{S}(\vec{\beta}): \mathbb{R}^{|\vec{\beta}|} \mapsto \mathbb{R}^{3 N} BS(β ):Rβ R3N : a blend shape function; input : shape parameters β ⃗ \vec{\beta} β ;output : a blend shape sculpting the subject identity

B P ( θ ⃗ ) : R ∣ θ ∣ ↦ R 3 N B_{P}(\vec{\theta}): \mathbb{R}^{|\theta|} \mapsto \mathbb{R}^{3 N} BP(θ ):RθR3N :a pose-dependent blend shape function ; θ ⃗ \vec{\theta} θ :a vector of pose parameters ,accounts for the effects of posedependent deformations

2. 模型输入的参数

β ⃗ \vec{\beta} β : shape parameters

θ ⃗ \vec{\theta} θ : Pose parameters

ω ⃗ \vec{\omega} ω

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值