跳到主要内容

首次配方创建

本次深入讲解什么是 Recipe(配方),概述 Classification 与 Segmentation 的差异,以及创建 Recipe 的逐步指南。还包含 Imaging Setup 配置的详细演练、模板图像(Template Image)捕获与 Aligner 配置、ROI 的优化、用于 AI 训练的数据收集,以及图像增强(image augmentation)配置。


学习目标

通过本次深入学习,您将理解:

  • 什么是 Recipe(配方)
  • 分类(Classification)与分割(Segmentation)的区别,以及何时使用各自的方法
  • 如何创建 Recipe(配方)
  • 如何配置 Imaging Setup(成像设置)
  • 如何捕获 Template Image(模板图像)并配置 Aligner(对齐器)
  • ROI(Regions of Interest,感兴趣区域)是什么以及如何对 ROI 进行优化
  • 用于 AI 训练的数据收集
  • Recipe 的测试与验证

What is a Recipe?

  • 一个配置好的一组指令,告知相机如何对特定部件或产品进行检测。
  • 定义相机设置,包括曝光、对焦和照明参数,以实现一致的图像采集。
  • 包含处理逻辑,例如 ROI 定义、Aligner、分类或分割类。
  • 存储输入/输出配置,以便与自动化系统集成实现通过/失败或高级信号。
  • 可以被保存并重复使用,以确保跨班次、生产线或工厂的检测一致性。

分类 vs. 分割

定义

  • Classification:在 ROI 中识别对象类型
  • Segmentation:定位并分析图像/ROI 中的区域

示例

Image ClassificationImage SegmentationImage ClassificationImage Segmentation
What is a sheep?Which pixels belong to which object?Is this pizza acceptable or defective?Where is each pepperoni?
羊已分类羊已分割披萨已分类披萨已分割

关键对比

分类分割
速度速度取决于 Imaging Setup(成像设置)和复杂度。通常在简单设置下高效且速度快可以在优化时达到与分类同样快甚至更快,尤其是采用流线型模型时
准确性适用于整体的通过/不通过或部件类型识别在定位精确缺陷方面具有更高的准确性
复杂度设置和维护简单;参数较少复杂度较高——需要更多数据、标注和调优
数据需求低——需要较少标注的图像中等——需要大量具有像素级准确标注的图像
用例部件存在性、方向、基本质量检查、部件已插入/未插入等表面缺陷、细小特征检测、多缺陷检测、计数、测量等

创建并导出配方

使用每个配方旁的 Export Recipe 按钮来导出单个配方。

Export Recipe button

在屏幕顶部使用 Export 按钮一次导出多个配方。

Export multiple Recipes button

在屏幕顶部使用 Import 按钮导入配方。

Import Recipe button

备注

Remember: 每个配方一次仅支持一种检验类型,分割(segmentation)或分类(classification)中的一种。开始设置前,请选择正确的类型。

图像设置

图像旋转

Image Rotation settings in Imaging Setup

  • 含义: 将图像旋转(0° 或 180°)。
  • 使用场景: 如果相机以一定角度安装,但希望在界面中显示为相反的方向。
备注

如果需要将图像旋转 90°,请旋转相机。

增益

Gain settings in Imaging Setup

  • 含义: 以数字方式人工增亮图像(类似相机中的 ISO)。
  • 影响:
    • 高增益 → 图像更亮,但会增加 噪声(颗粒感)。
    • 低增益 → 图像更清晰,但需要良好的照明。
高增益低增益
高增益示例低增益示例
更亮且有噪声更暗且噪声更少
提示

仅在无法调整曝光或照明时才提高增益。

模板图像与对齐

跳过对齐器

Skip Aligner settings in Template Image and Alignment

  • 含义: 在检查过程中关闭对齐步骤。
  • 使用场景: 如果零件在图像中始终处于相同的位置和朝向。

模板区域

Template Regions settings in Template Image and Alignment

  • 含义: 定义用于对齐的模板图像区域。
    • Rectangle(矩形): 绘制一个矩形感兴趣区域。
    • Circle(圆形): 绘制一个圆形感兴趣区域。
    • Ignore Template Region(忽略模板区域): 在对齐时排除某些区域,以避免干扰模式或无关特征。
  • 最佳用途: 帮助系统仅关注最具辨识度的部件特征,以实现准确对齐。

旋转范围

Rotation Range settings in Template Image and Alignment

  • 含义: 设置系统在将部件与模板匹配时可容忍的旋转角度(单位为度)。
  • 示例: 设置为 ±20° 允许部件略微旋转但仍能被检测到。
  • 何时调整: 如果部件在生产中易旋转,则增大该值;对于高度一致的取向,缩小该值。

灵敏度

Sensitivity settings in Template Image and Alignment

  • 含义: 控制系统在实时图像与模板之间查找匹配的细致程度。
  • 影响:
    • 高灵敏度 → 能检测到更微小的细节,适用于复杂部件。
    • 低灵敏度 → 可减少误匹配,但可能错过细微特征。

置信度阈值

Confidence Threshold settings in Template Image and Alignment

  • 它是什么: 设置系统接受检测所需的最低置信度分数。
  • 影响:
    • 阈值越高 → 假阳性越少,但可能漏检边界情况。
    • 阈值越低 → 检测更多,但误报风险增加。
提示

从中等开始,并根据测试结果进行调整。

尺度不变性

Scale Invariant settings in Template Image and Alignment

  • 它是什么: 允许系统检测略大于或略小于原模板图的部件。
  • 启用时机: 如果部件尺寸可能因定位、距离变化或制造公差而略有变化。

实时预览图例

Live Preview in Template Image and Alignment

1. 一个可配置的 bounding box,用于在触发期间监控相机视场(FOV)的特定区域。

  • 目的: 确保相机仅聚焦于相关区域,忽略不必要的背景区域。
  • 最佳用法:
    • 对于 moving objects,以确保部件始终完全位于检测区域。
    • 通过减少分析的图像数据量来 优化处理速度

2. 一个可视红点,显示图像中所有已定义的 ROIs (Region of Interest) 的中心点。

  • 目的: 帮助您将搜索区域相对于部件或相机视图对齐与定位。

3. 绿线表示对象的边缘已被检测。

提示

如果看到线条变为红色,请尝试增大 ROI 大小、调整 ROI,或提高灵敏度。

Example of edge detection

ROI(Region of Interest)定义与优化

检查类型

Inspection Type settings in Inspection Setup

  • 它是什么: 定义正在执行的 inspection type,并将相似的 ROI(Region of Interest)分组。
  • 示例: 使用 “Holes” 来检查部件中孔的存在、尺寸或质量。
  • 关键特性:
    • Add Inspection Type(添加检查类型):为不同检查需求创建新类别。
    • # of ROIs(ROI 数量):显示当前分配给该检查类型的 ROI 数量。

变换

Transformation settings in Inspection Setup

  • 它是什么: 调整所选 ROI 的位置和几何形状,以实现精确对齐与放置。
  • 字段及其用途:
    • Height/Width(高度/宽度):改变 ROI 的大小。
    • X / Y:在水平(X)和垂直(Y)轴上移动 ROI 的位置。
    • Angle(角度):围绕中心旋转 ROI。
  • 最佳用法: 当您具有重复模式时(例如多个相同孔),可加速设置。

检查区域

Inspection Setup 中的检查区域设置

  • 它是: 在模板图像中定义的所有 ROI 的列表。
  • 特性:
    • 添加检查区域: 通过手动创建一个新的 ROI。
    • 忽略区域: 在处理过程中排除特定区域。
    • 编辑: 保存、删除或取消。
    • 锁定图标: 表示被锁定的 ROI,在解锁前不能移动。

实时预览模式

Inspection Setup 中的实时预览模式

  • 它是: 在调整或添加 ROI 之后显示实时反馈。
  • 使用场景: 在设置过程中非常适合对 ROI 位置和尺寸进行 微调

测试按钮

Inspection Setup 中的测试按钮

  • 它是: 基于旧图像运行回测以验证变更。
  • 使用场景: 将当前结果与以前的设置进行比较,以评估准确性和一致性。

数据采集与 AI 训练

定义不同的检查类别,并根据其指定的检查类型对每个 ROI 进行标注(见下方示例)。

已定义检查类别及标注 ROI 的示例

使用 Annotation Tools 对图像进行标注/注释。使用 Brush Class 下拉菜单选择要标注的类别。对于分割,当前每个配方的类别上限为 10 类。

已标注类别示例

高质量数据的重要性

良好数据与不良数据的示例

  • Garbage In, Garbage Out: AI 模型的表现取决于你提供的数据。质量差或不一致的数据会导致结果不准确。
  • Diversity Matters: 收集能够代表所有真实世界变化的数据:不同班次、照明条件、部件位置和表面状况。
  • Quality Over Quantity: 小而干净、标注良好的数据集通常比大型但嘈杂或不一致的数据集表现更好。

Annotation Basics:

  • Classification: 将整张图像或 ROI 标注为特定类别(例如“Good”、“Damaged”)。
  • Segmentation: 以像素级精度在感兴趣的特定区域进行涂抹、轮廓勾画或高亮(例如表面上的划痕位置)。
  • Consistency: 在标注时使用一致的规则和定义,以避免训练过程中的混淆。

良好标注示例

常见陷阱

  • 数据不足: 样本数量太少将导致欠拟合,从而降低实际场景中的性能。
  • 类别不平衡: 某一类别的过度代表(例如大量“良好”部件但缺陷部件较少)会使模型产生偏差。
  • 标注不当: 标注错误、不一致或匆忙标注会导致显著的准确度下降。
  • 忽略环境变化: 当照明、部件朝向或表面条件发生变化而未更新数据集时,会导致准确性漂移。
  • 未进行数据验证: 在训练前跳过质量检查通常会导致时间浪费和返工。

数据增强

图像增强 会人工修改训练图像 以提高模型的鲁棒性。它们模拟现实世界的变化,如亮度变化、旋转或噪声,使模型在不同条件下也能良好工作。

颜色增强

Color Augmentation settings

亮度

  • 是什么: 调整图像的明亮度或黑暗程度。
  • 使用场景: 处理生产过程中的光照微小变化。
提示

在稳定设置下使用 ±0.1;如果光照变化更大则增大该数值。

对比度

  • 是什么: 改变明暗区域之间的对比度。
  • 使用场景: 对具有纹理或表面差异的部件很有帮助,帮助模型适应视觉差异。

色相

  • 是什么: 轻微偏移颜色色调。
  • 使用场景: 当照明颜色(如 LED 色温)随时间可能发生偏移的设置时很有用。

饱和度

  • 是什么: 调整颜色的饱和度。
  • 使用场景: 有助于处理照明变化导致图像看起来黯淡或更鲜艳的情况。

几何增强

Geometric Augmentation settings

旋转范围

  • 是什么: 在设定范围内对图像进行随机旋转(例如,±20°)。
  • 使用场景: 部件可能以略微旋转的位置进入。
提示

对于通常固定朝向的部件,避免过度旋转。

翻转

  • 是什么: 将图像水平翻转、垂直翻转,或两者同时翻转。
  • 使用场景: 对称部件或在搬运过程中方向可能翻转时很有用。

光照与色彩模拟

Lighting & Color Simulation settings

Planckian

  • 是什么: 模拟颜色温度的变化(例如,暖光或冷光)。
  • 使用场景: 处理具有不同光源的工作单元中的各种偏移。

高斯噪声

  • 是什么: 向图像添加微小的噪声。
  • 使用场景: 若生产环境存在微小的视觉噪声或相机传感器伪影,可提高鲁棒性。

运动模拟

Motion Simulation settings

运动模糊

  • 是什么: 模拟拍摄过程中部件移动时的轻微模糊。
  • 使用场景: 对于高速生产线,可能出现运动模糊的情况尤为关键。

概率(prob)

Probability settings

  • 是什么: 设置在训练过程中应用每种增强的概率。
  • 示例: 0.50 = 对任意给定训练图像应用该变化的概率为 50%。
提示

通常,对大多数增强保持 0.5 的起始值,并根据真实世界的变异性进行调整。

训练参数(分割)

训练参数(也称为超参数)是控制 机器学习模型如何从数据中学习 的设置。

学习率

Learning Rate settings

  • 定义: 控制在训练过程中模型更新其内部权重的速度。
  • 数值(0.003): 学习率越高,模型学习越快,但过高可能导致不稳定或精度下降。
  • 滑块范围: 10^-4(非常慢)到 10^-1(非常快)。
提示

通常,0.001–0.01 之间的数值对于分割任务是一个不错的起点。

ROI(Region of Interest)大小

覆盖 ROI 大小 设置

  • 定义: 确定训练过程中使用的图像区域的大小(宽 × 高)。
  • 未勾选: 默认情况下,模型会基于你的数据自动确定 ROI。
  • 勾选时: 如需保持输入尺寸一致,可以手动设置宽度和高度(例如,所有图像裁剪为 256×256 像素)。
提示

当数据集中图像尺寸不一致且你希望输入保持固定以提高稳定性、可重复性,或以匹配已知模型架构时,使用固定尺寸(例如 256×256)。

当数据已经具有统一分辨率,或你希望系统根据数据集特性自动优化以获得最佳 ROI 时,让其自动选择。

Number of Iterations (Epochs)

Number of Iterations (Epochs) settings

  • 定义: 一个 epoch = 对整个训练数据集的一次完整遍历。
  • 数值(100): 模型将进行 100 次完整遍历的训练。
提示

通常增加此数值会在一定程度上提高准确性,但会花更多时间。

经验法则: 在训练过程中监控训练损失和验证损失。如果验证损失不再下降而训练损失仍在下降,则表明模型出现过拟合,应提前停止训练。

Architecture

Architecture settings

  • 定义: 选择神经网络的大小和复杂度。
  • Small: 训练更快,通常即可满足大多数数据集的需求,适合快速试验或较小的数据集。
  • Larger models 能捕捉更多细节,但在小数据集上可能过拟合,而较小的模型在数据有限时更高效且泛化能力通常更好。
提示

从 Small 开始,往往已经足够,并有助于在扩大规模之前更快迭代。

External GPU

External GPU IP Address settings

如需了解更多关于 External GPU,请联系技术支持。

Training Parameters (Classification)

培训参数(也称为超参数)是控制“机器学习模型如何从数据中学习”的设置。

Learning Rate

Learning Rate settings

  • 定义: 控制模型在训练过程中更新内部权重的速度。
  • 数值(0.003): 学习率越高,模型学习越快,但过高可能导致不稳定或准确性下降。
  • 滑块范围: 从 10^-4(非常慢)到 10^-1(非常快)。
提示

通常,0.001–0.01 之间的数值是分割任务的一个良好起点。

Validation Percent

Validation Percent settings

  • 定义: 指定将数据集的哪一部分用于验证(训练期间的测试)。
  • 目的: 验证数据有助于监控模型在未见示例上的表现,防止过拟合。
  • 范围: 0–50%。
提示

常见选择是 10–20%。

若设为 0%,所有数据都用于训练,这可能提升训练准确性,但会使检测过拟合变得更困难。

ROI(Region of Interest)大小

覆盖 ROI 大小设置

  • 定义: 定义在训练过程中使用的图像区域的大小(宽 × 高)。
  • 未选中: 默认情况下,模型会基于您的数据自动确定 ROI。
  • 选中时: 如果需要保持输入尺寸的一致性(例如,所有图像裁剪为 256×256 像素),您可以手动设置宽度和高度。
提示

使用固定尺寸(例如 256×256)当您的数据集包含不同尺寸的图像且您希望输入保持一致,以提高稳定性、可重复性,或与已知的模型架构匹配。

让它在您的数据已经具有统一分辨率时自动选择,或在您希望系统根据数据集特征为 ROI 自动优化时让其自动选择。

迭代次数(Epochs)

迭代次数(Epochs)设置

  • 定义: 一个 epoch = 对整个训练数据集的一次完整遍历。
  • 数值(100): 模型将进行 100 次完整遍历。
提示

提高这个数值通常会在一定程度上提升准确性,但训练时间也会变长。

经验法则: 在训练过程中监控训练损失和验证损失。如果验证损失不再下降而训练损失仍在下降,则表明模型可能发生过拟合,应提早停止训练。

架构

架构设置

  • 定义: 选择神经网络的大小和复杂度。
  • Small: 训练速度更快,通常足以应对大多数数据集。非常适合快速试验或较小数据集。
提示

从 Small 开始,它通常足够,并有助于在扩展规模之前更快进行迭代。

架构与摄像机描述推荐用途
ConvNeXt-PicoUltra-light 模型,优化以实现速度和低内存使用。适用于快速实验或硬件资源受限的场景。
ConvNeXt-Nano比 Pico 略大;在几乎不增加成本的前提下获得更高的准确性。小到中等数据集的良好平衡。
ConvNeXt-Tiny提供更高的准确性,同时仍然高效。适合中等数据集和较长的训练时间。
ConvNeXt-Small该列表中最具能力的变体。容量和准确性更高。用于大型数据集或需要最大性能时。

External GPU

外部 GPU IP 地址设置

联系支持,了解关于 External GPU 的更多信息。