SLAM PnP问题以及相关基础知识

目标泛函

目标泛函是在优化问题中使用的一种数学工具,目标泛函是一个函数,它将一个或多个函数映射到一个实数。它常用于描述需要最小化或最大化的函数。在优化问题中,我们通常希望找到使得某个特定函数取得最大值或最小值的变量值。目标泛函可以帮助我们形式化地表达这些优化目标,并通过数学方法来寻找最优解。

例如,在最小二乘法中,目标泛函是一个关于模型参数的函数,我们希望通过调整参数来最小化目标泛函。在变分问题中,目标泛函是一个关于函数的函数,我们希望找到一个函数,使得目标泛函取得最小值。

图像的向下采样

 图像的向下采样是指将图像在水平和垂直方向上按照一定的比例进行缩小。这可以通过减少图像中的像素来实现。

特征点提取与检测步骤

SLAM(Simultaneous Localization and Mapping)的特征点提取与检测步骤通常包括以下几个关键步骤:

  1. 图像获取:首先,需要从传感器(如摄像头、激光雷达)中获取图像数据。这些图像将用于后续的特征点提取和SLAM过程。
  2. 预处理:对图像进行必要的预处理,如去畸变、降噪等,以便更好地提取特征点。
  3. 特征点提取:利用特定的算法(如Harris角点检测、SIFT、SURF、ORB等)从图像中提取出具有显著特征的点。这些特征点通常具有旋转不变性和尺度不变性。
  4. 特征点描述:对提取出的特征点进行描述,通常使用特征描述子(如SIFT描述子、SURF描述子、ORB描述子等)来描述特征点的局部外观特征。
  5. 特征点匹配:在不同帧之间或者在同一帧的不同时间点之间,进行特征点匹配,以确定它们的对应关系。常用的匹配算法有基于光流的方法、基于特征描述子的方法等

SLAM中的求解PnP问题的特殊情况(P3P)

PnP问题:求解3D点到2D点对运动的情况,他描述了知道n个3D空间点及其投影位置如何估计相机的位姿。

P3P(高翔SLAM183页)最终目的:估计出相机的运动姿态(R,t)

大致流程图如下:

57cff3ab3bb14dcf86ce382da3d6fa40.png

 

 

问题:SLAM中李群与李代数的具体用途?

答:将相机的位姿表示成变换矩阵T,那么在假设的世界坐标系中的一个空间点P,通过相机产生对应于该空间点的一个观测数据Z,Z=T*P+noise,e = Z-T*P,其中e是T的函数,即e=f(T),通过建立整体误差最小化 

ca6425f529ef484fb07398a753d1cbf0.png

求解此问题,就是求目标函数J对于变换矩阵T的导数。但是旋转矩阵加法不封闭使得变换矩阵T对于加法不封闭,所以需要将变换矩阵T在SE(3)空间中的映射转换成李代数se(3),转换后的李代数是一个向量对加法封闭,最终通过对李代数求导间接得到对于变换矩阵T的求导结果。

问题:李群如何理解?


答:群就是一种几何加上一种算法的代数结构。群的性质包括:封闭性、结合律、幺元、逆。
群的举例:旋转矩阵与乘法就构成了一种旋转矩阵群(满足封闭性)。但是旋转矩阵和加法就不能构成群。
因为旋转矩阵满足约束:

5c8d295184fe4a6f9b7a0a469b8e2535.png

但是如果两个旋转矩阵R1+R2的结果就不能满足上述约束,但是R1*R2满足,因此(R1*R2,*)满足群。幺元是单位矩阵I,也有逆矩阵满足R乘以R的逆等于幺元(单位阵)。
特殊正交群SO(3)是旋转矩阵群,特殊欧式群SE(3)是变换矩阵群。
李群的定义是连续光滑的群,如SO(3),其可以绕着空间某个点连续旋转,所以SO(3)是李群。
同样,对于某个点,可以一边连续旋转一边移动,同样也是连续光滑的运动,因此变换矩阵SE(3)也是李群

 问题:李代数和李群的关系?

答:相机在三维空间中做连续旋转变换,SLAM使我们优化求解相机的最佳位姿(变换矩阵T),优化的方法一般采用迭代优化的方法,每次迭代更新一个位姿的增量,使得目标函数最小化,这个增量就是通过对e=J(T)的误差函数对T(变换矩阵)求微分得到的。
最重要的一点:李代数对应于李群的正切空间,描述了李群局部的导数。(因此可以用李代数代表李群的局部导数)

 

e5e6d99fb341413bb551bc3012a8c737.png

 将φ在原点t=0附近一阶泰勒展开,我们看到这个向量φ=(φ1,φ2,φ3)反应了R的导数性质,故称它在SO(3)上的原点 φ0 附近的正切空间上。李代数so(3)是三维向量φ的集合,每个向量φi的反对称矩阵都可以表达李群(大SO(3))上旋转矩阵R的导数,R和φ是一个指数映射关系。
因此可以有这层关系:在李群空间的任意一个旋转矩阵R都可以利用李代数空间的一个向量φ的反对称矩阵的指数来近似。

小so(3)的李代数空间就是由旋转向量组成的的空间,其物体意义就是旋转向量。而前面结论二中的指数映射关系就是罗德里格斯公式,他们在数学上本质是一样的。

罗德里格斯公式是表示从旋转向量到旋转矩阵的转换过程的。bc8406ecda0144dfa7c8387e5ef85a50.png

我们可以说旋转矩阵的导数可以由其对应的旋转向量指定,指导如何在旋转矩阵中进行微积分运算。

 

 

https://zhuanlan.zhihu.com/p/47330137 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/584541.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java—Throwing Exceptions

一、指定方法引发的异常 上一节展示了如何为ListOfNumbers类中的writeList()方法编写异常处理程序。有时,代码捕获可能在其中发生的异常是适当的。然而,在其他情况下,最好让调用堆栈更上层的方法处理该异常。例如&…

51系列--数码管显示的4X4矩阵键盘设计

本文介绍基于51单片机的4X4矩阵键盘数码管显示设计(完整Proteus仿真源文件及C代码见文末链接) 一、系统及功能介绍 本设计主控芯片选用51单片机,主要实现矩阵键盘对应按键键值在数码管上显示出来,矩阵键盘是4X4共计16位按键&…

系列十二、Linux中安装Zookeeper

一、Linux中安装Zookeeper 1.1、下载安装包 官网:Index of /dist/zookeeper/zookeeper-3.4.11 我分享的链接: 链接:https://pan.baidu.com/s/14Hugqxcgp89f2hqGWDwoBw?pwdyyds 提取码:yyds 1.2、上传至/opt目录 1.3、解…

ffmpeg 解码文件时的时间戳问题

实时流和普通文件 1 实时流 实时流编码时,我们一般不进行b帧编码,但是文件存储时为了减小大小,会增加b帧,实时流只带了I,P帧,那就会好很多 2 普通文件 很多文件带了b帧,所以要使用解码时间去同…

SpringMVC之视图和RESTful

学习的最大理由是想摆脱平庸,早一天就多一份人生的精彩;迟一天就多一天平庸的困扰。各位小伙伴,如果您: 想系统/深入学习某技术知识点… 一个人摸索学习很难坚持,想组团高效学习… 想写博客但无从下手,急需…

Linux 线程安全 (2)

文章目录 线程同步概念条件变量使用生产消费模型信号量的使用读写锁的使用 Linux 线程安全 (1) 线程同步概念 竞态条件:因为时序问题,而导致程序异常. 饥饿问题:只使用互相锁保证线程安全时,锁资源总被某…

每天坐在电脑前10小时的投资者的现货黄金投资秘密

很多人在现货黄金市场中苦作舟,希望通过交易、实践来找出市场中的奥秘。笔者最近看了一个每天坐在电脑面前十个小时以上做分析和投资的投资者的经验介绍,他道出了一些投资的秘密,笔者认为,这是适合现货黄金投资者借鉴和学习的&…

java SSM课程平台系统myeclipse开发mysql数据库springMVC模式java编程计算机网页设计

一、源码特点 java SSM课程平台系统是一套完善的web设计系统(系统采用SSM框架进行设计开发,springspringMVCmybatis),对理解JSP java编程开发语言有帮助,系统具有完整的源代码和数据库,系统主要采用B/S…

【方法】Word文档如何设置密码?

Word文档可以设置密码保护,如果想要保护文档不被随意打开,可以设置“打开密码”;如果想保护文档不被随意编辑,可以设置“限制密码”;如果当心自己不小心修改了文档,可以设置“只读模式”密码,使…

一篇文章带你入门PHP魔术方法

PHP魔术方法 PHP 中的"魔术方法"是一组特殊的方法,它们在特定情况下自动被调用。这些方法的名称都是以两个下划线(__)开头。魔术方法提供了一种方式来执行各种高级编程技巧,使得对象的行为可以更加灵活和强大。以下是一…

DSG YashanDB数据交互解决方案:更稳、更快、更安全

近期,深圳计算科学研究院(简称“深算院”)携手迪思杰(北京)数据管理技术有限公司(简称“DSG”)重磅推出基于崖山数据库的数据交互解决方案,具备双向迁移同步、性能稳定、支持复杂对象…

余弦相似度算法

余弦相似度算法 是什么 余弦距离,也称为余弦相似度,是用向量空间中两个向量夹角的余弦值作为衡量两个个体间差异的大小的度量。 余弦值越接近1,就表明夹角越接近0度,也就是两个向量越相似,这就叫"余弦相似性&q…

AD20PCB笔记(写给第三次重学PCB的自己)

readme:我曾以为自己本科毕业以后,再也不会用到PCB了,因为本科毕设的时候自己设计的PCB开发板出现了严重的设计问题,在实际测试的过程中,电源一上电,板子芯片直接炸飞,当时真的让我很害怕&#…

c++学习笔记(10)-可变参数模板

1、概念 可变参数模板(Variable Template Parameters)是 C11 中引入的一种语法,它允许函数或类模板接受可变数量的参数。这样可以方便地定义操作适用于多个类型和/或值的函数或类模板。 使用可变参数模板时,可以在模板参数列表中…

机器学习距离度量方法

1. 机器学习中为什么要度量距离? 机器学习算法中,经常需要 判断两个样本之间是否相似 ,比如KNN,K-means,推荐算法中的协同过滤等等,常用的套路是 将相似的判断转换成距离的计算 ,距离近的样本相…

K-means 聚类算法分析

算法简述 K-means 算法原理 我们假定给定数据样本 X ,包含了 n 个对象 ,其中每一个对象都具有 m 个维度的属性。而 K-means 算法的目标就是将 n 个对象依据对象间的相似性聚集到指定的 k 个类簇中,每个对象属于且仅属于一个其到类簇中心距离…

Jetson Orin安装riva以及llamaspeak,使用 Riva ASR/TTS 与 Llama 进行实时交谈,大语言模型成功运行笔记

NVIDIA 的综合语音 AI 工具包 RIVA 可以处理这种情况。此外,RIVA 可以构建应用程序,在本地设备(如 NVIDIA Jetson)上处理所有这些内容。 RIVA 是一个综合性库,包括: 自动语音识别 (ASR&#x…

Java创建线程执行任务的方法(一)

目录 1.继承Thread类 2.实现Runnab类 2.1实现Runnable类 2.2使用Lambda表达式 3.实现Callable类 3.1返回Integer类型数据 3.2返回String类型数据 3.3返回Object类型数据 4.匿名内部类 创建线程的方法:继承Thread类;实现Runnab类;匿名…

如何文件从电脑传到iPhone,这里提供几个方法

本文介绍了如何使用Finder应用程序、iTunes for Windows、iCloud和谷歌照片将照片从Mac或PC传输到iPhone。 如何将照片从Mac传输到iPhone 如果你有一台Mac电脑,里面装满了你想转移到iPhone的照片,这是一件非常简单的事情。只需遵循以下步骤&#xff1a…

Python中matplotlib库的使用1

1 matplotlib库简介 matplotlib是一个数学绘图库,可以将数据通过图形的方式显示出来,也就是数据可视化。 2 matplotlib库的安装 2.1 打开cmd窗口 点击键盘的“Win”“R”键,在弹出的“运行”对话框的“打开”栏中输入“cmd”,…