会议:ICCV2023
摘要
尽管面部表情识别(FER)技术在高度控制的环境中取得了显著进展,但在现实世界的应用中,由于意外物体遮挡面部,FER网络在提取面部特征和准确预测面部表情方面面临困难。针对这一挑战,作者提出了Latent-OFER方法,它能够检测遮挡、恢复被遮挡的面部部分,并提高FER的准确性。该方法包括三个步骤:使用基于视觉变换器(ViT)的遮挡补丁检测器通过支持向量数据描述(SVDD)算法仅从未遮挡的补丁中训练潜在向量来掩盖遮挡位置;混合重建网络使用ViT和卷积神经网络(CNN)生成完整的图像;最后,表情相关潜在向量提取器通过应用基于CNN的类激活图来检索和使用所有潜在向量中的与表情相关的信息。实验结果表明,该方法在多个数据库上的性能优于现有技术。
拟解决的问题
论文主要解决的问题是现实世界中面部表情识别在面对面部遮挡时的性能下降问题。遮挡可能是由各种意外物体造成的,这使得FER网络难以准确地提取面部特征。
创新之处
- 提出了一种新的表达式相关特征提取器,它使用空间注意力机制赋予特定面部特征更高的权重,从而识别FER的关键位置。
- 提出了ViT-SVDD,一种针对ViT基础网络优化的基于补丁的遮挡检测模块,该模块仅使用未遮挡面部图像的潜在向量进行自监督训练。
- 提出了一种混合重建网络,结合了ViT和CNN架构的优势,并引入自组装层和语义一致性损失,以生成自然且表情丰富的面部图像。
方法
Latent-OFER方法包括三个主要步骤:
- 遮挡检测:使用ViT-SVDD算法检测并掩盖被遮挡的位置。
- 图像重建:混合重建网络利用ViT和CNN生成完整的面部图像。
- 表情识别:通过结合CNN特征和特定的ViT基础潜在向量来预测面部表情。
遮挡检测模块ViT-SVDD
ViT-SVDD的目的是使用一种单类分类方法,通过自监督学习来检测面部图像中由于未见物体造成的遮挡。这种方法在训练期间仅使用未遮挡的补丁,使得模型能够在实际应用中有效地检测未知的遮挡对象。
步骤如下:
- 图像分割: 首先,输入的面部图像被分割成多个固定大小的区域,这些区域在ViT中被称为"tokens"。
- 特征提取: 每个token通过ViT的编码器进行处理,生成对应的潜在向量(latent vectors),这些向量捕获了token的图像特征。
- 训练SVDD模型: 使用未被遮挡的tokens的潜在向量来训练SVDD模型。SVDD模型的目标是找到一个特征空间的中心点(c),使得所有正常(未遮挡)的tokens的潜在向量都尽可能靠近这个中心点。
- 计算距离: 对于每个新的输入token,计算其潜在向量与SVDD模型中确定的中心点(c)之间的距离。
- 判断遮挡: 如果一个token的潜在向量与中心点的距离超过了预先设定的阈值或半径,这个token就被认为是异常的,即它是一个遮挡块。
- 自动确定半径: SVDD过程会通过优化算法自动确定这个半径的最优值,以便最好地区分正常和异常数据。
损失函数如下:
-
第一部分是所有正常图像特征收敛到中心点c的诱导项。
-
第二部分是网络参数W的权重衰减正则化项,使用Frobenius范数表示。
其中,n 表示训练数据的数量,L 表示层的数量,W 表示权重集合,c 表示特征空间中的中心点,λ 是正则化超参数。
拓展阅读:
SVDD(Support Vector Data Description)是一种用于异常检测或变化点检测的机器学习算法。它最初是为支持向量机(SVM)设计的,用于分类问题,但后来被扩展到单类问题,即只有一类数据可用,需要识别这组数据中的异常或变化点。
图像重建模块
图像重建模块采用了混合重建网络,该网络结合了视觉变换器(ViT)和卷积神经网络(CNN)的优势。这种混合网络结构利用了ViT在处理全局上下文信息方面的能力以及CNN在处理局部特征方面的强大性能。
自组装层(Self-assembly Layer)
专门针对面部图像的重建进行了设计。基于人脸左右对称性的特点,自组装层使用水平翻转图像中的对应位置信息来重建被遮挡区域。具体操作如下:
- 特征信息融合: 在重建被遮挡区域时,自组装层结合了三个来源的信息:之前生成的patch、未被遮挡区域中最相似的patch以及水平翻转图像中对应位置的patch。
- 相似度权重: 通过计算cross-correlation metric来确定每个来源信息的相似度权重,然后根据这些权重将信息融合,生成新的patch。
![](https://i-blog.csdnimg.cn/direct/5821b8de72c54aac91df5c36ef2940c2.png)
cross-correlation metric的计算:
其中 p 表示掩码区域中的补丁,补丁 是比较目标。p 和
之间的相似度值用 S 表示。
新patch的生成:
其中:
-
当前新生成的patch(红色patch)
表示与
对称的patch(蓝色patch)
表示未遮挡的patch里面与
最相似的patch(橙色patch)
表示先前生成的patch(黄色patch)
表示
与
的相似度
表示
与
的相似度
表示
与
的相似度
损失函数
图像重建的目标是填补被遮挡的部分,以提供FER所需的补充信息。为了实现这一目标,重建模块采用了以下损失函数:
- 重建损失(
): 用于优化重建图像与原始图像之间的相似度。
- 一致性损失(
): 用于确保重建图像在语义上与上下文保持一致。
- 语义一致性损失(
): 特别强调面部表情属性,减少类内变异性。
- 判别器损失: 包括特征patch判别器损失(
)和patch判别器损失(
),用于增强生成图像的真实感。
面部表情识别网络
面部表情识别网络是基于注意力机制的模型,它利用空间注意力和通道注意力机制来提高表情识别的准确性。这种设计允许网络专注于对表情识别最重要的面部区域。
- 空间注意力(Spatial Attention): 通过空间注意力,网络能够识别图像中对表情识别至关重要的特定区域,并赋予这些区域更高的权重。
- 通道注意力(Channel Attention): 通道注意力有助于网络在不同的表情特征中进行选择,强调对当前任务更有区分性的特征。
结论
论文提出的Latent-OFER模型在遮挡和未遮挡条件下都表现出色。在遮挡FER数据集和典型FER数据集上的评估表明,该方法达到了最先进的准确性水平。作者还讨论了遮挡补丁检测器的性能以及使用单一数据集训练的图像重建模块可能存在的可扩展性限制,并提出了相应的解决方案。