FSAGN:一种自主选择关键帧的表情识别方法
2022-04-02祝锦泰叶继华郭凤江蕗江爱文
祝锦泰,叶继华,郭凤,江蕗,江爱文
(1.江西师范大学计算机信息工程学院,江西 南昌 330022;2.淄博技师学院信息工程系,山东 淄博 255030)
基于视频的人脸表情识别是表情识别任务的一部分,主要包含视频数据预处理、表情特征提取与分类,其中,视频中人脸表情信息的提取尤为重要。已有方法中,一部分通过CNN 网络及其变体直接对视频帧进行表情特征提取,如HE 等[1]提出的ResNet在表情识别任务中取得了不错效果,YAO 等[2]提出的HoloNet 网络在视频任务中给出了新的思路,LIU 等[3]提出的DenseNet 在AFEW 表情数据集中的识别率达51.44%。另一部分通过帧间信息特征融合得到视频表示,以取得更高的表情识别率,如MENG 等[4]引入了注意力模型,对视频相对帧的特征向量进行融合,取得了较好的识别效果,GAO等[5]尝试引入图卷积模型,结合注意力机制与图的节点特征,实现了对视频序列中表情的识别,通过新方法的交叉应用令识别率不断提升,XIE 等[6]通过改进和优化超参数算法,在AFEW 数据集与CK+数据集中取得了较好的识别效果。
在已有基于视频的表情数据集中,有些由实验室采集,如CK+数据集[7],表情多由平静走向峰值,训练相对容易,且大多网络均具较高的识别率;有些通过剪辑的方式从电影的人脸表情视频片段中获取,如AFEW 数据集[8],此类数据集制作较困难,易导致同一片段中的表情分布不均匀,表情信息可能出现在中间几帧,也可能出现在前后几帧,甚至部分视频片段的某几帧不存在人脸信息,然而,目前已有的对于视频帧的选择方式大多为默认挑选最后一帧或随机选择某几帧,使得所选视频帧中含有一定量无表情帧,影响模型的识别率。此外,基于视频的表情识别网络,参数多、训练成本大,无法较好地应用于实际。
为解决上述问题,笔者设计了一个视频帧选择网络,通过自注意力机制赋予表情特征显著的帧以较高的权重,并根据帧的损失大小对视频信息进行划分,从而实现对具有显著表情特征帧的选择,即关键帧自主选择,此外,将帧选择模型与GhostNet 结合,在提高识别率的同时大幅度减少了模型参数,从而降低模型训练的成本。本方法在CK+(Coh-Ka-Made dataset)和AFEW 这2 个公开数据集上均取得了不错的效果。
本文的主要贡献:提出了一种基于注意力机制的帧选择模型,可使其在视频帧的选择任务中,尽可能选择表情特征显著的关键帧,从而提高识别率;设计了一个帧选择损失函数,通过计算帧信息的注意力权重,按帧对每段视频的信息进行有效性划分;将注意力模型与GhostNet 有效结合,在提高识别率的同时大幅度减少了模型参数,从而降低模型训练的成本。
1 相关工作
根据特征提取方式的不同,基于视频的人脸表情识别可分为两大类:(1)传统手工特征提取方法,采用传统方法,手工提取表情特征并进行定位;(2)基于深度学习的特征提取方法,其优势是可自动提取特征,且可提取部分手工无法提取的特征。
传统手工特征提取方法主要包含局部二值模式(local binary pattern,LBP)[9]与方向梯度直方图[10]等,其在表情识别任务中取得了较好的效果,但因不能自发学习并提取表情深度特征,限制了其进一步发展。
随着深度学习的发展与完善,更多的深度学习模型被应用于表情识别,基于深度学习的特征提取方法主要有针对连续帧的特征提取与针对离散帧的特征提取2 种。
基于时空的特征提取方法其目的是为视频中的时间或运动信息建模,主要用于连续帧的特征提取。目前,最常见的时空特征提取模型有长短期记忆模型(LSTM)和3D 卷积神经网络(C3D)。利用特征向量提取序列信息的长短期记忆模型已成功应用于视频序列的特征提取。HOCHREITER 等[11]提出了一种可灵活处理长度(长度可变)的连续数据LSTM 模型,有效提升了连续帧任务中表情的识别率。此外,3D 卷积神经网络与CNN 和LSTM相结合的组合神经网络也开始广泛用于视频表情识别。
在针对离散帧的特征提取任务中,为获得与不同帧相关联的视频信息,如何融合视频帧实现更合理高效的视频表示广受关注,BARGAL 等[12]提出的统计编码单元(STAT),通过计算每帧特征向量的平均值、最大值、最小值等实现帧间信息融合。ZHAO等[13]提出了一种峰值导频深度网络(PPDN),将同一测试者的非表情峰值和表情峰值图像输入神经网络,利用L2 损失最小化2 个输入图像的距离,从而使网络可学习表情峰值与非峰值的差异,最终将学习到的差异用于视频帧的选择与表情分类。
2 注意力机制结合GhostNet 的人脸表情识别模型
基于注意力机制与GhostNet 的人脸表情识别模型处理表情视频序列的执行过程如图1 所示。主要分为特征嵌入(由GhostNet 实现)、帧间信息融合和视频帧选择3 个基本模块。
图1 基于注意力机制与GhostNet 的人脸表情识别模型Fig.1 FSAGN model
特征嵌入模块,主要用于提取视频每帧的特征,并将其嵌入向量。为降低参数量、提升模型性能、降低训练成本,本文用GhostNet提取特征,并同时进行特征嵌入,GhostNet特征提取的可视化效果如图2 所示。由图2 可知,GhostNet 提取的特征非常抽象,属于图像的高级特征,且随着网络深度的增加,其对不含人脸的图像提取的特征较混乱,而对含人脸的图像提取的特征大多包含了人脸的关键部位。
图2 GhostNet 随机提取AFEW 数据集特征图展示Fig.2 GhostNet randomly extracted AFEW data set feature map display
自注意力模块,主要通过自注意力机制对视频每帧图像的特征向量用sigmoid 函数计算其注意力权重,注意力权重为0~1,值越大代表此帧图像包含的表情特征越显著。帧间信息融合模块,主要用于视频帧的帧间信息融合,通过融合各关键帧的特征向量,得到较为准确的视频表示形式,并与自注意力权重融合,得到帧间信息注意力权重,权重越大表示此视频帧对整段视频的意义越显著。视频帧选择模块,对视频关键帧进行选择,首先获取由自注意力模块与帧间信息融合模块计算得到的各帧注意力权重,再通过帧选择损失对关键帧与非关键帧进行划分,最终在视频中挑选出表情特征丰富的关键帧,即注意力权重较大的帧进行后续分类操作,通过此模块,模型可以自发地学习如何在一段视频中挑选表情信息丰富的关键帧。模型设计了ATCE Loss 实现结合注意力权重的交叉熵损失函数,在进行分类损失计算时,可更多地将注意力关注到难分类样本,从而提升分类效果。
综上所述,模型算法流程如图3 所示。
图3 模型算法流程Fig.3 Model algorithm flow
首先将一段视频帧v1,v2,…,vn导入GhostNet网络,得到一组特征向量F1,F2,…,Fn,随后由这一组特征向量通过自注意力机制得到每帧图像对应的自注意力权重值α1,α2,…,αn,将特征向量与权重值进行帧间信息融合,并计算融合后的向量相较原向量的损失,得到每张图像对应的相对帧权重β,获取两组注意力权重后,通过综合权重损失Lw_fu 约束得到最后的综合权重γ。为自发选择视频关键帧,设计帧选择损失Lfs,去除视频段中特征不丰富的视频帧,完成关键帧的自发选择。最后,由ATCE 损失得到最终的分类结果。
2.1 GhostNet
GhostNet[14]为一种轻量级网络。先提取一半图像特征,再由这部分特征经线性计算得到剩余的特征,因此GhostNet 在保证模型性能的同时,大大减轻了训练成本。目前GhostNet 主要用于图像识别,尚未见用于视频领域的表情识别。
实验发现,在包括AFEW 数据集与CK+数据集在内的多个表情数据集中,在第一层神经网络提取的特征中也存在成对冗余现象,这与GhostNet 解决的问题极为接近。为此,本文将GhostNet 与注意力模型相结合,在提升识别率的同时,可大大减少训练参数,降低训练成本。
2.2 自注意力与帧间信息注意力权重计算模块
2.2.1 基于自注意力机制的视频帧权重分配
通过自注意力机制与帧选择损失实现对关键帧的选取。值得注意的是,在一段含有表情动作的视频序列中,往往只有某几帧包含表情特征,其他帧中表情相对平淡,或不含表情信息;在某些数据集中,甚至一段视频中大多数帧不包含人脸信息,只有个别帧存在表情信息。图4 所示的为AFEW 数据集中的某视频片段,只在第3 帧中存在包含表情的人脸信息,其余帧均不含表情信息,本文将通过设计自注意力模块解决此问题。
图4 AFEW 数据集中某视频片段Fig.4 A video clip in the AFEW dataset
自注意力模块通过自注意力机制对表情特征丰富的帧赋予高权值,对表情特征不显著的帧赋予低权值,最后通过帧选择损失对所有帧权值进行排序,得到表情信息丰富的帧。
首先,用GhostNet 提取视频中每帧的特征,得到对应帧的特征向量。随后,通过全连接层与sigmoid 函数为当前帧分配注意力权重,注意力模型中常用的求解注意力权重的公式为
至此,本模型已经得到视频帧对应的自注意力权重与帧间信息注意力权重,为更好地利用这2 个权重,对其进行加权融合,得到综合权重γ。令γ=ζ1·α+ζ2·β,需要注意的是,为便于后续网络操作,综合权重须约束在[0,1]内,若综合权重不在此区间,则会使模型的收敛出现问题。为实现综合权重的动态选择,并保证综合权重在[0,1]内,将综合权重融合损失Lw_fu定义为
其中,ζ1与ζ2均为损失函数需要优化的参数,α和β分别为自注意力权重与帧间信息注意力权重。通过定义此损失函数,可对自注意力权重与帧间信息注意力权重进行相关性加权得到综合权重,并将综合权重约束在[0,1]内,从而确保模型训练的有效性。
最终,通过帧间信息融合,得到结合综合注意力权重的视频表示式:
其中,γi为第i帧图像的综合权重。
2.3 视频帧选择
为选择关键帧,设计了视频帧选择损失。在视频帧选择模块中,首先用比率η通过学习将视频帧权重划分为高权重与低权重2 个组,笔者设计了一个视频选择损失,可确保高权重组的平均权重远大于低权重组的平均权重。损失函数定义为
δ为可调整超参数,用于对视频帧进行合理分组,γ为融合了自注意力权重与帧间信息的综合权重,γH与γL分别为高权重组与低权重组的平均权重,N为帧的总数,M为N与比率η的乘积,当且仅当γH-γL>δ 时(其中δ为自定义超参数),损失降至最小值。通过计算损失函数,合理划分高权重组与低权重组,本文选择高权重组中的帧作为对应视频的关键帧进行后续分类操作,而低权重组中的帧因无法较好地表征表情特征,予以丢弃。
2.4 结合注意力权重的多分类交叉熵损失
多分类交叉熵损失是深度学习分类任务中常用的损失函数,而将注意力权重引入损失函数可取得更好的效果[15],焦点损失函数[16]通过置信度区间将样本分为难分类样本与易分类样本,实现模型对难分样本的关注,通过设置超参数提高难分类样本损失。本文在注意力模块中经计算得到每帧的注意力权重,因在帧选择模块中非关键帧已被抛弃,所以在剩余样本中,可将高权重帧归为易分类样本、低权重帧归为难分类样本。在此基础上,本文设计了结合注意力权重的交叉熵损失(attention based crossentropy loss),将得到的注意力权重与交叉熵损失结合,实现降低易分类样本损失、提高难分类样本损失的目的。在原始交叉熵损失的基础上,将不同样本与其对应注意力权重进行乘法运算,得到考虑了注意力的交叉熵损失。损失函数定义为
其中,Wj,bj分别为第j个类别的权值参数与偏置参数,xi为第i个样本,Wyi和byi分别为神经网络中的参数与偏置。由式(2)可知,γ的取值将影响损失的大小,且二者成正比关系。
在模型的训练过程中,总的损失函数可定义为
其中,λ1,λ2,λ3,λ4为平衡率,且λ1+λ2=1,λ3=0.05~0.25,λ4=0.5~0.9。
3 实验和结果分析
3.1 数据集及实验准备
所用数据集为CK+与AFEW。CK+数据集共有123 位参与者,包含593 个视频序列,被标记为愤怒、蔑视、厌恶、恐惧、快乐、悲伤和惊讶共7 种基本表情标签。CK+数据集未分训练集与测试集,本文按照等样本规则将其划分为训练集与测试集,并通过旋转、平移等方式进行数据增强操作。
AFEW 数据集包含了从不同电影或电视剧中剪辑的表情视频片段,无用信息多,训练难度较大。AFEW 数据集分训练集、验证集与测试集三部分,其中,训练集样本773 个,验证集383 个,测试集653个。因为AFEW 的测试集样本是非开放的,所以只选择其中的训练集与验证集。
用pytorch 工具构建训练特征集合。首先,提取各视频的RGB 视频帧序列,随后将分辨率调整至224×224。然后,通过旋转、平移、滑动等操作,对视频帧进行数据增强,将2 个数据集的数量扩充10倍。用SGD 优化器对网络进行优化,动量设置为0.9,权重衰减为0.000 1。在CK+数据集中,设置初始学习率为0.1,且每隔20 个循环降0.02,共进行80 次循环。在AFEW 数据集中,设置初始学习率为0.001,且每隔40 个循环降0.000 2,共进行200 次循环。
实验环境为CPU Intel Core i5-6500,内存为16 GB,显卡型号为NVIDIA GeForce GTX 1080ti,操作系统为Ubuntu16.04,采用pytorch 深度学习框架。
表情识别准确率是表情识别任务中常用的评价方法,本文在识别任务后首先计算单类别识别准确率,即预测正确的视频数量与视频总数量的比值,之后,以所有类别识别准确率的平均值作为最终的评价指标。
3.2 实验结果及分析
3.2.1 CK+数据集
CK+数据集由实验室制作,数据集质量较高,外部环境对视频质量的影响较小。由于CK+数据集视频中的人脸表情大多由平静向表情峰值逐渐变化,因此通常选择最后一帧或后几帧进行特征提取与分类。为验证方法的有效性,将本文算法与效果较好的几种已有算法进行了实验对比,见表1。
表1 CK+数据集上各算法的识别率Table 1 The recognition rate of each method on CK+dataset
由表1 知,本文算法的平均识别率为99.64%,排第2,其中,SIKKA 等[18]提出的LoMo 算法提取了传统的SIFT 及LBP 特征,并通过SVM 进行分类,其识别率可达92%。CAI 等[20]将CNN 模型与Island 损失函数结合,应用于表情分类任务,取得了94.35%的识别率。HE 等[1]提出的RASNet 模型,将注意力模块嵌入卷积层,得到了96.28%的识别率。MENG 等[4]提出的FAN 模型,引入自注意力与相对注意力模块,在随机挑选视频帧的基础上,实现了99.69%的高识别率,是目前较出色的算法。本文算法的识别率为99.62%,仅次于MENG 等[4]的算法,算法有效。
3.2.2 AFEW 数据集
AFEW 数据集由工作人员从影视节目中剪辑而来,用于EmotionW 竞赛,其环境复杂度高、表情特征不显著、个别视频帧不含表情特征,模型学习困难,是当前表情识别领域极具挑战性的数据集之一。表2 为当前AFEW 数据集中表现较好的几个算法的比较。
表2 AFEW 数据集上各算法的识别率Table 2 The recognition rate of each method on AFEW dataset
其中,CNN-RNN 与VGG-LSTM 算法将卷积神经网络与循环神经网络进行了有效结合,即先通过卷积神经网络提取视频帧特征,再将特征向量导入循环神经网络,学习其时间特征,最后进行表情分类。此算法学习了视频的动态时间信息,在一定程度上将循环神经网络带入表情识别任务,并取得了一定的效果。HoloNet 与DenseNet 算法则以卷积神经网络为基本框架,不包含动态时间信息,是一种静态识别方法。FAN 算法在AFEW 数据集也取得了不错的效果。
由表2 知,本文方法达到了较高水准,识别率较VGG-LSTM 等动态模型有较大幅度提升,超DenseNet 0.81%。值得注意的是,FAN 算法也采用自注意力与相对注意力相结合的架构进行帧间信息融合操作,但因采用的是随机方式选择视频帧,导致其在AFEW 数据集中容易选择表情特征不显著甚至不包含表情特征的图像,使模型学习到不利于表情识别的特征,降低了模型的识别率。经改进,本文算法的表情识别率有了较大提升。此外,在相同数据集下,通过引入GhostNet,在识别率提升的同时训练时间得以大幅缩短。
3.3 消融实验
3.3.1 3 个模块对实验效果的影响分析
本文模型包含基于自注意力机制的帧选择模块、结合GhostNet 的特征提取模块、基于相对帧注意力机制的帧间信息融合模块。为判断模型中每个模块的意义,设计了消融实验,实验结果如表3所示。
表3 3 个模块的实验效果比较Table 3 Effect comparison of three modules
在没有使用GhostNet 的实验中,用ResNet19提取视频图像特征。由表3 前两行可知,在特征提取时,将其他网络替换为GhostNet,实验效果不仅不会提升,反而略有下降;由表3 第3 行知,帧选择模块可大幅提升识别率,在不使用帧间信息融合模块与GhostNet 的前提下,加入帧选择模块,即式(2)与式(3),识别率在CK+数据集中提升了10%,在AFEW 数据集中提升了7%,说明加入基于自注意力机制的帧选择模块是有效的。由表3 第4、第5 行知,在使用帧选择模块、不使用GhostNet 的前提下,加入帧间信息融合模块,即式(5),识别率有小幅提升;同样,在使用GhostNet 后,不加入帧间信息融合模块,识别率也有小幅提升,这也说明加入帧间信息融合模块是有效的。由表3 最后一行知,在使用帧选择模块与帧间信息融合模块的前提下,引入GhostNet 的识别率较不引入有较小幅度提升,考虑GhostNet 的网络架构,实验参数较少,训练时间较其他网络大幅减少,因此大大降低了模型训练成本。
3.3.2 平衡率λ对识别率的影响分析
对分类损失函数ATCE Loss 与帧选择损失函数FrameChoice Loss 的平衡率λ1和λ2进行了实验,以判断λ1和λ2的选取对识别率的影响。实验在不包含λ3和λ4的条件下进行,结果如表4 所示。发现λ1取0.4 时效果最好,逐渐提升或降低λ1,效果变差,由此说明,分类损失函数的权重较帧选择损失函数大。
表4 λ1和λ2的不同取值对模型识别率的影响Table 4 The influence of different values of λ1 and λ2 on model recognition rate
同时,对帧融合损失平衡率λ3与权重融合损失平衡率λ4进行了实验,实验结果分别如表5 和表6 所示,其中λ1和λ2分别取0.4 和0.6,对λ3的实验,将λ4设置为0.7,对λ4的实验,将λ3设置为0.15。发现,当λ3取0.15 时效果最佳,在AFEW 数据集中相较原模型提高了0.04%,在CK+数据集中则无明显提升,λ3的取值越高效果越差,这也说明帧融合损失函数对模型的提升具有局限性,面对实验室场景下的数据集,因数据完善,提升效果不明显,而对于自然场景下的数据集,可以有效融合自注意力权重与原图像,实现识别率的提升;在另一组实验中,当λ4取0.7时,识别率有较大提升,说明综合权重的选择对提升模型识别率有重要意义。
表5 λ3的不同取值对应的模型识别率Table 5 The recognition rate of the model with different values λ3
表6 λ4的不同取值对应的模型识别率Table 6 The recognition rate of the model with different values λ4
3.3.3 高权重视频帧比率γ对识别率的影响分析
γ为高权重组样本占总样本的比率。实验发现,比率γ对模型的识别效果有一定影响,图5 中,黄色折线表示模型在CK+数据集中的识别率,蓝色折线表示模型在AFEW 数据集中的识别率。由图5 可知,当γ为0.7 时,模型在AFEW 数据集中取得了最佳效果,当γ小于0.7 时,易造成过多视频帧被抛弃,丢失部分有用信息,导致模型识别率下降;反之,若γ过大,保留了绝大多数视频帧,无法有效删除无用视频帧,影响模型的识别率。值得注意的是,当γ为0.8 时,模型在CK+数据集中取得了最佳效果。分析发现,因CK+数据集与表情无关的信息较少,对动态选择视频帧的需求相对较低,所以当γ较高时,识别率更好。
图5 比率γ 对模型识别效果的影响Fig.5 The influence of parameter γ on model recognition effect
3.3.4 分组阈值参数δ对识别率的影响分析
δ为对视频帧进行分组的阈值参数,如图6 所示,黄色折线表示模型在CK+数据集中的识别率,蓝色折线表示模型在AFEW 数据集中的识别率。由图6 可知,当参数δ为0.2 时,模型在AFEW 数据集中取得了最佳效果,当δ为0.15 时,模型在CK+数据集中取得了最佳效果,说明此时高权重组权重平均值γH与低权重组权重平均值γL处于相对平衡状态,若破坏其平衡状态则会令模型效果变差。
图6 参数δ 对模型识别效果的影响Fig.6 The influence of parameter δ on model recognition effect
3.4 在AFEW 数据集中的帧选择权重γ 及可视化
为更好地证明帧选择模块在模型中的意义,在AFEW 数据集实验中对帧选择权重γ进行了记录和可视化。如图7 所示,分别从AFEW 数据集7 种标签中随机挑选一段视频,为方便记录,挑选的视频均只包含6 帧,其中,红色虚线框表示抛弃视频帧,蓝色虚线框表示保留视频帧。在对数据集进行训练后,记录挑选视频帧的权重γ,并对其做可视化操作。若一段视频中包含不存在人脸信息的视频帧,如恶心、害怕、悲伤3 段视频,不含人脸信息的帧权重得分较低,而剩余包含人脸信息的视频帧权重得分较高,所以,在视频帧选择过程中,删除不包含人脸信息的视频帧;若一段视频全为人脸信息,则出现2 种权重值分配方式,如生气、高兴、惊喜3 段视频,帧与帧之间表情反差较大,存在由无表情到有表情的变化,通过权值分配,虽然权重差异并不大,但依然完成了对表情特征较丰富的关键帧的选取,此外,如图7 中的中性视频片段所示,整段视频不存在明显的表情变化,各帧注意力权重较均匀,最终随机选择了部分视频帧。
图7 视频帧选择权重γ 可视化Fig.7 Video frame selection weight γ visualization
由此可知,视频帧选择模块对无人脸表情信息或表情变化较大视频段的选择效果更佳。
4 结 语
提出了一种基于自注意力视频帧选择与GhostNet 结合的人脸表情识别模型,通过自注意力机制自发地选择数据集中表情特征显著的帧,通过帧间信息融合学习完整的视频表示,其中,引入GhostNet 实现高效的特征提取工作,最终实现视频表情分类任务。由于在视频表情数据集中,人脸表情大多由平淡到峰值再到平淡的过程,且部分视频帧可能不包含表情特征,因此可利用基于自注意力机制的帧选择模块实现对关键帧的选取。其次,因为表情识别深度模型参数量大,训练成本较高,所以引入GhostNet,以降低训练成本。最后,在2 个公开的视频表情数据集CK+与AFEW 中设计了多组实验,并对模型进行了多个方面评估。实验结果表明,基于自注意力帧选择与GhostNet 的模型在降低训练成本的同时,可有效提升表情识别率。
未来工作将考虑进一步改进GhostNet。GhostNet 对第一层神经网络提取特征冗余部分的处理最为特殊,通过线性计算在得到与原始模型相似特征的基础上,可大大减少模型参数,降低模型训练成本。如何改进线性计算单元,使在降低模型参数的基础上更出色地提取特征,将是进一步研究的方向。微表情是表情识别的一个分支,其作为一种自发性的表情,动作幅度小、持续时间短,难以训练出好的针对微表情的模型。如何将此模型较好地应用于微表情,也是今后研究的方向。