AI 驅動文件
您想了解什麼?
分類:每個區域一個標籤
分類器檢視裁剪區域並回答一個簡單的問題:這屬於哪一類? 透過或失敗。空或滿。紅色、綠色或藍色。這是最簡單、最快的檢測型別,除非您需要知道缺陷位於何處,否則它是合適的預設選項。
分類器的設定基於一個簡單的層級結構:型別擁有類別,型別作為 ROI 標記到影象上。
可以將其想象為一個橡皮圖章系統。檢測型別就是圖章本身(設計)。ROI 是您在紙上蓋出的印記(影象)。每個印記都繼承相同的設計、相同的類別列表和相同的訓練模型。
OV10i 僅執行分類器模型。如果您的檢測需要畫素級蒙版(計數、面積測量、缺陷定位),請升級到 OV20i 或 OV80i,它們支援分割。
三個核心概念
在訓練 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
檢測型別是一個桶。它儲存一個共享的資料集、一個共享的類別列表和一個訓練好的 AI 模型。然後您將該桶在影象的多個位置上蓋章,這些蓋章就是 ROI。同一型別的每個 ROI 都繼承相同的類別,並由同一個模型進行評估。
- 檢測型別 是桶。
- 類別 是結果詞彙表。
- ROI 是影象上的位置。
對於分類器:每個 ROI 一個標籤,從類別列表中選取
分類器獲取每個 ROI 裁剪區域並提出一個問題:這看起來像哪個類別? 存在或不存在。透過或失敗。完好、劃傷或破裂。每個 ROI 的輸出是一個類別名稱加一個置信度分數,一個清晰的分類結果,可供您管道中的後續步驟使用。
例項:PCB 螺釘存在性檢查
考慮一塊有六個螺釘位置的 PCB。四顆螺釘存在,一顆缺失,一顆損壞。您可以這樣配置:
- 型別:
Screws(6 個 ROI,分類器) - 類別:
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 畫素)。使用複製來蓋章
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 成為獨立的小影象。
- 分類器模型為每個裁剪圖選出一個分類及置信度分數。
- 輸出為 ROI → 標籤 → 置信度的表格。基於該表格的透過/失敗邏輯由您的 IO模組 規則決定。
設定總結
訓練前的快速檢查清單。如果以下每項都成立,您的分類器就有了堅實的基礎。
- 每個決策對應一個檢測型別。 不要在同一型別中混用"螺絲"和"標籤"——為每一種各設一個型別,使其擁有獨立的分類、資料集和模型。
- 分類在型別級別定義。 每個 ROI 都獲得相同的下拉選單。如果某個選項並不適用於每個 ROI,那它可能屬於另一種型別。
- ROI 繪製緊湊、命名具描述性。
Screw_Top_Left優於New ROI。保持每個 ROI 剛好夠容納其特徵,並控制在 512 × 512 px 以下。 - 對齊功能首先要正常工作。 如果零件發生位移或旋轉,對齊器會隨之移動您的 ROI。只有在對齊穩固時,緊湊的 ROI 才能發揮作用。
- 每個分類先準備 3 到 5 張訓練影象。 訓練、找出失敗案例、新增針對性資料、重新訓練。通常需要兩到四輪迭代。
- 每個標籤都要複核。 五張訓練影象中有一個錯標就是 20% 的汙染。每次訓練前點選 View All ROIs。
後續內容
- Regions of Interest (ROIs),繪製 ROI 的實用指南。
- Training Your AI,標註與訓練工作流程。
- Outputs,如何將透過/失敗判定接入 IO模組。