AI 驅動文件
您想了解什麼?
分類:每個區域一個標籤
分類器檢視裁剪後的區域並回答一個問題:這屬於哪個類別? 透過或失敗。空或滿。紅色、綠色或藍色。它是最簡單、最快的檢測型別,除非您需要知道缺陷的位置,否則它就是合適的預設選項。
分類器的設定基於一個簡單的層級結構:型別擁有類別,型別作為 ROI 印記到影象上。
可以將其想象成橡皮圖章系統。檢測型別 (Inspection Type) 就是圖章本身(設計圖案)。ROI 是您在頁面(影象)上蓋出的印記。每個印記都繼承相同的設計、相同的類別列表和相同的訓練模型。
三個概念
在訓練 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.
思維模型:型別擁有類別和 ROI
檢測型別 (Inspection Type) 是一個容器。它包含一個共享資料集、一個共享類別列表和一個訓練好的 AI 模型。然後您將該容器在影象上的多個位置印記出來,這些印記就是 ROI。同一型別的每個 ROI 都繼承相同的類別,並由相同的模型進行評估。
- 檢測型別 (Inspection Type) 是容器。
- 類別 (Classes) 是結果詞彙表。
- ROI 是影象上的位置。
對於分類器:每個 ROI 一個標籤,從類別列表中選取
分類器獲取每個 ROI 裁剪並提出一個問題:這看起來像哪個類別? 存在或缺失。透過或失敗。良好、劃傷或破裂。每個 ROI 的輸出是一個類別名稱加上一個置信度分數,這是一個清晰的分類答案,您的流水線其餘部分可以據此採取行動。
實時示例:PCB 螺絲存在性檢查
考慮一塊帶有六個螺絲位置的 PCB。其中四個螺絲存在,一個缺失,一個損壞。您將這樣配置:
- 型別 (Type):
Screws(6 個 ROI,分類器) - 類別 (Classes):
present、absent、damaged - ROI:
Screw_1到Screw_6,每個都用三個類別之一進行標註
每個 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_name加confidence分數。 - 型別是所有者。 所有六個 ROI 共享 Screws 資料集。捕獲一張影象即可獲得六個新訓練樣本,並由一個訓練好的模型對所有六個進行判斷。
- ROI 只是位置。 緊密繪製(小於 512 × 512 畫素)。使用 Duplicate 來印記
Screw_1 → Screw_2 → Screw_3,每個都會自動繼承類別列表。
深入瞭解:類的行為方式
類屬於型別,而非ROI
這是最重要的一點,必須牢記。類是檢測型別(Inspection Type)的屬性,這意味著新增或刪除一個類會自動更改使用該型別的每個ROI的標籤選項。
- 定義一次。 在Classes面板中點選 + Add class。為其命名(例如
stripped_head)並選擇顏色。 - 立即傳播。 新類會出現在該型別每個ROI的下拉選單中。無需逐個ROI配置。
- 按需重新標註。 現有訓練影象保留其標籤;您可以重新檢視任何影象並將其重新分類為新類。
- 保持精簡。 從最小的類集合開始,僅涵蓋您的決策。兩個類(
pass/fail)通常比五個模糊的類表現更好。
深入瞭解:ROI的行為方式
區域越小越好。 讓每個ROI剛好能容納目標特徵。更小的ROI意味著更少的訓練資料、更快的迭代速度和更準確的AI決策,特徵在裁剪圖中占主導地位而不會淹沒於背景中,且不會有任何縮放損失。
小而具體且數量眾多
ROI告訴相機在哪裡裁剪。裁剪越緊湊,模型獲得的訊號就越清晰。由於ROI共享一個型別,新增更多ROI可以在不增加工作量的情況下倍增您的訓練資料。
- 裁剪保持在 512 × 512 px 以內。 任何更大的影象都會被縮小以適應模型輸入,細節將永久丟失。
- 越緊湊越好。 圍繞單個特徵的小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 px。 - 先確保對齊有效。 如果零件發生位移或旋轉,對齊器會帶動您的ROI一起移動。只有當對齊穩定時,緊湊的ROI才有效。
- 每個類從3到5張訓練影象開始。 訓練,找出失敗案例,新增針對性資料,重新訓練。通常需要兩到四次迭代。
- 每個標籤都需複核。 在五張訓練影象中有一處錯標即意味著20%的資料汙染。每次訓練前請點選 View All ROIs。
後續步驟
- 理解分割器,關於畫素級模型的相關頁面。
- 感興趣區域 (ROIs),繪製 ROI 的實用指南。
- 訓練您的 AI,標註與訓練工作流程。