語義分割是計算機視覺領域的基礎任務之一,其目的是為影象的每個畫素分配語義標籤。現代方法通常採用全卷積網路(FCN)來解決這一任務,並在多個分割基準上獲得巨大成功。
原版 FCN 由 Long 等人 [22] 提出,它由用於影象分類的卷積神經網路(CNN)變換而來。原版 FCN 繼承了 CNN 用於影象分類的設計,並通過步幅卷積(stride convolution)和/或空間池化層(spatial pooling layer)逐步對輸入影象進行下采樣,最終得到低解析度特徵圖。最終的特徵圖編碼了豐富的語義資訊,卻丟失了精細的影象結構資訊,導致目標邊界預測不準確。如圖 1a 所示,原版 FCN 通常對輸入影象進行 5 次下采樣,將最終特徵圖的空間解析度降低 32 倍。
圖 1:不同型別的語義分割網路。(a)原版 FCN,(b)編碼器-解碼器樣式的語義分割網路,(c)利用擴張卷積得到高解析度的最終特徵圖。
為了得到高分辨的最終特徵圖,[3, 28, 18, 30, 27] 將原版 FCN 作為編碼器來捕獲高階語義資訊,而解碼器則通過結合來自編碼器的多級特徵圖來漸進地恢復空間資訊。如圖 1b 所示,研究者將這種方法稱為 EncoderDecoder,其中解碼器生成的最終預測具有高解析度。
此外,DeepLab [5] 從原版 FCN 中移除最後兩個下采樣操作,並引入擴張(空洞)卷積以保持感受野(receptive field)不變。緊隨 DeepLab,[38, 6, 36] 在最終特徵圖之上應用多尺度語境模組(context module),其效能在多個分割基準上明顯優於大多數 EncoderDecoder 方法。如圖 1c 所示,DilatedFCN 的最終特徵圖的空間解析度是原版 FCN 的四倍,因而保留了更多結構和位置資訊。
擴張卷積在保持最終特徵圖的空間解析度中發揮重要作用,使模型效能優於大多數 EncoderDecoder 方法。但是,引入的擴張卷積使計算複雜度和記憶體佔用均大大增加,從而限制了它在眾多實時應用中的使用。以 ResNet-101 [13] 為例,相較於原版 FCN,DilatedFCN 中的 23 個殘差塊(69 個卷積層)需要四倍的計算資源和記憶體,而 3 個殘差塊(9 個卷積層)需要 16 倍的資源。
在本文中,研究人員旨在解決擴張卷積造成的上述問題。為了實現這一目的,研究人員提出了一種新型聯合上取樣模組(joint upsampling module)來替代耗時又耗記憶體的擴張卷積,即 Joint Pyramid Upsampling(JPU)。
因此,新方法將原版 FCN 作為主幹網路,同時運用 JPU 對輸出步幅(OS)為 32 的低解析度最終特徵圖執行上取樣,從而生成一個高解析度特徵圖(OS=8)。因而,整個分割框架的計算時間和記憶體佔用大幅減少。與此同時,以 JPU 替代擴張卷積時,效能不會出現損失。研究人員將此歸因於 JPU 能夠利用跨多級特徵圖的多尺度語境。
為了驗證該方法的有效性,研究人員首先進行了系統性實驗,證明 JPU 可以取代多種流行方法中的擴張卷積,且不會引起效能損失。之後,研究人員在多個分割基準上對提出的方法進行測試。結果顯示,該方法可以實現當前最佳效能,並且執行速度提高了兩倍以上。
具體來說,該方法在 Pascal Context 資料集上的效能顯著優於所有基線,取得了 53.13% 的 mIoU 最佳效能。在 ADE20K 資料集上,該研究以 ResNet50 作為主幹網路獲得了 42.75% 的 mIoU,在驗證集上創造了新紀錄。此外,該研究使用 ResNet-101 在 ADE20K 測試集上實現了當前最佳效能。
總之,該研究的貢獻有三:其一,提出了一種計算效率高的聯合上取樣模組 JPU,以替代主幹網路中耗時又耗記憶體時間和記憶體的擴張卷積;其二,基於 JPU,整個分割框架的計算時間和記憶體佔用可以減少 3 倍以上,同時獲得更好的效能;其三,提出的方法在 Pascal Context 資料集和 ADE20K 資料集上均實現最佳效能。
論文:FastFCN: Rethinking Dilated Convolution in the Backbone for Semantic Segmentation
論文連結:https://arxiv.org/pdf/1903.11816.pdf
現代語義分割方法通常會在主幹網路中使用擴張卷積來提取高解析度特徵圖,這帶來了極大的計算複雜度和記憶體佔用。為了取代耗時又耗記憶體的擴張卷積,本研究提出了新型聯合上取樣模組 Joint Pyramid Upsampling (JPU)。JPU 將提取高解析度特徵圖的任務轉換為聯合上取樣問題。
它在不影響效能的情況下,將計算複雜度降低了三倍多。實驗表明,JPU 優於其它上取樣模組,它可用於很多現有方法來降低計算複雜度、提高效能。通過用 JPU 模組替代擴張卷積,該方法在 Pascal Context 資料集(53.13% 的 mIoU)和 ADE20K 資料集(最終分數 0.5584)上都達到了當前最佳水平,同時執行速度快了兩倍。
方法
在這部分中,研究人員首先介紹了最流行的語義分割方法 DilatedFCN,然後用新型聯合上取樣模組 JPU 改進 DilatedFCN 架構。最後,研究者先簡單介紹了聯合上取樣、擴張卷積和步幅卷積,再詳細討論了 JPU 方法。
圖 2:本文方法的框架概覽。該方法採用了原版 FCN 作為主幹網路。在主幹之後,研究人員提出了新型上取樣模組 JPU,該取樣模組將最後三個特徵圖作為輸入並生成了高解析度特徵圖。然後使用多尺度/全域性上下文模組來生成最終標籤圖。
圖 4:JPU 概覽。
實驗
表 1:以 ResNet-50 作為主幹網路時,多種方法在 Pascal Context 驗證集上的效能。
圖 6:以 ResNet-50 作為主幹網路且使用 Encoding Head 時,不同上取樣模組的視覺化結果對比。
表 2:計算複雜度對比。FPS 是以 512×512 的影象作為輸入在 Titan-Xp GPU 上測量的,該結果是 100 次執行的平均值。
表 3:當前最佳方法在 Pascal Context 驗證集上的結果。
表 4:在 ADE20K 驗證集上的結果。
表 5:在 ADE20K 測試集上的結果。前兩項在 2017 年的 COCO-Place 挑戰賽中分別排名第一和第二。
圖 7:本文方法 (ResNet-101) 的視覺化結果。第一行來自 Pascal Context 驗證集,第二行來自 ADE20K 驗證集。