OCNet: Object Context Network for Scene Parsing (Microsoft Research)論文解析

不得不說,這篇論文和DANet撞車了,而且撞的死死的,用的同樣的核心內容,爲什麼會撞車,那是因爲,兩個篇文章都套用了同一篇文章的方法,同時想到了一起,你說巧不巧

不同於之前圖像級的context的方法,這篇論文提出逐像素的object context,object context由像素P所對應的類別的物體組成。由於測試時不知道標籤信息,所以用Self Attention方法通過學習逐像素的相似度圖估計objects。在此基礎上有進一步提出了Pyramid Object Context和Atrous Spatial Pyramid Object Context來捕獲多尺度的上下文。在object context module基礎上提出了OCNet,OCNet在Cityscapes和ADE20K數據集上取得了state-of-the-art的結果。

OCNet


paper: https://arxiv.org/abs/1809.00916
code: https://github.com/PkuRainBow/OCNet

主要貢獻:

  1. 提出了逐像素的object context,包含了與像素P相同類別的objects的信息。
  2. OCNet在Cityscapes和ADE20K數據集上取得了state-of-the-art的結果

OverView

OverView


OCNet以ResNet-101爲backbone(後兩個block爲dilated convolution,dilation rate分別爲2和4),其後是這篇文章提出的object context module去計算逐像素的object context,最後是1×1的卷積輸出預測圖。object context module是基於Self Attention Mechanism,作者一共提出了3種不同的object context module: base-OC, Pyramid-OC, ASP-OC。

Object Context


這裏大致介紹了Object Context module中的變量和基本原理。
X爲輸入的特徵圖,P爲位置特徵圖,W爲由self-attention得到的逐像素的相似度圖,第i行表示所有像素與第i個像素的相關性,C爲Object Context module最後得到的逐像素的object context表達。用公式表示爲:

                                                                             c_{i}=\sum_{j=1}^{N}{w_{i,j}\phi\left ( x_{j} \right )}

                                                                           


其中W可由以下公式得到:

                                                                            w_{i,j}=\Phi \left ( x_{i},x_{j},p_{i},p_{j} \right )
進一步又可以寫成:

                                      \bar{x}{i} = x{i}+p_{i} \quad w_{i,j}=\Phi \left ( \bar{x}{i},\bar{x}{j} \right )=\frac{exp\left ( f_{query}\left ( \bar{x}{i} \right )^{T} f_{key}\left ( \bar{x}{j} \right )\right )}{\mathbb{C}\left ( \bar{x}{i} \right )}
其中:

                                                            \mathbb{C}\left ( \bar{x}{i} \right )=\sum_{j=1}^{N}exp\left ( f_{query}\left ( \bar{x}{i} \right )^{T} f_{key}\left ( \bar{x}_{j} \right )\right )
 

Object Context Module

Object Context Module


這裏介紹了3種不同的object context module: base-OC, Pyramid-OC, ASP-OC。每個object context module都含有3個階段:(1)計算X;(2)計算C;(3)融合。

 

Base-OC

(1)計算X: 3×3的卷積減少channel從2048到512
(2)計算C: 用self-attention模塊計算逐像素的attention map和object context
(3)融合: concatenate C 和 X
進一步用1×1的卷積減少channel維度爲512

 

Pyramid-OC(受PSPNet的啓發)

(1)計算X: 3×3的卷積減少channel從2048到512
(2)計算C: 在四個分支中分別用self-attention模塊計算逐像素的attention map和object context。第一個分支把全部特徵圖作爲輸入,第二個分支把特徵圖分爲2×2的子區域,每個子區域應用共享的transform,第三個和第四個分支把輸入分爲3×3和6×6的子區域,每個子區域的transform不共享。最後concatenate每個分支的結果並用1×1的卷積增加X的維度與object context的維度相等再進行concatenate
(3)融合: 進一步用1×1的卷積減少channel維度爲512

 

ASP-OC(受DeepLAbV3的ASPP啓發)

(1)計算X: 共有5個分支。分別爲1×1的卷積,3×3的卷積,dilation rate爲12的3×3卷積,dilation rate爲24的3×3卷積,dilation rate爲36的3×3卷積
(2)計算C: 對每個分支的結果分別用self-attention模塊計算逐像素的attention map和object context。實驗發現再2,3,4,5分支中使用self-attention模塊會有害performance
(3)融合: concatenate C 和 X,進一步用1×1的卷積減少channel維度爲512

 

Experiments

Influence of the Positional Feature

Influence of the Key/Query transform

Influence of the Self-attention in ASP-OC

Influence of Auxiliary loss

Influence of the OHEM, Ms, Flip, Validation set

Comparison with Baseline

Comparison with State-of-the-art

Visualization of the object context

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章