AI 驱动文档
您想了解什么?
使用分类器(单 ROI 示例)
本教程将带您在 OV10i 相机系统上创建第一个分类模型。您将学习如何设置一个单 ROI(Region of Interest)的分类器,以自动识别并对不同类型的对象进行分类——在本示例中为钻头的不同尺寸。
您将构建的内容: 一个可运行的分类模型,能够在可配置的通过/不通过逻辑下自动识别并排序不同尺寸的钻头。
预计用时: 45–60 分钟
难度等级: 初学者
前提条件: OV10i 摄像头系统已设置并连接
步骤 1:创建一个新的分类配方
1.1 进入配方创建
- Navigate to All Recipes page in your OV10i interface
在 OV10i 界面中打开「所有配方」页面 - Click
+ New Recipein the top-right corner
点击+ New Recipe(右上角)
1.2 配置配方设置
The Add A New Recipe modal will appear:
- Enter Recipe Name: Use a descriptive name like "Drill_Bit_Classification_v1"
输入配方名称: 使用描述性名称,如“Drill_Bit_Classification_v1”- Naming Tip: Include the object type and version for easy identification
- 命名提示: 为便于识别,请包含对象类型和版本号
- Naming Tip: Include the object type and version for easy identification
- Select Recipe Type: Choose "Classification" from the dropdown menu
选择配方类型: 从下拉菜单中选择 "Classification" - Click
OKto create the recipe
点击OK以创建配方
1.3 激活并打开配方编辑器
- Locate your new recipe in the All Recipes list (it will show as "Inactive")
在「所有配方」列表中定位到新建的配方(它将显示为「未激活」) - Click
Activateon the right side of the recipe entry
点击配方条目右侧的「启用」 - Click
Activate and go to editorto confirm and launch the recipe editor
点击“启用并进入编辑器”以确认并启动配方编辑器
✅ Checkpoint: Recipe is now "Active" with the Recipe Editor displayed.
✅ 检查点: 配方现已处于“已激活”状态,且显示了配方编辑器。
步骤 2:配置相机成像设置
2.1 打开成像配置
- Click
Configure Imagingin the lower left-hand side of the Recipe Editor
点击配方编辑器左下角的Configure Imaging
2.2 调整对焦设置
对焦对于准确分类至关重要:
- Position your drill bits in the camera's field of view
将钻头放置在相机视野内 - Adjust Focus using either:
- The slider control, OR
- Manual value entry
调整对焦 使用以下任一方式: - 滑块控件,或
- 手动输入数值
- Test different focus positions until drill bit edges are sharp and clear
测试不同的对焦位置,直到钻头边缘清晰锐利
对焦提示:
- Use the live preview to see focus changes in real-time
- 使用实时预览实时观察对焦变化
- Focus on the most important features (drill bit flutes, tip geometry)
- 将对焦聚焦在最重要的特征上(钻头螺槽、端部几何)
- Ensure the entire depth of your objects is in focus
- 确保对象的整个深度范围都在焦平面
2.3 优化曝光设置
合适的曝光可确保一致的图像质量:
- Adjust Exposure using the slider or manual entry
调整曝光 使用滑块或手动输入 - Aim for balanced lighting where:
- Object details are clearly visible
对象细节清晰可见 - No areas are overexposed (pure white)
无区域过曝(纯白) - Shadows don't obscure important features
阴影不遮挡重要特征
- Object details are clearly visible
2.4 配置 LED 照明
照明对分类准确性具有显著影响:
- Select LED Light Pattern based on your objects:
- Bright Field:通用照明
- Dark Field:突出边缘和表面缺陷
- Side Lighting:显示纹理和高度变化
- 对于钻头,请尝试以下选项:
- Bright field 用于一般形状分类
- Side lighting 用于强调螺槽几何
2.5 调整伽玛设置
Gamma controls image contrast:
- 调整伽玛以提升特征可见性
- 较低的数值可使暗区变亮
- 较高的数值会增强对比度
2.6 保存成像设置
- 在实时预览中查看所有设置
- 点击
Save Imaging Settings以应用配置
✅ 检查点: 相机现在应能生成一致、光线充足的钻头图像。
第 3 步:配置模板图像与对齐
3.1 导航至 Alignment
- 点击“模板图像与对齐” 在面包屑导航中,或
- 使用下拉菜单选择“模板图像与对齐”
3.2 跳过对齐器(本教程使用)
由于钻头将被一致放置:
- 选择
Skip Aligner - 点击
Save以应用更改
何时使用对齐器: 当零件到达的位置或方向不同寻常时,请使用对齐器。对于本教程,我们假设零件放置一致。
第 4 步:设置 Inspection ROI
4.1 导航至 Inspection Setup
- 点击 "Inspection Setup" 在面包屑导航中
4.2 定义 Region of Interest
ROI 定义了分类将发生的位置:
- 在摄像头视图中放置钻头
- 拖动 ROI 的角点以框选钻头
- 确保 ROI:
- 完全包含钻头
- 排除不必要的背景
- 对于最大的钻头尺寸变体也要足够大
4.3 ROI 最佳实践
| 做 | 不做 |
|---|---|
| 包含所有重要特征 | 将 ROI 设得过大(包含噪声) |
| 在对象周围留出小边框 | 将对象的部分剪切掉 |
| 将期望对象居中 | 同一个 ROI 中包含多个对象 |
| 在不同图像中保持一致的 ROI 大小 | 拍摄时改变 ROI |
4.4 保存 ROI 配置
- 在不同钻头尺寸下验证 ROI 位置
- 点击
Save以应用 ROI 设置
检查点: 无论钻头的具体尺寸如何,ROI 应能始终框选钻头。
第 5 步:训练 Classification Model
5.1 导航到 Classification Block
- 点击 "Classification Block" 在面包屑导航中
5.2 创建 Classification Classes
您将为不同钻头尺寸创建分类类:
示例分类:
- Small Bits (1-3mm)
- Medium Bits (4-6mm)
- Large Bits (7-10mm)
5.3 捕捉 Training Images
每个类别至少捕捉 5 张不同图像:
Class 1: Small Bits
- 将小钻头放置在 ROI 中
- 点击 capture 以获取训练图像
- 将图像标注为“Small”
- 对另外 4 个不同方向/位置的小钻头重复一次
Class 2: Medium Bits
- 在 ROI 内放置中等尺寸钻头
- 捕获并标注为“Medium”
- 另外 4 次,使用不同的中等尺寸钻头
Class 3: Large Bits
- 在 ROI 内放置大钻头
- 捕获并标注为“Large”
- 另外 4 次,使用不同的大钻头
5.4 训练图像最佳实践
| 最佳实践 | 重要原因 |
|---|---|
| 使用不同示例 | 提高模型泛化能力 |
| 改变方向 | 处理现实世界的定位变化 |
| 包含边缘情况 | 改善类别之间的边界检测 |
| 保持一致的照明 | 降低受照明影响的错误 |
| 至少 5 张图片 | 提供足够的训练数据 |
5.5 标签审核与验证
- 仔细核对所有带标签的图像
- 确保正确的类别分配
- 删除任何标注错误的样本
5.6 开始模型训练
- 点击
Train Classification Model - 选择训练模式:
- Fast: 快速训练以进行测试(2-5 分钟)
- Accurate: 生产级训练(10-20 分钟)
- 选择迭代次数:
- More iterations = Better accuracy → 更多迭代 = 更高的准确度
- More iterations = Longer training time → 更多迭代 = 更长的训练时间
- 点击
Start Training
5.7 监控训练进度
训练进度对话框显示:
- 当前迭代次数
- 训练准确度百分比
- 预计完成时间
训练控制:
- Abort Training: 如有需要可中止训练
- Finish Training Early: 当准确度达到足够时停止
训练提示:
- 训练在达到目标准确度时自动停止
- 85%+ 的准确度通常适用于生产环境
- 如果准确度较低,可以使用更多图像重新训练
✅ Checkpoint: 您的模型应达到 >85% 的训练准确度。
Step 6: 测试您的分类器
6.1 访问实时预览
- 点击
Live Preview训练完成后 - 在 ROI 中放置不同的钻头
- 观察分类结果:
- 预测的类别名称
- 置信度百分比
- 分类耗时
6.2 验证测试
逐类系统性测试:
| Test Type | Expected Result | Action if Failed |
|---|---|---|
| Known Small Bit | 被分类为 "Small" >80% 置信度 | 添加更多训练图像 |
| Known Medium Bit | 被分类为 "Medium" >80% 置信度 | 审核标注准确性 |
| Known Large Bit | 被分类为 "Large" >80% 置信度 | 使用更多示例重新训练 |
| Empty ROI | 无分类或置信度较低 | 调整置信阈值 |
6.3 分类问题排除
| Problem | Possible Causes | Solutions |
|---|---|---|
| Low confidence | 训练数据不足 | 添加更多训练图像 |
| Wrong classifications | 图像质量差 | 提高照明/对焦 |
| Inconsistent results | ROI 包含背景噪声 | 减小 ROI 的尺寸 |
| Classes confused | 外观相似的对象 | 添加更多具辨识性的示例 |
Step 7: 配置通过/失败逻辑
7.1 导航到 IO Block
在继续之前,请确保所有 AI 块已训练完毕(绿色状态):
- 点击 "IO Block" 在面包屑菜单中,或
- 从 Recipe Editor 选择 "Configure I/O"
7.2 查找 Classification Logic Node
- 找到 "Classification Block Logic Node"(紫色节点)
- **如果缺失:**从左侧的节点菜单拖拽
节点颜色: 紫色节点表示用于 AI 操作的 Overview Logic Blocks。
7.3 配置 Classification Logic
- 双击 Classification Logic Node
- 配置设置:
ROI 选择
- 从 "Inspection Region" 下拉菜单中选择您的 ROI
置信度阈值
- 设置置信度阈值(通常为 70-85%)
- 更高阈值 = 更严格的分类
- 较低阈值 = 更宽松的分类
目标类别选择
- 为“通过”结果选择目标类别
- 示例:如果只有 Medium 位应通过,请选择“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 部署逻辑配置
- 在右上角点击
Done - 在 Node-RED 编辑器右上角点击
Deploy - 验证部署成功消息
第 8 步:最终测试与验证
8.1 端到端测试
测试完整的检测工作流程:
- 在检测区放置测试对象
- 触发检测(手动或自动)
- 验证结果:
- 显示正确的分类结果
- 正确的通过/失败指示
- 一致的时序性能
8.2 生产验证清单
| 测试用例 | 预期结果 | ✓ |
|---|---|---|
| 目标类别对象 | 通过结果 | ☐ |
| 非目标类别对象 | 失败结果 | ☐ |
| 空 ROI | 失败结果 | ☐ |
| 部分遮挡对象 | 适当的置信度水平 | ☐ |
| 照明条件差 | 稳定的性能 | ☐ |
8.3 性能优化
如果结果不令人满意:
- 添加更多训练图像(特别是边缘情况)
- 调整置信度阈值
- 提高照明一致性
- 优化 ROI 定位
- 在 "Accurate" 模式下重新训练
恭喜!
您已成功创建了第一 个分类模型!您的 OV10i 系统现在可以:
- 自动识别不同钻头尺寸
- 基于分类结果应用通过/失败逻辑
- 为每个分类提供置信分数
- 通过 I/O 控件与生产工作流集成
下一步
现在您已经掌握了单 ROI 分类,可以考虑探索:
高级分类技术
- Multi-ROI classification,用于复杂部件
- Hierarchical classification,用于详细分类
- Combination inspection(classification + defect detection)
生产集成
- PLC communication,用于自动分拣
- Data logging,用于质量跟踪
- Recipe management,用于多条产品线
模型优化
- Transfer learning,用于相似产品
- Active learning,用于持续改进
- Performance monitoring 与 retraining schedules
🔗 相关链接
故障排除指南
常见问题与解决方案
| 问题 | 症状 | 解决方案 |
|---|---|---|
| 精度差 | 分类结果经常错误 | 增加更多多样化的训练图像 |
| 性能慢 | 处理时间较长 | 降低 ROI 大小,优化照明 |
| 结果不一致 | 同一对象给出不同结果 | 改进部件定位,检查对焦 |
| 误报 | 空 ROI 显示分类 | 提高置信度阈值 |
| 训练失败 | 模型无法成功训练 | 检查图像质量,确保每个类别 5 张以上图像 |
获取帮助
如果在本教程中未覆盖的问题,请:
- 在文档中查看故障排除指南
- 检查系统日志以获取错误消息
- 联系 Overview 支持,并提供:
- 配方导出文件
- 展示问题的示例图像
- 系统配置详情
教程完成! 现在您拥有一个可投入生产使用的分类系统。请定期验证性能,并在需要时重新训练您的模型,以维持长期的准确性。