系列文章目录
第一章 AlexNet网络详解
第二章 VGG网络详解
第三章 GoogLeNet网络详解
第四章 ResNet网络详解
第五章 ResNeXt网络详解
第六章 MobileNetv1网络详解
第七章 MobileNetv2网络详解
第八章 MobileNetv3网络详解
第九章 ShuffleNetv1网络详解
第十章 ShuffleNetv2网络详解
第十一章 EfficientNetv1网络详解
第十二章 EfficientNetv2网络详解
第十三章 Transformer注意力机制
第十四章 Vision Transformer网络详解
第十五章 Swin-Transformer网络详解
第十六章 ConvNeXt网络详解
第十七章 RepVGG网络详解
第十八章 MobileViT网络详解
文章目录
- 0. 摘要
- 1. 前言
- 2.
- 1.
- 2.
- 总结
0、摘要
本文介绍了一种新的视觉Transformer,称为Swin Transformer,它具备作为计算机视觉通用骨干网的能力。将Transformer从语言领域转换到视觉领域面临的挑战来自两个领域的差异,如视觉实体的尺度变化较大以及图像中像素的分辨率相对于文本中的单词高得多。为了解决这些差异,我们提出了一种分层Transformer,其表示是通过Shifted 窗口计算得出的。该Shifted 窗口方案通过将自注意计算限制在非重叠的本地窗口上,同时允许窗口连接,从而带来更高的效率。这种分层架构具有在不同尺度下建模的灵活性,并且与图像尺寸呈线性计算复杂度。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 box AP和+2.6 mask AP以及ADE20K上的+3.2 mIoU,这证明了基于Transformer的模型作为视觉骨干网的潜力。分层设计和Shifted 窗口方法对于所有MLP体系结构也是有利的。代码和模型可在<a href="https://github.com/microsoft/Swin-Transformer%E5%85%AC%E5%BC%80%E8%8E%B7%E5%BE%97%E3%80%82">https://github.com/microsoft/Swin-Transformer公开获得。</a></p>
1、前言
1.引言 在计算机视觉中,建模一直由卷积神经网络(CNNs)主导。从AlexNet [39]开始,通过*等量贡献。†在MSRA的实习生。‡联系人。图1。(a)提出的Swin Transformer通过合并更深层次的图像块(显示为灰色),建立分层特征映射,并且由于只计算每个局部窗口内的自我关注而对输入图像大小具有线性计算复杂度。因此,它可以成为图像分类和密集识别任务的通用骨干。(b)相比之下,以前的视觉Transformer [20]产生单个低分辨率的特征图,并且由于全局自我注意力计算而对输入图像大小具有二次计算复杂度。更大规模[30,76],更广泛的连接[34]和更复杂的卷积形式[70,18,84]的使用。随着CNN作为各种视觉任务的骨干网络,这些架构进步已经带来了广泛提高整个领域的性能改进。另一方面,自然语言处理(NLP)中的网络架构演变经历了不同的路径,今天普遍的架构是Transformer [64]。Transformer专为序列建模和变换任务设计,其注意力机制可以对数据中的长距离依赖进行建模。它在语言领域的巨大成功促使研究人员研究其在计算机视觉中的适应性,在某些任务中最近展示了有希望的结果,特别是图像分类[20]和联合视觉语言建模[47]。
"Transformer efficient in handling high-resolution images.' 在本文中,我们试图扩展Transformer的适用性,使其能够像NLP一样为计算机视觉提供通用骨干支持,就像CNN在视觉中做的那样。我们观察到,在将其在语言领域的高性能转移到视觉领域方面存在重大挑战,这可以通过两种模式的差异来解释。其中之一是规模的差异。不像在语言Transformer中用作处理基本元素的单词标记,视觉元素可以在规模上大相径庭,这是在任务如目标检测中得到关注的问题。在现有的基于Transformer的模型中,标记都是固定规模的属性,这对于这些视觉应用是不合适的。另一个差异是图像中像素的分辨率比文本段落中的单词高得多。存在许多视觉任务(例如语义分割),需要在像素级进行密集预测,这对于高分辨率图像上的Transformer来说是不可行的,因为其自我关注的计算复杂性与图像大小的平方成正比。为了克服这些问题,我们提出了一个通用的Transformer骨干,称为Swin Transformer,它构建了分层特征图,并具有图像大小的线性计算复杂性。如图1(a)所示,Swin Transformer通过从小的补丁(用灰色轮廓)开始并逐渐在更深的Transformer层中合并相邻的补丁来构建分层表示。有了这些分层特征图,Swin Transformer模型可以方便地利用用于密集预测的先进技术,如特征金字塔网络(FPN)[42]或U-Net [51]。通过在非重叠窗口内计算自我注意力来实现线性计算复杂度,这些窗口将图像分成分区(用红线轮廓)。每个窗口中的补丁数量是固定的,因此复杂度与图像大小成线性关系。这些优点使Swin Transformer在处理高分辨率图像方面非常有效。
Swin Transformer的一个关键设计元素是其在连续的自注意力层之间移动窗口划分,如图2所示。移动的窗口桥接了前一层的窗口,提供了它们之间的连接,显著增强了建模能力(参见表4)。这种策略在实际世界的延迟方面也非常有效:窗口内的所有查询补丁共享相同的键集1,这有助于硬件中的内存访问。相比之下,早期基于滑动窗口的自注意力方法[33,50]由于不同查询像素的不同键集,在一般硬件上存在较低的延迟。我们的实验表明,所提出的移动窗口方法比滑动窗口方法具有更低的延迟,但建模能力相似(参见表5和表6)。移动窗口方法也对所有MLP架构[61]有益。
所提出的Swin Transformer在图像分类、目标检测和语义分割的识别任务上都取得了强大的表现。在三个任务上,它表现优于ViT /DeiT模型[20,63]和ResNe(X)t模型[30,70],并具有相似的延迟。在COCO测试集上,它的盒子AP和掩模AP分别为58.7和51.1,超过了以前的最新结果,盒子AP增加了2.7(Copy-paste [26]没有外部数据),而掩模AP增加了2.6(DetectoRS [46])。在ADE20K语义分割中,它在val集上获得了53.5 mIoU,较之前的最新成果(SETR [81])提高了3.2 mIoU。在ImageNet-1K的图像分类中,它也达到了87.3%的top-1准确率。我们相信,计算机视觉和自然语言处理领域的统一架构可以使两个领域受益,因为它将有助于视觉和文本信号的联合建模,两个领域的建模知识可以更深入地共享。我们希望Swin Transformer在各种视觉问题上的优异表现可以在社区中深化这种信念,并鼓励视觉和语言信号的统一建模。
(图1.(a)所提出的Swin Transformer通过合并深层中的图像块(灰色部分),构建了分层的特征图,并由于仅在每个局部窗口(红色部分)内计算自注意力,因此具有线性计算复杂度,可用作图像分类和密集识别任务的通用骨干。(b)相比之下,之前的Vision Transformer [20]产生单个低分辨率的特征图,并且由于全局自注意力的计算而对输入图像大小具有二次计算复杂度)
(图2.在提出的Swin Transformer体系结构中计算自注意力的移动窗口方法的图示。在层l(左侧),采用常规的窗口分割方案,在每个窗口内计算自注意力。在下一层l+1(右侧),窗口分割发生了移动,产生了新的窗口。新窗口中的自注意力计算跨越了层l中先前窗口的边界,提供了它们之间的连接)