檢驗回測:在上線前證明它有效

瞭解一項檢驗是否有效的預設做法是先安裝再觀察。這是一個代價高昂的實驗,因為被測試的物件正是缺陷是否會流入客戶手中,而只有當它真的發生了,你才知道答案。
回測就是這種替代方案。先收集一批真實狀態已知的影象,離線對每一張執行完整配方,在該工位對任何一個真實零件進行把關之前,就得到漏檢和過殺的數量。這並不是什麼新穎的想法,車間裡其他任何量具在被信任之前都要經歷這個過程,沒有理由讓 AI 檢驗例外。
回測實際做的是什麼
其原理簡單到可以用一句話說清楚:取一批採集影象,標註每一張的真實狀態,對全部影象執行實際使用的配方,然後把配方的判定結果與標註進行比較。
有兩個細節決定了這是一次真正的測試還是一場演示。第一點是,它執行的是完整的 whole 配方,包括每一個模型和每一條規則,而不是孤立地測試單個模型。工位通常在接合處出問題:兩個各自表現正常的模型,配上一條把它們錯誤組合起來的判定規則。單獨測試模型永遠發現不了這種問題。
第二點是,輸出結果是一張可以點開檢視的混淆矩陣。一個告訴你出現了四次漏檢的數字只是開始。能夠開啟這四張影象,看看它們的共同點,才是讓你能夠修正根本原因,而不是不斷調整閾值直到數字好看為止。
構建一個不會討好自己的測試集
這正是大多數驗證出錯的地方,而且出錯的方向是可以預見的。如果不加約束,人們往往會收集明顯合格和明顯不合格的樣品,因為這些是容易自信地打上標籤的零件。這樣得出的數字看起來非常漂亮,但一到實際生產中就站不住腳。
納入有爭議的樣品
讓你自己的檢驗員意見不一致的那些零件,是你所擁有的最有價值的影象。真正的判定邊界就在那裡。缺少這些樣品的測試集,測的只是容易回答的問題。
覆蓋真實的變化範圍
不同的物料批次、不同的班次,接近壽命末期的工裝和全新的工裝都要包括。如果測試集只來自某一個下午,那它描述的就只是那一個下午。
以多人一致意見來標註,而不是一個人說了算
真值是一個決策,而不是一個觀察結果。如果兩位工程師對邊緣樣品的標註不一致,這種分歧就是一個規範問題,最好現在就發現,而不是等到除錯之後。
保留測試集並重複使用
只用過一次的測試集只是一次演示。每次配方變更後都要重新執行,否則你可能在調優一個數字的同時,悄悄破壞了另一個數字。能夠以檔案形式在不同相機之間傳遞的測試集,讓這一點在整個機隊範圍內變得可行。
對任何測試集都適用的一個有效檢驗:如果配方在第一次執行就得到滿分,很可能是測試集太簡單,而不是配方本身完美無缺。真正的邊緣樣品會產生一些分歧,而這些分歧恰恰才是有意思的地方。
重複性,以及品質團隊為何要求它
單次透過的準確率不等於可信度。一個工位即使平均結果正確,如果對同一個零件在不同次執行中給出不同的判定,它仍然是不可用的,因為最終處置取決於你恰好得到的那個結果。
這正是量具重複性與再現性研究所測量的內容,對於卡尺、內徑規或三座標測量機來說,這早已是常規操作。將其應用於視覺檢驗,意味著讓同一批零件多次透過檢驗並比較判定結果。當結果出現分歧時,你要麼發現了真正處於判定邊界上的邊緣樣品,要麼發現了工位本身存在的變異源:並不像大家以為的那樣穩定的光照、每次放置姿態不同的零件,或者會漂移的曝光。
這也是一個可以合理地向供應商提出的問題。要求對視覺系統做量具 R&R 研究,能很快看出對方是否曾經部署到受監管的製造環境中,還是隻會給你一個單一的準確率百分比,然後指望矇混過關。
各工位的良率能區分兩類截然不同的問題
一旦某個工位上線,最有用的視角不是整體透過率,而是按相機、產線或裝置拆分後的透過率,因為這種拆分呈現出的形態能告訴你面對的是哪一類問題。

這樣一個異常工位幾乎從來都不是模型的問題,因為所有工位執行的是同一個模型。這是一種物理層面的差異:工裝間隙更大、燈光發生偏移或被碰撞過、某個視角下零件呈現方式不同,或者該位置存在真實的工藝差異。彙總數字會把這一切完全掩蓋,而在整個機隊範圍內取平均值,正是一個壞工位能夠隱藏數月而不被發現的原因。
反過來的情況也值得一提。如果所有工位同時下滑,那就不是工裝問題,而是工藝問題或模型問題。同樣的資料,兩種截然不同的排查方向,而拆分資料正是告訴你身處哪一種情況的關鍵。
一套可以寫進規範中的驗證流程
- 確定缺陷樣本集。 雙方共同確認哪些零件屬於缺陷,包括邊緣樣品在內。這一步能避免日後產生爭議。
- 從真實生產中構建測試集, 覆蓋不同批次和班次,真值由多方一致確認後標註。
- 離線執行完整配方, 並以數量而不是準確率百分比記錄漏檢和過殺。
- 逐一檢視失敗案例。 每一次漏檢和每一次過殺都要被檢視。它們當中出現的規律才是這項工作真正的產出。
- 執行兩次, 並進行比較,讓重複性成為一個實測數字,而不是一個假設。
- 根據成本設定靈敏度, 將漏檢和過殺的數量與各自給你帶來的成本進行權衡。這是一個業務決策,而不是技術上的偏好。
- 將測試集與配方一併儲存, 並在任何變更之後作為驗收步驟重新執行,包括重新訓練之後。
這份清單中有兩點值得特別強調。它從頭到尾都沒有出現任何準確率數字,這是刻意為之,原因在我們關於 漏檢與過殺一文中已經說明。而第七步是最先失效的一步:如果重新訓練之後不重新執行測試集,就會出現三月份透過驗證的工位,到六月份卻悄悄失效的情況。
這一切其實與 AI 本身並無特別關係,這正是重點所在。這只是品質團隊一直以來對其他所有測量裝置使用的那套方法,套用到一個較新的裝置上而已。至於它在更廣泛的工位設計中處於什麼位置,我們在關於 機器視覺系統的指南中有所說明。如果您正在驗證的是一個 異常檢測工位 ,邊緣樣品的重要性甚至比平時更高,因為觸發點只是一個單一的靈敏度設定值,而不是一個透過學習得到的判定邊界。
Frequently Asked Questions
機器視覺中的回測是什麼?
回測是在離線狀態下,對一批真實狀態已知的影象執行完整的檢驗配方,並將配方的判定結果與該真值進行比較。它能在工位對任何真實生產進行把關之前,得到漏檢和過殺的數量,從而替代了在生產中才發現實際表現這種代價高昂的方式,因為生產中被測試的失效模式正是缺陷流入客戶手中。關鍵在於,它執行的是整套配方,包括每一個模型和每一條規則,因為工位通常會在各個表現正常的模型之間的接合處出現問題。
如何為視覺檢驗構建一個好的測試集?
納入你自己的檢驗員意見有分歧的邊緣樣品,因為那裡正是真正的判定邊界所在。覆蓋真實的變化範圍:不同的物料批次、不同的班次、磨損的工裝以及全新的工裝。真值應由不止一人一致確認後標註,因為對邊緣樣品的分歧本身就是一個規範問題,值得儘早暴露出來。之後要保留這個測試集,並在每次配方變更後重新執行。如果配方在第一次執行就得到滿分,很可能是測試集太簡單,而不是配方本身完美無缺。
可以對 AI 視覺系統執行量具 R&R 研究嗎?
可以,而且這是一個合理的要求。實際操作中,這意味著讓同一批零件多次透過檢驗並比較判定結果。出現分歧時,要麼說明這些確實是處於判定邊界上的邊緣樣品,要麼說明工位本身存在變異源,例如並不像假設的那樣穩定的光照、零件放置姿態不一致,或曝光發生漂移。量具重複性對於卡尺和三座標測量機來說早已是常規操作,自動化檢驗也不應例外。
為什麼要看各工位的良率而不是整體良率?
因為拆分資料呈現出的形態能告訴你面對的是哪一類問題。如果某個工位在執行相同模型的情況下明顯低於其他工位,幾乎可以肯定是物理原因:工裝間隙、發生偏移的燈光,或者某個視角下零件呈現方式不同。如果所有工位同時下滑,那就是工藝問題或模型問題。這是兩種完全不同的排查方向,而彙總數字會掩蓋這種區別,這正是一個壞工位能夠隱藏數月而不被發現的原因。
測試集應該多久重新執行一次?
在配方發生任何變更之後都要重新執行,包括重新訓練之後。在實際操作中,這一步是最先被忽略、最先失效的一步,跳過它正是某個工位在某個月透過驗證、卻在幾個月後悄悄失效的原因。把重新執行當作一道驗收關口,並將測試集的版本與配方一併做版本管理,才能讓驗證始終有意義,而不是除錯階段的一次性動作。
驗證規範中應該包含準確率目標嗎?
不應該。準確率在很大程度上取決於測試集中恰好有多少好件和壞件,因此它可能看起來很漂亮卻什麼都沒抓到,而且它把兩種成本截然不同的錯誤混在一起取平均。應當明確規定:在雙方認可的缺陷集上的漏檢數量、以生產量百分比表示的過殺、至少兩次執行驗證過的重複性,以及一個在任何變更後都會重新執行的留存測試集。這四項指標都可以量化、有實際意義,而且難以被人為操縱。
在您的零件上體驗 Overview AI
把您的零件或瑕疵照片寄給我們,視覺工程師會告訴您 Overview 能否檢出,大多數系統幾天內即可在產線上運行。