FAIR CVPR2022新作DVT:用于视频的可变形Transformer
-
FAIR CVPR2022新作DVT:用于视频的可变形Transformer
论文地址:https://arxiv.org/pdf/2203.16795.pdf
代码地址:未开源
Deformable Video Transformer
摘要
- 引入主题:在视频分类领域,视频Transformer最近作为一种有效的卷积网络替代品出现。
- 现存问题:大多数以前的视频Transformer采用全局时空注意或利用手动定义的策略来比较帧内和帧间的patch。这些固定注意力方案不仅计算成本高,而且通过比较预定位置的patch,忽略了视频中的运动动力学。
- 解决方案:该论文介绍了可变形视频Transformer(DVT),它根据运动信息动态预测每个查询位置的一小部分视频Patch,从而允许模型根据帧间的对应关系来决定在视频中查看的位置。关键的是,这些基于运动的对应关系是从以压缩格式存储的视频信息中以零成本获得的。
- 实验结果:在四个大型视频基准(Kinetics-400、Something-Something-V2、EPIC-KITCHENS和Diving-48)上的实验表明,该论文模型在相同或更低的计算成本下实现了更高的精度,并在这四个数据集上获得了最优结果。
算法
视频Transformer
视频数据的输入大小一般可以表示为X∈RH×W×3×TX\in R^{H×W×3×T}X∈RH×W×3×T,T表示帧数,3表示每一帧是RGB图像
因为使用的是Transformer架构,所以首先需要将输入数据转换为一个S⋅TS \cdot TS⋅T tokens,S表示每一帧中的patch个数,每个token可以表示为xst∈RDx_s^t \in R^Dxst∈RD。整个过程可以表示如下:
- 将每一帧图像进行非重叠分割,生成S个patch。
- 将每个patch投影到D个通道维度上。
- 添加空间位置编码ese_ses和时间编码ete^tet
最终得到zst=xst+es+etz_s^t = x_s^t + e_s + e^tzst=xst+es+et
然后通过多头自注意力,layer norm(LN)和MLP计算,可以表示如下:
其中具体的自注意力可以表示如下(使用单头进行简化说明)
根据以往的视频Transformer算法,自注意力机制可以分为Global space-time attention和Divided space-time attention
Global space-time attention
简单来说就是将时空联合起来进行注意力计算,公式如下:
其中注意力权重计算公式如下:
整个计算过程的计算复杂度为O(S2T2)O(S^2T^2)O(S2T2),最大的问题就是计算量很大。
Divided space-time attention
顾名思义,就是将时间和空间的注意力进行分开计算,用来减少计算量
空间注意力计算公式如下:
计算复杂度为O(S2T)O(S^2T)O(S2T)
对应的时间注意力计算公式如下:
计算复杂度为O(ST2)O(ST^2)O(ST2)
需要注意的是,时间注意力只对不同时间帧上的同一个空间位置进行注意力计算!这就是其最大的问题,因为其没有考虑到不同帧之间目标的运动。
可变形视频Transformer
主要分为以下三个部分(创新点)
Deformable Space-time Attention(D-ST-A)
这个注意力机制和上文Divided space-time attention中的时间注意力机制很相似,但是有两个主要不同点:
- 对于每个查询qstq_s^tqst,使用不同帧上的N个空间位置s(n)∣n=1,…Ns(n)|n=1,…Ns(n)∣n=1,…N进行相似度计算,而不是一个固定位置,这虽然带来相对较大的计算量,但会获取更大空间上的特征信息,性能会提高很多。文中使用N=8。
- 这N个位置是数据驱动的,而不是人为定义的,这在后面进行细说。
该注意力机制的数学表达式如下:
其中每一帧上的N个空间位置是如何计算的呢?
——是根据查询点特征和运动嵌入特征经过投影生成的相对偏置计算的,公式如下:
其中运动嵌入mst,t′m_s^{t, t^\prime}mst,t′是根据存储在压缩视频中的运动位移和RGB residuals确定的,详细步骤可以查看论文。
其中的相似度矩阵αst,t′∈RN{\boldsymbol{\alpha}}_{s}^{t, t^{\prime}} \in R^Nαst,t′∈RN与之前的计算方式不同,而是根据查询点特征和运动嵌入特征计算而来的,公式如下:
Deformable Multi-Scale Attention (D-MS-A)
上述D-ST-A是一个时间上的注意力机制,而D-MS-A是一个空间上的注意力机制,用于编码同一帧上的注意力。
但对于每一帧图像,这里引入了多尺度注意力——计算F个不同分辨率下的空间信息,不同分辨率图像中采样N′N^\primeN′个patch进行注意力计算,多分辨率可以通过不同步长的3D卷积层来实现,数学表达式如下:
其中不同分辨率图像中的patch采样也是通过根据其中对应查询点特征计算偏置得到的,计算公式如下:
Attention Fusion
可以仅使用可变形时空注意(D-ST-A)、仅使用可变形多尺度注意(D-MS-A)以及两者的组合(D-ST+MS-A)。
在最后一种情况下,将由这两种注意策略独立计算出的两个token zsSTtz_s^{ST^t}zsSTt和zsMStz_s^{MS^t}zsMSt馈送到一个注意力融合层u()进行信息融合,Zst=u(ZsSTt,ZsMSt)\mathbf{Z}_{s}^{t}=u\left(\mathbf{Z}_s^{S T^{t}}, \mathbf{Z}_s^{M S^{t}}\right)Zst=u(ZsSTt,ZsMSt)。
论文给出了两种形式的注意力融合方式,一种基于简单的线性投影,另一种基于MLP-Mixer模型。
实验
在四个标准视频分类基准上评估DVT:Kinetics-400(K400)、Something-Something-V2(SSv2)、EPIC-KITCHENS-100(EK100)和Diving-48(D48)
消融实验
Choice of motion cues
Attention and fusion blocks
Number of patches in the deformable attention
Number of sub-clips in D-ST-A
Per-Class Comparison
Comparison to the state-of-the-art
-
Alice_恒源云
-
Alice_恒源云