---
title: "R-CNN / Fast R-CNN"
description: "R-CNN / Fast R-CNNについて、G検定で問われる画像認識・CNN分野の観点から、画像タスクでの役割、特徴抽出の流れ、代表モデルとの関係を整理します。暗記だけでなく、似た概念との混同を避ける見分け方や、選択肢を切るためのポイントも確認します。"
canonical_url: "https://stemtazoo.github.io/gk/rcnn-fast-rcnn/"
section: "gk"
---

## まず結論

* **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）**

これで切れます。
