社区计算机视觉课程文档
Transformer 在视频处理中的应用 (第 1 部分)
并获得增强的文档体验
开始使用
Transformer 在视频处理中的应用 (第 1 部分)
简介
在本章中,我们将介绍 Transformer 模型如何在视频处理中得到应用。我们将首先介绍 Vision Transformer,它是 Transformer 模型在视觉领域中的一个成功应用。然后,我们将解释与用于图像的 Vision Transformer 模型相比,用于视频的视频 Vision Transformer (ViViT) 模型所做的额外考虑。最后,我们将简要讨论 TimeSFormer 模型。
阅读本文档前有助于回顾的材料:
ViT 回顾
首先,让我们快速了解一下 Vision Transformer:《一幅图像胜过 16x16 个单词:用于大规模图像识别的 Transformer》,这是 Transformer 在视觉领域成功应用中最基础的一个。
该论文的摘要如下:
受 Transformer 在 NLP 中扩展成功的启发,我们尝试将标准 Transformer 直接应用于图像,并进行最少的修改。为此,我们将图像分割成图像块,并将这些图像块的线性嵌入序列作为 Transformer 的输入。图像块的处理方式与 NLP 应用中的词元(单词)相同。我们以监督方式在图像分类上训练该模型。

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

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