空間ピラミッドプーリング層 (SPP-net, Spatial Pyramid Pooling) とその応用例や発展型

1. 空間ピラミッドプーリング (Spatial Pyramid Pooling)層, SPP-net とは [概要]

空間ピラミッドプーリング (Spatial Pyramid Pooling, SPP) 層とは,画像認識むけCNNの終盤層に設置して,画像特徴量マップを複数スケールで最大プーリングしたベクトルを最後に結合して出力する,2Dプーリング層である.SPP-net [He et al., 2014] [He et al., 2015] の研究において,SPP層が提案され,その後多くのCNNで使用されている.

この記事では,SPP層が,物体認識物体検出むけに最初に提案された SPP-net [He et al., 2014, 2015] の内容 (2節) を紹介する.また,その後すぐに提案された使用例・発展型(物体検出意味的分割むけ)の空間ピラミッドプーリング層も紹介する(3節).

空間ピラミッドプーリング(Spatial Pyramid Pooling) (物体検出CNNむけの例)
図1 SPP Net の 空間ピラミッドプーリング Spatial Pyramid Pooling 層物体検出CNNむけの例

空間ピラミッドプーリング層 (図1)は,特徴マップを入力とし,に複数スケールの各グリッドで最大値プーリングで集約した画像特徴(コンテキスト)ベクトル群を,1つのベクトルへと集約する層である.

図1は物体検出向けのSPP層の使用例である.Selective Searchで事前に検出した領域提案ROI内の2D空間の特徴を,3ピラミッドレべルでそれぞれ異なる広さの特徴マップを集約して,最後に1つの合体表現ベクトルとして結合して出力する (詳しくは2節).

SPP層を設置することで,画像中の対象物体や対象領域の,「複数スケール」や「複数縦横サイズ」に対応しやすくなる利点がある.これまでのCNNでは,順伝搬を始める前に,画像をクロップしたり縦横サイズをリサイズして、モデル知っているサイズ間・アスペクト比に画像編集しておく必要があったが,それらの「画像サイズ」「画像縦横比」の変化への不変性も,CNNに学習できる(モデル内に取りこめる)ようになるパラダイムシフトをおこした.

1.1 記事の構成

2節以降では,以下の構成である:

  • 2節 空間ピラミッドプーリングの元提案
    • 2.1 深層学習以前の空間ピラミッドプーリング
    • 2.2 Heの空間ピラミッドプーリング層
  • 3節 空間ピラミッドプーリングの他タスク応用と発展型
    • 3.1 PSPNetでの使用
    • 3.2 DeepLabのASPP: 膨張操作とSPPの組み合わせ
  • 4節 FPNとの比較
  • 5節 まとめ

2. 空間ピラミッドプーリング (Spatial Pyramid Pooling)の元提案:SPP-Net

2.1 深層学習以前の空間ピラミッドプーリング

深層学習以前の時代の,類似した(前身)技術である,Spatial Pyramid Matching(SPM) [Lazebnik et al., 2006] Pyramid Match Kernel(PMK) [Grauman and Darrell, 2005] が,SPP層の起源(インスパイア元)である.SPM=PMKを,微分可能層としてCNN向けにアレンジしたものが,Heらの空間ピラミッドプーリング層(2.2節)である[He et al., 2015].

以前よく使われていた Spatial Pyramid Matching (SPM) [Lazebnik et al., 2006] は,SPP層同様に,画像空間をCoarse-middle-fineの3ピラミッドレベルのグリッドに区切り,各レベルでグリッド内ごとに画像局所特徴量をプーリングしたのち,各ベクトルを1つに結合するという「Bag-of-Visual-Wordsのマルチスケール拡張プーリング」技術であった.マルチスケールに特徴ベクトルを集約するようにしたことで,シングルスケールのBag-of-Visual-Words表現よりも,表現力を向上させることができ,シーン画像認識の性能が向上した.

※ SPM・PKMについては元の論文に加えて,関連書籍にあげた各書籍のSPM・PMKの章も参考になる.

2.2 He の 空間ピラミッドプーリング層 (SPP-Net)

2.2.1 2つのタスク「物体認識・物体検出」へのSPP層の提案

He ら[He et al., 2015] はCNN向けの空間ピラミッドプーリング層SPP-Netの部品として提案した(図1). 2.1節の,深層学習以前のSPM・PKMを,画像CNN特徴マップ向けにアレンジしたプーリング層である.ピラミッドグリッド内の,各グリッド内での特徴集約方法は,古典的なSPM・PKMでは「各グリッド内の局所特徴→Bag-of-Featuresで集約」であったが,SPP層は「特徴マップ上の各グリッド→最大値プーリングで集約」に差し替えた.

例えば [He et al., 2014] では,以下の3レベルのピラミッドが,SPP層の構成例として用いられる(論文中 Figure 4):

  • [3 x 3] カーネル, stride = 4
  • [2 x 2] カーネル, stride = 6
  • [1 x 1] カーネル, stride = 13

[He et al., 2015] の研究では,以下2つのタスク向けにSPP層を使用することを提案し,実験で効果を確認したたというものであった:

  • 物体認識むけAlexNetの,終盤層向けの全域プーリングにSPP層を使用(ImageNetで実験)
  • 物体検出 R-CNN [Girshick et al., 2014] の,領域候補から2ステージ目むけ特徴マップをつくるための領域プーリングにSPP層を使用(図1の例.Pascal VOC 2007で実験).

特に(2)は,直後に出てきたFaster R-CNNの研究において,SPP層がベースライン手法とみなされ,領域プーリング層の発展型であるROI Poolingを産むことにもつながった.この意味でも,SPP層の研究は,重要であると(管理人は)考える.

2.2.2 SPP層の利点と,グローバル平均プーリングとの違い

SPP層(2.2節)の処理内容自体は,2.1節の「Bag-of-Visual-Words向け空間ピラミッドプーリング」と同じマルチスケール集約を,「CNN特徴マップで行うようにしただけ」であると比較すればすぐに理解しやすい.こう書いてしまうと,処理方法の理解が容易でこれ以上に特に説明することがない.よって,ここでは「SPP層の利点」と,「グローバル平均プーリングとの違い」の整理だけしておきたい.

CNNの終盤層部品としては,物体認識向けに提案されたグローバル平均プーリング層 [Lin et al., 2014] も存在していた.それが,物体検出意味的分割などの密な推定を行う際に「様々なスケールの物体・もしくは周辺コンテキスト」について学習する際には,多様なスケール変化も学習する必要が生じてきた.ゆえに,それを可能にできる,SPP層(PSPNet, DeepLab, Yolo v3,など)や,FPNが使用されるようになっていった (詳しくは3節).

SSP層 [He et al., 2015] は「グローバル平均プーリングのピラミッド版」であるとみなせる.それを踏まえると,SSP層には,主に次の2つの利点がある:

  1. 入力画像のサイズ自由度 (グローバル平均プーリングも持つ性質):
    • CNNの入力画像の縦横サイズを,固定サイズではなく可変サイズにできる自由度が得られる.
    • 終盤層が全結合層のCNN(例:AlexNet VGGNet)だと,全結合層の次元数に縛られた固定入力サイズにする必要が出る(※ いつもの224 x 224の入力画像など).
  2. 周辺コンテキストのマルチスケール対応 (グローバル平均プーリングにはない性質):
    • [タスク1.] ImageNet物体認識で,物体画像中の物体スケール変化に強くなる.
    • [タスク2.] 広範囲画像での密な推定でも,各位置周辺の物体・領域のコンテキストが,スケール変化しても,認識できるようになる.

1.の利点のおかげで,複数サイズの入力を許容できるようになったので,物体認識の実験では,入力サイズとして,いつもの固定サイズである224 × 224 画像に加えて,そのサイズを小さくリサイズした180 × 180画像群も入力に追加しての学習を行った (※ FCN化でも同様の「入力サイズの自由」という利点が得られる).

以上のように,CNN時代に入ってから,まだうまくCNN内の仕組みで対応できていなかった「画像のスケール・サイズ」にも対応できるようになったのが,SPP層の提案[He et al., 2014] であった.

※ これらの変化にデータ拡張による水増しだけで対応するには限界があるので,プーリングでデータコストを抑えながら対処できるようになったことは大きい.

3. 空間ピラミッドプーリングの他タスク応用と発展型

3.1 PSPNet のPPMでの使用

関連記事:PSPNet: 空間ピラミッドプーリングによるシーン分割

PSPNet [Zhao et al., 2017] は,セマンティックセグメンテーション向けに,空間ピラミッドプーリング層を内部的に用いる PPM(Pyramid Pooling Module)というモジュールを,CNNの後続に追加する提案を行った.PPMを用いることで,以前のセグメンテーション向けネットワークでは取りこぼしていた「画像中の広範囲な周囲コンテキスト」を終盤層の各グリッド位置に伝搬できるようになり,ADE20Kなどの「広くマルチスケールで周辺コンテキストを集約しておかないと誤識別しやすいシーン画像」に対しても,初めて意味的分割精度を大きく向上させられるようになった.

PSPNetで新たに提案された(Spatial)PPMは,ベクトルを出力する元のSPP層と違って,出力も特徴マップになる設計である.これにより,PPMは畳み込み層のあいまでも使用できる利点がある.He のSPP層 [He et al., 2014]」だと,並列化された最大プーリングにより固定サイズのベクトルへ変換して出力してしまうゆえ,「出力ベクトル生成」にしか用いることができなかった.

3.2 DeepLabのASPP: 膨張操作とSPPの組み合わせ

PSPNetと同様に,DeepLabシリーズでも,空間ピラミッドプーリングであるASPP (Atrous Spatial Pyramid Pooling)が提案された.

提案された ASPP (Atrous Spatial Pyramid Pooling)は,膨張畳み込みと同様に「プーリングのカーネル操作を膨張させる」ことにより,広範囲を複数スケールで膨張操作効率的にプーリングできる.PSPNetの(元のままの)SPP操作(3.1節)と比べると,ASPPは,より広範囲をより少ない層数で空間ピラミッド集約できる利点がある.

3.3 改善版SPP (YOLO v3)

YOLO v3 [Redmon and Farhadi, 2018]は,DeepLabのASPPを「物体検出に特化したかたちに,カーネルサイズ・ストライド長を変更した」ものとみなせる 改善版SPP (improved SPP) を提案した.ここでは,[Bochkovskiy et al., 2020]の,2.3節での解説をもとにした説明を書いておきたい.

YOLOv3 の改善版SPPでは,元のSPP [He et al., 2014]だとFCN形式の物体検出ネットワークに使えないことから,FCNのDenseな出力に対応させるために,特徴マップ出力できるように改善した.ストライド幅をs=1にし, k= {1, 5, 9, 13}の 4レベルピラミッドの[k × k] 最大値プーリングでSPPを実施するようパラメータs, kを変更したものが,YOLO v3の改善版SPPである.

4. まとめ

この記事では,空間ピラミッドプーリング(SPP)層(2節)と,その応用例や発展型(3節)について紹介した.SPP層を導入することで,それまでは固定サイズ画像群の学習しかできなかった「初期のCNNバックボ−ン(AlexNetVGGNet)」が,認識対象物体・領域の「サイズ変化(crop)」と「画像の縦横比変化(warp)」に対する自由度も獲得できるようになった.つまりは,初めて,画像のスケール変化や,縦横比率変化に強いCNNを設計しやすくなった

そのおかげで,物体検出(領域単位の予測タスク)や,意味的分割(密な予測タスク)むけのCNNが,SPP層登場以前は出せなかった精度を,初めて発揮するようになった.その後も,この傾向は,FCN画像Encoder-Decoderを用いたCNNにより,いっそう加速していく.

関連書籍

References

  • [Bochkovskiy et al., 2020] Alexey Bochkovskiy, Chien-Yao Wang, and Hong- Yuan Mark Liao. YOLOv4: Optimal speed and accuracy of object detection. arXiv preprint arXiv:2004.10934, 2020.
  • [Girshick et al., 2014] Girshick, R., Donahue, J., Darrell, T., & Malik, J. (2014). Rich feature hierarchies for accurate object detection and semantic segmentation. In CVPR, 2014.
  • [Grauman and Darrell, 2005] Kristen Grauman and Trevor Darrell. The pyramid match kernel: Discriminative classification with sets of image features. In ICCV, 2005.
  • [He et al., 2015] Kaiming He, Xiangyu Zhang, Shaoqing Ren, and Jian Sun. Spatial pyramid pooling in deep convolutional networks for visual recognition. TPAMI, 37(9):1904–1916, 2015.
  • [Lazebnik et al., 2006] Svetlana Lazebnik, Cordelia Schmid, and Jean Ponce. Beyond bags of features: Spatial pyramid matching for recognizing natural scene categories. In CVPR, 2006.
  • [Lin et al., 2014] M. Lin, Q. Chen, and S. Yan. Network in network. In ICLR, 2014.
  • [Zhao et al., 2017] Zhao, H., Shi, J., Qi, X., Wang, X., Jia, J.: Pyramid scene parsing network. In CVPR, (2017)

参照外部リンク