双目立体匹配中的极线约束(Epipolar Constraint),本质矩阵(Essential Matrix),对极几何(2D-2D)

news2024/11/14 20:50:23

极线约束(Epipolar Constraint),本质矩阵(Essential Matrix),对极几何(2D-2D)

考虑一个SLAM中一个常见的问题:如果两个相机在不同位置拍摄同一个物体,或者一个运动的相机在不同时刻拍摄同一物体,我们有理由相信两张图片中各点存在着某种几何关系,这种关系可以用对极几何来描述。对极几何描述了两帧图像中各像素的射影关系(或者说是各匹配点的几何关系),其与外部的场景本身无关,只与相机的内参以及两图像的拍摄位置有关。

1. The Epipolar constraint

We know that x 1 x_1 x1 (in homogeneous coordinates) is the projection of 3D coordinate X X X on the image plane.
λ 1 x 1 = X , λ 2 x 2 = R X + T λ 2 x 2 = R ( λ 1 x 1 ) + T \lambda_1x_1=X, \quad \lambda_2x_2=RX+T \\ \lambda_2x_2=R(\lambda_1x_1) + T λ1x1=X,λ2x2=RX+Tλ2x2=R(λ1x1)+T
Then, we remove the translation by multiplying with T ∧ T^{\wedge} T, the skew matrix.
λ 2 T ∧ x 2 = λ 1 T ∧ R x 1 + 0 \lambda_2T^{\wedge}x_2=\lambda_1T^{\wedge}Rx_1+0 \\ λ2Tx2=λ1TRx1+0
Then, we projection onto x 2 x_2 x2 gives the epipolar constraint:
λ 2 x 2 T T ∧ x 2 = λ 1 x 2 T T ∧ R x 1 \lambda_2x_2^TT^{\wedge}x_2=\lambda_1x_2^TT^{\wedge}Rx_1 λ2x2TTx2=λ1x2TTRx1
As we know, T × x 2 = T ∧ x 2 T\times x_2=T^{\wedge}x_2 T×x2=Tx2, is the cross product, which generates a third vector that perpendicular to the plane which is spanned by T T T and x 2 x_2 x2.

So, λ 2 x 2 T T ∧ x 2 = 0 \lambda_2x_2^TT^{\wedge}x_2=0 λ2x2TTx2=0. The dot product of x 2 x_2 x2 and vector T ∧ x 2 T^{\wedge}x_2 Tx2 is zero. Then, we have:
x 2 T T ∧ R x 1 = 0 x_2^TT^{\wedge}Rx_1=0 x2TTRx1=0
This is called epipolar constraint.

2. Essential matrix E E E

The matrix E = T ∧ R ∈ R 3 × 3 E=T^{\wedge}R \in R^{3\times3} E=TRR3×3 is essential matrix. Provide the relation between the 2D point coordinates of 3D point in each of the two images and the camera transformation parameters.

This constraint states that the three vector o 1 X ⃗ \vec{o_1X} o1X , o 2 X ⃗ \vec{o_2X} o2X and o 2 o 1 ⃗ \vec{o_2o_1} o2o1 form a plane, and the volume of the plane is 0. This is called the volume spanned by x 2 x_2 x2, x 1 x_1 x1, and R , T R, T R,T, such that:
v o l u m e = x 2 T ( T × R ) x 1 = 0 x 2 T E x 1 = 0 volume = x_2^T(T\times R)x_1=0 \\ x_2^TEx_1=0 volume=x2T(T×R)x1=0x2TEx1=0

The unique solution, need eight point pairs to solve.
x 2 T E x 1 = 0 = a T E s = 0. x_2^TEx_1=0=a^TE^s=0. x2TEx1=0=aTEs=0.
For n n n point pairs, we can combine this into the linear system.
χ E s = 0 , w i t h    χ = ( a 1 , a 2 , . . . , a n ) T . \chi E^s=0, \quad with \ \ \chi =(a^1,a^2, ...,a^n)^T. χEs=0,with  χ=(a1,a2,...,an)T.

在这里插入图片描述

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

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

相关文章

【C++11】左值、右值、将亡值

值类别 C表达式的两个独立的属性:类型、值类别; 值类别分为:左值、纯右值、将亡值; 有名字的将亡值->左值;没名字-->右值 左值 能用&取地址的表达式; 例如:int a;可以…

Python每日一练(20230422)

目录 1. 杨辉三角 🌟 2. 最长回文子串 🌟🌟 3. 逆波兰表达式求值 🌟🌟 🌟 每日一练刷题专栏 🌟 Golang每日一练 专栏 Python每日一练 专栏 C/C每日一练 专栏 Java每日一练 专栏 1. 杨…

转义字符(\)对JavaScript中JSON.parse的影响概述

转义字符(\)对JavaScript中JSON.parse的影响 按照ECMA262第五版中的解释&#xff0c;JSON是一个提供了stringify和parse方法的内置对象&#xff0c;前者用于将js对象转化为符合json标准的字符串&#xff0c;后者将符合json标准的字符串转化为js对象。json标准参考<a href&q…

垃圾收集器面试总结(二)

G1 收集器 G1 (Garbage-First) 是一款面向服务器的垃圾收集器,主要针对配备多颗处理器及大容量内存的机器。 以极高概率满足 GC 停顿时间要求的同时,还具备高吞吐量性能特征。 被视为 JDK1.7 中 HotSpot 虚拟机的一个重要进化特征。它具备以下特点&#xff1a; 并行与并发&am…

chatgpt智能提效职场办公-ppt怎么转换成word文档

作者&#xff1a;虚坏叔叔 博客&#xff1a;https://xuhss.com 早餐店不会开到晚上&#xff0c;想吃的人早就来了&#xff01;&#x1f604; 将PPT转换成Word文档有多种方法&#xff0c;以下是其中的一种&#xff1a; 打开PPT文件&#xff0c;并选择“文件”选项卡中的“另存为…

光流法Optical Flow,Lucas-Kanade方法,CV中光流的约束分析

光流法Optical Flow&#xff0c;Lucas-Kanade方法&#xff0c;CV中光流的约束分析 Multiple View Geometry1. Optical Flow Estimation2. The Lucas-Kanade Method2.1 Brightness Constancy Assumption2.2 Constant motion in a neighborhood2.3 Compute the velocity vector2.…

19 calloc 和 realloc 虚拟内存分配的调试

前言 前面提到了 malloc 虚拟内存分配相关的内容 malloc 虚拟内存分配的调试(1) malloc 虚拟内存分配的调试(2) 这里提 calloc 和 realloc, 这两个函数 虽然没有 malloc 使用频率那么高 但是 还是有很大的知名度的, 本文这里 我们来看一下 calloc 此函数传入两个参数, 第…

【系统集成项目管理工程师】项目成本管理

&#x1f4a5;十大知识领域&#xff1a;项目成本管理 主要考计算题 项目进度管理包括以下 4 个过程: 制订成本管理计划成本估算成本预算成本控制 一、制订成本管理计划 制订了项目成本结构、估算、预算和控制的标准 输入工具与技术输出项目管理计划项目章程事业环境因素组织过…

拼凑出来的低代码平台,真的好用吗?(浅谈行业怪象)

0️⃣前言 这几年低代码概念非常火热&#xff0c;市面上的低代码平台如雨后春笋应运而生&#xff0c;有许多身边的朋友对我说&#xff1a;“未来的研发方式一定是低代码的、低技术门槛的&#xff0c;低代码开发是一项技术革新。 ” 然而&#xff0c;就在我打算对它进行深入研究…

【业务数据分析】——十大常用数据分析方法

目录 一、数据分析方法 二、营销管理方法论 1、SWOT分析 2、PEST分析 3、4P理论 三、常用数据分析方法论 1、公式拆解 2、对比分析 3、A/Btest 4、象限分析 5、帕累托分析 6、漏斗分析 7、路径分析 8、留存分析 9、5W2H分析法 10、麦肯锡逻辑树分析法 一、数据…

基于html+css的图片展示23

准备项目 项目开发工具 Visual Studio Code 1.44.2 版本: 1.44.2 提交: ff915844119ce9485abfe8aa9076ec76b5300ddd 日期: 2020-04-16T16:36:23.138Z Electron: 7.1.11 Chrome: 78.0.3904.130 Node.js: 12.8.1 V8: 7.8.279.23-electron.0 OS: Windows_NT x64 10.0.19044 项目…

4.4 埃尔米特插值

为什么有埃尔米特插值法&#xff1a; 埃尔米特插值法是一种常用的数值方法&#xff0c;主要用于在给定的数据点集上构造一个可微的函数来近似描述这些数据点的趋势和特征。埃尔米特插值法有以下几个优点&#xff1a; 精度高&#xff1a;埃尔米特插值法可以通过给定数据点的函数…

如何在个人web项目中使用会话技术(cookiesession)?

编译软件&#xff1a;IntelliJ IDEA 2019.2.4 x64 操作系统&#xff1a;win10 x64 位 家庭版 服务器软件&#xff1a;apache-tomcat-8.5.27 目录 一. 什么是会话&#xff1f;二. 为什么要使用会话技术&#xff1f;三. 如何使用会话技术&#xff1f;3.1 Cookie(客户端的会话技术…

springboot+vue 个人健康信息管理系统

系统分为用户和医师&#xff0c;管理员三个角色 管理员的主要功能有&#xff1a; 1.管理员输入账户登陆后台 2.个人中心&#xff1a;管理员修改密码和账户信息 3.用户管理&#xff1a;对注册的用户信息进行添加&#xff0c;删除&#xff0c;修改&#xff0c;查询 4.医师管理&am…

seo文章批量更新-SEO文章自动批量生成

使用SEO文章生成器&#xff0c;让您的网站排名更靠前&#xff01; 您是否对搜索引擎排名感到困扰&#xff1f;难道您想要网站排名更好&#xff0c;但却没有足够的时间和资源进行SEO优化吗&#xff1f;那么您需要尝试使用SEO文章生成器来帮助您的网站获得更好的排名&#xff01…

数据结构(二)—— 链表

文章目录 一、链表基础1.1 链表定义1.2 创建链表1.3 删除链表某一节点1.4 与数组的对比二、题2.1 203 移除链表元素2.2 707 设计链表2.3 206 反转单链表2.4 24 两两交换链表中的节点2.5 9 删除链表的倒数第N个节点2.6 面试题 02.07. leetcode160 链表相交2.7 142 环形链表II2.7…

Verilog带参数的`define用法

宏除了可以进行简单的文本替换,还可以像函数和任务一样传递指定多个参数分别对文本进行对应的替换. 示例1&#xff1a; define Disp(pa,pb,pc) \initial \begin \#1200; \$display("%d \n",(papbpc)); \$display(" data_ pa data_ pb data_ pc %d",(…

微信小程序 基于Promise 对 wx.request 封装处理

导语&#xff1a; 当我们进行微信小程序开发的时候&#xff0c;会经常涉及到发送网络请求来进行后台数据交互&#xff0c;而在微信小程序中&#xff0c;用来 发送请求的方法是 wx.request() , 但是由于 wx.request() 方法 不支持 Promise 风格的调用&#xff0c;所以导致 wx.re…

【C++从0到王者】第一站:从C到C++

目录 一、命名空间 1.C的命名缺陷 2.域和命名空间 3.命名空间的使用与嵌套 二、输入输出 三、缺省参数&#xff08;默认参数&#xff09; 1.缺省参数的概念 2.缺省参数分类 1>全缺省参数 2>半缺省参数 3.缺省参数的一些使用场景 4.缺省参数在分文件使用的注意…

系统运维(Docker篇)

前言 打怪升级之路&#xff0c;从未停息 ​ 在这个社会信息技术的发展速度越来越快&#xff0c;这种快速发展带来了激烈的竞争。在这个竞争性的环境中&#xff0c;只有不断学习和更新自己的技能&#xff0c;才能保持竞争力。其次随着云计算、容器化、自动化等技术的出现&…