一种改进双目视觉立体匹配算法
2016-05-03西安科技大学厍向阳
西安科技大学 刘 森 厍向阳
一种改进双目视觉立体匹配算法
西安科技大学刘森厍向阳
【摘要】获取同一场景的立体图像对是实现双目立体成像的关键问题。针对传统的固定窗口图像区域匹配算法复杂度高的问题,提出一种改进的基于区域增长的立体匹配算法—基于线增长的立体匹配算法。仿真实验表明,该算法在满足实验需求的情况下提高了匹配速度。
【关键词】立体视觉;立体匹配;匹配算法
1 引言
双目立体视觉是机器视觉的重要形式之一。立体匹配是双目面立体视觉中最重要也是最复杂的部分[1]。然而,由于匹配的不确定性,立体匹配问题始终没有统一的解决方案。双目立体匹配主要是通过匹配算法从立体图像对中找出匹配点并得到视差图,然后利用三角几何关系计算空间中物点的深度信息,从而生成深度图[2]。
目前较为常用的立体匹配算法是基于区域的匹配算法,基于区域增长的立体匹配算法对纹理信息比较丰富的图像有比较好的效果[3-4],但是也存在着运算量较大,执行速度较慢,确定极线方程的计算过程过于复杂和算法复杂度较高等问题。
为了能降低双目立体匹配算法的复杂度,同时保证匹配的可靠性。本文针对传统的基于区域增长算法复杂度高的问题,给出了一种基于线增长的立体匹配算法。仿真实验表明所给算法具有良好的可靠性和很好的时效性。
2 基于线增长的立体匹配算法
立体图像对的立体匹配算法在执行过程中对部分像素点重复计算,造成该算法复杂度较高。由于立体图像只在行的方向上有偏差,为了减少其算法的复杂度,只需在行方向上进行区域增长。因此,只用查找根点的下一个邻接点来进行区域增长,如图1所示。将算法中只在行方向上进行区域增长称为线增长。
图1 线增长方式
改进后的算法步骤如下:
Step1.根点选择。在不属于任何一个增长区域的行中选择一个像素点,然后通过误差量计算公式:
求该点误差量。
如果误差量不大于VLG(Lin Growing Threshold),将该点设为根点,将其误差设为区域误差。
Step2.计算根点在行方向上的右相邻点与根点的误差量。如果误差量等于或小于VLG,将该点划分到该区域。否则,标记该点;
Step3.将归入该区域的点设为新的根点,转Step2,直到该次区域生长完成。
Step4.判断所有像素点是否已计算,如果还有点没有计算,转Step1,否则,算法结束。
3 通过平均误差阈值机制来过滤不可靠的视差估计
在立体匹配过程中存在一些噪音,这些噪音使得立体匹配的可靠性大幅度降低,为了提高立体匹配的可靠性,运用平均误差机制过滤不可靠的视差估计值。
将双目立体图像对作差之后得到的图像就是两幅图像之间的不同部分,然后进行二值化操作得到视差图d,视差图d的误差值Ed表达式为:
视差图d的可靠度的平均值Rd定义为:
其中,Ne为预先设定的误差值。Sd是误差量为Ne的像素点个数。
对在物体边界的点来说,它很可能被图像中的错误对象掩盖。这样的视差图就会包含了一些不可靠的信息,这些不可靠的差异信息可以从不能忽视的高误差量Ed得到。为了增加所得视差图d的可靠性,采用式(4)过滤掉一些在d中的不可靠差异信息,经过过滤的视差图d0可表示为:
经过过滤不可靠信息后的视差图d0的误差值设为,则有:
采用过滤掉不可靠差异信息的d0比d更加可靠。式(5)中,设置了针对Ne的差异信息来代表没有被判断的区域,包含Ne区域的Ed的值在计算Rd时被排除在外。Ve用来判断误差量的阈值是否可靠,为了自动定义Ve,我们采用以下方法:
在式(6)中,a代表采用滤波方法所得到可靠值的偏差系数。降低a的值会使d更加可靠。但是由于忽略图像中更多的差异点,所以说在降低a的同时会损坏视差图。
4 实验结果
为了验证本文算法的有效性,以心脏模型的立体图像对(图2)进行仿真实验并对实验结果进行比对。编程环境:MATLAB 7.0,硬件环境:Pentinum(R) Dual-Core CPU T4400,内存2G的计算机上使用MATLAB 7.0对原有算法和改进算法进行实现。数据来源:项目组前期工作数据。
图2 左右立体图像对
通过在实验中进行参数设置,分别得出了在不同算法和在相同算法的不同参数下立体匹配的可靠性和时间的数据。
图3中横轴1、2分别代表的是基于区域的匹配结果和基于行增长匹配所得结果(VLG=180)的匹配可靠性。
图3 可靠性比较
图4中横轴1、2分别代表的是基于区域的匹配算法和基于线增长匹配算法(VLG=180)在实现过程中所消耗的时间。
实验结果表明基于区域匹配算法的可靠性相对比较好,但是其时间消耗最大,超过了7.24s。当VLG=180时,本文算法可靠度相比基于区域匹配算法和基于点的匹配算法有所下降,但是完全满足实验需求,该算法突出特性在于它的时间消耗相比传统区域增长算法大幅下降,只有不到2.18s,降低了三倍。
基于线增长的匹配算法在满足可靠性要求的情况下将时间消耗大幅度降低,达到了实验的期望数据。
图4 时间消耗(单位:s)
5 结论
本文对基于区域的立体匹配算法做了详细分析,发现传统的区域增长匹配算法的复杂度较高,最后通过将待匹配图像中的某几行像素设定为一个执行区域(即线增长中的“线”)依次进行立体匹配,实验结果表明,在能够满足需求的匹配可靠性的前提下我们的算法复杂大幅缩小,取得了满意的效果。
参考文献
[1]赵亮亮.双目立体视觉中的图像匹配技术研究[D].南京航空航天大学,2007.
[2]何仁杰.双目立体视觉区域局部匹配算法的改进及其实现[J].现代电子技术,2009(12):68-70.
[3]张辉,张丽艳.面向三维点云测量的双目立体匹配算法[J].南京航空航天大学学报,2009,41(5):588-594.
[4]陈登,白洪欢.Census立体匹配算法的DSP实现[J].科技通报2008.6:860-865
[5]徐奕,周军,周源华.立体视觉匹配技术[J].计算机工程与应用,2003,39(15):388-392.
刘森,男,硕士,主要研究领域为计算机图形学、图像处理。
厍向阳,男,教授,主要研究领域为大数据和机器学习。
作者简介:
通讯作者: