跳到主要内容
版本:Next

点云匹配

功能介绍

模块位置:定位-点云匹配

对两个3D数据(点云或3D图像)进行刚体配准,求解从源数据到目标数据的3×4外参矩阵。支持图像/点云混合输入(两端需同类型:图像↔图像或点云↔点云),典型用途:多视角点云拼接、在线定位与抓取、基准模型与实测件对齐、工位重复定位。

方法

通过不同方法进行点云匹配。

粗匹配

基于几何一致的四点集合进行全局搜索,容错大、对初始位姿不敏感,适合大范围初始误差;

精匹配

在有一定初始对齐的前提下,迭代最近点优化均方误差,收敛得到高精度结果;

使用场景

用于点云匹配。

示例说明

以下示例为粗匹配方法。选择同类型的源数据和目标数据。参数设置采样点数量设为3000,采样间隔Δ设为0.1,归一化不勾选,近似重叠率设为0.1(源数据和目标数据是整体和部分的关系,因此近似重叠率取低值),分数阈值设为0.5,法向量最大差异设为5,线程数设为4:

  1. 输入点云目标(此处作为基准,整体的点云):
image
  1. 输入点云源(和目标点云是整体和部分的关系,去匹配目标点云):
image
  1. 按照参数设置用源数据匹配目标数据得到变换矩阵;

  2. 结果验证(将源数据使用变换矩阵做3D变换,然后将变换后的数据和目标数据合并,查看显示效果):

点云匹配前点云匹配结果
点云匹配前点云匹配结果(重叠效果)
  • 其中框出来的部分就是匹配后的源数据和目标数据重叠的区域

输入

输入类型说明
源数据图像/点云/
目标数据图像/点云类型需与源数据一致

参数说明

采样点数量

粗匹配算法的采样点数量。样本点数量决定了点云特征的采样密度,更多的采样点通常会提高精度,但计算量会增加,默认值:2000。单位:个。范围:1 ~ 10,000,000(建议:1,000 ~ 20,000)

采样间隔Δ

粗匹配中一个重要参数,设定用于建立点对的搜索范围的空间尺度,值越大速度更快但精度可能下降,默认值:1.0;若数据已做体素滤波,可直接采用体素大小。单位:与点云坐标一致(mm);当勾选“归一化”时为无量纲(按目标点云直径归一化)。范围:0.001 ~ 10,000,000(建议:体素尺寸 ~ 5×体素尺寸)

归一化

  • 勾选:用目标点云直径归一化Δ,归一化后点云的大小和坐标被标准化,使参数与场景尺寸无关。
  • 不勾选:不使用归一化方法,默认不使用。

近似重叠率

估计源点云和目标点云的重叠比例,用于缩小搜索空间并加速早停,一般重叠越少,设置值越低,默认值:0.5。范围:0 ~ 1(建议:0.1 ~ 0.9;整体对整体 ≈ 0.5,整体对局部可取 0.05 ~ 0.3)

分数阈值

设定粗匹配算法的分数阈值,该分数用于衡量点对对齐的质量,匹配得分达到此值即提前终止计算,默认值:0.5。范围:0 ~ 1(建议:0.5 ~ 0.9)

法向量最大差异值

设定点云之间对应点法向夹角上限,用于过滤不合理匹配,超过该值的点对将被认为是不匹配的,默认值:5。单位:度(°)。范围:0 ~ 180°(建议:1° ~ 30°;表面较粗糙时可适当放宽)

线程数

并行线程数,加速采样和对应搜索。

最大对应点距离

精匹配算法中源点云和目标点云之间允许的最大对应距离。超出这个距离的点对将被视为异常点并忽略,值越小需更好初始对齐但收敛更快,默认值:1.5。单位:与点云坐标一致(mm)。范围:0.001 ~ 10,000,000(建议:1 ~ 3×体素尺寸或场景噪声量级)

平移收敛阈值

该参数决定了精匹配算法的停止条件,指的是精匹配在每次迭代中计算出的平移变换矩阵的变化量,如果变化量小于这个值,则认为收敛,可以提前终止迭代。默认值:1.0,内部按输入值×1e-6使用。单位:与点云坐标一致(mm)范围:0.001 ~ 10,000,000(建议:0.1 ~ 100)

旋转收敛阈值

该参数决定了精匹配算法的停止条件,指的是精匹配在每次迭代中计算出的旋转变换矩阵的变化量,如果变化量小于这个值,则认为收敛,可以提前终止迭代。默认值:1.0,内部按输入值×1e-6使用。单位:与点云坐标一致(mm)范围:0.001 ~ 10,000,000(建议:0.1 ~ 100)

欧式误差收敛阈值

该参数决定了精匹配算法的停止条件,即点云对齐后所有点的均方误差是否小于该值,如果误差小于该值,可以提前终止迭代。默认值:1.0,内部按输入值×1e-4使用。单位:与点云坐标一致(mm)范围:0.001 ~ 10,000,000(建议:0.1 ~ 100)

输出

输出类型默认启用额外启用条件说明
变换矩阵矩阵/从源数据到目标数据的刚体变换矩阵。
均方误差实数/收敛后的均方误差,越小越好。