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

点云配准(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
点云配准论文阅读笔记–Comparing ICP variants on real-world data sets
点云配准论文阅读笔记–(4PCS)4-Points Congruent Sets for Robust Pairwise Surface Registration
点云配准论文阅读笔记–3d-dnt博士论文

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算法过程总结如下:
在这里插入图片描述
(图摘自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
https://blog.csdn.net/qq_41102371/article/details/125646840

blogs

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

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

  • 34
    点赞
  • 228
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 7
    评论
CloudCompare 是一款功能强大的点云数据处理软件,可以用于点云的配准点云配准是指将两个或多个不同位置或角度的点云数据对齐,使它们在同一个坐标系统中对应。 首先,在CloudCompare中导入需要配准的两个点云文件。可以通过文件导入功能将点云数据文件导入软件中。在导入后,可以通过鼠标拖动和缩放等操作来查看点云的位置和方向关系。 接下来,选择其中的一个点云作为参考点云,点击菜单中的“场景”选项,选择“计算法向量”,生成法向量。这样可以为点云数据提供更多信息,方便后续的配准操作。 然后,点击菜单中的“配准”选项,选择“ICP配准”。ICP是一种常用的点云配准算法,通过迭代优化的方式将两个点云对齐。在ICP配准窗口中,可以选择参考点云和移动点云,设定配准参数,如迭代次数。点击运行配准,软件会自动计算并显示配准结果。 配准完成后,可以查看配准结果,并进行进一步操作,如点云融合、表面重建等。其中,点云融合是将配准后的点云数据合并为一个整体,便于后续处理。 总之,CloudCompare通过提供ICP配准算法和丰富的操作功能,可以实现点云的配准。用户可以根据需要选择不同的配准方法和参数,并通过软件的交互界面进行操作和查看结果。配准后的点云数据可以被用于进一步的分析和应用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

诺有缸的高飞鸟

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值