人体姿态估计网络的轻量化设计
2020-04-28高丙坤毕洪波
高丙坤,马 克,毕洪波,王 玲
(东北石油大学 电气信息工程学院,黑龙江 大庆 163318)
0 引 言
人体姿态估计是计算机视觉领域的一个重要的研究方向,也是近年来的研究热点之一,其目标就是准确地定位人体关键点的位置。它在动作跟踪、行为识别和动画制作等方向都有广泛的应用[1-4]。传统算法都是基于人为设计的图像特征或者特征学习方法来对目标进行检测。近几年,随着深度卷积神经网络的提出,很多方向都开始用深度学习算法替代传统算法,性能都有了很大提高。尤其一些性能优越的深度卷积神经网络(DCNN)[5-8]模型更是被广泛应用。2016年,沙漏网络[9]被提出,它结合了不同分辨率的特征,在很多方向都有应用,尤其在人体姿态估计方向上有很好的效果。然而,由于摄像头的角度和人体动作的多样性,尺度问题一直是检测的难点,针对这一问题,基于沙漏网络的金字塔残差网络[10]提出了合理的解决方案,在每一个模块中都加入了多尺度特征,有效地解决了尺度不一的问题。然而,随着网络性能的提高,也带来了网络复杂化的问题,上百层的结构和更多的通道数使得每一张图片的计算量都达到了GFLOs的级别。这样的网络很难有效应用在手机、无人机等硬件上,所以设计性能优越又高效的网络显得格外重要。
本文在人体姿态估计的网络模型中加入了一些轻量化的方法。受一些效果比较好的轻量化网络的启发[11-14],它们主要针对卷积方式和改变通道数来设计,本文在金字塔残差网络的基础上,加入了深度可分离卷积,并结合通道分离和通道混合模块,在MPII数据集上测试了网络,该网络可以在保持精度的基础上,有效地减少计算量和存储空间。
1 金字塔残差网络
沙漏网络在人体姿态估计上有好的检测效果,利用多个沙漏网络进行堆叠,不断对检测结果进行优化。每一个沙漏网络都结合了多个分辨率的特征,同时它是一个模块化的网络,每一阶段都多次使用残差模块进行特征提取。基于沙漏网络的金字塔残差网络,如图1所示,图像经过7×7卷积层、池化层和金字塔残差模块(PRM),先将图像分辨率降低到64×64,并且依次经过每个沙漏网络,每个网络后面都有一个中继监督,以防止梯度消失。每个沙漏网络的结构如图2所示,不断通过池化层来降低分辨率,最低分辨率到达了4×4,然后经过金字塔残差模块来进行特征提取。同时,在最后不断结合多分辨率的特征进行有效的姿态估计。网络里每个模块都是一个金字塔残差模块,基于它是一个模块化的网络,本文对该模块进行了轻量化设计,包括改变通道数和卷积方式,从而改进整体网络。
图1 多个沙漏网络堆积成的网络模型
图2 多个相同结构的轻量化PRM组成的一个沙漏网络
2 轻量化网络设计
2.1 深度可分离卷积
深度可分离卷积如图3所示,一组普通卷积,卷积核为K,输入通道数为M,输出通道数为O,将其分成深度卷积和点卷积两部分,深度卷积是先对每个通道进行一个K×K的卷积操作,然后点卷积用来将M个特征进行线性融合,点卷积的个数为输出通道数。
图3 深度可分离卷积
对于一个大小为Y×Z×M的输入图像,经过一个普通卷积的计算量为:
Y×Z×M×O×K×K
(1)
经过深度可分离卷积的计算量为:
Y×Z×M×O+Y×Z×M×K×K
(2)
经比较,当卷积核为3×3时,每个卷积的计算量都减少到之前的约1/9,同时这样的卷积方式也可以有效地结合各个通道的特征。
2.2 通道分离重组
通道分离重组如图4所示,在应用时可以分组向下传输,分别提取特征,在最后特征融合时将通道重新进行排序。这样可以在传输时减少通道数,还能保证在传输时,各部分的图像特征都能有效的传输到后面,并且提高它们的相关性。
图4 通道分离重组
2.3 轻量化PRM
沙漏网络里的每个模块都是一个金字塔残差模块。如图5所示,它在残差模块的基础上加入了多尺度特征,尺度的个数可以自定义,经过卷积提取特征之后,再上采样到之前的分辨率进行特征融合。
根据上述分析,本文设计了轻量化的金字塔残差模块。如图6(a)所示,将普通的卷积替换为深度可分离卷积。实验中发现,深度可分离卷积虽然减少了参数量和计算量,但在计算速率上效果不好,因此本文只将原分辨率分支的卷积用深度可分离卷积替换掉。同时,在模块开始部分加入了通道分离模块,为了使网络能够提取到更多的特征,本文并没有减少特征提取分支的通道数,而是在恒等映射部分选择了一半的通道,并用级联对特征进行融合。如果直接融合将有一半的通道少了特征提取的信息,所以在后面还要加入通道重组模块[15],将通道进行有序的重新排序,该方法增强了特征之间的融合,使得每组输出通道能够包括所有输入特征,增强了信息的相关性。
图5 原始金字塔残差模块
轻量化金字塔残差模块可以表示为:
c(i+1)=0.5c(i)⊗P(c(i);w(i))
(3)
式中:0.5c(i)表示输入特征图通道数的1/2;w(i)表示第i层的滤波器;⊗表示级联;P(c(i);w(i))表示特征金字塔,
(4)
M是金字塔多尺度的个数;fm(·)为第m个金字塔层的转换,把输出加到一起,作为g(·)的输入。同时提取特征的原分辨率的分支用深度可分离卷积替换了普通的卷积,其他分支未在卷积方式上进行改进。如图6(b)所示,去掉了原分辨率提取图像特征的分支。在随后的实验中,本文分别对模型的参数量、计算量、检测的准确率等指标进行了测试。
(a) 模型1
(b) 模型2
3 实 验
3.1 实验方法
参考级联金字塔网络[16]在COCO数据集上验证了2级沙漏模型在参数量和计算量,本文使用两个沙漏网络堆叠作为总的网络框架。在人体姿势估计的MPII数据集上训练本文提出的网络,结果如图7所示,其中包括大约25 000张图像和40 000注释样本(28 000次训练,11 000次测试)。运行环境Ubuntu,迭代次数250,batchsize为6,使用Torch7框架和两个NVIDIA 1080ti GPUs进行测试。使用Percentage Correct Keypoints (PCK)作为精度评价指标。同时按照一个参数8 bit计算存储空间,结果在表1中显示,复杂度按照输入为256×256的RGB图像进行计算的,结果如图8所示。
图7 被检测的人和轻量化网络在MPII数据集上检测16个关键点的结果
3.2 实验结果
根据表1以及图8结果显示,该网络可节省约1/2的存储空间和参数量,虽然准确率略有下降,但是计算的复杂度仅为2.83 GFLOs,是原模型的1/3,所以当存储空间有限,但是检测环境简单时,该方法比较适用。
表1 在MPII数据上测试的结果
(a) 参数
(b) 复杂度
模型2的实验结果显示,去掉模型中提取原分辨率特征的分支后,准确率、复杂度以及参数量都不是最优的,这为今后的轻量化设计提供了依据。多尺度特征的每一部分都有各自的信息,轻量化设计应尽可能多的保留尺度信息,在其他方向进行轻量化的改进。
4 结 语
本文针对人体姿态估计在实际应用时,计算速度和存储空间有限的特点,提出了一种轻量化金字塔残差网络,并在MPII数据集上进行了测试。该网络有效地降低了复杂度和参数量,适用于具有简单检测环境和有限存储空间的应用。在网络结构上,它可以用于多分支网络,这有助于轻量化各种模块化的网络。同时,下一步还需要设计更合理的网络以提高检测性能。