AI 驱动文档
您想了解什么?
分割:为每个像素分配标签
分割器会查看裁剪区域并回答一个更丰富的问题:不仅是这里是什么,还包括在哪里以及有多少。划痕究竟在哪里?污渍有多大?托盘里有几粒药片?它以分类器的速度换取逐像素的掩码,提供测量、计数或定位缺陷所需的空间细节。
其设置基于与分类器相同的层级结构:Type 拥有 Class,而 Type 以 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.
心智模型:一个 type 拥有 classes 和 ROIs
Inspection Type 是一个容器。它持有一个共享的数据集、一个共享的类别列表和一个训练好的 AI 模型。然后,你将该容器在图像上的多个位置标记下来,这些标记就是 ROI。同一类型的每个 ROI 都继承相同的类别,并由相同的模型进行评估。
- Inspection Type 是容器。
- Class 是结果词汇表。
- ROI 是图像上的位置。
对于分割器:为每个像素分配标签——绘制,而非选择
分割器对每个 ROI 裁剪区域执行比选择类别更丰富的操作:它为每个像素打标签。你不是选择一个下拉答案,而是在训练图像上将缺陷涂绘出来,模型则学习每个类别的形状。每个 ROI 的输出是一个掩码——一张可用于测量、定位和计数的逐像素映射。
实例演示:表面缺陷检测
设想一块拉丝金属表面上有两道划痕、一处凹痕和一块污渍。你可以这样配置:
- Type:
Surface Quality(1 个 ROI,分割器) - Classes:
background(隐式)、scratch、dent、stain - ROI:
Surface_Top(覆盖可检测区域)
你不需要为整个区域选择一个标签,而是用每种类别的颜色逐一涂绘每个缺陷。模型输出是一个掩码,按类别细分:
| Class | 覆盖率 |
|---|---|
| background | 93.5% |
| scratch | 3.1% |
| dent | 1.4% |
| stain | 2.0% |
从这个例子中需要内化三点:
- 绘制,而非选择。 你不是为整个 ROI 选择一个标签,而是逐像素涂绘每个缺陷。模型学习每个类别的形状,而不仅仅是其是否存在。
- ROI 是像素疆域。 分割器在 ROI 内部查看并为每个像素打标签。表面积越大 = 需要评估的像素越多。仍要遵循
512 × 512规则,如果区域过大则使用网格切片。 - Class 是缺陷类型。 不是通过/失败,每个类别都是你想要定位的不同对象:
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 px 以下。 超过这个尺寸,细节会因缩小而永久丢失。小缺陷会变得不可见。
- 紧凑的裁剪意味着紧凑的掩膜。 小的 ROI 保持每个像素的全分辨率,因此掩膜与真实缺陷边界对齐。
- 大表面?用网格平铺。 不要将一个 ROI 拉伸到整个面板上。布置较小 ROI 的网格,使每个平铺块保持全分辨率,并让模型能够看到细微的缺陷。
- 掩膜按捕获持久化。 每个训练图像都会为该 ROI 存储自己绘制的掩膜;模型从所有这些掩膜中学习。
- 丰富的输出。 每个 ROI 你可以获得每个类的像素数、每个缺陷区域的边界框以及可测量的面积,足以用于基于尺寸的通过/失败规则。
数据流:每个 ROI 返回的是掩膜,而不是标签
在运行时,相机从完整图像中裁剪出 ROI,将其输入到训练好的分割器中,并得到逐像素的预测,即一个与原图相同大小的掩膜,其中每个像素都带有一个类。相机从该掩膜中导出像素数、缺陷区域和边界框。
- 捕获带有 ROI 标记的完整帧。
- 裁剪 ROI 为单张图像,保持在 512 × 512 px 或以下。
- 分割器模型使用编码器-解码器架构为每个像素预测一个类。
- 掩膜输出是一个彩色像素图加上每个类的像素数,以及每个连通区域的边界框。通过/失败规则在 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.
设置回顾
在训练之前的快速检查清单。如果每一项都成立,你的分割器将拥有坚实的基础。
- 每个表面对应一个 Inspection Type。 检测两种不同的材料或缺陷族?为每一个分配独立的类型,让它们拥有各自的类别、数据集和模型。
- 类别代表缺陷类型,而非严重程度。
scratch、dent、stain,每一个都是不同的视觉对象。严重程度和通过/失败来自下游对 mask 像素数的统计。 - 背景是隐含的。 你从不绘制或标注"良好"像素。任何未绘制的部分都属于
background。 - ROI 尺寸要合理设计。 覆盖感兴趣区域,但每个 ROI 保持在 512 × 512 px 以下。如果表面较大,可使用网格平铺。
- 绘制每一个可见的缺陷。 训练数据中遗漏的缺陷会让模型把它们当作背景,这是质量检查中最糟糕的教训。
- 每个类别从 10 到 15 张图像开始。 训练、运行实时预览、在 mask 错误处添加针对性图像、重新训练。通常迭代两到四次即可。
下一步
- 理解分类器,关于下拉选择模型的姊妹页面。
- 感兴趣区域 (ROI),绘制 ROI 的实用指南。
- 训练您的 AI,标注与训练工作流。