首页 > 技术文章 > 不同种类的ICP算法

wellp 2018-07-10 19:04 原文

1.GICP

GICP是点到点的ICP以及点到面的ICP的泛化,GICP 整体 can be thought of as ‘plane-to-plane’的ICP;
1)点到点的ICP,残差函数是,点与点之间的欧式距离;

2)点到面的ICP,残差函数是,点到点之间的欧式距离在平面法向量上的投影;

3)GICP的残差函数是,点到点之间的欧式距离 && target和source的协方差矩阵,当target和source的法向量相互垂直时,残差的贡献会变得很小;

详细可见CSDN的一篇不错文章

 

 

2.其他-摘自《三维点云数据拼接中ICP及其改进算法综述

2.1 经典的点到点 ICP算法的步骤,设C_src为一堆三维点 x_i,C_tgt为一堆三维点y_i;

1)T = T_init

2) C_src_t = T_init * C_src

3) KNN find correspondences.

4) correspondences filter outliers;

5) 构成 线性 最小二乘问题 min f(R,t) = ∑ || R * x_i + t - y_i || ^ 2

6) 求解上述线性最小二乘问题——先求导然后让导数为0求R t,中间需要去中心化(计算x_i和y_i的均值)以及SVD分解求R,具体见链接

7)利用算出的T(R,t)对 1)进行更新,重复迭代,直到满足设置的收敛条件为止,如迭代次数,T的变化delta等;

 

 

推荐阅读