使用高斯混合模型的点云配准

最近在学习基于概率模型的点云配准方法,上一篇中学习的是基于NDT(Normal Distribution Transform)的点云配准方法,其中关键是将点云进行体素单元格划分,并将每个体素单元格用一个概率密度函数表示。

今天读了另一篇论文《Robust Point Set Registration Using Gaussian Mixture Models》,这篇论文也是基于概率模型进行点云配准,论文实现的关键思想是将输入点集用高斯混合模型进行表示,由于高斯函数和正态分布在我看来还是一回事,因此下文我与上一篇NDT配准进行对比学习。

先看算法流程,如下图:

该算法的输入是模型点集M、场景点集S,以及参数变换矩阵T。

算法的输出是:一个最佳变换参数\Theta(矩阵T中参数),使得M和S最优配准。

1.由输入点集估计初始点云比例\sigma

2.给定初始变换参数\Theta

3.建立目标函数f\left ( \Theta \right )作为两个高斯混合模型间的L2距离,高斯混合模型如下:

                                                  

4.优化目标函数,可以使用例如拟牛顿法等等。

5.在参数优化中更新参数\Theta

6.随步骤进行减小\sigma

7.当收敛条件满足,停止运行,输出结果。否则转3重复执行。

这就是算法实施步骤,下面主要来说一下我理解的该算法和NDT算法的不同之处:

(1)NDT配准在建立点云的概率分布时,需要将点云划分成数个体素单元,然后计算各体素单元的概率分布,而这篇论文中提到的算法则直接计算整个点云的高斯混合模型,不再有体素划分。

(2)在NDT配准算法中,优化过程是将各点概率得分累加,优化这个累加和,而这篇论文中提出的算法是将两个概率模型间的距离作为优化对象,目标就是让两个模型间距离最小,直观上看这篇论文中的idea更容易理解。

以上是我理解的这两个算法间的不同之处,这篇论文中还提到他们算法的强鲁棒性,这主要是由于两个概率模型间的距离用L2进行计算,而与L2距离相关联的L2E估计子具有很强的鲁棒性。这篇论文也进行了相关试验。如在2D点集配准中,

对上述图像进行配准,配准结果如下表:

以第三幅图鱼为例,当待配准点云和目标点云的角度差在(-2rad,2rad)区间内,都可以成功配准。

对于三维点集,如下图:

配准结果如下表所示:

可以看到,当角度差较小时,配准成功率极高,而当角度差较大时(如96°),30对中仅能成功配准2对。可以知道,这个配准方法对初值也有着较高要求。

这就是对该算法的初始认识,很可能有不对的地方,欢迎各位大佬批评指正,QQ:1826380364

猜你喜欢

转载自blog.csdn.net/qq_33656619/article/details/108051736