0. 前言
- 相关资料:
- arxiv
- github(非官方实现,还没做完),官方版的说要发布但暂时还没有看到
- 论文解读
- 论文基本信息
- 领域:行为识别
- 作者单位:Google Research
- 发表时间:2021.3
- 一句话总结:提出了两种时空token构建方式以及3中时空transformer设计方式
1. 要解决什么问题
- 如何使用纯 Transformer 实现视频分类。
2. 用了什么方法
- 总体结构如下图所示,主要内容就是:
- 如何构建时空token,即左侧灰色框
- 如何设计Transformer结构。一共提出四种结构,第一种是最朴素的,后三种都是构建时间、空间的transformer/self-attention
- 如何构建token?
- 换句话说,如何将一个视频转换为一组序列,作为Transformer的输入。
- 有两种方法,如下图所示
- Uniform frame sampling:就是先提取帧,然后每一帧按照ViT的方法提取token,然后把不同帧的token拼接起来作为输入。
- Tubelet embedding:前一种方法是提取2D图像特征,这种方法是提取立方体,假设每个tublet的shape是
t, w, h
,那就是说没t帧提取一次特征,取每一帧相同位置的w, h
patch组成输入
- Transformer 结构的变种一
- 直接将前面提取到的时空token作为transformer的属于,使用普通transformer结构得到最终结果。
- 这个没啥好说的,就是最普通、最直接的方法。
- Transformer 结构的变种二 - Factorised encoder
- 使用两个 transformer
- 第一个是 spatial transformer,输入是某一帧的多个token,输出一个token
- 第二个是temporal transformer,输入是前一步多帧的token(每帧对应一个token),输出结果就通过mlp进行分类
- Transformer 结构的变种三 - Factorised self-attention
- 通过 self-attention 层将时空数据分开处理
- 空间层只在同一帧内不同token间进行attention操作
- 时间层对不同帧同一位置的token进行attention操作
- Transformer 结构的变种四 - Factorised dot-product attention
- 与变种三类似,只不过时间、空间heads是并行的,而不是串行的。
- spatial还是同一帧内不同token,temporal是不同帧同一位置的token
- 其他细节
- PosEmbedding 是从同一帧
h*w
扩展为t*h*w
- PosEmbedding 是从同一帧
3. 效果如何
-
谷歌的论文,消融实验非常完善,具体详情可以看论文
- 比较不同的token获取方式
- 比较了不同变种的transformer
- 比较了多种数据增强方式
- 比较了不同输入数据尺寸
- 比较了几类变种
- 比较了不同的输入帧数
-
最终模型结果
4. 还存在什么问题&可借鉴之处
- 更像是实验报告吧,毕竟Video Transformer相关基本上就没有啥研究,就需要大佬们先采坑,这就是采坑论文。
- 具体性能怎么样、调参怎么调,估计需要自己尝试一波。