点云NDT配准方法介绍


三维配准中常常被说起的配准算法是ICP迭代的方法,这种方法通常般须要提供一个较好的初值,也就是须要粗配准,同时因为算法自己缺陷,最终迭代结果可能会陷入局部最优,致使配准失败,每每达不到咱们想要的效果。本文介绍的是另外一种比较好的配准算法,NDT配准。所谓NDT就是正态分布变换,做用与ICP同样用来估计两个点云之间的刚体变换。用标准最优化技术来肯定两个点云间的最优的匹配,由于其在配准过程当中不利用对应点的特征计算和匹配,因此时间比其余方法快。这个配准算法耗时稳定,跟初值相关不大,初值偏差大时,也能很好的纠正过来。php

对比ICP配准方法须要提出不合适的点对,好比点对之间距离过大,包含了边界点对,每次迭代都要搜索最近点,计算代价较大。正态分布变换(NDT)算法是一种颇有用途的点云配准方法,是一个一次性初始化工做,不须要消耗大量的代价计算最近邻搜索匹配点,而且几率密度函数在两幅图像采集之间的额时间能够离线计算出来,但仍在存在的问题不少,包括收敛域差、NDT代价函数的不连续性以及稀疏室外环境下不可靠的姿态估计等。算法

具体关于两种方法的对比可查看文献:http://www.diva-portal.org/smash/get/diva2:276162/FULLTEXT02.pdf框架

那么针对无损检测算法在二维和三维场景下的不足,也会有研究者们提出了相应的解决方法。为了改进二维扫描配准的无损检测收敛域,提出了一种多尺度K均值无损检测(MSKM-NDT)算法,利用K均值聚类对二维点云进行分割,并对多尺度聚类进行扫描配准优化。与标准无损检测算法相比,k-均值聚类方法生成的高斯分布更少,从而能够评估全部高斯聚类的成本函数,从而保证算法的收敛性。因为K均值聚类不能很好地扩展到三维,提出了分段贪婪聚类无损检测(SGC-NDT)方法,做为一种改进和保证三维点云收敛的替代方法,该点云包含与环境地面相对应的点。SGC-NDT算法使用高斯过程回归模型分割接地点,并使用贪婪方法对非接地点进行聚类。区域增加聚类算法提取环境中的天然特征,生成高斯聚类,在无损检测框架内用于扫描配准。涉及到的相关文献以下:jsp

Das A, Waslander SL. Scan Registration using Segmented Region Growing NDT. International Journal of Robotics Research. 2014.函数

Das A, Servos J, Waslander SL. 3D Scan Registration Using the Normal Distributions Transform with Ground Segmentation and Point Cloud Clustering. In 2013 IEEE International Conference on Robotics and Automation. Karlsruhe, Germany; 2013.优化

Das A, Waslander SL. Scan Registration with Multi-Scale K-Means Normal Distributions Transform. In Proceedings of the IEEE/RSJ International Conference on Intelligent Robots and Systems. Villamoura, Portugal; 2012.编码

 

 那么接下里就具体介绍一下NDT算法的步骤spa

(1)该算法的第一步是将扫描占用的空间细分为单元格网格(2D图像中的正方形或3D中的立方体),基于单元内的点分布计算每一个单元的PDF。 每一个单元格中的PDF能够解释为单元格内表面点x^的生成过程。将点云投票到各个格子中,计算每一个格子的PDF,PDF能够当作表面的近似表达,协方差矩阵的特征向量和特征值能够表达表面信息(朝向、平整度) 格子内少于3个点,常常会协方差矩阵不存在逆矩阵,因此只计算点数大于5的cell,涉及到下采样方法。3d

正态分布给出了点云的分段平滑表示,具备连续导数。 每一个PDF均可以看做是局部表面的近似值,描述了表面的位置以及它的方向和平滑度。 2D激光扫描及其相应的正态分布如图6.1所示。 图6.2显示了矿井隧道扫描的3D正态分布。code

 

 

 因为目前的工做主要集中在正态分布上,让咱们更仔细地研究单变量和多变量正态分布的特征。 在一维状况下,正态分布的随机变量x具备必定的指望值μ,而且关于该值的不肯定性用方差σ表示。

 

在多维的状况下,平均值和方差由平均向量 μ和协方差来描述矩阵Σ。 协方差矩阵的对角元素表示方差每一个变量,非对角线元素表示的是协方差变量。 图6.3说明了一维,二维和三维的正态分布

(2)将第二幅扫描点云的每一个点按转移矩阵T的变换。

(3)第二幅扫描点落于参考帧点云的哪一个 格子,计算响应的几率分布函数

(4)当使用NDT进行扫描点配准时,目标是找到当前扫描点的位姿,以最大化当前扫描的点位于参考扫描表面上的可能性,该位姿是要优化的参数; 也就是说,当前扫描的点云估计的旋转和平移向量。求全部点的最优值,目标函数为

 

2D-NDT

对于2D配准,有三个要优化的转换参数。 让p = [tx,ty,φ]T,其中 tx 和 ty 是平移参数,φ是旋转角度。 使用逆时针旋转,2D变换功能是

3D-NDT

 NDT的2D和3D配准的主要区别在于空间变换函数T( p, x)及其偏导数。3D NDT使用欧拉角,有六个转换要优化的参数:三个用于平移,三个用于旋转。

可使用六维参数矢量对姿式进行编码 p6 = [tx,ty,tz,φx,φy,φz]T

使用欧拉序列z-y-x,3D变换函数是

 

更具体的解释可查看文献

 在PCL中给出的NDT例子以下

http://pointclouds.org/documentation/tutorials/normal_distributions_transform.php#normal-distributions-transform

相关文章
相关标签/搜索