迭代最近点算法综述
摘要:三维点集配准问题是计算机技术中的一个极其重要的问题,作为解决三维点集配准问题的一个应用
较为广泛的算法,ICP 算法得到了研究者的关注,本文以一种全新的思路从配准元素的选择、配准策
略的确定和误差函数的求解等 3 个方面对三维点集配准的 ICP 算法的各种改进和优化进行了分类和总
结。
关键词:三维点集;迭代最近点;配准
1 引言
在计算机应用领域,三维点集配准是一个非常重要的中间步骤,它在表面重建、三维物
体识别、相机定位等问题中有着极其重要的应用[1]。对于三维点集配准问题,研究者提出了
很多解决方案,如点标记法、自旋图像、主曲率方法、遗传算法、随机采样一致性算法等等,
这些算法各有特色,在许多特定的情况下能够解决配准的问题。但是应用最广泛的,影响最
大的还是由 Besl 和 Mckay 在 1992 年提出的迭代最近点算法[2](Iterative Closest Point,ICP),
它是基于纯粹几何模型的三维物体对准算法,由于它的强大功能以及高的精确度,很快就成
为了曲面配准中的主流算法。
随着 ICP 算法的广泛应用,许多研究者对 ICP 算法做了详细的研究,分析了该算法的
缺陷和特点,提出了许多有价值的改进,推动了这一重要算法的发展。本文着眼于 ICP 算
法的发展历程,详细介绍了 ICP 算法的基本原理,总结其发展和改进的过程,对于该算法
的各个阶段的发展和变化做了简单的论述。
2
ICP算法原理
2.1
ICP算法原理
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.2
ICP算法特性分析
在三维点集配准的各种应用中,ICP 算法的使用非常广泛,这是由于 ICP 算法有以下优
点:
可以获得非常精确的配准效果;
可以处理三维点集、参数曲面等多种形式表达的曲面,也就是说该算法对曲面表示
方法独立[5];
不必对待处理的点集进行分割和特征提取;
在较好的初值情况下,可以得到很好的算法收敛性[6]。
虽然其得到了广泛的应用,但是对于最初的 ICP 算法,存在很多的不足之处,主要表
现在:
算法假设其中一个点集是另一个点集的子集,也就是说,一个点集必须含在另一个
点集中,这一要求在很多时候难以满足;
该算法在搜索对应点的过程中,计算代价非常的大;
在基本的 ICP 算法中,在寻找对应点的时候,认为欧氏距离最近的点就是对应点,
这种假设是比较武断的,它会产生一定数量的错误对应点[7]。
针对上面的一些问题,许多研究者提出了 ICP 算法的各种改进版本。为了说明 ICP 算
法的不同改进版本,有必要将 ICP 算法分成几个阶段来讨论,在各个阶段的划分,国内外
的研究学者也提出了自己的看法。主要的划分方法有,在 Rusinkiewicz[8]的文章中,将 ICP
2
算法的进行分成了六个阶段,分别为:点集的选择、对应点对的配准、点对的权重确定、特
定点对的剔除、误差矩阵的建立、误差矩阵最小化的求解;伍毅[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)的距离,点到面的距离是指,场景数据集
3
中的点到模型数据集合中的经过对应点的切平面的距离,如图 l 所示。场景点 P 中的点 ,
它的法线与模型点集 X 的交点 就被选择为 的对应点。在建立目标函数时,使用的并不是
到 的距离,而是 到模型点集 X 过 的切平面的距离。
图 1 点到平面的距离
点到平面的距离减少了迭代次数,能够以更快的速度收敛到给定的阈值。Pulli 对点到
点的方法和点到面的方法进行了对比讨论[17],他们指出与点到点的 ICP 算法相比,运用点
到平面的距离的方法大大减少了计算量以及迭代次数,但是该方法的鲁棒性并不是太好。
与上面的度量标准相类似的还有点到三角形的距离,它运用点与点之间的邻接信息,将
三维点集三角化,以点到三角形表面的距离作为特征度量,与点到面的距离有一些相似,主
要由张鸿宾和谢丰在文献中提出[18]。
4.1.3 豪斯多夫(Hausdorff)距离
Hausdorff 距离[19]作为一种距离测度,常用于衡量两个点集之间的相似程度。由于使用
Hausdorff 距离作为距离测度时无需考虑两个点集中的点与点之间的对应关系,因此可以有
效解决当图像中存在噪声和目标被部分遮挡时的识别问题。Ezra[20]研究了使用 Hausdorff 距
离在 ICP 中的一些理论结果,还没有进行配准的实际应用。
4.1.4 几何特征
严格的说,距离也是一种几何特征,这里指的几何特征是指除距离以外的几何特征。主
要有法相量[21]、曲率等特征。
加入几何特征更多的是为了在确定点对时加入限制条件,尽量减小误差点的数目。Pulli
在文献中就加入了给定点对的限制条件,其中一个是每个点对对应的法向矢量差不能超过
45 度,而 Godin[22]则是通过曲率来构造候选兼容点集。图 2 就是通过原始 ICP 算法和加入
法相限制条件后获取的点对情况,其中空心箭头表示法相矢量方向,黑色箭头表示找到的对
应点对。
4
(a) (b)
图 2 对应点对(a)通过传统 ICP 方法获得(b)中加入了法矢限制条件
通过加入几何特征的限制条件,可以进一步的降低找到错误点对的概率,同时加入几何
特征后,可以非常迅速的确定候选点集,可以大大的提高搜索速度。
4.2 搜索策略
在对应点的选取,也就是构造各对应点的过程中,需要进行大量的搜索过程,这是传统
ICP 算法的瓶颈,为了提高 ICP 算法的效率,提高搜索速度是很有必要的,所以如何改进搜
索策略也是 ICP 算法研究的热点。
Zhang 在其论文中采用了多维二元搜索树[23](K-D Tree),该算法可以自动的踢出异常
值,可以处理非完全对应的点集合。Greenspan 分析了该树的特性,提出了近似多维二元搜
索树[24](AK-D Tree),达到了近似的效果,并提高了效率。
另一种方法是依靠金字塔原理提出来的分级收缩算法[25],大大加快了搜索速度。该方法
通过评估目标区域距离值的方差和均匀拓扑映射来选择区域,在点集中进行逐级的收缩,先
进行粗略定位,最后获取准确地对应点,对于搜索效率有很大的提高。
投影的方法也被应用到 ICP 算法中来,Blais 和 Neugbeuaer 采用反向定标[26](Reverse
Calibration)技术,就是使用的投影搜索算法。Benjemaa[27]则采用了具有多个投影平面的
Z-buffer 方法进行投影搜索。
5 误差函数求解
误差函数的求解,也就是目标函数的最小化,是 ICP 算法的最后一个阶段。在求得目
标函数后应该采用什么样的方法来求解目标函数,使其值能最快最准的的收敛到最小,也是
一个比较重要的问题。传统的 ICP 算法的目标函数是通过点对点的距离建立的,其求解方
法有基于奇异值分解的方法、四元数方法、正交矩阵法[28]和双四元数方法[29]。
Eggert[30]评估了上述四种方法的精确性和稳定性,并且说明了这些方法存在的差
异。由于基于奇异值分解的方法和四元数方法应用的更加广泛,所以,在下面将
对这两种方法的实现方式做具体的介绍。
5.1 基于奇异值分解的方法
用奇异值分解法(SVD 方法)来求解 ICP 算法过程中的几何参数最初是由 ARUN[31]等
提出来的,其并没有建立目标函数等式,而是通过矩阵变换的相关性质,直接求解出最优的
参数解。该方法实现起来比较简单,而且计算结果也比较准确,下面就对相关原理进行论述。
在运用 SVD 方法之前,我们默认已经通过了点对的搜索环节,而且已经准确的找了各
个对应点对。我们认为有两组点,模型点和采集到的点,模型点定义为
,N
为点的数目。假设要求的旋转矩阵是 R,平移矩阵是 T,理想情况下通过 变换得到的对应
点位 ,有下面的等式:
R 变换的旋转角度值;
T 变换的平移值;
5
Ni 噪声。
对于这 N 个点,现在我们已经找到每个点对,对于每个点在变换前后的值都可以非常
清楚地知道,根据式(1),可以得到下面的欧氏距离和。
由 ICP 算法的原理可知,欧氏距离最小的点就是采集点在模型中的对应的点,所以基
本 ICP 算法就是求解上面的代数式,使代数式的值最小的 R 和 T 就是要求的旋转角度和平
移值。而对上面的欧氏距离和,我们可以进行化简。
先计算模板点和数据点的重心
显然有
令
,
,代入式(2),则有
对于(3)式右边进行分解,可以得到下式。
通过上面的等式,我们可以发现,要使 的值达到最大,等价于使下式最大。
F =
=
=Trace(RH)
其中,
什么样的情况下 Trace(RH)才能最大呢?这是接下来要讨论的问题。
假设 是一个正定矩阵,B 为正交矩阵, 是 A 中的第 i 列,则有
6
由施瓦茨不等式可以得到,
所以有,
在求取 F 的最大值时,我们可以效仿上面的定理,先对 H 进行 SVD 分解,可以得到。
其中 U 和 V 为正交矩阵, 为非负的对角矩阵。
我们可以令
,当然,X 也为正交矩阵,则有
XH 是一个对称正定矩阵,而由上面的证明,我们可以知道,对于任意的正交矩阵 B,
有
通过上式,我们可以发现,当 R 取 XH 时,F 将达到最大值。所以可以求出 R。则 SVD
方法进行的步骤可以归纳如下。
1、 通过 , 计算 , 以及 和 。
2、 计算矩阵 H,通过式
3、 对 H 进行 SVD 分解。
4、 求解旋转矩阵。
5、 计算平移矩阵 T。
该算法不适合运用于线性的和有奇异点的数据集。
7
5.2 四元数方法
Horn 等[32]提出了基于单位四元数的计算运动参数的方法。旋转矩阵 R 用一个单位四元
数 q 来表示:R=R(q),其中设单位四元数
,其中
,而且
,则有这个单位四元数产生的旋转矩阵为[33]:
(5)
定义平移向量为
,并由 和 组成一个配准状态向量
。
点集的重心分别为 p 和 ,则两点集的协方差如下:
(6)
根据
得出一个反对称矩阵 A,其元素为
,由 A 的三个循
环元素又组成了一个列向量
。最后,由以上矩阵和向量组成对称矩阵
(7)
其中 为 3X3 单位矩阵。求解对称矩阵
的特征值和特征向量,所得最大特征
值所对应的特征向量即为旋转四元数
。计算平移向量
,
最终生成一个配准向量 。
6 总结
本文从配准元素的选择、配准策略的确定和误差函数的求解等三个方面对 ICP 算法的
各种改进和优化进行了分类和总结。通过文中的分析可以发现,ICP 在这些年的发展过程中,
将各种技术吸收进来,这一方面说明了 ICP 算法以其本身的优势获得了研究者的关注,另
一方面也说明研究者在对 ICP 算法改进上付出了不懈的努力
但是 ICP 算法的研究还没有停止,因为这种算法还不能解决所有的配准问题,也将还
会有人继续对这种算法展开研究,让其变得更加完美。
8