张 力,黄影平
(上海理工大学 光电信息与计算机工程学院,上海 200093)
实时双目立体视觉系统的实现
张力,黄影平
(上海理工大学 光电信息与计算机工程学院,上海200093)
摘要依据双目立体视觉原理,对双目立体视觉系统的设计与实现展开研究,介绍了双目立体视觉系统的组成,并对系统涉及的主要关键技术进行了探讨。结合相关的硬件设备,利用VS2012软件开发平台实现了双目立体视觉系统。该系统可实时地进行图像采集、边缘检测、立体匹配等功能,同时由于采用3种确认算法,最大限度地去除错误匹配,得到良好的视差图。
关键词双目立体视觉;边缘检测;立体匹配
Implementation of Real-time Binocular Stereo Vision System
ZHANG Li,HUANG Yingping
(School of Optical-Electrical and Computer Engineering,University of Shanghai for Science and Technology,Shanghai 200093,China)
AbstractAccording to the principle of binocular stereo vision,the design and implementation of system based on binocular stereo vision is studied.The components of system based on binocular stereo vision are introduced and the relevant key technologies of the system are discussed in detail.A system is built by using VS2012 software development platform and relevant hardware equipment.The system is capable of real-time image acquisition,edge detection and stereo matching with good parallax figure obtained by the use of the three validation algorithm to maximize the removal of mismatches.
Keywordsbinocular stereo vision;edge detection;stereo matching
双目立体视觉技术是计算机视觉研究领域的一个重要分支,被广泛应用于视觉导航[1]、目标检测与跟踪、目标测量、目标识别以及三维场景感知等场合[2]。双目立体视觉进行三维测量利用视差原理,对不同视角下获取得同一场景的两幅图像进行处理,从而恢复出空间物体的三维坐标信息[3]。在双目立体视觉系统中,立体匹配是关键技术,直接影响系统的精度[4]。由于图像噪声、遮挡、重复纹理和弱纹理这些因素的存在,会使立体匹配产生错误的匹配结果[5]。为消除这些因素的影响,本文使用SAD区域立体匹配算法,进行纹理、唯一性和表面3种确认算法,对匹配结果进行确认,去除错误的匹配,从而消除这些因素的影响,提高立体匹配的正确性,同时使系统具有实时性。
1系统组成及工作流程
双目立体视觉系统的硬件部分包括加拿大PointGrey公司Bumblebee XB3立体相机和IEEE-1394B图像采集卡。系统的软件部分由图像的预处理模块和立体处理模块两个模块组成,其工作流程如图1所示。
图1 软件工作流程图
2系统软件的设计与实现
2.1图像预处理
从立体相机得到符合立体视觉原理的左右图像对,由于各方面因素的影响,会不可避免地存在噪声、干扰和失真现象,造成图像质量的下降,而两个摄像头由于接收的光强不同,立体图像对也会存在亮度差异。因此,在对其进行分析和操作之前,必须对原始图像进行必要的预处理。图像预处理就是对图像采用一系列技术来降低噪声的影响和图像的失真,改善图像的视觉效果,突出有用信息、抑制无用信息。
基于上述问题,系统采用的图像预处理步骤如下[6-7]:(1)使用高斯滤波器对图像进行低通滤波;(2)对图像进行校正。校正是用于修正摄像机镜头所产生的畸变。在原始图像中可看到镜头所带来的这种畸变。例如,场景中的一条直线在原始图像中会变成一条曲线,这种效果在图像的边角处尤为明显。校正就是为了修正这种类型的畸变;(3)使用Laplace算子对校正后的图像进行边缘检测,得到边缘图,消除图像对存在的亮度差异。
进过上述的图像预处理,减少了噪声、失真、立体图像对之间的亮度差异等不利因素,有利于立体匹配的计算,提高系统精度。
2.2立体处理
在双目立体视觉系统中,立体匹配是一个关键技术,它是指将同一空间景物在不同视点下投影图像的像素点对应起来,并由此生成相应的视差图的过程。目前,立体匹配算法主要分为基于特征和基于区域两类。前一类选取图像中具有唯一性质的点作为匹配点,通常选择边缘、角点等;后一类考虑每个需要匹配点的邻域性质,能够得到稠密的视差图。本文采用基于区域的SAD立体匹配算法,优点在于计算复杂度低,运算速度快,满足系统对实时性的要求。SAD匹配函数为
(1)
其中,Iright和Ileft分别是右图和左图;m为模板尺寸;d为搜索范围,在设定的视差范围内取值。
立体匹配过程如下:(1)获取经过图像预处理的左右两幅图像,以右图像为参考图;(2)取右图的每个像素点作为参考点,以此为模板中心加上模板,模板尺寸为m,并在左图中相应的极线上寻找匹配点,也建立相同尺寸的模板,搜索的范围为设定的视差范围;(3)使用式(1)计算左右模板的相关性,计算结果存入一个数组;(4)取数组中DSAD的值最小的左图中的点为右图参考点的匹配点,同时也计算出参考点的视差值。
通过上述步骤估计出像素精度的视差,由于像素精度的视差求深度图时有可能会导致同一物体在深度图中的点不连续。为解决这一问题,需要对过程(3)中求出的DSAD数组用二次插值得到亚像素精度的视差估计。对与最大相关系数邻近的5个连续的相关系数,用多项式函数做最小二乘法拟合,函数极值点就是在右图参考点的匹配点位置。
上述算法在视差不连续点和弱纹理区的匹配精度低,在遮挡点匹配无效,产生了大量的错误匹配。所以本文使用了3种确认算法,来确认所得视差值得有效性,去除去匹配。
纹理确认(Texture Validation)是基于相关模板的纹理的强弱的,其决定了视差值是否有效。若纹理的水平不足以产生一个正确的匹配,这一像素就会被声明为无效。换句话说,在立体匹配过程(2)中,计算右图参考点的相关模板中灰度的均值,这代表了该模板中纹理的强度,设定阈值,高于阈值的,则该模板中的纹理足够强,匹配得到的视差值是有效的,否则为无效。纹理确认对弱纹理区造成的错误匹配具有显著的消除作用。但对遮挡带来的错误匹配没有作用。
唯一性确认(Uniqueness Validation)是指对一个特定像素的最佳匹配和这个相关模板下的其他匹配比起来是否足够好。即使相关模板的纹理满足要求,由于封闭的原因,可能还是得不到正确的匹配。如果相关的结果不够好,这个像素就会被声明为无效。在立体匹配过程(4)中,设定阈值,从数组中获取的最小的DSAD值小于该阈值,对应的像素点即为参考点的最优匹配点,从而去掉不理想的匹配结果。
在使用了上述两种确认算法,视差图中的误匹配减少了许多,但在图像中物体的边缘处还存在着一些小块的误匹配,与其周边区域有明显的差异,表现出明显的视差不连续。因此,本文使用表面确认算法来去掉这些错误匹配。
表面确认(Surface Validation)是一种图像分割算法。正确的视差表面不仅局部是稳定不变的,且从全局来看是一个更大3维视差表面的一部分。设定表面窗口的大小,然后判断该表面是真实的3维表面还是噪声区域。靠着将原始视差图分割为连续视差区域和噪声区域,连续视差区域就是得到的正确匹配区域。分割算法为
(2)
其中,i是视差图中任意一个像素;L是表面标签;N(i)是i的邻域像素;di是在像素i处的视差值。如果在一个视差表面内,打上标签的像素数目没有通过设定的阈值,则该表面被声明为噪声区域,在视差图中设置为无效像素区。
3软件界面及实验结果
使用C++进行编码,在VC2012中建立一个工程名为PGRStereo的基于对话框的应用程序,对双目摄像机进行控制,采集图像对,对图像对进行预处理后,显示校正后的左右图,然后进行立体匹配,得到视差图,经过伪彩色转换后显示。同时还显示深度图(鸟瞰图),是视差图在X-Z平面上的投影图,直观地显示出空间物体与相机的距离。最终的软件界面如图2所示,在主界面上按下StereoPrarms按键,将弹出立体处理控制对话框,控制着立体匹配模板的尺寸,搜索的视差范围,决定是否对图像进行边缘检测及其模板尺寸,操控着确认算法的选择及其参数调节。该对话框如图3所示。
图2 软件主界面示意图
图3 立体处理控制对话框
图4为相机采集的原始左右图像经过校正后得到的左右图。图5所示的视差图中,可看出在仅使用SAD区域立体匹配算法的情况下,视差图中存在着许多错误匹配,使得图像不平滑。更重要的是,图像中的无纹理区域因为像素亮度相似会产生大量的错误匹配。同时,在图像的边界和图像中物体的边缘处,由于遮挡,也会产生大量的错误匹配。这些错误匹配会导致错误的三维测量结果和深度图中错误的物体投影,给障碍物的检测带来困难,这些可以在图5(b)中明显的看到。所以,为消除这些错误的匹配,在SAD区域立体匹配算法的基础上,采用上述3种确认算法。
图4 采集后校正的左右图
图5 未使用确认算法得到的视差图和深度图
如图6所示,在综合使用3种确认算法后,去掉了明显的错误匹配,这是调整算法参数,得到了较好的结果,若完全去除错误匹配,会影响正确的匹配结果,同时导致产生稀疏的视差图。由于是实验室场景,文中设置深度图的宽度为-2~2 m,深度0~8 m。在电脑上(Core双核3.3 GHz),整个算法流程的速度可达到15 Hz,较好地保证了本双目立体视觉系统的实时性和可用性。
图6 使用图3所示的确认算法设置下得到的视差图和深度图
4结束语
本文实现了一个实时双目立体视觉系统。在该系统中,将采集的图像先经过滤波、校正和边缘检测等预处理,使用SAD区域比配算法进行立体匹配,然后对得到的视差图使用3种确认算法,消除错误的匹配结果,计算视差图中的三维信息,转换到xz平面,得到深度图,为进一步的障碍物检测做好准备。
参考文献
[1]Don Murray,James J Little.Using real-time stereo vision for mobile robot navigation[J].Autonomous Robots,2000,8(2):161-171.
[2]Huang Y P.Obstacle detection in urban traffic using stereo vision[C].Vienna,Austria:In Proceedings of the 8th IEEE International Conference on Intelligent Transportation Systems (ITSC’05),2005.
[3]Cyganek B,Siebert J P.三维计算机视觉技术和算法导论[M].陆军,董晓睿,译.北京:国防工业出版社,2014.
[4]Huang Y P,Fu S,Thompson C.Stereovision-based object segmentation for automotive application[J].EURASIP Journal on Applied Signal Processing,2005(14):2322-2329.
[5]马颂德,张正友.计算机视觉:计算理论与算法基础[M].北京:科学出版社,1998.
[6]Rafael C Gonzalez,Richard E Woods,Steven L Eddins.数字图像处理[M].阮秋琦,译.北京:电子工业出版社,2005.
[7]章毓敏.图像处理和分析教程[M].北京:人民邮电出版社,2009.
中图分类号TP391.41
文献标识码A
文章编号1007-7820(2016)03-068-04
doi:10.16180/j.cnki.issn1007-7820.2016.03.017
作者简介:张力(1989—),男,硕士研究生。研究方向:数字图像处理等。黄影平(1966—),男,博士。研究方向:智能汽车障碍物探测辨识等。
收稿日期:2015- 07- 13