3D精匹配(多模板)

功能描述

使用多个模板对场景中的物体进行精确匹配,输出目标物体更准确的抓取点。

使用场景

此步骤在 3D粗匹配(多模板) 输出的初始候选位姿基础上,进行更精确的匹配,输出目标物体更准确的位姿。

输入与输出

3d fine matching multiple models input and output

参数说明

参数调试等级

默认值:Basic

值列表:Basic, Advanced

调节说明:可设置两种不同的参数调节等级:

  • Basic 为基础调节,有少量的可调参数;

  • Advanced 为高级调节,有更多的可调参数。

基础参数调试

此章节将介绍基础参数调试(Basic)模式中的可调参数,这些参数同时也可以在 高级参数调节模式 中进行调试。

模板及抓取点设置

模板文件(必填)

默认值:model.ply

调节说明:ply 格式的模板点云。可填入多个文件路径,不同文件用分号隔开。

几何中心文件(必填)

调节说明:json 格式的几何中心文件。可填入多个文件路径,不同文件用分号隔开。

模板标签文件(可选)

调节说明:json 格式的模板标签文件,可填入多个文件路径,不同文件用分号隔开。

调节示例:注意保证每个参数下输入的文件顺序一致,即:若在模板标签文件中先输入的是正面的文件路径,则在模板文件几何中心中也应先输入正面的文件路径(positive),如下图所示。

3d fine matching multiple models model labelfile

设置完成后输出的点云如下图所示,物体的正面模板和反面模板都可以很好地匹配场景点云。

3d fine matching multiple models multiple template 3dmatching

点云中点方向的计算

点方向的计算方法

默认值:Origin

调节说明:用于计算点云中点方向的方法共有四种,根据工程实际情况进行选择:

值列表 调节说明

Origin

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

StandardMode

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

EdgeTangent

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

区分正反。可以使用 3D精匹配(多模板) 步骤,且模板点云为物体的正反模板;

不区分正反。只需要使用 3D精匹配 (单模板)步骤即可。

EdgeNormal

计算输入边缘点云的法向。推荐在匹配平面物体的边缘点云时使用。

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

选取的邻近点个数

默认值:10

调节说明:用于计算点方向的相邻点的个数,最小值为1。

对应设置

默认值: GMM

值列表: GMM, nearest-neighbor

调节说明:该参数用于选择局部匹配方法,将模板点云和场景点云进行匹配,模板点云会根据设置的范围进行移动和旋转,从而与前面步骤中得到的场景中的点云进行匹配。

调节示例:在绝大部分的场景下,GMM 拥有更好的抗干扰性和更快的匹配速度,因此推荐使用该模式;在极少数的情况下(GMM不能满足需求时),可以尝试使用最近点( nearest-neighbor )模式。

GMM 模式参数设置

匹配模式

默认值:Standard

值列表:HighSpeed, Standard, HighPrecision

调节说明:匹配模式共有三种,根据工程需要选择合适的模式。

  • HighSpeed:速度最快但是精度较低的模式;

  • Standard:一个比较稳定的模式;

  • HighPrecision:精度最高但速度较慢的模式。

迭代次数

默认值:30

调节说明:迭代是指对于特定指令循环运行,直至满足条件为止的过程。迭代次数则指的是这个过程中重复指令的次数,在这里设置的参数是迭代次数的上限,值越大则匹配计算次数越多,运行时间越长,但是会提高相应的匹配精度。

标准偏差

默认值:3.000 mm

调节说明:当经过上一步( 3D粗匹配 )处理后的初始位姿偏差越大时,即场景点云和模板点云的偏差越大时,需要设置更大的标准偏差值与之对应,此时运行速度就会越快。

调节示例:此参数值需要与初始位姿的偏差对应,若设置的值大于初始位姿偏差,则会出现输出结果误差极大的情况。因此,一般情况下,此参数设置的值不会超过 0.01m。

标准偏差衰减更新步数

默认值:3

调节说明:在匹配过程中,标准偏差越来越小,直至达到最小标准偏差所设置的值为止。在这个过程中标准偏差衰减的次数,即为此参数的值。对于一些标准误差较大的情况,衰减次数越多时,整个衰减过程越趋于稳定。一般情况下,此参数不需要进行调整。

最小标准偏差

默认值:0.001

调节说明:最小的标准偏差值,即经过衰减后达到的最小值。

迭代中应用权重

默认值:不勾选

调节说明:如果勾选,则模型的权重将用于算法的迭代中,因此较可能将权重模板匹配的更好。

最近点模式(nearest-neighbor)参数设置

迭代设置

迭代次数

默认值:30

调节说明:迭代是指对于特定指令循环运行,直至满足条件为止的过程。迭代次数则指的是这个过程中重复指令的次数,在最近点模式中,当计算满足算法的精度要求时会停止迭代。在这里设置的参数是迭代次数的上限,值越大则匹配计算次数越多,运行时间越长,但是会提高相应的匹配精度。

最近点搜索半径

默认值:10.000 mm

调节说明:该参数用于调节最近点的搜索半径,单位为毫米(mm),其数值的设置应与输入的初始位姿偏差对应。当输入的初始位姿偏差很大时,即场景点云与模板点云的偏差很大时,需要增加此参数的值来增加最近点的搜索半径范围,这样才可以保证每一个点都能找到最近邻点;当初始位姿偏差很小时,可以将此参数调小。此参数可设置的最小值为 0.001,若小于此下限,部分分布较为稀疏的点可能找不到最近点,导致对输出结果产生影响。

调节示例:当初始位姿偏差较大,而此参数为最小值 0.001 时,匹配结果会不完整,如下图中的 b 所示;当增大此参数至 0.01 时,搜索半径范围变大,可以输出较完整的匹配结果,如下图中的 a 所示。

3d fine matching multiple models nearestneighbor smallradius
均方误差阈值

默认值:0.001

调节说明:该参数用于调整平方误差均值的大小。每次迭代过后该值会被记录下来,用于后续的迭代步骤中的比较。当某一次迭代的平方误差均值小于该设定的值的时候,则认为迭代效果已经达到要求而终止迭代。

窗口尺寸

默认值:10

调节说明:该参数指代了迭代优化过程中误差波动很小的连续迭代次数的数目,最小值为 3。当此参数过小时,可能出现局部最优解,从而影响最终的匹配精度。比如,窗口只包含了三次连续的迭代结果的误差,因此只能通过比较该三次迭代的误差来获得误差变化趋势,可能导致得到局部最优解(第二次迭代误差小于第一次迭代和第三次迭代),而不是全局最优解(根据迭代次数建议值,全局包含了30次迭代,后续可能出现更明显的误差下降的迭代)。

显示对应点

默认值:不勾选

调节说明:若勾选该参数,则会在每次迭代中显示对应的点。

是否为复杂物体

默认值:不勾选

调节说明:如果目标对象是复杂形状物体(非简单的几何形状),并且如果需要使用自动计算迭代点对权重功能时,应勾选该参数。

自动计算迭代点对权重

默认值:不勾选

调节说明:若勾选该参数,将使用自动计算迭代点对权重的功能,建议对匹配结果不好的对象使用此功能。

去除点对的设置

去除问题点对

默认值:不勾选

调节说明:在最近点的搜索过程中会出现多个点对,因此可以使用此功能进行点对的筛选。若勾选该参数,则将使用此功能,通过以下的点对去除 sigma 倍数阈值点对角度差阈值参数去除问题点对;若不勾选该参数,则这两个参数不会生效。

点对去除sigma倍数阈值

默认值:1.0000

调节说明:sigma倍数阈值指的是点对间距离方差倍数的值,此参数根据点对间的距离对其进行筛选。若两点间距离超过此范围,则这个点对将被消除。

点对角度差阈值

默认值:45°

调节说明:如果点对的法向之间的角度差大于此值,则这个点对将被消除。

在迭代中使用权重

默认值:不勾选

调节说明:若勾选该参数,则模型的权重将用于算法的迭代中,因此较可能将权重模板匹配的更好。

去除重复点对

默认值:不勾选

调节说明:若勾选该参数,将使用去除重复点对的功能,去除重复点云类型参数将会生效。建议在模型点云的点数多于场景中单个物体的点数时使用。

去除重复点云类型

默认值:MinDis

值列表:MinDis,GlobalMin

调节说明:该参数用于选取删除点对上的重复对应的方法,一共包含两个方法:

最小距离(MinDis) 指计算重复对应的点对之间的距离,保留距离最小的点对,将其余重复点对删除; 全局平均值(GlobalMin) 指将各个重复对应的点对之间的距离的均值作为参考,找到与该均值差别最小的点对保留下来,将消除相对较少的重复的对应点对。

采样设置

采样间隔

默认值:5.000 mm

调节说明:用于模型与场景点云降采样的采样间隔,单位为毫米(mm)。该值越大,采样得到的点云越少,模型估计的精确度越低。

调节示例:下面两图分别是当此参数为 0.0128 和 0.01 时获取的点云结果,其中白色的是输入的场景点云。从两张图的对比中可得知,越小的采样间隔(上图)可以得出越精确的输出结果。

3d fine matching multiple models 3d matching sampling
3d fine matching multiple models multiple template 3dfinematching
搜索点数

默认值:20

调节说明:当参数调试等级为Advanced时,可调节此参数。此参数是为了兼容性而保留,用于调节采样过程中搜索点的数目。

位姿过滤设置

根据模板翻转角度过滤位姿

参数解释:边缘匹配模式下,当模板点云匹配至场景点云时,根据模板翻转角度过滤位姿。当模板翻转角度超过“角度差值上限阈值”时,该位姿将被过滤。

默认值:关闭。

角度差值上限阈值

参数解释:可参考“根据模板翻转角度过滤位姿”参数解释。

默认值:135.000°

结果验证设置

置信阈值

默认值:0.5

有效范围:[0,+∞)

调节说明:当结果的验证分数大于此参数时,则认为结果有效,会被保留作为输出。该值越大时,越趋向于保留匹配精度更高的结果。

结果评价搜索半径

默认值:10.000 mm

有效范围:[0,+∞)

调节说明:此参数为计算置信度时的搜索半径,单位为毫米(mm)。需根据该物体点云情况进行设置,如果点云稀疏则需要设置的稍微大一些。

输出设置

单个点云输出结果个数

默认值:1

调节说明:该值越大,匹配输出结果越多。

调节示例:下图为默认值,即单个点云输出 1 个结果。

3d fine matching multiple models multiple singleoutput

当设置此参数为 4 时,匹配输出的结果就会越多,如下图所示。

3d fine matching multiple models multiple fouroutput

结果可视化

显示匹配结果

默认值:勾选

调节说明:勾选该参数后,显示输出的模型和场景点云。

高级参数调试

此部分只对高级参数调试(Advanced)中新增的可调参数进行介绍,若有与基础参数调试(Basic)中相同的参数,请参考 基础参数调试

对称性设置

当待识别工件具有局部对称性时,为了避免匹配结果陷入局部最优,需增加对称性设置。 通过指定几何中心点的某一轴为旋转轴,模板围绕所设置的轴进行对称性尝试,进而筛选出匹配最好的结果。

对称性旋转轴

默认值:ROTATE_BY_Z

值列表:ROTATE_BY_X, ROTATE_BY_Y, ROTATE_BY_Z

调节说明:该参数用于选取几何中心的旋转轴。

对称角度步长

默认值:360°

调节说明:该参数用于调整对称角度的大小,是将初始位姿从最小旋转角更改为最大旋转角的角度步长。

调节示例:如果一个物体在绕对称轴旋转 60° 前后看起来一样,其对称角步长为 60°。

最小旋转角

默认值:-180°

调节说明:该参数用于调整最小旋转角。

最大旋转角

默认值:180°

调节说明:该参数用于调整最大旋转角。

调节示例

如下图所示的曲轴工件,其主体部分,即方框内的部分沿 Y 轴成 180° 对称。

3d fine matching multiple models 3d fine matching add example1
3d fine matching multiple models 3d fine matching add example2

若不设置对称性参数,由于局部形状相似,匹配结果可能会陷入局部最优,导致匹配错误,如下图所示。

3d fine matching multiple models 3d fine matching add example3

分析错误结果,模板只匹配到了曲轴中间的部分,若模板在匹配过程中增加一次旋转 180°后的匹配尝试,将匹配到整个曲轴,其匹配得分一定高于旋转之前的匹配得分,那么就可能会得到正确的结果。

将对称性旋转轴设置为 ROTATE_BY_Y (几何中心点的 Y 轴),对称角度步长设置为 180° 后,得到了正确的匹配结果,如下图所示。

3d fine matching multiple models 3d fine matching add example4

验证时的模型权重

当待识别工件的“主体”较为相似,只有“局部”差异较大时,需要增大模型“局部”的权重,来输出“局部”匹配正确的结果。

模板权重文件

调节说明:此文件(ply格式)是原本的点云模板文件里的一部分点云,这部分的点云具有较高的权重,并由权重值参数进行设置,需要根据实际工件确定选取哪部分作为权重模板。

权重值

默认值:2.0

调节说明:该参数用于为点云设置权重值,没有单位。假设所有初始点云的权重系数均为 1,为目标点云设置该参数后,目标点云权重系数会变成1 X 该参数,从而在后续的匹配步骤中的实现强调的目的。

权重设置搜索半径

默认值:3.000 mm

调节说明:该参数用于设置点云增加权重过程中的搜索半径,单位为毫米(mm)。权重的设置是在原始的模型点云上进行的操作,模型点云在用于匹配过程之前会进行降采样处理,导致部分需要被设置权重的点移位或者丢失。而在对丢失点的附近的点进行权重设置的过程中,需要进行搜索半径的设置,该搜索半径由此参数设置。

调节示例

此示例延续对称性设置示例。

由于曲轴的“主体”部分较为相似,只有“局部”两侧的差异较大,故需要增大模型“局部”的权重,来输出“局部”匹配正确的结果。

结果验证设置

结果评价考虑点对法向夹角偏差

默认值:不勾选

调节说明:若勾选该参数,则在验证位姿的过程中,将会考虑对应点对的法向矢量的角度差异,其输出往往会减少,但会更加精确。

得分乘上对应点在场景点的比例

默认值:不勾选

调节说明:若勾选该参数,匹配得分会再乘【对应点占场景点的比例系数】。不适用于估计一个点云中多个物体的位姿情况。

结果可视化

显示采样后模型点云

默认值:不勾选

调节说明:若勾选该参数,则在输出的结果中会显示采样后的模型点云,根据实际场景的需要进行设置。

显示采样后的场景点云

默认值:不勾选

调节说明:若勾选该参数,则在输出的结果中会显示采样后的场景点云,根据实际场景的需要进行设置。

显示模板与场景点云对应关系

默认值:不勾选

调节说明:若勾选该参数,则在输出的结果中会显示模板与场景点云的对应关系,根据实际场景的需要进行设置。

我们重视您的隐私

我们使用 cookie 为您在我们的网站上提供最佳体验。继续使用该网站即表示您同意使用 cookie。如果您拒绝,将使用一个单独的 cookie 来确保您在访问本网站时不会被跟踪或记住。