深度学习 3D 人体姿态估计国内外研究现状及痛点
人体姿态估计可以看作是图像与视频中人体关节点的检测与定位问题,这对于行为识别、行为理解、行人重识别等技术的发展有很大的帮助,因此人体姿态估计在提出后,就受到人体识别相关各界的关注,人们开始尝试在不同的方向进行探索。早期的学者们在传统方法的方向上进行摸索,1973 年 Fishler 提出一种用于传统人体姿态估计算法的图结构模型(Pictorial Structures Model, PSM),该模型的特点在于引入人体生理结构作为先验知识,人体被预先表示为多个具有空间约束的部位,且每个部分都被看作是刚体。2005 年,Felzenszwalb 等人优化并改进了图结构模型,使得图结构模型被广泛应用,他们将人体各部位看作是相互独立的,并对原始图像中的不同人体部分进行动态求解。然而,事实上不同部位在人体运动中并不是相互独立运动的,该方法无法利用这一特点,同时也不能很好的处理人体出现遮挡的情况。
早期利用人工设计的图像特征对人体进行结构化预测,但依然很难提高后续的检测精度,这就需要使用深度学习算法自动提取更高级的人体运动特征。人工神经网络的发展为计算机视觉领域带来巨大的性能提升,在很大程度上已取代传统图像特征提取方法,因此,如今的人体姿态估计也同样依赖深度学习算法。深度学习伴随着 2012 年 AlexNet 卷积神经网络的出色表现而大放异彩,越来越多基于深度学习的人体姿态估计算法开始涌现,针对 2D 人体姿态估计的方法发展尤为迅速,人体姿态估计算法开始普遍使用卷积神经网络替代传统特征提取方法。Toshev 等人在 2014 年提出了 DeepPose 模型,这是 2D 人体姿态估计最早在深度学习方法上的尝试,Toshev 等人将 2D 人体姿态估计任务看作关节点坐标的回归任务,首先通过卷积神经网络在原始 RGB 图像中提取特征,再由后续的回归网络得到 2D 人体关节点坐标。相比于传统方法,卷积神经网络能提取到图像中更高级的特征,有助于后续的回归网络预测 2D 人体关节点坐标。除了 Toshev 等人将 2D 人体姿态估计看作回归问题,Jain 等人则是将 2D 人体姿态估计任务看作关节点的检测任务,提出对原始图像中每一个像素点进行检测,通过深度学习算法判断该像素点是否为人体关节点,最终生成一个代表关节点得分的热力图(Heatmap),热力图中最大值像素的位置即为关节点的坐标,而训练集中人体关节点热力图的得分则是以每一个关节点为中心的二维高斯分布。2015 年的 CPM(Convolutional Pose Machine)模型在 2D 人体姿态估计任务中表现尤为出色,CPM 是一个由多个阶段(Stage)叠加而成的网络模型,每个 Stage 由基于 VGGNet(Visual Geometry Group, VGG)的子网络组成,Stage 的输入由原始图像和上一个 Stage 输出的置信图结合而成,通过每个 Stage 卷积层不断提取特征,网络最终预测出较为精准的结果。2016 年 Princeton 的 Deng Jia 组提出一个名为 Hourglass 的模型,该模型同样为多 Stage 叠加结构,因其 Stage 中的子网络结构像一个沙漏而得名。该模型可以在所有尺度上将特征进行处理及合并,能够充分学习人体运动的空间特征。2016 年下半年,著名的 COCO 数据集出现,此前的 CPM、Hourglass 等方法在单人人体估计中精确率都已达到百分之九十以上,因此 COCO 团队在数据集中引入多人姿态估计的标注数据,此后多人姿态估计开始被学术界活跃研究。COCO 数据集的出现也促使更多出色的算法诞生,如 OpenPose、Associative Embedding、CPN(Cascaded Pyramid Network, CPN)、MSPN(Multi-Stage Pose Networks, MSPN)、Mask R-CNN(Mask Region-based Convolutional Neural Networks, Mask R-CNN)等。
众多算法在 2D 人体姿态估计的出色表现,让 3D 人体姿态估计成为可能,3D 人体姿态估计也受到越来越多的关注。目前,3D 人体姿态估计大体可以分为两大类:两阶段 3D 人体姿态估计(Two-Step Pose Estimation)、端到端 3D 人体姿态估计(End-To-End Pose Estimation)。
两阶段的方法是将整体任务分为两个阶段,第一阶段任务是从输入的 RGB 图像内恢复出人体关节点在二维平面的坐标,即 2D 人体姿态估计任务;第二阶段则以第一阶段的结果作为输入,从二维人体关节点坐标中恢复出人体关节点在三维空间内的坐标。两阶段法能够降低整体任务的复杂性,关节点坐标从 2D 到 3D 的映射任务相对容易,不仅可以在第一阶段中利用当前已经发展成熟的 2D 人体姿态估计算法,而且可以在第二阶段中通过反投影的方式引入半监督。两阶段的思想最早由 Chen 等人在 2017 年提出,Chen 等人将 3D 人体姿态估计看作 2D 人体姿态估计和 2D 人体姿态匹配 3D 人体姿态两部分,首先使用 CPM 进行 2D 人体姿态估计,再使用最近邻匹配法找到训练集中最接近的 3D 人体姿态,该方法仅能在训练集数量充足、包含动作种类丰富时能有较好的精度。2017 年的国际计算机视觉大会(IEEE InternationalConference on Computer Vision, ICCV)上,Martinez J 等人提出一种简洁且效果不错的网络模型,该方法同样在第一阶段中进行 2D 人体姿态估计,并在第二阶段中,接入两个全连接网络预测人体关节点的三维空间坐标。随后在 2017 年的 ICCV 上,Sun 等人提出将两阶段任务同时优化,由于第一阶段的 2D 关节点检测任务注重从背景中提取人物,第二阶段的 3D 关节点检测任务则更注重 3D 人体姿态与 2D 人体姿态的匹配,该方法很好地让两阶段任务相互辅助,并最终获得更好的预测结果。2019 年,Pavllo 等人提出一种残差连接的时序卷积网络模型 VideoPose3D,该模型利用扩张卷积提取连续多帧输入在时域上的特征,网络结构简洁且精度较高,在单人视频 3D 人体姿态估计任务中表现出色。
端到端方法的特点是以图像作为输入数据,通过深度学习算法直接预测人体关节点的三维空间坐标。相比于两阶段法,端到端法能从原始图像中获取更丰富的信息,但损失了 2D 关节点带来的中间监督信息,整体预测难度比两阶段法更高。2014 年的亚洲计算机视觉会议(Asian Conference on Computer Vision, ACCV)上,Li 等人第一次尝试用深度学习解决单帧图像下的 3D 人体姿态估计,该算法使用一个深度卷积神经网络直接从 RGB 图像中预测人体关节点的三维空间坐标。2017 年的国际计算机视觉与模式识别会议(IEEE Conference on Computer Vision and Pattern Recognition, CVPR)上,Pavlakos 等人将 2D 人体姿态估计算法 Hourglass 与 Heatmap 结合,对人体关节点在 z 轴方向上的坐标进行预测,预测结果以体素的方式表示出各节点的位置信息,其中体素可以看作一个 3D 的 Heatmap。同年的 ICCV 中,Zhou 等人提出一种端到端的深度回归网络,该网络引入骨骼长度之间的比率作为监督项,利用人体结构先验知识辅助模型的训练。
在 3D 人体姿态估计中,学者们致力于研究基于单目 RGB 视频的 3D 人体姿态估计,这是因为目前单目 RGB 摄像头应用广泛、价格低廉,在人们日常使用的手机、电脑均配备有摄像头,因此该技术有着广大的应用前景。但与此同时,该技术也具有更高的挑战性,以下主要介绍几个痛点问题及挑战:
(1)深度模糊问题:3D 人体姿态估计的本质为,从 2D 图像信息中恢复出 3D 人体姿态,即从低维度信息中恢复出高维度信息。深度模糊是指,对于 2D 图像中的人体姿态,在 3D 空间中可能有多个姿态与之对应,这是一项极具挑战性的问题。单目 RGB 摄像头仅能获取到二维的 RGB 图像,需要算法依靠额外的信息来恢复出正确的 3D 人体姿态,例如在预测某一时刻人体姿态时,从该时刻的前后多帧图像中提取特征;或者在 2D 人体姿态中预测 3D 人体姿态时结合原始的 RGB 图像等。
(2)人体遮挡问题:人体遮挡是指,图像拍摄过程中人体的部分区域被遮挡,无法得到包含完整人体的图像,这对于单目 RGB 图像的人体姿态估计有着很大的影响。人体遮挡根据遮挡源可以分为人体自身的遮挡、其他物体对人体的遮挡、其他人体对人体的遮挡三大类。在拍摄场景和人物不做任何约束的情况下,难免会产生以上几种不同类型的人体遮挡现象。输入图像中无法包含完整的人体,这为 3D 人体关节点的检测带来很大的困难。首先,人体部分缺失会使得算法检测不到被遮挡的人体关节点,从而无法对被遮挡的关节点给出正确的预测。其次,由于人体的关节点之间是相互关联的,部分关节点的丢失同样会对未遮挡关节点的预测产生影响。因此,不仅要求算法能正确地检测出未遮挡关节点,同时也要求算法有能力提取更多有利特征,对被遮挡关节点做出合理的预测。
(3)数据集问题:人工智能的发展离不开数据集与算法的相辅相成,数据作为算法性能的基础,优质的数据集会使得模型的效果得到很大的提升。数据集方面有以下三点问题:第一点,无论是依靠人工手动标注还是动作捕捉设备,3D 人体姿态估计数据集的制作成本都很高,稀缺的数据集成为阻碍 3D 人体姿态估计发展的首要难题;第二点,由于当前 3D 人体姿态估计数据集的制作大多依靠动作捕捉设备,而动作捕捉设备仅能对于特定环境中在固定范围内活动的人体进行动作捕捉,因此室外场景下的 3D 人体姿态估计数据集相对匮乏,仅依靠目前的公开数据集训练出的网络模型,对于室外场景下、距离摄像机距离较远的人体动作检测较差;第三点,同样由于动作捕捉设备的限制,目前 3D 人体姿态估计数据集中大多都是肢体运动幅度不大、速度不快的日常行为动作,缺少对于舞蹈、体育运动、异常行为等肢体运动幅度大、速度快的动作录制。
(4)实用性问题:近些年,越来越多优秀的网络模型不断涌现,对于人体关节点的检测越来越精准,然而目前距离 3D 人体姿态估计技术的应用仍有很多的问题亟待解决,例如:针对实时性检测场景,模型检测的实时性较差;针对虚拟角色驱动场景,目前 3D 人体姿态估计的预测结果存在着运动失真现象;针对特殊动作检测场景,由于数据集制作的限制,模型往往达不到很好的检测效果。 (5)3D 形态估计挑战:3D 人体姿态估计的发展延伸出一个新的领域——3D 人体形态估计,在算法对人体姿态做出精准预测的基础上,学者们尝试用深度学习的方法对人体的具体形态做出预测,并在场景中重建出人物的 3D 模型。在 3D 人体形态估计任务中,预测结果中不仅包含点和线组成的人体骨架,且包含了具有高矮胖瘦、头身比例等体表形态特征的 3D 人物模型。与 3D 人体姿态估计相比,3D 形态估计同样以图像作为输入,并从低维输入中预测高维输出,然而 3D 形态估计相对于 3D 姿态估计具有更高的求解空间密集性,因此 3D 形态估计任务具有更高挑战性。
评论