大きな画面での利用をおすすめします — アニメーションと操作がより快適になります。
入力

物体検出

物体検出は各予測インスタンスにクラス、スコア、境界ボックスを出します。同じクラスでも場所は異なります。スコアのフィルタは弱い候補を除き、非最大値抑制は重複らしい枠を除きます。スコア閾値を上げると候補を多く拒否しますが、重なり閾値を上げると重複を多く許容します。

枠は「ここに猫がいそうだ」という付箋です。二枚が同じ猫を指すなら一枚を除けますが、別の猫の唯一の付箋を除くと見逃しです。枠を消しても写真の猫は消えません。

出力と後処理

分類器は一画像や切り出しにクラスのスコアを出し、検出器は各個体の位置も出して、レコード数は可変です。二つの cat が二匹を正しく指す場合もあり、クラス名だけでは重複と判断できません。

本課は Torchvision の SSDLite320、MobileNetV3 バックボーン、COCO 重みの一回の予測記録です。320×320 RGB を受け、特徴、クラススコア、枠のオフセットを求め、矩形へ復号します。学習が特徴・種類・位置の関係を作り、その後の閾値変更は再学習ではありません。モデル説明を参照してください。

枠は対角 (x1,y1)、(x2,y2) で、1280×853 元画像の画素座標へ戻しています。x は右、y は下へ増えます。矩形は動物の輪郭ではなく、輪郭の予測は領域分割です。

スコアのフィルタ

候補は閾値より厳密に大きいスコアで通過します。0.50 なら 0.33 は拒否、0.98 は通過です。元スコアや座標は変えず、資格だけを変えます。似た複数枠が高分になるため、スコアは正しさ、一意性、位置精度を保証しません。

IoU

IoU = 共通面積 / (A の面積 + B の面積 − 共通面積)

共通分を引いて二重計上を防ぎます。離れた枠は 0、同一枠は 1。別の物体でも枠は重なり、IoU は矩形の重なりであって個体識別ではありません。

貪欲な非最大値抑制

NMS は保留中の最高スコアを残し、それと同クラスで IoU が閾値を超える低スコア候補を抑制し、残る最高候補で繰り返します。保留は未決定、抑制は出力から除外です。ハード NMS は既存枠を選び、座標平均や形の融合をしません。Torchvision NMSと同じ比較規則です。

スコア閾値を上げると高スコアを要求し、IoU 閾値を上げると抑制により大きな重なりを要求します。方向を取り違えないでください。

ステップ実行

写真には並ぶ二匹の猫がいます。NMS 前の スコア 0.20 超の全 31 前景候補を記録しています。0.20 は記録範囲の下限で、検出一般の限界ではありません。既定はスコア 0.50、IoU 0.50。別名は同じ元予測を指し続けます。

候補クラススコア場所
Acat99.3%右の猫
Bcat98.6%左の猫
Ccat97.8%A とほぼ同じ右猫の枠
Ubench33.1%弱いモデル予測
  1. A の記録:元座標は約 (639.2,161.4) から (1200.8,731.5)。99.3% は別の項目で、猫の 99.3% を覆うという測定ではありません。
  2. スコア選別:31 中 17 が通過。U は拒否されても A、B、C は通り、重複は残ります。
  3. A を残して C と比較:共通面積約 317,207 px²、和集合約 325,699 px²、IoU ≈ 0.9739 > 0.50。同じ cat なので C を抑制し、A の座標は変えません。
  4. A と B:IoU ≈ 0.0402 は 0.50 を超えず、B は保留です。まだ次の保持候補に選ばれたわけではありません。
  5. A の残る比較:さらに八候補を抑制します。次に B が保留中の最高となり、保持して周囲の六候補を抑制します。反復場面はまとめても、各除外は計算され理由を持ちます。
  6. 結果:異なる位置の同クラス A、B の二件です。NMS の 15 除外と、先のスコアによる 14 拒否は別に数えます。
  7. スコアだけ 0.99 へ:B の 98.6% は通らず一枠になりますが、猫は二匹のままです。
  8. スコアを 0.50 へ戻し、IoU だけ 0.90:A、B、P の三枠です。P は右猫の重複です。最後は既定の二枠に戻し、両比較も保持します。モデルは変わっていません。

閾値と診断

スコア閾値IoU 閾値出力意味
0.500.50A、B各猫に一枠
0.990.50AB がスコア不足で一匹を見逃す
0.500.90A、B、P重なり許容を緩めて重複が残る
0.500.00A少しでも同クラスで重なると抑制し B を失う
0.300.50A、B、U弱い bench 予測も残る
1.000.50なし1 を厳密に超えるスコアはない

一画像での測定で、配備推奨値ではありません。代表的なラベル付き画像で見逃しと誤検出の費用を比べ、一項目ずつ変えます。近い別物体の枠も重なるため強い抑制は誤除外し、重複でも IoU が低ければ残ります。

欠けた枠はまず選別前の候補を見ます。低スコアならスコア閾値、通過後に高スコア同クラスへ抑制されたなら NMS です。スコアを下げても、既に通過して NMS で消えた枠は救えません。どちらもモデルが出さなかった枠を作れません。

重複なら対の IoU を調べます。IoU 閾値を下げるとその対を抑制しやすくなっても、隣の物体も失いえます。「Too much suppression」の 0.00 は A/B の小さな重なりで B を除きます。

後処理の費用

n 候補のスコア選別は O(n)、ソートは O(n log n)、素朴な貪欲 NMS は最悪 O(n²)、作業リストは O(n) 空間です。ネットワーク推論は別費用です。本プレイヤーは最大 31 候補で、実際はさらに多くなりえます。

境界ケース

  • 空出力:物体がない証拠ではありません。閾値変更は既存記録の生存だけを変えます。
  • 閾値と同じ:同じスコアは拒否し、同じ IoU は抑制しません。両方とも厳密比較です。
  • 異なるクラス:クラス別 NMS は跨クラス重複を抑制せず、同じ領域に矛盾するラベルを残す場合があります。
  • 同一枠:同クラスで IoU 閾値が 1 未満なら低スコアを除きます。閾値 1 では完全同一も残ります。
  • 同点:本課は元 ID で順序を決めます。他の実装や装置では違う選択になりえます。
  • 最大密度:スコア 0.20、IoU 1.00 では全 31 を残します。表は活動候補付近の最大六行、または最終先頭六行と範囲・総数を示しますが、計算は全候補を使います。

よくある間違い

  • 枠数を物体数と数える。一匹に複数枠、別の一匹にゼロもあり、ラベルと照合します。
  • クラスのスコアを位置精度と読む。高分でも位置は不完全になりえます。
  • 同じクラスだから全部まとめて除く。二匹には二レコードが必要で、同類は比較条件にすぎません。
  • NMS が角を修正したり A と C を平均すると期待する。ハード NMS は既存予測を選びます。
  • 全検出器が同じ重複除去処理を使うと思う。ここでは SSDLite とクラス別貪欲 NMS です。

モデルの範囲と出典

一写真、一学習済み検出器、スコア 0.20 超の記録を使います。学習、特徴の詳細、アンカー回帰、校正、追跡、領域分割、データ集合全体の評価は省略します。モデルはオフラインで実行し、ブラウザは変更していない予測へ二閾値を再計算します。反復比較は表示上まとめます。

脚を交差して座る二匹の猫は Irshath 25 作、CC0 です。生成器とメタデータは画像・モデルのハッシュと実行環境版を保ちます。画像分類と混同行列で、入力仕様、予測、正解の区別も確認できます。