Swin Transformer: Hierarchical Vision Transformer using Shifted Windows(ICCV2021)

本文提出了一种新的视觉Transformer架构SwinTransformer,通过移位窗口解决视觉任务中元素规模差异和高分辨率像素的问题,实现与CNNs相当的性能且计算复杂度线性。实验表明,SwinTransformer在图像分类和密集预测任务上表现出色,优于先前方法。
摘要由CSDN通过智能技术生成



Swin Transformer
code

Abstract(全译)

本文提出了一种新的视觉变压器,Swin Transformer,它可以作为计算机视觉的通用骨干。将Transformer从语言应用到视觉的挑战来自于这两个领域之间的差异,例如视觉实体规模的巨大差异以及与文本中的单词相比图像中像素的高分辨率。为了解决这些差异,我们提出了一个分层的Transformer,它的表示是用移位窗口计算的。移位窗口方案将自关注计算限制在不重叠的局部窗口上,同时允许跨窗口连接,从而提高了效率。这种层次结构具有在各种尺度上建模的灵活性,并且相对于图像大小具有线性计算复杂度。Swin Trans- former的这些特性使其与广泛的视觉任务兼容,包括图像分类(ImageNet-1K上的87.3 top-1精度)和密集预测任务,如物体检测(COCO测试开发上的58.7 box AP和51.1 mask AP)和语义分割(ADE20K val上的53.5 mIoU)。它的性能远远超过了以前的最先进的+2.7盒AP和+2.6 mask AP COCO和ADE20K上的+3.2 mIoU,展示了基于transformer的模型作为视觉主干的潜力。分层设计和移位窗口方法也被证明对所有MLP体系结构都是有益的。

Introduction

previously

从AlexNet以来,计算机视觉建模一直由卷积神经网络(CNNs)主导。
另一方面,自然语言处理(NLP)中网络体系结构的发展已经走了一条不同的道路,现在盛行的体系结构是Transformer
Transformer是为序列建模和转导任务而设计的,它以关注数据中的远程依赖关系建模而闻名

now

在本文中,我们试图扩展Transformer的适用性,使其可以作为计算机视觉的通用骨干,就像它在NLP和CNNs在视觉中的作用一样

problem

我们观察到,将其在语言领域的高性能转移到视觉领域的重大挑战可以通过两种模式之间的差异来解释。
其中一个差异涉及规模,与作为语言变形器处理的基本元素的词标记不同,视觉元素在规模上可以有很大的变化,这是一个在物体检测等任务中受到关注的问题,在现有的基于transformer的模型中,tokens都是固定规模的,这一特性不适合这些视觉应用
另一个不同之处是图像像素的分辨率要比文本段落中的单词高得多。这里有许多视觉任务,如语义分割,需要在像素级进行密集预测,这对于高分辨率图像上的Transformer来说是难以处理的,因为其自关注的计算复杂度是图像大小的二次元

Creativity

为了克服这些问题,我们提出了一种通用的Transformer主干Swin Transformer,它构建分层特征映射,并且具有与图像大小相关的线性计算复杂度

Swin Transformer通过合并更深层次的图像补丁(灰色)来构建分层特征映射,并且由于仅在每个局部窗口(红色)内计算自关注,因此具有输入图像大小的线性计算复杂性。因此,它可以作为图像分类和密集识别任务的通用主干
相比之下,以前的ViT产生单一低分辨率的特征图,并且由于全局自关注的计算,输入图像大小的计算复杂度为二次

design

Swin Transformer的一个关键设计元素是其在连续自关注层之间的窗口分区的移位,如下图所示

在第1层(左),采用规则的窗口划分方案,并在每个窗口内计算自关注。在下一层1 +1(右)中,窗口分区被移动,从而产生新的窗口。新窗口中的自关注计算跨越第1层先前窗口的边界,提供它们之间的连接

conclusion

Swin Transformer在图像分类、目标检测和语义分割等识别任务上都取得了较好的性能

future expectations

我们相信,跨计算机视觉和自然语言处理的统一架构可以使这两个领域受益,因为它可以促进视觉和文本信号的联合建模,并且可以更深入地共享两个领域的建模知识。我们希望Swin Transformer在各种视觉问题上的出色表现可以在社区中更深入地推动这种信念,并鼓励对视觉和语言信号进行统一建模

Related Work

CNN and variants

AlexNet、VGG、GoogleNet、ResNet、DenseNet、HRNet、EfficientNet
在改进单个卷积层方面也做了很多工作,例如深度卷积和可变形卷积

Self-attention based backbone architectures

受到自关注层和Trans- former架构在自然语言处理领域的成功的启发,一些作品使用自关注层来取代流行的ResNet中的部分或全部空间卷积层,但昂贵的内存访问导致它们的实际延迟明显大于卷积网络
我们建议在连续层之间移动窗口,而不是使用滑动窗口,这允许在一般硬件中更有效地实现

Self-attention/Transformers to complement CNNs

另一项工作是用自关注层或Transformer来增强标准的CNN架构,自关注层可以补充主干或头部网络,提供编码远程依赖关系或异构交互的能力。最近,编码器-解码器的设计Transformer被用于对象检测和实例分割任务。

Transformer based vision backbones

与我们的工作最相关的是Vision Transformer (ViT)及其后续研究,与卷积网络相比,它在图像分类方面取得了令人印象深刻的速度和精度折中。ViT需要大规模的训练数据集才表现良好,DeiT引入了几种训练策略,使ViT在使用较小的ImageNet-1K数据集时也能有效
ViT在图像分类方面取得了令人鼓舞的结果,但由于其低分辨率特征映射和复杂度随图像大小的二次增长而增加,其结构不适合作为密集视觉任务或高分辨率输入图像的通用骨干网络
与我们工作同时进行的是修改ViT架构,以更好地进行图像分类,而我们的Swin Transformer架构在图像分类方面达到了这些方法中速度和精度的最佳平衡。
另一项同时进行的工作探索了在Transformers上构建多分辨率特征地图的类似思路,它的复杂性仍然是图像大小的二次,而我们的是线性的,也在局部运行,这已被证明有利于建模视觉信号中的高相关性

Mathod

Overall Architecture


首先通过像ViT一样的patch分割模块将输入的RGB图像分割成不重叠的patch,每个patch被视为一个token,其特征被设置为原始像素RGB值的串联。
Stage 1:
使用4 × 4的patch大小,因此每个patch的特征维数为4 × 4 × 3= 48,在此原始值特征上应用线性嵌入层,将其投影到任意维度(记为C)。在这些补丁令牌上应用了几个具有改进的自关注计算的Transformer块(Swin Transformer块),Transformer块维护token的数量(H/4 × W/4)
Stage 2:
Patch Merging层用来减少token的数量。第一个patch merging层将每组2 × 2相邻patch的特征进行拼接,并在拼接后的4C维特征上应用线性层,这将token的数量减少了2× 2= 4倍(分辨率的2倍降采样),输出维度设置为2C。之后使用Swin Transformer块进行特征变换,分辨率保持在H/8 × W/8
Stage 2过程重复两次,分别为“阶段3”和“阶段4”,输出分辨率为H/16 × W/16和H/32 × W/32

这些阶段共同产生一个分层表示,具有与典型卷积网络(如VGG和ResNet)相同的特征映射分辨率。因此,该结构可以方便地取代现有方法中的骨干网络,用于各种视觉任务

Swin Transformer Block

Swin Transformer是通过将Transformer块中的标准多头自关注(MSA)模块替换为基于移位窗口的模块(见3.2节)而构建的,其他层保持不变。如图3(b)所示,Swin Transformer模块由一个基于移位窗口的MSA模块组成,然后是一个两层MLP,中间是GELU非线性。在每个MSA模块和每个MLP模块之前应用一个LN (LayerNorm)层,在每个模块之后应用一个残余连接

Shifted Window based Self-Attention

标准的Transformer体系结构及其对图像分类的适应都进行全局自关注,计算一个令牌和所有其他令牌之间的关系
全局计算导致token数量的二次复杂度,使得它不适合许多需要大量token进行密集预测或表示高分辨率图像的视觉问题

Self-attention in non-overlapped windows

为了有效地建模,我们建议在局部窗口内计算自注意力,窗口被布置成以非重叠方式均匀地分割图像,假设每个窗口包含M × M块,则全局MSA模块和基于h × w块图像的窗口的计算复杂度为:
前者与补丁数hw成二次关系,后者在M固定时为线性关系(默认为7)。对于大型硬件来说,全局自注意力机制计算通常是负担不起的,而基于窗口的自注意力机制是可扩展的

Shifted window partitioning in successive blocks

基于窗口的自注意力机制模块缺乏跨窗口的连接,这限制了它的建模能力,为了在保持非重叠窗口的高效计算的同时引入跨窗口连接,我们提出了在连续的Swin Transformer Block中交替进行两种分区配置的移位窗口分区方法。如图2所示,第一个模块使用从左上角像素开始的常规窗口划分策略,将8 × 8的特征映射均匀地划分为2 × 2窗口,大小为4 × 4 (M =4)

然后,下一个模块采用从前一层的移位的窗口配置,将窗口从规则分割的窗口移动(M/2,M/2)个像素
使用移位窗口划分方法,连续的Swin Transformer块被计算为:

W-MSA和SW-MSA分别使用常规和移位的窗口分区配置表示基于窗口的多头自注意力机制
移位窗口分割方法在前一层中引入相邻的不重叠窗口之间的连接,在图像分类、目标检测和语义分割方面被发现是有效的

Efficient batch computation for shifted configuration

移动窗口分区的一个问题是,它将导致更多的窗口,并且有些窗口将比M × M小,一个简单的解决方案是将较小的窗口填充到M × M的大小,并在计算注意力时屏蔽填充值,但这会增加相当大的计算量
我们提出了一种更有效的批量计算方法,即向左上方向循环移位,如图4所示

在此转换之后,批处理窗口可能由特征映射中不相邻的几个子窗口组成,因此采用屏蔽机制将自注意力计算限制在每个子窗口内,通过循环移位,批处理窗口的数量与常规窗口分区的数量保持一致,因此也是高效的

Relative position bias



由于沿各轴的相对位置在[-M +1,M -1],我们对较小的偏置矩阵B hat∈R(2M-1)×(2M+1)进行参数化,B中的值取自B hat。
我们观察到与没有此偏差项或使用绝对位置嵌入的同类相比,有显著的改进。由于在输入中进一步添加绝对位置嵌入会略微降低性能,因此在我们的实现中没有采用

Architecture Variants

我们建立了我们的基础模型,称为Swin - B,具有类似于ViT-B / DeiT-B的模型大小和计算复杂度。
我们还介绍了Swin - T、Swin - S和Swin - L,这三个版本分别是模型大小和计算复杂度的0.25倍、0.5倍和2倍
窗口大小默认设置为M =7。对于所有实验,每个头部的查询维数为d =32,每个MLP的扩展层为α =4。这些模型变体的体系结构超参数为:

C为第一阶段隐藏层的通道数

Experiments

在ImageNet-1K图像分类上进行了实验识别、COCO对象检测、ADE20K语义分割
将提出的Swin Transformer架构与之前在这三个任务上的最新技术进行比较。然后,对Swin Transformer的重要设计要素进行了分析

Image Classification on ImageNet-1K

在ImageNet-1K上对所提出的Swin Transformer进行了基准测试,ImageNet-1K包含来自1000个类的1.28M张训练图像和50K张验证图像
我们考虑两种训练设置:

  • Regular ImageNet-1K training
    使用了一个AdamW优化器,使用余弦衰减学习率调度器和20次线性预热,批大小为1024,初始学习率为0.001,权值衰减为0.05
  • 在ImageNet-22K上进行预训练并在ImageNet-1K上进行微调
    1420万张图片和22K个类,批大小为4096,初始学习率为0.001,权重衰减为0.01
    在ImageNet-1K微调中,我们训练了30个epoch的模型,批大小为1024,恒定学习率为10−5,权值衰减为10−8

Object Detection on COCO

目标检测和实例分割实验在COCO 2017上进行,其中包含118K训练,5K验证和20K测试图像
使用验证集执行消融研究,并在测试开发中报告系统级比较。对于消融研究,我们考虑了四种典型的目标检测框架:Cascade Mask R-CNN,ATSS,RepPoints v2和Sparse RCNN在mmdetection
对于这四个框架,我们使用相同的设置:多尺度训练8,56,AdamW优化器(初始学习率为0.0001,权衰减为0.05,批大小为16,3x进度表(36次)
对于系统级的比较,我们采用改进的HTC(记为HTC++),采用instaboost、更强的多尺度训练、6x调度(72 epoch)、soft-NMS和ImageNet-22K预训练模型作为初始化

、

Semantic Segmentation on ADE20K

ADE20K涵盖了150个语义类,总共25000图片,其中20K用于训练,2K验证集,3K测试集

Ablation Study

Shifted windows


W /o shifting:所有自注意力模块均采用规则的窗口划分,不移位
abs.pos:ViT的绝对位置嵌入项
rel.pos:默认设置,附加相对位置偏差项
app.:第一个缩放的点积项

Relative position bias

表4显示了不同位置嵌入方法的比较

Different self-attention methods



我们的循环实现比单纯填充的硬件效率更高,特别是对于深层次的阶段

Conclusion

Swin Transformer在COCO对象检测和ADE20K语义分割方面实现了最先进的性能,大大超过了以前的最佳方法。作为Swin Transformer的关键元素,基于shifted 窗口的自注意力在视觉问题上是有效的,我们期待着研究它在自然语言处理中的应用

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值