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

1. PSPNet の概要

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

PSPNetの構造を簡潔に説明すると,FCN [Long et al., 2015] のセグメンテーションネットワークの終盤層に,空間ピラミッドプーリング(SPP)を追加したものである.バックボーンCNN中の Dilated Convolution [Chen and Papandreou et al., 2014], [Yu and Koltun, 2015] と,空間ピラミッドプーリングの組み合わせにより,シーン画像の多解像度で豊富なコンテキストを捉えることができる.これにより,ADE20K dataset [Zhou et al., 2017] の複雑なシーン画像においても,高精度な分割が実施できるようになった(画像例を,論文中やプロジェクページの画像で参照する).

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

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

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

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

これらはいずれも各画素の出力特徴ベクトルにおいて,広範囲の全域的な周辺情報(コンテキスト)が不足していることから起こる話であった.

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

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では,以下の手順で処理を行う:

  1. 特徴マップのResNetによるエンコード :
    • 入力画像から,膨張畳み込み(Dilated convolution)を用いた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).

よって,拡張特徴マップは,「物体領域くらいの大きさなの範囲内における,詳細な特徴 (元のResNetによる畳み込み結果)」+「各グリッドのおおまかなコンテキスト(ResNet特徴マップからプーリングして集約した,グローバルピラミッド特徴)」の2つを結合した,5解像度から構成されるものとなる.これにより,全域や宙息のコンテキスト特徴も加味した,セグメンテーション(画素ごとのクラス識別)が可能となった

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)

参照外部リンク

SNSでシェアやブックマークを行う