跳到主要內容

AI 驅動文件

您想了解什麼?

分類:每個區域一個標籤

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

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

可以把它想象成一個橡皮圖章系統。Inspection Type 就是圖章本身(設計圖案)。ROI 是你在紙(影象)上蓋出的印記。每個印記都繼承相同的設計、相同的 class 列表和相同的已訓練模型。

三個概念

在你訓練 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.

心智模型:Type 擁有 Class 和 ROI

Inspection Type 是一個容器。它包含一個共享的資料集、一個共享的 class 列表和一個已訓練的 AI 模型。然後你將這個容器在影象上的多個位置進行標記,這些標記就是 ROI。同一 Type 的每個 ROI 都繼承相同的 class 列表,並由相同的模型進行評估。

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 是容器。
  • Class 是結果詞彙表。
  • ROI 是影象上的位置。

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

分類器對每個 ROI 裁剪區域提出一個問題:它看起來像哪個 class? 存在或缺失。透過或失敗。良好、有劃痕或破裂。每個 ROI 的輸出是一個 class 名稱加上一個置信度分數,這是一個乾淨的分類結果,便於後續流程使用。

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

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

OV-MCU · v2Screw_1 · presentScrew_2 · absentScrew_3 · presentScrew_4 · presentScrew_5 · presentScrew_6 · damaged
  • Type: Screws(6 個 ROI,分類器)
  • Classes: presentabsentdamaged
  • ROIs: Screw_1Screw_6,每個都標記為三個 class 之一

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

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

從這個示例中需要內化三件事:

  1. 每個 ROI 一個標籤。 分類器為每個裁剪區域分配恰好一個 class,是下拉選擇,而不是繪製任務。輸出是 class_name 加上 confidence 分數。
  2. Type 是所有者。 所有六個 ROI 共享 Screws 資料集。捕獲一張影象就為你提供六個新的訓練樣本,一個已訓練的模型決定所有六個結果。
  3. ROI 只是位置。 繪製要緊湊(小於 512 × 512 px)。使用複製來標記 Screw_1 → Screw_2 → Screw_3,每個都自動繼承 class 列表。
OV80i 同時支援分類器和分割器

在 OV80i 上,單個程式可以混合使用多種模型型別。使用分類器進行判定和已知類別識別,然後在其上疊加分割器以進行畫素級測量。請參閱理解分割器瞭解另一半內容。

深入瞭解:類的行為方式

類屬於型別,而非ROI

這是最重要的一點,必須深入理解。類是檢查型別的屬性,這意味著新增或刪除一個類會自動更改使用該型別的每個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 畫素以下。 任何超出尺寸都會被縮小以適應模型輸入,細節將永久丟失。
  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 畫素。
  • 先確保對齊有效。 如果零件移動或旋轉,對齊器會帶著您的ROI一起移動。緊湊的ROI只有在對齊穩定時才有效。
  • 每個類初始3到5張訓練影象。 訓練、找出失敗、新增針對性資料、重新訓練。通常需要兩到四次迭代。
  • 每個標籤都要雙重檢查。 五張訓練影象中有一個錯標就是20%的汙染。每次訓練前點選 View All ROIs

後續步驟