首页> 中国专利> 基于自适应支持权重匹配算法的两步视差改良方法及系统

基于自适应支持权重匹配算法的两步视差改良方法及系统

摘要

本发明公开了一种基于自适应支持权重匹配算法的两步视差改良方法及系统,其中方法包括以下步骤:S1、对左右原图进行自适应支持权重匹配算法求取原始视差图;S2、对求取的原始视差图进行左右一致性检测,对检测到的不一致像素点的视差值采用变交叉域投票法和固定窗口投票法进行初始修正;S3、将修正后的视差图中存在的误匹配区域分为非正常区域和错误边缘区域,并分别进行二次修正。本发明可克服自适应支持权重算法在精度上的不足,提升匹配精度。

著录项

  • 公开/公告号CN105631887A

    专利类型发明专利

  • 公开/公告日2016-06-01

    原文格式PDF

  • 申请/专利权人 武汉理工大学;

    申请/专利号CN201610031103.3

  • 申请日2016-01-18

  • 分类号G06T7/00(20060101);

  • 代理机构42102 湖北武汉永嘉专利代理有限公司;

  • 代理人许美红

  • 地址 430070 湖北省武汉市洪山区珞狮路122号

  • 入库时间 2023-12-18 15:29:29

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2019-10-25

    授权

    授权

  • 2016-06-29

    实质审查的生效 IPC(主分类):G06T7/00 申请日:20160118

    实质审查的生效

  • 2016-06-01

    公开

    公开

说明书

技术领域

本发明涉及计算机视觉领域,尤其是涉及计算机视觉中立体匹配的视差改良算法。

背景技术

计算机视觉旨在通过摄像头来模拟人眼对目标进行跟踪、测量与识别,其在智能交通、裂纹检测、三维重建等众多领域均有广泛应用。双目视觉是计算机视觉的一个重要分支,双目视觉旨在通过左右两个摄像头分别获取到的左右两幅图像,计算两幅图像中物体的视差得到物体的三维信息。在还原物体三维信息的过程中,立体匹配是最重要也是最核心的一步,立体匹配的精度与提取到的三维坐标有最直接的关系,因此提升立体匹配算法的精度显得非常重要。

传统的立体匹配算法,按照匹配区域的不同,通常可以分为两个大类:全局匹配算法和局部匹配算法。全局匹配算法利用图像的全局约束信息建立代价函数,通过多次迭代以至全局代价函数最小来获得最优的匹配结果,因此全局匹配算法具有计算代价高,匹配时间长等问题。局部匹配算法只对相关点及其相邻像素点的相关信息进行约束,因此相比较于全局匹配算法,局部匹配算法的匹配效率高,但是在精度上有所欠缺。立体匹配算法通常有以下步骤:1、代价计算;2、代价聚合;3、视差计算;4、视差改良。近年来,自适应支持权重局部匹配算法在匹配精度上可以达到与全局算法相匹配的程度,并且具有更高的匹配效率,主要是因为自适应支持权重算法在代价计算和代价聚合步骤中,同时利用了相邻像素点的颜色信息和距离信息,因此达到了比较高的匹配精度。但是从视差改良的角度提升自适应支持权重匹配算法的匹配精度的算法很少。

发明内容

本发明的目的在于,提供一种可克服自适应支持权重算法在精度上的不足,提升匹配精度的基于自适应支持权重匹配算法的两步视差改良方法及系统。

本发明解决其技术问题所采用的技术方案是:

提供一种基于自适应支持权重匹配算法的两步视差改良方法,包括以下步骤:

S1、对左右原图进行自适应支持权重匹配算法求取原始视差图;

S2、对求取的原始视差图进行左右一致性检测,对检测到的不一致像素点的视差值采用变交叉域投票法和固定窗口投票法进行初始修正;

S3、将修正后的视差图中存在的误匹配区域分为非正常区域和错误边缘区域,并分别进行二次修正;

其中非正常区域定义为:视差图中的存在某一区域P,对原始图像中相同的区域P内的每一个像素点q1求其变交叉域原始图像中区域P内所有像素点的变交叉域组成区域记为M,在视差图中有相同的区域M,如果区域中存在像素点的视差值不等于区域P内像素点的视差值并且服从(其中d(p)表示像素点p的视差值),则该区域P定义为非正常区域;对该非正常区域的视差值采用与步骤S2相同的方法进行修正;

错误边缘区域定义为:视差图中物体的边缘像素与原图物体边缘像素之间的误匹配区域;错误边缘区域内的像素点的视差值通过视差继承算法来修正。

本发明所述的方法中,步骤S1中,在自适应支持权重匹配算法的参数选择上,在截断绝对差值T=40以及窗口大小N=35的条件下,γc和γp的参数分别选取为9和26时,对middlebury测试集tsukuba,venus,teddy,cones进行测试,其平均错误率最小,值为7.71%。

本发明所述的方法中,步骤S2具体包括以下步骤:

S21、对每一个不一致像素点p1,求其变交叉域R,在其变交叉域内建立视差分布直方图,当该视差分布直方图满足一定条件时,将该不一致像素点的视差值修正为视差分布直方图中分布最多的视差df

S22、将剩余的未被修正的不一致像素点的集合记为Q,针对Q中每一个像素点p2,以p2为中心,建立方形窗口,求该窗口的视差分布直方图,像素点p2的视差值修正为视差分布直方图中分布个数最多的视差ds

S23、对修正后的视差图像进行中值滤波。

本发明所述的方法中,重复步骤S21多次,以使尽可能多的不一致像素点的视差得到修正。

本发明所述的方法中,该方法还包括步骤:

S4、对经二次修正后的视差图像进行中值滤波,从而得到最终的视差图。

本发明还提供一种基于自适应支持权重匹配算法的两步视差改良系统,包括:

原始视差图求取模块,用于对左右原图进行自适应支持权重匹配算法求取原始视差图;

初始修正模块,用于对求取的原始视差图进行左右一致性检测,对检测到的不一致像素点的视差值采用变交叉域投票法和固定窗口投票法进行初始修正;

二次修正模块,用于将修正后的视差图中存在的误匹配区域分为非正常区域和错误边缘区域,并分别进行二次修正;其中非正常区域定义为:视差图中的存在某一区域P,对原始图像中相同的区域P内的每一个像素点q1求其变交叉域原始图像中区域P内所有像素点的变交叉域组成区域记为M,在视差图中有相同的区域M,如果区域中存在像素点的视差值不等于区域P内像素点的视差值并且服从(其中d(p)表示像素点p的视差值),则该区域P定义为非正常区域;对该非正常区域的视差值采用与步骤S2相同的方法进行修正;错误边缘区域定义为:视差图中物体的边缘像素与原图物体边缘像素之间的误匹配区域;错误边缘区域内的像素点的视差值通过视差继承算法来修正。

本发明所述的系统中,所述原始视差图求取模块具体用于在自适应支持权重匹配算法的参数选择上,在截断绝对差值T=40以及窗口大小N=35的条件下,γc和γp的参数分别选取为9和26时,对middlebury测试集tsukuba,venus,teddy,cones进行测试,其平均错误率最小,值为7.71%。

本发明所述的系统中,所述初始修正模块具体包括:

变交叉域投票法修正模块,用于对每一个不一致像素点p1,求其变交叉域R,在其变交叉域内建立视差分布直方图,当该视差分布直方图满足一定条件时,将该不一致像素点的视差值修正为视差分布直方图中分布最多的视差df

固定窗口投票法修正模块,用于将剩余的未被修正的不一致像素点的集合记为Q,针对Q中每一个像素点p2,以p2为中心,建立方形窗口,求该窗口的视差分布直方图,像素点p2的视差值修正为视差分布直方图中分布个数最多的视差ds

中值滤波模块,用于对修正后的视差图像进行中值滤波。

本发明所述的系统中,所述变交叉域投票法修正模块还用于多次使用变交叉域投票法修正不一致像素点的视差,以使尽可能多的不一致像素点的视差得到修正。

本发明所述的系统中,该中值滤波模块还用于对经二次修正后的视差图像进行中值滤波,从而得到最终的视差图。

本发明产生的有益效果是:本发明通过两步视差改良的方式来提高自适应支持权重算法的匹配精度,该方法主要针对三类误匹配区域:左右一致性检测到的误匹配区域、非正常区域和错误边缘区域,针对这三类误匹配区域采用不同的修正算法,有效提高了匹配精度。

附图说明

下面将结合附图及实施例对本发明作进一步说明,附图中:

图1为本发明基于两步视差改良的自适应支持权重匹配算法的流程图;

图2位自适应支持权重参数γc和γp与平均误匹配率的关系图;

图3为像素点p的变交叉域,虚线围成的区域表示像素点p的变交叉域;

图4为像素点p的固定窗口,其中黑点表示未被修正的左右一致性检测到的“错误”像素点;

图5中黑色区域表示检测到的middlebury测试集的错误边缘区域;

图6(a)、图6(b)为本发明提供的算法跟其他算法匹配结果的对比。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。

本发明实施例基于自适应支持权重匹配算法的两步视差改良方法,其包含以下三个步骤:

(1)、对左右原图进行自适应支持权重匹配算法求取原始视差图;

(2)、对求取的原始视差图进行左右一致性检测,对检测到的不一致像素点的视差值采用变交叉域投票法和固定窗口投票法进行初始修正;

(3)、将修正后的视差图中存在的误匹配区域分为非正常区域和错误边缘区域,并分别进行二次修正;

其中非正常区域定义为:视差图中的存在某一区域P,对原始图像中相同的区域P内的每一个像素点q1求其变交叉域原始图像中区域P内所有像素点的变交叉域组成区域记为M,在视差图中有相同的区域M,如果区域中存在像素点的视差值不等于区域P内像素点的视差值并且服从(其中d(p)表示像素点p的视差值),则该区域P定义为非正常区域;对该非正常区域的视差值采用与步骤(2)相同的方法进行修正;

错误边缘区域定义为:视差图中物体的边缘像素与原图物体边缘像素之间的误匹配区域;错误边缘区域内的像素点的视差值通过视差继承算法来修正。

本发明的一个较佳实施例中:

上述步骤(1)可依据自适应支持权重匹配算法计算原始视差图,其具体参数设置如下:

(1-1)以middlebury测试集tsukuba,venus,teddy,cones为对象,对左右两幅原图进行自适应支持权重立体匹配,在截断绝对差值T=40以及窗口大小N=35的条件下,γc和γp的参数分别选取为9和26,得到平均错误率最小的原始视差匹配图,值为7.71%。

上述步骤(2)对步骤(1)得到的原始视差图进行初始视差改良,其具体步骤如下:

(2-1)对步骤(1)求得的原始视差图进行左右一致性检测,对检测到的“错误”(即不一致)像素点的视差值采用变交叉域投票法和固定窗口投票法进行修正;

具体如下:

变交叉域投票法:首先,求像素点p的变交叉域。从像素点p的上、下两个方向分别求其边界像素点q1,q2。以求p点的下边界像素点q1为例,从像素点p开始,沿着向下的方向寻找点q1,直到q1违反以下任一条件则终止搜索,并且像素点q1即为像素点p的下边界像素点:

(Ⅰ)Dc(p,q)<τ1,并且Dc(p,q-(0,1))<τ1;(1)

(Ⅱ)Ds(p,q)<L1;(2)

(Ⅲ)当L2<Ds(p,q)<L1时,Dc(p,q)<τ2。(3)

其中,L1,L2表示空间距离阈值,τ1,τ2表示颜色距离阈值,并且

Dc(p,q)=maxn=R,G,B|In(p)-In(q)|(4)

Ds(p,q)=|p-q|(5)

按照以上方法,分别求出像素点p的上下两个方向的边界像素点。对于上下边界像素点组成区域内的每一个像素点,按照相同方法求其左右边界像素点。像素点p的上、下边界点组成的区域和区域内每一个像素点的左、右边界像素点组成的交叉域即为像素点p的变交叉域,图3虚线部分即为像素点p的交叉域。

对左右一致性检测检测到的每一个“错误”像素点,求其变交叉域,通过变交叉域投票法对“错误”像素点的视差值进行修正。首先,对每一个错误像素点变交叉域内的可靠像素点(非“错误”像素点)建立视差分布直方图Hp,变交叉域中视差值分布最多的个数记为Sf,该视差值记为df,可靠像素点总个数记为Sp,当满足以下条件时,该“错误”像素点的视差值修正为df

>Sp>τs,SfSp>τH---(6)>

其中τs和τH为阈值常数。

重复执行变交叉域投票法五次,以保证尽可能多的“错误”像素点的视差值被修正。

执行完以上步骤之后,大部分的左右一致性检测检测到的“错误”像素点的视差得到修正,由于不满足公式(6)的修正条件,仍然会存在少数的“错误”像素点的视差值无法被修正,因此,剩下的“错误”像素点的视差采用固定窗口投票法进行修正。

具体如下:

固定窗口投票法:在剩下的“错误”像素点中,以每一个“错误”像素点为中心,设计固定长度Nsquare的方形窗口,建立以窗口内可靠像素点视差值为基础的视差分布直方图Hs,其中,视差值出现次数最多的视差ds,则该“错误”像素点视差值即为ds,如图4所示。对middlebury测试集tsukuba,venus,teddy,cones进行测试,测试结果表明,当Nsquare值为7时,固定窗口投票法处理的平均错误率最小。

执行完以上步骤以后,对得到的初始视差图进行中值滤波。

上述步骤(3)对步骤(2)得到的初始视差图进行初始视差改良,其具体步骤如下:

(3-1)对步骤(2)求得的初始视差图,主要得误匹配点集中在弱纹理以及物体边缘区域。第二步视差改良主要集中修正初始视差图中的弱纹理以及物体边缘区域的误匹配点。

具体如下:

视差图中的存在某一区域P,对原始图像中相同的区域P内的每一个像素点q1求其变交叉域原始图像中区域P内所有像素点的变交叉域组成区域记为M,在视差图中有相同的区域M,如果区域中存在像素点的视差值不等于区域P内像素点的视差值并且服从(其中d(p)表示像素点p的视差值),则该区域P定义为非正常区域。非正常区域像素点的视差采用步骤(2)中的变交叉域投票法和固定窗口投票法进行修正。

错误边缘区域定义为视差图中物体的边缘像素与原图物体边缘像素之间的误匹配区域。错误边缘区域通过以下方式提取:采用Canny边缘检测算法提取视差图和原图的边缘像素点,对于视差图上的每一个边缘像素点p,如果其在原图中不是边缘像素点,则将该像素点记为不匹配边界点。以不匹配边界点p为中心建立固定长度方形窗口,当窗口内任一与像素点p具有相同视差值的像素点满足以下任一条件时,则将不匹配边界点p以及窗口内所有与点p具有相同视差值的像素点记为错误边界点:

(Ⅰ)|IR(p)-IR(q)|≥εs(7)

(Ⅱ)|IG(p)-IG(q)|≥εs;(8)

(Ⅲ)|IB(p)-IB(q)|≥εs(9)

(Ⅳ)sumn=R,G,B|In(p)-In(q)|≥εa(10)

其中,IR,IG,IB分别代表像素点在RGB空间的R、G、B分量值,εs和εa分别表示单分量阈值常数和全分量阈值常数。

所有的错误边界点的集合记为错误边缘区域。错误边缘区域内像素点视差值通过视差继承算法来修正,通过该计算方法检测到的错误边缘区域如图5黑色区域所示。

具体如下:

记错误边缘区域为R,计算错误边缘区域内的每个像素点p的变交叉域Q,变交叉域Q内每一个像素点q对其中心像素点p的支持权重服从公式(11):

>w(p,q)=0qRexp(-Δcpq/γc-Δgpq/γp)qR---(11)>

其中

Δcpq=sqrt((Lp-Lq)2+(ap-aq)2+(bp-bq)2)(12)

Δgpq=sqrt((xp-xq)2+(yp-yq)2)(13)

式中,L,a,b表示像素点在CIE空间的三个分量值,x,y表示像素点在图像坐标的坐标值。

像素点p的视差值被修正为df(p):

>df(p)=argmaxddmax(ΣqQw(p,q)×m(q,d))---(14)>

>m(p,q)=1,ifd(q)=d0,ifd(q)d---(15)>

对错误边缘区域内所有像素点的视差值通过以上方法进行修正,最后对求得的视差图进行中值滤波,结果即为最终视差图,如图6,该图表示本方法计算的视差图和其他算法计算的视差图的效果对比图。

下面以middlebury测试平台的测试集:tsukuba,venus,teddy,cones进行测试,实验平台为Matlab2014b,实验结果的评估标准为误匹配像素的百分比。

表1误匹配率对比

本发明实施例基于自适应支持权重匹配算法的两步视差改良系统,用于实现上述方法,具体包括:

原始视差图求取模块,用于对左右原图进行自适应支持权重匹配算法求取原始视差图;

初始修正模块,用于对求取的原始视差图进行左右一致性检测,对检测到的不一致像素点的视差值采用变交叉域投票法和固定窗口投票法进行初始修正;

二次修正模块,用于将修正后的视差图中存在的误匹配区域分为非正常区域和错误边缘区域,并分别进行二次修正;其中非正常区域定义为:视差图中的存在某一区域P,对原始图像中相同的区域P内的每一个像素点q1求其变交叉域原始图像中区域P内所有像素点的变交叉域组成区域记为M,在视差图中有相同的区域M,如果区域中存在像素点的视差值不等于区域P内像素点的视差值并且服从(其中d(p)表示像素点p的视差值),则该区域P定义为非正常区域;对该非正常区域的视差值采用与步骤S2相同的方法进行修正;错误边缘区域定义为:视差图中物体的边缘像素与原图物体边缘像素之间的误匹配区域;错误边缘区域内的像素点的视差值通过视差继承算法来修正。

本发明的一个实施例中,原始视差图求取模块具体用于在自适应支持权重匹配算法的参数选择上,在截断绝对差值T=40以及窗口大小N=35的条件下,γc和γp的参数分别选取为9和26时,对middlebury测试集tsukuba,venus,teddy,cones进行测试,其平均错误率最小,值为7.71%。

初始修正模块具体包括:

变交叉域投票法修正模块,用于对每一个不一致像素点p1,求其变交叉域R,在其变交叉域内建立视差分布直方图,当该视差分布直方图满足一定条件时,将该不一致像素点的视差值修正为视差分布直方图中分布最多的视差df

固定窗口投票法修正模块,用于将剩余的未被修正的不一致像素点的集合记为Q,针对Q中每一个像素点p2,以p2为中心,建立方形窗口,求该窗口的视差分布直方图,像素点p2的视差值修正为视差分布直方图中分布个数最多的视差ds

中值滤波模块,用于对修正后的视差图像进行中值滤波。

本发明的一个实施例中,变交叉域投票法修正模块还用于多次使用变交叉域投票法修正不一致像素点的视差,以使尽可能多的不一致像素点的视差得到修正。

本发明的一个实施例中,该中值滤波模块还用于对经二次修正后的视差图像进行中值滤波,从而得到最终的视差图。

应当理解的是,对本领域普通技术人员来说,可以根据上述说明加以改进或变换,而所有这些改进和变换都应属于本发明所附权利要求的保护范围。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号