AI 驅動文件
您想了解什麼?
分割:為每個畫素分配標籤
分割器檢視裁剪後的區域並回答更豐富的問題:不僅是這裡有什麼,還有在哪裡以及有多少。劃痕究竟在哪裡?汙漬有多大?托盤裡有多少顆藥丸?它以分類器的速度為代價,換取逐畫素的掩碼,即測量、計數或定位缺陷所需的空間細節。
其設定基於與分類器相同的層次結構:Type 擁有 Class,Type 以 ROI 形式標記到影象上。
把它想象成一套數字油畫套件。Inspection Type 是套件(調色盤加形狀輪廓)。Class 是你可選的顏料顏色。ROI 是你為每次捕獲繪製的畫布,而每個繪製的畫素最終都會被分配到恰好一個 class,包括隱式的 background。
OV80i 是產品線中唯一支援多模型程式的相機。在一次檢測中,將分割器(用於掩碼、計數和測量)與分類器(用於對已知類別給出判定)配對。請參見 Understanding Classifier 瞭解另一半內容。
三個概念
在你訓練 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 更豐富:它為每個畫素打標籤。你不是選擇下拉答案,而是在訓練影象上將缺陷塗抹出來,模型則學習每個 class 的形狀。每個 ROI 的輸出是一個掩碼,即可以測量、定位和計數的逐畫素對映。
例項:表面缺陷檢測
想象一個有兩道劃痕、一處凹痕和一處汙漬的拉絲金屬表面。你會這樣配置:
- Type:
Surface Quality(1 個 ROI,分割器) - Class:
background(隱式)、scratch、dent、stain - ROI:
Surface_Top(覆蓋可檢測區域)
你不是為整個區域選擇一個標籤,而是用每個 class 對應的顏色繪製每個缺陷。模型輸出是一個掩碼,按 class 分解:
| Class | 覆蓋率 |
|---|---|
| background | 93.5% |
| scratch | 3.1% |
| dent | 1.4% |
| stain | 2.0% |
從這個示例中需要內化三點:
- 繪製,而不是選擇。 你不是為整個 ROI 選擇一個標籤,而是逐畫素繪製每個缺陷。模型學習每個 class 的形狀,而不僅僅是它是否存在。
- ROI 是畫素領地。 分割器在 ROI 內部檢視併為每個畫素打標籤。表面積越大 = 需要評估的畫素越多。仍然要遵循
512 × 512規則,如果區域很大,請使用網格分塊。 - Class 是缺陷型別。 不是透過/失敗,每個 class 是你想要定位的一個獨立事物:
scratch、dent、stain。再加一個隱式的background。
深入瞭解:類別的行為方式
每個類別都是調色盤上的一種顏色
在分割器中,類別不是你從下拉選單中選擇的標籤,而是你塗抹的顏料。選擇一個類別後,你的畫筆就會以該類別的顏色繪製畫素。ROI 中的每個畫素最終都會被分配到唯一一個類別,包括預設的 background。
- 在型別上定義一次。 新增一個類別(例如
burn_mark)併為其指定顏色。此型別的每個 ROI 現在都可以在其調色盤上使用該顏色。 - 背景是免費的。 你不需要塗繪"這裡沒有任何問題"的畫素。任何未塗繪的畫素都會自動歸為
background。 - 每個畫素只屬於一個類別。 用
dent在scratch上塗繪會替換標籤,類別不能在單個畫素上疊加。 - 從簡單開始。 兩到三個缺陷類別的表現通常優於六個含糊的類別。合併相似的缺陷,直到模型難以區分它們,然後再拆分。
深入瞭解:ROI 的行為方式
區域越小越好。 讓每個 ROI 剛好足以包含目標特徵。較小的 ROI 意味著更少的訓練資料、更快的迭代速度和更準確的 AI 判定,特徵會主導整個裁剪區域而不會淹沒在背景中,並且不會被縮小尺寸。
即使對於分割器,仍然要保持小而具體
你可能會想在整個表面上繪製一個巨大的 ROI,但黃金法則依然適用。分割器的 ROI 會像分類器一樣被縮小以適應模型輸入,一個僅 20 畫素寬的缺陷在你將 2000 畫素寬的 ROI 縮小到 512 時就會消失。
- 每個 ROI 保持在 512 × 512 畫素以內。 超過這個尺寸,細節會因縮小而永久丟失。小缺陷會變得不可見。
- 緊湊的裁剪意味著緊湊的蒙版。 小 ROI 讓每個畫素保持全解析度,因此蒙版能夠與真實缺陷邊界對齊。
- 大面積?用網格平鋪。 不要將一個 ROI 拉伸覆蓋整個面板。佈置一個小 ROI 網格,使每個圖塊保持全解析度,模型可以看到細微的缺陷。
- 每次捕獲保留各自的蒙版。 每張訓練影象都會為該 ROI 儲存自己繪製的蒙版;模型會從所有這些蒙版中學習。
- 豐富的輸出。 每個 ROI 會返回每個類別的畫素數、每個缺陷區域的邊界框,以及可測量的面積,足以支援基於尺寸的透過/失敗規則。
資料流:每個 ROI 返回的是蒙版,而非標籤
執行時,相機會從完整影象中裁剪出 ROI,將其輸入到已訓練的分割器中,並獲得逐畫素的預測結果——一個與 ROI 同尺寸的蒙版,其中每個畫素都帶有一個類別。相機從該蒙版中匯出畫素數、缺陷區域和邊界框。
- 捕獲帶有 ROI 標記的完整畫面。
- 裁剪 ROI 為單張影象,保持在 512 × 512 畫素或以下。
- 分割器模型使用編碼器-解碼器架構為每個畫素預測一個類別。
- 蒙版輸出是一張彩色畫素圖,加上每個類別的畫素數,以及每個連通區域的邊界框。透過/失敗規則在 IO模組 中基於這些數值執行。
發揮創意:mask 是一個幾何物件
一旦 segmenter 返回 mask,您就不會侷限於 pass/fail。您可以獲得每個類別的精確形狀和位置,這意味著您可以匯出測量值、計數、距離和空間關係。這開啟了一整類完全不同於"查詢劃痕"的檢測方式,而同一個 segmenter 可以服務於所有這些應用。
Area & coverage
Pixel counts become mm² on a calibrated camera. Set pass/fail in real-world units, "reject if stain > 3 mm²", instead of fuzzy percentages.
Distinct blobs
Four small pits tell a different story than one big one. Count connected regions per class to flag defect frequency, not just total coverage.
Dimensions & shape
Length, width, aspect ratio, orientation, all fall out of the mask. Flag long scratches, ignore micro ones. Or flag round dents and ignore elongated ones.
Blob-to-blob distance
Euclidean gap between two painted regions, centroid-to-centroid or nearest-edge. Useful for component spacing, pin pitch, weld-to-weld gaps, or detecting defect clusters.
Distance to a reference
Paint a second class for your reference (edge, fiducial, adjacent component) then measure how far the defect sits from it. A defect 8 mm inside might be fine; 0.5 mm from the edge might be a reject.
Not just defects
Paint whatever you want to find: pills in a blister, screws in a tray, weld beads, gaps, fiducials, cells on a slide. Segmentation is a general-purpose scalpel, not a defect-only tool.
設定回顧
訓練前的快速檢查清單。如果以下每項都滿足,您的 segmenter 將擁有堅實的基礎。
- 每個表面一種檢測型別。 檢測兩種不同的材料或缺陷類別?為每種型別單獨建立檢測型別,讓它們各自擁有自己的類別、資料集和模型。
- 類別代表缺陷型別,而非嚴重程度。
scratch、dent、stain,每個都是不同的視覺物件。嚴重程度和 pass/fail 由下游 mask 的畫素數量決定。 - 背景是隱式的。 您絕不需要繪製或標註"良好"畫素。任何未繪製的部分都屬於
background。 - ROI 尺寸合理。 覆蓋感興趣區域,但每個 ROI 保持在 512 × 512 px 以下。如果表面較大,請使用網格分塊。
- 繪製每一個可見的缺陷。 訓練資料中遺漏的缺陷會讓模型把它們視為背景,這對質量檢查來說是最糟糕的教訓。
- 從每類 10 到 15 張影象開始。 訓練、執行實時預覽、在 mask 錯誤的地方有針對性地新增影象、再訓練。通常需要兩到四輪迭代。
接下來
- 理解分類器,關於下拉選擇模型的姐妹頁面。
- 感興趣區域 (ROIs),繪製 ROI 的實用指南。
- 訓練您的 AI,標註和訓練工作流程。