在本文中,我们寻求扩展 Transformer 的适用性,使其可以作为计算机视觉的通用主干,就像 NLP 和 CNN 在视觉中所做的那样。我们观察到,将其在语言领域的高性能转移到视觉领域的重大挑战可以通过两种模式之间的差异来解释。这些差异之一涉及规模。与作为语言转换器中处理基本元素的单词标记不同,视觉元素在规模上可能会有很大差异,这个问题在对象检测等任务中受到关注 [41, 52, 53]。在现有的基于 Transformer 的模型中 [61, 19],代币都是固定规模的,这种特性不适合这些视觉应用。另一个区别是与文本段落中的单词相比,图像中像素的分辨率要高得多。存在许多视觉任务,例如语义分割,需要在像素级别进行密集预测,这对于高分辨率图像上的 Transformer 来说是难以处理的,因为其自注意力的计算复杂度与图像大小成二次方。为了克服这些问题,我们提出了一种通用的 Transformer 主干,称为 Swin Transformer,它构建分层特征图并且对图像大小具有线性计算复杂度。如图 1(a) 所示,Swin Transformer 通过从小尺寸的补丁(灰色轮廓)开始并逐渐合并更深的 Transformer 层中的相邻补丁来构建分层表示。通过这些分层特征图,Swin Transformer 模型可以方便地利用先进的技术进行密集预测,例如特征金字塔网络 (FPN) [41] 或 U-Net [50]。线性计算复杂度是通过在划分图像的非重叠窗口中本地计算自注意力来实现的(以红色标出)。每个窗口中的补丁数量是固定的,因此复杂度与图像大小成线性关系。这些优点使 Swin Transformer 适合作为各种视觉任务的通用主干,与之前基于 Transformer 的架构 [19] 形成对比,后者产生单一分辨率的特征图并具有二次复杂性。
Swin Transformer 的一个关键设计元素是它在连续自注意力层之间的窗口分区的移动,如图 2 所示。移动的窗口桥接前一层的窗口,提供它们之间的连接,显着增强建模能力(见表 4)。 这种策略在现实世界的延迟方面也很有效:窗口内的所有查询补丁共享相同的密钥集 1,这有助于硬件中的内存访问。 相比之下,早期的基于滑动窗口的自注意力方法 [32, 49] 由于不同查询像素的不同键集而在通用硬件上存在低延迟2。 我们的实验表明,所提出的移位窗口方法的延迟比滑动窗口方法低得多,但建模能力相似(见表 5 和表 6)。
所提出的 Swin Transformer 在图像分类、对象检测和语义分割的识别任务上取得了强大的性能。 它在三个任务上以相似的延迟显着优于 ViT / DeiT [19, 60] 和 ResNe(X)t 模型 [29, 67]。 它在 COCO 测试开发集上的 58.7 box AP 和 51.1 mask AP 以 +2.7 box AP(没有外部数据的复制粘贴 [25])和 +2.6 mask AP(DetectoRS [ 45])。 在 ADE20K 语义分割上,它在 val 集上获得了 53.5 mIoU,比之前的最先进技术(SETR [78])提高了 +3.2 mIoU。 它还在 ImageNet-1K 图像分类上实现了 86.4% 的 top-1 准确率。
我们相信,跨计算机视觉和自然语言处理的统一架构可以使这两个领域受益,因为它将促进视觉和文本信号的联合建模,并且可以更深入地共享来自两个领域的建模知识。 我们希望 Swin Transformer 在各种视觉问题上的强大表现能够在社区中更深入地推动这种信念,并鼓励视觉和语言信号的统一建模 。
=================================================================
CNN 和变体 CNN 作为整个计算机视觉的标准网络模型。虽然 CNN 已经存在了几十年 [39],但直到 AlexNet [38] 的引入,CNN 才起飞并成为主流。从那时起,人们提出了更深入、更有效的卷积神经架构,以进一步推动计算机视觉领域的深度学习浪潮,例如 VGG [51]、GoogleNet [56]、ResNet [29]、DenseNet [33]、HRNet [62]和 EfficientNet [57]。除了这些架构上的进步,在改进单个卷积层方面也有很多工作,例如深度卷积 [67] 和可变形卷积 [17, 81]。 虽然 CNN 及其变体仍然是计算机视觉的主要骨干架构在应用程序中,我们强调了类似 Transformer 的架构在视觉和语言之间统一建模的强大潜力。我们的工作在几个基本的视觉识别任务上取得了强劲的表现,我们希望它有助于建模转变。
基于自注意力的骨干架构 同样受到 NLP 领域中自注意力层和 Transformer 架构成功的启发,一些作品采用自注意力层来替换流行的 ResNet [32,49,77] 中的部分或全部空间卷积层。 在这些工作中,自注意力是在每个像素的局部窗口内计算的,以加速优化 [32],并且它们实现了比对应的 ResNet 架构稍好一些的精度/FLOPs 权衡。 然而,它们昂贵的内存访问导致它们的实际延迟明显大于卷积网络 [32]。 我们建议不使用滑动窗口,而是在连续层之间移动窗口,这允许在通用硬件中更有效地实现。
自我注意/Transformer 以补充 CNN 另一项工作是使用自注意力层或 Transformer 来增强标准的 CNN 架构。 自注意力层可以通过提供编