PCL::点云配准

随着计算机辅助设计技术的发展,通过实物模型产生数字模型的逆向工程技术获得了越来越广泛的应用。

在逆向工程、计算机视觉、文物数字化等领域中,由于点云的不完整、旋转错位、平移错位等,使得要得到完整点云就需对局部点云进行配准。为了得到被测物体的完整数据模型,需要确定一个合适的坐标变换,将从各个视角得到的点集合并到一个统一的坐标系下,形成一个完整的数据点云,然后就可以方便地进行可视化等操作

1.1一对刚体变换

我们称一对点云数据集的配准问题为两两配准(pairwise registration 或pair-wise registration)。通常通过一个估计得到的表示平移和旋转的4X4刚体变换矩阵来使一个点云数据集精确地与另一个点云数据集(目标数据集)进行完美配准。

步骤如下:

1)首先从两个数据集中按照同样的关键点选取标准,提取关键点

2)对选择的所有关键点分别计算其特征描述子

3)结合特征描述子在两个数据集中的坐标的位置,以两者之间特征和位置的相似度为基础,来估计它们的对应关系,初步估计对应点对。

4)假定数据是有噪声的,除去对配准有影响的错误得到对应点对。

5)利用剩余的正确对应关系来估算刚性变换,完成配准。

根据特征的类型,PCL使用不同方法来搜索特征之间的对应关系。进行点匹配时(使用点的xyz三维坐标作为特征值),针对有序点云数据和无序点云数据有如下不同的处理策略。

穷举配准(brute force matching)

kd-树最近邻查询(FLANN)

在有序点云数据的图像空间查找

在无序点云数据的索引空间中查找

变换矩阵估算:

1)在对应关系的基础上评估一些错误的度量标准

2)在摄像机位姿(运动估算)和最小化错误度量标准下估算一个(刚性)变换。

3)优化点的结构

4)使用刚性变换把源旋转/平移到于目标所在的同一坐标系下,用所有点、点的一个子集或者关键点运行一个内部ICP循环。

5)进行迭代,直到符合收敛性判断标准为止。

ICP算法对待拼接的2片点云,首先根据一定的准则确立对应点集P与Q,其中对应点对的个数为n。然后通过最小二乘法迭代计算最优的坐标变换,即旋转矩阵R和平移矩阵t,使得误差函数最小。

采样一致性初始对其算法

1)从P中选择s个样本点,同时确定它们的配对距离大于用户设定的最小值dmin

2)对于每个样本点,在Q中找到满足直方图和样本点直方图相似的点存入一个列表中。从这些点中随机选择一些代表采样点的对应关系;

3)计算通过采样点定义的刚性变换和其对应变换,计算点云的度量错误来评价转换的质量。

逐步匹配多幅点云。思想是对所有的点云进行变换,使得都与第一个点云在统一坐标系中。在每个连贯的有重叠的点云之间找到最佳的变换,并积累这些变换到全部的点云。

正态分布 变换算法是一个配准算法,它应用于三维点的统计模型,使用标准最优化技术来确定两个点云之间的最优的匹配,因为其在配准过程中不利用对应点的特征计算和匹配,所以时间比其他方法快。

在变换中Epsilon参数分别从长度和弧度。定义了变换矢量[x,y,z,roll,pitch,yaw]的最小许可的递增量,一旦递增量减小到这个临界值以下,那么配准算法就将终止。步长参数定义了More-Thuente线搜索允许的最大步长,这个线搜索算法确定了最大值以下的最佳步长。当靠近最优解时该算法会缩短迭代步长,在更大的最大步长将会在较少的迭代次数下遍历较大的距离,但是却有过度迭代和在不符合要的局部最小值结束的风险。最后,分辨率参数定义了内部NDT网格结构的体素分辨率。这个结构非常方便搜索,并且每个体素包换与点有关的统计数据,平均值,协方差等,统计数据作为一组多元高斯分布用来模拟点云,并且允许我们计算和优化体素内任意位置点的存在概率。该参数时与尺度最相关的,对每个体素它需要足够大来容纳至少六个点,但是又要足够小到能够代表唯一的场景,即具有辨别性。

点云拼接就是把点云放在同一个坐标系下面。

你可能感兴趣的:(算法)