AI外観検査の評価:見逃し・過検出・処理量を一緒に確かめる方法

精度の数字を一つ受け取ったときに聞き返すこと、見逃し率・過検出率の分母と評価単位、不良サンプル数、処理量の測定条件、IntLearn Proの評価レポートで同じ数字を読む方法をまとめました。

AI検査を試験するとき、見逃し・過検出・処理量はどのように一緒に確認すればよいですか?

精度の数字一つでは、導入を判断できません。見逃しと過検出と処理量を、同じ試験サンプル、同じ判定基準、同じ評価単位で一緒に見て、分母とサンプル数を横に書いておく必要があります。試験を始める前に、何を1件と数えるか、どこまでを不良とみなすかから合意してください。

数字を一つだけ受け取ったら

試験の結果として「精度○○%」という数字を一つだけ受け取ったら、表に書き写す前に、次の四つを聞き返してみてください。

  • 何で割った数字ですか?
  • 画像1枚、製品1個、欠陥1個のうち、何を1件と数えましたか?
  • 不良サンプルはいくつありましたか?
  • 同じ基準で、過検出はどれくらい出ましたか?

この四つの答えがなければ、同じ試験からでもまったく違う数字が出ます。誰かが隠しているというより、違うものを数えていると気づかないまま進んでしまうために起こることです。

見逃しと過検出は、分母から

  • 指標: 見逃し; 意味: 実際の不良を良品と判定して流したもの; 計算: 見逃し率 = 見逃し数 ÷ 実際の不良数
  • 指標: 過検出; 意味: 実際の良品を不良と判定したもの; 計算: 過検出率 = 過検出数 ÷ 実際の良品数
  • 指標: 処理量; 意味: 決められた時間内に判定まで終えた数; 計算: 個別の製品は1分あたりの個数、ロール素材はライン速度(m/min)

過検出率を全検査数で割るところもあります。間違った方法ではありませんが、分母が違えば二つの結果を並べて比べることはできません。

IntLearn Proの評価画面では、同じ概念が別の名前で出てきます。正常だけを学習する異常検知(IntAnomaly)は、見逃し率をFNR(MISS)、過検出率をFPR(OVERKILL)として表示し、正常と不良をどれだけうまく分けられるかをAUROCで表示します。位置を見つける検出(IntDetection)のレポートは、適合率(見つけたとしたもののうち正しかった割合)と再現率(実際の対象のうち見つけ出した割合)を使います。再現率を1から引くと、その単位の見逃し率になります。ただし適合率は分母が「不良と判定したもの」なので、過検出率に読み替えることはできません。

何を1件と数えるか

同じ試験でも、数える単位によって数字が変わります。

  • 画像単位:撮った画像1枚ごとに判定を数えます。
  • 製品単位:1個の製品を複数枚撮ったなら、そのうち1枚でも不良と出れば、その製品を不良と数えます。
  • 欠陥単位:製品の中の欠陥を一つひとつ、見つけたかどうかで数えます。

製品1個を4方向から撮るとしましょう。良品1個の4枚のうち1枚だけが誤って不良と出たなら、画像単位では過検出1枚(4枚中)、製品単位では過検出1個です。過検出を画像単位で数えるとよく見えるのは、このためです。出荷は製品単位で決まるので、最終的な比較も製品単位で行うのが妥当で、結果表には単位を必ず一緒に書きます。

基準を動かすと、二つは逆に動きます

判定基準を厳しくすると、見逃しは減って過検出が増えます。緩くすると逆です。IntLearn Proではこの基準は、検出の確信度しきい値(Confidence Threshold)や異常検知の判定しきい値で、マニュアルに書かれたコツも簡単です。過検出が多ければ上げ、見逃しが多ければ下げます。しきい値一つで両方を同時に減らすことはできません。

どちらをより痛手と考えるかは、会社が決めます。不良1個がそのまま顧客クレームになる部品なら、過検出を受け入れて見逃しを減らします。過検出のせいでラインが何度も止まり、再検査の人員が持たないなら、反対側に振ります。IntAnomalyに「Low overkill」という学習シナリオが別にあるのも、この二つ目の状況のためです。

そのため、次のような結果表は導入の判断には使いにくいものです。見逃し率だけがあって同じ基準の過検出率がない表、過検出率はあるのに不良サンプルがいくつだったかが書かれていない表、処理時間だけがあって、その時間に撮影と排出信号まで含まれているかわからない表です。

「不良をすべて見つけた」という言葉の重み

良品だけで試験したなら、見逃し率の分母である実際の不良数は0です。このときの見逃し率は「0%」ではなく「計算できない」です。

不良サンプルをすべて見つけたとしても、サンプルが少なければ実際の見逃し率が0だとは言えません。統計で使われる「3の法則」によれば、不良n個をすべて見つけたとき、95%信頼水準での見逃し率の上限はおおよそ3 ÷ nです。

  • 見つけた不良の数(すべて検出): 30個; 95%信頼水準の見逃し率の上限(約): 10%
  • 見つけた不良の数(すべて検出): 100個; 95%信頼水準の見逃し率の上限(約): 3%
  • 見つけた不良の数(すべて検出): 300個; 95%信頼水準の見逃し率の上限(約): 1%

上の表は計算方法を示す例であり、特定の製品の性能値ではありません。根拠:Hanley JA, Lippman-Hand A, JAMA 1983;249(13):1743-1745.

不良30個で「一つも見逃さなかった」という結果は、「見逃し率は10%を超えなさそうだ」に近いものです。不良サンプルを集めにくい工程ほど、この違いを知ったうえで数字を読む必要があります。

数字を信頼できなくするミス

わざとでなくても起こります。試験を準備するときは、この五つをまず確認してください。

  • 学習に使った画像で評価すると、モデルはすでに見た答えを当てることになるので、数字がよく出ます。IntLearn Proは学習セットと検査セットを分けて持ち、マニュアルの作業前チェックリストにも「重複しないように」が入っています。
  • モデルが出した結果を、人が確認せずに正解として写してしまう場合もあります。自分自身と比べることになるので、いつも100%が出ます。正解は人が確認した値でなければなりません。
  • 正解のない画像が評価に混ざると、数字が実際より悪く見えるか、そもそも計算できなくなります。
  • 異常検知に登録した正常画像に不良が1枚でも混ざっていると、モデルはその不良を正常として学習し、同じ不良を見逃し続けます。
  • 1ロット、1色、1時間帯だけを撮った試験は、実際の生産のばらつき(ロット・色・キャビティ・時間帯・照明)を含められず、現場に入ってから過検出が増えます。

試験サンプルの良品と不良の比率は実際の生産とは違うことも、覚えておいてください。現場で過検出がいくつ出るかは、実際の生産量でもう一度計算してみる必要があります。

説明用の例:1日に10,000個を検査し、製品単位の過検出率が1%なら、1日に約100個が人の手でもう一度確認する対象になります。

過検出率は、つまるところ再検査にかかる人の時間です。見逃し率の目標を決めるときは、過検出率の目標も一緒に決めてください。

処理量は1サイクル全体で測ります

画像1枚の推論時間は、処理量の一部にすぎません。IntLearn Proの製品ページにある2.47msも、そのように読む必要があります。これはSegmentationエンジン、1024×1024画像あたり、KIPT試験での平均値であり、ラインの1サイクルにはこれに撮影、画像の転送、前処理、複数カメラの結果の統合、排出信号が加わります。

平均だけでなく、最も遅い場合を見てください。排出装置は決められた時間内に信号を受け取る必要があり、遅れた1回が不良をそのまま流してしまいます。ロール素材はライン速度(m/min)と幅で、個別の製品は1分あたりの個数で書き、二つの単位を混ぜません。試験時の画像サイズとカメラ台数が、実際の設置構成と同じかどうかも確認します。

ラインに載せたあとも数字は変わります

試験が終われば数字は固定されるように思えますが、実際にはしきい値を一度変えただけで見逃しも過検出も変わります。IntLearn Proでしきい値を変えたり再学習したりしたら、現場用のモデルファイル(.dx)を書き出し直し、検査パッケージ(.izpkg)を作り直さないと、ラインには反映されません。画面で見た数字とラインの結果が違うなら、まずこれを確認します。

判定基準を変えるときは、誰が、いつ、なぜ変えたかを残し、サンプルでもう一度確認してください。検査パッケージを書き出すときにゴールデンセットゲートを有効にしておくと、基準画像の判定がずれたパッケージは書き出されません。書き出したパッケージはデプロイレジストリがSHA-256とともに記録し、現場ごとの適用・ロールバックの履歴を残すので、ある日数字が変わったときに、その日何が変わったのかをさかのぼれます。

試験の前に合意しておく七つのこと

  • 判定単位:画像、製品、欠陥のうち何で数えるか
  • 不良の種類と限度見本:どこまでを不良とみなすか
  • 評価サンプル数:良品がいくつ、不良の種類ごとにいくつか
  • 見逃しと過検出のどちらをより減らすか、それぞれの目標
  • 処理量の測定条件:ライン速度や1分あたりの個数、カメラ台数、排出信号を含むかどうか
  • 過検出で弾かれた製品をもう一度確認する方法
  • 結果報告の形式:分母、単位、サンプル数を一緒に書く

試験に使うサンプルの選び方は、射出成形品のサンプル準備ガイドに書きました。

この記事の表と例の数字は計算方法を示すためのものであり、インテリズの製品の性能ではありません。2.47ms(Segmentationエンジン、1024×1024画像あたり、KIPT試験)だけは、製品ページに載っている外部試験の値です。試験結果も、試験したサンプルと条件での結果なので、新しい不良の種類や新しい色、照明の変化が生じたら、改めて確認する必要があります。