語義分割之RefineNet


背景介紹

      近來年,深度卷積網絡在目標檢測方面取得了一定的成績。但對於密集預測,仍存在一定不足,原因是頻繁的卷積和池化導致最終的特征分辨率降低。

      針對這個問題,目前主要采用兩種方法:第一種:空洞卷積,如Deeplab,但計算資源消耗太大;下圖分別是殘差結構和空洞卷積在提取稠密分割結果時的操作流程:

 
 

很明顯,殘差結構直接損失了空間分辨率。雖然空洞卷積在一定程度上減小了殘差結構空間分辨率的損失,但是其訓練的代價是非常高昂的(即使在GPU上)。

         第二種、充分利用中間層的語義信息來生成較高分辨率的預測結果,即本文采用的方法。
 
正文

一、創新點:

      1、提出一種新的模塊:RefineNet,利用不同層的特征來完成語義分割。主要利用了遞歸的方式。

      2、提出了鏈式殘差池化的思想,可以在較大的圖像區域上捕獲背景信息。

二、詳細功能介紹:

      1、多路徑Refine恢復分辨率

       實現將粗糙的較高層次語義特征與精細的較低層次語義特征結合,來生成高分辨率的語義分割圖片;

 

基於ResNet網絡,在4種不同的降采樣階段,將特征圖輸入到RefineNet模塊中,產生整合后的特征圖。除了RefineNet4,每個RefineNet模塊都有兩個輸入,一個是本階段的特征圖,另一個是低層產生的經過處理的特征圖。隨着降采樣的進行,語義信息逐漸豐富。最終得到的得分圖,經過上采樣恢復到原有的圖片大小。

      2、RefineNet模塊(全局特征提取與融合)

      每個RefineNet模塊結構如下:

 

 主要由4部分組成:

      1)殘差卷積單元RCU,用來調整預訓練權重;


    

每個RCU模塊包括一個ReLU層和一個卷積層,網絡結構中,每個分辨率下應用兩個串聯的RCU模塊,用於提取該分辨率下的分割結果的殘差,最后以相加的形式校正該分辨率下的原始分割結果。

      2)多分辨率融合單元,實現不同分辨率特征圖的融合;


      首先通過一個卷積層處理輸入進來的不同分辨率下的分割結果,從而學習得到各通道下的適應性權重。隨后,應用上采樣,統一所有通道下的分割結果,並將各通道結果求和。求和結果送入下一個模塊。

      3)鏈式殘差池化,用來捕獲背景上下文信息;

   

    

       通過殘差校正的方式,優化前兩步融合得到的分割結果。

       該模塊主要由一個殘差結構、一個池化層和一個卷積層組成。其中,池化層加卷積層用來習得用於校正的殘差。值得注意的是,RefineNet在這里用了一個比較巧妙的做法:用前一級的殘差結果作為下一級的殘差學習模塊的輸入,而非直接從校正后的分割結果上再重新習得一個獨立的殘差。好處是:可以使得后面的模塊在前面殘差的基礎上,繼續深入學習,得到一個更好的殘差校正結果。

      4)輸出卷積單元,用於處理結果的最終預測。

     3、恆等映射

      方便進行端到端的處理。

三、詳細架構圖:

 

 四、RefineNet不同變種結構:

1、單個RefineNet


2、二次級聯的RefineNet


3、四次級聯RefineNet


五、實驗結果:

RefineNet在NYUv2數據庫、PASCAL VOC 2012數據庫和Cityscapes數據庫下都有實驗驗證。下表是其在NYUv2下的結果(40類):

NYU數據集下載鏈接:https://cs.nyu.edu/~silberman/datasets/nyu_depth_v2.html

        預處理鏈接:http://www.manongjc.com/article/26507.html

 

下表是其在Cityscapes下的結果:

CityScapes數據集下載鏈接:https://www.cityscapes-dataset.com/

 
 

下圖是語義分割問題上的直觀結果:

 
 

除了語義分割,RefineNet還可以用於目標理解(object parsing)。下表是其在目標理解上的表現:

下圖是RefineNet在目標理解上的直觀結果:

 

 注:該方法可進行端到端的訓練,且在不同的訓練集上表現都不錯。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM