3D粗匹配(多模板)

功能描述

使用多个模板对场景中的物体进行粗略匹配,并输出目标物体的初始候选位姿。

使用场景

使用多个模板计算场景中的初始物体位姿。是 3D 粗匹配 步骤的扩展版,参数调节方法与其基本一致,可输入多个模板点云进行匹配。 在多模板场景中使用,用来确定或分类不同型号的工件。

此步骤是 3D 粗匹配 步骤的扩展版,在多模板场景使用。通常在此步骤之后连接步骤 3D精匹配(多模板) ,使匹配得出的位姿更加准确。

输入与输出

../../../../_images/input_and_output28.png

参数列表

调节说明

模板及抓取点设置

模板文件

选择模板文件和几何中心文件。

几何中心文件

点云中点方向的计算

点方向的计算方法

选择点方向的计算方法,4种可选。

选取的临近点个数

设置选取的临近点个数。

算法类型 SurfaceMatchingEasyMode

速度调节参数

主、副速度控制参数设置。

输出设定

单个点云输出结果个数设置。

结果可视化

是否显示模型、场景点云及匹配结果。

算法类型 SurfaceMatching

采样设置

降采样及采样间隔设置。

投票设置

量化、投票相关设置。

聚类设置

阈值、聚类相关设置。

位姿验证设置

位姿验证相关设置。

结果可视化设置

是否显示模型、场景点云及匹配结果。

参数说明

模板以及抓取点设置

模板文件及抓取点文件路径设置。

模板文件(必填)
默认值:model.ply
调节说明:ply格式的模板点云。可填入多个文件路径,不同文件用分号隔开。
几何中心文件(必填)
调节说明:json格式的几何中心文件。可填入多个文件路径,不同文件用分号隔开。
调节示例:注意保证每个参数下输入的文件顺序一致,即 模板文件几何中心 中文件路径相同,如 图1所示,不同文件用 隔开 。
../../../../_images/input_path.png

图1 模板及抓取点设置调节示例

点云中点方向的计算

点方向的计算方法
默认值:Origin

值列表

调节说明

Origin

直接使用输入点云的原始法向。

StandardMode

用CPU重新计算输入点云的法向,推荐在模板无法向时使用。在目标点附近搜索距离目标点最近的k个点,利用PCA(主成分分析法)获取最小特征向量作为该点的法向。

EdgeTangent

计算输入边缘点云的切线,利用该点的切线方向作为法向。可区分外轮廓互为镜像的不同物体,推荐在匹配平面物体的边缘点云时使用。

EdgeNormal

计算输入边缘点云的法向,利用该点的切线方向作为法向,推荐在匹配平面物体的边缘点云时使用。

注解

使用 EdgeTangentEdgeNormal 方法时,请保证每一个边缘点云不含有多个物体,即各个物体点云已被分割开。

选取的临近点个数
默认值:10
调节说明:该参数用于调节计算点方向的相邻点的个数,即 StandardMode 模式下k的值。

算法类型

默认值:SurfaceMatchingEasyMode
值列表:SurfaceMatchingEasyMode ,SurfaceMatching
调节说明:该算法类型有两种。结果可视化设置为两种算法都可调节的参数。算法类型参数调节以 图2输入点云为例,通过正反模板分别匹配。先介绍 SurfaceMatchingEasyMode 算法中可调节参数。
SurfaceMatchingEasyMode 算法:可调节参数模块为速度调节参数和输出设定。
SurfaceMatching 算法:可调节参数模块为采样设置、投票设置、聚类设置和位姿验证设置。
../../../../_images/input_cloud.png

图2 输入点云示例


SurfaceMatchingEasyMode参数说明

速度调节参数

主速度控制参数
默认值:2
调节说明:该参数用于调节算法速度。当该值调大时,算法速度变快,但匹配精度降低。其影响效果比 副速度控制参数 明显。 该参数有效范围是1~6。
调节示例:如 图3-1图3-2所示。左侧为该参数在默认值为 2 时的结果,右侧为该参数调整后为 6 的结果。可以明显看出调大后匹配精度降低。
../../../../_images/main_speed_comparison_1.png

图3-1 positive模板参数调整结果比对

../../../../_images/main_speed_comparison_2.png

图3-2 negative模板参数调整结果比对

副速度控制参数
默认值:10
调节说明:该参数用于调节算法速度。当该值调大时,算法速度变快,但匹配精度降低。其影响效果比 主速度控制参数 弱。该参数有效范围是1~20。
调节示例:如 图4-1图4-2所示。左侧为参数在默认值为 10 时的结果,右侧为该参数调整后为 15 的结果。可以看出调整后匹配精度降低,但是影响小于主速度控制参数。
../../../../_images/secondary_speed_comparison_1.png

图4-1 positive模板参数调整结果比对

../../../../_images/secondary_speed_comparison_2.png

图4-2 negative模板参数调整结果比对

输出设定

单个点云输出结果个数
默认值:3
调节说明:该参数用于预期每个点云匹配输出结果的个数。该值越大,匹配输出结果越多。
调节示例:比对结果如 图5所示。左侧为参数值是 1 时的结果,右侧为该参数调整为 3 的结果。
../../../../_images/number_of_output_comparison.png

图5 positive模板单个点云输出结果个数参数调整结果比


SurfaceMatching参数说明。

采样设置

自动降采样
默认值:True
值列表:True,Flase
调节说明:该参数用于决定是否使用自动降采样,若置为 True,会根据采样后模型的期望点数,来自动调节模板点云降采样间隔参数。
采样后模型的期望点数
默认值:1000
调节说明:该参数用于调节采样点云的点数, 在自动降采样值为True时有效 ,得到点云的点数接近于此值。该值越小,采样点云的点数越少,导致估计位姿的精确度变低。
模板采样最大点数
默认值:4000
调节说明:该参数用于设置模板点云降采样以后的点云中的点的最大数目,即为降采样后模板点云中的点的数目设置一个上限。若匹配效果不够理想,建议增大该参数;若对匹配速度有较高要求,建议将该参数调小。
场景采样最大点数
默认值:3000
调节说明:该参数用于设置场景点云降采样以后的点云中的点的最大数目,即为降采样后场景点云中的点的数目设置一个上限。若匹配效果不够理想,建议增大该参数;若对匹配速度有较高要求,建议将该参数调小。
模板点云降采样间隔
默认值:0.01
调节说明:该参数用于调节采样点云的点之间的最大距离,单位为m。当模板点云降采样间隔小于最小采样间隔时,使用最小采样间隔为实际的采样间隔。该值越大,采样之后用于计算的点云数量越少,匹配精确度越低,算法执行耗时减小。
调节示例:如 图6所示。上图为该参数在默认值为 0.01 时的结果,下图为该参数调整后为 0.02 的结果。
../../../../_images/sample_interval.png

图6 模板点云降采样间隔参数调整结果比对

最小采样间隔
默认值:0.003
调节说明:该参数用于计算采样间隔,单位为m。 在自动降采样值为True时有效 。当计算出的采样间隔小于该值时,该值将作为实际的采样间隔。

投票设置

距离量化
默认值:1
调节说明:该参数用于量化点间距离。因为 \(距离间隔 = 距离量化 × 采样间隔\) ,所以该参数变大导致距离间隔变大,进而匹配精度会降低。
角度量化
默认值:60
调节说明:该参数用于量化点间向量间夹角的参数。因为 \(角度间隔 = 2 × 3.14 / 角度量化\) ,所以该参数变大导致角度间隔变大,进而匹配精度会降低。
最大投票比例
默认值:0.8
调节说明:该参数用于设置投票数量占最大投票数量的比例阈值。前面步骤中会得到每个位姿对应的票数,其中最大票数乘该参数得到一个阈值,当某个位姿的票数大于该阈值时,相应的位姿才会保留下来进行聚类操作。该值越小,找到准确匹配结果的可能性就越大,但运行时间会相应增加。该参数有效范围为0~1。
参考点采样步长
默认值:5
调节说明:该参数用于调整参考点的采样步长。在点云中以该步长为一个间隔来采样。当该值越大,间隔采样点越少,执行速度越快,但是匹配精度会降低。
被参考点采样步长
默认值:1
调节说明:该参数用于调整被参考点的采样步长。在点云中以该步长为一个间隔来采样。当该值越大,间隔采样点越少,执行速度越快,但是匹配精度会降低。
参考点与被参考点构成点对,采样间隔大则参考点与被参考点越少,形成的点对越少,执行速度越快。
参考点 指的是位于匹配模板上的采样点。 被参考点 指的是不在匹配模板上的采样点。

聚类设置

聚类比率
默认值:0.1
调节说明:该参数用于调节用于聚类的位姿数目占全部计算得到的位姿的比例大小。任何一个位姿都会在计算过程中得到一个分值,按照分值大小针对所有位姿进行排序,该参数决定了取多大比例的位姿用于聚类,默认值为0.1,即取前10%的位姿作为聚类用的位姿。该值越大,找到准确匹配结果的可能性就越大,但运行时间会相应增加。
角度差异阈值
默认值:15
调节说明:该参数用于调整聚类过程中的角度增量的大小。在最终的计算结果中,同一个物体的可能计算得出了多个位姿,将参数非常接近的位姿进行融合时,该参数决定了角度这一参数的增量。该参数越大,角度差别大的位姿也会被融合到最终的结果中,匹配精度降低。
距离差异阈值
默认值:0.02
调节说明:该参数用于调整聚类过程中的距离增量的大小。在最终的计算结果中,同一个物体的可能计算得出了多个位姿,将参数非常接近的位姿进行融合时,该参数决定了距离这一参数的增量,该参数越大,距离差别大的位姿也会被融合到最终的结果中,匹配精度降低。
输出前N个高分的聚类结果
默认值:5
调节说明:该参数用于调整聚类后得到的多个匹配结果中取分数最高的前N个结果作为最终结果进行输出。

位姿验证设置

使用位姿验证
默认值:True
值列表:True,Flase
调节说明:该参数决定是否使用姿态验证。当该参数置为 True 时,聚类全部参数失效。姿态验证与聚类是两种不同的最终匹配结果的验证和筛选的方法,不能同时使用。
相邻点搜索半径
默认值:1
调节说明:该参数用于控制姿态验证过程中验证区域的大小,单个体素为一个单位。当该值调大后,用于验证姿态的标记区域变大,相应的被包含在内的用于验证最终结果的点就会变多,匹配精度降低。
体素长度
默认值:3
调节说明:将点云所在空间划分为3D网格,该参数就是3D网格最小单元的尺寸,单位为mm。当该值调大时,框选范围变大,被选中的用于姿态验证的点变多,算法速度变快,但匹配精度降低。
单个点云输出结果个数
默认值:3
调节说明:在 SurfaceMatching 算法下,此参数作用与 SurfaceMatchingEasyMode 下相同。
调节示例:如 图7左侧为该参数在默认值为 3 时的结果,右侧为该参数调整后为 1 的结果。
../../../../_images/number_of_output.png

图7 positive模板单个点云输出结果个数参数调整结果比对

结果可视化

显示降采样的模型点云
默认值:False
值列表:True,Flase
调节说明:该参数用于显示降采样的模型点云。
显示降采样的场景点云
默认值:False
值列表:True,Flase
调节说明:该参数用于显示降采样的场景点云。
显示匹配结果
默认值:True
值列表:True,Flase
调节说明:该参数用于显示匹配后的模板以及场景点云。