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

ICP的不同解法:SVD分解,高斯牛顿法。代码实现 ICP (Iterative Closest Point,最近迭代)是点云配准中的一个很重要的算法。假设有两个点云P和Q,想要找到一个变换T,使得P=TQ,那么就需要使用到这个算法。 1.最近邻查找 这一步是为Q中的点Qi找到Q中相对应的点。 这个要分情况讨论:比如在RGBD-slam中,特征点的匹配已经为我们找到了P、Q中点的对应关系,那么这一步其实是已经完成了。但是对于两坨点云,没有点和点的对应关系,我们只好先做这样一个假设:离Qi最近的P中的点Pi就是它对应的点,显然这个是不准确的,但是我们可以通过 阅读详情

文章参考:奇异值分解(SVD) - 知乎

一、特征值和特征向量

1.首先前瞻知识要求掌握线性代数中的特征值和特征向量求解:

首先回顾下特征值和特征向量的定义如下:

Ax=λx

其中 A 是一个 n×n 矩阵, x 是一个 n 维向量,则 λ 是矩阵 A 的一个特征值,而 x 是矩阵 A 的特征值 λ 所对应的特征向量。注意到要进行特征分解,矩阵A必须为方阵。

那么如果A不是方阵,即行和列不相同时,我们还可以对矩阵进行分解吗?答案是可以,此时SVD登场了。

二、求解SVD

SVD也是对矩阵进行分解,但是和特征分解不同,SVD并不要求要分解的矩阵为方阵。假设我们的矩阵A是一个m×n的矩阵,那么我们定义矩阵A的SVD为:

其中 U 是一个 m×m 的矩阵, Σ 是一个 m×n 的矩阵,除了主对角线上的元素以外全为0,主对角线上的每个元素都称为奇异值, V 是一个 n×n 的矩阵。 U 和 V 都是酉矩阵,即满足

U\tauU=I,V\tauV=I 。下图可以很形象的看出上面SVD的定义:

接着我们来求解U,∑,V。

将A的转置和A做矩阵乘法,那么会得到n×n的一个方阵 ATA 。既然 ATA 是方阵,那么我们就可以进行特征分解,得到的特征值和特征向量满足下式:

这样我们就可以得到矩阵 ATA 的n个特征值和对应的n个特征向量v了。将 ATA 的所有特征向量张成一个n×n的矩阵V,就是我们SVD公式里面的V矩阵了。一般我们将V中的每个特征向量叫做A的右奇异向量。

A和A的转置做矩阵乘法,那么会得到m×m的一个方阵 AAT 。既然 AAT 是方阵,那么我们就可以进行特征分解,得到的特征值和特征向量满足下式:

这样我们就可以得到矩阵 AAT 的m个特征值和对应的m个特征向量u了。将 AAT 的所有特征向量张成一个m×m的矩阵U,就是我们SVD公式里面的U矩阵了。一般我们将U中的每个特征向量叫做A的左奇异向量。

接着求奇异值矩阵Σ。Σ除了对角线上是奇异值其他位置都是0,那我们只需要求出每个奇异值σ就可以了。

这样我们可以求出我们的每个奇异值,进而求出奇异值矩阵Σ。

三、SVD的一些性质 

对于奇异值,它跟我们特征分解中的特征值类似,在奇异值矩阵中也是按照从大到小排列,而且奇异值的减少特别的快,在很多情况下,前10%甚至1%的奇异值的和就占了全部的奇异值之和的99%以上的比例。

也就是说,我们也可以用最大的k个的奇异值和对应的左右奇异向量来近似描述矩阵。

也就是说:

其中k要比n小很多,也就是一个大的矩阵A可以用三个小的矩阵 Um×k,∑k×k,Vk×nT 来表示。如下图所示,现在我们的矩阵A只需要灰色的部分的三个小矩阵就可以近似描述了。

由于这个重要的性质,SVD可以用于PCA降维,来做数据压缩和去噪。也可以用于推荐算法,将用户和喜好对应的矩阵做特征分解,进而得到隐含的用户需求来做推荐。同时也可以用于NLP中的算法,比如潜在语义索引(LSI)。

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

相关推荐

激光雷达点云配准算法

主要介绍了激光雷达点云配准,重点推导ICP算法,并结合C++pcl库给出了ICP算法的一般代码实现。

qq_53576285的博客 2485

ICP 问题之 SVD

欢迎访问我的博客首页。 ICP 之 SVD1. SVD法1.1 构造最小二乘问题1.2 求解最小二乘问题1.1 求旋转矩阵1.2 求平移向量1.3 例子2. 使用程序计算2.1 源码2.2 配置文件   ICP 即 Iterative Closest Point,迭代最近点。已知三维点在两个坐标系中的坐标,求这两个坐标系的变换关系,称为 ICP 问题。 1. SVD法 1.1 构造最小二乘问题   假设从空间坐标系 O1O_1O1​ 到空间坐标系 O2O_2O2​ 的变换是 (R,t⃗ )(R, \.

sinoai 3486

深入PCL源码:从环境搭建到核心算法调试实战指南

点云处理是三维视觉、机器人感知和自动驾驶等领域的基础技术,其核心在于对三维空间数据的获取、处理与分析。点云库(PCL)作为开源领域的标杆,封装了大量经典算法,但深入理解其内部原理是解决复杂工程问题的关键。通过搭建可调试的源码环境,开发者可以直观地观察算法执行流程,例如在统计离群点移除(StatisticalOutlierRemoval)中,理解基于K近邻距离的阈值计算机制;在体素网格滤波(VoxelGrid)中,掌握其利用哈希映射实现高效降采样的工程技巧。这种从概念到实现细节的剖析,不仅能帮助精准调参、定位

weixin_30940783的博客 422

ICP算法概述以及使用SVD进行算法推导

CP算法概述以及使用SVD进行算法推导

qq_20184333的博客 2727

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

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

qq_44949041的博客 4599

3线SWD接线终极指南:用Jlink调试非3.3V设备的5个关键细节

本文详细解析了使用Jlink调试非3.3V设备时,3线SWD接线的5个关键细节。核心在于正确理解并连接Vref引脚以实现电压适配,避免供电冲突,并掌握精简接线法与固件修复技巧。文章以STM32F205等芯片为例,指导开发者安全、高效地进行混合电压调试。

e4f5g6h7的博客 437

【PCL】ICP 旋转、平移实现深究,奇异值分解 SVD 推导(精析)

目录&索引前言参考书目SVD 详细推导(V 的构造、Ε 奇异值、U 的构造及其证明)ICP 历史文献(SVD 方法)ICP (SVD 为代表的代数方法推导,及手写实现)小结 前言 参考书目为博主个人推荐。个人整理,供参考。 参考书目 SVD 详细推导(V 的构造、Ε 奇异值、U 的构造及其证明) 李航 《统计学习方法》 第二版,第 15 章 奇异值分解 知识点归纳,基础理论、几何解释、应用介绍三大部分。需要提前掌握的线代及泛函分析知识点,整理如下: 特征值,特征向量,基础解系,向量标准化,单位

idiot5lie的博客 1474

S4 Hana SD -信贷管理 - 02

在S4版本中,客户的信用管理数据在事务代码BP维护,业务伙伴角色是UKM000。在维护过程中,我们并不能直接输入信贷控制范围这个组织架构,而是需要输入一个信用段,并且在信用段的维度下去维护相应信用管理数据。对于信用段,可以分为主信用段(信用段是0000)和其他临时信用段,我们可以通过配置把次级信用段的客户信贷负债汇总到主信用段。当然,在后台也有配置,会把信用段和信贷控制范围这两者进行关联.3.2SPROIMG > 财务供应链管理 > 信用管理 > 信贷风险监视 > 主数据 > 创建信用段。

weixin_46525734的博客 1967

ICP算法详细推导过程--SVD方法(包含SVD的分解过程)

现有两组点云P,Q: 求两组点云的质心: 以质心为坐标原点的点云的坐标为: 求解R,t使得误差函数E(R,t)最小: 又: 所以: E(R,t)要为最小,则 ,即 则最优旋转矩阵为: 所以要使R取得最优,则: ...

weixin_43628032的博客 3794

避坑指南:ZYNQ平台上AXI 1G/2.5G Ethernet Subsystem实现IEEE1588的5个关键点

本文详细解析了在ZYNQ平台上使用AXI 1G/2.5G以太网子系统实现IEEE1588精密时间协议(PTP)的5个关键避坑点。从硬件选型、Vivado工程配置到Linux驱动适配,提供了实战经验与优化技巧,帮助工程师在工业自动化、电力系统等场景中实现纳秒级时间同步。

weixin_30687051的博客 234

行政数据分析大屏实战:用Tableau从Excel到看板的完整搭建流程(含数据连接与字段计算避坑)

本文详细介绍了如何利用Tableau从Excel数据源搭建行政数据分析大屏的完整流程,涵盖数据准备、连接技巧、计算字段优化、看板设计及动态交互部署。通过五阶工作流,帮助用户高效处理多源异构数据,实现业务洞察与可视化呈现,提升行政数据分析效率。

weixin_29696711的博客 339

独家揭秘:自动驾驶中点云配准的核心优化策略(仅限内部分享)

揭秘自动驾驶中点云的配准算法优化策略,提升定位精度与实时性。涵盖多传感器融合、ICP改进算法及抗噪处理方法,有效解决复杂场景下的点云匹配难题。核心技术创新实用,值得收藏。

AlgoFun的博客 986

Cadence Virtuoso ADE L保姆级教程:从DC到Noise,一次搞定6种仿真设置

本文提供Cadence Virtuoso ADE L的全面仿真教程,涵盖DC工作点分析、瞬态响应、AC特性、零极点分布和噪声性能等6种仿真设置。通过详细的步骤和实用技巧,帮助工程师高效完成从基础配置到高级后处理的完整工作流,显著提升IC设计效率。

weixin_26841743的博客 600

计算机图形学几何处理与建模科研入门:从理论到顶会论文的全路径指南

几何处理与建模是计算机图形学的核心基础领域,它运用线性代数、微分几何和最优化等数学工具,对三维模型的表示、分析和生成进行算法设计。其技术价值在于为数字孪生、自动驾驶、元宇宙等前沿应用提供底层几何数据支撑。在工程实践中,研究者常需掌握C++/Python编程,并熟练使用libigl、MeshLab等工具库进行算法实现与可视化。本文围绕“几何特征估计”和“复杂物流网络建模与仿真软件ExtendSim”等热点方向,系统拆解了从数学基础、文献复现到实验设计与论文写作的完整科研进阶框架,为初学者绘制了一张从入门到发表

weixin_30443747的博客 374

体素坐标(voxel_coors)在mmdetection3d中的理解

体素坐标(voxel_coors)在mmdetection3d中的理解

weixin_38362784的博客 4218

【100%通过率】2024华为OD机试真题E卷 C++语言 实现【流浪地球】

流浪地球计划在赤道上均匀部署了N个转向发动机,按位置顺序编号为0~N-1。 1) 初始状态下所有的发动机都是未启动状态; 2) 发动机起动的方式分为“手动启动”和“关联启动”两种方式; 3) 如果在时刻1一个发动机被启动,下一个时刻2与之相邻的两个发动机就会被“关联启动”; 4) 如果准备启动某个发动机时,它已经被启动了,则什么都不用做; 5) 发动机0与发动机N-1是相邻; 地球联合政府准备挑选某些发动机在某些时刻进行“手动启动”,当然最终所有的发动机都会被启动。 哪些发动机最晚被启动呢?

MISAYAONE的博客 4212

svd求解点云旋转矩阵方法_【苦逼科研】用SVD求解ICP问题的完整证明

在SLAM和无人驾驶研究过程中,我们经常会求解ICP问题(3D点云之间的匹配问题或者说传感器外参的标定问题),简单地说,就是我们有两组已知的点 和 ,我们需要找到一组参数 来代表(衡量)这两组点之间“最有可能的旋转平移变换关系”,一般来说这组参数 需要使变换前后的误差平方和达到最小,写成标准的数学问题就是: 一种常用的求解ICP问题的方法是SVD(矩阵奇异值分解),SLAM神书《视觉SLA...

weixin_39728909的博客 441

1.嵌入式控制器EC学习,编译环境搭建

工欲善其事,必先利其器。 在学习EC相关知识之前,首先需要完成EC代码编译环境的搭建,需要如下内容: Keil C51(用于EC中C代码的编译器环境) EC源代码,我们使用从网上可以下载到的 ITE_V12.4_Update 版的代码为例进行学习 代码编辑器,这个可以根据自己的习惯选择,VS Code或者Source Insight等 Keil C51下载地址: http://www.downcc.com/soft/307131.html 下载完成后请进行破解 EC源代码 ...

qq_30135687的博客 3917

3.迭代最近点算法`ICP`及`SVD`求解

在使用相机时,我们可以通过图像的特征匹配,找到两组三维点之间每个点的匹配关系。而在使用激光雷达时,由于点云是稀疏的,但是采集频率很高,通常认为两帧之间离的最近的点就是匹配点,因此称此算法为迭代最近点算法。图像找到两个位置图像中匹配点,再计算匹配点的三维坐标,然后利用。所需的量,所以得到的方程组都是超定的,只能求解其最小二乘解。中的点是传感器坐标系中的表示,这两组点对应的是世界坐标系。是待求量,一般情况下可以得到的匹配点对都会远远多于求解。关键的两个函数,一个是特征点匹配,是三维空间中的点差,因此是。

机器人视觉感知 616

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

利用SVD的方法求解ICP(详细推导)

引用资料(理论部分其实就是把第一个的不详细和错误的地方说了一下,翻译了一下第二个文献以及不明了的地方说一下O(∩_∩)O哈哈~):高翔《视觉SLAM十四讲》问题描述  假设存在两个点云集合{pi}\{p_i\}和{p′}\{p'\}   求:一个欧氏变换R,tR,t使得     ∀i,pi=Rp′i+t\forall {i,p_i}=Rp'_i+t求解问题解: 假设误差项为   ei=pi−

zhouyelihua 1万+

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

3D-3D:ICP中SVD用法详解

最大化traceRHtraceRH:目标是找到一个旋转矩阵 ( R ),使得目标函数最大化。SVD 的应用:通过对HHH进行 SVD 分解,获得两个正交矩阵UUU和VVV,从而构建出最优的旋转矩阵RVUTR = VU^TRVUT。几何意义:SVD 解构了点集的协方差关系,通过旋转矩阵最大化了这些点集之间的对齐程度。

qq_50719698的博客 982

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

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

视觉SLAM的ICP问题——SVD及G2O求解

- 迭代最近点法(ICP)可以用来求解两组三维图像(或三维点云)间的位姿变换关系。可以通过奇异值分解或非线性优化方式求解。 关于ICP求解的推导公式均在课本第七讲。 - 下面分别介绍SVD求解方法、自定义顶点的G2O求解方法、采用内置顶点的G2O求解方法。

weixin_52519143的博客 1168

随手笔记——3D−3D:ICP求解(分别使用SVD分解与g2o进行求解)

原理参见。

曾经也曾立志 824

【手写ICP】ICP -SVD 手动实现与例程(上)

文章目录1. 写在前面1. 配和代码的 SVD-ICP 流程梳理1.1 SVD-ICP 算法 5 步走1.2 预处理1.3 点云变换1.4 通过 KD-tree 找最近匹配点1.5 SVD 求解2. 几个简单的例子2.1 基于PCL中的ICP进行点云匹配2.2 基于PCL中的NDT进行点云匹配2.3 基于手动ICP进行点云匹配2.4 完整例程与结果对比 1. 写在前面 点云配准就是给定两帧点云,一帧固定为目标点云,一帧需要匹配的源点云,下文简称 S (Source) 和 T (Target) 点云。求最

勤能补拙的编程备忘录 2525

视觉SLAM实践入门——(16)使用SVD求解ICP

啊

floatinglong的博客 701

SVD求解点对点ICP流程及代码

使用python实现了SVD求点对点ICP的算法过程,并用ModelNet40的点云进行测试!最后有SVD求解ICP的数学推导过程。

weixin_43701053的博客 480
上一篇: ICP算法学习1:原理推导
下一篇: ICP算法学习分享3:简单代码实战及算法理解
十点后下班
博客等级 码龄4年 27粉丝 5原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值