【最新刷榜】层次化视觉Transformer来啦!性能大幅优于DeiT、ViT和EfficientNet

【导读】本文主要介绍最新TransFormer成果,目前Swin Transformer在各大CV任务上,实现了SOTA的性能,在目标检测任务上刷到58.7 AP(目前第一)!实例分割刷到51.1 Mask AP(目前第一)!语义分割在ADE20K上刷到53.5 mIoU(目前第一)!下面我们就来看一下这篇文章。

作者单位:微软亚洲研究院
代码:https://github.com/microsoft/Swin-Transformer
论文:https://arxiv.org/abs/2103.14030

摘要

本文介绍了一种称为Swin Transformer的新型Transformer变种,它可以作为计算机视觉的通用骨干网络。由于在计算机视觉到文本语言中两个领域之间存在不同的差异,比如:与文字相比,视觉实体的尺度有很大的变化,图像中的像素分辨率也很高,由此也带来了Transformer从自然语言过渡到视觉方面的一些问题。为了解决这些问题,我们提出了一个分层次的Transformer,它的特征表示是通过移动窗口来计算的。通过将自注意力计算限制在不重叠的局部窗口,同时允许跨窗口连接,这样的一种移动窗口方案可以极大程度提高效率。并且由于这种层次结构具有在不同尺度上建模的灵活性,从而可以使得我们的计算复杂度与相对于输入图像大小成线性关系。Swin Transformer的这些特性使其可与各种视觉任务兼容,包括图像分类(在ImageNet-1K上,我们的准确度达到了86.4 top-1)和一些密集预测任务,例如目标检测(我们在COCO test-dev上达到了58.7 box AP和51.1 mask AP)和语义分割(在ADE20K val上达到了53.5 mIoU)。在COCO数据集上,它在box Ap 和mask AP上分别提高了2.7和2.6,在ADE20K上为+3.2 mIoU,远远超过了现有最好的结果,从而证明了基于多层次Transformer的模型有作为视觉骨干的强大潜力。

核心网络模块

上图3中,为我们展示了Swin Transformer架构的总体结构,其中主要展示了小型版本(Swin- t)。它首先通过像ViT这样的patch 分割模块将输入的RGB图像分割成不重叠的patch。每个patch都被视为一个“token”,其特征被设置为原始像素RGB值的拼接。在我们的实现中,我们使用的patch大小为4×4,因此每个patch的特征尺寸为4×4 × 3 = 48。在此原始特征值上应用线性嵌入层,将其投影到任意维度(表示为C)。

在这些patch tokens 上应用几个具有可修改的自注意力计算Transformer模块(我们称之为Swin Transformer blocks)。这些Transformer block保持token的数量(H/4 ×W/4),与线性嵌入一起称为“Stage 1”。为了产生一个多层次的特征表示,随着网络的深入,我们通过patch merging layers 来减少tokens的数量。第一个patch合并层对每组2 × 2相邻patch的特征进行拼接,并在拼接的4C维度特征上应用一个线性层。这种操作可以将tokens的数量减少为2×2 = 4(分辨率的2× downsampling)的倍数,因此便可以将输出维度设置为2C。

随后使用Swin Transformer block 进行特征变换,将分辨率保持在H/8 × W/8。然后我们将第一个patch 块进行归并和特征变换的过程,就记为“stage 2”。步骤3和步骤4依次重复上述过程两次,输出分辨率分别保持在H/16 × W/16和H/32 × W/32。最后这些阶段共同产生一个层次特征表示,而且它们具有与典型卷积网络相同的特征映射分辨率。比如VGG和ResNet。因此,本文所提出的架构可以替换骨干网络,然后用现有的一些方法来应用于各种视觉任务。

实验结果

表1(a)将我们提出的Transformer形式与其他骨干网络结构的比较,包括基于Transformer和基于ConvNet的SOTA模型,这里都使用标准的ImageNet-1K训练方法。

我们还在ImageNet-22K上对大容量的Swin-B和Swin-L进行了预训练。表1(b)中显示了对ImageNet-1K图像分类进行微调的结果。对于Swin-B,与从零开始对ImageNet-1K进行的训练相比,ImageNet-22K的预训练带来了1.8%〜1.9%的收益。与以前的ImageNet-22K预训练最佳结果相比,我们的模型在速度准确性的权衡方面要好得多:Swin-Bobtains具有86.0%top-1的准确性,比具有类似推理吞吐量的ViT的准确性高2.0% (84.7 vs. 85.9图像/秒)和略低的FLOP(47.0G vs. 55.4G)。较大的Swin-L模型达到86.4%的top-1精度,比Swin-B模型的精度稍好。

表2(a)列出了Swin-T和ResNet-50在四个物体检测框架上的结果。与ResNet-50相比,我们的Swin-T架构可在+3.4至4.2的范围内获得一致的AP增益,并且模型尺寸,FLOP和时延稍大。 

表2(b)比较了使用Cascade Mask R-CNN在不同模型容量下的Swin Transformer和ResNe(X)t性能表现。与ResNeXt101-64x4d相比,Swin Transformer实现了51.9 box AP和45.0 mask AP的高检测精度,分别提高了3.6和3.3。

下表表示在ADE20K数据集上做语义分割,Swish Transformer与其它网络结构的性能比较情况:

表2 (c),关于推理速度,虽然ResNe(X)t是由高度优化的Cudnn函数构建的,但我们的体系结构却是通过内置的PyTorch函数实现的,而这些函数并非都进行了优化。 

消融实验


Conclusion

本文提出了一种新的Swin Transformer,它可以生成层次化的特征表示,从而可以使得计算复杂度与输入图像大小成线性关系。Swin Transformer在目标检测(COCO数据集上)和语义分割(ADE20K数据集)方面达到了SOTA的性能,大幅度超越了之前的方法。我们希望Swin Transformer在解决各种视觉问题上的高效性,有助于推动大家对视觉和语言信号进行统一建模的一些工作。作为Swin Transformer的关键步骤,我们也证明了基于移动窗口的自我注意力计算在解决视觉问题上是高效的,我们也期待它在自然语言处理中的应用。更多实验细节内容,请参考原文。

进入公众号,在消息对话框

回复【Swin-Transformer】即可获取论文

重磅!DLer-CVPR2021论文分享交流群已成立!

大家好,这是CVPR2021论文分享群里,群里会第一时间发布CVPR2021的论文解读和交流分享会,主要设计方向有:图像分类、Transformer、目标检测、目标跟踪、点云与语义分割、GAN、超分辨率、人脸检测与识别、动作行为与时空运动、模型压缩和量化剪枝、迁移学习、人体姿态估计等内容。

进群请备注:研究方向+学校/公司+昵称(如图像分类+上交+小明)

???? 长按识别,邀请您进群!

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值