用全卷積網絡做密集預測 (dense prediction),優點很多。
但現在,你可以試試Vision Transformer了——
英特爾最近用它搞了一個密集預測模型,結果是相比全卷積,該模型在單目深度估計應用任務上,性能提高了28%。
其中,它的結果更具細粒度和全局一致性。
在語義分割任務上,該模型更是在ADE20K數據集上以49.02%的mIoU創造了新的SOTA。
這次,Transformer又在CV界秀了一波操作。
沿用編碼-解碼結構
此模型名叫DPT,也就是dense prediction transformer的簡稱。
總的來說,DPT沿用了在卷積網絡中常用的編碼器-解碼器結構,主要是在編碼器的基礎計算構建塊用了transformer。
它通過利用ViT為主幹,將ViT提供的詞包(bag-of-words)重新組合成不同解析度的圖像特徵表示,然後使用卷積解碼器將該表示逐步組合到最終的密集預測結果。
模型架構圖如下:
具體來說就是先將輸入圖片轉換為tokens(上圖橙色塊部分),有兩種方法:
(1)通過展開圖像表徵的線性投影提取非重疊的圖像塊(由此產生的模型為DPT-Base與DPT-Large);
(2)或者直接通過ResNet-50的特徵提取器來搞定(由此產生的模型為DPT-Hybrid)。
然後在得到的token中添加位置embedding,以及與圖像塊獨立的讀出token(上圖紅色塊部分)。
接著將這些token通過transformer進行處理。
再接著將每個階段通過transformer得到的token重新組合成多種解析度的圖像表示(綠色部分)。注意,此時還只是類圖像(image-like)。
下圖為重組過程,token被組裝成具有輸入圖像空間解析度1/s的特徵圖。
最後,通過融合模塊(紫色)將這些圖像表示逐步「拼接」並經過上採樣,生成我們最終想要的密集預測結果。
ps.該模塊使用殘差卷積單元組合特徵,對特徵圖進行上採樣。
以上就是DPT的大致生成過程,與全卷積網絡不同,ViT主幹在初始圖像embedding計算完成後放棄了下採樣,並在全部處理階段保持恆定維數的圖像表示。
此外,它在每階段都有一個全局感受野。
正是這兩點不同對密集預測任務尤其有利,讓DPT模型的結果更具細粒度和全局一致性。
用兩種任務來檢驗效果
具體效果如何?
研究人員將DPT應用於兩種密集預測任務。
由於transformer只有在大訓練集上才能展現其全部潛能,因此單目深度估計評估是測試DPT能力的理想任務。
他們將DPT與該任務上的SOTA模型進行對比,採用的數據集包含約140萬張圖像,是迄今為止最大的單目深度估計訓練集。
結果是,兩種DPT變體的性能均顯著優於最新模型(以上指標越低越好)。
其中,與SOTA架構MiDaS相比,DPT-Hybrid的平均相對改善率超過23%,DPT-Large的平均相對改善率則超過28%。
為了確保該成績不僅是由於擴大了訓練集,研究人員也在更大的數據集上重新訓練了MiDaS,結果仍然是DPT勝出。
通過視覺比較圖還可以看出,DPT可以更好地重建細節,可以在對卷積結構具有挑戰的區域(比如較大的均勻區域)中提高全局一致性。
另外,通過微調,研究人員發現DPT也可以有效地應用於較小的數據集。
在具有競爭力的語義分割任務上:研究人員在ADE20K數據集上對DPT進行了240個epoch的訓練。
結果發現,DPT-Hybrid優於現有的所有全卷積結構,以49.02的mIoU達到了SOTA(其更清晰、更細粒度的邊界效果如開頭所展示)。
而DPT-Large的性能稍差,研究人員分析可能是因為與之前的實驗相比,採用的數據集要小得多。
同時,他們在小數據集(Pascal)上對表現優異的DPT-Hybrid微調了50個epoch後發現,DPT的性能仍然強大。
最後,「百聞不如一見」,如果你想體驗DPT的真實效果,可以到Huggingface官網。
論文地址:
https://arxiv.org/abs/2103.13413
模型地址:
https://github.com/intel-isl/dpt
Hugging Face體驗地址:
https://huggingface.co/spaces/akhaliq/DPT-Large
— 完 —
量子位 QbitAI · 頭條號簽約
關注我們,第一時間獲知前沿科技動態