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