陈森楸,刘文波,张弓
1.南京航空航天大学自动化学院,南京 211106;2.高速载运设施的无损检测监控技术工业和信息化部重点实验室,南京 211106;3.南京航空航天大学电子信息工程学院,南京 211106
人脸姿态估计是计算机视觉和智能分析领域的重要课题之一,是疲劳驾驶检测(庄员和戚湧,2021)、人机交互和虚拟现实等领域的关键技术并有着广泛应用。近年来,人脸姿态估计研究活跃,成果丰硕(卢洋 等,2015;董兰芳 等,2016;Borghi等,2020;Dua等,2019)。新型冠状病毒肺炎(corona virus disease 2019,COVID-19)的爆发严重影响了社会、经济和生产生活等各个方面。在新冠疫情防控的新形势下,佩戴口罩成为重要防控措施之一,实现口罩遮挡的人脸姿态估计具有重要的现实意义。
围绕人脸姿态估计任务,提出了许多技术路线(Murphy-Chutorian和Trivedi,2009)。其中,基于特征回归的方法具有突出的优越性,其思路为构建人脸图像的特征空间与姿态空间的映射关系。但由于口罩遮挡的人脸图像信息大量损失,传统方法不能获取丰富且鲁棒的特征,导致算法性能严重下降。随着深度学习的发展,基于卷积神经网络的人脸信息提取技术不断进步(LeCun等,2015;吴从中 等,2021),卷积神经网络成功用于人脸姿态估计研究(Byungtae等,2015;Patacchiola和Cangelosi,2017;Raza等2018;Ruiz等,2018;Khan等,2020)。卷积神经网络较传统方法具有更强的特征提取能力,研究者利用卷积神经网络在低分辨率、遮挡干扰和复杂环境等条件下实现了人脸姿态估计。鉴于卷积神经网络的特征提取能力及在人脸姿态分类中的成功应用,本文将其应用于口罩遮挡的人脸姿态分类。
卷积神经网络通过堆叠的卷积层和池化层对图像进行多重非线性映射,自动提取了浅层纹理、边缘等细节信息及高层语义信息,但高效的性能也造成了卷积神经网络结构的复杂。复杂的网络结构使模型获得高性能的同时在参数量和计算复杂度方面牺牲很多,导致实时性不佳,且计算、存储资源消耗大。而人脸姿态估计通常是计算机视觉和智能分析技术的中间环节之一,姿态估计结果用于后续的分析决策。作为中间环节的人脸姿态估计技术,轻量高效的网络模型能够使其在有限的资源范围内发挥高效的作用。因此,本文的研究重点为设计一个高效轻量的卷积神经网络用于口罩遮挡的人脸姿态估计。
为提高卷积神经网络的效率,针对轻量级卷积神经网络开展了大量研究(Denton等,2014;Han等,2015;Zhou等,2020)。Iandola等人(2016)设计Fire模块构建了SqueezeNet,显著降低了参数量和计算复杂度。Howard等人(2017)提出深度可分离卷积代替传统卷积,构建了MobileNetV1,接着提出倒残差结构改进可分离卷积,构建了MobileNetV2(Sandler等,2018)。Zhang等人(2018)采用shuffle模块解决了组卷积引起的通道间信息流不通的问题,提出了性能高效且轻量的ShuffleNetV1及改进的ShuffleNetV2(Ma等,2018)。EfficientNet(Tan等,2019a)通过一个复合系数动态优化卷积网络的深度、宽度和分辨率,在降低参数量的同时优化了网络性能。然而,轻量化网络模型会在一定程度上造成模型性能下降。因此,需要在综合考虑模型的体量和准确率的基础上,设计一个轻量且高效的网络模型,以期较低的计算要求和较高的准确率。
本文采用深度可分离卷积分解传统卷积运算,引入并改进卷积块注意力模块(convolutional block attention module,CBAM)及其嵌入方式,利用双尺度卷积来优化该注意力模块的结构,形成双尺度分离嵌入CBAM的卷积单元,在保证较高模型性能的前提下,采用较少的卷积单元构建了一个轻量且高效的网络模型,同时利用卷积层替换全连接层,进一步轻量化模型。由于新冠疫情影响,暂时无法实现大规模的人脸数据采集。本文利用公开的人脸姿态图像叠加口罩图像制作半仿真口罩人脸姿态图像数据,同时采集了少量的真实口罩人脸姿态数据。采用迁移学习的方法,在半仿真数据上训练本文设计的模型,并将其迁移至真实数据集,在有限的真实口罩人脸姿态数据条件下有效地训练了网络模型,提高了模型泛化能力。
解耦卷积运算方式是降低计算量的重要措施之一。深度可分离卷积是一种将传统卷积解耦为深度(depthwise,DW)卷积和点(pointwise,PW)卷积的特殊卷积方式,如图1所示。
图1 深度可分离卷积Fig.1 Depthwise separable convolution
传统卷积的计算量T1=M×N×C×C×D×D。而1个深度卷积的计算量为M×C×C×D×D,1个点卷积的计算量为M×N×D×D,深度可分离卷积的计算量T2=M×C×C×D×D+M×N×D×D。深度可分离卷积与传统卷积的计算量比例为
(1)
式中,M为输入特征图的通道数,N为卷积核个数,D为特征图的尺寸,C为卷积核的尺寸。卷积核个数N越多,计算量下降越大,所以采用深度可分离卷积可以大幅降低卷积计算量。
CBAM注意力模块(Woo等,2018)是一个低参数量、可灵活嵌入基础网络中即插即用的模块,由通道注意力模块(channel attention module,CAM)和空间注意力模块(spatial attention module,SAM)级联而成。
通道注意力模块MC∈RC×1×1,如图2所示,⊕表示元素相加。假设输入特征图F=[f1,f2,…,fC](fi∈RH×W),首先通过最大值池化和均值池化将F进行挤压,结果为[q1,q2,…,qC](qi∈R),每个通道的2维特征图由一个实数表示,代表该通道的整体信息。接着将这两组描述符送入一个包含隐含层的共享网络(shared multi-layer perceptron,shared MLP)学习得到不同通道间的注意力权值。CAM计算过程为
(2)
空间注意力模块通过学习人脸图像中不同空间位置的重要性,生成空间注意力图。传统的SAM通过对特征图沿通道维度分别进行均值池化和最大值池化挤压图像空间信息,但这种挤压方式对图像的空间信息利用并不充分。
本文在利用均值池化和最大值池化挤压图像空间信息的基础上,增加对特征通道的挤压,丰富模块挤压的空间信息。具体操作为采用1 × 1的点卷积逐像素点地对各通道进行挤压。通过补充1 × 1点卷积结果,挤压操作能够获取更丰富的信息,形成更有效的注意力图,从而更好地把握空间信息。如图3所示,改进空间注意力模块采用1 × 1的点卷积将输入特征图挤压为1维,接着将3个特征描述符串联并采用3 × 3的卷积核进行运算得到空间注意力图。改进SAM模块计算过程为
图3 改进空间注意力模块Fig.3 Improved spatial attention module
(3)
由于轻量化模型会导致模型性能受损,本文通过嵌入注意力模块改善轻量化模型的性能。注意力模块是一个即插即用的小参数量插件,能够以增加较少参数量的代价提升模型性能。
本文采用深度可分离卷积结合CBAM构建了一个轻量高效的卷积结构。注意力模块作为一个独立的组件嵌入在主干网络中,Woo等人(2018)研究了不同的CAM和SAM组合嵌入方式(串联/并联)且确立了先CAM后SAM的串联组合方式。假设输入特征图为F∈RC×H×W,首先经过CAM对通道特征进行处理,然后经过SAM对空间特征进行处理。具体为
F′=MC(F)⊗F
F″=MS(F′)⊗F′
(4)
式中,F′为通道注意力的结果,MC∈RC×1×1为通道注意力模块,F″为空间注意力的结果,MS∈R1×H×W为空间注意力模块,⊗代表元素的乘法。
CBAM以标准方式(Woo等,2018)嵌入深度可分离卷积的效果是次优的。深度可分离卷积由DW卷积和PW卷积组成。在一个DW卷积中,卷积核数与输入特征通道数一致,单个卷积核仅对一个特征通道进行运算,所以各通道间的信息不流通。PW卷积以1 × 1的点卷积核逐点地对DW卷积结果进行处理,融合不同通道间的特征。特征图经过DW卷积后仅能获取各特征通道的空间信息,而经过PW卷积后才能获取特征图的空间及通道的混合信息。传统卷积则是一步获取空间及通道的混合信息,后接CBAM模块对包含混合信息的特征图进行处理。然而,按标准方式对深度可分离卷积嵌入CBAM模块的效果并未能达到最佳。本文将CBAM模块拆分,在DW卷积后嵌入SAM,对仅包含空间信息的特征图进行空间注意力调整,而后将处理过的特征图送入PW卷积获取包含空间及通道特征的混合信息,且在其后嵌入CAM对特征图进行调整。具体为
F′=MS(FDW)⊗FDW=MS(fDW(F))⊗fDW(F)F″=MC(FPW)⊗FPW=MC(fPW(F′))⊗fPW(F′)
(5)
式中,FDW为DW卷积结果,fDW为DW卷积,FPW为PW卷积结果,fPW为PW卷积。
本文将CBAM分离嵌入深度可分离卷积,所提卷积结构DW-SAM-PW-CAM如图4所示(⊗表示元素相乘),其效果优于CBAM以标准方式嵌入的结构DW-PW-CAM-SAM。该结构能够更有效地将注意力模块应用于卷积运算。
图4 DW-SAM-PW-CAM结构Fig.4 The structure of DW-SAM-PW-CAM
卷积神经网络通过不断堆叠卷积层或者扩宽卷积通道数可以在一定程度上增强模型性能,但是这样的操作会增大模型的参数量和计算复杂度。在Inception(Szegedy等,2015)结构启发下,本文采用不同尺度的卷积核分担单个卷积通道数,提取不同尺度的特征信息,丰富模型获得的图像特征(Tan和Le,2019b)。本文采用3 × 3和5 × 5两种尺度的卷积核替换单一尺度的卷积核,以牺牲较少的模型参数量有效提升模型性能。结合DW-SAM-PW-CAM结构,首先分别采用3 × 3和5 × 5的DW卷积和SAM处理输入特征图,接着将结果送入PW卷积和CAM进行处理,最后将计算后不同尺度的特征图连接起来作为整个卷积块单元的输出。本文将该单元称为双尺度分离注意力卷积(dual-scale separable attention convolution,DSAC)单元,如图5所示。本文利用设计的DSAC单元搭建网络模型,但简单地堆叠卷积单元不仅造成模型参数量和计算复杂度激增,还容易导致模型过拟合,性能下降。因此在保证模型准确率的前提下,将每个DSAC单元以较少的通道数构建为一个仅包含5个DSAC单元的轻量级网络模型。此外,模型参数大量集中在网络的全连接层部分。因此本文丢弃全连接层,并在最后一个DSAC卷积单元添加新卷积层,其输入通道数为最后一个轻量卷积块单元提取的特征图通道数,输出则为n个特征映射,对应n个目标的高维特征,然后经过softmax得到最终输出结果。本文设计的模型在保证准确率的前提下,大幅降低了参数量和计算复杂度,整体网络结构如图6所示。
图5 DSAC卷积块单元Fig.5 DSAC convolution block unit
图6 本文所提卷积神经网络模型Fig. 6 The overall structure of the lightweight convolution neural network proposed in this paper
受新冠疫情影响,本实验暂时无法实现大规模人脸采集。在CAS-PEAL-R1(张晓华 等,2005)人脸姿态数据集基础上,与经过缩放、旋转和变形操作的口罩图像叠加,制作了一个半仿真口罩人脸姿态数据集。同时采集少量真实口罩人脸姿态图像,构建了一个真实口罩人脸姿态数据集。数据集样例如图7所示,第1行是半合成样本,第2、3行是真实样本,包含偏航(Yaw)方向±67°、±45°、±22°和0°共7种姿态类别。半合成数据集包括1 040个人在7种不同姿态下的口罩人脸姿态图像7 280幅,其中随机选取每个姿态740幅共5 180幅作为训练样本,剩余2 100幅作为测试样本。真实数据集为57个人在相同7个姿态下的真实口罩人脸姿态图像798幅,其中随机选取每个姿态94幅共658幅作为训练样本,剩余140幅作为测试样本。将图像尺寸统一缩放为128 × 128像素以符合网络输入要求,同时为了增强模型的泛化能力,随机对数据采取了亮度变换、加噪声和模糊等数据增强,其中噪声为椒盐噪声和均值为0、方差为0.002的高斯噪声;亮度变换为原来的0.5倍和1倍;图像模糊采用均值模糊滤波器处理。
图7 半合成和真实口罩人脸姿态图像Fig.7 Semisynthetic and real masked face poses images
本文采用迁移学习的训练方法,将在半仿真数据集上预训练的模型迁移至真实数据集中。因为源域和目标域具有类似的数据分布和相同的任务,所以本文采用微调的迁移方式,将迁移网络在目标域中进行非冻结训练(Yosinski等,2014)。实验采用随机梯度下降算法,其动量设置为0.9,权重衰减设置为0.000 5;采用变学习率的训练方式,当迭代到训练次数的2/3时,学习率降低为原来的1/10,以使误差收敛更加平稳,设置批大小为16,损失函数选择交叉熵函数。在模拟数据集上从头训练的迭代次数设置为50,初始学习率设置为0.005。在真实口罩人脸姿态数据集上迁移训练的迭代次数设置为10,初始学习率设置为0.000 8。实验的软硬件平台为PC端,Windows10操作系统,8 GB内存的Core i7-9750H CPU处理器,4 GB显存的NVIDIA GeForce GTX 1650GPU显卡,Pytorch深度学习框架。
2.3.1 CBAM模块嵌入方式对比实验
为了分析本文所提嵌入方式的性能,将未引入注意力模块的DW-PW方法与以标准CBAM嵌入方式的DW-PW-CAM-SAM、采用分离嵌入注意力模块的DW-SAM-PW-CAM和改进了SAM模块的DW-SAM(+)-PW-CAM方法通过可视化方法Grad-CAM(Selvaraju等,2017)进行对比,结果如图8所示。Grad-CAM可以清楚地显示网络在学习中重点关注的区域,通过观察网络认为对预测类重要的区域,从而试图去查看网络如何充分利用图像信息。从图8可以看出,由于DW-PW方法未引入注意力模块,网络对图像信息利用不充分。将CBAM模块以标准方式嵌入深度可分离卷积的DW-PW-CAM-SAM方法覆盖目标区域较基线增多,有效提升了网络对图像信息的利用程度。采用分离嵌入注意力模块的DW-SAM-PW-CAM方法对目标覆盖区域较DW-PW-CAM-SAM方法增大,说明采用DW-SAM-PW-CAM方法有效改进了CBAM注意力模块的嵌入方式。本文所提DW-SAM(+)-PW-CAM方法的目标区域覆盖程度在DW-SAM-PW-CAM方法的基础上进一步增大,表明改进SAM模块能进一步提升图像利用程度。此外,从图8可以清楚地看到网络对未遮挡人脸部分的信息利用程度较大。实验结果表明,采用DW-SAM(+)-PW-CAM方法构建的网络对目标区域信息利用程度最高,模型能有效获取图像特征。
图8 Grad-CAM可视化结果Fig.8 Grad-CAM visualization results((a)input images;(b)DW-PW;(c)DW-PW-CAM-SAM;(d)DW-SAM-PW-CAM;(e)DW-SAM(+)-PW-CAM)
为进一步验证不同嵌入方法的性能,对上述4种方法进行定量对比分析。首先给定以下几个评价参数。总体准确率(overall accuracy,OA)代表着一种方法的总体性能,是所有类别中分类正确的样本数占总样本数的比例。模型体量评价指标采用常用的模型参数量和每秒浮点运算次数(floating-point operations per second,FLOPs)。此外,通过嵌入注意力模块提升准确率会导致参数量和FLOPs的增加,本文希望在增加较少量参数量和FLOPs的前提下尽可能地提升准确率。通过与基准方法对比,提升的OA分别与增加的参数量和FLOPs做比值,将其定义为得分S。提升的OA与增加的参数量的比值为S1,提升的OA与增加的FLOPs的比值为S2。显然,S越大表示该方法较基准方法而言,能够牺牲较少参数量/计算复杂度以达到更高的准确率。S1和S2的具体计算为
(6)
(7)
式中,On和Ob分别代表当前方法和基准方法的总体准确率,pn和pb分别代表当前方法和基准方法的参数量,Rn和Rb分别代表当前方法和基准方法的FLOPs。
实验结果如表1所示。可以看出:1)嵌入注意力模块可以有效提升OA。CBAM以标准方式嵌入网络的DW-PW-CAM-SAM方法较未引入注意力模块的方法(基线)提升了5.75%。将CBAM分离嵌入深度可分离卷积的DW-SAM-PW-CAM方法较基线提升了9.3%。在DW-SAM-PW-CAM方法上改进SAM模块的DW-SAM(+)-PW-CAM方法较基线提升了12.16%。2)在不增加参数量和FLOPs的前提下,DW-SAM-PW-CAM方法的OA较DW-PW-CAM-SAM方法有明显提升,表明分离CBAM的嵌入方式比标准嵌入的方式更具优势,合理地嵌入CBAM能有效提升模型性能。3)DW-SAM(+)-PW-CAM方法的OA较DW-SAM-PW-CA方法有明显提升。DW-SAM(+)-PW-CAM方法将通过对SAM模块增加1 × 1点卷积的结果作为补充信息,有效提升了OA,但同时也导致模型的参数量和FLOPs小幅增加。4)DW-SAM(+)-PW-CAM方法的S1和S2均为最高,表明该方法通过牺牲较少的模型参数量和计算复杂度获得了较高的模型准确率。
表1 不同嵌入方法的性能对比Table 1 Performance comparison of different embedding methods
4种方法的网络训练收敛过程如图9所示。可以看出,DW-SAM(+)-PW-CAM方法具有较快的收敛速度,并且最终能够获得较高的准确率。
图9 网络训练收敛过程Fig.9 Convergence of networks training process
2.3.2 不同尺度卷积核对比实验
为了验证本文采用多尺度卷积核的效果,对不同尺寸的卷积核组合进行对比实验。3×3卷积核已经广泛应用于各种网络模型,因此将仅包含3×3卷积核的网络作为基准,采用5×5、7×7和9×9 这3种尺寸的卷积核组合方式分担卷积通道进行对比实验。不采用11×11及以上的卷积核的原因在于:1)除了AlexNet采用11×11卷积核作为前置特征提取层外,少有网络采用大卷积核;2)大尺寸卷积核会造成模型参数量激增;3)过大尺寸的卷积核可能造成提取特征冗余并影响模型性能。
本文设置{3×3,5×5}、{3×3,7×7}、{3×3,9×9}、{3×3,5×5,7×7}、{3×3,5×5,9×9}、{3×3,7×7,9×9}和{3×3,5×5,7×7,9×9}等网络结构作为对比实验组。实验结果如由表2所示。可以看出:1)多尺度卷积核构建的网络的OA都高于单一尺度的网络。在不增加卷积深度和宽度的前提下,采用多尺度卷积核能够有效提升模型的准确率。2)采用三尺度及四尺度卷积核构建的网络的OA高于采用双尺度卷积核的网络,但双尺度卷积核构建的网络的S1和S2普遍高于采用三尺度或四尺度卷积核的网络。即采用多尺度卷积核能够有效提升模型的OA,但会增加模型的参数量和计算复杂度。而双尺度卷积核构建的网络能够通过增加较少参数量及计算复杂度有效提升OA。3)包含9×9卷积核的网络的S均较低,表明采用过大尺寸的卷积核的网络不能很好地在提升OA和牺牲参数量及计算复杂度之间取得平衡。网络采用不同尺度的卷积核能够获得丰富的特征信息,但过大尺寸的卷积核会造成模型参数量和计算复杂度的大幅增加。4)采用{3×3,5×5}双尺度卷积核的网络的准确率为98.57%,较基准网络仅增加了0.03 MB的参数量和3.68 MB的FLOPs,构建的模型具有最高的S1和S2,即在保持较少参数量和计算复杂度增加的前提下有效提升了网络的准确率。
表2 不同尺寸卷积核组合的性能对比Table 2 Performance comparison of combinations with different kernel sizes
2.3.3 不同网络模型对比实验
为了验证本文模型的性能,与AlexNet、VGGNet(Visual Geometry Group network)、ResNet(residual neural network)和GoogLeNet等经典卷积神经网络模型以及SqueezeNet、MobileNet、ShuffleNet和EfficientNet等优秀的轻量级卷积神经网络进行比较,采用模型参数量、FLOPs和OA作为评价指标,实验结果如表3所示。
表3 不同网络模型的性能对比Table 3 Performance comparison of different models
2.3.4 不同训练方法对比实验
由于真实场景中的口罩人脸姿态数据较少,采取一种有效的小样本学习方法是成功训练模型的关键。本文设计了两种方案解决数据缺乏问题,其一是通过混合制作的半仿真数据和真实数据,将模型在混合数据集中进行训练;其二是根据半仿真数据具有与真实数据相似数据分布的特点,采用迁移学习的方法能够有效地训练模型。所以将在半仿真数据集上训练的网络模型迁移至真实数据集中,提升模型的准确率。
不同训练方法的实验结果如表4所示。可以看出:1)仅在半仿真数据集中训练的模型缺乏在真实数据下的泛化能力,直接在真实数据集中测试则准确率不高。2)仅在真实数据集中训练的网络模型的准确率也较低,这是因为真实数据集过小,网络容易过拟合,导致测试准确率下降。3)在真实数据和半仿真数据混合的数据集上训练的模型的准确率能够达到90.2%,通过迁移学习训练的模型的准确率能够达到98.57%。实验表明,采用迁移学习方法能够在有限的真实口罩人脸姿态数据条件下有效训练网络模型,且具有较高的模型准确率。
表4 不同训练方法的OATable 4 OA of different training methods
本文设计了一个轻量级的卷积神经网络模型用于口罩人脸姿态分类。将通过深度可分离卷积解耦传统卷积、采用卷积层替代全连接层、缩减网络深度及卷积通道数等作为网络轻量化的主要手段,并引入注意力机制提升轻量化模型的性能。
首先,创新性地将CBAM注意力模块分离嵌入DW卷积和PW卷积,针对性地对特征图的空间信息和通道信息进行调整。其次,对SAM模块补充1×1的点卷积特征图,使SAM模块能够获取更丰富的空间信息,更好地把握了感受域的信息。然后,采用双尺度卷积核优化DW-SAM(+)-PW-CAM卷积结构,构建了DSAC模块,仅利用5个DSAC模块搭建了本文轻量高效的卷积神经网络模型。最后,将设计的网络模型在构建的半仿真口罩人脸姿态数据集上进行预训练后迁移至真实数据集中微调训练。
本文设计的网络模型具有紧凑轻盈的结构,大幅缩减了参数量和计算复杂度,具有较高的分类准确率。采用迁移学习的方法在缺乏真实口罩遮挡人脸姿态数据集的条件下成功训练了模型,提高了模型的泛化能力和准确率。与经典卷积神经网络对比,本文设计的模型仅有1.02 MB的参数量和24.18 MB的FLOPs,而准确率达到了98.57%。然而,本文研究受限于人脸姿态类别数量,未能实现较精细化的人脸姿态估计。未来的工作中,将构建更加完备的口罩人脸姿态数据集,考虑更多细分的人脸姿态,设计能够估计更加细分姿态类别的模型。