異常検知は「ここが正常と異なる」ことを教えてくれます。しかし、工程改善を行うには、「これは打痕で、右上にあり、今日は何個出た」という情報が必要です。欠陥の種類を分類して数える役割は、**物体検出(Object Detection)**が担います。
出力:ボックス、クラス、信頼度
- ボックス(Bounding box) — 欠陥を囲む矩形の位置とサイズ。
- クラス — 欠陥の種類。学習時に定めた名前(scratch、dent、missing など)です。
- 信頼度(Confidence) — モデルがその判断をどれだけ確信しているかを表す、0〜1の値。
IoU と NMS
モデルは、同じ欠陥に対して少しずつ異なるボックスを複数出力することがよくあります。**NMS(Non-Maximum Suppression)**は、信頼度が最も高いボックスを残し、そのボックスと大きく重なる(IoU が基準以上の)残りのボックスを削除します。Multi-Inspector の modeN_iou 設定がこの基準です。値を下げると、近接した2つの欠陥が1つに統合されることがあり、上げると、同じ欠陥が2回カウントされることがあります。
IoU は評価にも使われます。モデルのボックスと正解ボックスの IoU が基準(多くは0.5)以上であれば、「正しく見つけた」とカウントします。
クラス別の閾値
すべての欠陥が同じ重みを持つわけではありません。機能に影響する亀裂は少しでも疑わしければ検出すべきですが、外観上の小さなシミは、確実なときだけ検出すれば十分です。Multi-Inspector EB v2.3 はクラスごとに異なる信頼度閾値を使用します。閾値未満の検出も細いボックスと (<thr) 表示で画面に残し、オペレーターが境界線上の事例を確認できるようにしています。すべての検出は、CSV の YOLO_Detections 項目に記録されます。
YOLO と RT-DETR
- YOLO — 画像を一度だけ見て、すべてのボックスを同時に予測する方式です。高速で軽量なため、現場の推論に広く使われます。fineAi は Ultralytics YOLO 系列(v8、v11 など)を使用します。
- RT-DETR — トランスフォーマーベースのリアルタイム検出モデルです。NMS なしでボックスを直接出力する構造のため、重なった物体に有利な場合があります。
fineAi OD Workbench は、YOLO と RT-DETR 系列の28モデルを同じデータで学習し、精度と速度を並べて比較します。小さいモデルは高速で、大きいモデルは高精度なので、ラインのタクトタイムの範囲内で最も精度の高いモデルを選べば済みます。
データとラベリング
物体検出は教師あり学習のため、ラベルが品質を決めます。
- ボックスは欠陥にぴったり合わせ、同じ基準で描きます。人によってボックスの描き方が異なると、モデルもぶれます。
- クラス名と境界事例(小さなキズは scratch か、無視か)を文書で定めたうえでラベリングします。
- 欠陥のない正常画像も混ぜると、過検出が減ります。
- ラベルは COCO などの標準フォーマットで保存し、ツール間で移行できるようにします。
ボックスではなく形状が必要なとき
溶接ビードや亀裂のように細長く曲がった欠陥は、ボックスで表すと余白が多くなります。この場合は、ピクセル単位で領域を塗り分ける**セグメンテーション(segmentation)**モデルを使います。RoboVision の溶接検査は、セグメンテーションで欠陥領域を見つけた後、長さや深さといった定量値を計測し、ISO 5817 の等級ルールで判定します。
異常検知との併用
| 異常検知 | 物体検出 | |
|---|---|---|
| 学習データ | 正常のみ | 欠陥 + ラベル |
| 初見の欠陥 | ✓ 検出できる | 見逃すことがある |
| 欠陥の名前 | 教えてくれない | ✓ 教えてくれる |
| 欠陥の統計・原因分析 | 難しい | ✓ 容易 |
ラインの立ち上げ時は異常検知から始め、運用で蓄積されたNG画像にラベルを付けて物体検出を追加する流れが自然です。Multi-Inspector は、1つの部品に対して両方のモードを同時に実行します。