領域提案ネットワーク (Region Proposal Network, RPN) [Faster R-CNN]

1. Faster R-CNNの 領域提案ネットワーク(Region Proposal Network, RPN) とは【概要】

領域提案ネットワーク(RPN:Region Proposal Network)
図1 領域提案ネットワークRegion Proposal Network RPN

領域提案ネットワーク(Region Proposal Network, RPN) とは,Faster R-CNNMask R-CNN などの「アンカーあり2ステージ型物体検出ネットワーク」において,1ステージ目を担当し,物体ROI矩形の候補である領域提案(region proposal) を検出しておく「事前のスクリーニング(仕分け)」を担当する物体検出CNNである(図1).

この記事は,Faster R-CNNのうち「RPN部分」のみを説明している「Faster R-CNNの子記事」である.Faster R-CNNの全体像は,以下の親記事を参考のこと:

RPNは「Faster R-CNNMask R-CNN [He et al., 2017] 等の,1st ステージ部分に使用する物体検出CNN」である.当初はFaster R-CNNの論文で提案されたので.Faster R-CNNの物体検出 目的であったが,その後は「Mask R-CNNのような2ステージ型CNNでのインスタンスセグメンテーション人物姿勢推定」においてもRPNが活用される展開になる.

1.1 RPNによる「候補物体の検出」とは?

R-CNN(Region CNN)
図2 R CNN
Fast-R-CNNの構造
図3 Fast R CNN
Faster R-CNNの構造
図4 Faster R CNN

Faster R-CNNの前身2手法「R-CNN (図2)とFast R-CNN (図3)」では,non-deep learaningな任意物体候補検出手法「Selective Search [Uijlings et al., 2013]」を,前段の候補検出部分に用いていた.

それに対して,「Fast R-CNN候補検出部分を,初めてCNN化できたもの」が,領域提案ネットワーク(もといFaster R-CNN) である.Faster R-CNN のRPN (図4 左:前半ステージ)では.VGGFeature Pyramid Networks などのCNNバックボーンに学習しておいた「領域候補(region proposal)のROI矩形」を検出する.

また,この直前の時期に古典的な物体検出の手法から拡張するかたちで,non-deep learaning提案・研究されはじめていた「Nクラスの物体どれも1つの検出モデルで検出しよう」という「Objectness 検出器 [Cheng et al., 2014など]」ともRPNは同じ概念・目的であると,俯瞰できる.

Faster R-CNN や,Mask R-CNNなどのRPNが検出する領域提案のROI群は,(COCOデータセットOpen Imagesなどの)物体検出データセット中のNクラス物体を全ての学習したものとなる. 

2. 領域提案ネットワークの詳細

2節ではRPNの処理の詳細 (図5)と,そこで重要なアンカーボックスについて見ていく.

2.1節では,Faster R-CNNのRPNで(1stステージのCNN化に伴い)導入された,「アンカーボックスを用いた(マルチスケール)検出」の処理手順・目的をみる.次に2.2節では「RPNの学習に用いる損失関数の中身を見る」ことを行ない,それにより「(1.1節で述べたように )RPNは事前スクリーニングのための任意物体検出ネットワークを学習していること」を確認してもらう.

2.1 アンカーボックスを用いた,効率のよいマルチスケール検出

RPNでは「アンカーボックス群を用いた,効率的なマルチスケール検出」が導入された (図1 中央部と右側).RPNでは,(元画像よりは)大きな幅でスライドでスライディングウィンドウしていき,特徴マップ上の各アンカー点の位置で,「$k = 9$個の窓スケール×アスペクト比」でプーリングした特徴をもとに,物体検出する.(以下のアンカーボックスの記事でも書いているように),このアンカーボックスの導入により, 少ない回数でマルチスケール検出を行ない,そのあと回帰ヘッドでROI矩形を微調整することが可能となる.

2.1.1 RPNによる,入力画像からの候補検出手順

領域提案ネットワーク(図1)では,(Faster-CNNなどの1ステージ目として)以下の手順で処理を行う:

RPNの処理手順

  • まずは入力画像を,VGGFeature Pyramid Networks などのCNNバックボーンを用いて,畳み込んでいき「特徴マップ」を作成.(図1 左側)
  • その特徴マップ上で,$3 \times 3$セルの窓で,スライディングウィンドウを行う(図1 左上)
    • 各アンカー位置において,$k$種類のアンカーボックス (図1 右側)内の特徴をプーリングした特徴から,それぞれ以下のヘッドで「物体候補= 領域提案」を推定 (図1 中央):
      1. アンカーボックス内に「物体が有る or 物体が無い」の2クラス識別.
      2. アンカーボックスから領域提案への,位置$(x,y)$・サイズ$(w,h)$の修正量を回帰.

元のFaster R-CNN の論文[Ren et al., 2015] では,入力画像の3スケール(128 x 128, 256 x 256, 512 x 512)3アスペクト比(w+hの値をそれぞれ 1:1, 1:2, 2:1に分配したもの)の組み合わせの合計 $k = 9$個のアンカーボックスを,スライディングウィンドウ処理用に用意していた (図1 右側).

この結果,各スライディングウィンドウ窓の位置に対して,$(2+k)$チャンネルのマップが出力され,それらをもとにNMS処理をおこなった後,最終的な(2ndステージ向けの)領域候補(region proposal)が確定する.

2.1.2 アンカーボックス導入の利点

アンカーボックスの導入は,領域提案ネットワーク(RPN)に,以下の長所をもたらした:

  1. 効率・高速化
    • 「セル窓(3 x 3)上の特徴から,$k$個分の特徴をいっぺんに1ヘッドで出力する設計にした.
    • これにより,特徴抽出層が$k$ボックス分共有されており,処理が効率化されている.
  2. 物体サイズ多様性への対応
    • 各窓位置において,スケール・アスペクト比が異なる物体同士を,複数個検出できる.
  3. 物体内,物体間遮蔽への対応
    • 領域提案のアンカーボックスを回帰させて修正,また,複数クラス間での見え方の関係性を学習できる.
    • よって,「馬に乗った人」のような別クラス間での遮蔽と,「上半身しか写っていない人」のようなインスタンス内の遮蔽(※ VOC 2007で言う「truncatedラベル」) ,の双方に強いモデルを学習できる(元論文 Figure 1 右の,検出例画像などを参照).

各[3 x 3] 窓内のアンカーk個検出処理する際に(図1 左側),その [3 x 3] x C の特徴マップ入力に対して,Fast R-CNN [Girshick, 2015] のように「クラス識別 + bbox回帰」で物体検出の評価を行うネットワーク(図1中央)を設計したい.ここで(ROI Poolingと同様に)ROI矩形中心点の「アンカー点 (図1 のROI/アンカー矩形内の中心赤点)」の位置を,「①入力画像の空間座標系」と「②CNN特徴マップの空間座標系」のあいだで対応付けしておく.そして,入力画像における「領域提案のスケール and アスペクト比」の事前分布としてアンカーボックス $k = 9$種類を用意する.

これにより,「特徴マップ上をスライディングウィンドウ中に,最小限の回数のみしか検出ヘッド処理(図1, 真ん中)をしないで済む」計算効率化のメリットがうまれ, 後処理の2ndステージでも,1stステージのRPNが検出した「(クラスは未確定の)物体」の領域提案ROI矩形のみを相手にすればよくなる.

その窓位置のROI内の特徴マップをもとに「(1)その領域候補物体が,アンカーボックス内に存在するかどうかのObjectness識別」と「(2)アンカーボックスに対しての,正解の領域提案領域のBBox修正量回帰」を推定することを行う(図1).

2.2 RPNの損失関数

RPNは,Fast R-CNN (親記事Faster R-CNN: 2.1節) の方式と同じ,以下の合成損失関数で学習する:

\[ \mathcal{L}_{RPN} (\{p_i\},\{\bm{t}_i\}) = \frac{1}{N_{cls}}\mathcal{L}_{cls}(\tilde{p_i},p_i) + \lambda \frac{1}{N_{reg}} \sum_i \tilde{p_i} \mathcal{L}_{reg} (\tilde{\bm{t}_i},\bm{t}_i) \tag{3.1}\]

ここで,各変数は以下の変数を指している:

  • $i$: バッチ内のアンカーボックスのインデックス.
  • $p_i$: $i$番目アンカーボックスの物体らしさ(Objectness)確率 [1: 物体, 0: 背景]の正解値.
  • $\tilde{p_i}$: $p_i$の予測値.
  • $\bm{t}_i$: $i$番目アンカーボックスの修正量$(t_x,t_y,t_w,t_h)$の正解ベクトル (2.1節).
  • $\tilde{\bm{t}_i}$: アンカーボックスの修正量の予測ベクトル.

1.1で述べた通りだが,「物体クラス (1) or 非物体 クラス(0)」の領域候補のスクリーニングを担当するのが領域提案ネットワークであるので,「学習データのNクラス全てをいっしょくたにした,物体らしさ(Objectness)クラス」を,[1: 物体, 0: 背景]のラベルに用いる.

また,RPNでは,(2.1節で述べた通りに)1つの正解物体領域に対して,[スケール数×アスペクト比] 個のアンカーボックスが紐づけされており,それら全(/アスペクト比の)アンカーボックス損失の合計」を計算する.

式(3.1)では,回帰ロス側$\mathcal{L}_{reg}$の損失関数としてsmooth L1 損失を用いる.$\mathcal{L}_{reg}$を物体らしさスコア$\tilde{p_i}$で重み付けしているので,ポジティブクラスにラベル付けされた「正解bbox」に対応するアンカー($\tilde{p_i} = 1$)にしか,損失を加えないようになっている.

References.

  • [Cheng et al., 2014] Cheng, M. M., Zhang, Z., Lin, W. Y., & Torr, P. (2014). BING: Binarized normed gradients for objectness estimation at 300fps. In CVPR 2014.
  • [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.
  • [Girshick, 2015] Girshick, R. Fast r-cnn. In ICCV, 2015.
  • [He et al., 2014] He K., Zhang X., Ren, S., and Sun, J. Spatial pyramid pooling in deep convolutional networks for visual recognition. In ECCV, 2014.
  • [He et al., 2017] K. He, G. Gkioxari, P. Doll ́ar, R. B. Girshick, Mask r-cnn, In ICCV, 2017.
  • [Ren et al., 2015] Ren, S., He, K., Girshick, R., & Sun, J. (2015). Faster R-CNN: towards real-time object detection with region proposal networks. In NIPS, 2015.
  • [Uijlings et al., 2013] Uijlings, J. R., Van De Sande, K. E., Gevers, T., and Smeulders, A. W. Selective search for object recognition. International journal of computer vision, 104(2), 154–171.
  • [Wang et al., 2013] X.Wang, M.Yang, S.Zhu, and Y.Lin. Regionlets for generic object detection. In ICCV, 2013.
  • [Wu et al., 2020] Wu, X., Sahoo, D., & Hoi, S. C. (2020). Recent advances in deep learning for object detection. Neurocomputing, 396, 39-64.