发明内容
有鉴于此,有必要提供一种算法复杂度和资源利用较低,能够处理高分辨率立体图像对,稳定高效的高分辨率立体匹配方法。
本发明的目的是提供一种稳定高效的高分辨率立体匹配方法,包括如下步骤:
S1:利用高分辨率数码摄像机获取场景的立体图像对;
S2:对所述立体图像对构建图像金字塔;
S3:在所述图像金字塔的最低分辨率层提取可靠的匹配种子像素点;
S4:在所述图像金字塔的最低分辨率层基于所述匹配种子像素点利用种子像素扩张算法得到致密视差图;
S5:对所述致密视差图用图像滤波技术消除误匹配的像素点;
S6:根据滤波后的视差图结合图像金字塔相邻塔层之间的分辨率差将低分辨层的视差图提升到相邻高分辨率层的致密视差图;
S7:判断步骤S6中得到的致密视差图是否为最底层最高分辨率致密视差图,如否则回到步骤S5,如是则获得最终的高分辨率立体匹配视差图并结束。
其中,利用高分辨率数码摄像机获取场景的立体图像对步骤通过两台高分辨率数码摄像机水平或垂直架设后同时拍摄场景的一对图像后结合图像校正技术获得用于后续立体匹配步骤的立体图像对。
其中,对所述立体图像对构建图像金字塔步骤分别对立体图像对的两幅图像构建高斯金字塔。
优选的,在所述图像金字塔的最低分辨率层提取可靠的匹配种子像素点步骤包括:
将图像金字塔的最低分辨率层的图像对作为待匹配的立体图像对,分别用归一化交叉相关(NCC)和Census变换结合胜者全取策略(WTA)得到两幅初始视差图DispNCC和DispCensus,然后构建如下匹配种子像素点集合:Seed={(x,y)|DispNCC(x,y)=DispCensus(x,y)}。
其中,在所述图像金字塔的最低分辨率层基于所述种子像素点利用种子像素扩张算法得到致密视差图步骤通过种子像素扩张算法基于上述步骤得到的稀疏种子像素点集合得到致密视差图像。
优选的,对所述致密视差图用图像滤波技术消除误匹配的像素点步骤包括:
利用加权中值滤波技术(Weighted Median Filter)对视差图像进行滤波,消除错误匹配的区域。加权中值滤波技术通过结合引导滤波技术(Guided Filter)高效实现。
在所述步骤S3中进一步包括:
利用两种不同的匹配代价函数分别结合胜者全取策略(WTA)得到两幅初始视差图,然后比较两幅初始视差图中每个像素位置处的视差值,将视差值相等的像素点设定为所述可靠的匹配种子像素点。
在每一金字塔视差图像层均使用图像滤波技术对初始视差图像进行滤波从而得到可靠且高准确度的视差图像。
除了在图像金字塔的最低分辨率层通过扫描整体视差搜索空间的方式得到视差图像外,在其它分辨率层均首先通过上层低分辨率的视差图像结合超分辨率技术获得与本层分辨率相同的视差图,然后对所述视差图的视差值附近进行微调优化得到本层的初始视差图像,其中超分辨率技术是将低分辨率的图像通过技术手段提升到高分辨率图像。
优选的,基于所述滤波后的视差图结合图像金字塔技术提升视差图的分辨率得到最终的高分辨率立体匹配视差图步骤包括:
对于紧邻的上层低分辨率视差图像首先通过线性插值技术得到与本层分辨率相同的视差图像Dispi,然后以Dispi为基础,对于每个像素在其视差取值范围附近进行局部搜索得到优化的视差图像Dispr,最后同样利用加权中值滤波技术(Weighted MedianFilter)对视差图像进行滤波,消除错误匹配的区域,得到本层最终的视差图像Dispf。
本发明优点是:
相对于现有技术,所述立体匹配方法由于借助了图像金字塔立体匹配技术,因此可以处理高分辨率立体图像对。由于本方法通过两幅不同的初始视差图对比获得匹配种子像素点集合,结合受约束的种子像素扩张立体匹配算法能够得到可靠高准确度的初始视差图。此外本方法在图像金字塔的每一层均对视差图进行滤波操作更进步增强了输出视差图的可靠性,算法复杂度和资源利用较低,能够方便普通的个人电脑处理500万像素以上的高分辨率立体图像对。
实施例:如图1所示,本发明提供一种稳定高效的高分辨率立体匹配方法的具体实施例,其包括如下步骤:
步骤01,利用高分辨率数码摄像机获取场景的立体图像对,本实施方式中,两台高分辨率数码摄像机水平或垂直架设后同时拍摄场景的一对图像。然后对所获取的一对图像进行重采样使得极线平行,具体,可以利用Fusiello等人提出的方法(Fusiello A,TruccoE,.Verri A.A Compact Algorithm for Rectification of Stereo Pairs.MachineVision and Applications,2000,12:16-22.)来实现所述立体图像对校正,其中高分辨率数码摄像机的分辨率在500万像素以上。
步骤02,对所述立体图像对构建图像金字塔,本实施方式中,分别对立体图像对的两幅图像构建两组高斯图像金字塔,使得金字塔最顶层的图像分辨率在10万像素左右,也即最低分辨率层。
步骤03,在所述图像金字塔的最低分辨率层提取可靠的匹配种子像素点。
具体的,将图像金字塔的最低分辨率层的图像对作为待匹配的立体图像对,分别用归一化交叉相关(NCC)和Census变换,当然不限于上述两种,还可以利用SAD和SSD等变换方法,参见Brown M,Burschka D,Hager G.Advances in Computational Stereo.IEEETransactions on Pattern Analysis and Machine Intelligence,2003,25(8):993-1008.)结合胜者全取策略(WTA)得到两幅初始视差图DispNCC和DispCensus。
具体来说,首先根据选定的匹配代价函数和一对立体图像构建一个三维张量视差空间图DSI,其中DSI(u,v,d)为图像中像素位置(u,v)处视差值取d时的匹配代价函数值(DSI的具体构建方法参见Scharstein D,Szelis ki R.A taxonomy and evaluation ofdense two-frame stereo correspondence algorithms.International Journal ofComputer Vision,2002,47(1/2/3),7-42.)。则胜者全取策略(WTA)通过下式计算得到:
其中Disp为胜者全取策略(WTA)计算得到的视差图,dmin和dmax分别为视差搜索范围的下界和上界。
然后构建如下匹配种子像素点集合:Seed={(x,y)|DispNCC(x,y)=DispCensus(x,y)}。
步骤04,在所述图像金字塔的最低分辨率层基于所述匹配种子像素点利用种子像素扩张算法得到致密视差图,而所谓致密视差图Dispdense(u,v),就是对于视差图Dispdense中任意的位置(u,v)均存在视差值。
具体的,立体匹配代价函数可以选取各种基于窗口的函数,如归一化交叉相关(NCC)。将所述步骤03所提取的种子像素点按照其匹配代价函数从大到小的顺序排列构成一个队列,取队列首位的像素p1,其对应的视差值为d(p1)。对于和p1相邻的四邻域中的某个像素pk,如果pk处视差值尚未更新过,则分别计算像素pk处视差值分别为d(p1)-1、d(p1)和d(p1)+1对应的匹配代价函数,并且选取匹配代价函数值最优的视差值作为其新的视差值。具体来说,首先定义C(p,d)为像素p处视差值为d的匹配代价函数值,则最优的视差值定义如下:
同时根据匹配代价函数值插入种子像素队列中对应的位置中。具体来说,首先定义C(p,d)。同时将pk处的视差值设置为已更新;如果pk处视差值已更新过,则分别计算像素pk处视差值分别为d(p1)和d(pk)对应的匹配代价函数,并且选取匹配代价函数值最优的视差值作为其新的视差。按上述描述的方法依次处理种子像素队列中的首位像素直到队列为空为止。
步骤05,对所述致密视差图用图像滤波技术消除误匹配的像素点。本实施方式中,利用加权中值滤波技术(Weighted Median Filter)对视差图像进行滤波,消除错误匹配的区域。加权中值滤波技术通过结合引导滤波技术(Guided Filter)高效实现,从而使得运算复杂度与加权中值滤波窗口尺寸选择无关。
具体来说,对于图像中每个像素x处构建直方图h(x,i)如下:
其中w为双边滤波权重(参见Tomasi C,Manduchi R.Bilateral filtering forgray and color images.IEEE International Conference on Computer Vision,1998.),x′为像素x邻域内的像素,i为直方图的灰度值,V为像素值,δ为Kronecker delta函数,N(x)为像素x处邻域窗口。我们定义f(x,i)=δ(V(x)-i)为三维空间中的信号,则上式可以表达成2D盒滤波的形式:
其中w(x,x′)为滤波器核,然后用引导滤波技术高效实现上述2D盒滤波(参见MaZ,He K,Wei Y,Sun J,Wu E.Constant Time Weighted Median Filtering for StereoMatching and Beyond.IEEE International Conference on Computer Vision,2013.),最后计算直方图h(x,i)对应的累积直方图并且取中值作为滤波后的结果。
步骤06,基于所述滤波后的视差图结合图像金字塔技术提升视差图的分辨率得到最终的高分辨率立体匹配视差。
具体的,对于紧邻的上层低分辨率视差图像Dispprev通过线性插值技术得到与本层分辨率相同的视差图像Dispi。然后对Dispi作如下操作:
Dispi′(x,y)=2×Dispi(x,y)
然后以Dispi′为基础,对于每个像素在其视差取值范围附近进行局部搜索得到优化的视差图像Dispr。具体来说,首先选取任意一种基于窗口的函数,如归一化交叉相关(NCC),对于位置(x,y)处的像素,考察视差值分别为Dispi(x,y)-1、Dispi(x,y)和Dispi(x,y)+1对应的匹配代价函数,并且选取匹配代价函数值最优的视差值作为Dispr(x,y)的视差。最后同样利用加权中值滤波技术(Weighted Median Filter)对视差图像进行滤波,消除错误匹配的区域,得到本层最终的视差图像Dispf。通过逐层分辨率提升得到最终的视差图。
在获得视差图后通过如下公式计算图像中每个像素对应的三维坐标,从而实现三维模型的建立。
其中,B为立体视觉两台摄像机之间的距离,f为摄像机的焦距,(u0,v0)为摄像机光轴与图像平面的焦点坐标,Dispf(u,v)为视差图中坐标(u,v)处的视差值。
当然上述实施例只为说明本发明的技术构思及特点,其目的在于让熟悉此项技术的人能够了解本发明的内容并据以实施,并不能以此限制本发明的保护范围。凡根据本发明主要技术方案的精神实质所做的等效变换或修饰,都应涵盖在本发明的保护范围之内。