跳到主要內容

AI 驅動文件

您想了解什麼?

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

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

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

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

三個概念

在訓練 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 擁有 classes 和 ROIs

Inspection Type 是一個容器。它持有一個共享的資料集、一個共享的類別列表和一個訓練好的 AI 模型。然後,你將該容器在影象上的多個位置標記下來,這些標記就是 ROI。同一型別的每個 ROI 都繼承相同的類別,並由相同的模型進行評估。

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 裁剪區域執行比選擇類別更豐富的操作:它為每個畫素打標籤。你不是選擇一個下拉答案,而是在訓練影象上將缺陷塗繪出來,模型則學習每個類別的形狀。每個 ROI 的輸出是一個掩碼——一張可用於測量、定位和計數的逐畫素對映。

例項演示:表面缺陷檢測

設想一塊拉絲金屬表面上有兩道劃痕、一處凹痕和一塊汙漬。你可以這樣配置:

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

你不需要為整個區域選擇一個標籤,而是用每種類別的顏色逐一塗繪每個缺陷。模型輸出是一個掩碼,按類別細分:

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

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

  1. 繪製,而非選擇。 你不是為整個 ROI 選擇一個標籤,而是逐畫素塗繪每個缺陷。模型學習每個類別的形狀,而不僅僅是其是否存在。
  2. ROI 是畫素疆域。 分割器在 ROI 內部檢視併為每個畫素打標籤。表面積越大 = 需要評估的畫素越多。仍要遵循 512 × 512 規則,如果區域過大則使用網格切片。
  3. 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 是免費的。 你不需要塗抹"這裡沒問題"的畫素。任何未塗抹的畫素自動為 background
  3. 每個畫素一個類。scratch 上用 dent 塗抹會替換標籤,類不能在單個畫素上疊加。
  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 px 以下。 超過這個尺寸,細節會因縮小而永久丟失。小缺陷會變得不可見。
  2. 緊湊的裁剪意味著緊湊的掩膜。 小的 ROI 保持每個畫素的全解析度,因此掩膜與真實缺陷邊界對齊。
  3. 大表面?用網格平鋪。 不要將一個 ROI 拉伸到整個面板上。佈置較小 ROI 的網格,使每個平鋪塊保持全解析度,並讓模型能夠看到細微的缺陷。
  4. 掩膜按捕獲持久化。 每個訓練影象都會為該 ROI 儲存自己繪製的掩膜;模型從所有這些掩膜中學習。
  5. 豐富的輸出。 每個 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 px 或以下。
  3. 分割器模型使用編碼器-解碼器架構為每個畫素預測一個類。
  4. 掩膜輸出是一個彩色畫素圖加上每個類的畫素數,以及每個連通區域的邊界框。透過/失敗規則在 IO模組 中基於這些數字執行。

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

一旦分割器返回 mask,你就不再侷限於透過/失敗。你獲得了每個類別的精確形狀和位置,這意味著你可以推匯出測量值、計數、距離和空間關係。這解鎖了一整類與"找到劃痕"完全不同的檢測,並且同一個分割器可以服務於所有這些用途。

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.

設定回顧

在訓練之前的快速檢查清單。如果每一項都成立,你的分割器將擁有堅實的基礎。

  • 每個表面對應一個 Inspection Type。 檢測兩種不同的材料或缺陷族?為每一個分配獨立的型別,讓它們擁有各自的類別、資料集和模型。
  • 類別代表缺陷型別,而非嚴重程度。 scratchdentstain,每一個都是不同的視覺物件。嚴重程度和透過/失敗來自下游對 mask 畫素數的統計。
  • 背景是隱含的。 你從不繪製或標註"良好"畫素。任何未繪製的部分都屬於 background
  • ROI 尺寸要合理設計。 覆蓋感興趣區域,但每個 ROI 保持在 512 × 512 px 以下。如果表面較大,可使用網格平鋪。
  • 繪製每一個可見的缺陷。 訓練資料中遺漏的缺陷會讓模型把它們當作背景,這是質量檢查中最糟糕的教訓。
  • 每個類別從 10 到 15 張影象開始。 訓練、執行實時預覽、在 mask 錯誤處新增針對性影象、重新訓練。通常迭代兩到四次即可。

下一步