任务概述
人体姿态估计任务(Human Pose Estimation, HPE)的目标是对输入的图像/视频数据中人类身体的各个部位进行定位预测,构建出人体的表示,从而提供人体相关的几何信息和运动信息。
2D人体姿态估计方法
2D HPE是该领域最早的研究方向。根据输出目标的不同,可将2D HPE方法分为基于回归的方法和基于热图(heatmap)的方法。基于回归的方法需要预测出人体各个重要部位所在的关键点(如眼睛、手肘、手腕、腰、膝盖、脚踝等)的位置,从而构造出二维的骨架图用于估计姿态,因此模型需要根据输入图像特征直接回归得到关键点的坐标位置。而基于热图的方法中,各个关键点的位置用一张热图表示,对于k个关键点,模型需要预测生成k张热力图,热力图中每个位置的像素值大小表示该位置属于目标关键点的概率。现在基于热图的方法更流行,效果也更好,这是因为基于回归的方法中从图像特征直接预测关键点坐标的过程是高度非线性的,模型学习的难度大,而基于热图的方法实质上仍是由图像预测图像的过程,训练过程更加平滑,而且热图也能一定程度上保留空间上的监督信息,模型学习效果更好。
根据场景中待检测人体数目的不同, 2D HPE方法也可被分为单人姿态估计和多人姿态估计方法,其中单人2D HPE任务中输入图像只包含一个人,当输入图像中人数多于一个时则需要使用多人2D HPE方法,这两种方法的计算流程。多人2D HPE方法可被进一步划分为自顶向下(top-down)的方法与自底向上(bottom-up)的方法。对于具有多个人物的图像输入,top-down方法首先使用现成的人类检测算法将图像中的所有人物检测出来(用bounding box框出),然后对每个bounding box应用单人2D HPE方法来分别预测出每个人的姿态,这种方法的特点是:第一步human detection的效果会影响最终结果;图像中人物个数的多少直接影响了算法的计算速度和计算量,当人数较多时,算法运算速度会十分缓慢。Bottom-up方法则先定位出图像中所有的身体关键点,再将这些关键点组合成一个个的独立个体。与top-down方法相比,bottom-up方法不需要分别检测每个人的关键点和姿态,计算开销与图片中人物数量成线性关系,相比top-down方法更快,另一方面,由于将人物框出来排除了背景的干扰,top-down方法通常会比bottom-up更好。
3D人体姿态估计方法
3D HPE的目标是从输入的图像中预测出人体各部分在三维空间中的位置,构造出人体的三维结构信息。大多数的方法从单目二维图像中输入中去进行3D HPE任务,这是一种不适定问题(解不唯一,即不同的三维姿态可能在二维空间中具有相似的投影),一些方法使用多个视图的二维图像作为输入或引入其它数据源信息进行补充,这时3D HPE是适定性问题(即存在唯一的稳定解),据此,可将3D HPE分为单视角3D HPE方法、多视角3D HPE方法以及结合其它数据源的3D HPE方法。
在单视角单人3D HPE中,有两种任务目标,一种是像2D HPE一样只预测出人体的关键点组成的骨架姿态(skeleton-only),另一种是恢复出包括三维外形在内的完整的人体网格信息(Human Mesh Recovery, HMR)。Skeleton-only方法可进一步分为直接预测方法以及2D到3D提升方法,直接预测方法一般使用端到端的预测框架,直接从输入二维图像中预测三维的关键点位置输出,而2D到3D提升方法则先引入现成的2D HPE模型预测二维的人体姿态作为中间表示,再训练使用一个提升网络从二维人体姿态预测三维人体姿态。一般来说,2D到3D提升方法的效果会更好,因为这类方法会用到SOTA的2D HPE方法生成中间表示,提供了更好的预测基础。
单视角多人3D HPE与多人2D HPE方法类似,可划分为bottom-up方法与top-down方法,利用了SOTA模型作为基础的top-down性能表现会更好,而在场景中人数较多的情况下,bottom-up的方法计算会更加高效。
单视角人体姿态估计模型面临的最大挑战是遮挡问题,当人体部分关键点位置被遮挡(不可视)时,模型难以判断这些关键点的真实位置,效果较差,如top-down方法需要先利用人体检测器将场景中的每个人单独检测出来再分别进行姿态估计,而如果多个人体之间出现遮挡/被遮挡,人体检测器无法准确地将人完整框出,进而导致姿态估计时关键点预测出现错误。针对这种遮挡问题,从多个视角去进行姿态估计是一种天然的解决方案,因为一个视角中被遮挡的部分在别的视角中可能是可视的。另外,多视角方法的一个要解决的问题是如何去建立不同视角之间对应位置的关联。
一些方法尝试引入其它数据源的信息进行3D HPE任务(即引入其它模态的信息),这些数据源包括:深度和点云传感器(提供三维空间信息)、可穿戴的惯性测量单元(提供身体各部分的运动信息)、射频设备(提供三维空间信息)等。
3D HPE方法面临的主要挑战有以下几个方面:模型泛化性:3D标注十分昂贵,现有的数据量很少,影响监督模型的效果,可考虑用游戏引擎来生成数据,但也要考虑合成数据与真实数据之间的差异;计算效率:3D HPE方法比较依赖2D HPE方法的发展,而且一般比2D HPE模型更需要算力;遮挡问题:在拥挤的多人场景下,多个人体之间可能存在复杂的遮挡关系,而现有的多视角方法或结合其它数据源的方法也难以解决。