2021 ArXiv 人体姿态回顾
本文几乎为机翻,原文来自https://arxiv.org/pdf/2110.06877.pdf
1.人体姿态估计 (HPE) 简介
人体姿态估计 (HPE) 现象是多年来一直在探索的问题,尤其是在计算机视觉领域。 但它到底是什么? 要回答这个问题,首先必须了解姿势的概念。 姿势可以定义为人体关节以特定方式排列。 因此,我们可以将人体姿态估计问题定义为人体关节的定位或图像和视频中的预定义地标。 姿态估计有多种类型,包括身体、面部和手部(见图 1.1),以及它的许多方面。 本文的其余部分将介绍它们,从第 2 节开始,介绍 HPE 的经典方法和第一个基于深度学习的模型。

2.HPE深度学习与以及之前所做的工作
2.1 HPE的经典方法

深度学习是一种使用多层人工神经网络来处理复杂数据的机器学习,如今已广泛用于 HPE。 但是,在实施之前,正在使用其他方法,如下所示:
图形结构模式
该框架通过将刚体部分的空间相关性表示为树结构图形模型来模拟刚体部分的空间相关性,以预测身体关节的位置。 这些空间连接通过使用弹簧来显示,零件是基于图像的外观模板。 通过使用像素位置和方向参数化零件,生成的结构可以对关节进行建模。 有关此模型的可视化表示,请参见图。
然而,这种方法的一个问题是它无法捕捉不可见和可变形身体部位之间的相关性,这意味着如果不是人的所有四肢都可见,模型很容易出错。 它也不依赖于图像数据。 2.1a。
灵活的零件混合 (FMP)
这种方法使用可变形部分模型,这些模型是在图像中匹配并以可变形配置排列的模板集合。 此外,每个模型都有全局和部分模板。 主要思想是混合使用小的、无方向的部分,而不是使用一系列扭曲的、旋转和缩短的模板。 其原因与肢体出现方式的变化和视点的变化有关。

FMP 同时捕获零件位置之间的空间关系和零件混合物之间的共现关系,从而产生仅编码空间关系的图形结构模型。 通过动态编程,模型在相似的 warp 之间共享计算,使这种方法不仅速度快,而且效率高。 此外,他们通过局部零件混合物的组合对一组指数级的全局混合物进行建模,以学习局部刚性的概念,并捕捉全局几何对局部外观的影响,这意味着零件的外观在不同的 地点。 该模型的直观表示请参见图 2.1b,它与图形结构模型之间的比较请参见图 2.2。
FMP 能够很好地表达复杂的关节关系,因此它也可以很好地模拟关节。 然而,它也有它的问题,包括有限的表现力和没有考虑到全局语境。
方向梯度的边缘、颜色直方图、轮廓和直方图是应用于 HPE 早期作品的其他特征,并作为不同经典模型的主要构建块来确定身体部位的准确位置 [5]。
经典方法的一般问题包括泛化能力差和身体部位检测不准确。 因此,实施深度学习来解决这些问题 [5]。

2.2 卷积姿态机中的深度学习
姿势机由一系列多类预测器组成,这些预测器经过训练可以预测每个层次结构中每个部分的位置。 它还有一个图像特征计算模块和一个预测模块,两者都可以用卷积架构代替,从而允许直接从数据中学习图像和上下文特征表示。 这个想法导致了卷积姿态机 (CPM),这是第一个基于深度学习的姿态估计模型 [6]。
CPM 是完全可微分的,这使得它的多阶段架构可以使用反向传播(一种用于训练前馈神经网络的算法)进行端到端的训练。 此外,其由卷积网络组成并学习隐式空间模型的顺序预测框架利用前一阶段的信念图上更大的感受野,这有助于学习部件之间的远程空间关系,并由于越来越精细的估计而提高了准确性 后期阶段的零件位置(见图 2.3)[6] [7] [1]。 梯度消失的问题,即当反向传播的梯度通过网络的许多层时强度降低时,通过每个阶段之后的中间监督来解决[7]。

CPM 的第一阶段通过使用由 7 个总卷积层组成的深度卷积网络,仅使用局部图像证据来预测部分信念。 在这个阶段创建的信念图在被几个卷积层处理之前被添加到输入数据中。 在后期阶段,有效感受野会增加,以帮助提高准确性 [7]。 有关 CPM 架构的概述,请参见图 2.4。总体而言,这种方法允许体系结构学习图像特征和图像相关空间模型以用于预测任务,而无需图形模型风格推断 [6]。
3. 准确性与指标
3.1 精度的定义和度量的概念
准确度的定义是通过计算机器学习模型的算法性能值来评估机器学习模型[8]。 有许多评估指标可用于进行这些计算,详见 3.2 小节。 其原因是因为在评估人体姿态估计模型的性能时需要考虑许多特征和要求 [9]。 因此,换句话说,模型的准确性是通过使用指标来定义的,这意味着指标是量化模型准确性的一种方式。
3.2 HPE的不同指标
如前所述,有几个指标用于评估 HPE 模型的性能。 下面列出了其中的一些:
• Intersection Over Union (IoU) [10]:这是一个度量标准,用于发现真实注释和预测边界框之间的差异。 根据分配的阈值(通常为 0.5)删除任何不必要的框
• 正确部件百分比 (PCP) 和检测到的关节百分比 (PDJ)[9] [8]:PCP 是一种现在不常用的度量标准,但其目的是报告肢体的定位精度。 这是在预测关节和真实关节之间的距离小于肢体长度的一小部分时确定的,肢体长度介于 0.1 和 0.5 之间。 如果阈值为 0.5,则 PCP 度量称为 PCP@0.5。 更高的 PCP 测量值意味着更好的性能。 然而,这个度量的一个限制是它对于长度较短的肢体是不准确的。 正因为如此,实现了PDJ,它遵循与PCP相同的逻辑; 如果预测关节和真实关节之间的距离在躯干直径的一定比例范围内,则该关节被视为正确检测到。 使用该指标意味着确定所有关节的准确性基于该阈值。
• 正确关键点百分比(PCK)[9]:该指标用于衡量不同关键点在特定阈值内的定位精度。 它被设置为每个测试图像头部段长度的 50%。 回到 PDJ,当检测到的关节与真实关节之间的距离小于躯干直径的 0.2 倍时,称为 PCK@0.2。 PCK 值越高,性能越好。
• 平均精度 (AP) [9] [11] [12]:AP 根据精度来衡量关键点检测的准确度,即真阳性结果与总阳性结果的比率。 换句话说,预测有多准确。 因此,AP 指标是在各种 IoU 阈值下所有召回值介于 0 和 1 之间的精度平均值。
– 平均平均精度 (MAP) [9] [11] [12] 是整个模型中多个 IoU 阈值下所有类的平均精度的平均值。
• 平均召回率 (AR) [9] [11] [12]:AR 根据召回率测量关键点检测的准确度,即真阳性结果与地面真值阳性总数的比率。 换句话说,模型发现了多少真阳性。 因此,AR 指标是在各种 IoU 阈值下所有介于 0 和 1 之间的召回值的召回平均值。
– 平均召回率 (MAR) [9] [11] [12] 是整个模型中多个 IoU 阈值下所有类的平均召回率平均值。
• 对象关键点相似度 (OKS) [8] [13]:该指标是所有对象关键点的平均关键点相似度。 它是根据对象的规模以及预测点和地面实况点之间的距离来计算的。 尺度和关键点常数需要对每个关键点给予同等重视。 每个关键点都有一个从 0 到 1 的相似度值,OKS 是所有关键点上所有这些值的平均值。 该指标还有助于查找 AP 和 AR。
• 平均每关节位置误差 (MPJPE) [9]:这是 3D HPE 使用最广泛的度量。 通过使用估计的 3D 关节和真实位置之间的欧几里得距离计算如下:

where N is the number of joints, Ji and J ∗ i are the ground truth position and the estimated position of the ith joint, respectively.
4. 人体姿态估计的标准和分类
4.1 标准表
HPE 中的标准是指用于进行估计的地标的数量,这意味着需要定位的人体关节或预定义地标的数量。 这个数字因所进行的姿势估计类型和方法本身而异。 表 4.1 列出了身体、面部和手部姿势估计的几种方法,以及它们使用的相应地标数量。 请参阅图 4.1 以获取相同类型的姿势估计示例,这些示例在使用的地标数量上有所不同。

如表 4.1 所示,大多数人脸姿态估计方法使用 68 个界标,因为除了 MediaPipe Face Mesh 之外,寻找使用除 68 个以外的许多人脸界标的算法被证明是不成功的。 但是,如果方法使用其中一个人脸数据集进行训练,而不使用 68 个地标标记其图像,那么除了使用 468 个地标的 MediaPipe 人脸网格方法之外,将产生具有 68 个以外的地标的结果标准。类似地, 所有用于手部姿势估计的方法每只手使用 21 个地标,因为寻找使用除每只手 21 个以外的多个手部地标的算法也被证明是不成功的。 如果方法使用其中一个数据集进行训练,而不是使用每只手使用 21 个地标来标记其图像,那么将产生的标准具有除每只手 21 个之外的许多地标。 第 5 节介绍了 HPE 中不同类型的数据集。

4.2 HPE的分类
一种对不同类型的姿态估计进行分类的方法是基于分辨率和地标的数量,因为这反映了正在进行的姿态估计的类型,即手、脸或身体。 由于这些估计的属性,这种方法是有意义的,在下面进行分类时将突出显示。
• 第一类:具有多达 30 个地标的低分辨率
– 如果要识别的地标不多,则低分辨率足以完成此任务。 这适用于身体姿势估计,因为大多数情况下有大约 20 个地标,而有些情况则略多于 30 个,如表 4.1 所示。 此外,身体姿态估计中普遍存在的遮挡和复杂姿态问题由大感受野处理,不需要高分辨率; 因此,低分辨率足以识别地标[16]。
• 第二类:密集姿势的高分辨率
– 如果有超过 30 个又大又密集的地标,则需要更高的分辨率来准确定位它们。 人脸姿态估计案例通常有 68 个路标,其中一个有 468 个,如表 4.1 所示。 类似地,手部姿态估计总共有 42 个地标,即每只手 21 个,如表 4.1 所示。 为了适应其地标的大量和大小[16],这两种类型的姿态估计因此具有高分辨率的特性,从而使这种分类适用于它们。
5. HPE使用的数据集
数据集是机器学习的一个重要方面。 为了让机器学习模型执行任务,在这种情况下是 HPE,必须首先训练并测试它们的算法,以确保它们正确解释数据以完成任务。 这是通过使用由训练和测试数据组成的数据集来完成的。 每种类型的 HPE 都有几个,如下所述。 单击每个数据集的名称以转到其各自的主网站。
5.1 身体数据集
• COCO [23] [9]:这是使用最广泛的二维人体数据集,主要用于多人 HPE。 尽管它用于对象检测并包含有助于实现这一目标的图像,但它仍然有超过 330k 图像和 200k 人用关键点标记,其中多达 17 个遍布全身,以帮助进行身体姿势估计。 第一组于 2014 年发布,但后来进行了修改。 HPE 的 COCO 数据集有 2 个版本:2016 年和 2017 年 COCO 关键点,区别在于训练、验证和测试拆分。
• MPII [24] [25] [9]:这个二维身体数据集主要用于单人姿势估计。 它有大约 25k 幅图像,其中包含 40k 个人以及多达 16 个手动注释的身体关节; 这与 COCO 不同,因为它标有 17 个身体关节。 这些图像涵盖了 410 种不同的人类活动,例如跳舞、跑步和打猎,并标有该活动。 每张图片均取自 YouTube 视频,并提供了未注释的前后帧,这是与 COCO 的另一个不同之处。 此外,还标记了身体部位遮挡和 3D 躯干和头部方向等高级注释。 2014年制作。
• AI Challenger 人体关键点检测 [26] [27] [9]:这个 2D 人体数据集是 2D HPE 中最大的数据集。 它具有超过 300k 的高分辨率、用于关键点检测的带注释图像(每人 14 个关键点)和超过 600k 的测试图像。 所有图像都是从互联网搜索引擎收集的,并且与 MPII 数据集类似,专注于人们以不同姿势进行的日常活动。 不同之处在于它们不是取自 YouTube,它还有两个附加功能:基于属性的零镜头识别,机器根据图像中对象的描述进行学习,以及图像中文字幕,其中中文字幕说明了关系 图像中的对象之间。 2017年制作。
• PoseTrack [28] [29] [9]:这是一个基于 2D 视频的身体数据集,包含大约 1356 个视频序列、46k 个带注释的视频帧和 276k 个身体姿势注释。 它主要用于多人身体姿势估计,其中每个人都有一个带有注释的唯一轨迹 ID,最多 15 个身体关键点。 PoseTrack 与其他身体数据集不同,因为它使用视频而不是图像以及不同数量的身体关键点。 2017年制作。
• Human3.6M [30] [9]:这是用于 3D HPE 的最流行和最大的室内人体数据集。 它包含 360 万个 3D 人体姿势并使用具有不同训练和测试数据拆分的 3 种协议,以及 11 名专业演员在室内实验室环境中从 4 个不同视图执行 17 项活动。 它们标有 24 个身体关键点,这就是它与其他身体数据集的不同之处,此外还包含 3D 姿势而不是 2D。 2014年制作。
5.2 人脸数据集
• 300W [31] [32] [33]:这个 2D 人脸数据集是其他几个数据集的集合,包括 HELEN、AFW、LFPW 和 IBUG,它们被标记为 68 个地标,这意味着 300W 也使用 68 个地标标记其图像 . 总共有大约 4000 张训练图像和 600 张测试图像:300 张室内人脸图像和 300 张户外野外图像。 他们都有不同的拍摄条件,例如光线和颜色、情绪、遮挡、面部大小、面部角度和出现的面部数量。 2013年制作。
• AFLW 和相关集 [34] [33]:这个 2D 人脸数据集有大约 25,000 张外观各不相同的人脸图像,例如姿势、性别、年龄、种族和表情。 与这组不同的是,它仅标注了 21 个地标,相比 300W 具有更高的人脸拍摄角度范围。 这个数据集有一个版本,用 68 个地标重新标记,称为 AFLW-68,但使用不多。 同样,称为 MERL-RAV 的数据集也使用 68 个地标重新标记了 AFLW,其中每个地标都有一个额外的可见性标签,例如可见性、自遮挡和被其他对象遮挡。 2011年制作。
• COFW 和相关集 [35] [33]:这个 2D 人脸数据集主要集中于标记被其他物体或人本身部分遮挡的人脸图像。 由大约 1.3k 个训练图像和 507 个测试图像组成,这些图像标有 29 个地标,这就是它与其他人脸数据集的不同之处。 与 AFLW 类似,测试图像也被重新标记为使用 68 个地标(称为 COFW-68)的数据集,当使用不同的数据集训练网络时,该数据集可用于评估地标检测质量。 2013年制作。
• WFLW [36] [33]:这个二维人脸数据集是最详细的数据集之一。 它由各种 7.5k 训练图像和 2.5k 测试图像组成; 具体来说,它们具有广泛的情绪、姿势、遮挡、模糊和照明条件。 此外,它们使用 98 个密集注释的地标进行标记,这也是它与其他人脸数据集的不同之处。 2018年制作。
5.3 手数据集
• BigHand2.2M [37] [38] [39]:这个 3D 手部数据集是迄今为止最大的手部数据集,因为它包含 220 万张单手深度图像,并使用 10 个主题进行了 21 个注释关键点。 改变受试者的位置和手臂方向有助于创建一组不同的手部视点。 数据集分为 3 个部分: 150 万帧计划姿势,涵盖人手可以自由采用的所有关节; 375k 帧随机姿势,覆盖受试者用手探索定义的姿势空间; 290k 帧以自我为中心的姿势,涵盖了执行 32 个极值姿势的受试者,这些姿势是每个手指呈现最大弯曲或伸展位置的手姿势,并结合随机运动。 此外,由于使用运动传感器对整个数据集进行了注释,因此手中没有任何物体。 2017年制作。
• GANerated Hand Dataset [40] [39]:这个 2D 和 3D 手数据集包含 330k 帧,这些帧是合成的手形并具有 21 个带注释的关键点。 与 BigHand2.2M 类似,运动传感器用于捕捉手部姿势。 然而,使它们不同的是 GANerated 涉及用手握住的人造物体以产生手部遮挡。 2018年制作。
• NYU Hand Dataset [41] [39]:这个 3D 手数据集包含来自单个受试者的训练集中超过 72k 帧和来自测试集中两个不同受试者的超过 8k 帧。 与其他数据集相比,该数据集的突出之处在于它是从第三人称视角捕获的 RGB-D 数据集,此外还使用 36 个关键点标记图像。 2014年制作。
• HandNet 数据集 [42] [39]:这个 3D 手数据集是最大的深度数据集之一。 它包含 202k 个训练帧和 10k 个测试帧。 这一切都是通过使用具有 5 名男性和 5 名女性受试者的运动传感器来完成的,以便数据集包含不同的手大小。 图像使用 6 个关键点进行标记。 2015年制作。
5.4 全身数据集
• COCO-WholeBody [16] [43]:这个 2D 全身数据集是带有全身注释的 COCO 数据集的扩展,这意味着它对整个身体(包括身体、面部、手和 脚,总共 133 个关键点(身体 17 个,脚部 6 个,手部 42 个,面部 68 个)。 它有大约 130k 的注释框,用于两只手和面部,以及 800k 手部关键点和 4M 面部关键点。 该集合还具有 200k 图像和 250k 实例。 这是第一个带有全身注释的数据集,因为它们以前不存在。 2020年制造。
6. 2D VS 3D HPE
如第 5 节所示,有一些数据集包含 3D 姿势。 这是因为所有类型的 HPE 也可以在 3D 中完成,而不仅限于 2D。 下面列出了一些关于 2D 和 3D 身体、面部和手部姿势估计的论文和来源,以及它们的出版年份和相应的 GitHub 存储库 [44] [45]。
6.1 2D 身体姿势估计

6.2 2D 人脸姿态估计

6.3 2D 手位估计

6.4 3D 身体姿势估计

6.5 3D 人脸姿态估计

6.6 3D 手位估计

7. 图像和视频的姿势估计
如第 5 节所示,有一些数据集包含视频,作为训练和测试模型的一部分。 这是因为有些算法需要视频作为输入,而有些算法需要单个图像。 第 7.1 节包含一个表格,其中列出了几个 GitHub 存储库的名称,这些存储库基于它们的 README.md 文件以单个图像输入为中心,此外还列出了它们的相应链接和它们的发布年份。 类似地,第 7.2 节包含一个表,该表为 GitHub 存储库执行此操作,这些存储库具有以视频输入为中心的算法。
7.1 单一图像输入的算法

7.2 带有视频输入的算法
