李崤河,刘进锋
(宁夏大学信息工程学院,银川750021)
人体姿态估计长久以来一直是计算机视觉领域的一个热点问题。其主要内容,是让计算机从图像或视频中定位出人物的关键点(也称为关节点,如肘、手腕等)。人体姿态估计作为理解图像或视频中人物动作的基础,一直受到众多学者的关注。随着计算机技术的迅猛发展,人体姿态估计已经在动作识别、人机交互、智能安防、增强现实等领域获得了广泛应用。
人体姿态估计按维度可分为二维和三维两种:二维人体姿态估计通常使用线段或者矩形来描述人体各关节在图像上的投影位置,线段的长度和角度表示了人体的二维姿态;三维人体姿态估计通常使用树模型来描述估计的姿态,各关节点的位置使用三维坐标确定。在实际应用中,目前获取的大多数图像仍是二维图像,同时三维姿态估计可以使用二维预测进行推理[1],所以二维姿态估计有着重要的研究价值。
自人体姿态估计的概念提出以来,国内外的学者对此做出了不懈的努力。传统的姿态估计算法主要是基于图结构(Pictorial Structures)模型[2]。该模型将人或物体表示为多个部件的集合,这些部件之间含有空间约束,通过人工指定的特征检测组件实现关节点检测。传统方法过于依赖手工设计的模板,难以应付复杂的姿态变换并且推广到多人姿态估计。
随着深度学习技术在计算机视觉领域大放异彩,部分学者开始研究如何利用深度学习来解决人体姿态估计问题。Toshev 等人利用深度卷积神经网络对人体姿态进行全局推断,提出了完全基于神经网络的模型DeepPose[3]。DeepPose 是第一个将深度学习方法应用于人体姿态估计的主要模型。该模型实现了SOTA 性能并击败了当时的传统模型。之后,越来越多基于深度学习的人体姿态估计方法相继提出。
本文总结了近几年来二维人体姿态估计的发展历程,从早期的基于模板匹配算法到目前的基于深度学习的姿态估计算法,分析比较相关算法的优缺点及性能,并结合现有问题对未来发展进行了展望。
早期的人体关键点检测算法基本都是在几何先验的基础上基于模板匹配的思路进行的,其中Fischler[2]于1973 年提出的图结构是其中一个较为经典的算法思路。它将物体表示为多个部件的集合,部件之间具有一定的空间约束。2005 年,Felzenszwalb 和Huttenlocher[4]将图结构归入统计学的框架,并假设各个部件之间服从树形结构。这极大地降低了计算复杂度,使图结构在人体姿态估计领域得到了很好的应用。此后,一系列基于图结构的人体姿态估计算法被提出。
图结构主要包含两个部分,其一是部件模型(Part Model),用于描述组成物体的各个部件;其二是空间模型(Spatial Model),用于描述各个部件之间的空间关系。大多数的研究致力于寻找表达能力更强的部件模型和空间模型来提高姿态估计的准确率。
与早期方法相比,部件模型中使用了表达能力更强的图像特征,例如,HOG[5]和SIFT[6]特征。Ramanan 从图片中提取具有表达能力的模板来解决关节匹配问题。此外,前景分割技术也被集成到姿态估计中[7],更具判别性的部件检测器被训练出来用于姿态估计[8]。
空间模型方面,非树形结构的模型被提出,用于解决人体姿态估计中的自遮挡问题[9]。Yang 和Ramanan[10]提出的混合部件(Mixtures of Parts)模型能够表达更为复杂多样的空间约束。该模型包含多种对姿态估计非常重要的信息,例如,部件的几何形变约束、部件的外观信息等。除了关注两个部件之间的空间约束,也有一些工作关注更大范围的约束。例如,用于上半身姿态估计的Armlet[11]和用于整体姿态估计的Poselet[12]。
利用Design-Expert8.0Trial数据处理软件中ANOVA程序对表3的试验结果进行二次回归分析,计算出方程各项系数并进行方差分析,可得2个因子与Y之间的回归方程:Y=99.21+2.22A-1.45B+0.95AB-1.22A2-1.12B2。
传统的姿态估计算法依赖于物体的外观特征,如纹理、边缘、颜色、前景轮廓或手工设计的局部特征,有一定的局限性。卷积神经网络的提出极大地促进了计算机视觉技术的发展。随着Toshev 等人提出Deep-Pose 网络[3],人体姿态估计的研究开始从经典方法转向深度学习方法。近几年提出的姿态估计算法普遍采用ConvNets 作为模型的主要构建单元,这一策略极大地提升了姿态估计的准确率。
基于深度学习的人体姿态估计主要分为单人姿态估计和多人姿态估计两个方向。单人姿态估计指输入图像中只包含一个人物,算法的主要任务是检测出该目标的所有关键点。多人姿态估计的输入图像中包含不定数量的人物,该研究方向更适用于实际场景。同时,多人姿态估计不光要检测出图像中所有的关键点,还要对关键点进行聚类,将同一个人的关键点分配到一起。
(1)相关算法
Toshev[3]将姿态估计设计为一个基于神经网络的人体关节点回归问题。与基于图模型的方法相比,该方法不需要显式地设计出部件的特征表示和部件检测器,也不需要显式地设计出模板间的拓扑关系。更进一步,作者使用了基于神经网络的级联回归器。这种级联回归器能够增加关节点定位的精度。Carreira[13]针对前馈神经网络不能很好地对输出空间中的依赖关系进行有效建模问题,提出了一个自校正模型——迭代错误反馈(Iterative Error Feedback),该模型通过反馈错误预测逐步调整初始预测。同时,一部分学者[14-15]将图结构作为人体先验知识加入神经网络模型中,借此提高模型的学习能力。
2015 年之前的主要方法将关节点直接回归到精确的坐标点(x,y),这增加了学习复杂度,降低了模型的泛化能力,因此在某些场景表现很差。随后,Tompson[16]对网络模型进行了改进。该网络输出低分辨率、逐像素的热图,热图描述了该部件可能位置的概率分布,而不是直接回归预测关节点坐标,提高了关节点定位的鲁棒性。然后将各部件位置的概率分布作为先验输入“位置细化”模型计算出部件的最终位置。这种输出模型非常成功,许多后续的论文都采用了这种方法。
为了增强网络模型对不可见关节点的预测能力,Tompson[14]和Yang[17]将图模型应用到神经网络中。同时,部分学者通过构建多阶段CNN 回归模型[18-20],增加网络的感受野,以此提高模型的预测能力。例如,Wei[18]提出的卷积姿态机(Convolutional Pose Machine)可以同时学习图像特征和依赖于图像的空间模型;Newell[19]构造的经典网络结构——堆叠沙漏网络,可以更好地混合全局和局部信息。
(2)性能比较
表1 单人姿态估计算法性能对比
单人姿态估计的输入图像中仅包含单个目标,算法只需要确定单人的关键点坐标即可,应用场景简单。而多人姿态估计需要确定图像中不定数量人体的关键点坐标,同时将同一个人的关键点聚类到一起,算法更为复杂。目前,多人姿态估计有两种主流的研究方法:自顶向下(Top-Down)和自底向上(Bottom-Up)。
(1)基于自顶向下的方法
该类方法的基本思路是先使用目标检测算法检测出多个人,再对每个人应用单人姿态估计。该方法的精度依赖于目标检测算法的输出精度和单人姿态估计的精度。同时,多人图像中遮挡问题更加严重,如何准确预测出不可见关节点是多人姿态估计中的一个重要研究方向。
Papandreou[29]构建了一个二阶段网络,其中第一阶段使用Faster R-CNN 检测出可能包含人物的区域,第二阶使用全卷积残差网络预测每个人的关节点坐标。作者在第二阶段引入了两个偏移参数来提高关节点的预测精度。Chen 等人[30]通过将第一阶段网络得到的所有层次特征整合到一起,并结合在线困难关键点挖掘(Online Hard Keypoint Mining)技术,着重于“困难”关键点的检测。针对自顶向下方法可能会产生的检测框定位误差以及对同一个目标重复检测等问题,Fang[31]提出了RMPE(Regional Multi-person Pose Estimation)框架。其中,SSTN(Symmetric Spatial Transformer Network)网络可以从一个不准确的目标框中提取高质量的单人区域;参数化的姿态非极大值抑制算法用于消除冗余位姿。
(2)基于自底向上的方法
该类方法主要包含两部分,关键点检测和关键点聚类。其中,关键点检测需要将图片中所有类别的所有关键点全部检测出来,然后对这些关键点进行聚类,将不同人的不同关键点连接到一起,从而聚类产生不同的个体。这方面的论文主要侧重于对关键点聚类方法的探索。
Cao 等人[32]使用向量场对人体的不同肢体结构进行建模,解决了单纯使用肢体中间点产生的错连问题。Xia[33]则采用部位分割的思想对关键点间的关系进行建模,该方法既可以显示的提供人体关键点之间的空间先验知识,同时也对关键点的聚类产生辅助作用。Newell 等人[34]提出了一个单阶段的端到端多人姿态估计网络,通过使用高维空间向量来编码不同人体的不同关键点之间的关系,实现了检测和分组同步进行。
(3)性能比较
多人姿态估计的基准数据集主要有MPII 多人数据集[21]和MSCOCO 关键点数据集[35]。评价指标主要为mAP。表2 展示了多人姿态估计算法在MPII 多人数据集上的性能比较。
表2 多人姿态估计算法性能对比
由于人体姿态的多变性,以及受人物着装、自遮挡、复杂背景和相机视角等多重因素影响,人体姿态估计一直是计算机视觉领域的一大挑战。本文对二维人体姿态估计算法进行了简单回顾,较为详细地介绍了姿态估计的分类以及几种常见算法。虽然深度学习极大地促进了人体姿态估计的进步,但如何更好地利用人体姿态先验知识,将人体模型融合到神经网络中;如何在保证高精度的条件下提高模型处理速度以及如何利用关键点检测技术进行人体行为分析、姿态预测,都是亟需解决的问题。