在双目立体视觉领域中,立体匹配是其重要研究方向。为了针对部分立体匹配算法在弱纹理区域有较高的误匹配率的问题,本文提出一种基于多尺度多特征的立体匹配算法。将STAD、梯度与改进后的Census代价融合作为代价计算方法,代价聚合阶段,以引导图滤波算法为核心,利用跨尺度的思想将不同尺度的代价立方体进行融合,其中对于不同尺度的代价立方体设置了不同的代价聚合参数。对于视差图结果的一些错误,采用了多种视差后处理的方法。实验结果表明了该算法在弱纹理区域的准确性,对Middlebury3.0测试平台上标准图像对的实验结果表明,该算法在多组弱纹理图像上的平均误匹配率为8.16%,较传统的SGM等算法有更高的匹配精度。
立体匹配算法在计算机视觉中是研究难点[1],立体匹配算法性能的评价标准一般认为是匹配准确率和算法运行时间。现如今由于GPU 足够强大,即使是很复杂的图像,立体匹配算法也能够利用其并行计算的能力很快计算出结果,例如CostFilter [2]和Plane-FitBP [3],他们都几乎能做到实时计算。故而只要算法的核心技术能够进行并行加速,例如引导图滤波算法[4],算法的运行时间就显得不是那么重要,因此人们更为关注算法的准确率,并由此开始研究立体匹配的难点:镜面反射;遮挡;重复纹理、弱纹理甚至无纹理等情况。
纹理具有区域性和尺度性的特点,弱纹理一般指一个区域局部属性是单一的,例如:白墙、桌子。
尺度,这种生物灵感往往容易被许多优秀的算法所忽视,所以本文算法基于多尺度去研究弱纹理区域。
Scharstein [5]等将立体匹配技术总结成四步:代价计算、代价聚合、视差计算、视差后处理。在代价计算阶段,对于每个像素所有可能视差的范围内计算匹配代价进而形成一个代价立方体。在代价聚合阶段,代价被聚合,以一种算法将像素邻域的代价进行聚合来增强局部的视差一致性。最后计算出视差并且根据各种各样的视差后处理技术来优化视差。
在这四个步骤中,每个步骤都对算法的成功性至关重要,针对弱纹理区域而言,不同的代价计算方法获得的结果完全不同。而代价聚合阶段是很多优秀算法的核心[6] [7],对结果影响非常大。因此,本文主要关注代价计算和代价聚合两个阶段。
很多代价聚合方法都用到滤波技术方框滤波和高斯滤波, 这会导致深度边界模糊[8]。
直到K He 等[4]提出引导图滤波算法,对图像边缘的保留效果非常好的同时算法运行速度远远低于双边滤波[9],而且还可以在图像平滑处使用,是目前最快的边缘保留过滤器算法。
由于引导图滤波算法突出的效果和极快的速度,基于引导图滤波算法的立体匹配方法引起了广泛的关注。Tan P 等[10]将引导图滤波算法用于局部立体匹配算法的代价聚合阶段,依赖于引导图滤波算法的自适应参数。
在没有立体匹配困难的图像对(没有镜面反射和弱纹理)上获得了不错的效果, 代价计算简单并且实验并没有考虑弱纹理图像。Hosni 等[11]也将引导图滤波算法用于立体匹配上,但其本身的代价计算阶段只是简单的应用截断的颜色强度代价和梯度代价的融合,针对处理弱纹理图像稳定性更强的Census