3D精匹配
使用场景
该步骤在 3D粗匹配V2 输出的初始候选位姿基础上,进行更精确的匹配,输出目标物体更准确的位姿(可作为抓取点)。
输入与输出
其他输入、输出端口的描述如下表所示。
其他输入端口 | 端口描述 |
---|---|
初始候选位姿 |
候选位姿列表,通常为“3D粗匹配”步骤输出的粗略位姿。 |
目标物体的标签 |
一般为深度学习相关步骤输出的目标物体的标签(可选)。 |
目标物体的置信度 |
一般为深度学习相关步骤输出的目标物体的置信度(可选)。 |
其他输出端口 | 端口描述 |
---|---|
模型变换 |
点云模板变换到场景中工件点云时的变换矩阵列表。 |
目标物体的标签 |
目标物体的标签(深度学习类步骤相关)。 |
目标物体的置信度 |
目标物体的置信度(深度学习类步骤相关)。 |
位姿置信度 |
物体位姿对应的置信度列表。 |
可视化彩色点云 |
使用彩色点云显示匹配结果。白色点云表示场景点云,彩色点云表示匹配后的各个物体的点云。用户可通过对比白色点云与彩色点云的重合程度,来检查点云模板匹配的效果。 |
参数说明
参数调试等级
默认值:Basic
值列表:Basic, Advanced
调节说明:可设置两种不同的参数调节等级:
Basic 参数调试
此部分将介绍基础参数调试(Basic)模式中的可调参数,这些参数同时也可以在 高级参数调节模式 中进行调试。
模板设置
- 模型选择
-
调节说明:单击右侧下拉按钮可快速选择并切换模型文件与对应的几何中心文件。
- 模型文件
-
调节说明:鼠标左键单击 后,选择 ply 格式的模板点云文件。
- 几何中心文件
-
调节说明:鼠标左键单击 后,选择 json 格式的几何中心文件。
点云中点方向的计算
- 点方向的计算方法
-
默认值:Origin
调节说明:用于计算点云中点方向的方法共有四种,根据工程实际情况进行选择。
值列表 | 调节说明 |
---|---|
Origin |
直接使用输入点云的原始法向 |
StandardMode |
用 CPU 重新计算输入点云的法向,推荐在模板无法向时使用:在目标点附近搜索距离目标点最近的 k 个点,利用 PCA(主成分分析法)获取最小特征向量作为该点的法向。 |
EdgeTangent |
计算输入边缘点云的切线,利用该点的切线方向作为法向。可区分外轮廓互为镜像的不同物体,推荐在匹配平面物体的边缘点云时使用,有以下两种使用场景。 |
场景 1:区分正反。可以使用 3D匹配与分类(多模板) 步骤,且模板点云为物体的正反模板。 |
|
场景 2:不区分正反。只需要使用 3D精匹配 (单模板)步骤即可。 |
|
EdgeNormal |
计算输入边缘点云的法向。推荐在匹配平面物体的边缘点云时使用。 |
使用EdgeTangent或EdgeNormal方法时,请保证每一个边缘点云不含有多个物体,即各个物体点云已被分割开。 |
- 选取的邻近点个数
-
默认值:10
调节说明:用于计算点方向的相邻点的个数,最小值为 1。
对应设置
默认值: GMM
值列表: GMM, nearest-neighbor
调节说明:该参数用于选择局部匹配方法,将模板点云和场景点云进行匹配,模板点云会根据设置的范围进行移动和旋转,从而与前面步骤中得到的场景中的点云进行匹配。
调节示例:在绝大部分的场景下,GMM 拥有更好的抗干扰性和更快的匹配速度,因此推荐使用该模式;在极少数的情况下(GMM 不能满足需求时),可以尝试使用最近点(nearest-neighbor)模式。
GMM 模式参数设置
- 匹配模式
-
默认值:Standard
值列表:HighSpeed, Standard, HighPrecision
调节说明:匹配模式共有三种,根据工程需要选择合适的模式:
HighSpeed:速度最快但是精度较低的模式; Standard:一个比较稳定的模式; HighPrecision:精度最高但速度较慢的模式。
- 迭代次数
-
默认值:30
调节说明:迭代是指对于特定指令循环运行,直至满足条件为止的过程。迭代次数则指的是这个过程中重复指令的次数,在这里设置的参数是迭代次数的上限。此参数值越大时,匹配计算次数越多,运行时间越长,但会提高相应匹配精度。
- 标准偏差
-
默认值:3.000 mm
调节说明:此参数值需要与初始位姿的偏差对应。当经过上一步(3D粗匹配V2 )处理后的初始位姿偏差越大时,即场景点云和模板点云的偏差越大时,需要设置更大的标准偏差值与之对应,此时运行速度就会越快。
调节示例:若设置的值大于初始位姿偏差,则会出现输出结果误差极大的情况。如下图所示,右图的标准偏差为 0.04m,远大于其初始位姿偏差。因此,将其(右图)与默认值(左图)进行对比时会发现,输出结果的精度会大大下降。一般情况下,此参数设置的值不会超过 0.01m。
对于小工件匹配,建议将标准偏差调低以获得更优的匹配结果。
- 标准偏差衰减更新步数
-
默认值:3
调节说明:在匹配过程中,标准偏差会越来越小,直至达到最小标准偏差所设置的值为止。在这个过程中标准偏差衰减的次数,即为此参数的值。对于一些标准误差较大的情况,衰减次数越多时,整个衰减过程越趋于稳定。一般情况下,此参数不需要进行调整。
- 多物体匹配提速
-
默认值:不勾选。
调节说明:若场景中有大量物体,推荐勾选此项。勾选后,此步骤在匹配大量物体时会更快,但在匹配少量物体时会更慢。
最近点模式(nearest-neighbor)参数设置
迭代设置
- 最近点搜索半径
-
默认值:10.000 mm
有效范围:[0.0010,+∞)
调节说明:该参数用于调节最近点的搜索半径,单位为 m,其数值的设置应与输入的初始位姿偏差对应。当输入的初始位姿偏差很大时,即场景点云与模板点云的偏差很大时,需要增加此参数的值来增加最近点的搜索半径范围,这样才可以保证每一个点都能找到最近邻点;当初始位姿偏差很小时,可以将此参数调小。此参数可设置的最小值为 0.001m,若小于此下限,部分分布较为稀疏的点可能找不到最近点,导致对输出结果产生影响。
- 均方误差阈值
-
默认值:0.001
调节说明:该参数用于调整平方误差均值的大小。每次迭代过后该值会被记录下来,用于后续的迭代步骤中的比较。当某一次迭代的平方误差均值小于该设定的值的时候,则认为迭代效果已经达到要求而终止迭代。
- 窗口尺寸
-
默认值:10
有效范围:[3,+∞)
调节说明:该参数指代了迭代优化过程中误差波动很小的连续迭代次数的数目。当此参数过小时,可能出现局部最优解,从而影响最终的匹配精度。比如,窗口只包含了三次连续的迭代结果的误差,因此只能通过比较该三次迭代的误差来获得误差变化趋势,可能导致得到局部最优解(第二次迭代误差小于第一次迭代和第三次迭代),而不是全局最优解(根据迭代次数建议值,全局包含了30次迭代,后续可能出现更明显的误差下降的迭代)。
- 显示对应点
-
默认值:不勾选
调节说明:若勾选该参数,则会在每次迭代中显示对应的点。
- 是否为复杂物体
-
默认值:不勾选
调节说明:如果目标对象是复杂形状物体(非简单的几何形状),并且如果需要使用自动计算迭代点对权重功能时,应勾选该参数。
- 自动计算迭代点对权重
-
默认值:不勾选
调节说明:若勾选该参数,将使用自动计算迭代点对权重的功能,建议对匹配结果不好的对象使用此功能。
去除点对的设置
- 去除问题点对
-
默认值:不勾选
调节说明:在最近点的搜索过程中会出现多个点对,因此可以使用此功能进行点对的筛选。若勾选该参数,则将使用此功能,通过以下的点对去除 sigma 倍数阈值和点对角度差阈值参数去除问题点对;若不勾选,则这两个属性不会生效。
- 点对去除 sigma 倍数阈值
-
默认值:1.0000
调节说明:sigma 倍数阈值指的是点对间距离方差倍数的值,此参数根据点对间的距离对其进行筛选。若两点间距离超过此范围,则这个点对将被消除。
- 点对角度差阈值
-
默认值:45°
调节说明:如果点对的法向之间的角度差大于此值,则这个点对将被消除。
- 在迭代中使用权重
-
默认值:不勾选
调节说明:若勾选该参数,则模型的权重将用于算法的迭代中,因此较可能将权重模板匹配的更好。
- 去除重复点对
-
默认值:不勾选
调节说明:若勾选该参数,将使用去除重复点对的功能,去除重复点云类型属性将会生效。建议在模型点云的点数多于场景中单个物体的点数时使用。
- 去除重复点云类型
-
默认值:MinDis
值列表:MinDis,GlobalMin
调节说明:该参数用于选取删除点对上的重复对应的方法,一共包含两个方法:
最小距离(MinDis) 指计算重复对应的点对之间的距离,保留距离最小的点对,将其余重复点对删除; 全局平均值(GlobalMin) 指将各个重复对应的点对之间的距离的均值作为参考,找到与该均值差别最小的点对保留下来,将消除相对较少的重复的对应点对。
采样设置
- 采样间隔
-
默认值:5.000 mm
调节说明:用于模型与场景点云降采样的采样间隔。该值越大,采样得到的点云越少,模型估计的精确度越低。
调节示例:如下图所示分别为当此参数为 0.005 (左侧图像),和 0.025(右侧图像)时获取的点云结果,其中白色的是输入的场景点云。从两张图的对比中可得知,越小的采样间隔可以得出越精确的输出结果。
结果验证设置
- 置信阈值
-
默认值:0.5
有效范围:[0,+∞)
调节说明:当结果的验证分数大于此参数时,则认为结果有效,会被保留作为输出。较高的阈值意味着较少的有效匹配,但输出的准确度更高。较低的阈值意味着较多的有效匹配,但是输出的准确度更低。
调节示例:在下图中,a 的置信阈值为 0.500,b的值为 0.92。下图b中的点云匹配结果明显比 a 更精确,因此可以得知,当置信阈值越大时,越趋向于保留匹配精度更高的结果。
当给定更高的阈值时,仍然可能发生匹配无输出的情况,尤其是当对象的不同部分具有相同的形状时。
- 结果验证搜索半径
-
参数解释:当场景点云和模板点云之间的距离小于该值时,认为场景点云和模板点云重合,重合的点越多,匹配结果验证分数越高。
默认值:10.000 mm
调节说明:该参数的取值影响匹配分数。当此值越大,匹配结果的评价越宽松,即使位姿匹配效果较差,位姿匹配分数也会较高;此值越小,匹配结果的评价越严格。需根据该物体点云情况进行设置,如果点云稀疏,则需将该参数设置的稍大一些。
可先设置一个初始的结果验证搜索半径值,然后运行步骤,通过可视化窗口观察位姿匹配效果,和位姿匹配分数进行对比,若发现匹配效果与匹配分数不一致,则可根据实际情况调整结果验证搜索半径的值,直至匹配效果与匹配分数相符。 |
输出设置
- 单个点云输出结果个数
-
默认值:1
调节说明:该值越大,匹配输出结果越多。
调节示例:通过调节此参数,可以得到不同的匹配输出结果。下图中左图为该参数在默认值为 1 时的输出结果,右图为该参数调整后为 4 的结果。
结果可视化
- 显示匹配结果
-
默认值:勾选
调节说明:勾选该参数时,显示输出的模型和场景点云。
Advanced 参数调试
此部分只对高级参数调试(Advanced)中新增的可调参数进行介绍,若有与基础参数调试(Basic)中相同的参数,请参考 Basic。
对称性设置
当待识别工件具有局部对称性时,为了避免匹配结果陷入局部最优,需增加对称性设置。 通过指定物体中心点的某一轴为旋转轴,模板围绕所设置的轴进行对称性尝试,进而筛选出匹配最好的结果。
- 对称性旋转轴
-
默认值:ROTATE_BY_Z
值列表:ROTATE_BY_X, ROTATE_BY_Y, ROTATE_BY_Z
调节说明:该参数用于选取几何中心的旋转轴。
- 对称角度步长
-
默认值:360°
调节说明:该参数用于调整对称角度的大小。
调节示例:如果一个物体在绕对称轴旋转 60° 前后看起来一样,其对称角步长为 60°。
- 最小旋转角
-
默认值:-180°
调节说明:该参数用于调整最小旋转角。
- 最大旋转角
-
默认值:180°
调节说明:该参数用于调整最大旋转角。
- 调节示例
-
如下图所示的曲轴工件,其主体部分,即方框内的部分沿 Y 轴成 180° 对称。
若不设置对称性参数,由于局部形状相似,匹配结果可能会陷入局部最优,导致匹配错误,如下图所示。
分析错误结果,模板只匹配到了曲轴中间的部分,若模板在匹配过程中增加一次旋转 180°后的匹配尝试,将匹配到整个曲轴, 其匹配得分一定高于旋转之前的匹配得分,那么就可能会得到正确的结果。
将对称性旋转轴设置为 ROTATE_BY_Y (物体中心点的 Y 轴),对称角度步长设置为 180° 后,得到了正确的匹配结果,如下图。
位姿过滤设置
- 根据模板翻转角度过滤位姿
-
参数解释:边缘匹配模式下,当模板点云匹配至场景点云时,根据模板翻转角度过滤位姿。当模板翻转角度超过“角度差值上限阈值”时,该位姿将被过滤。
默认值:关闭。
- 角度差值上限阈值
-
参数解释:可参考“根据模板翻转角度过滤位姿”参数解释。
默认值:135.000°
验证时的模型权重
当待识别工件的“主体”较为相似,只有“局部”差异较大时,需要增大模型“局部”的权重,来输出“局部”匹配正确的结果。
- 模板权重文件
-
调节说明:此文件(ply 格式)是原本的点云模板文件里的一部分点云,这部分的点云具有较高的权重,并由权重值参数进行设置,需要根据实际工件确定选取哪部分作为权重模板。
- 权重值
-
默认值:2.0
调节说明:该参数用于为点云设置权重值。假设所有初始点云的权重系数均为 1 ,为目标点云设置该参数后,目标点云权重系数会变成1 X 该参数,从而在后续的匹配步骤中的实现强调的目的。
- 权重设置搜索半径
-
默认值:3.000 mm
调节说明:该参数用于设置点云增加权重过程中的搜索半径,单位为毫米(mm)。权重的设置是在原始的模型点云上进行的操作,模型点云在用于匹配过程之前会进行降采样处理,导致部分需要被设置权重的点移位或者丢失。而在对丢失点的附近的点进行权重设置的过程中,需要进行搜索半径的设置,该搜索半径由此参数设置。
结果验证设置
- 考虑法向角度偏差
-
参数解释:在对匹配结果进行验证时,考虑场景点云和模板点云对应点的法向的角度差异,勾选后,输出的匹配结果个数将减少,但可提高匹配结果准确性。
默认值:不勾选
调节说明:若勾选该参数,则在验证位姿的过程中,将会考虑对应点对的法向矢量的角度差异,其输出往往会减少,但会更加精确。
- 得分乘上对应点在场景点的比例
-
默认值:不勾选
调节说明:若勾选该参数,匹配得分会再乘【对应点占场景点的比例系数】。不适用于估计一个点云中多个物体的位姿情况。
结果可视化
- 显示采样后模型点云
-
默认值:不勾选
调节说明:若勾选该参数,则在输出的结果中会显示采样后的模型点云,根据实际场景的需要进行设置。
- 显示采样后的场景点云
-
默认值:不勾选
调节说明:若勾选该参数,则在输出的结果中会显示采样后的场景点云,根据实际场景的需要进行设置。
- 显示模板与场景点云对应关系
-
默认值:不勾选
调节说明:若勾选该参数,则在输出的结果中会显示模板与场景点云的对应关系,根据实际场景的需要进行设置。