AOI軟體 · 2026-09-23

閾值是一條曲線,不是一個數字:語義誤報過濾跳出了什麼

同一個量綱上重疊的兩類東西,調參數分不開

返回洞察
閾值是一條曲線,不是一個數字:語義誤報過濾跳出了什麼
AI AOI 軟體系統 · DaoAI AI 視覺應用

誤報治理最常見的做法是調閾值。調了之後漏檢上來了,再調回去誤報又上來——很多產線在這兩端之間來回了幾年。這不是調得不夠仔細,是因為在單一量綱上,正常變異與真缺陷的分佈本來就是重疊的。重疊區裡沒有任何閾值能把兩者分開,這是一條曲線的性質,不是一個數字的性質。

2條判據軸
1個閾值 = 曲線上一點
5類常見正常變異

本文用到的 ACI 是「自動認知檢測」(Automated Cognitive Inspection)的縮寫—— AI AOI 的下一代提法:保留 A(自動)與 I(檢測),把 O(光學)換成 C(認知),因為判定依據是認知而不是成像方式。完整論證見從 AI AOI 到 ACI

一、誤報到底是什麼

先把詞定清楚。誤報不是「機器看錯了」,而是「模型判它異常,複核認定它正常」。這個定義把誤報的裁決權交給複核,而不是交給閾值——這一點後面很關鍵。

產線上真正付出的代價也不在報警本身,而在複核:每一次誤報都要佔用一個人幾十秒到幾分鐘。誤報率高到一定程度,複核就成了瓶頸,機器檢測的意義被抵消掉大半。

二、正常變異是什麼

把複核推翻的那些報警歸類,會發現絕大多數集中在幾類:反光與高光造成的亮斑、來料批次之間的色差與紋理差、允許公差內的位置偏移與旋轉、表面允許的輕微劃痕與汙漬、以及元件本身的合法外觀變體(同一料號不同廠家的絲印字型)。

它們的共同點是:在畫素差異這個量綱上,它們與真缺陷落在同一區間。一塊反光亮斑和一處真實缺件,與標準圖的畫素差可以是同一個數量級。

三、為什麼調閾值跳不出去

如果兩類東西在一個量綱上的分佈重疊,那麼任何一個閾值都會同時切到兩邊:抬高閾值,重疊區裡的真缺陷被放過(漏檢上升);降低閾值,重疊區裡的正常變異被報出(誤報上升)。這是一條曲線,閾值只是曲線上的一個點。

工程上常見的補救是「分割槽設閾值」——按板上區域、按元件類型各給一個數。這確實能把曲線往外推一點,因為它其實是偷偷引入了第二個變數(位置或類型)。但只要判據仍然只看畫素差異,推的幅度就有限,而維護成本隨分割槽數線性增長。

閾值只能在曲線上移動。想換一條更好的曲線,得換判據。

四、第二條判據軸

語義過濾做的事情就是加第二條軸:除了問「差了多少」,再問「這是什麼」。反光亮斑與缺件在畫素差異上或許相同,但在語義上完全不同——一個是照明與表面的互動,一個是本該存在的元件不在。

一旦有了第二條軸,原來在一維上重疊的兩團點就可能在二維上分開。分開之後,壓低誤報不再必然抬高漏檢,因為區分它們的不再是同一個參數。這是語義過濾與調閾值的根本差別,不是精度高低之差。

五、語義從哪來

語義不是憑空加的,它來自前一步的建模方式。當模型學的是「這個元件的正常形態」而不是「這張圖與標準圖的差異」時,它對偏離的描述天然帶類別資訊:是位置偏了、是表面多了東西、還是本體缺失。

所以語義過濾不是在規則層後面掛一個過濾器,而是判據從一開始就不同。掛在後面的過濾器只能看到「超閾值」這一個訊號,拿不到語義。

六、複核資料是這條路上的燃料

誤報的定義把裁決權給了複核,這意味著複核結論是最有價值的標註。一條執行中的產線每天都在產生這種標註,只是大多數時候沒被回收。

  • 把複核結論按元件類型聚合,能看出哪類元件的正常形態描述不足——這是補建模的方向。
  • 把複核結論按變異類型聚合(反光/色差/位移),能看出哪一類正常變異還沒被識別出來。
  • 把複核翻轉集中的那些件收回良品集,邊界就往外推了一點,而且是按真實分佈推的。

七、不要用同一批資料既調又驗

這條路上最容易犯的錯,是用參與過建模的那批覆核資料去驗證誤報降了多少。批改與驗收共用同一份依據時,判別力恆為零——讀數一定好看,而好看不說明任何事。

可用的做法是按時間切:用某周之前的複核結論建模,用之後的去驗;或者按線切:A 線建模,B 線驗證。兩者都保證驗收那一側的資料沒參與過訓練。

八、什麼時候規則層就夠了

不適用情形同樣要說清:

  • 正常變異很小:工藝極穩、來料單一、照明完全受控的場景裡,兩類分佈本來就幾乎不重疊,單閾值夠用。
  • 缺陷判據本身就是幾何量:比如「高度差超過 0.1 毫米即判退」,這是規格而不是外觀判斷,規則層直接給答案更可靠。
  • 誤報總量本來就低到不構成負擔:複核不是瓶頸時,治理誤報的收益有限,優先順序應該讓給別的事。

這三條命中任意一條,繼續用規則層是對的。語義過濾解的是「重疊區大」這個特定困難,它不是所有檢測問題的通解。

十、一次具體的重疊:反光亮斑與缺件

舉一個能走完的例子。某個貼片元件上方有一片金屬遮蔽罩,打光角度變化時罩子邊緣會在元件區域投下一條高亮帶。這條高亮帶與標準圖的畫素差,量下來和「元件整體缺失」處在同一個區間——因為缺件暴露出來的是空焊盤,也是高反光。

只看差異量,這兩件事分不開:把閾值抬到放過高亮帶,缺件就一起被放過;把閾值壓到抓住缺件,高亮帶天天報。產線上常見的折中是給這片區域單獨設一個更松的閾值——代價是這片區域從此對缺件不敏感,而那恰恰是最不該放過的缺陷。

加上第二條軸之後,問題變成兩個獨立的判斷:這片區域裡該有的元件在不在(形態判斷),以及這片亮度是不是照明與表面互動產生的(成因判斷)。兩個判斷都不依賴同一個閾值,所以可以同時做對。

十一、複核資料怎麼在流程上收回來

前面說複核結論是燃料,但預設的複核流程並不產生可用資料——複核員在工位上點「放行」或「判退」,理由留在他腦子裡。要把它變成燃料,流程上要加的東西不多:

  • 放行時必須選一個原因碼,而不是隻點放行。原因碼用工藝認可的一小套(反光/色差/公差內位移/允許劃痕/合法外觀變體/其它),不超過十個。
  • 選「其它」的那些單獨進一個待歸類佇列,由工藝每週看一次——這個佇列的增長速度,就是現有原因碼覆蓋不足的直接讀數。
  • 原因碼與元件類型一起落庫。只有這兩個維度同時在,才能回答「哪類元件的哪類變異沒被識別」。

這套東西的成本是複核員每次多點一下,收益是產線每天都在產出帶標註的真實資料。不做這一步,誤報治理就只能靠定期人工翻記錄,而翻記錄得到的樣本既不完整也不均勻。

九、和前兩篇的關係

三件事是同一條路線的三個側面:建模方式決定模型學的是「好長什麼樣」還是「壞長什麼樣」;判定層決定判據掛在元件上還是畫素上;語義過濾則是這兩項到位之後,自然能做而規則層做不到的那件事。缺了前兩項,語義過濾無從談起——這也是為什麼它不能作為一個獨立模組插件。

這條路線的另外兩個側面見從 AI AOI 到 ACI

建模方式那一側,見缺陷是開集,良品是閉集

常見問題

語義誤報過濾能不能作為獨立模組加在現有系統後面?

不能。掛在後面的過濾器只拿得到「超閾值」這一個訊號,沒有語義可用。語義來自建模方式——模型學的是元件的正常形態時,它對偏離的描述才自帶類別資訊。

分割槽設閾值算不算已經引入了第二條軸?

算,但很弱。它引入的是位置或元件類型這一個離散變數,判據本身仍然只看畫素差異,所以曲線只往外推了一點,而維護成本隨分割槽數增長。

怎麼證明誤報真的降了,而不是閾值被調鬆了?

看漏檢有沒有同時上升。單參數調整下兩者必然反向;如果誤報下降而漏檢持平或同降,說明換的是曲線而不是曲線上的點。驗證資料要與建模資料按時間或按產線切開。

本場景的完整方案:AI AOI 軟體系統 行業解決方案

本文由人工智慧生成。文中客戶案例為基於產品真實能力的模擬場景,成效數字為示例性質;官方標定口徑以產品頁為準。

預約 Demo / 獲取報價 檢視AI AOI 軟體系統方案