PSPNet: 空間ピラミッドプーリングによるシーン画像分割

1. PSPNet (Pyramid Scene Parsing Network) とは [概要]

PSPNet (Pyramid Scene Parsing Network)とは,空間ピラミッドプーリングの利用により,追加で4スケールのコンテキスト特徴も使用できるようにした,セマンティックセグメンテーション用のFCNである.SenseTimeとその母体であるCUHKによる研究である[Zhao et al., 2017]:

PSPNetのネットワーク構造は,FCN [Long et al., 2015] の終盤層に,空間ピラミッドプーリング(SPP)を追加したものである.膨張畳み込み [Chen and Papandreou et al., 2014], [Yu and Koltun, 2015] と,空間ピラミッドプーリングを組み合わて使用することににより,シーン画像の多解像度で豊富なコンテキストを捉えることができる.おかげで,PSPNetでは,ADE20K データセット [Zhou et al., 2017] の複雑なシーン画像においても,高精度な分割が実施できるようになった

(※ 結果画像例を,論文中の図や,上記プロジェクページで必ず参照してみてほしい).

PSPNetは,ImageNetの2016年のシーン分割部門の勝者となった上に,論文中の実験ではPASCAL VOC 2012Cityscapes データセットでも一位を取っている.その実績により,その後はセマンティックセグメンテーション用の標準的ネットワークとして, DeepLabv3+ と並んで,PSPNetも頻繁に用いられることになった.

2. PSPNet の動機: 「広範囲コンテキストの不足」による誤識別

当時, シーン画像の分割をおこなうデータセットの ADE20K データセット[Bolei Zhou et al., 2017]が新登場した.しかし,従来手法であるベースラインのFCN [Long et al., 2015]やParseNet [Liu et al., 2015]では以下のような課題があり,うまく学習できなかった (元論文 Figure 2):

  • クラス関係のミスマッチ(1列目の結果画像):
    • 物体領域内の見えだけしかとらえていないので,ボートを車と見間違ってしまう → 物体周辺の背景コンテキストが,より広い範囲で必要である.
  • クラスカテゴリの混乱(2列目の結果画像):
    • 「建物」と「高層ビル」のように,「似ていて区別のつきやすいクラス間」だと,両者をうまく区別できていない.
  • 目立ちづらいクラス (3列目の結果画像):
    • 「枕」のように,全学習画像の中で小さくて,総登場画素数の多いクラスをうまく予測しづらい.つまり「クラス不均衡」の問題がある).

出力(特徴)マップ上の,各画素の特徴ベクトルに広範囲の全域的な周辺情報(コンテキスト)が,不足していることから,これらの問題は起こっていることが共通していた.よって,もっと広範囲に周辺コンテキストを取得できるようにしたいというのが,PSPSNetの基本方針であった.(※この時期の同時研究であるDeepLabシリーズも,当然解決できていなかった問題意識は同じ)

直前に提案された ParseNet [Liu et al., 2015]などでも,広範囲なコンテキストを追加情報として取り入れようという発想は登場し始めていた.それをPSPnNetでは,多重解像度複数スケールの特徴をコンテキストとして使用できる空間ピラミッドプーリングを基にした手法を提案した.

3. PSPNet の構造

3.1 ネットワーク構造と処理手順

PSPNet の構造
図2 PSPNet の構造:
ResNet with 膨張畳み込みで計算した特徴マップを,最後に空間ピラミッドプーリングを用いてマルチスケール集約する.

PSPNetの構造は,FCNの終盤層に,4レベルの空間ピラミッドプーリング層を挿入したネットワークである(図2).ピラミッドプーリング後に,1 x 1 畳み込み層をもちいてチャンネル方向の次元削減を行い,クラス識別計算の負荷を下げてから,畳み込み層で画素ごとのクラス識別を行う.

元の論文中では省略形は提示されなかったが,この追加モジュールの略称として,PPM(Pyramid Pooling Module, ピラミッドプーリングモジュール)という呼び方が定着した (※ DeepLab v2 の ASPPモジュールと比較するときに,同様の略称が各論文では欲しくなったのが,後から名前がつけられた理由).

3.1.1 PSPNet の処理手順

PSPNetでは,以下の手順で処理を行う:

  1. 特徴マップのResNetによるエンコード :
    • 入力画像から膨張畳み込みを用いたResNetをエンコーダで,広範囲コンテキストを収集した特徴マップ($D$チャンネル)を生成.
  2. PPM による処理(空間ピラミッドプーリング→チャンネル方向に次元削減→アップサンプリングし合成):
    • 4つのピラミッドレベルで平均プーリングを行い,特徴マップ群4つを作成(画像全体を,それぞれ [6 x 6], [3 x 3], [2 x 2], [1 x 1] のグリッドにより,プーリングを実施).
    • 4つのプーリング後特徴マップを,それぞれ 1 x 1 畳み込み層により,元の$D$チャンネルから$D/4$チャンネルへと次元削減 (3.2節). 
    • 「拡張特徴マップ」の作成: 4特徴マップをアップサンプリングし,元の特徴マップの空間サイズに揃える.
    • 元の特徴マップの後ろのチャンネルに,4つの特徴マップを結合し,拡張特徴マップを生成.
  3. 畳み込み層で,画素ごとにクラス識別 :
    • 拡張特徴マップをもとに,畳み込み層で画素ごとのクラス識別を行い,出力マップを生成.

3.2 空間PPM: (空間)ピラミッドプーリングモジュール

3.1節の処理手順のうち,手順3の「空間PPM」に相当する.論文中では 「Pyramid Pooling Module(PPM)」と呼ばれている (「空間」という記述が,論文中の呼びかたには無い点に注意).

このピラミッド処理のグリッドプーリングにより,どのグリッドに,各クラスの特徴がどのくらい含まれているかを示した全域的な大まかなコンテキスト情報を,合計4解像度を追加して,画素クラス識別に使用することができる([6×6], [3×3], [2×2], [1×1]).

よって,拡張特徴マップは,以下の2つを結合した,5解像度から構成されるものとなる:

  1. 物体領域くらいの大きさなの範囲内における,詳細な特徴(ResNetによる畳み込み結果)」
  2. 各グリッドのおおまかなコンテキスト(ResNet特徴マップからプーリングして集約した,グローバルピラミッド特徴)

この2つを合成した特徴により,全域や中域のコンテキスト特徴も加味した意味分割が可能となった

4. PSPNet の学習

PSPNetの学習では,2017年当時の「よくある工夫」が2つ用いられている.この4節で,その2つを整理しておきたい

4.1 中間層における補助損失の追加

PSPNetの特徴計算バックボーンでは出力での画素ごとの「交差エントロピー和損失」に加えて,ResNetの途中の中間層においても補助損失(auxiliary loss)として交差エントロピー損失を取る.そして,2つの損失の重み付け和を用いる(論文著者によるPytorch実装,PSPNetクラスのforwardメソッドを参照):

\begin{equation} \mathcal{L} = \mathcal{L}_{\text{main}} + \alpha \mathcal{L}_{\text{aux}}
\end{equation}

補助損失も用いると,深いResNetのようなネットワークを2つの最適化に分解するでき,中間もロスを逆伝播できるので最適化を助けることができる.論文中に「InceptionNetがインスパイア元である」と明確に言及されていないのだが,これは InceptionNet v1 (GoogleNet)[Szegedy et al., 2015] の補助識別器(auxiliary classifier)と同じアイデア (同時研究)である.

InceptionNet v1 の補助識別器は,バッチ正規化の登場以前の考案であるが,ResNet-152層や,この論文で用いられているResNet-269層などのかなり深いネットワークだと,学習の高速化と安定性に効いてくるので有用である.

アブレーション実験の結果,一番性能の良かった$\alpha = 0.4$がデフォルト値として採用されている.

4.2 データ拡張

PSPNetの提案当時では,まだセグメンテーションでは用いられている研究が少なかった「データ拡張」であるが,PSPNetでは,データ拡張が汎用性向上の目的で使用されている (著者らは貢献であるとは特に主張していない).

医療画像用向けの U-Net [Ronneberger et al., 2015] ではデータ拡張は使用されていたものの,シーン画像向けの各研究 (DeepLab v1 [Chen and Papandreou et al., 2014] や SegNet [Badrinarayanan et al., 2015] など)では,まだデータ拡張は実施されていなかった

PSPNetでは,ADE20Kや,他の各データセットでのfine-tuning実施時には,全画像のランダムミラー化とランダムリサイズ(スケール0.5~2の間)を行っている.またImageNetとPascal VOCの学習では,それらに加えて,ランダムな回転(-10度~10度)とランダムなガウシアンブラーを実施している.

5. まとめ

PSPNetは,FCNの終盤に,4レベルの空間ピラミッドプーリングモジュール(PPM)を挿入した,セマンティックセグメンテーション向けのネットワークである.バックボーンCNN内の Dilated Convolutionと,空間ピラミッドプーリングで,広範囲の複数解像度コンテキストを捉えることができる.

空間ピラミッドプーリングの導入により,全域的な空間コンテキストを4レベルでグローバルプーリングした特徴を追加した「拡張特徴マップ」を出力付近で得ることができる.これにより,画像全域的な周辺コンテキストも加味した,画素ごとのクラス識別が可能となった.

おかげで,新登場したシーン画像データセットADE20Kでも,画像シーンの半分~全体ぐらいの「かなりの広い領域のコンテキスト」を使わないとうまく意味クラスを識別できない画素でも,うまくクラス識別ができるようになった.

関連書籍

References

  • [Badrinarayanan et al., 2015] V. Badrinarayanan, A. Kendall, and R. Cipolla. Segnet: A deep convolutional encoder-decoder architecture for image segmentation. arXiv:1511.00561, 2015.
  • [Chen and Papandreou et al., 2014] L. Chen, G. Papandreou, I. Kokkinos, K. Murphy, and A. L. Yuille. Semantic image segmentation with deep convolutional nets and fully connected crfs. arXiv:1412.7062, 2014.
  • [He et al., 2014] K.He, X.Zhang, S.Ren, and J.Sun. Spatial pyramid pooling in deep convolutional networks for visual recognition. In ECCV, 2014.
  • [Liu et al., 2015] W. Liu, A. Rabinovich, and A. C. Berg. Parsenet: Looking wider to see better. arXiv:1506.04579, 2015
  • [Long et al., 2015] J. Long, E. Shelhamer, and T. Darrell. Fully convolutional networks for semantic segmentation. In CVPR, 2015.
  • [Ronneberger et al., 2015] O. Ronneberger, P. Fischer, and T. Brox. U-Net: Convolutional Networks for Biomedical Image Segmentation, pages 234–241. Springer International Publishing, Cham, 2015
  • [Szegedy et al., 2015] C. Szegedy, W. Liu, Y. Jia, P. Sermanet, S. E. Reed, D. Anguelov, D. Erhan, V. Vanhoucke, and A. Rabinovich. Going deeper with convolutions. In CVPR, 2015.
  • [Yu and Koltun, 2015] F. Yu and V. Koltun. Multi-scale context aggregation by di- lated convolutions. arXiv:1511.07122, 2015.
  • [Zhao et al., 2017] Zhao, H., Shi, J., Qi, X., Wang, X., Jia, J.: Pyramid scene parsing network. In CVPR, (2017)
  • [Zhou et al., 2017] B. Zhou, H. Zhao, X. Puig, S. Fidler, A. Barriuso, and A. Torralba. Scene parsing through ADE20K dataset. In, CVPR (2017)

参照外部リンク