梁华刚,薄颖,雷毅雄,喻子鑫,刘丽华
长安大学电子与控制工程学院,西安 710064
表情是情感的重要载体,是人机交互过程中一种重要的信息传递方式。表情作为一种典型的非言语交际形式,在情感分析中起着重要作用(Ben等,2021)。研究表明,情感表达中55%的信息是通过面部表情传递的(Pantic和Rothkrantz, 2000)。随着人工智能的兴起与广泛应用,表情识别在人机交互、安全驾驶、医疗和通信等领域具有广阔的应用前景。表情识别研究得到了广泛关注,成为学术界和工业界的热门研究方向。
由于年龄、性别和种族等个体差异以及外界光照、姿态等环境因素的影响,表情识别一直是一项复杂的工作。传统的表情识别方法大多采取手工设计特征或浅层学习,如提取图像纹理特征的Gabor小波特征方法(Xu等,2015)、提取表情几何特征的ASM(active shape model)方法(Sun等,2016)和提取表情边缘特征的HOG(histogram of oriented gradient)方法(任福继 等,2018)等,再用分类器进行表情分类。卷积神经网络能够提取到人脸表情的高维特征,增强了传统的手动提取特征方法的鲁棒性。由于卷积神经网络需要大量数据进行训练,当训练数据较少时,可以采用dropout机制随机丢弃神经元(Yu和Zhang,2015)或数据扩充增加训练数据(Yang等,2018)等减少模型过拟合的风险。随着深度卷积神经网络的应用与发展,深度卷积神经网络可以提取到更深更具有判别能力的图像特征,解决了卷积神经网络不能有效提取关键特征的问题,可以达到更高的准确率。深度置信网络(deep belief net,DBN)是一种典型的深度学习方法(Hinton等,2006),能够更好地学习复杂的数据结构和特征分布;增强型深度信念网络(boosted deep belief network, BDBN)通过在循环框架中不断执行特征表示、特征选择和分类器构造(Liu等,2014),增强了表情识别的判别能力;将改进深度自编码器(deep autoencoder,DAE)应用到表情识别中(Huang和Ying,2015),通过网络训练和测试特征的最小误差对图像进行分类,有效地提高了表情识别的准确率;生成对抗网络(generative adversarial networks,GAN)具有合成图像能力,能够修复局部遮挡图像,进而生成高质量目标样本(姚乃明 等,2018),解决了遮挡图像表情识别的识别率低、鲁棒性差的问题;在神经网络结构中引入残差学习模块(杜进 等,2018),解决了随着网络深度的增加神经网络出现性能退化和梯度爆炸等问题;为进一步提升网络的实时性,将轻量级网络用于人脸表情的识别(吕诲 等,2020),此网络仅有66 000个参数;轻量级表情识别模型(lightweight expression recognition, LER) (Zhao等,2020)用于处理人机交互应用中的延迟问题;轻量级注意力表情识别网络(lightweight attention DCNN, LA-Net)引入了网络瘦身策略,便于部署在资源受限的设备上(Ma等,2021)。这些国内外研究方法虽然在网络精度、抗干扰性等方面取得了一定进步,但是由于表情识别的复杂性,仍存在一些问题,如:表情识别网络结构越复杂,计算代价越大,速度难以达到实时性要求;降低网络参数后,识别精度会随之降低等。
表情识别的关键技术在于表情特征的提取方法,有效的表情特征提取工作将大大提高表情识别的性能。因此,本文着眼于特征提取方法,提出了一种轻量级的表情识别网络模型。主要贡献有:
1) 数据预处理部分主要使用图像尺寸归一化和增加噪声随机扰动等数据增强操作,去除与表情无关的干扰信息,提高模型的泛化性;2) 网络模型采用深度可分离卷积和全局平均池化层有效地减少网络参数,并且合理嵌入SE(squeeze-and-excitation)模块(Hu等,2020),在不同通道设置不同压缩率更高效地提取人脸表情特征,提升网络的识别能力;3) 本文表情识别任务包括实验室受控环境和真实的环境多个场景,并通过大量实验论证了本文方法的有效性和可靠性。
卷积神经网络(convolutional neural network,CNN)(Lecun等,1998)是表情识别常用算法之一,结构如图1所示,主要由卷积层、池化层和全连接层组成。输入图像先通过卷积层卷积并产生特定类型的激活特征映射;再通过池化层减小特征映射的空间大小和网络计算量,提升网络的非线性特征提取能力;最后将提取的特征映射到全连接层,转换为1维特征映射便于进一步的特征表示和分类。
图1 卷积神经网络结构Fig.1 The structure of the convolutional neural network
卷积神经网络虽然具有较高的精度和较强的鲁棒性等优点,但是随着网络层数的加深,深度卷积神经网络结构的复杂度也越高,实时性难以保证,这使得传统的卷积神经网络不再适用。
表情识别网络主要包括人脸图像采集、图像预处理、特征提取和表情分类识别4个步骤,表情识别框架如图2所示。特征提取是网络结构的关键步骤,因此,本文设计了增强深度可分离卷积通道特征模块,以此为基础,搭建并训练轻量级表情网络模型,从而实现各类表情的准确分类。
本文设计的增强深度可分离卷积通道特征模块(basic block)由深度可分离卷积(depthwise separa-ble convolution, DSC)和SE模块组合而成,模块结构如图3所示。首先,通过一组1×1的卷积从输入特征图中提取特征,然后,将输出特征图根据通道维度平均分成6个组,每个组使用卷积核为3×3、通道数为C/6的小卷积扩大感受野范围,再将这6个组的通道维度拼接起来送入压缩激发模块,每一个通道都压缩为一个数值,最后,按照通道内的表情特征信息的重要程度分配权重系数,从而实现增强重要特征通道。另外,每个卷积层后都有一个批归一化层和一个放缩指数线性单元(scaled exponential linear units,SeLU)激活函数层。其中,批归一化层用于对数据进行归一化,缓解深度神经网络中梯度消失的问题,避免输入数据偏移造成的影响;激活层增加了神经网络各层之间的非线性关系,能够更好地提取关键特征和拟合训练数据。
深度可分离卷积由深度卷积和通道卷积组成,不仅可以拓展网络宽度,而且在一定程度上减少了参数量,整体卷积过程如图4所示。假设输入的特征尺寸为DF×DF×M,DF为每个特征图的边长,M为输入通道数,N为输出通道数。先用M个卷积核为DK×DK的深度卷积各自提取特征图的每个通道特征,输出每个通道内的图像特征信息;再用N个卷积核为1×1的通道卷积将每个通道的特征信息融合为一个特征图。在参数量方面,深度可分离卷积与标准卷积的优化比例为
图3 增强深度可分离卷积通道特征模块结构Fig.3 The structure of basic block
图4 深度可分离卷积过程示意图Fig.4 The structure of the depthwise separable convolution
(1)
在生成相同尺寸特征的情况下,采用了深度可分离卷积代替部分标准卷积,使得网络模型的参数大大减少,可以保证网络模型的实时性要求。
图5 SE模块结构示意图Fig.5 The structure of the SE module
此外还在网络不同层引入不同压缩率,根据通道数的不同选择不同的压缩率,使得重要的特征更加明显,从而提高了网络模型的精度。
2.2.1 网络结构
本文表情识别网络模型的主干网络部分包括6个阶段。阶段1)采用两个3×3标准卷积学习空间信息及通道间的相关性,进而提取低维特征,然后对输出进行非线性激活。同时在每个卷积层后增加SE模块,用于增强网络层间的特征关系。阶段2)—阶段5)的结构类似,分别包括3个basic block和一个最大池化层。basic block中所有的深度可分离卷积的卷积核大小为3×3,步长为1,初始通道数为64,通道数依次递增,最高可达1 024个通道。深度可分离卷积层后依次使用批量归一化、SeLU和SE模块,其中每个阶段中SE模块的压缩率保持一致。并且分别在3、6、9、12个basic block后采用窗口大小为3、步长为2的最大池化层进行下采样,减少特征图的尺寸。阶段6)为输出层结构:首先,使用一个卷积核为3×3的标准卷积将1 024个特征图映射为7个特征图;然后,使用一个全局平均池化(global average pooling,GAP)对特征图的空间信息进行求和(Lin等,2013),分别累加每个特征图所有像素值并求平均得到7个数值,增强输入的空间变化的鲁棒性;最后,输入到softmax分类器中,得到对应表情类别的7个概率值,最大概率值即为表情分类的预测结果。网络模型的整体结构如图6所示。
图6 表情识别网络模型结构示意图Fig.6 The structure of FER network model
2.2.2 激活函数
网络采用SeLU激活函数处理人脸表情网络输入与输出之间的非线性关系。SeLU自带样本归一化特性,不受外界因素干扰,可以解决非正区间输出为0的问题,当输入给定负数的情况下,依然可以保持神经单元的运作性。SeLU函数如式(2)所示,更有利于训练多层的深度神经网络,训练过程中梯度也不会爆炸或消失。
(2)
式中,x为输入值,参数α和λ被证明得到了具体的数值:
λ= 1.050 700 987 355 480 493 419 334 985 294 6,
α= 1.673 263 242 354 377 284 817 042 991 671 7。
2.2.3 损失函数
本文网络模型选用交叉熵损失函数衡量真实概率和预测概率之间的差别,损失函数不断优化网络权重比例,从而进行评定网络模型的好坏。交叉熵损失越小,模型预测的准确率越高。交叉熵损失函数为
(3)
式中,xi为样本数据,P(xi)为输入xi真实值的概率,Q(xi)为模型输出预测值的概率。
通过5个广泛使用的数据集验证本文方法的有效性,包括FER2013(Facial Expression Recognition 2013)数据集(Goodfellow等,2013)、CK+(the extended Cohn-Kanade)数据集(Lucey等,2010)、JAFFE(Japanses female facial expression)数据库(Lyons等,1998)和RAF-DB(real-world affective faces database)(Li和Deng等,2019)、AffectNet (Mollahosseini等,2019)这两个in-the-wild表情数据集。其中,既有在实验室受控环境下采集较为标准的数据集(CK+和JAFFE),也有在真实世界环境下采集的较为自然的数据集(RAF-DB和AffectNet)。每个数据集细分为7种不同的表情标签:愤怒、厌恶、恐惧、高兴、悲伤、惊讶和自然。这些同类表情的面部姿态、年龄、表情强度和肤色有明显差异,在光照、头部姿态以及面部遮挡等方面多样性,使用不同环境下采集的表情数据集更能说明算法模型的泛化性能。图7展示了这5个数据集的各类表情的部分图像样本。
图7 部分数据集样本Fig.7 Part of datasets samples((a)angry; (b)disgust; (c)fear; (d)happy;(e)sad; (f)surprise; (g)natural)
1) FER2013数据集。数据库人脸完整表情数据量大,不仅包括真实人脸图像,还包括卡通类人脸表情图像,数据集样本丰富。此数据集共有35 887幅关于表情的图像数据,其中包括28 708幅训练集图像,公共验证集与私有验证集均3 589幅。
2) CK+数据集。在实验室条件下,按照要求进行采集年龄18-30岁的亚洲、非洲人的面部动作得到此数据集序列,是表情识别中最具代表性的数据库。这些表情图像由123个测试人员的593个图像序列组成,展示了从平静状态到峰值表情转变的过程,其中包括327个被标记的图像序列。
3) JAFFE数据集。这些图像包括了不同强度的不同情绪,有着很高的识别率,也是使用率很高的数据库。数据库包括了10名日本女性根据指示在实验环境下做出各种表情,每个人做出7种表情,共计213幅图像。
4) RAF-DB数据集。由从互联网上下载的来自数千人的29 672幅图像构成的大规模面部表情数据库,非在实验室控制条件下获得,所以表情更自然,接近人类真实表情。数据库包括7 类基本表情、12类复合表情和30余类混合表情,本文实验研究仅使用基本表情图像及标签。在光照、头部姿态等方面具有多样性,注释丰富。
5) AffectNet数据集。从互联网收集面部表情图像,是目前自然条件下最大的面部表情识别图像数据集。本文使用该数据库中约28万幅图像,含有7种基本表情标签的标注。标注类型包括表情类型和幅度等多样化,更能反映真实场景的表情。
为提高训练出来的模型的泛化性能,避免数据不充足导致的过拟合反应,对数据集进行预处理,示例如图8所示(以CK+部分数据为例)。实验训练之前需要对所有数据集的图像尺寸归一化和一些数据增强操作。图像尺寸归一化即对训练集所有图像裁剪为48×48像素的灰度图像,并分别在数据图的左上角、左下角、右上角和右下角进行裁剪,去除不平衡光照;然后,进行随机翻转和增加随机扰动、添加噪声等数据增强操作。
图8 图像增强示例图Fig.8 Image enhancement example image
数据增强后同一幅表情图像会生成许多幅不一样的图像数据,进一步扩充表情识别的数据集,有效降低了训练网络模型过程中出现的过拟合风险,提高了算法的鲁棒性和模型的泛化性。具体的一些数据增强参数如表1所示。
实验搭建了TensorFlow和Keras框架的深度学习网络,操作系统为Windows 10,使用Python3.8.10编程语言进行训练和测试。硬件平台为英特尔 Core TM i7-10700CPU,内存为64 GB,GPU为显存11 GB的NVIDIA GeForce RTX 3070 Ti。网络模型训练时每次训练数据总轮数为500次,批次大小为32,学习率初始化为0.1,随着训练的进行,根据损失函数的变化逐渐降低学习率,直到学习率变为0.000 1时停止降低。训练得到各个数据集的识别精确度迭代结果如图9所示,以及训练网络模型500次的损失收敛过程如图10所示。
可以看到,随着训练次数的增加,准确率逐渐提高,损失逐渐下降。间接反映出损失越小,准确率就会越高。网络训练过程中迭代的趋势整体趋于稳定,证明了本文网络模型具有一定的稳定性。
表1 数据增强参数表Table 1 Data enhancement parameter table
图9 表情识别率迭代结果Fig.9 FER rate iteration results
图10 损失过程曲线图Fig.10 Loss process curve
本文在卷积层后引入SE模块扩大感受野,进行通道加权增强重要的表情特征,提高表情识别率。对于本文搭建的网络模型加入SE模块和未加入SE模块分别进行实验,并对比识别精确度,实验结果如图11所示。
图11 SE模块对比Fig.11 Comparison result of SE module
可以看到网络模型加入SE模块后,FER2013、CK+、JAFFE这3个数据集的识别精确度提高了3% -7%,而RAF-DB、AffectNet这两个in-the-wild数据集由于存在被遮挡的人脸、错误的标签等,其识别精确度平均提高2%,说明SE模块重新调整表情特征的权重能够提升网络模型的准确率。为了更好地获取各个通道特征的重要性关系,设置了压缩率对比实验。将网络模型所有层分别取2、4、8、16、32压缩率(r)和组合压缩率的识别精确度进行对比,得到表情识别率对比结果,如图12所示。
图12 表情识别准确率对比Fig.12 Comparison result of FER accuracy
对比不同压缩率取值,表情识别准确率不同,验证了压缩率的取值和网络通道数之间存在一定的联系。与各种压缩率取值以及不加入SE模块相比,组合压缩率的表情识别率是最高的。因此,本文的SE模块采用组合形式嵌入网络模型中。
为了找出最佳压缩率组合方法,本文通过实验在不同通道选择最合适的压缩率r对网络模型进行测试。考虑不同网络通道的特征分布,在卷积初始层不选择太大的压缩率。网络结构中总共加入了14个SE模块,前2层初始层的标准卷积层的压缩率保持一致,在layer 1—layer 4中采用同一layer保持一致压缩率的原则进行组合设计。本文选取了10种压缩率的取值组合方式进行测试实验,如表2所示。
表2 压缩率取值Table 2 Compression rate value
对表2中10种压缩率取值组合方式在各个数据集上分别进行验证,实验结果得到的识别精确度如图13所示。
图13 不同压缩率组合方式识别准确率Fig.13 FER accuracy of different compression ratio combinations
实验对比结果表明,选取第9种压缩率的取值组合方式(c9)可以使得表情识别准确率最高,所以最终本文网络模型选择了第9种组合即采用2、4、8、16、16的压缩率组合将SE模块嵌入在网络中,更高效提取表情特征。
实验分别对比了目前7种识别率较高网络结构的参数量,有:
1) AlexNet网络(Krizhevsky等,2017)是在图像分类竞赛ImageNet Large Scale Visual Recognition Competition (ILSVRC2012)中第1名的网络,掀起了深度卷积神经网络在各个领域的研究热潮。
2) InceptionV4 (Szegedy等,2016)使用了统一的inception模块并结合了残差思想,使网络层数更深。
3) Xception网络(Chollet,2017)是在网络Inceptionv3的基础上引入了可分离卷积(depthwise separable convolution),在基本不增加网络复杂度的前提下提高了模型效果。
4) Parallel CNN网络(徐琳琳 等,2019)采用两个并行的卷积池化结构,分成3个不同的并行路径来提取3种不同的图像特征。
5) Attention Net方法(Fernandez等,2019)将注意力集中在人脸上,用高斯空间表示来进行表情识别。
6) FaceNet2ExpNet网络(Ding等,2017)对表情识别网络的训练进行调整:首先提出一种新的分布函数来模拟表达网络的神经元,接着设计了两个阶段的训练算法。
7) GAN网络(孙晓和丁小龙,2020)是一种通过训练使判别器和生成器达到平衡状态的无监督算法,将一种表情采用生成器进行下采样生成其他不同表情。不同方法的网络结构参数量如表3所示。
表3 不同方法的网络结构参数量Table 3 The amount of network structure parameters of different methods
实验结果显示,本文方法相较于识别性能较好的Xception神经网络参数减少了63%,可保证实时性需求。本文提出的神经网络结构减少了参数数量和计算量,使得模型体积大大减小,属于轻量级的模型,且对模型精确度不产生影响。与目前优秀的特征提取网络如MobileNetV3轻量级网络(Howard等,2019)相比,在精确度相差不大的前提下,本文模块参数量大大减少,在提升实时识别速度上有明显优势。通过服务端设备对网络模型的实时性进行了测试,经测试发现:平均识别速度可以达到128 帧/s,满足实时性的要求。本文通过服务端设备对基于增强深度可分离卷积通道特征模块的网络模型的实时性进行了测试,如图14所示为7种表情实时测试图。
图14 实时表情识别效果图Fig.14 The effect of real-time expression recognition((a)angry; (b)disgust; (c)fear; (d)happy; (e)sad;(f)surprise;(g)natural)
在相同数据集和检测环境下,对比7种现有最新的网络模型的识别准确率,用于验证网络模型的有效性。实验结果如表4所示。
表4 不同方法的识别结果Table 4 Recognition results of different methods /%
本文模型的识别率在CK+、FER2013、JAFFE、RAF-DB和AffectNet共5个表情识别数据集上分别可以达到99.32%、79.73%、98.48%、86.54%、60.89%,相比于7种卷积神经网络对比模型,识别精确度分别提高了0.51%、5.72%、0.28%、2.04%和0.68%。本文方法不仅能很好地识别室内数据集且对室外表情数据集仍然有效,均取得了较高的识别精确度。由此说明本文在简化网络的复杂程度和减少计算量的同时仍能够准确识别人脸表情,验证了本文方法的有效性。由于FER2013和AffectNet这两个数据集的干扰因素较多,如FER2013存在一些非正常表情图片,生气与悲伤、厌恶等表情易混淆等,AffectNet数据集存在头部姿态、面部遮挡等,导致网络模型在这两个数据集的识别率比CK+、JAFFE、RAF-DB数据集的识别率低,进一步说明了表情识别的复杂性。
针对表情识别网络模型复杂、泛化性差等问题,本文提出了一种增强深度可分离卷积通道特征的改进卷积神经网络的轻量级表情识别方法。主要工作如下:
1) 对多个场景的表情数据集进行数据增强操作,丢弃干扰性较大的背景信息。
2) 网络模型采用标准卷积提取低维特征,用深度可分离卷积组合神经网络结构,并将全局平均池化直接输入到softmax分类器,简化了网络的复杂度,从而有效降低了网络的参数和计算量。
3) 引入SE模块进行通道加权,通过实验选取最优压缩率设置方案,使得网络模型提升特征表达能力,剔除无关的冗余特征,提高了网络的鲁棒性。
最后在FER2013、CK+、JAFFE和RAF-DB、AffectNet多个场景的数据集上进行对比实验,均得到了较高的表情识别率,从而验证了本文方法的有效性。但是本文也存在一定不足,为了进一步提高算法的可靠性,需进一步考虑影响人脸表情识别精确度的问题,如遮挡、人脸姿势变换等,解决这些问题是后续工作的重点。