【三维重建】对极几何

极几何描述了同一场景或者物体的两个视点图像间的几何关系

可以发现P在左右相机的投影点一定在各自的极线上,如果求出极线就能缩小求解对应点的范围。

本质矩阵对规范化摄像机拍摄的两个视点图像间的极几何关系进行代数描述

规范化相机指的是相机的内参矩阵为一个单位矩阵

P'=\begin{bmatrix} x\\y \\ z \end{bmatrix}=\begin{bmatrix} 1 &0 & 0 & 0\\ 0&1 &0 &0 \\ 0& 0 & 1 & 0 \end{bmatrix} \begin{bmatrix} x\\y \\ z \\ 1 \end{bmatrix} \ \ P'=MP     

p'^*p'O_1坐标系下的坐标,则:

p'=Rp'^*+T \rightarrow p'^*=R^Tp'-R^TT(R^{-1} = R^T)

因此,p'O_1坐标系下的坐标为 R^Tp'-R^TT

同理:O_2O_1坐标系下的坐标为 -R^TT

得到两个向量 O_1p' \ , O_1O_2

O_1p' \times O_1O_2 = R^TT \times (R^Tp'-R^TT)=R^TT \times R^Tp' (垂直于极平面)

[R^TT \times R^Tp']^T \cdot p = 0

a \times b 可以写成一个矩阵乘积的形式,比如:

a = (x_1,y_1,z_1),b=(x_2,y_2,z_2)

a \times b = (y_1z_2-z_1y_2,z_1x_2-x_1z_2,x_1y_2-y_1x_2)\\ = \begin{bmatrix} 0& -z_1 &y_1 \\ z_1&0 &-x_1 \\ -y_1&x_1 &0 \end{bmatrix}\begin{bmatrix} x_2\\y_2 \\ z_2 \end{bmatrix}

因此,

[R^TT \times R^Tp']^T \cdot p = [T \times p']^TRp=[T_xp']^TRp \\ \\ =p'^TT_x^TRp=p'^TT_xRp=p'^T[T \times R]p = 0

( T_x 是一个秩为2的对称矩阵)

E = T \times R = T_{\times}R

E就是本质矩阵,描述了规范化摄像机下两个视点的关系。

p^T \cdot l = 0 ,\ p'^TEp =0\rightarrow l =E^Tp' \\ p'^T \cdot l' = 0 ,\ p'^TEp =0\rightarrow l' =Ep

e也是极线l上的点,所以

l^Te = p'^TEe=0\rightarrow Ee =0

基础矩阵对一般的透视摄像机的两个视点的图像间的极几何关系进行代数描述

核心思想是将一般相机下的p,p',变成规范化相机下的p,p'

p=K[I\ O]P\rightarrow K^{-1}p=K^{-1}K[I \ O]P\rightarrow \begin{bmatrix} 1 &0 &0 &0 \\ 0& 1& 0&0 \\ 0 & 0&1 & 0 \end{bmatrix}P

let \ \begin{bmatrix} 1 &0 &0 &0 \\ 0 & 1 & 0 &0 \\ 0 & 0 & 1 & 0 \end{bmatrix}P = p_c\rightarrow p_c = K^{-1}p \ , p_c '= K'^{-1}p'

p_c',p_c符合规范换相机要求,因此:

p_c'Ep_c=p_c'^T[T_{\times}]Rp_c=(K'^{-1}p' )^T [T_{\times}]RK^{-1}p \\ \\ =p'^TK'^{-T}[T_{\times}]RK^{-1}p = 0

let F=K'^{-T}[T_{\times}]RK^{-1},\ p'^TFp=0

F就是基础矩阵,反映了一般相机下,两视点间的关系。

求解基础矩阵

用对应点求解F

求出的\hat{F}往往是满秩的,而我们所要求的基础矩阵秩为2

单应性矩阵

 

如果采集到的对应点在同一平面,两个视点间的对应关系用单应性矩阵表示

M = K(I \ O),\ M' = K'(I\ O),\ P= (\tilde{P^T},1)^T \\ \\ p = M\begin{pmatrix} \tilde{P}\\1 \end{pmatrix} =K \tilde{P} \\ \\ p' = M'\begin{pmatrix} \tilde{P}\\1 \end{pmatrix}=K'(R \ t)\begin{pmatrix} \tilde{P} \\1 \end{pmatrix}=K'(R \tilde{P} + t)

n^T \tilde{P} = d \rightarrow n^T \tilde{P} / d = 1 \\ \\ let \ n / d = n_d , n_d^T \tilde{P} = 1

 p'=K'(R\tilde{P} + t \cdot n_d^T \tilde{P}) = K'(R + t \cdot n_d^T)\tilde{P} =K'(R + t \cdot n_d^T)K^{-1}p

本质矩阵 H = K'(R + t \cdot n_d^T)K^{-1}

参考内容:计算机视觉之三维重建(深入浅出SfM与SLAM核心算法)—— 4. 三维重建基础与极几何_哔哩哔哩_bilibili

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

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

相关文章

专栏十五:omicverse在单细胞分析中的实际使用体验和小改动

写一些自己的理解吧,一些小步骤,正在更新中。。。 安装 原作者写的很清楚了 大部分直接抄 个别地方:去选择下载适合自己的pytorch版本PyTorch, 比如我的是cuda12,下载命令实际是 pip3 install torch torchvision torchaudio 查看cuda版本命令 nvidia-smi 当然还有个命…

YB9225是一种固定工作频率的高效率电流模式升压转换器。

YB9225B 1.2 MHz。峰值5A 电流,升压转换器 概述 : YB9225是一种固定工作频率的高效率电流模式升压转换器。YB9225集成了一个非常低的 Rds-on NMOSFTET,以减少功率损耗和实现高效率。最高效率可达93% 。功率 MOSFET 的峰值电流限制在5 A。1.…

大模型应用_ChatGPT-Next-Web

1 用后感 这个工具,我也是用了好长时间,就是感觉如果不点亮一颗星,自己就不是人了的那种。 一开始在国内用 ChatGPT 非常麻烦,就买了一个套壳的服务,他使用的界面就是 ChatGPT-Next-Web,我和朋友们都觉得这…

DevEco Studio将编辑器整体文本改为简体中文

我们打开编辑器 随便进入一个项目 这里 我们左上角目录 选择 File下面菜单中的 Settings… 打开配置界面 然后在设置窗口左侧导航栏中 选择 Plugins 插件 然后上方导航栏中 选择 Installed 参考下图 然后 找到这个Chinese(Simplified) Chinese是什么应该不用我多说吧 我们把…

第二百零二回 介绍一个三方包bluetooth_enable_fork

文章目录 1. 概念介绍2. 使用方法2.1 自定义主题2.2 覆盖父主题 3. 示例代码 我们在上一章回中介绍了图片缩放相关的内容,本章回中将介绍如使用主题.闲话休提,让我们一起Talk Flutter吧。 1. 概念介绍 我们在这里说的主题包含两方面的内容:…

`int(1)` 和 ‘int(10)‘

1 困惑 最近遇到个问题,有个表的要加个user_id字段,user_id字段可能很大,于是我提mysql工单alter table xxx ADD user_id int(1)。领导看到我的sql工单,于是说:这int(1)怕是不够用吧,接下来是一通解释。 …

网络测试工具:tcping-测试端口连接

网络测试工具:tcping-测试端口连接 平常使用的ping,是通过icmp协议去测试网络连通性的,tcping是通过tcp三次握手测试端口的连通性。总的来说,ping测试的是L3的连通性,tcping测试的是L4的连通性。 tcping工具下载 htt…

基于轻量级神经网络GhostNet开发构建光伏太阳能电池缺陷图像识别分析系统

工作中经常会使用到轻量级的网络模型来进行开发,所以平时也会常常留意使用和记录,在前面的博文中有过很多相关的实践工作,感兴趣的话可以自行移步阅读即可。 《移动端轻量级模型开发谁更胜一筹,efficientnet、mobilenetv2、mobil…

PHP基础(1)

PHP是一种服务器端脚本语言,是一种用于开发动态Web应用程序的最流行和广泛使用的语言之一。它的全称为“Hypertext Preprocessor”,是一种开源的、可嵌入HTML的脚本语言,可以嵌入到HTML中,也可以直接作为命令行脚本运行。PHP脚本在…

Redis对象——内存回收,对象共享和空转时长

一. 内存回收 因为C语言不具备内存回收功能,所以Redis在自己的对象系统中构建了一个引用计数技术实现内存回收机制。通过这一机制,程序可以通过跟踪对象的引用计数信息,在适当的时候自动释放对象并进行内存回收。 内每一个对象的引用计数信息…

node-sass@4.14.1 postinstall: `node scripts/build.js`

遇到一个前端项目安装node-sass依赖的问题:node-sass4.14.1 postinstall: node scripts/build.js 提供一个解决思路: 1、把package.json中node-sass这一行删掉 2、Terminal中执行 npm i node-sass -D 重新安装 3、package.json中会新增一个匹配当前n…

解读unity内置的软阴影处理方式

解读unity内置的软阴影处理方式: 参考网址: https://blog.csdn.net/cgy56191948/article/details/105726682 https://blog.csdn.net/weixin_45776473/article/details/119582218 https://tajourney.games/5482/ 上面的博客已经论述了,为何出现…

【基于LSTM的股票数据预测与分类】

基于LSTM的股票数据预测与分类 引言数据集与爬取数据处理与可视化股票预测与分类Flask页面搭建股票推荐功能创新点结论 引言 股票市场波动剧烈,对于投资者而言,精准的数据预测和分类是制定明智决策的基础。本文将介绍一种基于长短时记忆网络&#xff08…

福德植保无人机:绿色农业的新篇章

今天,我们荣幸地向您介绍福德植保无人机,一种改变传统农业种植方式,引领绿色农业的新科技产品。福德植保无人机以其高效、环保、安全的特点,正逐渐成为植保行业的新宠。福德植保无人机是一种搭载了高性能发动机和精确喷洒系统的飞…

TypeScript基础语法

目录 变量声明 条件控制 循环迭代 函数 类和接口 模块开发 变量声明 TypeScript在JavaScript的基础上加入了静态类型检查功能,因此每一个变量都有固定的数据类型。 条件控制 TypeScript与大多数开发语言类似,支持基于if-else和Switch的条件控制…

[原创]如何正确的部署R语言开发环境(含动图演示).

[简介] 常用网名: 猪头三 出生日期: 1981.XX.XX QQ联系: 643439947 个人网站: 80x86汇编小站 https://www.x86asm.org 编程生涯: 2001年~至今[共22年] 职业生涯: 20年 开发语言: C/C、80x86ASM、PHP、Perl、Objective-C、Object Pascal、C#、Python 开发工具: Visual Studio、D…

目标检测——R-FCN算法解读

论文:R-FCN: Object Detection via Region-based Fully Convolutional Networks 作者:Jifeng Dai, Yi Li, Kaiming He and Jian Sun 链接:https://arxiv.org/pdf/1605.06409v2.pdf 代码:https://github.com/daijifeng001/r-fcn 文…

赛宁网安多领域亮相第三届网络空间内生安全发展大会

2023年12月8日,第三届网络空间内生安全发展大会在宁开幕。两院院士、杰出专家学者和知名企业家相聚南京,围绕数字经济新生态、网络安全新范式进行广泛研讨,为筑牢数字安全底座贡献智慧和力量。 大会围绕“一会、一赛、一展”举办了丰富多彩的…

2-1基础算法-枚举/模拟

文章目录 1.枚举2.模拟 1.枚举 [例1] 特别数的和 评测系统 #include <iostream> using namespace std; bool pa(int x) {while (x) {if (x % 10 2 || x % 10 1 || x % 10 0 || x % 10 9) {return true;}else {x x / 10;}}return false; } int main() {int sum0;i…

科技云报道:从数据到生成式AI,是该重新思考风险的时候了

科技云报道原创。 OpenAI“宫斗”大戏即将尘埃落定。 自首席执行官Sam Altman突然被董事会宣布遭解雇、董事长兼总裁Greg Brockman辞职&#xff1b;紧接着OpenAI员工以辞职威胁董事会要求Altman回归&#xff1b;再到OpenAI董事会更换成员、Altman回归OpenAI。 表面上看&…
最新文章