物体検出の評価指標「AP」と「AR」をやさしく解説

物体検出の評価指標「AP」と「AR」をやさしく解説

YOLOX などの物体検出モデルでは、性能を見るために AP(Average Precision)と AR(Average Recall)という指標を使います。数式で表すとやや複雑ですが、本質はシンプルです。「どれくらい正しく見つけられたか」を、精度見逃しの少なさという2つの角度から測ります。

結論だけ先に:APは「当たりの質」。ARは「拾い漏らさない力」。この2つをバランス良く高めるのが理想です。

1. AP(Average Precision)= 当たりの質

APは、モデルが「見つけた」と主張した検出のうち、正解だった割合の良さを平均した指標です。誤検出(ニセモノ)をどれだけ減らせるかを見るもの、と言い換えられます。

身近なたとえ

100個「見つけた」と言って、80個が正解・20個がハズレなら、正確さは 80/100=0.8。これを条件(後述の IoU しきい値)を変えながら評価し、平均したのが AP です。

IoU(どれだけ重なっているか)

検出は「箱(バウンディングボックス)」で出ます。正解の箱と予測の箱の重なり度合いを IoU(Intersection over Union)と言い、0〜1の値です。

  • IoU=0.50:半分以上重なっていればOK(ざっくり当たり)
  • IoU=0.75:かなり正確に重なる(精密に当たり)

AP@0.50(AP50)

「IoUが0.50以上なら正解」とみなすときの精度。
ゆるめの基準。高く出やすい

AP@[0.50:0.95]

IoUを0.50〜0.95まで段階的に厳しくし、その平均をとった値。
厳しめの基準。低く出やすいが、総合力がわかる主指標。

APの目安

AP@[0.50:0.95]解釈
0.50〜1.00非常に良い(実運用でも安心しやすい)
0.30〜0.50まずまず(改善の余地あり)
0.10〜0.30粗い(誤検出が多め)
0.00〜0.10ほぼ当たっていない

2. AR(Average Recall)= 見逃さない力

ARは、実際に存在する正解(物体)のうち、どれだけ検出できたかの平均です。見逃しの少なさを見る指標です。

身近なたとえ

実際は100個あるのに、80個しか見つけられなかったら、検出率は 80/100=0.8。これを条件を変えつつ平均したのが AR です。

AP と AR の対比

観点AP(Average Precision)AR(Average Recall)
意味当たりの質(ニセモノをどれだけ抑えたか)拾い漏れの少なさ(見逃しをどれだけ防げたか)
低いとき誤検出が多い見逃しが多い
改善の方向性判定を厳しく・特徴の分離を良く・ノイズを減らす感度を上げる・解像度や小物対策・データ増強

3. 一緒に見ると「弱点」が見える

AP高い × AR低い

正確だが、見逃しが多い。
例)しきい値が厳しすぎる/小さい物体が拾えていない。

対処:入力サイズUP、小物のデータ増強、感度調整。

AP低い × AR高い

たくさん拾うが、誤検出も多い。
例)しきい値が緩すぎる/背景に似たノイズが多い。

対処:しきい値調整、難負例の追加、データのクレンジング。

両方低い

学習不足・データ不良・解像度不足などの根本問題。まずはデータ品質・アノテ整合性の見直しが優先。

4. サイズ別のAP/AR(small / medium / large)

評価では、対象の大きさ別(small/medium/large)に成績を見ることがあります。小さな物体は難易度が高いため、smallのAP/ARが低いのは珍しくありません。

  • smallが低い:入力解像度の見直し、Copy-Pasteなどのデータ増強、小物クラスの出現率UPが効きます。
  • largeが-1:検証データに大きい物体の正解が無い可能性。評価セットを再構成してください。

5. 用語を最短で

  • バウンディングボックス(BBox):物体を囲む長方形の枠。
  • IoU:予測枠と正解枠の重なりの割合(0〜1)。
  • AP50:IoU≥0.50 での精度。
  • AP@[0.50:0.95]:IoUを0.50〜0.95に変えた平均精度(主指標)。
  • AR:正解をどれだけ見逃さず拾えたかの平均。

6. どちらを重視すべき?(用途別)

用途重視理由
安全・監視(異常検知)AR見逃すと事故リスク。多少の誤検出は許容。
検品・自動選別AP誤検出がコストや不良につながる。
汎用検出・学習比較AP@[0.50:0.95]総合力をフェアに比較できる標準指標。

7. 直感イメージ(テキスト図)

[実際にある物体] 100個
          ↑  ←← 見逃さない力(Recall)
          │
[AIが検出した物体] 90個
          │
          ↓  当たりの質(Precision)
[正しく当たった検出] 80個

Precision = 80/90
Recall    = 80/100
AP = Precision を条件を変えて平均
AR = Recall を条件を変えて平均
  

※ 条件=主に IoU のしきい値や、許容する検出数など。

8. 実務での読み方・落とし穴

  • AP50だけ高い:ざっくり当たるが位置が甘い可能性。AP@[0.50:0.95]も必ず見る。
  • APは悪くないのにARが低い:感度不足。小物や遠距離に弱いかも。スケール/データ増強を検討。
  • サイズ別に偏り:評価データの分布が実運用とズレていると意思決定を誤る。現場比率で評価セットを構成。

9. 今日からできる改善の指針(短期版)

  • 入力サイズ(random_size)の上限を上げ、小物の画素数を確保。
  • Copy-Paste 等で小物クラスの出現頻度を増やす。
  • 難負例(背景に似たもの)の追加で誤検出を抑える。
  • 評価間隔を短くして(例:eval_interval=50)、早めに失敗傾向を掴む。
以上。AP=当たりの質、AR=見逃さない力。両輪で見るのが正攻法です。
©株式会社ビー・ナレッジ・デザイン

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA