ICP算法步骤.docx
《ICP算法步骤.docx》由会员分享,可在线阅读,更多相关《ICP算法步骤.docx(9页珍藏版)》请在冰豆网上搜索。
ICP算法步骤
ICP算法步骤
1.初始化对应关系R,得到初始对应;
2.根据对应关系R,通过最小化一个形变误差函数,计算M1形变后的坐标X’
Edeform(X’)=wsEs(X’)+wcE(X’)
3.对M1的每一个采样点i,利用X’,hi,法线和点之间的欧式距离,再M2的采样点中,搜索最佳对应点,由此得到新的对应关系R;
4.重复2,3进行多次迭代;(论文中为5次,5次后对应关系R已基本稳定不再有大的变化)
2.经典ICP算法介绍。
ICP算法有较多的数学公式和概念,数学公式总归看起来费劲,这里只简要的理解下其算法步骤:
两个点集P1,P2,每一步迭代,都朝着距离最小的目标进行。
a.筛选点对:
由P1中的点,在P2中搜索出其最近的点,组成一个点对;找出两个点集中所有的点对。
点对集合相当于进行有效计算的两个新点集。
b.根据点集对,即两个新点集,计算两个重心。
c.由新点集,计算出下一步计算的旋转矩阵R,和平移矩阵t(其实来源于重心的差异)。
d.得到旋转矩阵和平移矩阵Rt,就可以计算点集P2进行刚体变换之后的新点集P2`,由计算P2到P2`的距离平方和,以连续两次距离平方和之差绝对值,作为是否收敛的依据。
若小于阈值,就收敛,停止迭代。
e.重复a-e,直到收敛或达到既定的迭代次数。
--其中,计算旋转矩阵R时,需要矩阵方面的运算。
由新的点集,每个点到重心的距离关系,计算正定矩阵N,并计算N的最大特征值及其最大特征向量;其特征向量等价于旋转的四元数(且是残差和最小的旋转四元数),将四元数就可以转换为旋转矩阵。
3.fastICP解析:
FastICP是对ICP的改进与扩展。
论文EfficientVariantsoftheICPalgorithm详细给出了影响ICP算法的各种因素,且每种因素都哪些算法,其结果与性能如何。
FastICP根据这些因素将ICP算法分为6个步骤:
a.筛选:
点集或曲面的筛选(滤波)
b.匹配:
两个点集之间的点进行配对
c.权重:
给每个匹配的点对分配权重
d.去除:
去除不符合条件的点对
e.误差度量:
基于以上点对,给出每个点对的误差计算方法
f.最小化:
最小化误差度量
ICP算法的时间代价是O(NpNx)
论文二:
点云配准SIFT算法
ICP算法存在2个问题:
初始变换的选取和对应点的确定。
如果所给初值不当,算法就会形成局部最小化,造成迭代不能收敛到正确的结果;对应点的确定方法影响到迭代方法的收敛速度,而保证对应点的有效性则决定最后所得变换参数的精确程度。
论文三:
一种改进的迭代最近点算法
因为它基于Delaunay剖分,所以称其为Delaunay-ICP