原文:http://blog.csdn.net/xiaoyinload/article/details/49000855

本征矩阵E:它包含了物理空间中两个摄像机相关的旋转(R)和平移信息(T)。T和R描述了一台摄像机相对于另外一台摄像机在全局坐标系中的相对位置。

基础矩阵F:除了包含E的信息外,还包含了两个摄像机的内参数。由于F包含了这些内参数,因此它可以在像素坐标系将两个摄像机关联起来。

OpenCV中文版书中给出了本征矩阵E和基础矩阵F之间区别的解释:

本征矩阵E,是单几何意义上的,与成像仪无关,它将左摄像机观测到的点P的物理坐标和右摄像机观测到的相同的点的位置关联起来(例如将pl和pr关联)。

基础矩阵F,则是将一台摄像机的像平面上的点在图像坐标(像素)上的坐标和另一台摄像机的像平面上的点关联起来(在这里我们标定为ql,和qr)。

以下是个人对上面话的理解,不免出现理解错误,随着后面知识的配合理解,如错了会及时回来修正。

为了方便理解我们引入下图:

1、对于本征矩阵,如上图,对于左相机系我们选用OlXYZ为左摄像机坐标系(其中投影中心Ol为原点,Z轴为光轴的方向),同样的对于右相机,我们采用同样的方法建立右摄像机坐标系。那么上图中点pl和pr分别相对于各自的摄像机有各自的坐标,我们不妨设为pl(x1,y1,z1),pr(x2,y2,z2)。那么回到上面的内容,此时pl和pr就是对应上面黄色的pl和pr。

2、对于基础矩阵,如上图,我们对于左图像我们选择xlyl为图像坐标系,对于右相机也选择右上角为原点的图像坐标系,那么点pl和pr相对于图像坐标系的坐标。我们不妨设为pl(x,y),pr(x0,y0),此时对应上面黄色的的ql和qr坐标。

本征矩阵数学

在这里我首先说明一下pl,pr和Pl,Pr的区别:

1、pl,pr表示P在两个成像仪上所成的像在左右两个摄像机坐标系下的坐标。

2、P1,Pr表示点P在左右两个摄像机坐标系下的坐标。

给定点P,我们将要推导点P在两个成像仪的观测位置pl和pr之间的关系,pl和pr是在两个摄像机坐标系中观察到的点的物理坐标。利用对极几何可以将它们联系起来。

我们知道点Pl是点P在左摄像机Ol为中心的坐标系下的坐标。Pr是P点在右摄像机Or为中心的坐标系下的坐标。

我们令左摄像机Ol为坐标系的中心,Or相对于Ol的坐标为T,R表示旋转矩阵,那么Pr=R(Pl-T)。

Pr为3×1的列向量(相对于中心点),R为3×3的旋转矩阵,P1为3×1的列向量,T也是3×1的列向量。(因为Pr,Pl,T都是三维点)。

OpenCV书中给出了如下的一副图:

公式Pr=R(Pl-T),Pl表示在以Ol为原点的坐标,Pr表示以Or为原点的坐标。T=目标原点-摄像机原点。那么如果右摄像机的原点为T,那么就相当于右摄像机为“目标原点”,左摄像机为“摄像机原点”,这就和旋转矩阵和平移向量部分相吻合。

关键的一步是引入极面,它联系所有的相关事务。

我们知道描述一个空间平面可以用点法式来确定即平面的法向量和平面上的所有点x表示如下:

a表示平面内的一个定点,x表示平面内的任意一点,n是该平面的法向量。(上面a,x,n每一个都是一个向量,中间是点积)

我们选取左摄像机的投影中心Ol为坐标系的中心,即Ol为原点(0,0,0),那么点Pl和点T,就可以表示为相对于Ol的向量。那么极面上就有向量Pl和T,我们知道右手准则,与P1和T相垂直的向量和法向量同相,并且为P1和T的叉乘。那么通过点T的所有可能点Pl,以及包含这两个向量的方程表示如下:

将公式Pr=R(Pl-T) 即Pl-T=R-1Pr,并且R-1=RT(R是正交阵)得:

总是可以将叉积写成矩阵相乘的形式,故定义矩阵S为:

这样就推导出了第一个结果,将上式带入到叉积公式中,得到:

乘积RS就是我们的定义的本征矩阵,我们可以写成下面的简洁形式:

上述公式给出了点P在两个坐标系下的坐标之间的关系,但是我们要求解的是点P在两个成像仪上的投影点在两个坐标系下的关系。那么,我们利用投影方程(几何关系)即:

将上述两个投影方程带入到上面的公式,并且除以ZlZr/flfr,得到最终的公式:

总结:


1、E是一个秩亏矩阵,即为一个秩为2的3×3矩阵,因此方程实际上有无穷个解。例如,我们已知点pr和本征矩阵E,求解pl,那么我们求解不为唯一的pl。(或许是一条直线)。

2、本征矩阵中共有7个约束,即三个旋转参数、两个平移参数(没有设置缩放?)以及两个其他约束。

两个其他约束:

1)行列式值等于0(秩为2的3阶方阵)

2)两个非零奇异值相等(SVD分解),因为S是反对称阵,而R是旋转矩阵。

3、E不包括摄像机的内参数,因此它联系的是点的物理坐标或者摄像机坐标而不是像素坐标。

基础矩阵数学

本征矩阵E包含两台摄像机相关的所有几何信息,但不包括摄像机本身的任何信息。

在实际应用中,我们通常只对像素坐标感兴趣。为了将像素坐标和极线联系起来,即必须将两台摄像机的内参入信息引入进来,在相机标定——基本几何投影知识中讲到:

即相机内参数将相机坐标系下的坐标和图像坐标系下的坐标关联起来。

我们用p(像素坐标)代替本征矩阵公式中的q,已知q=Mp,即p=M-1q,那么关于本征矩阵E的公式变为:

我们定义基础矩阵F为:

因此有:

总结:

1、我们观察摄像机内参数矩阵M,如果图像没有畸变,即cx,cy为0,并且焦距进行了归一化处理,那么M就成了单位阵,此时本征矩阵F就等于基础矩阵E,即F=E。

2、基础矩阵F的秩也是2。

3、基础矩阵F有七个参数,其中两个参数是对级,三个参数表示两个像平面的单应性矩阵。(这方面可能需要后续知识配合理解)。

投影与三维视觉——本征矩阵和基础矩阵相关推荐

  1. 计算机视觉学习——投影与三维视觉——本征矩阵和基础矩阵

    原文:http://blog.csdn.net/xiaoyinload/article/details/49000855 也可以参考知乎这个问题下的回答:https://www.zhihu.com/q ...

  2. (学习笔记)投影与三维视觉——本征矩阵和基础矩阵

    转自:http://www.csdn123.com/html/mycsdn20140110/f9/f9f203e02a7cc4b223884ca805d75eab.html 本征矩阵E:它包含了物理空 ...

  3. SLAM笔记(四)运动恢复结构的几何数学(本征矩阵、单应矩阵、基础矩阵)

    1. 间接法进行运动恢复的前提假设 对于结构与运动或视觉三维重建中,通常假设已经通过特征匹配等方法获取了匹配好的点对. 先求出匹配点对再获取结构和运动信息的方法称作间接法. 间接法最重要的三个假设是: ...

  4. 计算机视觉|投影与三维视觉

    这一篇将学习投影与三维视觉,沿用上一篇 计算机视觉|针孔成像,相机内外参及相机标定,矫正的重要性 摄像机内参数矩阵M.畸变参数.旋转矩阵R.平移向量T以及但影响矩阵H.回顾放射和投影变换,并使用POS ...

  5. 极几何,本质矩阵,基础矩阵,单应矩阵,相机投影矩阵

    什么是三角化? 三角化就是下图的红字部分:K和K'分别为两个相机的内参矩阵 什么是极几何? 极几何描述了同一场景或者物体在两个视点图像间的对应关系. 下图中的O1和O2分别是两个相机的光心,即摄像机坐 ...

  6. 视觉SLAM中,本质矩阵、基础矩阵、单应性矩阵自由度和秩分析

    视觉SLAM中,本质矩阵.基础矩阵.单应性矩阵自由度和秩分析 1.各个矩阵的自由度 由于基础矩阵和本质矩阵都是由对极约束来的 1.1 本质矩阵E的自由度为5,秩为2 1.1.1 自由度: 首先,旋转和 ...

  7. 计算机视觉三维重建的几何基础:坐标系与关键矩阵(基础矩阵、本质矩阵、单应矩阵)...

    作者丨李迎松@知乎 来源丨https://zhuanlan.zhihu.com/p/159194599 编辑丨3D视觉工坊 你站在桥上看风景, 看风景人在楼上看你. 明月装饰了你的窗子, 你装饰了别人 ...

  8. 多视图几何总结——单应矩阵和基础矩阵的兼容关系

    多视图几何总结--单应矩阵和基础矩阵的兼容关系 多视图几何总结--单应矩阵和基础矩阵的兼容关系 (1)单应矩阵和基础矩阵的兼容性 (2)基础矩阵 -> 单应矩阵 (3)单应矩阵 -> 基础 ...

  9. 计算机视觉中本质矩阵的概念,【计算机视觉】Lecture 19:本质矩阵和基础矩阵...

    对极几何 左边 极点:相机1所看到的相机2的位置. 右边 极点:相机2所看到的相机1的位置 对极几何 对应点位于共轭极线上 对极几何 给定一幅图像中的一个点,我们如何确定在第二幅图像中要搜索的对应极线 ...

最新文章

  1. App.config的典型应用
  2. MySQL修改root密码的各种方法整理
  3. java分解因式_用JAVA因式分解 并以9=3×3格式输出
  4. Django搭建个人博客:给文章加个漂亮的标题图
  5. 3DSlicer3:模块管理(一)颜色、DCM、数据、模型、注释
  6. code vs 集成tfs_关于编译器和集成开发环境,一文给你讲明白!
  7. 2018年最新的single-cell-RNA-seq analysis repositories
  8. mysql 乐观锁_使用Mysql乐观锁解决并发问题
  9. cmd黑窗口命令行模式进入指定盘符下的任意文件夹
  10. 50个最有价值的数据可视化图表
  11. Spring : Spring容器之SmartLifeCycle的简单使用
  12. 基于python人脸光照不均匀数据的制作
  13. 笔记本电脑换内存条流程
  14. 关于阿里直播 安卓手机支付宝不支持的处理
  15. 操作系统--6设备管理
  16. 学习《可复制的领导力》有感
  17. Kafka中zookeeper的作用详解(7点)
  18. 如何使用数据库的SQLServer身份验证登陆
  19. 一加7t人脸识别_一加7pro有人脸识别吗一加7和一加7pro的区别
  20. 小米方法论总结:雷军首部商业思考著作《小米创业思考》面世

热门文章

  1. nas服务器搭建 linux,小白都能看懂的NAS服务器搭建教程
  2. delete什么头文件C语言,C++中new和delete的介绍
  3. Java中的中介器设计模式
  4. 最长公共子序列_Java恶意序列化背后的历史和动机
  5. 顶部对齐css表单,vertical-align 表单元素垂直对齐的解决方法
  6. cli3 px转rem适配移动端_Vue:将px转化为rem,适配移动端
  7. 你多久没换过壁纸了?新年了,换一换吧!
  8. 一个用Spring Boot做的垃圾分类小程序,你不拿来学习一下?
  9. 妙用 Intellij IDEA 创建临时文件,Git 跟踪不到的那种
  10. 重磅:Elasticsearch上市!市值近50亿美元