APP下载

融入注意力的残差网络表情识别方法

2023-10-09史志博

计算机应用与软件 2023年9期
关键词:识别率残差注意力

史志博 谭 志

(北京建筑大学电气与信息工程学院 北京 100044)

0 引 言

人脸表情识别是图像识别领域的研究热点,表情是人类情感表达的一种重要方式,表情识别技术是实现人机交互和人工智能的基础,具有很大研究价值[1,4]。人脸表情识别方法主要分为人脸检测、特征提取和分类识别三个步骤,特征提取是表情识别过程中重要一环,提取出更好表现表情信息的特征是提升人脸表情识别精度的关键[2]。传统的人工设计的表情特征提取方法,设计复杂,很难提取图像的高阶特征,易受干扰且不稳定[3,5]。

随着深度学习的发展,基于深度学习的表情特征提取方法被广泛应用。为了适应复杂的应用场景,更多的深度神经网络模型被提出,如AlexNet、VGGNet、GooLeNet、ResNet、DenseNet等[6-10],比传统的表情识别方法具有更好的效果。随着网络的加深,也会出现梯度不稳定、网络退化和参数量越来越大的问题。研究学者通过改良网络模型和融合其他算法的方式去提升表情识别性能,如周本君[11]对经典的AlexNet网络做了改进,在自建数据集的测试精度为88.15%;张俞晴等[12]使用CNN与SIFT特征融合的人脸表情识别方法在FER2013数据集上取得了68.1%的识别率等。

近年来,注意力机制的飞速发展为表情识别的研究提供了新思路,然而注意力机制在图像分类上的应用还处在探究过程中[13]。Hu等[14]引入通道注意力机制,将通道注意力模块与ResNet网络结合构建SeNet,通过建模通道间的相互依赖关系,自适应校准通道的特征响应来对图像分类。Woo等[15]提出CBAM,分别在特征提取网络的通道维度和空间维度上特征压缩和重新加权的方法,相比于SeNet只关注通道注意力机制取得了更好的分类效果。然而在对通道重要度权重获取上,CBAM采取双池化压缩特征分别放入同一多层感知机训练再加和激活的方法,导致神经元易倾向于对后输入特征进行权值调整,减小了双池化丰富高层次特征提取的优势;并且在残差结构之后融合构建的新网络,使得引入的激活函数干扰残差结构捷径连接的反向传播,容易导致因网络层冗余而造成的梯度减小和退化的情况发生。

针对上述缺点,本文提出融入注意力机制的残差网络人脸表情识别方法,对原CBAM进行优化改进,在获取通道重要度权重的策略上,采用特征融合再训练的方法。使网络层混合计算两部分池化压缩特征互信息,增强关键性通道特征的表示,提升了模型的拟合能力。将改进后的CBAM融入到ResNet模型的残差结构中,与残差结构的特征提取层以先后串行结构融合构建新的残差模块。该模块不仅避免了CBAM对捷径连接反向传播的影响,且先根据注意力划分输入特征的重要度再去提取特征,更符合注意力机制的思想。通过新的残差模块构建网络模型RARNet。该模型加深了对表情判别性特征的表示,提升了特征提取性能,并且改进后的CBAM属于轻量级结构,RARNet以较小参数量的增加在FER2013、JAFFE和CK+数据集上取得了比传统网络模型和其他相关方法更好的识别效果。

1 卷积块注意力机制改进

1.1 CBAM

注意力是人的一种复杂认知能力,在事物辨识过程中关注一部分信息而忽略另一部分信息。CBAM主要由通道注意力和空间注意力的串行结构组成,如图1所示。神经网络先通过通道注意力模块学习什么特征是关键特征,再利用空间注意模块学习到关键特征在哪里,加强图像判别性特征的获取,并对特征进行自适应性的细化功效。

图1 CBAM结构图

网络特征图的各个通道重要性是不同的,通道注意力可以发掘通道图之间的依赖关系,通过赋予权值的方式提取每个通道特征对关键信息的重要程度,有选择性地去关注权重值大的信息。通道注意力模块把输入大小为H×W×C的特征图A分别经过基于W和H的全局平均池化和最大池化进行压缩,把压缩后的两部分特征分别放入含有一个隐藏层的多层感知机(Multi-Layer Perceptron,MLP)中作降维升维操作,并提取用以表达通道重要度的权值向量,将经MLP处理后的输出特征作求和运算,再通过Sigmoid激活,生成最后的通道注意力加权系数,如式(1)所示。

NC(A)=σ(MLP(AvgPool(A))+MLP(MaxPool(A)))

(1)

式中:σ表示Sigmoid激活函数,W0和W1是多层感知机中的两层FC层权重,中间包含有隐藏层和ReLU激活函数。

CBAM把输入特征A经过通道注意力模块得到的权重系数NC(A)与输入特征相乘,得到含有更多通道维度上关键信息的特征图A′。再将A′通过用来提取特征图内部空间关系的空间注意力模块得到空间注意力权重系数NS(A′),并和A′相乘得到的含有更多空间位置关键信息的特征图像A″,作为CBAM最后的输出特征图,如式(2)和式(3)所示。

A′=NC(A)⊗A

(2)

A″=NS(A′)⊗A′

(3)

1.2 CBAM改进

在神经网络训练过程中,每个神经元会根据经过的每组特征前后进行参数计算调整,并且容易倾向于后输入的特征。在共享权重的情况下,若将两组特征经过同一MLP中去训练权重的话,会出现左支右绌的情况。针对此弊端,对原CBAM的通道注意力模块进行优化改进,结构如图2所示。将两组池化后的特征concat拼接融合后,再通过MLP做权重W0和W1的训练,如式(4)所示。

NC(A)=σ(MLP([MaxPool(A);AvgPool(A)])

(4)

式中:[MaxPool(A);AvgPool(A)]是拼接后的融合特征。

MLP由两层FC层构成,第一个FC层的输入特征X经过降维后得到特征Y0,通过隐藏层激活处理后,利用第二个FC层对特征Y0升维得到输出特征Y1。W0与W1是两个FC层权重,如式(5)和式(6)所示。

Y0=W0×X

(5)

Y1=W1×Y0

(6)

2 融入注意力的残差网络模型改进

2.1 残差学习模块

深层卷积神经网络通过加深卷积层用以丰富特征的提取,但是这会造成网络冗余而出现梯度爆炸和梯度消失的问题。ResNet引入了残差学习模块,利用捷径连接制造恒等映射,这种残差模型不但避免了网络层数的加深而出现的网络退化的问题,而且便于优化,计算数据量很少。

ResNet50的残差学习模块结构如图3所示,假定残差块网络的输入是x,通过捷径连接把输入x传到输出作初始结果,期望输出是H(x)=F(x)+x。此时需要学习的目标就是F(x),如果网络层成为了冗余层,期望最理想的输出目标让F(x)=0,此时虽然未学习到新的特征,但也不会造成信息丢失和损耗的问题。

图3 ResNet50残差学习模块结构

对于残差网络来说,前向过程是线性的,后面的输出是输入加上每一次的残差元的结果如式(7)所示,通过反向传播的链式法则可得到:

(7)

(8)

2.2 模型改进

采用PyTorch深度学习框架把改进后的CBAM与ResNet50残差学习模块以串行结构融合构建下采样残差注意力模块(Down sampling Residual Attention Module,DRAM)和残差注意力模块(Residual Attention Module,RAM),如图4所示。DRAM用以减小特征图大小,将浅层特征细化后并转换为深层特征;RAM以堆叠的思路加深网络深度,提升对高层语义特征的提取。

图4 DRAM 和RAM示意图

将DRAM和RAM根据ResNet50网络中的残差结构配置搭建新的网络模型RARNet,如图5所示。该网络模型由一个7×7大小的卷积层、3个DRAM层、13个RAM层和一个全连接层构成,并采取迁移学习的方法在RARNet残差结构上采用ResNet50的预训练模型参数初始化,注意力模块采用参数随机初始化。分类器选用Softmax分类,输出不同面部表情的预测值。

图5 RARNet结构图

在训练阶段,采用数据增强的方法随机切割44×44的表情图像,并将图像进行随机镜像,然后送入网络模型训练。在测试阶段,本文采用一种集成的策略来减少异常值。将图片在左上角、左下角、右上角、右下角、中心进行切割并做镜像操作,使得数据库扩大了10倍,再把这10幅图片送入模型预测。将得到的概率取平均,最大的输出分类即为对应表情类别,可以有效地降低分类错误率。

3 实验与结果分析

3.1 数据集和实验参数设置

实验采用CK+、JAFFE和FER2013数据集来训练和测试,CK+数据集是在 Cohn-Kanade 数据库的基础上扩展来的,其中含有327个贴有标签的面部视频,实验所用图片则从每个序列中提取最后三个帧,选取包含愤怒、轻蔑、厌恶、害怕、高兴、悲伤、惊讶七种人脸表情的图片981幅。JAFFE数据集包含有愤怒、厌恶、害怕、高兴、悲伤、惊讶、中性七种表情图片213幅,本文先将图片中的人脸部分检测并裁剪出来,再通过旋转不同角度的方式将数据量扩充为原数据的5倍。FER2013人脸表情数据集包含有35 886幅表情图片,是表情识别大赛的常用数据集。FER2013数据集中含有愤怒、厌恶、害怕、高兴、悲伤、惊讶、中性七种表情图片,这三种数据集各类表情图片如图6所示。

FER2013数据集数据样本中存在不少错误标签,还有一部分样本并非正面表情图片和存在表情被遮挡的情况,FER2013数据集在规模和识别难度上都远远高于CK+和JAFFE数据集。实验选用FER2013的私有测试集识别率作为模型识别精度,三者样本分组如表1所示。

表1 数据集训练和测试样本量对比

实验环境硬件上是在拥有GPU Tesla P100的深度学习服务器上进行,操作系统为Linux,使用Python2.7的版本。先将数据集的图片大小处理成48×48像素大小,并根据GPU显存将训练过程中批量大小设置为128,三个数据集训练周期分别为60、60和250,优化算法采用动量梯度下降法。初始学习率为0.01,动量为0.9,权重衰减为5×10-4,通过权重衰减的方式可防止过拟合,提升模型泛化性能。训练过程中每个Epoch结束后会通过测试集对模型进行评估和保存,完成所有轮次训练后,把识别效果最好的权值保存成最后的模型文件。

3.2 不同模型测试结果对比与分析

在网络模型上,选用ResNet18、ResNet50、ResNet50+CBAM与RARNet做实验对比,通过识别率和模型参数量做测试性能指标,在两个数据集上的实验结果如表2所示。RARNet相比于其他模型在FER2013、JAFFE和CK+数据集识别性能上分别获得了1.78%~3.68%、2.47%~7.39%和2.02%~8.08%的提升,最终取得了72.78%、96.06%和98.99%的较高识别率。因为RARNet通过引入DRAM将浅层特征通过注意力模块细化后再转化为高层特征,堆叠RAM则提升了网络对高层判别性特征的提取,增强区分不同表情关键信息的表达;而残差结构与改进后的注意力模块的结合既更好地拟合了不同通道特征的关联性,提升了注意力特征细化的表现力,又不会因为网络深度的增加而出现网络退化的现象,相较于和改进前的CBAM的融合取得了更好的识别效果;注意力模块与卷积层的先后串行结构,先增强特征图重要特征的表示,再去提取特征,更切合人的视觉机制。

表2 在不同网络模型实验对比

通过加深网络深度,虽然一定程度上提升了训练模型的识别性能,但是模型参数量增加过多,并且成效也越来越低。ResNet50相较于ResNet18在参数量上增加了13.87 MB,识别率只有2百分点、1百分点和1百分点左右的提升,而本文构建的RARNet相比于ResNet50以2.99M较少参数量的增加取得了2.68百分点、6.40百分点和6.06百分点识别率的提升,证明了本文方法的可行性。

3.3 不同模型的训练性能比较

从图7和图8中可以看出ResNet50、ResNet50+CBAM与RARNet模型在CK+数据集上的训练过程中测试准确率和损失值的变化趋势,三个模型在刚开始迭代训练时准确率和损失值波动幅度较大,到最后都基本趋于平稳。ResNet50和原CBAM融合后虽然识别率相较于ResNet50有很大的提升,但是训练过程中损失值和准确率波动较大。改进后的CBAM与残差块融合构建的RARNet在识别率最高,损失值也最小,并且迭代过程中损失值和准确率浮动较小,模型稳定性最好。因为加入改进后的注意力模块增强了对通道特征重要度的学习,更好地拟合了不同维度特征的相关性,降低了不必要特征对模型训练时造成的影响,减小了准确率和损失值的变化幅度,提升了模型的稳定性和对表情的识别性能。

图7 不同模型的Acc变化趋势

图8 不同模型的Loss变化趋势

3.4 RARNet与其他方法对比

RARNet在CK+和FER2013数据集上的各类表情识别率与其他方法对比如表3和表4所示。RARNet在CK+上对于害怕表情的判断有所欠缺,对其余6种表情取得了较好的识别效果。在FER2013数据集上对高兴、惊讶与厌恶这三种表情取得了较好的识别效果,在生气、害怕和悲伤上存在一定的判别错误,因为这三种表情之间有相近之处,而中性与悲伤表情在面部特征变化较小,增加了识别难度。

表3 在CK+上与其他方法对比(%)

表4 在FER2013上与其他方法对比(%)

RARNet在FER2013数据集总识别率上比Khemakhem等[16]提出的在预处理阶段增强的卷积神经网络提升了 2.19%,比Liu等[17]提出的在表情识别训练过程中加入课程学习策略高了0.67%;这两种方法都在表情识别的不同阶段增强了特征学习,而通过加入注意力的方式更加精细和有效。在CK+数据库上比Gan等[18]同样提出的在卷积层嵌入单池化的通道注意力模块高了2.71%,这主要源于改进后CBAM在通道注意力权重的训练中采用双池化融合策略,增强关键性通道特征的表示,并且同时关注了通道注意力机制和空间注意力机制,提升模型对判别性特征的提取;比Zhang等[19]提出的将原图与局部二值模式(Local Binary Pattern,LBP)特征图分别经过两个VGG网络通道提取到的特征融合再分类网络模型取得了更好的识别性能,该模型本质上是对图像局部纹理特征的加深再分类,而RARNet通过注意力机制去增强图像的关键特征,比传统LBP特征更具表达力,与残差网络的融合则避免了网络深度加深导致的退化问题。本文的方法与近年来其他文献相比取得了更好的识别率,证明了改进后CBAM融入残差结构中,注意力模块和特征提取层先后串行连接方法的有效性。

3.5 特征区域可视化

实验通过Grad-CAM[20]的方法对网络模型最后一层卷积层中关注的面部表情特征图进行可视化,并利用热力图的方式显示出来,更加直观表明了融入注意力机制的残差网络对关键特征的提取能力。通过对网络模型中融入注意力前后的热力图的观察,可以清楚地看到ResNet50与RARNet训练保存的两组的模型参数在识别不同的表情时所强调的特征信息。如图9所示,通过对比可以看出ResNet50关注的是整个面部表情区域特征,通过注意力机制与残差结构融合后构建的RARNet增强了对表情分类贡献较大的特征区域,如眼睛、嘴巴等,提升了对判别性特征区域的学习,抑制了无用信息的获取。

4 结 语

提出了一种融入注意力机制模块的残差网络人脸表情识别方法,优化改进了注意力机制CBAM的通道注意力模块,并与残差学习模块融合构建新型网络模型RARNet,增强对表情图像关键特征的辨识,加强网络对局部判别性特征的提取能力,从而解决了现有神经网络算法对人脸表情特征表达能力不够,为提升识别效果而加深网络深度导致参数量过大的问题,以较小参数量的增加有效提升了人脸表情识别的精度。该方法在FER2013这种低质量表情数据识别上还有很大的提升空间,下一步工作将进一步研究和改进注意力机制算法,在图像预处理阶段加入传统特征提取和原图融合以加深图像特征,再利用融入注意力机制的神经网络模型中训练分类,在复杂场景下获得更高的识别精度。

猜你喜欢

识别率残差注意力
基于双向GRU与残差拟合的车辆跟驰建模
让注意力“飞”回来
基于残差学习的自适应无人机目标跟踪算法
基于类图像处理与向量化的大数据脚本攻击智能检测
基于递归残差网络的图像超分辨率重建
基于真耳分析的助听器配戴者言语可懂度指数与言语识别率的关系
提升高速公路MTC二次抓拍车牌识别率方案研究
“扬眼”APP:让注意力“变现”
A Beautiful Way Of Looking At Things
高速公路机电日常维护中车牌识别率分析系统的应用