ICP算法综述(一)

版权声明:本文为博主原创文章,未经博主允许不得转载 https://blog.csdn.net/qit1314/article/details/84984050

《A review of point cloud registration algorithms fro mobile robotics》
正如论文标题,这篇综述将icp算法在移动机器人学中的应用。
大多数综述分为3个部分:回顾历史、具体形式和应用场景。本文首先介绍第一部分。

1 回顾历史
ICP算法的目的是为了通过把不同坐标系中的点,通过最小化配准误差,变换到一个共同的坐标系中。
在这里插入图片描述
上图中,绿色为参考点云,蓝色为需要匹配的点云。左图为两个点云的初始位置,其实在这个图中,两个点云已经位于同一个坐标系(由我们指定的初始值).中图红色直线为匹配的误差. 右图为配准后的点云.

由上图表明,ICP算法就是干这种活的。

在这里插入图片描述
这个是关于ICP论文的数量变化曲线,蓝色代表一个数据库的,绿色代表另一个数据库的。说明ICP算法的繁荣发展。

有很多大牛对ICP算法进行了改进,这里不介绍。下面介绍一下算法的整体思路:

几何配准的目的:
The aim of geometric registration is to be able to represent a shape,called reading, in the same coordinate frame as another, called reference. This is equivalent to finding the transformation of reading that best aligns it to reference

论文里的两个点云分别叫做reference和reading。目的是把reading匹配到reference上。

形状shape是啥呢?

形状是一个点集合。这个点集合包括几何和非几何信息。

几何信息就是能够被空间变换影响的。点的这部分维度叫做特征。如点的坐标、曲面法线、切向量。

非几何信息信息不能被空间变换影响。这部分维度叫做描述子。例如,颜色、温度等。

扫描二维码关注公众号,回复: 4489423 查看本文章

举个例子:例如一个点云中的点的类型为XYZRGB,那么这里的几何信息就是点的坐标XYZ,而RGB为非几何信息。

我们知道,点云的数量非常巨大,并且含有噪声,所以需要滤波。
滤波就是从带有噪声中提取有用的信息。文中介绍了两种形式。

第一种方式是去除不能为匹配带来有用信息的点。
第二种方式是对点云进一步抽象,例如提取局部的法线信息或曲率。

下图给出了ICP的数学形式表示
在这里插入图片描述
这个公式的思想很好理解,我们要估计的是变换矩阵T。T的含义是把A系中的点变换到B系中。问题是error怎么定义呢?

通常,这个误差定义在两个关联的点上进行度量。
那么会有两个问题,1 如何查找关联点 2 如何对误差度量

如何查找关联点呢?
ICP叫做迭代最近点,就是简单的认为与一个点最近的点就是关联点。理想情况是,匹配后的两个点云的关联点应该是最近点。寻找关联点的问题也叫作数据关联、点匹配、对应点查找。

关联可以通过特征或者描述子完成。
找到匹配点后,可以计算误差。
在这里插入图片描述

此外,可以通过加权的方式,来减少异常值的影响
在这里插入图片描述

由于有噪声或者错误的数据关联,所以我们希望最小化误差
在这里插入图片描述
i 和i+1代表迭代时的变换矩阵的指标。
在这里插入图片描述
在这里插入图片描述
这里就是不断的合成变换矩阵,得到最终估计的变换矩阵。
注意这里是左乘矩阵。

算法
在这里插入图片描述
在这里插入图片描述

小结:
ICP叫做迭代最近点,我们从名字可以看出,包括迭代和查找最近点(数据关联)。
迭代是需要初始值的,所以我们需要提供初始值。
然后不断的重复迭代最近点的过程,直至收敛。

上述的算法只是一个框架,没有明确指出:
1 如何数据关联
2 误差函数怎么定义。
这应该就是各种ICP算法的不同所在吧

猜你喜欢

转载自blog.csdn.net/qit1314/article/details/84984050
ICP