AI 驅動文件
您想了解什麼?
分類:每個區域一個標籤
分類器檢視裁剪後的區域並回答一個問題:這屬於哪一類? 透過或失敗。空或滿。紅、綠或藍。它是最簡單、最快速的檢測型別,除非你需要知道缺陷在哪裡,否則它是首選的預設選項。
分類器的設定基於一個簡單的層級結構:Type 擁有 Class,Type 作為 ROI 標記到影象上。
可以把它想象成一個橡皮圖章系統。Inspection Type 就是圖章本身(設計圖案)。ROI 是你在紙(影象)上蓋出的印記。每個印記都繼承相同的設計、相同的 class 列表和相同的已訓練模型。
三個概念
在你訓練 AI 模型之前,相機需要知道在哪裡檢視、有哪些可能的結果,以及如何評估每個裁剪區域。這三個問題對應三個概念,並以非常特定的方式巢狀在一起。
Inspection Type
A named bucket. Holds one shared dataset, one shared list of classes, and one trained AI model.
Classes
The vocabulary of possible outcomes for this inspection. Defined once on the type.
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 Type 是容器。
- Class 是結果詞彙表。
- ROI 是影象上的位置。
對於分類器:每個 ROI 一個標籤,從 class 列表中選取
分類器對每個 ROI 裁剪區域提出一個問題:它看起來像哪個 class? 存在或缺失。透過或失敗。良好、有劃痕或破裂。每個 ROI 的輸出是一個 class 名稱加上一個置信度分數,這是一個乾淨的分類結果,便於後續流程使用。
實時示例:PCB 螺絲存在性檢測
考慮一塊帶有六個螺絲位置的 PCB。其中四顆螺絲存在,一顆缺失,一顆損壞。你可以這樣配置:
- Type:
Screws(6 個 ROI,分類器) - Classes:
present、absent、damaged - ROIs:
Screw_1到Screw_6,每個都標記為三個 class 之一
每個 ROI 的輸出是一個標籤加上置信度:
| ROI | 標籤 | 置信度 |
|---|---|---|
| Screw_1 | present | 0.98 |
| Screw_2 | absent | 0.94 |
| Screw_3 | present | 0.97 |
| Screw_4 | present | 0.96 |
| Screw_5 | present | 0.95 |
| Screw_6 | damaged | 0.82 |
從這個示例中需要內化三件事:
- 每個 ROI 一個標籤。 分類器為每個裁剪區域分配恰好一個 class,是下拉選擇,而不是繪製任務。輸出是
class_name加上confidence分數。 - Type 是所有者。 所有六個 ROI 共享 Screws 資料集。捕獲一張影象就為你提供六個新的訓練樣本,一個已訓練的模型決定所有六個結果。
- ROI 只是位置。 繪製要緊湊(小於 512 × 512 px)。使用複製來標記
Screw_1 → Screw_2 → Screw_3,每個都自動繼承 class 列表。
在 OV80i 上,單個程式可以混合使用多種模型型別。使用分類器進行判定和已知類別識別,然後在其上疊加分割器以進行畫素級測量。請參閱理解分割器瞭解另一半內容。
深入瞭解:類的行為方式
類屬於型別,而非ROI
這是最重要的一點,必須深入理解。類是檢查型別的屬性,這意味著新增或刪除一個類會自動更改使用該型別的每個ROI的標籤選項。
- 定義一次。 在 Classes 面板中點選 + Add class。為其指定名稱(例如
stripped_head)和顏色。 - 即時傳播。 新類會出現在該型別每個ROI的下拉選單中。無需逐個ROI配置。
- 按需重新標註。 現有訓練影象保留原有標籤;您可以重新檢視任何影象並重新分類到新類。
- 保持精簡。 從能涵蓋您決策的最小類集合開始。兩個類(
pass/fail)通常優於五個模糊不清的類。
深入瞭解:ROI的行為方式
區域越小越好。 讓每個ROI剛好能容納特徵即可。較小的ROI意味著更少的訓練資料、更快的迭代和更準確的AI決策,特徵會主導裁剪區域而不是淹沒在背景中,且無需縮小。
小、具體、數量多
ROI告訴相機在哪裡裁剪。裁剪越緊湊,模型獲得的訊號越清晰。由於ROI共享型別,新增更多ROI可以成倍增加訓練資料,而不增加工作量。
- 保持裁剪尺寸在 512 × 512 畫素以下。 任何超出尺寸都會被縮小以適應模型輸入,細節將永久丟失。
- 越緊湊越好。 圍繞單個特徵的小ROI能為模型提供清晰訊號,所需訓練資料更少即可收斂。
- 多個ROI,同一型別。 10顆螺絲 → 在同一個 Screws 型別上設定10個ROI。一次捕獲就變成十個訓練樣本,推理時一個模型處理全部十個。
- 使用 Duplicate。 為第一個ROI起個有意義的名字(
Screw_Top_Left)。Duplicate會自動遞增名稱,無需重複輸入。 - 需要全覆蓋? 不要畫一個巨大的ROI,而是平鋪一個由小ROI組成的網格。每個都能保留完整解析度。
資料流:每個ROI獨立透過模型
執行時,相機會從完整影象中裁剪出每個ROI,單獨將其送入已訓練的模型,並記錄獲勝的類以及置信度分數。結果是每次捕獲時每個ROI得到一個標籤。
- 捕獲帶有所有ROI標記的完整畫面。
- 單獨裁剪,使每個ROI成為獨立的小影象。
- 分類器模型為每個裁剪影象選出一個類以及置信度分數。
- 輸出是 ROI → 標籤 → 置信度 的表格。基於該表格的透過/失敗邏輯由您的 IO模組 規則決定。
設定回顧
訓練前的快速檢查清單。如果以下每一項都滿足,您的分類器將擁有堅實的基礎。
- 每個決策一個檢查型別。 不要在同一型別中混合"螺絲"和"標籤",分別給每個一個獨立型別,以便它們獲得各自的類、資料集和模型。
- 類在型別級別定義。 每個ROI都獲得相同的下拉選單。如果某個選項並不適用於每個ROI,它可能屬於另一個型別。
- ROI繪製緊湊且命名描述性強。
Screw_Top_Left優於New ROI。保持每個ROI剛好夠容納其特徵,且小於 512 × 512 畫素。 - 先確保對齊有效。 如果零件移動或旋轉,對齊器會帶著您的ROI一起移動。緊湊的ROI只有在對齊穩定時才有效。
- 每個類初始3到5張訓練影象。 訓練、找出失敗、新增針對性資料、重新訓練。通常需要兩到四次迭代。
- 每個標籤都要雙重檢查。 五張訓練影象中有一個錯標就是20%的汙染。每次訓練前點選 View All ROIs。
後續步驟
- 瞭解分割器,關於畫素級模型的同類頁面。
- 感興趣區域 (ROIs),繪製 ROI 的實用指南。
- 訓練您的 AI,標註和訓練工作流。