SVFormer: Semi-supervised Video Transformer for Action Recognition

SVFormer: Semi-supervised Video Transformer for Action Recognition 阅读笔记

亮点:

  1. 提出一种新颖的数据增强策略——Tube TokenMix(TTMix)。通过利用具有在时间轴上一致性的masked tokens的mask,将视频段混合。
  2. 提出了一种时间扭曲增强技术——Temporal Warping Augmentation(TWAug)去掩盖视频中复杂的时间变化。这个技术使得选定的帧拉伸到视频段中不同的时间持续期间。
  3. 这篇论文的结果很好,尤其是在Kinetics-400数据集上比SOTA(CMPL)涨点31.5%

背景及解决措施

​ 在互联网上,视频逐渐取代了图片和文字,所以有了很多没有标签的数据。监督学习已经靠着标记数据取得了成功,但是标记数据太耗费时间和耗费金钱。为了利用上大规模的无标记数据,所以采用半监督学习做动作识别。

​ 以前的SSL方法是采用图像增强如Mixup或者CutMix来加速收敛,但是这种方法只适用于图像数据,这种方法用于视频会使得网络忽视掉视频数据天然具有的时间信息。所以作者提出了TTMix这种适合Video Transformer的数据增强方法。

​ 之前的时间增强方法,只考虑了时间的缩放或移动,忽视了在人体运动中的各个部分的时间变化。为了帮助模型学习强时间动态,所以作者提出了TWAug。这个方法是对空间增强的补充

​ TWAug和TTMix结合,实现了显著的效果提升

figure_1

详细方法

模型的训练分成两部分:

  1. 对于有标签数据\(\{(x_l,y_l)\}^{N_l}_{l=1}\) ,这个模型优化下面的监督学习loss函数\(\mathcal{L_s}\) \[ \mathcal{L_S}=\frac{1}{N_L}\sum^{N_L}{\mathcal{H}(\mathcal{F}(x_l),y_l)} \]

    其中\(x_l,y_l\) 分别指的是第\(l\) 个视频段和其对应的标签。总共有\(N_l\) 条标记视频。\(\mathcal{H}(·)\) 指的是标准交叉熵损失函数,\(\mathcal{F}(·)\) 指的是模型的预测结果。

  2. 对于无标签数据\(x_u\) ,采用弱增强(如随机水平翻转、随机缩放、随机剪裁)和强增强(如AutoAugment、Dropout)两种措施生成两种视图\(x_w = \mathcal{A_{weak}}(x_u),\ x_s = \mathcal{A_{strong}}(x_u)\)。对弱增强视图进行推理得到数据的伪标签\(\hat{y}_m = arg\ max(\mathcal{F}(x_w))\) 。生成的伪标签通过下面的loss函数用于监督强视图。 \[ \mathcal{L_{un}} = \frac{1}{N_U} \sum^{N_U}\mathbb{I}(max(\mathcal{F}(x_w)) > \delta)\mathcal{H}(\mathcal{F}(x_s),\hat{y}_w) \] 其中\(\delta\) 是置信阈值,\(\mathbb{I}\) 是指示函数,最大类概率大于\(\delta\) 时取1否则取0。这个指示函数用于过滤噪声伪标签。

为了避免模型在训练的时候崩溃,作者采用指数移动平均(EMA)-Teacher模型在FixMatch中。参数更新公式: \[ \theta_t \gets m \theta_t + (1-m)\theta_s \] 其中\(m\)时动量系数。\(\theta_t,\theta_s\) 分别是teacher模型的参数和student模型的参数。

Tube TokenMix

figure_2

Mixing in Videos

参考上面pipeline(pipeline中省略了数据增强的部分)。Mixing in Videos指的是\(x_a,x_b\) 经过Tube TokenMix 生成 \(x_{mix}\) 的过程。细节如下:

  • 给了两段无标记的视频\(x_a,x_b \in \mathbb{R}^{H \times W \times T}\)

  • 利用token级的\(M \in \{0,1\}^{H \times W \times T}\),进行样本混合。其中H,W是对视频帧进行token化之后的高和宽,T是剪辑长度。这个\(M\)就是Tube TokenMix生成的蒙版。

  • 通过下面的式子混合\(x_a,\ x_b\)。其中\(\odot\) 指的是 element-wise multiplication,对应元素相乘即Hadamard Product(学到了高级的表达)\(\mathbf{1}\) 指的是全为1的矩阵。 \[ x_{mix} = \mathcal{A_{strong}}(x_a) \odot \mathbf{M} + \mathcal{A_{strong}}(x_b) \odot \mathbf{(1-M)} \]

然后将得到的\(x_{mix}\) 喂入student model \(\mathcal{F_s}\) 得到预测标签\(\hat y_{mix} = \mathcal{F}(x_{mix})\)

先对\(x_a,\ x_b\)进行弱增强,然后喂到Teacher model中通过如下过程产生伪标签\(\hat y_a, \ \hat{y}_b\): \[ \hat{y}_a = arg\ max(\mathcal{F_t}(\mathcal{A_{weak}}(x_a))) \\ \hat{y}_b = arg\ max(\mathcal{F_t}(\mathcal{A_{weak}}(x_b))) \] 注意如果 $max(((x))) < $ 则\(\hat y\) 就是\(\mathcal{F_t}(\mathcal{A_{weak}}(x))\) (这里对应了pipeline中的虚线。)

\(x_{mix}\)的伪标签通过下面的方程生成 \[ \hat{y}_{mix} = \lambda·\hat{y}_a + (1-\lambda)·\hat{y}_b \] 这个方程是参考Mixup方法提出的。

首先常用于生成带有高质量伪标签的数据的数据增强方法是Mixup。通过对样本-标签对进行如下的凸组合的方式生成新的数据。 \[ \hat{x} = \lambda·x_1 + (1-\lambda)·x_2, \\ \hat{y} = \lambda·y_1 + (1-\lambda)·y_2, \] 其中 \(\lambda\) 符合\(\beta\)分布。

figure_3
figure_6

这里为了可视化,所以在图像级展示了各种混合方法的效果。

  • Mixup是两幅图像像素加权融合。
  • CutMix是随机剪切图像块状融合。
  • PixMix是像素级的融合,像素值不是选a的帧就是选b的帧。
  • FrameTokenMix是在时间轴上,从视频段a中选择帧替换掉视频段b中对应时间的帧从而形成新的视频段。
  • RandTokenMix是在每个a,b对应的帧上,使用PixMix,然后在生成新的视频段上的不同帧的过程中用的mask每次都不同。
  • TubeTokenMix跟RandTokenMix的区别就是,不同时间上的帧融合用的mask相同。

最后student model通过下面的一致性损失函数进行优化: \[ \mathcal{L}_{mix} = \frac{1}{N_m}\sum^{N_m}(\hat{y}_{mix} - y_{mix})^2 \] 其中\(N_m\) 是混合样本\(x_{mix}\)的数目。

对于TTMix的一致性损失算法如下:

Algorithm_1

Temporal Warping Augmentation(TWAug)

这部分的作用是,能够把一帧拉伸到不同的时间长度,这样做是为了给数据引入更多的随机性。

figure_5

给定一个T帧的视频如上图,随机决定是保存全部的帧,或者保存小部分帧。对于保存部分帧的情况,会随机填充邻近的可见帧。作者说TWAug可以帮助模型在训练过程中学习灵活的时间动态

figure_4

如上图所示,作者采用了常规增强(对Clip\(x_a\) 的处理)和TWAug(对Clip\(x_b\) 的处理)两种方式分别处理两个输入,然后再经过TTMix进行混合。

训练过程

训练分为三部分:

  1. 监督学习 \[ \mathcal{L_S}=\frac{1}{N_L}\sum^{N_L}{\mathcal{H}(\mathcal{F}(x_l),y_l)} \]

  2. 无监督伪标签一致性损失 \[ \mathcal{L_{un}} = \frac{1}{N_U} \sum^{N_U}\mathbb{I}(max(\mathcal{F}(x_w)) > \delta)\mathcal{H}(\mathcal{F}(x_s),\hat{y}_w) \]

  3. TTMix一致性损失 \[ \mathcal{L}_{mix} = \frac{1}{N_m}\sum^{N_m}(\hat{y}_{mix} - y_{mix})^2 \]

最后损失函数如下: \[ \mathcal{L_{all}} = \mathcal{L_s} + \gamma_1\mathcal{L_{un}}+\gamma_2\mathcal{L_{mix}} \] 其中\(\gamma_1,\ \gamma_2\) 是用于平衡损失的超参数。

实验结果

  • Baseline是TimeSformer

  • 8或16个GPU(具体型号没找到)

  • 数据集

    • Kinetics-400
    • UCF-101

与SOTA方法比较

table_1
table_2

SSL 框架选择

table_3

TokenMix 效果比较

table_4

时间、空间变换增强有效性效果

table_5

不同推理方案的有效性效果

table_6

超参数对结果的影响

figure_7

SVFormer: Semi-supervised Video Transformer for Action Recognition
https://pixelpilot666.github.io/2024/03/03/SVFormer/
作者
PixelPilot
发布于
2024年3月3日
许可协议