结合注意力机制的面部表情识别方法研究
2022-03-21任志强迟杏朱煜君刘型定张欣
任志强 迟杏 朱煜君 刘型定 张欣
摘 要: 传统CNN对重要通道特征关注不足,制约面部表情识别准确率。文章将通道注意力机制应用到面部表情识别中,即将通道注意力模块嵌入到卷积网络中。在Fer2013和CK+表情数据集上的验证结果表明,该方法有较高的识别率。
关键词: 面部表情识别; 通道注意力机制; 卷积网络; 表情数据集
中图分类号:TP181 文献标识码:A 文章编号:1006-8228(2022)03-24-03
Abstract: Traditional CNN pays insufficient attention to important channel features, which restricts the accuracy of facial expression recognition. This paper applies the channel attention mechanism to facial expression recognition, i.e., to embed the channel attention module in the convolution network. The verification results on Fer2013 and CK + expression data sets show that the proposed method has high recognition rate.
Key words: facial expression recognition; channel attention mechanism; convolution network; expression data sets
0 引言
面部表情不仅可显示交际者的情绪状态,还可传达交际者的深层思想和情感[1]。Mehrabian的研究表明,人际交往中面部表情所传达的信息占比高达55%[2-3]。在医疗、教育等领域建立人脸表情分析系统具有重要意义[4]。
深度学习在面部表情识别中的应用多基于深度网络,国内外许多学者研究了基于深度学习的面部表情识别方法。H. Sikkandar等[5]将改进的猫群算法应用于面部表情识别,取得良好识别效果。邵杰等[6]提出稠密人脸活跃度网络,在Fer2013[7]上获得了71% 的识别率。何俊等[8]改进残差网络,并引入迁移学习,在CK+[9]上实现较高识别率。
为了进一步提高面部表情识别的准确率,本文提出一种基于通道注意力的表情识别方法。将通道注意力机制引入残差网络,使网络自动学习每个特征通道的重要性,提升对重要通道特征的关注度。然后设计全连接层,利用Softmax对全连接层的输出进行分类。最后设计对比实验,在公共数据集上进行训练和测试,实验结果表明了本文方法的有效性。
1 本文方法
1.1 基于通道注意力机制的面部表情识别网络
本文创新点是将一种通道注意力机制引入残差网络的BasicBlock中,提出了一种新的表情识别网络,本文将其命名为CAResNet20(CA含义是通道注意力),其结构如图1。CAResNet20的主体结构是CABasicBlock,是BasicBlock和通道注意力机制的结合体。其结构如图2。
CABasicBlock与BasicBlock最大的不同之处是:第二个ReLu激活函数的输出后面接入了新的结构CAlayer,即本文引入的通道注意力机制。
1.2 通道注意力机制原理
CABasicBlock中的CAlayer,是实现通道注意力机制[10]的主要部分。其结构如图3。
首先最左边是经过卷积、批归一化(Batch Normalization)、激活等操作后得到的表情特征图X,该特征图有C个通道,我们希望通过注意力模块来学习出每个通道的权重,从而产生通道域的注意力。这个注意力机制主要分为三部分:挤压(Squeeze),激励(Excitation),注意(Attention)。
Squeeze:是把每个输入特征图的空间维度从H*W压缩到1,即将一个channel上的整个空间特征编码为一个全局特征。这里通过CAlayer中的AdAvPool层(自适应平均池化)完成。Sequeeze过程的函数表达式如下:
其中,[xc]表示的是特征图X中的某个通道特征,[zc]是通道特征压缩后的结果,H和W表示特征图的高和宽。
Excitation:学习不同channel之间的非线性关系,保证学习关系不互斥(因为这里有多个通道的全局描述特征)。这里通过CAlayer的FC、ReLu、FC、Sigmoid等层完成。Excitation过程的函数表达式如下:
其中,[z]是通道特征壓缩后的结果,[s]表示的是Sigmoid函数,[W1]和[W2]是为全局描述特征所生成的权重。为了降低模型复杂度,提升泛化能力,这里采用包含两个全连接层的bottleneck结构,其中第一个FC层起到降维的作用,降维系数r是个超参数,这里我们选择r=16,然后采用ReLu函数激活。最后的FC层恢复原始的维度。
Attention:将Excitation的输出的权重看做是特征选择后的每个特征通道的重要性,然后通过乘法逐通道加权到先前的特征上,完成在通道维度上的对原始特征的重标定。即实现注意力机制。Attention过程的函数表达式如下:
通道注意力机制的引入,使得CAResNet20可以更关注信息量最大的信道特性。具体来说,它可以通过学习自动获取每个特征通道的重要性,然后根据重要性,增强有用的特征,抑制对当前任务无用的特征。
2 实验
2.1 实验平台
本文基于Windows10操作系统,Pytorch版本为1.6,Python版本为3.8。显卡为NVIDIA GeForce GTX2080Ti,显存大小11GB。
2.2 实验数据集
本文采用的数据集是Fer2013和CK+。
Fer2013面部表情数据集是2013 kaggle比赛的数据,有7种面部表情,分别是快乐(happy)、悲伤(sadness)、惊讶(surprise)、厌恶(disgust)、生气(anger)、恐惧(fear),中性(neutral),对应的数字标签为0-6。
CK+数据库是Cohn Kanade数据集的扩展,Cohn Kanade数据集于2010年发布。CK+包含从123个对象中提取的593个视频序列,有7种面部表情表,类别和Fer2013相同。
2.3 数据集处理
由于Fer2013数据集部分图像质量较差,存在一定的误差,本文对Fer2013表情数据集进行处理。对数据集进行十类投票(多了Contempt,unknown和非人脸三类),采用最大投票方式,去除了不确定的图像,增加了Contempt类表情。对于CK+数据集,本文也做了相应处理。增加了Contempt类表情。为了实现训练和测试,将训练集和测试集的比例划分为6:4。
2.4 实验设计及结果分析
本文实验参数的选择如下:针对Fer2013,本文将训练的epoch数量设置为60,训练集的batchsize设置为128,测试集的batchsize设置为128,学习率为非固定。训练阶段引入数据增强的思想,扩充训练集,损失函数为交叉熵损失函数,优化器为SGD。针对CK+,本文将训练的epoch数量设置为100,训练集的batchsize设置为32,测试集的batchsize设置为32,学习率为非固定。训练阶段引入数据增强的思想,扩充训练集,损失函数为交叉熵损失函数,优化器为SGD。
为了验证本文所提方法的有效性,将本文提出方法与主流方法进行实验对比,对比结果如表1和表2所示。
由表1可知,在Fer2013的测试集上,本文方法的识别正确率最高,识别率为83.57%,相较于VGG19高出1.14%,相较于VGG16高出2%,AlexNet识别正确率最低。由表2可知,在CK+数据集上,本文方法的识别正确率最高,识别率为97.14%,相较于VGG19高出0.66%,相较于VGG16高出1.97%,AlexNet识别正确率最低。从结果可以看出,本文方法在两个表情数据集上的识别精度都优于其他传统方法。验证了本文方法的有效性。
3 总结
针对卷积神经网络对通道特征关注不足的问题,本文提出一种基于通道注意力机制的卷积神经网络表情识别方法。实验结果表明,该算法在Fer2013和CK+数据集上获得了较高的识别精度,优于目前许多主流表情识别算法。考虑到本文算法仍存在一些问题:如深层网络结构和模型参数。如何优化网络结构,解决光照、遮挡、侧脸等干扰因素将是下一步的研究重点。
参考文献(References):
[1] Pablo B, Nikhil C, Alessandra S. The FaceChannel: A Fast and Furious Deep Neural Network for Facial Expression Recognition[J]. SN Computer Science,2020,1(6):1-10
[2] Zhong G Y, Liu G Y, Du X L. Facial Expression Recognition Method based on Convolution Neural Network[J]. Internat-ional Core Journal of Engineering,2021,7(5):511-515
[3] Zhang Y, Yi W K. Research on Facial Expression Recognition Method Based on Bilinear Convolutional Neural Network[J].Journal of Physics: Conference Series,2021,1848(1):012089
[4] Kong F Z. Facial expression recognition method based on deep convolutional neural network combined with improved LBP features[J]. Personal and Ubiquitous Computing,2019,23(3-4):531-539
[5] Sikkandar H, Thiyagarajan R. Deep learning based facial expressionRecogni-tion using improved Cat Swarm Optimiz-ation[J]. Journal of Ambient Intelligence and Humanized Computing,2020,12(2):3037-3053
[6] Shao J, Qian Y S. Three convolutional neural network models for facial express-ion recognition in the wild[J]. Neurocom-puting,2019,355:82-92
[7] 黨宏社,王淼,张选德.基于深度学习的面部表情识别方法综述[J].科学技术与工程,2020,20(24):9724-9732
[8] 何俊,刘跃,李倡洪,等.基于改进的深度残差网络的表情识别研究[J].计算机应用研究,2020,37(5):1578-1581
[9] Hyun-Soon Lee, Bo-Yeong Kang. Continuous emotion estimation of facial expressions on JAFFE and CK+ datasets for human-robot interaction[J]. Intelligent Service Robotics,2020,13(1):15-27
[10] Zhou Q, Zhou Z Y, Chunmiao C, et al. Grading of hepatocellular carcinoma using 3D SE-DenseNet in dynamic enhanced MR images[J].Computers in Biology and Medicine,2019,107:47-57