人体姿态估计(Human Pose Estimation,下称HPE)是计算机视觉中一个很基础的问题,也是许多高层语义任务和下游应用场景的基础。顾名思义,可以理解为对“人体”的姿态(关键点,比如头,左手,右脚等)的位置估计。
HPE分为两大类:2D HPE和3D HPE。图1显示了HPE的深度学习方法的分类。根据人数,2D HPE方法分为单人和多人。对于单人,有两类基于深度学习的方法:回归方法和基于热图的方法。对于多人,也有两种方法:自顶向下方法和自下而上方法。
3D HPE方法根据输入源类型进行分类:单目RGB图像和视频或其他传感器(如惯性测量单元传感器)。这些方法中的大多数使用单目RGB图像和视频,并进一步分为单视图单人,多人单视图,以及多视图的方法。
一般来说,采用深度学习技术的单人pipeline有两类:回归方法和基于heatmap的方法。回归方法应用端到端框架来学习从输入图像到人体关节或人体模型参数的映射[231]。基于heatmap的方法的目标是预测身体部位和关节的近似位置[26][170],这些部位和关节由heatmap表示[229,251]监督。基于heatmap的框架现在广泛用于2D HPE任务。2D单人HPE方法的一般框架如图2所示。
图2 单人2D HPE框架。(a)回归方法直接学习从原始图像到运动学身体模型的映射(通过深度神经网络),并生成关节坐标。(b)基于热图的方法使用热图的监督来预测身体关节位置
有许多基于回归框架的工作([16、54、121、123、147、148、152、153、171、177、189、219、231、277])来从图像中预测关节坐标,如图2(a)所示。使用AlexNet[110]作为主干,Toshev和Szegedy[231]提出了一个名为DeepPose的级联深度神经网络回归器,用于从图像中学习关键点。与同时期的其他深度学习方法一样,DeepPose在领域内带来的影响是颠覆性的:它将2D人体姿态估计问题由原本的图像处理和模板匹配问题转化为CNN图像特征提取和关键点坐标回归问题,并使用了一些回归准则来估计被遮挡/未出现的人体关节节点。只是用关键点而未充分利用环境信息会使得网络的稳定性较差,将heatmap的监督学习转换为数字化关键点位置监督可以保持两种方法的优点。
为了提供更多的监督信息而不仅仅是关键点坐标,并促进CNN的训练,最近的工作采用了热图来指示关键点位置的Groundtruth。每个关键点占据以目标关节位置为中心的具有2D高斯分布的热图通道。此外,Papandreou et al. 在2017年提出了一种改进的关键点位置表示法,即二值激活heatmap和相应偏移量的组合。由于基于heatmap的表示方法比基于坐标的表示方法更加稳定,因此当前大多数研究都基于heatmap方法。
与单人HPE相比,多人HPE更困难、更具挑战性,因为它需要计算人数和他们的位置,以及如何为不同的人分组关键点。为了解决这些问题,多人HPE方法可以分为自顶向下和自底向上两种。自顶向下的方法使用现成的人体检测器从输入图像中获取一组框(每个框对应一个人),然后对每个人框应用单人姿态估计器来生成多人姿态。与自顶向下的方法不同,自底向上的方法首先在一张图像中定位所有身体关节,然后将它们分组到相应的目标。在自顶向下的方法中,输入图像中的人数将直接影响计算时间。自底向上方法的计算速度通常比自顶向下方法快,因为不需要分别检测每个人的姿态。2D多人HPE方法的一般框架如图3所示。
图3 2D多人HPE 框架示意图(a)自顶向下的方法有两个子任务:(1)人体检测和(2)单个人体区域的姿态估计;(b) 自下而上的方法也有两个子任务:(1)检测身体部位的所有候选关键点;(2)将不同人体部位关联起来,并将它们组合成单独的姿态
自顶向下的HPE方法的两个最重要的组成部分是人体区域候选检测器和单人HPE。
自底向上方法有两个主要步骤:身体关节检测(提取局部特征并预测人体关节候选对象);为个体身体分配关节候选对象(分组关节候选对象,使用部位关联策略构建最终姿态表示)。
随着深度学习技术的发展,2D HPE的性能得到了显著提高。近年来,更深更强大的网络增强了2D单人HPE方法的性能,如DeepPose[231]和堆叠沙漏网络[170],以及2D多人HPE方法,如AlphaPose[55]和OpenPose[15]。
回归和基于heatmap的方法在2D单人HPE中有各自的优势和局限性。回归方法可以通过端到端的框架学习从输入图像到关键点坐标的非线性映射,这提供了一种快速的学习模式和亚像素级的预测精度。但由于高度非线性的问题,通常给出的是次优解。而基于热图的框架,在2D HPE中得到了更广泛的应用,因为(1)热图中每个像素的概率预测可以提高关键点定位的准确性;(2)热图通过保存空间位置信息提供更丰富的监控信息。但预测关键点的精度取决于热图的分辨率。使用高分辨率热图时,计算成本和内存占用显著增加。
对于2D多人HPE的自顶向下和自底向上方法,很难确定哪种方法更好,因为这两种方法在近期研究中都被广泛使用,各有优缺点。一方面,自顶向下的方法能产生更好的结果,因为它首先使用检测方法从图像中检测每个个体,然后使用基于单个个体的方法预测关键点的位置。在这种情况下,随着背景基本上被移除,每个检测到的人区域内的关键点热图估计变得容易。另一方面,自底向上的方法通常比自顶向下的方法更快,因为它直接检测所有关键点,并使用关键点关联策略(如亲和力链接、关联嵌入和逐像素关键点回归)将其分组为单独的姿态。
2D HPE有几个挑战需要在未来的研究中进一步解决。首先是在显著遮挡下可靠地检测个体。对于自顶向下的方法,人体检测器可能无法识别大部分重叠人体的边界。对于自底向上方法,关键点关联的难度更大。第二是计算效率。尽管像OpenPose这样的一些方法可以在具有中等算力的特殊硬件上实现近实时处理(如在配备Nvidia GTX 1080 Ti GPU的机器上实现22 FPS),但在资源受限的设备上实现网络仍然很困难。现实世界的应用(如在线辅导、游戏、AR和VR)需要在商业设备上使用更高效的HPE方法,从而为用户带来更好的交互体验。第三是罕见姿态数据有限。尽管2D HPE当前数据集大小对于正常姿态估计(例如站立、行走、跑步)来说足够大(如COCO数据集),但这些数据集对于异常姿态(例如坠落)的训练数据有限。数据不平衡可能会导致模型偏差,导致这些姿态的表现不佳。有效的数据生成或增强技术很有用,用来生成额外的姿态数据,用于训练更鲁棒的模型。
3D HPE是一种能够预测人体关节在3D空间中位置的技术,近年来受到了广泛关注,因为它可以提供与人体相关的大量3D结构信息。有许多应用,如3D电影和动画行业、虚拟现实和在线3D动作预测等。尽管最近2D HPE取得了显著进步,3D HPE仍然是一项具有挑战性的任务。而现有的大多数研究工作都是针对单目图像或视频的3D HPE。当能够获得多视图或者部署了其他传感器(如IMU和LiDAR)时,利用信息融合技术,3D HPE可以成为一个较好解决的问题。另一个限制是深度学习模型需要大量数据,并且对数据收集环境敏感。与2D人体数据集不同,在2D人体数据集中,可以轻松获得精确的2D姿态标注,但收集精确的3D姿态标注非常耗时,手动标记也不实用。此外,数据集通常是从室内环境中收集的,并带有选定的日常动作。最近的研究[242,267,298]表明,通过跨数据集的模型推理,训练的模型泛化能力较差。
从单目图像和视频重建3D人体姿势是一项非常重要的任务,它会受到自遮挡和其他对象遮挡、深度模糊和训练数据不足的影响。这是一个严重的不确定问题,因为不同的3D人体姿势可以投影到类似的2D姿势投影。此外,对于基于2D关节的方法,2D身体关节的微小定位误差可能会导致3D空间中的较大姿态失真。与单人情况相比,多人情况更加复杂。
通过从多视图摄像机估计3D人体姿态可以缓解遮挡问题。在多视图设置中,需要处理视图关联。因此,基于深度学习的3D HPE方法分为三类:单视图单人3D HPE、单视图多人3D HPE和多视图3D HPE。
3D HPE预测与2D不同,主要有两种输出形式:1)3D skeleton,与2D类似,只是骨架信息展示在三维的坐标系中;2)3D shape or mesh,使用参数化人体模型或是三角化网格的方式展示预测的结果。下面分别介绍两种输出的相关工作:
图4 单人3D HPE框架。(a) 直接估计法:直接从2D图像估计3D人体姿态。(b) 2D到3D提升法:利用预测的2D人体姿势(中间表示)进行3D姿势估计。(c) 人体网格恢复法:结合参数化身体模型来恢复高质量的3D人体网格。由3D姿势和形状网络推断出的3D姿势和外形参数被馈送到模型回归器中以重构3D人体网格。部分图像来自[5]
3D骨架法估计3D人体关节作为最终输出。它们不使用人体网格表示3D模型。而这些方法可以进一步分为直接估计方法和2D到3D提升方法。
直接估计法:如图4(a)所示,直接估计方法从2D图像推断3D人体姿势,而不在中间过程估计2D姿势,例如[124、182、183、219、223]。Li和Chan[122]提出一种深度学习方法,采用浅层网络,通过同步滑动窗口和姿态坐标回归训练身体部位检测。Sun等人[219]提出一种结构感知回归方法。没有使用基于关节的表示法,而是采用更稳定的基于骨骼的表示法。通过利用基于骨骼表示的3D骨骼结构定义成分损失,骨骼表示由骨骼之间的远程交互进行编码。Tekin et al. (2016)预先训练了一个无监督的自编码器来学习3D姿势的高维潜在姿势表示,以添加关于人体的隐式约束,然后使用浅层网络来学习高维姿势表示。Pavlakos等人[182,183]引入了体积表示法,将高度非线性的3D坐标回归问题转化为离散空间中可管理的形式。体积中每个关节的体素可能性由卷积网络预测。人体关节的顺序深度关系被用来缓解对精确3D gt姿态的需求。
2D到3D提升:受2D HPE的启发,2D到3D提升方法(由中间估计的2D人体姿态推断3D人体姿态)已成为3D HPE流行的解决方案。得益于SOTA2D姿态检测器的出色性能,2D到3D提升方法通常优于直接估计方法。如图4(b)所示,在第一阶段中,使用现成的2D HPE模型来估计2D姿态,然后在第二阶段中使用2D到3D提升来获得3D姿态,例如[17、117、155、167、224、297]。 Martinez等人[155]提出一种简单但有效的全连通残差网络,以基于2D关节位置回归3D关节位置。尽管当时取得了最先进的结果,但由于过度依赖2D姿态检测器而导致重建模糊,该方法可能会失败。Tekin等人[224]和Zhou等人[297]使用2D热图而不是2D姿态作为估算3D姿态的中间表示。Moreno Noguer(2017)通过距离矩阵回归推断出3D人体姿态,其中2D和3D身体关节的距离被编码为两个欧几里德距离矩阵(EDMs)。EDM对平面内图像的旋转和平移保持不变,并且在应用归一化操作时具有缩放不变性。Wang等人[249]开发一种成对排序卷积神经网络(PRCNN),用于预测成对人类关节的深度排序。然后,使用由粗到精的姿态估计器从2D关节和深度排序矩阵回归3D姿态。Jahangiri和Yuille[81]、Sharma等人[214]以及Li和Lee[117]首先生成多种不同的3D姿态假设,然后应用排序网络选择最佳3D姿态。
鉴于人体姿态可以表示为一个图,其中关节是节点,骨骼是边缘,因此图卷积网络(GCN)已被应用于2D到3D姿态提升问题,并表现出良好的性能。Ci等人[42]提出一个通用框架,名为局部连接网络(LCN),利用全连接网络和GCN来编码局部关节邻域之间的关系。LCN可以克服GCN的局限性,即权重共享方案有损姿态估计模型的表示能力,并且结构矩阵缺乏灵活性,无法支持定制的节点依赖。Zhao等人[288]也解决了GCN中所有节点卷积滤波器共享权重矩阵的局限性。为了研究语义信息和语义关系,提出了语义GCN。语义图卷积(SemGConv)操作用于学习边缘的信道权重。由于SemGConv和非局部层是交错的,因此捕获了节点之间的局部和全局关系。Zhou等人[306]进一步介绍了一种新的调制GCN网络,它由权重调制和亲和度调制组成。权重调制利用不同节点的不同调制向量,从而使特征变换分离。亲和力调节探索了定义的人类骨骼以外的其他关节相关性。
视频可以提供时间信息来提高三维HPE的准确性和鲁棒性,而不是从单目图像估计三维人体姿态,例如[12,35,45,186,225,247,301,302]。Hossain和Little[200]提出了一种循环神经网络,使用具有快捷连接的长短期记忆(Long - term Memory, LSTM)单元来利用人类姿势序列中的时间信息。他们的方法利用序列对序列网络中的过去事件来预测时间一致的3D姿态。注意到空间约束和时间相关性之间的互补性质通常被之前的工作忽略,Dabral等[45],Cai等[12]和Li等。[132]利用时空关系和约束(例如骨长约束和左右对称约束)来改进序列帧的3D HPE性能。Pavllo等人[186]提出了一种时间卷积网络,用于从连续的2D序列中估计2D关键点上的3D姿态。然而,他们的方法是基于预测误差在时间上是不连续和独立的假设,这在存在闭塞[35]时可能不成立。基于[186],Chen等人[22]添加了骨方向模块和骨长度模块,以确保人体解剖在视频帧中的时间一致性,而Liu等人[141]利用注意机制识别重要帧,并在大的时间感受野中建模长程依赖性。Zeng等人[274]采用拆分重组策略来解决罕见且不可见的构成问题。该算法首先通过单独的时间卷积网络分支将人体分割为多个局部区域进行处理,然后将每个分支获得的低维全局上下文进行组合,以保持全局一致性。
Transformer架构已经成为自然语言处理的首选模式,目前在计算机视觉领域发展迅速。最近的研究表明transformer注意机制在各种视觉任务中具有强大的全局表示能力[102]。Zheng等人[294]提出了第一个纯粹基于transformer的3D HPE方法,不涉及卷积架构。空间转换模块编码人体关节间的局部关系,时间转换模块捕获整个序列中帧间的全局依赖关系。Li等[125]提出了一种 strided transformer encoder(STE),以减少序列冗余和计算成本。将姿态序列的长序信息聚合为一个包含局部和全局相关性的向量表示。Li等人[126]进一步设计了一个multi-hypothesis transformer,以利用多个姿态假设的时空表征。Zhao等人[291]集成了带有图卷积的transformer 架构,以使用更少的参数来捕获人体运动学的结构化和隐式联合关系。
对于3D可视化而言,skeleton显然无法满足大多数的应用场景,比如人机交互,AR、VR等领域,可能需要更dense的人体姿态估计结果展示。所以近几年开始,3D skeleton开始往3d shape发展。主要的思路也有两种:1)参数化人体模型,采用事先定义好的人体模型(eg:SMPL)来表示3D shape,网络只需要得出模型的参数,然后利用参数进行可视化展示;2)dense keypoints,预测得到更多的关键点,甚至是得到类似3D重建的效果,然后进行网格化的可视化表示。如图5©所示。利用模型定义的关节回归矩阵可以得到3D姿态。
SMPL模型是目前最流行的体积模型之一,由于与现有的渲染引擎兼容,SMPL模型[144]在3D HPE中得到了广泛的应用,如[5,9,89,106,111,120,166,262,280,281,303]。Tan等[239],Tung等[234],Pavlakos等[185]和Omran等[175]对SMPL参数进行回归,重建三维人体网格。Kolotouros等人[107]使用Graph-CNN架构回归了SMPL网格顶点的位置,而不是预测SMPL参数。Kocabas等人[103]采用了大规模动作捕捉数据集AMASS[151],用于对他们的基于smpl的方法进行对抗训练,该方法名为VIBE(身体姿态和形状估计的视频推断)。VIBE利用AMASS来区分真实的人体运动和由姿势回归模块预测的姿势。由于在现实场景中,低分辨率的视觉内容比高分辨率的视觉内容更常见,所以当分辨率降低时,现有的训练有素的模型可能会失败。Xu等人[262]将对比学习方案引入到基于自我监督分辨率感知的smpl网络中。自监督对比学习方案利用自我监督损失和对比特征损失来加强特征和尺度的一致性。Choi等人[37]提出了一种时间一致的网格恢复系统(命名为TCMR),可以从视频中产生时间一致且平滑的3D人体运动输出。Kolotouros等人[108]提出了一种概率模型,利用条件归一化流从二维证据中恢复三维人体网格。
最近有一些在HMR中利用 transformer架构的尝试。Lin等人提出了METRO[135]和MeshGraphormer[136],将CNNs与 transformer结合起来,从单个图像中回归SMPL网格顶点。然而,METRO和MeshGraphormer追求更高的精度,同时牺牲计算和内存。Zheng等[293]设计了一种基于 transformer的轻量级方法,该方法可以从二维人体姿态重构人体网格,显著降低了计算和存储成本。
除了使用基于smpl的模型,其他模型也被用于恢复3D人体姿态或网格,例如[194,211,243]。Chen等人[36]引入圆柱体人模型为3D数据生成遮挡标签,并进行数据增强。引入姿态正则化项来惩罚错误估计的遮挡标记。Wang等人[243]提出了一种新的骨骼层次的人体网格蒙皮模型,该模型通过设置骨骼长度和关节角度来解耦骨骼建模和身份特异性变化。Fisch和Clark[57]引入了一个方向关键点模型,该模型可以计算6D HPE的三轴关节旋转,包括yaw, pitch和 roll。
对于单视图RGB图像或视频的3D多人HPE,与2D多人HPE类似的分类是:自上而下的方法和自下而上的方法,分别如图5 (a)和图5 (b)所示。2.2节中2D自顶向下和自底向上方法的比较适用于3D情况。
自顶向下的3D多人HPE方法首先进行人体检测,即先检测每个人的个体。然后对每一个被检测的个体,所有姿态的坐标都与世界坐标对齐。Rogez等人[206]对每个人的候选区域进行了定位,以生成潜在的姿态,并使用回归器联合提取姿态proposal。Rogez等人[207]提出了LCR-Net++,利用合成数据增强训练数据来提高性能。Zanfir等[272]在带有场景约束的3D多人HPE模块中加入了语义分割。此外,采用匈牙利算法解决了基于视频的多人3D HPE的三维时间分配问题。
Moon等人[164]引入了一种相机距离感知方法,将裁剪后的人体图像输入到他们提出的RootNet中,来估计以相机为中心的人体坐标。然后利用所提出的PoseNet估计每个被裁剪的人的相对3D姿态。Benzine等人[8]提出了一种名为PandaNet的单目方法。为了避免遮挡问题,引入了一种低分辨率的基于锚点的表示方法。开发了姿态感知锚点选择模块,通过去除模糊锚点来解决重叠问题。利用不同规模的损失自动加权来处理不同规模的人的不平衡问题。Li等人[118]采用了一种分层多人顺序关系方法,利用身体层面的语义一致性和全局一致性对交互信息进行分层编码。
3.1.2.2 自底向上
自顶向下方法相比,自底向上方法首先生成所有身体关节位置和深度图,然后根据各部位相对深度将每个人的身体部位关联起来。自底向上的方法面临的一个关键挑战是,如何将属于每个人的人体关节分组。Zanfir等[273]将人的分组问题表述为一个二进制整数规划(BIP)问题。使用肢体评分模块对检测到的关节进行候选运动连接估计,通过解决BIP问题,使用骨骼分组模块将肢体组装成骨骼。Nie等人[174]提出了一种单阶段多人姿态机(single stage multi-person Pose Machine, SPM)来定义每个人唯一的身份根关节。利用密集位移图将身体关节与每个根关节对齐。但是该方法的局限性在于,只有成对的2D图像和3D姿势标注才能用于监督学习。在没有成对的2D图像和3D姿势注释的情况下,Kundu等人[112]提出了一种冻结网络,在一种实际部署范式下利用两种不同模式之间的共享潜在空间,从而可以将学习视为跨模型对齐问题。Fabbri等人[53]开发了一种基于距离的启发式方法,用于在多人环境中连接关节。具体来说,从检测到的头部(即置信度最高的关节)开始,根据三维欧氏距离选择距离最近的关节进行连接。Chen等人在他们的方法中集成了自顶向下和自底向上的方法。自顶向下的网络首先估计每个边界框内的关节热图,然后自底向上的网络合并估计的关节热图来处理比例尺变化。
自底向上方法的另一个挑战是遮挡。为了应对这一挑战,Metha等人[158]开发了一种遮挡鲁棒姿态图(Occlusion-Robust pose -map, ORPM)方法,将冗余纳入位置图公式,从而促进热图中的人物关联,特别是在遮挡场景中。Zhen等人[292]利用深度感知的部分关联算法,通过推理人与人之间的遮挡和骨长度约束,将关节分配给个体。Mehta等人[157]在不考虑精度的情况下,快速推断出可见身体关节的中间3D姿态。然后,利用学习到的姿态先验和全局环境,通过推断被遮挡关节来重建完整的三维姿态。利用时间相干性和拟合运动学骨骼模型,对最终的三维姿态进行优化。
自顶向下的方法通常依靠最先进的人检测方法和单人HPE方法获得良好的结果。但随着人的增加,特别是在拥挤的场景中,计算复杂度和推理时间可能会变得过大。此外,由于自顶向下的方法首先检测每个人的边界框,场景中的全局信息可能会被忽略。裁剪区域的深度估计可能与实际的深度排序不一致,预测的人体可能被放置在重叠的位置。相反,自底向上方法具有线性计算和时间复杂度。然而,如果目标是恢复三维人体网格,自底向上的方法重建人体网格并不简单。对于自顶向下的方法,在检测出每个个体后,结合3D单人人体网格恢复方法,即可轻松恢复每个个体的人体网格。而自底向上的方法则需要额外的模型回归模型来基于最终的三维姿态重建人体网格。
局部遮挡是单视图环境下三维 HPE的一个难题。克服这个问题的自然解决方案是从多个视图估计三维人体姿势,因为遮挡部分在一个视图可能在其他视图中变得可见。为了从多个视角重建三维姿态,需要解决不同摄像机之间对应位置的关联问题。由于多视图设置主要用于多人姿态估计,所以我们没有在此类别中指定单人或多人。
Rhodin等[205]在网络中采用了多视图一致性约束,但它需要大量的3D ground-truth训练数据。为了克服这个限制,Rhodin等进一步提出了一种encoder-decoder框架,用于学习多视图图像的几何感知三维潜在表示。
Chen等人[25],Dong等人[48],Chen等人[19],Mitra等人[161],Iqbal等人[79],Zhang等人[284],Huang等人[69]提出了多视角匹配框架,在一致性约束下重建所有视点的3D人体姿态。Pavlakos等人[184]和Zhang等人[287]基于所有标定的相机参数,将多视角图像的二维关键点热图聚合为一个三维图形结构模型。然而当多视角摄像机环境发生变化时,需要对模型进行再训练。Liang等[133]和Habermann等[64]从多视图图像中推导出非刚性三维变形参数来重建三维人体网格。Kadkhodamohammadi和Padoy [98], Qiu等人[197]和Kocabas等人[105]利用极线几何来匹配配对的多视图位姿进行三维位姿重建,并将他们的方法推广到新的多视图相机环境中。需要注意的是,如果没有周期一致性约束,单独匹配每对视图可能会导致不正确的3D姿态重建[48]。Tu等人[233]在3D体素空间中聚合了每个摄像头视图中的所有特征,以避免每个摄像头视图中的错误估计。设计立方体建议网络和姿态回归网络,分别对所有人进行定位和估计三维姿态。当给出足够的视点(超过10个)时,使用所有视点进行3D姿态估计是不实际的。Pirinen等人[190]提出了一种自监督强化学习方法,通过三角测量选择一小组视点来重建3D姿态。Wang等人[250]提出了一种基于 transformer的模型,该模型可以在不依赖任何中间任务的情况下,从多视图图像中直接回归出3D姿态。提出的多视图位姿转换器(Multi-view Pose transformer, MvP)用于表示多人关节的query embedding,采用一种融合多视角信新息的几何引导注意机制。
近年来,3D HPE技术取得了重大进展。由于大量的三维HPE方法采用了二维到三维的提升策略,二维HPE的进步使得三维HPE的性能得到了很大的提高。一些2D HPE方法如OpenPose [15], AlphaPose[55],以及HRNet[218]在3D HPE方法中被广泛用作2D位姿检测器。除了三维姿态,一些方法也可以从图像或视频中恢复三维人体网格,如[103,106,275,296]。然而,尽管到目前为止取得了进展,仍然存在一些挑战。
一个挑战是模型的泛化。高质量的3D ground truth姿态标注依赖于运动捕捉系统,而这些系统在随机环境中很难部署。因此,现有的数据集主要捕获在受限场景中。最先进的方法可以在这些数据集上取得很好的结果,但当应用于野外数据时,它们的性能会下降。利用游戏引擎可以生成具有不同姿势和复杂场景的合成数据集,例如,SURREAL数据集[237]和GTA-IM数据集[14]。但是,由于合成数据分布与真实数据分布之间的差距,从合成数据学习可能无法达到预期的性能。
与二维HPE一样,遮挡的鲁棒性和计算效率也是三维HPE面临的两个关键挑战。目前的3D HPE方法在拥挤的场景中,由于严重的相互遮挡和可能每个人的分辨率较低的内容,性能下降了很多。三维HPE比二维HPE的计算量大。例如,2D到3D的升降方法依赖于2D姿势作为推断3D姿势的中间表示。在保持较高姿态估计精度的同时,开发计算效率高的二维HPE 的pipeline是至关重要的。
虽然在2014年之前,2D HPE任务已经使用了多个数据集,但由于缺乏不同的物体运动和数据有限等缺点,近期只有少数作品使用这些数据集。由于基于深度学习的方法受到大量训练数据的推动,本节主要讨论最近流行的大规模二维人体姿态数据集。
表1 2D HPE数据集
Frames Labeled In Cinema(FLIC)数据集:早期基于图像的2D HPE数据集之一,包含5003张图像(好莱坞电影中收集)。大约4000张用做训练集,其余用做测试集。使用Poselets的身体部位检测器,从电影中获取的完整帧集称为FLIC完整数据集。它是原始FLIC数据集的超集,包含20928个遮挡的非正样本。
Leeds Sports Pose(LSP)数据集:包含来自Flickr的2000张带标注的图像和8个运动标签,涵盖不同的运动项目,包括田径、羽毛球、棒球、体操、跑酷、足球、网球和排球。在LSP数据集中,每个人的全身总共有14个关节。LSP Extended扩展了LSP,仅用于训练。LSP扩展数据集拥有来自Flickr的超过10000张图像。在近期研究中,LSP和LSP扩展数据集已用于单人HPE。
Max Planck Institute for Informatics(MPII)人体姿态数据集:用于评估铰接式HPE的流行数据集。包括约25000张图像,其中包含超过4万个带标注的身体关节的个体。在文261的基础上,通过两级分层方法系统地收集图像,以捕捉日常人类活动。整个数据集涵盖410项人类活动,所有图像都有标签。每个图像都是从YouTube视频中提取的,并提供了前后未加注释的帧。此外,亚马逊Mechanical Turk上的工作人员还标记了丰富的注释,包括身体部位遮挡、三维躯干和头部方向。MPII中的图像适用于2D单人或多人HPE。
Microsoft Common Objects in Context(COCO)数据集:是使用最广泛的大型数据集。它有超过33万张图像和20万个带有关键点的标注对象,每个人都有17个关节。COCO数据集不仅用于姿态估计和分析,还用于自然环境目标检测和图像分割、上下文识别等。对于HPE,COCO数据集有两个版本:COCO keypoints 2016和COCO keypoints 2017,区别在于训练、验证和测试的划分。COCO数据集已广泛用于多人HPE工作。此外,Jin等人[91]提出了具有HPE全身标注的COCO全身数据集。
AI Challenger Human Keypoint Detection(AIC-HKD)数据集:是目前最大的2D HPE训练数据集。它有30万张标注图像用于关键点检测。有21万张用于训练,3万张用于验证,60多万张用于测试。这些图片来自互联网搜索引擎,主要关注人们的日常活动。
CrowdPose数据集:是在拥挤环境下2D HPE的最新数据集之一。该数据集包含从3万张具有拥挤指数的图像中选择的2万张图像(测量满足均匀分布以此判断图像中的拥挤程度)。训练、验证和测试数据集分别有1万张、2000张和8000张。
OCHuman数据集[0]:该数据集侧重于严重遮挡的人类,具有全面的注释,包括边界框,姿势和实例蒙版。此数据集包含 5081 张图像中 13360 个人形实例。是与人类相关的最复杂,最具挑战性的数据集。
Penn Action数据集:由2326个视频序列组成,其中包含15种不同的动作和人类关节标注。这些视频包含带有运动动作标注的框架:棒球场、棒球挥杆、网球正手、网球发球、板凳推举、保龄球、挺举、高尔夫挥杆、跳绳、跳高、引体向上、俯卧撑、仰卧起坐、蹲下和弹拨吉他。图像的标注使用Amazon Mechanical Turk进行标记。
Joint-annotated Human Motion Database(J-HMDB):用于动作识别、人体检测和HPE的完全标注视频数据集。共有21个动作类别,包括刷毛、接球、拍手、爬楼梯、高尔夫、跳跃、踢球、挑、倒、上拉、推、跑、投篮、射弓、射枪、坐、站、挥棒、扔、走和挥手。共有928个视频剪辑,包括31838个带标注的帧。基于Amazon Mechanical Turk,采用2D铰接式人偶模型生成所有标注。J-HMDB数据集中70%的图像用于训练,其余用于测试。
PoseTrack数据集:用于视频分析中的多人姿态估计和关节跟踪的大型数据集。视频中的每个人都有一个带有标注的唯一跟踪ID。PoseTrack包含1356个视频序列、约46000个带标注的视频帧和276000个用于训练、验证和测试的人体姿态标注。此外,Jin等人[91]提出了用于HPE的带有全身注释的COCO-WholeBody Dataset。
由于需要考虑的特征和需求很多(如人体上半身/全身、单/多人姿态估计、人体大小),所以很难准确评估HPE的性能。因此,许多评价指标被用于2D HPE。这里我们总结一下常用的几种。
Percentage of Correct Parts (PCP) [51]:2D HPE早期工作中常用的一种测量方法,它评估棍状预测,用来报告肢体的定位精度。当预测关节和gt关节之间的距离小于肢体长度的一部分(介于0.1到0.5之间)时,确定肢体的定位。在一些工作中,PCP测量也被称为[email protected],其中阈值为0.5。这一指标用于LSP数据集的单人HPE评估。然而PCP并没有在近期研究中得到广泛应用,因为它会惩罚难以检测的短肢。当模型的PCP测量值较高时,它的性能会更好。为了解决PCP的缺点,[231]引入了Percentage of Detected Joints(PDJ),如果预测关节和gt关节之间的距离在躯干直径的特定部分内,则认为预测关节被检测到。
Percentage of Correct Keypoints (PCK) [268]:用于测量给定阈值内不同关键点的定位精度。阈值设置为每个测试图像头段长度的50%,表示为[email protected]。当检测到的关节和真实关节之间的距离小于躯干直径的0.2倍时,表示为[email protected]。PCK值越高,模型性能越好。
Average Precision (AP) and Average Recall (AR)。AP测量是根据精确度(TP结果与总TP结果的比率)和召回率(TP结果与总的gt Positive结果的比率)来衡量关键点检测准确性的指标。AP计算召回率在0到1之间的平均精度值。AP有几个类似的变种。如,在[268]中引入Average Precision of Keypoints(APK)。Mean Average Precision(mAP)是所有类别的平均精度的平均值,是MPII和PoseTrack数据集上广泛使用的指标。AR是COCO关键点评估中使用的另一个指标。Object Keypoint Similarity(OKS)在目标检测中起着与IoU相似的作用,用于AP或AR。该度量是根据目标的规模以及预测点和gt点之间的距离计算的。COCO评估通常使用跨越10个OKS阈值的mAP作为评价指标。
表2 2D单人HPE方法在MPII数据集上的比较([email protected])。H:heatmap; R:回归
注:[76]、[218]、[127]、[13]、[206]、[130]为2D多人HPE方法,此处也适用于单人情况
单人2D HPE:表2显示了使用[email protected] 在MPII数据集上不同2D单人HPE方法的比较结果。虽然基于热图和基于回归的方法都有很好的结果,但它们在2D单人HPE中有自己的局限性。回归方法可以通过一个端到端的框架学习从输入图像到关键点坐标的非线性映射,它提供了一个快速的学习范式和亚像素级的预测精度。然而,由于问题的高度非线性,它们通常给出次最优解[148]。基于热图的方法优于基于回归的方法,在二维HPE中应用更为广泛[127][13][148],因为:(1)热图中每个像素的概率预测可以提高关键点定位的精度;(2)热图保留了空间位置信息,提供了更丰富的监督信息。然而,关键点的预测精度取决于热图的分辨率。当使用高分辨率热图时,计算成本和内存占用显著增加[218]。
表3 2D多人HPE方法在COCO数据集上的比较(AP)。Extra:额外的数据用于训练。T:自顶向下;B:自底向上
[127]Wenbo Li, Zhicheng Wang, Binyi Yin, Qixiang Peng, Yuming Du, Tianzi Xiao, Gang Yu, Hongtao Lu, Yichen Wei,and Jian Sun. 2019. Rethinking on multi-stage networks for human pose estimation. arXiv preprint arXiv:1901.00148(2019)
[276]Feng Zhang, Xiatian Zhu, Hanbin Dai, Mao Ye, and Ce Zhu. 2020. Distribution-aware coordinate representation for human pose estimation. In CVPR.
[13] Yuanhao Cai, Zhicheng Wang, Zhengxiong Luo, Binyi Yin, Angang Du, Haoqian Wang, Xinyu Zhou, Erjin Zhou,Xiangyu Zhang, and Jian Sun. 2020. Learning Delicate Local Representations for Multi-Person Pose Estimation. arXiv preprint arXiv:2003.04030 (2020).
[264] Sen Yang, Zhibin Quan, Mu Nie, and Wankou Yang. 2021. Transpose: Keypoint localization via transformer. In ICCV
[130] Yanjie Li, Shoukui Zhang, Zhicheng Wang, Sen Yang, Wankou Yang, Shu-Tao Xia, and Erjin Zhou. 2021. TokenPose: Learning Keypoint Tokens for Human Pose Estimation. In ICCV. 11313–11322.
多人2D HPE:表3给出了不同2D HPE方法在COCO数据集测试开发集上的实验结果,并总结了每种方法的实验设置(额外数据、模型主干、输入图像大小)和AP得分。比较实验突出了自顶向下和自底向上方法在多人HPE中的显著结果。据推测,自顶向下的pipeline会产生更好的结果,因为它首先使用检测方法从图像中检测每个个体,然后使用单人HPE方法预测关键点的位置。在这种情况下,每个被检测到的人的关键点估计变得更容易,因为背景很大程度上被删除了。但另一方面,自底向上方法通常比自顶向下方法更快,因为它直接检测出所有的关键点,并利用关键点关联策略将关键点分组为单个姿态。
与众多具有高质量注释的2D人体姿态数据集相比,为3D HPE数据集获取准确的3D注释是一项具有挑战性的任务,需要像MoCap和可穿戴IMU这样的运动捕捉系统。由于这一需求,许多3D姿势数据集是在受限环境中创建的。下面我们只回顾几个广泛使用的基于深度学习的3D HPE的大规模3D姿态数据集。
表4 3D HPE的数据集。
Human3.6M[77]是从单目图像和视频中提取的用于3D HPE的室内数据集。11名专业演员(6男5女)在室内实验室环境中,从4个不同的角度表演17项活动(如吸烟、拍照、打电话)。该数据集包含360万个带有3D ground truth 注释的3D人体姿势,由精确的基于标记的动作捕捉系统捕获。
MPI-INF-3DHP[156]由多摄像机工作室中的商业无标记动作捕捉系统捕获。有8位演员(4男4女)表演8种人类活动,包括行走、坐姿、复杂的运动姿势和动态动作。来自14个摄像机的超过130万帧画面被记录在一个绿屏工作室,它允许自动分割和增强。
MuPoTS-3D[158]是一个多人3D测试集,它的ground truth 3D姿势由一个包含20个真实场景(5个室内和15个室外)的多视图无标记动作捕捉系统捕获。在一些户外镜头中,有一些带有遮挡、剧烈光照变化和镜头耀斑的具有挑战性的样本。8名受试者在20个序列中收集了超过8000帧。还有一些其他的数据集包括HumanEva [215], CMU Panoptic Dataset [94], TotalCapture [232],MuCo-3DHP Dataset [158], 3DPW [240], AMASS [151], NBA2K [304], GTA-IM[14],和Occlusion-Person[287]。这些数据集的汇总如表4所示。
MPJPE (Mean Per Joint Position Error)是目前应用最广泛的评价三维HPE性能的指标。MPJPE是利用估计的三维关节与ground truth位置之间的欧氏距离计算的
PMPJPE又称重建误差(Reconstruction Error),是对估计姿态和真实姿态进行后处理后的刚性对齐后的MPJPE。
MPVE (Mean Per Vertex Error)[185]用于度量ground truth顶点与预测顶点之间的欧氏距离。
3DPCK是2D HPE评估中使用的正确关键点百分比(PCK)度量的3D扩展版本。如果估计值与ground truth之间的距离在某个阈值内,则认为估计的关节是正确的。通常,阈值设置为150毫米。
4.6 3D HPE方法的性能比较
表5 Human3.6M数据集上不同3D单视图单人HPE方法的比较。
(在Skeleton-only中,“Direct”表示直接估计三维姿态的方法,“Lifting”表示将2D提升到3D的方法。)
[294]Ce Zheng, Sijie Zhu, Matias Mendieta, Taojiannan Yang, Chen Chen, and Zhengming Ding. 2021. 3D Human Pose Estimation with Spatial and Temporal Transformers. ICCV (2021).
[126] Wenhao Li, Hong Liu, Hao Tang, Pichao Wang, and Luc Van Gool. 2021. MHFormer: Multi-Hypothesis Transformer for 3D Human Pose Estimation. arXiv preprint arXiv:2111.12707 (2021).
单视图单人:在表5中,可以看出大多数3D单视图单人HPE方法在Human3.6M数据集上以显著的精度估计3D人体姿势。然而,尽管Human3.6M数据集有大量的训练和测试数据,但它只包含在实验室环境中执行17项活动的11名参与者。在具有更复杂场景的数据上估计三维姿态时,这些方法的性能会迅速下降。从视频中估计3D姿态可以获得比从单个图像更好的性能,因为保持了时间一致性。
对于纯骨架方法,2D到3D提升方法通常优于直接估计方法,因为最先进的2D姿态检测器具有优异的性能。除了估计关节的三维坐标外,还有一组方法利用SMPL等体积模型来恢复人体网格。这些方法仍然报告关节的MPJPE,因为数据集不提供ground truth网格顶点。
表6 MuPoTS-3D数据集上不同3D单视图多人HPE方法的比较
[164] Gyeongsik Moon, Juyong Chang, and Kyoung Mu Lee. 2019. Camera Distance-aware Top-down Approach for 3D Multi-person Pose Estimation from a Single RGB Image. In ICCV.
[33] Yu Cheng, Bo Wang, Bo Yang, and Robby T. Tan. 2021. Graph and Temporal Convolutional Networks for 3D Multi-person Pose Estimation in Monocular Videos. AAAI 35, 2 (May 2021), 1157–1165.
[34] Yu Cheng, Bo Wang, Bo Yang, and Robby T. Tan. 2021. Monocular 3D Multi-Person Pose Estimation by Integrating Top-Down and Bottom-Up Networks. In CVPR. 7649–7659.
单视图多人:由于遮挡更严重,估计多人的3D姿态比单人更困难。如表6所示,近年来,单视图多人HPE方法取得了良好进展。由于最先进的人员检测方法和单人HPE方法,自顶向下方法的性能优于自底向上方法。另一方面,自底向上方法计算量更大,时间效率更高。
表7.Human3.6M数据集上不同3D多视图HPE方法的比较。
[287]Zhe Zhang, Chunyu Wang, Weichao Qiu, Wenhu Qin, and Wenjun Zeng. 2020. AdaFuse: Adaptive Multiview Fusionfor Accurate Human Pose Estimation in the Wild. IJCV (2020).
[149] Haoyu Ma, Liangjian Chen, Deying Kong, Zhe Wang, Xingwei Liu, Hao Tang, Xiangyi Yan, Yusheng Xie, Shih-Yao Lin, and Xiaohui Xie. 2021. Transfusion: Cross-view fusion with transformer for 3d human pose estimation. BMVC (2021).
[201] N Dinesh Reddy, Laurent Guigues, Leonid Pishchulin, Jayan Eledath, and Srinivasa G Narasimhan. 2021. TesseTrack: End-to-End Learnable Multi-Person Articulated 3D Pose Tracking. In CVPR. 15190–15200.
多视图:通过比较表5和表7的结果,很明显,与使用相同数据集和评估指标的单视图3D HPE方法相比,多视图3D HPE方法的性能有所提高。通过多视图设置可以减轻遮挡和深度模糊。