基于CNN集成的面部表情识别

2020-05-20 15:05陆嘉慧张树美赵俊莉
关键词:卷积神经网络

陆嘉慧 张树美 赵俊莉

摘要:针对面部表情识别在许多领域的重要应用,本文提出了一种基于卷积神经网络(convolutional neural network,CNN)集成的面部表情识别(facial expression recognition,FER)方法。采用3種网络结构不同的卷积神经网络进行训练,利用这些深层模型,使用基于验证准确性的多数投票、简单平均和加权平均的集合方法,在CK+数据集和FER2013数据集上分别测试单一网络模型和集合网络模型。测试结果表明,单一模型的最佳识别率分别为98.99%和66.45%,集合网络的最佳识别率分别达到99.33%和67.98%,说明使用集合方法的模型比单一模型表现更佳,其中加权平均的集合方法优于简单平均和多数投票,说明本文所提出的方法能够满足面部表情识别的要求。该研究具有一定的实际应用价值。

关键词:表情识别; 卷积神经网络; 网络集合; 表情数据集

中图分类号: TP391.413文献标识码: A

面部表情是表达内心世界最自然的方式,它在社会交往中起着至关重要的作用。20世纪70年代初期,D. Ekman等人[1]提出所有文化中都存在6种普遍的情感表达,即惊讶、悲伤、愤怒、厌恶、快乐和恐惧。近年来,面部表情识别的调查引起了广泛关注[23],A.Krizhevsky等人[4]认为基于深度学习的新方法可以改善面部表情分类任务,尤其是ImageNet Challenge的最新改进以来,使CNN代表了相关的突破。CNN将特征提取和分类结合在一起,通过输入原始数据得到最终的分类标签,不需要任何辅助过程。拥有数千万参数的CNN可以处理大量的训练样本,自动从网络中学习特征,不需要手工提取。目前,这些端到端方法通过使用深度学习分类器的集合进行改进,整体由一组CNN组成,它聚合每个分类器的部分结果,以在测试时间内产生统一的响应。T. Connie等人[5]将SIFT特征与从原始图像中学习的CNN特征合并,提高FER性能;H. Jung等人[6]提出了深度网络结合时间外观特征和一组特定面部地标的时间几何;Ding H等人[7]先用正则化约束调整CNN权重,再添加全连接的图层,这些图层在初始阶段的预训练特征之上学习分类参数;Yu Z等人[8]通过可学习权重将多个CNN模型结合在一起,以最大限度地减少铰链损失;B. K. Kim等人[9]提出了基于验证准确性的指数加权平均值,以强调合格的个体,并通过实施多数投票或更高层次的简单平均,构建委员会的等级架构;G. Pons等人[10]使用不同大小的滤波器和全连接层中不同数量的神经元来构建各种CNN;Yu Z[11]通过使用对数似然损失和铰链损失来自适应地为每个网络分配不同的权重。使用CNN集合可以胜过单个CNN分类器,单一的CNN分类器在应用中常常受到一定条件的限制,而集合CNN融合各单分类器判别信息的同时,实现了各分类器之间优缺点的互补。因此,寻求提高分类性能的方法构造好的组合分类器非常重要。本文提出了一种基于卷积神经网络集成的面部表情识别方法,该方法能够满足面部表情识别的要求。该研究可使面部表情识别应用到众多领域。

1集成CNN的构建方法

使用一组CNN组成的框架可提高识别过程的准确性。集成CNN的框架如图1所示。为了获得最佳性能,CNN的集合必须是多样的,以在集合时提高整个框架的识别能力。为了寻求有效的网络设计完成任务,易于训练,选择适当的集合方法执行这组CNN。受VGG Net[12]提供的整洁结构的启发,本文设计了3个不同的结构化子网络,分别包含3,5,10个卷积层,将子网络定义为i,i=[A,B,C]表示这3个子网。

1.1预处理

在FER2013[13]和Extended Cohn-Kanade(CK+)[14]数据集上测试该模型。FER2013是野外面部表情图像数据集,在ICML 2013表征学习挑战中,包含28 709个训练图像,3 589个验证和3 589个测试,分为7种类型的表情,即愤怒、厌恶、恐惧、快乐、悲伤、惊喜和中立。由于标签噪声,此数据的人为准确度为(65±5)%。FER2013的所有类别都有比CK+更多的图像。CK+是实验室控制的标准表情数据集,其样本数量很少,由来自123个受试者的593个序列组成,其中327个序列具有基于FACS的情绪标记。每个图像分配:惊讶、悲伤、快乐、愤怒、蔑视、厌恶和恐惧7种表情之一。CK+和FER2013数据集的7种表情示例如图2所示。由于每个图像具有不同的姿势,因此FER2013数据集中的图像更具挑战性。

在图像预处理过程中,对CK+数据集运行2个步骤来减少原始图像中的干扰,即人脸检测和直方图均衡化。在面部检测部分中,检测结果基于OpenCV中的Haar-like特征,这是用于面部检测的最经典的特征之一,它可以减少需要处理的数据量,并有效地避免图像中不同背景和其他对象对识别结果的干扰。在获取图像的正面部分之后,还应考虑其他麻烦的问题。由于拍照时的光照条件不同,人脸部分也会出现不同的亮度,这不可避免地会对识别结果造成很大的干扰。因此,在识别之前进行直方图均衡化(histogram equalization,HE)。HE是一种简单但有效的图像处理算法,可以使不同图像中的灰度值分布更均匀,减少不同光照条件下的干扰,更好地呈现重要特征,并且尽可能统一所有图像。

将两个数据集所有图像的大小标准化为100×100像素。为了使模型对噪声和轻微变换更加鲁棒,采用了数据增强。数据增强利用多种能够生成可信图像的随机变换来增加样本,即从现有的训练样本中生成更多的训练数据,使模型在训练时不会两次查看完全相同的图像,可观察到数据的更多内容,具有更好的泛化能力。变换包括水平翻转,在(-10,10)之间具有随机角度的旋转以及水平和竖直方向随机移动0.1比例,数据增强效果图如图3所示,所有图像都被归一化为零均值和单位方差。

所有实验都是在NVIDIA GeForce MX150 GPU上使用TensorFlow开发,内存为8 GB。TensorFlow是一个将复杂数据结构传输到人工神经网络进行分析和处理的系统,使用数据流图进行数值计算,它可以用在很多深度学习领域,如語音识别和图像识别等。

1.2子CNN结构

CNN结构主要由卷积层、池化层和全连接层构成。卷积层的作用是实现由一些卷积核组成的特征提取,对输入图像上做卷积运算,加上偏移量,并将结果输出到激活函数中以获得输出,减少了网络参数的数量,降低了参数选择的复杂性。图像可以直接作为网络输入,避免了传统方法中复杂的特征提取和数据重建表13个子网络模型配置比较过程。池化层可以保持某种不变性(旋转、平移、缩放等)。卷积层的作用是检测上一层特征的局部连接以实现特征提取,而池化层的作用是结合相似的特征。池化层通常与卷积层一起使用,通过降采样来减小尺寸,从而得到特征的不变性。常见的降采样方法包括最大池、平均池等。全连接层是输入输出层神经元的全部连接,由于卷积运算是一种线性运算,因此生成的特征也是一种线性特征。

本文构建了3个从头开始设计的自定义CNN网络架构。3个子网络配置比较如表1所示,建立3种不同的网络架构,保证网络的多样性,由于卷积层的数量不同,可以学习不同的特征,卷积层越多,子网络学习到的特征就越细微。

子网络A由3个卷积层和3个最大池化层组成,卷积滤波器的数量分别为32,64,128,过滤器的窗口大小为11×11,5×5,3×3;子网络B由10个卷积层和4个平均池化层组成,卷积滤波器的数量分别为16,32,64,128,256,7,过滤器的窗口大小为7×7,5×5,3×3,最后应用全局平均池化,一个特征图全局平均池化后再进行Softmax会减少很多参数。子网络C由5个卷积层和3个最大池化层组成,子网络A和子网络C最后都是两个密集的全连接层。每次添加最大池化层时,下一个卷积滤波器的数量都会翻倍,且最大池化层大小均为2×2。最大池化层用于总结滤波器区域,该滤波器区域被视为一种非线性下采样,有助于提供一种平移不变性,并减少了更深层的计算。

1.3集成方法

在描述了前3个子网之后,为CNN构建整体架构(见图1),该模型包括2个阶段。第1阶段将面部图像作为输入,并将其提供给3个CNN子网。3个子网设计紧凑,易于训练,是架构的核心组件;第2阶段负责根据前一阶段输出预测表情,将这些子网络输出结合起来,以获得最准确的最终决策。使用不同CNN来解决诸如情感识别之类复杂问题的主要优点是它们可以相互补充。在训练多个CNN时,有的在识别某些情绪时会比其他更好。

决策级集合最常用的规则是多数投票规则、简单平均规则和加权平均规则。在多数投票规则中,每个CNN获得的预测类别标签,可用于确定具有最高票数的类别,将多数分类器预测结果作为最终分类结果,即

其中,mod e为众数;A,B,C分别是3个子网络模型。简单平均规则使用从每个分类器产生的与类相关的分数,而不是使用标签。因此,从子网络A、子网络B和子网络C中获得平均分数最高的类作为最终输出,从而提高模型的准确性。输入图像x属于表情e的概率为

加权平均使用每个有不同权重的分类器产生的与类相关的分数,获得平均分数最高的类作为最终输出,输入图像x属于表情e的概率为

通常要求wi≥0,w1+w2+w3=1。每一个模型都以Softmax层作为最后一层,输出范围在0~1,输出最高概率的表情为最佳匹配表情,即

通过这种架构,将人脸图像映射到7个基本表情标签之一,结合不同结构化CNN模型结果,使它们成为整个网络的一部分。使用决策以获得更好的性能,因为每个CNN子网都会产生一些错误,并且它们在协同工作中互补。

2训练过程

考虑小数据集引起的过拟合,在卷积层和全连接层之后仍然会添加dropout,通过防止特征提取器的共同适应,即它可以创建不依赖于彼此的特征,产生有用的输出来降低网络过度拟合的风险,增加网络的泛化能力。为了提高网络的非线性特性,本文使用线性整流函数(rectified linear unit,Relu)作为激活函数。对于任何给定的输入值x,Relu定义为

其中,x是神经元的输入。使用Relu激活函数可避免由其他一些激活函数引起的消失梯度问题。在网络最后阶段,放置具有7个输出的Softmax层,将单个节点的输出变成一个概率值,神经元的原始输出不是一个概率值,实质上是输入的数值x做了复杂的加权和与非线性处理之后的一个值zi,即

其中,wij是第i个神经元的第j个权重;b是偏移值。给这个输出加上一个Softmax函数,即

其中,Si是第i个神经元的输出概率。将与Softmax分类器相对应的交叉熵方法用作损失函数,交叉熵损失函数是用来判断实际输出概率与期望输出概率的距离,即交叉熵的值越小,两个概率分布越接近,设概率分布p为期望输出,概率分布q为实际输出,H(p,q)为交叉熵,则

网络使用Adam[15]进行优化,Adam是一种基于自适应梯度的优化方法。在训练过程中,还引入了批量归一化层(batch normalization,BN)[16]和L2正则化,以提高训练速度,降低网络的拟合能力。

2.1批量归一化

神经网络的学习过程本质上是为了学习数据的分布规律。一方面,若每批训练数据的分布各不相同,网络则需要每次迭代去学习和适应不同的分布,这样会大大降低网络的训练速度;另外,如果训练数据与测试数据的分布不同,则网络的泛化能力会很大程度降低。除此之外,数据分布对激活函数也极为重要,数据分布范围太大,不利于利用激活函数的非线性特性,为了缓解这些问题,提出了BN。因此,在每层网络输入时,插入一个归一化层,即先做归一化处理,然后再进入网络的下一层,它是一个可学习、有参数的网络层。

BN算法具有提高網络泛化能力的特性,并且BN在实际应用中收敛非常快,因此可以选择更小的L2正则约束参数,不需要使用局部响应归一化层,因BN本身就是一个归一化网络层。此外,它可以彻底打乱训练数据,防止每批训练时某一个样本被经常选到。

2.2L2正则化

在数据集有限的情况下,另一种防止过拟合的方式就是降低模型的复杂度。在损失函数中加入L2正则化项,L2正则化倾向于使网络的权值接近0,降低了前一层神经元对后一层神经元的影响,使网络变得简单,降低了网络的有效大小,也就意味着降低了网络的拟合能力。实质上L2正则化是对权值做线性衰减。相比于初始的交叉熵损失函数,训练过程中的损失函数多了最后的正则化项,即

其中,λ>0为正则化参数;n为训练集包含的实例个数。L2正则化项是指w的平方项,该项实质上是神经网络中的权重之和。

在神经网络中,正则化网络更倾向于小的权重,这样数据x随机变化不会对神经网络模型造成太大影响,所以受数据局部噪音的可能性影响更小。而未加入正则化的神经网络权重大,易通过较大的模型改变来适应数据,更容易学习到局部的噪音。

3实验结果与讨论

采集CK+数据集2 940张,FER2013数据集28 709张,为测试算法的有效性,实验采取五折交叉验证方法。将数据集随机分成5份,其中4份用作训练,1份用作测试,进行5次实验,最后取5次实验结果的平均值。

基于CNN集成的表情识别由2个阶段组成。在训练阶段,构建了所有单独的分类器,在测试阶段,实现融合方法得出面部图像的最终分类。为了产生不同的结果,构建最佳组合方法。首先构建3个深度CNN,这3个子网络分开训练,共享一个类似的模式。通过应用各种网络体系结构及随机初始化训练深层模型。在两个数据集上,对当前最先进的方法进行比较,不同模型的分类精度比较如表2所示。

经过交叉验证,子网络B的识别率最佳,在CK+数据集上达到98.99%,在FER2013数据集上达到66.45%,证明使用小滤波器不仅可以减少参数数量,还可以提高深度神经网络的准确率。

从实验中得出训练多个学习器并将其结合,使用结果明显超过当前的先进方法,采用集合方法的识别率优于单一模型的识别率,通过训练多个子网络模型,提取不同的互补深度特征表示,从而提高了网络模型性能。其中,加权平均的集合方法在CK+和FER2013数据集上表现最佳,这是由于加权平均方法考虑了个体的重要性和置信度,这里将子网络B的权重设置要比其他子网络大一些。模型在CK+数据集上7种表情评估结果如表3所示,模型在FER2013数据集上7种表情评估结果如表4所示。由表3和表4可以看出,表情“高兴”的准确率非常高,这也是人类最容易识别的表情。

4结束语

本文提出了一个基于集合CNN的面部表情识别方法,根据子网络产生的后验概率训练CNN,允许捕获子网络成员之间的非线性依赖关系,并从数据中学习这种组合。构建了3个结构不同的子CNN,以保证网络的互补性,这些子网在训练集上分别训练。同时为了提高网络的泛化能力和识别率,在网络中加入了L2正则化和批量规范化,使用多数投票、简单平均和加权平均的集成方法,通过后验概率找到最优集合方式,在CK+标准数据集和FER2013野外数据集中进行评估。该研究与单个CNN模型相比,网络架构通过组合和平均不同结构CNN的输出,报告了更好的性能,在实验的准确度方面取得优异结果。在更大的数据集中对网络进行研究,设计不同的目标函数,训练子CNN是下一步研究的重点,并且对集成方法进行深入研究,以获得更多样化的网络集合方法,进一步提高面部表情识别精度。

参考文献:

[1]Keltner D, Ekman P, Gonzaga G C, et al. Facial expression of emotion[J]. Encyclopedia of Human Behavior, 2012, 30(1): 173183.

[2]Sariyanidi E, Gunes H, Cavallaro A. Automatic analysis of facial affect: a survey of registration, representation, and recognition[J]. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2015, 37(6): 11131133.

[3]Corneanu C A, Oliu M, Cohn J F, et al. Survey on RGB, 3D, thermal, and multimodal approaches for facial expression recognition: History, trends, and affect-related applications[J]. IEEE Transactions on Pattern Analysis & Machine Intelligence, 2016, 38(8): 15481568.

[4]Krizhevsky A, Sutskever I, Hinton G E. Imagenet classify cation with deep convolutional neural networks[C]∥NIPS Curran Associates Inc. Nevada: NIPS, 2012: 10971105.

[5]Connie T, Al-Shabi M, Cheah W P, et al. Facial expression recognition using a hybrid CNN-SIFT aggregator[C]∥International Workshop on Multi-Disciplinary in Artificial Intelligence. Gadong, Brunei: MIWAI, 2017: 139149.

[6]Jung H, Lee S, Yim J, et al. Joint fine-tuning in deep neural networks for facial expression recognition[C]∥2015 IEEE International Conference on Computer Vision. Santiago: ICCV, 2015: 29832991.

[7]Ding H, Zhou S H K, Chellappa R. Facenet2expnet: regular izing a deep face recognition net for expression recognition[C]∥ 2017 12th IEEE Computer Society. Washington: IEEE, 2017: 118126.

[8]Yu Z D, Zhang C. Image based static facial expression recognition with multiple deep network learning[C]∥Acm on International Conference on Multimodal Interaction. denver, USA: IEEE, 2015: 435442.

[9]Kim B K, Lee H, Roh J, et al. Hierarchical committee of deep CNNs with exponentially-weighted decision fusion for static facial expression recognition[C]∥ Emotion Recognition in the Wild Challenge @ ACM International Conference on Multimodal Interaction. USA: ICMI, 2015: 427434.

[10]Gerard P, David M. Supervised committee of convolutional neural networks in automated facial expression analysis[J]. IEEE Transactions on Affective Computing, 2018, 9(3): 343350.

[11]Yu Z D, Zhang C. Image based static facial expression recognition with multiple deep network learning[C]∥Acm on International Conference on Multimodal Interaction. Seattle: ACM, 2015: 435442.

[12]Simonyan K, Zisserman A. Very deep convolutional networks for large-scale image recognition[C]∥International Conference on Learning Representations, 2015: 114.

[13]Goodfellow I J, Erhan D, Carrier P L, et al. Challenges in representation learning: a report on three machine learning contests[C]∥Neural Information Processing. Berlin: Springer Berlin Heidelberg, 2013: 117124.

[14]Lucey P, Cohn J F, Kanade T, et al. The extended cohn-kanade dataset (CK+): a complete dataset for action unit and emotion-specified expression[C]∥2010 IEEE Computer Society Conference on Computer Vision and Pattern Recognition-Workshops. San Francisco, CA, USA: IEEE, 2010: 94101.

[15]Kingma D P, Ba J. Adam: A method for stochastic optimization[C]∥International Conference on Learning Representations. San Diego: LCLR, 2015.

[16]Ioffe S, Szegedy C. Batch normalization: accelerating deep network training by reducing internal covariate shift[C]∥International Conference on Learning Representations. 2015.

[17]Liu M, Li S, Shan S, et al. AU-inspired deep networks for facial expression feature learning[J]. Neurocomputing, 2015, 159: 126136.

[18]Mollahosseini A, Chan D, Mahoor M H. Going deeper in facial expression recognition using deep neural networks[C]∥2016 IEEE Winter Conference on Applications of Computer Vision (WACV). Lake Placid: IEEE, 2016: 110.

[19]Goodfellow I J, Erhan D, Carrier P L, et al. Challenges in representation learning: a report on three machine learning contests[J]. Neural Information Processing, 2013, 8228: 117124.

[20]Arriaga O, Valdenegro-Toro M, Plger P, et al. Real-time convolutional neural networks for emotion and gender classification[C]∥Computer Vision and Pattern Recognition. Octavio Arriaga: ICAR, 2018.

收稿日期: 2019-09-23; 修回日期: 2019-12-17

基金項目:中国博士后科学基金资助(2017M622137);国家自然科学基金资助(61702293);教育部虚拟现实应用工程研究中心基金资助(MEOBNUEVRA201601)

作者简介:陆嘉慧(1995-),女,山东青岛人,硕士研究生,主要研究方向为图像识别与处理、深度学习。

通信作者:张树美(1964),女,山东莱西人,博士,教授,硕士生导师,主要研究方向为时滞非线性系统的分析与控制、图像识别与处理。 Email: shumeiz@163.com

猜你喜欢
卷积神经网络
基于深度神经网络的微表情识别
卷积神经网络中减少训练样本时间方法研究
卷积神经网络语言模型研究
基于卷积神经网络的车辆检索方法研究
基于卷积神经网络温室智能大棚监控系统的研究
基于深度卷积神经网络的物体识别算法
深度学习算法应用于岩石图像处理的可行性研究
基于深度卷积网络的人脸年龄分析算法与实现
深度学习技术下的中文微博情感的分析与研究
基于卷积神经网络的树叶识别的算法的研究