重磅开源!屠榜各大CV任务!最强骨干网络:Swin Transformer来了

点击上方AI算法与图像处理”,选择加"星标"或“置顶”

重磅干货,第一时间送达

Swin Transformer 代码于2021年4月13日凌晨刚刚开源!


Swin Transformer Official Code已经release啦:

Image Classification:

https://github.com/microsoft/Swin-Transformer

Object Detection: 

https://github.com/SwinTransformer/Swin-Transformer-Object-Detection

Semantic Segmentation: 

https://github.com/SwinTransformer/Swin-Transformer-Semantic-Segmentation

来源:https://www.zhihu.com/question/451860144/answer/1832191113

Transformer 在CV上的应用前景

在Attention is all you need那篇文章出来之后,就一直在思考一个问题:从建模的基本单元来看,self-attention module到底在vision领域能做什么?从现在回头看,主要尝试的就是两个方向:

1. 作为convolution的补充。绝大多数工作基本上都是从这个角度出发的,比如relation networks、non-local networks、DETR,以及后来的一大批改进和应用。其中一部分是从long-range dependency引入,某种程度上是在弥补convolution is too local;另一部分是从关系建模引入,例如建模物体之间或物体与像素之间的关系,也是在做一些conv做不了的事。

2. 替代convolution。在这个方向上尝试不多,早期有LocalRelationNet、Stand-alone Self-attention Net。如果仅看结果,这些工作基本上已经可以做到替换掉3x3 conv不掉点,但有一个通病就是速度慢,即使是写kernel依然抵不过对conv的强大优化,导致这一类方法在当时并没有成为主流。

到这个时候(2020年左右),我自己其实有一种到了瓶颈期的感觉,作为conv的补充好像做的差不多了,后续的工作也都大同小异,替代conv因为速度的问题难以解决而遥遥无期。

没想到的是,Vision Transformer(ViT)在2020年10月横空出世。

ViT的出现改变了很多固有认知,我的理解主要有两点:1. locality(局部性);2. translation invariance(平移不变性)。从模型本身的设计角度,ViT并不直接具有这两个性质,但是它依然可以work的很好,虽然是需要大数据集的。但DeiT通过尝试各种tricks使得ViT可以只需要ImageNet-1k就可以取得非常不错的性能,使得直接上手尝试变得没那么昂贵。

其实对ViT的accuracy我个人不是特别惊讶,一方面是因为之前在local relation那一系列已经证明了self-attention有替代conv的能力,另一方面是因为19年iclr有一篇paper叫BagNet,证明了直接切patch过网络,在网络中间patch之间没有交互,最后接一个pooling再做classification,结果也已经不错了,在这个的基础上加上self-attention效果更好是可以理解的。

我个人其实惊讶于ViT/DeiT的latency/acc curve,在local relation net里速度是最大的瓶颈,为什么ViT可以速度这么快?仔细对比ViT与local relation可以发现,这里一个很大的区别是,ViT中不同的query是share key set的,这会使得内存访问非常友好而大幅度提速。一旦解决了速度问题,self-attention module在替代conv的过程中就没有阻力了。

基于这些理解,我们组提出了一个通用的视觉骨干网络,Swin Transformer [paper] [code],在这里简单介绍一下。

https://arxiv.org/abs/2103.14030 

https://github.com/microsoft/Swin-Transformer

1. 之前的ViT中,由于self-attention是全局计算的,所以在图像分辨率较大时不太经济。由于locality一直是视觉建模里非常有效的一种inductive bias,所以我们将图片切分为无重合的window,然后在local window内部进行self-attention计算。为了让window之间有信息交换,我们在相邻两层使用不同的window划分(shifted window)。

2. 图片中的物体大小不一,而ViT中使用固定的scale进行建模或许对下游任务例如目标检测而言不是最优的。在这里我们还是follow传统CNN构建了一个层次化的transformer模型,从4x逐渐降分辨率到32x,这样也可以在任意框架中无缝替代之前的CNN模型。

Swin Transformer的这些特性使其可直接用于多种视觉任务,包括图像分类(ImageNet-1K中取得86.4 top-1 acc)、目标检测(COCO test-dev 58.7 box AP和51.1 mask AP)和语义分割(ADE20K 53.5 val mIoU,并在其公开benchmark中排名第一),其中在COCO目标检测与ADE20K语义分割中均为state-of-the-art。

来源:https://www.zhihu.com/question/437495132/answer/1800881612


对比Swin Transformer的实验结果,或许能明白为啥如此受关注!

图像分类方面:

目标检测方面:


语义分割方面:


观察CVPR最新的论文有很多论文开始研究和尝试基于transformer去挖掘并提升现有工作的性能,因此,我们后续也会更加关注这方面的工作分享。如果对你有所帮助,欢迎分享给你身边的小伙伴。


CVPR2021 论文整理(附论文下载):

https://github.com/DWCTOD/CVPR2021-Papers-with-Code-Demo


  
     
     
     
个人微信(如果没有备注不拉群!
请注明: 地区+学校/企业+研究方向+暱称



下载1:何恺明顶会分享


AI算法与图像处理」公众号后台回复:何恺明,即可下载。总共有6份PDF,涉及 ResNet、Mask RCNN等经典工作的总结分析


下载2:终身受益的编程指南:Google编程风格指南


AI算法与图像处理」公众号后台回复:c++,即可下载。历经十年考验,最权威的编程规范!




   
   
   
下载3 CVPR2021

AI算法与图像处公众号后台回复: CVPR 即可下载1467篇CVPR 2020论文 和 CVPR 2021 最新论文

点亮 ,告诉大家你也在看


本文分享自微信公众号 - AI算法与图像处理(AI_study)。
如有侵权,请联系 [email protected] 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章