迭代最近点算法综述

合集下载

python中的迭代法

python中的迭代法

python中的迭代法Python中的迭代法迭代法是一种常用的问题求解方法,在Python中也有广泛的应用。

它通过重复执行某个过程,逐步逼近问题的解,直到满足预定的条件为止。

本文将介绍Python中迭代法的基本概念、应用场景以及一些常见的迭代法算法。

一、迭代法的基本概念迭代法是一种基于循环的计算方法,通过多次重复执行相同的操作,逐步逼近问题的解。

在Python中,可以使用循环结构(如for循环、while循环)实现迭代法。

迭代法的基本思想是将问题分解为多个小的子问题,通过解决子问题逐步逼近最终解。

二、迭代法的应用场景迭代法在实际问题求解中有广泛的应用,以下是一些常见的迭代法应用场景:1. 数值计算:如求解方程的根、计算数列的和等;2. 优化问题:如求解最优化问题、最小二乘法等;3. 迭代算法:如迭代法求解线性方程组、迭代法求解非线性方程组等;4. 图像处理:如图像的模糊处理、边缘检测等。

三、常见的迭代法算法1. 二分法:二分法是一种简单而常用的迭代法算法,用于求解单调函数的零点。

基本思想是通过不断缩小目标值所在的区间,最终找到目标值的近似解。

例如,可以使用二分法求解一个函数f(x)=0的解。

2. 牛顿法:牛顿法是一种迭代法求解方程根的算法,具有快速收敛的特点。

它通过利用函数的切线逼近方程的解,不断迭代求解。

例如,可以使用牛顿法求解一个函数f(x)=0的解。

3. 雅可比迭代法:雅可比迭代法是一种常用的迭代法求解线性方程组的算法。

它通过将线性方程组转化为迭代形式,逐步逼近方程组的解。

例如,可以使用雅可比迭代法求解线性方程组Ax=b。

4. 高斯-赛德尔迭代法:高斯-赛德尔迭代法是雅可比迭代法的改进算法,具有更快的收敛速度。

它通过使用前一次迭代得到的解来逼近方程组的解,不断迭代求解。

例如,可以使用高斯-赛德尔迭代法求解线性方程组Ax=b。

四、总结迭代法是一种常用的问题求解方法,在Python中也有广泛的应用。

迭代 算法

迭代 算法

迭代算法迭代算法是一种重要的算法思想,它在计算机科学和算法设计中应用广泛。

本文将介绍迭代算法的基本概念、原理和应用,并通过举例解释其工作过程和优势。

一、迭代算法的基本概念迭代算法是一种通过重复计算来逐步逼近目标解的算法。

它通过不断迭代更新当前解,直到满足预设的停止条件。

迭代算法通常包括以下几个关键步骤:初始化、迭代更新和停止条件判断。

二、迭代算法的原理迭代算法的核心思想是通过重复执行特定的计算步骤来逐步改进解的质量。

在每一次迭代中,算法根据当前解的情况进行更新,使得解逐渐趋近于最优解。

迭代算法的效果取决于初始解的选择和迭代更新的策略。

三、迭代算法的应用迭代算法在实际问题中具有广泛的应用。

例如,在数值计算中,迭代算法常用于求解方程、求解优化问题和模拟连续过程等。

在图像处理中,迭代算法可以用于图像增强、边缘检测和图像分割等。

此外,迭代算法还可以应用于机器学习、数据挖掘和人工智能等领域。

四、迭代算法的工作过程迭代算法的工作过程可以简单描述为以下几个步骤:1. 初始化:设置初始解,并初始化迭代次数。

2. 迭代更新:根据特定的更新策略,更新当前解。

3. 停止条件判断:判断当前解是否满足预设的停止条件。

如果满足,则停止迭代;否则,继续迭代更新。

4. 输出结果:输出最终的解。

五、迭代算法的优势相比于其他算法,迭代算法具有以下几个优势:1. 灵活性:迭代算法可以根据问题的特点灵活选择更新策略,适应不同类型的问题。

2. 收敛性:迭代算法通常能够收敛到最优解,尤其是在适当的停止条件下。

3. 可并行性:迭代算法的迭代过程通常可以并行计算,加快算法的收敛速度。

4. 适应性:迭代算法可以通过不断迭代更新来适应问题的变化,提高解的质量。

六、迭代算法的实例应用下面以求解线性方程组为例,介绍迭代算法的具体应用过程。

给定一个线性方程组Ax=b,其中A为系数矩阵,x为未知向量,b 为已知向量。

要求解x的值。

迭代算法的基本思路是不断更新x的值,直到满足预设的停止条件。

基于正态分布变换与迭代最近点的快速点云配准算法

基于正态分布变换与迭代最近点的快速点云配准算法

基于正态分布变换与迭代最近点的快速点云配准算法杨飚;李三宝;王力【摘要】点云配准是三维重建过程的关键一步.传统配准算法的速度较慢,尤其是在两个点云距离较远或点云数据量较大的时候,为此提出了一种基于NDT和ICP的快速点云配准方法,能够有效地减少配准时间.本文算法主要分为三步:①采用NDT算法进行点云粗配准,调整两点云间的距离和点云姿态;②采用ICP算法对粗配后的点云数据进行微调,调整点云位置与姿态;③采用ICP算法对微调后的点云进行精确配准.实验结果表明,与传统算法相比,在点云数据量较大或者两个点云距离较远的情况下,算法也能够达到较快的配准速度与较高的配准精度.%Point cloud registration is one of the key problems of 3D reconstruction.Since classical registration algorithms are relatively slow,especially to handle the point clouds with far distance or the large point clouds,a novel fast point cloud registration algorithm based on NDT and ICP is proposed.The algorithm includes three steps:①NDT algorithm is adopted to roughly register the point clouds and adjust the distance and attitude;②ICP algorithm is adopted to fine-tune the point clouds after the rough registration to adjust the position and attitude carefully;③ICP algorithm is adopted again to make precise registration based on the fine-tuned point clouds.The experiment shows that the proposed algorithm can effectively reduce the registration time cost and achieve high precision even if the point clouds have a far distance or include a large number of points.【期刊名称】《科学技术与工程》【年(卷),期】2017(017)015【总页数】5页(P91-95)【关键词】点云配准;NDT;ICP【作者】杨飚;李三宝;王力【作者单位】北方工业大学城市道路交通智能控制技术重点实验室,北京100144;北方工业大学城市道路交通智能控制技术重点实验室,北京100144;北方工业大学城市道路交通智能控制技术重点实验室,北京100144【正文语种】中文【中图分类】TP274.2随着计算机技术的快速发展和三维扫描技术的日渐成熟,三维立体重建得到了越来越广泛的应用。

常用算法——迭代法

常用算法——迭代法

常用算法——迭代法常用算法,迭代法迭代法(iteration method)是一种通过重复执行相同的步骤来逐步逼近问题解的方法。

它在计算机科学和数学中被广泛应用,可以解决各种问题,比如求近似解、优化问题、图像处理等。

迭代法的基本思想是通过不断迭代的过程,逐渐逼近问题的解。

每一次迭代都会将上一次迭代的结果作为输入,并进行相同的操作,直到满足其中一种停止条件。

在每次迭代中,我们可以根据当前的状态更新变量的值,进而改善我们对问题解的估计。

迭代法最常用的应用之一是求解方程的近似解。

对于一些复杂方程,很难通过解析方法求得解析解,这时我们可以利用迭代法来逼近方程的解。

具体地,我们可以选择一个初始的近似解,然后将其代入方程,得到一个新的近似解。

重复这个过程,直到得到一个满足我们要求的解。

这个方法被称为迭代法求解方程。

另一个常用的迭代法示例是求解优化问题。

在优化问题中,我们需要找到能使一些目标函数取得最大或最小值的变量。

迭代法可以通过不断优化变量值的方法来求解这种问题。

我们可以从一个初始解开始,然后根据目标函数的导数或近似导数的信息来更新变量的值,使得目标函数的值逐步接近最优解。

这种方法被称为迭代优化算法。

迭代法还可以应用于图像处理等领域。

在图像处理中,我们常常需要对图片进行修复、增强或变形。

迭代法可以通过对图片像素的重复操作来达到修复、增强或变形的目的。

例如,如果我们想要修复一张受损的图片,可以通过迭代地修复每个像素点,以逐渐恢复整个图片。

除了上述示例,迭代法还有很多其他应用,比如求解线性方程组、图像压缩、机器学习等。

总之,迭代法是一种非常灵活和强大的算法,可以解决各种问题。

在实际应用中,迭代法的效果往往受到选择合适的初始值、迭代次数和停止条件的影响。

因此,为了获得较好的结果,我们需要在迭代过程中不断优化这些参数。

同时,迭代法也可能会陷入局部最优解的问题,因此我们需要设计合适的策略来避免这种情况。

总的来说,迭代法是一种重要的常用算法,它可以解决各种问题。

几种迭代计算方法

几种迭代计算方法

几种迭代计算方法迭代计算方法是一种重要的计算技术,它是基于不断逼近的原理,通过多次迭代运算来逼近所要求解的问题的计算结果。

下面将介绍几种常见的迭代计算方法。

1.不动点迭代不动点迭代是指通过选择一个合适的迭代函数来不断逼近一个不动点的过程。

不动点指的是在迭代函数中,当迭代到其中一步时,迭代函数的值等于该迭代的值,即f(x)=x。

常见的不动点迭代有牛顿迭代法和迭代法求解方程。

牛顿迭代法通过选择一个初始值x0,利用迭代函数f(x)=x-f(x)/f'(x)来逼近方程f(x)=0的根。

每次迭代中,通过计算迭代函数的值来更新x的值,直至满足一定的精度要求。

迭代法求解方程是通过将方程f(x) = 0转化为x = g(x)的形式,并选择一个合适的g(x)来进行不断迭代求解的方法。

通过选择不同的g(x),可以得到不同的迭代方法,如简单迭代法、Jacobi迭代法、Gauss-Seidel迭代法等。

2.逐次平方根法逐次平方根法是一种通过不断迭代计算来求解线性方程组的方法。

该方法通过对原始的线性方程组进行变换,将其转化为对角线元素全为1的上三角矩阵,并将方程组的解表示为逐次迭代的形式。

在每次迭代中,通过求解一个线性方程组来更新解的值,直至满足一定的精度要求。

逐次平方根法是一种迭代计算方法,其主要适用于对称正定矩阵,能够有效地求解大规模线性方程组。

3.迭代加权法迭代加权法是一种通过引入权重来加快迭代收敛速度的方法。

该方法在每次迭代更新解的时候,通过对解的不同分量引入不同的权重来控制更新的幅度。

通过合理选择权重,可以加快迭代收敛速度,提高求解效率。

迭代加权法是一种通用的迭代计算方法,在多个领域中有不同的应用,如求解矩阵特征值问题、求解最优化问题等。

以上介绍的是常见的几种迭代计算方法,它们在不同的问题中有着广泛的应用。

这些方法通过迭代运算不断逼近所要求解的问题的计算结果,具有较好的收敛性和计算效率,是一种重要的计算技术。

改进的尺度迭代最近点配准算法

改进的尺度迭代最近点配准算法

2018年1月计算机工程与设计Jan.2018第 39 卷第1 期 C O M P U T E R E N G IN E E R IN G A N D D E S IG N V o l.39 N o.1改进的尺度迭代最近点配准算法赵夫群12,周明全23(1.咸阳师范学院教育科学学院,陕西咸阳712000#2.西北大学信息科学与技术学院,陕西西安710127#3.北京师范大学信息科学与技术学院,北京100875)摘要:针对点云配准中的尺度和收敛速度问题,提出一种改进的尺度迭代最近点(s c a lin g ite r a tiv e c lo se st p o in t,S IC P)算法。

在I C P算法中加入带边界的尺度矩阵,解决点云配准中尺度变换的问题#引入动态迭代因子,自动调整配准过程中的刚体变换参数,在不影响算法的精度和收敛方向的前提下,减少迭代次数,提高算法的收敛速度。

实验结果表明,与I C P算法和S IC P算法相比,改进的S I C P算法能够更好地解决含尺度因素的点云配准问题,是一种更加精确、快速的尺度点云配准算法。

关键词:点云配准#迭代最近点#尺度矩阵#动态迭代系数#刚体变换中图法分类号!T P391.9文献标识号:A文章编号%1000-7024(2018)01-0146-05doi:10. 16208/1. is s n l000-7024. 2018. 01. 026Im proved scaling iterativ e closest p o in treg istratio n algorithmZHAOFu-qun1’2,ZHOU Ming-quan2’3(1.School o f E ducation Science’X ianyang N o rm a l U n iv e rs ity’X ianyang 712000, C h in a;2.School o f In fo rm a tio n Science and T e c h n o lo g y’N o rth w e tt U n iv e rs ity’X i’an710127,C h in a;3.School o f In fo rm a tio n Science and T ech n o lo g y,B e ijing N o rm a l U n iv e rs ity,B e ij Abstract:A im in g at the scale and convergence rate problem s in p o in t cloud reg istra tio n’an im prov p o in t(S IC P)a lg o rith m was proposed.T h e scaling m a trix w ith boundary was added in to IC P a lg o rith m to calculate the scale tran sfo rm a tio n in p o in t cloud reg istra tio n.T h e dynam ic ite ra tio n coefficient was introduced to the a lg o rith m’w hich adjusted the param eters o f rig id tran sfo rm a tio n a utom atically’and decreased i te ra tio n num ber and im proved conver tin g the reg istra tio n accuracy a n d convergence tren d.E xperim ental results show th a t the im proved SICP a lg o rith m can solvep o in t cloud reg istra tio n w ith scale factor m uch b e tter and achieve m uch higher ite ra tive convergence rate compared w ith IC P algo­rith m and SICP a lg o rith m.t t is an accurate and fa tt scaling p o in t cloud reg istra tio n a lg o rith m.Key word s:po in t cloud re g is tra tio n;ite ra tive closest p o in t;scaling m a trix;dynam ic ite ra tio n coefficient;rig id tran sfo rm a tio n#引言点云配准*+分为两种类型,即两组点集的配准和多组 点集的配准,多组点集的配准可以通过进行多次两组点集 配准来实现,因此这里所谓的点云配准都是指两组点集的 配准。

迭代最近点算法

迭代最近点算法

迭代最近点算法
迭代最近点算法,简称“ITNC”,是一种很流行的有效的优化方法,它可以解决最优化问题的box-constrained最小化。

这种方法被广泛应用于可行区解决最优化问题。

ITNC被称为“迭代最近点”,因为它是通过搜索可行域的最近的点,并选择
的最近点作为下一次迭代的解,然后用此解替代原来的解,基于改进的解重新搜索最近点,以此循环,直到任一准则达到精度或者达到最大迭代次数,即可停止该迭代最近点算法,得到最优解。

ITNC的搜索问题的关键在于选择精确的最近点,使之作为一个有效的初始值,以
便有效地搜索最优解。

由于搜索最近点涉及多对比较,该算法采用排序算法进行改进,以提高算法的搜索效率。

此外,迭代最近点算法可以根据优化评价函数选择空间,以有效地优化可行域上的最优解。

ITNC也能根据变量更新策略来搜索最优解,从而降低计算时间,避免算
法无效。

当前,迭代最近点算法在众多最优化算法中具有广泛的应用,并且在实践中取得了良好的应用效果。

它的优点在于算法简单,计算效率高,可以很好地处理一些有约束条件的问题。

另外,ITNC还可以求解多变量问题,因为变量刷新策略可以指导算法朝向最优解。

但是,由于范围有限和对精度的要求,当解空间很大时,ITNC的收敛速度会变慢,从而影响算法的精度。

总之,迭代最近点算法是一种有效的最优化方法,有着诸多优化算法中独特的优势,无论是用于约束最优化的求解,或者多变量的求解处理,它都可以发挥其独到的优势,从而被广泛应用。

最近点对算法

最近点对算法

最近点对算法1. 简介最近点对算法(Closest Pair Algorithm)是一种用于找到平面上最近的两个点的算法。

该算法可以在给定一组点的情况下,找到距离最近的两个点,并计算出它们之间的距离。

最近点对问题在计算几何学、图像处理、数据挖掘等领域中具有广泛应用。

例如,在地理信息系统中,可以使用最近点对算法来查找距离最近的两个地理位置;在机器视觉中,可以使用该算法来寻找图像中距离最接近的两个特征点。

2. 算法思想最近点对算法采用分治策略,将问题划分为多个子问题,并通过递归求解子问题来得到整体解。

其基本思想可以概括为以下步骤:1.将所有点按照横坐标进行排序。

2.将排序后的点集平均划分为左右两部分,分别称为P_left和P_right。

3.分别在P_left和P_right中递归求解最近点对。

4.在左右两部分求得的最近点对中,选择距离更小的那一对作为候选解。

5.在区间[P_left[-1].x, P_right[0].x]内,查找可能的更近点对。

6.比较候选解与新找到的更近点对,选择距离更小的那一对作为最终解。

3. 算法实现3.1 数据结构在实现最近点对算法时,需要定义合适的数据结构来表示点。

常见的表示方法是使用二维数组或类对象。

以下是使用类对象来表示点的示例代码:class Point:def __init__(self, x, y):self.x = xself.y = y3.2 算法步骤3.2.1 排序首先,将所有点按照横坐标进行排序。

可以使用快速排序或归并排序等算法来实现排序功能。

def sort_points(points):# 使用快速排序按照横坐标进行排序# ...3.2.2 分治求解将排序后的点集平均划分为左右两部分,并递归求解最近点对。

def closest_pair(points):n = len(points)# 如果点集中只有两个点,则直接返回这两个点和它们之间的距离if n == 2:return points, distance(points[0], points[1])# 如果点集中只有三个点,则直接计算出最近点对if n == 3:d1 = distance(points[0], points[1])d2 = distance(points[0], points[2])d3 = distance(points[1], points[2])if d1 <= d2 and d1 <= d3:return [points[0], points[1]], d1elif d2 <= d1 and d2 <= d3:return [points[0], points[2]], d2else:return [points[1], points[2]], d3# 将点集平均划分为左右两部分mid = n // 2P_left = points[:mid]P_right = points[mid:]# 分别在左右两部分递归求解最近点对closest_pair_left = closest_pair(P_left)closest_pair_right = closest_pair(P_right)# 在左右两部分求得的最近点对中,选择距离更小的那一对作为候选解if closest_pair_left[1] < closest_pair_right[1]:min_pair, min_distance = closest_pair_leftelse:min_pair, min_distance = closest_pair_right3.2.3 查找更近点对在区间[P_left[-1].x, P_right[0].x]内,查找可能的更近点对。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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)的距离,点到面的距离是指,场景数据集中的点到模型数据集合中的经过对应点的切平面的距离,如图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算法和加入法相限制条件后获取的点对情况,其中空心箭头表示法相矢量方向,黑色箭头表示找到的对应点对。

(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]评估了上述四种方法的精确性和稳定性,并且说明了这些方法存在的差异。

相关文档
最新文档