Skip to the content.

G検定トップ > R-CNN / Fast R-CNN

まず結論

  • R-CNNは「2段階モデル」の出発点で、候補領域ごとにCNNで分類します(遅い)。
  • Fast R-CNNはR-CNNを高速化し、特徴量を共有してムダな計算を減らしました(それでも候補領域は別途必要)。

👉 G検定では、R-CNN系=2段階(候補領域→分類)=精度寄りとまとめて切れるのがゴールです。


直感的な説明

R-CNN(元祖)

  • まず「怪しい場所(候補領域)」を大量に集める
  • その1つ1つを切り出して、CNNに入れて判定する

🔍 例えるなら、写真の中の気になる場所を ハサミで切り抜いて、全部別々に鑑定に出す感じです。

Fast R-CNN(改善版)

  • 画像を毎回切り出すのがムダ
  • 先に画像全体から特徴を作っておいて
  • 候補領域ごとに必要な部分だけを取り出して判定する

🔍 先に「地図(特徴マップ)」を作っておき、 候補領域はその地図から必要な場所だけ参照するイメージです。


定義・仕組み

R-CNN

  • 候補領域(Region Proposal)を外部手法で生成(Selective Searchなど)
  • 候補領域ごとに

    • CNNで特徴抽出
    • 分類
    • 位置補正

👉 候補領域が多いと、CNNを何百回も回すことになりとにかく遅いのが弱点です。

Fast R-CNN

  • 画像全体をCNNに通して特徴マップを1回だけ作る
  • 候補領域ごとに RoI Pooling(領域の切り出し) を行い
  • 分類と位置補正を実施

👉 「CNNを候補領域ごとに回す」をやめたのが高速化の本質です。


いつ使う?(得意・不得意)

得意なこと(R-CNN系の共通)

  • 1段階モデルより精度が出やすい
  • 複雑な背景でも安定しやすい

苦手なこと

  • 処理が重く、リアルタイムには不向き
  • 候補領域生成に依存する(この時点がボトルネックになりやすい)

👉 速さ重視なら YOLO / SSD(1段階)。 精度寄りなら R-CNN系(2段階)


G検定ひっかけポイント

① 「R-CNNは1段階モデル」→ ❌

❌ よくある誤解:

CNNで検出するから、1段階モデルっぽい

⭕ 正しくは:

候補領域を作ってから分類するので2段階

👉 「候補領域(Region Proposal)」が出てきたら2段階で切れます。


② 「Fast R-CNNは候補領域もネットワーク内で生成する」→ ❌

❌ よくある誤解:

Fast R-CNNは候補領域生成も含めてエンドツーエンド

⭕ 正しくは:

候補領域生成はまだ外部手法(Selective Searchなど)

👉 候補領域までネットワーク内でやるのは Faster R-CNN(RPN)です。


③ 「Fast R-CNNとFaster R-CNNの違い」

  • Fast R-CNN:

    • 特徴は共有して高速化
    • でも候補領域は外部で作る
  • Faster R-CNN:

    • 候補領域を作る部分(RPN)もネットワーク内に入れた

👉 試験ではここが一番混同しやすいです。


まとめ(試験直前用)

  • R-CNNは 候補領域→CNNで分類の元祖(遅い)
  • Fast R-CNNは 特徴マップを共有して高速化
  • ただし 候補領域は外部手法のまま
  • 候補領域までネットワーク内に入れたのが Faster R-CNN(RPN)

📝 選択肢で迷ったら:

Fast=特徴共有、Faster=候補領域も内製(RPN)

これで切れます。

🔗 関連記事


🏠 G検トップに戻る