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

1 PSPNet の概要

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

短く言うと,FCN [Long et al., 2015] のセグメンテーションネットワークの終盤層に,空間ピラミッドプーリング(SPP)を追加したものが,PSPNetである.バックボーン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]などで,広範囲な全域コンテキスト(global)を追加情報として取り入れようという発想は登場し始めていたが,PSPnetは,多重解像度複数スケールの特徴もコンテキストとして使用できる空間ピラミッドプーリングを基にした手法を提案する.

3 PSPNet の構造

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

PSPNet の構造
図2 PSPNet の構造

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

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

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

3.2 空間ピラミッドプーリング

3.1 の手順のうち,手順2,3の,空間ピラミッドプーリングに当たる.論文中ではPyramid Pooling Moduleと呼ばれている.

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

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

4. PSPNet の学習

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

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

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

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

補助損失も用いると,深いResNetのようなネットワークを2つの最適化に分解するでき,中間もロスを逆伝播できるので最適化を助けることができる.

論文中には「GoogleNetがインスパイア元である」と明確な言及がされていないが,これは GoogleNet/Inception v1 [Szegedy et al., 2015] の補助識別器(auxiliary classifier)と同じアイデアである.GoogleNetの補助識別器は,バッチ正規化の登場以前の考案であるが,ResNet152層や,この論文で用いられているResNet269層などのかなり深いネットワークだと,学習の高速化と安定性に効いてくるので有用である.

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

4.2 データ拡張

当時はまだセグメンテーションネットワークでは用いられている論文が少なかった「データ拡張」が,汎用性向上の目的で実施されている (著者らは特に貢献であると主張していない).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 のまとめ

PSPNetは,FCNの終盤に,4レベル空間ピラミッドプーリングを挿入したセグメンテーションネットワークである.

バックボーン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)

参照外部リンク

関連記事