求解基础矩阵

一、对极几何

1.1概念

对极几何(Epipolar Geometry)是Structure from Motion问题中,在两个相机位置产生的两幅图像的之间存在的一种特殊几何关系,是sfm问题中2D-2D求解两帧间相机姿态的基本模型。

1.2基本模型

在这里插入图片描述
其中c0、c1为两个相机中心,p为空间中一点,p在c0、c1对应像平面上的投影分别为x0、x1。c0、c1连线与像平面的交点e0、e1称为极点(Epipoles),l0、l1称为极线(Epipolar Lines),c0、c1、p三点组成的平面称为极平面(Epipolar Plane)。

二、基础矩阵

通过对极几何一副图像上的点可以确定另外一幅图像上的一条直线,这种情况用基础矩阵来表示。通过一种映射,一幅图像上的点可以确定另外一副图像上的一个点,这种情况用单应矩阵。
本质矩阵是基础矩阵的一种特殊情况,是在归一化图像坐标下的基础矩阵。
本质矩阵
存在一个不经过两个相机光心的的平面π,光心C与x的射线与平面π相交与一点X。该点X又投影到第二幅图像平面上的点x′。这个称为点x通过平面π的转移。点x,x′是平面ππ上的3D点X在两个相机平面上的像。对应每一个3D点X都存在一个2D的单应R把每一个x映射到x′。
在这里插入图片描述
如上图所示,给定一个目标点P,以左摄像头光心Ol为原点。点P相对于光心Ol的观察位置为Pl,相对于光心Or的观察位置为Pr。点P在左摄像头成像平面上的位置为pl,在右摄像头成像平面上的位置为pr。
现在我们要寻找由点P、Ol和Or确定的对极平面的表达式。注意到平面上任意一点x与点a的连线垂直于平面法向量n,即向量 (x-a) 与向量 n 的点积为0:(x-a)·n = 0。在Ol坐标系中,光心Or的位置为T,则P、Ol和Or确定的对极平面可由下式表示:
在这里插入图片描述
由Pr = R(Pl-T) 得在这里插入图片描述
另一方面,向量的叉积又可表示为矩阵与向量的乘积,记向量T的矩阵表示为S,得:
在这里插入图片描述
在这里插入图片描述
也就可以得到在这里插入图片描述
就可以得到本质矩阵E=RS。
通过矩阵E我们知道Pl和Pr的关系满足:
在这里插入图片描述
根据相似三角形定理,pl = flPl/Zl 和 pr = frPr/Zr 我们可以得到点P在左右两个摄像机坐标系中的观察点 pl 和 pr 应满足的极线约束关系为:
在这里插入图片描述
注意到 E 是不满秩的,它的秩为2,那么
在这里插入图片描述
表示的是一条直线,也就是对极线。

2.1基本矩阵原理

为了描述对极几何,引入基础矩阵F。对于一幅图像上的点x(图上p1),在另一幅图像上存在对极线l’,并且在第二幅图像上,与x匹配的点x’(点p2)必然在l’上。为了表示x与l’关系,我们令基础矩阵F定义为: l′=Fx。

假设第一幅

  • 2
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
求解大型矩阵的奇异值分解是一种常见的数学问题,在多视图几何和机器学习领域中得到广泛应用。奇异值分解(Singular Value Decomposition,SVD)是一种矩阵分解的方法,它将一个矩阵分解为三个矩阵的乘积:A = UΣV^T,其中U和V是正交矩阵,Σ是一个对角矩阵。奇异值分解的重要性在于它可以提供矩阵的最佳低秩近似。 对于大型矩阵的奇异值分解,可以使用一些高效的算法和工具来求解。例如,在MATLAB中,可以使用svd函数来进行奇异值分解。这个函数可以接受大型矩阵作为输入,并返回相应的奇异值、左奇异向量和右奇异向量。 使用svd函数求解大型矩阵的奇异值分解的代码如下所示: ```matlab % 定义一个大型矩阵A A = randn(1000, 1000); % 求解奇异值分解 [U, S, V = svd(A); % 输出结果 disp(U); disp(S); disp(V); ``` 上述代码中,我们首先定义了一个1000x1000的随机矩阵A。然后,使用svd函数求解矩阵A的奇异值分解,并将结果存储在U、S和V变量中。最后,我们输出了U、S和V的值。 需要注意的是,对于大型矩阵的奇异值分解,计算时间可能会比较长,因此在实际应用中需要考虑计算效率和内存消耗。一些优化的方法,如分布式奇异值分解等,可以在处理大规模数据时提高计算效率。<span class="em">1</span><span class="em">2</span> #### 引用[.reference_title] - *1* [利用SVD(奇异值分解)求解线性方程组.zip](https://download.csdn.net/download/a435262767/12883418)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* [Matlab基础应用学习笔记.md](https://download.csdn.net/download/weixin_52057528/88284511)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值