DAB-Net:用於實時語義分割的深度不對稱瓶頸層

摘要:

提出一種新的深度非對稱瓶頸(DAB)模塊,該模塊有效採用非對稱卷積擴張卷積來構建瓶頸層。由DAB模塊組成的DAB-Net,生成了足夠的接受域,密集的利用了上下文信息。

Citycapes測試集上實現70.1%的miou,一張FGTX1080Ti上速度爲104FPS。代碼地址:https://github.com/Reagan1311/DABNet

1、介紹

[16.18.19.23]已成功地提高了語義分割的實時性,同時也犧牲了準確性。[3,4,5,12,31]已證明了擴張卷積的可用性,擴張卷積可以在保持參數的同時增加感受野。另一種有效減少參數的方式是深度可分離卷積(ds-Conv),它具有獨立計算跨通道和空間性,但是簡單的將標準卷積替換爲ds-conv會導致性能大幅下降,因爲ds-conv大大降低了參數,常常導致次優問題。所以,本文將兩者結合,構成DAB模塊。

本文主要貢獻爲:

1)提出DAB結構,能同時提取局部和上下文信息,大大降低了參數;

2)DAB-Net不含上採樣層,參數比最先進的語義分割少,且有相當的準確性和推理速度;

3)DAB_Net,在1080ti 上 512*1024圖104FPS,參數0.76M,Citycapes上miou=0.701。

2、相關工作

ENet [18]是第一個實時設計的網絡,它減少大量的卷積以減少濾波器;

ICNet [34]提出一種包含多分辨率分支的圖像級聯網絡;

ERFNet [20]使用殘差連接和分解卷積保持效率,同時保持準確率;

ESPNet [16]引入一個高效的空間金字塔(ESP),給速度和性能都帶來很大改進;

BiSeNet [30]提出空間信息和上下文信息結合的方法。

擴張卷積。膨脹卷積 [12]在標準卷積中每個像素之間插入零點,在不增加參數的情況下,得到一個較大的有效接受域。在DeepLab系列 [4,5,6]中,引入一個無源控件金字塔池(ASPP)模塊,該模塊採用多個並行的不同膨脹率卷積收集多尺度信息。DenseASPP [29]將一組膨脹卷積層連接起來,生成密集的多尺度特徵表示。

卷積因子分解。將一個標準卷積分解爲幾個步驟降低計算成本和內存,這在輕量級CNN模型中得到廣泛應用。Inception [24,25,26]在保持接收域大小的同時,使用幾個小尺寸的卷積來代替大卷積核。Xceprion [7]和MobilNetV2 [22]提出反向殘差和線性瓶頸。ShuffleNet [32]將點卷積和通道混洗結合,使得不同通道能夠進行信息通信。

3、網絡結構

本節中,先介紹DAB模塊 ,然後基於DAB設計DABNet。

3.1、深度非對稱瓶頸-DAB模塊

受ResNet [10]瓶頸設計和ERFNet [20]中因式分解的啓發,結合兩者優點設計了DAB模塊。

a,b,c分別爲ResNet、ERFNet、DAB結構。1)首先將通道數減少一半,然後通過點卷積恢復至原始值。2)兩個分支結構,爲1*N,N*1可分離卷積組合,右分支增加膨脹因子(結合多尺度信息)。3)之後1*1卷積,恢復至原通道大小。4)最後殘差連接。

ResNet [10],深層次的卷積網絡可以增加感受野,並且提取更復雜的特徵。雙分支,優秀的網絡都會用多尺度信息,但多尺度信息的有效提取是個難題。左分支提取當前信息,右分支利用膨脹卷積提供更大的感受野,使用深度可分離卷積降低計算量。卷積分解降低參數量。膨脹卷積:增加感受野,但當膨脹率增加,也必須實現更多padding維持特徵圖大小尺度,這導致膨脹卷積計算量大,所以,本文只在深度可分離卷積上進行膨脹卷積。左分支爲當前信息,右分支爲上下文信息。

ENet [18]使用PRelu激活,淺層網絡上PRelu性能優於Relu。[22]中提出1*1卷積後增加激活函數會損失精度,故1*1卷積後不激活。

3.2、DABNet結構設計

首先,使用3*3卷積提取初始特徵,然後採取同ENet [18]相似的下采樣模塊,該模塊連接3*3卷積和步長爲2的maxpooling。

下采樣操作降低輸出特徵圖的尺寸,同時起到增加感受野以提取更多上下文信息的作用,而特徵圖分辨率的降低常導致信息丟失。因此,本文只做三次將採樣,最後特徵圖爲輸入的1/8。一般是5次下采樣,爲輸入的1/32。更多的,借鑑ESPNet V2 [17]連接輸入與每個下采樣模塊,減少信息損失。

DAB模塊,使用幾個連續的DAB模塊來提取稠密特徵,第一、二個DAB模塊分別含連續3、6個DAB結構,左分支膨脹率爲2,右分支膨脹率依次爲4,4,8,8,16,16,通過這樣逐步增加感受野。

設計選擇。DABNet只做三次下采樣。不含解碼結構,以減少計算量。

4、實驗

實驗中,batch_size設置爲8,動量因子0.9,衰減1e-4,SGD優化。初始學習率4.5e-2,冪0.9。迭代1000次。數據增強採用隨機翻轉、建軍治、隨機比例尺。隨機比例包含0.75、1.0、1.25、1.5、1.75、2.0。最後剪裁至固定尺寸進行訓練。

膨脹率設計。在第二個DAB結構後,逐步增加膨脹率。{4,4,8,8,16,16},以固定膨脹率4作爲對比。固定rate=4比基線底2.3%。文獻 [28]表明大的膨脹率更適合本網絡。

解碼器。採用ERFNet的解碼器結構作對比,用反捲積層做上採樣。上表中DABNet-ERFdecoder,指標提升0.3%,但速度下降至58.6 FPS。所以,本文中上採樣層是非必須的。

上下文模塊。PSPNet [33]是一個分類模型,採用空間金字塔pooling SPP ,通過在不同分辨率的特徵圖上提取當前、全局上下文信息。爲探索捕獲上下文能力,本文構造一個帶有SPP頭的DABNet變體,成爲DABNet-SPP。比基線低0.5%的準確率,參數增加4.2%,模型速度降低32FPS。DAB模塊提取上下文特徵比SPP要好。

推理速度。3.1中,膨脹卷積增加計算量,我們探索高效膨脹卷積。(a)去掉DABNet中所有膨脹卷積,(b)在所有DABNet中,第一層增加rate=2的膨脹率。即使降低膨脹率或去除所有膨脹卷積,FPS幾乎沒什麼變化(從104.2到104.5)。但是,當對標準卷積應用膨脹卷積時,速度明顯下降,從104.2下降到85.6。結果表明:膨脹卷積對推理速度有顯著影響,但應用於深度卷積時,幾乎沒有不良影響。

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