DDAMFN:使用双向注意混合特征网络进行面部表情识别

论文题目:A Dual-Direction Attention Mixed Feature Network for Facial Expression Recognition
论文地址:https://www.mdpi.com/2079-9292/12/17/3595

目前在FER(面部情绪识别)中排名第一(2024.8.19)

引言

面部表情识别 (FER) 是计算机视觉领域中的一个重要研究方向。近年来,随着深度学习技术的进步,研究人员开发了各种模型来提高FER的准确性。本文介绍了一种新颖的网络架构——双向注意混合特征网络 (DDAMFN),它在多个FER基准数据集上的表现优异,并展示了其在处理复杂面部表情识别任务中的强大能力。

数据集

在实验中,使用了以下三个主要的数据集来评估DDAMFN的性能:

  1. AffectNet:目前最大的公开FER数据集,包含两种基准测试:AffectNet-7 和 AffectNet-8,涵盖了多种表情类别。

  2. RAF-DB:一个从互联网获取的真实世界面部表情数据库,包含29,672张图像,标注了7种基本表情和11种复合表情。

  3. FERPlus:基于FER2013的数据集,改进了标注的准确性和均衡性,包含28,709张训练图像和3,589张验证图像。

方法

在这里插入图片描述

DDAMFN的架构由两部分组成:混合特征网络(MFN)和双向注意网络(DDAN)。以下是这两部分的详细说明,并附有具体的例子帮助理解。

1. 混合特征网络 (MFN)

MFN通过引入不同尺寸的卷积核来增强特征提取的多样性。它结合了残差瓶颈模块和非残差模块,以提高模型的表达能力和训练稳定性。

混合卷积 (MixConv) 的工作原理

假设我们有一个输入特征图,大小为 32 × 32 × 64,其中:
32 × 32 是特征图的空间维度(高度和宽度),64 是特征图的通道数。

在MFN中,我们可以使用不同尺寸的卷积核(如 3×3、5×5 和 7×7)来处理这些特征图。具体操作如下:
请添加图片描述

  1. 分割通道:
    我们将输入特征图的通道数 64 分成三组,每组 64/3 ≈ 21 个通道。
    第一组 21 个通道将使用 3×3 卷积核处理,第二组 21 个通道使用 5×5 卷积核,第三组 22 个通道使用 7×7 卷积核。
  2. 应用卷积:
    对于第一组通道,使用 3×3 卷积核在 32 × 32 的空间维度上滑动进行卷积操作,输出特征图大小仍为 32 × 32 × 21。
    对于第二组通道,使用 5×5 卷积核执行同样的操作,输出特征图大小为 32 × 32 × 21。
    对于第三组通道,使用 7×7 卷积核处理,输出特征图大小为 32 × 32 × 22。
    特征图合并:
  3. 将这三组特征图在通道维度上进行拼接,得到一个新的特征图,大小为 32 × 32 × 64。通过这种方式,模型能够从不同的空间尺度上提取特征,丰富了特征表达。

残差瓶颈模块与非残差瓶颈模块

在这里插入图片描述

残差瓶颈模块 (Residual Bottleneck Module)

残差瓶颈模块的主要功能是帮助捕捉复杂特征,并通过残差连接改善梯度流动,减轻深层网络中的梯度消失问题。

假设我们有一个输入特征图,大小为 32 × 32 × 64。残差瓶颈模块的工作流程如下:

  • 卷积层:输入特征图首先通过一个卷积层进行降维处理,例如将通道数从 64 降到 32。

  • 非线性激活:经过卷积后的特征图通过ReLU或PReLU激活函数进行非线性变换。

  • 再卷积:然后,特征图再通过一个卷积层恢复到原来的通道数 64。

  • 残差连接:最终,将输入特征图与经过两次卷积后的特征图逐元素相加,形成输出特征图。这种连接方式使得网络能够更容易地学习到复杂特征,同时保持信息流的通畅。

在这个过程中,卷积操作的步幅(stride)在控制特征图尺寸上起到了关键作用:

  • Stride=1:当 stride=1 时,卷积核在输入特征图上滑动时,每次移动一个像素,这意味着输出特征图的空间尺寸(高度和宽度)与输入特征图相同。这种设置在残差瓶颈模块中常用于保留输入的空间分辨率,以确保细节信息不被丢失。

  • Stride=2:当 stride=2 时,卷积核在输入特征图上每次移动两个像素,这将导致输出特征图的空间尺寸减少一半(高度和宽度均减少一半)。这种设置在残差瓶颈模块中通常用于降维,帮助网络逐层聚合信息,同时减少计算复杂度。

非残差模块 (Non-Residual Module)

非残差模块的设计目标是增强模型的表示能力,通过全连接卷积层使每一层都能有效地处理输入信息。

例子:在非残差模块中,假设输入特征图的大小为 32 × 32 × 64,具体处理流程如下:

  • 卷积层:输入特征图通过一个卷积层,产生新的特征图,例如将通道数从 64 降低到 32。
  • 激活函数:同样地,通过ReLU或PReLU激活函数对特征图进行非线性变换。
  • 再卷积:最后,特征图再经过一个卷积层,恢复到 64 通道。

与残差瓶颈模块不同,非残差模块没有直接的跳跃连接,这意味着每一层的输出完全依赖于当前层的卷积运算。这种设计迫使网络在每一层上都必须充分处理输入特征,从而捕捉更多的细节信息。

Stride的作用:

  • Stride=1:在非残差模块中使用 stride=1 可以保持特征图的空间尺寸不变,确保在每一层中都能保留足够的细节信息。
  • Stride=2:使用 stride=2 时,特征图的空间尺寸会减半,有助于降低计算量,并逐层汇总信息,适用于需要逐渐缩小特征图尺寸的网络部分。

通过组合使用残差瓶颈模块和非残差模块,MFN能够在捕捉复杂特征和增强信息流动之间取得平衡。这种设计不仅提高了模型的表达能力,还改善了深度网络的训练效果。

双向注意网络 (DDAN)

DDAN由多个独立的双向注意头组成,每个头在水平和垂直方向上生成注意力映射,以捕捉图像中的长距离依赖关系。

生成双向注意力映射的过程

例子:假设DDAN生成的水平和垂直方向的注意力映射分别为 A h A_h Ah A v A_v Av。我们以下面的步骤详细说明如何生成和应用这些注意力映射。

  1. 生成水平特征图 F h F_h Fh

    • 从输入特征图 F F F 中提取水平方向的特征,假设 F F F 的大小为 32 × 32 × 64,我们在宽度方向上进行全局深度卷积(GDConv)处理,得到 F h F_h Fh,大小为 1 × 32 × 64。这表示在水平方向上聚合了每一行的特征信息。
  2. 生成垂直特征图 F v F_v Fv

    • 类似地,从 F F F 中提取垂直方向的特征,在高度方向上进行GDConv处理,得到 F v F_v Fv,大小为 32 × 1 × 64,表示在垂直方向上聚合了每一列的特征信息。
  3. 生成水平注意力映射 A h A_h Ah

    • F h F_h Fh 首先通过一个全连接层将通道数从 64 降到较小的维度,例如 8,得到大小为 1 × 32 × 8 的特征图。
    • 然后通过另一个全连接层将通道数恢复到 64,生成最终的水平注意力映射 A h A_h Ah,大小为 1 × 32 × 64
  4. 生成垂直注意力映射 A v A_v Av

    • F v F_v Fv 进行类似的处理,先降维再恢复维度,生成垂直注意力映射 A v A_v Av,大小为 32 × 1 × 64
  5. 合并注意力映射

    • A h A_h Ah A v A_v Av 逐元素相乘,生成最终的注意力映射 A i A_i Ai,大小为 32 × 32 × 64
筛选最优注意力映射

在DDAN中,多个双向注意头会生成不同的注意力映射。这些映射可能对图像的不同区域有不同的关注点。为了找到最优的注意力映射,模型使用了基于均方误差(MSE)的筛选过程。

  1. 计算MSE损失

    • 对于每一对不同的注意力映射(如 A 1 A_1 A1 A 2 A_2 A2),计算它们之间的均方误差(MSE)。这个过程衡量了不同注意力头生成的映射之间的差异。
  2. 选择最优注意力映射

    • 选择使得MSE最小的那个注意力映射作为最优注意力映射 A m A_m Am,这个映射能够更好地捕捉图像中关键的面部特征区域。
应用注意力映射
  • 将筛选出的最优注意力映射 A m A_m Am 应用于原始特征图 F F F,通过逐元素相乘的方式调整特征图的值:
  • 例如,假设在 F F F 的第10行第3个通道的原始特征值为 0.9,水平和垂直注意力值分别为 0.70.8,则调整后的特征值为:

F a d j u s t e d [ 10 , 3 ] = 0.9 × 0.7 × 0.8 = 0.504 F_{adjusted}[10, 3] = 0.9 \times 0.7 \times 0.8 = 0.504 Fadjusted[10,3]=0.9×0.7×0.8=0.504

  • 这一过程增强了关键区域的特征表达,使模型能够更准确地识别出面部表情。

最终损失函数

为了优化DDAMFN的整体性能,论文设计了一个结合分类损失 L c l s L_{cls} Lcls和注意力损失 L a t t L_{att} Latt的最终损失函数:

L = L c l s + λ a L a t t L = L_{cls} + \lambda_a L_{att} L=Lcls+λaLatt

  • L c l s L_{cls} Lcls(分类损失):使用标准的交叉熵损失函数来衡量模型的分类性能。
  • L a t t L_{att} Latt(注意力损失):用于确保不同的DDA头关注不同的面部区域,避免它们过度重叠。
  • λ a λ_a λa(超参数):用于平衡分类损失和注意力损失的权重,默认值为 0.1

这个组合损失函数能够在保证分类准确性的同时,优化注意力机制的表现,使模型能够更加有效地关注关键的面部区域。

实验与结果

通过在AffectNet、RAF-DB和FERPlus数据集上的实验,DDAMFN在FER任务中展现了卓越的性能。以下是主要的实验结果:

  • 消融实验:分析了每个组件对DDAMFN整体性能的贡献,验证了双向注意机制和混合特征提取的有效性。

  • 对抗攻击实验:通过在图像中加入噪声,评估了模型对关键区域的依赖性,结果表明DDAMFN能够有效识别并聚焦于最重要的面部区域。

  • 类别不平衡分析:使用混淆矩阵分析了模型在不同表情类别上的表现,发现了模型在处理一些易混淆表情(如“厌恶”和“愤怒”)时的困难。

讨论

可能的解释与未来的影响

研究表明,DDAMFN之所以在FER任务中表现优异,主要得益于其对与面部表情相关的关键区域的关注。通过对抗攻击实验验证了这些区域的关键性,这也为未来在情感机器人、人机交互等领域的应用提供了可能性。

未来研究方向

  • 类别不平衡:未来研究将继续改进模型在处理类别不平衡问题上的表现,探索更有效的标注修正方法。

  • 跨数据集验证:进一步加强模型在不同数据集间的迁移学习能力,以提高模型的泛化性能。

结论

DDAMFN通过结合双向注意力机制和混合特征提取技术,在多个基准数据集上取得了卓越的表现。未来的研究将致力于解决类别不平衡和跨数据集验证中的挑战,同时探索更多实际应用场景中的模型性能。

  • 24
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值