Anomaly Detection vTool#
異常偵測是一種二元分類形式,其原理在於區分正常(預期)與異常(非預期)資料,讓您能將影像分類為「良好」與「不良」兩類。與標準分類不同的是,它能夠處理高度不平衡的資料——即在訓練資料集中,異常情況十分罕見、代表性不足,甚至完全不存在。
Anomaly Detection vTool 可對透過「Image」輸入接腳接收的影像進行分類,並透過「Classes」、「Scores」、「Regions」、「Heatmaps」及「InferenceImage」輸出接腳輸出結果。
若您在異常偵測前使用「ROI Creator vTool 」來指定感興趣區域(ROI),則「Anomaly Detection 」vTool 會透過其Roi輸入引腳接收 ROI 資料。在此情況下,異常偵測僅針對感興趣區域進行。此舉的附帶效果是能加快處理速度。
如需購買「Anomaly Detection vTool」的授權,請造訪Basler 網站。

運作原理#
假設您想檢查 PCB 生產線是否有異常情況。
這是您的輸入圖片(圖片來源: a),圖中顯示了一塊帶有彎曲接腳的印刷電路板:

您可透過載入一個經過訓練、能偵測 PCB 異常的模型來設定 vTool。

接下來,請設定偵測設定:
-
異常視覺化與熱圖輸出:vTool 內建視覺化功能,預設為啟用狀態。此功能可讓您以熱圖形式檢視資料。您可以從多種色圖中選擇適用於熱圖的色圖。根據資料與情境的不同,不同的色圖能更有效地突顯異常。
若您不需要此視覺化功能,且無需對影像資料進行進一步分析,可取消選取熱圖選項。此舉可提升處理量。若取消選取此選項,「區域」、「熱圖」及「推論影像」輸出接腳將被停用。推論影像、熱圖與區域的區別
InferenceImage是疊加了熱力圖的輸入影像,用於在針腳資料檢視畫面中視覺化異常情況。
熱力圖並非用於在「針腳資料」檢視中視覺化異常情況。它們是浮點數值的影像,代表每個像素的異常分數,若需在應用程式中進行進一步分析時才使用。
區域是透過對熱力圖數值進行閾值處理來計算的。異常分數高於特定數值的像素會被歸類為一個區域,藉此將正常區域與異常區域區分開來。
-
異常閾值:異常閾值根據所選模型返回的分數,界定被歸類為正常與被視為異常的影像之間的界線。預設閾值是在模型訓練過程中,根據訓練資料集所選定的。然而,最佳閾值取決於您的應用程式的具體需求,以及您願意接受的權衡取捨。 您可以根據需要進行調整。較高的閾值意味著偵測到的異常較少,但所偵測到的異常具有更高的可信度;較低的閾值則意味著偵測到的異常較多,但其中部分可能是誤報。
資訊
非異常推斷影像上的像素強度變化,顯示出與正常影像存在輕微偏差。然而,只要這些偏差低於預先設定的異常閾值,該影像即被歸類為正常。此觀察結果在必要時,可作為手動調整閾值的參考依據。
配置完 vTool 後,請執行該配方以啟動推論流程。vTool 會利用該模型分析影像並對其中的物件進行分類。分析完成後,系統將回傳異常偵測結果。您隨後可在「pin 資料檢視」中查看該結果。
選取 InferenceImage 接腳時的詳細輸出

推論圖像:已偵測到四個異常區域,並透過像素強度熱圖在圖像中加以標示。然而,其中僅有一個區域超過異常閾值,導致該圖像被歸類為「異常」。
分數:整張圖像中最高的異常分數為 52.5901。儘管偵測到四個異常區域,但僅有一個超過異常閾值,並獲得異常分數。
分類:由於評分高於閾值,因此該影像被歸類為異常。
選取區域接腳時的詳細輸出

分類:由於評分高於閾值,因此該影像被歸類為異常。
分數:整張圖像中最高的異常分數為 52.5901。
區域:異常區域已標示出來(如螢幕截圖中的箭頭所示)。與推論影像輸出不同,區域輸出僅標記影像中異常分數高於特定數值的區域。
設定 vTool#
要設定「Anomaly Detection 」vTool:

-
在vTool「設定」區域的「配方管理」窗格中,按一下「開啟設定」或雙擊該 vTool。
此時會開啟 Anomaly Detection 對話方塊隨即開啟。 -
在 Server Selection 區域中,選取您想要連線的伺服器。
伺服器必須正在執行中才能與其建立連線。- 選項 1:手動輸入 Triton Inference Server 的 IP 位址與連接埠。
- 選項 2:在下拉式清單中選取您伺服器的 IP 位址 / 主機名稱與連接埠。
-
按一下 Connect 以建立連線。
接著,vTool 便會載入可用的模型。 -
在 模型選取 區域中,在下拉式清單選取包含所需模型的 bundle。
選取 bundle 後,下拉式清單下方的資訊便會填入該 bundle 的詳細資料,讓您可以確認所選取的 bundle 是否正確。
-
如果清單中沒有所需的 bundle,請按一下 部署新模型 下拉式清單中的

這會開啟 pylon AI Agent ,可讓您部署更多模型。
部署新模型後,您必須按一下 Refresh 按鈕。 -
在「偵測設定」區域中,為您的熱圖選取所需的色彩映射。
-
在「偵測設定」區域中,如有需要,請調整異常閾值。
異常閾值是模型的一部分。變更此設定可能會造成意想不到的後果。資訊
此區域中可用的參數取決於所選的模型。某些參數必須在選取特定模型後才會顯示。預設值由模型提供。
-
按一下 OK。
您可以在引腳資料檢視中查看異常偵測的結果。在此處,您可以選擇要顯示哪些輸出。
Inputs#
Image#
可直接從「相機」vTool 或任何能輸出影像的 vTool(例如「Image Format Converter 」vTool)接收影像。
- 資料類型:圖片
- 影像格式:8 位元至 16 位元彩色影像
Roi#
接受來自 ROI Creator vTool 或任何其他輸出矩形的 vTool 的興趣區域。如果輸入多個矩形,則會使用第一個矩形作為單一興趣區域。
- 資料類型:RectangleF、RectangleF Array
Outputs#
Classes#
回傳每張輸入影像的類別(正常或異常)。
- 資料類型:字串陣列
Scores#
回傳該類別的異常分數。此分數表示偵測到的異常嚴重程度,亦即該影像出現異常的可能性。請注意,此數值並非機率值,且視模型而定,其範圍可能從極小數值到極大數值不等。應僅根據所定義的閾值來解讀此數值。
- 資料類型:Float Array
熱力圖#
回傳熱力圖。此輸出可被停用。熱力圖並非用於在引腳資料檢視中視覺化異常情況。它們是浮點數值的圖像,代表每個像素的異常分數,若需在應用程式中進行進一步分析時才使用。
- 資料類型:影像陣列
Regions#
回傳每個預測異常的區域。此輸出可被停用。區域是透過對熱圖值進行閾值處理來計算的。異常分數高於特定值的像素會被歸類為一個區域,藉此將正常區域與異常區域區分開來。
- 資料類型:區域陣列
InferenceImage#
回傳疊加熱力圖的輸入影像,用以視覺化針腳資料檢視中的異常情況。此輸出功能可關閉。
- 資料類型:圖片
Payload#
傳回有關 Inference Server 效能的額外資訊以供評估。只有在 Debug Settings パラメーターグループの Features - All ペインで有効にした場合にのみ、この出力ピンを利用できるようになります。
- 資料類型:String
相關 vTool#
典型前置元件#
-
Visual Anomaly (VisA) 於 DATE 從https://registry.opendata.aws/visa 取得。作者:Zou、Yang、Jongheon Jeong、Latha Pemula、Dongqing Zhang 及 Onkar Dabeer。 「針對Anomaly Detection 與分割任務的『找不同』自監督預訓練。」arXiv 預印本 arXiv:2207.14315 (2022)。