基于边缘约束的自适应引导滤波立体匹配算法

2020-12-08 07:13
应用科技 2020年4期
关键词:立体匹配视差代价

哈尔滨工程大学 信息与通信工程学院,黑龙江 哈尔滨 150001

立体匹配是通过寻找同一场景在不同视角下的2 幅或多副图像的像素点,逐像素点获取像素点间的二维视差,从而恢复场景深度。匹配的过程,是摄影测量和计算机视觉领域的重要研究课题,在机器人导航、无人驾驶、虚拟现实和三维重建等领域有着广泛的应用[1]。Scharstein 等[2]对典型的立体匹配算法进行了研究和总结,形成了立体匹配算法的理论框架,根据优化方法的不同,将现有的立体匹配算法分为全局算法和局部算法这2 类。全局立体匹配算法通过构建全局能量函数,进行最小化来求取视差值,该算法精度高但是计算复杂,常见的全局算法有置信度传播匹配算法(belief propagation,BP)[3]、图割算法(graph cut,GC)[4]和动态规划算法(dynamic programming,DP)[5]等。局部算法计算局部窗口像素的最优值,通过聚合代价进行误差值计算,具有复杂度低、效率高的特点,在实际过程中易于实现。

常见的局部立体匹配方法,主要包括自适应支持窗口法(variable support window,VSW)和自适应支持权重法(adaptive support weight,ASW)。基于VSW 的方法通过图像特征来寻找最佳的支持窗口。Zhang 等[6]提出了一种局域十字交叉的自适应窗口,利用相邻像素的颜色差异和空间距离的关系,在水平和垂直方向上进行像素扩展,形成一个十字交叉区域。Mei 等[7]在此基础上提出了双距离阈值和双色彩阈值准则的方法来构建聚合区域,提高了匹配精度。基于ASW 的方法是通过利用对固定窗口内的像素分配不同的权重来进行代价聚合。He[8]提出引导滤波的概念,Hosni等[9]将其作为代价聚合方法,引导滤波器具有计算复杂度和窗口大小无关的优点,因此在实时系统中得到广泛应用。

在实际应用过程中,边界区域部分属于容易出现深度值不连续的特殊区域,此时,所构建的区域延伸方向容易在不同深度值区域进行延伸,导致视差值不连续现象。对此,本文提出了一种基于边缘约束的自适应引导滤波的立体匹配算法解决该问题。在代价聚合过程中,将自适应区域和引导滤波算法相结合,但此时的引导滤波窗口不是固定大小的窗口,会导致边界点的交叉区域过度延伸,对此,引入边缘约束条件,使得边界点的交叉区域包含更多的有效像素点,从而提高边界区域的匹配精度,使得视差图能够更好地保持边界特征。

1 局部立体匹配算法框架

局部匹配代价计算可以分为4 步:1)匹配代价计算;2)代价聚合;3)视差计算;4)视差精细化。图1 为基于边缘约束的自适应引导滤波立体匹配算法流程。

图1 基于边缘约束的自适应引导滤波立体匹配算法流程

常见的局部代价计算方法有绝对误差和(sum of absolute differences,SAD)、误差平法和算法(sum of squared differences,SSD)、归一化积相关算法(normalization cross-correlation,NCC)和自适应窗口等。代价聚合是局部立体匹配算法过程中最重要的一步,利用支持窗口内的初始匹配代价进行求和或者取平均值来提高匹配可靠性,最终,采用胜者为王策略取代价最低值作为该点视差值。但左右视图会由于成像视角和光照等因素影响,左右图像中均会出现无法匹配区域,在左右视差图中也会存在同一位置其视差值较大的位置,这就需要对视差图进行精细化后处理,判断寻找错误视差点,然后进行重新计算,视差图中也存在空白区域,需要进行填充操作。

2 本文立体匹配算法

2.1 匹配代价计算

匹配代价是衡量左右2 幅图像视差相似性的指标,通过构建一个大小为H×W×D的三维矩阵,其中H、W和D分别表示图像的高、宽和视差搜索范围[10]。基于梯度变化的代价函数可以更好地表达视差特异性信息,本文采用常用的颜色强度和梯度信息相结合的代价计算方法,视差为d时点i的代价表示为

式中:Il(i)和Ir(id)分别表示左图像素i的值和视差为d时该像素在右图对应像素的值;∇xIl(p)和∇xIr(p−d)分别表示沿x轴方向的左图像素i的梯度值和视差为d时该像素在右图对应像素的梯度值;为了减少外在点对图像匹配的影响,采用截断值的计算方式,将灰度值和梯度值差异较大的值进行剔除。T1和T2分别表示颜色灰度和梯度值的截断值;α表示衡量灰度值和梯度值的影响因子。

2.2 代价聚合

2.2.1 自适应区域构建

聚合窗口算法的前提条件是假设支持窗口内部的像素点具有同时视差值。基于像素点建立十字交叉的窗口进行窗口内像素聚合。核心思想是利用待匹配点的颜色信息和空间信息进行扩散约束,以此来构建符合每个像素点周围的交叉区域[11]。该算法的关键步骤是构建参考图像与目标图像中待匹配点的十字交叉结构,通过一定的判断准则分别计算得到每个待匹配像素点在水平和垂直方向上的臂长。

图2 十字交叉区域构建

式中:τ表示像素点颜色差值阈值;Ii表示图像像素点的颜色值;L表示在该点的臂长;r∗为最后在该点在某一方向上的臂长。

2.2.2 自适应引导图滤波

引导图滤波是常用的代价聚合计算方法,引导图滤波由于是基于盒滤波的方式实现的,整个算法的实现原理基于线性的方式,运算时间复杂度跟滤波器的大小无关,只与图像中的像素数目有关,其代价聚合为

式中:q为 像素点p的支持窗口中的某一像素点;Wp,q表示q对p的支持权重,其计算结果受引导图像的影响。引导滤波器的核心思想是滤波器运算后的输出结果Qi和输入的引导图像Ii满足局部线性模型,其模型结构为[13]

Qi=akIi+bk,∀i∈wk

式中bk是一个值。

通过构建损失函数来计算ak、bk,利用岭回归的计算方法进行求解:

以灰度图像的计算为例,q对p的支持权重为

式中:µk与σk表示以像素点k为中心的窗口内的均值和均方差;|w|表示固定大小为r×r的支持窗口w内的像素个数;ε是一个正则化参数。

由于传统的引导图滤波算法是基于固定窗口进行代价聚合的,匹配窗口的大小会对最终的匹配精度造成直接影响。若选用窗口过小,则会在弱纹理区域有较大的误差;若选用窗口较大,则在深度不连续区域误差较大,整个过程中没有充分考虑到窗口内部像素的差异性[14]。可以将自适应区域算法和引导滤波相结合,构建可变窗口的自适应引导滤波,充分利用各像素点的位置差异性。通过更改内核大小来对权重内核进行计算,核窗口将根据像素点的自适应区域进行调整,则式(3)的支持权重的计算方式可以变换为

2.2.3 基于边缘约束的自适应引导滤波

基于自适应区域的代价聚合方法依赖像素点之间的差异构建支持窗口,然而,在图像中,边界区域部分属于容易出现深度值不连续的特殊区域[15]。当引入了自适应区域引导滤波时,在边界上的边界点依据颜色阈值延伸臂长进行扩展,此时边界区域会沿着4 个方向进行延伸,会导致部分区域的边界在进行滤波过程中分布不均衡,对于边缘区域的滤波操作会造成不同程度的影响,会产生边界不平滑现象,导致后续代价计算的匹配精度下降。因此,考虑在边缘点处添加约束条件,使得边缘处的窗口保持较小的范围,减少过多无关像素点的干扰。利用Canny[16]算法对图像处理获得其边缘图像,I表示为原图像的边缘图像,I(p)=1表示该点为边缘点,其计算判决为

式中:τ(lpq)表示2 点之间的颜色阈值;Ds(p,q)表示2 点间的空间距离;Lmax为最大臂长;Dc(p,q)为2 点之间的颜色差值。

通过线性阈值进行操作,离像素点越近的位置,阈值越大;当距离像素点越远的时候,阈值变得越小。同时,在边缘点处,将该点的延伸臂长限制到一定的范围内,保证自适应区域不会包含太多的无关区域。

图3 中是采用不同判断依据处理后得到的自适应区域,从图3(a)中看出,经过线性阈值的操作,该阈值变化受空间距离的影响,但交叉区域依然会包含过多无关像素。如图3(b)所示,经过边缘抑制,其构建的支持窗口区域明显缩小,原有的臂长延伸方向不变,但是会减小无关区域的大小,使得该区域包含了更多的有效像素,并且再也不会影响非边界区域的臂长延伸。

图3 不同判决条件所构成的交叉区域

图4 是进行自适应引导滤波代价聚合视差图,在图4(a)中可以看出,只考虑将颜色阈值作为判断依据,由于其在边界区域的自适应区域范围过大,导致在代价聚合计算后的视差图中存在边缘过于平滑的现象。如图4(b)中的椭圆区域,将边缘约束引入之后,避免了边缘点处自适应区域的过度延伸,使得自适应区域能够包含更多的有效像素,在代价聚合过程中视差图中图像的边界区域能够更好地保持着原图的细节特征。

图4 两种引导滤波算法处理后的视差

2.3 视差计算与精细化后处理

式中D表示视差搜索范围,即经过代价聚合的代价计算图选取代价最小的值作为最终的视差图。常用的后处理方法有:左右一致性检测,即经过代价聚合后可以分别获得参考图像和目标图像的视差图,通过判断左图某一点的视差值和右图某一点的视差值的差值进行判断,其判断标准为

|dL(i)−dR[i−dL(i)]|<δ0

式中:dL(i)表示i点在左视差图的视差值;dR[i−dL(i)]代表点i右视差图中与之对应的点;δ0表示2 点的阈值,一般设置为1。若不满足该条件,则认为该点为异常点,对该点利用加权中值滤波进行后处理计算填补。

3 实验验证

本文实验在Matlab2016a 平台下进行编程实现。为验证代价计算和代价聚合的算法有效性,采用Middlebury[17]立体匹配评估测试平台提供的数据集进行实验。按照统一评价标准,设误差阈值参数为1。实验中所涉及的参数如表1 所示。

表1 实验参数设置

3.1 代价聚合算法验证

为验证边缘约束的自适应代价聚合算法的有效性,将固定窗口大小的引导滤波器立体匹配算法和改进后的代价聚合对Middlebury 测试平台的标准图像进行实验。图5 为Middleburry2006 数据集的5 组图像Baby1、Baby2、Baby3、Flowerpots和Bowling2 的实验结果。

图5 引导滤波算法与本文算法对比

从图5 中可以看出,相较于固定尺度支持窗口的引导滤波器代价聚合算法,改进算法在图像边界纹理区域的误匹配现象明显得到改善,匹配精度有所提升。这是由于在自适应引导滤波的过程中,考虑到边界像素点的特殊性,添加了阈值因子,使得原边界点按照原有的延伸方向进行伸展的过程中,包含更多的有效区域,减小了无关区域的干扰,有效减少了边界的不连续区域的产生,提高了算法的匹配精度。表2 为2 种聚合算法的误匹配率。

表2 不同代价聚合算法误匹配率 %

3.2 算法有效性验证

为验证本文的算法有效性能,将本文算法在Middlebury 提供的4 组标准测试图上进行实验,并与其它局部立体算法进行对比。其中Tsukuba、Venus、Teddy 和Cones 的视差搜索范围分别为[0,15]、[0,19]、[0,59]、[0,59],缩放倍数为[16,8,4,4]。本文算法分别与多种经典立体匹配算法进行对比分析,所采用的算法分别为LCVB-DEM[18]、Cost-Filter[9]、SMPF[19]和AdaptAggrDP[20],其中CostFilter和AdaptAggrDP 均为局部立体匹配算法,比较各个算法在不同区域的误匹配率,其中误匹配视差结果如图6~11 所示,红色部分表示误匹配的视差值。

图6 Middlebury 数据集图像

图7 CostFilter 算法误匹配视差

图8 SMPF 算法误匹配视差

图9 LCVB-DEM 算法误匹配视差

图10 AdaptAggrDP 算法误匹配视差

图11 本文算法误匹配视差

在以上算法处理的结果图6~11 中,红色部分均表示误匹配区域。由结果可以明显看出相较于AdaptAggrDP、SMPF 算法,本文算法在各个图像中的红色区域明显减小,并且本文算法产生的深度图在边缘细节方面表现较好。在Tsukuba 图像中,本文算法在台灯和人物雕塑部位有较少的误匹配点出现,而其他算法在该区域部分的误匹配点较为连续和稠密。在Vensus 图像中,LCVBDEM 算法处理后的图像,在边缘处的红色误匹配点明显较多,而本文所提出的算法,在深度不连续的边缘处的误匹配点明显较少,这是由于充分利用自适应引导滤波的优势,充分利用各个像素点的交叉区域的特异性,并限制了边缘处的过度延伸,使得边缘处的细节得到更好的还原。在Cones 图像中,本文算法在图像中的左区域误匹配点相较于其他算法有明显减少,其中,在深度不连续区域依然保持良好。进一步对比各算法在不同区域的误匹配率,来比较各个算法之间的差异性。表3 为各个立体匹配算法的误匹配率。

表3 立体匹配算法误匹配率比较 %

表中:N-occ 表示非遮挡区域的误匹配率;Disc表示不连续区域的误匹配率;All表示整张图像的误匹配率。与局部立体匹配AdaptAggrDP 算法相比,本文算法误匹配率有大幅度降低,尤其是在Cones 图像上误匹配率大幅度降低。本文算法与局部立体匹配CostFilter 算法均采用引导图滤波的代价聚合方式,可以看出在引入边缘自适应引导滤波后,在以上数据集图像上的非连续区域,本文算法误匹配率均低于CostFilter 算法,表明自适应区域可以有效避免代价聚合过程中的无关区域滤波,减小误匹配率,边界保护性能有所提高。本文所提出的算法,在该数据集上的平均误匹配率降低到5.22%。

4 结论

本文以局部立体匹配算法为基础,通过将自适应支持窗口算法和自适应权重算法相结合,并引入了边缘约束思想,提出了一种基于自适应边缘约束的自适应引导滤波的局部立体匹配算法。

1)与固定窗口大小的引导滤波算法相比,本文的自适应引导滤波算法可以根据各个像素点所构建的交叉区域进行滤波操作,充分利用各个像素点的差异性,并且考虑边缘点的特殊部分,使得本文算法在最终视差图中能够较好地保留边界结果。

2)自适应引导滤波由于在代价聚合过程中需要计算每个像素点的交叉区域,所以在算法的整体运算时间上会有所增加,要使立体匹配算法能够真正满足实时性的要求,可以考虑使用并行运算实现加速。

猜你喜欢
立体匹配视差代价
基于自适应窗的立体相机视差图优化方法研究
夏泽洋团队提出一种基于分割的立体匹配视差优化方法
基于梯度域引导滤波的视差精炼迭代算法
爱的代价
代价
基于分割树的视差图修复算法研究
基于SIFT算法的图像匹配技术在测量系统中的应用
改进导向滤波器立体匹配算法
动态规划立体匹配的状态空间分析和性能改进
镜像式单摄像机立体视觉传感器对弹簧几何尺寸的测量