吴佳豪,周 凤,李亮亮
(贵州大学 计算机科学与技术学院,贵阳 550025)
人体姿态估计是从输入图像中确定人体关节的像素位置,再将这些关键点按照人体关节的方式相连,进而得到人体的姿态.它是计算机视觉中一项基本而具有挑战性的任务,是行为识别[1,2]、运动捕捉[3,4]、人机交互[5]和视频监控[6]等其他相关任务的研究基础.遮挡点的可见性、视角等因素都会影响检测精度,解决这些问题的关键是如何提取强大的低级和中级外观特征来捕获每个尺度上的相关上下文信息,以及如何建立复杂的部件关系以实现有效的姿态推断.
传统的人体姿态估计方法基于图结构模型,利用树结构来建立人体的空间关系[7].图形结构模型通过探索身体各部分与连接肢体的运动先验之间的空间相关性,构建了一个经典的树结构图形框架,从而捕获各部件之间的关系.最近,利用深度神经网络[8-11]取得了很大的进展,其中,沙漏网络[10]可以很好地捕捉各种尺度的信息,用于鲁棒的人体姿态估计,此外,几个沙漏网络被堆叠起来,用于自上而下的推理,并能够重新评估初始估计结果和特征.与堆叠沙漏网络不同,CPN[12]设计了另一种级联多个阶段的策略,即GlobalNet,GlobalNet的目的是通过在上采样过程中的每个元素和过程之前应用1×1卷积核来获得与FPN[13]不同的初始人体姿态.除了上述的自顶向下方法外,像OpenPose[14]这样的自底向上方法也可以在实时人体姿态估计方面取得较好的结果.
本文提出并设计了一种有效的人体姿态估计方法.在堆叠沙漏网络中使用两种不同的残差模块作为沙漏网络的基本构建块,在分辨率较高时,使用大感受野残差模块捕获人体结构信息,当达到最低分辨率时为了更好的捕获深层信息,因此仍使用原本的残差模块; 同时为了更好的获得结构信息和进行信息传递,设计一个预处理模块提取包含丰富局部信息的低级特征,并通过跳过连接将得到的结果传递给沙漏块.将身体结构作为先验信息,可以在可见的基础上为推断困难关键点的位置提供指导,增加预处理模块来捕获包含丰富局部信息的低级特征,可以有效地提取关于不同关键点之间相对位置的结构信息; 另一方面,在重复的上采样和下采样操作中会逐渐丢失低级特征中的信息,为了保证信息传递,设计了一个分层连接的方式,不仅可以补偿每个沙漏块的信息损失,而且可以重用结构信息,进一步提高局部特征表示的能力.
图1是一个单独的沙漏网络的模型图,它由池层、上采样层和残差模块组成.图片从C1输入,逐步经过池化层后降低特征图的分辨率,在抵达最低分辨率C7后,网络开始逐步地对特征图进行上采样操作和跨尺度的特征融合,沙漏网络的结构是对称的,因此最后输出时达到与输入时相同的分辨率.
图1 沙漏网络模型图
在人体姿态估计中局部特征对于关节点估计更为重要,最终的姿态估计需要对整个身体的连贯理解.在人体姿态估计中,不同的特征图上对不同的关节点的识别精度也不同,所以利用沙漏网络能更好地进行特征提取,进行多尺度特征融合后达到网络的输出分辨率C1b之后,输出最后的估计结果,得到一组热图,是每个像素关节点存在的概率.热图包括了所有的关节点,也就意味着第2个沙漏网络可以利用前一个沙漏网络的输出结果,即利用关节点间的相互关系,从而提升了关节点的预测精度.
残差模块[15]是沙漏网络中的基本块,其结构如图2中所示.残差模块由两个分支组成:第1个分支是标识映射分支,第2个分支由卷积层、批归一化层和ReLU激活层组成.使用残差模块不仅减少了网络的计算量,同时解决了深层网络可能会出现的问题,提高了网络的性能.
图2 残差模块图
在人体姿态估计中,较大的感受野[16]已被证明对局部身体部位的定位很重要.原残差模块的感受野较小,为了更好地获得局部信息,进一步了解各关节之间的相关性,对原残差模块进行改进,并设计了一个大感受野残差模块.图 3 是其原理图.
图3 大感受野残差模块图
该模型主要由卷积层、Batch norm层、ReLU激活层、池化层、上采样层和Spatial dropout 层组成.该模块在原残差模块的基础上添加了一个分支,即图中的分支(3),包括两个3×3卷积层、上下采样,另外在该模块中引入了 Spatial dropout 层加入分支,在模型中有防止激活变强和防止过度拟合的作用,提高了模型的精度.这3个分支中通过分支(1)和分支(2)来获得高分辨率信息,同时使用分支(3)增加特征提取时的感受野,最后将特征融合后进行输出,传递至下一模块.但并不是所有的残差模块都需要大感受野,在图 1 中的C5、C6、C7 中仍然使用原残差模块,获取深层的语义信息,其余的残差模块则使用大感受野的残差模块,能更好的获取结构信息.这种卷积分支的加入可以有效地增加图像在特征提取时的感受野,所以能在人体姿态估计中发挥相当好的作用.
以往的研究表明,高层特征包含语义等全局信息,而局部信息往往存在于低层特征中,设计合理的预处理模块可以有效地提取关节结构作为先验,有助于更好地处理遮挡、大姿态变化、复杂背景等比较困难的图像.而对于每个单独的沙漏模块,采用跳过层进行信息传递和特征融合,避免在重复的自下而上和自上而下的过程中逐渐丢失低层的信息.预处理模块如图 4所示.
图4 预处理模块图
现阶段的大多数方法在预处理阶段都是通过卷积池层降低了输入图像的分辨率,然后经过一个简单的残差模块.浅层特征对于人体姿态识别更为重要,因此本文使用了一个多分支并行模块在预处理过程中,以取代原来的残差模块,能更好的捕捉浅层特征,并通过该模块来提取多尺度特征.不同大小的卷积核不仅可以使网络提取多尺度特征,对关键点定位任务具有重要意义,此外,感受野的大小直接决定了关节结构能否有效地获得,在此基础上使用3×3空洞卷积代替普通卷积作为分支之一,空洞卷积能在不丢失分辨率下扩大感受野,相较其他方法能更好的获得浅层特征.结构特征可以通过连接4个分支的输出来捕获,然后将它们输入到堆叠沙漏网络中.
对于每个单独的沙漏块,采用跳过连接的方式进行信息传递和特征融合,但每个沙漏网络之间没有联系,每个沙漏网络都经历自下而上和自上而下的这一过程,这将导致在反复操作的过程中丢失所获得的信息.为了使网络充分利用人体结构信息并执行消息传递,本文设计了不同沙漏块之间的分层连接结构,如图 5所示.
图5 分层连接结构图
具体而言,就是将上一阶段得到的浅层和深层的特征进行融合,以获得局部详细信息和全局上下文信息,能更好的进行人体姿态估计.堆叠沙漏网络每个沙漏块之间没有联系,因此容易丢失所获得的信息,现阶段的许多方法将各个沙漏模块的输入与输出结果进行特征融合,较好的提高了估计精度.通过建立沙漏块之间的连接,可以有效地将结构特征传递到每个沙漏块的开始,这样得到的特征可以为整个网络提供有价值的结构信息作为先验,由于从不同阶段聚集特征的优点,有助于更好地处理遮挡、大姿态变化、复杂背景等具有挑战性的场景,并更具鲁棒性.在此基础上,本文还融合了每个阶段的结果,通过平均每个阶段的输出热图,进一步的特征融合,充分利用了人体结构信息,改善了人体姿态估计结果.
为了评估本文提出的网络模型的性能,本文使用的数据集为LSP(Leeds Sports Pose)和MPII这两种数据集.
LSP数据集[17]是从Flickr收集的图像样本,每个图像都注释了14个身体关节点,并包含一些难以估计的姿势.数据集由11 000个训练图像样本和1000个测试图像样本组成,其左侧和右侧关节始终以人为中心进行标记.
MPII人体姿势数据集[18]包括大约25 000幅图像,包括超过40 000个带注释的姿势,这些图像是从YouTube视频中收集的,并对人的16个全身关节进行注释.
实验中使用了正确关键点的百分比(PCK)[19]标准来评估网络模型的性能,如果检测到的关节与真实关节之间的归一化距离小于设定阈值的比例,则认为关节被检测到.另外,在MPII数据集上的官方基准是中是以头部长度(head length)作为归一化参考,即 PCKh.
该网络使用Torch实现,并使用RMSProp进行优化,参数随机初始化.设置300个epoch训练本文的模型和批次大小为6,初始的学习率为2.5×10−4,在第240次epoch后降低到1/10,在上述的两个数据集上对模型进行训练.
为了评价本文提出的大感受野残差模块和预处理模块对人体姿态估计的影响,本文使用不同数量的沙漏网络在LSP数据集上进行实验,并给出了在PCK评价标准下的实验结果.结果如表1所示.
表1 LSP数据集上PCK结果(%)
因为网络的感受野很小,使得每个沙漏网络的学习能力有限,将本文提出的模块放入沙漏网络,增加网络的感受野,这样能够学习更多的特征信息,再增加沙漏网络的数量以提高网络的性能,最终提高人体姿态估计的精度.
将本文提出的方法与近年来的其他人体姿态估计方法进行了比较,在LSP数据集上给出了PCK标准下的比较实验结果,其中,(+)表示将MPII训练集作为额外的样本进行训练.如表2所示.
表2 LSP 数据集上 PCK 比较结果(%)
在MPII数据集的实验中,选择了近年来与MPII数据集相关的几种姿态估计方法,并与我们的方法进行了比较,在PCKh标准下的比较结果在表3中给出.
表3 MPII 数据集上 PCKh 比较结果(%)
根据表 1 中的结果可以看出,增大感受野对人体姿态估计有较好的影响,同时增加沙漏子网络的数量可以有效地提高网络的性能.以往的研究表明,高层特征包含语义等全局信息,而局部信息往往存在于低层特征中,浅层的特征对于姿态估计更为重要,因此增加特征提取时的感受野能更好的对人体关键点进行定位.根据表2、表3中的结果验证了本文提出的方法的可行性,因为我们在训练过程中利用大感受野来学习关节点之间的相关性,预处理模块来更好的获得结构信息,连接各个沙漏网络,并对每个沙漏网络的输出结果进行特征融合,提高了人体姿态估计的准确性.
本文提出了一种用于人体姿态估计的改进堆叠沙漏网络.该网络利用两种残差模块提取图像特征信息和了解关节点间的相互关系,因此能更准确地定位关节点位置; 另一方面,在堆叠沙漏网络前加上了预处理模块,有效地提取关节结构作为先验,在可见的基础上为推断困难关键点提供了指导; 最后将不同的沙漏模块进行分层连接,对估计结果进行特征融合,以进一步改善人体姿态估计的精度.本方法在两个数据集上进行了测试,在取得了较好的结果的同时,也在实验中也观察到了一些失败,包括多人或罕见的姿势在图片中,在一个端到端的体系结构中处理多个人也是一个具有挑战性的问题,今后的工作将继续对这两方面的情况探索.