王 彬,徐 杨,2*,石 进,张显国
(1.贵州大学 大数据与信息工程学院,贵州 贵阳 550025;2.贵阳铝镁设计研究院有限公司,贵州 贵阳 550009)
人脸表情作为一种非语言的交流方式,由于它承载信息量胜过语言,因此在人类日常沟通交流中有至关重要的作用。近年来,人脸表情识别在汽车安全驾驶[1]、人类情绪认知[2]等方面应用广泛,使其成为计算机视觉研究领域的热点之一。
人脸表情识别包括三个步骤:人脸检测、人脸特征提取、表情分类。人脸检测作为人脸表情识别研究的基础,主要是从图像和视频中捕捉人脸。最具有代表性的检测方法为Zhang等人[3]提出的多任务级联卷积神经网络(Multi-Task Cascade Convolutional Network,MTCNN)人脸检测模型。人脸特征提取作为人脸表情识别最重要的一部分,常见的特征提取方法有:局部二值模式(Local Binary Pattern,LBP)[4]、E-Gabor过滤器[5]等。对于人脸表情识别的最后一步,常采用支持向量机(Support Vector Machines,SVM)[6]、随机森林(NFS)[7]等方法。
传统的人脸表情识别方法大多数为手工提取特征,而手工特征提取器容易丢失人脸关键位置的特征信息,近年来逐渐被卷积神经网(Convolutional Neural Networks,CNN)所替代。Kuo等人[8]将一种精简的CNN模型用于人脸表情识别,然而随着卷积神经网络层数不断增加会产生梯度爆炸和过拟合现象。为了克服该问题,He等人[9]提出了残差网络(Residual Network,ResNet)。在此基础上,石敏等人[10]用3×3和5×5的卷积层替换ResNet-18的7×7卷积层,并在残差块中加入注意力机制以改进残差网络,提升了人脸表情的识别率。高涛等人[11]将改进后残差网络用于人脸表情识别,并在公开数据集CK+上识别率达到93.96%,但该方法未研究人脸表情细微的类间差异对模型识别率、鲁棒性的影响。付小龙等人[12]以ResNet-18为基础研究不同的损失函数,以减少类内差异,增大类间差异,取得了不错的识别效果。通过对上述文献的研究发现,提取充分的人脸特征和辨别人脸表情样本之间细微的差异至关重要。
为此,该文在ResNet-18基础上进行改进,提出了多分支精简双线性池化网络(Multi-branch Compact Bilinear Pooling network,MCBP)。主要改进如下:
(1)提出了残差空间注意力,该注意力对输入图像不同维度的像素赋予不同的权重,使网络更好地凸显人脸关键区域的特征。
(2)在ResNet-18的基础上,设计了DBB-Res18网络架构,使网络能获取更丰富的人脸表情。
(3)设计了一个多分支精简双池化结构。该结构通过将精简双线性池化引入到DBB-Res18的多个高层卷积分支中,增强不同尺度的表情图像的内聚性。最后融合不同分支高层卷积的特征信息,提升网络对人脸表情类间差异的分辨能力。
该文在DBB-Res18基础上提出了MCBP网络,架构如图1所示。首先,选取DBB-Res18模型中的高层卷积res4_1、res4_2、res5_1、res5_2构成不同尺度的多分支特征支路。其次,将残差空间注意力引入每个分支,为避免残差空间注意力加入后模型收敛速度变慢,对残差空间注意力机制输出进行批归一化处理。经过上述操作后形成携带人脸关键区域不同尺度的特征:F1、F2、F3、F4。最后,将精简双线性池化引入到多分支之路中,同时将不同分支的特征融合后送入到softmax分类器中进行分类,softmax函数如式(1)所示。
图1 MCBP网络
(1)
常见的人脸表情之间存在着极大的相似性,而这一现象大部分是由人脸表情类别之间的细微的差异造成,要解决这一问题,提取丰富的表情特征成为了至关重要的工作。为了增强单个卷积的表征能力,Ding等[13]提出了多样化分支块(Diverse Branch Block,DBB)。DBB通过组合不同规模和复杂度的多样化分支来获得丰富的特征空间,以代替单个卷积层。如图2所示,六种不同的DBB转换组合等效为单个k*k的卷积层。
图2 DBB六种转换组合
依据六种转换组合,该文设计了一个DBB结构,如图3所示,以代替基础的单个卷积层。从图3可知,DBB结构由1*1卷积-BN组合、两个1*1卷积-BN-平均池化-BN组合以及一个k*k卷积-BN组合进行并行多尺度融合组成。经图2的六种转换组合作用后,可以将DBB等效地转换为k*k的卷积层,如图3右侧所示。
图3 多样化分支块
为进一步丰富人脸表情图像的特征空间,增强ResNet-18的特征提取能力,使用图2中设计的DBB结构改进ResNet-18的所有瓶颈块中的3*3的卷积,构成DBB-Res18网络。DBB-Res18网络的瓶颈块如图4所示。
图4 DBB-Res18瓶颈块
人脸表情所包含的鼻子、嘴巴、眼睛、眉毛等部分的变化会产生不同类别的表情,而区分表情之间的细微差异,突出上述人脸关键部位的特征尤为重要。受文献[14]的启发,该文提出了残差空间注意力(Residual Spatial Attention,RSA),如图5所示。
图5 残差空间注意力
(2)
最后将输出的空间特征Ms(F)与输入的特征映射相FA叠加得到输出特征。从上述描述可知,输入的图像经RSA作用后,可以使DBB-Res18更容易获得人脸关键区域的特征。
双线性池化[16](Bilinear Pooling,BP)通过式(3)生成全局图像描述符:
(3)
其中,X为局部描述符,表示如式(4):
X=(x1,…,x|S|,xs∈RC)
(4)
S为空间位置集合。由式(3)可知,B(X)为一个c×c的矩阵。在图像分类中通常使用逻辑回归去实现使用双线性描述符的图像分类任务,而逻辑回归被看作线性核机。假设X、Y为两组局部图像描述符,那么线性核机将对其做下述比较:
(5)
从式(5)可知,双线性描述符的比较算子为二阶多项式核。设k(x,y)表示二阶多项式核,若存在低维映射函数φ(x)∈Rd,其中d< 〈C(X),C(Y)〉 (6) 其中: (7) 为精简双线性池化的特征。 以输入的人脸图像特征F1为例,经精简双线性池化后,生成式(7)所示的精简的人脸全局特征描述符。 如图1所示,该文选取DBB-Res18高层卷积构成了一个多分支支路,在经RSA后得到了人脸特征F1、F2、F3、F4。双线性池化在“类内差异小,类间差异大”的细粒度图像分类任务中取得不错的成绩,而人脸图像中不同类别的表情之间差异小,相似度高。但双线性池化参数量太大,不利于后续分析。为此,该文将多分支路的所携带的人脸特征送入精简双线性池化中构成多分支精简双线性池化网络结构。该结构对不同尺度人脸图像使用精简双线性池化,增强了不同尺度的表情图像的内聚性,使MCBP网络获取更丰富的人脸关键部位的特征。经实验表明,该多分支精简双线性池化网络结构明显改善了基础网络捕捉人脸细微部分特征能力,更好地辨别了表情之间的相似性、促进了面部表情识别精度的提升。 实验操作系统为Ubtuntu16.04.4,GPU为NVIDIA GeForce GTX 1080Ti*2,实验环境python 3.5,深度学习框架PyTorch1.0.0,显存22G。 使用随机裁剪、中心裁剪、批归一化处理等方法对RAF-DB、CK+数据集的测试集和训练集表情图像进行了预处理。同时使用随机梯度下降算法对网络进行优化,此时网络的初始学习率为0.01,权重衰减为1×10-4,动量为0.9,总共迭代240次。由于CK+和RAF-DB数据集样本量的差异,故CK+数据集上批量处理的大小为128,每40次学习率衰减10倍。在RAF-DB数据集上批量处理大小为32,每40次学习率衰减0.1。 该文选用的数据集为CK+、RAF-DB。CK+总共拥有981张44×44像素的人脸图片,包含7种基本的人脸表情类别。RAF-DB是在日常环境下组成的数据集,该数据集由7种基本的表情类别和11种复合情感表情类别组成。该文使用的RAF-DB数据集是经Face++定位后的人脸图片。单标签总共15 339张图片,其中12 271张用作训练样本,3 068张用作测试样本。上述数据集样本分布如表1所示,包含Neutral(中性)、Happy(快乐)、Surprise(惊讶)、Sad(悲伤)、Fear(害怕)、Angry(生气)、Disgust(厌恶)、Contempt(鄙视)等表情类别。 表1 数据集样本分布 DBB-Res18在分类时仅使用最后一层卷积进行分类,这显然不足以对整个输入图像的各部分语义信息进行表征,同时最后一层卷积不可避免地会丢失骨干网络中间部分的卷积层所含有的可以区别人脸表情类间差异的特征信息。为了明确DBB-Res18的不同卷积层关注人脸表情图像的位置,该文采用Grad-CAM[17]方法将DBB-Res18的部分卷积层进行可视化,如图6所示。 图6 DBB-Res18部分卷积层可视化 从图6可知,DBB-Res18的高层卷积对人脸的眼睛、嘴巴、眉毛等部分反应较为强烈。而这些关键区域特征变化正是辨别表情之间细微区别、解决不同类别表情之间差异的关键因素。为此,该文选取DBB-Res18的几组高层卷积组合构成多分支结构并在CK+、RAF-DB数据集上开展实验,多分支结构组合方式如表2所示,其中“Accuracy”为准确率,表示正确分类的人脸表情样本与总的人脸表情样本之比。表2结果表明res4_1、res4_2、res5_1、res5_2多分支结构组合在人脸表情数据集上展示了优越的性能,故选其为文中的多分支结构。 表2 多分支结构组合方式 为了体现MCBP网络的优势和竞争力,该文将MCBP网络与近年现有的人脸表情识别研究工作在CK+、RAF-DB数据集上进行识别率的对比实验,实验结果如表3、表4所示。 表3 在CK+数据集上与现有方法识别率的比较 表4 在RAF-DB数据集上与现有方法识别率的比较 从表3实验结果可知,所提的MCBP网络在CK+数据集上,相比于Lan[18]、Shao[19]、Gan[20]等人提出的方法,分别提升了4百分点、3.17百分点、2.75百分点。由于CK+数据集样本数量不多,为了更进一步展示MCBP网络在CK+的稳定性,将MCBP与现有方法分别在CK+上开展了5次实验,然后再求取标准方差。表3的结果充分地展示了文中方法在CK+数据集上有效性、竞争性。 从表4实验结果可知,MCBP网络在RAF-DB数据集上相较于DLP-CNN[22]、MA[23]、DeepExp3D[24]等方法分别提升了8.79百分点、7.4百分点、0.93百分点,相较于Gan[21]等人提出方法准确率提升了6.4百分点。上述结果可见,所提的方法在RAF-DB相较于现有的方法有更高的识别率,具有一定竞争性和优势。 人脸表情类别之间细微差异的存在导致了表情之间的相似性,而这种相似性导致骨干网络对单个类别样本识别精度不高,进而影响网络对整个数据集的识别率。为了探究MCBP网络对上述问题的作用,分别展示了ResNet-18和MCBP在CK+、RAF-DB数据集的混淆矩阵,如图7和图8所示。 图8 RAF-DB数据集上的混淆矩阵 从图7(a)可知,ResNet-18对CK+数据集中的生气(Angry)以及鄙视(Contempt)两类表情识别率不太理想。其中有18%生气表情的数据样本被误识别为悲伤表情,36%鄙视类表情的数据样本被错误分类为惊讶(Surprise)表情。这极大地反应了残差网络ResNet-18对人脸表情细微差别判断的难度。从图7(b)可以看出,提出的MCBP网络有效地减少了这种类间细微差异对表情识别工作的影响,提升了人脸表情识别率。 从图8(a)可知,在RAF-DB数据集上ResNet-18对害怕(Fear)、厌恶(Disgust)、惊讶(Surprise)、生气(Angry)等数据样本分类精度不高。其中22%的厌恶表情类别被误分类为伤心(Sad)、8%的惊讶表情被误分类为厌恶和快乐(Happy)、23%的害怕表情被错误分类为中性(Neutral)、17%的生气表情被错误分类为伤心。该数据是由日常生活环境下构成人脸表情组合,更能反映现实生活中不相同的人脸表情类别之间的细微差异。由图8(b)可知,MCBP网络有效地缓减了人脸表情类别之间的细微差异对识别率的不利影响。 在自然环境下,不同视角获取表情图像有不同的姿态,而这也往往会给人脸表情识别效果带来影响。为此,该文从RAF-DB数据集选取了侧脸、低头、仰脸等人脸图像,构成带有侧脸、低头、仰脸的RAF-DB子集以测试MCBP网络对不同姿态人脸表情的鲁棒性。从表5实验结果可知,MCBP网络能够有效解决不同姿态对人脸表情带来的影响,有较好的鲁棒性。 表5 不同姿态下MCBP网络的识别率 % MCBP网络包括DBB-Res18、残差空间注意力、多分支精简双线性结构。为了检验上述各模块对人脸表情识别率的影响,分别在CK+、RAF-DB数据集上开展消融实验,实验的具体详情如表6所示。 表6 在CK+、RAF-DB消融实验对比结果 从表6可知,DBB-Res18相较于残差网络ResNet-18在CK+、RAF-DB识别率分别提高了1.03百分点、0.68百分点。这表明利用该文设计的DBB结构替代ResNet-18的单个卷积层,能改善ResNet-18的特征提取能力,使其获取更丰富的人脸表情特征。在DBB-Res18的基础上,添加残差空间注意力(RSA),实验结果表明相较于DBB-Res18在CK+、RAF-DB识别率分别提高了3.59百分点,0.58百分点。这反映了残差空间注意力能很好地抑制非关键的人脸特征信息,突出人脸关键区域位置的特征。在DBB-Res18的基础上,实验添加了精简双线性池化(CBP),实验结果表明相较于DBB-Res18在CK+、RAF-DB识别率分别提高了2.05百分点、2.34百分点。侧面反映了CBP能够使网络提取更加全面的人脸表情特征。最后,选取DDB-Res18的高层卷积构成多分支结构,分别验证融入残差空间注意力,精简双线性池化网络,以及同时融入二者构成所提的多分支精简双线性池化网络。表6的结果表明,MCBP在CK+、RAF-DB数据集的识别率达到了98.46%、82.99%,相较于ResNet-18在CK+、RAF-DB数据集上提高了6.67百分点、4.53百分点,表明在残差网络ResNet-18的改进的有效性,也验证了MCBP网络有利于获取更全面的人脸表征,有效缓减了人脸表情细微的类间差异带来的问题。 为了解决人脸不同类别的表情细微差异和特征提取不充分等问题,提出了多分支精简双线性池化网络用于人脸表情识别研究工作,并在公开的数据集RAF-DB、CK+上验证了模型的有效性。以提升残差网络ResNet-18对人脸表情特征的提取能力角度出发,分别利用所设计新的DBB结构组成新的瓶颈块替换残差网络原有的瓶颈块、选取改进后的DBB-Res18搭建多分支网络以及将残差空间注意力和精简双线性池化融入到多分支的每条支路中。这样的层次化和结构化的设计,有利于获取更加丰富的人脸表情特征,提升了网络判别具有细微差异的不同类别的人脸表情图像能力,明显提升了人脸表情识别的准确率,具有一定的应用价值。 下一步将深入探讨MCBP对不同光照、遮挡以及数据集样本之间不均匀人脸表情数据样本的作用,并验证网络的有效性、泛化能力和鲁棒性。2 实验结果和分析
2.1 实验环境与实验参数
2.2 数据集
2.3 多分支结构性选择分析
2.4 MCBP网络与现有方法的对比结果与分析
2.5 不同姿态的人脸表情的鲁棒性
2.6 消融实验
3 结束语