目录

  • 点云配准(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
点云配准论文阅读笔记–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}为源点云(待配准的点云),pi(i∈1,2,...N)p_i(i\in1,2,...N)pi​(i∈1,2,...N)是{S}中的一个点,qiq_iqi​是{E}中与pip_ipi​距离最近的点。
我们需要计算从{P }到{Q }的RT变换矩阵,即旋转矩阵R和平移矩阵T。如果变换参数是准确的,那么点云{P }中的每一个点pip_ipi​,经过变换后应该与点云{Q}中的点qiq_iqi​完全重合,
即:qi=Rpi+Tq_i=Rp_i+Tqi​=Rpi​+T。但由于有噪声的存在,不可能所有点都完全重合,所以我们定义目标函数:

使目标函数最小的R,T即为所求变换参数。F其实就是参考点云{Q } 与 已经进行R,T矩阵空间变换的{P’} 之间的平均距离。
计算方法:
首先,对{P}中的每个点pip_ipi​,寻找其在{Q}中的最近点qiq_iqi​(利用kd树最近邻查找算法可实现),组成一一对应的点对
计算两组点云的质心,分别记为up,uqu_p,u_qup​,uq​:

对两组点云进行去质心,得到:

构建矩阵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

点云配准1:配准基础及icp算法相关推荐

  1. 计算机视觉与深度学习 | 激光雷达点云配准与拼接(基于ICP算法):附matlab源代码

    ================================================ 博主github:https://github.com/MichaelBeechan 博主CSDN:h ...

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

    目录 本文最后实现的配准实例 点云配准系列 准备 程序结构 主程序 1.为什么要降采样 2.体素降采样原理 3.点云更新 icp 配准前的参数设置 icp配准算法内部 对应点对确定(determine ...

  3. 点云配准论文阅读笔记--Comparing ICP variants on real-world data sets

    目录 写在前面 点云配准系列 摘要 1引言(Introduction) 2 相关研究(Related work) 3方法( Method) 3.1输入数据的敏感性 3.2评价指标 3.3协议 4 模块 ...

  4. VTK修炼之道58:图形基本操作进阶_点云配准技术(迭代最近点ICP算法)

    1.Iterative Closest Points算法 点云数据配准最经典的方法是迭代最近点算法(Iterative Closest Points,ICP).ICP算法是一个迭代的过程,每次迭代中对 ...

  5. 点云配准——经典配准算法及配准效果对比

    目录 点云配准基础知识 什么是点云配准? 点云配准的步骤 粗配准 精配准 点云配准的经典算法 ICP算法 NDT算法 3DSC算法 PFH FPFH 完全配准效果对比 点云配准基础知识 什么是点云配准 ...

  6. ICP算法加速优化--多线程和GPU

    LZ之前的文章ICP算法实现(C++) 用C++实现了基础的ICP算法,由于该算法是一种迭代的优化算法,里面含有大量循环操作以及矩阵运算,可以通过使用多线程或者GPU硬件来进行加速,具体分别可以通过O ...

  7. 论文翻译—ICP算法论文(节选1~4章)

    标题:A Method for Registration of 3-D Shapes 作者: J. Besl, Neil D. McKay 目录: Ⅰ Introduction Ⅱ Literatur ...

  8. ICP算法(仅供学习使用)

    1.定义: ICP(Iterative Closest Point)细化是一种点云配准算法,用于将两个或多个点云数据集对齐,以便进行后续的三维重建.拓扑分析等操作.在ICP细化中,通过迭代计算最小化两 ...

  9. 在医学图像分析中使用ICP算法进行点云配准

    点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 本文转载自「计算机视觉工坊」,该公众号重点在于介绍深度学习.智能驾驶等领域,一个小众的公众号. 论文标 ...

  10. 两帧点云刚性配准的ICP算法

    点云配准的一般思路是根据两个点云的匹配点,估计刚性变换矩阵[R t]. 空间刚性变换的3×4矩阵[R t]虽然包含12个数,但只有旋转和平移6个自由度(参数).在SLAM中相机的位姿也用[R t]矩阵 ...

最新文章

  1. MyBatis——XML配置解析
  2. java 线程池学习小记
  3. C++ string 详解
  4. 开源中国 Chrome 插件,你的好帮手~
  5. linux运行前探秘之四,Linux运行前探秘之四_内核解压缩_三_
  6. STRUTS模拟试题
  7. arcgis使用工具箱导出dbf_ArcGIS——好好的属性表,咋就乱码了呢?
  8. tp中怎么执行mysql事务_tp中使用事务
  9. 【Tools】ubuntu16.04升级Python2.7到3.5
  10. php fpm 报错,PHP-FPM安装报错解决
  11. 怎么直接播放或编辑WEBM格式的视频
  12. 人工智能自动修复图片,模糊图片秒变高清
  13. NSString+NSMutableString+NSValue+NSAraay用法汇总
  14. 这一年,我所阐释的Linux哲学
  15. 波浪动力滑翔机的综述
  16. 网络故障排查流程及工具使用手册
  17. 【前端面试】04 HTTP协议
  18. 《零基础学HTML5+CSS3(全彩版)》读书笔记
  19. 把linux当无线路由器用,基于树莓派的无线路由器改造
  20. QQ\微信等聊天记录备份与恢复

热门文章

  1. kuangbin最短路 模板
  2. 嵌入式系统与人工智能 1
  3. afm原子力分析软件_AFM数据处理软件|原子力显微镜配套数据处理软件 nanoscope analysis1.8 官方版 - 极光站...
  4. 在MATLAB下安装Matpower模块
  5. 用vins_mono运行kitti(raw data)数据集并用evo评估。
  6. 机器学习——数据的预处理(总结大全)
  7. python模块安装位置_查看python模块的安装路径
  8. Java虚拟机(JVM)字节码指令表
  9. 2022年PMP考试应该注意些什么?
  10. bim 水利枢纽 运维_BIM——运维专篇