空间分组增强注意力的轻量级人脸表情识别
2023-11-27罗晓曙徐照兴
刘 劲,罗晓曙,,徐照兴
1.广西师范大学 电子工程学院,广西 桂林541004
2.江西服装学院 大数据学院,南昌330201
自古,“观色”是全面分析人物心理活动的重要依据。在《论语·颜渊》中更是有:“夫达也者,质直而好义,察言而观色,虑以下人”。通过识别人脸表情以观其色,可以为出现在场景中的人物提供辅助的结构化信息。因此,人脸表情识别(facial expression recognition,FER)在情感计算、人机交互、驾驶员疲劳检测、教学效果评价等众多领域有着广泛的应用[1]。1978 年,Ekman 等人[2]发表的跨文化研究中首次定义了六种基本面部表情,分别为高兴、伤心、生气、害怕、厌恶和惊讶,这些基本情绪可以被不同文化背景的人感知、认同和理解。
传统的人脸表情识别方法一般关注纹理特征和几何特征,点分布模型(point distribution model,PDM)[3]作为纹理特征法的代表方式之一,可以对表情图像的形状特征和纹理特征进行统一的建模,实现对图像特征的提取,但其计算复杂,不利于实际场景应用。关注几何特征的主成分分析法(principal component analysis,PCA)[4]通过寻找最小均方差,获取原始数据的最大可能投影方向,但同样面临运算量大、容易丢失图像局部细节信息等问题。Gabor 滤波法[5]可有效捕捉数据图像细节信息,实现多数据多维度识别,但存在数据维度过高,导致模型参数设置复杂等问题。可以看出,传统的特征提取方法主要不足是需要先验知识,但这会导致主观性,同时模型的计算量大,泛化能力不足。
近年来,由于卷积神经网络(convolutional neural network,CNN)可以进行端到端更全面的非线性映射,抽取更深层次、更抽象的语义表征,它也被应用在人脸表情识别领域,但基于CNN 的深度学习表情识别方法存在如下问题:(1)浅层卷积网络所提取的特征鲁棒性较差;(2)深层CNN模型在使表情识别准确率提升的同时,会导致参数量急剧增加,计算开销增大。虽然更大更深的网络模型效果更好,但是模型运行时对所需要的硬件配置要求也更高,而在实际生产与应用环境中,设备的配置水平往往受到成本限制,过高的配置需求不利于模型的实际应用。因此,在人脸表情识别领域,除了提高识别准确率,同时也应尽可能考虑如何压缩模型的计算开销。
根据上述问题的分析,本文在轻量级网络EfficientNet的基础上构建并行的深度卷积残差模块,在不大量增加计算开销的同时,可以使浅层网络更好地提取人脸表情图像中眼睛、嘴巴等关键细节部位的特征。同时,在深层网络引入改进SENet 的空间分组增强注意力机制(spatial group-wise enhance,SGE)[6],使模型突出对重点语义特征区域的学习并减少模型参数量。最后,设计了改进的输出模块,替换原始网络的全连接层,以此减少过拟合。本文方法在两个公开的RAF-DB[7]和AffectNet[8]数据集上进行实验验证,实验结果表明,所提方法在保持较低计算开销的情况下,较近期有关文献提出的一些先进表情识别方法有较高的识别准确率。
1 模型
1.1 改进的深度可分离卷积
Lin 等人[9]的研究表明:在CNN 模型中参数占比最大的是全连接层,虽然全连接层可以压缩特征图的维度并输入到Softmax层,最终得到七分类人脸表情图像,但这会造成过拟合,不利于增强模型的泛化能力。为此,本文设计了改进的输出模块来替换骨干网络EfficientNet-V2[10]中的全连接层输出模块。改进输出模块如图1所示。
图1 改进输出模块Fig.1 Improved output module
输出模块主要由改进的深度可分离卷积(improved depthwise separable convolution,IDP)组成,深度卷积可以看作深度可分离卷积的滤波阶段,每个通道上都有对应的卷积核进行卷积操作;点卷积是深度可分离卷积的组合阶段,整合多个特征图信息,这一过程可以用图2表示。相较于普通卷积,深度可分离卷积模块可以在进一步提取人脸表情特征的同时不引入大量的参数。当大小为d×d的卷积核作用在大小为H×W的输入特征图上时,令输入、输出的通道数分别为C和n,可得普通卷积计算参数量为H×W×C×(d×d×n),而深度可分离卷积的计算参数量为H×W×C×(d×d+n)。因此,深度可分离卷积的参数量仅为标准卷积的。
图2 深度可分离卷积操作过程Fig.2 Depthwise separable convolution operation
为了防止梯度弥散,增强模型的非线性能力,减少过拟合,深度可分离卷积后均使用了ReLU 激活函数,虽然其在反向传播时速度较快,但对于输入不大于0的神经元将会被抑制,导致权重无法更新,这会影响整个模型的最终表达。因此,本文将ReLU激活函数替换为SiLU激活函数,SiLU激活函数公式为:
SiLU激活函数曲线如图3,它对负值保留了一定的梯度流,而不像ReLU 中的硬零边界,这有利于特征信息的流动。此外,SiLU曲线上的每一点都是平滑的,这将允许更好的信息深入神经网络,从而取得更好的识别准确率和泛化性。
图3 SiLU与ReLU激活函数对比图Fig.3 Comparison of SiLU and ReLU activation functions
1.2 并行的深度卷积残差模块
人脸表情识别往往与局部细节特征有关,例如眉毛、眼睛、嘴巴等部位可以更容易地表现出不同的情绪,人眼在识别表情时也往往关注这些区域。因此,为了使网络可以有效地学习局部细节特征,本文设计了并行的深度卷积残差模块(parallel depthwise convolution residual module,PDWRes),通过对多个局部区域的特征提取,并以残差结构的形式补全到骨干网络中,实现了局部与全局特征的融合,使网络更加关注人脸表情图像中的细节特征。PDWRes模块结构如图4。
图4 PDWRes模块结构图Fig.4 PDWRes module structure
对于输入的彩色RGB人脸表情图像,在通过Efficient-Net 底层Conv1 之后得到特征图,其中c=24。受到Transformer 模型[11]与文献[12]的启发,将特征图F1进行水平、垂直方向二等分,得到四块人脸表情图像的局部区域特征图,其中h=w=,k={1,2,3,4} 。再对每小块特征图依次经过两次3×3 DWConv操作,得到人脸不同区域的细节特征图。如第1.1节所述,为了避免引入大量的计算参数,这里仅使用深度卷积进行特征提取。同时采用批量归一化(batch normalization,BN),使模型的收敛速度更快。另一方面,为了增强模型的稀疏性,减少冗余度,本文在BN后均使用了ReLU6激活函数,ReLU6定义如下:
ReLU6 激活函数将ReLU 函数线性部分的上限设为6,这有利于在低精度的移动端设备上实现更好的数值分辨率,增强模型的稳定性。
由于随着网络深度的加深,特征图将越来越小,这将不利于PDWRes模块进行局部特征提取。因此,为了尽可能地减少对模型引入额外的计算量,本文只在Stage1阶段使用了PDWRes模块。
1.3 空间分组增强注意力
特征提取是人脸表情识别的关键。如第1.2 节所述,特征图的长宽将会随着网络深度的加深而缩小,而空间通道数将会增加,但由于缺乏对人脸表情图像特定区域的监督,且表情图像中可能存在噪声,这会导致表情特征的空间分布不稳定,从而影响局部表情特征的表征能力。为此,本文引入了空间分组增强注意力机制[6],有利于帮助深层网络增强表情图像的细粒度学习。SGE模块采用特征分组的思想,沿通道方向将特征分组为多个子特征,为了使每一组子特征在空间上具有良好的分布性与鲁棒性,SGE模块在每一个特征组内都进行空间增强操作,利用全局统计特征与局部特征的相似性生成注意遮罩,并将注意遮罩在每个位置上缩放特征向量。因此,SGE模块可以有效抑制噪声,并自我增强组内的空间分布,突出语义特征的重点区域。SGE模块结构如图5。
图5 SGE模块结构图Fig.5 SGE module structure
对于输入大小为H×W,通道数为C的特征图,SGE 注意力模块首先沿着通道维度划分为G组,SGE模块将并行处理所有子特征组,并在每个子特征组内单独进行注意操作,其中一个特征组在空间上的每个位置都存在一个原始的特征向量xi∈ℝC/G,其中1<i <m,m=H×W,那么原始特征组可以表示为X={x1,x2,…,xm} 。为了利用组空间的整体信息,进一步增强关键区域语义特征的学习,利用经过全局平均池化后的特征近似表示该组的学习特征,则该组特征可以表示为g:
接着,将组内的全局特征g与原始特征xi进行点积,以此获得每个特征所对应的注意系数ci:
注意系数ci在一定程度上衡量了全局语义特征g与原始局部特征xi的相似性。若不同样本特征之间的系数偏差过大,将不利于注意操作,因此在空间上对注意系数ci进行归一化,归一化后可得:
式中,μc是c的均值,σc是c的标准差,ε为数值稳定常数。此外,为了缩放和移动归一化值,为每个系数引入一对参数γ和β,并将缩放和移动后的记为αi:
参数γ和β是SGE 模块引入的唯一一对参数,其参数量为分组数G的两倍,而这相较于整体网络百万级的参数量来说,可以忽略不计。此外SGE模块只在网络更深的Stage4~Stage6 阶段使用,这也是本文模型在加入SGE 模块后仍然轻量的原因。最后,对αi进行Sigmoid 函数激活,再与原始特征xi进行点积,点积得到的特征向量即为增强后的特征向量:
1.4 本文方法
深度卷积神经网络如ResNet和VGG等可以取得不错的人脸表情图像识别准确率,但模型的计算复杂度也随之提升,过于复杂的网络无法满足嵌入式设备场景的需求。为了满足这些需求,Tan等人[10]在MobileNet的基础上提出了轻量级神经网络EfficientNet-V2,它可以很好地平衡识别准确率和模型参数量的关系。在EfficientNet-V2 Unit 中主要使用了MBConv 模块和Fused-MBConv模块,主要是由1×1 点卷积(pointwise convolution,PWConv)、深度卷积(depthwise convolution,DWConv)以及标准3×3 卷积构成,并使用了SE(squeeze-andexcitation)注意力机制辅助模型学习。
本文提出的人脸表情识别模型主要由改进的EfficientNet网络组成,网络结构如图6所示。通过本文改进的深度可分离卷积来代替原始网络的全连接层,有利于进一步提取高维特征并减少模型的过拟合。为了增强网络对局部细节特征的提取能力,在不大量增加额外计算开销的前提下,在Stage1阶段设计了并行深度卷积残差模块,并将局部特征与全局特征相融合。随着网络深度的加深,可能会导致表情特征的空间分布不稳定,因此在深层网络Stage4~Stage6 阶段,将MBConv 模块中的SE 模块替换为SGE 注意力机制,有利于增强模型对表情图像的细粒度学习,突出语义特征的重点区域。改进后的EfficientNet 网络从Conv1 到Stage6 层的输出通道数分别为24、24、48、64、128、160、256,最后再通过Softmax层,得到七分类人脸表情识别输出(包含中性表情)。
图6 表情识别网络结构Fig.6 Expression recognition network structure
1.5 损失函数的设计
给定一张人脸表情图像x,其标签Y∈{1,2,…,i},其中i为表情图像的类别数,通过主干网络提取特征,最后送入Softmax 分类器作为输出。Softmax 计算表情图像x属于类别i的条件概率为:
式中,ωi是第i类的权重向量,j表示总类别数。Softmax的输出结果是输入表情图像x属于7 种不同表情的概率,取最大概率所在的类别作为模型的输出,这些概率之和为1。
训练时,为了利于梯度的反向传播,本文使用KL(Kullback-Leibler)散度来度量改进后EfficientNet 模型的预测输出与实际数据集标签之间的差异。KL散度是非负的,这满足深度学习梯度下降法特性,将改进后EfficientNet 模型的输出作为预测值P(x),表情图像的标签作为真实值Q(x),样本数量为N,KL散度可以写为:
在测试阶段,使用Combo Loss作为损失函数,它由改进的交叉熵(cross entropy)与Dice Loss 的加权和构成。为了控制对不同数据集中假阳性(false positive,FP)和假阴性(false negative,FN)的正则化程度,纠正网络的学习,将二进制交叉熵推广到多分类问题,其输出是多个二进制交叉熵的平均值。Dice Loss主要用于处理数据集中类别不平衡问题,减小模型在易分类表情上的过拟合。Combo Loss可以写为:
其中,ti和pi分别表示真实值与预测值。超参数α平衡Combo Loss与改进交叉熵的权重。超参数β控制对FP 与FN 的正则化程度。为了避免分母为0,实验时ε取1进行平滑。
2 实验
2.1 数据集介绍
本文实验在大规模人脸表情数据集RAF-DB 和AffectNet-7数据集上进行实验评估,二者均使用7种类别的表情标签:悲伤、惊讶、厌恶、恐惧、快乐、愤怒、中立。
RAF-DB 数据集是真实世界人脸情感数据库(realworld affective faces database),共有七分类表情图像15 339 张,每张图像均由40 人独立标注,分为12 271 张训练集图像和3 068张测试集图像。这些表情图像存在着遮挡、姿势、光照条件等不同方面的影响,具有较大的差异性与实际应用价值。
AffectNet是迄今为止最大的人脸表情数据集,包含超过100万张来自互联网的面部图片,这些图片通过不同的搜索引擎检索情感标签获得,其中大约一半(44万)的图像被标注了11 种表情类别。本文使用AffectNet-7数据集中手动标记的七分类表情图像进行实验,AffectNet-8数据集在AffectNet-7的基础上增加了蔑视的表情,共有8种类别的表情标签。
2.2 实验环境与评价指标
本文实验均在Ubuntu 16.04系统下完成,基于深度学习框架PyTorch 1.9 和解释器Python 3.9 实现。硬件环境:CPU为E5-2637 v4,GPU为NVIDIA GeForce GTX 1080Ti,显存大小为11 GB,加速库为CUDA 10.2。
机器学习系统常用于分类模型的评价指标有:准确率(accuracy),混淆矩阵(confusion matrix),也称误差矩阵。准确率是指模型输出正确样本数占总样本数的比例,可以表示为:
式中,TP、TN、FP、FN分别表示真阳性(true positive)、真阴性(true negative)、假阳性(false positive)、假阴性(false negative)的样本数,显然,这四者之和为样本总数。将真阳性(TP)、真阴性(TN)、假阳性(FP)、假阴性(FN)4 个指标一起呈现在表格中称为混淆矩阵,可以分析每一类别的误分情况。
2.3 数据预处理与实验设置
在真实场景采集的RAF-DB和AffectNet数据集里,表情图像中人脸的尺寸、角度、姿势各有不同,这不利于模型的学习,因此均使用了RetinaFace[13]进行人脸检测与对齐。
本文采用随机梯度下降(stochastic gradient descent,SGD)算法进行优化,将初始学习率设为0.01,动量为0.9,权重衰减为1.0×10-4。在Dropout层,随机丢弃的概率为0.2,以避免过拟合。在RAF-DB 和AffectNet 数据集上分别迭代60 和80 次,批处理大小均为16。在使用SGD算法优化损失函数时,当损失值接近全局最小时,学习率应变小,使模型尽可能收敛于该点。而余弦退火策略(cosine annealing)[14]通过余弦函数来降低学习率满足这一特性,可以表示如下:
其中,t代表当前的批次数,T代表总迭代次数,ηmax与ηmin表示学习率的范围,实验时分别取1和0.01。
2.4 实验结果
本文方法包括对输出模块的改进、并行深度卷积残差模块的设计以及空间分组增强注意力机制的建立,为了分析不同部分对人脸表情识别效果的影响并衡量模型参数量,以轻量级网络EfficientNet 为基线进行了消融实验,如表1所示。
表1 模型的性能Table 1 Model performance
通过表1可以看出,RAF-DB、AffectNet-7和AffectNet-8数据集在原始EfficientNet 模型上的人脸表情识别率分别为84.31%、59.83%和57.08%;在本文对EfficientNet的输出模块进行改进后,模型参数量增加2.0×104的情况下,表情识别准确率在RAF-DB、AffectNet-7 和AffectNet-8数据集分别提升了0.67个百分点、0.71个百分点和0.79个百分点,这得益于改进输出模块中深度可分离卷积对人脸表情高维特征的进一步提取,同时使用的Mish 激活函数也保证了有效特征信息深入神经网络。并行深度卷积残差模块通过集成深度卷积获取局部区域特征,使网络更加关注不同表情中的细微差异,在参数量增加3.0×104的情况下,相较于基线网络的识别准确率分别有2.13个百分点、1.86个百分点和2.11个百分点的提升,通过将局部特征融合到全局特征中,使得模型更加关注人脸表情图像中具有鉴别性的特征,而这一特点与人眼的工作原理相似。原始EfficientNet 模型在网络更深的Stage4~Stage6 阶段利用全连接进行了压缩和膨胀(squeeze-and-excitation,SE)操作,这会引入大量的计算参数,不利于模型的轻量化,通过将该模块替换为更轻量的空间分组增强注意力后,识别准确率相比于EfficientNet提高了4.02个百分点、3.26个百分点和3.04个百分点,表明了空间分组增强注意力可有效突出语义特征的重点区域,提高表情识别的准确率,而这相较于原始SE 模块,降低了模型的参数量。通过在不同数据集上测试,本文所提方法的准确率均得到了提升,表明了本文方法的泛化性。同时,本文所提方法的参数量相较于轻量级网络EfficientNet压缩了20%左右。通过以上得出本文所提人脸表情识别模型相比于EfficientNet在提高识别准确率的同时降低了模型的参数量。
2.5 实验分析
2.5.1 平衡系数对比实验
为了探究Combo Loss损失函数中平衡系数β对表情数据集识别准确率的影响,进行平衡系数对比实验。平衡系数α控制着Dice Loss 对L2的权重,实验时,对Combo Loss 与改进交叉熵取平均分配相等的权重,即α=0.5。平衡系数β∈(0,1) 控制着改进交叉熵对FP和FN 的惩罚程度,当β小于0.5 时,由于(1-ti)ln(1-pi)的权重更大,FP 将比FN 受到的惩罚更多,反之同理。实验时,β以0.1的步幅从0到1进行取值。
在RAF-DB 数据集上的实验结果如图7,表情识别准确率随着平衡系数的递增先下降后增加再下降,在β=0.6 时,识别准确率达到最高88.33%,当β小于0.6时,模型准确率先降后升,在β=0.4 时,模型的识别准确率最低86.4%,当β大于0.6时,模型的识别准确率开始下降。这表明对于RAF-DB数据集,需要对假阴性样本图片进行较大的惩罚,以辅助模型的学习取得较好的识别准确率。
图7 平衡系数对RAF-DB数据集识别准确率的影响Fig.7 Influence of balance coefficient on recognition accuracy of RAF-DB dataset
在AffectNet-7 数据集上的实验结果如图8,表情识别准确率随着平衡系数的递增先增加后下降,在β=0.3时,识别准确率达到最高63.09%,当β小于0.3时,模型的识别准确率不足,当β大于0.3时,模型的识别准确率开始明显下降,在β=0.5 时,模型的识别准确率最低为61.7%。因此,对于AffectNet 数据集,需要对假阳性样本图片进行惩罚。
图8 平衡系数对AffectNet数据集识别准确率的影响Fig.8 Influence of balance coefficient on recognition accuracy of AffectNet dataset
2.5.2 不同方法对比实验
为了更精准探究模型在不同表情下的表现能力,根据在RAF-DB数据集上的实验结果绘制了混淆矩阵,如表2 所示,主对角线上表示该标签正确分类的准确率,其余表示错分的概率。可以看出,高兴、惊讶、中立、悲伤和愤怒均取得了较高的识别准确率,具有不错的分类能力。在高兴表情中往往具有嘴角上扬、眼角有纹路等易于识别的显著特征。惊讶的表情具有嘴巴张开、眼睛睁大等特征。而恐惧表情中也存在嘴巴张开的情况,但恐惧时嘴巴张开的幅度更大,这使得恐惧容易与惊讶混淆。厌恶的识别难度最大,其容易与悲伤混淆,因为二者都有皱眉、额头紧皱等相同特征。这些消极类的情绪本身具有较强的相似性,面部关键点通常只有细微的变化,人眼也难以完全准确区分,容易导致分类混淆的现象。此外,通过观察数据集发现,不同表情类别的样本数分布不均衡,不利于模型的学习,这也是影响识别准确率的重要因素。
表2 RAF-DB数据集上的混淆矩阵Table 2 Confusion matrix on RAF-DB dataset
本文方法在AffectNet-7数据集上的混淆矩阵如表3所示。可以看出在AffectNet-7数据集中,对高兴的识别准确率最高,而愤怒、厌恶、悲伤等表情的识别准确率相对较低,原因是这几类消极类别的表情特征本身相似,大都具有眉头紧锁、嘴角向下等特征,给识别工作带来了一定的难度,愤怒最容易误识别为自然,厌恶最容易误识别为愤怒,恐惧最容易误识别为惊讶。此外,由于AffectNet 数据集源自互联网,样本数量巨大,包含较多的错误样本,整体表情识别率相比于RAF-DB数据集较低。
表3 AffectNet-7数据集上的混淆矩阵Table 3 Confusion matrix on AffectNet-7 dataset
为更好地观察本文方法在训练过程中的收敛趋势,分别在RAF-DB 和AffectNet-7 数据集上绘制了训练与测试的准确率曲线、损失函数曲线以及学习率曲线,如图9、图10所示。本文模型在RAF-DB数据集上迭代15轮左右已基本收敛,具有较快的拟合速度。在AffectNet-7数据集上训练到第30 轮左右,模型可以快速稳定地收敛,这有利于模型在实际嵌入式设备上的运行。
图9 RAF-DB数据集上的训练曲线Fig.9 Training curves on RAF-DB dataset
图10 AffectNet-7数据集上的训练曲线Fig.10 Training curves on AffectNet-7 dataset
评价深度学习模型的优劣不应只对比识别准确率等结果指标,还应兼顾模型的参数规模等性能指标,在RAF-DB 和AffectNet 数据集上与几种现有的公开方法就参数量和识别准确率进行了比较,由于部分对比模型中并未提及模型的性能指标,本文对这些方法按照原论文中的设置进行了复现,如表4 所示。表中的gACNN方法设置一个门单元的注意力机制,用以权衡每个通道的重要性,并将全局与局部斑块相结合。本文模型在RAF-DB和AffectNet-7数据集上比gACNN分别提升了3.26个百分点和4.31个百分点,证明本文的并行深度卷积残差模块在浅层提取的局部特征与全局特征相融合,以及深层的空间分组增强注意力机制对局部特征的细节关注度是足够的。
表4 RAF-DB和AffectNet-7数据集上不同方法参数量及准确率比较Table 4 Comparison of parameters and accuracy of different methods on RAF-DB and AffectNet-7 datasets
在模型参数量方面,本文方法远低于gACNN 和pACNN方法1.3×108左右的参数量,相较于参数量较低的IPA2LT 和LDL-ALSG 方法,本文方法仅为其68%左右。尽管本文方法的参数量不及Separate Loss模型,但在RAF-DB 和AffectNet 数据集上的识别准确率分别提升了1.95个百分点和4.20个百分点。DNA方法通过特征聚类、多头交叉注意力机制和注意力融合网络,在七分类数据集上取得了具有较强竞争力的识别准确率,但在参数量上为本文方法的1.2倍。由于数据集中的标签可能存在标注错误,自治愈网络(self-cure network,SCN)通过正则化排序和重标签等操作,在RAF-DB数据集上取得了87.03%的识别准确率。虽然本文的参数量不及SCN,但识别准确率提升了1.3个百分点。综合来看,本文方法在有效降低模型参数量的同时能保持较高水平的表情识别效果,验证了本文方法的有效性与实用性。
同时,为了进一步验证本文方法在含有八类情感标签数据集AffectNet-8上的有效性与泛化能力,并评估其参数量,与近年来相关方法进行了对比分析,如表5 所示。MViT方法利用Vision Transformer模型生成Mask,并利用动态重标签模块纠正数据集中的错误标签,在AffectNet-8 数据集上达到了61.40%的精度。但Transformer 模型往往具有较大的参数规模,不利于轻量化,其参数量为本文的5.3倍。自治愈网络(SCN)也是通过重标签操作在AffectNet-8 数据集上能够较好地平衡参数量与识别精度,对比其在RAF-DB 数据集上的表现,推测在AffectNet-8 数据集中可能存在较多的错误标签。DAN方法仍在AffectNet-8数据集上取得了较高的识别准确率,但其参数量也随之上升。可以看出,本文在保持较低参数量的前提下,在AffectNet-8数据集上仍取得了不错的表现。
表5 AffectNet-8数据集上不同方法参数量及准确率比较Table 5 Comparison of parameter number and accuracy of different methods on AffectNet-8 dataset
从表5 可以看出,AffectNet-8 是一个具有挑战性的人脸表情数据集,本文方法在AffectNet-7和AffectNet-8数据集上的准确率也有一定差异。AffectNet-8在AffectNet-7的基础上增加了蔑视的表情,通过观察数据集发现,在AffectNet-8 数据集中蔑视表情存在大量非本表情的图像,例如快乐等,由标注者的主观性造成的标签噪声,这将不利于网络的学习。图11展示了蔑视表情中的部分并不属于蔑视的图像。
图11 蔑视表情中包含的其他类别表情图像Fig.11 Other categories of expression images included in contempt expression
最后,本实验使用了加权梯度类激活映射(gradientweighted class activation mapping,Grad-CAM)可视化方法[29],可以更直观清晰地观察到模型更关注人脸图像哪块区域的表情特征,如图12 所示。人脸表情特征主要体现在眼睛、眉间、嘴巴等部位,不同类别的表情在这些局部区域会有不同的变化,因此,引导模型关注这些关键区域的特征将有利于识别效果的提升。图12(a)为经过骨干网络最后一个卷积层后产生的注意力热图,图12(b)为本文方法可视化结果。可以发现,本文方法将更加关注对分类起到关键作用的有效特征区域,如眼睛、嘴巴等热力红色区域,这表明模型可以捕捉到利于分类、更具有区分性的有效特征。
图12 Grad-CAM可视化结果Fig.12 Grad-CAM visualization results
3 结束语
本文提出的人脸表情识别方法不仅可以提高复杂环境下人脸表情的识别准确率,还可以优化模型的参数量。首先对轻量级EfficientNet 网络的输出结构进行改进,这有利于减少模型的过拟合,并进一步提取高维语义特征。在浅层网络设计了并行深度卷积残差模块,可以更精确地提取人脸表情多区域的局部特征,并与全局空间特征相融合。为了增强深层网络空间分布的稳定性,引入SGE 注意力模块,自主增强组内的空间分布,突出语义特征的重点区域。此外,将Combo Loss 作为损失函数,有利于纠正网络的学习。最后,在RAF-DB和AffectNet 数据集上进行实验,与部分先进方法和基本分类模型相比,取得了较高的识别精度。同时本文方法压缩了模型的参数量,达到了在提高识别准确率的情况下简化模型的目的,具有一定的应用价值。