▊ 写在前面
在视频Transformer中,时间维度通常与两个空间维度(W和H)的处理方式相同。然而,在对象或摄影机可以移动的场景中,在第t帧中的一个位置处的物体可能与在第t k帧中的该位置的内容完全无关。因此,应该对这些时间相关性对应进行建模,以便于了解动态场景。
为此,作者提出了一种用于视频Transformer的轨迹注意力(trajectory attention) ,它沿着隐式确定的运动路径聚集信息。此外,作者还提出了一种新的方法来解决计算和存储对输入大小的二次依赖关系,这对于高分辨率或长视频尤为重要。
作者将本文的Attention方法运用到的Transformer模型中,并在Kinetics、Something-Something V2和EpicKitchens数据集上的视频动作识别任务中实现了SOTA的结果。
▊ 1. 论文和代码地址
Keeping Your Eye on the Ball: Trajectory Attention in Video Transformers
代码语言:javascript复制论文:https://arxiv.org/abs/2106.05392
代码:https://github.com/facebookresearch/Motionformer
▊ 2. Motivation
Transformer已经成为NLP、Vision和Speech的主流结构,其中的自注意机制适用于不同类型的数据和跨域的数据。然而,它的普遍性和缺乏归纳偏置也意味着Transformer通常需要非常大量的数据或特定于域的数据增强来训练 ,对于视频数据,这一现象尤其严重。虽然视频携带丰富的时间信息,但它们也可以包含来自相邻帧的冗余空间信息,而标准的自注意力机制没法克服这种冗余。
因此,作者提供了一种自注意的变体,称为轨迹注意(trajectory attention) ,它能够更好地描述视频中包含的时间信息。对于静态图像的分析,空间局部性可能是最重要的归纳偏置,这激励了卷积网络的设计和在视觉Transformer中使用的空间编码,因为属于同一3D对象的点倾向于投射到图像中彼此接近的像素 上。
在视频数据中是类似的,但是除此之外,视频数据还有一个性质:3D点随着时间的推移而移动,因此沿着特定的二维轨迹投影在图像的不同部分 。现有的视频Transformer方法忽略这些轨迹,直接汇集跨时间维度或者整个三维时空特征上的信息。作者认为,沿着运动轨迹池化,将为视频数据提供更自然的归纳偏置,并允许网络从同一物体或区域的多个视图聚合信息,以推断物体或区域如何移动 。
在本文中,作者利用注意力机制来寻找这些轨迹。RAFT等方法表明通过比较跨空间和时间的局部特征,可以获得良好的光流估计。因此,在这项工作中,作者利用了注意力机制来指导网络沿着运动路径汇集信息。
作者还注意到,视觉Transformer是在图像patch上运行的,因此不能假定对应于单个的3D点,从而沿着简单的一维轨迹移动。上图描述了“踢足球”的动作,根据特定的视频帧,球最多可以跨越四个patch。此外,这些patch包含前景(球)和背景物体的混合,因此至少有两种不同的运动。因此,本文提出的轨迹注意力机制,使得模型从所有相关的“球区域”中组装一个运动特征。
▊ 3. 方法
本文的目标是修改Transformer中的注意机制,以更好地捕捉视频中包含的信息。将输入的视频表示为,像目前的视频Transformer一样,首先将视频序列预处理成ST个 token 的序列,空间分辨率为,时间分辨率为,在这个过程中作者采用了三维embedding方法,也就是将不相交的时空立方体特征线性投影到。
然后,将可学习的位置编码分别添加到空间和时间维度的视频嵌入中,从而得到。最后,将一个可学习的分类token 添加到token序列中,以作为一个视频的整体解释。
视频Transformer的结构,与ViT一样,包括层归一化(LN)操作、多头注意(MHA)、残差连接和前馈网络(MLP):
3.1 Video self-attention
自注意操作首先需要一组query-key-value向量,视频中每个时空位置st对应一个向量。这些向量通过输入的线性投影得到,即,投影矩阵为。跨时空注意(联合时空注意)的计算表示为:
这个公式的一个问题是,它在空间和时间上都具有二次复杂度,即。另一种方法是将注意力限制在空间或时间上,称为分离时空注意:
这就将复杂度降低到了和,但是只允许模型独立建模时间和空间维度。
与这两种方法不同,作者沿着轨迹进行注意。对于每个时空位置(轨迹“参考点”)和相应的查询,作者构造了一组轨迹token 。轨迹token拓展到视频序列的持续时间,其不同时间的轨迹token计算如下:
这个公式中的Attention是在空间上应用的,并独立地应用于每一帧,然后在对空间上的维度进行求和(pooling),从而只剩下时间维度,表示轨迹“参考点”不同时间的轨迹。
一旦计算出这些轨迹,需要进一步跨时间汇集它们。为此,轨迹token被投影到一组新的 queries, keys 和values上:
与之前的一样,更新后的查询对应于轨迹参考点,并包含来自所有帧的空间汇集的信息。这个新的查询通过在新的时间(轨迹)维度上进行池化来获得一维注意力:
与联合时空注意一样,本文的方法在空间和时间上都有二次复杂度,因此没有计算优势,并且比分离时空注意要慢。然而,本文的方法比联合和分离的时空注意机制更好的准确性。本文的轨迹注意力的示意图如下:
3.2 Approximating attention
为了获得更快的运行速度,作者提出了一个近似方案来加速计算。将query-key-value矩阵表示为,里面的每一个向量表示为。
为了得到注意力算子的有效分解,作者使用一个概率公式来重写它。设为一个分类随机变量,表示第个输入()是否分配给第个输出(),其中。注意力算子使用一个基于多项式逻辑函数的该事件概率的参数模型,即softmax算子:
其中,下标:表示该维度中输入张量的完整切片。然后引入潜在变量,它同样地表明第个输入是否被分配给第个原型,表示的辅助向量。因此,可以利用全概率公式和条件概率公式得到:
其中,潜在变量独立于输入。即使在的参数模型下,相应的真实分布也是难以处理的。因此,作者用一个近似的参数模型来近似条件概率:
其中,表示水平拼接所有查询向量的结果。因此,整理上述所有方程,可以得到:
Computational efficiency
方程中近似的一个重要特征是,它可以分两步计算 。首先,将value 乘以一个prototypes-keys attention矩阵,它比全注意矩阵要小得多,因为。
因此,的计算也远比原来的计算量要小得多。这就避免了全注意力对输入和输出大小的二次依赖,只要保持不变,近似的计算用的就是线性复杂度。
3.3 The Motionformer model
本文的Video Transformer建立在以前的工作之上。如上表所示。作者使用ViT模型作为基础架构,采用TimeSformer的独立空间和时间位置编码,以及ViViT中的三维图像tokenization策略。
▊ 4.实验
4.1 Ablation studies
Input: tokenization
上表展示了不同tokenization方法的实验结果,可以看出,Cubic的方式能比Square达到更好的性能。
Input: positional encoding
上表展示了不同positional encoding方法的实验结果,可以看出,Separate ST的方式能比Joint ST达到更好的性能。
Attention block: comparisons
上表展示了不同Attention模块的实验性能对比,可以看出本文的轨迹注意力比其他注意力模块能够达到更好的性能。
4.2 Orthoformer approximated attention
Approximation comparisons
上表展示了Orthoformer实现的轨迹近似计算,能够比他方法占用更少的显存。
Prototype selection
Orthoformer是原型选择过程,上表展示了不同原型选择策略的实验结果。
Number of prototypes
上表展示了不同原型数量的实验结果。
Temporally-shared prototypes
上表展示了原型是否共享的结果,可以看出,共享原型不只可以减少显存,还能提高性能。
4.3 Comparison to the state-of-the-art
上表展示了本文方法在多个数据集上和其他SOTA方法的对比结果,可以看出,本文在多个数据集上实现了SOTA的性能。
▊ 5. 总结
在本文中,作者提出了一种通用视频数据注意块 ,它沿着隐式确定的运动轨迹聚集信息,为模型提供了一个现实的归纳偏置。此外,作者用一种注意近似算法 进一步解决了其对输入大小的二次依赖问题,该算法显著降低了显存需求。通过这些设计,作者在几个基准数据集上获得了SOTA的结果。
尽管如此,本文的方法继承了Transformer模型的许多局限性,包括数据效率差和训练速度慢。本文提出的轨迹注意力相比于最近的工作具有更高的计算复杂度,虽然近似算法减弱了这一点,显著降低了显存和计算量,然而这一步不能并行,使得其运行时的速度会很慢。
▊ 作者简介
研究领域:FightingCV公众号运营者,研究方向为多模态内容理解,专注于解决视觉模态和语言模态相结合的任务,促进Vision-Language模型的实地应用。
END