到目前为止,我们已经介绍了视频文本文献中一般的模型架构和流行的预训练任务。为了给读者提供更具体的例子,我们选择了三个代表性的模型作为案例研究,包括(i)MIL-NCE(Miech等人,2020),一个双编码器模型;(ii) UniVL (Lu等人,2022a),一个离线提取视频特征的融合编码器模型;以及(iii)ClipBERT (Lei等人,2021b),一个直接从原始视频像素学习结束到端融合编码器模型。我们简要回顾了它们的架构和预训练任务。
![](https://i-blog.csdnimg.cn/blog_migrate/159c304b0e318ce8f3dfee8d3663c213.png)
1. 视频特征提取之Transomer:
1.1ViViT
vivit在空间和时间维度上分别对Transformer编码器各组件进行分解在处理视频输入时,需要先将视频V映射为序列token z ~ ,在z ~ 上加入位置编码后进行reshape可获得transformer的输入token z。作者提供了两种简单的方式,将视频V映射为z ~视频V维度为T × H × W × C,序列token z~维度为n_t × n_h × n_w × C, 输入token z 维度N×d。
多了时间维度,如何将视频映射为token?
输入会产生大量时空token, 需要考虑:1. 长范围token序列的上下文关系。 2. 模型效率问题
1.1.1序列token的两种构建方式
方法一:2D均匀采样(同VIT,只是加了空间维度)
从每一个视频中采样n_t帧,若从每一帧中提取的非重叠patch数量为,则一个视频有n_t × n_h × n_w个token会被传递到Transformer的Encoder中。
方法二:3D管片嵌入(在3D层面上提取特征,定义非重叠的tube同时在空间和时间维度上进行线性映射)
这种方式是ViT中映射方式在3D维度上的扩展,若tube维度为t × h × w,同样每个视频有n_t × n_h × n_w个token,其中
nt = T/t,nh = H/t,nw = W/t,
与均匀采样相比,tubelet embedding融合了时间维度的帧信息,即这种构建方式获取的序列token同时融合了空间和时间信息。
1.1.2 使用不同的方法
主要是对时间和空间的操作逐渐缩小的过程,先是Transformer,再是多头注意力,最后是单个注意力。这些模型变量在空间和时间维度上分解Transformer编码器的不同组件。如图所示,这些因子分解对应于不同时间和空间的注意力模式。
1. model 1: Spatio-temporal attention
简单地套用ViT,效率太低.
2. model 2: Factorised encoder(将Transformer分为时间和空间)
late fusion:这种方式与CNN类似,首先提取每一帧的特征,在分类之前将它们聚合为最终的表示。
- Spatial Enocder(对从相同时间序列提取的token的之间的关系建模)提取每一时间序列的特征表示, 输入为每一帧的tokens, 输出为代表这个时间序列的一个token。
- Temporal Encoder(对来自不同时间序列的token关系建模)聚合来自所有时间序列的表示,生成最终用于分类的表示。输入来自Spatial Enocder的不同时间序列的tokens,输出送入MLP做分类任务。
3. model 3: Factorised self-attention(将多头注意力分为时间和空间)
首先对来自同一时间序列的所有token计算空间(n_t×n_h∗n_w∗d )自注意力,然后对相同空间序列的token计算时间(n_h∗ n_w × n_t ∗ d)注意力,对比Model1,Model 3将自注意力运算分解在更小的集合上,使得运算量与Model 2相同。
- Spatial Self-Attention Block仅对同一帧的不同token进行MSA计算;
- Temporal Self-Attention Block仅对不同帧相同位置的token进行MSA计算;
4. model 4: Factorised dot-product attention(将head分为时间和空间)
与Model 3相似,Spatial Head计算的为同一帧内不同token,Temporal Head则为不同帧相同位置的token;可视为Model 3的并行版.
1.1.3 模型结果
1.2 TimeSformer
这个模型和ViViT中的模型3(多头注意力)近似,这里是自注意力。对模型3进行更为细致的实验,探讨了不同模型的时间注意力和空间注意力的不同变体,最好的结果就是分开注意力最好,也就是ViViT中的模型3。图中的分开的时空注意力(T+S),先对同一帧的所有图块进行自注意力机制,然后对不同帧的对应位置的图块注意力进行注意力机制。
图中,蓝色的图像块是 query 的图像块,其余颜色的图像块,是每个自注意力策略使用到的图像块,没有颜色的图像块没有被使用到。策略中,有多种颜色的图像块,代表注意力机制是分开进行的,比如 T+S,就是先 T,后 S,L + G 也是同理。这里图中只展示了三帧,但是作用时是作用在整个序列上的。
- 空间注意力机制(S):只取同一帧内的图像块进行自注意力机制
- 时空共同注意力机制(ST):取所有帧中的所有图像块进行注意力机制
- 分开的时空注意力机制(T+S):先对同一帧中的所有图像块进行自注意力机制,然后对不同帧中对应位置的图像块进行注意力机制
- 稀疏局部全局注意力机制(L+G):先利用所有帧中,相邻的 H/2 和 W/2 的图像块计算局部的注意力,然后在空间上,使用2个图像块的步长,在整个序列中计算自注意力机制,这个可以看做全局的时空注意力更快的近似
- 轴向的注意力机制(T+W+H):先在时间维度上进行自注意力机制,然后在纵坐标相同的图像块上进行自注意力机制,最后在横坐标相同的图像块上进行自注意力机制
2. 实例介绍
2.1 MIL-NCE
MIL-NCE的架构如图a所示。视频由3D CNN骨干网络(例如I3D或S3D)编码以提取3D网格特征,然后全局平均池化以获得全局视频嵌入。文本句子使用预训练的word2vec嵌入进行编码,然后进行最大池化操作以获得全局文本嵌入。MIL-NCE使用VTC进行预训练,其中视频文本对之间的相似性通过两个全局嵌入之间的点积来衡量。
2 .2 UniVL
UniVL的模型架构如图b所示,它包含两个单独的Transformer编码器,分别用于嵌入视频和文本,一个跨模态Transformer模型来建模文本和视频嵌入之间的交互,以及一个Transformer解码器。UniVL遵循一个两阶段流程。首先,使用现成的特征提取器(例如S3D或ResNet-152)从密集采样的帧中提取视频特征。然后,将这些视频特征与伴随的文本句子一起输入UniVL以学习多模态表示。UniVL使用5个任务进行预训练,包括VTC、VTM、MLM、MVM with in-batch negatives和预训练解码器以生成逐字自回归的语言建模任务。
2.3 ClipBERT
ClipBERT如图c所示,采用融合编码器架构。使用2D CNN后面跟一个时间平均池化层来对来自每个视频片段的稀疏采样帧进行编码。首先使用词嵌入层对文本输入进行编码,然后将其发送到多层Transformer进行多模态融合,同时结合视频特征。与先前的离线提取密集采样帧中3D CNN的视频特征的两个阶段管道相比,ClipBERT的视频编码计算量更小,这使得在预训练和微调期间可以进行端到端优化。ClipBERT使用图像-文本匹配和MLM在图像-文本数据集COCO和VG上进行预训练。
参考:
Facebook AI 提出 TimeSformer:完全基于 Transformer 的视频理解框架-CSDN博客
Vision-Language Pre-training: Basics, Recent Advances, and Future Trends