1. 程式人生 > >基於深度學習的影象語義分割技術概述之4常用方法

基於深度學習的影象語義分割技術概述之4常用方法

本文為論文閱讀筆記,不當之處,敬請指正。
A Review on Deep Learning Techniques Applied to Semantic Segmentation:原文連結

4 深度學習影象分割的常用方法

深度學習在多種高階計算機視覺任務中的成功—特別是監督CNNs(Convolutional Neural Networks,卷積神經網路)在影象分類、物體檢測方面的成功—鼓舞著研究人員探索此類網路對於畫素級標記,如語義分割方面的能力。此類深度學習技術的突出優點,相比傳統方法,,能夠針對當前問題自動學習合適的特徵表示。傳統方法通常使用手動特徵,為了使其適應新的資料集,通常需要專家經驗和時間對特徵進行調整。

文章綜述中所比較的基於深度學習的影象分割演算法的特性(詳情檢視原文)。


  • 當前最成功的影象分割深度學習技術都是基於一個共同的先驅:FCN(Fully Convolutional Network,全卷積神經網路)。CNNs是非常高效的視覺工具,能夠學習到層次化的特徵。
  • 研究人員將全連線層替換為卷積層來輸出一種空間域對映而非類的評分,從而將現存、周知的分類模型,如AlexNet,VGG,GoogleNet和ResNet等,轉化為全卷積的模型。
  • 這些對映用分數階卷積(fractionally strided convolutions,又名反捲積)來產生畫素級標籤輸出。
  • 這被認為是影象分割問題的一個里程碑,展示了將CNNs應用於端到端影象分割問題的訓練方法、如何高效地學習對任意大小影象進行密集預測(dense predictions)。在各類標準資料集中取得令人矚目的精確率,被認為是深度學習語義分割的中流砥柱。

FCN的缺點:

  • 空間無關性:不能有效地考慮全域性上下文資訊;
  • 同類個體間差距:預設情況下不考慮個體之間的差距(不能區分相同類別的不同個體);
  • 實時性:針對高解析度影象還遠未達到實時水平;
  • 非結構化資料:不能完全適應3D點雲般非結構資料或模型。

4.1 解碼器的變種(Decoder variants)

  • 編碼:產生低解析度的影象表示或特徵對映的過程,將影象轉化為特徵;
  • 解碼:將低解析度影象對映到畫素級標籤的過程,將特徵轉化為影象標籤。

除FCN之外,還有其他方法將分類的神經網路用於語義分割。解碼過程通常是這些方法的顯著不同。

SegNet是其中一個明顯的例子。

  • SegNet由一系列上取樣
    卷積層組成,最後是一個softmax分類器預測畫素級的標籤,其輸出與輸入大小相同。解碼階段每個上取樣層與編碼階段的最大池化相對應(上取樣與最大池化使用類似的對應規則)。這些層使用編碼階段最大值池化所對應的特徵對映,將特徵對映為標籤。特徵圖上取樣後的結果,與一組訓練好的濾波器組進行卷積產生密集特徵圖。當特徵圖恢復到原始的解析度時,之後就通過softmax分類器產生最終的分割結果。
  • 基於FCN的架構使用了可學習的反捲積濾波器來上取樣特徵圖。之後上取樣的特徵圖被加入編碼階段產生的元素級的特徵圖中。圖10顯示了兩種途徑的不同之處。
    • 在SegNet中,進行最大池化時會記錄該最大值所在位置,從而在上取樣時,使用相同的位置關係將其對映到較大的特徵圖中,其餘部分用零填充。
    • 在FCN中,反捲積核[a,b,c,d]是學習得到的,其與[x1,x2,…,x16]進行反捲積後加入到[y1,y2,…,y16]。

4.2 結合上下文知識

語義分割是一個要求多種空間域資訊的問題。這也需要區域性和全域性資訊的平衡。

  • 細粒度、區域性資訊可以獲得較好的畫素級的精確度。
  • 影象上下文的資訊有助於去除區域性特徵的歧義。
  • 池化層可以是網路獲得一定程度的空域無關性、降低計算量、獲取全域性上下文資訊。即使是純CNNs網路,如果沒有池化層,其每個單元的感受野也只能隨著層數的遞增而線性增加。
  • 使CNNs考慮全域性資訊的途徑有很多:後處理階段使用CRFs(Conditional Random Fields ,條件隨機場)、膨脹卷積、多尺度聚合、在RNNs中加入上下文模型。

4.2.1 條件隨機場

  • CNN架構的空間變換無關性限制了分割任務中的空間準確性。
  • CRFs能夠將低階的影象資訊如畫素之間的互動,和多類推理系統的輸出結合起來即每個畫素的標籤,結合起來。這種結合對於獲取大範圍的依賴關係是非常重要的。
  • DeepLab模型利用全連線對級CRF作為一個獨立的後處理階段以增強分割效果。其將每個畫素建模為場中的一個節點,對於每對畫素,不管有多遠都使用一個對級項(密集或全連線因子圖)。
    • 考慮了短程和長程的互動,有助於系統修復細節。
    • 全連線模型較為低效,可以使用概率推理進行替代

4.2.2 膨脹卷積(Dilated Convolutions)

膨脹卷積是克羅內克因子卷積濾波器的一種泛化,可以在不丟失解析度的情況下指數級增大感受野。

  • 膨脹卷積是使用上取樣濾波器的一種方法。膨脹率l控制上取樣因子,l膨脹卷積可以使感受野指數級增長,而濾波器的引數數量線性增長。
  • 膨脹卷積可以對任意解析度實現密集特徵提取。傳統卷積是膨脹卷積膨脹率為1情況下的特例。

  • 膨脹卷積與卷積前先對濾波器做膨脹處理等價,即,根據膨脹率拓展其大小,將空元素用零填充。

  • 通常使用膨脹卷積的網路中,都是增加膨脹率以增大感受野,而不對特徵圖進行降取樣、也沒有增加計算量。

4.2.3 多尺度預測

CNNs中的每個引數都影響著特徵圖的尺度。濾波器存在只能檢測特定尺度特徵的危險(假設與角度無關)。引數也可能和當前問題有關,使模型難以泛化到不同的大小。其中一種解決方法就是使用多尺度的網路,生成多個尺度下的預測結構,之後將其結合到一個輸出中。

  • 基於VGG-16的多尺度全連線網路模型。該網路有兩條路徑,一條處理原始大小的圖片,其網路較淺。另一條路徑則處理二倍大小的圖片,其網路結構為全連線的VGG-16和一個卷積層,其處理結果經過上取樣與第一條路徑的相結合。融合後的輸出經過另一系列卷積層產生最終的輸出。該網路對尺度變換魯棒性較強。
  • 另一種途徑是使用由4種尺度結合的CNNs的方法。這4個網路具有相同的結構。其中的一個網路用於尋找場景的語義標籤。該網路從粗到細粒度的提取特徵。
  • 另一種網路結構是由n個在不同尺度上操作的FCNs組成。從網路中提取到的特徵混合在一起(經過必要的上取樣和填充),之後經過卷積層產生最終的分割結果。其主要貢獻為兩個階段的學習過程。第一階段,獨立地訓練各個網路,之後將網路組合到一起,對最後一層進行微調。這種多次度模型允許高效地新增任意數量的訓練好的層。

4.2.4 特徵混合

另一種向全卷積架構中加入上下文資訊的方式是特徵混合。

  • 一種方法是將全域性特徵(從網路前一層中提取的)和從子序列中的區域性特徵相混合。通用的架構如原始的FCN使用跳躍連線(skip connections)來實現不同層特徵圖的混合。
  • 另一種方法是早期混合。全域性特徵被反池化為區域性特徵大小,之後混合產生用於下一層的特徵。

4.2.5 遞迴神經網路

  • CNNs已經被成功地用於多維度的資料,例如影象。依賴手動定義的核,限制了架構對區域性內容的理解。RNNs由於其獨特的拓撲結構已經被成功地應用到短、長時的序列。這種方法中,通過將畫素級和區域性資訊相結合,RNNs能夠成功地建模全域性內容、提升語義分割。
  • 不足:影象缺少自然序列架構。
  • ReSeg是基於ReNet的語義分割架構。輸入影象經過VGG-16第一層處理,將特徵圖輸入到多個ReNet層中進行微調。最後使用反捲積(transposed convolution)對特徵圖進行上取樣。這種方法中門遞迴單元的使用能夠在記憶體佔用和計算效率上。
  • 長項依賴存在梯度消失的問題。一些衍生模型如LSTM( Long Short-Term
    Memory ,長短期記憶)網路和GRUs可以避免這個問題。