本发明涉及一种基于分割交叉树的立体匹配方法。
背景技术:
:
立体匹配是计算机视觉领域中的研究热点之一,其目的是建立同一场景的两幅或者多幅图像中同名像素点之间的对应关系,并利用三角测量原理重建场景的三维信息。该技术广泛应用于虚拟现实、机器人导航、无人驾驶导航等领域。迄今为止,学者们已提出大量方法用于解决立体图像的匹配问题。根据不同的视差选择方式,立体匹配方法主要分为两类:全局立体匹配方法和局部立体匹配方法。全局立体匹配方法通过全局能量最小化方式选择视差,而局部立体匹配方法则是通过“胜者全取”方式选择视差。但从其本质来看,这两类方法都是以最小化匹配代价作为视差选择的依据,因此如何定义和计算匹配代价是立体匹配的关键问题。
传统的匹配代价计算方法首先利用相似度函数计算初始匹配代价,再为每一个待匹配像素点定义一个支撑区域聚合初始匹配代价。按照聚合区域选择方式的不同,可主要分为两类方法:一类是基于窗口的代价聚合方法,另一类是基于树结构的代价聚合方法。
基于窗口的代价聚合方法主要原理是局部场景的“前视平坦”假设,即认为局部窗口内的像素点具有相同或相似的视差。因此如何保证局部范围内的视差范围尽量保持一致是该类算法的研究重点,其代表性算法包括自适应窗口方法和自适应权重方法。前者通过调节支撑窗口的尺寸或形状来保证窗口内所有像素点的视差都近似等于待匹配像素点的视差,后者为支撑窗口内与待匹配像素点视差相近的其他像素点赋予较大权重。由于受局部窗口的尺寸限制,基于窗口的代价聚合方法在前景物体边界处易出现“粘合”现象。另外,对于大面积的弱纹理区域,由于缺乏了充足且有价值的支撑信息,基于窗口的代价聚合方法会得到完全失真的视差结果,大面积弱纹理区域的匹配问题一直以来都是基于窗口的代价聚合方法难以解决的难题。
基于树结构的代价聚合方法是杨庆雄在2012年CVPR会议(IEEE国际计算机视觉与模式识别会议)中首次提出的,该方法以全图像的所有像素点作为图结点,利用该图的最小生成树作为待匹配像素点的支撑区域。由于支撑区域覆盖了全图像范围,因此改进了算法在大面积弱纹理区域的匹配准确率。梅(Mei)等人在2013年提出一种基于分割树的立体匹配方法,该方法首先对图像进行分割,然后在每个分割区域内建立最小生成子树,最后通过连接各个分割区域内的子树构建分割树,利用分割树聚合初始匹配成本。由于该方法引入了分割结果作为先验信息,因此算法在物体边界区域具有更高的匹配准确率,减弱了“粘合”现象对匹配结果的影响。但是上述两种算法均以最小生成树作为聚合策略,当左右立体图像中存在着大量重复纹理区域时,初始图结构中将出现大量的同等权重的边,使得最小生成树的结构并不是唯一的,选取不同的最小生成树会使最终视差结果出现较大差异,导致匹配算法的稳定性较差。
技术实现要素:
:
本发明的目的是提供一种有效的提高了视差图质量,并且具有较快的匹配速度的基于分割交叉树的立体匹配方法。
上述的目的通过以下的技术方案实现:
一种基于分割交叉树的立体匹配方法,本方法包括六步,第一步利用高斯滤波技术对左右立体图像进行预处理,第二步计算初始匹配代价,第三步为左右立体图像的每一待匹配像素点构建分割交叉树,第四步利用一维积分图像加速技术,在分割交叉树支撑区域内聚合初始匹配代价,第五步根据“胜者全取”方法计算视差,第六步根据左右立体图像的视差结果,分别采用左右一致性检测技术和加权中值滤波技术修正视差结果。
所述的基于分割交叉树的立体匹配方法,所述的第一步是根据高斯模板对原始左右立体图像进行卷积操作,其计算公式如下:
所述的基于分割交叉树的立体匹配方法,所述的第二步是根据视差搜索范围、左右立体图像的灰度信息、水平及垂直两主方向梯度信息计算初始匹配代价,计算函数为截断绝对差函数,将初始匹配代价存储在一个三维视差空间图Craw(x,y,d)中,其计算公式如下:
所述的基于分割交叉树的立体匹配方法,所述的第三步是首先利用基于聚类的图像分割算法对左右立体图像进行图像分割,再分别以左右立体图像的分割结果作为先验知识,以左右立体图像的每一待匹配像素点为根结点,利用垂直扩张与水平扩张策略在分割区域内构建分割交叉树;以分割结果作为支撑区域的边界约束条件防止支撑区域跨越视差边界导致“粘合”现象发生,将建立后的分割交叉树作为待匹配像素点初始匹配代价聚合的支撑区域;分割交叉树的计算公式如下:
所述的基于分割交叉树的立体匹配方法,所述的垂直树Tv(x,y)的计算公式如下:
所述的水平树Th(x′,y′)的计算公式如下:
所述的基于分割交叉树的立体匹配方法,所述的第四步是根据每一待匹配像素点对应的分割交叉树结构及初始匹配代价,利用一维积分图像加速技术对其进行聚合,获得聚合后的视差空间图C(x,y,d),其计算公式如下:
所述的基于分割交叉树的立体匹配方法,所述的第五步是根据累计后的视差空间图C(x,y,d),采用“胜者全取”方法计算每一像素点视差d(x,y),其视差计算公式为:
所述的基于分割交叉树的立体匹配方法,所述的第六步是修正视差结果中的遮挡像素视差和离群点视差,弱化因对遮挡像素视差填充时产生的条纹效应;
所述的左右一致性检测技术的计算公式如下:
|dL(x,y)-dR(x-dL(x,y),y)|≤τc。
所述的加权中值滤波的计算公式如下:
有益效果:
1.本发明通过分割交叉树作为支撑区域聚合初始匹配代价,解决了匹配代价不能准确反映匹配约束的问题。
2.本发明通过将图像分割结果作为聚合约束条件,解决了立体匹配中的“粘合”现象问题;并通过一维积分图像技术对聚合过程加速,解决了聚合的时间复杂度过高的问题;最后通过左右一致性检测和加权中值滤波技术对视差结果进行修正,解决了前景遮挡区域的匹配问题。
3.本发明利用像素灰度信息及梯度信息计算初始匹配代价,能够有效的保证同名像素点之间的相似度,增强了初始匹配代价对噪声及辐射差异的鲁棒性。
4.本发明的方法构建的支撑区域与场景结构相关,即使在大面积弱纹理区域和重复纹理区域,支撑区域也能够很好的自适应场景结构,有效提高了视差结果的准确率。
5.本发明利用基于聚类的图像分割技术分割立体图像,能够把相同物体表面的待匹配像素联系起来,以及区分不同物体表面的待匹配像素,防止了支撑区域跨越视差边界,减少了“粘合”现象的发生。
6.本发明利用一维积分图像加速技术对初始匹配代价进行聚合,聚合速度与图像尺寸呈线性关系,有效提高了立体匹配方法的匹配效率。
附图说明:
附图1是本产品的流程框架图。
附图2是本产品的为分割交叉树结构的示意图。
附图3是本产品的利用一维积分图像加速技术聚合初始匹配代价的示意图。
附图4是本产品的提出算法的实验效果图。
附图5是本产品的提出算法的实验效果第一列为立体像对中的参考图像图。
附图6是本产品的提出算法的实验效果第二列为真实视差图。
附图7是本产品的提出算法的实验效果第三列为计算视差图。
附图2中●交叉树根结点,交叉树根点,○其他像素点,-交叉树边,——分割区边界。
附图3中交叉树根点,○其他像素点,-交叉树边,→代价聚合。
具体实施方式:
实施例1:
一种基于分割交叉树的立体匹配方法,本方法包括六步,第一步利用高斯滤波技术对左右立体图像进行预处理,第二步计算初始匹配代价,第三步为左右立体图像的每一待匹配像素点构建分割交叉树,第四步利用一维积分图像加速技术,在分割交叉树支撑区域内聚合初始匹配代价,第五步根据“胜者全取”方法计算视差,第六步根据左右立体图像的视差结果,分别采用左右一致性检测技术和加权中值滤波技术修正视差结果。
首先根据像素灰度信息、水平及垂直两主方向梯度信息计算初始匹配代价,再根据图像分割结果构建基于交叉树的支撑区域,并通过一维积分图像加速技术聚合匹配代价,然后利用“胜者全取”策略计算视差,最后利用左右一致性检测和加权中值滤波技术修正初始视差。与其它立体匹配方法相比。
实施例2:
实施例1所述的基于分割交叉树的立体匹配方法,所述的第一步是根据高斯模板对原始左右立体图像进行卷积操作,其计算公式如下:
式中,G(i,j)表示尺寸为m×m的高斯模板,*表示卷积运算,I′(x,y)表示初始图像中(x,y)像素点的灰度值,I(x,y)表示滤波去噪后图像中(x,y)像素点的灰度值。
预处理的目的是为了保证后续步骤的顺利进行,在预处理完成后保证立体图像噪声尽可能减小。
实施例3:
实施例1所述的基于分割交叉树的立体匹配方法,所述的第二步是根据视差搜索范围、左右立体图像的灰度信息、水平及垂直两主方向梯度信息计算初始匹配代价,计算函数为截断绝对差函数,将初始匹配代价存储在一个三维视差空间图Craw(x,y,d)中,其计算公式如下:
式中,IL(x,y)表示预处理后参考图像中(x,y)像素点的灰度值,IR(x,y)表示预处理后匹配图像中(x,y)像素点的灰度值;α(<=1)表示权重比,用于调节灰度与梯度在初始匹配代价中的比例;d表示视差,表示函数在x方向的梯度值,表示函数在y方向的梯度值,τ1,τ2和τ3分别表示灰度、水平和垂直梯度截断阈值。
实施例4:
实施例1所述的基于分割交叉树的立体匹配方法,所述的第三步是首先利用基于聚类的图像分割算法对左右立体图像进行图像分割,再分别以左右立体图像的分割结果作为先验知识,以左右立体图像的每一待匹配像素点为根结点,利用垂直扩张与水平扩张策略在分割区域内构建分割交叉树;以分割结果作为支撑区域的边界约束条件防止支撑区域跨越视差边界导致“粘合”现象发生,将建立后的分割交叉树作为待匹配像素点初始匹配代价聚合的支撑区域;分割交叉树的计算公式如下:
式中,T(x,y)表示以待匹配像素点,(x,y)为根结点建立的分割交叉树,Tv(x,y)表示待匹配像素点(x,y)的垂直树,(x′,y′)表示垂直树Tv(x,y)中的全部结点,Th(x′,y′)表示像素点(x′,y′)的水平树。
实施例5:
实施例4所述的基于分割交叉树的立体匹配方法,所述的垂直树Tv(x,y)的计算公式如下:
所述的水平树Th(x′,y′)的计算公式如下:
式中,V(x′,y′)表示垂直树中的全体结点,V(x,y-bU)表示垂直树Tv(x,y)的最上端结点,V(x,y-bU+N),N=1,2,…,n表示以最上端结点起始的第2,第3至第n个结点,bU表示待匹配像素点(x,y)所在列的分割区域上边界,V(x,y+bD-N),N=1,2,…,n表示以最下端结点起始的第2,第3至第n个结点,bD表示待匹配像素点(x,y)所在列的分割区域下边界。V(x″,y″)表示水平树中的全体结点,V(x′-bL,y′)表示水平树Th(x′,y′)的最左端结点,V(x′-bL+N,y′),N=1,2,…,n表示以最左端结点起始的第2,第3至第n个结点,bL表示像素点(x′,y′)所在行的分割区域左边界,V(x′+bR-N,y′),N=1,2,…,n表示以最右端结点起始的第2,第3至第n个结点,bR表示像素点(x′,y′)所在行的分割区域右边界。
实施例6:
实施例1所述的基于分割交叉树的立体匹配方法,所述的第四步是根据每一待匹配像素点对应的分割交叉树结构及初始匹配代价,利用一维积分图像加速技术对其进行聚合,获得聚合后的视差空间图C(x,y,d),其计算公式如下:
式中,|T(x,y)|表示像素点(x,y)对应的分割交叉树的结点个数,Sv(x,y+bD)表示像素点(x,y)对应垂直树最下端结点的初始匹配代价积分值,Sv(x,y-bU-1)表示像素点(x,y)对应垂直树最上端结点的上方邻域结点的初始匹配代价积分值。垂直树中结点的初始匹配代价积分值均能够利用水平树中结点积分值计算,因此整个初始匹配代价聚合过程可通过一维积分图像技术完成。
实施例7:
实施例1所述的基于分割交叉树的立体匹配方法,所述的第五步是根据累计后的视差空间图C(x,y,d),采用“胜者全取”方法计算每一像素点视差d(x,y),其视差计算公式为:
式中,D表示视差搜索范围。
实施例8:
实施例1所述的基于分割交叉树的立体匹配方法,所述的第六步是修正视差结果中的遮挡像素视差和离群点视差,弱化因对遮挡像素视差填充时产生的条纹效应,进一步提高整体视差结果的准确率。
所述的左右一致性检测技术的计算公式如下:
|dL(x,y)-dR(x-dL(x,y),y)|≤τc。
式中,dL(x,y)表示左图像素点(x,y)的视差值,dR(x-dL(x,y),y)表示左图像素点(x,y)在右图对应的同名点视差,τc表示左右差异阈值。
所述的加权中值滤波的计算公式如下:
式中,W(i,j)表示尺寸为m×m的加权中值滤波模板,*表示卷积运算,dc(x,y)表示(x,y)像素点经过左右一致性检测及近邻填充后的视差值,df(x,y)表示滤波后(x,y)像素点的最终视差值。
实施例9:
上述实施例所述的基于分割交叉树的立体匹配方法,附图1表示基于分割交叉树的立体匹配方法的流程框架图,下面结合该流程框架图详细说明每一步骤的具体实现方式:
第一步对立体像对进行预处理,减弱噪声。
①输入左右立体图像I′L和I′R,定义高斯滤波器G,滤波器系数如下:
②利用高斯滤波器G对输入的左右立体图像进行逐模板区域的卷积操作,完成滤波去噪过程,输出滤波处理后的左右立体图像IL和IR,其计算公式如下:
式中,G(i,j)表示尺寸为m×m的高斯模板,*表示卷积运算,IL(x,y)表示初始左图像中(x,y)像素点的灰度值,I′R(x,y)表示初始右图像中(x,y)像素点的灰度值,IL(x,y)表示滤波去噪后左图像中(x,y)像素点的灰度值,IR(x,y)表示滤波去噪后右图像中(x,y)像素点的灰度值。
第二步计算初始匹配代价。
①输入左右立体图像及最大搜索视差范围值dmax,同时创建三维视差空间图CRAW(x,y,d),并对其进行初始化。
②根据左右立体图像及最大搜索视差范围值dmax,利用灰度信息、水平及垂直两主方向梯度信息为每一像素点(x,y)计算每一搜索视差d(0≤d≤dmax)所对应的初始匹配代价,计算函数为截断绝对差函数,其计算公式如下:
式中,IL(x,y)表示预处理后左图像中(x,y)像素点的灰度值,IR(x,y)表示预处理后右图像中(x,y)像素点的灰度值;α(<=1)表示权重比,用于调节灰度与梯度在初始匹配代价中的比例;d表示视差,表示函数在x方向的梯度值,表示函数在y方向的梯度值,τ1,τ2和τ3分别表示灰度、水平和垂直梯度截断阈值。
第三步为左右立体图像的每一待匹配像素点构建分割交叉树,如附图2所示,具体步骤如下:
①利用基于聚类的图像分割算法对左右立体图像进行图像分割,将相同或相近颜色划分为同一分割区域,同时标定分割区域边界。
②以待匹配像素点(x,y)为根结点,在垂直方向进行扩张,直到上下分割区域边界为止,建立垂直树Tv(x,y),其计算公式如下:
式中,V(x′,y′)表示垂直树中的全体结点,V(x,y-bU)表示垂直树Tv(x,y)的最上端结点,V(x,y-bU+N),N=1,2,…,n表示以最上端结点起始的第2,第3,至第n个结点,bU表示待匹配像素点(x,y)所在列的分割区域上边界,V(x,y+bD-N),N=1,2,…,n表示以最下端结点起始的第2,第3,至第n个结点,bD表示待匹配像素点(x,y)所在列的分割区域下边界。
③以垂直树中的全体结点V(x′,y′)为根结点,分别进行水平方向扩张,直到左右分割区域边界为止,建立各自的水平树Th(x′,y′),其计算公式如下:
式中,V(x″,y″)表示水平树中的全体结点,V(x′-bL,y′)表示水平树Th(x′,y′)的最左端结点,V(x′-bL+N,y′),N=1,2,…,n表示以最左端结点起始的第2,第3,至第n个结点,bL表示像素点(x′,y′)所在行的分割区域左边界,V(x′+bR-N,y′),N=1,2,…,n表示以最右端结点起始的第2,第3,至第n个结点,bR表示像素点(x′,y′)所在行的分割区域右边界。
④合并垂直树Tv(x,y)和一组水平树Th(x′,y′),构建以待匹配像素点(x,y)为根结点的分割交叉树T(x,y),其计算公式如下:
第四步利用一维积分图像加速技术,在分割交叉树支撑区域内快速聚合初始匹配代价,如附图3所示,附图3仅描述了水平方向一维积分图像代价聚合的流程,垂直方向聚合与其流程一致。具体步骤如下:
①利用一维积分图像技术,在水平方向递归的计算所有像素点(x,y)的初始匹配代价积分值Sh(x,y),其计算公式如下:
Sh(x,y)=Sh(x-1,y)+CRAW(x,y,d)
式中,Sh(x-1,y)表示递归初始位置,预定义为0,CRAW(x,y,d)为像素点(x,y)的初始匹配代价。
②聚合水平树Th(x,y)的匹配代价SsegH(x,y),其计算公式如下:
SsegH(x,y)=Sh(x+bR,y)-Sh(x-bL-1,y)
式中,Sh(x-bL-1,y)表示水平树最左端结点的左邻域像素初始匹配代价积分值,Sh(x+bR,y)表示水平树最右端结点的初始匹配代价积分值。
③利用一维积分图像技术,在垂直方向递归的计算所有像素点(x,y)的初始匹配代价积分值Sv(x,y),其计算公式如下:
Sv(x,y)=Sv(x,y-1)+Ssegh(x,y)
式中,Sv(x,y-1)表示递归初始位置,预定义为0,SsegH(x,y)表示水平树Th(x,y)的聚合后匹配代价。
④计算待匹配像素点像素点(x,y)对应的分割交叉树T(x,y)的聚合后的匹配代价并存储入视差空间图C(x,y,d),其计算公式如下:
式中,中,|T(x,y)|表示像素点(x,y)对应的分割交叉树的结点个数,Sv(x,y+bD)表示像素点(x,y)对应垂直树最下端结点的初始匹配代价积分值,Sv(x,y-bU-1)表示像素点(x,y)对应垂直树最上端结点的上方邻域结点的初始匹配代价积分值。
第五步根据“胜者全取”方法计算视差,其视差计算公式为:
式中,D表示视差搜索范围。
第六步利用左右一致性检测和中值滤波技术对视差结果进行后处理优化,获得最终视差结果,具体步骤如下:
①根据左右立体图像的视差结果,利用左右一致性检测技术检测遮挡像素,并利用最小近邻填充方式替换遮挡像素的视差,获得一致性检测后的视差结果dc(x,y),其计算公式如下:
式中,中,dL(x,y)表示左图像素点(x,y)的视差值,dR(x-dL(x,y),y)表示左图像素点(x,y)在右图对应的同名点视差,τc表示左右差异阈值,表示左图像素点(x,y)的邻域内视差最小值。
②对一致性检测后的视差结果dc(x,y),进行加权中值滤波,滤除视差结果中的视差条纹,获得滤波后的最终视差结果df(x,y),其计算公式如下:
式中,W(i,j)表示尺寸为m×m的加权中值滤波模板,*表示卷积运算,dc(x,y)表示(x,y)像素点经过左右一致性检测及近邻填充后的视差值。