2D单层平面多物体抓取
适用于多种已知物体,需要注意的是物体种类越多速度越慢,场景要求如下。
物体在同一平面稳定摆放。
使用工业2D相机,相机平行于平面拍照。
本章节描述的相关配置仅供参考,具体操作请以实际项目为准。
基本配置
配置前,请依次完成 新建项目、 添加工作空间,并使用 2D单层平面多物体抓取 模板创建视觉服务,请参见 创建流图。创建完成之后会在左上角生成节点树,如下图所示。
根据需求,依次配置这三个模块。
步骤1. 配置相机模块
步骤2. 配置加载标定信息模块
步骤3. 配置2D形状匹配模块
创建模板。
(可选,该步骤仅对 眼在手上 的场景生效,眼在手外的场景请跳过此步骤。)单击Max右上角的 设置拍照位姿,在弹出的窗口中设置视觉服务、相机ID,单击 获取机械臂位姿,然后单击 设置拍照位姿 即可获取最新的拍照位姿。
![]()
单击左侧节点树中的 2D形状匹配 模块,在 检测物体 页签下单击 创建模板 开始训练工件模板。如果有已训练好的模板,可以直接选择模板检测物体。
![]()
在 训练工件模板 页签单击 创建工件类型 并给工件类型命名,工件模板名称默认与工件类型名称相同,用户可自行修改。测量工件尺寸,并输入工件长、宽、高。然后根据需求设置基础参数,开始训练工件模板。
![]()
训练模板。
在预览窗口单击 单次拍照 获取图像,然后设置检测区域,检测区域尽量贴合工件边缘。如下图所示,是设置好检测区域的结果。
![]()
设置物体中心,对于圆环形工件,尽量贴近圆心。
![]()
![]()
提示
Max提供三种注册物体特征的方式:圆形、矩形、自定义图形。对于不规则工件,用户可选择自定义图形,手动勾画特征点并连接成线,尽量与工件边缘保持贴合以更好地注册物体特征。
对于圆环形工件,也可使用圆形勾画出工件的轮廓,且圆心尽量与物体中心重合。
在训练模板时,注意打光方式,使得工件的阴影区域越小越好。
单击 保存并训练 Max自动完成工件模板训练,然后单击 完成 可使用训练好的模板。
检测物体。
在 检测物体 页签选择已训练完成的工件模板。
![]()
设置显示参数,用户可根据需要选择是否显示匹配点、分数和边缘。
设置检测参数,各参数含义如下。
最小检测分数:最大为100,分数越高匹配越准确,但匹配的数量可能减少。
有效检测数量:检测物体的最大数量,最小值为1。
检测对比度:数值越小,边缘越多,检测速度越慢,精度不一定提升。
弱检测对比度:处于该值与对比度之间的点会根据连接性进行选择,可增加边缘点连续性。
非极大值抑制分数:检测出来的两个物体的交并比(重叠区域面积/两物体总面积)大于该值时,检测分数低的物体会被略去。
启用所有物体非极大值抑制:是否启用所有类型物体的非极大值抑制。
扩增像素和金字塔:图像金字塔梯度扩增像素数。
单击 运行检测,开始检测物体,根据显示参数的设置会在图像预览区显示结果。
![]()
流图详解
视觉流图的配置是Max中的高级用法,对于一般用户而言,配置完节点树中的模块即可运行整个视觉流程,无需再配置视觉流图。视觉流图中包含了节点树中没有的模块,可以配置一些高级参数,如有需要可以按照以下内容操作。
单击“视图 > 节点视图”可查看创建成功的视觉流图,2D单层平面多物体抓取 场景的流图如下。
2D单层平面多物体抓取场景的流图可大致分成三个功能组:图像获取、图像计算处理和图像输出,各模块的配置及使用流程如下。
获取待处理图像。
相机 模块完成内参标定,并获取彩色图。
加载标定信息 模块完成相机和工作空间的标定。
对图像进行计算处理。
2D形状匹配 模块,训练工件模板供2D匹配使用。
投影2D位姿到平面 模块将输入的2D位姿投影到平面上,生成3D位姿。
输出图像处理结果。
通过 保存图像 模块保存 投影2D位姿到平面 模块的输出结果。
变换工件位姿3D 模块将物体位姿从相机坐标系转换到世界坐标系。然后通过 发布3D位姿 和 输出结果 模块输出3D物体。