2. 广东工业大学 艺术与设计学院,广东 广州 510090
2. School of Art and Design, Guangdong University of Technology, Guangzhou 510090, China
面部表情能够表达出人们自身的情绪和感受,有助于理解人类的状态和行为,随着人机交互技术的发展和应用,表情识别分析技术在社交机器人、医学治疗、驾驶监测等领域中具有越来越重要的实际意义。在大多数情况下人类可以轻而易举地识别出各种不同的面部表情,但机器在实际应用环境中对面部表情的识别性能与人类相比仍有一定的差距,因此,近年来表情识别技术一直是热门的研究方向之一。
表情识别技术的主要步骤为从人脸图像中提取相关的面部表情特征,再使用特征信息进行不同表情的识别。传统方法主要通过研究者设计的手工特征提取算子提取目标图像的表情特征后再进行分类识别,常见的特征提取算子有局部二值模式(Local Binary Pattern, LBP)[1]、尺度不变特征变换(Scale-invariant Feature Transform, SIFT)和Local Binary Patterns from Three Orthogonal Planes (LBP-TOP)等。通过传统手工特征进行识别需要的计算量较少,但研究者需要有丰富的先验知识才能实现特征的设计和选择,且其性能容易受实际环境因素的影响而减弱,进而影响最终的识别效果。
随着相关技术、配置和数据等多方面因素的发展成熟,深度学习方法在图像、文本和视频等相关识别任务中取得了非常优秀的识别效果,成为了大多数研究者的首要选择。基于其在特征提取上的优异能力,大型的神经网络模型[2-3]能够达到更好的表情识别率。然而,层数更多的大型神经网络模型往往拥有极大的参数量,应用时对硬件资源的要求非常高,耗时较多,在实际生活中大多数网络模型难以在资源不充分的平台上部署。
鉴于大型深层神经网络模型的局限性,近年来研究者们针对表情识别任务提出了许多参数量更少的轻量级神经网络模型以更易应用于现实生活中。然而,轻量级卷积神经网络与一般的神经网络相比参数量更少,特征提取能力较差,为了在保留较低网络参数量的情况下提高识别性能,轻量级网络需要结合多种更具判别性的特征信息以提高网络的识别准确率。除了从原始人脸图像提取的表情特征之外,许多研究者采用多种不同的方式提取多样性的表情特征。Fan等[4]从输入的人脸图像中分割出左眼、嘴巴和鼻子3个与表情变化相关的局部图像,分别用3个双分支的神经网络提取不同人脸部位的局部表情特征和原图像的全局表情特征,再结合3个子网络的预测结果做出最终的表情预测,通过加入不同局部人脸区域判别性特征的方法提高算法的识别率。高层特征通常与最后的表情类别高度相关,多数算法[4-6]只使用网络最后一层卷积层所提取的特征进行表情分类识别,而忽略了眼睛、额头等局部部位的细节信息,因此文献[7]融合了低层、中层和高层的特征并进行变化处理增强后续特征的空间细节信息和表达能力。然而,低层特征通常表示图像的边角等琐碎的细节信息,且更易关注图像的背景等不利于当前识别任务的其他区域,存在大量的冗余。在研究者对网络中不同层级特征图进行可视化后,其结果表明中层卷积层提取的局部特征能够更关注眼睛、嘴巴和鼻子等有明显表情变化的区域,包含更多与输入图像相关的基本表情特征且鲁棒性更强,高层的全局特征则更具判别性,并基于此融合中层和高层的特征进行分类识别,引入中层特征后生成的大量表情特征信息有效地提高了算法在实际非受限环境中对表情的识别性能和鲁棒性。
研究表明挖掘并合理利用不同区域、层级等多种不同的特征信息能够在一定程度上有效提高表情识别算法的性能,但只从单一原始人脸图像提取而来的这些特征并不够丰富,对网络性能的提升有限。文献[8]表明LBP算子所提取的局部纹理特征能够捕获面部的微小变化信息,有助于区分不同表情之间的细微差别,提高神经网络对于表情的识别率。轻量级卷积神经网络的特征提取能力较弱,与一般的卷积神经网络相比难以提取到更多判别性特征,而经过LBP处理后的人脸图像能够减少背景等无关信息的干扰,更专注于面部五官等关键区域的信息。针对轻量级网络在表情识别任务中性能较低的问题,本文提出了基于多特征融合的表情识别算法,结合LBP图像的特征以及神经网络提取的中层局部特征和高层全局特征,在轻量级神经网络的基础上捕获更多有助于识别表情的特征信息,同时使用了改进的通道注意力模块对融合后的特征信息进行筛选,在保留原有特征信息的同时更有效地加强更具判别性的重要特征,减少相关性较弱的特征信息的影响,从而在保持网络较低参数量的同时在一定程度上提高算法的识别准确率。
1 基本理论 1.1 局部二值模式局部二值模式通过在局部区域内与相邻点进行对比计算的方式捕获目标图像中不同区域的纹理信息,并在一定程度上减少无关的面部信息或背景信息的干扰,突显有助于识别表情的基本面部信息。
原始LBP算法的图像计算在大小为3像素×3像素的方型邻域内进行,通过与相邻采样点进行比较得到对应的LBP值
| $ {L}({{x}}_{\mathrm{{\rm{z}}}},{{y}}_{{\rm{z}}}) ={\sum }_{{p}=0}^{7}{S}({{i}}_{{p}}-{{i}}_{{\rm{z}}}) {2}^{{p}} $ | (1) |
式中:
| $ {S}\left({x}\right) = \left\{ {\begin{array}{*{20}{c}} 1,&{\rm{if}}\;x\ge 0\\ 0,&{\rm{if}}\;x\le 0 \end{array}} \right.$ | (2) |
计算得到的LBP值表示该像素点对应区域的纹理信息。
1.2 圆形LBP算子原始LBP算子的计算区域固定在3像素×3像素大小的方型邻域内,在纹理特征的尺度和频率不同的情况下容易受到限制,因此研究人员对LBP算子进行了研究并提出了多种改进版本的算子。其中,圆形LBP算子可以在任意尺寸的圆形区域内进行计算,其计算过程如式(3)所示。
| $ {{L}}_{{P},{R}}\left({{x}}_{\mathrm{r}},{{y}}_{\mathrm{r}}\right) ={\sum }_{{p}=0}^{{P}-1}{S}({{i}}_{{p}}-{{i}}_{\mathrm{r}}) {2}^{{p}} $ | (3) |
式中:P为圆形邻域内的采样点个数,R为圆形邻域的半径,S则表示与式(2)相同的符号函数。对于中心点
| $ {{x}}_{{p}}={{x}}_{{{\rm{r}}}}+{R}\mathrm{cos}\left(\frac{2{\text{π}}{p}}{{P}}\right) , {{y}}_{{p}}={{y}}_{{{\rm{r}}}}-{R}\mathrm{sin}\left(\frac{2{\text{π}}{p}}{{P}}\right) $ | (4) |
若式(4) 计算所得结果并不在像素点的坐标上,则使用双线性插值进行近似处理以得到相邻采样点的坐标值。
LBP算子在局部区域内的对比计算能够反映出人脸图像中的皱纹等与肌肉变化相关的面部纹理信息,进而捕获人脸表情的变化信息并帮助识别不同的面部表情,因此被广泛应用于表情识别等与人脸相关的识别任务中以提升识别性能。表情的变化通常和眼睛、鼻子和嘴巴等人脸局部区域高度相关,因此,本文在提取原始图像表情特征的小型卷积神经网络之外,添加了另一个卷积神经网络分支,将经圆形LBP算子处理后五官等局部区域更显著的人脸图像作为该网络的输入以提取能够捕获面部细微变化的特征信息,并融合两个网络提取的特征,通过提供更多有效特征信息的方式提高表情识别率。
2 算法描述为了在减少卷积神经网络参数量的同时保有一定的识别性能,本文所提出的算法采用两个网络分支分别提取原始人脸表情图像和对应的LBP图像的特征,并融合两个网络分支提取的中高层特征进行表情识别。算法的网络结构如图1所示,主要包含两个轻量神经网络分支,分别以原始人脸图像以及半径为2像素、采样点个数为8的圆形LBP算子处理后的人脸图像作为输入。
|
图 1 网络结构示意图 Figure 1 Network structure |
如图1所示,两个神经网络分支拥有同样的结构。在神经网络中浅层特征通常拥有丰富的位置信息和细节信息,因此低层的两个卷积层使用5像素×5像素卷积核扩大感受野,提取更丰富的低层特征。中层和高层的卷积层使用3像素×3像素卷积核以确保网络有足够的特征提取能力,同时避免整体网络结构过于复杂。每个卷积层后都加入Batch Normalization层以加快网络模型收敛并增强网络的泛化能力。提取输入图像特征后,将两个网络所提取的中层和高层的特征进行连接生成大量对表情识别任务有效的特征信息。
为了加强融合信息中有利于识别当前表情的重要特征,同时减少相关性较弱的信息的影响,算法采用了改进的注意力模块对融合生成的大量特征信息进行筛选并提高重要信息的权重,注意力模块的结构如图2所示。
|
图 2 注意力模块 Figure 2 Attention module |
文献[9]所提出的通道注意力模块使用全局平均池化操作,对每个通道的特征图进行压缩以进一步学习计算每个通道特征的权重。然而,全局平均池化操作只是累加特征图内的所有像素值并求其平均值,不同区域的信息对于当前任务的重要程度并不相同,而累加并求均值的操作在一定程度上会减少较重要特征信息的权重。受文献[10]启发,在注意力模块中,本文使用文献[10]中所提出的尺寸与输入特征图尺寸相同的全局深度卷积来代替全局平均池化操作对每个通道的特征图进行压缩,计算过程如式(5)所示。
| $ {{G}}_{{C}}={\sum }_{{i},{j}}{{{\boldsymbol{K}}}}_{{i},{j},{C}}\cdot {{{\boldsymbol{F}}}}_{{i},{j},{C}} $ | (5) |
式中:K为尺寸为H×W×C的卷积核,F为尺寸为H×W×C的输入特征图,H、W、C分别为卷积核的高度、宽度、深度,
为了不影响输入特征图原有的特征信息,本文所使用的注意力模块在对输入特征进行加权后,通过残差连接将加权后的结果与原输入特征相加,在保留原有输入信息的同时加强更具辨别性的重要通道特征,计算过程如式(6)所示,
| $ {{{\boldsymbol{O}}}}_{{{{l}}}}={{{\boldsymbol{I}}}}_{{{l}}}+{{{\boldsymbol{I}}}}_{{{l}}} {{Q}}_{{{l}}} $ | (6) |
式中:I为输入特征图,Q为每个通道特征的权重,O为注意力模块的输出结果,
注意力模块加强更具判别性的通道特征后通过1×1的卷积操作减少特征维数和计算量,避免融合特征后网络计算量过多,同时卷积计算过程中不同通道特征信息之间的交互能够提高后续特征的表达能力。在1×1卷积操作后同样使用与当前特征图相同尺寸的全局深度卷积取代全连接层,在进一步减少网络计算量的同时保留更多的有效特征信息以及与当前表情类别的关联能力,再进行最后的表情分类识别。网络具体参数如表1所示。
| 表 1 神经网络结构参数 Table 1 Parameters of neural network |
Fer2013数据集包含了惊喜、厌恶等7种生活中常见的表情类别,共有35887张48像素×48像素大小的人脸图像,所有图像被切分为训练集、验证集和测试集3部分,其中训练集由28709张图像构成,验证集和测试集均由3589张图像构成。与其他公开数据集相比,Fer2013数据集中的人脸图像数据都是在网络上爬取采集而成,在年龄、人种、性别、姿态、背景、光照和遮挡等因素上各有差异,更加符合实际的应用场景,且数据量足够大,非常适用于训练并评估表情识别算法。在实验过程中通过将人脸图像随机裁剪为44像素×44像素大小的图像、随机水平翻转和随机旋转的方式进行数据增强,扩充训练时的样本量,避免模型因样本量不足出现过拟合的情况。
CK+数据集是从实验对象采集而来的7种常见表情的变换序列,所有的表情变换序列都从一个中性的表情逐渐过渡为最终峰值的表情。数据集中共327个变化序列有相应的峰值表情标签,选用其最后3帧的峰值人脸表情图像共981张人脸表情样本对模型进行训练评估,每张图像的大小都为48像素×48像素,并同样通过随机裁剪为44像素×44像素大小的人脸图像、随机水平翻转和随机旋转的方式扩充训练过程中的样本量。
3.2 实验环境实验在Windows10操作系统上基于python3.6.5版本的Pytorch深度学习框架进行,所用GPU为NVIDA GeForce RTX 2060,CPU为Intel(R) Core(TM) i7-9750H,内存为16 GB,并使用Cuda10.1工具包加速模型训练。实验采用十折交叉验证法以减少数据差异带来的准确率误差,算法训练过程中的具体参数设置如表2所示。
| 表 2 实验参数 Table 2 Experiment settings |
训练200个epoch后,模型在Fer2013数据集上的识别准确率为70.21%,在CK+数据集上的识别准确率为95.59%。为了表明算法中所提出的改进之处对识别性能的提升效果,进行消融实验与原算法进行对比,即分别去除注意力模块、去除以LBP图像作为输入的神经网络分支以及去除中层特征仅融合2个小型卷积神经网络所提取的高层特征构造3个不同的网络模型,并在同样的数据集上训练200个epoch后与本文所提出算法的训练结果进行对比。
在2个数据集上进行消融实验得到的准确率结果如表3所示,根据对比结果可知,加入LBP图像的网络分支可以提供更具判别性的面部特征信息,融合2个网络所提取的中高层特征信息可以生成大量丰富且有助于识别表情的特征信息用于最后的表情分类识别,注意力机制则能够加强有效信息的权重,减少与当前类别相关性较弱的特征信息的影响,从而在一定程度上提高轻量网络的性能。
| 表 3 消融实验对比结果 Table 3 Results of ablation experiment |
为了验证本文方法的综合性能,与现有的其他模型方法在参数量和识别率上进行对比,在Fer2013数据集上的对比结果如表4所示。
| 表 4 不同算法在Fer2013数据集上的对比结果 Table 4 Comparison result on Fer2013 dataset |
文献[11-12]均采用多个分支卷积计算并融合多尺度特征的方法提高图像表情特征的表达能力,但仅结合从单一输入图像中提取的不同尺度特征信息对算法的性能并没有太大的提升,且多个分支的卷积计算大大增加了网络的计算量。文献[13]结合HOG特征和优化的单卷积网络结构取得了较好的实时识别结果,文献[14]采用改进神经网络和损失函数的方法提高了算法的识别率,但两个算法提出的网络中使用的过多卷积核和大尺度卷积核大大增加了模型的参数量。ShuffleNet[15]能够在提高模型速度的同时保持较好的准确率,但作为能够广泛使用于多种任务的轻量模型,在缺少针对表情识别任务的优化和注意力机制对无关特征的处理的情况下对表情进行识别的能力还有待提高。VGGNet被广泛应用于表情识别的任务中并作为算法的基准模型,其使用的大量3×3卷积核能够充分提取大量的表情特征,从而达到较高的表情识别效果,但其堆叠的大量卷积核无疑增加了模型的参数量。从表4的对比结果可知,在Fer2013数据集上,本文所提出的算法比文献[11-12,15]所提出的方法在识别准确率上有较大的提升,且参数量更少。虽然与文献[13-14]提出的算法和VGGNet相比本文算法识别率相对较低,但在参数量上仍少于这3个算法,在整体性能上有一定的优势。
在CK+数据集上的对比结果如表5所示。
| 表 5 不同算法在CK+数据集上的对比结果 Table 5 Comparison result on CK+ dataset |
在CK+数据集中,与本文算法相比,文献[11-12]所采用的计算并融合多尺度特征信息的方法在增加网络参数量的同时对算法的识别率并没有太大的提升。ShuffleNet[15]作为轻量级模型在较少的参数量下也能达到较好的识别率,但仍需要针对表情识别任务进行优化以进一步提高对于表情的识别能力。文献[16]采用融合不同层级卷积层所提取的不同分辨率特征的方法提高模型的泛化能力,但在另一分支带来了额外参数量的情况下只从原始图像中提取不同分辨率的特征,不仅不能得到更全面更具判别性的特征信息,还增加了模型复杂度,在识别率上的提升并不高。ResNet的残差结构能够进一步保留特征信息的完整度并提高模型的准确度,是许多研究者首选的基准模型,文献[17]在ResNet模型的基础上加入注意力模块,极大地提高了模型的性能。经过对比可知,在CK+数据集上,与文献[17]提出的算法相比本文算法识别率较低,但模型的参数量更少,与其他算法相比本文模型参数量均少于这些算法,且识别率也有所提升,在整体性能上有一定的优势。
根据表6及表7与其他算法的综合对比结果可知,本文所提出的算法在识别率上有一定的提升,同时拥有较少的参数量,有一定的综合性能优势。实验结果表明,引入LBP特征分支网络并融合2个网络的中高层特征信息,再通过注意力模块提高重要特征的权重,可以在保持较少的网络参数量的同时,充分利用2个网络所提取的丰富的特征信息弥补轻量级网络模型在提取能力上的不足,从而改善了轻量神经网络的表情识别效果。本文方法在Fer2013数据集和CK+数据集上的混淆矩阵分别如表6及表7所示。
| 表 6 Fer2013数据集混淆矩阵 Table 6 Confusion matrix on Fer2013 dataset |
| 表 7 CK+数据集混淆矩阵 Table 7 Confusion matrix on CK+ dataset |
根据表6及表7的混淆矩阵可知,算法对于开心、惊讶这两种表情的识别率比其他类别的表情更高,这两种表情通常伴随着更加明显的面部肌肉或五官变化,如上拉的嘴角和眼角、张大的嘴巴、上扬的眉毛等,因此更加容易进行区分,不易与其他表情混淆。其他表情类别则由于存在相似的面部肌肉变化或五官特征容易出现错误分类,如生气表情和厌恶表情通常带有皱起的眉毛和收紧的嘴巴等表情特征,容易相互错判。CK+数据集是在受限的实验室环境采集而来,没有过多外界实际因素的干扰,因此开心和惊讶这两个类别的表情有很好的识别率。Fer2013数据集里的数据是在网络上爬取采集而成的,图片数据错乱复杂,存在如愤怒般的厌恶等更加复杂的混合表情,且存在标签缺失或标签错误等问题,因此识别精度并不能与实验室数据集相比,更容易造成表情混淆。
4 结论本文采用了两个轻量级卷积神经网络分别提取输入人脸表情图像和对应的LBP图像的表情特征,融合两个网络提取的中高层特征生成更加丰富且更具备判别性的表情特征信息,并通过改进的注意力模块加强有利于识别当前表情的重要特征,在一定程度上提高了轻量级神经网络的识别性能。本文方法在Fer2013和CK+数据集上分别取得了70.21%和95.59%的识别率,在保持较低的网络参数量的同时提高了网络的表情识别率,并与其他方法进行对比证明了该方法的有效性。后续将对网络的结构和训练参数进行优化调整,进一步提高网络的识别性能,并应用于更多主流数据集上。
| [1] |
SHI D, TANG H. Face recognition algorithm based on self-adaptive blocking local binary pattern[J].
Multimedia Tools and Applications, 2021, 80: 23899-23921.
|
| [2] |
YAO A, CAI D, HU P, et al. HoloNet: towards robust emotion recognition in the wild[C]// Proceedings of the 18th ACM International Conference on Multimodal Interaction. Tokyo: Association for Computing Machinary, 2016: 472-478.
|
| [3] |
DING H, ZHOU P, CHELLAPPA R. Occlusion-adaptive deep network for robust facial expression recognition[C]// IEEE International Joint Conference on Biometrics. Houston: IEEE, 2020: 1-9.
|
| [4] |
FAN Y, LAM J, LI V. Multi-ensemble convolutional neural network for facial expression recognition[C]// International Conference on Artificial Neural Networks. Rhodes: Springer International Publishing, 2018: 84-94.
|
| [5] |
WANG K, PENG X, YANG J, et al. Region attention networks for pose and occlusion robust facial expression recognition[J].
IEEE Transactions on Image Processing, 2020, 29: 4057-4069.
|
| [6] |
WANG K, CHEN J, ZHANG X, et al. Facial expression recognition based on deep convolutional neural network[C]// IEEE 8th Annual International Conference on CYBER Technology in Automation, Control, and Intelligent Systems. Tianjin: IEEE, 2018: 629-634.
|
| [7] |
MA Y, WANG X, WEI L. Multi-level spatial and semantic enhancement network for expression recognition[J].
Applied Intelligence, 2021, 51: 1-14.
|
| [8] |
LI J, JIN K, ZHOU D, et al. Attention mechanism-based CNN for facial expression recognition[J].
Neurocomputing, 2020, 411: 340-350.
|
| [9] |
HU J, SHEN L, SUN G. Squeeze-and-excitation networks[C]// Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition. Salt Lake City: IEEE, 2018: 7132-7141.
|
| [10] |
CHEN S, LIU Y, GAO X, et al. Mobile Face Nets: efficient cnns for accurate real-time face verification on mobile devices[C]// Biometric Recognition. Urumqi: Springer International Publishing, 2018: 428-438.
|
| [11] |
徐琳琳, 张树美, 赵俊莉. 构建并行卷积神经网络的表情识别算法[J].
中国图像图形学报, 2019, 24(2): 227-236.
XU L L, ZHANG S M, ZHAO J L. Expression recognition algorithm for parallel convolutional neural networks[J]. Journal of Image and Graphics, 2019, 24(2): 227-236. |
| [12] |
MOLLAHOSSEINI A, CHAN D, MAHOOR M H. Going deeper in facial expression recognition using deep neural networks[C]// 2016 IEEE Winter Conference on Applications of Computer Vision. Lake Placid: IEEE, 2016: 1-10.
|
| [13] |
JEON J, PARK J C, JO Y J, et al. A real-time facial expression recognizer using deep neural network[C]// Proceedings of the 10th International Conference on Ubiquitous Information Management and Communication. Danang: Association for Computing Machinery, 2016: 1-4.
|
| [14] |
SANG D V, DAT N V, THUAN D P. Facial expression recognition using deep convolutional neural networks[C]// 9th International Conference on Knowledge and Systems Engineering. Hue: IEEE, 2017: 130-135.
|
| [15] |
MA N N, ZHANG X Y, ZHENG H T, et al. ShuffleNet V2: practical guidelines for efficient cnn architecture design[C]// Proceedings of the European Conference on Computer Vision. Munich: Springer International Publishing, 2018: 116-131.
|
| [16] |
何志超, 赵龙章, 陈闯. 用于人脸表情识别的多分辨率特征融合卷积神经网络[J].
激光与光电子学进展, 2018, 55(7): 370-375.
HE Z C, ZHAO L Z, CHEN C. Convolution neural network with multi-resolution feature fusion for facial expression recognition[J]. Laser & Optoelectronics Progress, 2018, 55(7): 370-375. |
| [17] |
QIAN Z, MU J, ZHANG J, et al. Facial expression recognition based on sas-net attention mechanism[C]// International Conference on Computer Network, Electronic and Automation. Xian: IEEE, 2021: 159-163.
|
2023, Vol. 40

