Sleep like a pillow

Deep Learning関係の話。

論文読み OCNet: Object Context Network for Scene Parsing

OCNet: Object Context Network for Scene Parsing

PSPNetのPyramid PoolingやDeepLabのASPといったsegemntationで強いモジュールと、Non-local Neural Networksを組み合わせたモジュールを提案した論文です。

arxiv.org

著者によるPyTorch実装: github.com

Object Context

Object context pooling (OCP)

  • Non-local Neural NetworksのNon-local operatorとほぼ同じで、類似度表現には内積ガウス関数をかけるEmbedded Gaussianを用いる。
  • OCPによって得られる特徴マップをobject context mapと呼ぶ。
  • Non-local Neural Networksと同様に、object context mapに初期値0のconv1x1(著者が公開しているコードのW)をかけることで、モデルの持つもともとの振る舞いを妨げないようにする。
  • OCPを用いた以下の3つのモジュールを提案。
    • Base object context
    • Pyramid object context
    • Combination with ASPP

Base object context

f:id:uiiurz1:20190407094139p:plain
Base-OC
- 入力の特徴マップにOCPをかけて入力の特徴マップとconcatする。

Pyramid object context

f:id:uiiurz1:20190407094215p:plain
Pyramid-OC
- PSPNetのPyramid PoolingとOCPを組み合わせたモジュール。 - 異なるスケールの特徴マップそれぞれにOCPをかけてconcatする。

Combination with ASPP

f:id:uiiurz1:20190407094246p:plain
ASP-OC
- DeepLavのASPとOCPを組み合わせたモジュール。 - ASPの1x1 convやdilated convのブランチにOCPのブランチを追加。

Network Architecture

  • ネットワーク構造は以下の図の通り。
    f:id:uiiurz1:20190407094450p:plain
    OCNet
  • backbone networkにはImageNetで学習済みのResNet-101を用いる

Experiments

  • Cityscapes (路上画像)、ADE20K (一般物体認識)、LIP (様々なタスクを行う人物)の3つのデータセットでSOTAな性能を示した。

Visualization of object context maps

  • 以下の図は画像中のあるピクセルについてのobject context mapsを可視化したもの。
    f:id:uiiurz1:20190407094744p:plain
    Visualization of object context maps
  • 赤い+マークが着目ピクセルを示している。
  • OCPの狙い通りに、着目ピクセルと同じcontextを持つ領域の値が高くなっていておもしろい。

所感

  • segmentationの後処理としてよく使われるMRF的な効果もあるのかなと感じる