非局部立体匹配算法的组合匹配代价算法和视差联合填充算法的制作方法

文档序号:12127650阅读:1119来源:国知局
非局部立体匹配算法的组合匹配代价算法和视差联合填充算法的制作方法与工艺

本发明涉及双目测距系统,尤其是涉及:非局部立体匹配算法的组合匹配代价算法和视差联合填充算法。



背景技术:

计算机视觉的一个重要任务就是可以用计算机代替人的眼睛和大脑,通过获取目标的图像,对目标图像进行识别和加工处理,从而对外部客观世界进行探测和识别。相对于人类视觉,机器视觉的优越性在于获得目标的数字化的图像信息具有确定的定性描述,而且通过深入分析处理可以得到目标的定量信息。

双目测量技术是计算机视觉领域中的一项重要研究内容。基于图像的距离测量技术正是利用了机器视觉的该特点而发展起来的,重点研究物体的位置测量,通过提取目标图像的特征信息,最终通过分析不同位置点的目标图像,进行高精度匹配继而获取被测目标物体的实际距离信息。立体匹配问题是最困难、最有挑战性的一步,匹配的速度和精度都会对系统产生很大的影响。

根据立体匹配信息可分成基于局部的立体匹配算法、基于全局的立体匹配算法。局部立体匹配的步骤包括匹配代价计算,代价聚合和视差精化。局部立体匹配算法由于每个点只依靠局部灰度信息,若采用固定的小窗口可以保护丰富的纹理和边缘信息,但整体视差图效果差;而采用固定的大窗口可对局部的匹配进行平滑,则在边缘的效果很差。目前基于区域的匹配算法目的就是尽可能好的平衡这两种情况。全局立体匹配算法利用图像的平滑项和数据项两个约束项求解整体能量的最小值,效果较好但是计算复杂。

Q.Yang于2012年提出了一种非局部的立体匹配算法,在代价聚合部分使用树形结构对代价计算值进行聚合。该方法利用图论中的概念,把参照图像视为一个4连通的,无向平面图:将图像的每个一像素点作为一个节点构建最小树,所有的像素点根据在最小树形中与匹配像素点之间的距离提供不同的权重支持,大大减少了代价聚合的复杂性。因此算法不但匹配速度快,而且具有精度较高。但是该算法计算初始匹配代价值时只是简单的求取灰度差和梯度差,这对弱纹理和丰富纹理区域构造最小生成树的时候容易出现错误,导致视差值估计不准确。



技术实现要素:

本发明所要解决的技术问题是,针对前述现有技术的缺陷,提出一种非局部立体匹配算法的组合匹配代价算法和视差联合填充算法,提高匹配的精度。

本发明通过下述技术方案解决前述技术问题:

一种非局部立体匹配算法的组合匹配代价算法和视差联合填充算法,包括如下步骤:

(1)增强图像:对左右两幅图像使用基于最小生成树的滤波算法,获得增强图像;

(2)计算初始匹配代价值:匹配代价是左右两幅图像上对应匹配点之间相似性的度量,在这里,使用颜色差异信息、原始图像和步骤(1)获得的增强图像结合梯度信息、Census变换信息三者相组合而获得的匹配代价值;

(3)计算代价聚合值:把图像中的每个像素值当做一个节点,上下左右相连,获得一个四连通无向图,根据权重值构建最小生成树,权重值是相邻像素点之间的灰度差,然后沿着最小生成树的路径对步骤(2)获得的每一个像素点的匹配代价值进行代价聚合;

(4)计算初始视差图:使用“胜者为王”算法获得初始视差图,这个算法是在视差范围内通过选择最小的聚合后的匹配代价值所对应的视差值做为最终视差值,获得初始视差图D;

(5)视差细化:先采用左右一致性检测方法检测步骤(4)获得的初始视差图D,判断出异常点,然后针对这些异常点使用基于有效区域的颜色加权与视差加权的联合填充算法,有效区域是指异常点的上下左右四个方向的视差范围,对得到的填充视差图再采用左右一致性检测,将像素分为稳定的像素点和不稳定的像素点,对稳定的像素点根据此式做更新,获得新的代价量,再一次使用最小生成树的代价聚合的方法对新的代价量做代价聚合,然后采用胜者为王算法,最后再采用加权中值滤波,获得最终的视差图。

所述步骤(1)具体包括以下步骤:

1.1)假定输入的图像为I,对于像素i,j,Δgi,j,Δci,j,Δti,j分别代表空间信息,颜色信息和树的距离,σgct分别代表权重信息,权重策略为:

1.2)计算每个像素值滤波后的值,得到滤波后的增强图像Im

所述步骤(2)具体包括以下步骤:

2.1)图像的颜色信息计算:基于图像的颜色信息计算是分别在三个通道计算颜色绝对值,再计算平均值,CADg代表颜色差,IL,IR代表左右两幅图像,则颜色差的表达式可以表示为

2.2)梯度信息计算:图像梯度包含了丰富的结构信息,对光照不敏感,通过获得原始图像的局部细节信息和增强图像的全局信息构建一个双梯度模型,这样使得梯度信息更加的全面,对于后期的代价聚合鲁棒性更强,所以采用它来测量匹配代价;假设左视图的一个像素点为p,对应的右视图的像素点为p+d,d为对应的视差值,取值范围为[0,N];首先,计算出原始图像的水平方向的梯度值CGDx(p,d)和垂直方向的梯度值CGDy(p,d);再计算增强图像的水平方向的梯度值和垂直方向的梯度值然后分别求取原始图像和增强图像水平方向的梯度值的平均值和垂直方向的梯度值,依据这些计算,就可以得到融合的梯度值;

2.3)Census信息计算:Census变换是一种非参数变换,它是以某个像素点p为中心建立一个矩形窗口,求出窗口内所有像素点的均值I'(p),再将每个邻域像素点的灰度值与I'(p)进行比较,若小于I'(p)的灰度值,则相应位置记为1,若大于I'(p)的灰度值,则相应位置记为0;然后将窗口内的像素值变为一个比特串,利用Hamming距离计算census变换后的比特串,获得左右两幅图像之间的差异,一般情况下,差异越小,像素的相似度越高;

2.4)组合的匹配代价就是使用了上述的三个度量因子计算每一个点的匹配代价值,然后按照一定的权重进行组合。

所述步骤(5)具体包括以下步骤:

本发明提出基于支持区域的颜色加权与视差加权的联合填充算法;支持区域是以异常点为中心点,邻域为上下左右四个方向长度为N/2个像素的十字交叉范围P(r),

We(s)=ω|I(r)-I(s)|+(1-ω)|D(r)-D(s)|

在这里,ω是平衡像素值和视差值的系数,r表示异常点,s∈P(r)代表支持区域的正确匹配的点,I是原始图像,D是步骤(4)得到的初始视差图;

通过上式我们可以得到支持区域的所有正确匹配的点对误匹配点的权重集合,再求得集合中权重值最大的点即:

其中,We(s)为支持区域的每个正确匹配点的权重值,smax为使We(s)最大所对应的正确匹配的点。结合公式上面两个公式,最大权重值对应的那个正确匹配点smax的视差值填充给异常点;

D(r)=D(smax)

上式式使用所提的联合填充算法做填充,这样可以有效的去除大量的误匹配点。

本发明算法与其他的非局部立体匹配算法相比,该算法的误匹配率低,对边缘区域,重复纹理和遮挡区域有很强的鲁棒性。

附图说明

图1是本发明的流程图;

图2是本发明的算法性能比较图;

图3是本发明的误差图比较。

具体实施方式

下面结合实施例和附图对本发明内容作进一步的说明,但不是对本发明的限定。

如图1所示,一种非局部立体匹配算法的组合匹配代价算法和视差联合填充算法,包括以下几个步骤:

(1)计算增强图像:

图像I为原始图像,Ω是图像I的所有像素,wi(j)是j对i的联合权重,Δgi,j,Δci,j,Δti,j分别代表空间信息,颜色信息和树的距离,σgct分别代表权重。计算每个像素点滤波后的值,从而得到滤波后的图像,即增强图像Im

定义权重策略如下:

采用树滤波算法,该方法在原有的图像上建立最小生成树,而且还考虑了像素点之间的颜色信息和空间信息。实验表明,该方法能够有效的平滑高对比度和细尺度的信息,可以有效的保护图像的主要边缘信息。

(2)计算初始匹配代价值:

2.1)计算双梯度代价值:

假设左视图的一个像素点为p,对应的右视图的像素点为p+d,d为对应的视差值,取值范围为[0,N],则基于梯度的代价测量为:

其中,是左右两幅图像的方向梯度,上标m代表增强图像,下标x,y分别代表水平方向和垂直方向,r,g,b分别代表三个通道。

2.2)颜色信息的代价计算:

左右两幅图像的匹配主要是基于灰度信息匹配,将图像的颜色信息引入匹配过程中,可以获取更多的信息来得到更加精确的结果,可以很好的避免在灰度图像中由相同灰度、不同颜色的像素点导致的错误匹配,从而有效的提高匹配的精度,所以我们分别在三个通道计算颜色差异;

式中,CADg代表颜色差,IL,IR代表左右两幅图像。

2.3)基于Census的代价计算:

Census变换是一种非参数变换,它是以某个像素点p为中心建立一个矩形窗口,求出窗口内所有像素点的均值I'(p),再将每个邻域像素点的灰度值与I'(p)进行比较,若小于I'(p)的灰度值,则相应位置记为1,若大于I'(p)的灰度值,则相应位置记为0,然后将窗口内的像素值变为一个比特串;

式中,代表将窗口内的二进制值连接成比特串,N(q)为窗口中心点p的邻域,p′为窗口内所有像素点的均值(用以代替中心点);

利用Hamming距离计算census变换后的比特串,获得左右两幅图像之间的差异。一般情况下,差异越小,像素的相似度越高;

Ccen(p,d)=Hamming(cen(p),cen(p,d)) (12)

Census变换的计算复杂度和窗口大小有直接的关系,一般情况下,窗口的选择都很大],基本上有9×9、11×11,所以时间消耗比较久。在算法中,我们采用小窗口5×5的census变换,这样既可以获得有效的信息,也可以减少计算的复杂度。

本发明主要从上述三个不同的测量角度获得的初始代价值,分别为:原始图像的颜色信息,原始图像和增强图像的双梯度信息,原始图像的小窗口census变换信息。这样,组合代价测量就完全考虑了增强图像的全局信息和原始图像的局部信息,实现了各种匹配代价之间的优势互补,实现复杂环境下的高精度匹配。这个代价测量是:

其中,λ1234分别为截断阈值。α,β,δ,ε分别为水平方向梯度、垂直方向梯度、颜色差和Census变换信息的权重,α+β+δ+ε=1。

(3)计算代价聚合值:把图像中的每个像素值当做一个节点,上下左右相连,获得一个四连通无向图,根据权重值把整幅图像构建成最小生成树,权重值是相邻像素点之间的灰度差,然后沿着最小生成树的路径对每个像素点进行代价聚合。把整幅图像构建成一个最小生成树,这样可以天然的建立像素之间的关系,像素之间的关系一目了然,相比于全局代价聚合可以大大减少代价聚合的计算时间。

(4)计算初始视差图:在对匹配代价进行聚合之后,采用胜者为王的策略来获得初始视差图。这个策略是通过选择每个像素聚合后的匹配代价中最小值所对应的视差值作为所需视差值,得到初始视差图。

(5)视差细化求精:采用联合权重视差填充算法,即先根据左右一致性检测算法检测到异常点。以每一个异常点为中心点建立一个支持区域,求取支持区域内每一个正确匹配的点与异常点的颜色差值和视差差值,并分别给颜色差值和视差差值一个权重,最终获得颜色差值和视差差值的和。然后比较在支持区域内所有正确的点对异常点的和的大小,把最大的那个点对应的正确匹配的视差值赋给异常点,获得联合填充视差图。最后对联合填充视差图再一次使用最小生成树的代价聚合,进一步消除误匹配点,具体如下:

在视差不连续和有遮挡的区域,初始视差图包含了大量的异常点。一般情况下,根据左右一致性检测算法可检测到异常点。一般情况下视差的变化都是在颜色发生改变的时候产生的,但不同的颜色值也有可能具有相同的视差值。综合以上情况,本发明提出了基于支持区域的颜色加权与视差加权的联合填充算法。支持区域是以异常点为中心点,邻域为上下左右四个方向长度为个像素的十字交叉范围P(r);

We(s)=ω|I(r)-I(s)|+(1-ω)|D(r)-D(s)| (14)

在这里,ω是平衡像素值和视差值的系数,r表示异常点,s∈P(r)代表支持区域的正确匹配的点,I是原始图像,D是得到的初始视差图。

通过上式我们可以得到支持区域的所有正确匹配的点对误匹配点的权重集合,再求得集合中权重值最大的点即:

其中,We(s)为支持区域的每个正确匹配点的权重值,smax为使We(s)最大所对应的正确匹配的点。结合公式(14)(15),最大权重值对应的那个正确匹配点smax的视差值填充给异常点。

D(r)=D(smax) (16)

(16)式使用所提的联合填充算法做填充,这样可以有效的去除大量的误匹配点。为了进一步减少误匹配点,再做进一步的视差细化。

利用(16)式联合填充以后,对获得左右两幅填充视差图做左右一致性检测,将像素分为稳定点和不稳定点。针对稳定的点,我们再采用公式(17)进行像素间的代价更新,获得新的代价量。对于不稳定的点,我们令其为0,这样在接下来的代价聚合中,不稳定的点就不会给那些稳定的点带来干扰。

其中,d为视差范围,D(p)为填充视差图。

根据上式,得到新的代价量,我们进行再一次的代价聚合,然后采用胜者为王算法,最后再采用加权中值滤波,获得最终的视差图。

通过分析以上算法,在vs2012编程平台下使用C++语言实现算法,在Middlebury dataset数据库比较算法的性能。该网站提供了许多测试图,并同时提供了真实的视差图。通过得到的视差图与真实的视差图的比较,可以得到准确的匹配错误率,从而客观的评价算法的精度。

针对整个匹配算法本发明选取Tsukula,Venus,Teddy,Cones四组标准图像进行测试。视差结果如下图2所示。其中(a)为左视图,(b)为真实的视差图,(c)MF-1是针对第一步多种代价结合的方法得到的视差结果,(d)MF-2是针对整个算法得到的视差结果。从图中可以看出本发明算法的效果较好。例如venus图像中报纸的边缘部分,Teddy图像中小熊后面的弱纹理区域等,都能得到更加精准的视差图。

为了进一步显示实验的效果,针对(c)(d)的视差图,如图3所示,把每一幅图像错误的视差点标记为黑色。从图中可以看出黑色的点在逐渐的减少,说明本发明算法可以得出精确度更好的视差图,且在物体的边缘,弱纹理和重复纹理区域也能得到很好的效果。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1