目前视频模型都依赖图像数据集的预训练权重,如何在不使用任何预训练的模型和的额外图像数据情况下,在视频数据集本身上有效高效地训练一个VIT
把MAE扩展到视频领域,相比于原来的MAE区别主要在于更高的mask率(90%、95%)、每帧的mask一样(即沿时间维度同一位置patch都被mask掉),mask一些patch,通过encoder-decoder根据这些少量数据来重建出原始图像,整个过程不需要label和其他数据集是一个自监督过程
为了在相对较小的数据集上实现最佳性能,通常需要对超大规模数据集上的video transformers进行预训练。在本文中,我们展示了video masked autoencoders(VideoMAE)是用于自监督视频预训练(SSVP)的数据高效学习者。我们受到最近ImageMAE[31]的启发,提出了特定的video tube masking带有极高的比例。这种简单的设计使video reconstruction 成为更具挑战性和有意义的自我监督任务,从而鼓励在预训练过程中提取更有效的video representations 。我们用VideoMAE得到了三个重要的发现:(1)极高的掩蔽比比例(即90%-95%)仍然为VideoMAE提供了良好的性能。视频内容具有时间冗余性,比图像具有更高的掩蔽比。(2) VideoMAE在非常小的数据集(即大约3k-4k视频)上取得了令人印象深刻的结果,而不使用任何额外的数据。这部分归因于视频重建的挑战性任务,以加强高水平的结构学习。(3) VideoMAE显示,对于SSVP,数据质量比数据数量更重要。预训练数据集和目标数据集之间的域转移是一个重要因素。 值得注意的是,在不使用任何额外数据的情况下,我们的具有vanilla ViT主干的VideoMAE可以在kinect -400上达到87.4%,在SomethingSomething V2上达到75.4%,在UCF101上达到91.3%,在HMDB51上达到62.6%。
本文提出了一个自监督视频预训练方法(SSVP) ——video masked autoencoders(VideoMAE),VideoMAE继承了 masking random cubes和reconstructing the missing ones的简单pipeline,但视频的时间维度使他们不同于图像中的遮挡,原因如下:
具体做法:
1.为解决视频的时间冗余,我们使用极高遮掩比从下采样片段中删除cubes
2.考虑到时间相关性,设计了tube masking为提高在重建时有无motion的cubes信息丢失的风险
本文所使用数据集: Something-Something ;UCF101 ;HMDB51
本文贡献:
提出一个极高比例的tube masking带来性能上的提升
在不需要额外数据情况下,可以在小规模视频数据集上实现很好的结果
当源数据集和目标数据集之间存在域转移时,VideoMAE表明数据质量比数据数量更重要
视频发展流程:
masked: masked来源于BERT,每次挖掉一些东西然后去预测被挖掉的东西
Autoencoder: 这里的auto不是自动的意思,而是“自”的意思,标号和样本(y和x)来自于同一个东西。 在NLP中,大家都是可以理解的,但是在计算机视觉中,图片的标号很少来自图片本身,所以作者在这里加上了auto,意在指出和计算机视觉中其他的encoder相比,这里的标号也就是图片本身,这样能跟之前的很多工作区分开来
MAE模型结构:随机mask输入图片的部分patches,然后重构这些缺失的像素。
两个核心设计:
非对称的Encoder-Decoder
Encoder只作用在可见的patch中,Decoder重构被mask的patch
遮盖大量的块(比如75%)
迫使模型去学习一些更好的特征,从而得到一个较好的自监督训练效果
一张 224x224的输入图像首先被分成大小为 16 ×16 的非重叠的块(token)------>每个像素块(token)会经过块嵌入(token embedding)的操作被转化为高维特征------>MAE采用较高的掩码比率 (75%) 随机遮盖掉一部分的像素块(token),将剩余的像素块送到编码器(encoder)中进行特征提取------>将Encoder提取出来的特征块与另一部分预设的可学习的像素块(learnable mask token)进行拼接,构成和原始输入图像尺寸一样大的特征送入decoder----->最终输出原图像,loss计算在masked patches上进行
Temporal redundancy
时间冗余会造成更多地关注静态或局部变化缓慢的运动特征,encoder backbone不能有效地捕获运动表示
如果采用原始视频的密集帧率(例如 30 FPS)进行预训练,则训练效率会非常低,因为这将使我们更多地关注静态或局部变化缓慢的运动特征。
Temporal correlation
时间相关性会影响推理能力,仅仅学习低语义的时间对应关系特征,而不是高层抽象语义信息提取
Our VideoMAE takes the downsampled frames as inputs and uses the cube embedding to obtain video tokens.
对原始视频片段进行时序下采样-----> 采用时空块嵌入将原始视频数据转为视觉像素块----->对视觉像素块进行极高比例(90-95%)的tube masking------> 采用带有时空联合注意力机制的自编码器重建视频像素块
Temporal downsampling —— use the strided temporal sampling
首先从原始视频 V V V中随机采样一个由 T T T 个连续帧组成的视频片段,然后使用带有时序间隔采样将视频片段压缩为帧,每个帧包含HxWx3个像素。实验中采样间隔 τ τ τ 设为4和2
Cube embedding —— the joint space-time cube embedding
将 T X H X W T X H X W TXHXW的视频片段中每个大小为2×16×16的cube视为一个token embedding,因此,采样得到的视频片段经过时空块嵌入(cube embedding)层后可以得到个视觉像素块。在这个过程中,同时会将视觉像素块的通道维度映射为 D D D。这种设计可以减少输入数据的时空维度大小,一定程度上也有助于缓解视频数据的时空冗余性。
Tube masking with extremely high ratios
tube maskinig是为了解决信息泄露问题,具体来说,管道式掩码策略可以表示为 。不同的时间t共享相同的值,相同空间位置的token将总是会被掩码。所以对于一些视觉像素块(例如,不同掩码策略的示例图第 4 行的包含手指的像素块),网络将无法在其他帧中找到其对应的部分。这种设计这有助于减轻重建过程中出现「信息泄露」的风险,可以让VideoMAE通过提取原始视频片段中的高层语义信息,来重建被掩码的token。
joint space-time attention
前文中提到了VideoMAE采用了极高的掩码率,只保留了极少的token作为编码器的输入。为了更好地提取这部分保留token的高级时空特征,VideoMAE选择使用原始的ViT作为Backbone,同时在注意力层中采用时空联合自注意力(即不改变原始ViT的模型结构)。因此所有保留token都可以在自注意层中相互交互。时空联合自注意力机制的级别的计算复杂度是网络的计算瓶颈,而前文中针对VideoMAE使用了极高掩码比率策略,仅将未被遮蔽的token(例如10%)输入到编码器中。这种设计一定程度上可以有效地缓级别的计算复杂度的问题。
框架设计:
K-400: 240k training videos and 20k validation videos of 10s from 400 classes
Something-Something V2 : having around 169k videos for training and 20k videos for
validation,与K400不同的是这个数据集包含174个以动作为中心的动作类。
UCF101: 9.5k/3.5k train/val videos
HMDB51: 3.5k/1.5k train/val videos
AVA: 一个具有211k训练和57k验证视频片段的人类动作时空定位数据集。
默认选项是灰色 16帧 ViT-B backbone 在SSV2和K400
16-frame vanilla ViT-B mask ratio ρ=90% for 800 epochs 在微调后进行评估时,在 Something-Something V2 上选择2个视频片段和3次裁剪进行测试,在Kinetics-400上选择5个视频片段和3次裁剪进行测试。
Decoder design :
VideoMAE关键部分,VideoMAE中更深的解码器可以取得更好的性能,而深度较浅的解码器可以有效地降低 GPU 的显存占用。默认为4blocks,解码器宽度设置为编码器的半通道(例如,384-d为ViT-B)
Masking strategy :
全局随机掩码和随机掩码图像帧的性能劣于tube masking策略,将掩码比率增加到 90% 性能有所提升
Reconstruction target :
如果只使用视频片段中的中心帧作为重建目标,VideoMAE在下游任务中的性能会大大降低。默认重建目标为下采样clip
Pre-training strategy :
利用VideoMAE从视频数据集本身预训练得到的ViT,在不使用任何额外的数据的条件下,最终能达到 69.6% 的最佳性能。Kinetics-400 上也有相似的结论。
Pre-training dataset :
首先按照MAE的设置,在 ImageNet-1K 上对ViT自监督预训练 1600 epoch。然后利用I3D中的策略,将 2D 块嵌入层膨胀为3D 时空块嵌入层,并在视频数据集上微调模型。这种训练范式可以超过从头有监督训练的模型。紧接着,将MAE预训练的模型与在 Kinetics-400 上VideoMAE预训练的ViT模型的性能进行了比较。可以发现VideoMAE可以实现比MAE更好的性能。然而这两种预训练模型均未能取得比仅在Something-Something V2 数据集上进行自监督预训练的VideoMAE更好的性能。由此可以分析,预训练数据集和目标数据集之间的领域差异可能是一个重要问题。
**masking ratio :**90% best
AVA上结果:
SSV2:
本文的方法主要在high masking ratio 和 tube masking strategy 上进行设计
Future work: VideoMAE仅利用RGB video stream,未来希望声音和文本数据能提供更多信息。
多模态对比学习用于从噪声文本监督中学习视频表示
some multimodal contrastive learning methods [37, 43, 63] have been developed
to learn video representation from noisy text supervision.