您好,欢迎访问三七文档
1ICP算法基本原理假定已给两个数据集P、Q,,给出两个点集的空间变换f使他们能进行空间匹配。这里的问题是,f为一未知函数,而且两点集中的点数不一定相同。解决这个问题使用的最多的方法是迭代最近点法(IterativeClosestPointsAlgorithm)。基本思想是:根据某种几何特性对数据进行匹配,并设这些匹配点为假想的对应点,然后根据这种对应关系求解运动参数。再利用这些运动参数对数据进行变换。并利用同一几何特征,确定新的对应关系,重复上述过程。步骤:1)根据点集Plk中的点坐标,在曲面S上搜索相应就近点点集Prk;2)计算两个点集的重心位置坐标,并进行点集中心化生成新的点集;3)由新的点集计算正定矩阵N,并计算N的最大特征值及其最大特征向量;4)由于最大特征向量等价于残差平方和最小时的旋转四元数,将四元数转换为旋转矩阵R;5)在旋转矩阵R被确定后,由平移向量t仅仅是两个点集的重心差异,可以通过两个坐标系中的重心点和旋转矩阵确定;26)根据式(0-3),由点集Plk计算旋转后的点集P’lk。通过Plk与P’lk计算距离平方和值为fk+1。以连续两次距离平方和之差绝对值作为迭代判断数值;7)当时,ICP配准算法就停止迭代,否则重复1至6步,直到满足条件后停止迭代。迭代最近点法目标函数三维空间中两个3D点,,他们的欧式距离表示为:三维点云匹配问题的目的是找到P和Q变化的矩阵R和T,对于,,利用最小二乘法求解最优解使:最小时的R和T。平行移动和旋转的分离先对平移向量T进行初始的估算,具体方法是分别得到点集P和Q的中心:分别将点集P和Q平移至中心点处:3则上述最优化目标函数可以转化为:利用控制点求初始旋转矩阵在确定对应关系时,所使用的几何特征是空间中位置最近的点。这里,我们甚至不需要两个点集中的所有点。可以指用从某一点集中选取一部分点,一般称这些点为控制点(ControlPoints)。这时,配准问题转化为:这里,pi,qi为最近匹配点。在GeomagicStudio中利用三个点就可以进行两个模型的“手动注册”(感觉这里翻译的不好,Registration,应该为“手动匹配”)。平移矩阵计算得到选择矩阵的4元数表示,由于在平行移动和旋转的分离中,我们将最优问题分解为:1.求使E最小的2.求使因此还需要通过中心点计算平移矩阵。迭代最近点43.在初始匹配之后,所点集P`中所有点做平移变化,在比较点集合P`和Q`的匹配度,(或迭代次数)作为算法终止的条件。具体为对点集P中每个点,找Q中离他最近的点作为对应点。在某一步利用前一步得到的,求使下述函数最小的:4.5.这里,四元数复数是由实数加上虚数单位i组成,其中i^2=-1。相似地,四元数都是由实数加上三个虚数单位i、j、k组成,而且它们有如下的关系:i^2=j^2=k^2=-1,i^0=j^0=k^0=1,每个四元数都是1、i、j和k的线性组合,即是四元数一般可表示为a+bk+cj+di,其中a、b、c、d是实数。对于i、j、k本身的几何意义可以理解为一种旋转,其中i旋转代表X轴与Y轴相交平面中X轴正向向Y轴正向的旋转,j旋转代表Z轴与X轴相交平面中Z轴正向向X轴正向的旋转,k旋转代表Y轴与Z轴相交平面中Y轴正向向Z轴正向的旋转,-i、-j、-k分别代表i、j、k旋转的反向旋转。有两种方法能以矩阵表示四元数,并以矩阵之加法、乘法应用于四元数之加法、乘法。5第一种是以二阶复数矩阵表示。若h=a+bi+cj+dk则它的复数形式为:这种表示法有如下优点:所有复数(c=d=0)就相应于一个实矩阵。四元数的绝对值的平方就等于矩阵的行列式。四元数的共轭值就等于矩阵的共轭转置。对于单位四元数(|h|=1)而言,这种表示方式给了四维球体和SU(2)之间的一个同型,而后者对于量子力学中的自旋的研究十分重要。(请另见泡利矩阵)第二种则是以四阶实数矩阵表示:其中四元数的共轭等于矩阵的转置。
本文标题:ICP算法
链接地址:https://www.777doc.com/doc-4909444 .html