3D Vision 八讲:第五讲
目录
七、对极几何和基本矩阵
1、单视角重建歧义性
2、对极约束
(1)对极约束
(2)相机参数未知:基本矩阵(Fundamental matrix)
(3)从基本矩阵中重建相机投影参数P
(4)相机参数已知:本质矩阵(Essential matrix)
(5)从本质矩阵中重建相机投影参数P
3、基本矩阵F的估计
(1)线性方法:八点法
七、对极几何和基本矩阵
1、单视角重建歧义性
在第四讲中,我们已经可以从单张图像中估计相机投影矩阵,而根据,我们建立了二维图像中点和三维空间点的关系。对于最简单的针孔相机模型,我们有下面图所示的关系。
很显然,对于一个已知的点
,会有无数个与之对应的三维空间点符合
这个条件。这就是单视图重建歧义性存在的根本原因。
如上图所示,世界坐标中长度明显不一致的两个物体,在照片中看起来反而是人比较大,这是因为对于相机模型来说,越靠近镜头的物体会显得越大。比如在第一张图中那样,各种不同颜色的点,它们的坐标相差较大,但是投影到图像上都是同一个点。这就是歧义性的一个现象。
那么要怎样处理这个问题呢?于是人们引入了多视角几何。一个最简单的双目重建系统如下图所示:
对于图中所示相机参数已知,且两相机光轴平行的系统。我们观察到两个相似三角形和三角形
。
在式子中为视差(disparity)。下图为从视差重建深度图的例子。
很显然,对于更一般的双目视觉系统,显然不能用这种视差图简单的处理,于是我们引入对极约束以及对极几何。
2、对极约束
(1)对极约束
首先我们来思考这样的一个问题,对于左侧相机成像平面的点,它对应的点在右侧相机成像平面内的位置在哪?如果是平行光轴情况,那很容易从本讲第一节图片中可以判断出来。而对于非平行光轴的情况就没那么容易了。于是我们引入对极约束
这里介绍几个概念:
- 基线:相机中心的连线 (唯一)
- 极点:基线和图像平面的交点 (唯一)
- 极平面:包含基线和世界点的平面 (不唯一)
- 极线:极平面和图像平面的交线 (不唯一)
它有下面的性质:
- 所有的极线相交于极点
- 极平面和左右两个图像平面分别相交于左右极线
有了上面的介绍,我们现在可以回到上面的提到的问题,左侧图像内的点,它在右侧图像的对应点
应该在哪里呢?有了对极约束之后,我们虽然仍然不能确定它的具体位置,但是可以把方位缩小的一条线段内:
这就是对极约束的本质作用:它把对应点搜索问题从二维全图减小到一位线段内搜索的问题。下图是两个具体的例子:左图上的绿色点,在使用对极约束后,右图内搜索的范围只在对应的极线内。
因此我们可以总结一下,如果以极线的相交与否进行分类,总共有两类相机系统:会聚摄像机与平行摄像机
下图是会聚相机,极线会相交于一点(相机平面内或者相机平面外)
下图是平行相机,极限相交于无穷远处,即极点在无穷远处
(2)相机参数未知:基本矩阵(Fundamental matrix)
接下来我们来把上述直观的对极约束进行数学化,找到它存在的代数方程含义。
基本矩阵几何推导
基本矩阵是对极几何的代数表示。下面,我们从一个点与其对极线之间的映射来推导基本矩阵,然后详细说明这个矩阵的性质。由上面的分析我们已经知道了,对于一幅图像上的每个点, 在另一幅图像上存在这一条对应的极线
.在第二幅图上,任何与该点
匹配的点
必然在极线
上。该极线是过点
与第一个摄像机中心的射线在第二幅图上的投影。因此,存在一个从第一幅图上的点到另一幅图像上阈值对应极线的映射:
我们使用几何推导形式,对这个映射进行探究。从一幅图上的点到另一幅图上的线的映射可以分解为两步。第一步,把点映射到另一幅图上它的极线
上的某个点
, 该点是
的一个潜在匹配点。第二步,连接
与极点
所得的直线就是极线
。如下图所示:
步骤1 点通过平面的转移。考虑任何不通过两个相机中心的平面,过第一个摄像机中心
和点
的射线与平面
相交于一点
。这个点再投影到第二个平面形成点
,这个过程称为通过平面
的转移。我们把这个过程记作
。
步骤2 构造对极线。给定点,通过
和极点
的对极线
可以记作:
。因为
,所以
。其中我们定义了
,它就是基本矩阵。
目前为止我们只考虑了由
定义的映射
,现在我们可以叙述基本矩阵最基本的性质。
对两幅图像中任何一对对应点
,基本矩阵都满足等式:
这是很容易得到证明的,因为在极线
上,所以
。
基本矩阵的性质:
是秩为2,自由度为7的矩阵
是
的极线,
是
的极线
,
(3)从基本矩阵中重建相机投影参数P
从基本矩阵
中重建相机投影矩阵
。
- 一对相机投影矩阵
,能确定唯一的基本矩阵
- 但是已知的一个基本矩阵
并不能确定唯一的一对投影矩阵
,它存在歧义性。如果
表示一个三维投影变换的
矩阵,那么投影矩阵组合
和
的基本矩阵是相同的。即,不管由基本矩阵求解出来的投影矩阵有多么准确,它离真实的矩阵还差一个投影矩阵
。
- 由于这样的多义性,通常要对给定的基本矩阵定义摄像机矩阵对的一种特殊的规范形式,即规定第一个矩阵取简单的形式
,对于一个已知的基本矩阵
,其相机投影矩阵可以为:
当然对于一个投影矩阵:
在规范形式的解上使用投影变换:的解,也是正确解。
下图是基本矩阵和本质矩阵重建机投影矩阵产生的误差
(4)相机参数已知:本质矩阵(Essential matrix)
(标定相机:R,t已知,内参矩阵也需要知道,因为需要求在每个相机系统的归一化坐标,即从图像二维坐标转换到三维的单个相机的三维坐标)
对本质矩阵讲的清楚明白的网上很少,而且巴塞罗那自治大学的PPT上也是错漏百出。为此我借用多视角几何的教材进行讲述是最清晰的。
首先介绍一下归一化坐标,如上图所示的,
两个坐标系。考虑分解为
的摄像机矩阵,令
为图像中的一点。因为我们的相机内参
均已知,那么我们可以用它的逆矩阵作用于点
,得到点
。从而
其中是图像点在归一化坐标下的表示。它可以被视作空间点
在标定矩阵等于单位矩阵
的摄像机
下的像。摄像机矩阵
被视作归一化摄像机矩阵,已知标定矩阵的影响已经被去掉了。
现在考虑一对归一化的摄像机矩阵和
。与归一化坐标系统下的相机矩阵对应的基本矩阵按照惯例称为本质矩阵,它有着如下的形式:
用归一化坐标系统表示方式来表达对应点关系时,本质矩阵的定义方程是:
当我们用和基本矩阵一样的图像坐标系统的方式来表达对应关系时候,即时,我们有:
把它与基本矩阵的关系式比较便可推出基本矩阵和本质矩阵之间的关系是:
例子:
我们用简单的光轴平行双目系统为例
对于这样的两个相机平行的系统,很显然旋转矩阵,因为两个相机之间只有平移。我们假定平移向量
。那么由上述求本质矩阵的式子可以求得
这个时候我们可以不需要知道相机内参,而通过归一化坐标的对应点关系建立本质矩阵的方程,在这里我们通过观察可以看到,在归一化坐标系统内,
。
本质矩阵的性质
本质矩阵是一个的矩阵,它包含一个自由度为3的旋转矩阵和自由度为3的平移向量,它的未知量为6,但是因为有一个全局尺度因子的多义性,所以它的自由度为5。因此它的行列式等于0,即它是奇异矩阵(秩等于2)。一个
矩阵是本质矩阵的充要条件是它的奇异值中有两个相等,而第三个奇异值等于0。
(5)从本质矩阵中重建相机投影参数P
从本质矩阵中恢复相机投影矩阵
。需要注意的是,本质矩阵与基本矩阵射影多义性不同,在相差一个尺度因子和一个4重多义性下,可以从本质矩阵恢复摄像机投影矩阵
。这就是说除全局尺度因子外,不能被确定的仅是4个可能解。
可以假定第一个摄像机矩阵是。为了计算第二个相机投影矩阵
,必须把
分解为一个反对称矩阵和一个旋转矩阵的乘积
。设
的SVD分解为
,则
的解为下面四个之一:
其中
为矩阵
的第三列
虽然有四个解,但是我们通常只选用相机在世界物体的同一侧,且均位于物体的前面,如下图所示图(a)的解,即才是唯一的可行解。
3、基本矩阵F的估计
F矩阵为什么如此重要?因为它包含了相机参数和两个视角的对极几何信息。更重要的是F矩阵在不重建场景的基础上就能知道场景随视角的变化信息。
目的:估计两张图像之间的基本矩阵
条件:
- 相机内参外参未知
- 有一系列的图像之间点的对应
对于两图中的对应点,
,基本矩阵对它们有约束关系:
解这个方程组,存在9个未知量,一个对对应点,只能提供一个方程。而F矩阵的秩为2,自由度为7。所以在相差一个缩放因子的情况下,给定7个点对应时,有非线性解法,而给定8个点则有线性解法。给定超过8个点,则通过最小二乘法进行求解,这是求F矩阵的一般原理。这里着重介绍八点法。
(1)线性方法:八点法
八点法是最简单最有效率的基本矩阵估计方法,在各个开源框架中均有使用。八点法把八个点对应搜集起来,组合成下面的式子。
这是一个线性最小二乘的问题。
解法和上一讲求解相机投影矩阵的方法一样。使用SVD分解方法:
的解为矩阵
的最后一列。
如果这样就完成,会导致一个问题,即不满足F矩阵的秩为2的性质,它还是3。这样会导致极线不相交于极点。如下图所示,让秩变为2,效果就好多了。
那怎么让矩阵F的秩从3降为2呢?很简单,对F进行SVD分解,,注意这里的UDV和之前的不一样。然后让对角阵D的最后一个元素等于0就可以了:
总结一下八点法的步骤:
- 从两幅图像的8个点对应
创建
矩阵
- 计算
矩阵的SVD分解
- 获取
矩阵的最后一列,作为基本矩阵
的初始解,并把9×1的矩阵转换成3×3
- 对矩阵
做SVD分解,
,并把矩阵
的最后一个对角线上的值置0
- 重新合成
得到最终的结果
有兴趣的可以看看基本矩阵歌,比较有意思。
归一化八点法:
- 八点法对噪声和错误匹配非常敏感,导致算法结果不鲁棒,因此提出了归一化方法。
- 归一化方法结果是让每一幅图像的8个点的形心位于新的坐标原地,并且8个点离新的坐标原点RMS均方根距离等于
。很显然这里面涉及到对图像的缩放和平移,所以我们应该在八点法步骤1之前进行归一化。在八点法步骤5之后解除归一化。
- 归一化例子如下图所示
- 实际应用中都默认使用归一化的八点法
3D Vision 八讲:第五讲相关推荐
- 3D Vision 八讲:第四讲
六.相机投影矩阵估计 在上一讲当中我们引出了相机投影矩阵以及它们在不同相机模型里面的表达形式.回忆一下,对于齐次的世界坐标系中的三维点,以及齐次的图像坐标点.我们有: 其中为相机投影矩阵,是一个的矩阵 ...
- 3D Vision 八讲:第六讲
目录 八.结构计算 1.三角测量法 (1)代数(线性)方法 (2)几何方法 (3)重建误差与相机之间角度关系 八.结构计算 1.三角测量法 三角测量法:给定空间三维点在两个或多个图像中的投影点,重建出 ...
- C#发现之旅第八讲 ASP.NET图形开发带超链接的饼图
C#发现之旅第八讲 ASP.NET图形开发带超链接的饼图 袁永福 2008-5-15 系列课程说明 为了让大家更深入的了解和使用C#,我们将开始这一系列的主题为"C#发现之旅&quo ...
- 【数据结构_浙江大学MOOC】第六七八讲 图
列出连通集 题目 给定一个有N个顶点和E条边的无向图,请用DFS和BFS分别列出其所有的连通集.假设顶点从0到N−1编号.进行搜索时,假设我们总是从编号最小的顶点出发,按编号递增的顺序访问邻接点. 输 ...
- 计算机课程 图层关系认识 课件,PhotoShop系列视频讲座(八讲)
PhotoShop被大家简称为"PS",和CAD一样,PhotoShop是建筑规划专业的学生必须掌握的一款软件,其重要性毋庸赘言. PhotoShop是在全世界普及率二位的位图处理 ...
- 数独游戏技巧从入门到精通_从入门到精通八讲 | 高效氮化镓电源设计第六讲—EMC优化和整改技巧...
氮化镓电源设计从入门到精通,这个系列直播共分为八讲,本篇第六讲将为您介绍EMC优化和整改技巧,助您完成电源工程师从入门到精通的蜕变. 前期回顾(点击下方内容查看上期直播): - 第一讲:元器件选型 - ...
- 王佩丰excel学习笔记(五):第十五——十八讲
目录 第十五讲 第十六讲 第十七讲 第十八讲 第十五讲 根据某些条件突出显示单元格:开始-条件格式-突出显示单元格规则 制作数据范围趋势:开始-条件格式-数据条 用于分组统计:插入-切片器 多重条件格 ...
- 3D Vision、SLAM求职宝典 | 数学篇(B)
B 数学篇 涉及概率,矩阵,数值计算,优化等. 又见数学,过来过去,不是数学就是编程,要想在SLAM领域做出点好的贡献,两者一个比一个难,有时候编程比数学更难--- 目录 1. 一层楼共有n级台 ...
- 趣谈网络协议笔记-二(第十八讲)
趣谈网络协议笔记-二(第十八讲) DNS协议:网络世界的地址簿 自勉 勿谓言之不预也 -- 向为祖国牺牲的先烈致敬! 正文 DNS用于域名解析,但也不仅仅是用于域名解析,不仅仅是将域名转换成IP. 在 ...
最新文章
- 达摩院三周年,当初立的flag都实现了吗?
- 企业移动化诉求与开发者之间的矛盾
- windows常见的运行命令以及各快捷键组合
- php json 转 xml格式,PHP中如何将JSON文件转XML格式
- 细说websocket快速重连机制
- 论文阅读 | DasiamRPN
- 浏览器绑架:曾几何时,喜爱的“百度”成为了“流氓”的代名词?- 移除hao123首页...
- LeetCode 字符串简单部分 算法 python实现
- SCCM 2012 SP1系列(一)先决条件准备-1
- 计算机网络及标准化组织
- CCFCSP 201803-2碰撞的小球
- 快乐机:人活着真的只为追求快乐吗?
- “超低能,劲搞笑”笑话管理系统 v2.0
- javascript(String, Array, Math, Date, Object)方法整理
- Efficientnet笔记:各个框架最适合的图像尺寸
- java记录访问次数_使用java中的session来记录访问次数
- 双硬盘好还是纯固态好学计算机专业,固态硬盘虽好,但是和机械硬盘相比还是有其“不足之处”...
- 【EtherCAT理论篇】二、EtherCAT工作原理
- Spring整合JMS(二)——消息监听器
- 阿里毕玄:阿里十年,从分布式到云时代的架构演进之路