跳到主要内容

使用分类器(单 ROI 示例)

本教程将带你在 OV20i 摄像系统上创建你的第一个分类模型。你将学习如何设置一个单一 ROI(Region of Interest)分类器,以自动识别并对不同类型的对象进行分类——在本示例中为钻头的不同尺寸。

将要构建: 一个可运行的分类模型,能够自动识别并对不同钻头尺寸进行分类和排序,并具备可配置的通过/不通过逻辑。

预计时间: 45–60 分钟

技能等级: 入门

先决条件: 已设置并连接 OV20i 摄像系统

步骤 1:创建一个新的分类配方

1.1 进入配方创建界面

  1. 在 OV20i 界面中导航到“所有配方”页面
  2. 点击 + New Recipe 在右上角

1.2 配置配方设置

将显示“添加新配方”对话框:

  1. 输入配方名称: 使用一个描述性的名称,例如 “Drill_Bit_Classification_v1”
    • 命名提示: 为了便于识别,请包含对象类型及版本信息
  2. 选择配方类型: 从下拉菜单中选择 “Classification”
  3. 点击 OK 以创建配方

1.3 启用并打开配方编辑器

  1. 在“所有配方”列表中定位新建的配方(它将显示为“Inactive”)
  2. 点击配方条目右侧的 Activate
  3. 点击 Activate and go to editor 以确认并启动配方编辑器

检查点: 配方现已显示为“Active”,并显示配方编辑器。

步骤 2:配置相机成像设置

2.1 打开成像配置

  1. 在配方编辑器的左下角单击 Configure Imaging

2.2 调整焦点设置

焦点对准确分类至关重要:

  1. 将钻头放置在相机视野中
  2. 使用以下任一方式调整焦点:
    • 滑块控件,或
    • 手动数值输入
  3. 测试不同的焦点位置,直到钻头边缘清晰锐利

焦点提示:

  • 使用实时预览查看焦点变化(实时)
  • 将焦点放在最重要的特征上(钻头螺旋槽、尖端几何形状)
  • 确保对象的整个深度在焦点范围内

2.3 优化曝光设置

适当曝光可确保一致的图像质量:

  1. 使用滑块或手动输入调整曝光
  2. 目标是在均衡照明下:
    • 对象细节清晰可见
    • 无区域过曝(纯白)
    • 阴影不过于遮蔽重要特征

2.4 配置 LED 照明

照明对分类准确性有显著影响:

  1. 根据对象选择 LED 光模式:
    • Bright Field(明场):通用照明
    • Dark Field(暗场):突出边缘和表面缺陷
    • Side Lighting(侧光):揭示纹理和高度变化
  2. 对于钻头,尝试:
    • **Bright Field(明场)**用于一般形状分类
    • **Side Lighting(侧光)**以突出螺旋槽几何形状

2.5 调整 Gamma 设置

Gamma 控制图像对比度:

  1. 调整 Gamma 以增强特征可见性
  2. 较低数值可提亮暗区
  3. 较高数值可提升对比度

2.6 保存成像设置

  1. 在实时预览中查看所有设置
  2. 点击 Save Imaging Settings 以应用配置

Checkpoint: 您的相机现在应能对钻头产生一致、光线充足的图像。

第 3 步:配置模板图像与对齐

3.1 导航至对齐

  1. 在面包屑导航中点击 Template Image and Alignment,或
  2. 使用下拉菜单选择 Template Image and Alignment

3.2 跳过对齐器(本教程)

由于钻头将被一致地放置:

  1. 选择 Skip Aligner
  2. 点击 Save 以应用更改

何时使用 Aligner: 当部件到达时以不同的位置或方向出现时使用对齐器。对于本教程,假设部件放置保持一致。

第 4 步:设定检查 ROI

4.1 导航至 Inspection Setup

  1. 点击面包屑导航中的 Inspection Setup

4.2 定义 ROI

ROI 定义了分类将发生的位置:

  1. 在相机视图中放置钻头
  2. 拖动 ROI 的角点 以框定钻头
  3. 确保 ROI:
    • 完全包含钻头
    • 排除不必要的背景
    • 足够覆盖最大钻头型号

4.3 ROI 最佳实践

要做不要做
包含所有重要特征让 ROI 太大(包含噪声)
在对象周围留出小边界截断对象的部分
将预期对象居中在一个 ROI 中包含多个对象
在图像间保持一致的 ROI 尺寸捕获之间更改 ROI

4.4 保存 ROI 设置

  1. 使用不同尺寸的钻头验证 ROI 位置
  2. 点击 Save 以应用 ROI 设置

Checkpoint: 无论钻头的具体尺寸如何,ROI 应始终能框定钻头。

第 5 步:训练分类模型

5.1 导航至 Classification Block

  1. 在面包屑导航中点击 Classification Block

5.2 创建 Classification Classes

您将为不同钻头尺寸创建分类:

示例类别:

  • Small Bits (1-3mm)
  • Medium Bits (4-6mm)
  • Large Bits (7-10mm)

5.3 捕获训练图像

对于每个类别,至少捕获 5 张不同的图像:

Class 1: Small Bits

  1. 在 ROI 中放置一个小钻头
  2. 点击 capture 获取训练图像
  3. 将图像标注为“Small”
  4. 再用 4 个不同朝向/位置的小钻头重复

Class 2: Medium Bits

  1. 在 ROI 中放置一个中等钻头
  2. 捕获并标注为“Medium”
  3. 再用不同的中等钻头重复 4 次

Class 3: Large Bits

  1. 在 ROI 中放置一个大型钻头
  2. 捕获并标注为“Large”
  3. 再用不同的大钻头重复 4 次

5.4 训练图像最佳实践

最佳实践为何重要
使用不同的示例提高模型的泛化能力
改变朝向处理现实世界的定位变化
包含边缘情况更好地在类别之间界限检测
保持一致的照明降低对照明依赖的错误
最少 5 张图像提供足够的训练数据

5.5 审阅并验证标签

  1. 仔细检查所有标注的图像
  2. 确保正确的类别分配
  3. 删除任何标注错误的示例

5.6 启动模型训练

  1. 点击 Train Classification Model
  2. 选择训练模式:
    • Fast: 快速训练用于测试(2-5 分钟)
    • Accurate: 生产就绪训练(10-20 分钟)
  3. 选择迭代次数:
    • More iterations = Better accuracy更多迭代 = 更高的准确性
    • More iterations = Longer training time更多迭代 = 更长的训练时间
  4. 点击 Start Training

5.7 监控训练进度

训练进度模态框显示:

  • 当前迭代次数
  • 训练准确率百分比
  • 预计完成时间

训练控件:

  • Abort Training: 如有需要,停止训练
  • Finish Training Early: 当达到足够的准确度时停止训练

训练提示:

  • 目标准确度达到时,训练会自动停止
  • 85%+ 准确度通常适用于生产使用
  • 如准确度较低,可以使用更多图像重新训练

Checkpoint: 您的模型应达到 >85% 的训练准确度。

Step 6: 测试您的分类器

6.1 访问实时预览

  1. 点击 Live Preview 训练完成后
  2. 将不同的钻头放置在 ROI 中
  3. 观察分类结果:
    • 预测的类别名称
    • 置信度百分比
    • 分类时间

6.2 验证测试

逐一系统地测试每个类别:

测试类型预期结果失败时的处理
已知小位分类为 "Small" >80% 置信度添加更多训练图像
已知中位分类为 "Medium" >80% 置信度检查标签准确性
已知大位分类为 "Large" >80% 置信度用更多示例重新训练
空 ROI无分类或低置信度调整置信度阈值

6.3 分类问题排查

问题可能原因解决办法
低置信度训练数据不足添加更多训练图像
错误的分类图像质量差改善照明/对焦
结果不一致ROI 包含背景噪声减小 ROI 大小
类别混淆外观相似的对象添加更多可区分的示例

Step 7: 配置通过/失败逻辑

7.1 导航至 IO Block

在继续之前,请确保所有 AI 块都已训练完成(绿色状态):

  1. 点击面包屑菜单中的 "IO Block",或
  2. 从 Recipe Editor 选择 "Configure I/O"

7.2 定位 Classification Logic Node

  1. 找到名为 "Classification Block Logic Node" 的节点(紫色节点)
  2. 若缺失: 从左侧的节点菜单拖拽

节点颜色: 紫色节点表示 AI 运算的 Overview Logic Blocks。

7.3 配置 Classification Logic

  1. 双击 Classification Logic Node
  2. 配置设置:

ROI 选择

  • 从 "Inspection Region" 下拉菜单中选择您的 ROI

置信度阈值

  • Set confidence threshold(通常为 70-85%)
  • Higher threshold = 更严格的分类
  • Lower threshold = 更宽松的分类

目标类别选择

  • 为“通过”结果选择目标类别
  • **示例:**仅当中等位应通过时,请选择“Medium”

多 ROI 逻辑(高级)

  • 如有需要,添加更多 ROI
  • 选择逻辑: Any 或 All 规则必须通过

7.4 示例通过/失败配置

配置 1:尺寸特定通过

ROI: Drill_Bit_ROI
Target Class: Medium
Confidence: 80%
Logic: Pass only medium drill bits

配置 2:尺寸范围通过

ROI: Drill_Bit_ROI
Target Classes: Medium OR Large
Confidence: 75%
Logic: Pass medium or large bits

配置 3:拒绝小位

ROI: Drill_Bit_ROI
Target Class: NOT Small
Confidence: 85%
Logic: Fail if classified as small

7.5 部署逻辑配置

  1. 在右上角点击 Done
  2. 在 Node-RED 编辑器的右上角点击 Deploy
  3. 验证部署成功消息

第 8 步:最终测试与验证

8.1 端到端测试

测试完整的检测工作流程:

  1. 在检测区域放置测试对象
  2. 触发检测(手动或自动)
  3. 验证结果:
    • 显示正确的分类
    • 正确的通过/失败指示
    • 时序性能一致

8.2 生产验证清单

测试用例预期结果
目标类别对象通过结果
非目标类别对象失败结果
空 ROI失败结果
部分遮挡对象适当的置信度水平
照明条件差性能稳定

8.3 性能优化

如果结果不令人满意:

  1. 添加更多训练图像(尤其是边缘情形)
  2. 调整置信度阈值
  3. 改善照明一致性
  4. 细化 ROI 定位
  5. 使用“Accurate”模式重新训练

恭喜!

您已成功创建第一个分类模型!您的 OV20i 系统现在可以:

  • 自动识别不同钻头尺寸
  • 基于分类结果应用通过/失败逻辑
  • 为每个分类提供置信度分数
  • 通过 I/O 控制与生产工作流集成

下一步

现在您已掌握单个 ROI 分类,可以考虑探索:

高级分类技术

  • Multi-ROI 分类(面向复杂部件)
  • Hierarchical 分类(用于详细分类
  • Combination inspection(classification + defect detection)

生产集成

  • PLC 通信用于自动分拣
  • 用于质量跟踪的数据记录
  • 针对多条生产线的 Recipe 管理

模型优化

  • Transfer learning(针对相似产品)
  • Active learning(用于持续改进)
  • Performance monitoring 与 retraining schedules

🔗 参阅

故障排除指南

常见问题及解决方案

问题症状解决方案
精度低分类经常错误增加更多样本的训练图像
性能慢处理时间较长降低 ROI 尺寸,优化照明
结果不一致同一对象产生不同结果改善部件定位,检查对焦
误检空 ROI 显示分类结果提高置信度阈值
训练失败模型无法成功训练检查图像质量,确保每个类别不少于 5 张图像

获取帮助

如果您在本教程未覆盖的问题遇到困扰:

  1. 检查文档中的故障排除指南
  2. 查看系统日志以获取错误消息
  3. 联系 Overview 支持,并提供:
    • 配方导出文件
    • 展示该问题的示例图像
    • 系统配置详情

教程完成! 您现在拥有一个可用于生产的分类系统。请定期验证性能,并在需要时重新训练模型,以确保长期准确性。