论文: https://arxiv.org/abs/2106.05968
代码:
GitHub - 1adrianb/video-transformers
博客:
《X-ViT》-基于时空混合attention的视频Transformer,大幅度降低计算复杂度 - 知乎
Samsung 视频识别
1 Introduction
用transformer进行视频识别时,由于时间维度的额外建模,导致计算开销显著提升。
本文提出的模型复杂度与视频帧数成线性关系,不会产生额外的计算开销,最小化transformer的计算成本。
1)将时间注意力限制于局部的时间窗口,利用transformer的深度来获取视频序列的全时间覆盖
2)使用有效的时空混合来联合建模空间和时间信息,与纯空间模型相比没有增加任何额外计算成本
2 Method
2.1 Video transformer
给定一个视频片段X(T*H*W*C),C=3,S=HW
基于ViT的处理方法,每一帧被分成K*K个不重叠的patch,使用线性embedding层E(3K^2 *d)将patch映射成token。
为了保留每个patch在时间和空间内的位置信息,使用两个可学习的positional embedding:
一个用于空间
一个用于时间
用L个transformer层进行信息建模。
第l层,空间位置s和时间位置t处的视觉token可以表示为:
视觉token共有TS个。
还有一个class token:
第l个transformer层使用一系列的MSA、LN、MLP对上一层的token进行处理。
一个全时空自注意力head:
最后,利用embedding矩阵
对h个head的输出concat之后进行投影。
2.2 Our baseline
本文的baseline模型在每个transformer层只使用空间注意,
对时间维度进行简单的平均操作,获得输入线性分类器的单一特征:
2.3 Recent work
对时间和空间分开进行计算:
但是对于固定的空间位置,不同帧之间同一空间信息发生巨大偏差时,时间注意力无效。
2.4 Our model
为了降低复杂度,首先进行第一个近似:
将时间注意力限制在一个局部的时间窗口[-tw, tw]:
上面的式子里还要计算2tw+1个位置的attention,为了进一步降低复杂度,采用第二个近似:
在[-tw, tw]时间区间上,采用单一的attention。
通过以上方法,可以获得O(TS^2)的复杂度。
2.5 Temporal Attention aggregation
模型使用class token来进行预测,可以使用两种方法来聚合时间信息
Class token:
1 时间维度进行简单地平均操作
忽略了时间顺序
2 轻量级的时间注意机制TA,利用一个时间transformer层来处理序列
得到zfinal并将其作为分类器的输入。
2.6 Summary token
第t帧的token集合:
是将
concat之后得到的。
φ可以是每一帧对空间进行平均,此时R=1:
将summary tokens加到所有帧的visual tokens上,然后再计算k和v。这样q可以对结合了summary token的original key进行处理。
综上,将带有混合时空注意力以及summary token的模型称为X-VIT。
3 实验
3.1 消融实验
3.1.1 local window size
Tw=0指只使用空间注意力
Bo指只有window boundaries的特征被使用
3.1.2 时空混合注意操作应用的位置
3.1.3 TA层的数量
3.1.4 时空混合qkv
x:qkv projection之前的input token
3.1.5 时空混合通道的比例
3.1.6 summary token
3.1.7 输入帧数
从上表可以看出,将帧数从8帧增加到16帧,SSv2上Top-1的准确率提高了1.8%。