R&D
CENTER

モデル評価と現場運用 — 過検出・見逃し、閾値、再学習

正解率99%という数字だけでは、モデルをラインに投入できません。過検出と見逃しを分けて数え、コストに合わせて閾値を決め、運用中の変化を監視して再学習する流れを説明します。

基本4 分0 閲覧
この講座のポイント
  1. 正常を不良と判定する過検出と、不良を見逃す見逃しは、コストが異なります。両者を別々に数える必要があります。
  2. 閾値は、正解率を最大にする値ではなく、見逃しを許容範囲内に収めたうえで過検出を減らす値として決めます。
  3. 評価データは、学習や閾値の調整に使っていない別のセットでなければ、数字を信頼できません。
  4. 運用中はスコア分布の変化(ドリフト)を監視し、現場での判定を再学習に取り込むサイクルをつくります。

混同行列 — 4つのマスに分けて数える

実際は正常 実際は不良
モデル: OK 正解 見逃し(不良の流出)
モデル: NG 過検出(正常品の廃棄・再検査) 正解

不良率1%のラインで、すべての部品をOKと判定する「モデル」の正解率は99%です。しかし、不良は1つも検出できません。そのため、正解率だけでなく、以下の指標を合わせて確認します。

  • 再現率(Recall) — 実際の不良のうち、モデルが検出できた割合。見逃しが少ないほど高くなります。
  • 適合率(Precision) — モデルがNGと判定したもののうち、本当に不良だった割合。過検出が少ないほど高くなります。
  • F1 — 再現率と適合率の調和平均。両者のバランスを1つの数値で見たいときに使います。

閾値はコストで決める

正常部品のスコア 不良部品のスコア threshold 見逃し 過検出 01
2つの分布が重なる区間で閾値を左に動かすと、見逃しが減り、過検出が増えます。重なりそのものをなくすのは、閾値ではなく画像とモデルの役割です。

多くの現場では、**見逃し1件のコストは過検出1件よりはるかに大きくなります。**不良が顧客に渡るとクレームやリコールにつながりますが、過検出は再検査のコストで済みます。そのため、手順は次のようになります。

  1. 許容できる見逃し率を先に決めます。例: 0件。
  2. その条件を満たす閾値のうち、過検出が最も少ない値を選びます。
  3. 過検出が多すぎる場合は、閾値ではなく、画像(照明・位置合わせ)とモデルを改善します。

F1が最も高くなる点を自動で探す機能(RoboVision)は良い出発点になりますが、最終的な値はこのコスト基準で調整します。判断の確信が持てない区間は、二重閾値の Gray として人に引き継ぎます。

データを3つに分ける

  • 学習セット — モデルが学習するデータ。
  • 検証セット — アルゴリズムや閾値を選ぶときに参照するデータ。
  • 評価セット — 最後に一度だけ性能を確認するデータ。

閾値を評価セットを見ながら合わせると、その数字は実際より良く出てしまいます。また、同じ部品を複数の角度で撮影した画像が、学習と評価に分かれて入ってはいけません。モデルが「見たことのある部品」を再び当てることになるためです。

ラインへの投入

  • 速度 — 判定はラインのタクトタイム内に終わる必要があります。画像1枚の推論時間だけでなく、撮影・前処理・結果送信まで合計した時間を測ります。
  • 最適化フォーマット — 学習したモデルを ONNX や TensorRT に変換すると、同じGPUで推論が速くなります。Physical AI Platform(PaaS)の Model Hub が変換とデプロイを管理します。
  • 結果の記録 — 判定、スコア、画像パスをCSVで残し、fineAi Dash に集約すると、時間帯・ライン・不良タイプ別の傾向、SPC、パレート図を確認できます。

運用中の変化 — ドリフト

ラインは常に変化します。照明が経年劣化し、原材料のロットが変わり、カメラがわずかにずれます。すると、正常部品のスコア分布が少しずつ右へ移動し、ある日突然、過検出が増えます。PaaS は、スコア分布が学習時とどれだけ変わったかを PSI(Population Stability Index) で計算し、警告します。過検出が多発する前に原因を探せます。

再学習のサイクル

  1. 現場のオペレーターが、NGと Gray の画像に実際の判定を付けます。
  2. 判定を付けた画像がデータセットに蓄積されます。
  3. 定期的に再学習し、評価セットで以前のモデルより良くなっているかを確認します。
  4. 改善していれば、OTA で現場の装置に配信します。

このサイクルが回れば、モデルはラインとともに成長します。逆にサイクルがなければ、リリース日の性能が最高点になります。