AI 驱动文档
您想了解什么?
分割:为每个像素打上标签
分割器查看裁剪后的区域并回答一个更丰富的问题:不仅是这里有什么,还包括在哪里以及有多少。划痕究竟在哪里?污渍有多大?托盘里有多少药片?它以分类器的速度为代价,换取逐像素的掩膜(mask),即您在测量、计数或定位缺陷时所需的空间细节。
其设置建立在与分类器相同的层级结构之上:类型(Type)拥有类别(Class),类型以 ROI 形式标注在图像上。
可以把它想象成一套数字油画套件。**检测类型(Inspection Type)**是整套套件(调色板加形状轮廓)。**类别(Class)**是您可选择的颜料颜色。ROI 是您每次捕获时绘制的画布,每个绘制的像素最终都会被精确分配给一个类别,包括隐含的 background。
三个概念
在训练 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
**检测类型(Inspection Type)**是一个容器。它包含一个共享的数据集、一个共享的类别列表和一个训练好的 AI模型。然后您将该容器在图像上的多个位置进行标注,这些标注就是 ROI。同一类型的每个 ROI 都继承相同的类别,并由相同的模型进行评估。
- **检测类型(Inspection Type)**是容器。
- **类别(Class)**是结果词汇表。
- ROI 是图像上的位置。
对于分割器:为每个像素打上标签,绘制而非选择
分割器对每个 ROI 裁剪图像执行比选择类别更丰富的操作:它为每个像素打上标签。您不是从下拉菜单中选择答案,而是在训练图像上涂绘缺陷,模型会学习每个类别的形状。每个 ROI 的输出是一个掩膜(mask),这是一个可用于测量、定位和计数的逐像素图。
实际示例:表面缺陷检测
设想一个拉丝金属表面,上面有两道划痕、一个凹痕和一处污渍。您可以这样配置:
- 类型(Type):
Surface Quality(1 个 ROI,分割器) - 类别(Class):
background(隐含)、scratch、dent、stain - ROI:
Surface_Top(覆盖可检测区域)
您不是为整个区域选择一个标签,而是用每个缺陷对应的类别颜色进行涂绘。模型输出是一个掩膜,按类别细分如下:
| 类别 | 覆盖率 |
|---|---|
| background | 93.5% |
| scratch | 3.1% |
| dent | 1.4% |
| stain | 2.0% |
从这个示例中需要理解的三个要点:
- 绘制,而非选择。 您不是为整个 ROI 选择一个标签,而是逐像素绘制每个缺陷。模型学习每个类别的形状,而不仅仅是它是否存在。
- ROI 是像素领地。 分割器在 ROI 内部对每个像素进行标记。表面积越大 = 需要评估的像素越多。仍需遵守
512 × 512规则,如果区域过大,请使用网格平铺。 - 类别是缺陷类型。 不是通过/失败,每个类别都是您想要定位的不同事物:
scratch、dent、stain。再加上一个隐含的background。
深入了解:类别的行为方式
每个类别都是调色板上的一种颜色
在分割器中,类别不是从下拉菜单中选择的标签,而是你涂抹的颜料。选择一个类别,你的画笔就会开始用该类别的颜色书写像素。ROI 中的每个像素最终都会被分配到一个类别,包括默认的 background。
- 在类型上定义一次。 添加一个类别(例如
burn_mark)并赋予它一种颜色。此类型的每个 ROI 现在都可以在其调色板上使用该颜色。 - Background 是免费的。 你不需要涂抹"这里没有问题"的像素。任何未涂抹的像素自动归为
background。 - 每个像素一个类别。 在
scratch上用dent涂抹会替换标签,类别不能在同一个像素上叠加。 - 从简单开始。 两三个缺陷类别通常优于六个模糊的类别。合并相似的缺陷,直到模型难以区分它们,然后再拆分。
深入了解:ROI 的行为方式
区域越小越好。 让每个 ROI 恰好足以包含目标特征。较小的 ROI 意味着更少的训练数据、更快的迭代速度和更准确的 AI 决策,特征在裁剪图中占据主导地位,而不是淹没在背景中,并且不会被缩小尺寸。
即使对于分割器,也要保持小且具体
人们容易在整个表面上绘制一个巨大的 ROI,但黄金法则仍然适用。分割器的 ROI 会像分类器一样被缩小以适应模型输入,而一个只有 20 像素宽的缺陷,在你把 2000 像素宽的 ROI 缩小到 512 时就会消失。
- 每个 ROI 保持在 512 × 512 像素以下。 超过这个范围,细节会因缩小而永久丢失。小缺陷将变得不可见。
- 紧凑的裁剪意味着紧凑的掩码。 较小的 ROI 使每个像素保持全分辨率,因此掩码与真实的缺陷边界对齐。
- 表面很大?用网格平铺。 不要把一个 ROI 拉伸到整个面板上。布置一个由较小 ROI 组成的网格,使每个图块保持全分辨率,让模型能够看到细微的缺陷。
- 掩码按捕获持久保存。 每个训练图像都为该 ROI 存储自己的涂抹掩码;模型从所有这些掩码中学习。
- 丰富的输出。 每个 ROI 都会得到每个类别的像素计数、每个缺陷区域的边界框以及可测量的面积,足以制定基于尺寸的通过/失败规则。
数据流:每个 ROI 返回的是掩码,而不是标签
运行时,相机从完整图像中裁剪出 ROI,将其输入到训练好的分割器中,并获得逐像素的预测,即一个相同尺寸的掩码,其中每个像素都带有一个类别。相机从该掩码中导出像素计数、缺陷区域和边界框。
- 捕获 标记了 ROI 的完整画面。
- 裁剪 ROI 为单张图像,保持在 512 × 512 像素以下。
- 分割器模型 使用编码器-解码器架构为每个像素预测一个类别。
- 掩码输出 是一个彩色像素图,加上每个类别的像素计数,以及每个连通区域的边界框。通过/失败规则在 IO模块 中基于这些数值运行。
发挥创意:掩膜是一个几何对象
一旦分割器返回掩膜,您就不再局限于通过/失败。您拥有每个类别的精确形状和位置,这意味着您可以推导出测量值、计数、距离和空间关系。这开启了一整类完全不同于"查找划痕"的检测,而同一个分割器可以服务于所有这些用途。
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.
常见陷阱:以您实际检测的尺度进行训练
分割器只会学习它所见过的缺陷的尺寸和纹理。如果您用小污染物训练它,那么当同一类缺陷的较大块出现在产线上时,往往只有其边缘或零散的斑块被标记出来——缺陷的主体部分未被掩膜覆盖。
如果您的训练集中只有缺陷的小样本,模型会将大版本视为"大部分是背景,加上一些小的缺陷形状斑块"。掩膜看起来斑驳不全,或者只标记真实缺陷的边缘/角落,而不是覆盖整个缺陷。
**解决方法:**在训练样本中包含您预期在产线上看到的全部尺寸范围。在小样本旁边加入少量大污染物的捕获图像通常就足够了。同样的原则也适用于纹理和颜色变化——按照生产中实际会看到的多样性进行训练。
**没有大缺陷样本?**使用 Defect Creator Studio 生成同一缺陷在不同尺寸、位置和方向下的合成训练图像——无需等待真实的大污染物出现在产线上。
设置回顾
训练前的快速检查清单。如果以下每一项都为真,您的分割器将有一个坚实的基础。
- **每个表面对应一种 Inspection Type。**要检测两种不同的材料或缺陷类别?为每种类型分配独立的类型,使其拥有各自的类别、数据集和模型。
- 类别代表缺陷类型,而非严重程度。
scratch、dent、stain,每一个都是独立的视觉对象。严重程度和通过/失败由下游对掩膜像素计数得出。 - **背景是隐式的。**您从不绘制或标注"良品"像素。所有未绘制的部分都属于
background。 - **ROI 尺寸合理。**覆盖感兴趣区域,但每个 ROI 保持在 512 × 512 像素以下。如果表面较大,请采用网格分块。
- **绘制每一个可见的缺陷。**训练数据中遗漏的缺陷会让模型认为它们是背景,这是质量检测中最糟糕的教训。
- 训练数据应涵盖您预期在生产中遇到的全部缺陷尺寸范围(请参阅上面的陷阱提示)。仅用小样本训练的模型无法泛化到大样本。
- **每个类别从 10 到 15 张图像开始。**训练、运行实时预览、在掩膜出错的地方有针对性地添加图像、重新训练。通常迭代两到四次即可。
后续步骤
- Understanding Classifier,关于下拉选择模型的姐妹页面。
- Regions of Interest (ROIs),绘制 ROI 的实用指南。
- Training Your AI,标注和训练工作流程。