APP下载

端到端增强特征神经网络的视频表情识别

2019-10-16曹雪虹

关键词:人脸卷积神经网络

陈 乐,童 莹,陈 瑞,曹雪虹

(1.南京邮电大学 通信与信息工程学院,南京 210003;2.南京工程学院 信息与通信工程学院,南京 211167)

表情是人类情绪的直观反应,多指面部肌肉及五官形成的状态,表情识别作为人机交互重要的一环一直是计算机视觉的重要研究课题之一。随着计算机技术的进步、大数据时代的到来以及 GPU 等电脑硬件的发展,表情识别在软硬件上都得到了长足的发展,相应的研究机构与表情数据库以及新的算法越来越多。

在传统机器学习表情识别领域,特征提取是人脸表情识别中最核心的部分,从图片中提取出人脸的有用信息能很大程度上影响最终表情识别的准确率。传统的特征提取方法使用手工制作的特征,如局部二值模式(LBP)[1]、Gabor特征[1],用于表示图像的离散余弦变换以及线性预测编码系数(LPC)等[2]。影响表情识别率高低的另一关键是如何选取合适的分类器对特征进行分类。分类算法常见的有SVM分类算法[3]、K-NN分类算法[4]、Adaboost分类算法等[5]。以上传统机器学习算法经过不断发展,目前已经相对成熟。

近年来,深度学习凭借优良的信息处理能力及在分类、识别、目标检测等方面取得的重大突破,成为国内外人工智能领域的研究热点。在表情识别研究中,深度学习也表现出了出色的性能,不仅有更强的特征提取能力,而且对光照、姿态、遮挡物等干扰场景下的表情识别率更好。其中基于卷积神经网络(convolutional neural networks,CNN)的方法[6-8]在众多计算机视觉任务中取得了突破,这些方法也成为表情识别中的入门解决方案。Moez Baccouche[9]第一个提出依赖深度卷积神经网络学习特征来代替手工特征。Emoti W表情识别竞赛15年的冠军Anbang Yao[2]构建了多个卷积网络模型,阐明了人脸各个区域的表情特征与表情识别的相关性。基于卷积神经网络在单张图片的表情识别上优良的表现,Pooya Khorrami[10]考虑使用深度学习对视频进行情感识别。由于在连续的视频数据上卷积神经网络无法提取视频片段中的连续时间信息及运动特征,他们第一次提出了卷积神经网络与循环神经网络(recurrent neural network,RNN)相结合,取得了比单纯CNN模型更好的效果。Huai-Qian Khor[11]提出了一种丰富长期循环卷积网络(enriched long-term recurrent convolutional network,ELRCN)用于微表情识别,通过在空间和时间维度上堆叠输入数据来增强对人脸特征的提取。

本文受ELRCN启发,结合深度学习中的卷积神经网络和长短期记忆网络(long short-term memory,LSTM),在AFEW(acted facial expressionsinthewild)[12]数据集上对连续帧中人脸进行表情识别。由于ELRCN框架中CNN与LSTM模型独立进行训练,最终的分类结果无法影响CNN模型的权重更新,于是使用keras深度学习库复现了ELRCN论文中的框架,并在此基础上提出了一种端到端特征增强的CNN-LSTM混合网络,最终在实验分析后得到了更好的效果。

1 数据集

人类表情有明确的分类是在20世纪70年代,Ekman和Friesen[13]对现代人脸表情识别做了开创性的工作,他们研究了人类的6种基本表情(即高兴、悲伤、惊讶、恐惧、愤怒、厌恶),确定识别对象的类别,并系统地建立了有上千幅不同表情的人脸表情图像数据库。随后他们又在此基础上通过大量研究,建立不同的脸部肌肉运动与相应的面部表情映射关系,提出基于面部运动单元(44个运动单元)的面部表情编码系统(facial action coding system,FACS)[14]。

本文使用数据集AFEW,它取材自从不同电影收集的剪辑视频,其中包含自发的表情、各种头部姿势、遮挡和照明等各种现实场景,相对于实验室控制的采集数据存在着许多挑战性的问题。AFEW中每个视频分配1个表情标签(图1),其表情种类除了6种基本表情外,还有一类中性无表情类(neutral)。该数据集有3个子集:训练集(773个视频)、验证集(371个视频)和测试集(653个视频),为保证互不相关,3个集取材的电影和演员互斥。数据集还提供了每个视频对应的剪切人脸图片、LBP特征信息和人脸面部关键点信息。SFEW(static facial expressionsinthe wild)[15]数据集是通过基于面部点聚类计算关键帧从AFEW数据集中提取静态帧组成的,标签和分集方式相同,必要时可以作为AFEW的辅助数据集。本文主要关注CNN-LSTM网络框架的优化,直接使用数据集自身提供的连续视频帧的人脸剪辑图片作为训练数据,并未做进一步的图像处理。图1中,每行表示1种情绪。

2 CNN-LSTM网络

2.1 CNN提取人脸特征

卷积神经网络近年来在视觉识别任务上取得了巨大的成功,其中包括经典的CNN包括AlexNet[6]、VGG[7]、GoogLeNet[16]和ResNet[17-19]。训练一个好的网络模型需要大量的数据,这些经典网络框架都有开源且在各种大数据训练集上训练好的模型权重,把预训练好的的模型权重作为后续研究者的初始模型参数大大节约了重新训练模型的时间。Yin Fan[18]在选择表情识别CNN框架时,对已经预训练的经典框架(GoogLeNet、VGG-16、ResNet等)进行了实验对比,发现在人脸数据集上预训练的VGG-16-Face模型有着最高的准确率。本文框架中的CNN部分也采用经典的VGG-16-Face模型,如图2所示。

图1 AFEW数据集的7种情绪

图2 端到端VGG-16部分模型

图2中①处是对卷积层输出进行池化、拉伸后连接输出为4 096的全连接层;②处是输出为4 096的全连接层。VGG-16模型由牛津大学VGG组提出,该网络在2014年的 ILSVRC localization and classification 两个问题上分别取得了第1名和第2名的网络架构,证明了增加网络的深度能一定程度地影响网络的性能。VGG-16拥有5段卷积,每段内有2~3个卷积层,同时每段尾部会连接1个最大池化层用来缩小图片尺寸。每段内的卷积核数量一样,越靠后的段的卷积核数量越多。在有些卷积组中会出现连续的几个卷积层堆叠,2个3×3的卷积层串联相当于1个5×5的卷积层,即一个像素会跟周围5×5的像素产生关联,感受野大小为5×5,既可以保证感受视野,又能减少卷积层的参数。由于数据量较少,为降低模型的过拟合问题,全连接层后面加入了丢失层(dropout),丢失率设为50%,使得模型中的神经网络单元在训练过程时按照一定概率暂时从网络中丢弃。

2.2 LSTM模型

CNN处理单帧图片时十分有效,但面对视频帧这种时序数据,其中的帧间的时序关系、运动信息等时,循环神经网络(recurrent neural networks,RNN)则更加有效。RNN模型的循环特性使得它允许信息保留一段时间,但随着序列的增长,前后帧间隔增大,梯度爆炸和梯度消失使得RNN无法捕获这种长期依赖。

图3 LSTM记忆单元

为了解决上述问题,研究人员提出了许多解决办法,其中应用最广泛的是门限RNN(gated RNN),而LSTM就是门限RNN中最著名的一种。LSTM最早由Sepp Hochreiter和Jürgen Schmidhuber提出,它能够处理长期依赖关系的问题。LSTM记忆的单元包含3个门:遗忘门、输入门和输出门,如图3所示。LSTM通过这3个门实现信息的保护和控制。LSTM记忆单元的数学公式如下:

it=σ(Wxi+Whiht-1+bi)

(1)

ft=σ(Wxfxt+Whfht-1+bf)

(2)

ot=σ(Wxoxt+Whht-1+bo)

(3)

gt=tanh(Wxcxt+Whcht-1+bc)

(4)

ct=ft⊙ct-1+it⊙gt

(5)

hto=ttan h⊙(ct)

(6)

其中:

σ(x)=(1+e-x)-1

(7)

(8)

记忆单元中的关键是细胞状态Ct,首先遗忘门控制着细胞状态中的信息选择性遗忘,其次输入门决定把哪些新的信息加入细胞状态,最后输出门决定输出的信息,并输出信息ht和当前的细胞状态ct传送给下一个LSTM记忆单元。在本模型中连续的人脸特征序列顺序输入LSTM,记忆单元中的细胞状态不断更新记录人脸特征序列中的有用信息,序列结束后输出给下一层网络。

图4所示为端到端增强特征神经网络模型。根据LSTM的结构特性要求输入需为序列信息,同时要实现端到端的模型需要CNN模型部分提供不少于2个连续人脸特征。设计该模型每次输入为n帧连续人脸图像,每张人脸图像共用相同的CNN权重进行特征提取。由于每次输入多张人脸图像增加了模型的复杂度和参数量,为避免训练时出现内存溢出的问题,最终n设置为10,并且为扩增训练数据强化模型学习,同一个视频中的子视频段与前后视频段有5帧的重合。如图2所示,CNN部分输出为长度4 096的特征向量,则第1层LSTM输入数据维度为(10,4 096)。

图4 端到端增强特征神经网络模型

针对LSTM网络部分,对单层和双层LSTM进行实验比对,发现在本数据集上双层的效果更好。同时,对比了多组LSTM层的输出长度,最终设定LSTM输出长度为2 048。对于3层及以上的LSTM模型效果,由于本实验室深度学习主机的硬件水平有限,故暂未验证其有效性。

作为端到端模型,VGG-16连接双层LSTM使得网络加深,而神经网络的加深会导致信息的损耗等问题。著名的ResNet[21]网络在神经网络中增加直连通道在一定程度上解决了信息损耗的问题。本文据此提出了增强特征的方法,把CNN模型提取的人脸特征再次传输到第2层LSTM(如图4所示),以保证人脸特征信息的完整性,与第1层LSTM的输出融合再次通过LSTM层进行特征精炼。实验结果证明了该方法的可行性。

3 实验分析

3.1 实验条件

实验硬件设备为搭载2块1080TiGPU的深度学习主机,Ubuntu 16.04 Linux系统,CNN-LSTM模型使用基于Tensorflow的Keras平台搭建训练。VGG-16模型预加载VGG-16-FACE权重。训练数据取自AFEW数据集提供的视频帧人脸图像,由于该数据集源自Emotiw竞赛,其中的测试集视频并没有对应的表情标签,所以训练过程中把训练集按照8:2分为训练集和验证集,把验证集作为实验的测试集。

3.2 实验样本分析

图5中展示了AFEW数据集的复杂性和多样性。第1行是AFEW数据集中人物面部特征较为清晰连贯的人脸图像,与CK+等拍摄自环境可控的实验室的数据集样本类似。但AFEW数据集取材自接近无约束现实场景的影视资源,视频中的人脸存在着不同的旋转角度、由运动造成的模糊、光照下的阴影或过曝、摄影手法产生的模糊、各种遮挡等,而且影视剧中人脸表情也更加自然多样,如图6中的第2~3行。复杂多样的实验样本增加了提取人脸特征的难度,也使得模型的学习速度大大降低。同时,训练集包含了773个视频片段,相对于深度网络中的巨量参数,训练模型时需要关注过拟合的问题。本模型中主要使用丢失层(dropout layer),加载预训练权重且只训练全连接层和LSTM层权重。

图5 AFEW数据集的复杂性和多样性

3.3 实验结果

3.3.1评分标准

F1评分是分类问题的一个衡量标准,常用于多分类问题的竞赛。它是精确率(precision)和召回率(recall)的调和平均数,最大为1,最小为0。

(9)

(10)

(11)

其中:TP(true positive)为预测正确的个数;FP(false positive)为把其他类错误预测为本类的个数;FN(false negative)为本类预测错误的个数。

准确率(accuray)也是一种常用的分类评判标准:

(12)

其中TN(true negative)为其他类预测正确的个数。

3.3.2VGG-16与LSTM独立训练

实验中VGG-16与LSTM独立训练。VGG-16独立训练时,预加载VGG-16-FACE模型权重,在图2模型尾部加上softmax层进行最后的分类,每一帧图片的表情标签与视频的标签相同。训练完成后,去除最后1层softmax层,以第2个全连接层输出作为LSTM输入,在LSTM模型中继续训练。考虑到数据集样本数量不大,训练LSTM模型时,每10帧作为一个小片段,即前文图4中所说的n设为10,步长为5向后依次取10帧作为输入。LSTM模块训练完成后,按照训练时的顺序,依次把验证集数据送入VGG-16和LSTM模型,由LSTM给出测试结果。

表1为独立训练时对LSTM调整的各个模型的测试结果,其中VGG-16未做调整,前2个模型为1层LSTM,且LSTM层输出分别为长度3 000、2 048的特征向量。根据实验结果,两层LSTM层比单层效果更好,且在准确率相差不大的情况下,VGG-16-LSTM(2 048,2 048)模型效果最佳。此时,并没有图5中的增强特征部分。

表1 VGG与LSTM独立训练最终结果

3.3.3端到端VGG-16-LSTM模型

如图4所示,在独立训练CNN-LSTM模型的基础上先后搭建端到端和端到端增强特征的模型进行比对。训练时以10帧连续面部图像为单位,固定LSTM模块部分为2层LSTM(2 048,2 048)。

为了验证端到端增强特征的有效性,将本文算法与ELRCN进行比较,实验结果如表2所示。表2中,第1~2行为ELRCN在双层模型上得到的2条最优结果,第3行为端到端未加增强特征的结果,第4行为端到端增强特征模型的结果。由此可见,本文提出的端到端的模型效果明显,准确率介于ELRCN模型2次最优结果之间,但F1分数均高于ELRCN模型,端到端增强模型的F1分数高于ELRCN两个模型,分别为0.02和0.069。对比表1中非端到端的最终结果,端到端和端到端增强特征也有着明显的提升。最终预测结果的混淆矩阵如表3所示。

表2 端到端VGG-16-LSTM模型优化结果

表3 增强端到端模型在测试集上的预测结果

4 结束语

本文提出一种视频人脸表情识别的模型,将VGG-16和LSTM连接组合对AFEW数据集中连续视频帧的人物进行表情识别,并尝试多种组合方式提升识别准确率,比较其在测试集上的F1分数和准确率,证明了双层LSTM和增强特征的可行性。由于本数据集不同于常用的实验室采集的数据集,存在较多遮挡、光线、面部角度等因素干扰,甚至数据集提供的剪切人脸图像存在部分误剪(非人脸及脸部不完整),因此今后的工作将会在人脸识别和数据预处理的基础上继续优化模型,以得到更好的视频表情识别模型。

猜你喜欢

人脸卷积神经网络
基于3D-Winograd的快速卷积算法设计及FPGA实现
有特点的人脸
一起学画人脸
卷积神经网络的分析与设计
神经网络抑制无线通信干扰探究
从滤波器理解卷积
基于神经网络的中小学生情感分析
三国漫——人脸解锁
基于傅里叶域卷积表示的目标跟踪算法
基于神经网络的拉矫机控制模型建立