点云配准1:配准基础及icp算法

目录

  • 点云配准(point set registration)
  • 点云配准系列
  • icp算法原理
    • 算法优缺点
    • 算法原理
  • 配准实现
  • 参考及感谢
    • papers
    • blogs

点云配准(point set registration)

对于一个目标,诸如激光雷达扫描仪(LIDAR)、影像重建等往往不能一次获得其整个的点云。例如激光雷达扫描仪需要从多个角度扫描才能得到一把椅子或者整个建筑的全部点云,而这些点云可能并不是处在同一坐标系下的,存在着空间旋转平移关系。只存在空间旋转平移变换的配准问题称为刚体配准(rigid registration),存在缩放、变形、仿射变换(scale、deformation、affine)的配准问题称为非刚体配准(non-rigid registration)。显然,非刚体配准的难度大于刚体配准。
刚体变换点云配准的基本问题是寻找最优的空间平移变换矩阵,使得两点云能很好地配准在一起。
另外,非同源数据点云的配准也是一个研究点。例如可以对一个建筑进行无人机影像三维重建(sfm是大家比较熟知的影像重建算法,常用成熟软件有Pix4D,Smart3D等)获取三维点云,并进行地基激光雷达扫描。显然对建筑顶面来说,影像重建的点云是优于LIDAR点云的,而就得到的建筑侧面的点云来说,LIDAR点云要优于影像重建点云。这就涉及到影像点云与LIDAR点云配准的问题,并且往往两点云是部分重叠的。
Stanford Bunny配准实例:后续将有此实例实现的详细讲解

点云配准系列

点云配准1:配准基础及icp算法
点云配准2:icp算法在PCL1.10.0上的实现+源码解析
点云配准3:3d-ndt算法在pcl上的实现以及参数设置
点云配准4:cloudcompare的使用以及点云配准功能
点云配准5:4pcs算法在pcl上的实现
点云配准6:tricp算法在pcl上的实现
点云配准论文阅读笔记–Efficient Variants of the ICP Algorithm

icp算法原理

算法优缺点

icp(Iterative Closest Point,迭代最近邻点)算法是点云配准的经典算法,精度高,不需要提取特征点;但是需要在icp使用之前两点云已经完成粗配准,否则容易陷入局部最优;算法只适用于刚体配准;算法不适用于部分重叠点云的配准。

算法原理

假设点云{Q}为目标点云(参考点云),{P}为源点云(待配准的点云), p i ( i ∈ 1 , 2 , . . . N ) p_i(i\in1,2,...N) pi(i1,2,...N)是{S}中的一个点, q i q_i qi是{E}中与 p i p_i pi距离最近的点。
我们需要计算从{P }到{Q }的RT变换矩阵,即旋转矩阵R和平移矩阵T。如果变换参数是准确的,那么点云{P }中的每一个点 p i p_i pi,经过变换后应该与点云{Q}中的点 q i q_i qi完全重合,
即: q i = R p i + T q_i=Rp_i+T qi=Rpi+T。但由于有噪声的存在,不可能所有点都完全重合,所以我们定义目标函数:
在这里插入图片描述
使目标函数最小的R,T即为所求变换参数。F其实就是参考点云{Q } 与 已经进行R,T矩阵空间变换的{P’} 之间的平均距离。
计算方法:
首先,对{P}中的每个点 p i p_i pi,寻找其在{Q}中的最近点 q i q_i qi(利用kd树最近邻查找算法可实现),组成一一对应的点对
计算两组点云的质心,分别记为 u p , u q u_p,u_q up,uq
u_p=1/N ∑_(i=1)^N▒p_i ,    u_q=1/N ∑_(i=1)^N▒q_i
对两组点云进行去质心,得到:
在这里插入图片描述
构建矩阵H:
在这里插入图片描述

对H矩阵进行SVD分解:
在这里插入图片描述
(SVD(奇异值分解)是一种常用的矩阵重要特征计算工具,我们只是借助它计算RT矩阵,在此暂不必深究)
得到R与T:
在这里插入图片描述

得到R,T矩阵以后,用其对待配准空间进行空间变换得到新的点集,并代入目标函数:
在这里插入图片描述
若如果新的变换点集与参考点集满足两点集的平均距离小于某一给定阈值,则停止迭代计算,否则新的变换点集作为新的{P_i }继续迭代,直到达到目标函数的要求。
总结ICP算法:
1、计算{P}中的每一个点在{Q}点集中的对应近点;
2、求得使上述对应点对平均距离最小的刚体变换,求得平移参数和旋转参数;
3、对{P}使用上一步求得的平移和旋转矩阵进行空间变换,得到新的变换点集{P’};
4、如果新的变换点集与参考点集满足两点集的平均距离小于某一给定阈值,或者迭代次数达到设定的最大值,则停止迭代计算,否则新的变换点集作为新的{P}继续迭代,直到达到目标函数的要求。

在“Recent developments and trends in point set registration methods”中:
作者总结了最近邻点查找选择,点匹配,配对权重,离群点去除,误差最小化是icp的主要问题,且学者们已经做了大量的改进。
点云滤和采样方法:随机、统一、法向空间、基于相关性的和约束对齐
在离群点去除阶段,Tricp算法去除那些可能会影响最小化过程的点对。tricp作为icp的改进算法,能够对部分重叠点云进行配准。
作者将icp算法过程总结如下:
点云配准1:配准基础及icp算法_第1张图片
(图摘自Recent developments and trends in point set registration methods

配准实现

点云配准二:icp算法在PCL1.10.0上的实现+源码解析

参考及感谢

papers

Maiseli, Baraka, et al. “Recent Developments and Trends in Point Set Registration Methods.” Journal of Visual Communication and Image Representation, vol. 46, no. 46, 2017, pp. 95–106.

Paul J. Besl, Neil D. McKay. A method for registration of 3-D shapes[J]. IEEE Transactions on Pattern Analysis and Machine Intelligence, 1992. 14(2): 239-256.

上述文章下载share_noel/papers提取码:0ooc

blogs

ICP算法(迭代最近点算法)详细推导
特别推荐:利用SVD求得两个对应点集合的旋转矩阵R和转移矩阵t的数学推导
vs2019配置pcl1.10.0+点云可视化示例

边学边用,如有错漏,敬请指正
--------------------------------------------------------------------------------------------诺有缸的高飞鸟202011
--------------------------------------------------------------------------------------------更新于202012

你可能感兴趣的:(点云配准(point,set,registration),icp算法,计算机视觉,ieee论文,点云配准)