本文基于SMPLify[1-2]开源项目,对采用传统优化方法和SMPL模板的从图片进行三维人体重建算法的整体流程做一个介绍。其中关于姿态的高斯先验以及碰撞部分的代码,笔者也不是非常理解,欢迎评论指教。
一.算法流程

二.具体步骤
从图片中检测人体关键点
非重点,可采用openpose[5],alphapose[6]等,论文里采用的是deepcut[4],包含二维坐标及对应的置信度。
初始化相机平移和身体方向
1)根据smpl的3d躯干点和图片检测的2d躯干点,根据简单的相似三角形法则,得到相机初始平移(注:假定smpl模型位于相机正前方,这步仅能估计z坐标,即距离相机的距离);
2)同样利用上述躯干点,优化下列式(2),进一步优化得到相机平移和身体方向(注:身体方向其实就是0号根节点的姿态,很多时候也将它并入了θ中 )。
- 联合优化得到相机平移、身体方向、身份参数和表情参数






式1)为优化的总能量方程,包含关节点距离项 EJE_JEJ ,姿态约束项 EaE_aEa 、EθE_θEθ,碰撞项 EspE_{sp}Esp 和身份约束项 EβE_βEβ ;
式2)为关节点距离项, Rθ(J(β)i)R_{\theta}(J(\beta)_i)Rθ(J(β)i)为smpl模板的关节点, JestJ_{est}Jest为从图片中估计的2d关节点, ΠK\Pi_KΠK 为相机参数矩阵(注:我理解包含了预设的内参矩阵(f预设一个值,cxcy取图像宽长的一半)+待求解的身体方向和相机平移),

最低0.47元/天 解锁文章
4622

被折叠的 条评论
为什么被折叠?



