1. 引言
微表情因其极短的持续时间、极低的强度以及高度局部化的面部肌肉运动,构成了模式识别领域的重大挑战。微表情是了解人类真实情感的重要窗口,这使得它在医学诊断、国防安全、教育、刑事审判、刑事侦查、广告和消费等许多应用领域得到了广泛的应用[1]。
目前深度学习方法,特别是卷积神经网络(CNN)已成为微表情识别的主流技术。Kim等人[2]首次将卷积神经网络(CNN)应用于微表情识别研究,但是微表情数据集大多是有限的并且是类别不平衡的,直接应用CNN时容易引起过拟合,Liong等人[3]使用单一顶点帧进行微表情识别,大幅减少了输入帧的冗余信息,但是参数量相比于单分支结构更大,需要对全局和局部定义多重约束条件,同时需要引入多个损失函数来区分类内和类间特征,模型复杂度过高。任煜[4]提出使用SE模块中添加的改进残差网络SE-RESNEXT-50来提取微表情峰值帧的特征,解决了由于数据集数量少和不同类别60个分布不均而导致的识别困难和识别精度低的问题。虽然上述算法在表情识别方面取得了良好的效果,但微表情短而隐蔽,导致识别困难,识别准确率低。在微表情识别的研究中,目前仍存在以下两个问题:一是难以精准定位关键运动发生的时序片段(关键帧)与空间区域;二是数据样本少导致模型不稳定,识别效果不佳。为解决上述问题,本文提出了一种基于深度学习的微表情识别算法,以densenet为基础,通过增强对微表情序列通道上和空间上特征的提取,实现自适应地学习输入数据的权重和特征,增强微表情的可识别性,该算法融入坐标注意力(Coordinate Attention, CA)模块[5],建模通道间依赖关系并沿水平和垂直方向编码精确的空间位置信息,同时在模型训练过程中采用对抗攻击训练策略,具体地,我们利用投影梯度下降(Projected Gradient Descent, PGD)方法[6],在原始图像序列上生成对抗样本,并将这些扰动样本纳入训练过程,这种训练策略不仅有效提升了模型对光照波动、噪声污染等常见扰动的容忍度,其强大的正则化效应也显著缓解了小样本数据下的过拟合问题。通过这一技术,模型能够更好地识别图像序列之间的微妙信息,从而提高微表情识别的准确性。
2. 相关工作
2.1. 人脸对齐和裁剪处理
在进行微表情识别之前,对原始的微表情数据集采取关键点检测和冗余部分的裁剪是很有必要的。本文中我们对数据的起始帧和顶点帧之间的序列进行等间隔抽取帧数,并去除距离顶点帧的间隔帧数大于10帧的冗余图像序列,组合起来后的新图像序列用来表示微表情的运动变化。
对于每个输入样本,利用Retinaface [7]方法来检测面部关键点区域并将其统一裁剪为128 × 128的大小作为模型的输入,裁剪的流程如图1所示。
Figure 1. Original image alignment and cropping process diagram
图1. 原始图像对齐裁剪过程图
2.2. 模型框架
本文的模型框架采用AD-Net (Apex Distillation Network),如图2所示,本文把顶点帧附近的图像作为网络的输入,大大减少了不必要信息,以densenet121为主干网络,每一层都可以直接获得所有先前层的特征图,从而实现特征重用和信息流,实现网络效率,图片在经过过渡层后,被送到坐标注意力模块(CA)中来强化关键时空区域定位和特征提取能力,并在分类之前我们引入特征细化来提取特定的微表情特征。此外,考虑到数据集稀缺的情况下,我们在训练过程中引入对抗攻击训练,旨在增强模型的稳定性和泛化能力。最后,为了应对微表情数据集中存在的分类不平衡现象,我们在损失函数中加入了权值矩阵,使得每个类别对损失值的贡献更加公平。这一改进有助于模型更加均衡地学习所有类别,尤其是在类别样本数量差异较大的数据集中,能够提高模型对少数类的识别能力,从而提升整体的性能。
Figure 2. AD-Net structure diagram
图2. AD-Net结构图
2.3. 坐标注意力机制
坐标注意力模块的独特之处在于它能够识别和区分不同的空间方向,即坐标,从而生成具有坐标感知能力的特征图,坐标注意力机制结构图如图3所示。与传统的注意力机制相比,CA在进行注意力分配时,不仅深入考虑了输入数据的特征信息,而且还融入了每个像素点的空间位置信息[8]。这种结合特征和位置信息的方法,使得CA能够更加精准地捕捉到图像中的局部细节和全局结构,在空间关系的理解上具有更高的准确性和敏感度。本文引入了CA机制,使模型对面部特征表征能力好的通道和位置赋予更大权值,更加关注受试者的面部特征信息,降低光照、噪声等杂质的干扰能力,提高表情的识别精度。
Figure 3. Coordinate attention mechanism structure diagram
图3. 坐标注意力机制结构图
具体实现是将式(1)中所定义的全局池化分解为两个一维特征编码操作,如式(2)和式(3)所示。
(1)
(2)
(3)
式中,i,j为坐标;W为特征图宽度;H为特征图高度;
为第C通道输入;
为该通道输出。
具体过程为:输入特征图经过残差块处理,然后分别进行宽度和高度方向的平均池化,得到两个不同维度的特征图。这两个特征图被拼接并通过一个2维卷积块进行处理,接着通过批归一化层和非线性激活层进一步加工。之后,特征图通过另一个2维卷积块,并通过Sigmoid函数转换为注意力权重,这些权重表示不同位置特征的重要性。最后,原始输入特征图与这些注意力权重相乘,得到加权后的特征图,再与原始特征图进行逐元素相加,形成最终的输出。这一过程不仅保留了原始信息,还通过注意力机制增强了模型对关键特征的关注,从而提升了模型的性能和泛化能力。
2.4. PGD对抗训练策略
PGD对抗训练是一种有效的对抗训练方法,主要用于寻找损失函数的最小值。它通过在每个迭代步骤中,根据梯度下降的方向进行参数更新,以达到损失函数最小化的目的[6]。相对于其它优化算法,PGD拥有许多优点,例如它对初始的选择不敏感,可以处理带约束的问题,而且它的运行速度也非常快。
在正常的训练过程中,首先进行一次前向传播和反向传播,计算模型的损失和梯度。然后,使用PGD类进行对抗训练,通过多次迭代攻击来生成对抗样本,并计算对抗损失。将对抗损失的梯度累积到原始梯度上,然后进行一次梯度下降更新模型参数。在每次对抗训练迭代后,恢复嵌入层的原始参数,以便在下一次迭代中重新计算梯度。PGD相关公式分别如式(4)、式(5)所示。
(4)
(5)
其中,
表示初始对抗数据等于原始数据;
表示第(n + 1)次更新后的对抗数据;P代表一种投
影函数,可确保对抗数据保持在有效范围内(通常与原始数据保持一定距离);a表示更新的学习率或步长;
sign(.)代表第n次迭代时损失函数相对于对抗数据的梯度符号,用于指导对抗更新;
表示损失
函数,指示模型性能;y为数据的真实标签。
2.5. 损失函数改进
由于微表情数据集存在分类不平衡的现象,因此模型的损失函数在交叉熵函数的基础上,添加了权值矩阵,使得每个类别对损失值的贡献更加公平,其计算公式如式(6)所示。
(6)
其中,J为模型计算中的一个批次的大小,
表示样本
真实标签的编码在分类
上的值,
为权值矩阵,计算公式如式(7)所示。
(7)
(8)
3. 实验及结果分析
3.1. 数据集
实验使用了CASME2、SAMM两个数据集。CASME2是中国科学院心理研究所傅小兰课题组发布的自发微表情数据集,它使用了200 FPS帧率的高速摄像机录制微表情视频,采集了26个受试者的247条微表情样本,这些样本被分为五类。SAMM是英国曼彻斯顿大学Davison等人发布的,采用帧率为200 FPS的高速摄像机对32个受试者采集了159个微表情样本,并将其分为七类,同时标注顶点帧,提供AU信息。所有样本被分为三类微表情:Positive、Negative、Surprise。为了采用统一的情感标签系统来进行微表情识别任务,实验中对情绪类别划分如下:“积极”情绪类别包括“快乐”,而“消极”情绪类别包括“悲伤”、“厌恶”、“蔑视”、“恐惧”和“愤怒”,“惊喜”情感类别特指“惊喜”。
3.2. 实验配置
本实验环境为windows11搭载的操作系统平台,配备16 GB运行内存,具体的配置如表1所示。图片输入大小为128 × 128,初始学习率为1 × 10−4,batch_size设置为16,epoch为100,数据集均使用的是LOSO交叉验证。
Table 1. Model training and testing environment configuration parameters
表1. 模型训练和测试环境配置参数
配置名称 |
参数或版本 |
GPU |
NVIDIA GeForce RTX 4060 GPU |
内存/显存 |
16 GB/8 GB |
深度学习框架 |
Pytorch 2.4.1 |
Python/CUDA |
3.9/12.4 |
3.3. 评价指标
本实验中我们使用了CASME2和SAMM数据集做实验,其中常用到的评价指标一般为Accuary和F1-score,具体涉及的计算公式如式(9)~(12)所示。
(9)
(10)
(11)
(12)
其中,TP表示正类预测正确的总数,FP代表将负类判定为正类的总数,FN代表正类判定为负类的总数,TN代表负类判定正确的总数,N表示测试样本的总数,P代表precision精确率,R代表recall召回率。Accurary从某种意义上可以评价一个分类器是否有效,但是对于样本不均衡的数据集,Accuracy不再适合作为评判,此时,F1-score更具有权威性,因为它是精确率与召回率的权衡。
3.4. 实验结果和分析
3.4.1. 消融实验
为了验证各个组件在模型中的重要性,本文进行了一系列的消融实验。消融实验的模型包括:仅Densenet、Densenet与PGD对抗训练策略、Densenet与坐标注意力机制、Densenet与坐标注意力机制和PGD方法结合的模型,需要说明的是,本文所有消融实验均基于相同的数据预处理策略,即在apex附近进行间隔抽帧,未引入显式的运动建模或区域级特征提取。在此基础上,通过引入PGD对抗训练和坐标注意力模块,对静态外观特征的判别能力进行增强,实验在CASME2、SAMM两个数据集上均进行了验证,如表2、表3所示。
Table 2. Ablation results (%) of each component on the CASME2 database
表2. 各组件在CASME2数据库上的消融结果(%)
模型 |
Accuary |
F1-score |
Dense |
81.35 |
78.98 |
Dense + PGD |
84.67 |
82.56 |
Dense + CA |
87.98 |
84.30 |
Dense + PGD + CA (AD-Net) |
90.45 |
84.94 |
Table 3. Ablation results (%) of each component on the SAMM database
表3. 各组件在SAMM数据库上的消融结果(%)
模型 |
Accuary |
F1-score |
Dense |
78.96 |
70.42 |
Dense + PGD |
80.21 |
72.08 |
Dense + CA |
82.10 |
74.10 |
Dense + PGD + CA (AD-Net) |
87.46 |
80.03 |
由表2和表3可知,所提出的AD-Net模型在CASME2和SAMM两个微表情数据库上均取得了优于单一模块改进模型的识别性能,验证了各组成模块的有效性及其协同作用。
在CASME2数据集上,基准DenseNet模型的准确率和F1-score分别为81.35%和78.98%。当引入PGD对抗训练策略后,模型的准确率提升至84.67%,F1-score提升至82.56%,分别提高了3.32%和3.58%,说明对抗训练能够在一定程度上增强模型对微表情细微变化的鲁棒性。进一步地,在基准模型中引入坐标注意力(CA)模块后,模型准确率和F1-score分别提升至87.98%和84.30%,相比基准模型均有明显提升,表明CA模块有助于模型更有效地挖掘具有判别力的特征信息。最终,当同时引入PGD和CA模块构建AD-Net模型时,模型在CASME2数据集上取得了最优性能,其准确率和F1-score分别达到90.45%和84.94%,进一步验证了两种改进策略在该数据集上的互补性和有效性。
在SAMM数据集上,由于样本规模较小且微表情幅度更加细微,整体识别难度更高。基准DenseNet模型在该数据集上的准确率和F1-score分别为78.96%和70.42%。引入PGD对抗训练后,模型性能有所提升,准确率提高至80.21%,F1-score提高至72.08%,分别提升了1.25%和1.66%。当加入CA模块后,模型准确率和F1-score分别进一步提升至82.10%和74.10%,说明注意力机制在复杂微表情场景中同样具有一定的有效性。最终,融合PGD与CA的AD-Net模型在SAMM数据集上取得了最优结果,其准确率和F1-score分别达到87.46%和80.03%,表明所提出方法在不同微表情数据库上均具有良好的稳定性和泛化能力。
3.4.2. 基于混淆矩阵的性能分析
Figure 4. Confusion matrix on the CASME2 dataset
图4. CASME2数据集混淆矩阵
为了进一步评估模型在不同情感类别上的分类性能,本研究采用混淆矩阵对各类别的识别结果进行细粒度分析。基于数据集的统一分类标准,本文将情感分为三个类别(positive, negative, surprise)进行评估。图4和图5分别展示了模型在CASME2与SAMM数据集上的混淆矩阵。从混淆矩阵中可以观察到,模型在negative类别的识别上表现稳定且准确率较高,说明模型能够较好地区分该类别特征。然而,在positive类别上的识别效果相对较弱,存在一定的误判情况,这提示该类别的特征表达可能与其他类别存在相似性,或训练样本的特征区分度不足,后续可通过引入注意力机制或融合时序特征以提升其判别能力。此外,surprise类别的识别虽然总体表现较好,但仍存在一定比例的误分,尤其是与positive类别之间的混淆,说明模型在该类别的边界特征学习上仍有优化空间。总之,本文方法在情感分类任务中具有一定有效性,尤其在negative类别上表现突出,而在positive和surprise类别上仍有提升潜力。
Figure 5. Confusion matrix on the SAMM dataset
图5. SAMM数据集混淆矩阵
3.4.3. 与其他模型的对比实验分析
为验证所提出AD-Net模型的有效性,本文将其与多种代表性微表情识别方法在CASME2和SAMM数据集上进行了对比实验,结果如表4和表5所示。
Table 4. Performance comparison (%) with other models on the CASME2 database
表4. 与其他模型在CASME2数据库上的性能对比(%)
方法 |
类别 |
Accuary |
F1-score |
OFF-ApexNet [9] |
3 |
88.28 |
86.97 |
STSTNet [10] |
3 |
86.86 |
83.82 |
SLSTT [11] |
3 |
75. 81 |
75.30 |
AM3F-FlowNet [12] |
3 |
84. 52 |
82.88 |
MMNet [13] |
3 |
88. 60 |
86.90 |
AD-Net (ours) |
3 |
90.45 |
84.94 |
Table 5. Performance comparison (%) with other models on the SAMM database
表5. 与其他模型在SAMM数据库上的性能对比(%)
方法 |
类别 |
Accuary |
F1-score |
OFF-ApexNet [9] |
3 |
68.18 |
54.23 |
STSTNet [10] |
3 |
68.10 |
65.88 |
SLSTT [11] |
3 |
72.38 |
64.00 |
AM3F-FlowNet [12] |
3 |
66.18 |
54.10 |
MMNet [13] |
3 |
80.10 |
72.90 |
AD-Net (ours) |
3 |
87.46 |
80.03 |
在CASME2数据集上,AD-Net取得了90.45%的准确率,高于多数对比方法,相比OFF-ApexNet和MMNet分别提升约2.17%和1.85%。在F1-score指标上,AD-Net达到84.94%,整体处于较高水平,表明该方法在保证较高分类准确率的同时,仍能维持较为稳定的类别判别能力。
在SAMM数据集上,AD-Net的性能提升更为明显,其准确率达到87.46%,相较于性能较优的MMNet提升约7.36%,F1-score也提升至80.03%。该结果表明,在样本规模更小、类别分布更不均衡的复杂场景下,AD-Net仍具有较好的鲁棒性和泛化能力。
4. 结论
本文提出了一种融合坐标注意力机制与对抗训练策略的深度学习模型AD-Net。通过坐标注意力模块增强模型对微表情时空关键特征的感知与提取能力,并结合PGD对抗训练提升模型在扰动环境下的鲁棒性,有效抑制了过拟合现象。在CASME2和SAMM数据集上的消融实验与对比实验表明,AD-Net在各项评价指标上均优于现有方法,特别是在样本规模较小、类别分布不均衡的SAMM数据集上仍保持较高的识别性能,说明该方法具有良好的适应性与泛化能力。然而,实验也发现模型在“积极”类别上的识别效果相对较弱,提示未来可在多模态特征融合、时序建模优化等方面进一步改进。总体而言,本文提出的方法为微表情识别提供了一种有效的技术路径,对推动其在真实场景中的应用具有一定的理论与实用价值。
NOTES
*通讯作者。