基于迁移深度模型的人脸表情识别研究

2021-01-20 08:38钟明静卢涵宇李丹杨张涛侯汝冲胡正江
关键词:卷积深度特征

钟明静,卢涵宇*,李丹杨,张涛,侯汝冲,胡正江

(1.贵州大学 大数据与信息工程学院, 贵州 贵阳 550025;2.贵州力创科技发展有限公司, 贵州 贵阳 550018)

0 引言

目前,深度学习逐渐应用于各种场景,如语音识别、自动机器翻译、自动驾驶汽车、拍照识别等,这些都是当前人们在人工智能发展方面的成果[1-15]。然而,很多新兴课题的出现并不能第一时间使用特有的深度学习模型训练,这时,迁移学习就相对有参考价值。可从四个方面展开迁移:样本数据,知识结构,完成或改进的目标领域,完成任务的学习效果。如今,迁移学习的应用领域越来越广泛,有自然语言处理、计算机视觉、医疗健康和生物信息学、从模拟中学习、用户评价、推荐系统和个性化对话等[1]。

迁移学习(transfer learning, TL)就由此被提出,TL的初衷是节省人工标注样本的时间,让模型可以通过已有的标记数据向未标记数据迁移。表现得比较好的监督学习需要大量的标注数据,而标注数据对于人类来说是一项费时费力的巨大任务,如刘健[2]用Inception结构迁移到Fer2013数据库训练,提出双激活层网络结构获得了61.59 %的分类效果;丁剑飞[3]结合SVM分类器计算特征得分情况,再运用迁移MobileNets网络库迭代800次时,准确率达到93.86 %;王瑞琼[4]将InceptionV3迁移模型训练CK+数据库并进行微调,训练效果得到提升。

笔者提出了一种基于迁移学习的深度学习模型,利用几种新模型迁移到表情识别的训练中,并与搭建的一个三层卷积层的神经网络进行对比,通过大量的训练实验对比四种模型,仿真实验表明,笔者提出的模型应用于人脸表情识别,识别率在本文的表情数据库上取得较好的迁移学习效果。

1 迁移学习

1.1 迁移学习要素

迁移学习的三要素包括网络模型、训练数据及训练算法。首先选择网络模型,这也是迁移学习的要点,确定好预训练网络模型后,对网络模型的层次、结构熟悉后将其进行修改;其次,需要大量的带标签的数据,这在机器学习中称为有监督学习,网络将从具有已知正确标签的实例中学习;最后,需要指定一组训练选项,训练时要应用一种损失函数算法以迭代方式提高网络正确识别训练图像的能力,该算法可以使用许多参数进行微调,例如每个步骤使用多少训练图像、最大的迭代次数以及学习率(新的迭代更新网络参数的幅度大小)等参数。

对于要进行迁移学习的表情数据,目标是将现有预训练网络进行微调,迁移学习微调的方式是以一个在大量数据集上训练好的网络参数作为自己网络参数的初始化参数进行训练。一旦具备迁移学习的三个要素,迁移学习的训练就可以执行。

1.2 基于深度学习的迁移学习

随着深度学习迅速发展,人们将迁移学习与深度学习相结合,对于两个相同领域中的不同问题,在深度神经网络模型中具有可迁移能力。YOSINSKI等[5]提出了在深度神经网络上的特征是可以迁移的,因为神经网络是一个通过预训练获得数据的分层特征表达,在模型低层描述的特征是边缘信息、颜色信息等,再利用高层语义分类的模型,对于不同的分类任务实际上提取的特征是一样的,真正区别在于深层特征。

对于深度学习的迁移学习方法,首先通过源任务的网络结构训练得到参数后,再开始训练出对新任务的网络模型。以此方法不必重新设计或训练新网络就可以构成新的学习系统,因为在其基础上进行了参数与知识的迁移。

迁移学习实现了卷积层提取的具有共性特征的迁移,还能学习到与源领域无关的特征,而深度学习具有很强的数据拟合能力,能学习到深层的特征表达。如果将深度学习与迁移学习结合,也就是深度学习利用源领域的知识,可充分学习其共有的特征表示,这样既发挥了两者的优势,又可以获得更好的期望效果。

2 基于迁移学习的表情识别训练模型

在表情识别中,并不能直接用较新网络模型进行分类,因为其图像识别中的类别与表情识别的类别不同,这就要求对网络模型进行修改来满足表情识别的需求,并基于人脸表情的图像对它进行训练,这种采用预训练网络对其进行修改,并基于新数据对其进行重新训练的过程称为表情识别的迁移学习。

笔者主要探索三种较新的卷积神经网络结构,即ResNet18、ResNet50和MobileNetv2,下面分别对这三种模型进行介绍。

2.1 ResNet模型

残差网络是何凯明团队在2015年提出的思想,与Highway Network的思路比较类似,都是将一些原始输入信息直接传输到下一层[6]。

ResNet模型通过改变学习目标,即不再学习完整的输出F(x),而是学习残差H(x)-x,这种思想解决了信息在传递过程中存在的丢失、损耗等问题。信息直接从输入到输出,一定程度上保护了信息的完整性。ResNet有很多种网络结构,以“ResNet+数字”的形式命名,如网络的深度是18层,命名为“ResNet18”,网络的深度是50层,命名为“ResNet50”。网络的深度并不是所有层数加起来的层数,而是包括卷积层和全连接层加起来的层数,不包括池化等层数。如表1所示,展示了ResNet18和ResNet50层的输出大小。

表1 ResNet18、ResNet50层的结构展示Tab.1 ResNet18, ResNet50 layer structure display

根据表1可知,ResNet18与ResNet50可以将整个残差网络的主体部分分为4块:conv2_x,conv3_x,conv4_x,conv5_x。在两种结构中,conv2_x都没有改变输入大小(feature map),而conv3_x,conv4_x,conv5_x均对feature map缩小两倍。

2.2 MobileNetv2模型

在2017年,Google推出了轻量化卷积网络模型“MobileNets”,是基于 TensorFlow 的计算机视觉系列之一,功能是能够为当前较流行的移动应用程序提供图像分析。当前,已经推出3个版本,即MobileNetv1、MobileNetv2和MobileNetv3。在这种架构上,一直定期进行更新力求做到两个基本目标:参数数量更少和运算复杂度更少的模型。将MobileNetv2与ResNet相比较,区别主要有以下四点:

① 深度可分离卷积

就神经网络结构而言,深度可分离卷积[7]将卷积核分成两个单独的卷积核,先作深度卷积,可理解为对于深度卷积网络的每个输入信息都使用了单独的滤波器,这两个卷积核依次进行两个卷积,而后进行逐点卷积,将1×1卷积网络合并深度卷积的输出,成为一组新输出,如图1所示。

图1 深度可分离卷积过程Fig.1 Deep separable convolution process

② 线性瓶颈

MobileNetv2与ResNet架构结构对比,如图2所示。MobileNetv2的结构是先对输入图像进行升维,在Depthwise Convolution之前添加1×1卷积提高输入数据的维度,这样在高维空间中提取深层特征,再降维后通过一个激活函数。在低维空间中使用1×1卷积后的激活函数会破坏非线性结构的输出,为了保持输出的完整性,使用线性激活函数来保持输出后的特征,这种方式就叫线性瓶颈。可知线性瓶颈的作用是对模型的中间输入和输出进行编码,且保证了输出特征的准确性和完整性。

③ 反转残差块

反转残差块如图2(a),是将低维特征使用1×1 conv升维,而后使用3×3 conv进行深度分解卷积,并使用1×1 conv对特征再降维,得到本层特征的输出,并进行element wise的相加。反转残差块是相对于MobileNetv1的改进,传统的残差块如图2(b),将高维特征先使用1×1 conv降维,然后在使用3×3 conv进行滤波,并使用1×1 conv进行升维,这些卷积操作后均经过激活函数,得到输出特征(下一层的输入),并进行点积(element wise)操作。

(a) 反转残差块

④ 快捷连接

瓶颈之间的快捷连接的方式使得前向传播时提供特征复用,能够实现更快的训练速度和更高的准确性。

3 实验与结果分析

3.1 数据库简介

本文实验用的数据集是选用了自然状态下Wild的FER2013数据库,部分表情图如图3所示。2013年Fer2013从充满挑战性的真实世界场景中收集了十分充足的训练数据,推动了FER技术从实验室走向真实场景。

图3 FER2013部分表情图展示Fig.3 FER2013 part of the emoticon display

该数据集规模较大,由48×48像素大小的人脸灰度图构成,与JAFFE同样分为七个表情类别,共有35 887张表情图片,其中训练样本28 709张,验证样本和测试样本均为3 589张,数字“0~6”分别代表生气(anger),厌恶(disgust),恐惧(fear),开心(happy),伤心(sad),惊讶(surprised),中性(normal)。由于此数据库存在错误的标签,所以样本图质量不高且类别样本数量差异较大,使得此数据库在表情识别领域中的识别率并不高。

3.2 不同模型的实验结果对比分析

笔者将本文搭建的CNN网络模型、基于迁移学习的ResNet18、ResNet50、MobileNetv2网络模型进行表情训练。

① 三种迁移网络的训练结果与分析

利用文献[6]提出的训练网络对Fer2013进行表情训练,由于本文选择的三种网络的源目标是应用于1 000个类别中的100万个图像。如果要进行迁移网络学习,对于Fer2013数据不能直接进行训练,必须进行微调。

进入迁移网络之前,先对原始图片处理成像素大小为224×224的图片,将所有图片数据经过预处理分成7个类别,送入图像输入层。训练网络与迁移网络的特征提取行为相同,只是还没有将特征映射到表情图像类的训练,当使用Fer2013新数据进行训练时,网络将学习建立该映射,并对特征提取进行优化,使其更适合表情识别的应用。在ResNet18、ResNet50和MobileNetv2三种训练网络中,通过微调编译适宜本数据库的网络,三种网络训练结果如表2所示。

表2 三种网络训练识别率比较Tab.2 Comparison of three network training recognition rates

每种网络的实验结果是经过20次的训练得出的平均识别率,从表2可以得出MobileNetv2层的平均识别率最高,ResNet50层的最低。准确度只是评估的一方面,进一步地分析三种训练网络的损失值,判断网络的鲁棒性和识别性能,具体见图4。

(a) ResNet18

当执行训练时,会显示训练进度,准确度是网络分类正确的训练图像所占的百分比,准确度在训练过程中不断成长,但是准确度其实并不能衡量网络对每个预测的可信度。损失值是另一个指标,用来衡量网络在对整个训练图像集进行预测时与正确标签的差距,随着训练的进行,损失值应该逐渐降低至0,当损失值继续下降时,准确度稳定在其最大值,这表示即使最终预测不变,网络在区分类别方面的性能也越来越好。从图4可见,经过30次迭代,随着训练损失值在不断地降低,测试损失值也在降低,说明网络能够收敛,随后三种网络均有回升的迹象,ResNet50的损失值回升最显著,分析其根本原因是网络过于拟合。造成过于拟合的原因可能是特征维度过多,模型过于复杂,导致参数过多,同时训练数据相对过少,使得ResNet50没有ResNet18效果好。

除了上述提到的三种训练结构,本文还搭建了一种简单的CNN网络,该结构由三个卷积层后都接了池化层和一个全连接层组成,每一卷积层和全连接层均使用了Relu作为激活层。对比四种训练网络的表情识别类别,如表3所示。

表3 四种训练网络表情类别识别率对比Tab.3 Comparison of recognition rates of four training network expression categories

② 实验结果分析

对四种网络相比较,可以看出通过迁移的网络对表情的训练比本文搭建的CNN网络效果更好,且对于三种迁移的网络来看,虽然ResNet50的复杂度比ResNet18要高,理论上来说复杂度高的训练效果更好,但是由于训练数据没有足够多,且存在表情类别不平衡的情况,使得Fer2013的训练效果没有预想中的好,反而ResNet18和MobileNetv2两种训练效果更好;对于表3的表情类别识别率来看,不同的网络区分类别的能力也有不同,如MobileNetv2识别厌恶表情的能力高于前三种网络,ResNet18区分惊讶表情的能力也比其他三种网络更突出。

3.3 不同参数与模型的结果分析

通常在开始训练网络时,得到的结果并不理想,想要提高其性能可以从迁移学习三要素中的输入项着手改进,即研究训练算法选项的改变是否能得到更好的性能。训练算法中的参数有学习率、优化算法、迭代次数和小批量设计等,依此对其进行分析。为此,可以通过不同参数的对比来探究其对模型的影响。

① 学习率、迭代次数及小批量设计对模型的结果影响

学习率是影响训练算法如何更新权重的关键参数,因为训练目标是使损失函数最小。损失函数用于衡量网络在训练数据上的表现,梯度下降算法的工作原理是观察当前位置范围几个权重的损失值,并利用它们计算出斜率,即可得到一组新的权重值。在每次迭代中,网络都会使用训练图像的一个子集来更新权重,这个子集称为小批量(Batchsize)。每次迭代都采用不同的小批量,如果整个训练集都被使用过了,则称为完成了一轮训练。表4展示了学习率、迭代次数和小批量设计对模型的结果影响。

表4 学习率、迭代次数和小批量对模型结果的影响Tab.4 The influence of learning rate, number of iterations and small batches on experimental results

从学习率来看,三种网络都表现出学习率更小的效果就越好;从迭代次数来看,次数增加对于不同网络表现出不同的结果,网络模型复杂的迭代次数增加,准确率反而降低,而相对简单的模型随着迭代次数增加,准确率升高1 %~3 %;从验证频率来看,无论哪种网络,准确度都会增加,但是训练时间会大幅度增加。

② 优化算法对模型的结果影响

在迁移学习的训练选项中,有几种优化算法可以选择,下面从动量的随机梯度下降(SGD with momentum,Sgdm)和自适应矩估计法(adaptive moment estimation,Adam)算法来分析。Sgdm是在SGD基础上引入了一阶动量;Adam可以替代传统随机梯度下降过程的一阶优化算法,Adam算法和传统的随机梯度下降的区别是:随机梯度下降的学习率不会改变,而Adam计算梯度一阶矩估计和二阶矩估计时,会为每个参数单独设计学习率,即自适应学习率。Adam 算法作为适应性梯度算法(AdaGrad)和均方根传播(RMSProp)的共同优点,AdaGrad能提升稀疏梯度性能,一个参数有一个学习率,RMSProp基于权重梯度给每个参数适应性保留学习率。

对三种迁移网络使用以上两种训练算法,对每种优化算法训练20次,取平均结果,其他参数及权重不变,结果如表5所示。

表5 两种优化算法比较结果Tab.5 Comparison results of two optimization algorithms

从表5中可以得出,不同的优化算法对于网络的训练有着不同的训练效果,总的来看,三种网络的训练参数除了训练算法的不同,其他都一致时,相比于Sgdm算法,Adam算法更优。由于Adam算法同时获得了AdaGrad和RMSProp两种算法的优点,这意味着Adam算法在非稳态和在非线性问题上有较优秀的性能。

3.4 人脸表情的识别检测

对上述的实验进行进一步剖析,对训练中参数表现最好的网络进行表情检验,随机对网上的表情图片以及其他表情数据库的图片进行识别, 识别的结果中,0=angry,2=fear,3=happy,5=surprise,结果如图5所示。

(a) 训练模型对测试集的识别

所有网络的全连接层的输入信息都是从上一层卷积、池化、Relu、BN层提取到的特征中获取,并将它们映射到7个输出类;Softmax层是将7个类的输出值归一化为分数值,这个分数值就是网络预测某图像可能属于该类的概率值,最后一层获取这些概率,并返回最可能的类作为网络的输出表情。在图5(a)中,用训练效果最好的网络对Fer2013测试集进行识别,识别的结果中,0=angry,2=fear,3=happy,5=surprise,识别正确。再对图5(b)的四张图片进行测试,前两张图是网上公开的图片,后两张是JAFFE数据库中的图片,从识别结果来看,四张图片依次识别开心、中性、伤心和恐惧,对应了正确的表情。

4 结论

本文提出基于CNN的训练表情数据的方法和基于迁移学习的ResNet18、ResNet50和Mobilenetv2三种迁移深度模型,分析了几种训练模型在实验中的表现及性能,提出的CNN结构不及迁移模型准确率高,通过不同网络参数和优化算法对不同模型的优化结果,再通过多次探寻合适参数,虽增加了实验时间和计算负担,但是模型结合不同参数有了更好的训练效果。仿真表明迁移网络的表情网络性能表现更好,识别率更优。

猜你喜欢
卷积深度特征
根据方程特征选解法
基于3D-Winograd的快速卷积算法设计及FPGA实现
深度理解一元一次方程
卷积神经网络的分析与设计
从滤波器理解卷积
不忠诚的四个特征
深度观察
深度观察
深度观察
基于傅里叶域卷积表示的目标跟踪算法