基于注意力机制的卷积神经网络人脸表情识别

2020-07-27 10:22李思禹
陕西科技大学学报 2020年4期
关键词:正确率人脸卷积

亢 洁, 李思禹

(陕西科技大学 电气与控制工程学院, 陕西 西安 710021)

0 引言

人类能够通过表达和识别情感来沟通内心状态,而人脸表情是传达这种信息的主要方式.传统上,科学家们认为,人类具有内部机制,其中包括少量可衡量和客观的情绪反应,如高兴、生气、惊讶、害怕、厌恶和悲伤等.人脸表情识别作为情感计算研究的一个重要方向,对于数字娱乐、客户服务、驾驶员监控、情感机器人等应用来说是至关重要的[1].因此,人脸表情识别成为近年来的一个研究热点.

如何提取人脸表情特征是人脸表情识别中最重要的步骤.在传统的人脸表情识别方法中,特征提取会直接影响到后期分类器的训练.常用的特征提取方法有基于局部纹理的方法,如Gabor[2],LBP[3]等;基于梯度特征的方法,如HOG[4],SIFT[5]等;基于模板的方法,如ASM[6],AMM[7]等.虽然传统方法取得了一定的成果,但是它的不足在于表情特征由手动提取,易受干扰,且不稳定.

近年来,卷积神经网络(Convolution Neural Network,CNN)在计算机视觉研究中得到了广泛的应用,并在人脸表情识别任务中得到了很好效果.CNN的主要优点是网络的输入为原始的图像,避免了前期复杂的预处理.2012年Alex Krizhevsky等[8]提出了AlexNet,被证明有很好的分类性能,之后也被广泛应用于人脸表情识别.随着深度学习的发展,相继涌现出性能更好,规模更大的网络,如VGGNet[9]、GoogLeNet[10]、ResNet[11]、DenseNet[12]等.但是卷积神经网络仍然存在着一些不容忽视的问题.现有的网络规模越来越大,导致参数量过大,结构不够轻量.另外,现有的网络难以识别人脸表情的细微变化,并不能对人脸表情特征进行精确提取,表情识别性能有待提高.

本文提出了一种基于注意力机制的卷积神经网络人脸表情识别方法,该方法设计了一种新的网络结构,加入了残差恒等块,另外还引入了一种注意力模块(SGE)[13],增加了网络连接的复杂性,显著改善了组内不同语义子特征的空间分布,增强了人脸表情的特征学习,提高了表情识别性能,整体结构较为轻量.通过在数据集RAF-DB[14]和CK+[15]上的实验表明,本文的方法对人脸表情识别任务有较好的效果.

1 本文方法

1.1 注意力机制

在特征提取的研究中,越来越多的研究人员将视觉注意力机制引入网络.视觉注意力机制是人类视觉所特有的大脑信号处理机制.人类视觉通过快速扫描全局图像,获得需要重点关注的目标区域,也就是一般所说的注意力焦点,而后对这一区域投入更多注意力资源,以获取更多所需要关注目标的细节信息,而抑制其它无用信息[16].

人脸表情特征提取是人脸表情识别的关键问题,将注意力机制引入卷积神经网络对人脸表情特征的精确提取有一定程度的帮助.卷积神经网络通过收集语义子特征的层次结构和不同部分来生成复杂对象的特征表示.这些子特征通常以分组的形式分布在每一层的特征向量中.本文网络在每个卷积层之后引入了注意力模块SGE,该模块为每个特征组中的每个空间位置生成一个注意因子,以此来调整每个子特征的重要性,从而使每个单独的特征组能够自主增强其学习表达.在该模块中,每个组内的子特征都是并行处理的.SGE的结构如图1所示.

SGE模块的操作步骤如下:

Step2 将组内原始特征进行全局平均池化:

(1)

式(1)中:g为组内全局平均池化后的特征;

Step3 将组内的全局特征与原始特征进行点积操作,得到每个特征对应的系数ci:

ci=g·xi

(2)

(3)

(4)

(5)

式(3)、(4)、(5)中:μc是c的均值,σc是c的标准差,ε是一个常数.

Step5 引入一对参数γ和β,缩放并移动归一化值:

(6)

Step6 对移动并缩放后的归一化值αi进行Sigmoid激活;

(7)

SGE模块十分轻量,只引入了γ和β这一对参数,在单个SGE模块中,这一对参数的个数与分组数G相同,数量级很小,与整个网络的参数相比,可以忽略不计.因此,该模块本质上几乎不需要额外的参数和计算.

1.2 基于注意力机制的卷积神经网络人脸表情识别

1.2.1 卷积层

卷积层的作用是提取输入数据的特征,第一层卷积层一般只会提取较为低级的特征,随着卷积层数量的增加,提取的特征会越来越复杂.拥有多个卷积层的神经网络能够在迭代中提取更加精确的特征.卷积核作为卷积层较为重要的一个参数对卷积层的工作有着较为直观的影响.每个卷积核与特征图的局部区域相连接,不同尺寸的卷积核对应不同的感受野,卷积核的尺寸越大,包含的参数越多.卷积运算公式如式(8)所示:

(0≤m≤M,0≤n≤N)

(8)

式(8)中:w是大小为J×I的卷积核,b为偏置,f表示激活函数,x是输入,y是输出,x和y的尺寸大小均为M×N.

本文网络共有九个卷积层,每个卷积层的卷积核大小为5*5,步长为1,通道数分别为64、64、64、128、128、128、64、64、64,为保证输出不变,将边缘扩充设置为1.

1.2.2 池化层

池化层是一种非线性的降采样方法,主要是对输入的特征图进行压缩,对应的输出特征图尺寸会有明显的减小.池化过程中没有要学习的参数,在一定程度上能控制过拟合问题.常见的池化方式有最大池化和平均池化两种.最大池化计算目标区域的最大值作为整个区域的输出特征,平均池化计算目标区域的平均值作为整个区域的输出特征.

本文网络共有六个池化层,均采用最大池化.最大池化的定义如式(9)所示:

Gi=max(Gi-1)

(9)

式(9)中:Gi为下采样层.该网络将池化层放在第1、3、4、6、7、9个SGE模块之后,将窗口大小设置为3,步长设置为2,用以减小图像的尺寸后进入下一个特征提取环节.

1.2.3 激活函数

激活函数为神经网络加入了非线性因素,使网络具有非线性映射能力,增加了网络的表达能力.

ReLU(Rectified Linear Unit)[17]是一种常用的激活函数,表达式如式(10)所示:

(10)

本文网络采用的激活函数为ELU(Exponential Linear Unit)[18],它是ReLU的一个变种,其表达式如式(11)所示:

(11)

式(11)中:α是一个常数,用来控制ELU的饱和值.

1.2.4 全连接层

全连接层通常位于卷积神经网络的末尾,该层将网络学习到的特征图变换为一个固定维数的列向量,便于后续实现图像的分类和识别.全连接层的个数可以根据实际需求调整,参数量相对较大.

本文网络的第一个全连接层输出64维的特征向量,该向量作为人脸表情的特征向量,最后一个全连接层是一个Softmax分类层,输出七类表情标签的预测值.

1.2.5 网络模型结构

本文提出了一种基于注意力机制的卷积神经网络人脸表情识别方法.该方法设计了一种新的网络结构,并加入了残差恒等块,使网络连接中增加了恒等映射,进一步丰富了特征学习,同时与注意力模块相结合,保证了细微和关键表情特征的提取.网络结构如图2所示.

本文网络的输入为经过预处理的人脸图像,其尺寸为56*56.网络主要由九个卷积层、六个最大池化层和两个全连接层组成.网络的第一层为卷积层,每一个卷积层后都加入了批量归一化(Batch Normalization,BN)[19],激活函数ELU和注意力机制SGE模块.在第1、3、4、6、7、9个SGE模块之后使用最大池化层.随后是一个输出为64维的全连接层和一个Softmax分类器,最后输出七类表情标签的预测值.

另外,为了避免网络产生过拟合现象,本文网络在卷积层的连接中使用了三个残差恒等块,使网络连接中增加了恒等映射,更加丰富了特征学习.本文网络所采用的残差恒等块结构如图3所示.

图2 基于注意力机制的卷积神经网络结构图

图3 残差恒等块结构图

残差恒等块主要是在网络结构中增加了一个恒等映射x,经过卷积层运算后输出F(x),激活函数采用ELU.假设用H(x)表示期望的网络层映射,x表示残差恒等块的输入,则

H(x)=x+F(x)

(12)

本文网络每层的参数量如表1所示.

表1 本文网络结构及参数表

续表1

2 实验结果与分析

2.1 数据集及数据预处理

本文采用的数据集为RAF-DB和CK+.

RAF-DB是一个大规模的人脸表情数据库,包括29 672张自然环境下的图片,它有两个不同的表情子集,分别是包含7类基本表情的子集和包含11类复合表情的子集.本文采用该数据集的7类基本表情子集来进行训练,一共有15 339张图片.这7类表情分别为:生气、厌恶、害怕、高兴、悲伤、惊讶、正常.本文在实验之前将原始数据进行了裁剪,突出人脸区域,减少无关区域的影响.该数据集不同样本数量之间的差异很大,例如数据量最少的害怕类为355张,而高兴这一类表情的数据量高达5 957张.因此,本文实验将裁剪过后的数据进行均衡化处理,对高兴和正常的表情数据进行欠采样处理,对生气、厌恶和害怕的表情数据进行过采样处理.过采样处理中包括对图像的水平翻转和旋转,旋转包括对原始图像和水平翻转过后的图像分别进行-12 °、-8 °、-4 °、4 °、8 °、12 °、16 °的旋转,经历这些操作后,得到均衡过后的数据集,此时数据集中各类表情数据的数量达到了一个相对平衡的状态.RAF-DB数据集经过预处理之后的样例如图4所示.

CK+是一个用于人脸表情识别的权威数据集,包含123名受试者的593个视频序列,这些序列的持续时间从10帧到60帧不等,显示了从中性面部表情到峰值表情的转变.在这些视频序列中,有309段表情序列被标记为基于面部动作编码系统的六种基本表情标签,分别为生气、厌恶、害怕、高兴、悲伤和惊讶.本文实验从309段表情序列中抽取第一帧(正常表情)和最后三帧组成具有7种基本表情的数据集,总计1236张表情图片.由于表情数据量过小,并且各类表情数据之间差异较大,本文在实验之前将此数据集进行均衡并增强处理,处理方法与上述数据集RAF-DB的处理方法相同.经过处理后,数据被扩展10倍,总数为12 360,并且达到了平衡.

(a)原图裁剪 (b)水平翻转 (c)翻转-12 °

(d)翻转-8 ° (e)翻转-4 ° (f)翻转4 °

(g)翻转8 ° (h)翻转12 ° (i)翻转16 °图4 RAF-DB数据集预处理样例

2.2 实验环境及训练策略

本文的所有实验中,均采用上述均衡和增强过后的数据集,并统一将数据集的图片缩放到56*56像素大小作为网络的输入,数据批量大小为128,采用动量梯度下降法,动量设置为0.9,学习率为0.009,权值衰减系数为0.000 1.

本文硬件实验平台的CPU为Intel(R) Core(TM)i7-8700,内存为16G,GPU为11GB的NVIDIA GeForce GTX 1080 Ti.软件框架选择Tensorflow,编程语言为Python,版本为3.6.5.

2.3 实验对比与分析

2.3.1 通道分组数G对比实验

本文研究了注意力SGE模块中通道分组数G对网络性能的影响.在SGE模块中,分组数G控制不同语义子特征的数目.由于通道数是确定的,因此可以推断,分组过多或过少都会影响特征提取的效果,此时的分组数G一定有一个相对合理的值进行对网络的优化.本文将G分别设置为2,4,8,16,32,64并在RAF-DB和CK+两个数据集上分别进行对比实验,实验结果如图5和图6所示.

图5 RAF-DB表情识别正确率

图6 CK+表情识别正确率

通过对比发现,随着分组数G的增加,表情识别的正确率先增大后减小,当G=32时,在数据集RAF-DB上的正确率可达72.39%,在数据集CK+上的正确率可达95.33%,此时网络的性能在两个数据集上均呈现出最好的效果.因为过少的分组会限制语义特征的多样性,而过多的分组会使组内子特征维数减少,进而弱化每个语义子特征的表达,所以在本文实验中,当G=32时能最好地表达并平衡每个语义特征,最终提高人脸表情识别的性能.因此,在本文后续的所有实验中,将G设置为32.

2.3.2 不同方法对比实验

在数据集RAF-DB和CK+上,通过表情识别正确率和网络参数量这两个指标将本文方法与AlexNet网络、VGG16网络、ResNet34网络和GoingDeep网络[20]进行了实验对比,实验结果如表2所示.

从表2可以看出,本文方法在两种数据集上的正确率均有明显提升.在数据集RAF-DB的表情识别中,GoingDeep网络的识别正确率最低,AlexNet网络、VGG16网络和ResNet34网络的识别正确率突破了60%,均高于GoingDeep网络,ResNet34网络的识别正确率在其三者中相对较高.本文网络的识别正确率突破了70%,可以在GoingDeep网络识别正确率的基础上提升12.62%,在ResNet34网络识别正确率的基础上提高4.89%,识别正确率达到72.39%.在数据集CK+的表情识别中,GoingDeep网络的识别正确率最低,其次为AlexNet网络,VGG16网络和ResNet34网络的识别正确率突破了90%,ResNet34网络的识别正确率在两者中相对较高.本文网络可以在GoingDeep网络正确率的基础上提升9.31%,在ResNet34网络正确率的基础上提高3.12%,识别正确率达到95.33%.以上数据充分说明了本文网络明显增强了人脸表情的特征学习,体现了本文网络识别性能的优越性.

另外,从表2还明显可以看到,在经典网络中,VGG16网络的参数量最大,可达138M,参数量偏小的ResNet34网络的参数量也能达到23M,而本文网络的参数量相比上述网络有明显的下降,其数值为VGG16网络参数量的1/83,为ResNet34网络参数量的1/14.实验结果说明本文方法在一定程度上解决了现阶段网络规模大且参数量多的问题,并且能更加有效提取人脸表情特征,提升人脸表情识别任务的性能.

表2 不同网络实验对比

为了更加明确地展示本文网络在人脸表情识别任务中的表现,本文提供了数据集RAF-DB和数据集CK+的混淆矩阵,如图7和图8所示.其中,纵标签栏为真实表情标签,横标签栏为预测表情标签.

从混淆矩阵中可以看出,本文网络对高兴的表情识别率最好,其次是惊讶,在生气、害怕、正常、悲伤等表情的分类中并没有达到很优越的效果.因为高兴和惊讶两种表情相对于其他表情具有更加明显的特征.大多高兴表情中的明显特征为嘴巴微张,嘴角翘起,眼睑收缩等,大多惊讶表情中的明显特征为眼睛大睁,嘴巴大张等.而生气、害怕、悲伤和正常表情的特征均有较为相似的特征,从而增大了识别的难度.

图7 RAF-DB混淆矩阵

图8 CK+混淆矩阵

3 结论

本文提出了一种基于注意力机制和卷积神经网络的表情识别方法.该方法在卷积层的基础上增加了残差恒等块,并引入SGE模块,有效缓解了网络的过拟合现象,丰富了人脸表情特征学习,利用全局特征和局部特征的相似性来指导语义特征的空间分布,使每个特征组自主增强人脸表情的特征学习.本文网络结构较为轻量,参数量较少.在RAF-DB和CK+数据集上的实验结果表明,本文方法有效改善了人脸表情识别的性能.

猜你喜欢
正确率人脸卷积
个性化护理干预对提高住院患者留取痰标本正确率的影响
课程设置对大学生近视认知的影响
基于3D-Winograd的快速卷积算法设计及FPGA实现
有特点的人脸
一种并行不对称空洞卷积模块①
一起学画人脸
玻璃窗上的人脸
从滤波器理解卷积
基于傅里叶域卷积表示的目标跟踪算法
生意