影象語義分割(7)-PSPNet:金字塔型場景解析網路
阿新 • • 發佈:2019-01-14
論文地址 :Pyramid Scene Parsing Network
論文程式碼:caffe Keras tf
1. 問題提出
當前多數模型都是基於FCN的,存在許多共性的問題:
- Mismatched Relationship:缺乏對上下文關係的捕獲,而這對於複雜場景的理解很有必要。比如把船錯分為汽車,就忽視了背景水的影響;
- Confusion Categories:很多類別標籤存在聯絡,而以有的FCN-based模型沒有充分利用這種關係。比如把skycraper的一部分錯分為building;
- Inconspicuous Classes:缺乏對不明顯的物體的捕獲能力,比如小的或者融合在其他物體的不起眼的物體。
這些問題都是由於模型沒有充分利用全域性資訊,但是也有幾種常用的方法來避免: - 全域性平均池化:丟失空間關係並導致模糊,不能覆蓋所有必要的資訊
- 金子塔池化:產生不同層次的特徵,文中也是借鑑了這種方法
2. 解決方案
根據上面提到的問題,提出了具有全域性優先順序並且包含不同子區域的不同尺度資訊的pyramid pooling module,論文的另一個貢獻是提出了基於深度監督損失的有效的ResNet的訓練方法。
3. 模型架構
3.1 pyramid pooling module
如上圖©,該模組融合了四種不同金字塔尺度的特徵,第一行紅色的是最粗糙的特徵,即全域性赤化生成的單個bin輸出,後面的三行是不同尺度的池化特徵。為了保證全域性特徵的權重秒如果金字塔一共有N個級別,則每個級別後使用
的卷積層來將對應的語義特徵的通道數降為原始1/N,再通過上取樣(雙線性插值)來將特徵圖恢復至未池化前的尺寸,並concat到一起。
而且,金字塔層次的數目和尺寸都是可以更改的,論文中使用了四個等級,核大小分別為
。
3.2 PSPNet
在3.1模組的基礎上,整個PSPNet的架構如上圖所示,給定一個影象輸入:
- 通過基礎層(帶有空洞卷積的與預訓練ResNet)提取特徵圖,大小是輸入影象的1/8
- 經過金字塔池化模組來獲取語義資訊,使用四種不同的層級的金字塔分別獲取whole,half of和小的部分得到global prior並上取樣將其融合為原始特徵圖大小
- 經過一個卷積層得到預測的輸出
3.3 針對基於ResNet的FCN的深度監督
在ResNet101的基礎上做了改進,除了使用後面的softmax分類做loss,額外的在第四階段添加了一個輔助的loss,文章稱為auxiliary loss(預測時就不加這個了),如下圖,兩個loss一起傳播,使用不同的權重,共同優化引數。後續的實驗證明這樣做有利於快速收斂。
4. 實驗結果
4.1 訓練細節
4.2 實驗專案
- 不同配置下的ResNet的效能
- 不同auxiliart loss權重的效能
- 不同深度、不同規模的ResNet與訓練網路的效能
- 不同模型和Ours的效能
4.3 關鍵實驗結果
- PASCAL VOC 2012[+表示有預訓練]
- Cityscapes[‡表示同時使用了精細和粗糙的資料]
5. 結論
論文在結構上提供了一個pyramid pooling module,在不同層次上融合feature,實現語義和細節的融合。 模型的效能表現很良好,但主要歸功於一個良好的特徵提取層。