社区计算机视觉课程文档
视频处理中的 Transformer (第一部分)
并获得增强的文档体验
开始使用
视频处理中的 Transformer (第一部分)
导论
在本章中,我们将介绍 Transformer 模型如何在视频处理中应用。特别是,我们将介绍视觉 Transformer,Transformer 模型在视觉领域中的成功应用。然后,我们将解释用于视频的视频视觉 Transformer (ViViT) 模型与用于图像的视觉 Transformer 模型相比,所做的额外考虑。最后,我们将简要讨论 TimeSFormer 模型。
在阅读本文档之前,建议复习的材料:
ViT 概要
首先,让我们快速了解一下视觉 Transformer:An image is worth 16x16 words: Transformers for image recognition at scale,这是 Transformer 在视觉领域最基本的成功应用。
以下是论文的摘要;
受到 NLP 中 Transformer 扩展成功的启发,我们尝试将标准 Transformer 直接应用于图像,并尽可能少地进行修改。为此,我们将图像分割成 patches,并将这些 patches 的线性嵌入序列作为 Transformer 的输入。图像 patches 的处理方式与 NLP 应用中的 tokens(单词)相同。我们在监督方式下训练模型进行图像分类。

ViT 论文中提出的关键技术如下
图像被分成小的 patches,每个 patch 被用作 Transformer 模型的输入,用基于 Transformer 的方法取代 CNN。
每个图像 patch 都被线性映射,并添加位置嵌入,使 Transformer 能够识别 patches 的顺序。
该模型在大规模数据集上进行预训练,并针对下游视觉任务进行微调,从而实现高性能。
性能 & 局限性
虽然 ViT 的性能优于其他最先进的模型,但训练 ViT 模型需要大量的计算能力。训练 ViT 模型在 TPU-v3 上花费了 2,500 天。假设一个 TPU-v3 核心的成本约为每小时 2 美元(您可以在此处找到更详细的定价信息),那么训练模型一次将花费 2 美元 x 24 小时 x 2,500 天 = 120,000 美元。
视频视觉 Transformer (ViViT)
如前所述,ViViT 将 ViT 的图像处理扩展到视频分类任务,其重要问题是如何更快速有效地训练模型。此外,与图像不同,视频不仅包含空间信息,还包含时间信息,如何处理这种“时间信息”是一个关键的考虑和探索方向。
以下是论文的摘要
我们提出了用于视频分类的纯 Transformer 模型,借鉴了此类模型在图像分类中的最新成功。我们的模型从输入视频中提取时空 tokens,然后通过一系列 Transformer 层进行编码。为了处理视频中遇到的长 tokens 序列,我们提出了我们模型的几种高效变体,这些变体分解了输入的空间和时间维度。尽管众所周知,基于 Transformer 的模型只有在有大型训练数据集可用时才有效,但我们展示了如何在训练期间有效地正则化模型,并利用预训练的图像模型在相对较小的数据集上进行训练。我们进行了全面的消融研究,并在多个视频分类基准测试(包括 Kinetics 400 和 600、Epic Kitchens、Something-Something v2 和 Moments in Time)上取得了最先进的结果,优于以前基于深度 3D 卷积网络的方法。为了促进进一步的研究,我们在 https://github.com/google-research/scenic 上发布了代码。

嵌入视频片段
什么是嵌入?
在深入研究具体技术之前,重要的是要了解什么是嵌入。在机器学习中,嵌入是密集的向量表示,它以神经网络可以处理的格式捕获输入数据的有意义的特征。对于视频,我们需要将原始像素数据转换为这些数学表示,同时保留空间信息(每帧中的内容)和时间信息(事物随时间的变化方式)。
为什么视频嵌入很重要
由于视频的大小和复杂性,处理视频在计算上是密集型的。良好的嵌入技术通过以下方式提供帮助:
- 在保留重要特征的同时降低维度
- 捕获帧之间的时间关系
- 使神经网络能够有效地处理视频数据
为什么关注均匀帧采样和 Tubelet 嵌入?
这两种技术代表了视频处理中的基本方法,已成为更高级方法的构建块
- 它们在计算效率和信息保留之间取得平衡,为不同的视频处理任务提供了多种选择。
- 它们充当基线方法,提供了一个比较点,以便更新的技术可以证明改进。
- 学习这些方法在时空处理方面建立了一个坚实的基础,这对于掌握更高级的视频嵌入方法至关重要。
均匀帧采样
在这种映射方法中,模型在时间域上均匀地采样一些帧,例如每 2 帧采样一帧。
Tubelet 嵌入
另一种方法是从输入 volume 中提取时空“tube”,并对其进行线性投影。此方法在 tokenization 期间融合时空信息。
先前介绍的方法(例如均匀帧采样和 Tubelet 嵌入)是有效但相对简单的方法。即将介绍的方法更为高级。
ViViT 中用于视频的 Transformer 模型
原始 ViViT 论文提出了多种基于 Transformer 的架构,我们现在将按顺序进行探索。
模型 1:时空注意力
第一个模型自然地将 ViT 的思想扩展到视频分类任务。视频中的每一帧都被分割成 n_w(列数)x n_h(行数)图像 patches,总共得到 n_t(帧数)x n_w x n_h 个 patches。然后,这些 patches 中的每一个都被嵌入为“时空 token”——本质上是一个代表空间(图像)和时间(视频序列)信息的小单元。模型通过 Transformer 编码器转发从视频中提取的所有时空 tokens。这意味着每个 patch 或 token 都经过处理,不仅要理解其个体特征,还要理解其与时间和空间中其他 patches 的关系。通过这个称为“情境化”的过程,编码器学习每个 patch 如何与其他 patches 相关联,方法是捕获位置、颜色和运动的模式,从而建立对视频整体情境的丰富、全面的理解。
复杂度:O(n_h^2 x n_w^2 x n_t^2)
但是,对所有时空 tokens 使用注意力可能会导致沉重的计算成本。为了使这个过程更有效率,使用了早先解释过的均匀帧采样和 Tubelet 嵌入等方法来帮助降低这些成本。
模型 2:分解编码器
模型 1 中的方法有些低效,因为它同时情境化所有 patches。为了改进这一点,模型 2 依次分离空间和时间编码器。
首先,仅通过空间 Transformer 编码器 (=ViT) 情境化空间交互。然后,每帧被编码为单个嵌入并馈送到时间 Transformer 编码器 (=通用 Transformer)。
复杂度:O(n_h^2 x n_w^2 + n_t^2)
模型 3:分解自注意力
在模型 3 中,我们没有计算所有 tokens 对之间的多头自注意力,而是首先仅在空间上计算自注意力(在从同一时间索引提取的所有 tokens 之间)。接下来,我们在时间上计算自注意力(在从同一空间索引提取的所有 tokens 之间)。由于存在歧义,因此不使用 CLS(分类)token。
复杂度:与模型 2 相同
模型 4:分解点积注意力
在模型 4 中,一半的注意力头被设计为使用来自空间索引的键和值进行操作,另一半使用来自相同时间索引的键和值进行操作。
复杂度:与模型 2、3 相同
实验和讨论
在比较模型 1、2、3 和 4 之后,很明显模型 1 实现了最佳性能,但需要最长的训练时间。相比之下,模型 2 与模型 3 和 4 相比,以相对较高的性能和更短的训练时间展示了效率,使其成为总体上最有效的模型。
ViViT 模型从根本上来说面临数据集稀疏的问题。与视觉 Transformer (ViT) 一样,ViViT 需要极其庞大的数据集才能获得良好的性能。但是,视频通常无法获得如此规模的数据集。鉴于学习任务更加复杂,因此方法是首先使用 ViT 在大型图像数据集上进行预训练以初始化模型。
TimeSFormer
TimeSFormer 是与 ViViT 同期进行的工作,将 Transformer 应用于视频分类。以下部分是对每种注意力类型的解释。
- 稀疏注意力与 ViT 相同;蓝色 patch 是查询,并情境化一帧内的其他 patches。
- 联合时空注意力 (Joint Space-Time Attention) 与 ViViT 模型 1 相同;蓝色区块是查询 (query),并在多个帧中关联其他区块的上下文信息。
- 分离时空注意力 (Divided Space-Time Attention) 类似于 ViViT 模型 3;蓝色区块首先在时间维度上与相同位置的绿色区块关联上下文信息,然后在空间维度上与同一时间索引的其他图像区块关联上下文信息。
- 稀疏局部-全局注意力 (Sparse Local Global Attention):选择性地结合局部和全局信息。
- 轴向注意力 (Axial Attention):沿其轴向分别处理空间和时间维度。
性能讨论 (Performance Discussion)
分离时空注意力 (Divided Space-Time Attention) 机制表现出最有效的性能,在 K400 和 SSv2 数据集上都提供了参数效率和准确性之间的最佳平衡。
结论 (Conclusion)
ViViT 在 ViT 模型的基础上进行了扩展,通过引入各种模型(例如分解编码器 (Factorized Encoder)、分解自注意力 (Factorized Self-Attention) 和分解点积注意力 (Factorized Dot-Product Attention))来更有效地处理视频数据,所有这些模型都旨在高效地管理时空维度。同样,TimeSFormer 从 ViT 架构演变而来,并利用多种注意力机制来处理时空维度,这与 ViViT 非常相似。从这种发展中可以得出的一个关键结论是,重点在于降低将 Transformer 架构应用于视频分析时产生的大量计算成本。通过利用不同的优化技术,这些模型提高了效率,并能够以更少的计算资源进行学习。