极几何,本质矩阵,基础矩阵,单应矩阵

news/2024/5/18 15:21:55/文章来源:https://blog.csdn.net/Rolandxxx/article/details/126642732

什么是三角化?

三角化就是下图的红字部分:
在这里插入图片描述

什么是极几何?

极几何描述了同一场景或者物体在两个视点图像间的对应关系。
下图中的O1和O2分别是两个相机的光心,即摄像机坐标系的原点。由下图可知给定了一个三维空间下的P点,虽然不知道对应的成像平面上像素点p和p’在哪个位置,但是我知道它一定在l和l’这两条极线上。这样就不会全图去找了,只用在极线上去搜索了。再比如给定一个图像上的p点,找另一个图像上对应的p’点就可以通过极几何约束,将搜索范围缩小到对应的极线上
在这里插入图片描述
在这里插入图片描述

什么是本质矩阵

本质矩阵是表示对规范化摄像机拍摄的两个视点图像间的极几何关系进行代数描述。用规范化相机就可以用这条规律:图像点的齐次坐标等于相机坐标系下对应三维点的欧式坐标,这样的话就方便求解了
如下图所示图像I上的点p像素坐标是(u,v),那么p的齐次坐标就是(u,v,1),因为齐次坐标和像素坐标的转换关系就是齐次坐标系的第一维除以第三维得到像素坐标系的x坐标,用第二维除以第三维就得到像素坐标系的y坐标,用公式表示就是(u/1,v/1)。图中K为相机内参矩阵,R和T为相机O1坐标系到相机O2坐标系的变换。
在这里插入图片描述

下图左边红字的推导中Tx转置=-Tx,等式等于0,0这是一个数字,所以转置没有写。推导最后就是为了得到了下图红框中的表达式,下图红框中的E=[T×R]就是本质矩阵,描述了规范化摄像机坐标系下,两张图上对应的两个像素坐标之间的关系。
在这里插入图片描述

什么是规范化摄像机:如下图所示,就是相机内参矩阵M长下图这个样子的就叫规范化相机
在这里插入图片描述

利用下图红框中的等式可以得到以下推论(E是本质矩阵等于[T×R],p和p’是图像上的齐次坐标即3乘1的矩阵,E是3乘3的矩阵,l和l’都是指像素坐标下的,0是代表一个数而不是矩阵。
奇异是指不是满秩,秩为2的矩阵乘以可逆矩阵秩不改变,所以本质矩阵的秩为2。K是内参矩阵是3乘3的):

在这里插入图片描述

什么是基础矩阵

基础矩阵描述的是一般的透视摄像机拍摄的两个视点的图像间的极几何关系
求解一般的透视摄像机拍摄的两个视点的图像间的极几何关系的思路是把一般的透视相机先变换到规范化相机,然后再利用上述规范化相机的求解方法求解。如下图红框所示,F就是基础矩阵,F刻画了两幅图像的极几何关系,即相同场景在不同视图中的对应关系。基础矩阵F建立点和极线的对应关系,F矩阵包含了相机内参数信息和两个相机间的旋转平移信息。,K为两个相机的内参数矩阵。:
在这里插入图片描述

利用下图红框中的等式可以得到以下推论(p和p’是图像上的齐次坐标即3乘1的矩阵,F是3乘3的矩阵,l和l’都是指像素坐标下的,0是代表一个数而不是矩阵,奇异是指不是满秩,K是内参矩阵是3乘3的,T×的意思见上面叉乘的矩阵表示形式,[Tx]R就是本质矩阵。了解有几个自由度其实就是为了知道求解需要几个方程。):
至于为什么基础矩阵的自由度为7可以参照以下这个链接:
https://blog.csdn.net/CSSDCC/article/details/122131478?ops_request_misc=&request_id=&biz_id=102&utm_term=%E4%B8%BA%E4%BB%80%E4%B9%88%E5%9F%BA%E7%A1%80%E7%9F%A9%E9%98%B5%E6%98%AF7%E4%B8%AA%E8%87%AA%E7%94%B1%E5%BA%A6&utm_medium=distribute.pc_search_result.none-task-blog-2allsobaiduweb~default-0-122131478.142v44pc_rank_34_default_3&spm=1018.2226.3001.4187
在这里插入图片描述

基础矩阵F怎么来?

因为基础矩阵F刻画了两幅图像的极几何关系,即相同场景在不同视图中的对应关系。F矩阵包含了相机内参数信息和两个相机间的旋转平移信息。所以我们更多时候是利用对应关系去估计出F矩阵,然后从F矩阵中想办法弄出我们想要的内参数和相机之间的旋转平移,去做三角化三维重建。

八点算法:
在这里插入图片描述
构建W矩阵和对W矩阵进行奇异值分解得到f,然后f可以按照上图写回成F尖矩阵:
在这里插入图片描述

八点算法步骤:
在这里插入图片描述

u和v作为图像的像素坐标,数值变化范围太大,会造成以下的问题:
在这里插入图片描述

所以我们采用归一化八点法,让两张图单独处理,两张图上的所有点坐标的均值在(0,0)中心点,然后让所有像素点到中心的距离的平方全部累加起来除以点的个数等于2。
在这里插入图片描述

T和T’矩阵就是指上图的归一化:
在这里插入图片描述

单应矩阵

因为基础矩阵刻画了两幅图像的极几何关系,即相同场景在不同视图中的对应关系。如果在此基础上增加一个假设:即对应的三维空间点都来自同一个平面,这样的话,一般的透视摄像机拍摄的两个视点的图像间的极几何关系就用单应矩阵H来描述。 单应矩阵建立点和点的对应关系,而基础矩阵建立点和极线的对应关系
在这里插入图片描述

单应矩阵H下的像素点p和p’具有一一对应关系(下图的平面方程是指Ax+By+Cz+d=0):
在这里插入图片描述

如果我们拿到的8对像素点在三维空间正好位于一个平面上时或者两个相机之间只有旋转而无平移,我们只能用单应矩阵去估计,来恢复出摄像机的外参数(指两个相机之间的旋转平移关系)和内参数。基础矩阵对于同一个平面的点是干不动的
在这里插入图片描述

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

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

相关文章

07-Linux基本权限

1. 权限基本概述 1.1 什么是权限? 权限: 操作系统对用户能够执行的功能所设立的限制, 主要用于约束用户能对系统所做的操作, 以及内容访问的范围, 或者说, 权限是指某个特定的用户具有特定的系统资源使用权力.1.2 为什么要有权限? 因为系统中不可能只…

最详解消息队列以及RabbbitMQ之HelloWorld

1、消息队列 1、MQ的相关概念 1、什么是MQ MQ(message queue),从字面意思上看,本质是个队列,FIFO 先入先出,只不过队列中存放的内容是message 而已,还是一种跨进程的通信机制,用于上下游传递消息。 在互联…

webpack中的插件

1.webpack插件的作用通过安装和配置第三方插件,可以拓展webpack的能力,从而让webpack用起来更方便。最常用的webpack插件如下有两个:webpack-dev-server 类似于node.js阶段用到的nodemon工具 每当修改了源代码,webpack会自动进行项目的打包和构建html-webpack-pluginwebpac…

(分布式缓存)Redis哨兵

对应的教程视频: 高级篇Day3-03-Redis哨兵_哔哩哔哩_bilibili 目录: 哨兵的作用和原理搭建哨兵集群RedisTemplate的哨兵模式 一、哨兵的作用和原理 二、搭建哨兵集群 1.集群结构 这里我们搭建一个三节点形成的Sentinel集群,来监管之前的Re…

C++版本的OpenCV 5.x编译生成opencv-python==5.x(GPU版本)接口并进行调用

实现文章连接:强力推荐】基于Nvidia-Docker-Linux(Ubuntu18.04)平台:新版OpenCV5.x(C)联合CUDA11.1(GPU)完美配置视觉算法开发环境 目录1、关于有粉丝私信问我怎么调用的问题2、opencv5.x(GPU)测试成功opencv-python5.x测试代码Op…

黑马C++ 02 核心6 —— 类和对象_继承(重难点)

文章目录1.1 继承基本语法普通实现(重复率高)继承实现(减少重复代码)1.2 继承方式公共继承保护继承私有继承1.3 继承中的对象模型1.4 继承中构造与析构顺序1.5 继承同名成员处理方法同名成员属性同名成员函数1.6 继承同名静态成员处理方式1.6.1 同名静态成员属性通过对象访问通…

第9章 Spring的数据库编程

目录/Contents第9章 Spring的数据库编程学习目标学习内容1 Spring JDBC1.1 JDBCTemplate概述1.1.1 JDBCTemplate作用1.1.2 抽象类JdbcAccessor的属性1.2 Spring JDBC的配置1.2.1 Spring JDBC中的4个包说明1.2.2 dataSource配置4个属性的含义1.2.3 dataSource属性值的设定要求2 …

【中秋怎么过】许一个愿,希望成都不要在静默管理中过中秋

今年的中秋又要到啦,诚邀亲爱的博主参与投稿,分享“程序员”视角下的中秋夜之美! 内容可以是: 程序员过中秋的正确方式:团圆、赏月、还是惨兮兮地加班?互联网大厂的中秋仪式感:壕无人性&#…

嵌入式Linux入门-Linux文件IO讲解并实现copy程序

嵌入式Linux入门学习教程汇总:嵌入式Linux教程—裸机、应用、驱动完整教程目录 在Linux系统中,一切都是“文件”:普通文件、驱动程序、网络通信等等。所有的操作,都是通过“文件IO”来操作的。 IO就是input和output,…

[PostgreSQL的 SPI_接口函数]

Server Programming Interface(SPI)是PostgreSQL内核中的一个模块,这个模块让内核开发者可以在C函数中执行SQL语句,并具备管理事务的能力。通过它我们可以用C语言去调用数据库里的各种SQL。 这个SPI_比较便利的一点在于&#xff…

如何使用 Bootstrap 处理 CSS

如何使用 Bootstrap 处理 CSS 大家好!如果您像我一样开始使用 CSS 编码并使用它进行任何大型项目,那么您肯定会因为响应式布局、溢出和选择器特异性而感到数不清的头痛。这就是几周前我决定学习 Bootstrap 的原因,这里是它的文档和主要功能的简短描述,所以你也可以。引导程…

一、Azkaban简明笔记

1、azkaban部署 主要是集群部署安装。 1.1 准备安装包Downloads (azkaban.github.io)1.2 配置MySQL启动mysql mysql -uroot -proot创建azkaban数据库 create database azkaban;创建azkaban用户并赋予权限(可以不设置账号,继续使用root账号) -- 显示相关变量 SHOW VARIABLES …

实体店主最爱的中秋活动方案,直接照搬就能轻松爆单!

中秋将至,传统佳节和营销好时机一起到了!利用氛围浓厚的节日进行营销活动,是吸引客户、增粉卖货的最佳手段之一,商户老板们可千万不能错过! 但是,活动人人都能做,如何在一片节日促销中脱颖而出&…

JVM详解

1. 源文件 源文件就是我们编写Java代码的文件。文件扩展名为.java 2. 字节码文件 字节码文件是源文件编译后的文件。字节码文件是二进制文件,需要通过特定的工具才能查看。里面存放了源文件编译后的字节码指令。 3. 类加载器 Class Loader Java 程序运行时会由…

USB转GPIO应用方案

概述 沁恒提供的多款USB转接系列芯片均提供GPIO引脚功能,各引脚支持独立的输出输入,GPIO功能的使用需要与计算机端厂商驱动程序和应用软件配合使用。各芯片的默认GPIO引脚状态有所区别,可查阅芯片技术手册或参考方案中附表。 型号 CH344Q …

基于神经网络的图像识别,人工神经网络图像识别

如何通过人工神经网络实现图像识别 。 人工神经网络(ArtificialNeuralNetworks)(简称ANN)系统从20世纪40年代末诞生至今仅短短半个多世纪,但由于他具有信息的分布存储、并行处理以及自学习能力等优点,已经…

Jmeter(五) - 从入门到精通 - 测试计划(Test Plan)的元件(详解教程)

一.测试计划(Test Plan)要素 1.JMeter中一个脚本就是一个测试计划(Test Plan),也是一个管理单元。JMeter 的请求模拟与并发数(设置线程数,一个线程代表一个虚拟用户)设置都在脚本文件中一起设置。JMeter 不…

雨夜赶长路,房企必经的三场“价值战事”

今年上半年,地产行业一直在高压下运行。市场周期震荡叠加疫情等因素,为房企的销售、土拍、融资带来不确定性。 下半年以来,虽然不确定性和高压仍在,但市场有望恢复,下行趋势似乎已到拐点。 面对高压,不同…

安装 ZooKeeper 并配置服务

官网 访问官方下载页面安装 # 注意替换一下新的链接 curl -sSLO https://dlcdn.apache.org/zookeeper/zookeeper-3.8.0/apache-zookeeper-3.8.0-bin.tar.gz tar -zxvf apache-zookeeper-3.8.0-bin.tar.gz -C /opt/ cd /opt ln -s zookeeper-3.4.10 ./zookeepercd zookeeper m…

微服务项目:尚融宝(8)(后端接口:积分等级CRUD)

认清现实,放弃幻想,准备斗争 一、积分等级列表接口 1、编写积分等级管理接口 在controller中添加admin包,添加AdminIntegralGradeController类CrossOrigin RestController RequestMapping("/admin/core/integralGrade") public cl…