人体关键点检测是计算机视觉领域的重要研究方向,通过检测人体头顶、四肢关节和颈部等关节部位得到关节点信息,并将其应用于人体行为识别[1-2]、人机交互[3]和步态识别[4]等任务中,主要包括单人关键点检测、多人关键点检测[5-7]、视频关键点检测[8]和关键点跟踪[9]等相关技术。近几年,移动终端设备快速普及,但目前较先进的关键点检测算法仍需较大的GPU算力,并不能很好地满足手机、平板、航拍无人机等日常联网设备的实时检测需求,这使得其难以在日常生活中得到广泛应用。
近年来,研究人员将深度学习与人体关键点检测技术相结合并取得了一定的进展。现有的关键点检测算法多数是使用反卷积将具有高分辨率的高层特征与具有强语义信息的低层特征进行融合,提高预测特征图的分辨率后进行关键点检测。2016年,NEWELL等人提出Hourglass算法[10],该算法使用沙漏模型融合高低层特征,采用中间监督技术进行关键点预测,并在MPII多人数据集上取得重大突破。同年,WEI等人提出CPM算法[11],该算法使用多个阶段的网络对人体关键点进行检测,并将前一个阶段的预测输出加入下一阶段的输入中,随着阶段数目的增加,检测结果不断得到精炼。2017年,旷世科技的CHEN等人提出CPN算法[12],该算法为COCO人体关键点检测冠军算法,分为全局网络和精炼网络两部分,创新性地提出先对容易关键点进行检测,再在精炼网络中使用在线难例挖掘学习难检测的关键点。2019年,SUN等人提出一个始终保持高分辨率的网络[13],该网络可以多次重复融合高低层特征图,进一步提升关键点检测性能。
为在算力有限的移动平台上实现实时检测任务,首要的是解决移动终端的算力瓶颈问题,因此众多研究人员致力于轻量级[14-16]主干网络的研究,这些轻量级主干网络在减少计算量的同时仍具有较优的特征提取性能,并且便于实时检测、产品安装以及后续版本升级等环节的实现。对于Hourglass等多阶段预测算法,虽然在对人体关键点的不断优化过程中可有效提高检测精度,但是重复的编码与解码过程导致了巨大的计算量和参数量。此外,目前多阶段检测算法通常将最后阶段的预测结果作为最终预测输出,但是将性能指标具体量化到每一个关节点上时,最后阶段的预测结果并非在每个关键点上都具有最优性能,因此仅将最后阶段预测结果作为网络最终预测输出的检测算法并未有效利用多阶段的预测结果。本文提出基于轻量级网络的实时人体关键点检测算法LWPE,使用MobileNetV2[17]作为主干网络,利用编解码过程控制网络模型规模,提升LWPE算法运行速度,在精炼网络中使用特征金字塔网络(Feature Pyramid Network,FPN)[18]实现特征融合,提高LWPE算法关键点检测精度。
1 LWPE主干网络和卷积模块选取当前卷积神经网络模型的设计趋势是通过增加网络深度和宽度并加大网络计算量来提升网络性能,但由此产生的庞大计算量远超移动设备和嵌入式设备的承载能力,使得此类网络模型难以应用于日常生活中。MobileNetV2使用深度可分离卷积模块大幅减少了网络模型规模,提高了运行速度,具有良好的网络性能。表 1为MobileNetV2、ShuffleNet(1.5)[19]和MobileNetV1[20]在ImageNet上的性能对比结果。可以看出,MobileNetV2在Top-1准确率和模型规模上都具有显著优势,因此LWPE网络模型采用MobileNetV2作为主干网络并对其通道数进行调整,使用MobileNetV2_S表示调整后的网络。
![]() |
下载CSV 表 1 3种网络在ImageNet上的性能对比 Table 1 Performance comparison of three networks on ImageNet |
深度可分离卷积是MobileNetV2的核心。如图 1所示,将传统卷积操作分为深度可分离卷积操作和逐点卷积操作两层因式运算。深度可分离卷积大幅减少了参数量和运算量。假设输入的特征图大小为D×D×M,卷积核大小为K×K×M×N,卷积步长为1并将特征图扩充为1,传统卷积操作的运算量
$ {O}_{\mathrm{t}\mathrm{c}}=K\times K\times M\times N\times D\times D $ | (1) |
$ {P}_{\mathrm{t}\mathrm{c}}=K\times K\times M\times N $ | (2) |
![]() |
Download:
|
图 1 传统卷积、深度可分离卷积和逐点卷积示意图 Fig. 1 Schematic diagram of traditional convolution, depthwise separable convolution and point-wise convolution |
深度可分离卷积操作的运算量
$ {O}_{\mathrm{d}\mathrm{c}}=K\times K\times M\times D\times D+M\times N\times D\times D $ | (3) |
$ {P}_{\mathrm{d}\mathrm{c}}=K\times K\times M+M\times N $ | (4) |
两者运算量
$ {C}_{\mathrm{O}}=\frac{K\times K\times N}{K\times K+N}\approx {K}^{2} $ | (5) |
$ {C}_{\mathrm{P}}=\frac{K\times K\times N}{K\times K+N}\approx {K}^{2} $ | (6) |
由于卷积核大小一般为3或者5,随着网络加深,特征图的通道数不断增加甚至可达到几百,因此传统卷积核的运算量和参数量约为深度可分离卷积的9倍或者25倍。
MobileNetV2使用具有线性瓶颈的反向残差模块,其分为卷积步长为1和2两种模式,如图 2所示,其中,Conv 1×1表示卷积核大小为1×1的卷积操作,Dwise 3×3表示卷积核大小为3×3的深度可分离卷积操作,Linear表示该卷积层之后不加非线性激活函数,stride=2表示卷积步长为2。当卷积步长为2时进行降采样,模块输入不经过跳连加入模块输出中。当卷积步长为1时,模块输入加入模块输出中。卷积步长为2时的具有线性瓶颈的反向残差模块结构与残差模块结构相似,与残差模块不同的是:该模块首先通过1×1的卷积核对输入特征进行卷积操作,使其通道数上升;然后通过激活函数Relu6增加模型非线性;最后使用1×1的卷积结合线性激活函数将特征通道数降低为输入通道数。在精炼网络中,LWPE使用一系列具有线性瓶颈的反向残差模块对点加操作后的特征图进行特征提取。
![]() |
Download:
|
图 2 反向残差模块 Fig. 2 Reverse residual module |
人体关键点检测即通过检测人体头顶、四肢关节和颈部等主要关节部位得到关节点信息。对于一个具有k个关节点的检测任务,假设
![]() |
Download:
|
图 3 LWPE算法结构 Fig. 3 Structure of LWPE algorithm |
LWPE网络结构如图 4所示,其中Bi/j表示网络的第i个block,该block内的特征图大小为原图的j倍降采样。该网络由提取特征的主干网络、对预测结果不断优化的精炼网络和融合多尺度预测结果的融合网络组成。特征网络提取特征后,LWPE在多尺度上对人体关键点部位进行检测,在16倍降采样的特征图上对身体关键点的位置进行粗略预测,得到一个粗略的人体关键点热力图。在得到第1个热力图后不断优化关键点位置预测。为进一步提升关键点预测精度,LWPE通过融合网络将最后多个尺度的预测结果进行整合,得到最终的预测输出。LWPE网络参数设置如图 5所示,其中,IR blocks表示具有线性瓶颈的反向残差模块,t表示通道膨胀因子,c表示输出通道数,n表示重复模块数,s表示步长,K表示卷积核大小;IR blocks_f表示1个卷积核大小为3×3、膨胀因子为3、步长为1且输出通道数与输入通道数相同的具有线性瓶颈的反向残差模块;Dwise_set表示3个7×7的深度卷积;Deconv,×S表示S倍的反卷积操作;Conv2d i×i,j表示使用大小为i×i的卷积核对特征图进行卷积,输出的特征图的通道数为j;Add表示对特征图进行点加操作。
![]() |
Download:
|
图 4 LWPE网络结构 Fig. 4 Network structure of LWPE |
![]() |
Download:
|
图 5 LWPE网络参数设置 Fig. 5 Network parameters setting of LWPE |
主流关键点检测算法一般采用多个级联的编解码流程,如文献[21]提出的CFA算法由多个连续的级联沙漏模型组成。CFA算法在MPII数据集的多级精炼阶段的性能指标中,单个阶段的沙漏模型仅比4个阶段的沙漏模型的检测精度低0.69,但却增加了巨大的计算量,对于移动终端的关键点检测算法而言,为在多阶段预测的同时提升实时性,需要进一步缩小提取特征的主干网络,但是这样可能会降低特征提取性能及算法精度,因此LWPE在一个编解码流程中完成所有精炼过程。
随着卷积神经网络的不断加深,多数学者采用不断减少特征图及增加通道数的设计模式。在该模式中,网络所提取特征的语义信息不断增加,与此同时纹理信息却不断丢失。LWPE使用FPN将高层信息与底层信息相融合,从而获取不同尺度的特征信息并提高特征表达能力。对于主干网络为MobileNetV2_S的LWPE,需要通过训练学习实现关键点的精准预测。将输入图片用x表示,其中
![]() |
Download:
|
图 6 精炼网络结构 Fig. 6 Structure of refining network |
假设
$ \left\{\begin{array}{l}{p}_{16}={g}_{16}({a}_{16}\mathrm{ }, {a}_{32})\\ {y}_{1}={f}_{16}\left({p}_{16}\right)\\ {p}_{8}={g}_{8}({a}_{8}\mathrm{ }, {p}_{16}\mathrm{ }, {f}_{16}({p}_{16}\left)\right)\\ {y}_{2}={f}_{8}\left({p}_{8}\right)\\ {p}_{4}={g}_{8}({a}_{4}\mathrm{ }, {p}_{8}\mathrm{ }, {f}_{8}({p}_{8}\left)\right)\\ {y}_{3}={f}_{4}\left({p}_{4}\right)\end{array}\right. $ | (7) |
其中:
在整个精炼网络检测流程中,首先使用低分辨率特征图检测容易的关键点,然后将得到的关键点信息通过热力图的形式输入到下一个尺度的关键点检测中,对检测出的容易关键点进行优化并继续找出未检测出的困难关键点,这样不断迭代优化检测结果,最后从最高分辨率的特征图上可得到最优的关键点信息。
2.1.2 融合网络目前,多阶段关键点检测算法多数是直接将最后一阶段的预测结果作为最终的预测输出,本文借鉴CFA算法思想,为结合不同阶段的结果进一步提高关键点的预测精度,将多阶段检测的关键点热力图进行融合,计算公式为:
$ {\sigma }_{\mathrm{f}\mathrm{u}\mathrm{s}\mathrm{i}\mathrm{o}\mathrm{n}}=\frac{\sqrt{\sum\limits _{i=N-n}^{N}{\sigma }_{i}^{2}}}{n} $ | (8) |
其中,
融合网络结构如图 7所示。对于3个尺度上的预测输出
$ {Y}_{k}=\sum\limits _{i=N-n}^{N}{z}_{k}\left({y}_{i}^{k}\right) $ | (9) |
$ Y=\{{Y}_{1}, {Y}_{2}, \cdots , {Y}_{k}\} $ | (10) |
![]() |
Download:
|
图 7 融合网络结构 Fig. 7 Structure of fusion network |
其中:N表示关键点预测的尺度总数,(N-n)~N表示关键点预测的最后n层;
在训练阶段,网络通过损失函数进行反向传播,学习映射关系获得关键点预测输出的最优解,在多个尺度上LWPE重复生成关键点热力图
$ {L}_{\mathrm{m}\mathrm{s}}=\sum\limits _{i=1}^{3}\sum\limits _{k=1}^{K}\sum\limits _{m\in M}\left({y}_{i}^{k}\right(m)-{b}_{k}{\left(m\right))}^{2} $ | (11) |
$ {L}_{\mathrm{f}\mathrm{u}\mathrm{s}\mathrm{e}}=\sum\limits _{k=1}^{K}\sum\limits _{m\in M}\left({Y}_{k}\right(m)-{b}_{k}{\left(m\right))}^{2} $ | (12) |
$ L={L}_{\mathrm{f}\mathrm{u}\mathrm{s}\mathrm{e}}+{L}_{\mathrm{m}\mathrm{s}} $ | (13) |
其中,
实验采用Tensorflow深度学习开发平台、i7-5930K CPU、RTX2080 GPU、8 GB显存和Ubuntu16.04操作系统。实验输入图片分辨率为192像素×192像素,随机使用旋转、翻转、缩放、裁剪、亮度调整、对比度调整和饱和度调整等图片处理策略对输入的训练图片进行数据增强。在此基础上,使用Adam对网络模型迭代220 000次,批次大小为32,初始学习率为0.001,每万个迭代轮次的学习率衰减为之前的95%。
3.1 数据集和评价指标本文算法面向手机终端实现实时人体关键点检测,与自然场景拍摄下密集且小的目标特点不同,手机自拍视频具有一定的目的性与针对性。实验数据集由来自AI Challenger数据集的23 946张单人图片组成,其中随机选取22 446张图片作为训练样本,剩下1 500张作为测试样本。标签使用Json格式存储,标签存储目标人体的14个关节点信息,其中-1表示图片中不存在该关节点。实验使用关键点正确估计的比例(Percentage of Correct Keypoints,PCK)中以头部长度(head length)作为归一化参考的PCKh评价关键点预测精度。实验结果均为PCKh@0.5结果,即使用头部长度的50%作为匹配阈值。每个关键点的预测位置为预测的热力图上相应通道最大响应点的位置。
3.2 多尺度预测及其结果融合实验 3.2.1 多尺度预测实验LWPE算法采用轻量级的主干网络进行特征提取,在不同分辨率的特征图上将多尺度预测结果进行不断精炼最终输出预测结果。本文通过实验研究网络模型的预测尺度对关键点预测精度的影响,如表 2所示,可以看出三尺度网络模型的关键点预测精度整体最优,四尺度网络模型的关键点预测精度整体最差。由于LWPE算法特征提取能力不强,四尺度网络模型使用32倍降采样进行关键点检测并将预测结果加入后续预测网络中,预测结果的特征图不仅分辨率极低且特征表现能力不够,导致预测结果的误差极大,其全身PCKh@0.5仅为53.5%。主要原因为在32倍降采样上的损失函数在数值较大时就已达到饱和状态,使后续尺度上的训练难度增大,并且由于32倍降采样所得的结果误差较大,因此会影响后续网络的预测性能。三尺度网络模型的全身PCKh@0.5从16倍降采样上85.9%的预测精度逐渐提升到4倍降采样上的89.3%,可见使用三尺度网络模型在不断对预测结果进行精炼的同时可有效提升网络的检测性能。
![]() |
下载CSV 表 2 多尺度网络模型的PCKh@0.5对比 Table 2 Comparison of PCKh@0.5 of multi-scale network models |
对于三尺度预测的LWPE算法,其不同尺度的检测性能相差较小,在某些部位的关键点预测中,低尺度的预测结果甚至优于高尺度的检测结构,如在8倍降采样上的肩部、胯部和膝盖都是所有尺度中最优的结果。将不同尺度上的预测结果进行融合可有效提高预测精度。如表 3所示,多尺度预测融合后的全身PCKh@0.5较4倍降采样上提高了0.4个百分点,与表 2中不加融合网络的三尺度模型在4倍降采样上的预测结果相比全身PCKh@0.5提高了0.5个百分点。融合网络对不同尺度之间的预测结果通过函数拟合,在不同尺度上找出各部位上的最优关键点预测结果,然后融合得出综合性能最佳的预测输出,有效地提升了网络检测性能。图 8为LWPE算法在测试集图片上的检测结果,可见当人体关键点遮挡较少时,可以精准地检测出所有关键点,但当人体姿态变形或遮挡严重时,部分关键点检测效果不佳。
![]() |
下载CSV 表 3 多尺度预测结果融合的PCKh@0.5对比 Table 3 Comparison of PCKh@0.5 of the fusion of multi-scale prediction results |
![]() |
Download:
|
图 8 LWPE算法检测结果 Fig. 8 Detection results of LWPE algorithm |
为验证LWPE算法的可行性,将其与CPM和CPN算法进行比较。CPM和CPN算法网络模型较大,无法部署在移动终端,而LWPE算法基于轻量级关键点提取网络,因此将CPM和CPN算法的主干网络换成与LWPE相同的MobileNetV2_S,并将深度可分离卷积替换标准卷积后进行对比实验。在数据集上3种算法的PCKh@0.5对比结果如表 4所示。在使用相同主干网络的条件下,LWPE算法的参数量和浮点运算量分别为CPN算法的64.3%和37.5%,PCKh@0.5提升了1.5个百分点,单帧运行时间减少了22 ms,LWPE算法参数量和浮点运算量分别为CPM算法的37.1%和15%,但在单帧运行时间是其3.4倍的情况下PCKh@0.5仅下降了0.1个百分点,其中单帧运行时间是网络模型在华为荣耀20pro手机上所测得数据。
![]() |
下载CSV 表 4 3种算法的PCKh@0.5对比 Table 4 PCKh@0.5 comparison of three algorithms |
本文提出一种基于轻量级网络的实时关键点检测算法,使用深度可分离卷积减少模型参数量并提升模型运行速度,并通过精炼网络和融合网络不断优化算法检测性能。实验结果表明,在同时使用MobileNetV2_S作为主干网络的情况下,LWPE算法相比传统CPM和CPN算法参数量和浮点运算量均明显减少,并具有较高的检测精度和较好的实时性能。后续将对该轻量级网络模型做进一步优化,解决人体姿态遮挡或变形时的关键点检测问题,并将其应用于移动终端的多人关键点检测中,提升其适用性与实用性。
[1] |
ZHENG Weicheng, LI Xuewei, LIU Hongzhe, et al. Fatigue driving detection algorithm based on deep learning[J]. Computer Engineering, 2020, 46(7): 21-29. (in Chinese) 郑伟成, 李学伟, 刘宏哲, 等. 基于深度学习的疲劳驾驶检测算法[J]. 计算机工程, 2020, 46(7): 21-29. |
[2] |
XIA Hansheng, SHEN Huan, HU Wei. Detecting distraction of drivers using human pose keypoints[J]. Computer Technology and Development, 2019, 29(7): 1-5. (in Chinese) 夏瀚笙, 沈峘, 胡委. 基于人体关键点的分心驾驶行为识别[J]. 计算机技术与发展, 2019, 29(7): 1-5. |
[3] |
TANG Hui, WANG Qing, CHEN Hong, et al. Somatosensory interaction method based on deep learning[J]. Computer and Modernization, 2019(2): 7-14. (in Chinese) 唐晖, 王庆, 陈洪, 等. 基于深度学习的体感交互方法[J]. 计算机与现代化, 2019(2): 7-14. |
[4] |
WANG Tao, WANG Hongzhang, XIA Yi, et al. Human gait recognition based on convolutional neural network and attention model[J]. Chinese Journal of Sensors and Actuators, 2019, 32(7): 1027-1033. (in Chinese) 汪涛, 汪泓章, 夏懿, 等. 基于卷积神经网络与注意力模型的人体步态识别[J]. 传感技术学报, 2019, 32(7): 1027-1033. DOI:10.3969/j.issn.1004-1699.2019.07.012 |
[5] |
CAO Z, SIMON T, WEI S E, et al. OpenPose: realtime multi-person 2D pose estimation using part affinity fields[C]//Proceedings of 2017 IEEE Conference on Computer Vision and Pattern Recognition. Washington D.C., USA: IEEE Press, 2017: 7291-7299.
|
[6] |
CHEN Y, SHEN C, WEI X S, et al. Adversarial PoseNet: a structure-aware convolutional network for human pose estimation[C]//Proceedings of 2017 IEEE International Conference on Computer Vision. Washington D.C., USA: IEEE Press, 2017: 1212-1221.
|
[7] |
FANG H S, XIE S, TAI Y W, et al. RMPE: regional multi-person pose estimation[C]//Proceedings of 2017 IEEE International Conference on Computer Vision. Washington D.C., USA: IEEE Press, 2017: 2334-2343.
|
[8] |
PFISTER T, CHARLES J, ZISSERMAN A. Flowing ConvNets for human pose estimation in videos[C]//Proceedings of 2015 IEEE International Conference on Computer Vision. Washington D.C., USA: IEEE Press, 2015: 1913-1921.
|
[9] |
XIAO Bin, WU Haiping, WEI Yichen. Simple baselines for human pose estimation and tracking[C]//Proceedings of European Conference on Computer Vision. Berlin, Germany: Springer, 2018: 472-487.
|
[10] |
NEWELL A, YANG K, DENG J. Stacked hourglass networks for human pose estimation[C]//Proceedings of 2016 European Conference on Computer Vision. Berlin, Germany: Springer, 2016: 483-499.
|
[11] |
WEI S, RAMAKRISHNA V, KANADE T, et al. Convolu-tional pose machines[C]//Proceedings of 2016 IEEE Con-ference on Computer Vision and Pattern Recognition. Washington D.C., USA: IEEE Press, 2016: 483-499.
|
[12] |
CHEN Yilan, WANG Zhicheng, PENG Yuxiang, et al. Cascaded pyramid network for multi-person pose estimation[EB/OL]. [2019-11-10]. https://arxiv.org/pdf/1711.07319.pdf.
|
[13] |
SUN Ke, XIAO Bin, LIU Dong, et al. Deep high-resolution representation learning for human pose estimation[EB/OL]. [2019-11-10]. https://arxiv.org/pdf/1902.09212.pdf.
|
[14] |
ZOPH B, VASUDEVAN V, SHLENS J, et al. Learning transferable architectures for scalable image recognition[EB/OL]. [2019-11-10]. https://arxiv.org/pdf/1707.07012v3.pdf.
|
[15] |
LI Lingxia, WANG Yu, WU Jinjun, et al. Micro-motion hand gesture recognition method based on improved multiple dimensional convolution neural network[J]. Computer Engineering, 2018, 44(9): 243-249. (in Chinese) 李玲霞, 王羽, 吴金君, 等. 基于改进型多维卷积神经网络的微动手势识别方法[J]. 计算机工程, 2018, 44(9): 243-249. |
[16] |
GUO Jichang, WU Jie, GUO Chunle, et al. Image super-resolution reconstruction based on residual connection convolutional neural network[J]. Journal of Jilin University(Engineering and Technology Edition), 2019, 49(5): 1726-1734. (in Chinese) 郭继昌, 吴洁, 郭春乐. 基于残差连接卷积神经网络的图像超分辨率重构[J]. 吉林大学学报(工学版), 2019, 49(5): 1726-1734. |
[17] |
SANDLER M, HOWARD A, ZHU M, et al. Inverted residuals and linear bottlenecks: mobile networks for classification, detection and segmentation[C]//Proceedings of 2018 IEEE Conference on Computer Vision and Pattern Recognition. Washington D.C., USA: IEEE Press, 2018: 4510-4520.
|
[18] |
LIN T Y, DOLLAR P, GIRSHICK R, et al. Feature pyramid networks for object detection[C]//Proceedings of 2017 IEEE Conference on Computer Vision and Pattern Recognition. Washington D.C., USA: IEEE Press, 2017: 936-944.
|
[19] |
ZHANG X, ZHOU X, LIN M, et al. ShuffleNet: an extremely efficient convolutional neural network for mobile devices[EB/OL]. [2019-11-10]. https://arxiv.org/pdf/1707.01083v2.pdf.
|
[20] |
HOWARD A G, ZHU M L, CHEN B, et al. MobileNets: efficient convolutional neural networks for mobile vision applications[EB/OL]. [2019-11-10]. https://arxiv.org/pdf/1704.04861.pdf.
|
[21] |
SU Zhihui, YE Ming, ZHANG Guohui, et al. Cascade feature aggregation for human pose estimation[EB/OL]. [2019-11-10]. https://arxiv.org/ftp/arxiv/papers/1902/1902.07837.pdf.
|