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

知识补充:

Swin Transformer 是一种基于 Transformer 架构的深度学习模型,用于图像处理任务,如图像分类、目标检测和分割等。Swin Transformer 是基于 Vision Transformer (ViT) 模型的改进版本,在处理图像时引入了新的分块式注意力机制,以应对大尺寸图像的处理挑战。

Swin Transformer 的设计采用了分层分块的策略,通过将图像分解为一系列大小较小的块,并在每个块内进行自注意力操作,从而减少了整个图像的计算复杂度,同时保持了全局信息的完整性。这种分层分块的结构使得 Swin Transformer 在处理大尺寸图像时能够取得较好的性能,并且具有较好的可扩展性。

Swin Transformer 在图像分类和目标检测等任务上取得了很好的效果,并且在一些领域已经成为了 SOTA(State-of-the-Art,最先进)的模型之一。

摘要:

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

1. Introduction

计算机视觉中的建模长期以来主要由卷积神经网络(CNNs)主导。从 AlexNet 的出现开始,它在 ImageNet 图像分类挑战中取得了革命性的性能,CNN 架构已经通过更大规模、更广泛的连接和更复杂的卷积形式不断发展,变得越来越强大。随着 CNN 成为各种视觉任务的骨干网络,这些架构的进步已经带来了性能的提高,广泛推动了整个领域的发展。

图1:(a)所提出的Swin Transformer通过合并更深层的image patches(灰色)来构建分层特征映射,并且由于仅在每个局部窗口内计算自注意(红色),因此对输入图像大小具有线性计算复杂度。因此,它可以作为图像分类和密集识别任务的通用骨干。(b)相比之下,以往的视觉Transform[20]产生的是单一低分辨率的特征图,由于全局的自注意计算,输入图像大小的计算复杂度是二次的。

另一方面,自然语言处理(NLP)中网络架构的发展已经走了一条不同的道路,今天流行的架构是Transformer[64]。Transformer是为序列建模和转导任务而设计的,它以关注数据中的远程依赖关系建模而闻名。它在语言领域的巨大成功促使研究人员研究它对计算机视觉的适应性,最近它在某些任务上显示出有希望的结果,特别是图像分类[20]和联合视觉语言建模[47]。

 在语言和视觉领域之间存在巨大差异,其中一个差异涉及到尺度。与语言Transformer中作为基本处理单元的单词标记不同,视觉元素的尺度可以有很大变化,这在对象检测等任务中受到关注。在现有基于Transformer的模型中,标记都是固定尺度的,这种特性不适合视觉应用。另一个差异是图像中像素的分辨率远高于文本段落中的单词。许多视觉任务,如语义分割,需要在像素级别进行密集预测,而在高分辨率图像上进行这种操作对于Transformer来说是难以处理的,因为其自注意力的计算复杂度与图像尺寸的平方成正比。为了克服这些问题,提出了一种名为Swin Transformer的通用Transformer骨干,它构建了分层特征图,并且对图像尺寸具有线性计算复杂度。Swin Transformer通过在图像中的非重叠窗口内局部计算自注意力来实现线性计算复杂度。每个窗口中的patches数量是固定的,因此复杂度随着图像尺寸呈线性增长。这些优点使Swin Transformer适用于各种视觉任务的通用骨干,与之前的基于Transformer的架构形成对比,后者产生单一分辨率的特征图,并具有二次复杂度。

窗口的自注意力,其计算复杂度是线性的,与图像尺寸成正比。

全局自注意力,其计算复杂度是二次的,与图像尺寸的平方成正比。

在连续的自注意力层之间移动窗口分区,如图2所示。通过移动窗口,连接了前一层的窗口,提供了它们之间的连接,显著增强了建模能力。这种策略在实际延迟方面也非常高效:窗口内的所有查询patches共享相同的键集,这有助于硬件中的内存访问。相比之下,早期基于滑动窗口的自注意力方法由于不同查询像素具有不同的键集,在一般硬件上延迟较高。实验证明,所提出的移动窗口方法比滑动窗口方法具有更低的延迟,但在建模能力方面类似。移动窗口方法还对所有MLP架构有益。这意味着通过移动窗口的方法,Swin Transformer在建模能力和延迟方面都取得了良好的平衡,从而提高了其在视觉任务中的性能和效率。 

图2:在提出的Swin Transformer架构中计算自注意力的移位窗口方法的说明。在第1层(左),采用规则的窗口划分方案,并在每个窗口内计算自关注。在下一层1 + 1(右)中,窗口分区被移动,产生新的窗口。新窗口中的自关注计算跨越第1层先前窗口的边界,提供它们之间的连接。

所提出的Swin Transformer在图像分类、目标检测和语义分割等识别任务上取得了较好的性能。它在三个任务上具有相似的延迟,显著优于ViT / DeiT[20,63]和ResNe(X)t模型[30,70]。在COCO测试开发集上,它的58.7box AP和51.1 mask AP比之前最先进的结果高出+2.7盒AP(无外部数据的复制粘贴[26])和+2.6掩码AP(检测器[46])。在ADE20K语义分割上,它在val集合上获得了53.5 mIoU,比之前的先进技术(SETR[81])提高了+3.2 mIoU。它在ImageNet-1K图像分类上也达到了87.3%的前1准确率。

"box AP"代表Bounding Box Average Precision(边界框平均精度),是一种用于评估目标检测模型性能的指标。边界框平均精度是目标检测任务中常用的指标之一,用于衡量模型在检测目标位置和准确性方面的表现。

边界框平均精度通常通过计算Precision-Recall曲线下的面积(Area Under the Curve,AUC)来评估模型的性能。在目标检测任务中,Precision表示检测出的目标中真正为目标的比例,Recall表示所有真实目标中被正确检测出的比例。边界框平均精度综合考虑了Precision和Recall之间的权衡,提供了对目标检测模型整体性能的评估。

2. Related Work 

CNN and variants cnn在整个计算机视觉中都是标准的网络模型。虽然CNN已经存在了几十年[40],但直到AlexNet的引入[39],CNN才起飞并成为主流。此后,人们提出了更深入、更有效的卷积神经架构来进一步推动计算机视觉领域的深度学习浪潮,如VGG[52]、GoogleNet[57]、ResNet[30]、DenseNet[34]、HRNet[65]和EfficientNet[58]。除了这些架构上的进步,在改进单个卷积层方面也有很多工作,比如深度卷积[70]和可变形卷积[18,84]。虽然CNN及其变体仍然是计算机视觉应用的主要骨干架构,但我们强调了类似transformer的架构在视觉和语言之间统一建模的强大潜力。我们的工作在几个基本的视觉识别任务上取得了很好的表现,我们希望它将有助于建模的转变。

Self-attention based backbone architectures 同样受到自注意层和Transformer架构在NLP领域成功的启发,一些作品使用自注意层来取代流行的ResNet中的部分或全部空间卷积层[33,50,80]。在这些工作中,自关注是在每个像素的局部窗口内计算的,以加快优化[33],并且它们比对应的ResNet架构实现了略好的精度/FLOPs权衡。然而,它们昂贵的内存访问导致它们的实际延迟明显大于卷积网络[33]。我们建议在连续层之间移动窗口,而不是使用滑动窗口,这允许在一般硬件中更有效地实现。

Self-attention/Transformers to complement CNNs 将标准的卷积神经网络(CNN)架构与自注意力层或Transformer相结合。自注意力层可以通过提供编码远程依赖性或异质交互能力来补充主干网络或头部网络。最近,Transformer中的编码器-解码器设计已被应用于目标检测和实例分割任务。我们的工作探索了将Transformer用于基本视觉特征提取的适应性,并与这些工作相辅相成。

Transformer based vision backbones 

ViT是一种将Transformer架构直接应用于非重叠的中等大小图像块进行图像分类的先驱性工作。相比卷积网络,ViT在图像分类上取得了令人印象深刻的速度-准确性权衡。然而,ViT需要大规模的训练数据集(如JFT-300M)才能表现良好,而DeiT引入了几种训练策略,使ViT在使用较小的ImageNet-1K数据集时也能取得良好效果。尽管ViT在图像分类方面的结果令人鼓舞,但其架构不适合作为密集视觉任务或高分辨率输入图像时的通用主干网络,因为其特征图分辨率较低,并且随着图像大小的增加,复杂度呈二次增加。

有一些研究将ViT模型应用于目标检测和语义分割等密集视觉任务,通过直接上采样或反卷积,但性能相对较低。与我们的工作同时进行的一些研究对ViT架构进行了修改,以实现更好的图像分类效果。实证结果显示,我们的Swin Transformer架构在图像分类中实现了最佳的速度-准确性权衡,尽管我们的工作侧重于通用性能而非特定的分类任务。另一项同时进行的研究探索了一种类似的思路,即在Transformer上构建多分辨率特征图。该方法的复杂度仍然随着图像大小呈二次增加,而我们的方法是线性的,并且在本地操作,已被证明在建模视觉信号中的高相关性方面具有益处。我们的方法既高效又有效,在COCO目标检测和ADE20K语义分割任务上实现了最先进的准确性。

3. Method

3.1. Overall Architecture

 图3:(a) SwinTransform的结构(Swin- t);(b)两个连续的SwinTransform块(符号如Eq.(3)所示)。W-MSA和SW-MSA是多头自注意模块,分别具有规则和移位的窗口配置

图3给出了Swin Transformer体系结构的概述,其中演示了小型版本(SwinT)。它首先通过像ViT一样的patches分割模块将输入的RGB图像分割成不重叠的patches。每个patches被视为一个“标记”,其特征被设置为原始像素RGB值的串联。在我们的实现中,我们使用4 × 4的patch大小,因此每个patch的特征维数为4 × 4 × 3 = 48。在此原始值特征上应用线性嵌入层,将其投影到任意维度(记为C)。

首先,对这些图块令牌应用了几个具有修改的自注意力计算的Transformer块(Swin Transformer块)。这些Transformer块保持了令牌的数量(H/4 × W/4),并与线性嵌入一起被称为“阶段1”。

为了生成层级表示,随着网络变得更深,通过图块合并层来减少令牌的数量。第一个图块合并层将每组2×2相邻图块的特征连接起来,并在4C维度的连接特征上应用线性层。这将令牌的数量减少了2×2 = 4倍(分辨率下采样2倍),输出维度设置为2C。然后应用Swin Transformer块进行特征转换,分辨率保持在H/8 × W/8。这个第一个图块合并和特征转换的块被标记为“阶段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模块组成,其次是一个2层MLP,中间是GELU非线性。在每个MSA模块和每个MLP模块之前应用一个LN (LayerNorm)层,在每个模块之后应用一个残余连接

3.2. Shifted Window based Self-Attention

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

Self-attention in non-overlapped windows 为了提高建模效率,我们建议在局部窗口内计算自关注。所述窗口被布置成以非重叠方式均匀地分割图像。假设每个窗口包含M × M块,则全局MSA模块和基于h × w块图像的窗口的计算复杂度为:

其中,前者与patch number hw是二次元,后者在M固定时(默认为7)是线性的。对于大型硬件来说,全局自关注计算通常是负担不起的,而基于窗口的自关注是可扩展的。

W-MSA代表"window-based multi-head self-attention",即基于窗口的多头自注意力。这是一种自注意力机制的变体,用于在局部窗口内计算注意力权重,而不是全局计算。

Shifted window partitioning in successive blocks 基于窗口的自关注模块缺乏跨窗口的连接,这限制了它的建模能力。为了引入跨窗口连接,同时保持非重叠窗口的高效计算,我们提出了一种移位窗口分区方法,该方法在连续的Swin Transformer块中交替使用两种分区配置

如图2所示,第一个模块采用从左上角像素开始的常规窗口划分策略,将8 × 8特征图均匀划分为大小为4 × 4 (M = 4)的2 × 2个窗口。然后,下一个模块采用与前一层不同的窗口配置,将窗口置换为\left ( \left \lfloor \frac{M}{2} \right \rfloor,\left \lfloor \frac{M}{2} \right \rfloor \right )来自规则分割窗口的像素。使用移位窗口划分方法,连续的Swin Transformer块计算为

式中\hat{z}^{l}z^{l}分别表示块L的(S)WMSA模块和MLP模块的输出特征;

W-MSA和SW-MSA分别表示基于窗口的多头自注意力机制,其中W-MSA使用常规的窗口划分配置,而SW-MSA使用了移位窗口划分配置。

移位窗口分割方法引入了前一层相邻非重叠窗口之间的联系,在图像分类、目标检测和语义分割方面效果显著,如表4所示。

图4:移位窗口划分中自关注的一种高效批处理计算方法。 

 Efficient batch computation for shifted configuration 

移位窗口划分会导致更多的窗口,从\left \lceil \frac{h}{M} \right \rceil\times \left \lceil \frac{w}{M} \right \rceil\left ( \left \lceil \frac{h}{M} \right \rceil +1\right )\times \left ( \left \lceil \frac{w}{M} \right \rceil+1 \right )。在移位配置中,一些窗口可能会比M × M小。一种简单的解决方案是将较小的窗口填充到大小为M × M,并在计算注意力时屏蔽填充值。然而,当常规划分中窗口数量较少时,例如2 × 2,使用这种简单解决方案会导致计算量显著增加(2 × 2 → 3 × 3,增加了2.25倍)。

为了解决这个问题,作者提出了一种更高效的批处理计算方法,通过向左上方向进行循环移位,如图4所示。在这种移位后,一个批处理窗口可能由几个在特征图中不相邻的子窗口组成,因此采用了掩码机制来限制自注意力计算仅在每个子窗口内进行。通过循环移位,批处理窗口的数量保持与常规窗口划分相同,因此也是高效的。这种方法的低延迟性能在表5中有所展示。

循环移位是一种操作,通过该操作可以将特征图中的像素或特征在水平和垂直方向上进行循环移动。在这种移位操作中,当特征图的像素或特征到达边界时,它们会从另一侧重新出现,形成一个循环。这种移位操作不会改变特征图中的像素或特征的值,只是改变它们的位置,使得特征图在视觉上产生了平移的效果。

Relative position bias 在计算自注意时,我们遵循[49,1,32,33],在计算相似度时为每个头部加入一个相对位置偏差B\epsilon \mathbb{R}^{M^{2}\times M^{2}}:

  • Q,K,V\epsilon \mathbb{R}^{M^{2}\times d}是查询矩阵、键矩阵和值矩阵
  • d为查询/键维数
  • M2为窗口patches数 
  • 由于沿各轴的相对位置在[−M + 1;M−1]
  • 我们参数化了一个较小尺寸的偏置矩阵\hat{B}\epsilon \mathbb{R}^{\left ( 2M-1 \right )\times \left ( 2M-1 \right )}
  • B中的值取自\hat{B}

我们观察到,与没有此偏差项或使用绝对位置嵌入的同类相比,有了显著的改进,如表4所示。进一步像[20]那样在输入中加入绝对位置嵌入会略微降低性能,因此在我们的实现中没有采用。

预训练中习得的相对位置偏差也可用于初始化模型,通过双三次插值对不同窗口大小进行微调[20,63]。

3.3. Architecture Variants

我们建立了我们的基础模型,称为swin - B,具有类似于ViTB/DeiT-B的模型大小和计算复杂度。我们还介绍了swin - T、swin - S和swin - L,它们分别是约为模型大小和计算复杂度的0.25倍、0.5倍和2倍的版本。需要注意的是,swin- t和swin- s的复杂度分别与ResNet-50 (DeiT-S)和ResNet-101相似。窗口大小默认设置为M = 7。对于所有实验,每个头部的查询维数为d = 32,每个MLP的扩展层为α = 4。这些模型变体的架构超参数是:

其中C为第一阶段隐藏层的通道数。表1列出了用于ImageNet图像分类的模型大小、理论计算复杂度(FLOPs)和模型变体的吞吐量。

4. Experiments 

我们对ImageNet-1K图像分类[19]、COCO目标检测[43]、ADE20K语义分割[83]进行了实验。在下文中,我们将首先比较所建议的Swin Transformer体系结构与之前关于这三个任务的最新技术。然后,对Swin Transform的重要设计要素进行了分析。

4.1. Image Classification on ImageNet-1K

Settings对于图像分类,我们在ImageNet-1K[19]上对所提出的Swin Transformer进行了基准测试,该ImageNet-1K包含来自1000个类的1.28M张训练图像和50K张验证图像。报告了单一作物的最高精度。我们考虑两种训练设置:

  • 在这个设置中,主要遵循了参考文献[63]的方法。具体来说,采用了AdamW优化器进行300个epochs的训练,使用余弦衰减学习率调度器和20个epochs的线性预热。批量大小为1024,初始学习率为0.001,权重衰减为0.05。在训练中包含了参考文献[63]中的大部分数据增强和正则化策略,但不包括重复增强和EMA,因为它们并没有提升性能。需要注意的是,与参考文献[63]中指出的ViT训练中重复增强对稳定训练至关重要的情况相反,这里并没有采用重复增强策略。重复增强(repeated augmentation):这是一种数据增强技术,通过多次应用相同的数据增强操作来增加训练数据的多样性。通过在每个训练步骤中多次应用数据增强,可以引入更多的变化和噪声,有助于提高模型的泛化能力和稳定性。重复增强可以帮助模型更好地适应不同的数据分布和变化,从而提高模型在测试数据上的表现。
  • 在ImageNet-22K上预训练和在ImageNet-1K上微调。我们还在更大的ImageNet-22K数据集上进行预训练,该数据集包含1420万张图像和22K个类。我们使用带有5 epoch线性预热的线性衰减学习率调度器为90 epoch使用AdamW优化器。批大小为4096,初始学习率为0.001,权重衰减为0.01。在ImageNet-1K微调中,我们训练了30个epoch的模型,批大小为1024,恒定学习率为10−5,权重衰减为10−8。

 重复增强(repeated augmentation):这是一种数据增强技术,通过多次应用相同的数据增强操作来增加训练数据的多样性。通过在每个训练步骤中多次应用数据增强,可以引入更多的变化和噪声,有助于提高模型的泛化能力和稳定性。重复增强可以帮助模型更好地适应不同的数据分布和变化,从而提高模型在测试数据上的表现。

EMA(Exponential Moving Average):EMA是一种模型参数更新的技术,通过计算参数的指数移动平均值来平滑参数更新过程。在训练过程中,除了使用当前步骤的梯度更新参数,还会根据历史参数值计算出一个平滑的参数估计。这有助于减少参数更新的噪声和波动,提高模型的稳定性和泛化能力。EMA通常用于提高模型在测试数据上的性能,并有助于防止过拟合。

Results with regular ImageNet-1K training 表1(a)给出了使用常规ImageNet-1K训练与其他主干的比较,包括基于transformer和基于convnet的主干

与之前最先进的基于Transform的架构,即DeiT[63]相比,Swin transformer明显超过了具有类似复杂性的DeiT架构:使用224^2输入的Swin- t(81.3%)比DeiT- s(79.8%)高1.5%,使用224^2 /384^2输入的Swin- b(83.3%/84.5%)比DeiT- b(81.8%/83.1%)高1.5%/1.4%。

与最先进的ConvNets(即RegNet[48]和EfficientNet[58])相比,Swin Transformer实现了稍好的速度-精度权衡。请注意,虽然RegNet[48]和effentnet[58]是通过彻底的体系结构搜索获得的,但拟议的Swin Transformer改编自标准Transformer,并且具有进一步改进的强大潜力。

Results with ImageNet-22K pre-training 我们还在ImageNet22K上预训练了容量更大的swin - b和swin - l。对ImageNet-1K图像分类进行微调后的结果如表1(b)所示。对于swin - b, ImageNet22K预训练比在ImageNet-1K上从头开始训练带来1.8% ~ 1.9%的增益。与之前ImageNet-22K预训练的最佳结果相比,我们的模型实现了明显更好的速度-精度权衡:swin - b获得了86.4%的top-1精度,比具有相似推理吞吐量(84.7 vs 85.9图像/秒)的ViT高2.4%,FLOPs略低(47.0G vs.55.4 g)。较大的swan - l模型达到了87.3%的top-1准确率,比swan - b模型提高了+0.9%。

表1:不同骨干在ImageNet-1K分类上的比较。吞吐量使用GitHub存储库[68]和V100 GPU进行测量,如下[63]。

4.2. Object Detection on COCO

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

比较Swin Transformer与标准的ConvNets(如ResNe(X)t)和之前的Transformer网络(如DeiT)时所采取的方法。在比较中,我们仅仅改变了模型的主干网络(backbones),而保持其他设置不变。由于Swin Transformer和ResNe(X)t具有分层特征图,因此可以直接应用于所有上述框架。而DeiT只产生单一分辨率的特征图,无法直接应用于这些框架。为了公平比较,我们遵循了参考文献[81]的方法,使用反卷积层构建了DeiT的分层特征图。

Comparison to ResNe(X)t  表2(a)列出了swin - t和ResNet-50在四种目标检测框架上的结果。我们的swin- t架构带来了与ResNet-50相比一致的+3.4 ~ 4.2box AP增益,但模型尺寸、FLOPs和延迟略大。

表2(b)在使用Cascade Mask RCNN框架下比较Swin Transformer和ResNe(X)t在不同模型容量下的性能表现。在这个比较中,Swin Transformer在检测准确度方面取得了较高的成绩,分别为51.9的box AP和45.0的mask AP。这些结果相比于具有相似模型大小、FLOPs和延迟的ResNeXt101-64x4d模型,分别提升了+3.6的box AP和+3.3的mask AP。在使用改进的HTC框架作为更高基线的情况下,Swin Transformer的表现也很出色,分别提升了+4.1的box AP和+3.1的mask AP。此外,关于推理速度,虽然ResNe(X)t是通过高度优化的Cudnn函数构建的,但我们的架构是使用内置的PyTorch函数实现的,这些函数并非全部经过充分优化。本文的范围不包括对内核进行彻底优化。这表明虽然Swin Transformer在性能上取得了显著的提升,但在推理速度方面可能还有优化的空间。

Cascade Mask R-CNN是一种目标检测和实例分割的深度学习框架,是在Mask R-CNN的基础上进行改进的。它结合了目标检测和实例分割的功能,能够同时检测图像中的物体并对它们进行像素级的分割。Cascade Mask R-CNN通过级联式的检测器来逐步提升检测性能,通过多阶段的检测来提高准确度。

在实验中选择Cascade Mask R-CNN框架进行测试的原因可能有几个:

  1. 性能提升: Cascade Mask R-CNN通过级联式的检测器可以提高目标检测和实例分割的准确度,因此可以用来评估不同模型在复杂任务上的性能表现。

  2. 广泛应用: Cascade Mask R-CNN是一个被广泛应用的目标检测和实例分割框架,因此在这个框架上进行实验可以更好地与其他研究进行比较和对比。

  3. 对比分析: 通过在Cascade Mask R-CNN框架上测试不同模型,可以更好地比较它们在相同任务上的性能差异,从而评估各自的优劣势。

 

表2:COCO对象检测与实例分割结果。\dagger表示使用额外的解卷积层来生成分层特征映射。*表示多尺度测试。 

Comparison to DeiT  使用级联掩码R-CNN框架的DeiT-S性能如表2(b)所示。swin - t的结果比相似模型大小的DeiT-S (86M vs. 80M)高+2.5盒AP和+2.3掩模AP,推理速度显著提高(15.3 FPS vs. 10.4 FPS)。DeiT较低的推理速度主要是由于其对输入图像大小的二次复杂度。

Comparison to previous state-of-the-art 表2(c)将我们的最佳结果与以前最先进的模型进行了比较。我们的最佳模型在COCO测试开发上实现了58.7盒AP和51.1掩码AP,超过了之前的最佳结果+2.7盒AP(无外部数据的复制粘贴[26])和+2.6掩码AP(检测器[46])。

4.3. Semantic Segmentation on ADE20K

Settings ADE20K是一个广泛使用的语义分割数据集,包含了150个语义类别。该数据集总共包含25,000张图像,其中20,000张用于训练,2,000张用于验证,另外3,000张用于测试。这个数据集被广泛应用于语义分割任务的研究和评估。我们利用mmseg[16]中的UperNet[69]作为我们的基础框架,因为它的效率很高。更多细节见附录。

Results 表3列出了不同方法/骨干对的mIoU、模型大小(#param)、FLOPs和FPS。从这些结果可以看出,在计算成本相似的情况下,swin- s比DeiT-S高+5.3 mIoU (49.3 vs. 44.0)。也比ResNet-101高+4.4 mIoU,比ResNet-101高+2.4 mIoU[78]。我们使用ImageNet-22K预训练的swin- l模型在val集上达到了53.5 mIoU,超过了之前的最佳模型+3.2 mIoU (SETR[81]的模型尺寸更大,为50.3 mIoU)。

表3:在ADE20K值和测试集上的语义分割结果。\dagger表示使用额外的反卷积层来生成分层特征映射。\ddagger表示模型在ImageNet-22K上进行了预训练。 

4.4. Ablation Study

在本节中,我们在提出的Swin Transformer中删除了重要的设计元素,使用ImageNet-1K图像分类,使用Cascade Mask R-CNN进行COCO对象检测,使用UperNet进行ADE20K语义分割。

Shifted windows 表4报告了移位窗口方法在三个任务上的消融情况。在ImageNet-1K上,使用移位窗口分区的swin - t在每个阶段都比基于单窗口分区的swin - t表现出+1.1%的top-1精度,在COCO上表现为+2.8 box AP/+2.2 mask AP,在ADE20K上表现为+2.8 mIoU。结果表明,利用移位窗口在前几层窗口之间建立连接是有效的。移位窗口的延迟开销也很小,如表5所示。

Relative position bias 表格 4 展示了不同位置嵌入方法的比较。相对位置偏置的 Swin-T 在 ImageNet-1K 上的 top-1 准确率提高了 +1.2%/+0.8%,在 COCO 上的盒子 AP 和掩码 AP 分别提高了 +1.3/+1.5 和 +1.1/+1.3,以及在 ADE20K 上的 mIoU 提高了 +2.3/+2.9,相对于没有位置编码和具有绝对位置嵌入的情况,显示了相对位置偏置的有效性。此外,请注意,虽然包含绝对位置嵌入可以提高图像分类的准确率(+0.4%),但它却损害了目标检测和语义分割(在 COCO 上的盒子/掩码 AP 分别为 -0.2,ADE20K 上的 mIoU 为 -0.6)。

表4:利用swin - t架构,在三个基准上对移位窗口方法和不同位置嵌入方法进行了初步研究。W /o移位:所有自关注模块均采用规则窗口划分,不移位;abs. pos.: ViT的绝对位置嵌入项;rel. pos.:带有额外相对位置偏差项的默认设置(见式(4));app.:式(4)中第一个缩放后的点积项。 

虽然最近的ViT/DeiT模型放弃了图像分类中的翻译不变性,尽管它长期以来一直被证明对视觉建模至关重要,但我们发现鼓励一定翻译不变性的归纳偏差仍然更适合通用的视觉建模,特别是对于目标检测和语义分割的密集预测任务。

Different self-attention methods 表5比较了不同自注意计算方法和实现的实际速度。我们的循环实现比单纯填充的硬件效率更高,特别是对于更深的阶段。总体而言,它分别为swin - t、swin - s和swin - b带来了13%、18%和18%的加速。

表5:不同自关注计算方法的真实速度及其在V100 GPU上的实现。 

在四个网络阶段上,基于移位窗口方法构建的自关注模块的效率分别比单纯/内核实现的滑动窗口高40.8×/2.5×、20.2×/2.5×、9.3×/2.1×和7.6×/1.8×。总体而言,基于移位窗口构建的Swin Transformer架构分别比基于滑动窗口构建的Swin- t、Swin- s和Swin- b的变体快4.1/1.5、4.0/1.5和3.6/1.5倍。表6比较了它们在三种任务上的准确性,表明它们在可视化建模方面的准确性相似。

表6:SwinTransform在三个基准上采用不同的自注意计算方法计算精度。 

与Performer[14]相比,Performer是最快的Transformer架构之一(参见[60]),提出的基于移位窗口的自关注计算和整体Swin Transformer架构略快(参见表5),同时与使用swun - t的ImageNet-1K上的Performer相比,实现了+2.3%的top-1精度(参见表6)。

5. Conclusion

本文介绍了 Swin Transformer,这是一种新的视觉 Transformer 模型,它生成分层特征表示,并且在输入图像大小方面具有线性的计算复杂度。Swin Transformer 在 COCO 目标检测和 ADE20K 语义分割任务上实现了最先进的性能,显著超越了之前的最佳方法。我们希望 Swin Transformer 在各种视觉问题上的强大性能能够鼓励视觉和语言信号的统一建模。作为 Swin Transformer 的关键组成部分,基于偏移窗口的自注意力在视觉问题上被证明是有效和高效的,我们期待着在自然语言处理中探索其应用。

  • 25
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值