人体动作捕捉与SMPL模型 (mocap and SMPL model)
FesianXu 2020.7.5
前言
笔者最近在做和motion capture动作捕捉相关的项目,学习了一些关于人体3D mesh模型的知识,其中以SMPL模型最为常见,笔者特在此进行笔记,希望对大家有帮助,如有谬误,请在评论区或者联系笔者指出,转载请注明出处,谢谢。
本文参考了[12]。
联系方式:
e-mail: FesianXu@gmail.com
QQ: 973926198
github: https://github.com/FesianXu
知乎专栏: 计算机视觉/计算机图形理论与应用
微信公众号:
人体动作捕捉与人体3D mesh模型
人体动作捕捉(motion capture,以下简称mocap),我们在这个任务里面的目标是通过传感器(可以是RGB摄像头,深度摄像头或者光学标记,3D扫描仪)对人体的一段时间的某个动作进行捕捉,从而可以实现三维的人物建模。注意到这里的“动作”一词有时候也可以用“姿态(pose)”一词描述, 在具体的表现形式上可以有以下若干种形式(也就是我们应该如何去表示某个动作的方法):
- 通过人体关节点表示,如Fig 1的第二张图所示。
- 通过人体铰链结构表示,如Fig 1的第三张图所示。(其中1和2我们都称之为人体姿态估计问题,其问题的关键在于对人体关节点的位置的预测,这里的位置可以是图片上的2D像素位置,也可能是3D空间位置)
- 通过人体3D mesh表示,但是这个mesh并不包括人体的细节,比如表情,手势,脚踝的转动等,如Fig 1第四张图所示。
- 通过人体细节3D mesh表示,这个mesh包含着人体的脸部表情,手势和脚踝转动等细节,如Fig 1第五张图所示。(3和4的方法考虑了人体的形态特征,比如胖瘦,高矮等,因此表征能力更加丰富。)
Fig 1. 描述人体动作/姿态的若干种方法,原图出自[1],其中的第四张图是本文需要介绍的SMPL模型,第五张图是在SMPL模型上扩展得到更多人体细节的SMPL-X模型。
现有的人体姿态估计(human pose estimation)和mocap关系密切,现有很多关于人体姿态估计的工作已经可以在较为复杂的多人环境里面对2D 人体关节点进行准确估计了,如[2,3,4]等。但是为了能够利用捕捉到的关节点对人物动作3D建模,我们光利用2D人体关节点是不足够的,因为2D关节点到3D空间点的映射是具有歧义性的(ambiguous),因此对于同样一个2D关节点,在空间上就有可能有多种映射的可能性,如Fig 2所示,除非用多视角的图像去消除这种歧义性。
Fig 2 如果不对3D模型进行约束,那么单纯的单视角图像将会存在2D到3D投影的歧义性,如最后一张图的(a)是原始的2D节点,其到3D的投影有非常多的可能性。这里的歧义性可以由一定数量的多视角图像消除,或者通过对人体姿态的先验进