3D粗匹配(多模板)¶
功能描述¶
使用多个模板对场景中的物体进行粗略匹配,并输出目标物体的初始候选位姿。
使用场景¶
该步骤可使用多个模板计算场景中的初始物体位姿,是 3D 粗匹配 步骤的扩展版,参数调节方法基本一致。
该步骤需在多模板场景中使用,用来确定或区分不同型号的工件。通常在该步骤之后连接步骤 3D 精匹配(多模板) ,使匹配得出的位姿更加准确。
输入与输出¶
参数说明¶
模板以及抓取点设置
模板文件及抓取点文件路径设置。
- 模板文件(必填)
- 默认值:model.ply调节说明:ply格式的模板点云。可填入多个文件路径,不同文件用分号隔开。
- 几何中心文件(必填)
- 调节说明:json格式的几何中心文件。可填入多个文件路径,不同文件用分号隔开。调节示例:注意保证每个参数下输入的文件顺序一致,即 模板文件 和 几何中心 中文件路径相同,如下图所示,不同文件用
;
隔开 。
点云中点方向的计算
- 点方向的计算方法
- 默认值:Origin
值列表 |
调节说明 |
Origin |
直接使用输入点云的原始法向。 |
StandardMode |
用CPU重新计算输入点云的法向,推荐在模板无法向时使用。在目标点附近搜索距离目标点最近的k个点,利用PCA(主成分分析法)获取最小特征向量作为该点的法向。 |
EdgeTangent |
计算输入边缘点云的切线,利用该点的切线方向作为法向。可区分外轮廓互为镜像的不同物体,推荐在匹配平面物体的边缘点云时使用。 |
EdgeNormal |
计算输入边缘点云的法向,利用该点的切线方向作为法向,推荐在匹配平面物体的边缘点云时使用。 |
注解
使用 EdgeTangent 或 EdgeNormal 方法时,请保证每一个边缘点云不含有多个物体,即各个物体点云已被分割开。
- 选取的临近点个数
- 默认值:10调节说明:该参数用于调节计算点方向的相邻点的个数,即 StandardMode 模式下k的值。
算法类型
默认值:SurfaceMatchingEasyMode值列表:SurfaceMatchingEasyMode ,SurfaceMatching调节说明:该算法类型有两种。结果可视化设置为两种算法都可调节的参数。算法类型参数调节以下图输入点云为例,通过正反模板分别匹配。先介绍 SurfaceMatchingEasyMode 算法中可调节参数。SurfaceMatchingEasyMode 算法:可调节参数模块为速度调节参数和输出设定。SurfaceMatching 算法:可调节参数模块为采样设置、投票设置、聚类设置和位姿验证设置。
SurfaceMatchingEasyMode参数说明
速度调节参数
- 主速度控制参数
- 默认值:2调节说明:该参数用于调节算法速度。当该值调大时,算法速度变快,但匹配精度降低。其影响效果比 副速度控制参数 明显。 该参数有效范围是1~6。调节示例:如下图所示。左侧为该参数在默认值为
2
时的结果,右侧为该参数调整后为6
的结果。可以明显看出调大后匹配精度降低。 - 副速度控制参数
- 默认值:10调节说明:该参数用于调节算法速度。当该值调大时,算法速度变快,但匹配精度降低。其影响效果比 主速度控制参数 弱。该参数有效范围是1~20。调节示例:如下图所示。左侧为参数在默认值为
10
时的结果,右侧为该参数调整后为15
的结果。可以看出调整后匹配精度降低,但是影响小于主速度控制参数。
输出设定
- 单个点云输出结果个数
- 默认值:3调节说明:该参数用于预期每个点云匹配输出结果的个数。该值越大,匹配输出结果越多。调节示例:比对结果如下图所示。左侧为参数值是
1
时的结果,右侧为该参数调整为3
的结果。
SurfaceMatching参数说明。
采样设置
- 自动降采样
- 默认值:勾选调节说明:该参数用于决定是否使用自动降采样,若勾选该参数,会根据采样后模型的期望点数,来自动调节模板点云降采样间隔参数。
- 采样后模型的期望点数
- 默认值:1000调节说明:该参数用于调节采样点云的点数,勾选 自动降采样 后才可设置该参数。得到点云的点数接近于此值。该值越小,采样点云的点数越少,导致估计位姿的精确度变低。
- 模板采样最大点数
- 默认值:4000调节说明:该参数用于设置模板点云降采样以后的点云中的点的最大数目,即为降采样后模板点云中的点的数目设置一个上限。若匹配效果不够理想,建议增大该参数;若对匹配速度有较高要求,建议将该参数调小。
- 场景采样最大点数
- 默认值:3000调节说明:该参数用于设置场景点云降采样以后的点云中的点的最大数目,即为降采样后场景点云中的点的数目设置一个上限。若匹配效果不够理想,建议增大该参数;若对匹配速度有较高要求,建议将该参数调小。
- 模板点云降采样间隔
- 默认值:0.01调节说明:该参数用于调节采样点云的点之间的最大距离,单位为m。当模板点云降采样间隔小于最小采样间隔时,使用最小采样间隔为实际的采样间隔。该值越大,采样之后用于计算的点云数量越少,匹配精确度越低,算法执行耗时减小。调节示例:如下图所示。上图为该参数在默认值为
0.01
时的结果,下图为该参数调整后为0.02
的结果。 - 最小采样间隔
- 默认值:0.003调节说明:该参数用于计算采样间隔,单位为m。勾选 自动降采样 后才可设置该参数。当计算出的采样间隔小于该值时,该值将作为实际的采样间隔。
投票设置
- 距离量化
- 默认值:1调节说明:该参数用于量化点间距离。因为 \(距离间隔 = 距离量化 × 采样间隔\) ,所以该参数变大导致距离间隔变大,进而匹配精度会降低。
- 角度量化
- 默认值:60调节说明:该参数用于量化点间向量间夹角的参数。因为 \(角度间隔 = 2 × 3.14 / 角度量化\) ,所以该参数变大导致角度间隔变大,进而匹配精度会降低。
- 最大投票比例
- 默认值:0.8调节说明:该参数用于设置投票数量占最大投票数量的比例阈值。前面步骤中会得到每个位姿对应的票数,其中最大票数乘该参数得到一个阈值,当某个位姿的票数大于该阈值时,相应的位姿才会保留下来进行聚类操作。该值越小,找到准确匹配结果的可能性就越大,但运行时间会相应增加。该参数有效范围为0~1。
- 参考点采样步长
- 默认值:5调节说明:该参数用于调整参考点的采样步长。在点云中以该步长为一个间隔来采样。当该值越大,间隔采样点越少,执行速度越快,但是匹配精度会降低。
- 被参考点采样步长
- 默认值:1调节说明:该参数用于调整被参考点的采样步长。在点云中以该步长为一个间隔来采样。当该值越大,间隔采样点越少,执行速度越快,但是匹配精度会降低。参考点 与 被参考点 构成点对,采样间隔大则参考点与被参考点越少,形成的点对越少,执行速度越快。参考点 指的是位于匹配模板上的采样点。 被参考点 指的是不在匹配模板上的采样点。
聚类设置
- 聚类比率
- 默认值:0.1调节说明:该参数用于调节用于聚类的位姿数目占全部计算得到的位姿的比例大小。任何一个位姿都会在计算过程中得到一个分值,按照分值大小针对所有位姿进行排序,该参数决定了取多大比例的位姿用于聚类,默认值为0.1,即取前10%的位姿作为聚类用的位姿。该值越大,找到准确匹配结果的可能性就越大,但运行时间会相应增加。
- 角度差异阈值
- 默认值:15调节说明:该参数用于调整聚类过程中的角度增量的大小。在最终的计算结果中,同一个物体的可能计算得出了多个位姿,将参数非常接近的位姿进行融合时,该参数决定了角度这一参数的增量。该参数越大,角度差别大的位姿也会被融合到最终的结果中,匹配精度降低。
- 距离差异阈值
- 默认值:0.02调节说明:该参数用于调整聚类过程中的距离增量的大小。在最终的计算结果中,同一个物体的可能计算得出了多个位姿,将参数非常接近的位姿进行融合时,该参数决定了距离这一参数的增量,该参数越大,距离差别大的位姿也会被融合到最终的结果中,匹配精度降低。
- 输出前N个高分的聚类结果
- 默认值:5调节说明:该参数用于调整聚类后得到的多个匹配结果中取分数最高的前N个结果作为最终结果进行输出。
位姿验证设置
- 使用位姿验证
- 默认值:勾选调节说明:该参数决定是否使用姿态验证。当勾选该参数时,聚类全部参数失效。姿态验证与聚类是两种不同的最终匹配结果的验证和筛选的方法,不能同时使用。
- 相邻点搜索半径
- 默认值:1调节说明:该参数用于控制姿态验证过程中验证区域的大小,单个体素为一个单位。当该值调大后,用于验证姿态的标记区域变大,相应的被包含在内的用于验证最终结果的点就会变多,匹配精度降低。
- 体素长度
- 默认值:3调节说明:将点云所在空间划分为3D网格,该参数就是3D网格最小单元的尺寸,单位为mm。当该值调大时,框选范围变大,被选中的用于姿态验证的点变多,算法速度变快,但匹配精度降低。
- 单个点云输出结果个数
- 默认值:3调节说明:在 SurfaceMatching 算法下,此参数作用与 SurfaceMatchingEasyMode 下相同。调节示例:如下图所示,左侧为该参数在默认值为
3
时的结果,右侧为该参数调整后为1
的结果。
结果可视化
- 显示降采样的模型点云
- 默认值:不勾选调节说明:该参数用于显示降采样的模型点云。
- 显示降采样的场景点云
- 默认值:不勾选调节说明:该参数用于显示降采样的场景点云。
- 显示匹配结果
- 默认值:勾选调节说明:该参数用于显示匹配后的模板以及场景点云。