R-CNN(Regions with CNN features)は、画像内の特定領域を切り出して物体検出を行う初期の深層学習モデルです。領域提案手法で物体の候補領域を抽出し、畳み込みニューラルネットワークで特徴抽出を行って分類します。現代の高速な検出技術の基盤となった重要な手法です。
R-CNNとは
R-CNNは、画像内に写っている複数の物体の「位置」と「種類」を同時に特定する物体検出タスクにおいて、深層学習を本格的に適用してブレイクスルーをもたらした先駆的なモデルです。
詳しく解説
従来の物体検出は手作りの特徴量に依存していましたが、R-CNNは深層学習の表現力を活かして大幅な精度向上を達成しました。処理の手順は主に3段階に分かれます。まず、Selective Searchなどのアルゴリズムを用いて画像内から物体が存在しそうな領域の候補(領域提案)を約2000個抽出します。次に、各候補領域を固定サイズに変形した上で畳み込みニューラルネットワークに入力し、高次元の特徴ベクトルを抽出します。最後に、抽出された特徴をもとにサポートベクターマシンを用いてクラス分類を行い、同時にバウンディングボックスのずれを回帰計算によって微修正します。このアプローチにより検出精度が飛躍的に向上し、後続の検出モデル開発の礎となりました。
具体例・使われ方
例えば、自動運転のカメラ画像から歩行者や標識を検出するシステムや、防犯カメラ映像から不審物や車両を自動で見つけ出す監視システム、医療画像から病変の候補領域を特定する診断支援技術の初期研究などで活用されました。
似た用語との違い
後継モデルであるFast R-CNNやFaster R-CNNとの違いは処理効率にあります。R-CNNは1枚の画像につき約2000回のCNN計算を個別に行うため非常に低速でした。これに対し、Fast R-CNNは画像全体に1回だけCNNを適用して特徴マップを共有することで高速化し、Faster R-CNNは領域提案自体もネットワーク内部で自動生成するように改良されています。
注意点
R-CNNは1枚の画像を処理するのに数秒から数十秒を要するため、リアルタイム処理には適していません。また、領域提案、特徴抽出、サポートベクターマシンによる分類、位置の微調整が別々に学習される多段階パイプラインであるため、学習や運用の管理が複雑になるという限界があります。