R&D
CENTER

選擇異常檢測演算法:11 種演算法各自適用的時機

AD Workbench 的 11 種演算法,包括 PaDiM、PatchCore、AnomalyDINO、WinCLIP、EfficientAD 等,輸出結果相同,但強項各不相同。本篇依資料量、零件是否固定、解析度與節拍時間整理選擇依據。

基礎4 分鐘1 瀏覽
本課重點
  1. 演算法大致分為「掃過一次收集特徵的方式(1-pass)」與「訓練神經網路的方式(梯度下降)」兩類。
  2. 良品影像越少,以預訓練模型為基礎的 WinCLIP、AnomalyDINO 越有利;越多,則 PatchCore、Dinomaly2 越有利。
  3. 以治具固定的零件,適合使用依位置建立基準的 PaDiM、PatchCore;位置會晃動的零件,則以 AnomalyDINO 較強。
  4. 難以抉擇時,勾選多個演算法,再用 Auto Run 在同一份資料上一次比較,是最可靠的做法。

AD Workbench 的演算法都產生相同的輸出:逐像素的異常度熱圖與一個代表整張影像的分數,判定方式為 score ≥ Threshold → NG。差異在於用什麼擷取特徵、如何衡量異常度。這個差異決定了所需資料量、速度,以及擅長的瑕疵類型。

兩種訓練方式

A. 統計・特徵收集型(1-pass) — PaDiM、PatchCore、SPADE、AnomalyDINO、WinCLIP、HoleMetric、Tiled 2 種

將良品影像掃過一次,收集特徵或計算平均值與共變異數。由於沒有反向傳播,也就沒有 epoch 的概念,訓練只需數秒至數分鐘即可完成。但因為要儲存收集到的特徵,模型檔案可能會變大。

B. 梯度下降訓練型 — EfficientAD、FastFlow(20 epochs)、Dinomaly2(5,000 iterations)

實際訓練神經網路權重,因此需要較長時間。相對地,推論速度快、模型檔案小。當產線的節拍時間很緊時,可列為候選。

11 種一覽

演算法 特徵擷取 異常度計算 主要強項
PaDiM WideResNet50-2 與各位置高斯分布的馬氏距離 位置固定的對象,瑕疵位置清晰
PatchCore WideResNet50-2 記憶庫的 k 最近鄰距離 頂尖等級精度(建議預設)
SPADE WideResNet50-2 與 K 張相似良品的逐位置最小距離 簡單,小規模資料可快速建置
WinCLIP CLIP ViT-B-16+ 與「良品/不良品」文字的相似度 幾乎沒有良品影像也能立即嘗試
EfficientAD 輕量專用網路 Teacher–Student 不一致 + 重建誤差 推論非常快
FastFlow WideResNet50-2 正規化流的機率密度 模型小、推論快
AnomalyDINO DINOv2 ViT patch token 最近鄰餘弦距離 複雜形狀、few-shot、位置變動
Dinomaly2 DINOv2 + 解碼器 編碼器與解碼器的特徵差異 以單一模型整合多個視角
HoleMetric 傳統視覺 對位後的像素・cell 統計 孔・cell 單位微細形狀、CPU、訓練 3 秒
AnomalyDINO Tiled DINOv2 ViT-B/14 原始解析度下各 tile 的記憶庫 高解析度微細瑕疵、異物・破裂
PatchCore Tiled WideResNet50-2 各 tile 的 coreset 記憶庫 良品 20 張以上、微細表面瑕疵

基礎模型(Foundation Model)帶來的改變

WinCLIP、AnomalyDINO 與 Dinomaly2 直接使用以超過 1 億張影像預先訓練的通用視覺模型(CLIP、DINOv2)的特徵。這些模型已經訓練成能妥善表達「物體的結構」,因此即使只有幾張良品影像,也能擷取出區分正常與異常的特徵。WinCLIP 使用同時學習影像與文字的 CLIP,即使良品影像為 0 張,也會嘗試依據與「沒有刮痕的零件」、「有刮痕的零件」這類文字的相似度來判斷(Zero-shot)。在收集資料之前,可用來評估檢測是否可行。

高解析度微細瑕疵:tile 方式

大多數模型會將影像縮小到 512 像素左右再處理。若將 2048 像素的原圖縮小為四分之一,直徑 4 像素的孔堵塞就會變成 1 像素而消失。tile 方式會先將零件對位,再以原始解析度切成 518 像素的 tile(重疊 10%),並為每個 tile 分別建立記憶庫。在原圖中一個孔會呈現為 4×4 patch,因此 cell 單位的瑕疵能保留在特徵中。

HoleMetric 不使用深度學習,而是透過對位與統計,量測每個孔(cell)的亮度、暗部比例與偏差,並以 cell_report.csv 說明是哪個 cell 造成 NG。建議與擅長非典型異常(異物、破裂)的 AnomalyDINO Tiled 搭配使用。

選擇指南

情況 建議 理由
良品 0~10 張(可行性評估) WinCLIP · AnomalyDINO 以 Zero/Few-shot 立即嘗試
良品 10~50 張 AnomalyDINO · SPADE · HoleMetric · Tiled 免訓練的記憶庫・統計方式
良品 50~300 張 PatchCore · AnomalyDINO · PaDiM 頂尖等級精度
良品 300 張以上 PatchCore · Dinomaly2 多視角時以 Dinomaly2 一套涵蓋
以治具固定,總是在同一位置 PaDiM · PatchCore · HoleMetric 逐位置基準完全吻合
對象會移動或略微旋轉 AnomalyDINO 對位置變化相對穩健
連接器、射出件等複雜形狀 AnomalyDINO · Dinomaly2 較擅長表達複雜結構
孔・針腳微細形狀(2048px) HoleMetric + AnomalyDINO Tiled 原始解析度下以 cell 為單位量測
線上節拍時間很緊 EfficientAD · FastFlow 推論快、模型輕

最終仍以實驗決定

上表只是起點。即使是同一種零件,排名也會隨照明與瑕疵類型而改變。在 AD Workbench 中,於 Setup 勾選多個候選演算法並按下 Auto Run,就會以相同的訓練・評估資料全部執行,讓您並排比較分數分布與熱圖。比較依據請參閱模型評估與現場運作。