动态多阶段强波动型表情识别模型
2021-11-01欧阳勇陈凌钰曾雅文王春枝
欧阳勇,陈凌钰,曾雅文,万 俊,王春枝
(1.湖北工业大学 计算机学院,湖北 武汉 430068; 2.深圳大学 计算机与软件学院,广东 深圳 518060)
0 引 言
调查顾客在活动场所的满意度对提升行业效益非常重要[1]。然而调查问卷等方式可能使样本及分析过程无效,故寻求合适的调查方式是必要的。
表情识别应用广泛[2],这为服务行业获取顾客心情状态提供新思路:直接利用视频识别人物的情绪。在传统方法中,有频率特征提取法[3]将图像从空域转到频率域、光流法记录人脸位置的变化并携带有关运动特征。但这些方法中的低维特征难以涉及原始数据的深层语义。近些年,递归神经网络(RNN)或卷积神经网络(CNN)开始被用于捕捉表情的动态变化,如MRCNN[4]、LSTM视频编码[5]等。
然而,上述研究方法只单方面侧重于短期静态表情[3,4]或长期历史表情行为[5],容易忽略人物在活动中表情发生的强波动性变化。强波动型表情是因人物的情感在一段时间内发生多次转变而出现明显波动的面部特征。如图1所示,某游客在博物馆等处,参观展物时思考到新信息,会呈现“无趣->惊讶->开心”等表情变化,此时不能通过单一的表情去判断心情。
图1 强波动型表情时刻
为解决上述挑战,本文提出一种动态多阶段强波动型表情识别模型,该模型基于平行共同注意力并结合长期情绪波动状态和近短期静态表情特征(long-term emotional fluctuations and near-short-term static expressions based on parallel Co-attention),简称LnsCo。本文的贡献概括为:
(1)提出基于双向长短期记忆结构(BiLSTM)的NsSE模块结合上下文信息去推理人物的近短期面部表情。并利用基于多层感知机(MLP)的LEF模块捕捉长期情绪的波动;
(2)提出平行共同注意力网络(Co-attention network)融合两大模块以学习长期和短期情绪相互依赖的表征;
(3)在公共数据集和真正场景下的实验验证LNsCo在强波动型表情识别的任务上具有优异的性能。
1 相关工作
长短期记忆网络。RNN(循环神经网络)是一类专门用于处理时序数据的神经网络,适用于图像序列的处理。但RNN能存储的上下文信息范围有限,模型中后面节点对之前节点的感知力下降,网络的作用随层数的递增而衰退。长短期记忆网络(LSTM)是由Sarasi等[6]通过解决RNN结构中梯度消失或爆炸等问题得到的改良结构,利用门结构保存长期依赖中重要的信息。LSTM非常适合从经验中学习时间序列以进行分类和预测等任务。Ryo等[7]提出增强卷积LSTM算法,在空间和时间上向传统的卷积LSTM添加跳跃连接以抑制梯度消失并能使用很久之前的信息,提高表情识别率。
注意力与自注意力机制。注意力机制[8]成为神经网络的重要组成部分,在图像分类、统计学习等领域大量应用,它通过为序列中的每个元素分配不同的权重来保留高度相关的元素。ACNN[9]利用注意力机制聚焦于最具辨识的未遮挡区域,并通过门单元根据区域本身的通畅性和重要性计算自适应的权值。与注意力不同,自注意力考虑了序列的内在联系,因此可以学习序列元素之间的内部依赖性。Li等[10]利用自注意力层学习不同面部运动单元之间的相关性,再使用鉴别器来预测生成图像的相对真实性,并为更多细节恢复提供强有力的监督,在表情识别中有良好的性能。
2 本文的方法
对于强波动型表情识别,其关键是能通过长期的情绪波动推断出人物在该段时间的整体情感变化规律,挖掘情感变化之间的联系与相互依赖,估计近短期表情特征,然后通过长期历史表情行为与近短期表情特征建立相互依赖关系,表征融合后再利用Softmax分类器进行表情分类。本文提出的LNsCo模型包含3个主要组件:近短期表情特征生成器(NsSE)、长期情绪波动状态生成器(LEF)以及具有短期和长期阶段表情特征的平行共同注意力网络,如图2所示。3个组件联合训练,特征融合后给出强波动型表情识别的预测分数。本文的LNsCo模型用于分析人物在一段时间内发生强波动性表情变化的整体情感倾向,通过指定帧数的图像序列获取特征信息进行分类。首先描述使用的符号,然后详细说明LNsCo中的3个组件。
图2 LNsCo模型结构
2.1 LNsCo的问题公式和符号
图3是本文算法的主要流程图,随机选取一个5帧的图像序列详细表示,将若干此类型指定帧数的序列输入到LNsCo模型中进行监督训练。
图3 强波动型表情识别算法流程
本文中的图像序列是通过选取某服务场所,在视频中按照跳跃滑动窗口的方式采集指定帧数顾客的表情图像,利用该自制数据集训练出能够综合预测强波动型表情的整体情感倾向类别的LNsCo模型。
设帧数大小为m,有N个图像序列,用Hs={T1,T2,T3,…,Tm}表示一段时间内采集某人s的面部强波动型表情的m张图像,同时m与时刻t一一对应,本文面部表情数据库表示为H。依据Ekman等[11]定义的6种基本面部表情:生气(Anger)、厌恶(Disgust)、恐惧(Fear)、高兴(Happy)、悲伤(Sad)和惊讶(Surprise),同时考虑到日常生活中人们显示面无表情(Neutral)比厌恶(Disgust)的概率大,故定义自制数据库的标签label={angry、fear、happy、sad、surprise、neutral}使LNsCo进行有监督训练。处理帧数为m的图像序列时,经过预训练提取的特征向量可表示为V。如下Hm表示为序列帧数为m的N个图像序列,VM表示某一图像序列经过预训练后提取的特征编码
Hm=[H1,H2,H3,…,HN-1,HN]T
(1)
VM=[v1,v2,v3,…,vm-1,vm]T
(2)
本文的预训练层如图4所示,首先利用多任务卷积神经网络(MTCNN)对图像序列进行人脸检测、对齐并切分,再输到VGG16编码器中提取深层语义信息。
图4 预训练层结构
2.2 近短期表情特征生成器(NsSE)
近短期的代表性静态表情是指当下整体倾向的心情状态通过此人最近的面部行为来体现。短期表情倾向于显示人物接下来的情感状态,为了更好识别结果,对近期的面部行为进行细腻度的分析是至关重要的。人物的表情变化过程可以帮助探索表情间的结构关系,以此作为先验知识来预测人物在此段时间整体情感趋向。由于不同的表情可能意味着近短期将要显现的面部表情不同,因此在生成人物的近短期面部表情特征时,会考虑当前一段时间中的所有面部行为。
如图5所示,本文将利用基于注意力机制的双向长短期记忆网络(BiLSTM-Attention)对人物的表情变化过程进行建模,将每张面部表情特征作为上下文特性。为简单起见,将LSTM的更新过程表示如下
ht=LSTM(vt,ht-1)
(3)
其中,vt表示预训练层提取的抽象表情特征作为单位输入,ht表示第t时刻的输出状态。图像序列每帧之间都有结构联系并且相互依赖,为使LNsCo模型中的节点能够得到过去和未来的信息,通过上下文特性的双重因素得到输出,本文利用BiLSTM结构在正反两个方向对图像序列进行建模分析
(4)
(5)
结合LSTMfw和LSTMbw的BiLSTM可有效地获取双向的上下文信息,挖掘出更多的隐藏特征,但此时涉及到另一个非常关键的问题:如何平衡这些图像的重要性。如同了解一段文字的主旨就需抓住其中心句,预测人物的整体情感倾向需加以利用具有代表性的短期面部表情,重点对待关键帧,从而提高模型性能。因此,引入注意力机制相关的数学计算公式如下
(6)
(7)
(8)
由于每个隐藏状态都包含人物在当前活动中的情感趋向信息,因此本文使用一系列隐状态Us={hs,1,hs,2,hs,3,…,hs,T}来表示人物s的近短期面部表情特征,其中Us∈D×T,D是Us中每个隐藏状态的维数。将在2.4节中通过平行共同注意力网络探讨人物在这些隐藏状态中的情感趋向变化。
图5 近短期表情特征生成器结构
2.3 长期情绪波动状态生成器(LEF)
长期的情绪波动涉及人们隐藏在整个历史行为中的心理意识及性格特征,学习隐藏在表情序列中人的静态性格特征及习惯,并通过其情绪波动预测心情。正如上面所讨论的,在通过人物的历史行为探索人物的长期情绪波动变化时,保留具有可描述人物情感状态的面部表情行为。本文将每个人物表情序列从预训练层提取出的低维密集特征Vhistory=[v1,v2,v3,…,vm-1,vm]T通过多层感知机(MLP)生成对应的隐藏状态
z1,i=∅(W1vi+b1)z2,i=∅(W2z1,i+b2)…zN,i=tanh(WNzN-1,i+bN)Xi=zN,i
(9)
其中,Wn,bn和∅代表第n层的权重矩阵、偏置向量和激活函数。使用ReLU作为激活函数,因为它已被证明比其它函数更具表达力,并可有效地解决梯度消失问题。N表示MLP所用层数,最后一层的输出Xi是第i张表情图像的隐藏表示,应用图像序列的隐藏形式形成集合Ul={X1,X2,X3,…XM}来表示人物原始的情绪波动状态及性格特征,其中Ul∈D×M。使用MLP网络是因为它具有非线性建模功能,该功能已在许多神经协同过滤工作中得到应用,并显示出可靠的性能。
2.4 平行共同注意力网络(Co-attention network)
在分析一段时间内发生强波动性表情变化的人物整体情感倾向时,结合其近短期表情特征和长期情绪波动状态是有益的。然而,传统方法将这两阶段所隐藏的情感信息视为独立的,从而忽略它们之间的(潜在)相互依存关系。
此外,传统的注意力机制会分别为人物的历史面部表情行为和近短期表情特征分配权重。本文认为,长期情绪波动过程和近短期静态面部表情可以在计算每帧表情图像的重要性时相互提供背景。因此,受到Hierarchical Co-Attention Model[12]解决VQA问题的启发,该模型提出Co-Attention来引起视觉和问题共同注意机制,使模型在图像和问题之间具有自然的对称性,即图像表示可用于引导问题注意而问题表示用于引导图像注意,从而提高模型的精度。因此本文引入一个平行共同注意力网络来探索人物的长期情绪波动过程和近短期表情特征之间的相关性。
本文通过计算所有成对的长期情绪波动状态和近短期表情的隐藏特征之间的相似度,来连接长期阶段和短期阶段的面部行为的表性特征。在生成长期的情绪波动状态Ul∈D×M和近短期表情特征Us∈D×T之后,将它们用作平行共同注意力网络的输入,并计算相似度矩阵C∈M×T
C=tanh(UlWbUs)
(10)
其中,Wb∈D×D包含权重,在计算相似度矩阵之后,利用它将近短期表情注意空间转换为长期情绪波动注意空间,公式如下
Hl=tanh(WlUl+(WsUs)CT)
(11)
αl=softmax(ωhlTHl)
(12)
相反得到
Hs=tanh(WsUs+(WlUl)C)
(13)
αs=softmax(ωhsTHs)
(14)
其中Wl,Ws∈K×D,ωhl,ωhs∈K是权重参数,αl∈M和αs∈T分别是表情特征在长期情绪波动过程中和近短期面部行为中的注意概率。根据注意力权重,可以将人物的长期情绪波动状态和近短期面部表情特征的相互依存关系表示为通过加权总和取得注意力向量
(15)
(16)
本文基于平行共同注意的长期情绪波动状态和近短期静态表情特征来预测一段时间内人物的强波动型表情变化的情感倾向类别,然后利用全连接层融合注意力特征,再使用Softmax分类器得到识别结果的概率
(17)
其中,Wu和Wg是权重参数,p是本文LNsCo模型输出向量,表示该人物整体情感倾向类别的概率。本文实验使用交叉熵损失函数,公式如下
(18)
其中,label是样本数据的真实标签,模型利用Adam算法优化参数,采用具有固定时间步长的时间反向传播(BPTT)方法来训练基于式(18)的LNsCo模型。
3 实验结果
本文的实验环境为Windows 10系统(GPU 1050Ti,2.65 GHz,运行内存8 GB),利用Pytorch深度学习框架,Python 3.7版本。
为了验证算法的鲁棒性和有效性,本文在公共数据库JAFFE和真实场景下进行实验。本文实验部分主要在不同数据库、不同模型、追踪测试等多方面进行。通过对比各种先进方法的实验结果,本文方法得到充分的验证,在不同的数据库上都表现出非常好的性能。
3.1 实验数据库
JAFFE数据库:由10个日本女性组成表情图像集,训练数据挑选了10个人不同的表情图像。包括7种表情,每种人脸表情有3至4幅图像,每幅图像的像素为256×256。先对人脸表情进行剪切预处理,得到人脸关键点部分,然后归一化为48×48像素大小的图像。为验证LNsCo模型在真实场景下的效果,本文自制了MuseumDS和ExhibithDS数据集。
MuseumDS:MuseumDS是在某真实博物馆中采集的数据。记录游客的强波动型表情变化,并由游客调查问卷决定数据标签。表情的标签为label={angry, fear, happy, sad, surprise, neutral},共得到数据量为20 260张图像的MuseumDS数据集。
ExhibithDS:ExhibithDS是在某真实学校展厅中采集的数据,其采集方式与MuseumDS相同,总共有11 625张图像,是个较小的数据集。做模型相关实验时采用MuseumDS数据集。
MuseumDS和ExhibithDS详细数据信息见表1,图6所示为从ExhibithDS的5帧数据集中取出的某一图像序列,其真实标签为angry(生气)。
图6 ExhibithDS数据集举例(5帧,Label:angry)
表1 自制数据集信息
以上图像序列是通过滑动窗口对记录游客表情变化的视频按照一定时长跳跃切分的,为进一步扩大数据量并探究利用滑动窗口追踪表情从而预测情感倾向的最佳帧数,将视频数据切分成5、10、15帧不同大小的数据集{H1、H2、H3},并按照调查问卷的结果决定整体情感倾向的标签。对于{H1、H2、H3},在实验过程中80%为训练集,20%为测试集。
图6(a)~图6(e)的人物表情有生气->(勉强)微笑->中立->生气的过程,从调查问卷获悉该段时间总体情感为生气。
3.2 不同网络模型的对比分析
为了说明LNsCo模型对强波动型表情识别的有效性,与同类型的算法进行比较。表2利用本文自制的MuseumDS数据库进行实验,其中列出基于深度神经网络(DCNN)、自适应增强算法(AdaBoost)、循环神经网络(RNN)等算法的实验结果,上述方法近年来已经在较大的数据库上得到良好表现,尤其在真实环境下准确度有超过其它算法的表现。实验过程中分别使用帧数为5、10、15这3类的图像序列对LNsCo模型进行训练和测试,采用Recall评价指标。
从表2的实验结果可看出,本文LNsCo模型在MuseumDS的10帧序列中取得最佳效果78.9%,和较近的基于LSTM的68.3%相差接近10%,而与效果最差的53.2%相差20%左右,同时,5帧、15帧的实验效果与之一致。从DCNN等卷积网络模型可看出,处理强波动型表情识别需要可以处理时间序列的结构来挖掘表情间的结构联系和依赖,从而推断出近短期面部表情特征。从表2后续RNN等算法可看出,研究人物长期的历史面部行为必不可缺,故本文的长期情绪波动状态生成器(LEF)和近短期面部表情特征生成器(NsSE)具有优越性。
表2 模型性能对比(MuseumDS)
表3是基于JAFFE展开的实验结果,其中DCNN、LSTM和本文LNsCo模型都具有较好的性能表现,从而侧面体现本文模型在自制数据库和公共数据库的有效性。实验中,在利用Adaboost后选择logistic或者RandomForest作为分类器,其效果明显不如神经网络方法,计算复杂同时特征提取方法需要改善。数据的预处理阶段对分类结果很重要,本文利用多任务级联卷积网络(MTCNN)和VGG减少了表情图像的冗余信息区域,降低计算量。
表3 模型性能对比(JAFFE)
3.3 参数设置
3.3.1 适合强波动型表情识别的最优帧数
为得到最好的分类效果,需得知LNsCo预测时所需要的最优帧数,即观察人物表情的长期强波动变化过程的有限时长,因此进行本组实验。首先选择帧数为5的表情数据库按批次送入模型中进行训练;然后依次用帧数为10以及15的数据库进行训练,选用评价指标Recall@3 进行分析。
据表4可知,帧数为10时模型效果最佳。5帧的效果相比之下分类结果最差,可能由于帧数太少时并不能对复杂的心理活动建模,图像序列无法代表人们反映出的生理过程;而15帧数据可能会造成大量冗余信息,训练模型时耗时耗量,无关信息会对最后的预测结果造成干扰。故10帧为最优帧数,说明人的强波动型表情是存在于有限时间内的动态过程,证实观察人们的过程必须用滑动窗口跳跃追踪的假设。
表4 最优帧数模型结果对比
3.3.2 NsSE模块训练与参数调优
本组实验用于评估NsSE模块中隐藏层神经元个数、学习率、失活率(Dropout)等超参数对NsSE模块训练的影响,结果对比如图7所示。
图7 NsSE模块的参数调优实验
为验证NsSE模块的有效性,本节进行调参实验。实验结果表明,隐含层神经元数目过小,网络缺乏必要的学习能力;当其超过一定数目时,评价指标下降,此时增加了NsSE网络结构的复杂性。当隐含层神经元个数为100,分类准确率最高;由实验结果可知当层数为2时分类效果最好,这是因为隐含层的层数需适中,过多反而会造成网络结构复杂,性能下降;失活率(Dropout)在0.1时效果最好,该参数越大则学习能力越弱;学习率在0.1或0.2取得最好的效果。
通过以上的实验可得NsSE模块中所有需手动设定的参数在分类效果最好时的取值,方便模块在测试时取得最优结果,最优参数中隐藏层数取2,失活率取0.1,隐藏神经元个数取100,学习率为0.002。
3.4 针对游客的表情状态测试
为验证LNsCo在实践中的可行性,本文对模型进行分析与测试。随机选取游客在参观博物馆时的5帧图像序列输到LNsCo中,图8上图展示真实的表情图像,图8下图为情感分析图,其中追踪图像中图标的颜色是注意力机制的可视化结果。
图8 追踪游客图像及情感分析
图8的追踪游客图像中,图标的颜色深浅代表在长期情绪波动过程中NsSE模块的Attention机制分配权重的大小,图标颜色越深则代表该张图像对分类决策越重要,权重系数越大。其中“图8(e)”颜色最深,说明其权重参数最大,与表情分类结果高度相关。图8的情感分析图代表LNsCo模型的输出结果中各表情类别的概率,其中happy概率最大,说明LNsCo模型分类结果为高兴,而游客的真实主观感受为高兴(happy),与LNsCo模型的分类结果一致,由此看出LNsCo模型的可靠性。通过这5帧图像序列综合判断游客此段时间的情感,验证LNsCo模型能很好地完成动态识别强波动型表情即情感预测任务。
分析上述结果的原因在于:①训练数据由于跳跃滑动窗口的时空动态性,使图像序列客观地代表游客心情变化的强波动性过程;②LNsCo模型的NsSE模块中的BiLSTM可通过保存具有长期依赖关系的信息,探索数据的时间序列结构特征及深层语义信息,Attention机制使NsSE聚焦在关键帧,忽略冗余帧,从而得到近短期静态表情特征;③LNsCo模型的LEF模块挖掘了长期历史面部表情特征,寻找到人物的性格特征及心理变化规律;④Co-attention网络使成对长期阶段的波动状态特征和短期阶段的面部表情特征之间建立相互依赖,提高模型分类结果的精度。
4 结束语
本文提出的将长期情绪波动状态和近短期表情特征结合平行共同注意力机制建立相互依赖的强波动型表情识别方法,在真实环境和准确率上有一定的优越性:
(1)采用长期情绪波动状态生成器(LEF)通过历史面部表情行为推断隐藏在表情背后的人物性格特征和该时间段的心情规律,有益于预测人物的整体情感倾向;近短期面部表情特征生成器(NsSE)通过序列结构挖掘各表情之间的结构关系和深层语义信息,结合上下文经验及注意力机制筛选关键帧,推理出近短期静态表情特征;
(2)平行共同注意力网络探索人物的长期情绪波动状态和近短期静态表情特征之间的相关性,二者之间的结合提高模型精度。
虽然在JAFFE数据库和自制数据库的实验结果表明,本文提出的算法识别率有较大优势,但还有提高的空间。找到更有效的特征提取方法是今后研究的方向。