跳到主要內容

AI 驅動文件

您想了解什麼?

分類:每個區域一個標籤

分類器檢視裁剪後的區域並回答一個問題:這屬於哪個類別? 透過或失敗。空或滿。紅色、綠色或藍色。它是最簡單、最快的檢測型別,除非您需要知道缺陷的位置,否則它就是合適的預設選項。

分類器的設定基於一個簡單的層級結構:型別擁有類別,型別作為 ROI 印記到影象上

可以將其想象成橡皮圖章系統。檢測型別 (Inspection Type) 就是圖章本身(設計圖案)。ROI 是您在頁面(影象)上蓋出的印記。每個印記都繼承相同的設計、相同的類別列表和相同的訓練模型。

三個概念

在訓練 AI 模型之前,相機需要知道在哪裡檢視,可能的結果是什麼,以及如何評估每個裁剪區域。這三個問題對應三個概念,它們以非常特定的方式巢狀。

01 / Concept

Inspection Type

A named bucket. Holds one shared dataset, one shared list of classes, and one trained AI model.

02 / Concept

Classes

The vocabulary of possible outcomes for this inspection. Defined once on the type.

03 / Concept

Region of Interest (ROI)

A rectangle drawn on the image. Many ROIs can share one type and, therefore, one dataset and one model.

思維模型:型別擁有類別和 ROI

檢測型別 (Inspection Type) 是一個容器。它包含一個共享資料集、一個共享類別列表和一個訓練好的 AI 模型。然後您將該容器在影象上的多個位置印記出來,這些印記就是 ROI。同一型別的每個 ROI 都繼承相同的類別,並由相同的模型進行評估。

INSPECTION TYPEone bucket1 dataset · 1 model · N ROIsCLASSES · DEFINED ONCEclass_aclass_bclass_c+ addAdd or edit classes here andevery ROI on this type updates.Single source of truth.ROIs · PLACED ON IMAGEroi_1roi_2roi_3roi_4roi_5+ add ROIEach ROI is a tight crop at a specificlocation, evaluated by the same model.All share one dataset.classes applied to ROIs
  • 檢測型別 (Inspection Type) 是容器。
  • 類別 (Classes) 是結果詞彙表。
  • ROI 是影象上的位置。

對於分類器:每個 ROI 一個標籤,從類別列表中選取

分類器獲取每個 ROI 裁剪並提出一個問題:這看起來像哪個類別? 存在或缺失。透過或失敗。良好、劃傷或破裂。每個 ROI 的輸出是一個類別名稱加上一個置信度分數,這是一個清晰的分類答案,您的流水線其餘部分可以據此採取行動。

實時示例:PCB 螺絲存在性檢查

考慮一塊帶有六個螺絲位置的 PCB。其中四個螺絲存在,一個缺失,一個損壞。您將這樣配置:

OV-MCU · v2Screw_1 · presentScrew_2 · absentScrew_3 · presentScrew_4 · presentScrew_5 · presentScrew_6 · damaged
  • 型別 (Type): Screws(6 個 ROI,分類器)
  • 類別 (Classes): presentabsentdamaged
  • ROI: Screw_1Screw_6,每個都用三個類別之一進行標註

每個 ROI 的輸出是標籤加置信度:

ROI標籤置信度
Screw_1present0.98
Screw_2absent0.94
Screw_3present0.97
Screw_4present0.96
Screw_5present0.95
Screw_6damaged0.82

從這個示例中需要理解三點:

  1. 每個 ROI 一個標籤。 分類器為每個裁剪精確分配一個類別,是下拉框選擇,而非繪製任務。輸出是 class_nameconfidence 分數。
  2. 型別是所有者。 所有六個 ROI 共享 Screws 資料集。捕獲一張影象即可獲得六個新訓練樣本,並由一個訓練好的模型對所有六個進行判斷。
  3. ROI 只是位置。 緊密繪製(小於 512 × 512 畫素)。使用 Duplicate 來印記 Screw_1 → Screw_2 → Screw_3,每個都會自動繼承類別列表。

深入瞭解:類的行為方式

類屬於型別,而非ROI

這是最重要的一點,必須牢記。類是檢測型別(Inspection Type)的屬性,這意味著新增或刪除一個類會自動更改使用該型別的每個ROI的標籤選項

TYPE · SCREWS · CLASSESpresentabsentdamagedstripped_headNEWAdd a class here →Screw_1LABELpresent ▾other options:· absent · damaged· stripped_head ← newScrew_2LABELabsent ▾other options:· present · damaged· stripped_head ← newScrew_3LABELpresent ▾other options:· absent · damaged· stripped_head ← new…AND EVERY OTHER ROI OF THIS TYPE
  1. 定義一次。 在Classes面板中點選 + Add class。為其命名(例如 stripped_head)並選擇顏色。
  2. 立即傳播。 新類會出現在該型別每個ROI的下拉選單中。無需逐個ROI配置。
  3. 按需重新標註。 現有訓練影象保留其標籤;您可以重新檢視任何影象並將其重新分類為新類。
  4. 保持精簡。 從最小的類集合開始,僅涵蓋您的決策。兩個類(pass / fail)通常比五個模糊的類表現更好。

深入瞭解:ROI的行為方式

ROI的黃金法則

區域越小越好。 讓每個ROI剛好能容納目標特徵。更小的ROI意味著更少的訓練資料、更快的迭代速度和更準確的AI決策,特徵在裁剪圖中占主導地位而不會淹沒於背景中,且不會有任何縮放損失。

小而具體且數量眾多

ROI告訴相機在哪裡裁剪。裁剪越緊湊,模型獲得的訊號就越清晰。由於ROI共享一個型別,新增更多ROI可以在不增加工作量的情況下倍增您的訓練資料。

GOOD · TIGHT CROP60 × 60 px · feature dominatesBAD · TOO LARGEscrew is a speck · downscaledDUPLICATE PATTERNScrew_1Screw_2Screw_3…NName the first ROI, click Duplicate, and the rest auto-increment.All share the same type → same classes, same dataset, same model.10 ROIs × 1 CAPTURE = 10 TRAINING SAMPLES
  1. 裁剪保持在 512 × 512 px 以內。 任何更大的影象都會被縮小以適應模型輸入,細節將永久丟失。
  2. 越緊湊越好。 圍繞單個特徵的小ROI能為模型提供清晰的訊號,並且需要更少的訓練資料即可收斂。
  3. 多個ROI,一個型別。 10顆螺絲 → 在同一個 Screws 型別上設定10個ROI。一次捕獲即可生成十個訓練樣本,並且一個模型可在推理時處理全部十個。
  4. 使用 Duplicate。 給第一個ROI起一個有意義的名字(Screw_Top_Left)。Duplicate會自動遞增名稱,您無需重複輸入。
  5. 需要全覆蓋? 不要繪製一個巨大的ROI,應平鋪多個小ROI構成網格。每個都能保留完整解析度。

資料流:每個ROI單獨經過模型處理

執行時,相機會從完整影象中裁剪出每個ROI,單獨將其輸入訓練好的模型,並記錄獲勝的類及其置信度分數。每次捕獲,每個ROI都會得到一個標籤。

1 · CAPTUREFull frame + 6 ROIs2 · CROP INDIVIDUALLYScrew_1Screw_2Screw_3Screw_4Screw_5Screw_6max 512 × 512 px each3 · CLASSIFIER MODELScrews · trained modelpicks 1 class + confidence4 · OUTPUTScrew_1present 0.98Screw_2absent 0.94Screw_3present 0.97Screw_4present 0.99Screw_5present 0.96Screw_6damaged 0.82resultFAIL
  1. 捕獲包含所有標記ROI的完整幀。
  2. 單獨裁剪,使每個ROI成為獨立的小影象。
  3. 分類器模型為每個裁剪圖選擇一個類及對應的置信度分數。
  4. 輸出是一個 ROI → 標籤 → 置信度 的表格。基於該表格的透過/失敗邏輯由您的IO模組規則決定。

設定回顧

訓練前的快速檢查清單。如果以下每一項都成立,您的分類器將擁有堅實的基礎。

  • 每個決策對應一個檢測型別。 不要將"螺絲"和"標籤"混在同一型別中,給每一個分配獨立的型別,以便它們擁有各自的類、資料集和模型。
  • 類在型別級別定義。 每個ROI獲得相同的下拉選項。如果某個選項不適用於每個ROI,它可能應歸屬於另一個型別。
  • ROI畫得緊湊並命名清晰。 Screw_Top_Left 優於 New ROI。讓每個ROI剛好能容納其特徵,且小於 512 × 512 px。
  • 先確保對齊有效。 如果零件發生位移或旋轉,對齊器會帶動您的ROI一起移動。只有當對齊穩定時,緊湊的ROI才有效。
  • 每個類從3到5張訓練影象開始。 訓練,找出失敗案例,新增針對性資料,重新訓練。通常需要兩到四次迭代。
  • 每個標籤都需複核。 在五張訓練影象中有一處錯標即意味著20%的資料汙染。每次訓練前請點選 View All ROIs

後續步驟