論文読み OCNet: Object Context Network for Scene Parsing
OCNet: Object Context Network for Scene Parsing
PSPNetのPyramid PoolingやDeepLabのASPといったsegemntationで強いモジュールと、Non-local Neural Networksを組み合わせたモジュールを提案した論文です。
著者による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
- 入力の特徴マップにOCPをかけて入力の特徴マップとconcatする。
Pyramid object context
- PSPNetのPyramid PoolingとOCPを組み合わせたモジュール。 - 異なるスケールの特徴マップそれぞれにOCPをかけてconcatする。
Combination with ASPP
- DeepLavのASPとOCPを組み合わせたモジュール。 - ASPの1x1 convやdilated convのブランチにOCPのブランチを追加。
Network Architecture
- ネットワーク構造は以下の図の通り。
- backbone networkにはImageNetで学習済みのResNet-101を用いる
Experiments
- Cityscapes (路上画像)、ADE20K (一般物体認識)、LIP (様々なタスクを行う人物)の3つのデータセットでSOTAな性能を示した。
Visualization of object context maps
- 以下の図は画像中のあるピクセルについてのobject context mapsを可視化したもの。
- 赤い+マークが着目ピクセルを示している。
- OCPの狙い通りに、着目ピクセルと同じcontextを持つ領域の値が高くなっていておもしろい。
所感
- segmentationの後処理としてよく使われるMRF的な効果もあるのかなと感じる