Swin Transformer: Hierarchical Vision Transformer using Shifted Windows
文章目录
0 摘要
- 本文提出了一种分层Transformer,其表示是用移位窗口计算的,通过将自注意力计算限制在不重叠的本地窗口同时,还允许跨窗口连接来提高效率。这种分层架构在各种尺度上建模很灵活,并且具有相对于图像大小的线性计算复杂度。
- 能和视觉任务兼容,包括图像分类和密集预测任务,目标检测和语义分割。
- 性能相当好,证明了基于 Transformer 的模型作为视觉主干的潜力。 可以作为Transformer的backbone。
- 代码:https://github.com/microsoft/Swin-Transformer
1 引言
CV方向通用方法是CNN,NLP领域存在Transformer方法。本文寻求扩展 Transformer的适用性,使其可以作为CV的backbone。
CV和NLP的差异:
- NLP中Transformers的基本元素是单词token,视觉元素在规模上会有很大差异,现有的Transformer方法中token是固定规模,不适用于CV。
- 图像中像素的分辨率很高。 对于高分辨率图像上的Transformer来说难以处理,因为其自注意力的计算复杂性与图像大小成二次方。
文本提出了一个通用的Transformer主干,称为 Swin Transformer,它构建分层特征图并且对图像大小具有线性计算复杂度。

- 分层特征图:通过从小尺寸的patch开始并逐渐与相邻patch合并到更深层中构建分层表示。
- 线性计算复杂度:通过在图像分割的非重叠窗口内局部计算自注意力来实现。每个窗口中的patch数量是固定的,因此复杂度与图像大小成线性关系。

Swin Transformer 的一个关键设计元素是它在连续自注意力层之间的窗口分区的移动。移动的窗口桥接前一层的窗口,提供它们之间的连接。
2 相关研究
3 方法
3.1 整体架构

-
先将图片分成不重叠的块,每个块成为
token,其特征是原始像素RGB值的串联,然后经过一个线性嵌入层投影到维度C。 -
在这些token上应用若干修正自注意力计算的Swin Transformer 块。Transformer 块保持令牌的数量,与线性嵌入一起被称为“阶段 1”。
-
随着网络变深,通过块合并层来减少token的数量。
- 第一个块合并层连接每组 2 × 2 2×2 2×2相邻块的特征,并在 4 C 4C 4C 维连接特征上应用线性层( 4 C 4C 4C变 2 C 2C 2C)。 token数减少4倍,并且输出维度设置为 2 C 2C 2C。 之后应用 Swin Transformer 块进行特征转换,保持 H 8 × W 8 \frac{H}{8}× \frac{W}{8} 8H×8W。 补丁合并和特征转换的第一个块表示为“第 2 阶段”。
- 该过程重复两次,分别为“第 3 阶段”和“第 4 阶段”,输出分辨率分别为 H 16 × W 16 \frac{H}{16}× \frac{W}{16} 16H<

SwinTransformer是一种创新的视觉Transformer模型,通过非重叠窗口的自注意力计算,结合移位窗口机制,实现在保持效率的同时增强跨窗口连接。论文介绍了其整体架构、关键设计如移位配置的高效计算和相对位置偏置,以及在图像分类、目标检测和语义分割等任务上的出色性能。
最低0.47元/天 解锁文章
767

被折叠的 条评论
为什么被折叠?



