Anomaly Detection vTool#
Anomaly detection 是一種二元分類形式,它能區分正常(期望)與異常(非期望)資料,讓您將影像分類為良品與不良品。與標準分類相比,它可以處理高度不平衡的資料,在此類資料中,異常情況很少見、表現不充分,或者在訓練資料集中根本不存在。
Anomaly Detection vTool 可以對透過 Image 輸入引腳接收到的影像進行分類。它會透過 Classes、Scores、Regions、Heatmaps 和 InferenceImage 輸出引腳輸出結果。
如果您在進行 anomaly detection 之前使用 ROI Creator vTool 指定感興趣區域,則 Anomaly Detection vTool 會透過其 Roi 輸入引腳接收 ROI 資料。在這種情況下,anomaly detection 僅會在感興趣區域上執行。這會帶來一個附帶好處,即加快處理速度。
若要購買 Anomaly Detection vTool 的授權,請造訪 Basler 網站。

運作原理#
假設您想要檢查您的 PCB 生產線是否有異常。
這是您的輸入影像(影像來源:a),顯示了一個有彎曲引腳的 PCB:

您可以透過載入經過訓練以檢測 PCB 不規則性的模型來設定 vTool。

接下來,您設定檢測設定:
-
Visualize anomalies and output heatmap: vTool 包含一項視覺化功能,預設為啟用。這可讓您以熱力圖的形式檢視資料。您可以為熱力圖選擇各種色彩對應圖。根據資料和情境的不同,不同的色彩對應圖能更有效地突顯異常。
如果您不需要此視覺化功能,且不需要對影像資料進行進一步分析,您可以取消選取熱力圖。這可能會提高產能。如果您取消選取此選項,則 Regions、Heatmaps 和 InferenceImage 輸出引腳將被停用。InferenceImage、Heatmaps 與 Regions 的區分
InferenceImage 是帶有熱力圖疊加層的輸入影像,用於在引腳資料檢視中視覺化異常。
Heatmaps 並非用於在 引腳資料檢視 中視覺化異常。它們是表示每個像素的異常分數的浮點數值影像,當需要在應用程式中進行進一步分析時使用。
Regions 是透過對熱力圖數值進行閾值處理來計算的。異常分數高於特定數值的像素會被分組到一個區域中,從而將正常區域與異常區域區分開來。
-
Anomaly threshold: Anomaly threshold 定義了根據所選模型返回的分數,被分類為正常影像與被視為異常影像之間的界限。預設閾值是在模型訓練期間根據訓練資料集選取的。然而,最佳閾值取決於您應用程式的特定要求以及您願意接受的取捨。您可以根據需要進行調整。較高的閾值意味著檢測到的異常較少,但檢測到的異常具有更高的信心水準。較低的閾值意味著檢測到的異常較多,但其中一些可能是誤報。
資訊
非異常推論影像上的像素強度變化表示與正常影像的細微偏差。然而,只要這些偏差保持在預定義的 anomaly threshold 以下,該影像就會被分類為正常。如果需要,此觀察結果可用於手動調整閾值。
設定 vTool 後,您執行啟動推論過程的配方。vTool 利用模型來分析影像並對現有物件進行分類。分析完成後,將返回 anomaly detection 結果。然後,您可以在引腳資料檢視中檢視結果。
選取 InferenceImage Pin 時的詳細輸出

InferenceImage:已偵測到四個具有異常的區域,並在影像中使用像素強度熱力圖反白顯示。不過,其中只有一個超過異常閾值,導致該影像被分類為「異常」。
分數:整個影像中最高的異常分數為 52.5901。儘管已偵測到四個異常區域,但只有一個高於異常閾值並獲得異常分數。
類別:由於分數高於閾值,該影像已被分類為異常。
選取 Regions Pin 時的詳細輸出

類別:由於分數高於閾值,該影像已被分類為異常。
分數:整個影像中最高的異常分數為 52.5901。
區域:異常區域已被反白顯示(如截圖中的箭頭所示)。與推理影像輸出相比,區域輸出僅標記影像中異常分數高於特定值的部分。
設定 vTool#
若要設定 Anomaly Detection vTool:

-
在 vTool Settings 區域的 Recipe Management 窗格中,按一下 Open Settings 或按兩下 vTool。
隨即會開啟 Anomaly Detection 對話方塊。 -
在 Server Selection 區域中,選取您要連線的伺服器。
伺服器必須正在執行才能與其連線。- 選項 1:手動輸入您的 Triton Inference Server 的 IP 位址與連接埠。
- 選項 2:在下拉式清單中選取您的伺服器的 IP 位址 / 主機名稱與連接埠。
-
按一下 Connect 以建立連線。
然後,vTool 會載入可用的模型。 -
在 模型選取 區域中,在下拉式清單中選取包含所需模型的套件 (bundle)。
選取套件後,下拉式清單下方的資訊將會填入套件詳細資料,讓您可以檢查是否已選取正確的套件。
-
如果未列出所需的套件,請按一下 部署新模型 位於下拉式清單中。

這會開啟 pylon AI Agent ,可讓您部署更多模型。
部署新模型後,您必須按一下 Refresh 按鈕。 -
在 Detection Settings 區域中,選取您熱力圖所需的色彩對應圖。
-
在 Detection Settings 區域中,視需要調整異常閾值。
異常閾值是模型的一部分。變更它可能會產生非預期的結果。資訊
此區域中可用的參數取決於所選的模型。某些參數只有在選取特定模型後才會顯示。預設值由模型提供。
-
按一下 OK。
您可以在 pin data view 中檢視異常偵測的結果。在這裡,您可以選取要顯示的輸出。
Inputs#
Image#
直接接收來自 Camera vTool 或輸出影像之 vTool(例如 Image Format Converter vTool)的影像。
- 資料類型:Image
- 影像格式:8 位元至 16 位元彩色影像
ROI#
接受來自 ROI Creator vTool 或任何其他輸出矩形的 vTool 的 Region of Interest。如果輸入多個矩形,則會使用第一個矩形作為單一 Region of Interest。
- 資料類型:RectangleF、RectangleF Array
Outputs#
類別#
傳回每個輸入影像的類別(正常或異常)。
- 資料類型:String Array
Scores#
傳回該類別的異常分數。這表示所偵測到異常的嚴重程度,亦即影像異常的可能性有多高。請注意,此值並非機率,且根據模型的不同,其範圍可以從非常小到非常大的數字。它只能結合所定義的閾值來進行解讀。
- 資料類型:浮點數陣列
熱力圖#
傳回熱力圖。此輸出可以停用。熱力圖並非用於在 pin data view 中視覺化異常。它們是代表每個像素異常分數的浮點值影像,如果希望在應用程式中進行進一步分析,即可使用它們。
- 資料類型:Image Array
Regions#
傳回每個預測異常的區域。此輸出可以停用。區域是透過對熱力圖值進行閾值處理來計算的。異常分數高於特定值的像素會被分組到一個區域中,從而將正常區域與異常區域區分開來。
- 資料類型:Region Array
InferenceImage#
傳回帶有熱力圖覆疊的輸入影像,以在 pin data view 中視覺化異常。此輸出可以停用。
- 資料類型:Image
Payload#
傳回有關 Inference Server 效能的額外資訊以供評估。只有在 Debug Settings 參數群組的 Features - All 窗格中啟用它時,此輸出 pin 才會可用。
- 資料類型:String
相關 vTools#
典型前置項目#
-
Visual Anomaly (VisA) 於 DATE 從 https://registry.opendata.aws/visa 存取。Zou, Yang, Jongheon Jeong, Latha Pemula, Dongqing Zhang, and Onkar Dabeer. "SPot-the-Difference Self-Supervised Pre-training for Anomaly Detection and Segmentation." arXiv preprint arXiv:2207.14315 (2022).