摘要
本文提出了一种新的视觉转换器,称为Swin Transformer,它可以作为计算机视觉的通用主干。在将Transformer从语言适应到视觉方面的挑战源于这两个领域之间的差异,例如视觉实体的规模差异很大,以及图像中的像素与文本中的文字相比分辨率较高。为了解决这些差异,我们提出了一种分层转换器,其表示是通过移位窗口来计算的。移位窗口方案通过将自我注意计算限制在非重叠的局部窗口,同时还允许跨窗口连接,从而带来了更高的效率。这种分层结构具有在不同尺度上建模的灵活性,并且具有关于图像大小的线性计算复杂性。Swin Transformer的这些特性使其与广泛的视觉任务兼容,包括图像分类(ImageNet-1K的TOP-1准确率为87.3)和密集预测任务,例如目标检测(COCO Testdev上的58.7box AP和51.1 MASK AP)和语义分割(ADE20K Val上的53.5mIoU)。它的性能大大超过了之前最先进的产品,COCO上的+2.7box AP和+2.6 MASK AP,以及ADE20K上的+3.2Miou,显示了基于Transformer的模型作为视觉主干的潜力。分层设计和移位窗口方法也被证明对全MLP架构是有益的。代码和模型可在以下网址公开获取 https://github.com/microsoft/Swin-Transformer.
1.引言
长期以来,计算机视觉中的建模一直由卷积神经网络(CNN)主导。从AlexNet[39]及其在ImageNet图像分类挑战中的革命性表现开始,通过更大的规模[30,76],更广泛的连接[34],以及更复杂的卷积形式[70,18,84]CNN的架构已经演变成越来越强大。由于CNN作为各种视觉任务的主干网络,这些架构的进步导致了性能的改进,广泛提升了整个领域。
另一方面,自然语言处理(NLP)中网络体系结构的演变走了一条不同的道路,今天流行的体系结构是Transformer[64]。Transformer专为序列建模和转换任务而设计,值得注意的是它使用注意力来模拟数据中的远程依赖关系。它在语言领域的巨大成功促使研究人员研究它对计算机视觉的适应性,最近它在某些任务上展示了有希望的结果,特别是图像分类[20]和联合视觉-语言建模[47]。
在本文中,我们试图扩展transformer的适用性,使其可以作为通用的计算机视觉的主干,就像NLP和CNN在视觉中所做的那样。我们观察到,将其在语言领域的高性能转换到视觉领域的重大挑战可以用这两种通道之间的差异来解释。这些不同之处之一涉及尺度。与在语言转换器中充当基本处理元素的单词标记不同,视觉元素在规模上可以有很大的变化,这是一个在物体检测等任务中引起注意的问题[42,53,54]。在现有的基于Transformer的模型[64,20]中,令牌都是固定比例的,这一特性不适合这些视觉应用。另一个不同之处是,与文本段落中的文字相比,图像中像素的分辨率要高得多。存在许多视觉任务,如语义分割,需要在像素级进行密集预测,而这对于高分辨率图像上的Transformer来说是困难的,因为其自我注意的计算复杂度与图像大小是平方的。为了克服这些问题,我们提出了一种通用的Transformer骨干网,称为Swin Transformer,它构造了分层的特征映射,具有与图像大小成线性的计算复杂性。如图1(a)所示,Swin Transformer通过从小面片(灰色轮廓)开始并逐渐合并较深Transformer层中的相邻面片来构建分层表示。有了这些分层的特征映射,Swin Transformer模型可以方便地利用高级技术进行密集预测,如特征金字塔网络(FPN)[42]或U-Net[51]。线性计算复杂性是通过在分割图像的非重叠窗口内局部计算自我注意来实现的(红色轮廓)。每个窗口中的patch数量是固定的,因此复杂度与图像大小成线性关系。这些优点使Swin Transformer适合作为各种视觉任务的通用主干&#x