重磅開源!屠榜各大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源創計劃”,歡迎正在閱讀的你也加入,一起分享。

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