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 の構造

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

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

  1. 「特徴マップ」のエンコード: 入力画像から,Dilated convolutionを用いたResNetをエンコーダに用いて,広範囲コンテキストを収集した特徴マップ($D$チャンネル)を生成.
  2. 「空間ピラミッドプーリング」と「次元削減」: 4つのピラミッドレベルで平均プーリングを行い,特徴マップ群4つを作成する(画像全体を,それぞれ6 x 6, 3 x 3, 2 x 2, 1 x 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節で,その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レベルの空間ピラミッドプーリングを挿入した,セマンティックセグメンテーション向けのネットワークである.バックボーン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でシェアをしてくださると,管理人の記事執筆モチベーションが上がります