無卷積骨干網絡:金字塔Transformer,提升目標檢測/分割等任務精度(附源代碼)
論文地址:https://arxiv.org/pdf/2102.12122.pdf
源代碼地址:https://github.com/whai362/PVT
背景
具有自注意力的Transformer引發(fā)了自然語言處理領域的革命,最近還激發(fā)了Transformer式架構設計的出現,并在眾多計算機視覺任務中取得了具有競爭力的結果。
如下是之前我們分享的基于Transformer的目標檢測新技術!
鏈接:ResNet超強變體:京東AI新開源的計算機視覺模塊!(附源代碼)
鏈接:利用TRansformer進行端到端的目標檢測及跟蹤(附源代碼)
鏈接:YOLOS:通過目標檢測重新思考Transformer(附源代碼)
在今天分享的工作中,研究者設計了一個新穎的Transformer模塊,針對稠密預測任務的主干網絡,利用Transformer架構設計進行了一次創(chuàng)新性的探索,將特征金字塔結構與Transformer進行了一次融合,使其可以更好的輸出多尺度特征,進而更方便與其他下游任務相結合。
前言
盡管卷積神經網絡 (CNN) 在計算機視覺方面取得了巨大成功,但今天分享的這項工作研究了一種更簡單、無卷積的主干網絡,可用于許多密集預測任務。
目標檢測
語義分割
實例分割
與最近提出的專為圖像分類設計的Vision Transformer(ViT)不同,研究者引入了Pyramid Vision Transformer(PVT),它克服了將Transformer移植到各種密集預測任務的困難。與當前的技術狀態(tài)相比,PVT 有幾個優(yōu)點:
- 與通常產生低分辨率輸出并導致高計算和內存成本的ViT不同,PVT不僅可以在圖像的密集分區(qū)上進行訓練以獲得對密集預測很重要的高輸出分辨率,而且還使用漸進式收縮金字塔以減少大型特征圖的計算;
- PVT繼承了CNN和Transformer的優(yōu)點,使其成為各種視覺任務的統(tǒng)一主干,無需卷積,可以直接替代CNN主干;
- 通過大量實驗驗證了PVT,表明它提高了許多下游任務的性能,包括對象檢測、實例和語義分割。
例如,在參數數量相當的情況下,PVT+RetinaNet在COCO數據集上實現了40.4 AP,超過ResNet50+RetinNet(36.3 AP)4.1個絕對AP(見下圖)。研究者希望PVT可以作為像素級預測的替代和有用的主干,并促進未來的研究。
基礎回顧
CNN Backbones
CNN是視覺識別中深度神經網絡的主力軍。標準CNN最初是在【Gradient-based learning applied to document recognition】中區(qū)分手寫數字。該模型包含具有特定感受野的卷積核捕捉有利的視覺環(huán)境。為了提供平移等方差,卷積核的權重在整個圖像空間中共享。最近,隨著計算資源的快速發(fā)展(例如,GPU),堆疊卷積塊成功在大規(guī)模圖像分類數據集上訓練(例如,ImageNet)已經成為可能。例如,GoogLeNet證明了包含多個內核路徑的卷積算子可以實現非常有競爭力的性能。
multi-path convolutional block的有效性在Inception系列、ResNeXt、DPN、MixNet和SKNet中得到了進一步驗證。此外,ResNet將跳過連接引入到卷積塊中,從而可以創(chuàng)建/訓練非常深的網絡并在計算機視覺領域獲得令人印象深刻的結果。DenseNet引入了一個密集連接的拓撲,它將每個卷積塊連接到所有先前的塊。更多最新進展可以在最近的論文中找到。
新框架
該框架旨在將金字塔結構嵌入到Transformer結構用于生成多尺度特征,并最終用于稠密預測任務。上圖給出了所提出的PVT架構示意圖,類似與CNN主干結構,PVT同樣包含四個階段用于生成不同尺度的特征,所有階段具有相類似的結構:Patch Embedding+Transformer Encoder。
在第一個階段,給定尺寸為H*W*3的輸入圖像,按照如下流程進行處理:
- 首先,將其劃分為HW/4^2的塊,每個塊的大小為4*4*3;
- 然后,將展開后的塊送入到線性投影,得到尺寸為HW/4^2 * C1的嵌入塊;
- 其次,將前述嵌入塊與位置嵌入信息送入到Transformer的Encoder,其輸出將為reshap為H/4 * W/4 * C1。
采用類似的方式,以前一階段的輸出作為輸入即可得到特征F2,F3和F4。基于特征金字塔F1、F2、F3、F4,所提方案可以輕易與大部分下游任務(如圖像分類、目標檢測、語義分割)進行集成。
Feature Pyramid for Transforme
不同于CNN采用stride卷積獲得多尺度特征,PVT通過塊嵌入按照progressive shrinking策略控制特征的尺度。
假設第i階段的塊尺寸為Pi,在每個階段的開始,將輸入特征均勻的拆分為Hi-1Wi-1/Pi個塊,然后每個塊展開并投影到Ci維度的嵌入信息,經過線性投影后,嵌入塊的尺寸可以視作Hi-1/Pi * Wi-1/Pi * Ci。通過這種方式就可以靈活的調整每個階段的特征尺寸,使其可以針對Transformer構建特征金字塔。
Transformer Encoder
對于Transformer encoder的第i階段,它具有Li個encoder層,每個encoder層由注意力層與MLP構成。由于所提方法需要處理高分辨率特征,所以提出了一種SRA(spatial-reduction attention)用于替換傳統(tǒng)的MHA(multi-head-attention)。
類似于MHA,SRA同樣從輸入端接收到了Q、K、V作為輸入,并輸出精煉后特征。SRA與MHA的區(qū)別在于:SRA會降低K和V的空間尺度,見下圖。
Detailed settings of PVT series
實驗
ImageNet數據集上的性能對比,結果見上表。從中可以看到:
- 相比CNN,在同等參數量與計算約束下,PVT-Small達到20.2%的誤差率,優(yōu)于ResNet50的21.5%;
- 相比其他Transformer(如ViT、DeiT),所提PVT以更少的計算量取得了相當的性能。
在語義分割中的性能對比,見上表??梢钥吹剑翰煌瑓蹬渲孟拢琍VT均可取得優(yōu)于ResNet與ResNeXt的性能。這側面說明:相比CNN,受益于全局注意力機制,PVT可以提取更好的特征用于語義分割。