对极几何——本质矩阵E和基础矩阵F

视觉SLAM笔记--第5篇: 基础矩阵F和单应矩阵H的推导过程,区别分析 基础矩阵F和单应矩阵H的推导过程,区别分析参考博客1. 基础矩阵F1.1 Essential Matrix1.2 Fundamental Matrix1.3 两者区别2. 单应矩阵H3. 基础与单应矩阵区别4. 详细推导求解 参考博客 参考博客:https://blog.youkuaiyun.com/try_again_later/article/details/88655563 1. 基础矩阵F 1.1 E... 阅读详情

转载:http://blog.youkuaiyun.com/tanmengwen/article/details/7409886

(1)Essential Matrix

如上图所示,给定一个目标点P,以左摄像头光心Ol为原点。点P相对于光心Ol的观察位置为Pl,相对于光心Or的观察位置为Pr。点P在左摄像头成像平面上的位置为pl,在右摄像头成像平面上的位置为pr。注意Pl、Pr、pl、pr 都处于摄像机坐标系,其量纲是与平移向量T相同的(pl、pr 在图像坐标系中对应的像素坐标为 ql、qr )。

假设右摄像头相对于左摄像头的相对位置关系由旋转矩阵R和平移向量T表示,则可得:Pr = R(Pl-T)。

现在我们要寻找由点P、Ol和Or确定的对极平面的表达式。注意到平面上任意一点x与点a的连线垂直于平面法向量n,即向量 (x-a) 与向量 n 的点积为0:(x-a)·n = 0。在Ol坐标系中,光心Or的位置为T,则P、Ol和Or确定的对极平面可由下式表示:(Pl-T)T·(Pl×T) = 0。

由Pr = R(Pl-T) 和 RT=R-1 可得:(RTPr)T·(Pl×T) = 0。

另一方面,向量的叉积又可表示为矩阵与向量的乘积,记向量T的矩阵表示为S,得:Pl×T = SPl。

clip_image014

图11

那么就得到:(Pr)TRSPl = 0。这样,我们就得到Essential Matrix:E = RS。

通过矩阵E我们知道Pl和Pr的关系满足:(Pr)TEPl = 0。进一步地,由 pl = fl*Pl/Zl 和 pr = fr*Pr/Zr 我们可以得到点P在左右两个摄像机坐标系中的观察点 pl 和 pr应满足的极线约束关系为:(pr)TEpl = 0。

注意到 E 是不满秩的,它的秩为2,那么 (pr)TEpl = 0 表示的实际上是一条直线,也就是对极线。

(2)Fundamental Matrix

由于矩阵E并不包含摄像头内参信息,且E是面向摄像头坐标系的。实际上我们更感兴趣的是在图像像素坐标系上去研究一个像素点在另一视图上的对极线,这就需要用到摄像机的内参信息将摄像头坐标系和图像像素坐标系联系起来。在(1)中,pl和pr是物理坐标值,对应的像素坐标值为ql和qr,摄像头内参矩阵为M,则有:p=M-1q。从而:(pr)TEpl = 0 à qrT(Mr-1)TE Ml-1ql = 0。这里,我们就得到Fundamental Matrix:F = (Mr-1)TE Ml-1。并有 qrTFql = 0。

(3)OpenCV的相关计算

由上面的分析可见,求取矩阵E和F关键在于旋转矩阵R和平移向量T的计算,而cvStereoCalibrate的代码中大部分(cvcalibration.cpp的第1886-2180行)也是计算和优化R和T的。在cvcalibration.cpp的第1913-1925行给出了计算R和T初始估计值的基本方法:

    /*
       Compute initial estimate of pose

       For each image, compute:
          R(om) is the rotation matrix of om
          om(R) is the rotation vector of R
          R_ref = R(om_right) * R(om_left)'
          T_ref_list = [T_ref_list; T_right - R_ref * T_left]
          om_ref_list = {om_ref_list; om(R_ref)]

       om = median(om_ref_list)
       T = median(T_ref_list)
    */

具体的计算过程比较繁杂,不好理解,这里就不讨论了,下面是计算矩阵E和F的代码:

 

    if( matE || matF )
    {
        double* t = T_LR.data.db;
        double tx[] =
        {
            0, -t[2], t[1],
            t[2], 0, -t[0],
            -t[1], t[0], 0
        };
        CvMat Tx = cvMat(3, 3, CV_64F, tx);
        double e[9], f[9];
        CvMat E = cvMat(3, 3, CV_64F, e);
        CvMat F = cvMat(3, 3, CV_64F, f);
        cvMatMul( &Tx, &R_LR, &E );
        if( matE )
            cvConvert( &E, matE );
        if( matF )
        {
            double ik[9];
            CvMat iK = cvMat(3, 3, CV_64F, ik);
            cvInvert(&K[1], &iK);
            cvGEMM( &iK, &E, 1, 0, 0, &E, CV_GEMM_A_T );
            cvInvert(&K[0], &iK);
            cvMatMul(&E, &iK, &F);
            cvConvertScale( &F, matF, fabs(f[8]) > 0 ? 1./f[8] : 1 );
        }
    }

基础矩阵 vs 本质矩阵:3个核心差异与5个自由度详解 本文深入解析了计算机视觉中基础矩阵与本质矩阵的核心差异与自由度。基础矩阵适用于相机内参未知的情况,具有7个自由度;而本质矩阵在已知内参时使用,自由度降至5个。文章详细对比了两者的数学性质、求解方法及应用场景,为立体视觉、三维重建等任务提供理论基础。 阅读详情

相关推荐

essential matrix 本质矩阵

essential matrix 本质矩阵essential matrix 本质矩阵essential matrix 本质矩阵

立体视觉(Stereo Vision)-本征矩阵(essential matrix)和基本矩阵(fundamental matrix)

1 物体深度 问题描述:从不同的位置拍摄相同物体的两张图片,恢复其深度 这里假设摄像机的镜头平行 由相似三角形: 由上面第一、二等式可得: 深度与视差成反比 2 如何配对左右图片的点 问题描述:已知两张图像,由不同的照相机拍下,在左图中选一点, 如何在右图中找到对应的点。 由上图可知, 左图中点 x 对应在右图中的点位于线段 l' 上 右图中点 x‘...

h763247747的博客 8950

七星棋牌顶级运营产品全开源修复版源码教程:6端支持,200+子游戏玩法,完整搭建指南(含代码解析)

让您从源码下载到本地运行一步到位!此外,文中还将附带详细代码解析与操作步骤,即便没有开发经验,也能轻松完成二开与定制。数据库是棋牌游戏中极为关键的组成部分,用于存储用户信息、乐豆余额、游戏记录、提现申请等数据。以下是部分核心数据表结构示例,便于存储用户信息与游戏记录。AI模块能够控制游戏中的胜率,常用于调节玩家体验。防沉迷功能旨在限制未成年人游戏时间。的完整搭建流程,特别适合。首先,获取七星棋牌源码。本教程将为您详细讲解。

aa2031171的博客 7770

Essential Matrix 的求解算法--Nister 五点算法以及原理

转自知乎 龙睛 尤洋 1. 原理 Nister的论文主要是奇奇怪怪的符号比较多,比较容易理解错。翻了下之前看的时候的笔记,分享出来,看看会不会有帮助。 阅读本文前,你需要有基本的矩阵,数值和多视几何的知识。 首先,你得构造约束。这个大家都知道 essential matrix的定义决定了 如果你把E的9个成员变量完全展开,就会得到一个线性方程。 每有一个匹配点,你就可以...

wjydym的博客 6891

用Python实现一个简单的远程桌面服务端和客户端

本文介绍了一个基于Python的轻量级远程桌面解决方案,针对商业软件在嵌入式系统上的兼容性问题、性能问题和成本问题。系统采用客户端-服务端架构,包含两个通信通道:5000端口传输压缩视频流,5001端口传输控制事件。通过多线程设计、图像压缩(JPEG+zlib)和网络优化(禁用Nagle算法)等技术手段提高性能。服务端实现了高效的屏幕捕获(使用mss库)、图像处理流水线和事件处理逻辑。客户端采用PyQt5构建UI界面,包含视频接收线程以减少主线程负担。该方案具有跨平台、开源免费、轻量级(核心代码不到500行

Hi20240217的博客 1656

告别Inspect!用微软官方推荐的Accessibility Insights搞定WinApp自动化测试元素定位

本文介绍了如何从传统的Inspect工具升级到微软官方推荐的Accessibility Insights for Windows,以提升Windows应用自动化测试中的元素定位效率。通过详细的功能对比、安装指南和实战技巧,帮助测试工程师掌握这款现代化工具的核心优势,包括实时元素检测、属性筛选和与WinAppDriver、Appium等测试框架的无缝集成。

weixin_26749245的博客 618

VSLAM基础(三)————对极几何中的基础矩阵F、本质矩阵E、单应矩阵H

在上一篇中,讲到了可以通过相机矩阵P(P=K[R|t])将三维点的世界坐标投影到图像像素坐标。而一般vslam问题中P矩阵并不是已知的(R,t未知),于是我们需要通过其他方法求得R,t,这就需要用到对极几何中的知识。 一、对极几何 那么什么是对极几何? 对极几何(Epipolar Geometry)描述的是两幅视图之间的内在射影关系,与外部场景无关,只依赖于摄像机内参数和这两幅视图之间的的相...

potxxx的博客 5071

什么是信噪比?信噪比越大好还是越小好?

在进行声音增强的时候,往往需要考虑声音信号和噪声的信噪比,那么信噪比是什么呢?越大越好还是越小越好,此处引入百度百科的解读: 信噪比,英文名称叫做SNR或S/N(SIGNAL-NOISE RATIO),又称为讯噪比。是指一个电子设备或者电子系统中信号与噪声的比例。这里面的信号指的是来自设备外部需要通过这台设备进行处理的电子信号,噪声是指经过该设备后产生的原信号中并不存在的无规则的额外信号(或信息),并且该种信号并不随原信号的变化而变化。 同样是“原信号不存在”还有一种东西叫“失真”,失真和噪声实际上有一

码匀的博客 7万+

MVG(second)学习笔记- 对极几何和基础矩阵F,本质矩阵E

本部分总结一下对极几何,对极几何是两幅视图之间的内在的射影几何,它独立于场景结构,只依赖于摄像机的内参和相对姿态。 下图简单画出示意图。 1.图中基本术语: X-X'为一对匹配点,对应空间点P CC'为基线,C,C'分别为相机中心 e,e'为对极点 I,I'为对极线 2.F和E推导 采用向量混合集:(https://blog.youkuaiyun.com/anpu8252/a...

算法攻城狮 455

增量学习入门:概念、代码示例与应用场景

在当今快速变化的数据环境中,传统的机器学习模型往往需要重新训练以适应新的数据。然而,这种方法不仅耗时耗力,还可能导致模型性能的不稳定。增量学习(Incremental Learning)作为一种新兴的学习范式,能够在新数据到来时动态更新模型,而无需重新训练整个模型。本文将详细介绍增量学习的基本概念、代码示例、应用场景以及需要注意的事项。增量学习作为一种高效的机器学习方法,能够在新数据到来时动态更新模型,具有广泛的应用前景。通过本文的介绍,相信你对增量学习有了初步的了解。

加入“Super Entity”,与全能开发团队共探AI智能体与数字人项目,开启前沿技术之旅。 1152

SAP ABAP 实用小技巧合集 (一)

本合集包含了笔者从事 ABAP 开发 17 年以来积累的小技巧。持续更新。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 3215

·计算机视觉」立体视觉 对极几何 (Epipolar Geometry) 本质矩阵E 基础矩阵F

致敬  (参考书)永远的丰碑  必看的书 计算机视觉中的多视图几何 学习opencv (参考书)   联想:地球-南北极   对极几何 本质矩阵(本征矩阵)  相机坐标系的关系 基础矩阵  图像像素坐标系的关系(加入内参) 先思考一个问题:用两个相机在不同的位置拍摄同一物体,如果两张照片中的景物有重叠的部分,我们有理由相信,这两张照片之间存在一定的对应关系,本节的任务就是如何描述它们...

开源节流 9320

MTK平台WiFi学习--Wi-Fi 连线/断线问题初步分析

摘要:本文详细介绍了MTK平台WiFi连接问题的日志分析方法。文章首先阐述了WiFi连接的标准流程,包括指令接收、BSSID选择、信道分配、认证关联、四次握手和DHCP获取等关键步骤。针对常见故障场景,如选网失败、信道申请失败、认证关联失败、四次握手失败等,提供了具体的日志分析方法和排查思路,包括识别关键日志、分析状态码、结合固件日志和抓包数据等。文章还特别强调了不同故障场景下需要收集的日志类型和分析要点,为WiFi连接问题的定位提供了一套系统化的解决方案。

专业开发者的博客,一个从事Android WiFi和蓝牙的工程师 1590

对极几何、基础矩阵F、本质矩阵E、奇异值、反对称矩阵(超通俗总结)

同一个三维空间点,在两个相机拍摄的两张照片上,对应两个像素点。核心规则:一张图上的一个点,在另一张图上一定对应一条直线(极线),正确匹配点必须落在这条线上。不是随便匹配,空间几何锁死了对应关系。满足:对角线全部为0,对称位置正负相反特性基础矩阵 F本质矩阵 E是否需要相机内参不需要需要输入坐标像素坐标归一化相机坐标奇异值格式[a,b,0][σ,σ,0]核心用途求极线、筛误匹配求相机 R、t、三维重建能否恢复相机运动不能能极线:约束匹配点的空间几何规则;基础矩阵 F。

2305_78291480的博客 274

OpenSpec 完全指南 config.yaml文件

不管是项目内还是全局存放,自定义工作流都要遵守以下规则,否则会导致OpenSpec无法识别,新手一定要记牢:一个文件夹 = 一个工作流:工作流文件夹的名称,就是中schema字段要填写的名称;每个工作流文件夹必须包含:这是工作流的核心定义文件,没有它,OpenSpec无法识别这个工作流;模板文件统一放templates/目录:如果需要自定义生成文件的模板(比如统一的提案模板、任务模板),就放在工作流文件夹下的templates/里,OpenSpec会自动识别;

h a 6 6 6 c k 为 你解决复杂难题! 1417

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

基础矩阵,本质矩阵,单应性矩阵讲解

ORB-SLAM点云地图中相机的位姿初始化,无论算法工作在平面场景,还是非平面场景下,都能够完成初始化的工作。其中主要是使用了适用于平面场景的单应性矩阵H和适用于非平面场景的基础矩阵F,...

点云PCL 9554

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

基本矩阵F、本质矩阵E、单应矩阵H的关系

前言: 立体视觉几何中有以下问题: 1.已知一幅图像中一点,如何寻找另一幅图像中这个点的对应点(可用光流法、特征点匹配法) 2.已知两幅图像中两点是对应关系,如何求解两相机的相对位置和姿态【R|t】 3.已知多幅图像中同一3D点的对应点,如何求解该3D点的3D坐标 对极几何/基础矩阵 的出现可以解决问题2。 之前有总结过:https://blog.youkuaiyun.com/try_again_...

try_again_later的博客 1万+

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

向量叉乘矩阵表示_对极几何的基础矩阵和本质矩阵1

对极几何是两幅视图之间内在的射影几何。存在3维空间点,在两个不同的视角拍摄,投影于两个图像点,这两个图像点之间存在着某种几何关系。本文主要推导他们之间的关系。O1和O2 为两个相机中心, O1与O2的连线与两幅图的交点e1和e2称为极点,p1和p2 分别是世界坐标点P在两个相机上的投影点。p1e1、p2e2为极线,PO1O2构成的平面为极平面。令p1e1的线为l1, p2e2的直线为l2...

weixin_42103587的博客 1927

matlab 通过矩阵变换使图像旋转平移_基础矩阵,本质矩阵,单应性矩阵讲解

最近公众号组织了ORB-SLAM2理论与代码的学习会,正常进行中,有兴趣的可以积极参与第三期:一起来学SLAM其中ORB-SLAM点云地图中相机的位姿初始化,无论算法工作在平面场景,还是非平面场景下,都能够完成初始化的工作。其中主要是使用了适用于平面场景的单应性矩阵H和适用于非平面场景的基础矩阵F,程序中通过一个评分规则来选择适合的模型,恢复相机的旋转矩阵R和平移矩阵t那么下面主要讲解关...

weixin_39991935的博客 2183

3月12日 对极几何,本征矩阵,基础矩阵,F/E矩阵计算,恢复旋转与平移,三角化视图重建

本征矩阵——相机坐标系的关系&基础矩阵——图像像素坐标系的关系(加入内参) 链接:https://blog.youkuaiyun.com/ssw_1990/article/details/53355572 本征矩阵$$E包含物理空间中两个摄像机相关的旋转和平移信息,本征矩阵E将左摄像机观测到的点的物理坐标与右摄像机观测到的相同点的位置关联起来。 基本矩阵FFF除了包含EEE的信息外,还包含两个摄像...

AbiUni(YY熊) 4814

ORB SLAM 对极几何 基础矩阵和本质矩阵

在上图,我们把两相机中心的连线OO'成为基线,把他们与观测物体的平面OO'P成为对极平面,对极平面与两相机图像的交线l和l'称为对极线,而OO'与两图像的交点e,e'就是对极点。我们可以看到在左图对极平面旋转时对极点是不变的,而在相机图像上所有对极线都会交于对极点,这个对极点就是另一个相机中心在其图像上的像,当然正如右图所示,对极点可以在图像外。如果仅看一个相机,我们并不能知道深度信息,可如果有两个相机的话(就像人有两只眼睛)我们就能得到深度的信息,随着观测点P的上下移动,对极平面也会围绕基线旋转。

swx89的博客 312

计算机视觉基础(三)——对极几何中的基本矩阵F和本质矩阵E

计算机视觉中,尤其是双视图几何中,基本矩阵F和本质矩阵E扮演着重要角色,今天我们就来简单了解一下它们吧。由于公式比较多,所以直接在word中编辑好后整个截图过来了。(参考书目——《计算机视觉中的多视图几何》)

雁回晴空的博客专栏 5833

对极几何

如下图所示,对极几何通常用来解决双目匹配搜索对应点的问题。 上图a中两个摄像机的光心分别是C与C’,而X为一个三维空间点,它在两个摄像机的成像平面上的投影点分别是x与x’。我们常称: 基线:两个摄像机光心的连线CC′ 对极点:上图b中的e与e’,它们分别是一幅视图中另一个摄像机中心的像。二维表示为基线CC′与两个成像平面的交点。 对极平面:是一张包含基线的平面,存在着对极平面的一个集合(以基线为轴转动),上图中的一个例子就是CXC′。 对极线:对极平面与图像平面的交线。上图中的例子是xe与x′

sky的博客 2335
上一篇: 如何根据相机的参数知道摄像机的内参数矩阵
下一篇: 单应性(同义词直射变换、射影变换和射影性等)(来自wiki)
Savitch
博客等级 码龄16年 84粉丝 130原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值