1. 程式人生 > >影象語義分割(11)-BiSeNet:用於實時語義分割的雙向分割網路

影象語義分割(11)-BiSeNet:用於實時語義分割的雙向分割網路

論文地址 :BiSeNet: Bilateral Segmentation Network for Real-time Semantic Segmentation

1. 摘要

  語義分割任務不僅需要豐富的空間位置資訊,還需要尺寸客觀的感受野,但是現有的方法為了提速往往採取損失空間解析度的方法,這導致了精度的嚴重下降。論文中提出了一種新的雙向分割網路BiSeNet。首先,設計了一個帶有小步長的空間路徑來保留空間位置資訊生成高解析度的特徵圖;同時設計了一個帶有快速下采樣冊率的語義路徑來獲取客觀的感受野。在這兩個模組之上引入一個新的特徵融合模組將二者的特徵圖進行融合,實現速度和精度的平衡。
  BiSeNet模型在Cityscapes上取得了68.4%的平均IOU和105FPS的速度[Titan XP]。

2. 介紹

  語義分割應用廣泛,實時語義分割也具有良好的應用前景。目前實時語義分割的方法主要有如下圖所示以下三種:
在這裡插入圖片描述

  • 通過裁剪和尺寸變化嚴格規定輸入影象的尺寸 \Rightarrow 資料上和視覺效果上可見的精度減少
  • 改變網路的通道數來加速推理過程
    \Rightarrow
    預測位置的能力的衰弱
  • 丟棄最後階段的幾層來獲得一個較小的框架 \Rightarrow 模型的感受野減小導致模型分類能力不足
      為了解決上面三種方案中空間細節上的損失,提出U-shape 結構,如下圖所示,這種結構融合主幹網路的層次特徵並逐步增加解析度且填充一些細節,但這只是一種緩解手段而不能解決,因為U-shape Structure存在兩個問題:
  • 完整的U-shape 結構會導致計算速度的減慢
  • 在裁剪過程中損失的位置資訊較難恢復
    在這裡插入圖片描述
      基於對這些問題的研究,提出BiSeNet,如下圖所示,其包含兩部分,兩個部分分別處理位置資訊的丟失和感受野的縮減:
  • Spatial Path(SP):使用三個卷積層來獲取特徵圖(output_stride=8)
  • Context Path(CP):附加一個全域性平均池化層在Xception的尾部,這裡的感受野是整個主幹網路中最大的
    在這裡插入圖片描述
      為了在不損失速度的同時獲得更好的精度,論文還提將兩個路徑融合的模組FFM和精細畫最後最終預測結果的模組ARM,這兩個模組有助於提升精度。
      綜上,論文的主要貢獻在於:
  • BiSeNet with SP and CP
  • Feature Fusion Module 和 Attention Refinement Module \Rightarrow 較小的速度損失獲得較大的精度提升
  • impressive results on Cityscapes,etc.

3.雙向分割網路

  詳細解釋帶有SP和CP的BiSeNet,然後分別對SP和CP的有效性進行說明,最後使用FFM融合兩個paths的輸出和整個網路的結構(網路結構如下圖所示)。
在這裡插入圖片描述

3.1 Spatial Path

  提出SP基於很多考慮,一方面位置資訊和感受野兩個對於分割結果非常關鍵的因素不能兩全,另一方面實時語義分割方法多數採取使用較小的輸入影象尺寸導致大部分位置資訊的丟失。由此提出SP模組,該模組保留空間尺寸並且編碼了豐富的位置資訊。SP包含三層,每一個卷積層的步長都為2且後面跟著BN層和ReLU啟用層。最終SP的output_stride=8,之中尺寸的特徵圖包含了豐富的位置資訊。

3.2 Context Path

  提出CP基於這樣的觀察,即大的感受野對於語義資訊非常關鍵,現有的金字塔池化,空洞空間金字塔池化和大核心方法計算代價過高,從而導致速度較慢,因此提出Context Path方法。CP輕量級模型和全域性平均池化操作來獲取較大的感受野。
  首先使用輕量級的模型比如Xception來編碼高層語義資訊,之後加一層全域性平均池化來獲取最大的感受野,最後將全域性池化的結果上取樣並於輕量級模型的輸出特徵相融合。在輕量級模型中,應用U-shape結構來融合這兩個階段的特徵,結構如下圖所示:
在這裡插入圖片描述
  另外還有一個模組Attention Refinement Module(ARM)來調整各個階段的特徵,結構如下圖所示,ARM應用全域性平均池化來獲取全域性語義資訊然後計算一個attention vector來知到特徵學習。這個結構能夠精細畫Context Path中各個階段的結果。它可以不用上取樣就整合全域性語義資訊,計算代價較小。
在這裡插入圖片描述

3.3 網路架構

  使用Xception作為Context Path的主幹網路,三層帶有卷積步長的卷積層作為Spatial Path,然後將兩條路徑的輸出融合。在速度較快的情況下取得良好的精度。
  分開來看,儘管SP每一層的計算代價都很大,但是隻有三層,計算量也可以接受;CP層使用輕量級模型實現快速下采樣,而且這兩條路徑同時計算提高了精度。
  最終在FFM前得到的兩條路徑的輸出特徵尺寸不同,因此不能簡單的相加。富含位置資訊的SP特徵和富含語義資訊的CP特徵二者在不同的層次,因此需要FFM來融合:對於給定的不同特徵輸入,首先將二者concatenate,然後利用BN來調整特徵的尺度,接著對Concat結果進行池化得到一個特徵向量並計算一個權重向量,權重向量可以調整特徵的權重,從而帶來特徵的選區和結合,結構如下圖所示:
在這裡插入圖片描述
  對於損失函式,模型中使用principal loss function來監督模型的訓練,並且使用額外的兩個輔助損失函式來監督Context Path的訓練,所有的損失函式都是Softmax函式。最終使用 α \alpha 來控制principa loss和輔助loss的權重[文中取1],如下所示:
(輔助損失函式) l o s s = 1 N i L i = 1 N i l o g ( e p i j e p j ) loss=\frac{1}{N}\sum_{i}{L_i}=\frac{1}{N}\sum_{i}{-log(\frac{e^{p_i}}{\sum_{j}{e^{p_j}}})} \tag{輔助損失函式}
  其中p是網路輸出。
(損失函式) L ( X ; W ) = l p ( X ; W ) + α i = 2 K l i ( X i ; W ) L(X;W)=l_p(X;W)+\alpha \sum_{i=2}^{K}l_i(X_i;W) \tag{損失函式}
  其中, l p l_p 是主損失函式的concat輸出, X i X_i 是Xception第i階段的輸出, l i l_i 是不同階段的輔助損失函式。K取3,L即聯合損失函式。

4. 實驗

4.1實現細節

  三層卷積作為SP,Xception39作為CP的主幹網路,使用FFM結合兩個路徑的結果得到最終預測結果。SP的輸出和最終的預測都是原始影象的 1 8 \frac{1}{8} .
  使用小批量隨機梯度減少演算法進行訓練,batchsize=16,動量0.9,權重衰減 1 e 4 1e^{-4} ,使用poly learing rate
  進行資料增廣,包括mean subtraction,隨機水平翻轉和隨機尺度。最終將其裁剪至於訓練的尺寸相當。

4.2 各種燒蝕實驗

  略