Ch.15
物体検出(Object Detection):R-CNN系とYOLOの対決(バウンディングボックスを探す)
物体検出一覧
R-CNN は候補箱を 一つずつ開ける 倉庫検品、YOLO は 担当区域ごとに同時報告 する現場点検のイメージです。
同じ写真で 「犬はどこ?」 を探すとき、R-CNN は 疑わしい領域(候補ボックス) を先にたくさん出し、一つずつ確認します。YOLO は写真を 格子 に分け、各マスが 同時に 位置と種類を報告します。最後に 重複ボックス除去 NMS(Non-Maximum Suppression、お掃除)で重なりを整理し、検出成績 mAP(mean Average Precision、総合点)でうまく見つけたか評価します。
R-CNN: 候補を選んで確認 · YOLO: 格子ごとに一括
まず「ここに何かありそう」という 点線候補 を多数出し、確認した 1つだけ 実線ボックスに残します。
R-CNN · 2-stageR-CNNまず「ここに何かありそう」という 点線候補 を多数出し、確認した 1つだけ 実線ボックスに残します。
YOLO写真を 格子 に分けると、各セル担当が 一度に 担当区域の 位置と種類 を一緒に報告します。
1枚の写真はこう処理される
- まず RGB 画像 を入れます。分類と違い、複数物体がどこにあるか まで探すのが目的です。
- CNN バックボーン が画像を 特徴マップ に変えます。この後の段階がこの特徴を読んでボックスを描きます。
- R-CNN は物体がありそうな 候補領域 を多数提案します。YOLO は画像を S×S 格子 に分割します。
- 各 候補や格子セル で 何か(クラス) と どこか(ボックス) を同時に予測します。
- 重複除去(NMS) で同じ物体の重なった箱を1つに整理し、成績(mAP) と 重なり(IoU) でどれだけ正確か評価します。
分類は「この写真に猫がいる?」と聞きます。物体検出は一歩進んで 「猫はどこ(X,Y)に、どれくらい(W,H)?」 と尋ね、バウンディングボックスを描きます。自動運転・不良検査・ロボットビジョンの中核です。
本章では分野を二分する2つの発想に出会います。疑わしい領域を先に探してから確認する 慎重な2-stage R-CNN と、画像を格子のように分け 一度だけ 見渡す 高速1-stage YOLO。設計思想の違いと、箱の質を測るわかりやすい指標を学びます。
数式の読み方(物体検出)
1. IoU — 核心の式
- 交差: 重なり
- 結合: 両方を覆う領域
2. バウンディングボックス座標 — 写真の上の四角をどう書く?
物体を囲む 四角 の位置は、よく次の2通りで書きます。
- 角の方式: 左上・右下 (x_min, y_min, x_max, y_max) — 四角の 2つの角 を指定
- 中心方式: 中心 (cx, cy) と 幅・高さ (w, h) — 中心 + 大きさ
w, h は 横・縦 の長さ。面積はだいたい w×h。
YOLO では画像や格子のサイズに合わせ 0~1 に縮めることが多いです。(例: 横が画像の半分なら 0.5)
3. NMS(Non-Maximum Suppression)— 同じ物体に箱が5つ? 1つだけ残す
1人の周りに 箱が5つ 出ると見づらい。NMS は重なった箱を片付ける お掃除 です。
1. 信頼度が高い順 に並べる
2. 1位の箱 を残す
3. 1位と 重なりすぎる 箱(IoUが閾値超)は 捨てる。残りで繰り返す
要点: 同じ物体には いちばん確かな箱1つ だけ。
4. mAP(mean Average Precision)— 検出器の成績表
mAP は どれだけうまく見つけたか の 総合点 です。
- クラスごと に PR 曲線下の AP を求める
- 全クラス APの平均 が mAP
- 予測が正解と 半分以上(IoU 0.5 以上)重なって初めて 正解
高いほど 余計な箱が少なく、 見逃しも少ない 意味です。
物体検出: R-CNN vs YOLO
1. 分類 vs 検出:「何」から「どこにある何」へ
画像分類は「この部屋に猫がいる?」物体検出は「猫はどこにいる?」写真中の複数物体に箱を描き、名前も当てる、より高度な作業です。
2. R-CNN 系 (2-stage):慎重な探偵
①「ここに何かありそう」と領域提案(RoI)を多数出す →
②各候補を詳しく見て「猫だ!箱はこの大きさ!」と決める。正確だが2段階のためやや遅い。
3. YOLO (1-stage):一目で把握する警備員
YOLOは名の通り画像を一度だけ見ます。S×S 格子に分け、各セルが同時に「私の区域に犬!」と叫び箱を描く。リアルタイム向きの圧倒的な速さ。
4. 品質の道具:IoU · NMS · mAP
- IoU: 予測と正解の箱がどれだけ重なるか(0~1)。核心は交差÷結合。詳しい式は数式ガイドへ。
- NMS(Non-Maximum Suppression): 同じ犬に箱が乱立したら、お掃除していちばん確かな1つだけ残す。
- mAP(mean Average Precision): どれだけうまく見つけ、箱を引けたかの総合成績表。
重要性
現実世界で動くAIの「目」
自動運転は歩行者・車の正確な位置がないとブレーキを踏めません。ロボットもどこを掴むか必要です。分類を超えた空間理解を与えます。
速度か精度か?用途に合わせて選ぶ
CCTV・自動運転ではYOLO(1-stage)、医療画像の微細病変ではR-CNN(2-stage)。両方の長所を知れば最適な選択ができます。
指標なしに「良い/悪い」は言えない
クラス名が合っても箱がズレれば意味がありません。IoUとmAPが客観的な証拠と改善の物差しになります。
セグメンテーションへの踏み台
箱はざっくりした外接矩形。検出をマスターすれば、ピクセル単位のセグメンテーションへ自然に伸びます。
使い方
ステップ1:データと箱座標の準備
各物体の位置をラベル化。(x_min, y_min, x_max, y_max) または (cx, cy, w, h) のどちらかに統一します。
ステップ2:用途に合うネットワーク選択
リアルタイムならYOLO系格子モデル。小さく密集した物体を高精度でならRPN付き Faster R-CNN。
ステップ3:学習 — マッチングと損失
IoUで予測と正解を対応づけ、分類誤差と回帰誤差を同時に減らします。
ステップ4:重複除去(NMS)と成績確認(mAP)
低スコアを捨て、NMS(Non-Maximum Suppression、お掃除)で重複を整理し、検証データのmAP(mean Average Precision、総合成績)で性能を確認します。
まとめ
一行要約: 物体検出は各物体の種類と箱を同時に求める技術。2-stage R-CNNと1-stage YOLOの二大流派。
要点: IoUで重なり、NMS(重複除去)で整理、mAP(総合成績)が性能の物差し。
次: 箱からセグメンテーションへ — ピクセル輪郭まで。
問題解説ノート
まずこう読んで始めましょう
- 問われている軸を先に分ける: 分類 vs 検出 / R-CNN 2-stage vs YOLO 1-stage / IoU·NMS·mAP
- 計算問題は型を固定: YOLO 格子 S×S → 総セル数 S² (例: S=7 → 7×7=49)
- IoU·和集合: 和集合 = A + B − 交差, 重なり 4×4 → 面積 16
「物体検出の目的に最も近いのは?」
① 画像全体にクラス1つ
② 各物体のボックス+クラス
③ ピクセル分割のみ
④ 学習率のみ
正解 2
なぜ? 検出は 何 + どこ を同時に求めます。分類は全体ラベル1つです。
例(O/X型)
「YOLOは常に2-stageのみを使う」
正解 0 (誤)
なぜ? YOLOは S×S 格子で1-stage 一括予測です。
例(計算型)
「YOLO 格子 S=7 の総セル数は?」 → 7×7=49
問題タイプ別の例 + 正解の理由
例(シナリオ型)
「推論後、同じ人の周りにボックスが5つ重なる。まず?」
① NMSで重複除去
② ラベルシャッフル
③ バックボーン0層
④ mAP削除
正解 1
なぜ? 重なった重複ボックスは NMS で整理します。
例(選択計算型)
「ボックスA·B 各面積32、交差16 の和集合面積は?」
正解 48 (32+32-16)
なぜ? 和集合 = A + B − 交差 の型です。
例(格子型)
「YOLO 格子 S=9 の総セル数は?」
正解 81 (9×9)
なぜ? S×S 格子は一辺のセル数を二乗します。
例(総合推論型)
「CCTVでリアルタイム推論が必要。構造は?」
① Selective Searchのみ
② 原典R-CNNのみ
③ YOLO系1-stage
④ 増強停止
正解 3
なぜ? 速度重視なら 1-stage YOLO を先に検討します。