R-CNNとは?簡単な概要
選択的サーチやCNNによる特徴抽出から、SVM分類やNMSまで、R-CNNの仕組みと、Fast R-CNNやYOLOへの道を切り開いた経緯をご紹介します。
Abirami Vina8 分で読めます
物体検出は、画像や動画内のオブジェクトを認識し、その位置を特定するコンピュータービジョンタスクです。自動運転、監視、医用画像などに活用されます。Viola-Jones検出器や、サポートベクターマシン(SVM)と組み合わせた方向勾配ヒストグラム(HOG)など、初期の物体検出手法は、手作業で設計された特徴量とスライディングウィンドウに依存していました。こうした手法では、さまざまな形やサイズの複数のオブジェクトがある複雑なシーンで、正確な検出が難しいことがよくありました。
領域ベース畳み込みニューラルネットワーク(R-CNN)は、物体検出への取り組み方を変えました。これはコンピュータービジョンの歴史における重要な節目です。Ultralytics YOLOv8のようなモデルがどのように登場したのかを理解するには、まずR-CNNのようなモデルを理解する必要があります。
Ross Girshickとそのチームが開発したR-CNNモデルのアーキテクチャは、領域候補を生成し、事前学習済みの畳み込みニューラルネットワーク(CNN)で特徴を抽出し、オブジェクトを分類して、バウンディングボックスを調整します。難しそうに思えるかもしれませんが、この記事を読み終える頃には、R-CNNの仕組みと大きな影響を与えた理由を明確に理解できるでしょう。
R-CNNの仕組み#
R-CNNモデルの物体検出プロセスは、領域候補の生成、特徴量の抽出、物体の分類とバウンディングボックスの調整という3つの主なステップで構成されます。それぞれのステップを見ていきましょう。

図1. R-CNNの仕組み
領域候補:R-CNNの基盤#
最初のステップでは、R-CNNモデルが画像をスキャンし、多数の領域候補を作成します。領域候補とは、物体を含んでいる可能性のある領域です。Selective Searchなどの手法では、色、テクスチャ、形状といった画像のさまざまな要素を調べ、画像を複数の部分に分割します。Selective Searchはまず画像を小さな部分に分割し、次に類似する部分を結合して、より大きな関心領域を形成します。この処理を続け、約2,000個の領域候補を生成します。

図2. Selective Searchの仕組み
これらの領域候補は、物体が存在する可能性のある場所をすべて特定するのに役立ちます。次のステップでは、画像全体ではなく、これらの特定の領域に焦点を当てることで、モデルは最も関連性の高い領域を効率よく処理できます。領域候補を使用すると、網羅性と計算効率のバランスを取ることができます。
画像特徴量の抽出:詳細の把握#
R-CNNモデルの物体検出プロセスにおける次のステップは、領域候補から特徴量を抽出することです。各領域候補は、CNNが想定する一定のサイズ(たとえば224x224ピクセル)にリサイズされます。リサイズすることで、CNNは各候補を効率よく処理できます。ワープ処理の前に、各領域候補のサイズを少し拡大し、周囲の情報を含めて特徴量をより適切に抽出できるよう、領域の周りに16ピクセル分のコンテキストを追加します。
リサイズした領域候補は、通常ImageNetのような大規模データセットで事前学習されたAlexNetなどのCNNに入力されます。CNNは各領域を処理して、エッジ、テクスチャ、パターンなどの重要な詳細を捉える高次元の特徴ベクトルを抽出します。これらの特徴ベクトルは、領域から重要な情報を抽出してまとめたものです。生の画像データを、モデルが以降の分析に使用できる形式に変換します。次の段階で物体を正確に分類し、位置を特定するには、視覚情報を意味のあるデータに変換するこの処理が不可欠です。

図3. AlexNetを使用した領域候補からの特徴量抽出
物体分類:検出された物体の特定#
3つ目のステップでは、これらの領域内の物体を分類します。つまり、領域候補内に見つかった各物体のカテゴリまたはクラスを判定します。次に、抽出された特徴ベクトルを機械学習分類器に入力します。
R-CNNでは、この目的にサポートベクターマシン(SVMs)が一般的に使用されます。各SVMは特徴ベクトルを分析し、特定の領域にそのクラスの物体が含まれているかどうかを判定することで、特定の物体クラスを認識するように学習されます。つまり、物体カテゴリごとに専用の分類器があり、その物体が含まれているかどうかを各領域候補で確認します。
学習時には、分類器に正例と負例のラベル付きデータを与えます。
- 正例:対象の物体を含む領域。
- 負例:物体を含まない領域。
分類器は、これらのサンプルを区別できるように学習します。バウンディングボックス回帰では、最初に提案されたバウンディングボックスを調整し、実際の物体の境界によりよく一致させることで、検出された物体の位置とサイズをさらに精密化します。分類とバウンディングボックス回帰を組み合わせることで、R-CNNモデルは物体を特定し、正確な位置を特定できます。

図4. バウンディングボックス回帰の例。(出典:towardsdatascience.com)
全体の統合:NMSによる検出結果の精緻化#
分類とバウンディングボックス回帰の後、モデルは同じオブジェクトに対して、重なり合うバウンディングボックスを複数生成することがよくあります。こうした検出結果を調整して最も精度の高いボックスを残すために、非極大値抑制(NMS)を適用します。NMSを適用して重複または重なり合うボックスを除去し、最も信頼度の高い検出結果だけを保持します。
NMSでは、すべてのバウンディングボックスの信頼度スコア(検出された物体が実際に存在する可能性を示す)を評価し、スコアの高いボックスと大きく重複するボックスを抑制します。

図5. 非極大値抑制の例。(出典:towardsdatascience.com)
NMSの各ステップを以下に示します。
- 並べ替え: バウンディングボックスを信頼度スコアの高い順に並べ替えます。
- 選択: 最もスコアの高いボックスを選択し、それと大きく重複するすべてのボックスを、和集合に対する共通部分(IoU)に基づいて除外します。
- 反復: 次にスコアの高いボックスに対してこの処理を繰り返し、すべてのボックスを処理するまで続けます。
まとめると、R-CNNモデルは領域候補を生成し、CNNで特徴を抽出してオブジェクトを分類し、バウンディングボックス回帰で位置を調整したうえで、NMSを使って最も精度の高い検出結果だけを残します。
物体検出における画期的なモデル、R-CNN#
R-CNNは、精度と性能を大幅に向上させる新しいアプローチを導入したため、物体検出の歴史における画期的なモデルです。R-CNN以前の物体検出モデルは、速度と精度の両立に苦戦していました。領域候補を生成し、CNNで特徴を抽出するR-CNNの手法により、画像内のオブジェクトを正確に位置特定し、識別できるようになりました。
R-CNNは、Fast R-CNN、Faster R-CNN、Mask R-CNNなどのモデルへの道を開き、効率と精度をさらに高めました。ディープラーニングと領域ベースの分析を組み合わせることで、R-CNNはこの分野に新たな標準を打ち立て、さまざまな実社会のアプリケーションへの可能性を広げました。
R-CNNによる医用画像の変革#
R-CNNの興味深い活用例の1つが医用画像です。R-CNNモデルは、MRIやCTなどの医療画像で、脳腫瘍をはじめとするさまざまな種類の腫瘍の検出と分類に使われてきました。医用画像にR-CNNモデルを利用すると、診断精度が向上し、放射線科医が悪性腫瘍を早期に特定しやすくなります。小さな腫瘍や初期段階の腫瘍も検出できるR-CNNの能力は、がんなどの疾患の治療や予後に大きな違いをもたらす可能性があります。

図6. R-CNNを使った脳腫瘍の検出。
R-CNNモデルは、腫瘍検出以外の医用画像タスクにも適用できます。たとえば、骨折の特定、眼のスキャン画像における網膜疾患の検出、肺画像の分析による肺炎やCOVID-19などの疾患の検出が可能です。どのような医学的問題でも、早期検出は患者の転帰改善につながる可能性があります。異常の特定と位置特定におけるR-CNNの高い精度を活用することで、医療機関は医療診断の信頼性と速度を向上できます。物体検出によって診断プロセスが効率化されることで、患者は適切なタイミングで正確な治療計画を受けられます。
R-CNNの限界と後継モデル#
R-CNNは優れたモデルですが、計算量が多く、推論速度が遅いなどの欠点があります。そのため、R-CNNモデルはリアルタイムアプリケーションには適していません。領域候補の生成と分類を別々のステップに分けることで、処理効率が低下する可能性があります。
これまでに、こうした懸念に対処するさまざまな物体検出モデルが登場しました。Fast R-CNNは画像全体に対してCNNを1回実行し、共有特徴マップから各領域候補の特徴をプーリングすることで、処理を高速化します。Faster R-CNNはRegion Proposal Network(RPN)を導入して候補領域の生成を効率化し、Mask R-CNNはピクセルレベルのセグメンテーションを追加して、より詳細な検出を実現します。

図7. R-CNN、Fast R-CNN、Faster R-CNN、Mask R-CNNの比較
Faster R-CNNとほぼ同時期に、YOLO(You Only Look Once)シリーズがリアルタイム物体検出を発展させ始めました。YOLOモデルは、ネットワークを1回通すだけでバウンディングボックスとクラス確率を予測します。たとえば、Ultralytics YOLOv8は、高度な機能によって多くのコンピュータービジョンタスクの精度と速度を向上させます。さらに新しいUltralytics YOLO26などのモデルは、NMSを完全に排除することで、さらなる進化を遂げています。
重要なポイント#
R-CNNは、ディープラーニングが物体検出を変革できることを示し、コンピュータービジョンの転換点となりました。その成功は、この分野に多くの新しいアイデアをもたらしました。その後、Faster R-CNNやYOLOなどの新しいモデルがR-CNNの欠点に対処しましたが、R-CNNの貢献は今も記憶に残すべき大きな節目です。
研究が進むにつれ、物体検出モデルはさらに高性能かつ高速になるでしょう。こうした進歩は、機械が世界を理解する方法を改善するだけでなく、多くの業界の発展にもつながります。
AIをさらに探求しませんか?Ultralyticsのコミュニティにぜひご参加ください。GitHubリポジトリで、最新の人工知能イノベーションをご覧ください。農業や製造業など、さまざまな分野に向けたAIソリューションもご確認ください。私たちと一緒に学び、進歩していきましょう。
執筆者
コメント
質問したり、結果を共有したり、ほかの人をサポートしたりできます。










