漏檢與過殺:如何誠實地衡量一套視覺系統

Inspection station HMI showing total inspections, passed and failed counts, and live yield percentage

每一份視覺方案都會給出一個準確率數字,而這個數字幾乎總是沒有意義。在良率為 98% 的產線上,一套完全不檢測、直接放行每一個零件的系統也能得到 98% 的準確率。它什麼都沒檢測出來。這個數字是真實的,但毫無意義。

早在有人把神經網路搬進工廠車間之前幾十年,品質工程就已經解決了這個術語問題。真正重要的兩個詞是漏檢和過殺,而它們對應的成本完全不同。

兩類錯誤,以及為何它們並不對稱

Escape

系統判定為合格,但零件實際有缺陷。這個缺陷會流出工廠。代價是保修索賠、客戶投訴、停線通知,甚至召回。這種代價沒有上限,而且往往幾周之後才浮現,還會牽連到公司的信譽。

Overkill

系統判定為不合格,但零件本身是好的。你要報廢或返工一個本可以出貨的零件。代價就是這個零件加上處理成本,當場支付,而且完全發生在自家工廠之內。

兩者都是錯誤,但不是同一種錯誤。剎車部件上的漏檢和塑膠卡扣上的過殺,兩者的代價相差好幾個數量級,而任何單一的準確率數字都會把這種差異徹底抹平。這正是這兩個術語存在的全部意義。

這也是為什麼檢測工位的靈敏度設定是一項業務決策,而不是技術決策。調高靈敏度會用過殺換取更少的漏檢,調低靈敏度則反過來。沒有哪種設定能同時消除兩者,正確的設定取決於兩者各自給你帶來多大成本,這應該由質量部門和財務部門共同商定,而不是由操作滑鼠的人來決定。

用數字說明準確率為何具有誤導性

以一條生產 10,000 件零件、實際缺陷率為 2% 的產線為例,即 200 件次品和 9,800 件良品。兩套系統:

SystemAccuracyEscapesOverkill
系統 A:全部放行98.0%2000
B: catches 190 of 20097.6%10230

系統 A 的準確率分數更高,卻毫無價值。系統 B 在頭條數字上看起來更差,但正是你想要的那套系統,因為它把 190 起潛在的客戶投訴轉化成了 230 件報廢零件。這筆交易是否划算,是一道可以實際計算的算術題:190 次漏檢成本對比 230 次零件報廢成本。準確率無法提出這個問題,更別說回答它。

值得索要的四個數字

如果你正在評估一套檢測系統,以下是應當堅持索要的資料,而且這四項都應該來自你自己的零件,而不是產品資料表。

1. 在已知不良品集合上的漏檢數量

拿一批你已知是次品的零件跑一遍系統,數一數系統放行了多少件。不是在混合樣本上算一個百分比,而是在缺陷樣本上算一個具體數量。這就是最終會出現在客戶投訴裡的那個數字。

2. 在已知良品集合上的過殺數量

拿一批你已知是良品的零件跑一遍系統,包括你自己的質檢員都會爭論不休的那些邊緣樣品,數一數假陽性的拒收數量。如果只用完美無瑕的樣本測試,得出的數字在正式生產第一天就會崩潰。

3. 重複性,理想情況下是量具 R&R

把同一批零件再跑一遍。系統給出的結果一致嗎?一個工位即使平均判定正確,但對同一零件的判定前後不一致,就無法用於決定處置方式。而重複性正是你的品質團隊已經在對車間裡其他每一臺量具進行的測量。

4. 良率,按工位細分

在實際生產中的透過率,按產線或裝置分組統計。如果某一個工位的透過率明顯偏低,通常說明的是工藝問題或夾具問題,而不是模型的問題。

第三項特別值得強調,因為它是最常被忽略的一項。重複性與再現性分析對卡尺或三座標測量機(CMM)來說是標準做法,自動化檢測沒有理由被排除在外。向供應商索要其視覺系統的量具 R&R 資料是一個合理的要求,而對方的回答能很好地說明他們此前是否曾在受監管的製造行業中部署過系統。

OV80i HMI reporting 204,321 total inspections, 191,332 passed, 12,989 failed, and 93.64 percent yield alongside per-class blob statistics
工位實時報告:204,321 次檢測,12,989 次不合格,良率 93.64%,並附有各類別統計資料。正是這類累計資料,才能幫助你區分出是模型的問題還是工藝的問題。

在正式上線之前測量,而不是之後

傳統的做法是把檢測系統直接投入生產,看它到底管不管用。這是一個代價高昂的實驗,因為你要驗證的失效模式,正是缺陷流到客戶手中。

另一種做法是回測:收集一批帶有已知真值的影象,離線對每一張影象執行完整的檢測流程(recipe),在工位真正開始判定實際零件之前,先得到漏檢和過殺的數量。在 OV80i 上,這項回測直接在相機本體上執行,並且完全用漏檢和過殺這套術語來報告,而不是假陽性和假陰性,還附帶一個可以點選檢視具體是哪些影象出錯的混淆矩陣。

有兩個細節決定了一次回測是真的有幫助,還是隻在自我安慰。第一,測試集必須包含邊緣樣品,因為一套全是明顯合格品和明顯不良品的測試集,得出的數字在實際生產中根本無法重現。第二,測試集必須保留下來,並在每次修改檢測流程後重新跑一遍,否則你可能在最佳化一個數字的同時,悄悄破壞了另一個數字。測試集能夠以檔案形式在不同相機之間遷移,正是讓這套做法在整個機隊規模上可行的關鍵。

一份合格的方案應該是什麼樣子

一份有實際意義的檢測工位規格書大致應該是這樣的,注意它完全不包含準確率這個數字。

  1. 在雙方約定的 N 件缺陷樣品集合上,漏檢數為零,其中包括雙方共同確認的邊緣樣品。
  2. 過殺率低於雙方約定的生產佔比,因為正是這個數字決定了操作員是否會一直讓這臺工位保持開啟。
  3. 在同一批零件上至少執行兩次,並證明其重複性。
  4. 測試集要保留下來,與檢測流程一起進行版本管理,並且在任何變更之後都要作為驗收步驟重新執行。

第二點是人們最容易低估的。過殺不僅僅是一筆報廢成本,它還是好的檢測系統被繞過的根本機制:如果工位拒收了操作員肉眼就能看出沒問題的零件,這個工位就會失去信譽,不出一個月,就會有人開始直接把零件放行過去。一套操作員信任、漏檢略多一點的系統,往往會比一套操作員已經學會繞過的、更嚴格的系統表現得更好。

這一切都並非 AI 獨有的問題。同樣的道理也適用於基於規則的工具、人工質檢員,或是一把通止規,這正是重點所在:學習型模型的出現,並不需要一套全新的術語體系,需要的只是沿用品質工程早已具備的術語體系。如果你想了解這些工位是如何搭建起來的更完整背景,可以參閱我們關於 機器視覺系統 的指南,其中涵蓋了完整的圖景;而關於 異常檢測 的文章則涵蓋了那種最需要拿捏好漏檢與過殺平衡的方法。

Frequently Asked Questions

在質量檢測中,漏檢和過殺有什麼區別?

漏檢是指檢測系統放行了一個實際有缺陷的零件,於是這個缺陷流出工廠,其代價會在之後以投訴、保修索賠或召回的形式出現。過殺是指檢測系統拒收了一個實際良好的零件,於是你要報廢或返工一個本可出貨的零件,並當場在內部支付一筆較小的代價。兩者都是錯誤,但代價的量級相差好幾個數量級,這正是為什麼把兩者平均成單一準確率數字,對判斷一個工位是否合格沒有實際用處。

為什麼準確率對視覺檢測系統來說是一個不好的指標?

因為它完全由類別分佈主導。在缺陷率為 2% 的產線上,一套完全不做檢測、直接放行每個零件的系統也能拿到 98% 的準確率,卻什麼都沒檢測出來。準確率還會把漏檢和過殺平均成一個數字,儘管兩者的代價天差地別。你應該轉而索要在已知不良品集合和已知良品集合上的漏檢數量和過殺數量。

可以對 AI 視覺系統進行量具 R&R 分析嗎?

可以,而且你應當這樣做。重複性與再現性分析對車間裡任何其他測量裝置來說都是標準做法,自動化檢測不應例外。實際操作上,就是把同一批零件反覆跑幾次,再比較各次判定結果是否一致。這是一個可以合理地問任何供應商的問題,而對方的回答能說明他們是否曾在受監管的製造行業中部署過系統。

機器視覺中的回測是什麼?

回測是在一批帶有已知真值的影象上,離線執行一整套完整的檢測流程,在工位真正開始處理實際生產之前,就得出漏檢和過殺的數量。它替代了那種代價高昂的做法,即直接在生產中去發現系統的真實表現,而那種做法所驗證的失效模式正是缺陷流到客戶手中。要使這個結果真正有意義,測試集必須包含邊緣樣品,並且應當在每次修改檢測流程之後保留下來並重新執行。

如何確定檢測工位的合適靈敏度?

應該按成本來決定,而不是按個人偏好。調高靈敏度會用過殺換取更少的漏檢,調低則反過來,沒有哪種設定能同時消除兩者。先估算一次漏檢的成本和報廢一件良品的成本,然後選擇總成本最低的那個點。這就把靈敏度設定變成了一項需要質量部門和財務部門共同參與的業務決策,而不是在終端上隨手做出的技術選擇。

如果零件很便宜,過殺為什麼還重要?

因為過殺正是好的檢測系統最終被人為關閉的原因。如果一個工位拒收了操作員肉眼就能明顯看出沒問題的零件,它就會在車間裡失去信譽,不用多久就會有人繞過它,或者乾脆直接放行零件。一套操作員信任、漏檢略多一點的系統,往往會比一套操作員已經學會規避的更嚴格系統表現得更好。過殺既是一筆報廢成本,也是一項採用風險。

在您的零件上體驗 Overview AI

把您的零件或瑕疵照片寄給我們,視覺工程師會告訴您 Overview 能否檢出,大多數系統幾天內即可在產線上運行。

相關文章