重磅開源!屠榜各大CV任務(wù)!最強骨干網(wǎng)絡(luò):Swin Transformer來了
點擊上方“AI算法與圖像處理”,選擇加"星標"或“置頂”
重磅干貨,第一時間送達
Swin Transformer 代碼于2021年4月13日凌晨剛剛開源!
Swin Transformer Official Code已經(jīng)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上的應(yīng)用前景
在Attention is all you need那篇文章出來之后,就一直在思考一個問題:從建模的基本單元來看,self-attention module到底在vision領(lǐng)域能做什么?從現(xiàn)在回頭看,主要嘗試的就是兩個方向:
1. 作為convolution的補充。絕大多數(shù)工作基本上都是從這個角度出發(fā)的,比如relation networks、non-local networks、DETR,以及后來的一大批改進和應(yīng)用。其中一部分是從long-range dependency引入,某種程度上是在彌補convolution is too local;另一部分是從關(guān)系建模引入,例如建模物體之間或物體與像素之間的關(guān)系,也是在做一些conv做不了的事。
2. 替代convolution。在這個方向上嘗試不多,早期有LocalRelationNet、Stand-alone Self-attention Net。如果僅看結(jié)果,這些工作基本上已經(jīng)可以做到替換掉3x3 conv不掉點,但有一個通病就是速度慢,即使是寫kernel依然抵不過對conv的強大優(yōu)化,導(dǎo)致這一類方法在當時并沒有成為主流。
到這個時候(2020年左右),我自己其實有一種到了瓶頸期的感覺,作為conv的補充好像做的差不多了,后續(xù)的工作也都大同小異,替代conv因為速度的問題難以解決而遙遙無期。
沒想到的是,Vision Transformer(ViT)在2020年10月橫空出世。
ViT的出現(xiàn)改變了很多固有認知,我的理解主要有兩點:1. locality(局部性);2. translation invariance(平移不變性)。從模型本身的設(shè)計角度,ViT并不直接具有這兩個性質(zhì),但是它依然可以work的很好,雖然是需要大數(shù)據(jù)集的。但DeiT通過嘗試各種tricks使得ViT可以只需要ImageNet-1k就可以取得非常不錯的性能,使得直接上手嘗試變得沒那么昂貴。
其實對ViT的accuracy我個人不是特別驚訝,一方面是因為之前在local relation那一系列已經(jīng)證明了self-attention有替代conv的能力,另一方面是因為19年iclr有一篇paper叫BagNet,證明了直接切patch過網(wǎng)絡(luò),在網(wǎng)絡(luò)中間patch之間沒有交互,最后接一個pooling再做classification,結(jié)果也已經(jīng)不錯了,在這個的基礎(chǔ)上加上self-attention效果更好是可以理解的。
我個人其實驚訝于ViT/DeiT的latency/acc curve,在local relation net里速度是最大的瓶頸,為什么ViT可以速度這么快?仔細對比ViT與local relation可以發(fā)現(xiàn),這里一個很大的區(qū)別是,ViT中不同的query是share key set的,這會使得內(nèi)存訪問非常友好而大幅度提速。一旦解決了速度問題,self-attention module在替代conv的過程中就沒有阻力了。
基于這些理解,我們組提出了一個通用的視覺骨干網(wǎng)絡(luò),Swin Transformer [paper] [code],在這里簡單介紹一下。
https://arxiv.org/abs/2103.14030
https://github.com/microsoft/Swin-Transformer
1. 之前的ViT中,由于self-attention是全局計算的,所以在圖像分辨率較大時不太經(jīng)濟。由于locality一直是視覺建模里非常有效的一種inductive bias,所以我們將圖片切分為無重合的window,然后在local window內(nèi)部進行self-attention計算。為了讓window之間有信息交換,我們在相鄰兩層使用不同的window劃分(shifted window)。
2. 圖片中的物體大小不一,而ViT中使用固定的scale進行建?;蛟S對下游任務(wù)例如目標檢測而言不是最優(yōu)的。在這里我們還是follow傳統(tǒng)CNN構(gòu)建了一個層次化的transformer模型,從4x逐漸降分辨率到32x,這樣也可以在任意框架中無縫替代之前的CNN模型。
Swin Transformer的這些特性使其可直接用于多種視覺任務(wù),包括圖像分類(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的實驗結(jié)果,或許能明白為啥如此受關(guān)注!
圖像分類方面:

目標檢測方面:

語義分割方面:

觀察CVPR最新的論文有很多論文開始研究和嘗試基于transformer去挖掘并提升現(xiàn)有工作的性能,因此,我們后續(xù)也會更加關(guān)注這方面的工作分享。如果對你有所幫助,歡迎分享給你身邊的小伙伴。
CVPR2021 論文整理(附論文下載):
https://github.com/DWCTOD/CVPR2021-Papers-with-Code-Demo
個人微信(如果沒有備注不拉群!) 請注明:地區(qū)+學(xué)校/企業(yè)+研究方向+昵稱
下載1:何愷明頂會分享
在「AI算法與圖像處理」公眾號后臺回復(fù):何愷明,即可下載。總共有6份PDF,涉及 ResNet、Mask RCNN等經(jīng)典工作的總結(jié)分析
下載2:終身受益的編程指南:Google編程風(fēng)格指南
在「AI算法與圖像處理」公眾號后臺回復(fù):c++,即可下載。歷經(jīng)十年考驗,最權(quán)威的編程規(guī)范!
下載3 CVPR2021 在「AI算法與圖像處理」公眾號后臺回復(fù):CVPR,即可下載1467篇CVPR 2020論文 和 CVPR 2021 最新論文
點亮
,告訴大家你也在看
