R-CNNの名前の由来と物体検出の仕組みを初心者向けに解説

こんにちは。ゆうせいです。

画像認識の技術は、写真全体に何が写っているかを判定する画像分類から、写真のどこに何が存在するかを特定する物体検出へと発展してきました。その物体検出の基礎を築いた代表的な手法のひとつがR-CNNです。今回は、R-CNNという名称の由来や、物体を検出する仕組み、実用上の長所と短所について解説します。

R-CNNという名称の由来

R-CNNは、Regions with Convolutional Neural Network Featuresの頭文字を組み合わせた名称です。

日本語では、畳み込みニューラルネットワークの特徴量を備えた領域と説明されます。画像の中から対象物が存在すると思われる領域を候補として切り出し、その領域ごとに畳み込みニューラルネットワーク(CNN)を適用して分析を行う設計から、この名称がつけられました。

従来の検出手法との違いを比喩で理解する

R-CNNの処理の流れを理解するために、本の中から目的の図やイラストを探す作業を例に考えてみます。

従来の手法は、虫眼鏡を使って1ページ目の左上から右下まで、用紙全体を均等なマス目ですき間なく確認していくような方法をとっていました。画面全体を細かい枠で何度も走査するため、背景しかない場所も含めて膨大な回数の確認作業が発生していました。

これに対してR-CNNは、まず目次や挿絵がありそうなページの余白にざっと目を通し、絵が写っていそうな領域だけを2000箇所ほど付箋で印をつけて抜き出します。その抜き出した付箋の枠内だけを専門の鑑定人(CNN)に渡し、枠内に何が描かれているかを判定させます。大まかな候補領域を先に切り出してから詳しく識別するという分担作業を行う点が特徴です。

R-CNNの検出プロセスと処理の流れ

R-CNNは、物体を検出するために複数の独立した処理工程を順番に実行します。

1. 領域候補の抽出

入力された画像から、Selective Searchと呼ばれる既存のアルゴリズムを用いて、物体が存在しそうな領域候補を約2000個抽出します。この段階ではニューラルネットワークは使用せず、色やテクスチャの似た領域をまとめる処理を行います。

2. 領域の変形と特徴抽出

抽出された各領域は縦横の比率や大きさが異なるため、すべて同じ固定サイズ(通常は227×227画素)に変形します。変形した各領域画像をCNNに入力し、画像の特徴を数値化した固定長のベクトル(4096次元)を抽出します。

3. クラス分類と位置調整

抽出された特徴ベクトルをもとに、サポートベクターマシン(SVM)と呼ばれる分類器を用いて、領域内に存在する物体の種類を判定します。同時に、物体の境界線を囲む枠の位置を微調整するための回帰計算を行い、枠の座標のずれを補正します。

領域候補の矩形枠の座標を補正する回帰モデルの数式

\hat{G}_{x} = P_{w} d_{x}(P) + P_{x}

\hat{G}_{y} = P_{h} d_{y}(P) + P_{y}

\hat{G}_{w} = P_{w} \exp(d_{w}(P))

\hat{G}_{h} = P_{h} \exp(d_{h}(P))

数式内の P は抽出された候補枠の中心座標や幅・高さを表し、d(P) はCNNの特徴量から算出された補正量を表します。算出された補正量を掛け合わせることで、物体の正確な位置を表す枠 G の予測値を求めます。

R-CNNのメリット

R-CNNを採用することによって確認されている具体的な長所は、以下の項目が挙げられます。

  • 検出精度の向上:それまで主流だった手作業で設計した特徴量を用いる手法に比べ、CNNで自動獲得した深い特徴量を活用することで物体の識別精度が大幅に改善されました。
  • 柔軟な物体検出:画像分類用に事前学習させたCNNのパラメータを物体検出向けに再調整(ファインチューニング)して流用できるため、様々な物体カテゴリに対して高い認識能力を発揮します。
  • 検出位置の正確さ:枠の補正を行う専用の回帰処理を組み込んだことで、候補枠のずれを縮小し、対象物を正確に囲むことが可能になりました。

R-CNNのデメリット

一方で、初期のR-CNNには計算効率の面でいくつかの短所が存在します。

  • 処理速度の遅さ:1枚の画像につき約2000個の領域候補を切り出し、そのすべてに対して独立してCNNの計算を実行するため、画像1枚あたりの推論処理に数十秒単位の時間を要します。
  • 多大な記憶容量の消費:学習時には領域候補ごとの特徴ベクトルを一度ストレージへ保存してSVMを学習させる必要があり、数百ギガバイト規模のディスク容量を消費します。
  • 学習プロセスの複雑さ:領域抽出、CNNの特徴抽出、SVMによる分類、枠座標の回帰がそれぞれ独立したモジュールとして分かれており、端から端までを一括して最適化する学習(エンドツーエンド学習)ができません。

まとめと次の学習ステップ

R-CNNは、領域候補(Regions)をあらかじめ切り出し、その領域に対して畳み込みニューラルネットワーク(CNN)の特徴量を適用する設計に由来して命名されました。高精度な物体検出を実現した一方で、計算時間や学習工程の複雑さに改善の余地を残していました。

R-CNNの理解を深めるための学習ステップは以下の通りです。

  1. 畳み込みニューラルネットワーク(CNN)の基本構造と画像分類の仕組みを復習する。
  2. 特徴マップを画像全体で1回だけ計算するように改良されたFast R-CNNの構造を学ぶ。
  3. 領域候補の抽出自体もニューラルネットワークに統合したFaster R-CNNの仕組みを把握する。
  4. 候補領域を使わずに画像全体から直接位置と種類を同時に予測するYOLOやSSDといった単一検出器の仕組みへと比較対象を広げる。

段階的に改良の歴史を追うことで、現在自動運転や監視カメラなどで用いられている高速な物体検出技術の仕組みについても理解しやすくなります。

セイ・コンサルティング・グループでは新人エンジニア研修のアシスタント講師を募集しています。

投稿者プロフィール

山崎講師
山崎講師代表取締役
セイ・コンサルティング・グループ株式会社代表取締役。
岐阜県出身。
海外放浪の末、2000年創業、2004年会社設立。
IT企業向け人材育成研修歴業界歴20年以上。
すべての無駄を省いた費用対効果の高い「筋肉質」な研修を提供します!
この記事に間違い等ありましたらぜひお知らせください。

学生時代は趣味と実益を兼ねてリゾートバイトにいそしむ。長野県白馬村に始まり、志賀高原でのスキーインストラクター、沖縄石垣島、北海道トマム。高じてオーストラリアのゴールドコーストでツアーガイドなど。現在は野菜作りにはまっている。