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