0引言人脸表情在人际交往中是不可忽视的重要信息载体,表情使人与人之间的沟通更加自然。人脸表情识别技术的进步促进着人机交互技术的发展。如何提升人脸表情识别性能是智慧医疗、聊天机器人和学生专注度监测等人机交互系统中一个重要的热点研究课题。目前已有的人脸表情识别技术(李珊和邓伟洪,2020)可以分为基于静态图像的表情识别和基于动态视频序列图像的表情识别两类。基于静态图像表情识别的方法大多考虑如何提取有效的空间特征(王善敏等,2020)以及通过注意力机制关注各局部区域关键信息(Li等,2019)和互相关性(Li等,2020)来提高模型的识别性能。刘帅师等人(2011)采用Gabor滤波器从图像中提取不同尺度的多方向特征,再将多个多方向Gabor特征进行融合,并分块计算每块的直方图用于人脸表情识别。相比于静态图像,视频序列是由若干帧静态图像组成的,并且每帧图像的人脸表情强度具有一定的差异。因此,基于视频序列的人脸表情识别方法不仅要考虑每帧人脸表情图像的空间维度信息,还要关注视频序列包含的时间维度信息以及每帧图像对于整个视频表情识别的重要性的不同。在当前短视频流行背景下,视频包含的人脸表情信息相比静态图像更加丰富,视频序列的人脸表情识别比静态图像更具有挑战性。De Silva和Ng(2000)对每个视频序列特征采用一对速度和位移特征向量表示,并采用光流算法(Anandan,1989)跟踪视频序列中的特征运动,实现了基于视频序列的表情识别。为了从每帧图像中提取有效的人脸表情特征,付晓峰等人(2015)对局部二值模式(local binary pattern,LBP)进行方向编码,形成局部方向角模式(local oriented pattern,LOP),再扩展到3维空间,提出时空局部方向角模式,以提取视频的全局表示特征进行视频人脸表情识别。然而,上述方法采用的手工特征是低层次的,可靠性不够,导致训练出的模型泛化能力不强。随着深度学习技术的发展,提出了一系列可用于提取视频人脸表情特征的深度神经网络,代表性的有卷积神经网络(convolutional neural network, CNN)(李彦冬等,2016)和长短时记忆网络(long short-term memory network,LSTM)(Sun等,2016)。王晓华等人(2020)采用堆叠LSTM的方式学习视频序列数据的分层表示,使用注意力机制进行相应的权重分配,构建出有效的情感层次特征表示,提高了模型的识别准确率。Hu等人(2019)提出一个基于级联的局部增强运动历史图像(Ahad等,2012)和CNN-LSTM网络集成结构的视频表情识别方法。其中,CNN用于提取每帧图像的空间特征,LSTM用于学习视频图像帧之间的时间维度信息表示。该集成框架用于提取视频人脸表情的全局特征,较大程度地改善了识别模型的性能。Fan等人(2016)提出一个混合网络框架,分别采用循环神经网络(recurrent neural network,RNN)和3D卷积神经网络对外观和运动信息进行编码。其中RNN的输入为CNN从每帧图像学习到的特征,然后将RNN和3D卷积神经网络输出的特征进行级联,用于实现视频情感分类。现有基于深度学习方法的视频表情识别模型大多具有较强的特征提取能力,同时也考虑了视频序列的时间维度信息,但很少关注视频序列中每帧图像对视频表情识别的重要性。对此,以自注意力机制(self-attention)为核心的Transformer(Bahdanau等,2016;Brown等,2020;Dosovitskiy等,2021)方法提出了解决方案。Transformer模型将注意力机制作为编解码器的核心执行翻译操作,并成功应用于自然语言处理领域,取得了很好的机器翻译性能。Dosovitskiy等人(2021)提出一个视觉Transformer模型,将处理文本序列的Transformer模型成功应用在图像识别领域,取得了不错的图像识别性能。考虑到Transformer强大的注意力特征的学习能力,本文提出一种基于Transformer的视频表情识别方法。首先采用在ImageNet数据集(Deng等,2009)预训练好的深度残差网络(residual network,ResNet)学习出视频片段序列中每帧图像的人脸表情特征,并将其作为后续LSTM模块和Transformer模块的输入。然后将LSTM学习到的时间维度特征和Transformer输出的注意力特征进行级联,构建出一个视频片段注意力特征,输入到softmax层,得到每个片段的分类分数值。最后将一个视频中所有片段的表情分类分数值(classification scores)进行最大池化,得到视频样本的表情类别。该方法融合Transformer机制对视频序列中的每帧表情图像进行加权特征学习,学习出不同帧图像对视频表情识别的作用力差异性,提取到判别力强的视频表情注意力特征。在两个公开视频表情数据集BAUM-1s(Bahcesehir University multimodal)(Zhalehpour等,2017)和RML(Ryerson Multimedia Lab)(Wang等,2012)的实验结果表明,本文方法能取得较好的识别准确率。1本文方法本文提出的端到端的CNN+LSTM+Transformer的视频人脸表情识别模型结构如图 1所示,具体包括以下步骤:1)片段空间特征提取。将视频分成若干包含16帧的片段,通过深度残差网络学习出一个片段特征$ \boldsymbol{G} \in {\bf{R}}^{N \times d}$并进行归一化处理。2)片段时间维度特征提取。将视频片段特征输入到LSTM模块中,学习出视频片段的时间维度特征信息$ \boldsymbol{e} \in {\bf{R}}^{1 \times d}$。3)片段帧注意力特征提取。将视频片段特征输入到Transformer模块中,学习得到一个片段帧注意力特征$ \boldsymbol{Z}_{\rm{class}} \in {\bf{R}}^{1 \times d}$。4)视频表情分类。将时间维度特征和帧注意力特征进行级联后,输入到全连接层中,输出一个1×6维的片段分类分数值,然后采用最大池化操作,输出视频人脸表情的类别。 图1 CNN+LSTM+Transformer模型框架示意图 Schematic diagram of CNN+LSTM+Transformer model frameworkFig 1综上所述,本文方法不仅考虑了视频中每帧图像的空间特征,还考虑了时间维度特征。根据视频序列每帧图像中人脸表情强度的差异性,提出采用Transformer提取片段帧注意力特征,提高了模型的表情识别率。此外,采用交叉熵损失函数以端到端的方式训练情感识别模型,有助于模型学习到更有效的人脸表情特征。该损失函数定义为1 $\min \gamma\left(P\left(x_i\right), y_i\right)=-\sum\limits_x\left(P\left(x_i\right) \log y_i\right)$式中,$ x_i$表示输入的第$ i$个片段序列;$ y_i$表示第$ i$个片段的表情标签;$ P(x_i)$表示模型预测值。1.1片段空间特征提取为了有效提取视频片段中每帧的特征,采用在ImageNet数据集上预训练好的ResNet-18提取每帧图像的人脸表情特征。给定一个视频的帧为$ {\mathit{\boldsymbol{s}}_i} \in {{{\bf{R}}}^{N \times W \times 3}}$,其中,$ H$和$ W$分别为每帧图像的高和宽,生成的特征为$ {\mathit{\boldsymbol{G}}_i} \in {{{\bf{R}}}^{1 \times d}}$,其中,$ d$=1 024为片段特征的维度,残差网络表示为$ E(\cdot)$, 特征学习表示过程为2 $\boldsymbol{G}_i=E\left(\boldsymbol{W}_{\text {Resnet }}, \boldsymbol{s}_i\right), \quad i \in[1, N]$式中,$ \boldsymbol{W}_{\text {Resnet }}$为残差网络的可学习权重参数;$ N$=16为片段包含的帧数;后文的$ N$和$ d$表示同一个含义。这样,每帧图像生成的特征是1 024维,一个片段含有16帧图像,因此,一个片段特征$ \boldsymbol{G}$的维度为16×1 024维。1.2片段时间维度特征提取相比于静态的图像,视频片段中的时间维度特征信息有助于视频表情分类。因此,将LSTM网络用于视频片段中帧与帧之间的时间动态信息建模,以学习出视频片段的时间维度特征信息。给定输入一个视频片段图像序列$ \boldsymbol{N}\left(\boldsymbol{G}_1, \boldsymbol{G}_2, \cdots, \boldsymbol{G}_N\right)$,时间步长$ t \in[1, N]$,LSTM中的细胞(cell)单元处理序列数据过程为3 $\boldsymbol{I}_t=f_{\text {sigmoid }}\left(\boldsymbol{W}_I\left[\boldsymbol{G}_t, \boldsymbol{H}_{t-1}, \boldsymbol{C}_{t-1}\right]+b_I\right)$4 $\boldsymbol{F}_t=f_{\text {sigmoid }}\left(\boldsymbol{W}_F\left[\boldsymbol{G}_t, \boldsymbol{H}_{t-1}, \boldsymbol{C}_{t-1}\right]+b_F\right)$5 $\boldsymbol{O}_t=f_{\text {sigmoid }}\left(\boldsymbol{W}_o\left[\boldsymbol{G}_t, \boldsymbol{H}_{t-1}, \boldsymbol{C}_{t-1}\right]+b_O\right)$6 $\boldsymbol{C}_t=\boldsymbol{F}_t \boldsymbol{C}_{t-1}+\boldsymbol{I}_t \tanh \left(\boldsymbol{W}_C\left[\boldsymbol{G}_t, \boldsymbol{H}_{t-1}\right]+b_C\right)$7 $\boldsymbol{H}_t=\boldsymbol{O}_t \tanh \left(\boldsymbol{C}_t\right)$式中,$ {\mathit{\boldsymbol{I}}_t}$, $ {\mathit{\boldsymbol{F}}_t}$和$ {\mathit{\boldsymbol{O}}_t}$分别表示LSTM单元中的输入门、遗忘门和输出门。$ {\mathit{\boldsymbol{G}}_t}$表示当前LSTM单元当前时刻的输入;$ {\mathit{\boldsymbol{H}}_{t-1}}$和$ {\mathit{\boldsymbol{H}}_t}$分别表示LSTM单元的上个时刻和当前时刻的隐藏状态;$ {\mathit{\boldsymbol{C}}_{t-1}}$和$ {\mathit{\boldsymbol{C}}_t}$分别表示上个时刻和当前时刻的输出状态。$ \mathit{\boldsymbol{W}}$和$ b$表示可学习的门权重参数和偏置项(下标表示对应的门);sigmoid和tanh表示sigmoid激活函数和tanh函数。给定输入序列$ \mathit{\boldsymbol{G}}$,将其输入到LSTM网络,相应的学习过程为8 $\boldsymbol{e}=L\left(\boldsymbol{W}_{\text {LSTM }}, \boldsymbol{G}\right)$式中,时间维度特征$ \boldsymbol{e} \in {\bf{R}}^{1 \times d}$由函数$ L(\cdot)$计算得到;$ \boldsymbol{W}_{\text {LSTM }}$为LSTM的可学习网络权重参数。考虑到LSTM的输入是$ N \times d$维的片段特征,所以选择1层结构的LSTM就可以提取出相关的时间维度特征信息。1.3片段帧注意力特征提取1.3.1位置嵌入编码相比LSTM网络结构自身存在输入的位置信息,Transformer无法主动为片段中的每帧图像添加相应的位置信息。因此,本文采用位置嵌入(position embedding)编码方法为输入的每帧图像特征添加对应的位置信息。给定片段特征$ \boldsymbol{G} \in {\bf{R}}^{N \times d}$,随机生成一个位置矩阵$ \boldsymbol{M} \in {\bf{R}}^{N \times d}$,具体的位置编码过程为9 $\boldsymbol{X}_{i, j}=\boldsymbol{G}_{i, j} \oplus \boldsymbol{M}_{i, j}$式中,$ i \in[1, N], j \in[1, d]$;位置矩阵$ \boldsymbol{M}_{i, j}$随训练过程更新;$ \boldsymbol{X} \in {\bf{R}}^{N \times d}$为带有位置信息的片段特征;$ \oplus$代表按元素相加。1.3.2Transformer模块设计Transformer模块的网络结构如图 2所示。本文方法采用类似Dosovitskiy等人(2021)方法中的Transformer模块。该模块主要由1个线性映射层,1个可迭代的MHA(multi-head attention)层,1个由2个全连接层和2个GELU(Gaussian error linear unit)激活函数组成的多层感知器(multilayer perceptron, MLP),最后输出一个片段帧注意力特征$ {\mathit{\boldsymbol{Z}}_{\rm{class}}} \in {{{\bf{R}}}^{1\times d}}$,具体计算为10 $\boldsymbol{X}=C_{\text {concat }}^{(v)}\left(\boldsymbol{X}_{\text {class }}, \boldsymbol{X}_1, \cdots, \boldsymbol{X}_N\right)$11 $\boldsymbol{X}^l=M H A\left(L P\left(\boldsymbol{X}^{l-1}\right)\right)+\boldsymbol{X}^{l-1}, l \in[1, L]$ 12 $\boldsymbol{Z}_{\text {class }}=L N\left(M L P\left(\boldsymbol{X}^L(0)\right)+\boldsymbol{X}^L(0)\right)$ 图2 Transformer模块结构示意图 Schematic diagram of Transformer module structureFig 2式中,$ C_{\text {concat }}^{(v)}$表示沿竖直方向进行级联操作,$ MHA(\cdot)$表示多层注意力机制计算函数;$ LP(\cdot)$表示线性映射层;$ LN(\cdot)$表示层归一化;$ {\mathit{\boldsymbol{X}}}^{l-1}$和$ {\mathit{\boldsymbol{X}}}^{l}$表示上一层的注意力矩阵和当前层的注意力矩阵;当式(11)迭代$ L$次即可输出注意力矩阵$ {\mathit{\boldsymbol{X}}}^{L}$($ L$表示Transformer的层数),并将第1行的特征向量$ {\mathit{\boldsymbol{X}}}^{L}(0)$作为下一个MLP的输入,最后输出片段帧注意力特征$ {\mathit{\boldsymbol{Z}}}_{\text {class }}$。1.3.3多头注意力机制多头注意力机制(multi-head attention,MHA)最初主要用于处理文本序列数据,Dosovitskiy等人(2021)将其首次用于图像识别。受此启发,如图 3所示,本文将带有帧注意力特征$ {\mathit{\boldsymbol{X}}}_{\text {class }}$的片段特征$ \boldsymbol{X} \in {\bf{R}}^{(N+1) \times d}$沿水平方向分成$ z$个矩阵$ \boldsymbol{X}_i^{\prime} \in {\bf{R}}^{(N+1) \times\left(\frac{d}{z}\right)} $,即13 $\boldsymbol{X}=C_{\text {concat }}^{(h)}\left(\boldsymbol{X}_1^{\prime}, \boldsymbol{X}_2^{\prime}, \cdots, \boldsymbol{X}_z^{\prime}\right)$ 图3 多头注意力机制计算原理图 Multi-head attention mechanism calculation principle diagramFig 3式中,函数$ C_{\text {concat }}^{(h)}(\cdot)$表示沿水平方向进行级联操作,通过训练更新后的帧注意力特征表示为$ \boldsymbol{Z}_{\text {class }} \in {\bf{R}}^{1 \times d}$,计算为14 $\boldsymbol{Z}=C_{\text {concat }}^{(v)}\left(\boldsymbol{Z}_{\text {class }}, \boldsymbol{Z}_1, \cdots, \boldsymbol{Z}_N\right)$15 $\left\{\begin{array}{l}\boldsymbol{Q}_i=\boldsymbol{X}_i^{\prime} \cdot \boldsymbol{W}_i^Q \\\boldsymbol{K}_i=\boldsymbol{X}_i^{\prime} \cdot \boldsymbol{W}_i^K \\\boldsymbol{V}_i=\boldsymbol{X}_i^{\prime} \cdot \boldsymbol{W}_i^V\end{array}\right.$16 $\boldsymbol{h}_i= f_{\text {softmax }}\left(\frac{\boldsymbol{Q}_i \cdot \boldsymbol{K}_i^{\mathrm{T}}}{\sqrt{d_k}}\right) \cdot \boldsymbol{V}_i $17 $\boldsymbol{h}_{\text {all }}= C_{\text {concat }}^{(h)}\left(\boldsymbol{h}_1, \boldsymbol{h}_2, \cdots, \boldsymbol{h}_z\right)$18 $\boldsymbol{Z}=\boldsymbol{h}_{\text {all }} \cdot \boldsymbol{W}_{\text {out }}$式中,$ \boldsymbol{Z}_i \in {\bf{R}}^{1 \times d}$表示注意力分数;$ \boldsymbol{Q}_i, \boldsymbol{K}_i, \boldsymbol{V}_i \in {\bf{R}}^{N \times\left(\frac{d}{z}\right)}$分别表示注意力矩阵对应的查询量(query)、键(key)和值(value);$ \boldsymbol{h}_i$表示注意力矩阵;$ z$表示注意力头数;$ \boldsymbol{W}_{\rm{out}}$表示可学习的权重参数; $ f_{\text {softmax }}(\cdot)$表示softmax函数。2实验及分析2.1实验参数设置实验平台为显存24 GB的NVIDIA GPU。识别模型训练时,batch设为4,学习速率开始设为5×10-5,最大循环次数设为80。实验测试采用与测试对象无关的交叉验证方法。对超过10个人的BAUM-1s数据集平均分成5组,进行5次交叉验证,对包含8个人的RML数据集采用8次交叉验证,最后取所有交叉验证结果的平均准确率作为实验的最终结果。2.2数据集实验在视频表情数据集BAUM-1s(Zhalehpour等,2017)和RML(Wang等,2012)上进行。BAUM-1s是一个自然情感数据集,由31个人的8种基本表情组成,共1 222个视频片段。实验只采用其中6种基本表情,分别为生气(anger)、厌恶(disgust)、害怕(fear)、高兴(joy)、悲伤(sadness)和惊奇(surprise),共520个视频片段。视频中每帧图像的原始分辨率为720×576×3。图 4为BAUM-1s数据集中的人脸图像样例。RML是一个模拟情感数据集,由不同国家的8个人组成,共720个视频片段,包含生气、厌恶、害怕、高兴、悲伤和惊奇6种基本表情,视频中每帧图像的分辨率为720×480×3。图 5是RML数据集中的人脸图像样例。 图4 BAUM-1s数据集中的人脸图像样例 Samples of face images from the BAUM-1s datasetFig 4 图5 RML数据集中的人脸图像样例 Samples of face images from the RML datasetFig 52.3数据预处理由于视频数据集的每个视频时长不一致,所以需要对数据集中的每个视频进行片段化处理。对每个视频样本采用MTCNN(multi-task convolutional neural network)网络模型(Zhang等,2016)进行人脸检测,首先将输入的图像进行不同尺寸的缩放,形成一个图像金字塔。图像中小的人脸通过放大进行检测,大的人脸通过缩小进行检测,从而对统一大小的人脸图像进行检测。然后将所有检测到的人脸图像的维度采样为112×112×3,再将视频的所有帧按间隔数$ \varphi $提取到片段中,形成$ \varphi $个包含16帧的片段。间隔数$ \varphi $计算为19 $\varphi=[n / 16]$式中,[]为取整函数;$ n$表示一个视频的所有帧数。2.4消融实验及分析本文模型主要由CNN、LSTM和Transformer 3个模块组成。为了验证各模块的有效性,在BAUM-1s和RML数据集上按CNN与LSTM组合、CNN与Transformer组合及CNN与LSTM和Transformer组合进行3组实验,消融实验结果如表 1所示。可以看出,CNN+LSTM模型在BAUM-1s和RML数据集上分别取得了57.73%和70.20%的表情识别准确率,CNN + Transformer模型在BAUM-1s和RML数据集上分别取得59.04%和74.96%的准确率,明显优于CNN + LSTM。由此可知,结合Transformer模型学习到的帧注意力特征的重要性大于时间维度特征。结合CNN + LSTM + Transformer模型表现最好,在BAUM-1s和RML数据集上分别取得60.72%和75.44%的准确率。说明CNN学习到的片段空间特征、LSTM学习到的时间维度特征与Transformer学习到的注意力特征三者存在一定互补性,三者结合能有效改善视频表情识别的性能。 表1 消融实验对比结果 识别模型 BAUM-1s RML CNN+LSTM 57.73 70.20 CNN+Transformer 59.04 74.96 CNN+LSTM+Transformer 60.72 75.44 Comparison results of ablation experiments /%Table 1 加粗字体表示各列最优结果。2.5与其他现有方法的对比为了验证本文方法的性能,与其他方法进行对比,结果如表 2所示,其中对比方法结果为文献数据。Zhang等人(2018)采用深度3D-CNN提取人脸表情特征用于人脸表表情识别,在BAUM-1s和RML数据集上分别取得50.11%和68.09%的识别准确率。Kansizoglou等人(2019)采用CNN与LSTM组合进行人脸表情特征提取,在BAUM-1s和RML上分别取得55.36%和70.55%的准确率。Cornejo和Pedrini(2019)首先采用局部约束的立体匹配算法对人脸图像进行处理,即census变换,用于减少光照差异引起的误匹配,然后采用基于CNN的census变换方法提取人脸表情特征,最后使用逻辑回归分类器进行人脸表情识别,在BAUM-1s和RML数据集上分别取得59.52%和75%的准确率。Ma等人(2019)首先利用3D-CNN从面部表情序列中提取特征,最后使用支持向量机(support vector machine,SVM)进行表情分类,在BAUM-1s和RML数据集上分别获得54.69%和73.88%的准确率。本文方法在BAUM-1s和RML数据集上分别获得60.72%和75.44%的平均准确率,优于现有其他方法。实验结果表明,本文提出的模型能有效进行视频人脸表情识别。 表2 不同方法在BAUM-1s和RML数据集上的准确率对比 方法 BAUM-1s数据集 RML数据集 视频特征 准确率/% 视频特征 准确率/% Zhang等人(2018) 3D-CNN 50.11 Vnet 68.09 Kansizoglou等人(2019) CNN + LSTM 55.36 CNN + LSTM 70.55 Ma等人(2019) 3D-CNN 54.69 3D-CNN 73.88 Cornejo和Pedrini(2019) CT based VGG 59.52 CT based VGG 75.00 本文 CNN+LSTM+Transformer 60.72 CNN+LSTM+Transformer 75.44 Comparison of accuracy among different methods on baum-1s and RML datasetsTable 2 加粗字体表示各列最优结果。为了更直观地观察本文方法对各类表情的识别情况,图 6和图 7分别给出了本文方法在BAUM-1s和RML数据集上获得最佳识别结果的混淆矩阵。由图 6可见,高兴和悲伤的识别效果比较好,正确识别率分别为85.47%和78.36%,而生气和害怕的识别准确率较低,分别为8.93%和13.51%,这两种表情容易误判为悲伤,原因可能是这3种表情的区分度不高,造成网络模型误判。由图 7可以看出,害怕的识别性能最低,正确识别率为37.5%,生气的正确识别率为65%,其他表情的识别效果较好,正确识别率超过70%。原因可能是RML数据集中害怕表情的样本数目比其他表情样本数目少很多,致使网络模型无法较好地识别此类表情。 图6 BAUM-1s数据集中CNN + LSTM + Transformer模型的识别结果混淆矩阵 Confusion matrix of the recognition results of the CNN + LSTM + Transformer model in the BAUM-1s datasetFig 6 图7 RML数据集中CNN + LSTM + Transformer模型的识别结果混淆矩阵 Confusion matrix of the recognition results of the CNN + LSTM + Transformer model in the RML datasetFig 73结论本文提出一种基于Transformer的视频序列表情识别模型,用于实现视频人脸表情识别。该方法集成了CNN、LSTM和Transformer模型,分别用于学习高层次的视频片段空间特征、视频片段时间特征以及视频片段帧注意力特征。在BAUM-1s和RML两个视频情感数据集上的实验结果表明,本文方法能有效改善视频人脸表情识别模型的性能。与对比方法相比,本文方法的整体性能占优,但识别某些数据样本数量较少的表情类别依然表现欠佳,并且在面对难以区分的两种表情时,如害怕和悲伤两种表情,本文方法表现一般。在以后的工作中,将尝试通过采用有效的数据增强技术扩大数据集,建立更具鲁棒性的深度注意力机制模型。同时,根据各类人脸表情存在的差异性,构建一个区分表情注意力模块,以进一步提高区分度不高的表情识别性能。
使用Chrome浏览器效果最佳,继续浏览,你可能不会看到最佳的展示效果,
确定继续浏览么?
复制成功,请在其他浏览器进行阅读