跳到主要内容

第3步:感兴趣区域(ROI)

时间:10–15 分钟

现在对齐工作已经正常,可以让相机知道要看哪里。你可以通过绘制感兴趣区域(ROI)来实现:在图像上绘制矩形,定义 AI 将要分析的区域。

关键术语

  • Inspection Type(检查类型):具有共享数据集和一组类别的类别。示例:"Screws",类别为 "present" / "absent"。
  • Inspection Region (ROI,感兴趣区域):部件上的具体位置。示例:"Screw_1"、"Screw_2"、"Screw_3",它们共享同一个 "Screws" 检查类型。

你可以在同一张图像上拥有多个 Inspection Type。例如:"Screws"(10 个 ROIs)和 "Connectors"(2 个 ROIs),每个都具有自己的类别和训练数据。

为什么 ROI 大小重要

这是客户最常抱怨的第二大原因(仅次于对齐问题)。下面解释原因。

512x512 像素限制

危险:大于 512x512 像素的 ROI 会丢失信息

每个 ROI 都会从完整图像中裁剪并单独输入到 AI 模型。AI 模型能接受的最大尺寸为 512 x 512 像素。如果你的 ROI 大于此尺寸,相机会将其缩小以适应,从而永久丢失细节。

越小越好,原因如下

设想你在寻找一颗缺失的螺丝。你可以画一个覆盖整个主板的巨型 ROI,或者画一个只覆盖螺丝区域的小 ROI。

使用小 ROI:

  • 螺丝在裁切区域中占主导地位,AI 就能清楚地知道你在寻找什么
  • 需要的训练图像更少(信噪比高)
  • 处理更快
  • 如果 ROI 小于 512x512,就不会丢失信息

使用大 ROI:

  • 螺丝在背景海洋中是微小的细节
  • AI 需要更多数据来学习重要特征
  • 如果 ROI 超过 512x512,裁剪会被缩小,螺丝将变得更小
  • 处理时间更长

用网格进行全图检测

如果你需要对整张图像进行小缺陷的检测(如表面上的微小划痕),不要使用一个巨大的 ROI。相反,在网格模式下平铺多个小 ROI:

每个小 ROI 保留原始分辨率。如果任意单个 ROI 失败,整个检测也可能失败。你将得到两全其美的结果:覆盖面全面且细节保留完好。

设置你的 ROIs

Inspection setup, drawing ROIs on the part

1. 创建 Inspection Type

在配方编辑器中进入 Inspection Setup

将 "Inspection Type 1" 重命名为更有意义的名称,例如 "Screws"、"Surface_Quality" 或 "Connector_Check"。该名称很重要,因为它会出现在输出数据和 Node-RED 流中。

2. 定义你的类别

添加该检查类型所需的类别。对于分类器,可能是:

  • Pass / Fail
  • Present / Absent
  • Good / Scratched / Cracked

初始时保持简单。日后可以添加更多类别。

3. 绘制你的 ROIs

Inspection region types

单击 + Add Inspection Region。在图像上会出现一个黄色矩形。

  • 拖动 它到正确的位置
  • 通过拖动角点 来调整大小
  • 让它恰好足以包含你要检查的特征
  • 将其从 "New ROI" 重命名为有描述性的名称(例如 "Screw_Top_Left")

4. 对每个位置重复

如果你要检查 10 个螺丝,请为每个螺丝位置创建一个 ROI。它们都共享相同的 Inspection Type 和数据集。

复制粘贴快捷方式

将第一张 ROI 命名为 "Connector 1",然后点击复制。它会自动创建 "Connector 2"、"Connector 3" 等,名称会自增。比逐个从头创建快多了。

5. 使用 Live Preview 验证

切换到 Live Preview Mode,并检查:

  • 所有 ROIs 是否在部件上正确定位
  • ROIs 是否随对齐一起移动(如果你在使用对齐器)
  • 每个 ROI 是否完全包含你想要检查的特征
  • 没有 ROI 的尺寸超出所需

ROI 尺寸指南

ROI 用途尺寸建议
单一特征(螺丝、连接器、标签)恰好足以包含该特征并留出少量边距
表面缺陷区域小网格瓷砖,每个都小于 512x512 像素
需要细节的大特征使用 segmenter 而非 classifier(仅 OV20i/OV80i)
存在/不存在检查较小;特征要么存在要么不存在

何时使用大量 ROIs

不要担心使用大量 ROIs。你可以使用数十个甚至数百个。好处:

  • 共享训练数据。 同一 Inspection Type 的所有 ROIs 共享一个数据集。10 个螺丝 ROIs 意味着每次捕获的数据集是原来的 10 倍。
  • 处理更快。 多个小裁剪的处理速度通常比一个大裁剪快。
  • 更高准确性。 每个小裁剪的信噪比都很高。
  • 粒度化报告。 你可以精确看到是哪个 ROI 失败。

何时需要大 ROI

如果你确实需要一个较大的 ROI 来发现微小缺陷(如在大面积表面上的微小划痕),请考虑使用一个 segmenter 而不是一个 classifier。Segmenter 适用于像素级检测,并且更适合处理大区域。(OV10i 仅支持 classifiers。Segmentation 需要 OV20i 或 OV80i。)

Inspection regions 检查清单

在继续之前,请确认:

  • 已创建具有有意义名称的 Inspection Type
  • 为每个 Inspection Type 定义了类别
  • 已绘制 ROI,大小恰好能包含目标
  • ROI 命名具有描述性(例如,"Screw_Top_Left")
  • 所有 ROI 在 Live Preview 中随对齐正确移动
  • 没有 ROI 超过 512×512 像素(检查下采样警告)

Ready to teach the AI? Move to Step 4: Train Your AI.