1. 定義と概要
R-CNNとは、Regions with CNN features(CNNの特徴量を用いた領域検出)の略称で、Girshick氏らが2014年に発表した物体検出モデルです。物体検出とは、画像のどこに何が写っているかを四角い枠で特定する技術を指します。R-CNNの処理は、大きく3段階に分かれる構成となっています。
どの段階でどの手法を使い、何をしているのかを並べると、次のように対応しています。
| 段階 | 使う手法 | その段階でしていること |
|---|---|---|
| 第1段階 | Selective Search | 画像内から領域候補を約2,000個抽出する |
| 第2段階 | CNN | 各候補領域を一定サイズにリサイズし、個別に特徴量を抽出する |
| 第3段階 | SVM | 抽出した特徴量を入力し、物体のカテゴリを判定する |
Selective Searchとは、画像を色や質感の近さで併合しながら、物体が写っていそうな領域の候補を機械的に絞り込む手法です。ここで取り出される四角い枠が領域候補(リージョンプロポーザル。画像の中で物体が写っている可能性がある四角い領域の候補)にあたります。CNNは画像の特徴を段階的に捉える畳み込みニューラルネットワーク、SVMはサポートベクターマシンの略で、データを2つのグループに分ける境界線を引いて分類する機械学習の手法を指します。
人や車、犬といった具体的なカテゴリを、この3段階の組み合わせで見分けるのです。深層学習を物体検出に本格的に持ち込んだ手法として位置づけられています。
従来の物体検出は、HOG(画像の輪郭の向きを数値化して、人が設計した特徴量として使う従来の画像認識手法)とSVMを組み合わせた手法が主流でした。画像の様々な位置や大きさをスライディングウィンドウ(画像上の様々な位置・大きさの窓を機械的にずらしながらしらみつぶしに走査する検出方式)で走査するため、検出精度には限界がありました。
R-CNNは、Selective Search法で候補領域をあらかじめ絞り込んだうえで各候補にCNNを適用し、高次元の特徴量を抽出する構成に変えています。この改良の効果を測る舞台となったのが、物体検出の性能を比較するために使われる代表的なベンチマークデータセットPASCAL VOC2010です。
このベンチマークで当時の最良とされていたのが、SegDPM(mAP 40.4%)です。mAPとはmean Average Precisionの略で、物体検出の精度を表す代表的な指標です。値が高いほど検出が正確であることを示します。R-CNNは、候補領域の位置を補正する処理を組み合わせた構成で、これを大きく上回るmAP 53.7%を達成しています。この伸びが、物体検出研究の主流をディープラーニングベースの手法へ移す転機になりました。
2. 試験対策ポイント
まず整理しておきたいのは、Selective Search法による領域候補の抽出、候補ごとのCNN特徴抽出、SVMによる分類という3段階の処理順序と、それぞれの役割分担です。実際の処理にはこれに加えて、バウンディングボックス回帰(候補領域の位置や大きさを、物体の実際の輪郭に近づくよう微調整する処理)も組み合わされています。
一方で、R-CNNには弱点が2つあります。ひとつは、約2,000個の候補領域それぞれに対して個別にCNNの順伝播(学習済みの重みを使って入力から出力を計算する処理)を実行するため、計算量が膨大になる点です。GPUを使用しても1枚の画像の処理に数十秒を要し、VGG16(画像認識でよく使われる代表的なCNNの構造の一つ)を用いた場合は約47秒かかります。
もうひとつは、CNN、SVM、バウンディングボックス回帰をそれぞれ別々に学習させる必要があり、学習の手順が煩雑である点です。学習させる部品が3つに分かれているぶん、準備や手順の管理にも手間がかかります。
後継のFast R-CNN・Faster R-CNNは、この速度と学習手順の煩雑さという課題を、それぞれ異なるアプローチで解消しています。
2段階検出器(Two-Stage Detector)とは、候補領域を絞り込む段階と、その候補を分類する段階を分けて処理する物体検出モデルの系統を指します。R-CNNはこの系譜の起点にあたります。
3. 関連概念との比較・相違点
Fast R-CNNとの最大の違いは、CNNを実行するタイミングにあります。両者の処理の流れを観点ごとに並べると、次のように対応しています。
| 観点 | R-CNN | Fast R-CNN |
|---|---|---|
| CNNを実行する単位 | 候補領域ごとに画像を切り出して個別に実行 | 画像全体を先に1回だけ実行 |
| 特徴の取り出し方 | 切り出した画像をリサイズしてCNNに通す | 特徴マップから各候補領域に対応する部分を切り出す |
| 速度面の効果 | 候補領域の数だけCNNを繰り返す | 繰り返しの無駄が解消され大幅に高速化 |
同じ系譜のモデルでありながら、CNNをどの単位で走らせるかという一点で処理量が大きく変わるところが要になります。内部の処理構造の詳細は、Fast R-CNNを扱う別記事に譲ります。
HOG+SVMという従来手法との違いは、特徴量の作り方にあります。HOG+SVMは人手で設計した勾配方向のヒストグラム特徴量を用いるのに対し、R-CNNはCNNがデータから特徴量そのものを自動的に学習します。
あらかじめルールを決めて数値化する従来手法と、データから特徴の取り方そのものを学ぶR-CNNとでは、精度の伸びしろが大きく異なります。この違いが、検出精度の大幅な向上につながりました。
4. ビジネス・実務での活用シナリオ
研究・アカデミアの分野では、R-CNNがPASCAL VOCなどのベンチマークでHOG+SVM系の手法を大きく上回る精度を示し、以後の物体検出研究をディープラーニングベースの手法へ移す契機になりました。この結果は、人手で特徴量を設計するよりもCNNにデータから特徴量を学習させる方が精度で優れているという認識を研究者の間に広め、以後の新手法がCNNベースへ切り替わる流れを後押ししています。
医療画像解析の分野でも、病変候補領域を検出する研究へR-CNN系の枠組みを応用する取り組みが検討されるようになりました。候補領域をまず絞り込み、その後CNNで分類するという設計思想は、後続の医用画像向けモデルにも引き継がれています。画像全体を一度に見るのではなく病変らしき部分に計算資源を集中させられる点は、計算能力が限られていた初期の医療AI研究にとって現実的な選択肢になりました。
候補領域単位で処理するという発想は、物体検出だけでなくインスタンスセグメンテーション(個々の物体をピクセル単位で切り出す技術)にも発展的に受け継がれており、Mask R-CNNなどがその代表例です。物体の位置を四角い枠で示すだけでなく輪郭に沿ってピクセル単位まで切り出せるようになった点は、自動運転や画像編集のように対象物の正確な形状情報を必要とする用途への応用範囲を広げています。
5. 要点まとめ
- R-CNNは、Selective Search法による領域候補抽出、候補ごとのCNN特徴抽出、SVMによる分類という3段階のパイプラインで動作する物体検出モデルです。
- 候補領域ごとにCNNを個別に実行するため処理に時間がかかり(1枚数十秒)、CNN・SVM・バウンディングボックス回帰を別々に学習させる必要があり手順が煩雑という制約があります。
- 後継のFast R-CNNは画像全体を1回だけCNNに通す設計に変えて高速化しており、HOG+SVMという従来の手動設計特徴量に対してCNNの自動学習特徴量という違いがあります。
6. 確認問題
問1R-CNNは、Selective Search法で抽出した約2,000個の候補領域それぞれに対して個別にCNNを適用し、特徴量を抽出する。
解答・解説をみる
○ 正しい
R-CNNの処理はSelective Search法による領域候補抽出、候補ごとのCNN特徴抽出、SVMによる分類という3段階で構成されており、CNNは候補領域の数だけ繰り返し実行されます。
問2R-CNNは、画像全体を1回だけCNNに通して特徴マップを作成し、そこから各候補領域を切り出して処理するため高速に動作する。
解答・解説をみる
× 誤り
正しくは、R-CNNは候補領域ごとに個別の画像切り出しとCNNの実行を行うため、GPUを使用しても1枚の処理に数十秒を要するという説明です。画像全体を1回だけCNNに通す高速化の仕組みはFast R-CNNの特徴に当たります。
問3R-CNNは、HOG+SVMのような手動で設計した特徴量に対し、CNNがデータから特徴量を自動的に学習する構成を採用し、PASCAL VOCにおいて従来手法を上回る精度を示した。
解答・解説をみる
○ 正しい
R-CNNはPASCAL VOC2010でmAP 53.7%を達成し、当時最良とされていたSegDPM(mAP 40.4%)を大きく上回りました。この精度向上が、物体検出研究がディープラーニングベースへ転換する契機になりました。

