双目相机一般由左眼和右眼两个水平放置的相机组成。当然也可以做成上下两个目,但我们见到的主流双目都是做成左右的。在左右双目的相机中,我们可以把两个相机都看作针孔相机。它们是水平放置的,意味两个相机的光圈中心都位于x轴上。它们的距离称为双目相机的基线(Baseline,记作b),是双目的重要参数。双目相机一般由左眼和右眼两个水平放置的相机组成。当然也可以做成上下两个目,但我们见到的主流双目都是做成左右的。在左右双目的相机中,我们可以把两个相机都看作针孔相机。它们是水平放置的,意味两个相机的光圈中心都位于x轴上。它们的距离称为双目相机的基线(Baseline,记作b),是双目的重要参数。

图1双目相机的成像模型。OL,OR为左右光圈中心,蓝色框为成像平面,f为焦距。uL和uR为成像平面的坐标。请注意按照图中坐标定义,uR应该是负数,所以图中标出的距离为uR。

现在,考虑一个空间点P,它在左眼和右眼各成一像,记作PL,PR。由于相机基线的存在,这两个成像位置是不同的。理想情况下,由于左右相机只有在x轴上有位移,因此 P的像也只在x轴(对应图像的u轴)上有差异。我们记它在左侧的坐标为uL,右侧坐标为uR。那么,它们的几何关系如图1右侧所示。根据三角形P−PL−PR和P−OL−OR 的相似关系,有:

(1.1)

稍加整理,得:

(1.2)

这里d为左右图的横坐标之差,称为视差(Disparity)。根据视差,我们可以估计一个像素离相机的距离。视差与距离成反比:视差越大,距离越近。同时,由于视差最小为一个像素,于是双目的深度存在一个理论上的最大值,由fb确定。我们看到,当基线越长时,双目最大能测到的距离就会变远;反之,小型双目器件则只能测量很近的距离。

虽然由视差计算深度的公式很简洁,但视差d本身的计算却比较困难。我们需要确切地知道左眼图像某个像素出现在右眼图像的哪一个位置(即对应关系),这件事亦属于“人类觉得容易而计算机觉得困难”的事务。当我们想计算每个像素的深度时,其计算量与精度都将成为问题,而且只有在图像纹理变化丰富的地方才能计算视差。由于计算量的原因,双目深度估计仍需要使用GPU或FPGA来计算。

双目相机获取深度原理相关推荐

  1. 相机标定和双目相机标定标定原理推导及效果展示

    文章目录 前言 一.相机标定 1.相机的四个坐标系 2.相机的畸变 二.张正友标定法 1.求解内参矩阵与外参矩阵的积 2.求解内参矩阵 3.求解外参矩阵 4.标定相机的畸变参数 5.双目标定 6.极线 ...

  2. 相机标定、双目相机标定(原理)、三维重建效果展示

    1.相机标定的目的: (1)通过单目相机标定分别求出左右相机的内参数和外参数. (2)矫正由于镜头畸变造成的图片的变形,例如,现实中的直线,拍摄成图像后会外凸或内凹,进行相机标定后可以对这种情况进行校 ...

  3. 视觉SLAM——针孔相机模型 相机标定原理 双目相机模型 深度相机对比

    前言 本博客为主要学习<视觉SLAM十四讲>第5讲.<机器人学的状态估计>第6章6.4.1透视相机.<多视图几何>第5章摄像头模型等SLAM内容的总结与整理. 主要 ...

  4. 「 SLAM lesson-1.2 」传感器分类、单目相机、双目相机、深度相机

    结合 高翔老师的著作<视觉SLAM十四讲:从理论到实践>,加上小白的工程经验共同完成.建议作为笔记功能反复使用. 一.用于定位的传感器分类 主要分成两类:         1). 传感器携 ...

  5. ZED双目相机获取左右视图代码

    ZED相机开发官网点此进入 没用相机自带的tools进行相机标定,首先获取左右视图. 代码如下: import cv2 import pyzed.sl as sl import timeAUTO = ...

  6. 基于FPGA的双目相机目标深度图像提取实现——详细版

    目录 一.理论基础 1.1 整体构架 1.2 MATLAB仿真测试 二.核心程序 2.1 顶层程序

  7. 干货 | LIDAR、ToF相机、双目相机如何科学选择?

    点击"计算机视觉life"关注,置顶更快接收消息! 本文阅读时间约5分钟 本文翻译自卡内基梅隆大学 Chris asteroid 三维视觉技术的选择 传感器参数及定义 LIDAR ...

  8. 双目相机标定图片拍摄规范

    双目相机标定图片拍摄规范 文章目录 双目相机标定图片拍摄规范 前言 一.双目相机的布置 二.标定板的选用 三.图片采集的规范 四.进行标定的软件(选看) 五.靶标布置(选看) 总结 前言 相机标定是进 ...

  9. 通过双目深度相机获取三维坐标

    双目深度相机的深度测量流程: 1.对双目相机进行标定,得到两个相机的内外参数.单应矩阵. 2.根据标定结果对原始图像校正,校正后的两张图像位于同一平面且互相平行. 3.对校正后的两张图像进行像素点匹配 ...

最新文章

  1. 【官方福利】CSDN内测师限时申请,参与赢年末礼包
  2. 云原生安全的挑战与实践
  3. 从头开始写框架(一):浅谈JS模块化发展
  4. vs2010中release模式下调试程序
  5. 《微服务设计》读书笔记
  6. 防火墙(3)——iptables(1)
  7. java 服务器 文件写入文件_java 从服务器下载文件并保存到本地
  8. 一位40岁“老程序员”的经历,给你们说一些我的真实想法!
  9. mongorepository查询条件_MongoRepository实现增删改查和复杂查询【支持的查询类型】...
  10. antlr 4.7.1_新ANTLR 4.6的重要更改
  11. java 通用类型_Java获取通用类型的集合
  12. python ppt转pdf macos_Python批量将ppt转换为pdf
  13. php socket通信(tcp/udp)
  14. MapReduce中一次reduce方法的调用中key的值不断变化分析及源码解析
  15. CPLEX——关键字
  16. STA series --- 3.Standard cell library(PART-III)
  17. vue引入阿里巴巴图标(含彩色图标)
  18. Linux input子系统上报键值失败问题
  19. excel设置行高和列宽
  20. 【学术】我读科学网“马臻”老师博客体会

热门文章

  1. java 二元一次方程式_【java】用户输入二元一次方程的三个系数,计算机求解二元一次方程。...
  2. 微信小程序报SyntaxError: Unexpected end of JSON input
  3. (二十七)arcpy开发关于arcpy.Describe
  4. 智能灯控(基于ZigBee)
  5. β与α是等价无穷小的充分必要条件是β=α+o(α)
  6. 使用缓存实现前端性能优化——浏览器缓存机制、缓存分类
  7. A. Appalling Architecture(重心公式)
  8. 联通5g接入点设置参数_手机网速慢可以这样设置,网速瞬间飙升,还不知道真是可惜了...
  9. scl语言用plc脉冲做定时器_西门子PLC中使用SCL语言编程的技巧
  10. 运营案例分析:三只松鼠如何做到5年销售额超50亿?