CN111881985B - 立体匹配方法、装置、终端和存储介质 - Google Patents

立体匹配方法、装置、终端和存储介质 Download PDF

Info

Publication number
CN111881985B
CN111881985B CN202010753484.2A CN202010753484A CN111881985B CN 111881985 B CN111881985 B CN 111881985B CN 202010753484 A CN202010753484 A CN 202010753484A CN 111881985 B CN111881985 B CN 111881985B
Authority
CN
China
Prior art keywords
image
pyramid
parallax
label
layer
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202010753484.2A
Other languages
English (en)
Other versions
CN111881985A (zh
Inventor
李海超
李志�
蒙波
庞羽佳
石佳卉
张志民
黄建斌
黄龙飞
韩旭
王尹
黄良伟
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
China Academy of Space Technology CAST
Original Assignee
China Academy of Space Technology CAST
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by China Academy of Space Technology CAST filed Critical China Academy of Space Technology CAST
Priority to CN202010753484.2A priority Critical patent/CN111881985B/zh
Publication of CN111881985A publication Critical patent/CN111881985A/zh
Application granted granted Critical
Publication of CN111881985B publication Critical patent/CN111881985B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/74Image or video pattern matching; Proximity measures in feature spaces
    • G06V10/75Organisation of the matching processes, e.g. simultaneous or sequential comparisons of image or video features; Coarse-fine approaches, e.g. multi-scale approaches; using context analysis; Selection of dictionaries
    • G06V10/751Comparing pixel values or logical combinations thereof, or feature values having positional relevance, e.g. template matching
    • G06V10/7515Shifting the patterns to accommodate for positional errors

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Theoretical Computer Science (AREA)
  • Evolutionary Computation (AREA)
  • Computing Systems (AREA)
  • Databases & Information Systems (AREA)
  • Artificial Intelligence (AREA)
  • General Health & Medical Sciences (AREA)
  • Medical Informatics (AREA)
  • Software Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Image Processing (AREA)

Abstract

本发明涉及立体匹配技术领域,提供一种立体匹配方法、装置、终端和存储介质,包括:通过双目相机获取左图像和右图像,并对左图像构建预设层数的左金字塔,对右图像构建预设层数的右金字塔;对左金字塔的高一层图像和右金字塔的高一层图像进行双向立体匹配,得到高一层的左视差图和高一层的右视差图;根据高一层的左视差图确定左金字塔的低一层图像中每个像素的视差搜索范围,以及根据高一层的右视差图确定右金字塔的低一层图像中每个像素的视差搜索范围;根据视差搜索范围对左金字塔的低一层图像和右金字塔的低一层图像双向立体匹配,得到低一层的左视差图和低一层的右视差图。本发明大大减少视差搜素范围,提高了视差计算的收敛速度。

Description

立体匹配方法、装置、终端和存储介质
技术领域
本发明涉及立体匹配技术领域,尤其涉及一种立体匹配方法、装置、终端和存储介质。
背景技术
立体匹配技术是计算机视觉中的一个研究热点,其目标是从同一场景获取的两幅或多幅图像中找到每个像素匹配的对应点,它是三维重建、立体导航、非接触测距等技术的关键步骤。
根据立体匹配算法所采用的约束,一般可分为局部匹配方法和全局匹配方法。全局匹配方法主要采用了全局优化函数估计视差,通过建立全局能量函数,将视差的求取转化为最小化全局能量函数的求解,图割、置信度传播和动态规划等优化算法是计算最小全局能量函数的常用方法,全局匹配算法匹配精度高、鲁棒性强,但是计算速度非常慢。局部匹配方法也称为基于窗口的方法,主要采用局部优化方法进行视差值估计,与全局立体匹配方法相似,通过优化一个代价函数计算最优视差。但是,在局部匹配的能量函数中,只有基于局部区域的约束数据项,而没有平滑项。局部匹配方法一般利用某一点邻域的灰度、颜色或梯度等信息进行匹配代价计算,计算复杂度低,但是局部匹配对弱纹理、无纹理、视差不连续或遮挡区域等匹配不理想。
在局部立体匹配算法中,一般假设支持窗口内的所有像素都具有恒定的视差,但是这种假设一般不成立。例如,当支持窗口包括与中心像素不同表面的像素时,或当窗口捕捉到倾斜的表面,而不是平行平面,此时若仍然假设支持窗口内具有恒定的视差,则传统的局部匹配方法就会产生“阶梯效应”。针对这一问题,学者们提出了很多方法,例如,基于3D标签的倾斜窗口假设(即窗口内视差值存在渐变),通过对像素点3D标签分别进行随机初始化、邻域传播、左右视图传播、随机搜索以及平面细化等来估计视差,简称为PMS方法。3D标签的引入相对于单一视差,增加了像素点的法向量信息,更能表征像素点所在平面的空间信息。
在PMS算法的基础上,不少学者通过加入全局图割、置信度传播等优化算法提出了新的技术方案。例如,将PMS算法和置信度传播算法整合到统一的框架下,提出了一种基于置信度传播的加速全局立体匹配算法,该方法在PMS算法的代价函数基础上,考虑邻域平面的平滑项约束构造能量函数,得到了比PMS算法更精确的视差。但是现有的方法对于弱纹理或无纹理区域的误匹配问题仍不能很好地解决。
发明内容
本发明实施例提供一种立体匹配方法、装置、终端和存储介质。
根据本发明实施例的第一方面,提供一种立体匹配方法,包括:
通过双目相机获取左图像和右图像,并对所述左图像构建预设层数的左金字塔,对所述右图像构建所述预设层数的右金字塔;
对所述左金字塔的高一层图像和所述右金字塔的高一层图像进行双向立体匹配,得到所述高一层的左视差图和所述高一层的右视差图;
根据所述高一层的左视差图确定所述左金字塔的低一层图像中每个像素的视差搜索范围,以及根据所述高一层的右视差图确定所述右金字塔的低一层图像中每个像素的视差搜索范围;
根据所述视差搜索范围,对所述左金字塔的低一层图像和所述右金字塔的低一层图像进行双向立体匹配,得到所述低一层的左视差图和所述低一层的右视差图。
进一步地,所述双向立体匹配方法包括:
对所述左金字塔的对应层图像和所述右金字塔的对应层图像分别进行超像素分割,得到若干个超像素,并为每个所述超像素构造共享标签窗口,以及为每个所述超像素初始化第一3D标签;
根据所述第一3D标签,计算所述左金字塔的对应层图像的所述共享标签窗口内的每个像素的第一能量函数,以及计算所述右金字塔的对应层图像的所述共享标签窗口内的每个像素的第一能量函数;
迭代更新每个所述超像素的第一3D标签得到第二3D标签,根据所述第二3D标签,计算所述左金字塔的对应层图像的所述共享标签窗口内的每个像素的第二能量函数,以及计算所述右金字塔的对应层图像的所述共享标签窗口内的每个像素的第二能量函数;
若所述第二能量函数小于所述第一能量函数,确定每个所述超像素的3D标签为所述第二3D标签;
根据所述左金字塔的对应层图像的所有所述第二3D标签和根据所述右金字塔的对应层图像的所有所述第二3D标签进行双向立体匹配,得到所述左金字塔的对应层的左视差图和所述右金字塔的对应层的右视差图。
进一步地,金字塔的最高层图像的超像素进行初始化第一3D标签的方法,包括:
随机选取金字塔的最高层图像中超像素Si中的一像素点(x,y),使像素点(x,y)的视差:
d=ax+by+c
满足d∈[Dmin/2L-1,Dmax/2L-1],则确定超像素Si的第一3D标签为f(a,b,c);其中,[Dmin,Dmax]为所述左图像与所述右图像的初始视差搜索范围。
进一步地,计算能量函数的方法包括:通过
得到能量函数E(f);其中,Oi为所述共享标签窗口;p为所述共享标签窗口内的像素点;φp(f)为像素点p的数据项;N(p)为像素点p的邻域;ψpq(fp,fq)为像素点p与像素点q间的平滑项;fp为像素点p的3D标签;fq为像素点q的3D标签;λ为平滑系数;Wp为以像素点p为中心,半径为r的矩形窗口;ωpq为平滑项的权重,f为在所述左金字塔的高一层图像的所有超像素中随机选取的任一像素点的3D标签,或为所述右金字塔的高一层图像的所有超像素中随机选取的任一像素点的3D标签;wf(s)为根据所述3D标签将所述左金字塔的高一层图像中像素点s映射到所述右金字塔的高一层图像的像素的坐标;函数ρ(s,wf(s))用于计算所述左金字塔的高一层图像中像素点s和wf(s)之间的相似性;为视差惩罚函数,ε为常数值,τdis为预设截断值。
进一步地,更新3D标签的方法包括:
通过
d=ax+by+c
得到当前像素点(x,y)的第一3D标签f(a,b,c)的视差d;
计算
△d=(dmax-dmin)/2m,m=1,2,...,M
其中,M为迭代次数,[dmin,dmax]为当前像素点的初始视差搜索范围;
更新当前像素点的第一3D标签,得到第二3D标签,并根据所述第二3D标签计算当前像素点的视差d',直到满足
其中,则将所述第二3D标签赋值给当前像素点。
进一步地,所述根据所述高一层的左视差图确定所述左金字塔的低一层图像中每个像素的视差搜索范围,以及根据所述高一层的右视差图确定所述右金字塔的低一层图像中每个像素的视差搜索范围,包括:
根据所述高一层的左视差图确定所述左金字塔的低一层图像中每个像素的视差搜索范围,以及根据所述高一层的左视差图的3D标签初始化所述左金字塔的低一层图像的所述第一3D标签;
以及,根据所述高一层的右视差图确定所述右金字塔的低一层图像中每个像素的视差搜索范围,以及根据所述高一层的右视差图的3D标签初始化所述右金字塔的低一层图像的所述第一3D标签。
进一步地,根据高一层的视差图确定低一层图像中每个像素的视差搜索范围的方法包括:
以所述高一层的视差图的像素点PL(xL,yL)为中心点建立预设尺寸的窗口,并确定所述窗口中的所有像素是否均为左右一致性点;
若所有像素均为左右一致性点,则所述低一层图像中像素点PL-1(xL-1,yL-1)的视差搜索范围为:
2dL min-δ≤dL-1(xL-1,yL-1)≤2dL max
dL min=min{dL(xL+i,yL+j)|i=-1,0,1,j=-1,0,1}
dL max=max{dL(xL+i,yL+j)|i=-1,0,1,j=-1,0,1}
其中,dL(xL,yL)为像素点PL(xL,yL)的视差值,δ为第L层与第L-1层之间的余量,dL-1(xL-1,yL-1)为所述低一层图像中像素点PL-1(xL-1,yL-1)的视差值,
若所述窗口中的像素存在左右不一致性点,向像素点PL(xL,yL)周围搜索一致性点,得到视差最小值d'L min和视差最大值d'L max,则所述低一层图像中像素点PL-1(xL-1,yL-1)的视差搜索范围为:
2d'L min-δ≤dL-1(xL-1,yL-1)≤2d'L max+δ。
进一步地,根据高一层的视差图的3D标签初始化低一层图像的第一3D标签的方法包括:
若所有像素均为左右一致性点,在所述窗口中任意选取一个像素点的3D标签为参考3D标签,并计算所述参考3D标签与所述窗口内其他像素的3D标签的夹角,则在所述窗口中,初始化所述低一层图像的第一3D标签满足以下条件:
θmin<θ<θmax
其中,θ'max为计算的最大夹角,θ'min为计算的最小夹角,θmax=θ'max+△θ,θmin=θ'min-△θ,△θ为预设的角度偏移量;
若所述窗口中的像素存在左右不一致性点,向像素点PL(xL,yL)周围搜索一致性点,在搜索到的一致点中,任意选取一个像素点的3D标签为参考3D标签,并计算所述参考3D标签与所述窗口内其他像素的3D标签的夹角,则在所述窗口中,初始化所述低一层图像的第一3D标签满足以下条件:
θmin<θ<θmax
其中,θ'max为计算的最大夹角,θ'min为计算的最小夹角,θmax=θ'max+△θ,θmin=θ'min-△θ,△θ为预设的角度偏移量。
根据本发明实施例的第二方面,提供一种立体匹配装置,包括:
金字塔建立模块,用于通过双目相机获取左图像和右图像,并对所述左图像构建预设层数的左金字塔,对所述右图像构建所述预设层数的右金字塔;
高层立体匹配模块,用于对所述左金字塔的高一层图像和所述右金字塔的高一层图像进行双向立体匹配,得到所述高一层的左视差图和所述高一层的右视差图;
视差搜索范围确定模块,用于根据所述高一层的左视差图确定所述左金字塔的低一层的每个像素的视差搜索范围,以及根据所述高一层的右视差图确定所述右金字塔的低一层的每个像素的视差搜索范围;
低层立体匹配模块,用于根据所述视差搜索范围,对所述左金字塔的低一层图像和所述右金字塔的低一层图像进行双向立体匹配,得到所述低一层的左视差图和所述低一层的右视差图。
根据本发明实施例的第三方面,提供一种终端,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上述实施例的第一方面提供的任一项所述的立体匹配方法的步骤。
本发明实施例的立体匹配方法、装置、终端和存储介质与现有技术相比存在的有益效果是:
通过双目相机获取左图像和右图像,并对左图像构建预设层数的左金字塔,对右图像构建预设层数的右金字塔;对左金字塔的高一层图像和右金字塔的高一层图像进行双向立体匹配,得到高一层的左视差图和高一层的右视差图;根据高一层的左视差图确定左金字塔的低一层图像中每个像素的视差搜索范围,以及根据高一层的右视差图确定右金字塔的低一层图像中每个像素的视差搜索范围;根据视差搜索范围对左金字塔的低一层图像和右金字塔的低一层图像双向立体匹配,得到低一层的左视差图和低一层的右视差图。本发明大大减少视差搜素范围,提高了视差计算的收敛速度。
附图说明
图1是本发明实施例提供的一种立体匹配方法的实现流程示意图;
图2是图1中步骤S102的具体实现流程示意图;
图3是本发明实施例提供的基于每个超像素构造的三个窗口的示意图;
图4是本发明实施例提供的高一层图像的视差图确定低一层图像的视差搜索范围,以及高一层图像的视差图的3D标签初始化低一层图像的第一3D标签的示意图;
图5是本发明实施例提供的窗口中的像素均为左右一致性点时的像素点的视差搜索范围示意图;
图6是本发明实施例提供的窗口中的像素存在左右不一致性点时向周围搜索一致性点的示意图;
图7是本发明实施例提供的LocalExp方法获得的视差图(左)与本实施例方法得到的视差图(右)的对比示意图;
图8是本发明实施例提供的一种立体匹配装置的结构示意图;
图9是本发明实施例提供的一种终端的结构示意图。
具体实施方式
以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本发明实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本发明。
为了说明本发明所述的技术方案,下面通过具体实施例来进行说明。
参见图1,为本实施例提供的立体匹配方法的一个实施例实现流程示意图,本发明可以在地外天体巡视器中开展应用,例如月球车、火星车以及其他行星巡视器等;本发明还适合应用在地球上的机器人、自动驾驶领域等,详述如下:
步骤S101,通过双目相机获取左图像和右图像,并对所述左图像构建预设层数的左金字塔,对所述右图像构建所述预设层数的右金字塔。
可选的,在通过双目相机获取左图像和右图像之后还包括:对左图像和右图像均进行极线校正,使得两幅图像的视差在同一水平线上;然后对极线校正后的左图像构建L层(预设层数)金字塔,称为左金字塔,对极线校正后的右图像构建L层金字塔,称为右金字塔。所述左金字塔和右金字塔均可以为高斯金字塔。
本实施例对预设层数不进行具体限定,预设层数优选为2~4层,可以在减少视差搜素范围的同时,提高匹配速度。
实际应用中,双目相机的光心并不是平行的,两个光心的连线叫做基线,像平面与基线的交点就是极点,像点与极点所在的直线就是极线,左右极线与基线构成的平面就是空间点对应的极平面。极线校正后,极点在无穷远处,两个相机的光轴平行,像点在左右图像上的高度一致,这也是极线校正的目的。校正后做后续的立体匹配时,只需在同一行上搜索左右像平面的匹配点即可,提高匹配效率。
步骤S102,对所述左金字塔的高一层图像和所述右金字塔的高一层图像进行双向立体匹配,得到所述高一层的左视差图和所述高一层的右视差图。
步骤S103,根据所述高一层的左视差图确定所述左金字塔的低一层图像中每个像素的视差搜索范围,以及根据所述高一层的右视差图确定所述右金字塔的低一层图像中每个像素的视差搜索范围。
步骤S104,根据所述视差搜索范围,对所述左金字塔的低一层图像和所述右金字塔的低一层图像进行双向立体匹配,得到所述低一层的左视差图和所述低一层的右视差图。
实际应用中,本实施例的立体匹配方法为一个循环过程。例如,左图像构建L层金字塔,右图像构建L层金字塔,对左金字塔的L层图像和右金字塔的L层图像进行双向立体匹配,得到L层的左视差图和L层的右视差图;然后根据L层的左视差图确定左金字塔的L-1层图像中每个像素的视差搜索范围,以及根据L层的右视差图确定右金字塔的L-1层图像中每个像素的视差搜索范围。然后根据左金字塔的L-1层的视差搜索范围以及右金字塔的L-1层的视差搜索范围,对左金字塔的L-1层图像和右金字塔的L-1层图像进行双向立体匹配,得到L-1层的左视差图和L-1层的右视差图。
同理,利用左金字塔第L-1层的视差图确定左金字塔第L-2层图像的视差搜索范围,利用右金字塔第L-1层的视差图确定右金字塔第L-2层图像的视差搜索范围,根据第L-2层的视差搜索范围对左金字塔第L-2层图像和右金字塔第L-2层图像进行双向立体匹配,得到左金字塔第L-2层的视差图和右金字塔第L-2层的视差图。之后循环进行,直到得到左金字塔第1层的视差图和右金字塔第1层的视差图。
可选的,参见图2,上述的双向立体匹配的具体实现流程包括:
步骤S201,对所述左金字塔的对应层图像和所述右金字塔的对应层图像分别进行超像素分割,得到若干个超像素,并为每个所述超像素构造共享标签窗口,以及为每个所述超像素初始化第一3D标签。
首先,本实施例对左金字塔的图像和右金字塔的图像进行超像素分割与窗口构造。示例性的,对左金字塔的最高层(L层)图像和右金字塔的最高层图像分别进行超像素分割,分别得到若干个超像素,为每个超像素Si构造三个窗口:基本单元窗口Ui、共享标签窗口Oi和仿射变换窗口Ai,如图3所示;并为每一个超像素Si初始化一个3D标签f(a,b,c)。
上述三个窗口的中心点都与超像素Si的最小外接矩形的中心点重合,其中:Ui的长(宽)=Si的最小外接矩形的长(宽)+r1像素,Oi的长(宽)=Si的邻域超像素的最小外接矩形长(宽)+r2像素,Ai的长(宽)=Oi的长(宽)+r像素;在本发明实施例中,取值r1=5,r2=10,r=20。
可选的,对左金字塔或右金字塔的最高层图像的超像素进行初始化第一3D标签的具体实现流程可以包括:
随机选取金字塔的最高层图像中超像素Si中的一像素点(x,y),使像素点(x,y)的视差:
d=ax+by+c
满足d∈[Dmin/2L-1,Dmax/2L-1],则确定超像素Si的第一3D标签为f(a,b,c);其中,[Dmin,Dmax]为所述左图像与所述右图像的初始视差搜索范围。
左金字塔或右金字塔的次高层图像的超像素进行初始化第一3D标签可以上一层的图像的3D标签进行确定。例如左金字塔第L-1层的第一3D标签根据左金字塔第L层图像的3D标签确定。
步骤S202,根据所述第一3D标签,计算所述左金字塔的对应层图像的所述共享标签窗口内的每个像素的第一能量函数,以及计算所述右金字塔的对应层图像的所述共享标签窗口内的每个像素的第一能量函数。
可选的,在本实施例中,计算能量函数的方法可以包括:通过
得到能量函数E(f);其中,Oi为所述共享标签窗口;p为所述共享标签窗口内的像素点;φp(f)为像素点p的数据项;N(p)为像素点p的邻域;ψpq(fp,fq)为像素点p与像素点q间的平滑项,用于惩罚相邻像素点p与q对视差的不连续性;fp为像素点p的3D标签;fq为像素点q的3D标签;λ为平滑系数;Wp为以像素点p为中心,半径为r的矩形窗口;ωpq为平滑项的权重,f为在所述左金字塔的高一层图像的所有超像素中随机选取的任一像素点的3D标签,或为所述右金字塔的高一层图像的所有超像素中随机选取的任一像素点的3D标签;wf(s)为根据所述3D标签将所述左金字塔的高一层图像中像素点s映射到所述右金字塔的高一层图像的像素的坐标;函数ρ(s,wf(s))用于计算所述左金字塔的高一层图像中像素点s和wf(s)之间的相似性;为视差惩罚函数,ε为常数值,τdis为预设截断值。
示例性的,对左金字塔的最高层图像中共享标签窗口Oi的每个像素点p计算能量函数:
然后根据
计算数据项φp(f)。f为超像素Si中随机选取的任一像素点的3D标签f(a,b,c),例如在左金字塔的最高层(L层)图像的一个超像素中随机选取的任一像素点的3D标签。本实施例中对ωpq、Wp的计算方法不进行限定。
示例性的,利用3D标签f(a,b,c),将左金字塔的最高层图像中的一像素点s映射到右金字塔的最高层图像中的像素wf(s)坐标表示为:
wf(s)=s-(asx+bsy+c,0)T
函数ρ(s,wf(s))用于计算左金字塔的最高层图像中像素点s和wf(s)之间的相似性,表示为:
式中,表示像素s和wf(s)之间的灰度值梯度之差的绝对值,τcol和τgrad为匹配代价的截断代价,为遮挡区域增加鲁棒性;由于wf(s)的横坐标在连续区域内,本实施例对IR(wf(s))使用线性插值。
然后根据
计算平滑项ψpq(fp,fq)。可选的,ε可以为一个很小的常数值,提高对图像噪声的鲁棒性,τdis为截断值,以允许深度边缘处视差的急剧跳跃。其中,通过
ωpq=exp(-||IL(p)-IL(q)||1/γ)
得到平滑项的权重ωpq。式中,IL(p)为像素点p的灰度或RGB值,γ为给定的参数。视差惩罚函数主要用于惩罚邻域像素点p,q分别在3D标签fp,fq下视差的不连续性,表达式为:
式中,dp(fq)=aqpx+bqpy+cq为像素点p在3D标签fq下的视差值,
dp(fp)=appx+bppy+cp为像素点p在fp标签下的视差值,
dq(fq)=aqqx+bqqy+cq为像素点q在fq标签下的视差值,
dq(fp)=aqpx+bqpy+cq为像素点q在fp标签下的视差值。
步骤S203,迭代更新每个所述超像素的第一3D标签得到第二3D标签,根据所述第二3D标签,计算所述左金字塔的对应层图像的所述共享标签窗口内的每个像素的第二能量函数,以及计算所述右金字塔的对应层图像的所述共享标签窗口内的每个像素的第二能量函数。
进一步地,更新3D标签的方法包括:
通过
d=ax+by+c
得到当前像素点(x,y)的第一3D标签f(a,b,c)的视差d。
然后计算
△d=(dmax-dmin)/2m,m=1,2,...,M
其中,M为迭代次数,[dmin,dmax]为当前像素点的初始视差搜索范围。
更新当前像素点的第一3D标签,得到第二3D标签,并根据所述第二3D标签计算当前像素点的视差d',直到满足
其中,则将所述第二3D标签赋值给当前像素点。其中,金字塔次高层的3D标签的更新可以根据上一层的图像的3D标签进行确定。例如左金字塔第L-1层的3D标签的更新根据左金字塔第L层图像的3D标签确定。
本发明用超像素作为处理单元来计算3D标签,由于超像素的相似纹理、颜色和亮度等特征,可以减少窗口数量,降低匹配复杂度,提高匹配速度。
步骤S204,若所述第二能量函数小于所述第一能量函数,确定每个所述超像素的3D标签为所述第二3D标签。
具体的,步骤S203和步骤S204为超像素的3D标签的优化迭代部分。首先从超像素Si中随机选取一像素点(x,y),根据当前3D标签(第一3D标签)f(a,b,c)计算视差d=ax+by+c;设当前像素点(x,y)的初始视差搜索范围表示为[dmin,dmax],计算△d、和/>然后重新随机选取3D标签(第二3D标签)并计算像素点(x,y)的视差d',直到满足/>则将重新选取的3D标签(第二3D标签)赋值给f(a,b,c)。
然后,根据重新计算的3D标签f(a,b,c)计算共享标签窗口Oi内的每个像素的能量函数Ep(fm)(第二能量函数),对于Oi中的每个像素点p,如果p点第m次迭代优化的能量函数Ep(fm)小于上一次的能量函数Ep(fm-1),即满足Ep(fm)<Ep(fm-1),则将当前次的3D标签f(a,b,c)(第二3D标签)赋值给p点的3D标签fp,即f→fp。直到M次迭代优化完毕,则得到共享标签窗口Oi中所有像素新的3D标签,对所有的共享标签窗口的像素迭代优化,得到左金字塔的高一层图像中所有像素新的3D标签以及右金字塔的高一层图像中所有像素新的3D标签。
基于超像素为基本单元构造窗口,由于超像素的相似纹理、颜色和亮度等特征,因此可以减少窗口数量,提高视差计算的收敛速度。
步骤S205,根据所述左金字塔的对应层图像的所有所述第二3D标签和根据所述右金字塔的对应层图像的所有所述第二3D标签进行双向立体匹配,得到所述左金字塔的对应层的左视差图和所述右金字塔的对应层的右视差图。
即根据新的3D标签计算每个像素的视差得到左金字塔高一层图像的视差图及视差图对应的3D标签,以及得到右金字塔高一层图像的视差图及视差图对应的3D标签。
进一步地,本实施例还对得到的左金字塔的高一层图像的视差图和右金字塔的高一层图像的视差图进行左右一致性检测处理,得到左右金字塔的高一层图像的左右视差图。可选的,左右一致性检测的方法包括:根据
|Dlr(x,y)-Drl(x+Dlr(x,y),y)|<T
确定图像中的任一像素点是否为左右一致性点。其中,T优选为1。示例性的,对于左金字塔的最高层图像中的任一像素点,如果满足|Dlr(x,y)-Drl(x+Dlr(x,y),y)|<T,则该像素点是左右一致性点,否则该像素点为左右不一致性点。
LocalExp(Local Expansion move,局部拓展移动)算法,主要是将图像分割成大小不同的网格区域,目的是能够产生更多的窗口去捕捉局部信息,在不同尺寸的窗口内计算匹配代价,进行标签传播,并且利用图割优化更新局部窗口内像素点的标签,但它仍存在弱纹理或无纹理区域的误匹配的问题。
本发明在LocalExp算法的基础上,提出基于超像素为基本单元构造窗口,由于超像素的相似纹理、颜色和亮度等特征,因此可以减少窗口数量,提高视差计算的收敛速度;另一方面,本发明提出分层立体匹配策略,提出由粗到精的金字塔立体匹配策略,根据金字塔高一层图像(低分辨率图像)的视差值确定低一层图像(高分辨率图像)中每个像素的视差搜索范围,将低分辨率左右图像对匹配得到的视差和法向量来约束更高分辨率层左右图像对的匹配,大大减少了视差搜素范围,同时使得本发明可以在弱纹理以及近似无纹理区域得到较好的匹配效果。
可选的,步骤S103的具体实现流程可以包括:
根据所述高一层的左视差图确定所述左金字塔的低一层图像中每个像素的视差搜索范围,以及根据所述高一层的左视差图的3D标签初始化所述左金字塔的低一层图像的第一3D标签。
以及,根据所述高一层的右视差图确定所述右金字塔的低一层图像中每个像素的视差搜索范围,以及根据所述高一层的右视差图的3D标签初始化所述右金字塔的低一层图像的第一3D标签。
示例性的,利用得到的左金字塔的第L层(最高层)的视差图及其对应的3D标签确定左金字塔第L-1层图像中所有像素点的视差搜索范围和第一3D标签;利用得到的右金字塔第L层的视差图及其对应的3D标签确定右金字塔第L-1层图像中所有像素点的视差搜索范围和第一3D标签。
进一步地,根据高一层的视差图确定低一层图像中每个像素的视差搜索范围的方法包括:
以所述高一层的视差图的像素点PL(xL,yL)为中心点建立预设尺寸的窗口,并确定所述窗口中的所有像素是否均为左右一致性点;
若所有像素均为左右一致性点,则得到第L-1层的视差搜索范围为:
2dL min-δ≤dL-1(xL-1,yL-1)≤2dL max
dL min=min{dL(xL+i,yL+j)|i=-1,0,1,j=-1,0,1}
dL max=max{dL(xL+i,yL+j)|i=-1,0,1,j=-1,0,1}
其中,dL(xL,yL)为像素点PL(xL,yL)的视差值,δ为第L层与第L-1层之间的余量,dL-1(xL-1,yL-1)为所述低一层图像中像素点PL-1(xL-1,yL-1)的视差值,
若所述窗口中的像素存在左右不一致性点,向像素点PL(xL,yL)周围搜索一致性点,得到视差最小值d'L min和视差最大值d'L max,则所述低一层图像中像素点PL-1(xL-1,yL-1)的视差搜索范围为:
2d'L min-δ≤dL-1(xL-1,yL-1)≤2d'L max+δ。
进一步地,根据高一层的视差图的3D标签初始化低一层图像的第一3D标签的方法包括:
若所有像素均为左右一致性点,在所述窗口中任意选取一个像素点的3D标签为参考3D标签,并计算所述参考3D标签与所述窗口内其他像素的3D标签的夹角,则在所述窗口中,初始化所述低一层图像的第一3D标签满足以下条件:
θmin<θ<θmax
其中,θ'max为计算的最大夹角,θ'min为计算的最小夹角,θmax=θ'max+△θ,θmin=θ'min-△θ,△θ为预设的角度偏移量;
若所述窗口中的像素存在左右不一致性点,向像素点PL(xL,yL)周围搜索一致性点,在搜索到的一致点中,任意选取一个像素点的3D标签为参考3D标签,并计算所述参考3D标签与所述窗口内其他像素的3D标签的夹角,则在所述窗口中,初始化所述低一层图像的第一3D标签满足以下条件:
θmin<θ<θmax
其中,θ'max为计算的最大夹角,θ'min为计算的最小夹角,θmax=θ'max+△θ,θmin=θ'min-△θ,△θ为预设的角度偏移量。
示例性的,对左金字塔的第L-1层图像的任一像素点pL-1(xL-1,yL-1),计算根据得到的左金字塔的第L层的视差图将左金字塔的第L层图像中的像素点pL(xL,yL)对应的视差记为dL(xL,yL),以pL(xL,yL)为中心建立大小为3×3像素的窗口。如果该窗口中的所有像素都是左右一致性点,如图4和图5所示,则计算该窗口中的所有像素对应的视差最大值dL max与视差最小值dL min,将左金字塔第L-1层图像中的像素点pL-1(xL-1,yL-1)的视差搜索范围设定为2dL min-δ≤dL-1(xL-1,yL-1)≤2dL max+δ,δ为余量,优选为1~3,可提高匹配速度。
然后根据得到的左金字塔第L层的视差图对应的3D标签,在该窗口中,选取任一像素的3D标签作为参考标签,计算其它像素的3D标签与参考标签之间的夹角,将最小夹角与最大夹角分别记为θ'min和θ'max,使左金字塔第L-1层的第一3D标签的满足θmin<θ<θmax
如果该窗口中的像素存在左右不一致性点,对于第L层的像素点pL(xL,yL),以该像素点为中心向外逐层搜索左右一致性点,找到由一致性点组成的pL(xL,yL)的最小外部边界,计算最小外部边界上所有一致性点的视差最大值dL max和视差最小值dL min。如图6所示,在第yL行,以PL(xL,yL)为起点,向左搜索直到得到左右一致性点Pl(xL-xl,yL),向右搜索直到得到左右一致性点Pr(xL+xr,yL);在第yL-1行,以Pu(xL,yL-1)为起点,向左搜索直到得到左右一致性点Pul(xL-xul,yL-1),向右搜索直到得到左右一致性点Pur(xL+xur,yL-1);在第yL+1行,以Pd(xL,yL+1)为起点,向左搜索直到得到左右一致性点Pdl(xL-xdl,yL+1),向右搜索直到得到左右一致性点Pdr(xL+xdr,yL+1)。
根据得到的左金字塔第L层的视差图Dlr(x,y),得到上述点Pul,Pur,Pl,Pr,Pdl,Pdr,Pu和Pd所对应的视差中的最大值d'L max与最小值d'L min,将左金字塔第L-1层图像中的像素点PL-1(xL-1,yL-1)的视差搜索范围设定为
2d'L min-δ≤dL-1(xL-1,yL-1)≤2d'L max+δ。
然后,根据得到的左金字塔第L层的视差图对应的3D标签,在像素点Pul,Pur,Pl,Pr,Pdl,Pdr,Pu和Pd中选取任一像素的3D标签作为参考标签,计算其它像素的3D标签与参考标签之间的夹角,将最小夹角与最大夹角分别记为θ'min和θ'max,将夹角的最大值θmax与最小值θmin设定为:
θmax(x,y)=θmax'+△θ,θmin=θmin'-△θ
其中,△θ为给定的角度偏移量;然后对第L-1层图像的像素点(x,y)的初始3D标签进行随机扰动,并计算新的3D标签与第L层的参考3D标签之间的夹角θ,直到θ∈[θminmax]为止,则将当前新的3D标签(第一3D标签)赋值给第L-1层像素点(x,y)。
直到左金字塔的第L-1层图像中所有像素点都处理完毕,得到左金字塔第L-1层图像中所有像素点的视差搜索范围和第一3D标签。同理,得到右金字塔第L-1层图像中所有像素点的视差搜索范围和第一3D标签。
根据左金字塔的L-1层图像的第一3D标签计算左金字塔的L-1层图像的共享标签窗口内的每个像素的第一能量函数,以及根据右金字塔的L-1层图像的第一3D标签计算右金字塔的L-1层图像的共享标签窗口内的每个像素的第一能量函数。
迭代更新第一3D标签得到第二3D标签,根据第二3D标签计算左金字塔的L-1层图像的共享标签窗口内的每个像素的第二能量函数,以及计算右金字塔的L-1层图像的共享标签窗口内的每个像素的第二能量函数,若第二能量函数小于第一能量函数,确定L-1层的每个超像素的3D标签为第二3D标签;否则继续更新3D标签,直到根据更新后的3D标签计算的能量函数小于根据上一次更新的3D标签计算的能量函数。
然后,根据确定的左金字塔第L-1层图像的视差搜索范围和更新后的3D标签,对左金字塔第L-1层图像和右金字塔第L-1层图像进行从左到右的立体匹配,以及根据确定的右金字塔第L-1层图像的视差搜索范围和更新后的3D标签,对右金字塔第L-1层图像和左金字塔第L-1层图像进行从右到左的立体匹配,得到左金字塔第L-1层的视差图及其对应的3D标签和右金字塔第L-1层的视差图及与视差图对应的3D标签。
同理,利用左金字塔第L-1层的视差图及其对应的3D标签确定左金字塔第L-2层图像中所有像素点的视差搜索范围和第一3D标签,利用右金字塔第L-1层的视差图及其对应的3D标签确定右金字塔第L-2层图像中所有像素点的视差搜索范围和第一3D标签,然后更新第L-2层的3D标签,根据更新后的3D标签进行双向立体匹配,得到左金字塔第L-2层的视差图及其对应的3D标签和右金字塔第L-2层的视差图及其对应的3D标签。
循环进行,直到得到得到左金字塔第1层的视差图及其对应的3D标签和右金字塔第1层的视差图及其对应的3D标签。
根据金字塔高一层图像的视差值确定低一层图像中每个像素的视差搜索范围,可以大大减少视差搜素范围,提高运算速度,提高匹配效率。
如图7所示,为LocalExp方法获得的视差图(左)与本实施例方法得到的视差图(右)的对比示意图,可知本实施例的立体匹配使得视差搜索范围明显缩小,计算速度大幅提高,视差不连续区域和遮挡区域的视差计算更加精确。
上述立体匹配方法中,提供了基于超像素作为基本处理单元来计算3D标签的方法,由于超像素的相似纹理、颜色和亮度等特征,因此选择超像素为基本单元窗口可以减少窗口数量;同时提供了由粗到精的金字塔立体匹配策略,根据金字塔高一层图像的视差值确定低一层图像中每个像素的视差搜索范围,大大减少了视差搜素范围;且,提供了分层的3D标签约束,根据金字塔高一层图像的3D标签初始化低一层图像中每个像素的3D标签,将低一层的3D标签的取值确定在一个有效的搜索空间,结果表明在视差不连续区域以及遮挡区域得到较高的匹配精度。
本领域技术人员可以理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
对应于上文实施例所述的立体匹配方法,本实施例提供了一种立体匹配装置。具体参见图8,为本实施例中立体匹配装置的结构示意图。为了便于说明,仅示出了与本实施例相关的部分。
所述立体匹配装置包括:金字塔建立模块110、高层立体匹配模块120、视差搜索范围确定模块130和低层立体匹配模块140。
金字塔建立模块110用于通过双目相机获取左图像和右图像,并对所述左图像构建预设层数的左金字塔,对所述右图像构建所述预设层数的右金字塔。
高层立体匹配模块120用于对所述左金字塔的高一层图像和所述右金字塔的高一层图像进行双向立体匹配,得到所述高一层的左视差图和所述高一层的右视差图。
视差搜索范围确定模块130用于根据所述高一层的左视差图确定所述左金字塔的低一层的每个像素的视差搜索范围,以及根据所述高一层的右视差图确定所述右金字塔的低一层的每个像素的视差搜索范围。
低层立体匹配模块140用于根据所述视差搜索范围,对所述左金字塔的低一层图像和所述右金字塔的低一层图像进行双向立体匹配,得到所述低一层的左视差图和所述低一层的右视差图。
上述立体匹配装置,对左图像构建预设层数的左金字塔,对右图像构建预设层数的右金字塔;对左金字塔的高一层图像和右金字塔的高一层图像进行双向立体匹配得到高一层的左视差图和高一层的右视差图;根据高一层的左视差图确定左金字塔的低一层图像中每个像素的视差搜索范围,以及根据高一层的右视差图确定右金字塔的低一层图像中每个像素的视差搜索范围;根据视差搜索范围对左金字塔的低一层图像和右金字塔的低一层图像双向立体匹配,得到低一层的左视差图和低一层的右视差图,大大减少视差搜素范围,提高了视差计算的收敛速度。
本实施例还提供了一种终端100的示意图。如图9所示,该实施例的终端100包括:处理器150、存储器160以及存储在所述存储器160中并可在所述处理器150上运行的计算机程序161,例如立体匹配方法的程序。
其中,处理器150在执行存储器160上所述计算机程序161时实现上述立体匹配方法实施例中的步骤,例如图1所示的步骤101至104。或者,所述处理器150执行所述计算机程序161时实现上述各装置实施例中各模块/单元的功能,例如图8所示模块110至140的功能。
示例性的,所述计算机程序161可以被分割成一个或多个模块/单元,所述一个或者多个模块/单元被存储在所述存储器160中,并由所述处理器150执行,以完成本发明。所述一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述所述计算机程序161在所述终端100中的执行过程。例如,所述计算机程序161可以被分割成金字塔建立模块110、高层立体匹配模块120、视差搜索范围确定模块130和低层立体匹配模块140,各模块具体功能如下:
金字塔建立模块110用于通过双目相机获取左图像和右图像,并对所述左图像构建预设层数的左金字塔,对所述右图像构建所述预设层数的右金字塔。
高层立体匹配模块120用于对所述左金字塔的高一层图像和所述右金字塔的高一层图像进行双向立体匹配,得到所述高一层的左视差图和所述高一层的右视差图。
视差搜索范围确定模块130用于根据所述高一层的左视差图确定所述左金字塔的低一层的每个像素的视差搜索范围,以及根据所述高一层的右视差图确定所述右金字塔的低一层的每个像素的视差搜索范围。
低层立体匹配模块140用于根据所述视差搜索范围,对所述左金字塔的低一层图像和所述右金字塔的低一层图像进行双向立体匹配,得到所述低一层的左视差图和所述低一层的右视差图。
所述终端100可包括,但不仅限于处理器150、存储器160。本领域技术人员可以理解,图9仅仅是终端100的示例,并不构成对终端100的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述终端100还可以包括输入输出设备、网络接入设备、总线等。
所述处理器150可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
所述存储器160可以是所述终端100的内部存储单元,例如终端100的硬盘或内存。所述存储器160也可以是所述终端100的外部存储设备,例如所述终端100上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。进一步地,所述存储器160还可以既包括所述终端100的内部存储单元也包括外部存储设备。所述存储器160用于存储所述计算机程序以及所述终端100所需的其他程序和数据。所述存储器160还可以用于暂时地存储已经输出或者将要输出的数据。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模型的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括是电载波信号和电信信号。
以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围,均应包含在本发明的保护范围之内。

Claims (9)

1.一种立体匹配方法,其特征在于,包括:
通过双目相机获取左图像和右图像,并对所述左图像构建预设层数的左金字塔,对所述右图像构建所述预设层数的右金字塔;
对所述左金字塔的高一层图像和所述右金字塔的高一层图像进行双向立体匹配,得到所述高一层的左视差图和所述高一层的右视差图;
根据所述高一层的左视差图确定所述左金字塔的低一层图像中每个像素的视差搜索范围,以及根据所述高一层的右视差图确定所述右金字塔的低一层图像中每个像素的视差搜索范围;
根据所述视差搜索范围,对所述左金字塔的低一层图像和所述右金字塔的低一层图像进行双向立体匹配,得到所述低一层的左视差图和所述低一层的右视差图;
其中,所述双向立体匹配包括:对所述左金字塔的对应层图像和所述右金字塔的对应层图像分别进行超像素分割,得到若干个超像素,并为每个所述超像素构造共享标签窗口,以及为每个所述超像素初始化第一3D标签;根据所述第一3D标签,计算所述左金字塔的对应层图像的所述共享标签窗口内的每个像素的第一能量函数,以及计算所述右金字塔的对应层图像的所述共享标签窗口内的每个像素的第一能量函数;迭代更新每个所述超像素的第一3D标签得到第二3D标签,根据所述第二3D标签,计算所述左金字塔的对应层图像的所述共享标签窗口内的每个像素的第二能量函数,以及计算所述右金字塔的对应层图像的所述共享标签窗口内的每个像素的第二能量函数;若所述第二能量函数小于所述第一能量函数,确定每个所述超像素的3D标签为所述第二3D标签;根据所述左金字塔的对应层图像的所有所述第二3D标签和根据所述右金字塔的对应层图像的所有所述第二3D标签进行双向立体匹配,得到所述左金字塔的对应层的左视差图和所述右金字塔的对应层的右视差图。
2.如权利要求1所述的立体匹配方法,其特征在于,金字塔的最高层图像的超像素进行初始化第一3D标签的方法,包括:
随机选取金字塔的最高层图像中超像素Si中的一像素点(x,y),使像素点(x,y)的视差:
d=ax+by+c
满足d∈[Dmin/2L-1,Dmax/2L-1],则确定超像素Si的第一3D标签为f(a,b,c);其中,[Dmin,Dmax]为所述左图像与所述右图像的初始视差搜索范围。
3.如权利要求1所述的立体匹配方法,其特征在于,计算能量函数的方法包括:通过
得到能量函数E(f);其中,Oi为所述共享标签窗口;p为所述共享标签窗口内的像素点;φp(f)为像素点p的数据项;N(p)为像素点p的邻域;ψpq(fp,fq)为像素点p与像素点q间的平滑项;fp为像素点p的3D标签;fq为像素点q的3D标签;λ为平滑系数;Wp为以像素点p为中心,半径为r的矩形窗口;ωpq为平滑项的权重,f为在所述左金字塔的高一层图像的所有超像素中随机选取的任一像素点的3D标签,或为所述右金字塔的高一层图像的所有超像素中随机选取的任一像素点的3D标签;wf(s)为根据所述3D标签将所述左金字塔的高一层图像中像素点s映射到所述右金字塔的高一层图像的像素的坐标;函数ρ(s,wf(s))用于计算所述左金字塔的高一层图像中像素点s和wf(s)之间的相似性;为视差惩罚函数,ε为常数值,τdis为预设截断值。
4.如权利要求1所述的立体匹配方法,其特征在于,更新3D标签的方法包括:
通过
d=ax+by+c
得到当前像素点(x,y)的第一3D标签f(a,b,c)的视差d;
计算
Δd=(dmax-dmin)/2m,m=1,2,...,M
其中,M为迭代次数,[dmin,dmax]为当前像素点的初始视差搜索范围;
更新当前像素点的第一3D标签,得到第二3D标签,并根据所述第二3D标签计算当前像素点的视差d',直到满足
其中,则将所述第二3D标签赋值给当前像素点。
5.如权利要求1所述的立体匹配方法,其特征在于,所述根据所述高一层的左视差图确定所述左金字塔的低一层图像中每个像素的视差搜索范围,以及根据所述高一层的右视差图确定所述右金字塔的低一层图像中每个像素的视差搜索范围,包括:
根据所述高一层的左视差图确定所述左金字塔的低一层图像中每个像素的视差搜索范围,以及根据所述高一层的左视差图的3D标签初始化所述左金字塔的低一层图像的所述第一3D标签;
以及,根据所述高一层的右视差图确定所述右金字塔的低一层图像中每个像素的视差搜索范围,以及根据所述高一层的右视差图的3D标签初始化所述右金字塔的低一层图像的所述第一3D标签。
6.如权利要求5所述的立体匹配方法,其特征在于,根据高一层的视差图确定低一层图像中每个像素的视差搜索范围的方法包括:
以所述高一层的视差图的像素点PL(xL,yL)为中心点建立预设尺寸的窗口,并确定所述窗口中的所有像素是否均为左右一致性点;
若所有像素均为左右一致性点,则所述低一层图像中像素点PL-1(xL-1,yL-1)的视差搜索范围为:
2dLmin-δ≤dL-1(xL-1,yL-1)≤2dLmax
dLmin=min{dL(xL+i,yL+j)|i=-1,0,1,j=-1,0,1}
dLmax=max{dL(xL+i,yL+j)|i=-1,0,1,j=-1,0,1}
其中,dL(xL,yL)为像素点PL(xL,yL)的视差值,δ为第L层与第L-1层之间的余量,dL-1(xL-1,yL-1)为所述低一层图像中像素点PL-1(xL-1,yL-1)的视差值,
若所述窗口中的像素存在左右不一致性点,向像素点PL(xL,yL)周围搜索一致性点,得到视差最小值d'Lmin和视差最大值d'Lmax,则所述低一层图像中像素点PL-1(xL-1,yL-1)的视差搜索范围为:
2d'Lmin-δ≤dL-1(xL-1,yL-1)≤2d'Lmax+δ。
7.如权利要求6所述的立体匹配方法,其特征在于,根据高一层的视差图的3D标签初始化低一层图像的第一3D标签的方法包括:
若所有像素均为左右一致性点,在所述窗口中任意选取一个像素点的3D标签为参考3D标签,并计算所述参考3D标签与所述窗口内其他像素的3D标签的夹角,则在所述窗口中,初始化所述低一层图像的第一3D标签满足以下条件:
θmin<θ<θmax
其中,θ'max为计算的最大夹角,θ'min为计算的最小夹角,θmax=θ'max+Δθ,θmin=θ'min-Δθ,Δθ为预设的角度偏移量;
若所述窗口中的像素存在左右不一致性点,向像素点PL(xL,yL)周围搜索一致性点,在搜索到的一致点中,任意选取一个像素点的3D标签为参考3D标签,并计算所述参考3D标签与所述窗口内其他像素的3D标签的夹角,则在所述窗口中,初始化所述低一层图像的第一3D标签满足以下条件:
θmin<θ<θmax
其中,θ'max为计算的最大夹角,θ'min为计算的最小夹角,θmax=θ'max+Δθ,θmin=θ'min-Δθ,Δθ为预设的角度偏移量。
8.一种立体匹配装置,其特征在于,包括:
金字塔建立模块,用于通过双目相机获取左图像和右图像,并对所述左图像构建预设层数的左金字塔,对所述右图像构建所述预设层数的右金字塔;
高层立体匹配模块,用于对所述左金字塔的高一层图像和所述右金字塔的高一层图像进行双向立体匹配,得到所述高一层的左视差图和所述高一层的右视差图;
视差搜索范围确定模块,用于根据所述高一层的左视差图确定所述左金字塔的低一层的每个像素的视差搜索范围,以及根据所述高一层的右视差图确定所述右金字塔的低一层的每个像素的视差搜索范围;
低层立体匹配模块,用于根据所述视差搜索范围,对所述左金字塔的低一层图像和所述右金字塔的低一层图像进行双向立体匹配,得到所述低一层的左视差图和所述低一层的右视差图;
其中,所述双向立体匹配包括:对所述左金字塔的对应层图像和所述右金字塔的对应层图像分别进行超像素分割,得到若干个超像素,并为每个所述超像素构造共享标签窗口,以及为每个所述超像素初始化第一3D标签;根据所述第一3D标签,计算所述左金字塔的对应层图像的所述共享标签窗口内的每个像素的第一能量函数,以及计算所述右金字塔的对应层图像的所述共享标签窗口内的每个像素的第一能量函数;迭代更新每个所述超像素的第一3D标签得到第二3D标签,根据所述第二3D标签,计算所述左金字塔的对应层图像的所述共享标签窗口内的每个像素的第二能量函数,以及计算所述右金字塔的对应层图像的所述共享标签窗口内的每个像素的第二能量函数;若所述第二能量函数小于所述第一能量函数,确定每个所述超像素的3D标签为所述第二3D标签;根据所述左金字塔的对应层图像的所有所述第二3D标签和根据所述右金字塔的对应层图像的所有所述第二3D标签进行双向立体匹配,得到所述左金字塔的对应层的左视差图和所述右金字塔的对应层的右视差图。
9.一种终端,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至7任一项所述的立体匹配方法的步骤。
CN202010753484.2A 2020-07-30 2020-07-30 立体匹配方法、装置、终端和存储介质 Active CN111881985B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010753484.2A CN111881985B (zh) 2020-07-30 2020-07-30 立体匹配方法、装置、终端和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010753484.2A CN111881985B (zh) 2020-07-30 2020-07-30 立体匹配方法、装置、终端和存储介质

Publications (2)

Publication Number Publication Date
CN111881985A CN111881985A (zh) 2020-11-03
CN111881985B true CN111881985B (zh) 2024-04-30

Family

ID=73204664

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010753484.2A Active CN111881985B (zh) 2020-07-30 2020-07-30 立体匹配方法、装置、终端和存储介质

Country Status (1)

Country Link
CN (1) CN111881985B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113034666B (zh) * 2021-02-01 2023-09-12 中国计量大学 一种基于金字塔视差优化代价计算的立体匹配方法
CN112802101B (zh) * 2021-02-01 2023-04-07 上海交通大学 一种基于多维金字塔的分层模板匹配方法
CN114758075B (zh) * 2022-04-22 2023-03-24 如你所视(北京)科技有限公司 用于生成三维标签的方法、装置和存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106709948A (zh) * 2016-12-21 2017-05-24 浙江大学 一种基于超像素分割的快速双目立体匹配方法
CN107016698A (zh) * 2017-03-20 2017-08-04 深圳格兰泰克汽车电子有限公司 基于斜平面平滑的双目立体匹配方法及装置
CN108876861A (zh) * 2018-05-25 2018-11-23 中国空间技术研究院 一种地外天体巡视器的立体匹配方法
CN110148181A (zh) * 2019-04-25 2019-08-20 青岛康特网络科技有限公司 一种通用双目立体匹配方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8385630B2 (en) * 2010-01-05 2013-02-26 Sri International System and method of processing stereo images

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106709948A (zh) * 2016-12-21 2017-05-24 浙江大学 一种基于超像素分割的快速双目立体匹配方法
CN107016698A (zh) * 2017-03-20 2017-08-04 深圳格兰泰克汽车电子有限公司 基于斜平面平滑的双目立体匹配方法及装置
CN108876861A (zh) * 2018-05-25 2018-11-23 中国空间技术研究院 一种地外天体巡视器的立体匹配方法
CN110148181A (zh) * 2019-04-25 2019-08-20 青岛康特网络科技有限公司 一种通用双目立体匹配方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
金字塔双层动态规划立体匹配算法;赵杰;于舒春;蔡鹤皋;;控制与决策(01);第69-77页 *

Also Published As

Publication number Publication date
CN111881985A (zh) 2020-11-03

Similar Documents

Publication Publication Date Title
CN111881985B (zh) 立体匹配方法、装置、终端和存储介质
CN110853075B (zh) 一种基于稠密点云与合成视图的视觉跟踪定位方法
Johnson et al. Registration and integration of textured 3D data
CN108010081B (zh) 一种基于Census变换和局部图优化的RGB-D视觉里程计方法
CN106709947A (zh) 一种基于rgbd相机的三维人体快速建模系统
CN108776989B (zh) 基于稀疏slam框架的低纹理平面场景重建方法
EP3367334B1 (en) Depth estimation method and depth estimation apparatus of multi-view images
US20100054579A1 (en) Three-dimensional surface generation method
US9147279B1 (en) Systems and methods for merging textures
CN111462030A (zh) 多图像融合的立体布景视觉新角度构建绘制方法
CN113077552A (zh) 基于无人机影像的dsm生成方法和装置
CN110738730A (zh) 点云匹配方法、装置、计算机设备和存储介质
Jang et al. Egocentric scene reconstruction from an omnidirectional video
Hung et al. Multipass hierarchical stereo matching for generation of digital terrain models from aerial images
CN116363290A (zh) 一种用于大规模场景三维重建的纹理贴图生成方法
CN115631317B (zh) 隧道衬砌正射影像生成方法及装置、存储介质、终端
CN111899326A (zh) 一种基于gpu并行加速的三维重建方法
CN116912417A (zh) 基于人脸三维重建的纹理贴图方法、装置、设备和存储介质
CN116485697A (zh) 基于图像块匹配和视差优化的立体匹配方法
CN116704112A (zh) 一种用于对象重建的3d扫描系统
CN113850293B (zh) 基于多源数据和方向先验联合优化的定位方法
Zhang et al. Multiresolution patch-based dense reconstruction integrating multiview images and laser point cloud
CN113487741B (zh) 稠密三维地图更新方法及装置
CN112991525B (zh) 像方和物方混合匹配基元的数字表面模型生成方法
Zhang et al. Intermediate cubic-panorama synthesis based on triangular re-projection

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant