关注公众号,发现CV技术之美

继上半年分享的『基于Transformer的通用视觉架构:Swin-Transformer带来多任务大范围性能提升』、『Swin Transformer为主干,清华等提出MoBY自监督学习方法,代码已开源』,Swin Transformer 惊艳所有人之后,MSRA 开源 〖Video Swin Transformer〗,效果如何?

详细信息如下:

  • 论文链接:https://arxiv.org/abs/2106.13230

  • 项目链接:https://github.com/SwinTransformer/Video-Swin-Transformer

导言:

由于Transformer强大的建模能力,视觉任务的主流Backbone逐渐从CNN变成了Transformer,其中纯Transformer的结构也在各个视频任务的数据集上也达到了SOTA的性能。这些视频模型都是基于Transformer结构来捕获patch之间全局的时间和空间维度上的关系。

在本文中,作者提出了video Transformer中的局部性假设偏置,这能使Transformer在速度和精度上达到更好的trade-off,这在以前的那些基于捕获时空域上全局关系的Transformer上是做不到的。在本文中,视频结构中的局部性是通过Swin Transformer实现的。

另外,由于视频和图片本身就存在很大的联系,而且本文也在用了Swin Transformer结构,所以作者采用了在图片数据集上预训练好的模型模型来初始化,以提高视频模型的泛化能力。本文提出的方法在广泛的视频识别基准数据集上实现了SOTA的准确性,包括动作识别(action recognition)和时间建模(temporal modeling)。

      01      

Motivation

基于卷积的主干网络长期以来一直主导着计算机视觉中的视觉建模任务。然而,目前图像分类的主干网络,正在进行从卷积神经网络(CNN)到Transformer的转变。这一趋势始于Vision Transformer(ViT)的引入,ViT成功之处主要在于捕获了不重叠Patch之间的全局关系。ViT在图像上的巨大成功导致了基于Transformer结构的视频识别任务的研究。

对于以前的卷积模型,视频任务的Backbone主要就是增加了一个卷积维度用于捕获时间上的关系。由于联合时空(时间-空间)建模比较费计算资源并且不容易优化,一些研究工作者也提出了分解时空建模,来达到更好的速度-精度权衡。在Transformer中,也有类似的工作,同样起到了比较好的速度-精度权衡作用。

在本文中,作者提出了一种基于Transformer的视频识别主干网络结构,并且它在效率上超过了以前的分解时空建模的模型。因为视频数据在时间和空间上存在局部性(也就是说:在时空距离上更接近的像素更有可能相关 ),所以作者在网络结构中利用了这个假设偏置,所以达到了更高的建模效率。由于这一特性,全局的时空Self-Attention可以近似为多个局部Self-Attention的计算,从而大大节省计算和模型规模。

作者通过Swin Transformer[1]来实现这一点,因为Swin Transformer也考虑了空间局部性、层次结构和平移等变性等假设偏置。

作者在本文提出的Video Swin Transformer,严格遵循原始Swin Transformer的层次结构,但将局部注意力计算的范围从空间域扩展到时空域。由于局部注意力是在非重叠窗口上计算的,因此原始Swin Transformer的滑动窗口机制也被重新定义了,以适应时间和空间两个域的信息。

由于Video Swin Transformer改编于Swin Transformer,因此Video Swin Transformer可以用在大型图像数据集上预训练的模型进行初始化。通过用在ImageNet-21K上预训练的模型初始化,作者发现,主干网络的学习速率需要比head更小(head是随机初始化的)。因为主干网络在拟合新的视频输入时,需要慢慢地忘记了预训练的参数和数据,从而得到更好的泛化性能。这一现象为进一步研究如何更好地利用预训练过的权值提供了新的方向。

      02      

方法

2.1 Overall Architecture

Video Swin Transformer的总体结构如上图所示。输入的视频数据为












的张量,由T帧的H×W×3的图片组成。在Video Swin Transformer中,作者用的3D patch的大小为 2×4×4×3,因此就可以得到




















 个 3D Patch,然后用线性embedding层将特征映射到维度为 C的 token embedding。
为了能够严格遵循Swin Transformer的层次结构,作者在时间维度上没有进行降采样,每个stage只在空间维度上进行了2×2的降采样。Patch合并层连接每组2×2个空间相邻patch的特征,并应用一个线性层将连接的特征投影到原来通道尺寸的一半。例如,第二阶段中的线性层将每个通道维度为4C的token映射为2C。

该体系结构的主要组件是 Video Swin Transformer block,这个模块就是将Transformer中 multi-head self-attention (MSA)替换成了基于3D滑动窗口的MSA模块。具体地说,一个 video Transformer block由一个基于3D滑动窗口的MSA模块和一个前馈网络(FFN)组成,其中FFN由两层的MLP和激活函数GELU组成。Layer Normalization(LN)被用在每个MSA和FFN模块之前,残差连接被用在了每个模块之后。‍‍‍

2.2 3D Shifted Window based MSA Module

与图像相比,视频需要更多的输入token来表示它们,因为视频另外有一个时间维度。因此,一个全局的自注意模块将不适合视频任务,因为这将导致巨大的计算和内存成本。在这里,作者遵循Swin Transformer的方法,在自注意模块中引入了一个局部感应偏置。

2.2.1 在不重叠的三维窗口上的MSA

在每个不重叠的二维窗口上的MSA机制已被证明对图像识别是有效并且高效的。在这里,作者直接扩展了这种设计到处理视频输入中。给定一个由

















个3D token组成的视频,3D窗口大小为








,这些窗口以不重叠的方式均匀地分割视频输入。这些token被分成了多个不重叠的3D窗口。

如上图(中)所示,对于输入大小为8×8×8的token和窗口大小为4×4×4,第




层中的窗口数将为2×2×2=8。‍‍‍‍‍‍‍‍

2.2.2. 3D Shifted Windows

由于在每个不重叠的三维窗口中都应用了多头自注意机制,因此缺乏跨不同窗口的关系建模,这可能会限制特征的表示能力。因此,作者将Swin Transformer的移位二维窗口(shifted 2D window)机制扩展到三维窗口,以引入跨窗口连接,同时保持基于非重叠自注意的高效窗口计算。对于Self-Attention模块的第一层,就如上面所示采用均匀分块的方式。对于第二层,窗口分区配置沿着来自上一层自注意模块的时间、高度和宽度方向分别移动


























个token的距离。

如上图(右)所示,输入大小为8×8×8,窗口大小为4×4×4。由于




层采用常规的窗口划分,




层中的窗口数为2×2×2=8。对于第






层,当窗口会在三个方向上分别移动





















(







)


个token的距离,因此窗口数量为3×3×3=27。

采用滑动窗口划分的方法,两个连续的Video Swin Transformer块计算如下所示:

2.2.3. 3D Relative Position Bias

先前的工作已经表明,在自注意计算中包含相对位置编码对于performance的提升是有用的。因此作者在Video Swin Transformer也引入了3D相对位置编码,计算方式如下:

2.3 Architecture Variants

基于上面的设计,作者提出了下面四种不同参数量和计算量的网络结构:

2.4 Initialization from Pre-trained Model

由于Video Swin Transformer改编于Swin Transformer,因此Video Swin Transformer可以用在大型图像数据集上预训练的模型参数进行初始化。与Swin Transformer相比,Video Swin Transformer中只有两个模块具有不同的形状,分别为:线性embedding层和相对位置编码。

输入token在时间维度上变成了2,因此线性embedding层的形状从Swin Transformer的48×C变为96×C。在这里,作者直接复制预训练过的模型中的参数两次,然后将整个矩阵乘以0.5,以保持输出的均值和方差不变。

相对位置编码矩阵的形状为



















,而原始Swin Transformer中的形状为














。为了使相对位置编码的矩阵一样,作者将原来的














相对位置编码矩阵复制了







次。

      03      

实验

3.1 Comparison to state-of-the-art

3.1.1. Kinetics-400

上表展示了与SOTA的主干网络进行了比较的结果,包括基于卷积和基于Transformer的网络在Kinetics-400的结果。

3.1.2. Kinetics-600

上表展示了与SOTA的主干网络进行了比较的结果,包括基于卷积和基于Transformer的网络在Kinetics-600的结果。

3.1.3. Something-Something v2

上表将本文的方法与SSv2上的SOTA方法进行了比较。

3.2. Ablation Study

3.2.1. Different designs for spatiotemporal attention

我们可以观察到,joint版本达到了最佳的速度-精度的权衡。这主要是因为在joint版本中,空间域中的局部性在保持了有效性的同时减少了的计算。

3.2.2. Temporal dimension of 3D tokens

可以看出,更大的时间维度会达到更高的Top-1名精度,但也会具有更高的计算成本、较长的推断时间。

3.2.3. Temporal window size

可以看出,时间局部性可以提高视频识别的速度-精度权衡。

3.2.4. 3D shifted windows

结果表明,3D shifted windows方案在非重叠窗口之间建立连接是有效的。

3.2.5. Ratio of backbone/head learning rate

可以看出,Backbone上更小的学习率可以达到更好的性能。

      04      

总结

在本文中,作者提出了一种基于时空局部感应偏置的视频识别纯Transformer的结构。该模型从用于图像识别的Swin Transformer改变而来,因此它可以利用预训练的Swin Transformer模型进行参数的初始化。该方法在三个广泛使用的视频基准数据集上(Kinetics-400, Kinetics-600, Something-Something v2)测试,并且实现了SOTA的性能。

参考文献

[1]. Liu, Ze, et al. "Swin transformer: Hierarchical vision transformer using shifted windows." arXiv preprint arXiv:2103.14030  (2021).

作者介绍

研究领域:FightingCV公众号运营者,研究方向为多模态内容理解,专注于解决视觉模态和语言模态相结合的任务,促进Vision-Language模型的实地应用。

知乎/公众号:FightingCV

END,入群????备注:TFM

继 Swin Transformer 之后,MSRA 开源 Video Swin Transformer,在视频数据集上SOTA相关推荐

  1. 【Transformer养猪】Livestock Monitoring with Transformer

    对牲畜行为的跟踪有助于在现代动物饲养场及早发现并预防传染病.除了经济收益,这将减少畜牧业中使用的抗生素数量,否则这些抗生素将进入人类的饮食,加剧抗生素耐药性的流行,这是导致死亡的主要原因.我们可以使用 ...

  2. 论文阅读 - Video Swin Transformer

    文章目录 1 概述 2 模型介绍 2.1 整体架构 2.1.1 backbone 2.1.2 head 2.2 模块详述 2.2.1 Patch Partition 2.2.2 3D Patch Me ...

  3. [Video Transformer] Video Swin Transformer

    代码: GitHub - SwinTransformer/Video-Swin-Transformer: This is an official implementation for "Vi ...

  4. 超越PVT、Swin,南大开源高效Transformer:ResT​

    点击上方"视学算法",选择加"星标"或"置顶" 重磅干货,第一时间送达 作者丨happy 来源丨AIWalker 编辑丨极市平台 导读 本文 ...

  5. Swin Transformer v2实战:使用Swin Transformer v2实现图像分类(一)

    Swin Transformer V2实战 摘要 安装包 安装timm 数据增强Cutout和Mixup EMA 项目结构 计算mean和std 生成数据集 摘要 Swin Transformer v ...

  6. Fastformer:简单又好用的Transformer变体!清华MSRA开源线性复杂度的Fastformer!

    关注公众号,发现CV技术之美 0 写在前面 Transformer是一个强大的文本理解模型.然而,由于其对输入序列长度呈二次计算复杂度,Transformer是效率是比较低下的.虽然Transform ...

  7. 太强啦!华为诺亚ViG架构媲美CNN、Transformer(重磅开源)

    来源:机器之心 华为诺亚实验室的研究员发现图神经网络(GNN)也能做视觉骨干网络.将图像表示为图结构,通过简洁高效的适配,提出一种新型视觉网络架构 ViG,表现优于传统的卷积网络和 Transform ...

  8. 速度、准确率与泛化性能媲美SOTA CNN,Facebook开源高效图像Transformer

    机器之心报道 参与:魔王.小舟.杜伟 将自然语言处理领域主流模型 Transformer 应用在视觉领域似乎正在成为趋势.最近,Facebook 研究人员提出一项新技术--数据高效图像 Transfo ...

  9. Facebook开源高效图像Transformer,速度、准确率与泛化性能媲美SOTA CNN

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 转自 | 机器之心 将自然语言处理领域主流模型 Transform ...

最新文章

  1. huffman java_详解Huffman编码算法之Java实现
  2. 再见了Redis!这个数据库有点厉害,甚至碾压了Oracle!
  3. boost::hana::overload_linearly用法的测试程序
  4. [SQL]批量修改存储过程视图
  5. 计算机辅助工程分析及应用论文,计算机辅助工程计量的论文
  6. 高性能计算(HPC)的前景、如何学习HPC
  7. 安装centos linux7,安装centos7
  8. 后端 消息 转发_springCloud 后端使用webSocket向前端推送消息
  9. 与IDE相关的Attribute属性(C#)
  10. UI基础--烟花动画
  11. 利用rsyslog 对Linux用户进行审计
  12. Android-jsoup爬虫
  13. 人工智能产生式系统实验—动物识别系统(txt文件导入数据库)python代码实现以及关系图
  14. 小白白红队初成长(4)文件的面纱
  15. 主动变被动9个例句_【语法】被动语态的特殊用法考点总结
  16. Unix哲学学习笔记
  17. pmp考试24计 | 第十三计-计清:首先和首要
  18. 【深度学习概述学习小结】
  19. android+wifi+bridge,Android接入说明
  20. 对于一个女孩子来说,刚刚接触编程,真的像天书!

热门文章

  1. oracle 结果集比较,Oracle 结果集之间的问题(积并交叉)
  2. Unity MegaFiers 顶点动画
  3. 第46屆ICPC 東亞洲區域賽(澳門)(正式賽)Link-Cut Tree
  4. 大工17秋《计算机文化基础》在线测试1,大工18秋《计算机文化基础》在线测试1(满分题).doc...
  5. linux系统不关机添加硬盘吗,Linux服务器不关机新增硬盘的方法
  6. windows下客户端连接上马上会断开连接_Fix SSH客户端登录会话超时设置
  7. linux socket关闭并释放资源,【linux】centos 上 php-fpm 占用太多状态为 CLOSED 的 socket 且不释放, 如何解决?...
  8. 实战 es6_Node.JS实战64:ES6新特性:Let和Const
  9. unity许可证不可用_不可思议之梦蝶从PC版移植到Nintendo Switch经验分享(上)
  10. 中职读计算机什么专业好,读职校选择什么专业好一些