基于注意力机制ResNet轻量网络的面部表情识别
1 引 言
面部表情是人类交流和传达情感的普遍信号之一,能够直观表达人类对外界事物的情绪反馈。社会心理学家Mehrabian的研究表明[1],在日常人际交往过程中,声音和语言信息分别占到了38%和7%,而面部表情传递的信息占总信息量的55%。面部表情识别在计算机视觉领域和深度学习领域已经被广泛研究,这些研究对理解人类的面部表情以及揭示人类情感的语义信息具有重大意义,同时在人机交互、医疗卫生、驾驶员疲劳驾驶监控等领域也具有重大意义[2]。
面部表情识别是一个热门的研究方向,其主要的研究方法就是特征提取[3-4]。传统的人工提取方法包括:局部二值模式[5](Local Binary Patter,LBP)、词袋模型[6](Bag of Words,BOW)、方向梯度直方图(Histogram of Oriented Gradients,HOG)[7]与尺度不变特征变换(Scale-Invariant Feature Transform,SIFT)[8-9]等。这些方法不仅实现困难,且很难提取到高维特征,导致耗费时间长及识别准确率低的问题。因此,当今研究者使用卷积神经网络的方法用于面部表情的特征提取,如AlexNet[10]、VGG[11]、GooleNet[12]、残差整流增强卷积神经网络[13]等已经用于面部表情特征提取,并取得较好的效果。虽然神经网络模型会随着深度增加,特征学习能力增强,但伴随着梯度消失、梯度爆炸以及模型退化等问题,导致模型在识别和分类任务上准确率下降的问题。He Kaiming等人提出了ResNet[12]网络模型,在卷积神经网络中引入残差的思想,解决了网络深度增加导致梯度消失的问题,但是ResNet网络模型仍存在参数量大和识别准确率低的问题。
针对ResNet网络模型存在的问题,结合面部表情识别的特征提取的基本需求,本文提出了一种注意力机制ResNet轻量网络(MCLResNet)用于面部表情识别。先采用ResNet18作为主干网络提取特征,引入分组卷积减少ResNet18的参数量;利用倒残差结构增加网络深度,优化了图像特征提取的效果。再将改进的CBAM模块(Multi-Scale CBAM,MSCBAM)添加到轻量的ResNet模型中,有效增加了网络模型的特征表达能力,再引入MSCBAM的网络模型输出层增加一层全连接层,以此增加模型在输出时的非线性表示。本文在FER2013和CK+面部表情数据集上进行了多组对比实验,实验结果表明,MCLResNet比其他网络模型参数量少且保持较好的识别准确率。
2 本文方法
2.1 注意力机制ResNet轻量网络模型整体构架
针对ResNet网络模型在面部表情识别中存在面部表情特征表示不足及模型参数量大的问题,本文提出了一种用于面部表情识别的注意力机制ResNet网络模型(MCLResNet)。
首先,MCLResNet在图像预处理阶段,通过随机水平翻转、随机旋转10°~15°、随机增加对比度、随机擦除方法等对面部表情数据进行增强,增强了模型的鲁棒性且丰富了数据集,将预处理后的图像作为模型的输入。其次,经过输入层后的中间特征图作为输入,通过4组两种不同残差块连接的隐藏层得到高维的特征图。最后,高维特征图经过输出层,输出层中的两层全连接层能够较好地拟合高维特征图得到面部表情分类的一维向量。
模型的整体架构图如1所示。该网络结构可以分为输入层、隐藏层及输出层3部分。输入层由一个3×3的卷积层组成。隐藏层由4个BasicBlock和4个BasicBlock1组成,两个基础块中含有跳连接和改进的CBAM形成两种不同的残差块,两种残差块交叉连接组成网络的核心部分。输出层由一个平均池化层和两个全连接层组成。
隐藏层的核心部分BasicBlock和BasicBlock1的结构分别如
图 2. 隐藏层的核心部分。(a)BasicBlock结构;(b)BasicBlock1结构。
Fig. 2. Core part of the hidden layer.(a)Structure of BasicBlock;(b)Structure of BasicBlock 1.
2.2 MCLResNet模型结构
本文针对网络模型在面部表情识别中存在参数量大、识别准确率低等问题,提出了一种基于注意力机制ResNet轻量网络模型。先将面部表情图像通过随机增强对比度、随机剪切、随机旋转10°~15°、随机缩放等进行数据增强;再经过4组交叉连接的BasicBlock和BasicBlock1提取面部表情特征,两个基础块中的卷积为分组卷积且引入了通道混洗操作,另外在两个基础块中添加MSCBAM注意力模块;最后输出层增加的一层全连接层较好地增加了一维输出特征的非线性关系,使模型精度得到提升。网络整体结构图如
Hinton等人首次提到了分组卷积,分组卷积实现了让网络模型在两个内存有效的GPU上运行。随着GPU内存的增加,网络模型不再受内存的限制。基于分组卷积的特点,很多研究者引入分组卷积思想的模型用于实现数据的并行处理,以此减少模型的参数量,增加模型训练的高效性。本文将分组卷积引入到如
尽管分组卷积能够减少模型参数量,提高模型训练的高效性,但是分组卷积的弊端是不同分组的通道间无法进行信息交互,限制了模型的表征能力。针对这一问题,本文引入通道混洗操作增强不同组通道之间的信息交互[14]。通道混洗操作如
在引入分组卷积和通道混洗结构的基础上,为了进一步增强模型的特征提取能力,本文引入了倒残差结构加深网络模型层数[15]。倒残差结构如
2.3 多尺度空间特征融合的CBAM(MSCBAM)
CBAM[17]中的通道注意力生成通道注意力特征图时要经过全连接层进行映射特征到一维特征图,在生成通道注意力时要经过压缩和扩展处理,压缩时会损失较多的通道信息[18]。针对这一问题,本文提出了改进的CBAM模块的通道注意力。
改进后的CBAM通道注意力模块如
CBAM的空间注意力模块仅能得到单一特征的空间特征图。为了得到多种尺度融合的空间特征图,在CBAM空间注意力模块中引入了不同大小的卷积核,得到融合不同尺度的空间特征图。改进后的CBAM空间注意力模块如
其中:
3 实验结果与分析
3.1 实验数据集及数据增强
本文在模型训练和模型验证所用的数据集为FER2013数据集[19]和CK+数据集[20]。FER2013数据集是人脸表情识别最通用的数据集,由35 886张人脸表情图片组成,其中,训练集28 708张、验证集3 589张、测试集3 589张,每一张图像大小为48×48的灰度图像组成。7种表情对应的标签如下:anger 0,disgust 1,fear 2,happy 3,sad 4,surprised 5,normal 6。CK+数据集包含123个对象的327个被标记的表情图片序列,共分为anger、contempt、disgust、fear、surprised、happy和sad 7种表情,表情对应标签如下:anger 0、contempt 1、disgust 2、fear 3、happy 4、sad 5、surprised 6。
为了解决因为数据分布失衡和数据量小而导致模型训练时出现过拟合等问题,本文使用数据增强等方法对数据集样本进行扩充,主要采用随机水平翻转、随机旋转、随机增加对比度、随机擦除等方法对数据集进行扩充。针对CK+中一副anger原图经过上述方法扩充后的样例如
3.2 实验环境
本文实验配置如下:Windows10系统,CPU为主频3.19 Hz的 Intel Core i9-12900K,内存为64G,GPU为NVIDIA GeForce RTX 3080(12G)×2。本实验基于Pytorch深度学习框以及Pycharm进行模型训练和测试,实验参数设置是:Batch Size为128,学习率取0.1,优化器为随机梯度下降(SGD),冲量为0.9,损失函数为交叉熵损失函数,学习率下降算法使用余弦退火算法。
3.3 实验结果及分析
3.3.1 消融实验
为了验证MCLResNet网络各个模块的有效性,对每一个模块进行消融实验。其中Baseline表示引入分组卷积且增加一层全连接层的ResNet18网络模型;BasicBlock1如
该实验在扩展的FER2013和CK+数据集上验证,实验过程是在网络模型中逐步添加模块或者修改相应的模块。
表 1. 消融实验
Table 1. Ablation experiments
|
3.3.2 确定BasicBlock1升维系数r的对比实验
为了选取BasicBlock1的升维系数r,在FER2013数据集上验证了不同的r对模型大小和识别准确的影响。具体实验参数如
图 11. (a)升维系数和准确率之间的关系图;(b)升维系数和模型参数量之间的关系。
Fig. 11. (a)Relationship between the ascending coefficient and the accuracy rate;(b)Relationship between the ascending coefficient and the number of model parameters.
3.3.3 与其他网络的对照实验
为了验证本文所提模型的准确性和有效性,与其他的网络模型进行对照实验,如AlexNet、VGG19、Zhang[21]、ResNet18及MobileNetV2。这些网络模型及本文所提网络模型在FER2013数据集、CK+数据集上的识别准确率以及所对应的参数量如
表 2. 与其他网络的对照实验结果
Table 2. Results of controlled experiments with other networks
|
模型参数量方面,本文提出的模型参数量相比于其他常见的网络模型参数量明显下降。与本文的主干网络ResNet18相比,本文模型的参数量为ResNet18网络参数量的17.42%;与MobileNetV2的参数量相比下降了1.33M。在FER2013数据集识别准确率方面,本文所提出的模型相比AlexNet、VGG19和MobileNetV2的识别准确率分别高1.07%、0.05%、6.08%;但相比ResNet18,Zhang及ResNet18+Better_Down的方法识别准确率略低。在CK+数据集识别准确率方面,本文所提出的模型识别准确率较AlexNet、VGG19、MobileNetV2和ResNet18等模型的识别准确率分别高8.22%、3.63%、1.16%、5.5%。
4 结 论
本文基于面部表情识别提出了一种注意力机制ResNet轻量网络模型(MCLResNet),其参数量为改进前ResNet18的参数量的17.42%。首先,所提模型中引入了分组卷积和倒残差结构,减少了模型的参数量,增加了网络深度,通过减小模型大小提升了模型训练速度;在不同的分组通道中引入通道混洗操作用以增强特征图层与层之间的信息交互;改进了ResNet18中跳连接中的卷积核大小,降低了特征信息的丢失。其次,改进的CBAM注意力模块(MSCBAM)在模型训练过程中提供了多尺度融合的中间特征图,增加了模型的精度。最后,本文提出的MCLResNet模型在FER2013数据集和CK+数据集上的测试准确率体现了模型良好的泛化性。尽管本文所提出模型及其他模型在CK+数据集上表现良好,但在FER2013数据集上准确率较低,其原因一方面是数据集存在部分标注错误,另一方面是FER2013数据集的复杂多样(正脸、左侧脸、右侧脸等)。解决数据集多样性带来的准确率低的问题是后期工作改进的一个方向。
[1] MEHRABIANA. Communication without words [M]//MORTENSEN C D. Communication Theory. 2nd ed. New York: Routledge, 2008: 193-200.
[2] 刘博雯, 帅建伟, 曹玉萍. 面部表情识别技术在精神疾病诊疗中的应用[J]. 中华行为医学与脑科学杂志, 2021, 30(10): 955-960.
[9] 刘洋, 韩广良, 史春蕾. 基于SIFT算法的多表情人脸识别[J]. 液晶与显示, 2016, 31(12): 1156-1160.
[11] 陈津徽, 张元良, 尹泽睿. 基于改进的VGG19网络的面部表情识别[J]. 电脑知识与技术, 2020, 16(29): 187-188.
CHEN J H, ZHANG Y L, YIN Z R. Facial expression recognition based on improved VGG19 network[J]. Computer Knowledge and Technology, 2020, 16(29): 187-188.
[13] 陈斌, 朱晋宁, 东一舟. 基于残差整流增强卷积神经网络的表情识别[J]. 液晶与显示, 2020, 35(12): 1299-1308.
[18] 付国栋, 黄进, 杨涛, 等. 改进CBAM的轻量级注意力模型[J]. 计算机工程与应用, 2021, 57(20): 150-156.
[21] 张鹏, 孔韦韦, 滕金保. 基于多尺度特征注意力机制的人脸表情识别[J]. 计算机工程与应用, 2022, 58(1): 182-189.
Article Outline
赵晓, 杨晨, 王若男, 李玥辰. 基于注意力机制ResNet轻量网络的面部表情识别[J]. 液晶与显示, 2023, 38(11): 1503. Xiao ZHAO, Chen YANG, Ruo-nan WANG, Yue-chen LI. Facial expression recognition based on attention mechanism ResNet lightweight network[J]. Chinese Journal of Liquid Crystals and Displays, 2023, 38(11): 1503.