異常檢測:僅使用良品樣本進行檢測

Contaminant on a moving textile web detected on a patterned surface, raw image beside the AI overlay

檢測專案停滯不前最常見的原因,與技術本身無關。而是沒有人能夠提供缺陷影象。故障每月發生一次,零件在報廢時沒有被拍照,品質團隊也無法描述下一次的缺陷,因為他們還沒有見過。

異常檢測將問題反過來看。模型不再學習缺陷的樣子,而是學習良品的樣子,並標記任何偏離良品的情況。產品的描述正是如此:僅使用良品樣本進行訓練,模型學習零件的正常外觀,並將任何偏差標記為潛在缺陷。

有監督和無監督,各用一句話說明

有監督模型學習的是有名稱的類別之間的區別。您向它展示劃痕,展示乾淨的表面,為兩者打上標籤,模型便學習到二者之間的邊界。之後它就能告訴您發現的是哪種缺陷,因為您已經告訴了它名稱。

無監督模型只學習正常狀態的樣子。它構建了良品的表徵,並衡量每個新零件與該表徵的偏離程度。它無法告訴您缺陷是劃痕而不是汙漬,因為從未有人給過它這些詞彙。它只能告訴您這個區域不屬於正常範圍。

有監督模型給您名稱

分類和分割返回一個類別:氣孔、汙染、缺料。當處理方式因缺陷而異時,例如一種需要返工而另一種需要報廢,或者當您要將結果反饋到 Pareto 圖以改進流程時,這一點就很重要。

無監督模型給您覆蓋面

它能標記出任何人都未曾預料到的失效模式,因為它從一開始就沒有清單可依。這正是它的全部價值所在,在缺陷種類確實是開放式的零件上,這一點尤為有力。

三種模型型別,以及如何選擇

異常檢測並非單一演算法。在 OV80i 上,無監督模組提供三種選擇,它們在靈敏度與速度之間、以及所需資料量之間做出權衡。產品對它們的描述十分明確:

靈敏度最高,至少需要 20 張影象

推理速度快,最擅長檢測微小異常,輸出逐畫素結果,讓您能準確看到哪個區域發生了偏差。當缺陷細微且能夠獲取二十個良品時,這是預設選擇,而這通常不是一個苛刻的要求。

在有紋理表面上表現最佳,只需少量影象

推理速度中等,尤其擅長處理有紋理或有圖案的物體,例如紡織品、編織材料、機加工表面、鑄件。在每個良品外觀都各不相同的表面上,應從這一模型開始嘗試。

速度最快,所需影象極少

最適合檢測簡單物體的有無。它不是用於處理細微表面差異的工具,而是在高速產線上進行快速有無檢測的方案,適用於答案是二選一的場景。

值得在影象數量上多停留一下。二十個良品,喝杯咖啡的功夫就夠了,算不上一個資料採集專案。異常檢測能夠改變專案週期的原因,並不是因為它比經過訓練的模型更準確,事實上往往並非如此。而是因為您所需要的資料,此刻就已經存在於產線上。

Yarn blob and tangle detection on a continuous textile web, showing the raw capture and the AI overlay marking the contaminant
連續紡織幅面上的一處紗線斑點。這裡的每一幀良品影象在視覺上都與其他良品幀不同,這正是列舉缺陷類別行不通、而學習正常狀態卻行得通的情形。

模型實際輸出的內容

有監督模型返回一個類別和一個置信度。異常模型返回的結果則不同,理解其輸出形式,正是避免靈敏度滑塊成為爭議焦點的關鍵。

Output如何使用它
異常圖在相應區域上疊加的一張熱力圖,顯示零件在何處發生了偏差。這正是操作員所檢視的內容,也是這一工具能在車間站得住腳的原因:相機會向您顯示具體位置,而不僅僅是宣佈不合格。
異常分數一個用於衡量零件整體異常程度的單一數字。作為趨勢指標很有用:某個班次內數值緩慢攀升,說明的是工藝在漂移,而不是出現了不良品。
斑點統計對偏差區域進行分組和測量,得出面積和位置資訊。這正是構建可用判定規則的基礎:並非任何偏差都算數,而是面積超過設定閾值的偏差才算數。
靈敏度和麵積限制這些引數是在訓練完成後進行調整的,而不是固定寫死在訓練過程中,因此您可以根據實際生產情況調整觸發點,而無需採集新資料或重新訓練。

最小斑點面積過濾器是該模組中最重要的設定,也是最常被忽略不調的設定。任何真實表面在各處都會存在一點偏差。如果規則是只要有偏差就判定不合格,工位就會不斷誤判良品。如果規則是偏差區域大於設定面積才判定不合格,工位就能正常執行。設定這個數值需要與品質團隊溝通,討論多大的痕跡才真正算作不合格,而這本身也是一次值得進行的溝通。

何時選擇異常檢測是正確的決定

在以下四種情況下,它顯然是更好的起點。

  1. 您沒有缺陷影象,也無法人為製造出來。 這是最常見的情況,也是大多數檢測系統始終無法建成的真實原因。
  2. 缺陷種類是開放式的。 汙染、異物和外觀損傷並非來自一份有限的清單。一個僅針對您已知的八種缺陷訓練出來的模型,從本質上就註定會漏掉第九種。
  3. 表面具有紋理或圖案。 在沒有兩個良品外觀完全相同的情況下,透過外觀來描述缺陷幾乎是不可能的,但描述正常狀態的邊界卻是可行的。
  4. 低產量或多品種混線。 如果某個零件編號每年只生產數百次,您將永遠無法為它積累出帶標籤的缺陷資料集。而二十個良品樣本,在第一批生產中就能獲取。

反過來說也同樣成立。當處理方式取決於具體是哪種缺陷時,當您需要缺陷名稱用於工藝反饋而不僅僅是一個拒收訊號時,或者當您已經擁有一份良好的標註資料集時,請使用有監督模型;在這些情況下,經過訓練的模型通常既更準確,也更容易在能力研究中站得住腳。

這兩者並非互斥。OV80i 上的一個配方可以對同一張影象執行多個模型,因此一種常見且明智的做法是:由有監督模型處理帶名稱類別的已知缺陷,同時讓無監督模型與其並行執行,作為應對一切未曾預料情況的安全網。

需要提前規劃應對的失效模式

異常檢測有一個典型的弱點,與其在實踐中發現它,不如提前把它講清楚。模型是根據您提供的良品來定義正常狀態的。如果您的二十個良品樣本沒有涵蓋全部可接受的變化範圍,那麼超出該範圍的一切都會被判定為異常。

在實際操作中,這意味著一個基於某一材料批次除錯完成的工位,在材質稍有變化時會將下一批次判為異常。這並非模型的缺陷,而是一份準確的報告,說明零件外觀確實發生了變化,而這正是您所要求的功能。解決方法是在良品集中納入真實的變化範圍:不同批次、不同班次,既包括公差帶的中間值,也包括其可接受的邊界值。

這也是為什麼重新訓練路徑對異常檢測比對有監督工作更為重要。當生產發生變化時,您需要把那些真正合格但被誤判的零件重新納入良品集。能否在生產歷史中找到這些影象並將其新增到訓練集中,且無需藉助資料科學操作,這決定了一個工位能否執行一年,還是在第三個月就被停用。我們關於 機器視覺系統 介紹了這一點在更廣泛的工位設計中所處的位置,而 照明指南 則介紹了另一半內容,因為異常模型對光照漂移的敏感程度甚至超過有監督模型:光照的變化看起來與異常零件完全一樣。

Frequently Asked Questions

沒有任何缺陷影象也能進行 AI 檢測嗎?

可以,使用無監督異常檢測即可實現。該模型僅使用良品進行訓練,學習正常外觀,並標記出偏離該外觀的區域。這是應對檢測專案中最常見障礙的標準做法,也就是缺陷很少發生、且沒有人拍攝過它。其代價在於,模型只能報告出現了異常,而無法說明具體是哪種缺陷。

異常檢測需要多少良品樣本?

這取決於模型型別。高靈敏度的逐畫素模型至少需要二十張良品影象。而針對有紋理表面或簡單有無檢測的模型只需要少量影象。更重要的一點是,良品集應涵蓋真實的可接受變化範圍,包括不同材料批次和不同班次,因為模型是根據您提供的資料來定義正常狀態的,任何您遺漏的合理變化都會被標記為異常。

有監督缺陷檢測和無監督缺陷檢測有什麼區別?

有監督模型基於每種缺陷類別的標註樣本進行訓練,返回缺陷名稱及置信度。無監督模型僅使用良品進行訓練,返回偏差分數和熱力圖,而不會指出具體缺陷名稱。當處理方式或工藝反饋取決於具體缺陷種類時,有監督模型更合適。當缺陷種類是開放式的,或者根本不存在缺陷影象時,無監督模型更合適。在同一張影象上同時執行這兩種模型,是一種常見且明智的做法。

異常檢測能在有紋理的表面上使用嗎?

有紋理和有圖案的表面是其最擅長的應用場景之一,並且有專門針對這類表面的模型型別。在編織紡織品、機加工表面或鑄件上,沒有兩個良品外觀完全相同,這使得透過外觀描述缺陷變得非常困難。而描述正常外觀的邊界則可行得多,因此在這類表面上,無監督方法往往優於經過訓練的缺陷模型。

為什麼在更換材料後,我的異常模型會將良品標記為異常?

因為它正確地報告出這些零件與訓練時使用的零件外觀不同。模型是根據所提供的良品樣本來定義正常狀態的,因此外觀略有不同的新材料批次就落在了這個定義之外。解決方法是在良品集中納入真實的可接受變化範圍,並建立一條簡便的途徑,在工藝發生合理變化時,將實際合格但被誤判的生產影象重新納入訓練。

如何防止異常檢測把所有產品都判為不合格?

應使用最小斑點面積過濾器,而不要僅依賴靈敏度滑塊。任何真實表面在各處都會有輕微偏差,因此只要出現偏差就判定失敗的規則,會不斷誤判良品。只有當偏差區域超過設定面積才判定失敗的規則,才能表現得可預測。設定該面積需要與品質團隊達成一致,討論多大的痕跡才真正算作不合格,這本身就是一次有價值的溝通。

在您的零件上體驗 Overview AI

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

相關文章