本文转载自机器之心。
屠榜各大 CV 工作的微软 Swin Transformer,近日开源了代码和预训练模型。
自 2017 年 6 月谷歌提出 Transformer 以来,它便逐步成为了自然语言解决畛域的支流模型。最近一段时间,Transformer 更是开启了本人的跨界之旅,开始在计算机视觉畛域大展身手,涌现出了多个基于 Transformer 的新模型,如谷歌用于图像分类的 ViT 以及复旦、牛津、腾讯等机构的 SETR 等。由此,「Transformer 是万能的吗?」也一度成为机器学习社区的热门话题。
不久前,微软亚研的研究者提出了一种通过挪动窗口(shifted windows)计算的分层视觉 Transformer,他们称之为 Swin Transformer。相比之前的 ViT 模型,Swin Transformer 做出了以下两点改良:其一,引入 CNN 中罕用的层次化构建形式构建分层 Transformer;其二,引入局部性(locality)思维,对无重合的窗口区域内进行自注意力计算。
论文链接:https://arxiv.org/pdf/2103.14…
首先来看 Swin Transformer 的整体工作流,下图 3a 为 Swin Transformer 的整体架构,图 3b 为两个间断的 Swin Transformer 块。
该钻研的亮点在于利用挪动窗口对分层 Transformer 的表征进行计算。通过将自注意力计算限度在不重叠的部分串口,同时容许跨窗口连贯。这种分层构造能够灵便地在不同尺度上建模,并具备图像大小的线性计算复杂度。下图 2 为在 Swin Transformer 架构中利用挪动窗口计算自注意力的工作流:
模型自身具备的个性使其在一系列视觉工作上都实现了颇具竞争力的性能体现。其中,在 ImageNet-1K 数据集上实现了 86.4% 的图像分类准确率、在 COCO test-dev 数据集上实现了 58.7% 的指标检测 box AP 和 51.1% 的 mask AP。目前,在 COCO minival 和 COCO test-dev 两个数据集上,Swin-L(Swin Transformer 的变体)在指标检测和实例宰割工作中均实现了 SOTA。
此外,在 ADE20K val 和 ADE20K 数据集上,Swin-L 也在语义宰割工作中实现了 SOTA。
开源代码和预训练模型
Swin Transformer 论文公开没多久之后,微软官网于近日在 GitHub 上开源了代码和预训练模型,涵盖图像分类、指标检测以及语义宰割工作。上线仅仅两天,该我的项目已播种 2100 星。
我的项目地址:https://github.com/microsoft/…
首先图像分类工作,Swin-T、Swin-S、Swin-B 和 Swin-L 变体模型在 ImageNet-1K 和 ImageNet-22K 数据集上的准确率后果如下:
其次指标检测工作:Swin-T、Swin-S、Swin-B 和 Swin-L 变体模型在 COCO 指标检测(2017 val)数据集上的后果如下:
最初语义宰割工作:Swin-T、Swin-S、Swin-B 和 Swin-L 变体模型在 ADE20K 语义宰割(val)数据集上的后果如下。目前,Swin-L 获得了 53.50% 的 SOTA 验证 mIoU 分数。