APP下载

基于局部的双目测距算法研究

2021-09-14李佳桑海峰

电脑知识与技术 2021年22期

李佳 桑海峰

摘要:当今在众多测距方法中,双目测距因为其无接触式的测距方法脱颖而出,其测量准确且误差小,更多应用在实际场景中,本文采用了基于局部的双目测距方法,首先对图像进行预处理,针对现实环境天气阴暗导致的图像质量不好图像细节模糊等问题,对被检测到的目标物体进行边缘的细节增强处理,减少误差,去除一些干扰,为后续匹配阶段提供了优势。在匹配阶段采用BM匹配算法,基于局部SAD窗口对左右相机图像依次进行匹配,实验结果表明,该方法可以减少误差去除误匹配,具有一定的准确性。

关键词:双目测距;图像预处理;细节增强;立体校正;BM匹配

随着经济社会的发展,双目立体视觉系统受到了越来越多的关注,因为其无接触和其简单方便的特点,使其在包括交通,军事,无人机等工业和科学制造等方向有着不可或缺的地位[1]。倪炜基针对需要实时对立体匹配时间要求很高的问题,提出了分割图像并且自适应的处理图像方法。降低了匹配时间[2]。张颖江等人在针对有阴影的图片上,采用粒子群方法去除误差,获得最好的图片。提高了测距精度,使测量结果更加准确[3]。西安工业大的史珂路提出了多种动态模板匹配方法,为立体匹配提供了更多的可能性[4]。综合上述问题,本文采用在预处理阶段对图片进行细节增强,去除一些噪声,经过相机标定立体校正等步骤,最后经过立体匹配左右相机图像点,得出距离。

1 细节增强图像预处理

由于拍摄环境亮度低或者相机生产等原因,有时拍摄到的图片质量很差,会出现跟拍摄物体无关的干扰,本文需要对图片进行图像处理,对拍摄的图像进行边缘细节增强,改善图像边缘模糊,为后续匹配奠定好的基础[5-6]。首先在基于LAB空间模型下利用分离双边滤波器将光照分量提取出来,利用Retinex理论对光照中的干扰进行校正使亮度合适,首先对图像进行膨胀处理,去除大块误差点,之后采用腐蚀处理去除图像的噪声,锐化图像物体边缘,去除干扰,最后得到符合图像测距的图像,为后续测距做了很好的铺垫。矫正函数如下[Icorrect](x,y)=S[(x,y)β(x,y)],其中[β](x,y)是校正系数,是基于图像质量选择的系数公式[β](x,y)=[(Sx,y+a)1+a]和[a=1-2*Smean(x,y)Smaxx,y+Sminx,y+1]这两个公式,选取最终校正的大小,[Smaxx,y和Sminx,y]分别是像素图像的最大值和最小值,在求取到平均值[Smean(x,y])之后,我们就可以得到a的大小,带到公式后,就可以进行图像的矫正。其效果图如图1所示。

2 双目立体视觉架构设计

双目立体视觉测距系统是依据三角形相似原理,模拟人的眼睛成像原理,得出被测物体与相机之间的距离[7]。其测量原理图如图2所示:

如图2 所示,可以看到,左右相机中心和p点构成了一个三角形,根据三角形相似原理,设p点的坐标为(x,y,z),[xl]=f[XcZc]和[xr]=f[(Xc-b)Zc],其中,我们将[xl]-[xr]叫作两个点的视差,另D=[xl]-[xr],故可求出相机坐标系下空间坐标点P点位置为:[Zc]=[bfD]。由此我们知道,只要知道相机的基线和焦距,然后通过寻找像平面上的视差点就可以得到距离。

3 立体校正

从双目测距原理我们知道,只要找到左右像平面视差点就可以得到距离,所以我们在相机匹配阶段找到视差点就可以完成测距。我们摆放安置摄像机时基本按照相机水平且在同一水平高度上,但是正常情况下相机像平面不可能在同一水平面上,所以需要利用方法进行立体校正,来保证相机像平面水平以及保障世界坐标同一点在左右像平面在同一行上,便于后续立体匹配,减少误匹配点[8-10]。本文采用bought算法进行相机平面的左右校正,输入相机之前标定的内外参数,进行行对准,通过校正使原来没有对齐的左右图像对齐,进行行校准。实验效果明显如图3,图4所示。

4 立体匹配

在经过立体校正之后,左右图像都已经行校准即寻找的视差点都已经约束在一条直线上,为后续匹配已经创造了条件,双目立体匹配是双目视觉系统的重要环节,可以这样说,匹配效果的好坏直接影响整个测距过程,立体匹配是寻找空间中的一点在左右像平面的对应的像素点的过程[11-13]。立体匹配方法有很多,根据匹配窗口大小及匹配策略可以分为局部匹配算法,半全局匹配策略和基于全局匹配算法。其中这些算法各有優缺点,基于全局匹配算法顾名思义,其是在整个深度值下根据约束条件搜索进行匹配,精度很高,但是耗费时间很长,一般不能应用于实际环境,无法达到实时,基于局部匹配方法是根据匹配的特征进行固定窗口的相似度比较,其匹配精度虽然没有全局匹配策略好,但是其匹配速度比较快,花费时间少,更多应用于实际工业环境中,半全局匹配采纳了局部匹配的优势,在局部和全局之间做出了综合。但是其缺点也很明显,在匹配阶段有时可能存在较大的“误匹配块”,综合上述并且结合实际情况,在算法和准确率之间做了权衡选择,采取基于局部的BM匹配算法,进行图像匹配。其具体算法步骤如下:

1)首先滤波对图像进行处理,去除干扰,使亮度合适,并增强其物体特征强度。

2)改变SAD窗口大小,使其适应图像,沿着校正好的同一行坐标进行查找视差点。

3)假如产生“错误”匹配,设置滤波器用以消除。

首先在左右图像上进行预过滤处理,用以去除一些噪声和扰乱点,为后续匹配做铺垫,并且增强其物体纹理,加强图像中的物体的边缘细节,对于左图像中的每一个特征,我们在右图像中寻找特征最大相似的像素点作为一对视差对,经过前面的校正之后,世界坐标点在左右相机成像平面的匹配点都在一条约束极线上,我们只要沿着极线寻找即可。如果右图像上的匹配点本身具有足够的特征能够被检测到,并且没有其他的干扰对其进行遮挡,能够正确匹配,左右视差点就可以被找到。然后沿着水平极线进行左右图像查找视差点,设置窗口大小,通常采用3[×3,5×5窗口大小进行]寻找,先计算出右像素点周围的像素平均值,然后与左图像待匹配点进行比较,最终获得最优像素点,最后再进行滤波消除可能错误的匹配图像对,获得最优匹配点。