我们现在主要关注一下分割的分支。假设我们图像中的对象可以属于 K 个类别中的一个。分割分支输出 K 个尺寸为 m*m 的二值 mask,每个二值 mask 代表只属于该类别的所有对象。我们可以将每种特征点建模为一个类别,然后将姿态估计任务看作一个分割任务,从而提取图像中每个人的特征点。
与此同时,可以训练一个对象检测算法来确定每个人的位置。通过组合每个人的位置信息和他们的特征点集合,我们可以得到图像中每个人的人体骨架。
该方法和自顶向下方法比较类似,但不同的是,其人体检测步骤和关键点检测步骤是同时进行的。换句话说,人体检测步骤和关键点检测步骤是相互独立的。
3.5 其他方法
多人人体姿态估计是一个很大的问题,有许多其他方法。限于篇幅,我们只选择了其中的几种方法在本文中加以介绍。如需要获取更详尽的方法列表,请参见以下链接:
人体姿态估计的优秀方法(Awesome Human Pose Estimation,https://github.com/cbsudux/awesome-human-pose-estimation)
论文及代码(Papers with Code,https://paperswithcode.com/sota/multi-person-pose-estimation-on-mpii-multi)
4 应用
姿态估计可以应用在很多领域。接下来就列举其中的一些。
4.1 动作识别追踪一段时间内一个人姿态的变化也可以应用在动作、手势和步态识别上。在这方面有好几个应用场景,包括:
用于检测一个人是否摔倒或疾病
用于健身、体育和舞蹈等的自动教学
用于理解全身的肢体语言(如机场跑道信号、交警信号等)
用于增强安保和监控
4.2 运动捕捉和增强现实
人体姿态估计的一个有趣应用是 CGI(computer graphic image,一种电影制造技术)应用。如果可以检测出人体姿态,那么图形、风格、特效增强、设备和艺术造型等就可以被加载在人体上。通过追踪人体姿态的变化,渲染的图形可以在人动的时候“自然”地与人“融合”。
姿态估计的一个很好的可视化例子是 Animoji(https://www.wired.com/story/all-the-face-tracking-tech-behind-apples-animoji/)。虽然在 Animoji 中只是跟踪了人脸的结构,但这个技术可以被扩展到人体关键点上。同样的概念可以被用于渲染增强现实(AR)元素,使其能够模仿人的运动。
4.3 训练机器人
除了手动为机器人编程、让它们跟随特定的路径,我们也可以让机器人跟随一个做特定动作的人体骨架。人类教练可以仅通过演示特定的动作,来教机器人学习这一动作。接着,机器人就可以计算如何移动自己的活动关节,来进行相同的动作。
4.4 控制台中的运动追踪
姿态估计的一个有趣应用是在交互游戏中追踪人体对象的运动。比较流行的 Kinect 使用 3D 姿态估计(采用 IR 传感器数据)来追踪人类玩家的运动,从而利用它来渲染虚拟人物的动作。
5 结论
人体姿态估计领域发展迅速,因此可以应用在越来越多的任务上。另外,相关领域的研究,例如姿态追踪,可以大大增强姿态估计的应用范围。本文列举的概念并不全面,但介绍的几个算法和应用较为典型,适合入门者阅读。