1. 程式人生 > >影象語義分割(7)-PSPNet:金字塔型場景解析網路

影象語義分割(7)-PSPNet:金字塔型場景解析網路

論文地址 :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

× 1 1 \times 1 的卷積層來將對應的語義特徵的通道數降為原始1/N,再通過上取樣(雙線性插值)來將特徵圖恢復至未池化前的尺寸,並concat到一起。
  而且,金字塔層次的數目和尺寸都是可以更改的,論文中使用了四個等級,核大小分別為 1 ×
1 , 2 × 2 , 3 × 3 6 × 6 1\times1,2\times2,3\times 3和6\times6

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,實現語義和細節的融合。 模型的效能表現很良好,但主要歸功於一個良好的特徵提取層。