文章目录
论文:
https://openaccess.thecvf.com/content/CVPR2023/papers/Wang_Rethinking_the_Learning_Paradigm_for_Dynamic_Facial_Expression_Recognition_CVPR_2023_paper.pdf
代码:
https://github.com/Tencent/TFace/tree/master/attribute/M3DFEL
存在的问题:
- 在第一行图像中,主体主要表现为中性,但视频被标记为快乐,而没有指定表达情感的确切时刻(如果没有一个位置标签可以引导模型忽略不相关的帧并专注于目标,模型很可能会被不精确的标签所迷惑)【如何建模成一个弱监督学习的问题】
- 在第二排,要联合几张图片才能看出真实情绪,但其中任何一张图片表达的信息都是嘈杂和不清楚的(一些微表情可能发生在短剪辑内,而表情之间的一些面部移动可能会破坏各个帧)【如何建模强短期关系】
- 在第三行中,所有帧都显示为中性,但随着时间的推移,对面部运动的更仔细分析会发现嘴角上扬,表示微笑【如何建模弱长期关系】
研究思路:
- 拟采用的框架:使用弱监督策略来训练模型,而不是将非目标帧视为噪声帧。具体来说,我们建议将DFER建模为多实例学习(MIL)问题,其中每个视频被视为包含一组实例的包。在这个MIL框架中,我们忽略视频中的非目标情感,只关注目标情感。然而,大多数现有的MIL方法是时间无关的,这是不适合DFER。因此,一个专门的MIL框架DFER是必要的,以解决不平衡的短期和长期的时间关系【设计一个多实例学习框架;我的理解是利用多实例学习实现弱监督,加入一些模块建模时间关系,以统一的方式解决不平衡的短期和长期时间关系以及DFER中的弱监督问题】
- 框架思路:本文提出的M3DFEL框架旨在以统一的方式解决DFER中不平衡的短期和长期时间关系以及弱监督问题。它使用3D-Instance和R3D18模型的组合来增强短期时间学习。一旦实例特征被提取,它们就被馈送到**动态长期实例聚合模块(DLIAM)**中,该模块将特征聚合成袋级表示。DLIAM是专门设计来捕获实例之间的长期时间关系。此外,采用动态多实例规范化(DynamicMulti-Instance Normalization,DMZ),通过执行动态规范化来维护包级和实例级的时态一致性
研究方法
方法概述
MIL流水线通常包括四个步骤:实例生成、实例特征提取、实例聚合和分类。
在DFER的情况下,所提出的M3DFEL框架遵循该步骤:利用3DCNN从生成的3D-instances中提取特征并学习短期时间关系。DLIAM是用来模拟长期的时间关系,同时动态融合的实例到一个包。为了保持包级和实例级的时间一致性,引入了DMZ(动态归一化)。
具体方法
三维实例生成
通过将视频裁剪成帧来生成实例是MIL任务的常见方法,因为它们通常是基于帧的任务,例如弱监督对象检测或动作定位。然而,在DFER中,一些帧可能在对象说话时无法捕获典型的面部表情。虽然这些帧本身看起来不正常,但它们实际上代表了面部运动的运动。此外,与其他MIL任务相比,类之间面部运动的差异是微妙的,这意味着即使是很小的运动也会导致预测的情绪和特征的变化。
给定包含 T T T帧图像的视频 V V V,我们将视频裁剪成维度 T T T上的 N N N个部分。然后,袋可以被定义为实例序列 I = [ I 1 , I 2 , ⋯ , I N ] I = [I_1,I_2,\cdots ,I_N] I=[I1,I2,⋯,IN],其中 I n ∈ R C × T × H × W I_n ∈ R^{C×T×H×W} In∈RC×T×H×W表示第n个3D实例。这种设计使得特征提取器能够通过捕获跨实例的面部运动的运动以及当对象说话时的一致情感来对强短期时间关系进行建模。
实例特征提取
利用R3D18用于提取包内每个实例 I n I_n In的特征 F n F_n Fn。R3D18模型提取压缩帧表示,并结合每个实例的相邻帧的时间信息。每个包中的实例特征表示为 F ∈ R N × C F ∈ R^{N×C} F∈RN×C,其中C表示通道的数量。基于3D-Instance-based MIL设置加强了短期时间学习。
动态长期实例聚合
动态长期实例聚合模块(DLIAM)提出了动态聚合的实例,同时建模的长期时间关系。
第一步是使用BiLSTM捕获实例之间的长期时间关系
为了动态聚合实例的表示,我们首先应用多头自注意(MHSA)学习实例间的关系,得到一个注意权重 A ∈ R N × C A ∈ R^{N×C} A∈RN×C
经过上面两步之后表情在短期内不太稳定,为了解决这个问题,设计了一个动态多实例归一化(DMZ)方法,以保持包和实例级别的时间一致性。我们定义一组归一化器 K = b n , i n K = bn,in K=bn,in,并动态调整重要性权重,其中 b n bn bn表示袋级归一化器, i n in in表示实例级归一化器。令 A n c A_{nc} Anc和 A ^ n c \hat{A}_{nc} A^nc是归一化之前和之后的第 n n n个实例的第 c c c个通道值,并且归一化过程可以如下所示:
其中 µ k µ_k µk和 σ k σ_k σk分别是使用实例的特定通道值的归一化器 k k k估计的均值和方差值。 ϵ \epsilon ϵ是为了数值稳定性而添加的一个小数字。可学习的仿射变换参数由 γ γ γ和 β β β表示。归一化子 k k k的重要性权重由 w k w_k wk和 w ′ k w′_k w′k表示,并且是动态调整的。
包级归一化:
实例级归一化:
对于实例的最终聚合,权重首先在sigmoid函数之后与实例相乘。然后,使用Conv 1D层将实例级特征X聚合成袋级特征 Z ∈ R N × C Z ∈ R^{N×C} Z∈RN×C
实现细节
整个框架使用PyTorchGPU实现,并在Tesla V100 GPU上进行训练
对于特征提取,我们采用R3D18模型,并利用Torchvision提供的预训练权重。使用AdamW优化器和余弦调度器对模型进行了300个epoch的训练,其中20个预热epoch。学习速率被设置为5e-4,最小学习速率被设置为5e-6,权重衰减被设置为0.05。我们使用的批量大小为256,并应用值为0.1的标签平滑。采用的数据增强技术包括随机裁剪,水平翻转和0.4的颜色扰动。对于每个视频,我们提取总共16帧作为我们的样本。在所有的实验中,我们使用加权平均召回率(WAR)和未加权平均召回率(UAR)作为评价指标,更强调的是WAR,因为它被认为是关键的指标。
讨论
很明显,尽管提出了M3DFEL框架,DFER中仍有许多未解决的问题。我们对失败案例的分析表明,大多数失败案例发生在分类阶段,而不是MIL中的实例融合。例如,如果大多数视频帧是中性的,那么整个包的融合结果就是非中性的情绪,这是符合预期的。然而,该模型经常对非中性情绪进行错误分类,例如将 "恐惧 "分类为 “惊讶”。这表明目前的性能在很大程度上受限于模型的分类能力。
一个主要问题是不平衡的标签问题,由于数据集中缺乏具有这些标签的样本,厌恶和恐惧的准确率被牺牲了。这个问题在DFER中比在SFER中更严重,表明仅仅利用DFER数据集可能是不够的。这个问题可能的解决方案有改变学习或者自监督的预训练方法。另一个问题是,DFER中的一些表情比静态表情的强度低得多,这与微表情识别(MER)中的关键问题类似。利用光流等MER技术可能有助于解决这个问题。此外,一些先验知识,如landmark或面部动作单元,可以为模型提供有用的提示。除了这些问题,噪声标签问题、不确定性问题和硬样本问题都对DFER有很大影响。更重要的是,我们很难区分是应该强调还是削弱对样本的学习。除了现有的问题,我们希望模型不应该对数据集本身过拟合。由于FERV39K提供了跨领域的支持性,领域泛化是一个重要的研究方向。
可改进的地方
- 对视频帧继续聚类(难点:聚类会破坏视频的序列信息,如何对视频帧进行聚类,一种可能的解决思路是把一个视频片段分成更小的片段之后进行聚类,可能可以在保留时序信息的前提下,去掉中间的一部分冗余信息)
- 注入AU动作单元(拟参考GANimation: Anatomically-aware Facial Animation from a Single Image)
- 采用diffusion的技术进行数据增强(难点:学习diffusion的相关技术,跑通代码)
相关概念
多实例学习
MIL是一种旨在解决不精确标记问题的技术。传统上,每个样本被视为一袋实例,其中只有当所有实例都是阴性时,该袋才被标记为阴性。否则,该袋被视为阳性。MIL通常用于只有一个标签的大量样品的情况。在这些情况下,方法必须准确地识别和识别包含显著比例的负面实例的数据集中的正面实例。
多实例学习的概念:假设训练数据集中的每个数据是一个包(Bag),每个包都是一个实例(instance)的集合,每个包都有一个训练标记,而包中的实例是没有标记的;如果包中至少存在一个正标记的实例,则包被赋予正标记;而对于一个有负标记的包,其中所有的实例均为负标记。(这里说包中的实例没有标记,而后面又说包中至少存在一个正标记的实例时包为正标记包,是相对训练而言的,也就是说训练的时候是没有给实例标记的,只是给了包的标记,但是实例的标记是确实存在的,存在正负示例来判断正负类别)。
R3D18网络
A Closer Look at Spatiotemporal Convolutions for Action Recognition
CVPR2018 | R(2+1)D结构:视频动作识别中的时空卷积深度探究
(a)忽略了视频的时间顺序,把 L L L当作通道处理。所以2维模型就是把输入的4维张两reshape为3维张量: 3 L × H × W 3L×H×W 3L×H×W
(b)猜想:动作建模在浅层是有用的,但在高级语义抽象层(深层),动作建模是不必要的
还是有一种可能的情况就是时间信息在深层仍然很重要,所以就在浅层空间建模,深层时空建模加入时间信息
(d)3维卷积保留了时间信息,并可以在层与层之间传播。3维卷积残差块的输出则是4维张量,大小是N×L×H×W,每一个卷积核也是4维的,尺寸是 N ′ × t × d × d N'×t×d×d N′×t×d×d, t t t是时间维度上的跨度,帧数。 N ’ N’ N’是上一层输出的3维卷积核个数
(e)把3维时空卷积分解成2维空间卷积和1维时间卷积,那么卷积核大小变成了 N ’ × 1 × d × d + M × t × 1 ∗ 1 N’×1×d×d+M×t×1*1 N’×1×d×d+M×t×1∗1。超参数 M M M决定了信号在时、空卷积之间投影的子空间个数
Bottleneck layer又称之为瓶颈层,Bottleneck 的核心思想利用多个小卷积核替代一个大卷积核,利用 1x1 卷积核替代大的卷积核的一部分工作。vanilla类型(没有bottleneck结构)。
启发:我们可以换一种网络结构,采用2+1或者1+2的模式
SN 可微分学习的自适配归一化
(DIFFERENTIABLE LEARNING-TO-NORMALIZE VIA SWITCHABLE NORMALIZATION
https://zhuanlan.zhihu.com/p/39296570
https://arxiv.org/abs/1806.10779
minibatch size的变化对BN的影响最大,因为BN使用的均值和方差是在minibatch当中统计的。minibatch越小,这些统计量的估计会带有更大的噪声,对模型训练产生过大的规范化(regularization)作用或称正则化作用,从而影响模型的泛化性能。而IN,LN和GN(group normalization)在计算统计量时虽然与minibatch无关,却由于缺乏正则化能力在大的minibatch时无法达到BN的精度(与BN不同,这些技术单独使用往往导致较明显的过拟合现象)。SN通过学习不同归一化方法的相互作用(权重系数),克服了上述问题。无论minibatch大还是小,SN都能自适配的学习出合适的归一化方式,保持高精度。总的来说:
minibatch越小,SN中BN的权重系数越小,IN和LN的权重系数则越大;
minibatch越大,SN中BN的权重系数越大,IN和LN的权重系数越小。
ibatch大还是小,SN都能自适配的学习出合适的归一化方式,保持高精度。总的来说:
minibatch越小,SN中BN的权重系数越小,IN和LN的权重系数则越大;
minibatch越大,SN中BN的权重系数越大,IN和LN的权重系数越小。
启发:论文中没有用到不同batch之间的信息,可以考虑加入
文章评论