精华内容
下载资源
问答
  • 双目立体视觉

    千次阅读 2019-07-16 03:22:35
    双目立体视觉的研究一直是机器视觉中的热点和难点。使用双目立体视觉系统可以确定任意物体的三维轮廓,并且可以得到轮廓上任意点的三维坐标。因此双目立体视觉系统可以应用在多个领域。现说明介绍如何基于HALCON实现...

    双目立体视觉的研究一直是机器视觉中的热点和难点。使用双目立体视觉系统可以确定任意物体的三维轮廓,并且可以得到轮廓上任意点的三维坐标。因此双目立体视觉系统可以应用在多个领域。现说明介绍如何基于HALCON实现双目立体视觉系统,以及立体视觉的基本理论、方法和相关技术,为搭建双目立体视觉系统和提高算法效率。 
      双目立体视觉是机器视觉的一种重要形式,它是基于视差原理并由多幅图像获取物体三维几何信息的方法。双目立体视觉系统一般由双摄像机从不同角度同时获得被测物的两幅数字图像,或由单摄像机在不同时刻从不同角度获得被测物的两幅数字图像,并基于视差原理恢复出物体的三维几何信息,重建物体三维轮廓及位置。双目立体视觉系统在机器视觉领域有着广泛的应用前景。 
      HALCON是在世界范围内广泛使用的机器视觉软件。它拥有满足您各类机器视觉应用需求的完善的开发库。HALCON也包含Blob分析、形态学、模式识别、测量、三维摄像机定标、双目立体视觉等杰出的高级算法。HALCON支持Linux和Windows,并且可以通过C、C++、C#、Visual Basic和Delphi语言访问。另外HALCON与硬件无关,支持大多数图像采集卡及带有DirectShow和IEEE 1394驱动的采集设备,用户可以利用其开放式结构快速开发图像处理和机器视觉应用软件。 
    一.双目立体视觉相关基本理论说明 
      1.1 双目立体视觉原理 
      双目立体视觉三维测量是基于视差原理,图1所示为简单的平视双目立体成像原理图,两摄像机的投影中心的连线的距离,即基线距为b。摄像机坐标系的原点在摄像机镜头的光心处,坐标系如图1所示。事实上摄像机的成像平面在镜头的光心后,图1中将左右成像平面绘制在镜头的光心前f处,这个虚拟的图像平面坐标系O1uv的u轴和v轴与和摄像机坐标系的x轴和y轴方向一致,这样可以简化计算过程。左右图像坐标系的原点在摄像机光轴与平面的交点O1和O2。空间中某点P在左图像和右图像中相应的坐标分别为P1(u1,v1)和P2(u2,v2)。假定两摄像机的图像在同一个平面上,则点P图像坐标的Y坐标相同,即v1=v2。由三角几何关系得到: 
    8_clip_image001.jpg
      上式中(xc,yc,zc)为点P在左摄像机坐标系中的坐标,b为基线距,f为两个摄像机的焦距,(u1,v1)和(u2,v2)分别为点P在左图像和右图像中的坐标。 
      视差定义为某一点在两幅图像中相应点的位置差: 
    8_clip_image002.jpg

    8_clip_image003.jpg  8_clip_image006.jpg

    图1 双目立体成像原理图           图3 一般双目立体视觉系统原理图

    由此可计算出空间中某点P在左摄像机坐标系中的坐标为: 
    8_clip_image004.jpg
      因此,只要能够找到空间中某点在左右两个摄像机像面上的相应点,并且通过摄像机标定获得摄像机的内外参数,就可以确定这个点的三维坐标。 
      1.2 双目立体视觉的系统结构以及精度分析 
      由上述双目视觉系统的基本原理可知,为了获得三维空间中某点的三维坐标,需要在左右两个摄像机像面上都存在该点的相应点。立体视觉系统的一般结构为交叉摆放的两个摄像机从不同角度观测同一被测物体。图3为原理图。这样通过求得两个图像中相应点的图像坐标,便可以由双目立体视觉测量原理求取三维空间坐标。事实上,获取两幅图像也可以由一个摄像机实现,如一个摄像机通过给定方式的运动,在不同位置观测同一个静止的物体,或者通过光学成像方式将两幅图像投影到一个摄像机,都可以满足要求。 
      各种双目视觉系统结构各有优缺点,这些结构适用于不同的应用场合。对要求大测量范围和较高测量精度的场合,采用基于双摄像机的双目立体视觉系统比较合适;对测量范围要求比较小,对视觉系统体积和质量要求严格,需要高速度实时测量对象,基于光学成像的单摄像机双目立体视觉系统便成为最佳选择。 
      基于双摄像机的双目立体视觉系统必须安装在一个稳定的平台上,在进行双目视觉系统标定以及应用该系统进行测量时,要确保摄像机的内参(比如焦距)和两个摄像机相对位置关系不能够发生变化,如果任何一项发生变化,则需要重新对双目立体视觉系统进行标定。 
      视觉系统的安装方法影响测量结果的精度。测量的精度可由下式得出: 
    8_clip_image005.jpg
      上式中⊿z表示测量得出的被测点与立体视觉系统之间距离的精度,z指被测点与立体视觉系统的绝对距离,f指摄像机的焦距,b表示双目立体视觉系统的基线距,⊿d表示被测点视差精度。 
      为了得到更高的精度,应该使摄像机的焦距以及基线长度增大,同时应该使被测物体尽可能的靠近立体视觉系统。另外这个精度和视差的精度有直接的关系。在HALCON中一般情况下视差结果可以精确到1/5~1/10个像素,如果一个像素代表7.4μm那么视差的精度可以达到1μm。图4表示深度测量的精度和各个参数之间的关系(假设视差精度为1μm)。 
      如果b和z之间的比值过大,立体图像对之间的交迭区域将非常小,这样就不能够得到足够的物体表面信息。b/z可以取的最大值取决于物体的表面特征。一般情况下,如果物体高度变化不明显,b/z可以取的大一些;如果物体表面高度变化明显,则b/z的值要小一些。无论在任何情况下,要确保立体图像对之间的交迭区域足够大并且两个摄像机应该大约对齐,也就是说每个摄像机绕光轴旋转的角度不能太大。

    8_clip_image008.jpg   8_clip_image012.jpg

    图4 深度测量精度与各个参数之间的关系      图5 校正后的双目立体视觉系统
    1.3 双目立体视觉系统标定 

      摄像机内参数的标定和单目视觉系统标定一致,双目立体视觉系统的标定主要是指摄像机的内部参数标定后确定视觉系统的结构参数R和T(即两个摄像机之间的位置关系,R和T分别为旋转矩阵和平移向量)。一般方法是采用标准的2D或3D精密靶标,通过摄像机图像坐标与三维世界坐标的对应关系求得这些参数。具体的标定过程如下: 

      1、将标定板放置在一个适当的位置,使它能够在两个摄像机中均可以完全成像。通过标定确定两个摄像机的内部参数以及他们的外部参数(R1、T1与R2、T2),则R1、T1表示左摄像机与世界坐标系的相对位置,R2、T2表示右摄像机与世界坐标系的相对位置。 
      2、假定空间中任意一点在世界坐标系、左摄像机坐标系和右摄像机坐标系下的非齐次坐标分别为xw、x1、x2,则: 
    8_clip_image009.jpg消去xw,得到: 8_clip_image010.jpg两个摄像机之间的位置关系R、T可以用以下关系式表示: 
    8_clip_image011.jpg

      1.4 双目立体视觉中的对应点匹配 

      由双目立体视觉系统原理可以看出双目立体视觉是建立在对应点的视差基础之上,因此左右图像中各点的匹配关系成为双目立体视觉技术的一个极其重要的问题。然而,对于实际的立体图像对,求解对应问题极富挑战性,可以说是双目立体视觉中最困难的一步。为了能够增加匹配结果的准确性以及匹配算法的速度,在匹配过程中通常会加入下列几种约束: 
      (1) 极线约束。在此约束下,匹配点已经位于两副图像中相应的极线上。 
      (2) 唯一性约束。两副图像中的对应的匹配点应该有且仅有一个。 
      (3) 视差连续性约束。除了遮挡区域和视差不连续区域外,视差的变化都是平滑的。 
      (4) 顺序一致性约束。位于一副图像极线上的系列点,在另一幅图像中极线上有相同的顺序。 图像匹配的方法有基于图像灰度(区域)的匹配、基于图像特征的匹配和基于解释的匹配或者多种方法结合的匹配。

    二.使用
    HALCON进行双目立体视觉测量 
      本节以电路板高度测量为例,讲述在HALCON中如何方便快捷地实现高效双目立体视觉测量(图像为640*480)。 
      2.1 双目立体视觉系统安装 
      根据1.2节中对双目立体视觉系统结构分析以及精度的分析,在确保两个立体图像对有足够大的交迭区域的同时,根据待测物体表面形态以及精度要求设计合理的双目立体视觉系统安装方案(图2)。然后将双目立体视觉系统安装在一个稳定的平台上,确保开始标定后,摄像机的焦距以及摄像机的相对关系都不发生变化。 

      2.2 双目立体视觉系统标定 
      为了进行视觉系统的标定,需要得到空间点的三维坐标以及该点在左右两幅图像中坐标的对应关系,另外还需要给定两个摄像机的初始参数。拍摄标定板图像时,要保证标定板在左右两个摄像机中都能够完整成像。 

      如果使用HALCON标准标定板,首先可以通过函数find_caltab()在标定板图像中分离出标定板区域,然后利用find_marks_and_pose()算子,该算子通过亚象素阈值、亚象素边缘提取、圆心确定等一系列操作计算标定板上每个点的图像坐标以及标定板与摄像机之间大约的位置关系,即摄像机的外参初始值。其中使用find_caltab()分离标定板区域运算时间大约为5ms,find_marks_and_pose()计算标定板上49个标志点的坐标大约需要时间为40ms,计算坐标精度为亚象素级,如某标志点在左摄像机图像坐标系中坐标为(198.612619165, 344.142354438),右摄像机图像坐标系中相应点坐标为(212.140195587, 226.377754012)。 如果使用自定义的标定板,可以使用HALCON中的图像滤波、亚象素边缘及线提取、亚象素轮廓处理等基本函数开发算法求取标志点的坐标并估算摄像机的外参初始值。 

      获得标志点相应的坐标以及摄像机的起始参数后,通过调用函数binocular_calibration()来确定两个摄像机的内参数、外参数以及两个摄像机之间的相对位置关系。通过539个标志点坐标的对应关系计算出摄像机各个参数需要的时间为1.6094s,计算误差约为0.02个象素。 

      2.3 校正立体图像对 
      为了能够更精确地进行匹配,提高运算的效率,在获得摄像机的内外参数后首先对立体图像对进行校正。校正的过程其实就是将图像投影到一个公共的图像平面上,这个公共的图像平面方向由双目立体视觉系统基线与原始两个图像平面交线的叉集确定。 

      校正后的图像可以看作是一个虚拟的立体视觉系统(图5)采集的图像对。这个视觉系统中摄像机的光心与实际摄像机一致,只是通过绕光心的旋转使光轴平行,并且视觉系统中两个摄像机的焦距相同。这个虚拟的立体视觉系统就是双目立体视觉原理中提到的最简单的平视双目视觉模型。 

      HALCON中将标定过程中获得的摄像机的内参以及两个摄像机相对位置关系作为参数传递给函数gen_binocular_rectification_map(),再将获得的两个图像的映射图传递给函数map_ image(),即可得到校正后的两幅图像,并可获得校正后虚拟立体视觉系统中两个摄像机的内参和外参。其中函数gen_binocular_rectification_map()耗时约为0.3488s,map_image()耗时约为0.0050s。

      2.4 获得图像中三维信息 
      为了得到图像中某点的三维信息,需要在另一幅图像中找到该点的对应点坐标。因此想获得物体的深度信息,首先需要对校正后的立体图像对进行匹配。由于经过校正后,两幅图像中的对应点在图像的同一行中,因此在匹配时只需要在相应的行中寻找匹配点。为了得到更佳的匹配结果,如果被测物体表面没有明显的特征信息,则需要测量时在物体表面增加特征点。另外要避免被测物体上重复图案在同一行中。 

      将校正后的图像以及虚拟立体视觉系统中的摄像机内外参数传递给binocular_disparity(), 这时可以设置匹配窗大小、相似度计算方式等参数,在匹配中使用图像金字塔提高匹配速度,并且可以自我检测匹配结果的正确性。函数返回一个视差图 (物体表面三维信息的表示)和一个匹配分值图(表示匹配结果的准确程度),函数的运行时间约为0.6051s。 

      函数binocular_distance()与binocular_disparity()类似,只不过返回一个深度图(物体表面在第一个摄像机坐标系中的深度信息)和一个匹配分值图。图6~图9显示了HALCON中利用双目立体视觉测量电路板三维信息的过程。

      HALCON中另外还有很多关于立体视觉的函数,可以获得图像中某点的三维坐标,另外可以校正倾斜对高度测量的影响等。 
    三. 系统总结说明 
      以视觉系统为基础的三维外形轮廓的非接触式、高速测量是一个重要的研究方向,双目立体视觉方法是其中一种最常用的方法。本文介绍了双目立体视觉的基本原理,实现方法以及标定和匹配等相关技术,并通过一个典型应用案例讲述了如何使用HALCON方便快速地搭建高效的双目立体视觉系统。双目立体视觉系统的应用领域非常广泛,为了能够将这些技术应用在实际的工程中,需要尽可能提高算法的效率与精度。在HALCON中通过校正立体视觉系统的方法,简化了匹配的复杂度,通过使用图像金字塔以及各种约束提高了算法速度和精度。在已知摄像机内外参的情况下,由两个立体图像对中恢复三维模型需要约1.3s。 

      另外,HALCON中不仅有匹配、识别、定位、测量和三维等性能杰出的高级算法,还提供了一系列(的)高效的图像处理基本函数,如滤波、亚象素边缘、亚象素轮廓、Blob、分割、形态学、分类器、几何变换,用户可以通过这些基本函数来搭建各种应用中高效实用的算法。

    trackback: http://hi.baidu.com/vandyliu/blog/item/926a85cd6d501d1800e9282e.html

    转载于:https://www.cnblogs.com/JohnShao/archive/2011/05/21/2052729.html

    展开全文
  • 双目立体视觉系统(答辩)双目立体视觉系统 项目组成员:何健、晏尧、艾晨 指导老师:蒲秀娟 2011年9月21日 项目答辩 重庆大学第二届科研训练项目 汇报提纲 研究目的和意义 1 系统总体设计硬件选择 2 图像算法和显示...

    双目立体视觉系统(答辩)

    双目立体视觉系统 项目组成员:何健、晏尧、艾晨 指导老师:蒲秀娟 2011年9月21日 项目答辩 重庆大学第二届科研训练项目 汇报提纲 研究目的和意义 1 系统总体设计硬件选择 2 图像算法和显示流程 3 验证 4 心得 5 1 研究目的和意义 应用背景 双目立体视觉系统作用: 双目立体视觉系统可以模仿人眼功能,感知三维世界信息 双目立体视觉系统可用于多场景监控,在工业控制、智能交通、金融、公共安全等应用领域逐渐显示出非常广阔的发展前景 2 系统总体设计及硬件选择 本项目通过详细分析和研究基于DM642双目立体视觉系统,给出软硬件结合的方案 2 系统总体设计及硬件选择 硬件选择 采集模块: CCD摄像头两个 处理模块: DM642 DSP开发板 显示模块: 计算机 3双目立体视觉图像算法和显示流程 具体算法实现 初始化程序中有关参数,变量,调用opencv库,并定义一些相关数组,变量 通过opencv库函数完成摄像机标定,特征提取,立体匹配 完成深度回复和误差纠正 获得立体视觉信息 计算机显示器 3双目立体视觉图像算法和显示流程 摄像机标定 利用摄像机所拍摄到的图像来还原空间中的物体 对图片信息进行二维标定 在二维标定的基础上对图像信息进行三维标定 3双目立体视觉图像算法和显示流程 摄像机标定 标定结果如下图所示: 3双目立体视觉图像算法和显示流程 特征提取 使用计算机提取图像信息,决定每个图像的点是否属于一个图像特征 把图像上的点分为不同的子集,这些子集往往属于孤立的点、连续的曲线或者连续的区域 本次项目中,提取范围为区域,提取特征为区域的灰度信息 3双目立体视觉图像算法和显示流程 立体匹配 主要采用区域匹配方法,选取一定大小窗口内的灰度分布特征作为匹配基元 利用灰度信息的相关程度,将距离用d(X,Y)表示,X,Y取当前像素的灰度,距离测度d为X,Y之间的绝对差。 3双目立体视觉图像算法和显示流程 深度恢复和误差纠正 通过用于纠正摄像头采集图像的像素丢失和错误,并重建正确的三维图像信息 通过摄像机标定和立体系统标定的方法,求出左右摄像机的内参数和相对旋转矩阵与平移向量 对于左右摄像机所摄同一场景的两幅图像,通过对应点匹配的方法,求出左右图像中的对应点 对于左右图像中的一对对应点,由它们的左右图像坐标和左右摄像机的内参数求出它们的正规化向量 3双目立体视觉图像算法和显示流程 深度恢复和误差纠正 由对应点左右正规化向量的坐标,以场景点在左右摄像机坐标系中的深度值为参数,分别建立从左摄像机光心至左图像点和从右摄像机光心至右图像点的两条投影线方程 由左右正规化向量和摄像机的相对旋转矩阵与平移向量求出两条投影线的公垂线端点在左右摄像机坐标系中的深度值和三维坐标 由公垂线两个端点的坐标求出公垂线中点的坐标,以公垂线中点在左摄像机坐标系中的坐标和公垂线中点在左摄像机坐标系中的坐标作为场景点的三维坐标,完成深度恢复和三维重建 4 验证 系统验证: 系统整机实物图

    展开全文
  • 双目立体视觉深度相机的工作流程双目立体视觉深度相机详细工作原理理想双目相机成像模型极线约束图像矫正技术基于滑动窗口的图像匹配基于能量优化的图像匹配双目立体视觉深度相机的优缺点--------------------------...

    原标题:深度相机原理揭秘--双目立体视觉

    导读

    为什么非得用双目相机才能得到深度?

    双目立体视觉深度相机的工作流程

    双目立体视觉深度相机详细工作原理

    理想双目相机成像模型

    极线约束

    图像矫正技术

    基于滑动窗口的图像匹配

    基于能量优化的图像匹配

    双目立体视觉深度相机的优缺点

    ---------------------------------------------------

    基于双目立体视觉的深度相机类似人类的双眼,和基于TOF、结构光原理的深度相机不同,它不对外主动投射光源,完全依靠拍摄的两张图片(彩色RGB或者灰度图)来计算深度,因此有时候也被称为被动双目深度相机。比较知名的产品有STEROLABS 推出的 ZED 2K Stereo Camera和Point Grey 公司推出的 BumbleBee。

    ZED 2K Stereo Camera

    为什么非得用双目相机才能得到深度?

    说到这里,有些读者会问啦:为什么非得用双目相机才能得到深度?我闭上一只眼只用一只眼来观察,也能知道哪个物体离我近哪个离我远啊!是不是说明单目相机也可以获得深度?

    在此解答一下:首先,确实人通过一只眼也可以获得一定的深度信息,不过这背后其实有一些容易忽略的因素在起作用:一是因为人本身对所处的世界是非常了解的(先验知识),因而对日常物品的大小是有一个基本预判的(从小到大多年的视觉训练),根据近大远小的常识确实可以推断出图像中什么离我们远什么离我们近;二是人在单眼观察物体的时候其实人眼是晃动的,相当于一个移动的单目相机,这类似于运动恢复结构(Structure from Motion, SfM)的原理,移动的单目相机通过比较多帧差异确实可以得到深度信息。

    但是实际上,相机毕竟不是人眼,它只会傻傻的按照人的操作拍照,不会学习和思考。下图从物理原理上展示了为什么单目相机不能测量深度值而双目可以的原因。我们看到红色线条上三个不同远近的黑色的点在下方相机上投影在同一个位置,因此单目相机无法分辨成的像到底是远的那个点还是近的那个点,但是它们在上方相机的投影却位于三个不同位置,因此通过两个相机的观察可以确定到底是哪一个点。

    双目相机确定深度示意图

    双目立体视觉深度相机简化流程

    下面简单的总结一下双目立体视觉深度相机的深度测量过程,如下:

    1、首先需要对双目相机进行标定,得到两个相机的内外参数、单应矩阵。

    2、根据标定结果对原始图像校正,校正后的两张图像位于同一平面且互相平行。

    3、对校正后的两张图像进行像素点匹配。

    4、根据匹配结果计算每个像素的深度,从而获得深度图。

    欲知详情,且看下面详细介绍。

    双目立体视觉深度相机详细原理

    1

    理想双目相机成像模型

    首先我们从理想的情况开始分析:假设左右两个相机位于同一平面(光轴平行),且相机参数(如焦距f)一致。那么深度值的推导原理和公式如下。公式只涉及到初中学的三角形相似知识,不难看懂。

    理想情况下双目立体视觉相机深度值计算原理

    根据上述推导,空间点P离相机的距离(深度)z=f*b/d,可以发现如果要计算深度z,必须要知道:

    1、相机焦距f,左右相机基线b。这些参数可以通过先验信息或者相机标定得到。

    2、视差d。需要知道左相机的每个像素点(xl, yl)和右相机中对应点(xr, yr)的对应关系。这是双目视觉的核心问题。

    2

    极线约束

    那么问题来了,对于左图中的一个像素点,如何确定该点在右图中的位置?是不是需要我们在整个图像中地毯式搜索一个个匹配?

    答案是:不需要。因为有极线约束(名字听着很吓人)。极线约束对于求解图像对中像素点的对应关系非常重要。

    那什么是极线呢?如下图所示。C1,C2是两个相机,P是空间中的一个点,P和两个相机中心点C1、C2形成了三维空间中的一个平面PC1C2,称为极平面(Epipolar plane)。极平面和两幅图像相交于两条直线,这两条直线称为极线(Epipolar line)。P在相机C1中的成像点是P1,在相机C2中的成像点是P2,但是P的位置事先是未知的。

    我们的目标是:对于左图的P1点,寻找它在右图中的对应点P2,这样就能确定P点的空间位置,也就是我们想要的空间物体和相机的距离(深度)。

    所谓极线约束(Epipolar Constraint)就是指当同一个空间点在两幅图像上分别成像时,已知左图投影点p1,那么对应右图投影点p2一定在相对于p1的极线上,这样可以极大的缩小匹配范围。

    根据极线约束的定义,我们可以在下图中直观的看到P2一定在对极线上,所以我们只需要沿着极线搜索一定可以找到和P1的对应点P2。

    极线约束示意图

    细心的朋友会发现上述过程考虑的情况(两相机共面且光轴平行,参数相同)非常理想,相机C1,C2如果不是在同一直线上怎么办?

    事实上,这种情况非常常见,因为有些场景下两个相机需要独立固定,很难保证光心C1,C2完全水平,即使是固定在同一个基板上也会因为装配的原因导致光心不完全水平。如下图所示。我们看到两个相机的极线不仅不平行,还不共面,之前的理想模型那一套推导结果用不了了,这可咋办呢?

    非理想情况下的极线

    不急,有办法。我们先来看看这种情况下拍摄的两张左右图片吧,如下所示。左图中三个十字标志的点,在右图中对应的极线是右图中的三条白色直线,也就是对应的搜索区域。我们看到这三条直线并不是水平的,如果进行逐点搜索效率非常低。

    左图中三个点(十字标志)在右图中对应的极线是右图中的三条白色直线

    3

    图像矫正技术

    怎么办呢?把不理想情况转化为理想情况不就OK了!这就是图像矫正(Image Rectification)技术。

    图像矫正是通过分别对两张图片用单应(homography)矩阵变换(可以通过标定获得)得到的,的目的就是把两个不同方向的图像平面(下图中灰色平面)重新投影到同一个平面且光轴互相平行(下图中黄色平面),这样就可以用前面理想情况下的模型了,两个相机的极线也变成水平的了。

    图像校正示意图

    经过图像矫正后,左图中的像素点只需要沿着水平的极线方向搜索对应点就可以了(开心)。从下图中我们可以看到三个点对应的视差(红色双箭头线段)是不同的,越远的物体视差越小,越近的物体视差越大,这和我们的常识是一致的。

    图像校正后的结果。红色双箭头线段是对应点的视差

    上面讲到的对于左图的一个点,沿着它在右图中水平极线方向寻找和它最匹配的像素点,说起来简单,实际操作起来却不容易。这是因为上述都是理想情况下的假设。实际进行像素点匹配的时候会发现几个问题:

    1、实际上要保证两个相机完全共面且参数一致是非常困难的,而且计算过程中也会产生误差累积,因此对于左图的一个点,其在右图的对应点不一定恰好在极线上。但是应该是在极线附近,所以搜索范围需要适当放宽。

    2、单个像素点进行比较鲁棒性很差,很容易受到光照变化和视角不同的影响。

    4

    基于滑动窗口的图像匹配

    上述问题的解决方法:使用滑动窗口来进行匹配。如下图所示。对于左图中的一个像素点(左图中红色方框中心),在右图中从左到右用一个同尺寸滑动窗口内的像素和它计算相似程度,相似度的度量有很多种方法,比如 误差平方和法(Sum of Squared Differences,简称SSD),左右图中两个窗口越相似,SSD越小。下图中下方的SSD曲线显示了计算结果,SSD值最小的位置对应的像素点就是最佳的匹配结果。

    滑动窗口匹配原理示意图

    具体操作中还有很多实际问题,比如滑动窗口尺寸。滑动窗口的大小选取还是很有讲究的。下图显示了不同尺寸的滑动窗口对深度图计算结果的影响。从图中我们也不难发现:

    小尺寸的窗口:精度更高、细节更丰富;但是对噪声特别敏感

    大尺寸的窗口:精度不高、细节不够;但是对噪声比较鲁棒

    不同尺寸的滑动窗口对深度图计算结果的影响

    虽然基于滑动窗口的匹配方法可以计算得到深度图,但是这种方法匹配效果并不好,而且由于要逐点进行滑动窗口匹配,计算效率也很低。

    5

    基于能量优化的图像匹配

    目前比较主流的方法都是基于能量优化的方法来实现匹配的。能量优化通常会先定义一个能量函数。比如对于两张图中像素点的匹配问题来说,我们定义的能量函数如下图公式1。我们的目的是:

    1、在左图中所有的像素点和右图中对应的像素点越近似越好,反映在图像里就是灰度值越接近越好,也就是下图公式2的描述。

    2、在 同一张图片里,两个相邻的像素点视差(深度值)也应该相近。也就是下图公式3的描述。

    能量函数

    上述公式1代表的能量函数就是著名的马尔科夫随机场(Markov Random Field)模型。通过对能量函数最小化,我们最后得到了一个最佳的匹配结果。有了左右图的每个像素的匹配结果,根据前面的深度计算公式就可以得到每个像素点的深度值,最终得到一幅深度图。

    双目立体视觉法优缺点

    根据前面的原理介绍,我们总结一下基于双目立体视觉法深度相机的优缺点。

    1

    优点

    1、对相机硬件要求低,成本也低。因为不需要像TOF和结构光那样使用特殊的发射器和接收器,使用普通的消费级RGB相机即可。

    2、室内外都适用。由于直接根据环境光采集图像,所以在室内、室外都能使用。相比之下,TOF和结构光基本只能在室内使用。

    2

    缺点

    1、对环境光照非常敏感。双目立体视觉法依赖环境中的自然光线采集图像,而由于光照角度变化、光照强度变化等环境因素的影响,拍摄的两张图片亮度差别会比较大,这会对匹配算法提出很大的挑战。如下图是在不同光照条件下拍摄的图片:

    不同光照下的图像对比

    另外,在光照较强(会出现过度曝光)和较暗的情况下也会导致算法效果急剧下降。

    2、不适用于单调缺乏纹理的场景。由于双目立体视觉法根据视觉特征进行图像匹配,所以对于缺乏视觉特征的场景(如天空、白墙、沙漠等)会出现匹配困难,导致匹配误差较大甚至匹配失败。

    纹理丰富(左)和纹理缺乏场景(右)

    3、计算复杂度高。该方法是纯视觉的方法,需要逐像素计算匹配;又因为上述多种因素的影响,需要保证匹配结果比较鲁棒,所以算法中会增加大量的错误剔除策略,因此对算法要求较高,想要实现可靠商用难度大,计算量较大。

    4、相机基线限制了测量范围。测量范围和基线(两个摄像头间距)关系很大:基线越大,测量范围越远;基线越小,测量范围越近。所以基线在一定程度上限制了该深度相机的测量范围。

    本公众号后续继续推出一系列关于深度相机原理和技术应用文章,敬请关注。

    注:转载请注明来源,违者必究。

    责任编辑:

    展开全文
  • 计算机双目立体视觉

    2018-04-10 10:38:11
    《计算机双目立体视觉》是一本比较全面和系统研究计算机双目立体视觉理论、技术及其应用的学术专著。 《计算机双目立体视觉》在介绍双目视觉基本原理的基础上,阐述了双目立体视觉的实现技术。同时,本书针对传统...
  • 双目立体视觉是计算机视觉的一个重要分支,利用计算机技术模拟人类视觉原理,使用计算机被动感知距离的方法,从两个或者多个点观察同一个物体的场景,获取在不同视角下的图像。 根据图像之间像素的匹配关系,通过...

    双目立体视觉是计算机视觉的一个重要分支,利用计算机技术模拟人类视觉原理,使用计算机被动感知距离的方法,从两个或者多个点观察同一个物体的场景,获取在不同视角下的图像。

    22c9df5485cc28d54d93bc141ab36d2e.png

    根据图像之间像素的匹配关系,通过三角测量原理计算出空间点在两幅图像中的偏移来获取物体的三维信息。得到了物体的实际景深信息,就可以计算出物体与相机之间的实际距离,物体三维大小,两点之间实际距离。

    6ce3ed8c1c5a4caf61f0480bd049ea1f.png

    双目立体视觉测量方法具有效率高、精度合适、系统结构简单、成本低等优点,非常适合于制造现场的在线、非接触产品检测和质量控制。双目立体视觉系统是计算机视觉的关键技术之一,获取空间三维场景的距离信息也是计算机视觉研究中最基础的内容。

    a78fd6b45c89d3f25ba9d707dfa96f9c.png

    相比其他的立体视觉测量、跟踪方法,如透镜板三维成像、投影式三维显示、全息照相术等。双目立体视觉测量方法直接模拟人类双眼处理景物的方式,可靠简便,在许多领域均极具应用价值,如微操作系统的位姿检测与控制、机器人导航与航测、三维测量学及虚拟现实等。

    41190d8c5cca0eb81500d1c93239508b.png

    在机器视觉应用中,双目立体视觉系统一般由双摄像机从不同角度同时获得被测物的两幅数字图像,或由单摄像机在不同时刻从不同角度获得被测物的两幅数字图像,并基于视差原理恢复出物体的三维几何信息,重建物体三维轮廓及位置。

    de3f4187d2d5b4c5a816ecc8f5ae4d9a.png

    各种双目视觉系统结构各有优缺点,这些结构适用于不同的应用场合。对要求大测量范围和较高测量精度的场合,采用基于双摄像机的双目立体视觉系统比较合适。对测量范围要求比较小,对视觉系统体积和质量要求严格,需要高速度实时测量对象,基于光学成像的单摄像机双目立体视觉系统便成为最佳选择。

    b18156f08a34462941b29e053d565353.png

    视觉系统的安装方法影响测量结果的精度,基于双摄像机的双目立体视觉系统必须安装在一个稳定的平台上,在进行双目视觉系统标定以及应用该系统进行测量时,要确保摄像机的内参(比如焦距)和两个摄像机相对位置关系不能够发生变化,如果任何一项发生变化,则需要重新对双目立体视觉系统进行标定。

    14964ec6cf3b3596730575c590ec67d6.png

    双目立体视觉标定时,需要采用高精度的标定模板、完善的摄像机标定数学模型,在复杂的背景环境下实现系统的现场标定。通过左右图像中特征点的图像坐标,和双目测量的原理,实现特征点在三维空间坐标和姿态的测量。

    ab0d793457463dbb35bbeafa363bab72.png

    双目立体视觉的研究一直是机器视觉中的热点和难点,使用双目立体视觉系统可以确定任意物体的三维轮廓,并且可以得到轮廓上任意点的三维坐标,因此双目立体视觉系统在机器视觉领域有着广泛的应用前景。

    7975268dd46215fcf9c361d22f551bd4.png

    双目立体视觉系统的应用领域非常广泛,为了能够将这些技术应用在实际的工程中,需要尽可能提高算法的效率与精度。通过图像校正立体视觉系统的方法,简化立体匹配的复杂度,通过滤波、分类器、几何变换等高效的方法,提高算法处理速度和精度。

    308c9f0fa4c1acb447d620f02bcd0b1d.png
    展开全文
  • 双目立体视觉.pdf

    2020-12-21 20:12:05
    双目立体视觉.pdf
  • 摘要:阐述了双目立体视觉技术在国内外应用的最新动态及其优越性。指出双目体视技术的实现分为国像获娶摄像机标定、特片提娶立体匹配和三维重建几个步骤,详细分析了各个步骤的技术特点、存在的问题和解决方案,并对...
  • 算法的双目立体视觉、双目测距(双目校正和立体匹配)(文档里包含了测试图片)
  • 这里开源了一些经典的立体匹配算法,你可能会感兴趣:https://github.com/ethan-li-coding​github.com双目立体视觉(Binocular Stereo Vision)是机器视觉的一种重要...精度,是双目立体视觉至关重要的指标。双目立...
  • 作者:何文博来源:公众号@3D视觉工坊双目立体视觉一直是机器视觉研究领域的发展热点和难点,“热”是因为双目立体视觉有着及其广阔的应用前景,且随着光学、计算机科学等学科的不断发展,双目立体技术将不断进步...
  • 双目立体视觉三维重建

    万次阅读 多人点赞 2018-07-22 17:15:08
    双目立体视觉的整体流程包括:图像获取、双目标定、双目矫正、立体匹配、三维重建。 Stereo Vision OpenCV+OpenGL 双目立体视觉三维重建 OpenCV 双目测距(双目标定、双目校正和立体匹配) 真实场景的双目立体...
  • 作者:李迎松来源:公众号 @3D视觉工坊来源:https://blog.csdn.net/rs_lys/article/details/107102968开源代码免费获取,欢迎关注作者的GitHub:https://github.com/ethan-li-coding双目立体视觉(Binocular Stereo ...
  • OpenCV+OpenGL 双目立体视觉三维重建

    万次阅读 多人点赞 2016-08-08 00:02:47
    0.绪论这篇文章主要为了研究双目立体视觉的最终目标——三维重建,系统的介绍了三维重建的整体步骤。双目立体视觉的整体流程包括:图像获取,摄像机标定,特征提取(稠密匹配中这一步可以省略),立体匹配,三维重建...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,110
精华内容 444
关键字:

双目立体视觉