ICP算法学习1:原理推导

ICP算法思想与推导详解——什么东西“最近点”,又“迭代”了什么? ICP算法的介绍及其公式的详细推导,过程比较细致,适合小白 阅读详情

下一篇文章将进行ICP算法实战:

转载自ICP算法概述以及使用SVD进行算法推导_icp svd-优快云博客

(如有侵权,私信我删除)

1 ICP 算法

  三维点云拼接技术在不同场合亦被称为重定位、配准或拼合技术,其实质是把不同的坐标系下测得的数据点云进行坐标变换,问题的关键是坐标变换参数𝑅(旋转矩阵)和𝒕(平移矢量)的求取。目前国内外的拼接技术一般分两步:粗拼接和精确拼接。
  粗拼接大致将不同坐标系下点云对准到同一坐标系下,一般粗拼接很难满足精度要求,需在粗拼接的基础上使用迭代算法进行精确拼接,使点云之间的拼接误差达到最小。
  主要分为四个过程:

1.对原始数据采样

2.确定初始对应点集

3.滤除错误对应点对

4.坐标变换求解

1.1概述:对待拼接的2片点云,首先根据准则确立两分别对应的点集P={p1​,p2​,...,pn​}与Q = { q 1 , q 2 , . . . , q n } Q = \{q_1,q_2,...,q_n\}Q={q1​,q2​,...,qn​},其中对应点对个数为n。

ICP算法计算简便直观,精度高。但算法运行速度及全局最优的收敛性依赖于给定的初始变换估计以及迭代过程中对应关系的确立!粗拼接技术可以提供较好的初始位置,因此迭代过程中点集的正确对应成为各种算法的关键,直接决定算法收敛速度以及拼接精度。

1.2ICP步骤:

1.2.1采样

均匀采样、随机采样和法矢采样,均匀采样与随机采样简便易行,但未考虑待拼接物体的形貌,会丢失物体的关键特征。法矢采样以待拼物体表面点的法矢分布为基础, 使每个法矢方向上都有差不多个数的点, 此方法可尽可能地保留点云的细微特征。不理解法矢采样的参照这里。

1.2.2确定初始对应点集

( 1 )点到点

  通过直接搜索一片点云中的点在另一片点云中的最近点来确定对应点集。计算简便直观,但其所确立的对应点集中存在大量错误对应点对,算法迭代易陷入局部极值。

( 2 )点到投影

  对于点云𝑃上一点𝑝 ,其对应点𝑞为𝑝过点云𝑄的视点方向Oq在点云𝑄上的投影。由于省去了搜索对应点的步骤,此方法可极大地缩短计算时间,但其缺点是无法达到较高的拼接精度。

( 3 )点到平面

  点到面算法在三类方法中精度最高,这种方法将点点距离用点面距离代替,迭代次数少,且不易陷入局部极值。应用最为广泛的点到面算法为点到切平面算法。

1.2.3去除错误对应点对

在算法迭代初期,存在错误对应点对,严格说没有一对是正确的,所以需要确定评价标准来去除错误对应点对。

( 1 )基于曲面几何特征的约束方法

  此类方法基于的原理是:在不同视角下,被测物体同一位置的曲面几何特征应该保持不变。此类约束中常用的几何特征有曲率、法矢等。使用此类约束方法确立的对应点对一般正确率较高,故可达到较高的精度,但此类方法要求被测物体有较明显的特征,且由于存在提取曲面特征的过程,一般计算较为耗时,特别是点云点数较多时。

代表算法有:

  • ICCP(Iterative Closest Compatible Point) 此算法中使用候选对应点间的曲率和法矢的夹角判断点对的兼容性。
  • ICPIF (Iterative Closest Points using Invariant Features) 此算法中使用被测物体的欧氏空间不变量(曲率、矩不变量、球谐函数不变量等) 确立对应点对。
  • GP-ICPR( Geometric Primitive ICP with the RANSAC) 此算法中利用曲面上 1 点的曲率变化与对应点间的法矢的夹角确立对应点对。
  • ICL( Iterative Closest Line)、ICT( Iterative Closest Triangle Patch)…
( 2 )基于刚性运动一致性的约束方法

  此类方法直接利用了刚性运动应保持被测物体重叠区域对应点不变的原理。此类约束常用的一致性准则有对应点间的距离、对应点对间的相邻关系等。此类方法简便易行,计算效率较高,但确立的对应点集错误率较高。

代表算法有:

  • ICRP(Iterative Closest Reciprocal Point) 对于点云𝑃上 1 点𝒑,其在𝑄上的最近点为𝒒,找到𝒒在𝑃上的最近点𝒑′,若‖𝒑−𝒑′‖>𝜀(𝜀为给定的阈值),则点对(𝒑,𝒒)被去除。

  • PICP(Picky ICP) 此算法对使用最近点对点方法找到的对应点集中的点对(𝒑,𝒒) ,若‖𝒑−𝒒‖>𝜀𝜎,则点对(𝒑,𝒒)被去除。其中𝜎为所有对应点对间距离的均值,𝜀为给定的阈值。

  • …

1.2.4坐标变换的求解

 ICP 算法对最终确立的对应点集,一般采用最小二乘法迭代求解 2 片点云间的最优坐标变换。对于旋转矩阵和平移矢量的求值,通常可采用以下 4 种方法:单位四元数法、奇异值分解法(SVD)、正交矩阵法和对偶四元数法。

SVD方法求解ICP问题:

公式较为复杂,见原文链接。

点云配准经典方法——ICP 原理推导及PCL实现 ICP算法需要输入两个点云,一个是目标点云,另一个是源点云,输出的是从源点云到目标点云的位姿变换。目标点云不会移动,而源点云则会在迭代的过程中不断接近目标点云,直到收敛。但是ICP算法很容易陷入局部最优解,通常需要目标点云和源点云在配准前有比较高的重合率,因此在执行ICP之前通常会用其他方法进行一次粗配准,来获得比较好的初值,然后再使用ICP进行精配准。 阅读详情

相关推荐

点云配准ICP算法推导,SVD分解

迭代最近点(Iterative Closest Point, ICP)算法可称为点云配准算法的先驱和鼻祖,该算法于上世纪90年代提出。通过学习ICP的设计原理可以深刻的了解点云配准这个数学问题及纯数学形式的解决思路。在学习的过程中我发现网上很少有从零基础讲解ICP算法的(可能默认看这类算法的都有很好的数学功底吧),所以我想写一篇关于ICP算法的详细推导博客,希望通过一篇文章帮大家彻底搞懂ICP的原理。

qq_44949041的博客 4599

ICP算法的原理与实现

一、背景与意义  点云数据能够以较小的存储成本获得物体准确的拓扑结构和几何结构,因而获得越来越广泛的关注。在实际的采集过程中,因为被测物体尺寸过大,...

vcpro126的专栏 5168

ICP算法学习记录(包括基础概念,计算推导)

首先,ICP,全称叫做(Iterative Closest Point,迭代最近点),在slam中用来做点云匹配,点云匹配就是将同一个物体,在不同视角下的两组或多组点云,通过旋转加平移让他们匹配起来。 理论基础: 1、刚性变换矩阵: 通过旋转和平移来匹配点云,可以通过一个映射矩阵H来表示 其中A是旋转矩阵,T是平移向量,V当做0向量,S= 1是比例因子。ICP的作用其实就是来求A和T。 点到点icp算法: 给两片点集: 第一步:对原始数据进行采样: 对点云进行采样,分为均匀采样,随.

m0_50046535的博客 1385

干货 | 三维点云配准:ICP 算法原理及推导

编者荐语点云配准可以分为粗配准(Coarse Registration)和精配准(Fine Registration)两步。粗配准指的是在两幅点云之间的变换完全未知的情况下进行较为粗糙的配...

3D视觉工坊 7702

从零开始一起学习SLAM-ICP原理及应用

点“计算机视觉life”关注,星标更快接收干货! 小白:师兄,最近忙什么呢,都见不到你人影,我们的课也好久没更新了呢 师兄:抱歉,抱歉,最近忙于俗事。我后面一起补上,学习劲头得向你们年轻人学习啊!话说,你最近在研究什么呢? 小白:最近在看ICP,十四讲上简单提了下,还有点懵懵哒 师兄:好,那今天就说说ICP算法吧。搬个小板凳做好哈: ICP全称Iterative Closest Point,翻...

计算机视觉life 2873

ICP算法学习笔记(原理加公式理解)

近期阅读NICP. Dense Normal Based Point Cloud Registration论文之ICP算法理解 ICP算法是点集对点集的配准方法。此论文中有比较两三种配准算法(逐步阅读论文会加入对于GICP、NICP等的学习),这些算法的误差度量和数据关联方式是不同的,通过不同的误差度量方法和数据关联方法可以拥有不同的ICP算法,这也可以给我提供一种思路,可以通过改进误差度量和数据关联来改进优化算法。 ICP算法的误差度量是三维点到点之间的欧式距离(在欧几里得空间,是两点之间或多点之间距

abc16563508的博客 2622

基于PCL的ICP及其变种算法实现

ICP介绍和示例

baidu_35536188的博客 1万+

ICP算法实战:从原理到PCL代码实现与优化技巧

本文深入解析ICP算法在点云配准中的原理与实战应用,详细讲解从基础概念到PCL代码实现的完整流程。通过优化技巧和问题解决方案,帮助开发者高效处理点云配准中的常见挑战,如局部最优和异常情况处理,提升配准精度和计算效率。

weixin_42699679的博客 359

ICP算法对应点姿态估计算法推导

icp 姿态估计算法推导

闪电彬彬的博客 939

ICP算法详解与实践

通过ICP算法,我们能够实现高精度的点云配准,为三维重建、机器人导航等领域的应用提供了可靠的基础支持。ICP算法的核心思想是通过迭代的方式,不断优化两个点云之间的最小平方误差,从而找到最佳的点云配准结果。a) 初始对齐:选择一个点云作为参考点云,将另一个点云的所有点投影到参考点云所在的坐标系中,得到初始对齐的结果。首先,需要对输入的点云数据进行预处理,包括去除离群点、降采样等操作。这有助于提高算法的稳定性和效率。b) 最近邻搜索:对于每个参考点云中的点,找到与之最近的目标点云中的点,建立对应关系。

QfcaLinux的博客 1100

【第21话:定位建图】SLAM点云配准之3D-3D ICP(Iterative Closest Point)方法详解

本文详细介绍了SLAM中点云配准的核心算法ICP(Iterative Closest Point)。ICP通过迭代优化刚体变换(旋转和平移)来对齐点云数据,包含四个关键步骤:最近点搜索、最优变换计算、点云变换和收敛判断。文章推导了ICP的数学原理,分析其优缺点,并指出其在SLAM中的典型应用场景(如帧间配准、局部优化和回环检测)。尽管ICP对初始位置敏感且仅适用于刚性变换,但其高效性使其成为SLAM系统的关键组件。理解ICP有助于掌握点云配准的基本原理和实现方法。

一碗白开水一 1087

点云配准ICP算法及其变种介绍及耗时对比

点云配准ICP算法

qq_38198853的博客 2905

TCGA数据下载保姆级教程:用GDC-client从零搞定,附配置文件避坑指南

本文提供TCGA数据下载的完整教程,详细讲解如何使用GDC-client工具从零开始配置到高效获取基因组数据。涵盖环境准备、认证配置、数据检索、高效下载及故障处理等关键步骤,并附配置文件避坑指南,帮助生物医学研究者快速掌握TCGA数据下载技巧。

weixin_30892037的博客 262

从零开始一起学习SLAM | ICP原理及应用

点击上方“小白学视觉”,选择加"星标"或“置顶”重磅干货,第一时间送达小白:师兄,最近忙什么呢,都见不到你人影,我们的课也好久没更新了呢师兄:抱歉,抱歉,最近忙于俗事。我后面一起补上,学习劲头得向你们年轻人学习啊!话说,你最近在研究什么呢?小白:最近在看ICP,十四讲上简单提了下,还有点懵懵哒师兄:好,那今天就说说ICP算法吧。搬个小板凳做好哈:ICP全称Iterativ...

小白学视觉 1867

网易数智CoreAgent实战:5步教你打造企业级AI数字员工(附避坑指南)

本文以网易数智CoreAgent智能体协作中枢为核心,提供了一份企业级AI数字员工的实战部署指南。文章详细拆解了从环境准备、智能体配置、业务集成、安全合规到效果评估的五个关键步骤,并分享了部署过程中的常见“避坑”经验,旨在帮助企业技术团队高效、安全地将AI智能体落地于实际业务场景,解决AI落地难题。

rice5的博客 953

颠覆性创新的测量框架与跨领域实证分析

颠覆性创新作为科技发展的重要驱动力,其核心在于实现知识体系的范式转换。从技术原理看,这类创新通常具备知识替代、网络重构和跨领域渗透三大特征,通过引用网络分析和文本挖掘等方法可量化评估其影响力。在工程实践中,CD指数、DI指数等测量工具帮助研究者识别具有突破潜力的成果,而深度学习等新兴技术进一步提升了评估精度。当前AI、半导体等领域的热门技术发展表明,模块化架构和产业协同能有效促进颠覆性创新。面对全球范围内创新颠覆性下降的趋势,优化科研评价体系、构建跨学科协作网络成为关键应对策略。

weixin_29735807的博客 323

点云中ICP算法的详解

来源:智能建造研究生添加小助理:cv3d001,备注:方向+学校/公司+昵称,拉你入群。文末附3D视觉行业细分群。扫描下方二维码,加入「3D视觉从入门到精通」知识星球,星球内凝聚了众多3D视觉实战问题,以及各个模块的学习资料:近20门秘制视频课程、最新顶会论文、计算机视觉书籍、优质3D视觉算法源码等。想要入门3D视觉、做项目、搞科研,欢迎扫码加入!ICP(Iterative Closest Poi...

3D视觉工坊 644

ICP配准算法

待更新!

m0_46062697的博客 353

STM32F407步进电机控制及DM542驱动器使用

基于DM542驱动器的步进电机简单控制

qq_43868701的博客 1万+

2024年下半年软考系统架构设计师案例分析题

摘要: 本文包含两个软件系统设计案例。案例一讨论了大语言模型智能系统的质量属性需求分析,识别了功能性、性能、可靠性等需求,并对比了ping/echo和心跳两种故障检测策略。案例二探讨了购物网站的缓存设计,包括Cache-Aside策略的数据读取/更新流程,以及解决缓存一致性的多种方案(消息队列、数据库插件、锁机制等)。此外还涉及Elasticsearch分词器的特点比较和RESTful架构实现前后端分离的原理。这些案例展示了软件架构设计中的质量属性权衡、缓存策略选择及系统解耦等关键技术考量。<|end

卿着飞翔 1047

经典文献阅读之--NORLAB-ICP(重力约束ICP)

最近几年IPC相关的文章也出了不少,最近作者有看到了一篇比较有意思的ICP论文—《》,这篇论文将传统的ICP考虑了重力因素,高频率的IMU数据弥补了低频的传感器数据。除此之外,可以从重力向量中获取三自由度姿态中的两个。在视觉里程计中,IMU已经被用来将6自由度位姿估计转换为4自由度。在lidar SLAM中,重力测量在后端优化中经常被用来作为惩罚项来防止地图变形。文中提出了一种基于迭代最近点(ICP)的前端方法,其利用了重力向量提供的旋转可观自由度,并且提供了与重力向量对齐的位姿估计。

lovely_yoshino的博客 1万+

7、CUDA 软件架构与开发工具详解

本文深入探讨了CUDA的软件架构与核心开发工具,涵盖CUDA数组与纹理、表面引用、图形互操作性机制,以及CUDA运行时与驱动程序API的功能对比。详细解析了nvcc编译器的使用方法、编译轨迹与代码生成选项,并结合实际示例说明其应用。文章旨在帮助开发者理解不同技术的选择依据,合理利用CUDA工具链,提升GPU计算性能,适用于从入门到进阶的CUDA开发人员参考。

nnn11的博客 98

SLAM学习笔记(十六)快速了解EPnP算法原理

前几天有实习的学弟询问我关于2D-3D匹配点的EPnP的算法原理。一下子问到还真没想起来。看了看资料,回忆起来了,特在这里简单的总结一下。 学弟没看明白的原因,其实就是一些相关的讲解文章一上来就摆出让人生畏的一堆公式。其实个人觉得在目前Epnp算法已经被集成到OpenCV中库函数里面,我们就没必要再去手动实现轮子,因此求解的细节不需要死记,我们只要知道每一步是在干什么就可以了。除非你要研究和改进算法本身,那就直接去阅读原论文是最好的。 如果只是想知道EPNP是怎么个思路和流程,但是高翔的书里没讲,自己网

微鉴道长的博客 1万+

zynq的irq_f2p 如何增加或修改中断引脚个数(宽度)

ZYNQ开发过程中,如果使用PL到PS的中断,会产生一个疑问,设置界面显示可以有[91:84]、[68:61]共16个中断引脚,但是并没有设置中断口的宽度,如果使用多个中断引脚,应该怎么办?如果通过concat连接多个引脚,则自动调整为对应的引脚数。例如连接3个中断信号,则自动调整为:IRQ_F2P[2:0]

FPGA艺术家的博客 836

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

ICP算法学习分享2:SVD奇异值分解原理推导

其中 U 是一个 m×m 的矩阵, Σ 是一个 m×n 的矩阵,除了主对角线上的元素以外全为0,主对角线上的每个元素都称为奇异值, V 是一个 n×n 的矩阵。对于奇异值,它跟我们特征分解中的特征值类似,在奇异值矩阵中也是按照从大到小排列,而且奇异值的减少特别的快,在很多情况下,前10%甚至1%的奇异值的和就占了全部的奇异值之和的99%以上的比例。其中 A 是一个 n×n 矩阵, x 是一个 n 维向量,则 λ 是矩阵 A 的一个特征值,而 x 是矩阵 A 的特征值 λ 所对应的特征向量。

codeiceve的博客 242

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

上一篇: Cartographer源码阅读2:0基础小白也能上手 跑自己的机器人
下一篇: ICP算法学习分享2:SVD奇异值分解原理推导
十点后下班
博客等级 码龄4年 27粉丝 5原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值