基于注意力及视觉Transformer的野外人脸表情识别

2022-05-19 13:29冯天波
计算机工程与应用 2022年10期
关键词:集上人脸注意力

罗 岩,冯天波,邵 洁

1.上海电力大学 电子与信息工程学院,上海 201306 2.国家电网上海市电力公司 信息通信公司,上海 200000

人们可以通过面部表情理解一个人的情绪状态(平静、快乐、愤怒、悲伤、恐惧、厌恶、惊讶),这一领域的研究被称为面部表情识别(facial expression recognition,FER)。具有面部表情识别能力的机器有很多应用,如人机交互[1]、心理健康分析[2]、疲劳驾驶检测[3]等。传统的人脸表情识别方法通常是在具有清晰的正面人脸、夸张的表情动作等特点的实验室人脸图像上进行的[4-5],但是当人脸表情本身含有不同形式的遮挡,如关键表情部位的遮挡(如嘴部和眼睛)、部分信息的遮挡、姿势变化下的信息不足(如侧脸和低头)、不同的光照条件等,基于卷积神经网络(convolutional neural networks,CNN)算法模型的性能往往很容易受到影响。为了解决这些问题,人们提出了各种方法来提高遮挡情况下的人脸表情识别精度[6-11],其中一种被验证能有效提高识别效果的方法是注意力机制。注意力机制试图模仿人类将注意力集中在图像的关键位置,可以从关键部分提取特征以获得重要信息。然而,由于现实世界中存在不断变化的应用场景,如当今世界COVID-19疫情使得人们不得不在公共场合戴上口罩遮挡自己的口鼻,传统方法如基于CNN网络的野外表情识别仍然面临挑战,因此关于表情图像特征的提取和识别方法还需要进一步改进。

最近几个月来Transformer模型在计算机视觉任务中显著成功,如ViT(vision transformer)[12]和DeiT(dataefficient image transformers)[13]等,受其启发Transformer也被引入到表情识别任务中[14-15]。ViT[12]是第一个用纯Transformer模型取代CNN模型并将其应用于图像分类的研究。受ViT的启发,CVT(convolutional visual transformers)[14]是第一个将Transformer模型用于表情识别的工作。CVT首先使用一个双分支的ResNet18网络来生成特征图。接着通过ASF(attentional selective fusion)对特征图进行融合,然后将其展平并投射到视觉token的序列中,最后使用多层编码器进行分类。DeiT[13]通过向模型添加distillation token来调用知识蒸馏方法,基于此Li等人提出了MViT(mask vision transformer)[15]。它应用MGN(mask generation network)生成一个面具,可以过滤掉复杂的背景和人脸图像的遮挡,同时提出了一个动态重标模块,以纠正不正确的标签。

然而,ViT和DeiT模型参数量较大,训练时间较长,这使得Transformer模型的训练比CNN模型的训练更加困难且难以移植。为了解决减少计算量和提高遮挡条件下的表情识别之间的两难问题,基于CSWin(crossshaped window transformer)[16]和注意力机制,本文提出了Attention-Transformer网络。具体来说,通过CSWin主干网络可以使模型拥有较好的局部注意力,同时提出的通道-空间注意力模块(channel-spatial attention module,CSAM)使模型拥有较好的全局注意力,接着采用Sub-center ArcFace损失函数来进一步优化模型的识别能力。本文的贡献如下:

(1)提出了基于注意力及视觉Transformer的模型(Attention-Transformer)来进行野外人脸表情识别。本文使用CSWin Transformer作为主干网络来解决人脸表情识别任务中的遮挡问题。

(2)提出了一个通道-空间注意力模块(CSAM),引导模型更加关注全局特征信息,同时使用Sub-center ArcFace损失函数来进一步优化识别效果。CSAM使用包含通道和空间的注意力机制模块,能够更好地提取全局特征信息;同时通过使用Sub-center ArcFace损失函数可以降低来自噪声的影响。这样的结构被证明是有效的。

(3)在RAF-DB和FERPlus等现有的野外FER数据集上进行了广泛的实验,证明了本文的Attention-Transformer可以达到最先进的识别精度。特别是,还在对应的口罩遮挡数据集上进行了模拟COVID-19环境的实验,以表明所提出的方法对口罩遮挡条件下的识别效果是鲁棒的。

1 基于注意力及视觉Transformer的模型

本文提出了一个基于注意力及视觉Transformer的模型(Attention-Transformer)来解决人脸表情识别(FER)的遮挡问题。在模型中,CSWin Transformer被用作主干网络,同时设计了一个通道-空间注意力模块(CSAM)和一个Sub-center ArcFace损失函数,整体结构如图1所示。输入是224×224像素的RGB图像,将其送入Stage1。随后,将Stage2得到的特征图放入通道-空间注意力模块,并把得到的特征图输入到Stage3。从Stage4得到最终的预测向量,使用基于Sub-center ArcFace损失函数的分类器得到表达式分类。在下面的章节中,将首先介绍CSWin Transformer,然后给出所提出的通道-空间注意力模块和Sub-center ArcFace损失函数的细节。

图1 Attention-Transformer模型的整体结构Fig.1 Structure of Attention-Transformer model

1.1 CSWin Transformer主干网络

本文是将CSWin Transformer[16]作为人脸表情识别任务主干网络,此网络具有十字形窗口的自注意力机制。它通过在水平和垂直两个方向上的窗口分块形成一个十字形窗口。对于水平方向来说,输入X被划分为不重叠的且具有相同宽度的sw水平条带,即X i=[X1,X2,…,X M]∈R(sw×W)×C,其中每个包含sw×W个token。这里,sw是条带的宽度,可以用来平衡模型的学习能力和计算复杂度。假设Transformer多头注意力机制中第k个注意力头的queries、keys和values的维度都是dk,那么水平方向上的注意力输出结果H-At tent ion(X)可以作如下定义:

其中,W O∈RC×C是常用的投影矩阵,它将自注意力结果投射到目标输出维度(默认设置为C)。由此,可以得出主干网络中的CSWin Transformer Block计算方法:

其中,LN表示层归一化(layer normalization),MLP表示多层感知器(multi-layer perception),X̂l表示自注意力CSWin-Attention的输出特征,X l表示多层感知器的输出特征。

1.2 通道-空间注意力模块

虽然使用CSWin Transformer主干网络可以有效提取局部表情信息,但其中的自注意力机制会将输入结果的特征图分为步长较小的块来处理,这会导致模型缺乏对于全局特征信息的学习能力,增强Transformer架构对于全局信息的注意力是处理人脸表情识别遮挡问题的关键解决方案。因此,模型引入了通道-空间注意力模块(CSAM)以增强Transformer中Stage2之后的关键全局特征信息。为了实现有效的注意力,本文基于BAM(bottleneck attention module)[17]设计了通道-空间注意力模块。CSAM沿着通道和空间依次计算输入的注意力特征图,并与原始特征图加权得到结果。整体结构在图1中展示,具体细节如图2所示。

图2 通道-空间注意力模块Fig.2 Channel-spatial attention module

具体来说,将Stage2之后得到的特征图作为输入,即F=Fstage2∈RH′×W′×C′。随后特征图将分别进入两个分离的路径,即通道(channel)注意力模块和空间(spatial)注意力模块。用MC(F)∈RC′和MS(F)∈RH′×W′分别表示这两个模块的通道注意力特征和空间注意力特征,则MC(F)可以计算并表示如下:

其中,GAP表示全局平均池化层,即global average pooling,用来聚合每个通道的特征并得到通道向量,该向量对每个通道中的全局信息进行编码。FC表示全连接层,即fully connected layer。而对于空间注意力分支的特征图MS(F)来说,可以通过卷积来进行特征提取,其计算过程并表示如下:

其中,Conv表示卷积层操作,即convolutional layer,1×1和3×3分别表示卷积核大小为1和3。

随后,需要将两个分支注意力结合为全局注意力特征图FCSAM。把两个注意力MC(F)和MS(F)逐元素相加,经过GELU函数激活,可以通过如下计算得到:

其中,GEL U表示GELU激活函数。最终,将全局注意力特征图FCSAM与原输入特征逐元素相乘后,再与原输入相加,得到输出特征图Ffinal:

其中⊗表示对应元素相乘。

1.3 改进的ArcFace损失函数

ArcFace[18]一直是人脸相关任务中最先进的损失函数方法。在本研究中使用了Sub-center ArcFace[19],这是对ArcFace的最新改进,旨在更好地处理模型分类问题。Sub-center ArcFace为每个类设计了K个子中心,训练中样本只需要接近K个正向子中心中的任何一个,而不是只有一个正向中心。例如,表示开心happy的分类包含张开嘴露出舌头的大笑,只露齿不露舌的笑和不露齿但嘴角上扬的微笑等不止一类开心的表情,训练中样本可以接近其中任意一个表情子类而不是只能够向其中某一单独子类聚集。因此,本文采用的子中心ArcFace损失函数鼓励一个包含大部分干净面孔的优势子类和包含硬面孔的非优势子类,既包含大部分易于模型分类的干净表情样本,同时那些对于模型分类来说模棱两可、难以分类的表情样本也可以得到更好地判别,这样可以提高分类精度并提高全局特征的质量。

为每个表情分类设置一个K,基于x i∈R512×1上的嵌入特征和所有子中心W∈RN×K×512的归一化步骤,通过矩阵乘法WTx i得到子类的相似度得分S∈RN×K。然后,对子类的相似度得分采用最大池化,得到类的相似度得分S′∈RN×1。所使用的Sub-center ArcFace损失函数可以表述为:

2 实验过程和结果分析

Attention-Transformer是在Windows 10操作系统下基于Python 3.6和Pytorch 1.7.0实现的。对于所有训练情况,均使用图像翻转和图像旋转等数据增强方式来增加数据多样性。输入图像的大小和批量大小(patch size)分别设置为224×224×3和2。本研究在单个NVIDIA GTX 3080 GPU显卡上训练模型。将在Image-Net数据集上预训练过的CSWin-Tiny作为Attention-Transformer的主干网络。在训练期间,批量大小设置为32,使用动量为0.9和权重衰减1E-4的AdamW[20]优化器来优化模型以进行反向传播。

2.1 数据集设置

使用两个公开可用的表情识别数据集以及它们对应的两个口罩遮挡数据集来评估模型的性能。

RAF-DB[21]:RAF-DB数据集包含30 000张从互联网上下载并经过专业注释的带有基本或复合表情的面部图像。在本文中,使用7种基本表情(平静、快乐、惊讶、悲伤、愤怒、厌恶、恐惧)的图像。这些图像包含12 271张用于训练的图像和3 068张用于测试的图像。

FERPlus[22]:FERPlus重新标记了原始FER2013数据集中错误标记的图像并删除了非人脸图像。FERPlus数据集由25 045张训练图像、3 191张验证图像和3 137张测试图像组成。每张图像的大小为48×48像素。除了RAF-DB中7个基本表情之外,还包括了蔑视这第8个表情类别。一般选择在多数投票的情况下确保所有样本的准确性以进行效果评估。

口罩遮挡数据集:Wang等人[23]发布了有关如何为数据集中的面部图像制作口罩的方法和代码。由此,可以为上面的两个数据集分别创建与之对应的口罩遮挡数据集来模拟COVID-19场景,包括Masked RAF-DB和Masked FERPlus。

野外数据集的主要挑战是图像本身中不同形式的遮挡和头部姿势,这些问题无疑增加了野外FER的难度,数据集样本如图3所示。

图3 野外数据集及其对应的口罩遮挡数据集Fig.3 Datasets in wild and their masked datasets

2.2 实验结果

本节将Attention-Transformer模型与在RAF-DB和FERPlus数据集上的近五年内最先进方法进行比较,这些方法可以分为基于CNN的模型和基于Transformer的模型两类。

基于CNN的模型主要有如下方法:FsNet+TcNet[24]使用FsNet分割出图像中与表情识别最相关的感兴趣区域,随后用基于深度可分离卷积的TcNet进行表情分类。PG-CNN(patch-gated convolutional neural network)[6]将面部划分为不同的注意力块,并使用patch-gate单元来预测每个patch的概率。在DLP-CNN(deep localitypreserving CNN)[21]中,通过添加LP Loss(local proserving loss),从而缩短样本的类内距离,扩大样本的类间距离,提高识别效果。在Li等人[7]的工作中,模型首先通过卷积层裁剪图像中的注意力区域区域,然后计算特征图中每个局部块的重要性得分,并根据这些对相应的局部特征图进行加权。RAN(regional attention network)[8]对图像进行了划分,为每个区域分配了注意力权重,并将每个局部区域特征图与整体特征图进行整合。在OADN(occlusion-adaptive deep network)网络中[9],注意力权重是由以特征图的空间位置为中心的高斯分布样本产生的,而置信度分数是由外部landmark检测器提供的。SCN(self-cure network)[10]通过计算图像的注意力权重对其进行排名,分数低于阈值的图像标签被替换为由模型计算得来的新标签。PyConv-Attention Network[25]将图像按照区域采样裁剪成多张子图像,并输入到金字塔卷积神经网络进行多尺度特征提取,再将提取到的特征图输入到全局注意力模块同时分配权重。基于Transformer的模型在之前均有提到,如CVT[14]和MViT[15]。与这些模型在RAF-DB数据集上的对比效果如表1所示。本文的模型不仅优于两个表情Transformer,更优于之前的CNN网络。

表1 在RAF-DB数据集上与最先进方法的结果比较Table 1 Performance comparison to state-of-the-art methods on RAF-DB dataset

对于FERPlus数据集,除了提到的方法之外,还包括LDR(learning discriminative representation)网络[26],其首先通过瑞利损失来最小化类内距离和最大化类间距离,并引入一个权重来衡量给定样本的不确定性。本文模型与这些方法的效果对比如表2所示。同样的,Attention-Transformer模型表现得更加优秀。

表2 在FERPlus数据集上与最先进方法的结果比较Table 2 Performance comparison to state-of-the-art methods on FERPlus dataset

可以看出,在野外人脸表情识别上,基于Transformer的模型与基于CNN的模型相比,具有更高的准确率。在此情况下,与之前两个表情识别Transformer模型相比,本文的Attention-Transformer模型均有更好的表现。在RAF-DB上具有更高的准确率88.80%,分别高于CVT的88.14%和MViT的88.62%。此外在FERPlus上的准确率为89.31%,同样高于CVT的88.81%和MViT的89.22%。

在参数量方面的研究上,对比同样以Transformer为主干网络的模型,CVT模型由于使用ViT作为主干网络,拥有高达5.180×107大小的参数量;MViT在研究论文中没有给出具体参数量,这里使用了基于基线网络DeiT-S的近似范围,即MViT拥有超过2.200×107大小的参数量;本文所提出的Attention-Transformer模型拥有2.063×107大小的参数量,小于之前的表情识别Transformer模型。不同模型在参数量方面的结果比较如表3所示。准确率的提升加上参数量的减少,意味着训练所需时间的减少,同时对训练所需的硬件配置要求也相应降低,模型能够更好地移植和应用。

表3 与最先进方法的参数量结果比较Table 3 Comparison with parameter results of state-of-the-art methods

2.3 可视化结果

使用Grad-CAM(gradient-weighted class activation mapping)[27]来研究模型的可视化结果。Grad-CAM可以突出显示图像中用于预测概念的重要像素区域。基线网络Baseline(在ImageNet上预训练的CSWin-Tiny)和Attention-Transformer模型的注意力加权激活图如图4所示。其中较深的颜色表示高度关注,而较浅的颜色表示模型对它的关注较少。图4的第二行是Baseline在原始图像上的性能结果。添加了CSAM,模型将专注于更大的区域和更多的人脸部分,如第三行所示。从结果图像来看,Attention-Transformer模型可以更好地感知全局注意力信息。

图4 在RAF-DB数据集上基线网络与本文模型的热力图对比Fig.4 Comparison of activation maps captured with baseline and our model on RAF-DB dataset

2.4 消融实验

为了验证Attention-Transformer中每个模块的有效性,在RAF-DB和FERPlus数据集上进行了消融实验,如表4所示。具体来说,模型将在ImageNet数据集上预训练的CSWin-Transformer-Tiny网络作为实验的基线网络(Baseline),然后将通道-空间注意力模块(CSAM)和ArcFace损失函数分别添加到基线网络。实验中均使用相同的训练设置进行训练。当通过通道-空间注意力模块实现全局特征信息提取时,识别准确率在RAF-DB和FERPlus上分别比基线网络提高了1.09个百分点和0.98个百分点。此外,使用Sub-center ArcFace损失函数能够在RAF-DB和FERPlus上分别比基线网络的准确度提高0.66个百分点和0.67个百分点。Attention-Transformer之所以能取得更好的表现,在于加强了对全局面部特征的关注以及使用了得到更好分类情况的损失函数,这两种方法不仅有助于获得面部特征的全局注意,而且可以很好地处理遮挡问题。

表4 在RAF-DB和FERPlus数据集上的消融实验结果Table 4 Ablation experiment results on RAF-DB and FERPlus datesets

下一个需要进行的实验是解决为什么本文选择将CSAM放置在Stage2后面。基线网络的各阶段特征图尺寸如下:Stage1后的特征为64×56×56,Stage2后的特征为128×28×28,Stage3后的特征为256×14×14,Stage4后的特征为512×7×7。对于CSAM来说,放置在不同阶段的主要区别是特征图所代表的全局信息以及维数不同。表5显示了当CSAM放置在不同阶段时模型得到的最终准确率,并在Stage2获得了最好的结果。

表5 在RAF-DB数据集上把CSAM放置在不同Stage后面的最终准确率Table 5 Comparison of final accuracy putting CSAM after different stages on RAF-DB dataset

同时本节需要验证CSWin Transformer相较于其他的Transformer主干模型而言,在野外表情识别任务上的优越性。为了将其与最近提出的Transformer主干网络进行对比,本部分实验首先将这些模型的tiny网络经过ImageNet预训练,然后在RAF-DB数据集上测试准确率。其中,LeViT Transformer[28]在DeiT的基础上重新引入卷积操作,同时用Attention bias将位置信息集成到Transformer中;ResT Transformer[29]提出了一种采用深度卷积的多头自注意力模块,跨注意力头维度进行投影交互,同时位置编码被构建为空间注意力;Twins Transformer[30]提出了局部-全局空间可分离自注意力,对特征的空间维度进行局部分组计算各组的自注意力,再从全局对分组注意力结果进行融合。这三个主干网络主要引入卷积操作并改变了自注意力模块,但准确率均低于87%。Swin Transformer[31]提出了一种包含滑窗操作的窗口自注意力结构,包括不重叠的local window和重叠的cross-window。这样将注意力计算限制在一个窗口中,不仅能更好地计算局部特征,而且能节省计算量。从表6的实验结果可以看出,这样的窗口注意力结构在野外表情识别任务上,明显优于之前三个没有窗口注意力的Transformer网络,并将准确率提升到87%以上。本文采用的CSWin Transformer[16]主干网络则更进一步,使用更加专注局部特征的十字型窗口自注意力,在水平与垂直方向上计算注意力,使得CSWin比Swin的准确率提高了0.27个百分点,在表情识别上拥有更好的效果,且明显优于其他类型的Transformer。

表6 在RAF-DB数据集上不同Transformer主干网络的准确率Table 6 Accuracy of different Transformer backbones on RAF-DB dataset

对于本文1.2节的通道-空间注意力模块(CSAM),其中两个注意力通道的排列方式为,让输入分别进入两个并列的通道后求和。对于两个注意力的关系,本部分将测试其他几种并展示在表7中。表7的第一行便是本文采用的方法;第二行是把输入分别进入两个并列的通道后,将两个结果的对应元素进行相乘操作,结果发现这样的方法并没有对模型准确率有较大提升效果;第三行是将输入先通过通道注意力进行计算,然后把得到的特征值放入空间注意力计算得到最后的结果,从准确率上发现这样的方法提高了模型识别效果,但是不如本文采用方法的提升结果好且降低了0.23个百分点;第四行与第三行方法类似,但调换了顺序,将输入依次通过空间注意力和通道注意力得到特征值,从结果上不如本文采用的注意力关系。

表7 在RAF-DB数据集上不同注意力关系的准确率Table 7 Accuracy of different attention relationship on RAF-DB dataset

2.5 扩大遮挡面积实验

为了验证模型对遮挡情况下表情识别的有效性,本文需要将模型放置在遮挡面积更大、训练情况更加困难的图像数据上进行测试。同时考虑到当前为了预防COVID-19疾病的传播,人们必须在公共场合戴上口罩,因此本部分实验所进行的研究是评估当口鼻区域被口罩遮挡时模型的表现,这样不仅满足了扩大遮挡面积实验的目的,而且更具有满足当下实际应用的意义。针对表情识别任务,脸上的口罩进一步增加了面部关键位置信息的遮挡,尤其是嘴部,这对以前的模型来说是一个困难的挑战。本文通过在人脸表情图像的口鼻区域添加口罩的方式来模拟COVID-19场景,并由此制作了Masked RAF-DB和Masked FERPlus口罩遮挡数据集。本部分实验一共对比了五种模型的效果,如表8所示,其中ResNet50[32]是计算机视觉识别任务中的经典通用卷积主干网络,具有代表性;基线网络Baseline是在ImageNet上预训练的CSWin-Transformer主干网络,可与卷积网络进行对比;RAN[8]通过划分图像并计算注意力,可以很好地处理遮挡问题,本部分实验将其作为与本文模型的对比;本文的Attention-Transformer模型训练分为两种情况,一种是将模型在ImageNet数据集上预训练,另一种是在原本的RAF-DB数据集,即无口罩(Non-masked)条件下的人脸表情图像上预训练。以Masked RAF-DB数据集为例进行对比,第一行的结果显示ResNet50对于包含强遮挡的图像识别准确率下降明显,而第二行的Baseline在准确率上有明显的提升,这说明基于Transformer的模型在强遮挡情况下比基于CNN的模型更有优势。第三行的RAN模型相比主干网络表现出较好的识别效果。第四行是本文的Attention-Transformer模型,比RAN网络的准确率提高了0.64个百分点,证明本文方法更加有效。第五行是在原RAF-DB数据集(即Non-masked)上预训练的Attention-Transformer,其准确率比第四行在ImageNet上预训练的Attention-Transformer提高了1.07个百分点。显然,通过提前将模型在非遮挡人脸图像上进行预训练,可以获得更好的结果,因为这样能够使模型获得更多关于原始未遮挡人脸中的表情信息来弥补训练时相关信息的缺失。

表8 在口罩遮挡下RAF-DB和FERPlus数据集的准确率Table 8 Accuracy on masked RAF-DB and FERPlus datasets

对于口罩遮挡情况下模型的可视化结果如图5所示。对本部分实验来说,因为口罩遮挡的原因,嘴部区域的表情特征受到严重影响,所以眼睛、眉毛周围的面部信息显得尤为重要。从图可以看出,基线网络(Baseline)对于遮挡情况下的识别会出现误区,注意力区域偶尔落在眼睛下方或者口罩与人脸的连接处,这使得模型不能够很好地分析表情特征。而在本文的Attention-Transformer中,由于通道-空间注意力模块对于注意力的调整,模型的注意力区域更加向眼部中心方位集中,同时扩大了对于中心周围的注意力面积,使得模型获得了比基线网络更加集中、更加有效且更加广泛的表情信息,提高了模型的识别效果。

图5 在RAF-DB口罩遮挡数据集上的可视化结果Fig.5 Visualization on masked RAF-DB dataset

3 结束语

本文以CSWin Transformer作为主干网络,来训练在遮挡下进行面部表情识别的网络,提出了通道-空间注意力模块(CSAM),使网络能够较好地提取到全局特征信息。随后,进一步使用Sub-center ArcFace损失函数来提高模型的分类效果。实验证明在两个公开的野外面部表情数据集RAF-DB和FERPlus上以及它们对应的两个口罩遮挡数据集上,模型识别准确率分别为88.80%、89.31%和76.12%、72.28%,提高了表情的识别精度,可以达到state-of-the-art的效果,有效抑制了遮挡对表情识别的影响。在后续工作中,将进一步在注意力机制和损失函数等方面探索更有效且更适合野外人脸表情识别的方法,继续对模型结构进行优化,提高模型对于表情识别的准确率和稳定性。

猜你喜欢
集上人脸注意力
实数集到时标上的概念推广的若干原则
让注意力“飞”回来
GCD封闭集上的幂矩阵行列式间的整除性
有特点的人脸
一起学画人脸
如何培养一年级学生的注意力
三国漫——人脸解锁
A Beautiful Way Of Looking At Things
师如明灯,清凉温润
长得象人脸的十种动物