APP下载

CNN-MCF-ELM模型识别面部表情

2023-07-27邹佳丽张振友

机械设计与制造 2023年7期
关键词:池化分类器准确率

石 琳,邹佳丽,张振友

(1.华北理工大学人工智能学院,河北 唐山 063210;2.华北理工大学人工智能学院,河北 唐山 063210)

1 引言

在人类日常生活交流中,表情识别是人与人交流过程中一种非常重要的“察言观色”能力,通过对方面部流露出来的表情来推测其内心情感的变化,进而作出适当的言语调整。著名心理学家A.Mehirabian的一项研究曾提出,人类之所以能够进行情感交流,主要是因为人类可以通过语言、语气和表情这三种方式来表达自己内心的情感,其中,通过面部表情传递情感所占比例高达约55%。人脸面部表情没有肢体语言传达出的情感通俗易懂,人脸面部表情往往含有许多无法直接解读的内在信息,需要结合心理学、生理学等进行分析研究。因为对表情识别的研究可以达到所谓的“透过现象看本质”的目的,因而该领域的研究也成为了当今科研界的一大研究热点。

传统的面部表情识别方法容易造成原有的表情信息丢失等问题,信息特征往往不能表征面部表情,因此面部表情识别准确率低。另外,传统的面部表情识别算法是人为设计的,所以计算能力有限、训练难度大。

卷积神经网络CNN(Convolutional Neural Network)能根据具体的分类类型自动地学习到针对性非常强的图像特征,因此,现阶段CNN在图像识别领域变得非常受欢迎,该领域的科研人员都开始对CNN在图像识别方向进行了大量研究,并取得了巨大的成功。与此同时,CNN用于面部表情识别也逐渐盛行,并取得了优异的成果。

该领域的很多研究者把CNN 应用到了面部表情识别研究中,其中,文献[1]使用深度置信网络DBN(Deep Belief Network),通过BP[2]神经网络对表情进行了识别,取得了不错的效果;文献[3]提出的深度网络AUDN,它将CNN与玻尔兹曼机两者结合对面部动作进行特征提取,然后把提取的特征输入到SVM(Support Vector Machine)[4]分类器进行分类;分类器的选择对提高面部表情识别效率具有很大的影响,常用的特征分类算法主要有SVM、K近邻算法[5]等。与这些常用的特征分类算法相比,极限学习机ELM(Extreme Learning Machine)[6]是一种较好的分类器选择。在ELM网络训练过程中,输入层和隐含层之间的权值矩阵和偏置值都是随机生成的,不需要计算和迭代更新,只需要计算隐含层与输出层之间的权值矩阵,所以耗时短,计算量小,收敛速度快,参数设置简单等,这些优点恰恰是SVM、K近邻等一些算法不具有的。

CNN在图像识别领域的显著优势就是可以在没有人为干预的情况下提取高质量的特征,为了充分利用CNN多层特征融合后信息的全面性,以及ELM分类具有泛化能力强、分类精度高等优点,这里提出了基于CNN多层特征融合和极限学习机(CNNMCF-ELM)的面部表情识别方法。

2 这里方法

这里提出的表情识别模型(CNN-MCF-ELM)的整体架构,如图1 所示。包括CNN 特征提取、多尺度池化、多层特征融合、ELM分类四个阶段。

2.1 图像预处理

预处理的好坏对CNN提取高质量特征有很大的影响作用,这里在模型训练过程中,为了防止过拟合采用了将每个图像以原点为中心分别旋转θ角度的数据增强方式,这种操作没有改变原有图像的像素值,保证了旋转前后图像清晰度是完全一样的。经过旋转变换后像素的坐标为:

由式(1)可知,每张图片分别被旋转了90°、180°和270°,扩充后的数据集为原始数据集的3倍。

2.2 CNN特征提取

在特征提取阶段,采用的是CNN网络模型。CNN进行特征提取有别于传统的人工选取特征,它可以自动习得重要特征。这里所用的CNN模型是基于经典的LeNet-5模型的改进[7],它的结构包括3 个卷积层,分别用C1,C2,C3,表示,3 个池化层分别用P1,P2,P3表示,其中,P1层是最大池化层,P2和P3层是平均池化层,1个全连接层用F1表示。

池化操作选用最大池化和平均池化相结合的方式。CNN只用于特征提取,不用于分类识别,此时的F1层没有分类功能。网络各层参数,如表1所示。

表1 卷积神经网络模型各层参数Tab.1 Parameters of Each Layer of the Convolutional Neural Network Model

2.3 多特征融合

传统的CNN网络在面部表情识别过程中仅使用最后一层特征图的信息,没有充分利用网络中间每一层的特征。在文献[8]中,作者对卷积神经网络的特征进行了详细的可视化,表明不同层级的表征分别对应识别对象不同的特征属性,因此,这里选择了融合多层CNN提取的特征图以尽可能地不遗漏重要特征信息来表征表情特征,这里模型采用了多特征融合方式获取能充分表征面部表情的多属性特征的特征向量。

多特征融合方式,如图2所示。把卷积神经网络的后三层即C4,C5,P3层提取得到的特征图分别经多尺度池化之后进行特征融合,这里之所以选用CNN提取的最后三层特征进行融合,是受文献[9]进行肝癌的诊断识别使用了CNN的最后三层特征,并取得了较高的准确率,表明此后三层包含了丰富的特征信息的启发。

图2 多尺度池化操作示意图Fig.2 Schematic Diagram of Multi-Scale Pooling Operation

多尺度池化算法的思想来源于空间金字塔池化[10],经过多次试验测试,最后选择每一层经多尺度池化操作后的输出均为3个分别为1×1×r、2×2×r和3×3×r的不同尺度的特征矩阵,其中r为特征图的数量,3个特征矩阵按列形成(13×r)×1的列向量,最后经过特征融合形成一个具有多尺度多属性的特征列向量作为ELM分类器的输入。多尺度池化操作的示意图,如图2所示。

2.4 ELM分类

这里提出的面部表情识别模型中的CNN只用于提取分类所需的面部表情图像的特征,不参与面部表情识别的分类阶段,CNN 的训练一般分为两个阶段即:正向传播阶段和反向传播阶段,在训练过程中,需要计算调整的参数非常多,耗时长,所以在分类阶段选用了训练过程简单、分类准确率高的ELM分类器进行表情识别。

2.4 .1 ELM分类器介绍

极限学习机由输入层、隐藏层和输出层组成。ELM在网络训练过程中只需要计算隐含层与输出层之间的权值矩阵,它的输入层和隐含层之间的权值矩阵和偏置值都是随机生成的,不需要计算也不需要迭代更新[7],所以可以节省大量的网络训练时间,减少计算消耗开支。ELM网络结构,如图3所示。输入层、隐藏层和输出层的神经元个数分别为d、l、m。

图3 ELM网络结构图Fig.3 ELM Network Structure

输入量x是经过特征融合后的具有多尺度多属性的特征维数为P的面部表情特征。第i个隐藏节点的输出为:

式中:g、ωi、bi—激活函数、第i个隐藏节点与所有输入节点之间的输入权值向量、第i个隐藏节点的偏置,i=1,2,…,l。g—ReLU函数,即:

输入层和隐藏层之间的连接是一个映射的过程,因为输入的特征向量x是一个P维空间特征向量,所以该连接是从P维空间映射到l维空间的过程。输入向量x的映射特征向量为:

输出层有m个输出节点,m为表情的种类数,每个输出节点对应一种表情。第i个隐藏节点与第j个输出节点间的输出权值表示为βij,其中j=1,2,…,m。因此第j个输出节点的值为:

因此,输入样本x,其在隐藏层的输出向量可以表示为:

其中,

在测试阶段,输入测试集样本x,对应的表情类别表示为:

2.4 .2 ELM分类器训练

设有N个样本,这N个样本是CNN后三层提取的特征融合后具有n个属的特征向量,则网络的输入和期望输出分别表示为xi=[xi1,xi2,…,xim],yi=[yi1,yi2,…,yim]。由ELM分类器介绍部分的定义描述的极限学习机能够以零误差逼近训练样本,即,因 此 存 在ωl,βij,bi使 得以矩阵形式可表示为:

式中的β与式(7)中的β相同,这里不再重复给出。H—隐含层输出矩阵,隐含层与输出层间的连接权值可以通过求解方程组min‖ ‖Hβ-Y的最小二乘解获得。其解为:

式中:H+—隐含层输出矩阵H的广义逆矩阵。

3 实验设计与分析

3.1 数据集

数据集采用的是CK+和FER2013两个公开数据集。CK+数据集包含123张不同人的面部表情图像共593例表情序列,951张图像样本,共分为正常、生气、厌恶、恐惧、开心、伤心和惊讶七种表情,七种表情样例示意图,如图4所示。

图4 CK+数据集表情样例图Fig.4 CK+ Expression Sample Diagram

FER2013 数据集包含35887 张来自实际生活中的不同年龄、不同国籍、不同肤色的自然人脸表情。FER2013数据集中七种表情分别是生气、厌恶、害怕、高兴、中性、悲伤、惊讶示例,如图5所示。

图5 FER2013数据集表情样例图Fig.5 FER2013 Set Expression Sample Diagram

考虑到FER2013数据集数据包含更加齐全,更加符合人类实际生活的场景,所以选用FER2013数据集训练和测试模型,用CK+验证模型是否具有泛化性。

3.2 实验设置

这里实验是在PyCharm3.7编译器内完成的,编程语言使用的是Python3.6。深度学习框架选择的是Google 的深度学习工具,TensorFlow框架。

3.2.1 多层特征和单一特征进行对比

为了验证这里众多特征融合方式可以提高面部表情识别准确率,因此在公开的FER2013数据集上设计了两组实验进行及结果对比。

两组实验设计分别为:第一组实验用CNN网络提取的单层特征即最后一层平均池化层提取的特征输入到ELM分类器中进行表情识别并测试其识别准确率。第二组实验是用CNN网络后三层提取的特征进行多特征融合后输入ELM分类器中进行表情识别并测出其识别准确率。实验结果,如图6所示。

图6 不同隐藏节点数目对应的准确率Fig.6 Accuracy of Different Number of Hidden Nodes

由图6可知,隐藏层节点数目l是对识别准确率影响很大的一个因素,当l<10000时,准确率增加迅速,当l>10000,准确率增加缓慢,考虑到模型的训练时间和计算成本。本实验选取隐藏层节点数量l为10000。

由实验结果可知,当l=10000时,利用多层特征和利用单层特征的平均识别准确率分别为78.97%和76.80%。l不论取何值时,利用多层特征的识别准确率均比利用单层特征的识别准确率都要高出大约2个百分点。因此,实验证明了利用多层特征融合能显著提高面部表情识别准确率。

3.2.2 不同分类器的比较

极限学习机具有极易实现,训练速度快,泛化能力强,分类准确度高的特点,为验证ELM 分类器用在面部表情识别领域的也具有显著优势,分别从训练时间、识别速度和平均准确率3个方面将ELM分类器与softmax分器和SVM分类器进行了比较,实验结果,如表2所示。

表2 不同分类器性能比较Tab.2 Performance Comparison of Different Classifiers

由表可知,在准确率方面,ELM 分类器分类准确率高达97.63%,明显高于Softmax和SVM。

在训练时间方面,ELM算法避免复杂繁琐的复杂的迭代过程,它是通过随机生成连接权值和偏置,因而训练过程中调参过程比较简单,需要调整的参数量少,计算的成本低,因此在训练时间上会明显比其他两类分类器花费的时间少。在识别时间方面,ELM分类器的识别时间比其他两类分类器大大缩短了时间,缩短到了5.32ms,节省了大量时间和成本。

3.2.3 其他数据集验证

在验证这里算法是否具有泛化性时,使用CK+数据集作为这里算法模型的测试样本,为了保证实验的可靠性,依次进行3次交叉验证,求平均值作为最终结果。为了便于表示,识别结果用混淆矩阵表示,如表3所示。

表3 CK+数据集上表情识别混淆矩阵Tab.3 Confusion Matrix of Facial Expression Recognition on CK+

由表3可知,这里方法在CK+数据集上取得高达98.72%的平均识别率准确率,说明了这里提出的模型具有很好的泛化能力。

4 结论

这里首次把CNN-MCF-ELM模型用在面部表情识别领域,该模型的提出改善了现有的大多数面部表情识别算法泛化能力弱、识别效率低等一些问题,在设计模型时考虑到了充分利用CNN多层特征的全面性和差异性、ELM训练时间短、参数计算量少的优势。这里提出的算法优点如下:

(1)利用CNN网络优秀的特征提取能力,避免了手动选取特征的局限性,通过自动学习获得特征,在复杂环境下具有更好的适应性。

(2)利用ELM分类器作为表情识别阶段的分类器,大大减少了需要调整的参数量,从而避免了繁琐的数学计算过程,可以缩短模型训练时间,提高识别效率。

(3)利用多特征融合的全面性特点提高了CNN提取的人脸表情特征更具有表征性,从而提高了面部表情识别率。

(4)该模型算法具有良好的泛化能力,对实际应用有一定的指导意义。

猜你喜欢

池化分类器准确率
基于Sobel算子的池化算法设计
卷积神经网络中的自适应加权池化
设施蔬菜病害识别中的CNN池化选择
乳腺超声检查诊断乳腺肿瘤的特异度及准确率分析
不同序列磁共振成像诊断脊柱损伤的临床准确率比较探讨
2015—2017 年宁夏各天气预报参考产品质量检验分析
基于卷积神经网络和池化算法的表情识别研究
高速公路车牌识别标识站准确率验证法
BP-GA光照分类器在车道线识别中的应用
加权空-谱与最近邻分类器相结合的高光谱图像分类