跳到主要内容

AI 驱动文档

您想了解什么?

分割:为每个像素打上标签

分割器查看裁剪后的区域并回答一个更丰富的问题:不仅是这里有什么,还包括在哪里以及有多少。划痕究竟在哪里?污渍有多大?托盘里有多少药片?它以分类器的速度为代价,换取逐像素的掩膜(mask),即您在测量、计数或定位缺陷时所需的空间细节。

其设置建立在与分类器相同的层级结构之上:类型(Type)拥有类别(Class),类型以 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.

思维模型:一个类型拥有类别和 ROI

**检测类型(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 的输出是一个掩膜(mask),这是一个可用于测量、定位和计数的逐像素图。

实际示例:表面缺陷检测

设想一个拉丝金属表面,上面有两道划痕、一个凹痕和一处污渍。您可以这样配置:

Surface_Top · segmentbrush · scratch
  • 类型(Type): Surface Quality(1 个 ROI,分割器)
  • 类别(Class): background(隐含)、scratchdentstain
  • ROI: Surface_Top(覆盖可检测区域)

您不是为整个区域选择一个标签,而是用每个缺陷对应的类别颜色进行涂绘。模型输出是一个掩膜,按类别细分如下:

类别覆盖率
background93.5%
scratch3.1%
dent1.4%
stain2.0%

从这个示例中需要理解的三个要点:

  1. 绘制,而非选择。 您不是为整个 ROI 选择一个标签,而是逐像素绘制每个缺陷。模型学习每个类别的形状,而不仅仅是它是否存在。
  2. ROI 是像素领地。 分割器在 ROI 内部对每个像素进行标记。表面积越大 = 需要评估的像素越多。仍需遵守 512 × 512 规则,如果区域过大,请使用网格平铺。
  3. 类别是缺陷类型。 不是通过/失败,每个类别都是您想要定位的不同事物: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 像素以下。 超过这个范围,细节会因缩小而永久丢失。小缺陷将变得不可见。
  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 像素以下。
  3. 分割器模型 使用编码器-解码器架构为每个像素预测一个类别。
  4. 掩码输出 是一个彩色像素图,加上每个类别的像素计数,以及每个连通区域的边界框。通过/失败规则在 IO模块 中基于这些数值运行。

发挥创意:掩膜是一个几何对象

一旦分割器返回掩膜,您就不再局限于通过/失败。您拥有每个类别的精确形状和位置,这意味着您可以推导出测量值、计数、距离和空间关系。这开启了一整类完全不同于"查找划痕"的检测,而同一个分割器可以服务于所有这些用途。

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.

常见陷阱:以您实际检测的尺度进行训练

分割器只会学习它所见过的缺陷的尺寸和纹理。如果您用小污染物训练它,那么当同一类缺陷的较大块出现在产线上时,往往只有其边缘或零散的斑块被标记出来——缺陷的主体部分未被掩膜覆盖。

"训练时小,测试时大"的失败模式

如果您的训练集中只有缺陷的小样本,模型会将大版本视为"大部分是背景,加上一些小的缺陷形状斑块"。掩膜看起来斑驳不全,或者只标记真实缺陷的边缘/角落,而不是覆盖整个缺陷。

**解决方法:**在训练样本中包含您预期在产线上看到的全部尺寸范围。在小样本旁边加入少量大污染物的捕获图像通常就足够了。同样的原则也适用于纹理和颜色变化——按照生产中实际会看到的多样性进行训练。

**没有大缺陷样本?**使用 Defect Creator Studio 生成同一缺陷在不同尺寸、位置和方向下的合成训练图像——无需等待真实的大污染物出现在产线上。

设置回顾

训练前的快速检查清单。如果以下每一项都为真,您的分割器将有一个坚实的基础。

  • **每个表面对应一种 Inspection Type。**要检测两种不同的材料或缺陷类别?为每种类型分配独立的类型,使其拥有各自的类别、数据集和模型。
  • 类别代表缺陷类型,而非严重程度。scratchdentstain,每一个都是独立的视觉对象。严重程度和通过/失败由下游对掩膜像素计数得出。
  • **背景是隐式的。**您从不绘制或标注"良品"像素。所有未绘制的部分都属于 background
  • **ROI 尺寸合理。**覆盖感兴趣区域,但每个 ROI 保持在 512 × 512 像素以下。如果表面较大,请采用网格分块。
  • **绘制每一个可见的缺陷。**训练数据中遗漏的缺陷会让模型认为它们是背景,这是质量检测中最糟糕的教训。
  • 训练数据应涵盖您预期在生产中遇到的全部缺陷尺寸范围(请参阅上面的陷阱提示)。仅用小样本训练的模型无法泛化到大样本。
  • **每个类别从 10 到 15 张图像开始。**训练、运行实时预览、在掩膜出错的地方有针对性地添加图像、重新训练。通常迭代两到四次即可。

后续步骤