(转载不是目的,而是为了方便自己!)

双目立体视觉,在百度百科里的解释是这样解释的:双目立体视觉(Binocular Stereo Vision)是机器视觉的一种重要形式,它是基于视差原理并利用成像设备从不同的位置获取被测物体的两幅图像,通过计算图像对应点间的位置偏差,来获取物体三维几何信息的方法。

一 、视差 Disparity与深度图

提到双目视觉就不得不提视差图:双目立体视觉融合两只眼睛获得的图像并观察它们之间的差别,使我们可以获得明显的深度感,建立特征间的对应关系,将同一空间物理点在不同图像中的映像点对应起来,这个差别,我们称作视差(Disparity)图像。

对于视差的理解自己可以体验一下:将手指头放在离眼睛不同距离的位置,并轮换睁、闭左右眼,可以发现手指在不同距离的位置,视觉差也不同,且距离越近,视差越大。

那么提到视差图,就有深度图,深度图像也叫距离影像,是指将从图像采集器到场景中各点的距离(深度)值作为像素值的图像。获取方法有:激光雷达深度成像法、计算机立体视觉成像、坐标测量机法、莫尔条纹法、结构光法。

那么这里引申一下深度图与点云的区别,点云:当一束激光照射到物体表面时,所反射的激光会携带方位、距离等信息。若将激光束按照某种轨迹进行扫描,便会边扫描边记录到反射的激光点信息,由于扫描极为精细,则能够得到大量的激光点,因而就可形成激光点云。

深度图像经过坐标转换可以计算为点云数据;有规则及必要信息的点云数据可以反算为深度图像。 两者在一定条件下是可以相互转化的,之前的博客里,有使用PCL库实现过点云提取深度图,当然给出相机参数也是可以由深度图转为点云的。截图一个深度图:

所以深度与视差的关系如下

比如绝对差值法,绝对差值图的计算方法如下:

D=|L-R|

式中,L、R和D分别代表左视图、右视图和对应的绝对差值图的亮度值。绝对差值图并不是严格意义上的视差图,但是它的计算方法最为简单,速度快,它给出的结果可以作为参考

那么我们知道视差又有另外一个概念就是UV-disparity mapping,简单的给个图表示:

是怎么得到这个结果的呢?原来是统计视差的个数,比如V-disparity Map中的第一行分别统计视差为0,1,2,3,4,5的个数,所以得到了V-disparity Map的第一行分别为

0,2,0,1,1,1,那么在真实的图像中得到的结果如下:

那么利用视差可以做很多有用的功能,比如列举一篇文章

UV disparity based obstacle detection and pedestrian classification in urban traffic scenarios

二  Rays

ray就是连接图像上一点到光心形成的一条射线。这个也是之后的对极约束的基础。

那么建立世界坐标系,我们的两条rays是相交的。如下图所示,接下来就是利用rays的相交关系,来解释対极几何(Epipolar geometry )了。

以上的图文说明了对极几何(Epipolar Geometry)描述的是两幅视图之间的内在射影关系,与外部场景无关,只依赖于摄像机内参数和这两幅试图之间的的相对姿态。

有以下几种概念

1. 基线(baseline):直线Oc-Oc'为基线。

2. 对极平面束(epipolar pencil):以基线为轴的平面束。

3. 对极平面(epipolar plane):任何包含基线的平面都称为对极平面。

4. 对极点(epipole):摄像机的基线与每幅图像的交点。比如,上图中的点e和e'。

5. 对极线(epipolar line):对极平面与图像的交线。比如,上图中的直线l和l'。

6. 5点共面:点x,x',摄像机中心Oc  Oc',空间点X是5点共面的。

7. 极线约束:两极线上点的对应关系。

说明:

直线l是对应于点x'的极线,直线l'是对应于点x的极线。极线约束是指点x'一定在对应于x的极线l'上,点x一定在对应于x'的极线l上。

根据以上原理就得出了基础矩阵F和本质矩阵E等,网上有很多资料的

这里直接将推导公式贴出来就好了

本质矩阵E的基本性质:秩为2,且仅依赖于外部参数R和T。其中,P表示世界坐标点矢量,p表示像素点矢量

那么基础矩阵求法:由于本质矩阵E并不包含相机内参信息,且E是面向相机坐标系的。实际上,我们更感兴趣的是在像素坐标系上去研究一个像素点在另一视图上的对极线,这就需要用到相机内参信息将相机坐标系和像素坐标系联系起来。假设Pl和Pr是世界坐标值,其对应的像素坐标值为Ql和Qr

相机内参矩阵为M,那么

根据

那么

令基础矩阵

那么

也就是我们在下图的第一幅图找到一个特征点,通过以上対极几何的知识推导出,该点在第二幅图位于图像的哪个位置

举个例子,比如kinect

无论是双目还是kinect都是类似的原理

f=Focal length

b=Baseline

d=Disparity value

ps=Pixel size

D=Depth

Focal length

Baseline

Pixel size

Disparity

备注:

(Pixel size)像素大小是图像传感器中单个像素的大小。像素大小用微米表示。由于立体视觉系统使用两个摄像机,图像传感器的像素大小必须相同。随着像素尺寸的减小,系统的深度范围增大。

(Disparity value)视差是指在两个摄像机图像之间的像素位置的差异。假设立体视觉相机中的左图像在位置(1,30)具有像素,并且相同的像素在右图像中的位置(4,30)存在,视差值或差值为(4-1)=3。视差值与上述公式的深度成反比。

视差图Disparity与深度图Depth Map的一点知识相关推荐

  1. 立体匹配入门指南(8):视差图、深度图、点云

    本篇是比较简单的基础概念,刚入门的朋友可能是需要的. 视差图 三维点云 首先,我们要介绍下这三个概念. 视差(disparity) 视差 ddd 等于同名点对在左视图的列坐标减去在右视图上的列坐标,是 ...

  2. Python+OpenCV:立体图像深度图(Depth Map from Stereo Images)

    Python+OpenCV:立体图像深度图(Depth Map from Stereo Images) 理论 If we have two images of same scene, we can g ...

  3. 视差图转为深度图_纽劢研习社 | 深度图的非深度讲解

    本期话题:深度图 内容要点 1. 深度图基础知识 2. 不同的技术路径 传统方法 早期深度学习方法 当前深度学习方法 结合时序信息的深度学习方法 3. 深度估计的主要模块 对很多人来说,自动驾驶早已不 ...

  4. 双目立体视觉 II:块匹配视差图计算

    点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 作者:Ali Yasin Eser 编译:ronghuaiyang(AI 公园) 导读 双目立体视觉的 ...

  5. matlab获取视差图,Matlab生成视差图

    [实例简介] 双目视觉,根据块匹配方法的视差图生成.依据Matlab生成视差图. Dbasic= zeros(size(leftI),'single') disparity range 15; Sel ...

  6. 双目立体视觉:四(双目标定matlab,图像校正,图像匹配,计算视差,disparity详解,)

    二郎也比较忙,在某大场工作,有时候没有时间回复. 如果希望二郎尽快帮忙,可以将代码,数据和问题发给二郎,谢谢大家理解. glwang20@mails.jlu.edu.cn 不过还是希望大家自己要好好研 ...

  7. (Python代码)通过视差图获取图片中不同物体的高度比

    1.原理 可以推出不同物体的高度比可以通过如下公式得到:  是左边指定物体的高度(图片中尺寸)  是右边指定物体的高度(图片中尺寸)  是左边指定物体的平均视差值  是右边指定物体的平均视差值 2.代 ...

  8. 2019-9-29 opencv摄像机标定与三维重构4-Depth Map from Stereo Images立体图像中的深度图(视差图)

    官网参见https://docs.opencv.org/3.4.1/dd/d53/tutorial_py_depthmap.html 上一节中,我们学习了极线约束的概念和相关术语.主要包含:如果我们有 ...

  9. 视差Disparity与深度图

    转自:http://www.elecfans.com/d/863829.html 双目立体视觉,在百度百科里的解释是这样解释的:双目立体视觉(BinocularStereoVision)是机器视觉的一 ...

  10. 视差图转换为深度图公司_视差刻录:使用SVG将照片从2D转换为3D

    视差图转换为深度图公司 Last week we talked about ZorroSVG, a tool for converting your chunky transparent PNG-32 ...

最新文章

  1. Nature综述:微生物的衰老与寿命
  2. Windows Server 2012 RemoteApp体验-关闭程序在RD Web上显示
  3. 微信小程序登录,后端获取信息的问题
  4. Lock与synchronized测试区别
  5. CSDN如何自动生成目录
  6. 【网络安全威胁】企业风险远不止勒索软件,盘点当今企业面临的四种安全威胁
  7. VTK:可视化之DepthSortPolyData
  8. mtk处理器和骁龙对比_高通正在开发全新AR/VR处理器骁龙XR2;骁龙865对比骁龙855 Plus/苹果A13:爆料称性能增加20%...
  9. 小牛带你nginx反向代理中神奇的斜线
  10. Stream学习过程中遇到的一个问题记录
  11. 通通玩blend美工(8)——动态绘制路径动画,画出个萌妹子~
  12. 【汇总】C#数据类型及转换
  13. CC自定义防护验证最佳实践
  14. CentOS下RabbitMQ 部署记录
  15. golang实现微信模板消息推送
  16. 思科防火墙基本配置思路及命令
  17. MATLAB图像去雾算法RETINEX实现
  18. 免费使用短信服务接口 ----用Java实现
  19. 思科模拟器路由表怎么看_Cisco路由配置教程 Cisco路由器静态路由与默认路由的配置方法图解...
  20. Android 加载进度条,加载成功,数据为空,加载失败,无网络等状态不同界面的切换

热门文章

  1. vc6.0垃圾文件清理工具_C盘空间逐渐被垃圾文件填满,详细清理方法介绍
  2. js切换图片会闪动_javascript 如何实现一个闪烁图片的效果呢?
  3. javax.servlet.http.HttpServlet response 解决jsp中中文乱码
  4. Qt 人类可读大小 quint64字节转可读字符串 “1.1 GB“
  5. 【持续更新】Java序列化对象释疑
  6. canvas 文字垂直居中
  7. linux 下 ethtool 修改网卡eeprom
  8. 如何利用情感词典做中文文本的情感分析?
  9. 交叉火力dsp手机调音软件_dsp教程_交叉火力dsp调音教程_教你学dsp百度云
  10. 各类编程视频教程资源