SVS(SmartVision Studio)
产品概述
算法开发平台SmartVision Studio(以下简称为“SVS”)是阿加犀自主研发的视觉算法开发平台,由图像处理算子和交互式视觉功能模块组成。该平台功能丰富、简单易用,助力开发者通过拖拽连线方式,快速搭建定位、测量、缺陷检测、信息识别等各类视觉方案。
工作方式
采集图像 → 预处理 → 定位/匹配 → 测量/检测 → 结果过滤/判定 → 输出(图像/IO)工作流以节点为基本单元:每个节点代表一个功能模块,节点之间有输入输出的连线关系,整体流程在画布上编辑、一键执行。
快速入门
本文档带你从零完成第一个检测流程:图像源→ DL定位→ 轮廓识别→轮廓裁切→结果绘制。整个过程约 5 分钟。
第 1 步:启动软件
确认设备上 SVS 服务已启动(后端默认端口 58300)。
在浏览器中打开前端页面(开发环境默认
http://{ip}:58300,正式环境以部署地址为准)。页面加载后即进入工作流编辑主界面,无需登录。
第 2 步:新建工作流
点击顶部操作栏的 新建工作流。
在弹出窗口中输入工作流名称(例如"快速入门"),点击 确定。
画布上出现名称为 主流程 的空白流程页。

第 3 步:添加采集节点
1.在左侧 工具模块 面板的 采集 分类下,找到 图像源。
2.按住 图像源 拖拽到画布空白处后松开,画布上出现该节点。
- 节点需要配置相机或静态图后才能运行,详见图像源。
3.配置图像源参数,选择相机(C0相机、C1相机、C2相机),默认使用C0相机

第 4 步:添加工具模块
1.将定位、轮廓识别、轮廓裁切、结果绘制拉到画布中,并连线。

2.将AIC训练好的模型下载到本地(具体参考深度学习)章节,上传定位模型。

第 5 步:执行工作流
1.点击顶部操作栏的 执行 按钮。
2.执行过程中页面显示遮罩提示"工作流执行中…"。

3.执行结束后,底部汇总栏显示流程总耗时、模块数量与结果状态。

第 6 步:查看结果
1.右侧面板切换到 图像 标签页,查看输出图像。

第 7 步:导出应用
1.将运行成功的流程导出应用到SVE(具体步骤参考方案全局功能-导出应用)章节

2.在浏览器中访问相机IP:58200,点击启动已推送的应用,然后进行运行预览

下一步
界面介绍
本章节介绍 SmartVision Studio(SVS)平台的整体界面布局及各区域的功能说明,帮助用户熟悉界面结构并快速上手进行工作流搭建与调试。
界面布局
SmartVision Studio 采用四区域布局:
工具栏:可拖拽的节点模块库,支持拖拽或者双击模块到工作区内
操作栏:工作流级别的快捷操作按钮
画布区:流程设计与节点编辑主工作区,支持多流程标签页切换
展示区:用于查看图像输出和模块执行结果

操作栏
包括两部分,如下图所示:

工作流名称区域:显示当前工作流名称,支持以下操作。
功能 操作 详细描述 重命名工作流 双击工作流名称 1. 弹出"重命名工作流"对话框
2. 输入新名称
3. 点击"确定"
4. 系统检查是否与相机端工作流重名
5. 若重名,显示警告并阻止保存查看流程列表 鼠标悬停在工作流名称上 - 弹出流程列表浮窗
- 显示所有流程名称(当前仅支持1个主流程)
- 点击流程名称可重新打开该流程标签页常用功能按钮区域:提供部分常用功能的快捷入口。
各功能按钮直接单击即可操作,相关简介如下表:
图标 名称 操作描述 
新建工作流 1. 弹出"新建工作流"对话框
2. 输入工作流名称
3. 点击"确定"完成创建
4. 自动创建主流程并进入编辑从本地加载工作流 1. 触发文件选择对话框
2. 选择.json格式的工作流文件
3. 系统自动解析并加载工作流到画布打开示例 打开内置示例应用 导出工作流到本地 将当前工作流导出为本地 .json文件保存到相机 将当前工作流保存到相机端 生成应用 画布非空且只有一个完整流程链,支持将工作流导出为一个独立应用
此操作会自动保存工作流至相机全局相机设置 详见"全局相机"节内容 执行当前工作流 画布非空且只有一个完整流程链。
1. 按钮变为旋转动画
2. 全屏显示半透明遮罩和"工作流执行中..."提示
3. 执行完成后自动关闭遮罩
4. 结果显示在右侧结果面板
此操作会自动保存工作流至相机撤销 存在可撤销的历史操作时,撤销上一步画布操作 恢复 存在已撤销的操作时,恢复已撤销的操作 清空画布 清空当前流程的所有节点和连线 从相机删除 1. 弹出"从相机删除"对话框
2. 列表显示相机端所有工作流
3. 单击选中要删除的工作流
4. 点击"删除"按钮
5. 确认后删除
工具栏
工具模块按功能分为十三大类,具体参考模块介绍节:
| 分类 | 模块数量 | 说明 |
|---|---|---|
| 采集 | 4 | 采集类模块用于获取图像输入源,支持相机实时采集、多图像源切换和静态图导入。每个工作流必须包含一个采集节点作为起点。 |
| 图像处理 | 7 | 图像处理模块提供基础的图像预处理和变换功能,包括滤波去噪、形态学操作、二值化、缩放、几何变换和图像组合等。 |
| 颜色处理 | 1 | 颜色处理模块用于颜色空间转换,支持将 RGB 彩色图像转换为灰度图、HSV、HSI 或 YUV 图像。 |
| 定位与目标提取 | 10 | 定位与目标提取模块是视觉检测的核心,包括圆查找、直线查找、边缘查找、轮廓识别、Blob分析等多种定位算法。 |
| 匹配 | 4 | 高精度匹配、轮廓匹配、快速匹配、灰度匹配 |
| 测量 | 6 | 测量模块用于计算图像中特征点/线之间的几何距离,支持点点测量、点线测量、线线测量、线圆测量、圆圆测量、点圆测量。 |
| 标定与坐标 | 2 | 标定板标定、单位转换 |
| 识别与读码 | 1 | 识别与读码模块用于从输入图像中识别并读取码符号的编码内容。 |
| 深度学习 | 7 | 深度学习模块集成 AI 推理能力,支持目标检测、分类、分割、OCR 等多种模型,以及文本目标检测。 |
| 结果处理与可视化 | 2 | 结果处理模块用于将检测或测量结果绘制到输出图像上,便于可视化验证。 |
| 逻辑判定 | 2 | 逻辑判定模块用于对检测结果进行条件过滤和逻辑判断,支持结果过滤和条件判定两种模式。 |
| 通信 | 1 | 通信模块用于与外部设备进行 IO 信号交互。 |
| 扩展 | 1 | 扩展模块支持自定义处理逻辑,可加载用户自定义模型或算法库。 |
画布区
画布区是用于搭建、编辑和管理工作流的核心区域。用户可通过拖拽模块节点、创建连线和配置节点参数的方式,完成视觉算法处理流程的搭建。
- 流程标签页操作
| 功能 | 操作 | 详细描述 |
|---|---|---|
| 新建流程 | 单击标签页最右侧的 + 按钮 | 1. 弹出"新建流程"对话框 2. 输入流程名称 3. 点击"确定"创建 4. 自动打开新流程标签页 当前版本仅支持使用默认的主流程,暂不允许创建额外的流程,多流程功能将在后续版本中开放。 |
| 切换流程 | 单击流程标签页 | - 画布切换到对应流程 - 右侧图像源和结果面板自动刷新 - 每个流程独立记忆图像源选择状态 |
| 重命名流程 | 双击流程标签页名称 | 1. 弹出"重命名流程"对话框 2. 输入新名称 3. 点击"确定"完成重命名 |
| 删除流程 | 点击标签页上的删除图标(垃圾桶) | 1. 弹出确认框:"确认删除流程?" 2. 点击"确定"永久删除流程 |
- 模块节点操作
| 功能 | 操作 | 详细描述 |
|---|---|---|
| 添加模块节点 | 选中工具模块拖动至画布区 | 1. 在节点模块上按下鼠标左键 2. 保持按下状态移动鼠标到画布 3. 在目标位置释放鼠标 4. 节点自动生成在释放位置 每个流程只能有一个采集节点(相机或静态图),重复添加会提示错误。 |
| 单击模块节点 | 左键单击节点 | - 节点边框高亮显示 - 右侧展示区自动刷新该节点的输出结果 - 自动请求节点的输出结果数据 此操作会自动保存工作流至相机 |
| 双击模块节点 | 左键双击节点 | 弹出节点配置对话框,点击"执行"或"确定"按钮。 此操作会自动保存工作流至相机 |
| 拖动模块节点 | 按住节点拖动 | - 实时移动节点位置 - 连接的边自动跟随调整 |
| 右键选中 | 右键单击节点 | 节点被选中并虚线框高亮显示 |
| 右键多选节点 | 依次右键点击多个节点 | 所有右键点击的节点都被选中 |
| 长按右键拖动 | 按住鼠标右键拖动框选节点 | 所有被框选的节点以及连线都会被选中 |
| 删除节点 | 右键选中节点后,会自动弹出删除操作面板 | 删除所有选中的节点 |
| 取消选中 | 点击画布空白区域 | 取消所有节点选中状态,删除面板自动隐藏 |
| 创建连线 | 1. 鼠标悬停在节点,显示连接点 2. 按下连接点并拖动 3. 移动到目标节点的连接点 4. 释放鼠标完成连接 | |
| 删除连线 | 右键点击连线,选择"删除" | 删除连线 |
底部:汇总栏

显示当前流程的运行统计:
流程总耗时
选中模块耗时
模块数量
结果状态(成功/失败)
展示区

包括两部分的内容:
图像:显示当前选中模块的输出图像。在执行完整个工作流程后,该流程上涉及到的所有模块的输出图像,可在下拉框中进行选择展示。选项按照此格式:
模块节点名 #短ID.输出图像 (1/N),例如DL模型集 #fbec .输出图像 (1/2),则表示,DL模型集模块的ID为#fbec,其模块输出图像数总数为2,当前显示的其第1张图像。模块结果:显示当前选中模块的输出结果数据,不同的模块,将显示不同结果数据,具体参考"模块介绍"节。
支持按类型筛选结果
支持全部展开/折叠
支持下载图片或导出数据
图像输出
当选择“图像”选项卡时,系统会显示当前模块及其上游模块的图像信息(若上游模块存在图像输出)。 用户可通过复选框选择需要查看的图像,系统将同步显示所选图像内容。
如下图所示:

当图像源为“静态图”时,展示区将提供静态图列表管理功能,详见"图像源"模块节介绍
模块结果
当模块运行完成后,系统将在右侧的模块输出面板中显示该模块的运行结果。 模块结果区域主要由两部分组成:
顶部区域:显示模块的运行信息(如状态、耗时等)。
主体内容:展示该模块对应的运算输出结果。
如下图所示:

对于大多数以图像为主的模块(例如:图像源、裁剪、图像滤波、形态学处理、二值化等), 输出结果主要为图片。界面中会展示图片的以下信息:
图像尺寸:显示图片的宽度与高度。
图像格式:展示当前图片的编码格式(如 JPG、PNG、BMP 等)。
图片操作:
下载图片:可将输出图片保存至本地。
放大预览:支持全屏或局部放大查看,便于观察细节。
如下图所示:

其他模块除图像结果外,还会输出其他附加信息,具体参考模块介绍节内容。
方案组成介绍
流程管理
工作流用于组织并执行视觉处理与推理流程。用户可根据检测需求,通过拖拽模块、创建连线与设置参数的方式,完成算法方案的搭建。
工作区域
当创建新的工作流后,可从左侧工具栏中选择所需的工具模块,拖拽至主流程工作区域中,即可形成一个完整的工作流。
主流程区域支持多种编辑与视图操作,包括:连线类型切换、放大/缩小、自适应视图、锁定模块等功能,方便用户灵活地调整流程结构与布局。
如下图:

连线类型:可修改模块之间的连线样式,支持三种类型:智能折线、直线、曲线,便于根据流程复杂度选择合适的展示方式。
放大:放大当前工作区域,便于查看细节或进行精确的模块操作。
缩小:缩小工作区域,适合查看整体流程结构。
自适应视图:自动调整视图比例与模块大小,快速定位当前工作流的最佳显示范围。
锁定模块:锁定后,模块将无法被拖动或调整位置,用于防止误操作。
流程错误提示说明
在构建工作流过程中,如果某些模块配置不完整、模型缺失或依赖的上游节点异常,
系统会在主流程区域中高亮显示错误状态,以帮助用户快速定位问题。
如下图所示:

当模块出现错误时,系统将以 红色边框与红色图标 标记该节点,并在鼠标悬停时显示详细的错误提示信息。
模块通用配置
基本参数
- 图像源:默认订阅前序模块输出的图像。
运行参数
- 运行参数:可对模块进行视觉检测时的算法参数进行设置,从而达到理想检测效果。不同模块,运行参数各不相同,具体请以模块实际内容为准。
方案全局功能
导出应用
导出应用功能用于将当前工作流打包生成独立的可部署应用。

方便在其他设备中直接运行,无需重新编辑工作流。如下图所示

在导出应用界面中,需填写应用的基本信息及导出目标:
应用 ID:必填,应用的唯一标识符,用于区分不同应用。建议采用英文或数字组合。
应用版本号:必填,应用版本号,格式建议为 主版本.次版本.修订号(例如:1.0.0)。用于版本管理与更新记录。
应用名称:必填,应用的显示名称,将在导出后用于识别应用。
应用描述:对应用功能、用途或算法流程的简要说明(最多 200 字),方便后期维护与识别。
在界面底部可选择导出目标,用于指定应用导出位置:
本地: 将应用导出至本地计算机,生成独立的应用包文件(通常为
.zip格式)。 适合离线部署、备份或传输至其他设备。SVE 相机端: 直接将应用推送至本地的 SVE 相机设备。 系统将自动进行传输与部署,完成后可在相机端直接运行该应用。
全局相机
全局相机管理用于统一配置、管理和调试所有已连接的相机设备。通过在该界面配置相机参数,可确保图像采集效果稳定一致,从而提高后续算法处理结果的准确性与可靠性。

用户可在此模块中查看、选择并调整各个相机的基本参数与色彩参数,以满足不同的算法任务需求。
如下图所示:

相机列表
界面左侧显示所有已识别的相机设备列表,例如:C0 相机、C1 相机、C2 相机。
提示:相机编号与线缆/设备接口应在现场安装阶段进行对应标记,以避免后续调试混淆。
点击任意相机名称,即可进入对应的参数设置界面及预览画面。
基本参数设置
右侧区域为当前相机的详细参数配置区,分为基本参数设置与色彩参数设置两部分。
分辨率(pixel):设置相机输出图像的分辨率,支持多种标准分辨率选项(如 3840×2160、1920×1080 等)。
触发帧率 (fps):设置相机的帧率,即每秒钟采集的帧数。较高帧率可获得更流畅的画面,但可能增加系统负载。如60fps、120fps
曝光模式:支持“自动”与“手动”两种模式。
自动模式:系统根据光照条件自动调整曝光。
手动模式:用户可自行设置曝光时长、曝光度、曝光补偿,实现精确控制。
色彩参数设置
自动白平衡
设置相机的白平衡方式,支持:
自动:系统自动调整色温平衡;
手动:用户可自定义白平衡参数。
图像调节参数
| 参数名称 | 范围 | 说明 |
|---|---|---|
| 饱和度 | 0 – 100 | 控制图像颜色的鲜艳程度。 |
| 对比度 | 0 – 100 | 控制图像明暗层次的对比强度。 |
| 锐度 | 0 – 100 | 控制图像边缘的清晰度 |
自定义白平衡
在关闭自动白平衡的情况下,可手动设置白平衡参数,适用于光源条件固定的场景。支持设置RGB增益和色温调整。
节点通用参数:ROI
多数定位与检测节点支持 ROI 设置,用于限定检测范围:
在配置弹窗中展开 ROI 设置,可在"手动"与"全幅"之间切换。
手动模式支持矩形、多边形、直线卡尺、圆卡尺、圆弧卡尺等形状(不同模块支持形状不同)。
ROI 参数如起点、宽高、半径、卡尺数量等随形状动态变化。
模块介绍
采集
采集分类下的模块可设置图像输入源。
图像源
图像源模块提供图像来源,可选本地图像、相机。

参数配置
图像源选择相机时,可从已配置的相机中获取图像。此时需设置以下参数:
- 选择相机:选择关联的相机。点击"执行"按钮,可抓取对应相机的一帧图片显示在图像区域。相机的配置,可参见"全局相机"节。
当图像源选择本地图像时,可从本地图像中加载图像。此时需设置以下参数:
- 采集间隔(ms):相邻的两张图片加载的时间间隔。图片可通过右侧的图像展示区域,进行本地上传。
静态图配置
点击 “本地上传” 按钮,即可从本地选择文件上传到平台。
系统支持主流图像格式(如 JPG、PNG、BMP 等),上传成功后,图片将显示在静态图列表中。
提示: 上传前请确认图片尺寸及格式符合当前模块的输入要求。

上传完成后,所有静态图会显示在列表中。用户可进行如下操作:
选择图片:勾选需要用于执行工作流的图片。
删除图片:移除当前选中的静态图。
全部删除:清空当前所有静态图文件。
删除操作不可恢复,请谨慎操作。
在工作流执行时,当节点图像源选择为“静态图”模式,
系统将使用静态图列表中被勾选的图片进行任务处理。
平台最多支持同时选中 5 张静态图,工作流将按顺序依次使用这些图像作为输入源执行。
多图像源
多图像源模块用于从多个物理相机中同时获取图像数据。它支持配置多个相机通道,并按照指定的采集方式和缺图策略,为后续视觉处理流程提供稳定的多路图像输入,常用于多视角检测、多工位并行处理等场景。

工作原理
模块根据配置的相机标识列表(启用通道)打开对应的相机设备或图像流入口。
每一次触发采集时,模块依据设定的采集方式并行获取所有启用通道的图像。当前支持同步采集,即所有相机在同一时刻抓取一帧。
如果某个通道因相机断开、丢帧等原因未成功获取图像,模块会按照缺图策略进行处理:例如选择复用上一次成功采集的图像,以保证下游模块始终能接收到约定数量的图像,流程不会因个别相机异常而中断。
参数说明
| 参数 | 说明 | 默认值 |
|---|---|---|
| 启用通道 | 指定需要采集图像的相机标识列表,每个标识对应一个物理相机或图像流入口。 | 空(需手动配置) |
| 采集方式 | 设置相机的采集触发模式。当前仅支持“同步采集”,所有通道同时抓拍。 | 0(同步采集) |
| 输入模式 | 选择图像数据的来源类型。当前仅支持“相机输入”,即从物理相机获取图像。 | 0(相机输入) |
| 缺图策略 | 当某个通道采集失败时所采取的处理策略。可选“复用上一帧图像”,即使用上一次成功采集的图像填充本次缺失的通道,保证输出图像数量与通道数一致。 | 0(复用上一帧图像) |
相机标识务必准确:启用通道中填写的名称需与系统中实际接入的相机 ID 完全一致,否则对应通道无法成功打开。
通道顺序影响输出:下游模块会按照启用通道列表的顺序引用各路图像,调整顺序前应确认后续处理逻辑是否匹配。
缺图策略的选择:若某些相机可能偶尔丢帧,建议保持“复用上一帧图像”策略,避免流程因缺图而中断;若要求必须获取实时图像,则可通过外部逻辑监控图像时间戳。
当前仅支持同步方式:所有相机均以硬触发或软触发的方式同时采集,无法单独设置每个相机的采集时机,请确保触发信号能覆盖所有相机。
资源占用考虑:启用较多高分辨率相机时,请确认上位机的处理能力和带宽是否满足要求,避免因数据量过大导致采集延迟或丢帧。
输出图像
功能介绍
输出图像模块用于在视觉流程中输出采集到的图像数据。它连接图像采集环节与后续处理、显示或存储环节,将相机或采集设备获取的图像稳定地提供给下游使用。

工作原理
上游采集设备完成图像抓取后,将图像数据送入输出图像模块。模块对图像数据进行缓存和格式整理,并按照流程中的连接关系传递给下游模块。它主要保证图像数据能够完整、连续地到达下一处理环节,自身不执行识别、测量或增强等图像处理任务。
使用场景
需要将相机采集的画面传递给检测、定位、识别等算法模块时。
需要将采集图像显示在运行界面供操作人员观察时。
需要将采集图像保存或转发给外部系统时。
光源
功能介绍
“光源”模块用于连接并配置外部光源控制器。通过该模块,可以设置光源控制器的 IP 地址与型号,并分别控制 1~4 个通道的亮度和开关状态。模块还提供光源连接测试功能,便于在正式运行前确认设备通信是否正常。
在机器视觉项目中,光源是影响成像质量的关键因素。该模块适用于需要统一管理光源控制器参数、实现光源分通道调节或验证光源设备连通性的场景。


工作原理
模块根据配置的设备 IP 地址和光源型号建立与光源控制器的通信。配置完成后,可根据需要选择“设置光源”或“测试光源连接”。
当选择“设置光源”时,模块会将当前配置的通道使能状态和亮度值下发至光源控制器,使各通道按照设定参数输出。当选择“测试光源连接”时,模块会尝试与指定 IP 的光源控制器建立连接,并返回连接是否成功的结果。
通道配置支持 1~4 个通道。每个通道可以独立设置是否开启以及亮度大小,方便在多通道光源系统中进行分区控制。未开启的通道不会输出光源,开启后的通道按照亮度值调节发光强度。
使用场景
设备调试阶段,验证上位机与光源控制器之间的网络连接是否正常。
视觉检测任务中需要调整光源亮度,或在不同检测项目之间切换光源状态。
使用多通道光源时,分别控制不同通道的开关与亮度,以满足局部打光需求。
光源控制器型号为 JL-DCV-15024-4-L 时,通过模块集中配置设备参数。
参数说明
| 参数 | 说明 | 默认值 |
|---|---|---|
| 设备 IP | 光源控制器的 IP 地址。模块通过该地址与光源控制器建立网络通信。 | 无固定默认值,需根据实际设备填写 |
| 光源型号 | 选择所连接的光源控制器型号。当前可选型号为 JL-DCV-15024-4-L。 | 无固定默认值 |
| 通道 | 指定要配置的光源通道编号,取值范围为 1~4。多通道光源可分别配置。 | 无固定默认值 |
| 使能 | 控制当前通道是否开启。开启后该通道才会输出光源,关闭状态下该通道不发光。 | 默认关闭 |
| 亮度 | 设置当前通道的发光亮度。取值范围为 0~255,值越大光源越亮,0 表示最暗。 | 255 |
操作步骤
在流程中添加“光源”模块。
在参数配置区域填写光源控制器的 IP 地址。
根据实际设备选择光源型号。
分别配置需要使用的通道:选择通道编号,设置使能状态和亮度值。
选择“操作类型”。若需要将参数下发至光源控制器,选择“设置光源”;若仅验证通信是否正常,选择“测试光源连接”。
运行模块,并根据执行结果确认配置是否成功。
注意事项
填写设备 IP 前,请确认光源控制器与运行 Smart Vision Studio 的主机网络可达,否则设置或测试可能失败。
只有开启“使能”的通道才会输出光源。即使设置了亮度,未开启使能的通道仍然不会发光。
亮度值需在 0~255 范围内,超出范围可能导致参数下发失败或光源控制器工作异常。
通道编号范围为 1~4,请根据光源控制器的实际通道数量和接线情况配置。
如果仅需要确认通信状态,可选择“测试光源连接”,该操作不会改变当前光源输出。
常见问题
问:为什么设置了亮度值但光源不亮?
答:首先检查该通道的“使能”是否已经开启。未开启使能的通道即使设置了亮度也不会输出光源。其次确认设备 IP、光源型号是否正确,以及光源控制器是否已经通电并完成网络连接。
问:如何判断光源控制器是否能被正常访问?
答:将“操作类型”设置为“测试光源连接”后运行模块。如果执行结果显示成功,说明当前主机可以正常连接指定 IP 的光源控制器;如果失败,请检查网络连接、IP 地址和控制器电源状态。
问:模块支持多少个通道?
答:支持 1~4 个通道,每个通道可以独立设置使能状态和亮度值。
问:亮度值设置多少比较合适?
答:亮度值范围为 0~255,默认值为 255。实际使用时可根据被测物体表面反光情况、相机曝光和环境光条件进行调整。建议从较低亮度开始,逐步提高,以避免图像过曝。
图像处理
图像处理是对目标图像进行图像预处理的过程。当图像干扰较多、特征不明显时,可考虑使用图像处理模块进行预处理。
滤波
滤波是一类图像处理算法,该模块支持高斯滤波、均值滤波和中值滤波三种滤波类型。

高斯滤波
高斯滤波是一种基于高斯函数的平滑处理方法。与均值滤波不同,高斯滤波在计算像素平均值时,会给中心像素赋予更高的权重,而给边缘像素赋予较低的权重。高斯滤波在去除噪声的同时,能够更好地保留图像的边缘信息。
参数:滤波核宽度与核高度,取值范围1~51。值越大,图像失焦效果越明显,即图像越模糊。
适用场景:高斯滤波适用于去除图像中的高斯噪声,并且在保留图像边缘信息方面表现较好。
均值滤波
均值滤波是最简单的平滑处理方法之一。均值滤波的原理是将图像中每个像素的值替换为其周围像素的平均值。均值滤波可以有效地去除噪声,但可能会导致图像变得模糊。
参数:滤波核宽度与核高度,取值范围1~51。值越大,图像失焦效果越明显,即图像越模糊。
适用场景:均值滤波适用于去除图像中的随机噪声,但可能会导致图像边缘变得模糊。
中值滤波
中值滤波是一种非线性平滑处理方法。它的原理是将图像中每个像素的值替换为其周围像素的中值。中值滤波在去除椒盐噪声(即图像中随机出现的黑白点)时非常有效。
参数:滤波核,取值范围1~51。值越大,图像失焦效果越明显,即图像越模糊。
适用场景:中值滤波适用于去除图像中的椒盐噪声,并且在保留图像边缘信息方面表现较好。
形态学处理
通过腐蚀、膨胀、开运算和闭运算等操作,可以实现对图像的噪声去除、对象分离、边缘检测等效果。该模块有助于更好地处理和分析图像数据。

形态学类型
膨胀
膨胀操作与腐蚀相反,它是一种扩大图像中前景对象的过程。
膨胀操作通过将结构元素与图像进行卷积,只要结构元素与图像中的前景像素有重叠,中心像素就会被保留。
腐蚀
腐蚀操作是一种缩小图像中前景对象的过程。
腐蚀操作通过将结构元素与图像进行卷积,只有当结构元素完全覆盖图像中的前景像素时,中心像素才会被保留,否则会被腐蚀掉。
开运算
开运算是先腐蚀后膨胀的组合操作。
开运算主要用于去除图像中的小噪声或分离连接的对象。
闭运算
闭运算是先膨胀后腐蚀的组合操作。
闭运算主要用于填补前景对象中的小孔或连接断裂的对象。
形状
指滤波核的形状,包括矩形、椭圆形和十字形。
迭代次数
指一次形态学处理过程中对原图像进行的操作次数,迭代次数越多,效果越明显,取值范围:1~10。
核宽度和核高度
取值范围1~51,加大该值会使形态学处理的效果更明显。
二值化
图像二值化即将原图像转换为仅包含0和255两个灰度值的图像。图像二值化的目的是简化图像,突出目标轮廓,方便后续图像处理。二值化图像可以帮助算法更准确地识别图像中的边缘和特征。

类型
BINARY
即二值化,大于阈值的变为最大值,小于阈值的变为0。
BINARY_INV
即反二值化,大于阈值的变为0,小于阈值的变为最大值。
TRUNC
即截断,大于阈值的变为阈值,小于阈值的保持不变。
TOZERO - 取零
即取零,大于阈值的保持不变,小于阈值的变为0。
TOZERO_INV
即反取零,大于阈值的变为0,小于阈值的保持不变。
阈值
阈值,用于分割图像的像素值。
设定值
如果像素值大于阈值,则设置为这个值(通常为255)。
图片缩放
图像缩放是指将原始图像调整为指定的宽度和高度。其主要目的是统一输入尺寸、减少计算量或适配后续算法(如模型输入、显示窗口等)。

运行参数
输出图像宽度:指定缩放后图像的宽度(单位:像素)。
输出图像高度:指定缩放后图像的高度(单位:像素)。
几何变换
几何变换是指对图像的空间结构进行调整,包括镜像、旋转等操作。该类操作不会改变图像的像素值本身,而是改变像素的位置关系,常用于图像方向校正、数据增强或适配后续处理流程。

运行参数
镜像方向:控制是否进行翻转及翻转方式:
无:不进行镜像处理
水平:沿水平方向翻转(左右镜像)
垂直:沿垂直方向翻转(上下镜像)
水平垂直:同时进行水平和垂直翻转(等价于旋转180°)
旋转角度:控制图像旋转角度,支持固定角度或自定义输入:
0°:不旋转
90°:顺时针旋转90度
180°:旋转180度
270°:顺时针旋转270度
自定义:按指定角度旋转(单位:度)
图像拼接
图像拼接模块用于将多张输入图像按照指定的排列方式合成为一张图像。常见于需要并列展示、对比分析或拼接连续画面的场景,可快速生成水平或垂直方向的无缝组合图。

工作原理
模块接收上游节点传入的一组图像(至少两张)。
根据用户选择的拼接方式,确定排列方向:
水平拼接:所有图像保持高度一致,按从左到右的顺序依次放置。
垂直拼接:所有图像保持宽度一致,按从上到下的顺序依次放置。
若输入图像的尺寸存在差异,模块会自动以第一张图像的尺寸为基准进行对齐(其余图像可能被拉伸或裁剪),最终输出一张完整的组合图像。
参数说明
| 参数 | 说明 | 默认值 |
|---|---|---|
| 拼接方式 | 选择图像的排列方向: • 水平拼接 — 图像沿水平方向从左到右排列 • 垂直拼接 — 图像沿垂直方向从上到下排列 | 水平拼接 |
为保证拼接效果,建议输入图像的尺寸保持统一;若尺寸不一致,模块将以第一张图像为基准进行对齐,可能造成部分图像内容变形或丢失。
拼接方向会直接影响输出的布局,请根据最终展示需求选择水平或垂直。
输入图像的数量较多时,输出图像的像素尺寸会成倍增加,可能占用较多内存,建议提前评估资源用量。
模块本身不提供图像间的间隔或边框设置,如需添加边距,可结合“图像裁剪”或“画布扩展”等模块实现。
图像增强
图像增强模块用于改善图像质量,提升目标与背景的区分度,为后续检测、识别或测量提供更清晰的输入。
该模块提供锐化、对比度调整、Gamma 校正和亮度校正等处理方式,可有效应对图像边缘模糊、对比度不足、光照不均或整体偏暗偏亮等问题。用户可根据实际图像情况选择一种或多种增强操作,灵活调整参数,使图像特征更突出。

工作原理
模块接收一幅或多幅输入图像,并允许指定感兴趣区域(ROI)。根据用户选择的增强类型,模块对图像进行像素级处理:
锐化:通过强化图像中灰度变化剧烈的区域,使边缘和细节更加清晰。锐化强度和核大小共同决定增强的程度与作用范围。
对比度调整:通过对比度系数改变图像灰度的动态范围,使亮部更亮、暗部更暗,从而增强目标与背景的差异。
Gamma 校正:利用非线性映射对图像整体亮度进行补偿,主要影响中间灰度区域,同时保持亮部和暗部细节。
亮度校正:通过亮度补偿和增益对图像的整体亮度进行线性调整,适用于存在整体偏暗或偏亮的场景。
处理完成后,模块输出增强后的图像,供后续流程中的其他模块继续使用。
使用场景
光照不均匀导致图像局部过暗或过亮时,使用亮度校正补偿亮度差异。
图像整体对比度偏低,目标和背景难以区分时,使用对比度调整增强差异。
图像边缘模糊、细节不清晰时,使用锐化突出边缘和纹理。
需要校正成像系统或者显示设备的非线性响应时,使用 Gamma 校正改善观感。
参数说明
| 参数 | 说明 | 默认值 |
|---|---|---|
| 图像增强类型 | 选择图像增强的处理方式,可选:锐化、对比度、Gamma、亮度校正。选择后,界面会显示对应的参数供调整。 | 锐化 |
| 锐化强度 | 控制锐化效果的强弱,数值越大边缘增强越明显,但过高可能放大噪点。仅在锐化类型下生效,取值范围 0~100。 | 0 |
| 锐化核大小 | 设置锐化处理时邻域窗口的大小,需要为奇数。核越大,锐化作用范围越宽,但过大会导致细节丢失或处理耗时增加。仅在锐化类型下生效,取值范围 1~51。 | 3 |
| 对比度系数 | 调节图像对比度,数值大于 100 表示增强对比度,小于 100 表示降低对比度。取值范围 1~10000。 | 100 |
| Gamma | 设置 Gamma 校正值,大于 1 图像整体变亮,小于 1 图像整体变暗。取值保留两位小数,范围 0.00~10.00。 | 1.00 |
| 亮度矫正补偿 | 在亮度校正时对图像整体亮度进行加减,正值提亮,负值压暗。取值范围 -255~255。 | 0 |
| 增益 | 与亮度矫正补偿配合使用,调整亮度校正的增益幅度。取值范围 0~100。 | 0 |
注意事项
锐化强度过高会放大图像中的噪点,建议从较低值开始逐步调整,找到边缘增强与噪声抑制的平衡点。
锐化核大小必须为奇数,过大时可能导致图像细节丢失或计算耗时显著增加。
Gamma 校正与亮度校正都会影响图像整体亮度,避免同时使用造成过曝或欠曝。
对比度系数偏离 100 过大时,可能使亮部或暗部细节饱和,需结合实际图像进行调整。
若设置了 ROI 区域,仅该区域内的像素会被处理,区域外保持不变,请确认 ROI 范围是否覆盖目标区域。
颜色处理
颜色转换
颜色转换模块用于对图像进行颜色空间转换,支持将 RGB 彩色图像转换为灰度图、HSV、HSI 或 YUV 图像。
适用于需要提取亮度、色彩或色度信息的预处理环节,可帮助后续检测算法获得更稳定、更易分析的图像输入。

工作原理
模块接收一幅彩色图像。当转换类型选择“RGB 转灰度”时,模块会根据设置的转换比例将 R、G、B 三个通道合成为单通道灰度图。转换比例可以采用平均方式、取通道最大值或最小值、直接使用某一通道,或按用户设定的 R、G、B 系数进行加权计算。
当转换类型选择 HSV、HSI 或 YUV 时,模块将图像从 RGB 颜色空间转换到目标颜色空间,得到多通道结果。此时可以通过显示通道参数选择查看第一通道、第二通道或第三通道。最终输出为转换后的图像,供后续流程继续使用。
参数说明
| 参数 | 说明 | 默认值 |
|---|---|---|
| 转换类型 | 选择颜色空间转换的目标类型,可选 RGB 转灰度、RGB 转 HSV、RGB 转 HSI、RGB 转 YUV。该参数决定后续可配置的参数以及输出图像的类型。 | RGB 转灰度 |
| 转换比例 | 仅在转换类型为“RGB 转灰度”时可见。用于决定灰度计算时 R、G、B 三个通道的合成方式。可选通用比例转换、平均比例转换、通道最小值、通道最大值、自设比例转换、R 通道、B 通道、G 通道、无约束转换比例。不同方式会影响灰度图的明暗和对比表现。 | 通用比例转换 |
| 显示通道 | 当转换类型为 HSV、HSI 或 YUV 时可见。用于选择转换结果中要显示的单通道图像,可选第一通道、第二通道、第三通道。 | 第一通道 |
| R 通道系数 | 当转换比例选择“自设比例转换”时,用于设置 R 通道在灰度计算中的权重。需根据实际图像和检测目标合理调整。 | 无默认值 |
| G 通道系数 | 当转换比例选择“自设比例转换”时,用于设置 G 通道在灰度计算中的权重。需根据实际图像和检测目标合理调整。 | 无默认值 |
| B 通道系数 | 当转换比例选择“自设比例转换”时,用于设置 B 通道在灰度计算中的权重。需根据实际图像和检测目标合理调整。 | 无默认值 |
注意事项
转换比例参数只在 RGB 转灰度时出现,转换到 HSV、HSI 或 YUV 时无需配置该参数。
非灰度转换结果包含多个通道,若需查看单个通道,请通过显示通道切换,避免直接观察彩色叠加结果导致误判。
选择自设比例转换时,R、G、B 系数应结合图像内容和检测目标进行设置,不合适的权重可能会降低目标与背景的对比度。
不同颜色空间的通道含义不同,使用前请确认所需通道对应的信息。
定位与目标提取
裁剪
裁剪是从图像中移除所有不需要的区域,或者突出图像的一个特殊特征的过程。

参数配置
输入源:一般为图像源模块的输出图像,也可是其他图像处理类别模块的输出图像。
形状:包括两种:矩形与全幅。
默认是将前序模块的图像相关参数进行展示。可直接在图像展示区域,进行框选,框选后通过输入框的上下按键进行微调。点击"全幅",即可恢复到初始状态。当框选区域符合要求时,可直接点击"执行"进行查看。

轮廓识别
轮廓识别是用于提取图像中物体的边界。通过配置的面积与长度,筛选出符合要求的目标对象。可用于物体识别、形状分析、目标跟踪等应用。

基本概念
轮廓: 图像中物体的边界,由一系列点组成。
轮廓特征: 轮廓的面积、周长、边界矩形、最小外接矩形、最小外接圆等。
参数设置
数据类型: 输出哪些轮廓。可选所有轮廓、最大轮廓或最小轮廓。
形状: 输出结果的表达形式。可选矩形或轮廓。矩形表示目标外接矩形区域,轮廓表示目标实际边界形状。
模块结果
该模块的输出结果,包括符合要求的轮廓数量,及每一个轮廓对应的面积、长度及中心点坐标信息。
如下图所示:


Blob分析
Blob分析是定位与目标提取类别下的一个图像分析工具,用于对图像中的连通区域进行检测与提取。在实际检测中,当目标与背景可以通过灰度、颜色或二值化结果区分开时,Blob分析能够帮助用户快速定位目标所在区域。
通过 Blob 分析,可以获取目标的面积、位置、边界等信息,从而实现对图像中目标的筛选与判断。
需要配置掩膜,模块会优先在掩膜限定的区域内寻找连通目标,常见的为轮廓识别、DL定位、DL分割;
未配置掩膜时的具体分析范围请以软件实际运行结果为准


常见输出信息
面积(Area):连通区域的像素数量
长度
灰阶
外接矩形(Bounding Box):目标的最小包围矩形
中心点(Centroid):区域的几何中心
轮廓裁切
轮廓裁切模块用于在图像中根据目标轮廓对目标区域进行裁切。它需要与深度学习模型配合使用,接收模型输出的轮廓或掩膜信息,自动确定目标边界,并按照设定的外扩像素点扩展裁切范围,最终得到只包含目标区域的图像。该模块适用于需要将检测或分割结果从原图中分离出来的场景,例如目标对象提取、感兴趣区域裁剪等。


工作原理
轮廓裁切模块作为深度学习节点的后续处理环节运行。它接收待处理的原始图像以及关联深度学习模型输出的目标轮廓或掩膜信息,在图像上确定目标轮廓对应的区域。用户可以设置外扩像素点,使裁切边界在原始轮廓的基础上向外扩展一定距离,以避免目标边缘信息丢失。模块根据轮廓区域和扩展量计算最终裁切范围,并输出裁切后的图像或区域。整个过程自动完成,用户只需配置好深度学习关联节点和外扩参数。
参数说明
外扩像素点:控制裁切边界在目标轮廓基础上向外扩展的像素距离。适当增加该值可以避免目标边缘被裁掉,但设置过大可能引入过多背景
图片分块
图片分块用于将输入图像按照指定数量或指定尺寸划分为多个矩形区域,供后续定位、检测或识别模块分别处理。当图像分辨率较高、目标尺寸较小或目标分布范围较广时,直接对整幅图像进行处理容易降低检测精度或算法效率,使用本模块可以将图像拆分为多个局部区域,便于后续流程逐块执行目标提取与分析。

工作原理
本模块根据设置的分块方式和参数,在输入图像上生成若干矩形分块区域。在“按数量分块”方式下,模块根据 X 方向划片数和 Y 方向划片数将图像沿对应方向等分为若干列和若干行,形成均匀网格;在“按尺寸分块”方式下,模块以设定的宽度和高度为基本单元,从图像中依次划分出固定像素大小的图块。无论采用哪种方式,均可通过 X 方向重叠率和 Y 方向重叠率控制相邻图块之间的重叠程度,避免目标落在分块边界时被遗漏。最终模块输出各分块区域供后续流程处理。
使用场景
大幅面图像上的小目标检测:将整幅图像划分为多个局部区域,避免小目标在缩放或全局处理中被忽略。
目标分布范围较广时的定位与提取:对不同区域分别进行处理,减少无效区域干扰。
高分辨率图像处理:将图像分成若干子图批量处理,降低单次处理的内存和计算压力。
边缘区域易漏检的场景:通过设置重叠率,使相邻分块之间有重叠区,减少目标被边界切开导致的漏检。
参数说明
| 参数 | 说明 | 默认值 |
|---|---|---|
| 分块方式 | 选择划分图像的方式。可选“按数量分块”或“按尺寸分块”。按数量分块时,图像被均匀划分为指定行列数;按尺寸分块时,每个分块具有固定宽度和高度。 | 按数量分块 |
| X 方向划片数 | 在按数量分块方式下,图像在水平方向的划分数。数值越大,水平方向分块越细,单块越小。取值范围为 1~50。 | 1 |
| Y 方向划片数 | 在按数量分块方式下,图像在垂直方向的划分数。数值越大,垂直方向分块越细,单块越小。取值范围为 1~50。 | 1 |
| X 方向重叠率 | 相邻分块在水平方向上的重叠比例。设置较大的重叠率可以减少目标落在水平分块边界时的漏检,但会增加分块数量和后续处理量。取值范围为 0~100。 | 0 |
| Y 方向重叠率 | 相邻分块在垂直方向上的重叠比例。设置较大的重叠率可以减少目标落在垂直分块边界时的漏检,但会增加分块数量和后续处理量。取值范围为 0~100。 | 0 |
| 分块宽度 | 在按尺寸分块方式下,单个分块的宽度,单位为像素。仅当分块方式为“按尺寸分块”时生效。 | 无默认值,按尺寸分块时需设置 |
| 分块高度 | 在按尺寸分块方式下,单个分块的高度,单位为像素。仅当分块方式为“按尺寸分块”时生效。 | 无默认值,按尺寸分块时需设置 |
圆查找
圆查找模块用于在图像中快速、准确地定位圆形目标,属于定位与目标提取类工具。它可以识别完整或局部的圆形轮廓,并输出圆的中心坐标、半径等几何信息。当您需要检测工件上的圆孔、圆形零件或圆环状特征的位置和尺寸时,使用本模块能够自动完成定位,配合测量或对位等后续任务。

工作原理
在指定的环形搜索区域内,模块沿圆周方向均匀设置多个卡尺,每个卡尺沿径向提取与设定极性匹配的边缘点。随后,基于所有有效边缘点进行圆形拟合,剔除偏离较大的异常点,最终得到圆心位置和半径。为兼顾检测速度与精度,可开启初定位模式:先对图像下采样进行快速粗定位,再在原分辨率下精确定位。边缘阈值、边缘极性和边缘类型等参数用于控制卡尺上边缘点的筛选方式,确保只将可信的轮廓点纳入拟合计算。
使用场景
机械零件上圆形特征(如定位孔、装配孔)的定位与对位。
电子元件中焊盘、圆形标记点的识别。
圆形工件或产品的尺寸测量与外观检测。
环状区域的位姿确认,例如轴承内外圈的定位。
参数说明
| 参数 | 说明 | 默认值 |
|---|---|---|
| 扇环半径 | 定义环形搜索区域的内边界半径。缩小范围可减少干扰并提升速度,但需确保包含待测圆边缘。 | 10~100 |
| 卡尺数量 | 在扇环圆周上分布的径向卡尺数目。数量越多,检测到的边缘点越密,拟合更稳定,但耗时增加。 | 30 |
| 边缘阈值 | 卡尺上筛选边缘点的对比度阈值,取值范围0~255。低于该阈值的边缘将忽略,提高阈值可抑制噪声,但可能漏掉弱边缘。 | 15 |
| 边缘极性 | 指定搜索边缘过渡方向:从黑到白、从白到黑或任意极性。根据目标圆与背景的亮度关系选择。 | 任意极性 |
| 边缘类型 | 当卡尺上存在多个满足条件的边缘点时,决定选用哪一个:最强边缘、最后一条边缘或第一条边缘。 | 最强 |
| 初定位 | 开启后模块先对图像下采样进行快速粗找圆,再在原图上精定位,适用于大视野或位置偏移大的场景。 | 关闭 |
| 下采样系数 | 初定位时图像缩小的倍率,系数越高速度越快,但可能降低粗定位的准确度。仅在开启初定位时可设。 | 8 |
| 圆定位敏感度 | 初定位阶段判定是否存在圆的敏感度,值越大越容易检出,但也可能引入误检。仅在开启初定位时可设。 | 10 |
| 剔除点数 | 拟合圆时允许剔除的离群边缘点最大个数。适当增加剔除点数可消除局部遮挡或干扰带来的误差,但过度剔除可能使拟合结果不稳定。 | 0 |
| 滤波尺寸 | 检测前对图像进行平滑滤波的尺寸,用于抑制噪声,保护边缘的同时避免边缘模糊。范围为1~50。 | 2 |
环形搜索区域应尽量与目标圆同心,且环带宽度只需包含完整圆周即可,不宜过宽,以免引入无关边缘。
边缘阈值不宜设置过低,否则易将噪声或纹理误判为边缘,导致拟合错误。
当初定位开启时,下采样系数和圆定位敏感度共同影响粗定位效果;大系数虽快但可能带来定位偏差,建议从默认值开始尝试。
卡尺数量影响处理时间与拟合精度,对于半径较小的圆,可适当减少卡尺数量以提高效率。
使用剔除点数功能时,应确保剔除后剩余边缘点仍能充分覆盖圆周,否则拟合结果可能偏移。
边缘查找
边缘查找模块用于在图像中快速定位目标的边缘特征,通过设定边缘强度、极性及筛选方式,提取出符合条件的边缘点或边缘线段。该模块通常用于目标定位与目标提取场景,可在复杂背景中稳定地找到物体边界,为后续测量、对位、检测等任务提供可靠的位置信息。

工作原理
图像预处理:若启用灰度图,先将输入图像转换为灰度图像,以降低通道复杂度,专注于亮度变化。然后对图像进行指定尺寸的滤波平滑,抑制噪声对边缘检测的干扰。
边缘检测与阈值筛选:在预处理后的图像上计算各像素的梯度强度,得到边缘响应图。根据设定的边缘阈值,只有强度高于该阈值的像素才被视为候选边缘点。同时可依据边缘极性(从黑到白、从白到黑或任意极性)对候选点进行方向过滤。
边缘选择与排序:对通过阈值和极性筛选的候选边缘,按照所选的边缘选择方式(如保留所有、按强度保留最强的前若干个、从第一个候选起或从最后一个候选起取指定数量)控制输出结果的数量。最后按设定的排序方式(按分数、按方向等)对结果进行排序,输出最终边缘列表。模块在定位与目标提取流程中通常作为特征提取的前置步骤,为特征匹配或几何定位提供稳定的边缘信息。
参数说明
| 参数 | 说明 | 默认值 |
|---|---|---|
| 启用灰度图 | 是否将输入图像转换为灰度图后再进行边缘检测。若输入已经是灰度图,建议保持开启以提高计算效率。 | 开启 |
| 滤波尺寸 | 边缘检测前对图像进行平滑滤波的尺寸。数值越大降噪效果越强,但可能造成边缘细节丢失或偏移,取值范围1~51。 | - |
| 边缘阈值 | 控制边缘检测灵敏度的阈值,只有梯度强度高于该值的像素才被视为边缘候选。取值范围0~255,阈值越低检测到的边缘越多,阈值越高仅保留强边缘。 | - |
| 边缘极性 | 选择待检测边缘的亮度变化方向:任意极性、从黑到白(暗区到亮区)或从白到黑(亮区到暗区)。可根据目标边缘的实际外观方向设定,有助于过滤背景干扰。 | 任意极性 |
| 边缘选择方式 | 候选边缘的保留策略:保留所有边缘;按强度优先保留最强的前N条;从第一个检测到的边缘开始往后取前N条;或从最后一个边缘开始往前取前N条。结合最大结果数可精细控制输出数量。 | 所有 |
| 最大结果数 | 最终输出的最大边缘数量,取值范围1~1000。当边缘选择方式不为“所有”时,该值才起作用,用于限定选取的条数。 | - |
| 排序方式 | 对输出边缘进行排序的依据:按强度分数降序或升序,或者按边缘方向的正向或逆向排列。排序结果影响后续特征匹配的顺序,可能影响匹配速度和精度。 | 分数降序 |
滤波尺寸与定位精度的平衡:滤波尺寸越大,边缘定位可能产生平滑偏移,高精度定位场景建议使用较小的滤波尺寸(如3),并配合适当的照明与图像预处理来降低噪声。
边缘阈值需根据实际图像调整:如果图像对比度较低,适当降低阈值以检出更多边缘;如果背景纹理或干扰较多,提高阈值仅保留显着边缘,避免误检。
极性选择可大幅减少伪边缘:当已知目标的明暗过渡方向时(例如亮背景上的暗色物体),选择对应极性(如从白到黑)可屏蔽反向的边缘,提升检测可靠性。
选择方式和最大结果数配合使用:当“边缘选择方式”不为“所有”时,“最大结果数”才会作用于筛选过程;若希望获取全部边缘,请保持选择方式为“所有”,此时最大结果数不起作用。
排序方式影响后续定位:若边缘结果将用于基于形状的匹配或直线拟合,按方向排序可能有助于后续算法获得更稳定的特征序列。
直线查找
直线查找模块用于在图像中快速、准确地定位直线边缘,并输出直线的位置与方向信息。它通过沿搜索区域布置多组卡尺,自动提取边缘点并拟合直线,适用于工件定位、角度测量、边缘引导对位等场景。当需要以直线特征为基准进行高精度定位或测量时,可选择此模块。

工作原理
模块首先对输入图像进行平滑滤波,降低噪声对边缘提取的干扰。然后,在用户设定的兴趣区域(ROI)内,沿垂直于期望方向均匀放置若干卡尺,每个卡尺内根据设定的边缘极性和阈值提取出一个候选边缘点。剔除明显的离群点后,利用最小二乘法对剩余有效点拟合出直线。若启用了角度约束,模块会在拟合基础上按期望角度和旋转容忍范围进一步筛选;最终输出满足条件的直线信息,包括中心坐标、角度、起点和终点等。
使用场景
工件边缘定位:以产品边缘直线为基准,获取工件的位置和姿态,用于后续抓取或装配。
角度测量:检测零件边缘相对于参考线的夹角,判断安装或加工偏差。
引导对位:在视觉引导系统中,将检测到的直线作为对位基准,驱动机器人运动。
质量检测:判断产品边缘是否平直、是否存在缺损或毛刺。
参数说明
| 参数 | 说明 | 默认值 |
|---|---|---|
| 滤波尺寸 | 对图像进行平滑滤波的卷积核大小,抑制噪声对边缘检测的干扰。值越大,图像越模糊,适用于信噪比较低的图像,但会降低定位精度。 | 2 |
| 卡尺数量 | 沿搜索方向放置的卡尺总数。数量越多,参与拟合的边缘点越密集,拟合结果越可靠,但处理耗时也会增加。 | 20 |
| 边缘极性 | 指定检测边缘的明暗变化方向。可选“从黑到白”、“从白到黑”或“任意极性”。选择正确的极性可只提取目标边缘,避免干扰。 | 任意极性 |
| 边缘阈值 | 边缘点检测的最小对比度,取值范围 1–255。只有灰度变化幅度大于此阈值的点才会被当作候选边缘点。提高阈值可抑制弱边缘和噪声,但可能丢失目标边缘。 | 15 |
| 边缘类型 | 当同一卡尺内存在多个满足条件的边缘时,决定采用哪一个点参与拟合。可选“最强”、“最后一条”、“第一条”或“接近中线”。“最强”选择对比度最高的边缘,“第一条”和“最后一条”以搜索方向为序,“接近中线”选择靠近卡尺中线的边缘。 | 最强 |
| 剔除点数 | 拟合直线前允许剔除的离群点数量。当部分边缘点受干扰偏离直线时,设置合适的剔除值可以排除异常点,提升拟合鲁棒性。 | 0 |
| 角度使能 | 是否启用角度约束。开启后,仅接受角度在期望角度附近、偏差在旋转容忍范围内的直线;关闭时,输出任意方向的拟结果。 | 关闭 |
| 期望直线角度 | 当“角度使能”开启时,设定目标直线的期望角度(度)。模块会优先查找接近此角度的直线。 | 0.00 |
| 角度旋转容忍 | 当“角度使能”开启时,允许直线角度相对于期望角度的最大偏差范围。设定较大值可适应工件轻微偏转,较小值可过滤掉方向差异较大的干扰直线。 | 180.00 |
| 角度归一化 | 是否将检测到的直线角度归一化到特定范围(通常为 [‑180°,180°])。启用后,输出角度会映射到此范围内,方便后续统一处理。 | 关闭 |
| 直线查找反向 | 是否反转直线的起点和终点方向。当需要统一直线的向量方向以符合特定流程要求时,可开启此选项。 | 关闭 |
尽量让 ROI 的绘制方向与目标直线垂直,使卡尺能有效截取边缘变化,提高边缘点提取质量。
卡尺数量并非越多越好,过密的卡尺会增加运算时间且对精度提升有限,建议根据 ROI 长度和边缘质量适度设置。
当图像噪声较大时,可先适当增大滤波尺寸和边缘阈值,待获得稳定结果后再逐步优化以兼顾精度。
启用角度约束后,若设置的容忍范围过小,可能会因工件轻微偏转导致查找失败,此时可适当放宽容忍值。
剔除点数不宜过大,否则可能将正常边缘点当作离群值剔除,反而降低拟合准确性,通常建议不超过卡尺数量的 5%。
位置修正
位置修正模块用于对前序定位结果进行空间变换,将检测到的目标位置和角度转换到指定的参考坐标系下。典型场景包括:将像素坐标系下的匹配结果映射到世界坐标系,或者对多个工序间的定位偏差进行统一补偿。当您需要调整定位结果的参考原点、旋转角度或进行基准点对齐时,即可使用本模块。

工作原理
模块接收来自于前一个定位工具(如模板匹配、圆查找等)产生的检测点、角度等信息,依据设定的修正方法进行坐标转换。当选择“按点”方式时,模块根据用户定义的基准点坐标(通常是两个以上点的理论坐标)与当前测量值之间的对应关系,自动计算偏移量和旋转角度,完成位置校准。若选择“按坐标”方式,则直接使用用户输入的X/Y偏移量和旋转角度对定位结果进行平移和旋转。处理完成后,输出的坐标和角度即为修正后的结果,后续测量或定位步骤均可基于该修正坐标系进行。
使用场景
进行高精度对位贴装前,利用基准标记点修正视觉定位的全局偏移和旋转。
设备存在机械抖动或安装误差,定期通过标定点修正图像坐标系与机械坐标系之间的偏差。
模板匹配后需要重新定义测量的原点,以简化后续测量的坐标计算。
参数说明
| 参数 | 说明 | 默认值 |
|---|---|---|
| 原点X | 设置修正后坐标系原点的X坐标偏移量。该值将与当前定位结果的X坐标相加,实现平移。 | - |
| 原点Y | 设置修正后坐标系原点的Y坐标偏移量。该值将与当前定位结果的Y坐标相加,实现平移。 | - |
| 角度 | 当选择方式为“按坐标”时,设置坐标系的旋转角度(单位:度)。正值表示逆时针旋转,负值表示顺时针旋转。 | - |
按点方式要求基准点与实际检测点一一对应,且点数不能少于2个,否则无法计算完整的空间变换。
输入的偏移量和角度基于当前定位结果进行运算,请注意符号方向,避免修正后坐标系方向反转。
角度单位为度,输入范围通常为-360°至360°,若超出该范围模块可能自动规整。
当选择按点方式时,基准点坐标应为理论值(目标坐标系下的理想位置),而非实际图像中的像素坐标。
若前序定位结果不稳定,位置修正的输出也会随之波动,建议先确保定位模块的稳定性。
卡尺工具
卡尺工具用于在图像中定位边缘或边缘对,是机器视觉测量与定位中的常用工具。它可以在指定的检测区域内沿设定方向扫描灰度变化,找出满足强度和极性要求的边缘点,并输出边缘位置、分数等信息。当任务需要测量工件宽度、定位边缘位置、检测缝隙或对边缘结构进行计数时,可选用卡尺工具。

工作原理
卡尺工具在指定的检测区域内,先沿卡尺长度方向对图像进行灰度投影,获得一条灰度变化曲线。随后按照设定的滤波尺寸对曲线进行平滑处理,降低图像噪声对边缘定位的干扰。工具在平滑后的曲线上计算边缘强度,并根据边缘阈值筛选出候选边缘点。
在候选边缘中,工具进一步根据边缘极性判断灰度变化方向是否符合要求。对于单边缘模式,工具直接输出符合条件的一个或多个边缘;对于边缘对模式,工具会按照设定的边缘对宽度范围,查找满足宽度约束的两条边缘,形成边缘对结果。
检测到多个结果时,工具根据排序方式对结果进行排列,并按照最大结果数输出。曲线特征参数用于定义边缘评分曲线的物理意义和取值范围,可帮助工具按照对比度、灰度、位置、间距等特征筛选或排序边缘。
参数说明
基础参数
| 参数 | 说明 | 默认值 |
|---|---|---|
| 滤波尺寸 | 对灰度投影曲线进行平滑处理的尺寸。增大该值可抑制噪声,使边缘定位更稳定,但会降低位置精度;减小该值可保留细节,但容易受噪声干扰。 | 2 |
| 边缘模式 | 选择检测单一边缘还是成对边缘。单边缘模式用于提取一条边界;边缘对模式用于检测两条边界组成的结构。 | 0(单边缘) |
| 边缘0极性 | 边缘对中的第一条边缘或单边缘模式下目标边缘的灰度变化方向。可设置为任意极性、从黑到白或从白到黑。 | 0(任意极性) |
| 边缘1极性 | 边缘对模式下第二条边缘的灰度变化方向。仅在边缘对模式时生效。 | 0(任意极性) |
| 边缘对宽度 | 边缘对模式下两条边缘之间的允许宽度范围。工具会在该范围内匹配边缘对,设置过宽可能匹配到错误边缘,过窄则可能漏检目标边缘对。 | 10 |
| 最大结果数 | 一次检测最多输出的结果数量。增大该值可获取更多候选边缘或边缘对,但会降低读取效率。 | 1 |
| 排序方式 | 多个检测结果的排列依据。可按照分数降序、分数升序、方向正向或方向逆向排序。 | 0(分数降序) |
| 边缘阈值 | 用于判定有效边缘的最小边缘强度。低于该值的边缘不会被输出。适当提高阈值可抑制噪声引起的伪边缘,但可能漏检低对比度边缘。 | 15 |
曲线特征参数
卡尺工具支持配置多个曲线特征,每个特征用于定义边缘评分曲线的物理量和取值范围。以下为单个曲线特征的参数。
| 参数 | 说明 | 默认值 |
|---|---|---|
| 类型 | 曲线特征对应的评分物理量。可选:对比度、灰度、位置、相对位置、归一位置、归一相对位置、间距、间距差、相对间距差。不同类型适用于不同目标的测量与筛选。 | 0(对比度) |
| 模式 | 选择曲线作为左曲线还是右曲线。通常与曲线类型配合,定义评分函数在特征值增大或减小方向上的变化趋势。 | 0(左曲线) |
| 曲线类型 | 评分曲线随特征值增大时的变化方向。递增表示评分随特征值增大而升高,递减表示评分随特征值增大而降低。 | 类型0、1、6及8左曲线为0(递增),其他为1(递减) |
| 起点 | 曲线在特征值轴上的起始位置。默认值随类型变化,例如类型0、1、2、4、6、7为0,类型3为-100,类型5为-5,类型8左曲线为-1,类型8右曲线为0。 | 随类型不同 |
| 终点 | 曲线在特征值轴上的结束位置。默认值随类型变化,例如类型0、1为255,类型2、3为10000,类型4、5为5,类型6为1,类型8左曲线为0,类型8右曲线为2。 | 随类型不同 |
| X中点 | 曲线在X方向上的中点位置。默认值随类型变化,例如类型0、1、6为0,类型2、3为100,类型4、5为5,类型7为1,类型8左曲线为-1,类型8右曲线为2。 | 随类型不同 |
| Y计分最小值 | 评分输出的最小值。用于限制评分范围,不能超过Y计分最大值。 | 0 |
| Y计分最大值 | 评分输出的最大值。用于限制评分范围,不能低于Y计分最小值。 | 100 |
注意事项
边缘阈值与滤波尺寸应配合调整。滤波尺寸较大时噪声更低,但边缘位置可能偏移;阈值过低则容易引入伪边缘。
边缘对模式下必须设置合理的边缘对宽度,否则可能匹配到不相邻的边缘,或无法找到目标边缘对。
边缘极性设置应与实际灰度变化方向一致。忽略极性可能导致工具锁定到背景纹理或错误边界。
当最大结果数大于1时,确认排序方式符合检测意图,避免读取到非目标结果。
修改曲线特征的类型后,起点、终点和X中点等参数的默认值可能发生变化,应立即检查这些参数是否仍适合当前检测任务。
匹配
高精度匹配
高精度匹配模块用于在图像中快速、准确地定位与选定模板相似的目标对象,即使在目标发生旋转、缩放或轻微变形的情况下,仍能稳定地输出目标的位置、角度和尺度信息。该模块特别适用于需要精确定位或引导的视觉检测任务,能够解决传统定位方法在角度变化和尺度不一致时准确率下降的问题。


工作原理
模块首先加载预先制备的模板图像,提取其形状、边缘等关键特征并生成匹配模型。对待检测图像,模块根据用户设定的角度范围和尺度范围,在图像上滑动搜索窗口,逐一计算窗口内容与模板特征之间的相似度。当相似度达到设定的最小匹配分数时,该位置被记录为一个候选目标。最后对所有候选目标按匹配分数排序,输出最高分的若干目标及其亚像素精度的位置、角度和均匀或非均匀缩放系数。通过灵活调整角度步长和尺度步长,可以在搜索效率与定位精度之间取得平衡。
使用场景
电子元器件装配中芯片、引脚的高精度定位,用于引导点胶、焊接或贴装。
机械零件抓取前的位置识别,在旋转或远近变化的场景下提供拾取坐标。
印刷包装行业中的标签、字符对准,确保裁切或贴合精度。
复杂背景或遮挡条件下的多目标查找与计数,例如药粒、纽扣等的自动化分拣。
参数说明
| 参数 | 说明 | 默认值 |
|---|---|---|
| 搜索模式 | 是否启用“全部搜索”模式。开启后会在整幅图像中搜索所有可能的目标,关闭时需配合其他定位模块限定搜索区域。 | 关闭 |
| 最小匹配分数 | 仅保留匹配分数高于此值的目标,分数范围为0~1,支持两位小数。分值越高表示与模板越相似。 | 0.5 |
| 最大匹配个数 | 限定最终输出的最大匹配目标数量,范围1~50000。 | - |
| 匹配极性 | 模板匹配的极性选择:0表示正常极性(目标与模板亮度关系一致),1表示反转极性(目标与模板亮度关系相反)。 | - |
| 最小角度 | 旋转角度搜索范围的下限,单位为度,取值范围-45~45。 | - |
| 最大角度 | 旋转角度搜索范围的上限,单位为度,取值范围-45~45。 | - |
| 尺度范围类型 | 指定尺度范围的作用方式:0表示X和Y方向使用相同的缩放范围,1表示X和Y方向可以独立设置不同的缩放范围。 | 0(统一尺度) |
| 最小尺度 | 当尺度范围类型为统一尺度时,最小允许的缩放比例,范围0.10~10.00。 | 1.00 |
| 最大尺度 | 当尺度范围类型为统一尺度时,最大允许的缩放比例,范围0.10~10.00。 | 1.00 |
操作步骤
准备模板:使用 Smart Vision Studio 的模板创建工具,从典型图像中框选目标区域并生成高精度匹配模板,保存模板文件至用户指定目录。
添加模块:在方案工作流中,从“定位与目标提取”分类下拖入“高精度匹配”模块到合适位置,将上游图像源或定位结果连接到该模块的输入接口。
配置模板路径:在模块参数面板中,通过浏览按钮选择预先制备的模板文件。
设置搜索参数:根据待检目标可能的旋转和缩放范围,配置最小/最大角度、尺度范围类型及相应的缩放参数;根据检测要求调整最小匹配分数和最大匹配个数;若目标与背景极性相反,则勾选匹配极性。
运行并验证:执行单步或连续运行,观察图像区域中绘制的匹配轮廓和分数,据此微调分数阈值或角度、尺度范围,直至所有实测目标均被稳定检出。
使用输出结果:将匹配得到的坐标、角度等信息传递给后续测量、识别或通讯模块,完成定位引导。
轮廓匹配
功能介绍
轮廓匹配模块用于在输入图像中查找与预先学习的轮廓模板相匹配的目标。通过设置搜索角度范围、尺度范围、匹配分数等条件,可在目标存在旋转、缩放或部分遮挡的情况下完成定位。该模块属于“匹配”类工具,常用于工件定位、引导测量等需要获取目标位置与姿态的场景。

工作原理
轮廓匹配模块接收一幅待检测图像和一个轮廓模板。工作时,模块在设定的感兴趣区域内,按照用户指定的角度范围和尺度范围对模板进行搜索。在每一个候选位置,模块会比较模板轮廓与图像中边缘特征的相似程度,并计算匹配分数。当匹配分数达到设定的最小匹配分数、且匹配目标数量不超过最大匹配个数时,该目标会被作为有效结果输出。输出内容通常包括匹配目标的位置、角度、尺度及匹配分数等信息。搜索模式、匹配极性等参数会影响搜索策略和筛选方式。
使用场景
工件定位:在机械手抓取、装配等场景中,对形状固定的零件进行位置和姿态识别。
缺陷检测:通过与标准轮廓进行比对,发现目标缺失、变形或多余部分。
分类识别:在目标存在角度和尺度差异时,区分不同形状的物体。
引导测量:为后续测量工具提供目标的大致位置和方向,提高测量效率。
参数说明
| 参数 | 说明 | 默认值 |
|---|---|---|
| 搜索模式 | 设置匹配时的搜索策略。 | |
| 最小匹配分数 | 匹配的最低分数阈值,取值范围 0~1,保留两位小数。只有匹配分数不低于该值的目标才会被输出。适当提高阈值可减少误检,降低阈值可提高检出率。 | 0.5 |
| 最大匹配个数 | 单次检测允许输出的最大匹配目标数量,取值范围 1~50000。限制输出数量可避免结果过多。 | |
| 匹配极性 | 选择匹配极性,用于指定匹配时的极性条件。 | |
| 最小角度 | 允许模板旋转的最小角度,取值范围 -45~45 度。搜索时模板可旋转的角度下限。 | |
| 最大角度 | 允许模板旋转的最大角度,取值范围 -45~45 度。搜索时模板可旋转的角度上限。 | |
| 尺度范围类型 | 选择尺度范围的类型,用于控制尺度变化方式。 | |
| 最小尺度 | 允许的最小尺度系数,取值范围 0.10~10.00。模板匹配时尺度缩放的下限。 | 1.00 |
| 最大尺度 | 允许的最大尺度系数,取值范围 0.10~10.00。模板匹配时尺度缩放的上限。 | 1.00 |
| 最小Y尺度 | 设置Y方向的最小尺度系数。 | |
| 最大Y尺度 | 设置Y方向的最大尺度系数。 | |
| 最小X尺度 | 设置X方向的最小尺度系数。 | |
| 最大X尺度 | 设置X方向的最大尺度系数。 | |
| 形状 | 选择感兴趣区域的形状类型,包括未指定、矩形、多边形、直线卡尺、圆卡尺、圆弧卡尺。选择后可在图像上绘制对应形状的检测区域。 | |
| 起点 X | 矩形或卡尺区域的起点 X 坐标。 | |
| 起点 Y | 矩形或卡尺区域的起点 Y 坐标。 | |
| 宽度 | 矩形区域的宽度(单位:像素)。 | |
| 高度 | 矩形区域的高度(单位:像素)。 | |
| 旋转角度 | 矩形区域的旋转角度(单位:度)。 | |
| 半径 | 圆卡尺或圆弧卡尺的半径(单位:像素)。 | |
| 圆心 X | 圆卡尺的圆心 X 坐标。 | |
| 圆心 Y | 圆卡尺的圆心 Y 坐标。 | |
| 卡尺数量 | 卡尺检测区域内布置的卡尺数量,数量越多检测越细致。 | |
| 卡尺宽度 | 单个卡尺的宽度(单位:像素)。 | |
| 卡尺高度 | 单个卡尺的高度(单位:像素)。 | |
| 圆弧方向 | 圆弧卡尺的检测方向,可选顺时针或逆时针。 | |
| 圆弧大小 | 圆弧卡尺的圆弧大小类型,可选小圆弧或大圆弧。 | |
| 多边形顶点 | 多边形区域的顶点坐标列表。 |
操作步骤
在 Smart Vision Studio 的工作流中添加“轮廓匹配”模块。
配置模板数据路径,选择预先学习好的轮廓模板。
根据实际检测需求设置最小匹配分数、最大匹配个数、角度范围及尺度范围等参数。
在图像上绘制感兴趣区域,限定搜索范围。
运行模块,查看匹配结果,并根据需要调整参数以优化检测效果。
快速匹配
快速匹配是 Smart Vision Studio 匹配类别中的一个定位工具,用于在图像中快速查找与预设模板最相似的目标区域。该模块能够同时适应目标在角度和尺度上的变化,在保证检测速度的前提下,返回满足相似度要求的一个或多个匹配结果。
当检测任务对节拍要求较高,且目标仅存在旋转、缩放或明暗差异时,适合使用快速匹配模块进行定位。它可以帮助后续测量、识别或对位工序快速锁定目标位置。

工作原理
快速匹配模块接收输入图像和模板数据,在用户设定的感兴趣区域(ROI)内展开搜索。模块会按照设定的角度范围和尺度范围,对模板进行多角度、多尺度的变换,并在图像中逐一计算候选位置与模板之间的相似程度,得到匹配分数。
所有候选位置会根据最小匹配分数进行过滤,仅保留达到分数阈值的结果。随后,模块按照匹配分数对结果进行排序,并根据最大匹配个数限制最终输出的目标数量。输出的结果通常包括目标在图像中的位置、相对模板的旋转角度、缩放比例以及匹配分数。
通过限制搜索区域、角度范围、尺度范围和匹配数量,快速匹配能够在保持较高稳定性的同时显著缩短处理时间,适合在线定位应用。
参数说明
| 参数 | 说明 | 默认值 |
|---|---|---|
| 搜索模式 | 切换是否使用全部搜索模式。开启后会在整个搜索范围内查找所有满足条件的匹配目标。 | |
| 最小匹配分数 | 匹配结果的相似度阈值,取值范围 0~1,保留两位小数。只有达到该分数的候选位置才会被保留。分数越高,结果越可靠但可能漏掉部分目标;分数越低,匹配越宽松但可能引入误检。 | 0.5 |
| 最大匹配个数 | 最多返回的匹配目标数量,取值范围 1~50000。建议根据实际需要设置,避免返回过多无效结果。 | |
| 匹配极性 | 控制匹配时的极性处理方式,取值 0 或 1,分别对应不同的极性策略,具体含义请参考界面选项提示。 | |
| 最小角度 | 搜索时允许的最小旋转角度,范围 -45°~45°。通常设置为目标可能旋转范围的下限。 | |
| 最大角度 | 搜索时允许的最大旋转角度,范围 -45°~45°。通常设置为目标可能旋转范围的上限。 | |
| 尺度范围类型 | 选择缩放范围的控制方式,可统一设置整体缩放,也可分别设置 X 方向和 Y 方向的缩放范围。当需要非等比缩放时,选择分别设置模式。 | |
| 最小尺度 | 匹配目标相对模板的最小缩放比例,范围 0.10~10.00。 | 1.00 |
| 最大尺度 | 匹配目标相对模板的最大缩放比例,范围 0.10~10.00。 | 1.00 |
| 最小 Y 尺度 | 当尺度范围类型为分别设置时,Y 方向的最小缩放比例。 | |
| 最大 Y 尺度 | 当尺度范围类型为分别设置时,Y 方向的最大缩放比例。 | |
| 最小 X 尺度 | 当尺度范围类型为分别设置时,X 方向的最小缩放比例。 | |
| 最大 X 尺度 | 当尺度范围类型为分别设置时,X 方向的最大缩放比例。 | |
| 形状 | 选择感兴趣区域的形状类型,可选形状包括未指定、矩形、多边形、直线卡尺、圆卡尺和圆弧卡尺等。具体可选形状以界面显示为准。 | 未指定 |
| 起点 X | 矩形或卡尺区域的起点 X 坐标。 | |
| 起点 Y | 矩形或卡尺区域的起点 Y 坐标。 | |
| 宽度 | 矩形区域的宽度,单位为像素。 | |
| 高度 | 矩形区域的高度,单位为像素。 | |
| 旋转角度 | 矩形区域的旋转角度,单位为度。 | |
| 半径 | 圆卡尺或圆弧卡尺的半径,单位为像素。 | |
| 圆心 X | 圆卡尺的圆心 X 坐标。 | |
| 圆心 Y | 圆卡尺的圆心 Y 坐标。 | |
| 卡尺数量 | 卡尺检测区域内布置的卡尺数量,数量越多检测越细致。 | |
| 卡尺宽度 | 单个卡尺的宽度,单位为像素。 | |
| 卡尺高度 | 单个卡尺的高度,单位为像素。 | |
| 圆弧方向 | 圆弧卡尺的检测方向,可选择顺时针或逆时针。 | |
| 圆弧大小 | 圆弧卡尺的圆弧大小类型,可选择小圆弧或大圆弧。 | |
| 多边形顶点 | 多边形区域的顶点坐标列表。 |
操作步骤
在工作流中添加“快速匹配”模块。
连接输入图像和模板数据,确保模板已正确生成或导入。
根据需要设置感兴趣区域(ROI),框选检测范围,排除无关区域。
配置匹配参数,包括最小匹配分数、最大匹配个数、角度范围和尺度范围等。
若目标在 X、Y 方向存在非等比缩放,将尺度范围类型切换为分别设置,并分别调整 X、Y 方向的尺度范围。
运行流程,查看模块输出的匹配位置、角度、缩放比例和匹配分数。
根据实际结果微调参数,直至满足检测要求。
灰度匹配
灰度匹配是 Smart Vision Studio 中用于在图像中定位目标对象的检测模块。该模块以预先创建的模板为基准,在输入图像的指定区域内搜索与模板灰度特征最为相似的目标,并返回目标的位置、角度、尺度及匹配分数等信息。
当检测任务需要确定目标在图像中的具体位置和姿态,且目标外观以灰度纹理为主要特征时,可选用灰度匹配模块。它能够有效应对目标存在一定角度旋转、尺度缩放或局部遮挡等情况,为后续的测量、识别或定位引导等任务提供可靠的基准信息。

工作原理
灰度匹配模块在运行时,首先获取预先创建的模板数据,该模板记录了目标对象的灰度特征。随后,模块在输入图像的感兴趣区域内按照设定的搜索模式进行遍历,将图像中每个候选位置与模板进行灰度相似度计算,得到对应的匹配分数。
在搜索过程中,模块会依据用户设定的角度范围和尺度范围,对模板进行相应的旋转和缩放变换,以匹配图像中可能存在的不同姿态的目标。最终,模块按照匹配分数从高到低筛选出满足最低分数要求的结果,并返回每个匹配结果的位置坐标、角度、尺度及匹配分数。
参数说明
| 参数 | 说明 | 默认值 |
|---|---|---|
| 搜索模式 | 选择匹配过程中是否采用全部搜索模式。开启后可更充分地遍历搜索空间,提升找到目标的概率,但会增加计算时间。 | 关闭 |
| 最小匹配分数 | 判定匹配结果有效的最低分数阈值,取值范围为 0 到 1,保留两位小数。分数越高,对匹配的相似度要求越严格,误检率越低,但可能漏掉部分目标。 | 0.5 |
| 最大匹配个数 | 单次检测允许返回的最大目标数量,取值范围为 1 到 50000。可根据视野内可能出现的最大目标数量进行设定。 | 待确认 |
| 匹配极性 | 指定模板与图像之间的灰度对比方向。不同极性选项对应不同的灰度匹配方式,需根据目标与背景的实际灰度关系选择。 | 待确认 |
| 最小角度 | 允许搜索的最小旋转角度,取值范围为 -45° 到 45°。与最大角度共同构成角度搜索范围。 | 待确认 |
| 最大角度 | 允许搜索的最大旋转角度,取值范围为 -45° 到 45°。角度范围设置越宽,可匹配的姿态越多,但耗时越长。 | 待确认 |
| 尺度范围类型 | 选择尺度范围的设置方式。不同选项对应统一尺度(X、Y 方向等比缩放)或分轴尺度(X、Y 方向分别设置缩放范围)。 | 待确认 |
| 最小尺度 | 统一尺度模式下允许匹配的最小缩放比例,取值范围为 0.10 到 10.00。 | 1.00 |
| 最大尺度 | 统一尺度模式下允许匹配的最大缩放比例,取值范围为 0.10 到 10.00。 | 1.00 |
| 最小 Y 尺度 | 分轴尺度模式下 Y 方向允许匹配的最小缩放比例。 | 待确认 |
| 最大 Y 尺度 | 分轴尺度模式下 Y 方向允许匹配的最大缩放比例。 | 待确认 |
| 最小 X 尺度 | 分轴尺度模式下 X 方向允许匹配的最小缩放比例。 | 待确认 |
| 最大 X 尺度 | 分轴尺度模式下 X 方向允许匹配的最大缩放比例。 | 待确认 |
| 形状 | 选择感兴趣区域的形状类型,可选未指定、矩形、多边形、直线卡尺、圆卡尺或圆弧卡尺。 | 未指定 |
| 起点 X | 矩形或卡尺区域的起点 X 坐标。 | 待确认 |
| 起点 Y | 矩形或卡尺区域的起点 Y 坐标。 | 待确认 |
| 宽度 | 矩形区域的宽度(单位:像素)。 | 待确认 |
| 高度 | 矩形区域的高度(单位:像素)。 | 待确认 |
| 旋转角度 | 矩形区域的旋转角度(单位:度)。 | 待确认 |
| 半径 | 圆卡尺或圆弧卡尺的半径(单位:像素)。 | 待确认 |
| 圆心 X | 圆卡尺的圆心 X 坐标。 | 待确认 |
| 圆心 Y | 圆卡尺的圆心 Y 坐标。 | 待确认 |
| 卡尺数量 | 卡尺检测区域内布置的卡尺数量,数量越多检测越细致。 | 待确认 |
| 卡尺宽度 | 单个卡尺的宽度(单位:像素)。 | 待确认 |
| 卡尺高度 | 单个卡尺的高度(单位:像素)。 | 待确认 |
| 圆弧方向 | 圆弧卡尺的检测方向,可选顺时针或逆时针。 | 待确认 |
| 圆弧大小 | 圆弧卡尺的圆弧大小类型,可选小圆弧或大圆弧。 | 待确认 |
| 多边形顶点 | 多边形区域的顶点坐标列表。 | 待确认 |
操作步骤
在 Smart Vision Studio 的工作流编辑区域中,从匹配分类下添加灰度匹配模块。
将待检测图像的输出连接到灰度匹配模块的输入端口,确保图像数据能够正常传入。
将预先创建好的模板数据连接到模块的模板输入端口。
在参数界面中,根据目标在图像中可能出现的位置,设置合适的感兴趣区域。通常将感兴趣区域限定为目标可能出现的范围,以减少搜索时间并排除区域外干扰。
根据目标的姿态变化情况,设置角度范围和尺度范围。若目标可能存在旋转,适当放宽角度范围;若目标大小可能变化,设置相应的尺度范围。
设置最小匹配分数和最大匹配个数。匹配分数阈值可根据模板与目标的实际相似程度进行调整,通常在初步测试时保持默认值,再根据误检或漏检情况逐步优化。
运行流程,观察输出的匹配结果。若匹配效果不理想,可调整感兴趣区域、角度范围或匹配分数等参数,直至获得稳定的定位效果。
测量
点点测量
点点测量用于计算图像中任意两点之间的几何关系,包含直线距离与方向角度。该模块通常用在需要获取两处特征位置间距或相对方向的场合,例如定位孔间距测量、工件边缘夹角计算等。用户指定起点和终点的图像坐标后,模块即可快速给出精确的测量结果,并将结果传递给下游流程继续使用。
点点测量模块一般与圆查找等定位模块配合使用。圆查找等模块作为前序模块

工作原理
模块接收两个点的坐标(起点与终点),在选定的坐标系下计算二者之间的欧氏距离以及连线方向角。距离以像素为单位给出;方向角度根据设定的角度范围输出,可选择 -90° 至 90° 或 -180° 至 180°。坐标系默认为图像坐标系,即以图像左上角为原点、X 轴向右、Y 轴向下建立直角坐标系。计算过程完全基于几何公式,不涉及图像内容本身,因此执行速度快,适用于任何已确定点位的场景。
使用场景
检测两圆孔中心之间的实际距离,判断是否符合装配公差。
计算工件边缘两点连线的倾角,用于定位旋转补偿。
配合其他定位工具,测量模板匹配结果与参考点之间的偏移。
在标定后的图像中,将像素距离换算为物理尺寸前先获取像素距离。
参数说明
| 参数 | 说明 | 默认值 |
|---|---|---|
| 起点 X | 起点的 X 轴像素坐标。坐标系原点在图像左上角,X 轴水平向右。 | |
| 起点 Y | 起点的 Y 轴像素坐标。Y 轴垂直向下。 | |
| 终点 X | 终点的 X 轴像素坐标。 | |
| 终点 Y | 终点的 Y 轴像素坐标。 | |
| 坐标系 | 选择坐标系类型。0 为图像坐标系,其他可能值请参考产品界面提示。 | 0 |
| 角度范围 | 输出角度的表示范围。0:-90° 至 90°;1:-180° 至 180°。影响角度值的符号和数值区间。 | 1 |
该模块基于纯坐标计算,不直接处理图像内容,因此务必保证输入的坐标已通过可靠方式获得,避免将无关或错误的点传入。
角度范围的选择会改变输出角度的符号和数值,切换范围后角度值可能发生变化,请根据后续判断逻辑统一。
若使用图像坐标系,Y 轴方向向下,此时角度计算遵循右手系规则,用户需留意与实际空间方向之间的对应关系。
模块输出的距离为像素距离,若要获得毫米等物理单位,请结合标定模块进行换算。
点线测量
点线测量模块用于计算一个给定点到一条指定直线的垂直距离、垂足坐标以及点与直线的相对夹角。在质量检测中,经常需要评估点特征(如孔心、角点)相对于基准边线或参考线的偏离程度,本模块直接提供准确的几何量值,帮助用户快速做出合格性判断。
点线测量模块一般与圆查找、直线查找等定位模块配合使用。圆查找、直线查找等模块作为前序模块

工作原理
模块接收用户输入的点坐标和一条由起点、终点定义的直线坐标。根据所选的坐标系,将点和直线的位置统一到同一参考系中,然后利用几何方法计算点到直线的垂直距离(含符号,指示点位于直线的哪一侧)、垂足点坐标以及点与直线形成的角度。角度输出范围可由用户选择,以适应不同的方向判定需求。最终,模块输出测量结果,供后续流程使用或直接显示。
使用场景
检测定位孔中心到产品边缘的垂直距离是否在公差范围内。
测量多点共线度,通过比较各点到同一基准直线的偏离程度评估直线度。
工件的边角点与基准线对齐检查,常用于装配位置偏差分析。
结合其它模块(如圆查找、边缘提取),实现自动化几何尺寸测量。
参数说明
| 参数 | 说明 | 默认值 |
|---|---|---|
| 点 X 坐标 | 待测点的 X 坐标值,支持手动输入数值或绑定其他模块的输出变量。 | 无 |
| 点 Y 坐标 | 待测点的 Y 坐标值,绑定方式同上。 | 无 |
| 直线起点 X | 定义参考直线的起点 X 坐标,当与边缘拟合等模块配合时可通过变量获取。 | 无 |
| 直线起点 Y | 起点 Y 坐标。 | 无 |
| 直线终点 X | 参考直线的终点 X 坐标,两点共同确定唯一一条直线。 | 无 |
| 直线终点 Y | 终点 Y 坐标。 | 无 |
| 坐标系 | 选择输入坐标所基于的坐标系,当前支持图像坐标系(原点位于图像左上角)。 | 图像坐标系 |
| 角度范围 | 设定输出角度的表示范围:‑90°~90° 输出锐角,仅反映倾斜程度;‑180°~180° 可表达完整圆周方向,便于区分朝向。 | -180°~180° |
点和直线的坐标必须属于同一坐标系,否则计算结果无效。
直线的起点和终点不能重合,否则无法唯一确定直线,模块会返回错误状态。
垂直距离的符号可用于判断点在直线的左侧还是右侧,请在实际测试中核实符号定义,避免方向误判。
角度范围的设置影响输出值域,务必使其与后续逻辑匹配,例如用作旋转角度时务必选择 ‑180°~180°。
当输入坐标来自上游模块时,注意模块执行顺序,确保在点线测量之前相关数据已经生成并有效。
线线测量
线线测量模块用于精确计算两条直线之间的几何关系,典型应用包括角度测量、平行度判定以及间距计算。在定位、引导、检测等场景中,用户可通过在图像上指定两条直线的端点,模块自动提取边缘并拟合直线,最终输出两线夹角或距离等关键参数。
线线测量模块一般与直线查找等定位模块配合使用。直线查找等模块作为前序模块

工作原理
模块首先接收两条直线的端点坐标,在每条直线的端点连线方向上创建若干矩形采样区域。在每一个采样区域内,根据设定的边缘极性、边缘阈值和滤波尺寸查找边缘点,并依据剔除距离和剔除点数筛除异常边缘点。随后,采用指定的初始拟合策略和拟合方法,将保留的边缘点拟合成直线。最后,根据所选直线和设定的角度范围,计算并输出两条直线之间的角度或距离。
这一流程将边缘提取与直线拟合相结合,可有效抑制图像噪声和局部干扰,为角度测量、平行度检测等任务提供稳定可靠的结果。
使用场景
工件角度测量:检测零件边缘夹角是否满足设计要求,如钣金折弯角度。
平行度/垂直度检测:验证产品装配后两条边是否平行或垂直,如电池极片与隔膜的对齐度。
距离测量:计算两条近似平行边的间距,如缝隙宽度、槽宽。
引导对准:为机械手或贴装头提供两线夹角信息,实现旋转补偿。
参数说明
| 参数 | 说明 | 默认值 |
|---|---|---|
| 坐标系选择 | 指定测量参考的坐标系。支持图像坐标系。 | 图像坐标系 |
| 输出角度范围 | 定义输出角度的表示区间:-90°~90° 或 -180°~180°。不同区间适用于不同摆放角度的工件,避免角度跳变。 | -180°~180° |
| 选择直线 | 指定待测量角度或距离的目标直线。选择“直线1”或“直线2”,模块将输出该直线与另一条直线的夹角;后续版本也可用于距离输出。 | — |
| 边缘类型 | 决定边缘点查找策略:最强边缘、最后一条边缘、第一条边缘,或接近中线的边缘。不同方式会影响最终拟合直线对图像特征的响应顺序。 | 最强 |
| 边缘极性 | 定义边缘过渡方式:任意极性、从黑到白、从白到黑。根据目标边缘的对比度方向选择,可排除反向边缘干扰。 | 任意极性 |
| 边缘阈值 | 边缘检测的灵敏度,取值范围 1–255。值越小,更多弱边缘被纳入候选点;值越大,仅保留对比度较强的边缘。 | 5 |
| 滤波尺寸 | 在边缘检测前进行平滑滤波的窗口大小,取值 1–50。较大的值可抑制噪声,但会降低边缘定位精度。 | 1 |
| 剔除点数 | 拟合直线前,从边缘点集合中剔除的离群点数量,取值 0–998。配合剔除距离,可去除明显的错误边缘点。 | 0 |
| 剔除距离 | 定义离群点判断的距离阈值,取值 1–1000 像素。与拟合直线距离超过该值的点将被视为离群点(在剔除点数限制内)。 | 5 |
| 初始拟合 | 选择初始拟合策略:全局或局部。全局拟合利用所有采样点一次性拟合,速度快;局部拟合则分段拟合后综合,对局部变形有更好的适应性。 | 局部 |
| 拟合方式 | 直线拟合的数学方法:最小二乘、Huber 或 Tukey。最小二乘对正态分布误差最优;Huber 和 Tukey 对异常点有更强的抗干扰能力。 | Huber |
边缘阈值与极性需匹配实际对比度:若图像中目标边缘对比度较低,可适当降低边缘阈值,并确保极性设置正确,否则可能漏检边缘或引入反向边缘。
剔除参数不宜过大:剔除点数过多或剔除距离过小可能剔除有效的边缘点,导致直线拟合不准确。建议先观察边缘点分布再逐步调整。
滤波尺寸影响定位精度:在保证去噪效果的前提下,尽量使用较小的滤波尺寸,避免边缘位置发生偏移。
角度范围的选择:若测量工件摆放角度可能超出 90°,请使用 -180°~180° 区间,防止角度输出发生跳变。
拟合方式与初始拟合配合:当边缘存在极少数大离群点时,优先选用 Tukey 拟合;若边缘较为规则,使用最小二乘可提高计算速度。
线圆测量
线圆测量模块用于计算直线与圆之间的几何关系。当检测任务需要获取边缘点到圆心的最短距离,或评估圆形工件相对于直线基准的位置偏差时,可选用此模块。它能输出线到圆的距离、交点坐标等关键测量数据,帮助用户快速判断工件是否满足公差要求。
线圆测量模块一般与直线查找、圆查找等定位模块配合使用。直线查找、圆查找等模块作为前序模块

工作原理
该模块接收一条直线和一个圆作为输入基准。直线由起点和终点定义,圆由中心坐标和半径定义。模块首先根据所选的坐标系和角度范围确定计算方向,随后解算直线与圆之间的几何关系。最终输出线到圆心距离、垂足坐标、线圆交点以及圆心在直线上的投影点等完整结果。整个计算过程基于解析几何方法,能够稳定处理相离、相切、相交等各种位置关系。
使用场景
工件边缘到孔位距离测量:以工件边缘拟合直线为基准,测量圆孔中心到边缘的距离。
销钉位置度检测:以产品边界直线为参考,检测圆形销钉或定位柱相对于边界的偏移量。
圆形特征与基准线夹角评估:分析圆形特征中心与理想基准线之间的偏离程度。
切点位置验证:当要求圆与某条直线相切时,验证实际切点坐标是否符合设计要求。
参数说明
| 参数 | 说明 | 默认值 |
|---|---|---|
| 线起点 X/Y | 分别定义输入直线起点的横坐标和纵坐标。该点通常从上游模块订阅,也可手动输入固定值。 | 无 |
| 线终点 X/Y | 分别定义输入直线终点的横坐标和纵坐标。起点与终点共同决定直线的方向和计算基准。 | 无 |
| 圆心 X/Y | 定义输入圆的中心位置。坐标值需与当前坐标系匹配。 | 无 |
| 测量半径 | 输入圆的半径值。该值与圆心位置共同确定圆的边界,直接影响交点计算的准确性。 | 无 |
| 坐标系选择 | 指定计算所基于的坐标系。在图像坐标系下,X 轴向右为正,Y 轴向下为正。 | 图像坐标系 |
| 输出角度范围 | 设定输出角度的取值范围。选择 -90° 至 90° 适用于大多数水平方向为主的测量;选择 -180° 至 180° 可获得完整的角度信息,适合全周向评估。 | -180°~180° |
| 选择类型 | 指定在当前测量中用于参考的基准特征。可选取直线或者圆作为距离和角度计算的基准。 | 直线1 |
将“线圆测量”模块从工具箱拖拽至工作流编辑区。
为“直线”和“圆”输入分别订阅上游数据源,例如直线查找模块的输出线和圆查找模块的输出圆。
若未订阅图像坐标系下的定位基准,则确认“坐标系选择”参数为图像坐标系。如有需要,切换到像素级标定后的物理坐标系。
根据实际检测需求,设置合适的“输出角度范围”。
运行流程,在结果显示区查看距离、垂足坐标及交点等输出数据。
结合后续的判断或输出模块,完成尺寸公差判定或数据导出。
圆圆测量
圆圆测量模块用于精确计算两个圆之间的几何关系,最典型的应用是获取两圆圆心之间的距离以及圆心连线的角度。当检测任务需要测量孔间距、同轴度或装配位置偏差时,可以通过该模块从已经定位的两个圆中快速提取所需的尺寸信息,无需手动计算。模块支持选择输出角度的表示范围,以适应不同的角度计量习惯。
圆圆测量模块一般与圆查找等定位模块配合使用。圆查找等模块作为前序模块

工作原理
模块接收来自上一工位的两个圆的基本参数,包括各自的圆心坐标和半径。在内部,模块首先根据用户选择的坐标系和角度范围配置,建立计算基准。随后,通过两个预设的圆参数计算出两圆心之间的欧氏距离,以及圆心连线的方向角。角度值的输出范围可按用户设定在 -90°–90° 或 -180°–180° 之间进行归一化,从而直接用于尺寸判断或传输给后续公差判断模块。整个过程无需重新拟合圆,直接利用已有的圆数据完成测量,减少了重复计算,提升了流程效率。
使用场景
孔距测量:检测工件上两个圆孔的中心距离是否在公差范围内。
装配偏差检测:判断两圆(如轴承座与轴孔)的相对位置是否满足装配要求。
角度对齐验证:测量两圆圆心连线相对于水平轴的角度,用于方向定位检查。
同轴度初步评估:通过分析两圆心连线的倾斜角度,快速筛查同轴度异常。
参数说明
| 参数 | 说明 | 默认值 |
|---|---|---|
| 坐标系选择 | 选择计算时所参考的坐标系。通常使用图像坐标系,此时原点位于图像左上角,X轴向右,Y轴向下。 | 图像坐标系 |
| 输出角度范围 | 设置圆心连线方向角的表示范围。可选 -90°–90° 或 -180°–180°,前者将角度限制在右侧半平面,后者允许输出完整圆周角度。 | -180°–180° |
将圆圆测量模块添加至工作流中,并放置于两个圆查找模块之后。
将前序模块输出的两个圆参数分别连接至本模块对应的输入接口。
在模块参数区域,选择合适的“坐标系选择”项。
根据后续判断对角度范围的要求,调整“输出角度范围”选项。
运行工作流,此时可在结果显示区查看圆心距、圆心连线角度以及两个圆的当前参数。
点圆测量
点圆测量模块用于计算并输出图像中一个点与一个圆之间的相对位置信息。当需要确定某一点到指定圆心的距离或方位角时,可以使用本模块。典型应用包括检测特征点是否落入圆形区域、评估点相对于参考圆的角度偏差等,属于测量类目下的基础几何关系判定工具。
点圆测量模块一般与圆查找等定位模块配合使用。圆查找等模块作为前序模块

工作原理
模块根据用户提供的点坐标和圆参数(圆心坐标与半径),在选定的坐标系下计算该点与圆心之间的距离,同时计算点与圆心连线相对于水平方向的角度。角度的输出范围可通过参数调节,以适应不同方向的表达习惯(例如 -90°~90° 或 -180°~180°)。运算结果均以标准测量字段形式输出,供下游模块或最终结果显示使用。由于计算仅依赖给定的坐标和参数,因此模块不需要依赖图像或前置定位工具,可独立参与测量流程。
使用场景
检测某个特征点是否位于圆形基准区域内,例如判断焊点是否偏离圆形容差带。
测量零件上定位孔中心到边角点的角度,辅助姿态计算。
在文字或图案检测中,判断图案中心相对于参考圆的角度偏移量。
配合其他测量模块,将点与圆的关系作为特征值用于尺寸判断。
参数说明
| 参数 | 说明 | 默认值 |
|---|---|---|
| 点X坐标 | 待测量的点的水平坐标。该值通常来自上游模块输出的点坐标,也可手动输入。 | — |
| 点Y坐标 | 待测量的点的垂直坐标。 | — |
| 圆心X坐标 | 参考圆的中心水平坐标。 | — |
| 圆心Y坐标 | 参考圆的中心垂直坐标。 | — |
| 圆半径 | 参考圆的半径,用于确定圆的位置和尺寸。 | — |
| 坐标系 | 定义坐标计算所基于的参考系。选择“图像坐标系”时,坐标原点位于图像左上角,向右为X正方向,向下为Y正方向。 | 图像坐标系 |
| 角度范围 | 控制输出角度的范围。0 表示输出角度在 -90° 至 90° 之间;1 表示输出角度在 -180° 至 180° 之间。用户可根据实际角度表达习惯选择。 | 1(-180°~180°) |
在 Smart Vision Studio 的测量工具组中找到“点圆测量”模块,将其添加至工作流编辑区。
点击模块,在参数配置区输入测量点的坐标和参考圆的圆心坐标、半径。这些数值可以直接填写,也可以通过绑定其他模块的输出变量来动态获取。
根据实际需求选择坐标系类型(通常保持默认的“图像坐标系”)。
设置角度范围,若需要区分顺时针/逆时针方向或全圆周角度,请选择 -180°~180° 范围;若仅关心锐角或较小区间的角度值,可选择 -90°~90° 范围。
运行流程,在结果显示区查看输出的距离和角度信息。模块同时会将所有输出值传递给后续模块,用于进一步计算或判定。
标定与坐标
标定板标定
标定板标定用于建立图像像素坐标与实际物理坐标之间的对应关系,是视觉测量、定位和机器人引导等应用中的基础环节。当需要将图像中识别到的位置、距离转换为实际空间位置或物理长度时,应使用本模块完成标定。
该模块通过检测图像中的标定板特征,并结合标定板描述文件和物理尺寸等参数,计算像素坐标与物理坐标之间的变换关系。标定结果可供后续测量、定位等模块直接调用,从而保证视觉系统输出结果的准确性和一致性。

使用场景
相机安装完成后进行首次标定,消除镜头安装角度和成像位置带来的坐标偏差。
高精度尺寸测量中,将图像中的像素距离换算为实际毫米、微米等物理距离。
机器人视觉定位与抓取中,将视觉识别到的工件坐标转换到机器人坐标系。
成像系统存在倾斜或透视变形时,进行坐标校正,提高全局定位精度。
参数说明
| 参数 | 说明 | 默认值 |
|---|---|---|
| 标定板文件 | 指定标定板描述文件。模块通过该文件获取标定板图案的布局、类型等必要信息,只有文件路径有效且与实际标定板匹配,才能正确完成特征识别和标定。 | 无默认值,需用户指定 |
| 标定板类型 | 选择实际使用的标定板图案类型。当前版本支持棋盘标定板,选择错误的类型会导致特征检测失败或标定精度下降。 | 棋盘标定板 |
| 物理尺寸 | 定义标定板图案对应的实际物理尺寸,是像素距离换算为实际物理长度的基准。该值直接影响最终的测量比例,必须按照实际标定板填写并保持单位统一。取值范围为 0.01 ~ 1000.00。 | 1.00 |
| 坐标系模式 | 决定标定结果采用左手坐标系还是右手坐标系。该设置应与后续定位模块或机器人、工作台使用的坐标系保持一致,否则坐标方向可能出现镜像或反向。 | 左手坐标系 |
| 原点(X) | 设置标定板坐标系原点在 X 方向的偏移量。默认原点为 0,表示以标定板图案默认位置为原点;如需将坐标原点平移到特定位置,可调整该值。取值范围为 -1000.00 ~ 1000.00。 | 0 |
| 原点(Y) | 设置标定板坐标系原点在 Y 方向的偏移量。默认原点为 0,表示以标定板图案默认位置为原点;如需将坐标原点平移到特定位置,可调整该值。取值范围为 -1000.00 ~ 1000.00。 | 0 |
| 旋转角度 | 定义标定板坐标系相对于参考方向的旋转角度,单位为度。当标定板安装方向与目标坐标轴不一致时,可通过该角度进行修正。取值范围为 -180.00 ~ 180.00。 | 0 |
| 自由度 | 控制标定变换模型的复杂度。可选范围包括:缩放、旋转、平移;缩放、旋转、纵横比、倾斜、平移;缩放、旋转、纵横比、倾斜、平移及透视。自由度越高,可校正的几何形变越复杂,但对特征点质量要求也越高。 | 缩放、旋转、纵横比、倾斜、平移及透视 |
| 中值滤波状态 | 设定是否在标定前对图像执行中值滤波。默认执行滤波,可有效降低噪点对特征检测的干扰。若图像清晰、噪点较少,且对处理速度有要求,可以关闭滤波。 | 执行滤波 |
注意事项
标定前应确保标定板完整出现在图像中,所有特征清晰可见,避免强反光、遮挡或过曝。
物理尺寸必须与实际标定板完全一致,并注意单位统一;填写错误会导致测量结果出现等比例偏差。
坐标系模式和旋转角度需与后续使用的坐标系统保持一致,避免坐标方向或原点位置出现偏差。
自由度并非越高越好,应根据实际成像畸变进行选择;不必要的自由度会使标定结果稳定性下降。
中值滤波默认开启,适合大多数场景。若图像细节已经比较平滑或对处理速度较敏感,可以关闭滤波。
单位转换
单位转换模块用于在标定与坐标处理流程中,将图像中的像素距离换算为实际物理尺寸。当测量或定位结果需要以毫米、微米等工程单位输出时,可使用本模块完成像素到物理单位的转换。它同时支持对已有标定关系进行微调,以适应现场环境变化或机械安装误差。

工作原理
模块接收一个标定文件和待转换的像素距离。标定文件记录了当前相机成像条件下像素与物理尺寸的对应关系。模块依据该关系对输入的像素距离进行换算,得到物理距离输出。如果设置了像素当量修正,模块会在原有换算关系基础上按比例调整,使结果更接近实际尺寸。刷新信号用于在标定文件或输入数据更新后触发重新计算,确保输出与最新配置一致。
使用场景
视觉测量中,需要将检测到的像素长度转换为毫米或微米。
相机重新标定后,需要统一不同工位或设备的坐标单位。
对已有标定关系进行局部修正,补偿安装或环境变化引起的误差。
将前序定位模块输出的像素坐标转换为物理坐标,供后续控制或统计使用。
参数说明
| 参数 | 说明 | 默认值 |
|---|---|---|
| 标定文件 | 指定用于单位转换的标定文件所在位置。该文件通常由相机标定流程生成,包含像素与实际物理尺寸之间的对应关系。路径错误或文件无效会导致转换失败或结果偏差。 | 无默认值 |
| 像素当量修正 | 对当前标定关系进行比例调整,用于修正因环境变化、机械安装误差等引起的偏差。增大该值会使同一像素距离对应的物理距离增大。 | 无默认值 |
| 像素距离 | 需要进行单位转换的像素距离,通常来自前序测量或定位模块的输出。 | 无默认值 |
| 刷新信号 | 触发模块重新执行转换的控制信号。当标定文件、像素距离或修正值发生变化后,通过该信号使模块更新结果。 | 无默认值 |
注意事项
确保标定文件路径正确且文件可访问,否则模块无法完成转换。
像素当量修正会按比例影响所有转换结果,调整时应使用已知尺寸的标准件进行验证。
输入的像素距离应与标定文件对应的相机和成像条件一致,不同相机或不同工作距离下需重新标定。
刷新信号未触发时,模块可能保持上一次的计算结果,数据更新后请确认信号已正确配置。
标定文件的变化会改变转换基准,更换标定文件后应重新检查转换结果是否合理。
识别与读码
读码
读码模块用于从输入图像中识别并读取码符号的编码内容,属于“识别与读码”分类。该模块可将图像中的码图案转换为可追溯、可处理的文本数据,适用于产品标识读取、包装信息采集等需要自动提取码内容的场景。

工作原理
读码模块接收输入图像后,在图像中定位并识别码符号,提取其编码内容作为结果输出。所采用的算法模型由“模型 ID”参数指定,其取值规则与裁剪节点保持一致。当前版本中,该模块尚未在工具箱中提供入口,因此相关配置无法通过常规界面完成。
使用场景
产品包装和标签上的码图案读取。
生产过程中物料码信息的自动采集与追溯。
需要将图像中的码内容转换为文本数据的检测任务。
深度学习
深度学习是指通过类似脑神经网络的深度学习模型,让计算机学习和理解复杂的信息,完成高难度的识别任务,可用于图像定位、分割等场景。
该类别的模块,都只需要配置模型文件,模型文件来自于AIC(AI Creator)基于大量的样本数据训练得到的。

模型配置:
本地端
将AIC训练得到的模型下载到本地后,进行上传。
相机端
因AIC支持将训练好的模型可直接部署至集成的相机上,该类别模块通过扫描相机特定目录
/var/opt/aic_models下的模型文件,支持完成模型类型的解析,快速选择,免去下载上传的操作步骤,方便快捷。如下图所示:

输出结果:
模型结构信息
输入形状(Input Shape)
输出形状(Output Shape)
图像结果
展示模型推理后的中间结果图(例如特征图、分割图等)
每个中间结果均可单独查看与导出
如下图所示:


DL定位
精确定位待检区域,用于确定物体位置,标记边界框。下图即为经过定位模型得到的结果。

原图

定位结果图
如下例所示步骤,使用定位模型,快速进行目标区域的框选标记。其他深度学习模块,操作类似。
- 搭建方案流程,图像源 -> DL定位。

- 配置DL定位,选择对应模型后,会同步展示出该模型的详细信息,包括模型名称、目标平台、量化精度及版本等信息。点击执行。

- 完成目标的标记,如下图所示红色框区域。

DL分割
像素级处理,常用于检测目标表面细小缺陷,比如脏污、划痕等。下图即为经过分割模型得到的结果。

原图

分割结果图
DL模型集
在AIC直接部署模型至集成的相机中,是支持可以将多个算法模块对应的模型统一打包进行部署。针对此,支持多个模型的串行处理的模块,即为DL模型集。
目前该模块仅支持选择定位和分割类型组合的模型集,后续会进行其他类型模型的支持,如分类、目标检测、OCR等。
如下图所示,

DL分类
分类模块利用深度学习技术对输入图像进行自动类别判定,能够快速识别图像中所包含目标物体的具体类别。当生产现场需要根据视觉特征对产品进行分拣、分级或缺陷归类时,可将该模块集成到检测流程中,实现对图像内容的智能理解,替代人工判断,提高一致性与效率。

工作原理
模块接收一幅输入图像,将其送入预先训练好的深度学习分类模型。模型通过卷积神经网络提取图像的多层次特征,并与已学习的各类别特征模式进行比对,最终输出图像属于各个类别的概率值。模块自动选取概率最高的类别作为分类结果,并附带对应的置信度分数。当图像特征模糊或存在干扰时,可通过置信度阈值过滤不可靠的分类,确保输出结果的可靠性。整个过程无需人工定义特征,只需在训练阶段提供代表性样本即可。
使用场景
产品分级:根据外观特征将产品区分为优等品、一等品、次品等不同等级。
缺陷归类:识别产品表面缺陷的类型,如划痕、凹陷、脏污等,便于后续统计分析。
字符识别辅助:将分割出的单个字符图像分类为字母、数字或符号,用于组合识别。
物料确认:在装配工序中确认来料型号,防止错料混入。
操作步骤
在 Smart Vision Studio 中将“分类”模块拖入工作流编辑区。
将图像输入源连接至模块端口。
在模块属性中指定要使用的深度学习分类模型(通过模型管理预先导入)。
运行工作流,查看模块输出的分类结果与置信度。
注意事项
输入图像的分辨率和通道数应与模型训练时一致,否则可能导致推理失败或精度下降。
分类模型需预先在“模型管理”中导入,并确保模型文件与当前软件版本兼容。
置信度阈值设定过高可能漏掉正确但特征不明显的分类,过低则可能引入错误结果,建议结合实际样本调优。
若分类模型需要特定的预处理(如归一化方式),请确认前序模块已完成相应处理,或使用软件内置的预处理模块。
目标检测
目标检测模块基于深度学习技术,能够在图像中自动识别和定位关注的目标。模块接收一张或多张输入图像,通过加载的预训练模型进行推理,输出每个目标的类别、位置和置信度。它广泛应用于工业机器视觉中的零件识别、缺陷定位、包装检查等场景,帮助用户快速获取结构化的目标信息,无需人工逐张判读。

工作原理
模块首先读取输入图像,将其送入已配置的深度学习目标检测模型。模型在图像上提取多尺度特征,并生成一系列候选目标区域,再通过分类和边框回归网络确定每个目标的类别和精确位置。推理完成后,模块根据设置的置信度阈值过滤掉可靠性较低的结果,保留满足条件的目标框。最终,检测结果以标准格式输出,包含类别标签、置信度分数和矩形包围框的坐标。整个过程自动完成,对复杂背景和物体形态变化具有较强的适应能力。
使用场景
电子装配环节中,检测电路板上元件的有无、偏位或型号错误。
食品包装线上,识别标签、生产日期或二维码的位置与内容。
物流分拣系统中,定位不同尺寸外形的包裹,辅助机械臂抓取。
汽车制造车间,检查车身焊点、螺母、螺栓等小型目标的完整性和位置。
操作步骤
在方案编辑区中,从“深度学习”分类下将“目标检测”模块拖入工作流。
连接图像源(如相机采集模块或图像读取模块)至本模块的输入端口。
双击模块打开属性配置面板,选择与检测任务匹配的模型文件。
保存配置并运行工作流,模块将对每一张输入图像执行检测。
在图像显示区观察检测结果,或连接后续模块对目标数据进行筛选等处理。
注意事项
模型文件需与当前检测场景匹配;若更换被测产品或工艺,应重新训练或更换模型。
置信度阈值直接影响结果数量和可靠性:要求高准确率时适当提高阈值,需要减少漏检时适当降低阈值。
输入图像的尺寸和宽高比应与模型训练时保持一致,否则可能影响检测精度。建议在模块前接入图像缩放或裁剪模块进行预处理。
NPU 推理可显著提升处理速度,但须确保工控机安装对应显卡驱动和推理加速库。
大分辨率图像会延长单次推理耗时,在保证检测效果的前提下可适当降低图像尺寸以提高节拍。
OCR
OCR 模块利用深度学习技术对图像中的字符进行识别,将图像中的文字区域转化为可编辑、可检索的文本信息。该模块适用于产品标签读取、包装喷码识别、金属部件刻印字符提取等工业场景,能够替代人工录入,显著提升自动化系统的信息采集效率和准确性。

工作原理
OCR 模块对输入的图像进行预处理后,通过预训练的深度神经网络模型检测出图像中的文本区域,并对每个区域内的字符序列进行端到端识别,最终输出结构化文本内容。处理流程可概括为:接收待检测图像,自动定位文本行或字符块,逐行解析字符语义,融合上下文信息提高识别准确率,最后输出识别结果文本以及每个字符的置信度。用户只需选择适合的模型即可适配不同字体、大小和背景的文本识别任务。
使用场景
产品包装上的生产日期、批号、有效期识别与记录。
电子元器件表面激光刻印的型号、序列号提取。
金属铭牌或标签上字符的自动读取与校验。
票据、表单中印刷体或规范手写体信息的批量录入。

操作步骤
在 Smart Vision Studio 工作流中,从“深度学习”分类下添加 OCR 模块。
将上游图像输出端口连接到 OCR 模块的输入端口,确保传入的是包含待识别文本的图像数据。
在参数设置区域选择预置的 OCR 模型,可根据字符类型(数字、字母、中文等)和背景复杂度挑选最匹配的模型。
运行工作流,在结果区域查看识别到的文本内容和置信度,并依据结果调整参数或 ROI 区域。
将 OCR 模块的输出连接到后续数据处理或逻辑判断模块,完成自动化集成。
注意事项
输入图像的清晰度直接影响识别准确度,建议在 OCR 模块之前加入图像增强或预处理步骤,如对比度增强、去噪等。
模型选择应与实际字符集匹配,例如识别纯数字序列时优先选择数字专用模型,以获得更高精度。
文本区域过小或字符间距过密可能导致漏检,可通过调整图像采集分辨率或结合定位模块放大目标区域来解决。
推理速度受图像分辨率和模型复杂度影响,在高速产线中请评估处理时间是否满足节拍要求。
若识别结果的置信度普遍偏低,请检查光源稳定性、字符印刷质量或尝试更宽泛的预训练模型。
文本目标检测
文本目标检测模块基于深度学习技术,允许您通过输入一句自然语言描述(如“silver screw”或“barcode”),自动从图像中查找并框选出所有与描述匹配的目标。该模块将语言理解与视觉检测相结合,摆脱传统算法对固定特征的依赖,特别适合多品种、小批量或缺陷形态不固定的检测任务。当您需要根据灵活的语义规则在图像中定位目标时,可选择本模块。

工作原理
模块接收待检测的图像和一条描述目标特征的文本指令,接着将两者送入预训练的深度学习模型。模型同时解析图像内容和文本含义,并在图像特征空间中寻找与文本描述高度一致的区域。随后,模块根据预设的置信度阈值,筛选出满足条件的目标框,并输出它们的位置、尺寸和对应的置信度。整个过程完全在推理阶段完成,无需为每种目标重新训练,大幅降低了部署门槛。该方法尤其适用于需要快速适应新对象或缺陷的场景,例如柔性生产线上不同工件的定位、未知缺陷的捕获等。
使用场景
工件分拣:输入“silver screw”快速定位图像中所有同类零件。
字符与图案定位:描述“barcode”或“logo”直接框选出印字区域,为后续OCR或比对提供输入。

参数说明
| 参数 | 说明 | 默认值 |
|---|---|---|
| 文本提示 | 自然语言描述字符串,告诉模块在图像中要查找什么目标。描述应尽量具体,避免模糊词汇。 | 无(需手动输入) |
| 框阈值 | 筛选检测框的置信度下限。低于该值的检测结果会被丢弃。提高阈值可减少误检,降低阈值能提升弱目标的召回率。 | 0.3(根据任务常见设置) |
| 文本阈值 | 文本-图像匹配相似度的最低要求。该阈值影响模型对文本描述与视觉特征关联的判断严格程度。阈值越高,结果越保守,仅保留高把握的匹配。 | 0.25(根据任务常见设置) |
操作步骤
在流程编辑界面中,从“深度学习”分类下将“文本目标检测”模块拖入工作流。
连接上游图像输入至本模块的“图像源”入口。
在模块参数面板中,点击模型选择下拉框,挑选适合当前任务的检测模型。
在“文本提示”输入框中键入目标描述,例如“a cat”或“a apple”。
根据需求调整“框阈值”和“文本阈值”。初次运行可使用默认值,后续再根据检测效果微调。
点击运行按钮,系统将执行推理并在输出区展示检测到的目标框及置信度信息。
如需继续处理检测结果,可将模块输出连接至后续定位、计数或测量环节。
注意事项
文本提示的准确性直接影响检测效果,描述应使用模型训练时常见的表达方式,避免生僻词汇或过于抽象的语句,仅支持英文
框阈值与文本阈值共同决定最终输出的目标数量,建议先观察典型图像的置信度分布后,再设置合理的截止值,避免盲目使用默认值。
不同模型对文字长度的敏感度不同,过长的文本描述可能导致匹配效果下降,宜使用简洁短语。
输入图像的分辨率和清晰度会影响小目标检测性能,对于小于 32×32 像素的目标,可尝试通过前处理放大局部区域。
模块运行需要一定的计算资源,高分辨率大图或多目标场景下,推理时间可能延长,请根据节拍要求选择合适的模型。
结果处理与可视化
结果绘制
结果绘制是指根据流程中指定的起始节点和结束节点,将中间各处理模块产生的结果(如检测框、轮廓、关键点等)统一绘制到目标图像上,用于结果展示与可视化输出。
该功能常用于调试流程、结果验证以及最终图像输出展示。

功能说明
按流程顺序收集指定节点范围内的处理结果
将各模块的检测结果叠加绘制到图像上
支持多种结果类型的统一可视化(如框、点、轮廓等)
输出带标注信息的图像
运行参数
开始绘制节点 指定绘制起始节点,从该节点开始收集结果数据。
结束绘制节点 指定绘制结束节点,在该节点处停止收集结果数据。
分块结果合并
分块结果合并用于将大尺寸图像按网格分块后分别分析得到的目标检测、图像分割或分类结果,还原到整幅图像坐标系中。它能够处理分块重叠区域,去除同一目标的重复结果,并将跨分块边界的目标合并为完整目标,生成可直接用于查看、统计和后续分析的整图结果。

工作原理
模块读取每个分块的分析结果及其在整幅图像中的位置信息。首先将各分块结果中的坐标根据分块原点转换为整幅图像坐标。然后检查相邻分块之间的重叠区域,对表示同一目标的结果进行匹配。匹配时综合考虑位置重合程度、类别一致性和置信度,按用户设定的策略决定保留哪一个或融合为新的结果。对于被分块边界切开的单个目标,如果其在不同分块中分别出现,模块会将它们合并成一个完整目标。最后输出统一坐标和统一类别体系下的整幅结果。
逻辑判定
结果过滤
结果过滤是指基于父节点输出的检测结果(如 Blob、轮廓等),按照设定条件对目标进行筛选,仅保留符合条件的结果,用于提升检测精度或去除无效目标。
该模块通常用于去除噪点、小目标或不符合特征要求的区域,是结果后处理的重要环节。

功能说明
基于父节点的结果数据进行筛选
支持多种属性条件(如面积、长度、灰度等)
支持多种数据类型与比较方式
输出符合条件的目标集合
运行参数
类型 指定参与比较的数据类型:
int:整数类型(如像素个数)
float:浮点类型(如灰度均值、比例等)
string:字符串类型(如分类标签等)
条件 指定筛选的属性字段:
area:面积(像素数量)
length:长度(如轮廓周长或边界长度)
grayscale:灰度值(如均值或指定统计值)
比较方式
等于(=)
小于(<)
小于等于(≤)
大于(>)
大于等于(≥)
区间范围(range):在指定范围内(含或不含边界,视实现而定)
目标值
当比较方式为单值比较时:填写一个目标值
当比较方式为区间范围时:填写最小值与最大值
条件判定
条件判定是指基于指定父节点的输出结果,通过配置一组筛选条件,对结果进行逻辑判断,并输出整体判定结果(OK / NG)。
该模块不直接筛选或修改结果数据,而是用于流程控制与最终质量判定。

功能说明
基于任意父节点的结果数据进行条件判断
支持多条件组合判断
支持不同逻辑关系(任意 / 全部)
输出整体判定结果(OK / NG)
运行参数
判断方式
全部满足(ALL) 所有条件均满足时,结果为 OK,否则为 NG
任意满足(ANY) 任意一个条件满足时,结果为 OK,否则为 NG
类型 指定参与比较的数据类型:
int:整数类型(如面积、数量)
float:浮点类型(如灰度均值、比例等)
string:字符串类型(如标签)
条件 指定参与判断的属性字段:
area:面积
length:长度(如轮廓周长)
grayscale:灰度值
比较方式
等于(=)
小于(<)
小于等于(≤)
大于(>)
大于等于(≥)
区间范围(range)
目标值
单条件:填写一个目标值
区间范围:填写最小值与最大值
输出结果
OK:满足设定判断逻辑
NG:不满足设定判断逻辑
通信
通信分类下的模块主要实现相机与外部设备通讯的功能。
IO输出
该模块主要用于对输出管脚的电平控制。支持4个IO口的电平控制,其对应关系如下表所示:
| I/0信号源 | 说明 | 对应线缆颜色参考 | |
|---|---|---|---|
| IO0 | Line4 | 光耦隔离输出4+ | 绿 |
| IO1 | Line5 | 光耦隔离输出5+ | 黄 |
| IO2 | Line3 | 光耦隔离输出3+ | 黑 |
| IO3 | Line6 | 光耦隔离输出6+ | 灰 |
- 参数配置
- 输出条件:可订阅每个IO输出信号的输出条件,当前仅支持订阅前序模块的输出结果。当前序模块执行成功后,则会被触发该输出条件。
- 持续时间(ms):当持续时间大于0时,表明在电平拉高后,持续对应时间后,自动将电平拉低。当为0时,则不做电平拉低动作。
- 输出类型:OK时输出、NG时输出

输出结果
结果面板中展示每个通道的输出情况,0表示当前为低电平,如下图所示:

扩展
自定义算子
自定义算子用于扩展系统能力,允许用户根据提供的接口规范(头文件)实现自定义算法逻辑,并以动态库(.so)的形式接入到流程中运行。
该模块适用于实现标准算子无法覆盖的特殊需求,例如自定义检测逻辑、复杂业务规则或第三方算法集成。

功能说明
支持加载用户自定义动态库(.so)
按约定接口调用自定义算法逻辑
支持标准化输入输出数据结构
可参与完整流程编排,与其他模块无缝衔接
运行参数
模块名称 用户自定义的模块名称,用于流程中标识该算子。
so文件 用户实现的动态链接库文件(.so),包含具体算法逻辑。
算子配置 定义算子的输入、输出及运行参数,统一采用 Key-Value 结构描述。
算子配置说明

算子配置分为三大类:输入(Input)、输出(Output)、参数(Params),每一项均由以下结构组成:
类型(type):数据类型
名称(name):显示名称
key:字段标识
value:实际数据或默认值
输入(Input)
用于接收上游节点的数据,支持类型:
图片(Image)
数值(int / float)
字符串(string)
布尔值(bool)
坐标数组(如点集、轮廓等)
输出(Output)
用于向下游节点传递结果,支持类型:
图片(Image)
数值(int / float)
字符串(string)
布尔值(bool)
坐标数组
参数(Params)
用于配置算子内部逻辑的运行参数,支持类型:
数值(int / float)
字符串(string)
布尔值(bool)
JSON(用于复杂结构配置)
说明
自定义算子需严格遵循平台提供的接口规范(头文件),否则可能加载失败或运行异常。 头文件参考如下:
C#ifndef __CUSTOMMODELHANDLER_H__ #define __CUSTOMMODELHANDLER_H__ #include <opencv2/opencv.hpp> #include <jsoncpp/json/json.h> namespace CustomModel { /** * @brief 初始化参数结构体 */ struct InitInfo { /// 用于存储自定义模块操作数据的文件夹路径 std::string customDirPath; /// 网页端配置的JSON配置对象 Json::Value configureJson; }; /** * @brief 图像类型枚举 */ enum ImageType { Empty = 0, ///< 空图像 Origin, ///< 原始图像 Mask, ///< 掩码图像 Result ///< 结果图像 }; /** * @brief 输入参数结构体 */ struct InputInfo { ImageType imageType {Empty}; ///< 图像类型 cv::Mat image; ///< 图像数据 /** * @brief 可为空,网页端配置文件输入部分的JSON对象 */ Json::Value params; }; /** * @brief 输出参数结构体 */ struct OutputInfo { ImageType imageType {Empty}; ///< 图像类型 cv::Mat image; ///< 图像数据 /** * @brief 可为空,网页端配置文件输出部分的JSON对象 */ Json::Value params; }; /** * @brief 处理参数结构体 */ struct HandleInfo { std::vector<InputInfo> inputInfoList; ///< 输入信息列表 std::vector<OutputInfo> outputInfoList; ///< 输出信息列表 }; /** * @brief 模型处理器类 */ class Handler { public: virtual ~Handler() = default; /** * @brief 通过配置初始化模型及相关参数 * @param initInfo 初始化参数结构体 * @return 初始化结果(0表示成功,非0表示失败) */ virtual int init(const InitInfo& initInfo) = 0; /** * @brief 使用模型处理输入图像以获得输出结果 * @param handleInfo 处理参数结构体 * @return 图像处理结果(0表示成功,非0表示失败) */ virtual int handleImage(HandleInfo& handleInfo) = 0; /** * @brief 释放使用模型过程中占用的资源 * @return 资源释放结果(0表示成功,非0表示失败) */ virtual int release() = 0; }; } // namespace CustomModel extern "C" { /** * @brief 创建处理器实例 * @return 处理器实例指针 */ CustomModel::Handler* create_instance(); /** * @brief 删除处理器实例 * @param handler 待删除的处理器实例指针 */ void delete_instance(CustomModel::Handler* handler); } #endif // __CUSTOMMODELHANDLER_H__输入输出字段需与流程中上下游节点的数据类型保持一致。
调试与运行
本章介绍如何运行流程、如何逐个节点排查问题,以及如何查看结果与耗时。
运行方式一览
| 方式 | 入口 | 运行范围 | 适用场景 |
|---|---|---|---|
| 整流程执行 | 顶部操作栏 执行 | 当前流程中的全部节点 | 验证完整方案、正式运行 |
| 单节点执行 | 节点配置弹窗底部的 执行 | 仅当前节点 | 调整某个参数后快速看效果、定位问题节点 |
说明:两种方式均为"保存后运行"——点击运行前,当前工作流会先保存到设备。
运行前的检查
连线完整:除采集类节点外,每个节点都应有上游输入;未选择输入源时,弹窗中的 执行 与 确定 不可用。
输入源有效:节点弹窗中的 输入源 下拉框应显示为具体节点,而不是"请选择输入节点"。
参数合法:如圆查找要求"最小扇环半径"不大于"最大扇环半径"。
相机可用:若相机已被其他应用占用,运行时会弹出提示,可选择关闭占用程序后重试。
流程收敛:多分支流程需最终合并到一个输出节点,存在未收敛分支时无法执行。
整流程执行
点击顶部操作栏的 执行(提示文案为"执行当前工作流")。
运行期间页面显示全屏遮罩 工作流执行中…,此时不要重复点击。
运行结束后:
底部汇总栏显示本次运行的总体情况;
右侧结果面板刷新为本次运行的图像与模块结果。
若流程包含静态图节点,运行会使用各静态图节点当前选中的图片。

单节点执行(单步调试)
用于"只改一个节点、只看这个节点"的场景:
在画布上 双击 目标节点,打开配置弹窗。
修改参数后点击弹窗底部的 执行(若只想保存参数,点击 确定)。
系统保存工作流后仅运行该节点,运行完成后右侧结果面板刷新为该节点的输出。
与整流程执行的区别:
| 对比项 | 整流程执行 | 单节点执行 |
|---|---|---|
| 运行范围 | 全部节点 | 仅当前节点 |
| 上游数据 | 本次运行重新产生 | 复用上游已有的运行结果 |
| 典型用途 | 完整验证方案 | 单点调参、定位问题节点 |
使用要点:
单节点执行不会重跑上游节点,因此上游节点需要先运行过一次并产生输出,否则该节点可能因缺少输入图像或数据而失败。
节点需要处于启用状态;被停用的节点无法单独执行。
单节点执行同样会刷新该节点的耗时与状态,可用于判断参数改动对性能的影响。
结果核对
运行后按"从整体到局部"的顺序核对:
1. 看总体结果
底部汇总栏显示:流程总耗时、选中模块耗时、模块数量、结果(成功/失败)。整体结果异常时,先定位到具体节点再看细节。
2. 逐节点核对
右侧面板切换到 模块结果 页签,在下拉框中选择节点。列表头部显示该节点的:
耗时(毫秒);
状态:成功(绿)/ 失败(红);
失败时给出错误信息(悬停警告图标查看具体原因)。
不同模块的结果内容不同(圆心坐标与半径、测量值、分类结果、OCR 文本等)
3. 看图像
切换到 图像 页签可查看输出图像,判断定位框、测量标注、绘制结果是否符合预期;必要时用像素探针核对局部灰度。
4. 按图片核对(静态图流程)
使用静态图作为输入时,每张图片都有各自的运行记录与状态,静态图列表中会标出对应状态;底部汇总栏的"流程总耗时"为各图片耗时之和。排障时建议:先找出状态异常的图片,再回到对应节点核对该图片的结果。
5. 保存结果
结果面板提供下载入口,可将节点输出(图像或结果文件)保存到本地,便于与上位系统或历史数据比对。
核对建议
先用 一张已知结果的图片 验证流程,确认无误后再批量运行。
涉及定位/测量的流程,建议配合 结果绘制 模块把结果叠加到图像上,用肉眼快速确认。
数值类结果重点核对量级与单位(像素 / 标定后的物理单位)。
耗时分析
可用的耗时数据
| 位置 | 内容 |
|---|---|
| 底部汇总栏 | 流程总耗时(各图片耗时之和)、选中模块耗时(选中画布节点后显示)、模块数量 |
| 模块结果页签 | 所选节点的耗时(毫秒)与状态 |
| 节点运行记录(后台保存,界面不展示) | 每个节点的总耗时及前处理、算法调用、后处理三段耗时 |
分析步骤
看总量:比较多次运行的"流程总耗时"是否稳定;波动大说明存在随机因素(相机取流、模型首次加载、系统负载)。
找热点:依次选中画布上的节点,从"选中模块耗时"或模块结果中的耗时找出占比最高的节点。
分环节:后台运行记录把节点耗时拆分为前处理、算法调用、后处理三段;若前处理占比高,通常是图像读取/转换开销,若算法调用占比高,则与算法参数、ROI 大小、图像尺寸相关。
对齐需求:确认单次运行耗时是否满足产线节拍;连续运行时还需考虑取流与处理的重叠。
常见优化方向
缩小处理范围:合理设置 ROI,避免全图搜索。
降低计算量:减少卡尺数量、模板数量、最大结果数等参数;匹配类模块限制角度与尺度范围。
启用加速选项:查找类模块可开启初定位(先粗后精)。
缩小图像:在满足精度前提下使用图片缩放降低分辨率。
模型选择:深度学习模块优先选择与精度要求匹配的模型。
注意事项
首次运行偏慢:相机初始化、模型加载等一次性开销会导致首次运行明显慢于后续运行,建议以第二次之后的耗时作为参考。
多图片运行:静态图批量运行时的"流程总耗时"是多张图片耗时之和,评估单次节拍时应按图片数换算。
耗时与结果需一起看:参数调优后既要确认耗时下降,也要确认结果仍然正确。
常见问题(调试相关)
Q:点击"执行"后一直转圈?
A:检查相机是否被其他程序占用、静态图是否已选择图片;可停止后重新执行。
Q:节点单独执行失败,但整流程执行正常?
A:单节点执行复用上游已有结果,请先完整运行一次流程,再单独调试该节点。
Q:为什么改了参数,结果没有变化?
A:确认弹窗中点击的是 执行 或 确定 已完成保存;若点击 执行,系统会先保存再运行该节点。
附录
术语表
| 术语 | 说明 |
|---|---|
| 工作流 | 一个完整视觉方案,包含流程、节点与连线 |
| 流程 | 工作流中的一个分支,以画布标签页呈现 |
| 节点 / 模块 | 画布上的功能单元(如圆查找、测量) |
| ROI | 感兴趣区域,用于限定检测范围 |
| 卡尺 | ROI 的一种形式,沿指定方向布置检测单元 |
| 边缘极性 | 检测边缘的明暗过渡方向(任意/从黑到白/从白到黑) |
| 初定位 | 先低分辨率粗定位、再原图精定位的加速机制 |
| 标定 | 建立像素坐标与物理坐标换算关系的过程 |
| 像素当量 | 每个像素对应的物理尺寸 |
| 模型集 | 将多个深度学习模型组织为一个节点使用的集合 |
| IO 输出 | 通过设备 IO 接口输出高低电平信号 |
常见问题
什么操作会自动保存?什么操作需要手动保存?
防抖自动保存(编辑后 2 秒触发):拖拽节点、删除节点、创建/删除连线、移动节点、清空画布、撤销/恢复等所有画布编辑操作
即时保存(操作前触发):双击节点打开配置弹窗、执行当前工作流、导出应用,这些操作会先保存再继续,确保操作的是最新状态
静默保存:切换工作流时自动保存当前工作流(不弹提示)
手动保存:点击顶部工具栏「保存到相机」按钮
重要:
防抖自动保存有 2 秒延迟,如果在编辑后 2 秒内关闭页面,
编辑可能丢失。如需确保立即持久化,请点击「保存到相机」按钮。
如何选择相机还是静态图?
拖拽图像源节点到画布(默认为相机节点)
双击图像源节点打开配置框
在顶部下拉框选择"相机"或"静态图"
下方会显示对应的配置表单
如何删除节点?
右键单击节点(节点会显示虚线框高亮)
可以继续右键点击其他节点进行多选
自动弹出删除操作面板
点击删除按钮删除所有选中的节点
点击画布空白区域可取消选中
节点拖拽后是否已有默认参数?
是的,节点拖拽到画布时已自动写入默认参数(如相机默认C0等),无需等到配置后才生效。
输出图像下拉框中的选项是什么格式?
相机节点:
节点名 #短ID .输出图像(C0相机) (1/1)静态图节点:
节点名 #短ID .输出图像(静态图) (1/1)其他处理节点:
节点名 #短ID .输出图像 (1/1)
短ID是节点完整ID的后4位,用于区分相同类型的节点。
如何上传和管理静态图?
: 双击图像源节点,选择"静态图"类型
: 右侧会显示"静态图列表"面板
: 点击"本地上传"按钮选择图片(支持多选)
: 单击缩略图切换显示
: 鼠标悬停在图片上,点击垃圾桶图标可删除单张
: 点击"全部删除"按钮可删除所有图片
导出应用时如何避免覆盖已有应用?
导出到SVE相机端时,系统会自动检查是否存在相同应用ID和版本
如果存在,会弹出确认框:"应用已存在,是否覆盖?"
选择"取消"可中断导出,修改版本号后重新导出
导出到本地不会检查,直接下载zip文件