ICP迭代最近点算法综述
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
迭代最近点算法综述
摘要:三维点集配准问题是计算机技术中的一个极其重要的问题,作为解决三维点集配准问题的一个应用较为广泛的算法,ICP算法得到了研究者的关注,本文以一种全新的思路从配准元素的选择、配准策略的确定和误差函数的求解等3个方面对三维点集配准的ICP算法的各种改进和优化进行了分类和总结。
关键词:三维点集;迭代最近点;配准
1引言
在计算机应用领域,三维点集配准是一个非常重要的中间步骤,它在表面重建、三维物体识别、相机定位等问题中有着极其重要的应用[1]。对于三维点集配准问题,研究者提出了很多解决方案,如点标记法、自旋图像、主曲率方法、遗传算法、随机采样一致性算法等等,这些算法各有特色,在许多特定的情况下能够解决配准的问题。但是应用最广泛的,影响最大的还是由Besl和Mckay在1992年提出的迭代最近点算法[2](Iterative Closest Point,ICP),它是基于纯粹几何模型的三维物体对准算法,由于它的强大功能以及高的精确度,很快就成为了曲面配准中的主流算法。
随着ICP算法的广泛应用,许多研究者对ICP算法做了详细的研究,分析了该算法的缺陷和特点,提出了许多有价值的改进,推动了这一重要算法的发展。本文着眼于ICP算法的发展历程,详细介绍了ICP算法的基本原理,总结其发展和改进的过程,对于该算法的各个阶段的发展和变化做了简单的论述。
2ICP算法原理
2.1ICP算法原理
ICP算法主要用于三维物体的配准问题,可以理解为:给定两个来至不同坐标系的三维数据点集,找出两个点集的空间变换,以便它们能进行空间匹配。假定用{}表示空间第一个点集,第二个点集的对齐匹配变换为使下式的目标函数最小[3]。
ICP算法的实质是基于最小二乘法的最优匹配算法,它重复进行“确定对应关系点集—计算最优刚体变换”的过程,直到某个表示正确匹配的收敛准则得到满足。ICP 算法的母的是找到目标点集与参考点之间的旋转R和平移T变换,使得两匹配数据中间满足某种程度
度量准则下的最优匹配。假设目标点集P的坐标为{}及参考点集Q的坐标为
{},在第k次迭代中计算与点集P的坐标相对应的对应点坐标为
,计算P与之间的变换矩阵并对原变换进行更新,直到数据间平均距离小于给定值τ,即满足式(1)最小。具体步骤[4]:
(1)在目标点集P中取点集;
(2)计算参考点集Q中对应点,使;
(3)计算旋转矩阵与平移向量,使得;
(4)计算;
(5)计算;
(6)如果不小于给定的τ返回到(2),直到或迭代次数大于预设的最大的迭代次数为止。
对于ICP的每次迭代,最小化对应点的均方差使得点集更接近,而是在的最近点。这样,每一次迭代就使得更接近于。基于这样的思想,Besl等人证明了ICP算法的收敛性。
2.2ICP算法特性分析
在三维点集配准的各种应用中,ICP算法的使用非常广泛,这是由于ICP算法有以下优点:
●可以获得非常精确的配准效果;
●可以处理三维点集、参数曲面等多种形式表达的曲面,也就是说该算法对曲面表示
方法独立[5];
●不必对待处理的点集进行分割和特征提取;
●在较好的初值情况下,可以得到很好的算法收敛性[6]。
虽然其得到了广泛的应用,但是对于最初的ICP算法,存在很多的不足之处,主要表现在:
●算法假设其中一个点集是另一个点集的子集,也就是说,一个点集必须含在另一个
点集中,这一要求在很多时候难以满足;
●该算法在搜索对应点的过程中,计算代价非常的大;
●在基本的ICP算法中,在寻找对应点的时候,认为欧氏距离最近的点就是对应点,
这种假设是比较武断的,它会产生一定数量的错误对应点[7]。
针对上面的一些问题,许多研究者提出了ICP算法的各种改进版本。为了说明ICP算法的不同改进版本,有必要将ICP算法分成几个阶段来讨论,在各个阶段的划分,国内外的研究学者也提出了自己的看法。主要的划分方法有,在Rusinkiewicz[8]的文章中,将ICP
算法的进行分成了六个阶段,分别为:点集的选择、对应点对的配准、点对的权重确定、特定点对的剔除、误差矩阵的建立、误差矩阵最小化的求解;伍毅[9]则将其分为四个阶段:重采样、空间查找及距离度量、目标度量函数最小化和算法的迭代;Nishino[10]认为,不同的改进方法的差异不过体现在三个方面:配准策略、配准元素和误差度量。
通过比较国内外学者提出的各种ICP算法的改进算法,可以知道,Nishino的划分方法可以很好的反应算法所做改变的各个阶段。所以,在本文中将围绕ICP算法配准元素的选择、配准策略的确定和误差函数的求解等三个方面做的改进来展开。
3配准元素的选择
在标准ICP算法中,选用点集中的所有点来计算对应的点,但是通常用于配准的点集元素数量都是非常巨大的,通过这些点集来计算,所消耗的时间也是很长的。所以在后来的研究当中,提出了各种各样的方法来选择配准元素,这些算法的主要目的无一例外的是为了减小点集元素的数目,即对匹配点集进行采样。
既然涉及到采样,就有多种采样方法被尝试使用。Turk使用了一致采样方法[11],Masuda[12]使用的式随机采样方法,而且在每一的迭代过程中都要进行随机采样获取不同的采样点进行计算。
也有一些学者提出了一些新的采样方法,这些方法主要特点是会利用点集的特征信息来减少点的数目,运用一些具有明显特征的点集来进行配准。比如,Weik[13]在文献中提到的,利用图像的梯度信息来选择符合要求的点,再用这些点来完成配准。Sappa[14]则是采用了另外一种策略,直接选取边缘点作为配准的选择点,这样就可以大大的减小配准点的数目。
通过上面的分析可以发现,配准元素的选择的改进,主要集中在如何减小配准点的数目方面,即如何用最少的点来表征原始点集的全部特征信息。
4配准策略的确定
上面介绍了ICP算法在配准元素选择方面做得一些改进,而更多的改进集中在配准策略方面。具体的配准策略包括特征度量的选取和搜索策略的选取方面。
4.1特征度量的选取
要寻找对应点对,就必须寻找场景数据点和模型数据点的特征差异,这就需要对特征进行度量。在利用特征度量获得对应点以后,还需要利用特征度量建立迭代优化的目标函数,为误差函数的求解奠定基础[15]。
ICP算法被提出来时,采用的是欧氏距离作为特征度量,所以在这一阶段的改进方面,主要是围绕距离展开,很多研究者在这方面提出了自己的改进想法,当然有一些也并没有采用距离作为特征度量,在下面会做详细的介绍。
4.1.1 点到点的距离
在标准ICP算法中,Besl和McKay直接采用的是点到点的欧氏距离。首先利用点到点的最小欧氏距离得到点到集合的距离,从而寻找到对应点,再对这些对应点到集合的距离进行求和得到求解刚体变换的目标函数,如(1)式所示。简而言之,标准ICP算法使用的是点到点(point-to-point)的距离。
4.1.2 点到平面的距离
Chen[16]利用的是场景点集中的点的法线与模型点集合的交点来确定对应点,得到对应点后,目标函数则采用的是点到面(point-to-plane)的距离,点到面的距离是指,场景数据集