从零开始学习SLAM(五):极几何与极约束

news2024/11/24 20:35:27

文章参考计算机视觉life

前备知识

概念

在这里插入图片描述

几何关系:

上图中:
极平面(Epipolar plane):点c0, c1, p三点确定的平面;
极点(Epipoles): c0 c1 连线与两个平面的交点
基线(Baseline):c0 c1的连线
极线(Epipolar line):极平面与两像平面的交线
旋转矩阵:R
平移矩阵:t
旋转平移矩阵:T
内参:焦距,归一化坐标
外参:旋转、平移矩阵

向量叉乘和点乘的概念:

叉乘只在三维空间中有定义,比如两个向量 a和b 的叉乘写作 a x b,它是与向量 a, b都垂直的向量,其方向通过右手定则决定。
在这里插入图片描述
点乘:
a * b = ||a||* ||b|| *cos(θ)
因此如果两个互相垂直的向量点乘,cos(θ) = 0,点乘结果也为0。
在这里插入图片描述

极约束推理

上图表示的是一个运动的相机在两个不同位置的成像,其中:

左右两个平行四边形分别是相机在不同位置的成像平面C0, C1分别是两个位置中相机的光心,也就是针孔相机模型中的针孔P是空间中的一个三维点,p0, p1分别是P点在不同成像平面上对应的像素点。

如果将点P沿着C0-P0所在的直线移动,你会发现P在左边相机的成像一直不变,都是P0,这时候P在右边相机的成像点p1是一直在变化的

现在我们把极平面中C0-C1-P0-P1单拎出来,看下面的图,由于C0-C1-P-P0-P1都是共面的,所以得到结论一:
结论1
也就是说 一个同时垂直于C0C1与C1P1的向量也垂直于C0P0
p0, p1都是图像上的二维点,不过,这里我们会把它变成三维的方向向量来考虑我们假设一个归一化的图像平面,该平面上焦距f =1 ,因此我们可以定义在以C0为原点的坐标系下
在这里插入图片描述
而在以C1为原点的坐标系下
在这里插入图片描述
事实上,你在C0-C1-p0-p1组成的极平面上,保证在这里插入图片描述的方向不变,在极平面上随便移动,结论1中等式都成立。同样的道理,在极平面上,保证
在这里插入图片描述

方向不变,在极平面上随便移动,结论1中等式仍然都成立。

p0在以C0为原点的参考坐标系,p1在以C1为原点的参考坐标系,所以我们还是需要转换坐标系。这里我们把所有点的坐标都转换到以C0为原点的坐标系。前面说过这些向量都是方向向量和向量起始位置无关,所以这里坐标系变换只考虑旋转就可以。我们记 R 为从C1坐标系到C0坐标系的旋转矩阵

小白:那么 RP1 就是P1在以C0为原点的C0坐标系了,所以在C0坐标系下结论一可以改写为:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

已知:p0TEP1 = 0
根据上一节知识点:
从世界坐标系到相机坐标系的公式为:
在这里插入图片描述

那么z=1时从相机坐标系到图像坐标系的公式就为, p0 = k-1p0’, p1 = k-1p1

p0TEP1 = 0 ----> p0T k-TEk-1p1’ = p0T(k-TEk-1)p1’ = p0TFp1

这里的F即为基本矩阵 ,E即为本质矩阵,所以本质矩阵和基本矩阵的区别在于,本质矩阵是使用归一化相机坐标系下的点表示极线约束,基本矩阵是使用图像坐标系下的点表示极线约束的。

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

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

相关文章

SAP Parallel Accounting(平行分类账业务)配置及操作手册【适用于多国家会计准则】

1. 配置准备 1.1 理解平行账概念 平行账,也称为多分类账,是SAP系统中的一项功能,它允许企业按照不同的会计准则来维护各自的财务数据。这种设置特别适用于那些需要符合多种会计准则的跨国公司。通过平行账,企业可以在不同的分类…

单片机存储芯片 W25QXX、AT24C02

一、FLASH W25QXX (1) W25QXX芯片简介 W25Q128是华邦公司推出的一款SPI接口的NOR Flash芯片,其存储空间为128Mbit,相当于16M字节。W25Q128V芯片是串行闪存,可以通过标准/两线/四线SPI控制。W25Q128一次最多可编程256个字节。页面可以按扇区擦…

特斯拉算法,暴力递归尝试,汉诺塔问题

改进之后的算法 暴力递归就是尝试 汉诺塔问题 主函数 打印一个字符串的全部子序列,包括空字符串

【数据结构题集(c语言版)】内部排序算法比较 题解(起泡排序+直接插入排序+简单选择排序+快速排序+希尔排序+堆排序)

内部排序算法比较 问题描述 在教科书中,各种内部排序算法的时间复杂度分析结果只给出了算法执行时间的阶或大概执行时间。试通过随机数据比较各算法的关键字比较次数和关键字移动次数,以取得直观感受。 基本要求 对以下6种常用的内部排序算法进行比较:起泡排序、直接插入排…

SpringBoot依赖之Spring Data Redis 实现地理坐标(Geospatial)

Spring Boot 项目中使用 Spring Data Redis 实现地理坐标(Geospatial) 概念 Spring Data Redis (AccessDriver) 依赖名称: Spring Data Redis (AccessDriver)功能描述: Advanced and thread-safe Java Redis client for synchronous, asynchronous, and reactive usage. Sup…

JVM 有哪些垃圾回收器?

JVM 有哪些垃圾回收器? 图中展示了7种作用于不同分代的收集器,如果两个收集器之间存在连线,则说明它们可以搭配使用。虚拟机所处的区域则表示它是属于新生代还是老年代收集器。 新生代收集器(全部的都是复制算法)&…

使用 Charles 模拟手机弱网测试

在移动互联网时代,网络状况的不确定性给应用程序带来了挑战。尤其是在偏远地区或信号不佳的地方,用户的网络连接可能会变得不稳定。因此,对应用程序进行弱网测试变得尤为重要。Charles Proxy 是一款广泛使用的网络调试工具,它不仅…

分享小诗梦404炫酷单页面html5源码

源码介绍 分享小诗梦404炫酷单页面html5源码,小诗梦的一个很炫酷页面,感觉应该符合一些人的感觉!可以用来做404页面。 源码下载 分享小诗梦404炫酷单页面html5源码

C++ | Leetcode C++题解之第363题矩形区域不超过K的最大数值和

题目&#xff1a; 题解&#xff1a; class Solution { public:int maxSumSubmatrix(vector<vector<int>> &matrix, int k) {int ans INT_MIN;int m matrix.size(), n matrix[0].size();for (int i 0; i < m; i) { // 枚举上边界vector<int> sum(…

SAP凭证分割【Document Splitting】

在SAP系统中&#xff0c;凭证分割&#xff08;Document Splitting&#xff09;是一种用于在财务会计模块中特别是总帐会计中进行更细粒度的财务报表分析的技术。通过凭证分割&#xff0c;可以按照不同的标准&#xff08;如成本中心、利润中心、公司代码等&#xff09;对会计凭证…

C语言 | Leetcode C语言题解之第363题矩形区域不超过K的最大数值和

题目&#xff1a; 题解&#xff1a; int maxSumSubmatrix(int** matrix, int matrixSize, int* matrixColSize, int k){int preSum[matrixSize][*matrixColSize];for(int i0; i<matrixSize; i){preSum[i][0] matrix[i][0];}for(int i0; i<matrixSize; i){for(int j1; j…

Funsound语音识别技术之 语音识别多路并发转写

免费语音识别转写&#xff08;优于讯飞&#xff09;&#xff1a;www.funsound.cn Funsound语音识别工具包&#xff1a;https://github.com/pika-online/Funsound/tree/main 1. 前言 本文主要介绍一种简单的多路语音识别转写部署方案&#xff0c;基于多线程开发实现后台同时转…

總結熱力學_2

個人近況 在考慮廷畢的選課情況&#xff0c;以及更改教資的科目三&#xff1a;比如由物理改為音樂 在看<<怪談直播間>>&#xff0c;顧毅的第五關太長了... <<詭舍>>不知道&#xff0c;三下鄉完了就没看了 參考: 陈曦<<热力学讲义>>ht…

甄选范文“论软件体系结构的演化”软考高级论文,系统架构设计师论文

论文真题 软件体系结构的演化是在构件开发过程中或软件开发完毕投入运行后,由于用户需求发生变化,就必须相应地修改原有软件体系结构,以满足新的变化了的软件需求的过程。体系结构的演化是一个复杂的、难以管理的问题。 请围绕“论软件体系结构的演化”论题,依次从以下三…

Array List集合的基本使用

数组&#xff1a;长度固定 集合&#xff1a;自动扩容 数组&#xff1a;可以存基本数据类型&#xff0c;可以存引用数据类型 集合&#xff1a;可以存引用数据类型&#xff0c;不可以存基本数据类型&#xff08;要换成对应的包装类&#xff09; package ArrayListDemo;import j…

Java | Leetcode Java题解之第363题矩形区域不超过K的最大数值和

题目&#xff1a; 题解&#xff1a; class Solution {public int maxSumSubmatrix(int[][] matrix, int k) {int ans Integer.MIN_VALUE;int m matrix.length, n matrix[0].length;for (int i 0; i < m; i) { // 枚举上边界int[] sum new int[n];for (int j i; j <…

最新动态鲨鱼导航网引导页html源码

源码介绍 最新动态鲨鱼导航网引导页html源码 源码由HTMLCSSJS组成&#xff0c;记事本打开源码文件可以进行内容文字之类的修改&#xff0c;双击html文件可以本地运行效果&#xff0c;也可以上传到服务器里面&#xff0c;重定向这个界面 https://download.csdn.net/download/h…

算法小白刷力扣 3 - 回文数

题目描述 原题链接&#xff1a;https://leetcode.cn/problems/palindrome-number/description/ 给你一个整数 x &#xff0c;如果 x 是一个回文整数&#xff0c;返回 true &#xff1b;否则&#xff0c;返回 false 。 回文数是指正序&#xff08;从左向右&#xff09;和倒序&a…

【功能自动化】使用Excel文档获取参数数据

环境搭建&#xff1a; 1.需要配置WebTours网站 2.安装pandas pip install -i https://pypi.tuna.tsinghua.edu.cn/simple numpy pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pandas pip install -i https://pypi.tuna.tsinghua.edu.cn/simple python_dateutil…

EasyExcel 导入计算公式导出展示字符串问题(SUM)

导出自定义表单 结果遇到 SUM函数 时 没有算出结果&#xff0c;直接展示的函数字符串 处理思路 拦截公式字符串 &#xff1a; 将对应的cell 设置 setCellFormula 字符串公式 然后cell类型设置为 CellType.FORMULA 重新配置 这样就解决了问题。 注意先设置CellFormula 然…