1. R-CNN (Region-CNN)とは [概要]
R-CNN (Region-CNN)とは,2ステージ構成で,Coarse-to-Fineな予測を行う,2ステージ型 物体検出である [Girshick et al., 2014].
まず粗い前処理である前半ステージでは,Selective Search [Uijlings et al., 2013]による領域提案のバウンディンボックスを検出する.
後半ステージでは,各領域提案バウンディンボックス内の画像から,CNNの順伝搬で領域特徴ベクトルを抽出したのち,2モデルによる予測を実施する:
- (1) 物体クラスの識別(SVM)
- (2)領域候補バウンディンボックスの修正量(線形回帰)
これにより,各候補領域の物体クラスと修正済みバウンディンボックスが,最終的に確定し,最後にNMS(非極大値抑制)により,最終的な物体検出結果を得る.
領域提案の抽出を前処理として行ったのち,各領域候補内でのみ,CNNを使用することから「R-CNN(Region CNN)」と名付けられた.Ross Girschick (DPMの研究にも大学在籍時に参加)が所属する,Facebookの物体検出チームから,連続的に発表された「Faster R-CNN までのR-CNNシリーズ3部作(R-CNN /FastR-CNN/ Faster R-CNN)」のうち,このR-CNNは,最初の提案に相当する.
R-CNN 論文 [Girshick et al., 2014] の,Pascal VOC 2011を用いた物体画像からの物体検出実験では,当時のstate-of-the-artであったDPMの「33~34%」というmAP値を大きく上回る「58%」のmAPをたたき出し,CNNを使用することのアドバンテージを強く示した研究となった.ただし,物体検出CNNの書規定案の1つであったR-CNNは,計算がまだ非効率的で処理速度も非常に遅く(数分かかる),精度が良いものの時間がかかりすぎて,まだ実用的ではなかった.
Fast R-CNN と Faster R-CNN は,物体検出に特化した提案に変わるが,それらの前身であるR-CNNでは,Pascal VOC を使っているのもあり,「物体前景マスクのセグメンテーション(=インスタンスセグメンテーション)」についても,実験が行われた.
1.1 記事の構成
Faster R-CNNの記事では,シリーズ3部作の全体的な流れを,まとめて確認できるようにしてある.
以降この記事では,以下の構成で,R-CNNについて紹介する:
- 2節 R-CNNの全体的な構成(前後半ステージの概要)
- 3節 R-CNNの詳細 (後半ステージの詳細)
- 4節 まとめ
2. R-CNN の 全体的な構成

まず,2節ではR-CNN(図1-右側)を用いた物体検出の全体的な構成(図1)について述べる.それを元に,3節では,後半ステージで用いるR-CNNの詳細について述べる.
前後半2ステージによる処理手順をまとめると,以下のようになる:
- 前半ステージ (図1 左側):
- Selective Search を使用し,画像座標上の「領域提案(Region Proposal)」を検出.
- 領域提案は,クラス識別されていないObject候補。
- また,各領域提案のバウンディングボックス矩形の位置合わせは粗い(後半ステージでボックス位置を洗練させる).
- 検出された領域提案は,前景マスク情報も含む.
- 後半ステージ (図1 右側):
- 前半ステージの領域候補の領域画像を入力に,R-CNNによる検出処理を行う.
- 各提案領域内の画像を切り出し,CNNの入力(224×224)に合うようリサイズ.
- リサイズ画像を全結合層まで順伝搬し,特徴ベクトル(4096次元)を計算.
- 4096次元ベクトルを入力として,以下の2つの予測を,独立に行う:
- [Classification] SVMで,物体クラス識別.
- [Localization] 線形回帰により,領域候補に対するBBoxの修正量を推定
以上が,R-CNNを用いた2ステージ処理の,全体像である.
Faster R-CNNやYOLO・SSDの登場した2015年以降は,物体検出ネットワークもEnd-to-End学習することが当たり前であるが,この当時は,まだそういった知見が溜まっておらず,一部のみCNNで領域内の特徴ベクトルを計算する戦略であった.これは,旧来手法の「BBox内のHOG特徴を用いて,SVMで検出」という構成から,特徴計算部分だけCNNにとりあえず差し替えてみたという風にみなすことができる.
また,R-CNN時点では,識別・回帰をCNN内で行わっていないわけだが,DPM [Felzenszwalb et al., 2008],[Felzenszwalb et al., 2010]よりも検出精度がかなり高くなった意味で,R-CNNでも十分に新規性は確保できたとも言える.
3. R-CNN の詳細
3節では,後半ステージのR-CNN(図1-右半分)の詳細について述べる.
3.1 再パラメータ化したBBox修正量の回帰

各領域提案において,領域提案内で計算したCNN特徴ベクトルを入力に,領域提案の中心位置$(x,y)$・サイズ$(w,h)$の,正解BBoxへの修正量(オフセット)を,線形回帰モデルへ学習することが提案された(図3).
領域提案BBoxの中心位置・サイズを$\bm{p} = (p_x,p_y,p_w,p_h)$で表す.また,物体クラス$k$の正解領域BBoxの中心位置・サイズを$\bm{g} = (g_x, g_y, g_w, g_h)$で表す.
これらの間の修正量を$(d_x(\bm{p}),d_y(\bm{p}),d_w(\bm{p}),d_y(\bm{p}))$と定義し,修正量を$\bm{p}$を入力とした線形回帰 $d_{\star}(p)$ を学習しておいて,それを予測することを,著者らは考えた:
\[
\tilde{g_x} = p_x d_x(\bm{p}) + p_x\\
\tilde{g_y} = p_x d_y(\bm{p}) + p_y\\
\tilde{g_w} = p_w \exp (d_w(\bm{p}))\\
\tilde{g_h} = p_h \exp (d_h(\bm{p}))
\]
しかし,上記の$\bm{g}$では,線形回帰の学習上都合が悪い.
そこで,再パラメータ化された修正量$\bm{t}=(t_x, t_y, t_w, t_h)$を代わりに回帰することを提案した(図2):
\[
t_x = (g_x – p_x)/p_w\\
t_y = (g_y – p_y)/p_h\\
t_w = \log (g_w/p_w)\\
t_h = \log (g_h/p_h)
\]
この再パラメータ化された$\bm{t}$を,R-CNNでは線形回帰モデルに学習する.
3.2 R-CNN の予測と学習
R-CNNでは「 物体クラスのSVM識別 + BBoxの線形回帰」の2タスクを,それぞれ個別の識別モデルに学習する(※ Fast R-CNN以降は,複数ヘッド構成のCNNに,識別と回帰をいっしょくたにマルチタスク学習する).
R-CNNは,入力の候補領域内のCNN特徴ベクトル(AlexNetの全結合層ベクトル)を入力として,以下の2モデルにそれぞれ物体クラスとBBox修正量を学習する:
- クラス識別用のSVM: 「物体 or 背景」を,N個の物体クラスごとに,2値SVMへ学習 (Pascal VOC 2010の場合,N = 20クラス).
- 線形回帰:物体クラスごとに,領域候補の修正量$\bm{t}$を,線形回帰モデルに学習.
テスト時は,これら2つの学習済みモデルを,それぞれ独立に実行することで,領域提案のBBoxごとに,検出を行う.
前半ステージのSelective Searchは前景セグメンテーションも出力するので,後半ステージ出力後は,物体前景マスク領域の結果も予測され,R-CNNの研究では Pascal VOC 2011でのセグメンテーション精度も従来手法と比較している.(※ Fast R-CNN と Faster R-CNNでは,前景セグメンテーション問題は無視される).
しかし,このチームはその後,インスタンスセグメンテーションの Mask R-CNN において,物体前景マスク領域の予測も復活させて,同時学習を提案することとなる.
3.3 R-CNN の意義と課題
Pascal VOC 2010に対して,CNN以前の最高性能手法であった DPM [Felzenszwalb et al., 2010] やRegionlets [Wang et al., 2013] を,mAPで10%以上更新する大幅な性能向上を達成した.
こうして,CNNで高精度物体検出を達成できる可能性を示したものの,最初のR-CNNには以下のような欠点があり,実用レベルにはまだ遠かった[Girshick et al., 2014]:
- 学習が3ステージに分離している:
- 領域提案からCNNをfine-tuneして特徴抽出CNNを学習.そのCNN特徴から,クラス識別SVMと,bbox線形回帰をそれぞれ学習する.よって,各モデル間に一貫性はない.
- 学習速度が遅い:
- 1画像につき2000個くらいの領域候補が出る.従って,2000回/画像もCNNを順伝搬する必要があり,膨大に学習時間がかかる.
- テスト速度が遅い:
- 1枚の画像を処理するのに47秒もかかるので,実用的に到底使えない.
そこで,著者らは高速化版として次にFast R-CNNを提案する.
4. まとめ
「Faster R-CNN までの3部作(R-CNN /FastR-CNN/ Faster R-CNN)」の1つめに相当する,R-CNN(Region CNN)について,この記事では紹介した.
端対端学習を行うのが,現代の物体検出ネットワークでは当たり前であるが,R-CNNはディープラーニング流行初期(2014年)の提案であり,まだその段階に業界的に達していなかった.よって,当時の非CNN物体検出手法の処理構成に沿ったかたちで,まずは「領域提案候補内の特徴を抽出する領域CNN」という発想のもとに,前段にSelective Searchが置かれた2ステージ型の構成が提案された.
CNN以前の最先端であったDPMと比べて,一気に精度は向上したものの,ナイーヴな計算効率・処理速度面に大きく問題があった.そこで,処理速度面を解決する,効率化研究を同じチームが行った結果,Fast R-CNN, Faster R-CNN がすぐに提案されることとなる.
関連書籍
- 画像認識 (機械学習プロフェッショナルシリーズ),原田達也,講談社,2017.
- 7.6.1 R-CNN (p214)
- 7.6.3 Faster R-CNN (p 218)
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.
- [Felzenszwalb et al., 2008] P. Felzenszwalb, D. McAllester, and D. Ramanan. A discriminatively trained, multiscale, deformable part model. In CVPR, 2008.
- [Felzenszwalb et al., 2010] P. Felzenszwalb, R. Girshick, D. McAllester, and D. Ramanan. Object detection with discriminatively trained part based models. TPAMI, 2010.
- [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.
- [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.