ECCV 2018 | 曠視科技提出雙向網路BiSeNet:做到實時語義分割

尋夢新聞LINE@每日推播熱門推薦文章,趣聞不漏接❤️

加入LINE好友

全球計算機視覺三大頂會之一 ECCV 2018 (European Conference on Computer Vision)即將於9月8 -14日在德國慕尼黑拉開帷幕。屆時,曠視首席科學家孫劍博士將帶領團隊遠赴盛會,助力計算機視覺技術的交流與落地。而在此之前,曠視科技將陸續推出 ECCV 2018 接收論文系列解讀。本文是第 6 篇,一個可做到實時語義分割的雙向網路 BiSeNet。往期解讀請見文末。

本文來自 雪花新聞,本文標題:ECCV 2018 | 曠視科技提出雙向網路BiSeNet:做到實時語義分割 ,轉載請保留本聲明!

if (window.location.host != ‘www.xuehua.us’){window.location.href=’https://www.xuehua.us/2018/08/07/eccv-2018-%e6%97%b7%e8%a7%86%e7%a7%91%e6%8a%80%e6%8f%90%e5%87%ba%e5%8f%8c%e5%90%91%e7%bd%91%e7%bb%9cbisenet%ef%bc%9a%e5%ae%9e%e7%8e%b0%e5%ae%9e%e6%97%b6%e8%af%ad%e4%b9%89%e5%88%86%e5%89%b2′;}

ECCV 2018 | 曠視科技提出雙向網絡BiSeNet:實現實時語義分割-雪花新聞

論文名稱:BiSeNet: Bilateral Segmentation Network for Real-time Semantic Segmentation

論文鏈接:https://arxiv.org/abs/1808.00897

目錄

  • 導語
  • 背景
  • 設計思想
  • BiSeNet
    • Spatial Path
    • Context Path
    • 網路架構
  • 實驗
    • 速度分析
    • 精度分析
    • 結果
  • 結論
  • 參考文獻

導語

機器看懂世界,目前一個主要的途徑是通過圖像,而要理解一張圖像,就要對其組成的每一個基本元素——像素有準確了解。從像素層面為一張圖像打上語義標籤,這就是語義分割,它是計算機視覺的主要任務之一,但在實際落地之時,往往還有實時處理的場景需求。本文中,基於三種主流的實時語義分割模型加速方法,曠視科技創新性地提出雙向網路 BiSeNet,不僅做到了實時語義分割,還在特徵融合模塊和注意力優化模塊的幫助之下,把語義分割的性能推進到一個新高度,從而為該技術的相關落地進一步鋪平了道路。

背景

語義分割是計算機視覺領域的一項基本任務,旨在為一張圖像之中的每個像素打上語義標籤,可應用於增強現實、自動駕駛、安防監控等領域,並在使用過程中能夠實時響應快速執行。最近,實時語義分割模型的加速取得一定進展,主要有以下三種方法:

  1. 通過剪裁或 resize 來限定輸入大小,以降低計算複雜度。盡管這種方法簡單而有效,空間細節的損失還是讓預測打了折扣,尤其是邊界部分,導致度量和可視化的精度下降;
  2. 通過減少網路通道數量加快處理速度,尤其是在骨幹模型的早期階段,但是這會弱化空間信息。
  3. 為追求極其緊湊的框架而丟棄模型的最後階段(比如ENet)。該方法的缺點也很明顯:由於 ENet 拋棄了最後階段的下采樣,模型的感受野不足以涵蓋大物體,導致判別能力較差。

總之,上述三個方法都是折中精度以求速度,難以付諸實踐。圖 1(a) 是其圖示。為解決上述空間信息缺失問題,研究者普遍採用 U 形結構。通過融合 backbone 網路不同層級的特徵,U 形結構逐漸增加了空間分辨率,並填補了一些遺失的細節。

但是,這一技術有兩個弱點:1)由於高分辨率特徵圖上額外計算量的引入,完整的 U 形結構拖慢了模型的速度。2)更重要的是,如圖 1(b) 所示,絕大多數由於裁剪輸入或者減少網路通道而丟失的空間信息無法通過引入淺層而輕易復原。換言之,U 形結構頂多是一個備選方法,而不是最終的解決方案。

設計思想

基於上述觀察,本文提出了雙向分割網路(Bilateral Segmentation Network/BiseNet),它包含兩個部分:Spatial Path (SP) 和 Context Path (CP)。顧名思義,這兩個組件分別用來解決空間信息缺失和感受野縮小的問題,其設計理念也非常清晰。

對於 Spatial Path,本文只疊加三個卷積層以獲得 1/8 特徵圖,其保留著豐富的空間細節。對於 Context Path,本文在 Xception 尾部附加一個全局平均池化層,其中感受野是 backbone 網路的最大值。圖 1(c) 展示了這兩個組件的結構。

ECCV 2018 | 曠視科技提出雙向網絡BiSeNet:實現實時語義分割-雪花新聞

圖 1:不同模型加速方法的圖示。

在追求更快、更好模型的過程中,本文也研究了兩個組件的融合,以及最後預測的優化,並分別提出特徵融合模塊(Feature Fusion Module/FFM)和注意力優化模塊(Attention Refinement Module/ARM)。在 Cityscapes,CamVid 和 COCO-Stuff 數據集上的實驗表明,這兩個模塊進一步從整體上提升了語義分割的精度。

BiSeNet

在本節中,首先詳細介紹 BiSeNet 網路及其兩路網路 Spatial Path 和 Context Path;接著,分別證明其有效性;最後,展示如何利用特徵融合模塊整合這兩路網路的特徵以及 BiSeNet 的整體架構。

Spatial Path

在語義分割任務中,空間分辨率和感受野很難兩全,尤其是在實時語義分割的情況下,現有方法通常是利用小的輸入圖像或者輕量主幹模型做到加速。但是小圖像相較於原圖像缺失了很多空間信息,而輕量級模型則由於裁剪通道而損害了空間信息。

基於這一觀察,本文提出 Spatial Path 以保留原輸入圖像的空間尺度,並編碼豐富的空間信息。Spatial Path 包含三層,每層包含一個步幅(stride)為 2 的卷積,隨後是批歸一化和 ReLU。因此,該路網路提取相當於原圖像 1/8 的輸出特徵圖。由於它利用了較大尺度的特徵圖,所以可以編碼比較豐富的空間信息。圖 2(a) 給出了這一結構的細節。

ECCV 2018 | 曠視科技提出雙向網絡BiSeNet:實現實時語義分割-雪花新聞

圖 2:BiSeNet 概覽。

Context Path

在語義分割任務中,感受野對於性能表現至關重要。為增大感受野,一些方法利用金字塔池化模塊,金字塔型空洞池化(ASPP)或者 「large kernel」,但是這些操作比較耗費計算和記憶體,導致速度慢。出於較大感受野和較高計算效率兼得的考量,本文提出 Context Path,它充分利用輕量級模型與全局平均池化以提供大感受野。

在本工作中,輕量級模型,比如 Xception,可以快速下采樣特徵圖以獲得大感受野,編碼高層語義語境信息。接著,本文在輕量級模型末端添加一個全局平均池化,通過全局語境信息提供一個最大感受野。在輕量級模型中,本文借助 U 形結構融合最後兩個階段的特徵,但這不是一個完整的 U 形結構。圖 2(c) 全面展示了 Context Path。

注意力優化模塊(ARM):在 Context Path 中,本文提出一個獨特的注意力優化模塊,以優化每一階段的特徵。如圖 2(b) 所示,ARM 借助全局平均池化捕獲全局語境並計算注意力向量以指導特徵學習。這一設計可以優化 Context Path 中每一階段的輸出特徵,無需任何上采樣操作即可輕易整合全局語境信息,因此,其計算成本幾乎可忽略。

網路架構

在 Spatial Path 和 Context Path 的基礎上,本文提出 BiSeNet,以做到實時語義分割,如圖 2(a) 所示。本文把預訓練的 Xception 作為 Context Path 的 backbone,把帶有步幅的三個卷積層作為 Spatial Path;接著本文融合這兩個組件的輸出特徵以做出最後預測,它可以同時做到實時性能與高精度。

首先,本文聚焦於實際的計算方面。盡管 Spatial Path 有大感受野,但只有三個卷積層。因此,它並非計算密集的。對於 Context Path,本文借助一個輕量級模型快速下采樣。進而,這兩個組件並行計算,極大地提升了效率。第二,本文還討論了網路的精度方面。Spatial Path 編碼豐富的空間信息,Context Path 提供大感受野,兩者相輔相成,從而做到更高性能。

特徵融合模塊:在特徵表示的層面上,兩路網路的特徵並不相同。因此不能簡單地加權這些特徵。由 Spatial Path 捕獲的空間信息編碼了絕大多數的豐富細節信息。而 Context Path 的輸出特徵主要編碼語境信息。換言之,Spatial Path 的輸出特徵是低層級的,Context Path 的輸出特徵是高層級的。因此,本文提出一個獨特的特徵融合模塊以融合這些特徵。

在特徵的不同層級給定的情況下,本文首先連接 Spatial Path 和 Context Path 的輸出特徵;接著,通過批歸一化平衡特徵的尺度。下一步,像 SENet 一樣,把相連接的特徵池化為一個特徵向量,並計算一個權重向量。這一權重向量可以重新加權特徵,起到特徵選擇和結合的作用。圖 2(c) 展示了這一設計的細節。

損失函數:本文通過輔助損失函數監督模型的訓練,通過主損失函數監督整個 BiSeNet 的輸出。另外,還通過添加兩個特殊的輔助損失函數監督 Context Path 的輸出,就像多層監督一樣。上述所有損失函數都是 Softmax。最後借助參數 α 以平衡主損失函數與輔助損失函數的權重。

實驗

本文採用修改版的 Xception39 處理實時語義分割任務,並在 Cityscapes,CamVid 和 COCO-Stuff 三個數據集上對 BiSeNet 進行了評估,對比其他同類方法,給出了自己的結果。本節還對算法的速度與精度進行了著重分析。

速度分析

本文實驗在不同設置下做了完整的對比。首先給出的是 FLOPS 和參數的狀態(見表 4)。

ECCV 2018 | 曠視科技提出雙向網絡BiSeNet:實現實時語義分割-雪花新聞

表 4:基礎模型 Xception39 和 Res18 在 Cityscapes 驗證集上的精度與參數分析。

FLOPS 和參數表明在給定分辨率下處理圖像所需要的操作數量。出於公平對比的考慮,本文選擇 640×360 作為輸入圖像的分辨率。同時,表 5 給出了不同輸入圖像分辨率和不同硬件基準下本方法與其他方法的速度對比。

ECCV 2018 | 曠視科技提出雙向網絡BiSeNet:實現實時語義分割-雪花新聞

表 5:本文方法與其他方法的速度結果對比。1和2分別代表 backbone 是 Xception39 和 Res18 網路。

最後,本文給出了該方法在 Cityscapes 測試數據集上的速度及相應的精度結果。從表 6 可以看出,該方法相較於其他方法在速度和精度方面的巨大進展。

ECCV 2018 | 曠視科技提出雙向網絡BiSeNet:實現實時語義分割-雪花新聞

表 6:Cityscapes 測試集上本文方法與其他方法的精度與速度對比。

在評估過程中,本文首先把輸入圖像的分辨率從 2048×1024 縮至 1536×768,以測試速度和精度;同時,通過 online bootstrap 的策略計算損失函數。整個過程中本文不採用任何測試技巧,比如多尺度或多次裁剪測試。

精度分析

事實上,BiSeNet 也可以取得更高的精度結果,甚至於可以與其他非實時語義分割算法相比較。這里將展示 Cityscapes,CamVid 和 COCO-Stuff 上的精度結果。同時,為驗證該方法的有效性,本文還將其用在了不同的骨幹模型上,比如標準的 ResNet18 和 ResNet101。

結果

Cityscapes:如表 7 所示,該方法在不同模型上都取得了出色的結果。為提升精度,本方法首先隨機裁切 1024×1024 大小的圖作為輸入。圖 4 給出了一些可視化結果實例。

ECCV 2018 | 曠視科技提出雙向網絡BiSeNet:實現實時語義分割-雪花新聞

圖 4:Cityscapes 數據集上基於 Xception39,Res18 和 Res101 的結果實例。

ECCV 2018 | 曠視科技提出雙向網絡BiSeNet:實現實時語義分割-雪花新聞

表 7:Cityscapes 測試集上本方法與其他方法的精度結果對比。

CamVid:表 8 給出了 CamVid 數據集上統計的精度結果。對於測試,本文通過訓練數據集和測試數據集訓練模型。這里訓練和評估使用的分辨率是 960×720。

ECCV 2018 | 曠視科技提出雙向網絡BiSeNet:實現實時語義分割-雪花新聞

表 8:CamVid 測試集上的精度結果。

COCO-Stuff:表 9 給出了 COCO-Stuff 驗證集上的精度結果。在訓練和驗證過程中,本文把輸入分辨率裁剪為 640×640。出於公平對比,本文不採用多尺度測試。

ECCV 2018 | 曠視科技提出雙向網絡BiSeNet:實現實時語義分割-雪花新聞

表 9:COCO-Stuff 驗證集上的精度結果。註:這里的COCO-Stuff是官方新公布的16萬張圖片的數據集。

結論

BiSeNet 旨在同時提升實時語義分割的速度與精度,它包含兩路網路:Spatial Path 和 Context Path。Spatial Path 被設計用來保留原圖像的空間信息,Context Path 則利用輕量級模型和全局平均池化快速獲取大感受野。由此,在 105 fps 的速度下,該方法在 Cityscapes 測試集上取得了 68.4% mIoU 的結果。

參考文獻

  • Chollet, F.: Xception: Deep learning with depthwise separable convolutions. IEEE Conference on Computer Vision and Pattern Recognition (2017)
  • Badrinarayanan, V., Kendall, A., Cipolla, R.: SegNet: A deep convolutional encoder-decoder architecture for image segmentation. IEEE Transactions on Pat- tern Analysis and Machine Intelligence 39(12), 2481–2495 (2017)
  • Paszke, A., Chaurasia, A., Kim, S., Culurciello, E.: Enet: A deep neural network architecture for real-time semantic segmentation. arXiv (2016)
  • Wu, Z., Shen, C., Hengel, A.v.d.: Real-time semantic image segmentation via spatial sparsity. arXiv (2017)
  • Ronneberger, O., Fischer, P., Brox, T.: U-net: Convolutional networks for biomedical image segmentation. In: International Conference on Medical Image Computing and Computer-Assisted Intervention (2015)
  • Yu, C., Wang, J., Peng, C., Gao, C., Yu, G., Sang, N.: Learning a discriminative feature network for semantic segmentation. In: IEEE Conference on Computer Vision and Pattern Recognition (2018)