論文一覧に戻る 📚 用語集トップ 🗺 概念マップ
📚 用語解説
📚 用語解説
物体検出
Object Detection
画像認識

🔖 キーワード索引

物体検出Object Detection画像認識

本ページは 物体検出(Object Detection)を多角的に解説します。 上のチップは、 検索・関連語の手がかりです。

💡 30秒で分かる結論

📍 文脈 — どこで使う概念か

物体検出(Object Detection)は、 画像認識の中核タスクの 1 つ。 単純な「画像分類」(猫か犬か)より一段難しく、 「画像のどこに何があるか」を答えます。 自動運転(周辺車両・歩行者)、 監視カメラ、 製造業の品質検査など 産業応用が極めて多い領域です。

🎨 直感で掴む — 具体例で理解する

画像認識タスクの階層:

タスク出力
画像分類1 つのラベル「この画像は猫」
物体検出複数のボックス + ラベル「(100,50,200,150) に猫、 (300,100,400,300) に犬」
セマンティックセグメンテーションピクセル単位のラベル「このピクセル群が猫」
インスタンスセグメンテーションピクセル + 個体ID「猫1、 猫2 を区別」

物体検出は「いくつあるか分からない物体を検出」する必要があり、 アルゴリズム設計が複雑。 主流は 1 段階検出器(YOLO, SSD)と 2 段階検出器(Faster R-CNN)に分かれます。

📐 定義・数式

【IoU(Intersection over Union)】
$$\mathrm{IoU} = \frac{|A \cap B|}{|A \cup B|}$$
予測ボックス $A$ と正解ボックス $B$ の重なり率。 0〜1 の値。 IoU > 0.5 で「正解」と判定するのが慣例
【mAP(mean Average Precision)】
$$\mathrm{mAP} = \frac{1}{C} \sum_{c=1}^{C} \mathrm{AP}_c$$
クラス $c$ ごとの AP(Precision-Recall 曲線下面積)を平均した総合指標

🔬 記号・要素の読み解き

バウンディングボックス
(x, y, w, h) または (x1, y1, x2, y2) で物体を矩形で囲む
クラス
物体のカテゴリ(人、 車、 犬 など)
信頼度(confidence)
「この検出が正しい確率」
IoU
重なり率。 マッチング判定に使う
NMS(Non-Max Suppression)
重複検出を 1 つに統合する後処理
mAP
全クラスの総合精度

🧮 数値例・実値計算

YOLOv5 等の代表モデルの性能比較(COCO データセット):

モデルmAP速度 (FPS)パラメータ数
YOLOv5s37.41407.2M
YOLOv5x50.73287M
Faster R-CNN42.0541M
DETR44.91041M
YOLOv8x53.94068M

速度と精度はトレードオフ。 リアルタイム用途(自動運転)は YOLO 系、 精度重視は R-CNN 系。

🐍 Python 実装例

最小コードで動かしてみる例:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
from ultralytics import YOLO

# 事前学習済み YOLOv8 で物体検出
model = YOLO('yolov8n.pt')

# 画像で推論
results = model('image.jpg')

# 検出結果(バウンディングボックス + クラス + 信頼度)
for r in results:
    print(r.boxes.xyxy)  # 座標
    print(r.boxes.cls)   # クラスID
    print(r.boxes.conf)  # 信頼度

⚠️ よくある落とし穴

❌ 小さい物体の検出
高解像度画像での小物体は見逃しやすい。 マルチスケール検出や FPN を使う。
❌ クラス不均衡
「人」が大量、 「飛行機」が少しのデータだと学習が偏る。 Focal Loss や重み付け。
❌ アノテーションの質
境界ボックスの定義が人間でも揺れる。 アノテーションガイドラインを厳密に。
❌ 照明・角度変化
学習データと違う環境では性能が落ちる。 データ増強で頑健化。
❌ リアルタイム性
車両等の用途では遅延が致命的。 速度 vs 精度のバランスを慎重に。