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

精度,是双目立体视觉至关重要的指标。双目立体视觉系统,不谈精度几许,未免显得业余!

精度不行?“来,小同志往边上让一让,下一个!”

精度很高?“小伙子你们设备多少钱!能打个折不!”

做过双目研究的伙伴们,肯定是经常和精度打交道的,大部分人也肯定知道,双目立体视觉的精度主要看的是深度方向的精度!深度图是很多双目设备的输出数据,通过深度图以及相机参数,可以算出三维点云的空间坐标,公式如下:

可知深度D的角色感很强,把深度估计准了,那三维点也就准了。(什么,相机标定也不准?当我没说!)

所以,如何让深度精度更高?

我们再来看一个经典公式:

这可再熟悉不过了,D是深度,B是基线,f是焦距(像素单位),d是视差。咱们一分为二看这个公式,右边分母部分是像素视差值,和算法相关;分子部分是系统硬件参数,和硬件相关。

可知深度精度是由算法和硬件综合决定。研发:“哥们,你们硬件做的不行啊!”

硬件:“屁,是你们算法不行!”

老板:“都是废物!”

对各参数不太清楚的同学可以看下图:

1 算法因素

咱们先分析算法对精度的影响。那么硬件参数B和f就假设是已知且恒定的了。假设视差偏差为Δd,则计算视差偏差Δd下的深度偏差ΔD:

B和f已知且恒定,如果我们把D也恒定,也就是在同一个深度距离下评判精度,由公式(1)可知d也就恒定。此时容易发现,Δd越小,ΔD越小。说明:

(一)视差偏差越小,深度偏差越小;换言之,算法的视差精度越高,深度精度越高,深度精度和视差精度成正比。所以更高精度的视差估计算法,自然能带来更高的深度精度。

2 硬件因素

上面分析算法对精度的影响,所以固定了硬件参数B和f。现在我们来分析视差精度恒定的情况下,硬件参数如何影响精度。还是基于上面三个公式,但是做一些修改,把公式(1)代入到(3)中,如下:

同样,我们把D恒定,也就是在同一个深度距离下评判精度,因为视差精度恒定(也就是视差估计算法定了,精度差不多固定了),因此Δd也恒定。不难发现,B和f对D有相同的影响关系,B越大、f越大,ΔD越小。说明:

(二)基线越大、焦距(像素单位)越长,深度精度越高。深度精度和基线、焦距成正比。

从公式中我们看到,影响ΔD的实际是基线和焦距的乘积,所以若两个一起增大,那深度精度必然增大,若一个增大一个减小,那么深度精度可能增大也可能减小。另一个需要说明的是,f是焦距的像素单位,它和焦距的空间尺寸和像素大小有关,设焦距的空间尺寸为f0,像素大小为s,则f的计算公式为:

显然,s越小,f越大。我们知道s的大小是相机传感器尺寸决定的,而焦距是镜头决定的。所以选相机的时候要了解第三个知识:

(三)像素大小越小,同样的物理尺寸焦距有更长的像素尺寸焦距,深度精度就越高。

3 深度范围

上面我们分析了算法参数和硬件参数对深度精度的影响,但还有一个重要的因素,它即非硬件相关也非算法相关,它就是深度本身的大小,也即深度范围。简单的说,目标离镜头的距离不同,精度是不一样的。对上一节的公式(3)再多做一步推导:

这里讨论深度范围,所以假设B、f和Δd都恒定。显然可以发现,D越小,ΔD越小。所以我们得出第四个结论:

(四)测量目标离系统越近,深度精度越高。

4 总结我想大家其实在实际应用中都会有一些直观的理解,比如(1)算法越好,精度越高,明摆着嘛!(2)相机分辨率越高,精度越高,这不废话嘛!(3)基线越长,精度越高,显而易见嘛!本文的目的就是通过公式推导来严格证明,以让大家更加清晰的明白各因素影响精度的本质,从而更科学的指导双目系统的设计。再来汇总一下上面的四条结论:

(一)视差偏差越小,深度偏差越小;换言之,算法的视差精度越高,深度精度越高,深度精度和视差精度成正比。.

(二)基线越大、焦距(像素单位)越长,深度精度越高。深度精度和基线、焦距成正比。(三)像素大小越小,同样的物理尺寸焦距有更长的像素尺寸焦距,深度精度就越高。

(四)测量目标离系统越近,深度精度越高。所以同学们你们现在知道怎么设计双目系统能提高精度了吗?

1、选高精度视差估计算法

2、在应用场景允许、结构稳定性满足需求的情况下,尽可能延长基线

3、在视场范围、景深满足需求的情况下,尽可能选择长焦镜头

4、在算力允许的情况下,选择高分辨率相机(本质上应该是像素尺寸小的相机,有的相机提高了分辨率,只是提升了视域,但像素尺寸不变,那精度也不变)

5、测量距离适当拉近(这点往往是场景需求决定的)

备注:本文作者松博在哔哩哔哩做的立体匹配直播视频:知乎视频​www.zhihu.com

本文作者在CSDN上首发,大家也可以前往CSDN阅读。

本文仅做学术分享,如有侵权,请联系删文。

往期干货资源:

双目视觉焦距_教你如何提高双目立体视觉系统的精度相关推荐

  1. github 视觉测量_教你如何提高双目立体视觉系统的精度

    作者:李迎松 来源:公众号 @3D视觉工坊 链接:教你如何提高双目立体视觉系统的精度 开源代码免费获取,欢迎关注作者的GitHub:https://github.com/ethan-li-coding ...

  2. 教你如何提高双目立体视觉系统的精度

    点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 来源:https://blog.csdn.net/rs_lys/article/details/107 ...

  3. 双目视觉焦距_教你提高双目立体视觉系统的精度!

    这里开源了一些经典的立体匹配算法,你可能会感兴趣:https://github.com/ethan-li-coding​github.com 双目立体视觉(Binocular Stereo Visio ...

  4. 双目估计方法_教你提高双目立体视觉系统的精度!

    这里开源了一些经典的立体匹配算法,你可能会感兴趣: https://github.com/ethan-li-coding​github.com 双目立体视觉(Binocular Stereo Visi ...

  5. 【技术流派】教你提高双目立体视觉系统的精度!

    开源代码免费获取,欢迎关注我的GitHub: https://github.com/ethan-li-coding 双目立体视觉(Binocular Stereo Vision)是机器视觉的一种重要形 ...

  6. 双目视觉焦距_深度相机原理揭秘--双目立体视觉

    深度相机原理揭秘--双目立体视觉 博文来源:http://www.sohu.com/a/203027140_100007727 导读 为什么非得用双目相机才能得到深度? 双目立体视觉深度相机的工作流程 ...

  7. 一文详解双目立体视觉系统的精度提升方法!

    作者丨李迎松@知乎 来源丨https://zhuanlan.zhihu.com/p/160946661 编辑丨3D视觉工坊 双目立体视觉(Binocular Stereo Vision)是机器视觉的一 ...

  8. 双目视觉焦距_第七节、双目视觉之空间坐标计算

    在上一节我们已经介绍了如何对相机进行标定.然后获取相机的内部参数,外部参数. 内参包括焦距.主点.倾斜系数.畸变系数: $$M=\begin{bmatrix} f_x & γ & u_ ...

  9. 科研教育「双目视觉技术」首选!维视MV-VS220双目立体视觉系统开发平台

    NO.1产品背景 在最近大热的自动驾驶赛道,大疆采用新的技术路线--双目立体视觉.具体来说,它就是模拟人的视觉系统,通过两个临近摄像头所拍摄到的画面的视差,来还原出三维立体结构.不需要对海量数据进行标 ...

最新文章

  1. 深入浅出Websocket(二)分布式Websocket集群
  2. git简介 http://msysgit.github.io/
  3. 『高级篇』docker之开发课程EdgeService(16)
  4. 数据库开发技术java方向_Java开发工程师(Web方向) - 03.数据库开发 - 第5章.MyBatis...
  5. 09花冠钥匙计算机电路图,丰田花冠轿车发动机防盗系统设定
  6. Aix下运行java程序_AIX上部署java项目
  7. atititi.soa  微服务 区别 联系 优缺点.doc
  8. 所谓的开发是java还是PLC_SCL是否将成为PLC的主流编程语言?
  9. 服务器硬件配置及RAID配置操作
  10. 美国弗吉尼亚大学计算机科学,弗吉尼亚大学研究生计算机科学排名关键消息重点总结...
  11. python判断信用卡号是否合法_怎么使用 Python 校验银行卡号码是否有效-阿里云开发者社区...
  12. Oracle中根据注释来查表名
  13. 很合理,但是有病的奇怪网站合集
  14. BBR 拥塞控制算法blog笔记
  15. 巧妙用思维导图做营销策划|营销人员收藏
  16. Figures now render in the Plots pane by default.
  17. php 色色源码,PHP源代码集锦
  18. 【19调剂】西安工程大学2019年硕士研究生调剂公告
  19. 华南理工大学计算机系保研,华南理工大学计算机科学与工程学院网络空间安全保研细则...
  20. LED发送卡使用什么软件调试,应该如何连接?

热门文章

  1. 【Echarts系列】Vue2项目如何引入echarts
  2. 基于51单片机的贪吃蛇小程序(8*8LED点阵实现)by_jy
  3. C# 实现真正的WebCamera【原创】
  4. Git分支合并时显示输入合并备注
  5. 新概念英语2如何背诵啊?
  6. 华为防火墙配置了限制一台主机只能访问固定域名和IP的安全策略后打开网站加载速度很慢半天打不开
  7. 2.Matlab画好图后,如何插入到word里面去
  8. 【Web】自定义网页漂浮物
  9. 基于Matlab的Robotics Toolbox工具箱的机器人仿真函数介绍(空间位姿表示与动力学)
  10. FME模板兴趣班第十八期(面遮挡处理) 任务小结