立体视觉(Stereo Vision)-本征矩阵(essential matrix)和基本矩阵(fundamental matrix)
1 物体深度
问题描述:从不同的位置拍摄相同物体的两张图片,恢复其深度
这里假设摄像机的镜头平行
由相似三角形:
由上面第一、二等式可得:
深度与视差成反比
2 如何配对左右图片的点
问题描述:已知两张图像,由不同的照相机拍下,在左图中选一点,
如何在右图中找到对应的点。
由上图可知,
左图中点 x 对应在右图中的点位于线段 l' 上
右图中点 x‘ 对应在左图中的点位于线段 l 上
2.1 极线几何(epipolar geometry)的基本概念
- 基线(baseline): 连接两个照相机中心点的线段,如图中的OO'。
- 极平面(epipolar plane): 由两个相机中心点, 和物体X组成的平面,如图中的OO'X。
- 极点(epipoles): 基线与两张图像的交点,如图中的e, e'。
- 极线(epipolar lines): 极平面与两张图像的交线,如图中的 l ,l'。
2.2 极线约束(epipolar constraint)
2.2.1 calibrated case
这种情况,相机的内参和外参已知,极线几何工作在一对归一化相机(normalized camera).
归一化相机(normalized camera)使形成的归一化图像平面位于Z=1处。
图像归一化( image normalization)是指对图像进行了一系列标准的处理变换,使之变换为一固定标准形式的过程。
归一化的图像可以减少几何变换的影响,加快梯度下降求最优解的速度。
在世界坐标系中,如果把一个相机位于原点,另一个相机的位置可以通过旋转和平移得到。
两者关系如下图所示,右边相机的位置可以通过旋转(R)和平移(T)得到。
从上图可知: 向量Rx, 位移 t 和 点 x' 共面,所以:
其中矩阵 E 为本征矩阵(essential matrix)
由于 矩阵 [ tx] 的秩为2, 矩阵R的秩为3,所以 E 的秩为2.
E有5个未知数(2个平移,3个旋转)。
在向量的叉乘运算中,把第一个向量写成矩阵的形式:
其中矩阵 [ax] 的秩为2.
假设右边图像上点x'=(u', v')
穿过点 x' 的 直线 l' 可以表示为:au’+bv'+c=0;
其中沿直线 l' 的向量可以表示为:
所以 或
- ,即左图中点 x 对应的右图中的点 x' 位于线段 l' 上
- 同理, ,即右图中点 x‘ 对应的左图中的点 x 位于线段 l 上
2.2.2 Uncalibrated case
在这种情况下,两个相机的内参矩阵 K 和 K’ 未知。
从相机坐标系到像素坐标系的对应关系:
其中 为像素点坐标, 为相机坐标系的坐标, 为内参矩阵。
代入上式:
化简:
令
则:
F 称为基本矩阵(fundamental matrix)
与calibrated case 类似,uncalibrated case也有类似的结论:
- , 即左图中像素点 x 对应的右图中的像素点 x' 位于线段 l' 上
- , 即右图中像素点 x‘ 对应的左图中的像素点 x 位于线段 l 上
如果觉得上面的推论有跳跃性,下面链接的博客推导非常详细:
计算机视觉基础4——对极几何(Epipolar Geometry)
计算机视觉基础5——本质矩阵与基本矩阵(Essential and Fundamental Matrices)
3 求解基本矩阵(fundamental matrix)
已知两对点:
转化为凸优化问题:
其解为:的最小特征值的特征向量。
立体视觉(Stereo Vision)-本征矩阵(essential matrix)和基本矩阵(fundamental matrix)相关推荐
- 2.本征矩阵 基本矩阵以及对极几何之间的约束关系
摘要: 本节重点在于左右像点之间的约束关系,左右像素点之间的约束关系. 本征矩阵E和基本矩阵F可以分别表示上述两约束关系 如非必要,可只看总结 Epipolar geometry is a descr ...
- SLAM笔记(四)运动恢复结构的几何数学(本征矩阵、单应矩阵、基础矩阵)
1. 间接法进行运动恢复的前提假设 对于结构与运动或视觉三维重建中,通常假设已经通过特征匹配等方法获取了匹配好的点对. 先求出匹配点对再获取结构和运动信息的方法称作间接法. 间接法最重要的三个假设是: ...
- 立体视觉–stereo correspondence(双目立体匹配)
立体视觉是计算机视觉领域的一个重要课题,它的目的在于重构场景的三维几何信息.立体视觉的研究具有重要的应用价值,其应用包括移动机器人的自主导航系统,航空及遥感测量,工业自动化系统等. . 引言 立体视觉 ...
- Python - pyradiomics - 邻域灰阶依赖性矩阵(Neighboring Gray Level Dependence Matrix)
文章目录 理论 Python实操 有关邻域灰阶依赖性矩阵(Neighboring Gray Level Dependence Matrix, NGLDM)的一切的起源: Sun C, Wee WG. ...
- 【文献阅读】Sensor Fusion Algorithm Design in Detecting Vehicles Using Laser Scanner and Stereo Vision
利用激光扫描仪和立体视觉检测车辆的传感器融合算法设计 摘要 众所周知,激光扫描仪在探测障碍物的距离和速度方面比立体视觉具有更好的精度,而立体视觉比激光扫描仪更能分辨物体. 通过传感器融合方法,可以最大 ...
- 投影与三维视觉——本征矩阵和基础矩阵
原文:http://blog.csdn.net/xiaoyinload/article/details/49000855 本征矩阵E:它包含了物理空间中两个摄像机相关的旋转(R)和平移信息(T).T和 ...
- python 对 list[list] 矩阵进行逆时针旋转90度 matrix = list(map(list, zip(*matrix)))[::-1]
思路源于:Leetcode的螺旋矩阵题解 - Sui Xin 对于一个矩阵如下. matrix = [[1,2,3],[4,5,6],[7,8,9] ] 将其逆时针旋转90度为如下形式. res = ...
- c++实现Matlab矩阵Matrix类(实矩阵Matrix、复矩阵CMatrix)
全栈工程师开发手册 (作者:栾鹏) matlab2c动态链接库下载 matlab库函数大全 matlab2c基础教程 matlab2c开发全解教程 开发注意事项: 1.目前matlab2c对矩阵的实现 ...
- matlab 矩阵 矢量场,Matlab将矢量转换为矩阵(Matlab turning vectors into a matrix)
Matlab将矢量转换为矩阵(Matlab turning vectors into a matrix) 我不确切地知道如何用这个问题来表达,但我有3个列向量,我试图将它们变成矩阵,这样矩阵基本上看起 ...
最新文章
- Datawhale组队学习周报(第018周)
- 一句话懂什么是JS闭包
- ajax项目设置,jQuery_ajax预处理_和后置处理;项目中ajax自动设置_token_请求头,_接口响应code的统一处理...
- 上海建桥学院计算机专业,上海建桥学院全国排名 特色专业多与计算机有关
- postgresql集群方案hot standby初级测试(二) ——处理数据能力
- android js gps定位,Android中的定位Demo
- TextView 内容居中
- jQuery UI.Layout
- docker常用操作(六)docker安装内网穿透nps
- 公告:CSDN下载频道即将全面改版
- Firemonkey使用Android原生控件一些注意事项
- Apache POI操作PPT: 文字替换 图片替换 表格填充 PPT合并
- android flv视频播放器代码,音视频学习代码合集
- python柠檬班第三期错误报告
- 〖Python 数据库开发实战 - Python与Redis交互篇⑯〗- 综合案例 - 新闻管理系统第二阶段完结 - “app.py“ 模块收尾及案例演示
- 非计算机专业有前景吗,十大最有前景的专业,第一名居然不是计算机
- 模式识别研究生:三维点云从零开始学习
- 解惑一---大数据与Oracle数据库
- 为何要配置环境变量?带你一探究竟
- 那些证书相关的玩意儿