3D粗匹配¶
功能描述
将点云模板与原始点云粗略匹配,输出目标物体的粗略候选位姿。
(点云模板的创建可参考 生成点云模板 。)
使用场景
通常用于在场景点云中寻找目标物体,并获得其粗略候选位姿。该步骤通常与 3D精匹配 组合使用。
输入与输出
参数说明
模板以及抓取点设置
模板文件及抓取点文件路径设置。
- 模板文件(必填)
- 默认值:model.ply调节说明:ply格式的模板点云。
注解
模板文件的构造过程与生成点云模板有关,具体可参考 匹配模板与抓取点编辑器 。
- 几何中心文件(必填)
- 调节说明:json格式的几何中心文件。
注解
几何中心文件的构造过程与添加抓取点有关,具体可参考 匹配模板与抓取点编辑器 。
点云中点方向的计算
- 点方向的计算方法
- 默认值:Origin
值列表
调节说明
Origin
直接使用输入点云的原始法向。
StandardMode
用CPU重新计算输入点云的法向,推荐在模板无法向时使用。在目标点附近搜索距离目标点最近的k个点,利用PCA(主成分分析法)获取最小特征向量作为该点的法向。
EdgeTangent
计算输入边缘点云的切线,利用该点的切线方向作为法向。可区分外轮廓互为镜像的不同物体,推荐在匹配平面物体的边缘点云时使用。
EdgeNormal
计算输入边缘点云的法向,利用该点的切线方向作为法向,推荐在匹配平面物体的边缘点云时使用。
- 选取的临近点个数
- 默认值:10调节说明:该参数用于调节计算点方向的相邻点的个数,即 StandardMode 模式下k的值。
算法类型
默认值:SurfaceMatchingEasyMode值列表:SurfaceMatchingEasyMode ,SurfaceMatching调节说明:该算法类型有两种。结果可视化设置为两种算法都可调节的参数。算法类型参数调节以 图1输入点云为例,先介绍 SurfaceMatchingEasyMode 算法中可调节参数。SurfaceMatchingEasyMode 算法:可调节参数模块为速度调节参数和输出设定。SurfaceMatching 算法:可调节参数模块为采样设置、投票设置、聚类设置和位姿验证设置。
SurfaceMatchingEasyMode参数说明。
速度调节参数
- 主速度控制参数
- 默认值:2调节说明:该参数用于调节算法速度。当该值调大时,算法速度变快,但匹配精度降低。其影响效果比 副速度控制参数 明显。 该参数有效范围是1~6。
- 副速度控制参数
- 默认值:10调节说明:该参数用于调节算法速度。当该值调大时,算法速度变快,但匹配精度降低。其影响效果比 主速度控制参数 弱。 该参数有效范围是1~20。
输出设定
- 单个点云输出结果个数
- 默认值:3调节说明:该参数用于预期每个点云匹配输出结果的个数。该值越大,匹配输出结果越多。 该参数有效范围是1~∞。
SurfaceMatching参数说明。
采样设置
- 自动降采样
- 默认值:True值列表:True,Flase调节说明:该参数用于决定是否使用自动降采样,若置为
True
,会根据采样后模型的期望点数,来自动调节模板点云降采样间隔参数。 - 采样后模型的期望点数
- 默认值:1000调节说明:该参数用于调节采样点云的点数, 在自动降采样值为True时有效 ,得到点云的点数接近于此值。该值越小,采样点云的点数越少,导致估计位姿的精确度变低。
- 模板采样最大点数
- 默认值:4000调节说明:该参数用于设置模板点云降采样以后的点云中的点的最大数目,即为降采样后模板点云中的点的数目设置一个上限。若匹配效果不够理想,建议增大该参数;若对匹配速度有较高要求,建议将该参数调小。
- 场景采样最大点数
- 默认值:3000调节说明:该参数用于设置场景点云降采样以后的点云中的点的最大数目,即为降采样后场景点云中的点的数目设置一个上限,从而限制最大运行时间。该参数的数值不能小于实际采样点数,一般不需要调整。若对最大运行时间有限制要求,建议将该参数调小。
- 模板点云降采样间隔
- 默认值:0.01调节说明:该参数用于调节采样点云的点之间的最大距离,单位为m。当模板点云降采样间隔小于最小采样间隔时,使用最小采样间隔为实际的采样间隔。该值越大,采样之后用于计算的点云数量越少,匹配精确度越低,算法执行耗时减小。
- 最小采样间隔
- 默认值: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 下相同。
结果可视化
- 显示降采样的模型点云
- 默认值:False值列表:True,Flase调节说明:该参数用于显示降采样的模型点云。
- 显示降采样的场景点云
- 默认值:False值列表:True,Flase调节说明:该参数用于显示降采样的场景点云。
- 显示匹配结果
- 默认值:True值列表:True,Flase调节说明:该参数用于显示匹配后的模板以及场景点云。