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. 動機: 「広範囲コンテキストの不足」による誤識別

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

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

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

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

3. PSPNet の構造

3.1 ネットワーク構造と大まかな処理手順

PSPNet の構造
図2 PSPNet の構造<br>

PSPNetの構造は,FCNの終盤層に,4レベルの空間ピラミッドプーリング層を利用した「ピラミッドプーリングモジュール(PPM, Pyramid Pooling Module)」を挿入した設計である (図2).図2左半分の,「特徴マップから,拡張特徴マップをつくる部分」が,PPMである.

ResNet with 膨張畳み込みで計算した特徴マップを,最後にPPMを用いてマルチスケール集約を行う

※ PSPNetの論文中では,DeepLab v1にならって膨張畳み込みを採用したと書いてある.

また,PPM内では,空間ピラミッドプーリング後に,1 x 1 畳み込み層を用いてチャンネル方向の次元削減を行う.これにより,クラス識別計算の負荷を下げてから,最後の畳み込み層で画素ごとのクラス識別を行うことができる.

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

3.2 PSPNet の処理手順

PSPNetの処理手順を,以下で更に詳しく述べておく:

  1. 特徴マップのResNetによるエンコード :
    • 膨張畳み込みを用いたResNetをエンコーダに,入力画像を順伝搬させる
    • これにより,まずは広範囲コンテキストを収集した特徴マップ($D$チャンネル)を生成.
  2. PPM (図2左半分:空間ピラミッドプーリング→チャンネル方向に次元削減→アップサンプリングしたのち合成):
    • 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. 畳み込み層で画素ごとにDenseなクラス識別 :
    • 拡張特徴マップをもとに,畳み込み層で画素ごとのクラス識別を実施
    • 最終的な出力マップが獲得.

途中の,拡張特徴マップは,以下の2つを結合した「5解像度」で構成される:

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

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

4. PSPNet の学習

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

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 v1 (GoogleNet)の補助識別器(auxiliary classifier)[Szegedy et al., 2015]と同じアイデアである(ほぼ同時研究ではある).

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

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

4.2 PSPNetでのデータ拡張

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

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

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

5. まとめ

PSPNetは,FCNの終盤に,4レベルの空間ピラミッドプーリングモジュール(PPM)を挿入した,セマンティックセグメンテーション向けのネットワークである.バックボーンCNN内の 膨張畳み込み層と,空間ピラミッドプーリング層の連携により,PSPNetは,密な推定の各出力画素において,それぞれ広範囲かつ複数スケールのコンテキストを考慮した識別が可能となった.

そのおかげで,当時に新登場したシーン画像データセット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)

参照外部リンク