基于改进高分辨表征的人体姿态估计算法
2022-04-21宋玉琴曾贺东高师杰熊高强
宋玉琴,曾贺东,高师杰,熊高强
(西安工程大学 电子信息学院,陕西 西安 710600)
0 引 言
在计算机视觉中,人体姿态估计目的是确定图像中人体的关键节点信息,并连接人体节点组成人体骨架[1-3]。人体姿态具有高自由度、关键点尺度变化、遮挡、背景噪声的随机干扰等特性,使得人体姿态估计的研究以及应用都面临着诸多难题,难题主要有:
(1)难以有效地利用图像中的有限参数信息进行建模;
(2)针对图像背景复杂、人物数量、尺度变化等情况,关键点检测网络难以精确定位;
(3)高精度带来的不利后果是人体姿态估计算法很难应用于实际[4,5]。
目前,深度神经网络可以通过合理的结构设计或者嵌入特定功能的模块来解决现有算法的缺陷,尤其是在定位和分类任务中较为明显[6]。其中,Wei等[7]提出的卷积姿态机,通过顺序卷积结构来表征图像的空间、纹理、尺度等信息。Newell等[8]提出的堆叠沙漏网络则是设计一种与反卷积结合的沙漏结构。Ning等[9]则是使用视觉特征对外部知识进行编码的方法。Sun等[11,12]提出了高分辨并行子网架构,并行的不同分辨率子网之间一共进行8次特征融合。可以发现人体姿态估计算法越加趋向于利用深度神经网络结合高分辨特征融合的处理方式。
为了解决关键点尺度变化导致的回归热图和关键点定位不精确问题,本文提出了一种改进高分辨率表征的人体姿态估计方法。该方法包含双分支的高低分辨率特征提取网络、关键点标准化结构等功能。本文的主要工作如下:
(1)以高分辨网络为模型框架,改进高分辨率表征网络,初步地提取关键点位置特征信息;
(2)针对图像中人物关键点尺度变化问题,在网络末端设计了关键点标准化结构,提升检测精度;
(3)通过实验验证,与多种算法对比,验证本文提出算法的有效性。
1 高分辨率网络方法
目前的经典网络大部分采用很深的卷积网络来优化特征提取,虽然效果不错,但是都有一个共同的弊端,就是在特征提取完成后需要把特征图恢复到较大的特征尺度。因为在卷积的过程中图像分辨率会逐步降低,得到包含更高阶的特征信息,但也损失了图像中的次要特征,这些对于精确定位关键点是无法利用的。因此,高分辨率网络便是在卷积过程中增加并行子网络,而且不同子网络之间形成特征信息的交换通道进行特征融合,减少边缘特征信息的损失。原始高分辨率网络结构如图1所示。每个新子网络都从上一分支的1/2建立连接,并在前向传播中把特征信息逐步添加到高分辨子网中,最后输出全程保持的高分辨子网并以此来进行姿态估计。
图1 原始高分辨网络结构
该网络细节之处是利用了不同阶段的特征融合,取得的效果提升不是特别明显,因为原始网络的不同阶段的特征图信息只被利用了一次,特征融合效果不会特别明显。原始网络特征融合过程如图2所示。
图2 原始特征融合
2 改进网络结构
2.1 高分辨率特征融合
本文网络以高分辨率模型结构为基础框架,针对原网络中的3层子网络做了裁剪,并多次利用原始特征图信息以达到减轻网络计算量同时保持较高的检测精度。改进后的高分辨率表征网络整体结构如图3所示。网络只包含两个并行子网络,共有4个不同的阶段,并行子网络对应的分辨率减半,对应的通道数增倍。第一个子网络包含4个残差块单元,每个残差块单元主干是ResNet-50[13]。具体结构是由一个宽度为64的BottleNeck块构成,接着是一个3×3的卷积把分辨率减小到原来的一半,每个交换块包含4个残差块单元而且每个单元中包含了两次3×3的卷积,最后是不同阶段的特征融合,增加了阶段间特征融合数量,减少了阶段内特征融合数量。
图3 改进高分辨率网络结构
若网络输入为3通道的RGB图像时,假设输入层为x(0)=X,网络共有L层,其中第l层的输入特征和权重分别为x(l)和W(l),卷积函数为f(·),则每层网络的前向传递函数表示为
(1)
最终的输出特征图可表示为
ys=U(ys-2)+U(ys-1)+f(Ss,Ws),s=4
(2)
其中,ys是第s阶段的输出特征,U(·)是插值上采样。
相比于原始特征融合机制,多阶段特征信息融让每个子网络的特征进行了两次特征融合,最大限度地保留了特征信息,改进后比原网络在特征信息的保留,细节信息的提取方面有较大的提升。改进后的特征信息融合如图4所示。
图4 改进后特征融合
改进网络的实现过程如下:
(1)网络对输入图像进行初步特征提取,然后如图3与式(1)所示,分4个卷积阶段建立两个并行子网并输出特征;
(2)分别取低分辨子网的输出特征 {S1,S2,S3} 进行插值上采样并压缩通道数为64;
(3)将压缩后的低分辨网络输出特征分别与高分辨网络的对应阶段及下阶段的输出进行特征融合;
(4)重复步骤(3),直到高分辨网络输出最终特征;
2.2 关键点尺度变换结构
为了得到精确的关键点的坐标,目前常用方法是以关键点为中心构建高斯区域的监督学习方式得到关键点的预测坐标。为了抑制一些异常点,要先用预先构建好的高斯核对热点图进行平滑操作,然后选取其中的最大值点作为关键点的估计值,而其对应的坐标即为关键点坐标。虽然采用最大热值的热力图来回归人体关键点的坐标可以取得不错的效果,可是该方法仍然存在缺陷。首先是高斯热点图的尺寸不能过小而且是输入尺寸的1/n,本文是取1/4;再是热值最大的关键点坐标和真值坐标存在误差,热点图坐标映射回原始位置时不能完全对应,如果回归效果很差,则还原过程的偏差就会更大。为了解决热点图转换后的精度问题,本文提出一种关键点尺度转换结构。该结构主要分为关键点坐标估计、变换参数计算以及空间变换3部分,转换结构流程如图5所示。首先直接根据初步提取的特征进行高斯平滑操增强初步热点图所提取的特征,接着对每个关键点进行尺度变换确定热图精确坐标,最后通过逆空间变换输出原图关键点坐标。
图5 关键点尺度变换结构
具体转换过程如下,由式(3)得到关键点算术平均值c
(3)
然后由式(4)得到该关键点的旋转角度值θ
(4)
最后计算旋转矩阵R
(5)
其中,pc为关键点的估计结果,c为肩部和臀部关键点的算术平均值,e为相关系数,pl-shoulder为肩部关键点估计值,pr-shoulder为肩部关键点实际值,pl-hip为臀部关键点估计值,pr-hip为臀部关键点实际值。
2.3 网络损失函数
在高分辨率表征网络阶段,其输出的热图损失函数采用均方误差来优化网络模型,损失函数如式(6)所示
(6)
其中,n为图像中人体总数,k为单人体关键点总数,Si为第i个关键点的真值,S′i为第i个关键点的预测值。
在尺度转换阶段,特征增强模块的损失函数不同于初始特征提取阶段的损失函数。主要原因是在高分辨率表征时将坐标和关键点热图值看作概率值,形成联合概率分布来进行位置回归,并且对坐标和关键点热图进行均匀化处理和归一化处理,最后把得到的两个矩阵进行F范数运算,输出的是联合概率的高斯分布。而均方误差损失没有归一化处理关键点热图,直接采用会存在量化偏差。其次是KL散度常用于衡量两个不同量的分布相似性而非对称性,再加上网络更易于学习对称式高斯概率分布,所以原本的KL散度不适合,其改进表达JS散度值域为[0,1]且具有对称性。因此,本文选择JS散度表达,结合关键点尺度变换,损失函数如式(7)所示
L2=L′(ZRk)+L″(S′k)
(7)
其中,L′(ZRk)是关键点尺度变换的损失函数,ZRk是第k个关键点的坐标向量,L″(S′k)是尺度转换阶段的热点图损失函数且S′k是归一化后的热点图真值。该散度的损失函数如式(8)所示
L″(S′k)=D(P‖Q)
(8)
其中,P是标签值的高斯分布,Q是标签值的预测联合概率分布,D(·‖·)是JS离散度表达。该表达式如式(9)所示
(9)
其中,DKL(·‖·)是KL散度的相似度函数,分别如式(10)和式(11)所示
log(2S′n(i,j)/(S′n(i,j)+Zn(i,j)))
(10)
log(2S′n(i,j)/(S′n(i,j)+Zn(i,j)))
(11)
其中,h是特征图的高,w是特征图的宽。
结合式(6)和式(7)可知,网络的整体损失函数如式(12)所示
L=L1+L2
(12)
3 实验结果与分析
3.1 实验数据集和评价指标
在实验及结果对比中,本文采取不同的数据集的组合进行训练、测试。在LSP和MPII数据集上本文采用关键点正确估计比例(percentage of correct keypoints,PCK),COCO数据集采用目标关键点相似度指标(object keypoints similarity,OKS)。其中,PCK评价指标是通过对图像中检测到的关键点,计算其与相应的精确点的归一化距离,该距离小于初始阈值的比例即为当前关键点估计准确率。MPII数据集中统一以图像中人体头部尺度作为归一化标准,即PCKh。当阈值选取为0时,归一化误差也就为0,理论上可行但实际是网络几乎很难做到完全正确检测每个点;一般还是根据不同数据集、不等阈值得到不同的准确率来判断预测的关键点是否定位合理。如果检测关键点与标签关键点的欧式距离在该阈值范围内,则该检测结果被认为是正确的。第k个人体关键点的PCKh的计算过程如式(13)所示
(13)
对于COCO数据集,AP代表的是关键点之间的平均关键点相似度,在不同AP阈值时,预测结果越接近原值则OKS越趋向于1,反之趋向0。OKS定义如式(14)所示
(14)
3.2 数据预处理和实验环境
对于网络的输入样本,MPII数据集训练样本统一处理为256×256,COCO数据集训练样本则为256×192的尺寸,样本预处理均值M=[0.49,0.46,0.41]和标准差S=[0.23,0.22,0.23],关键点尺度转换结构部分的高斯核大小从第一层到最后一层分别为7、9、11、13、15。数据扩展采用的方式有随机缩放、随机翻转和随机旋转变换,通过对实验数据的预处理可以有效地解决因为样本尺寸不同、分布不均匀导致的预测准确率较低的问题[14]。本文实验系统是基于Ubuntu18.04.5版本,Python版本为3.6,以开源框架Pytorch为平台。初始化阶中,训练模型的学习率为0.001,衰减系数为0.1,分别在110、150迭代周期时衰减,且衰减为1e-4、1e-5。训练优化器是Adam,mini-batch设为12,总训练epoch为170。
3.3 实验结果分析
3.3.1 对比实验结果分析
本文在LSP、MPII、COCO 数据集上进行实验,分别比较 PCKh 和AP评价指标。不同方法的实验结果在LSP数据集上的实验结果见表1,其中阈值为PCKh=0.2。相比较于SHN[8]、DeeperCut[15]、LFP[16]、DenseNet[17]等方法,本文提出的高分辨特征提取网络结构,在手腕、脚踝等关键点处的检测精度要稍低于SHN和LFP模型,不过在检测速度上要分别高出5倍、7倍。这是因为本文方法和SHN、LFP等方法一样对多尺度的特征信息进行利用与融合,不同的是SHN和LFP都进行了多阶段精度校准而本文利用子网间的信息融合来提升精度,在保证精度的同时也兼顾了网络的速度。
表1 不同方法在LSP数据集上的精度对比(PCK@0.2)
在MPII测试集上测试模型得到的各部位检测精度结果见表2。从表2中的结果分析可知,本文所提出的方法在肘部、手腕、臀部、膝盖、脚踝等较难检测部位的检测精度达到了较高的准度。相比于DenseNet[17]、OpenPose[18]、Alphapose[19]、基线模型[20]、文献[7]、DeeperCut[15]和ArtTrack[21],本文方法在7类关键点部位的检测精度以及平均精度上都明显高于前面所提到的方法,而且在手腕、膝盖、脚踝等小尺度节点的预测精度上要分别高出文献[7]精度的5.5%、5.4%、8.2%。能够取得较好的检测结果得益于本文所提出的关键点尺度变换结构,在初级特征图上进行关键点尺度变换,这对于那些遮挡部位、小尺度部位的有用特征信息提取有极大提升,检测效果有明显进步。
表2 不同方法在MPII数据集上的精度对比(PCK@0.5)
最后采用COCO2017验证集作为测试集,并对比各方法的精度见表3。当输入256×192小尺寸的样本时,本文方法相比输入尺寸为320×256的Alphapose[19]和输入尺寸为480×480的MultiPoseNet[23]的AP还提高了0.7%、3.4%,虽然提升不是特别明显,但是由于本文的输入尺度更小,图像有用的特征信息就更少,这也验证了本文所改进后的高分辨率表征网络对于微小尺度关键点精准预测的有效性。究其原因是本文提出的关键点尺度变换结构对样本中微小尺度的节点具有更高的敏感度,转换后的识别效率很高,特别是对膝盖、脚踝等的关键点更加有用、有效;相反对于头部和肩部这类大尺度关键点的精度提升不大。对比其它方法,本文算法在各项精度上都要优于前者,同时算法的运算量和参数量都远小于其它算法,在满足精度的同时也兼顾了实时性,有利于算法部署到边缘设备中。算法模型浮点运算量(FLOPs)与精度关系如图6所示。
表3 不同方法在COCO 2017验证集上的精度对比
图6 运算量与精度关系
3.3.2 消融实验分析
实验中考虑到所提出的方法会有不同的阶段、不同阶段的特征融合都会对实验结果有影响,因此,消融实验中本文做了4组对比实验。首先除开输入大小效果的实验外,实验所得到的所有结果均在输入尺度为256×192大小的图像中获得。根据多重多尺度特征融合的特点以及融合效果,本文提出的4组实验分别是:
(a)最终的特征融合,只在最后一个交换单元内融合,其余并行阶段无特征融合。
(b)阶段间特征融合,只在开辟新的子网络阶段时融合,子网络阶段内无特征融合。
(c)阶段内特征融合,在跨阶段和阶段内都有特征融合,但阶段内只有一重特征融合。
(d)多重阶段内特征融合,在跨阶段和阶段内有特征融合,阶段内特征包含双重特征融合。经过测试4种不同的尺度融合结果见表4。
表4 不同特征融合的精度对比
3.3.3 可视化结果分析
如图7所示是本文模型在COCO数据集下的人体后6个关键点的检测示意图。其中上图为原始图像样本的关键点真实位置,而下图为每个关键点的预测位置分布情况。图中展示了不同尺度的关键点的信息,根据下图的预测结果中可以看出,网络对于较小尺度的关键点仍然有较大的感知能力,对于图像中的各类不同关键点,都可以很好地检测并还原其原始位置信息。除了尺度优势外,样本中的遮挡问题也得到了一定提升,对比预测结果可以发现图中右臀部和右手腕相互遮挡,但是网络预测和原始标定却几乎一致。
图7 关键点检测实验
图8展示了本文方法的部分测试效果,图中展现了对单人的姿态估计及整体多人的姿态估计。在图中,即使存在部分遮挡、背景干扰、拍摄角度不同、光线阴影影响的情况下,网络也可以较好检测到关键点,达到预期的表现。
图8 人体姿态测试结果
4 结束语
针对人体姿态估计中的小尺度关键点,为了有效提高人体姿态检测模型性能,以高分辨率检测框架为基础构建新的高分辨率表征的网络并提出了一种关键点尺度转换结构。改进后的网络能够提取多阶段的低级特征和高级特征并在子网络内外进行多重融合特征信息,再结合网络末端的尺度转换结构有效地提高了关键点检测精度。在不同的数据集上实验结果表明,本文方法的检测精度要优于其它方法的,网络模型参数量与浮点运算量较小,在小尺度级别的关键点检测效果上有较大提升。网络整体相比原网络更加轻量化、增加阶段内特征融合数量,但是由于去掉了更低级别分辨率的子网,部分特征信息会有丢失。如何保证网络轻量化的同时,找寻新的方法来优化网络结构,弥补减少子网带来的不利影响,进一步提升网络的检测性能和加速网络推理速度是本文未来的工作重点。