1.通过扫描获取点云数据,首先经过滤波(直通和邻域),并进行点云稀疏化,得到有效配准数据,经过配准生成三维点云地图。其中配准算法有基于特征的匹配、ICP(标准迭代最近点:搜索效率慢,且容易陷入局部最优解)和改进ICP。点云配准累计误差随着配准幅数越多误差越大,最终会导致生成三维点云严重失真。

(1)基于特征的配准:先进行图像数据特征提取,然后对每个提取特征进行比对,获取特征匹配集合,最后根据集合的映射关系求取相对姿态变换矩阵,常见特征有点、线、面等。

(2)ICP:通过每次迭代计算出源点云和目标点云中对应点对的变换矩阵,来不断更新目标点云的位置,进而可以将目的点云通过坐标变换融合到源点云坐标系下。

(3)针对ICP存在搜索效率慢,局部最优解等问题,对ICP进行改进,主要为搜索匹配点对的方法、剔除错误对应点对的约束条件、对原始点云数据进行下采样、配准算法中目标函数的选取。

 

点云配准概念:通过一个点集(目标)中的每一个点与另一个点集(原始点集)中的对应点的相互关系来实现点集与点集坐标系之间的转换,实现配准。 

两幅点云数据中对应点的坐标关系可以描述如下:

点云区域生长算法python 点云算法处理_点云区域生长算法python

其中其中

点云区域生长算法python 点云算法处理_对应点_02

是对应点旋转矩阵,

点云区域生长算法python 点云算法处理_点云_03

是对应点平移矩阵。为了合并 p、q 变换中乘法和加法,使

点云区域生长算法python 点云算法处理_数据_04

,将 p 和 q 都转换成齐次坐标,于是 H 矩阵具有以下形式: 

点云区域生长算法python 点云算法处理_点云_05

求解旋转矩阵可以通过在两个点云集中寻找对应点对,根据对应点对来建立转换方程组,通过求解方程组的值来计算出旋转平移矩阵 H。理论上最少需要找到三组不共线的对应点对才能求解出旋转平移矩阵,不过为使结果更加精确,对应点对越多越好。但一般情况下,很难在两幅点云数据中很准确的找到对应点对,因此加入目标函数,通过迭代计算使目标函数最优来估计旋转平移矩阵H。目前,最常用的目标函数是对应点欧式距离平方和:

点云区域生长算法python 点云算法处理_点云_06

常用求取目标函数最小的旋转平移矩阵的方法主要分为四元数法奇异值分解法