跳到主要內容

AI 驅動文件

您想了解什麼?

分割:為每個畫素分配標籤

分割器檢視裁剪後的區域並回答更豐富的問題:不僅是這裡有什麼,還有在哪裡以及有多少。劃痕究竟在哪裡?汙漬有多大?托盤裡有多少顆藥丸?它以分類器的速度為代價,換取逐畫素的掩碼,即測量、計數或定位缺陷所需的空間細節。

其設定基於與分類器相同的層次結構:Type 擁有 Class,Type 以 ROI 形式標記到影象上

把它想象成一套數字油畫套件。Inspection Type 是套件(調色盤加形狀輪廓)。Class 是你可選的顏料顏色。ROI 是你為每次捕獲繪製的畫布,而每個繪製的畫素最終都會被分配到恰好一個 class,包括隱式的 background

OV80i 程式可以混合使用分割器和分類器

OV80i 是產品線中唯一支援多模型程式的相機。在一次檢測中,將分割器(用於掩碼、計數和測量)與分類器(用於對已知類別給出判定)配對。請參見 Understanding Classifier 瞭解另一半內容。

三個概念

在你訓練 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 更豐富:它為每個畫素打標籤。你不是選擇下拉答案,而是在訓練影象上將缺陷塗抹出來,模型則學習每個 class 的形狀。每個 ROI 的輸出是一個掩碼,即可以測量、定位和計數的逐畫素對映。

例項:表面缺陷檢測

想象一個有兩道劃痕、一處凹痕和一處汙漬的拉絲金屬表面。你會這樣配置:

Surface_Top · segmentbrush · scratch
  • Type: Surface Quality(1 個 ROI,分割器)
  • Class: background(隱式)、scratchdentstain
  • ROI: Surface_Top(覆蓋可檢測區域)

你不是為整個區域選擇一個標籤,而是用每個 class 對應的顏色繪製每個缺陷。模型輸出是一個掩碼,按 class 分解:

Class覆蓋率
background93.5%
scratch3.1%
dent1.4%
stain2.0%

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

  1. 繪製,而不是選擇。 你不是為整個 ROI 選擇一個標籤,而是逐畫素繪製每個缺陷。模型學習每個 class 的形狀,而不僅僅是它是否存在。
  2. ROI 是畫素領地。 分割器在 ROI 內部檢視併為每個畫素打標籤。表面積越大 = 需要評估的畫素越多。仍然要遵循 512 × 512 規則,如果區域很大,請使用網格分塊。
  3. Class 是缺陷型別。 不是透過/失敗,每個 class 是你想要定位的一個獨立事物:scratchdentstain。再加一個隱式的 background

深入瞭解:類別的行為方式

每個類別都是調色盤上的一種顏色

在分割器中,類別不是你從下拉選單中選擇的標籤,而是你塗抹的顏料。選擇一個類別後,你的畫筆就會以該類別的顏色繪製畫素。ROI 中的每個畫素最終都會被分配到唯一一個類別,包括預設的 background

CLASS PALETTEbackgroundscratchdentstain+ add classpick a class →brush loads its colorPAINT IN THE ROIeverything unpainted = background
  1. 在型別上定義一次。 新增一個類別(例如 burn_mark)併為其指定顏色。此型別的每個 ROI 現在都可以在其調色盤上使用該顏色。
  2. 背景是免費的。 你不需要塗繪"這裡沒有任何問題"的畫素。任何未塗繪的畫素都會自動歸為 background
  3. 每個畫素只屬於一個類別。dentscratch 上塗繪會替換標籤,類別不能在單個畫素上疊加。
  4. 從簡單開始。 兩到三個缺陷類別的表現通常優於六個含糊的類別。合併相似的缺陷,直到模型難以區分它們,然後再拆分。

深入瞭解:ROI 的行為方式

ROI 的黃金法則

區域越小越好。 讓每個 ROI 剛好足以包含目標特徵。較小的 ROI 意味著更少的訓練資料、更快的迭代速度和更準確的 AI 判定,特徵會主導整個裁剪區域而不會淹沒在背景中,並且不會被縮小尺寸。

即使對於分割器,仍然要保持小而具體

你可能會想在整個表面上繪製一個巨大的 ROI,但黃金法則依然適用。分割器的 ROI 會像分類器一樣被縮小以適應模型輸入,一個僅 20 畫素寬的缺陷在你將 2000 畫素寬的 ROI 縮小到 512 時就會消失。

GOOD · TIGHT ROIfull resolution preservedHUGE SURFACE · GRID TILEeach tile stays full-resPER-ROI OUTPUTMASK · Surface_Topbackground93.5%scratch3.1%dent1.4%stain2.0%largest regionscratch · 280 × 38 pxdefect count3
  1. 每個 ROI 保持在 512 × 512 畫素以內。 超過這個尺寸,細節會因縮小而永久丟失。小缺陷會變得不可見。
  2. 緊湊的裁剪意味著緊湊的蒙版。 小 ROI 讓每個畫素保持全解析度,因此蒙版能夠與真實缺陷邊界對齊。
  3. 大面積?用網格平鋪。 不要將一個 ROI 拉伸覆蓋整個面板。佈置一個小 ROI 網格,使每個圖塊保持全解析度,模型可以看到細微的缺陷。
  4. 每次捕獲保留各自的蒙版。 每張訓練影象都會為該 ROI 儲存自己繪製的蒙版;模型會從所有這些蒙版中學習。
  5. 豐富的輸出。 每個 ROI 會返回每個類別的畫素數、每個缺陷區域的邊界框,以及可測量的面積,足以支援基於尺寸的透過/失敗規則。

資料流:每個 ROI 返回的是蒙版,而非標籤

執行時,相機會從完整影象中裁剪出 ROI,將其輸入到已訓練的分割器中,並獲得逐畫素的預測結果——一個與 ROI 同尺寸的蒙版,其中每個畫素都帶有一個類別。相機從該蒙版中匯出畫素數、缺陷區域和邊界框。

1 · CAPTUREFull frame + ROI2 · CROP≤ 512 × 512 px crop3 · SEGMENTER MODELSurface Quality · trainedencode → bottleneck → decodepredicts a class per pixel4 · MASK OUTPUTscratch3.1%dent1.4%stain2.0%total defect6.5%ruleFAIL > 2%
  1. 捕獲帶有 ROI 標記的完整畫面。
  2. 裁剪 ROI 為單張影象,保持在 512 × 512 畫素或以下。
  3. 分割器模型使用編碼器-解碼器架構為每個畫素預測一個類別。
  4. 蒙版輸出是一張彩色畫素圖,加上每個類別的畫素數,以及每個連通區域的邊界框。透過/失敗規則在 IO模組 中基於這些數值執行。

發揮創意:mask 是一個幾何物件

一旦 segmenter 返回 mask,您就不會侷限於 pass/fail。您可以獲得每個類別的精確形狀和位置,這意味著您可以匯出測量值、計數、距離和空間關係。這開啟了一整類完全不同於"查詢劃痕"的檢測方式,而同一個 segmenter 可以服務於所有這些應用。

AREA4.8 mm²
01 / Measure

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.

1234COUNT · scratch4
02 / Count

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.

L = 52 mmWL × W52 × 4 mm
03 / Measure

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.

24.6 mmDIST · blob → blob24.6 mm
04 / Relate

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.

edge8.2 mmDIST · defect → edge8.2 mm
05 / Relate

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.

COUNT · pills12
06 / Expand

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 將擁有堅實的基礎。

  • 每個表面一種檢測型別。 檢測兩種不同的材料或缺陷類別?為每種型別單獨建立檢測型別,讓它們各自擁有自己的類別、資料集和模型。
  • 類別代表缺陷型別,而非嚴重程度。 scratchdentstain,每個都是不同的視覺物件。嚴重程度和 pass/fail 由下游 mask 的畫素數量決定。
  • 背景是隱式的。 您絕不需要繪製或標註"良好"畫素。任何未繪製的部分都屬於 background
  • ROI 尺寸合理。 覆蓋感興趣區域,但每個 ROI 保持在 512 × 512 px 以下。如果表面較大,請使用網格分塊。
  • 繪製每一個可見的缺陷。 訓練資料中遺漏的缺陷會讓模型把它們視為背景,這對質量檢查來說是最糟糕的教訓。
  • 從每類 10 到 15 張影象開始。 訓練、執行實時預覽、在 mask 錯誤的地方有針對性地新增影象、再訓練。通常需要兩到四輪迭代。

接下來