FightingCV

V1

2022/11/23阅读:34主题:默认主题

VideoMAE:南大&腾讯联合提出第一个视频版MAE框架,遮盖率达到90%

NeurIPS 2022 | VideoMAE:南大&腾讯联合提出第一个视频版MAE框架,遮盖率达到90%

论文地址:https://arxiv.org/abs/2203.12602[1]

代码地址: https://github.com/MCG-NJU/VideoMAE[2].

动机

Transformer给自然语言处理领域带来了巨大的进步,vision Transformer也提升了一系列的计算机视觉任务的性能,基于线性映射的多头自注意力机制能够对空间和时间上的视觉内容进行全局建模,通过这种灵活的注意力机制能够降低归置偏差。训练vision Transformer需要在大体量的有标记的数据集上进行,但是目前存在的视频数据集与图片数据集相比是比较小的,这加大了训练video Transformer的难度。当前的video Transformer是来自基于图像Transformer,并且严重依赖在大量图片数据集上训练好的模型。所以,如何在不适用任何预训练模型和外部数据的情况下,在一个视频数据集上有效训练一个普通的video Transform依旧是一个挑战。

使用大体量数据集的自监督学习展示了不俗的表现,学习到的表示在转移到下游任务时优于通过监督学习的表示。自我监督的学习范式可以提供一个有前途的解决方案来解决训练视频转换器的挑战。

基于掩码自编码在图像和NLP领域的成果,本文提出了基于自监督视频预训练的视频掩码自编码方法——VideoMAE。视频比图像多了一个时间维度的信息,视频可以看作是静态形象的时间演化,帧之间存在对应关系。时间维度上的语义信息变化速度较慢,但是视频帧会被频繁捕捉,出现时间信息冗余,导致模型不能理解高层的语义。时间相关性会导致重建过程中的信息泄露——被遮盖的内容在相邻帧上出现。

综上,本文提出了极高遮盖比和遮盖管道两种方法,以解决时间冗余和时间相关性问题。

方法

通过在普通 (b) 帧掩码或 (c) 随机掩码下找到相邻帧中的相应补丁,时间相关性可以轻松重建丢失的像素。为了避免这个简单的任务并鼓励学习代表性表示,我们提出了(d)管掩蔽

视频可以理解为一组快速播放的图片,每一福图片由帧(frame)组成,n个连续的帧组成一个片段(clip)。VideoMAE首先从原始视频V中随机采样t个片段,将片段压缩为T帧,每一帧包含H*W*3个像素,将采样压缩后的帧切分为2*16*16的cube,对cube使用时空联合嵌入,得到T/2*H/16*W/16个3D tokens,并将tokens映射到D个通道维度中,使用普通ViT主干,并使用不对称encoder-decoder结构进行预训练。

实验

模型参数选择

decoder 设计

轻量级decoder是关键组件之一。我们对表 1a 中的不同深度进行了实验。与 ImageMAE 不同,video的decoder的深度对于更好的性能很重要,而浅decoder可以减少 GPU 内存消耗。默认情况下,我们为解码器取 4 个块。decoder宽度设置为encoder的半通道。

mask策略

K400 上的性能差距不明显, SSV2 上的差距较大。可能是 Kinetics 视频大多是静止的和与场景相关的。时间建模的效果并不明显。总的来说, VideoMAE 成为一项更具挑战性的任务,是一个优秀的自监督学习器最需要的任务。

重构策略

T ×τ 表示“帧×步幅”。 center 表示输入片段的中心帧,T 默认设置为 16,τ 在 SSV2 和 K400 上分别设置为 2 和 4。

预训练策略

VideoMAE 可以在视频数据集本身上有效地训练视,无需使用任何额外的数据,并获得最佳性能。

预训练数据集

首先在 ImageNet-1K 上对 ViT-B 进行 1600 个 epoch 的预训练。将 2D patch~~ I3D~~嵌入层我们的立方体嵌入层,并在目标视频数据集上微调模型。结果超过了从头开始训练的模型,如表 1e 所示。 VideoMAE 模型可以实现比 ImageMAE 更好的性能。然而,将预训练的 VideoMAE 模型转移到其他视频数据集(例如从 Kinetics 到Something-Something)时,结果比直接在自己的目标视频数据集上预训练的对应物稍差。所以预训练和目标数据集之间的域转移是一个问题。

实验结果

为了证明VideoMAE对基于Transformer的SSVP的有效性,对比了从头开始训练和对比学习(MoCo v3)

VideoMAE 明显优于其他两种训练设置。

在 Kinetics-400 的最大数据集上, VideoMAE 比从头开始的训练高出约 10%,比 MoCo v3 预训练高出约 5%。这种卓越的性能表明,掩码自动编码器为视频转换器提供了一种有效的预训练机制。

随着训练集变得更小,VideoMAE 与其他两种方法之间的性能差距变得更大。值得注意的是,即使在 HMDB51 上只有 3.5k 个训练片段,我们的 VideoMAE 预训练仍然可以获得令人满意的准确率(大约 61%)。这一新结果表明 VideoMAE 是 SSVP 的数据效率更高的learner。此属性对于可用数据有限且与对比学习方法不同的场景尤为重要。

高比率掩码自动编码的任务更具挑战性,因此需要更多的训练 epoch(800 对 300)。由于VideoMAE 中的非对称编码器-解码器和极高的掩蔽率,预训练时间比 MoCo v3 短得多。

VideoMAE 预训练的模型优于 MoCo v3 预训练的模型,这表明VideoMAE 学习了更多可迁移的表示。

比较表 2 和表 4,转移的表示优于在 UCF101 和 HMDB51 上从其自己的数据集训练的原始 VideoMAE 模型。相比之下,Something-Something V2 上的转移表示更差。

为了弄清楚这种不一致的结果是否是由于Something-Something V2的大规模造成的,我们通过减少预训练视频数量进一步进行了详细调查。

(1)使用相同的时期进行预训练和(2)使用相同的时间预算进行预训练。

减小预训练集的大小时,更多的训练迭代可能有助于提高性能。

即使只有 42k 预训练视频,仍然可以获得比具有 240k 视频的 Kinetics 预训练模型更好的准确度(68.7% 对 68.5%)。这个结果意味着域转移是另一个重要因素,当预训练数据集和目标数据集之间存在差异时,数据质量比 SSVP 中的数据量更重要。它还证明了 VideoMAE 是 SSVP 的数据高效学习器。

在 VideoMAE 中,一个核心设计是极高的掩蔽率。最佳掩蔽率非常高,即使是 95% 也可以在两个数据集上实现良好的性能。视频中的时间冗余和相关性,使VideoMAE 能够以如此高的掩蔽率学习合理的输出。

较长的预训练计划会给两个数据集带来轻微的收益。在论文中,VideoMAE 默认预训练了 800 个 epoch。

经过消融实验,模型架构细节如图所示。

SOTA 结果

迁移学习:下游动作检测。将 Kinetics-400 上学习的 VideoMAE 转移到下游动作检测数据集 AVA。

在 Kinetics400 上进行自我监督预训练后,带有 vanilla ViT-B 的 VideoMAE 在 AVA 上可以达到 26.7 mAP,这证明了 VideoMAE 的强大可迁移性。如果预训练的 ViT-B 在带有标签的 Kinetics-400 上进行额外微调,则迁移学习性能可以进一步提高约 5 mAP(从 26.7 到 31.8)。

当使用更大的视频数据集(例如 Kinetics-700)或更强大的主干网络(例如 ViT-Large 和 ViT-Huge)扩展预训练配置时,VideoMAE 最终可以获得更好的性能。例如,我们在 Kinetics-700 上预训练的 ViT-L VideoMAE 达到 39.3 mAP,而在 Kinetics-400 上预训练的 ViT-H VideoMAE 达到 39.5 mAP。

这些结果表明,自我监督的预训练模型不仅在动作分类任务上而且在更复杂的动作检测任务上都能很好地迁移。

VideoMAE 可以使用更强大的主干(例如 ViT-Large 和 ViT-Huge)和更多帧(例如 32)轻松扩展。

VideoMAE 在Something-Something V2 和Kinetics-400 上的top-1 准确率分别为75.4% 和87.4%,无需使用任何额外数据。

现有的最先进的方法都依赖于外部数据来对Something-Something V2数据集进行预训练。相反,没有任何外部数据的 VideoMAE 显着优于具有相同输入分辨率的先前方法约 5%。

ViT-H VideoMAE 在 Kinetics-400 数据集上也实现了非常有竞争力的性能,而无需使用任何额外的数据,这甚至比带有JFT-300M 预训练 的ViViT-H 更好(86.6% 对 84.9%)。

当使用更大的空间分辨率和输入视频帧进行微调时,我们的 ViT-H VideoMAE 的性能可以进一步从 86.6% 提升到 87.4%

我们在表 13 中展示了与 UCF101 和 HMDB51 上最先进技术的详细比较。图 6 还显示我们的 VideoMAE 是一种数据高效的学习器,它允许我们仅从有限的视频数据(例如,UCF101 中的 9.5k 剪辑和 HMDB51 中的 3.5k 剪辑),无需任何 ImageNet 预训练。 VideoMAE 显着优于从头开始训练、MoCo v3 预训练 [15] 以及 Vi2CLR [19] 之前的最佳性能,而无需在这些小规模视频数据集上提供额外数据。与那些大规模的视频数据集相比,这两个小数据集更适合验证 VideoMAE 的有效性,因为在小数据集上训练大型 ViT 模型更具挑战性。

总结

本文提出了一种用于视频转换器预训练的简单且数据高效的自监督学习方法 (VideoMAE)。VideoMAE 引入了极高掩蔽率和管掩蔽策略的两种关键设计,使视频重建任务更具挑战性,以鼓励 VideoMAE 学习更多具有代表性的特征并缓解信息泄漏问题。实证结果表明,这种简单的算法适用于不同尺度的视频数据集,VideoMAE能够仅通过数千个视频片段进行高效学习,这对于可用数据有限的场景具有重要的实用价值。

参考资料

[1]

https://arxiv.org/abs/2203.12602: https://arxiv.org/abs/2203.12602

[2]

https://github.com/MCG-NJU/VideoMAE: https://github.com/MCG-NJU/VideoMAE

分类:

人工智能

标签:

人工智能

作者介绍

FightingCV
V1

公众号 FightingCV