背景介紹
近來年,深度卷積網絡在目標檢測方面取得了一定的成績。但對於密集預測,仍存在一定不足,原因是頻繁的卷積和池化導致最終的特征分辨率降低。
針對這個問題,目前主要采用兩種方法:第一種:空洞卷積,如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在目標理解上的直觀結果:

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