0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

视差Disparity与深度图

ml8z_IV_Technol 来源:lq 2019-02-11 16:32 次阅读

双目立体视觉,在百度百科里的解释是这样解释的:双目立体视觉(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。视差值与上述公式的深度成反比。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 图像
    +关注

    关注

    2

    文章

    1083

    浏览量

    40449
  • 立体视觉
    +关注

    关注

    0

    文章

    36

    浏览量

    9781
  • 激光雷达
    +关注

    关注

    968

    文章

    3969

    浏览量

    189830

原文标题:双目视觉简介

文章出处:【微信号:IV_Technology,微信公众号:智车科技】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    如何结合深度学习和深度图在三个项目中取得有效的成果

    传统获取深度图的方法是利用双目立体视觉获取视差信息从而得到环境的深度的。而今天大多使用的深度传感器则是基于结构光传感器的原理,通过将已知模式的红外光投影到环境并解算来实现
    的头像 发表于 11-01 09:43 7735次阅读

    快速有效提取浓密视差的方法

    快速有效提取浓密视差的方法:采用边缘匹配和区域相关相结合的办法,用Gauss-Laplace算子首先对图像进行运算,提取图像的边缘像素,并根据一定约束条件匹配边缘像素,再将图像对视作对称,以相关值
    发表于 06-14 00:21

    深度表数据结构的疑问

    查看器中看到它可以有两个值:0和1但我找不到任何关于它的文档哪个是深度单位的默认单位度量?毫米,厘米或米?这是深度单位和视差偏移的允许值的范围?我可以考虑在观察者中显示的那些吗?夹具是否仅控制
    发表于 11-08 11:09

    如何从深度图像中找到3或5个中心像素

    嗨,大家好,我试图从深度图像中找到几个中心像素。我正在尝试实现分割,我需要找到分割对象的距离。这就是我的想法,这将是有效的。当彩色图像用于分割时,全帧深度图像将用于找到距离。在我的下面的代码中。我
    发表于 11-19 14:19

    如何从D435获取16位深度图像?

    我从realsense查看器中获取d435深度相机的数据,当我保存深度图像的快照时,我在规格中得到8位(1-256)灰度图像,据说相机给出了16位深度图片。你知道我怎么能得到16位图像?以上
    发表于 11-27 14:11

    D435深度图的焦点在哪里?

    我从英特尔 - RealSense-D400系列 - 数据表.pdf第94页的图纸中推测,深度传感器的中心距摄像机右侧(USB侧)37.5毫米:根据经验,我推断深度图焦点X在相机的脸后面约32mm
    发表于 12-05 10:52

    基于Dragonboard 410c的kinect应用系列之三——获取深度图实例介绍

    上篇文章我们介绍了SimpleOpenNI开发平台搭建,今天小编继续为大家讲解用kinect绘制深度图与绘制人体躯干实例具体操作过程!
    发表于 02-21 10:43 1440次阅读
    基于Dragonboard 410c的kinect应用系列之三——获取<b class='flag-5'>深度图</b>实例介绍

    基于深度图像重建Matlab代码

    本文档内容介绍了基于深度图像重建Matlab代码,供网友参考。
    发表于 09-15 10:03 21次下载
    基于<b class='flag-5'>深度图</b>像重建Matlab代码

    各向异性扩散深度图像增强算法

    深度图像受其测距原理所限,存在边缘不匹配、无效像素、噪声等问题,提出一种基于改进的各向异性扩散算法的深度图像增强方法。首先,校正深度图像和彩色图像的位置关系,并根据时间连续性选择多帧图像,进行多帧
    发表于 11-25 11:08 9次下载
    各向异性扩散<b class='flag-5'>深度图</b>像增强算法

    小波域分布式深度图视频编码

    针对分布式多视点加深度格式( DMVD)的视频编码中深度图视频解码质量问题,提出一种结合予带层及子带系数的小波域分布式深度视频非均匀量化方案,通过给边缘分配更多比特来提升深度图的边缘质
    发表于 12-20 16:34 1次下载

    基于Kinect深度图预处理

    针对应用在机器人三维(3D)场景感知测量中,Kinect深度图的联合双边滤波(JBF)存在降低原始场景深度信息精确度的制约性问题,提出一种新的预处理算法。首先,通过构建深度图的测量和采样模型,得到
    发表于 12-25 16:58 0次下载
    基于Kinect<b class='flag-5'>深度图</b>预处理

    基于主成分分析方向深度梯度直方图的特征提取算法

    针对立体视觉深度图特征提取精确度低、复杂度高的问题,提出了一种基于主成分分析方向深度梯度直方图( PCA-HODG)的特征提取算法。首先,对双目立体视觉图像进行视差计算和深度图提取,获
    发表于 12-26 14:32 0次下载
    基于主成分分析方向<b class='flag-5'>深度</b>梯度直方图的特征提取算法

    如何使用深度图进行3D-HEVC鲁棒视频水印算法资料说明

    针对多视点加深度格式的3D视频中深度图鲁棒性不足的问题,提出了一种基于深度图的3D鲁棒视频水印算法。首先,将深度图不重叠的划分为4x4大小的块,计算每一块像素域的均方差,并设置一个阂值
    发表于 04-04 14:54 4次下载
    如何使用<b class='flag-5'>深度图</b>进行3D-HEVC鲁棒视频水印算法资料说明

    双目视觉的原理和应用

    视差Disparity):视差是指同一物体在两个图像中投影点之间的水平距离,它与物体到相机的距离成反比,因此可以用来估计物体的深度视差
    发表于 06-19 10:14 2197次阅读
    双目视觉的原理和应用

    深度图像的获取方法主要有哪些

      今天介绍一下深度图像的获取方法主要有哪些,以及这些方法会导致深度图像中存在什么样的问题。 在计算机视觉系统中,三维场景信息为图像分割、目标检测、物体跟踪等各类计算机视觉应用提供了更多的可能性,而
    的头像 发表于 06-25 16:26 1189次阅读
    <b class='flag-5'>深度图</b>像的获取方法主要有哪些