(2017 二区)高分辨率立体图像的稠密视差图估计是一个非常困难的问题,无论从匹配精度还是计算效率上都是如此。因此,需要在全分辨率下进行彻底的视差搜索。一般来说,在立体视图中检查更多的像素会导致更模糊的对应。当对高分辨率图像进行降采样时,高分辨率图像的高频分量有可能在高分辨率图像中消失。此外,如果高频分量的缺失导致视差估计的错误在尺度空间中传播,最终得到错误的视差估计。为了解决这些问题,我们引入了一种有效的双尺度空间层次立体匹配方法。该方法对降维后的图像进行视差估计,然后对视差结果进行上采样。将全分辨率图像高频(或边缘分量)区域的视差估计值与上采样的视差结果相结合。在本研究中,我们使用高斯差(DoG)或发现边缘分量(Canny算子)从尺度空间表示中提取高频区域。然后,利用边缘感知的视差传播来细化视差图。实验结果表明,该算法具有较好的性能。
关键词: 立体匹配;尺度空间图像;视差图;高斯分布的差异;精明的边缘检测器;成本聚合
网络物理系统(CPS)由各种物理和软件组件组成,如智能电网、自动汽车系统、过程控制系统、机器人系统和自动飞行员电子设备。CPSs监控物理过程,分散决策和触发动作,实时与他人和人进行交流与合作[1,2]。
视觉系统已广泛应用于工业环境中与提高工人安全有关的应用和机器人导航。自动驾驶汽车和移动机器人系统需要三维深度信息来与现实世界或人类进行交互。立体视觉是通过类似于人类视觉系统的方式来获得真实场景的精确和详细的三维表示。立体摄像机可以通过使用深度来分割感兴趣的对象和背景元素,帮助汽车和移动机器人系统更好地在真实环境中导航。深度信息与单目图像特征相结合,可以更好地识别和匹配连续帧之间的特征。另外,提出了一种主动式和被动式立体视觉相结合的混合立体匹配系统来处理无纹理区域[3]。
立体匹配算法大致分为局部匹配和全局匹配两类。前者和像素级的匹配代价,而后者支持在每个像素上同时进行分段平滑的视差选择[4 - 17]。全局方法定义一个包含数据项和平滑项的全局能量函数。为了找到全局能量函数,使用了各种全局优化器,如动态规划(DP)[5,6]、信念传播[7]和图割[8]。大多数全局立体方法计算量大,涉及到许多参数。局部算法以最小的像素匹配代价选择视差假设,效率高,易于实现。此外,立体匹配方法由四个独立的部分组成:匹配成本计算、成本聚合、视差计算和视差细化[4]。在立体视觉中,由于遮挡问题、光照效应和成像传感器噪声的影响,准确的视差图的恢复一直是一个难题。
立体视觉的目标是确定一个精确的视差,表示立体视图之间相应像素位置的差异。检测图像的分辨率越高,获得的深度信息越正确。然而,随着图像分辨率的增加,建立对应点所需的计算量也随之增加。此外,在立体视图中检查的像素越多,匹配候选像素的数量就越大,匹配的模糊性也就大大增加。最近提出了几种立体匹配方法来处理近实时的高分辨率图像[9 - 11]。本文提出了一种分层的方法来获得高分辨率立体图像的可靠视差图。
为了减少块匹配算法的搜索空间和图像压缩中的冗余内容,积极采用多尺度图像表示。在立体视觉中,多尺度表示法(multi-scale representation)被称为由粗到精的方法,主要用于实现计算效率[12 - 15]。首先,将全分辨率图像按比例缩小,并对缩小后的图像进行视差范围搜索。然后,得到的视差值被缩放到图像的原始分辨率。通过使用由粗到细的方法,计算性能可以显著提高与穷举视差搜索在全分辨率[12]。然而,在离散尺度空间转换中进行图像平滑和子采样时,精细尺度图像的高频成分在粗分辨率图像中有消失的危险。因此,当视差估计在由粗到精的细化过程中跨尺度空间传播时,视差估计结果就会出错。
盖革通过在一组支持点上形成三角形来建立关于视差值的先验信息,这些支持点可以严格匹配[9]。这样可以有效地利用视差搜索空间,减少剩余点的匹配歧义。然而,基于支持点的先验很可能无法重建纹理较差和倾斜的表面。在半全局匹配[10]中,Sinha采用局部倾斜平面扫频来搜索视差假设。从初始稀疏特征对应导出局部平面假设,然后对每个倾斜平面进行局部平面扫描,得到全局最优视差值。通常,视差平面估计是一个耗时的过程,需要额外考虑大的和无纹理的区域。
赵描述了一个渐进的多分辨率管道,包括背景建模和密集匹配自适应窗口[11]。为了获得高分辨率的视差图,立体搜索区域被限制在以低分辨率视差估计值为中心的跨度范围内。这种由粗到精的方法可以显著提高计算性能。然而,在由复杂对象和背景组成的真实场景中,该方法有陷入局部最小值的风险。换句话说,当从粗分辨率图像中获取错误匹配结果时,由于尺度空间上的错误视差提示,导致匹配精度大幅下降。
在两尺度空间表示中(包括粗分辨率和细分辨率立体图像),该方法通过应用绝对差分(AD)-census 法计算初始匹配代价,然后在基于交叉支持区域内聚合匹配代价[16,17]。该方法利用高斯差(DoG),从全分辨率图像中提取高频区域。DoG是两个标准偏差参数[18]相差很大的高斯平均掩模的差值。此外,利用Canny算子检测原始分辨率图像中的边缘分量。在原始分辨率图像中,我们只计算高频区域或边缘分量的视差值。为了区分输入点和异常点(遮挡像素和假匹配像素),在双尺度立体图像中使用了左右一致性(LRC)检查。将粗尺度下的视差结果向上采样到全分辨率图像中,将上采样的视差结果与细分辨率图像中的视差估计结果相结合。这里使用的是相对于最大DoG值的DoG强度比。在边缘分量的情况下,得到的边缘周围的矩形区域可用于视差估计。边缘感知视差传播(EDP)是基于边缘代价信息[19]的大地测量滤波,它将视差传播到代价域中。最后,使用可靠的地面点和细化迭代投票。我们用米德尔伯里的大分辨率基准图像证明了我们的方法在准确性和计算速度方面的有效性。图1给出了该算法的框图。
层次立体匹配方法提供了一种有效的由粗到精的三维深度信息估计机制。在降采样过程中,高分辨率图像的高频成分有消失的危险。此外,当错误的视差估计在尺度空间中传播时,会得到错误的视差估计。由于高分辨率图像的最大视差级(搜索空间)增大,因此错误视差估计结果的可能性也增大。为了解决这些问题,我们将粗分辨率图像的视差估计结果与细分辨率图像高频区域的视差估计结果有效地结合起来。
鉴于锚像素 p = ( x , y ) p = (x, y) p=(x,y)在左图像(参考视图) I L e f t I^{Left} ILeft及其候选人对应点 p d = ( x − d , y ) pd = (x−d , y) pd=(x−d,y)在正确的图像(目标视图) I R i g h t I^{Right} IRight,两个独立的成本卷 C A D ( p d ) C_{AD}(p d) CAD(pd)和 C c e n s u s ( p 、 d ) C_{census}(p、d) Ccensus(p、d)计算。将两个成本卷结合起来,得到初始匹配成本 C i n i t i a l ( p , d ) C_{initial} (p, d) Cinitial(p,d)沿视差范围 d d d[16]。 C A D ( p , d ) C _{AD} (p, d) CAD(p,d)定义为式(1)中RGB通道中 p 与 p d p与pd p与pd的平均强度差,在对输入的立体图像进行校正的前提下,通常省略y坐标分量。
通过将邻域像素的亮度值与锚点像素的亮度值进行比较,census变换将像素强度的相对排序转换为二进制字符串。位串 C ( p ) C (p) C(p)计算值由运算符⊗相比,受锚像素的亮度值p,和邻域像素的亮度值 N ( p ) N (p) N(p)在人口普查窗口的一个固定的大小和形状。 C c e n s u s ( p , d ) C _{census }(p, d) Ccensus(p,d)定义为左图像中两个位串p与右图像中对应的pd的汉明距离。图2展示了一个census transform的例子和它的汉明距离结果,用于构建3D视差空间。本研究采用9×7的矩形窗口进行census变换。评估结果产生的广告和普查变换方法结合在一个指数函数,这个函数如公式(3)所示。地图不同的成本措施[0,1]范围和控制很容易与 λ λ λ参数异常值的影响。这里, λ A D λ_{AD} λAD和 λ c e n s u s λ_{census} λcensus将10到30,分别。
由于AD测量只检测像素强度,因此受光照变化的影响较大。census转换编码的局部图像结构与像素强度的相对顺序,而不是强度值本身,为了容忍由辐射变化和图像噪声造成的异常值。我们不使用图像视图之间的色差,而是计算拉普拉斯变换后图像的绝对差来减轻相机视差的不良影响。AD-census方法的初始匹配成本汇总在基于交叉支持区域[17]。对于每个像素,通过考虑颜色相似度和连通约束,自适应地构造一个垂直交叉局部支撑骨架区域。
更具体地说,一个具有四个臂的直立(垂直和水平)十字是为锚像素p构建的。通过检测颜色距离 D c ( p , p e ) D_ c (p, p_e) Dc(p,pe)和空间距离 D s ( p , p e ) D_ s (p, p_e) Ds(p,pe),确定像素p的水平方向和垂直方向的端点 p e p_e pe,如式(4)所示。通过计算每只手臂的扫描方向(左、右、上、下)上的 p e p_ e pe和它的前辈 p e + 1 p_ e + 1 pe+1之间的色差,手臂在图像中不会跑过边缘。然后,通过合并位于p垂直臂上的所有像素的水平臂,对像素p的支撑区域进行建模。AD-census措施的匹配成本水平相加并存储为中间结果。然后,将中间结果垂直聚合,得到最终成本。利用一维积分图像[17]可以有效地计算这两种遍历。
提出了一种利用自适应窗口计算初始匹配代价的方法。大多数方法获得的初始匹配代价是矩形窗口,而不考虑局部颜色(强度)分布。固定大小窗口产生的视差估计结果经常受到考虑的窗口区域内不相关像素的影响。为了减少不相关像素带来的错误影响,Kanade引入了自适应形状的窗口[20]。自适应窗口方法侧重于改变窗口的大小、形状和位置。自适应权值方法减少了局部窗口中不相关像素带来的不希望的影响,为窗口中的每个像素提供了不同的支持权值。通过评估与考虑[21]的像素之间的光度和几何关系,为窗口中的像素分配不同的支持权重。然而,许多问题,包括无纹理区域,重复相似的模式,和闭塞,仍然没有解决。
该方法以交叉支撑区域为匹配窗口,计算初始匹配代价。一般来说,建立适应局部强度分布的可变大小和形状的窗口需要相当长的时间。由于交叉支持区域在初始成本聚合中得到了广泛的应用,我们可以在不增加额外计算的情况下构建自适应窗口。首先,沿着视差级建立参考图像和目标图像中锚点的交叉支撑区域;为了比较在相同大小的局部区域内立体视图的像素相关性,我们得到了参考图像和目标图像中支持区域的交点区域。
利用绝对差和(SAD)和相交区域的普查变换方法,计算锚点像素的初始匹配代价。图3分别显示了AD-census和SAD-census方法生成的视差值地图。这里,我们使用赢者通吃(WTA)方法获得初始匹配代价最小的视差值。SAD-census方法得到的视差图比AD-census方法得到的视差图更精确。基于单个像素的匹配成本使用3×3窗口进行聚合。固定在不同位置的平方窗口内的平均成本被替换为给定像素[4]的成本。
由于高分辨率图像的最大视差级(搜索空间)增大,可能会从纹理较差的区域和重复模式的区域获得错误的视差结果。为了解决这一问题,我们只对高分辨率立体图像高频分量中的像素进行立体匹配。一般情况下,高频区域对应场景的细节部分和物体的边缘区域,适合局部立体匹配。该方法从DoG尺度空间表示中提取高频区域,利用Canny算子查找边缘分量。DoG是从一个模糊版本减去另一个不那么模糊的原始版本得到的。通常,模糊图像是将原始灰度图像与具有不同标准偏差的高斯核进行卷积得到的。在本研究中,我们使用DoG来识别全分辨率图像中的边缘区域和其他细节部分。
该方法首先计算粗分辨率图像中每个像素的初始匹配代价。在全分辨率图像中,我们只计算高频区域或边缘部分像素的初始匹配代价。然后将两尺度图像的匹配代价在精细尺度上进行组合。采用WTA方法确定匹配成本最小的视差假设作为最终视差值。LRC检查用于检查由环境照明变化、背景效果和遮挡引起的异常值。这个过程是通过获取一张图像中计算出的视差值,并将其重新投影到另一张图像中来完成的。在尺度空间表示中,图像的尺寸随着尺度的减小呈指数增长。这意味着在较细分辨率下的立体匹配的计算量呈指数级增长。换句话说,在高分辨率图像中,最大视差级别增加。一个错误的视差估计值可能会在分层立体匹配方法中传播。为了克服这些问题,我们提出了一种将粗分辨率图像中的视差估计结果与全分辨率图像中高频分量的视差估计结果相结合的分层方法。
在式(5)中,粗分辨率图像中像素 p ′ p' p′处的视差结果 D c o a r s e ( p ′ ) D_{coarse}(p') Dcoarse(p′)被上采样到全分辨率图像中。这意味着粗尺度上的视差值增加了一倍。在分辨率金字塔中,将细尺度图像中的2×2像素点 p s p s ps合并为粗尺度图像中的一个新像素点 p ′ p ' p′。如果 p p p在高频区域,则选择视差值 D f i n e ( p ) D_{ fine} (p) Dfine(p)作为最终的精细尺度视差结果。否则,对粗尺度下的视差值进行上采样:
当DoG用于尺度空间表示时,我们计算相对权值w,如式(6)所示,其中w的计算方法是将DoG在像素点p处的值与图像中DoG的最大值相除。为了结合尺度空间表示中的视差结果,我们可以将Canny算子应用于高分辨率图像。Canny算子找到的边缘分量作为DoG的高频区域,如式(5)所示。图4分别为DoG产生的高频区域和Canny算子产生的边缘分量。
一个LRC检查被执行来确定可靠的象素和他们的视差候选。为了提高立体匹配性能,我们采用了基于可靠像素的一维视差传播技术。具体地说,将得到的视差值沿扫描线方向传播,以产生准确而密集的视差结果。然后,利用EDP方法在近实时[19]内保持视差传播的边缘。
利用修正后的惩罚函数对每个像素候选子集的视差进行修正,再次计算稳定像素的二次代价。为了确定可靠的视差值,EDP使初始匹配成本更容易区分,如图5所示。给定视差值D§和每像素赋值标签(稳定或不稳定),在每个视差水平d上,为每个像素p计算一个新的二次成本:
然后,考虑空间距离和边缘相似度,将视差值从稳定像素传播到不稳定像素。对于从左到右的第一次扫描,依次更新像素 p , C E D P ( p , d ) p, C _{EDP }(p, d) p,CEDP(p,d)的代价值:
其中pl为左邻像素p。 α ( p , p l ) α(p, pl) α(p,pl)包括空间距离和颜色相似性p和pl。边缘代价∆(p, pl)是像素p与pl在RGB通道中分别计算出的绝对差异的最大值。 σ s 和 σ r σ_s和σ_r σs和σr是两个参数,可以用来平衡空间和颜色组件,分别。在这项研究中, σ s 和 σ r σ_s和σ_r σs和σr是实验设置为42.5和22.5。在从右向左的第二次扫描中,每个像素在其右侧采集成本值,如式(8)所示。然后将这个一维滤波器垂直地应用于水平通过产生的结果上。一维水平测地线滤波器通过双通聚合应用,如图6所示。
为了解决遮挡问题,我们依次进行迭代区域投票、适当的插值和中值滤波。通过LRC检查的像素被确定为地面控制点,代表可靠的像素。否则,像素将被确定为离群值。通过迭代区域投票,用可靠的邻点(地面控制点)来填充LRC检测到的离群点。这意味着离群值的差异被支持区域中最高bin值(多数选票)的差异所替代。发现的异常点分为遮挡点和失配点。两类离群点分别由两种插值策略处理。对于离群值,我们在附近找到最近的可靠像素。我们研究了在离群点周围左右两个方向上的视差分布。如果在水平方向(在一行中)发现的离群值与背景和前景对象的视差值差相同,我们通过遮挡确定像素为离群值。当确定离群点为遮挡点时,像素很可能属于背景。因此,选取视差值最小的相邻像素进行插值。最后,使用一个3×3大小的中值滤波器来处理噪声和误匹配像素。
实验中使用了以下计算平台:一台PC (HP,重庆,中国),Intel Core i7 3.07 GHz CPU, NVidia GTX780 780Ti phantom D5显卡。该系统使用Middlebury 2001、2003和2006年的基准数据集[22]进行了测试,并在带有CUDA的GPGPU上实现,可用于处理大规模空间的立体匹配的繁重计算负载。
定性地与已有的算法进行了比较[21,23,24]。图7a,b显示锥标(900×750),泰迪(900×750),筑波(384×288),维纳斯(434×383),Baby1(1240×1110)、Bowling(11250×1110),Cloth1(1252×1110)、Wood1(1372×1110)立体图像及其地面真值深度图。在more global matching (MGM)方法[24]中,不包含细化过程,视差结果用伪颜色表示。然而,我们可以大致看出MGM方法的匹配性能。图7显示了在双尺度空间中结合视差估计结果的方法可以提高视差估计的性能。这里,我们使用全分辨率图像中Canny检测器产生的边缘分量进行视差估计。在本方法的结果(第5列和第6列)中,EDP中的空间和颜色控制参数分别设置为20和10,42.5和22.5。之前的方法通过评估与考虑[21]的像素之间的光度和几何关系,为窗口中的像素分配不同的支持权重。图7d显示了从纹理区域和重复的相似模式得到的许多错误的估计结果。
![在这里插入图片描述](https://img-blog.csdnimg.cn/20191209205331126.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDQ3MDQ0Mw==,size_16,color_FFFFFF,t_70
表1显示了立体匹配算法产生的定量评价结果与近实时计算性能的比较。增加3张Middlebury立体声图像(Baby3(1312×1110),Art(1300×1110),Lamp2(1300×1110))。高频区域(或边缘分量区域)常常与深度不连续区域重合。然而,对遮挡区域的讨论超出了本文的范围,遮挡问题将在未来的研究中进一步考虑。这里,ground truth map和最终的视差图的均方误差的阈值分别设置为1和2。之前的方法的匹配误差在Middlebury基准中进行了报告。表1显示,所提出的方法比其他任何方法提供了更好的结果。在表1中,Canny检测器的错误率(%)的结果优于DoG。在这里,最好的数值结果用粗体表示。当场景中存在高度纹理化的对象(cone和Baby3)时,获得最佳的性能(最小的误差)。相反,Lamp2图像对的性能最差,因为它的纹理很差。
图8显示了与Canny检测器和DoG方法的阈值相比的错误率。当Canny检测器的双阈值设置为
实验中获得了100和200的最佳性能。在DoG的情况下,阈值为100%,表示所有高频分量的视差值都用来合并两尺度图像的视差值。该方法考虑了双尺度空间中的高频分量,得到了更精确的高分辨率图像视差图。
实验使用室外和室内场景图像序列,该序列是在非受控环境中捕获的真实世界的立体视频剪辑,如图9所示。图10显示了计算机生成图像的立体方法及其地面真值视差图[23]的比较结果。
整个算法在通用计算的图形处理单元(GPGPU)上使用计算统一设备架构(CUDA)语言实现,对于1300×1100像素的立体图像,可以达到每秒5.0帧以上的速度。如果在不久的将来对我们的程序进行优化,计算时间的性能将有很大的提高。提出的方法是为了获得可靠的近实时高分辨率立体图像视差图。因此,我们描述了之前两种用于相同目的的方法[9,10],并从计算性能方面进行了比较。运行时间报道[9]900×750像素图像是669毫秒,[10]的平均运行时间为1.4像素2.7像素(MP)是大约3.8秒。最后,提出的方法取得了更好的性能比两种算法的计算速度。
设输入图像的宽度为W,高度为H,最大视差等级为D。在这种情况下,立体匹配的操作 Θ ( W × H × D ) Θ(W×H× D) Θ(W×H×D)。因此,高分辨率立体图像的稠密立体匹配需要较高的计算代价。相比之下,方法执行Θ(H×D / W×8)操作reduced-resolution形象和 Θ ( W W × H × D F × D ) Θ(W W ×H×DF×D) Θ(WW×H×DF×D)的全分辨率图像。这里HF是高分辨率图像总面积与高频区域面积的相对平均比值。在我们的实验中,HF设置为3.4%,这是Middlebury立体声图像的平均面积比。例如,对于1300×1100分辨率、260视差等级的Lamp2图像,立体匹配操作数为375,180,000。该方法的立体匹配操作次数为59,116,200次。这意味着立体匹配的计算负载降低到15.8%。
提出了一种分层立体匹配方法,有效地将两尺度空间的视差估计结果结合起来。一般来说,在立体视图中检查的像素越多,得到的模糊对应就越多。此外,在粗尺度上可能无法准确地找到精细的场景组件。因此,在我们的方法中,我们将全分辨率图像中高频区域的视差估计结果与降噪图像中向上采样的视差估计结果相结合。更具体地说,使用基于交叉的代价聚合来计算粗尺度中每个像素的初始匹配代价。在全分辨率图像中,高频区域由DoG或edge分量由Canny算子提取。在全分辨率图像中,我们只计算高频区域或边缘部分像素的初始匹配代价。然后将两尺度图像的匹配代价在精细尺度上进行组合。通过对视差结果进行EDP和细化处理,可以得到精确的视差最终图。实验结果表明,该算法在匹配精度和计算效率方面均优于已有算法。
以前使用局部平面扫描的方法在没有纹理的区域和有重复图案的区域经常产生不正确的视差结果。此外,由于低分辨率图像初始视差估计不正确,使用尺度空间上的视差建议方法无法获得准确的视差结果。由于视差估计是在低分辨率下进行的,因此该方法可以有效地降低大范围无纹理区域的匹配模糊度。同时,该方法从高分辨率图像中适合局部立体匹配的高频分量中提取视差值。因此,不正确的视差值不会在比例空间中传播。该方法只适用于两个尺度空间,这意味着需要一种根据输入图像分辨率确定最佳尺度空间数量的方法。
遮挡是立体匹配的关键和难点问题,因为深度图受遮挡区域的影响很大。在不久的将来,我们将考虑场景分割信息如边界和轮廓来解决遮挡问题。此外,还将采用更高效的优化算法来提高计算性能。