基于高精度视差细化的立体匹配方法、系统、设备及介质

文档序号:32798811发布日期:2023-01-03 23:05阅读:35来源:国知局
基于高精度视差细化的立体匹配方法、系统、设备及介质

1.本发明涉及一种基于高精度视差细化的立体匹配方法、系统、设备及介质,属于图像处理技术领域。


背景技术:

2.立体匹配方法分为两大步骤:视差计算与视差细化,前者作为立体匹配的基础,一直备受关注。依据视差计算的方法立体匹配分为全局方法与局部方法。全局立体匹配的研究致力于搭建更好能量函数,该方法匹配效果好,但会消耗大量时间。局部立体匹配是基于极线约束进行的,单次匹配只在同一极线上搜索,很大程度地提高了计算效率,是如今实时立体匹配的首选。
3.视差计算中不论是全局方法还是局部方法,都已受到大量的研究,该部分相对更加成熟。相比之下,视差细化作为立体匹配后处理部分发展地相对缓慢。视差图后处理优化能大幅改善初始视差图的质量,提高立体匹配的上限。由于双目相机拍摄同一目标时必定存在相机间的遮挡问题,遮挡部分缺乏信息,需要利用视差细化中的遮挡恢复对其修补。再则,视差不连续区误匹配高的问题一直也是立体匹配中的瓶颈,应进一步地在视差细化中对其进行优化。可以说,没有视差细化就无法实现高精度的立体匹配。近年来,已有部分研究者致力于开发优秀的视差细化方法,但总体来讲,遮挡恢复方法依然难以令人满意。体现在计算复杂度与恢复能力的正比系数过高,使得优秀的遮挡恢复方法总是带来大量的计算时间。此外,由于视差分层技术的局限,几乎没有研究者在视差细化阶段直接对视差边缘优化,而是选择向视差计算阶段投入原始图像的梯度信息用于保护边缘。此类用次级属性保护边缘的方法依然容易在视差边缘处产生高误匹配率。
4.综上所述,双目立体匹配仍存在视差细化部分实效性不够高的问题,特别是体现在遮挡区与视差不连续区依然存在高误匹配率,这是高精度立体匹配必须克服的难点。


技术实现要素:

5.有鉴于此,本发明提供了一种基于高精度视差细化的立体匹配方法、系统、计算机设备及存储介质,其引入纹理分割改进视差计算,并在视差细化阶段计算适应度,完成遮挡恢复,以及利用基于视差图的二次引导滤波矫正视差不连续区,从而在尽可能不增加计算复杂度的前提下,有效提高视差细化的能力。
6.本发明的第一个目的在于提供一种基于高精度视差细化的立体匹配方法。
7.本发明的第二个目的在于提供一种基于高精度视差细化的立体匹配系统。
8.本发明的第三个目的在于提供一种计算机设备。
9.本发明的第四个目的在于提供一种存储介质。
10.本发明的第一个目的可以通过采取如下技术方案达到:
11.一种基于高精度视差细化的立体匹配方法,所述方法包括:
12.获取极线矫正后的双目图像,所述双目图像包括第一图像和第二图像;
13.根据纹理分割,将双目图像划分为多个纹理区域;
14.在多个纹理区域内,以每个像素点为中心建立第一自适应窗口,进而计算第一图像的代价集合和第二图像的代价集合;
15.根据第一图像的代价集合和第二图像的代价集合,分别得到第一初始视差图和第二初始视差图;
16.基于第一初始视差图和第二初始视差图,根据一致性检测、无效点分类以及基于适应度的视差重建,对第三初始视差图进行遮挡恢复,所述第三初始视差图为第一初始视差图和第二初始视差图的其中之一;
17.对遮挡恢复后的第三初始视差图进行边缘矫正,得到最终视差图。
18.进一步的,所述纹理区域包括高纹理区、第二重复纹理区和弱纹理区的其中之一。
19.进一步的,所述根据纹理分割,将双目图像划分为多个纹理区域,具体包括:
20.在双目图像内,以每个像素点为中心建立固定窗口;
21.计算固定窗口内的颜色方差;
22.根据所有固定窗口内的颜色方差和双边滤波,对双目图像进行一次分割,得到高纹理区、弱纹理区和第一重复纹理区;
23.对第一重复纹理区进行二次分割,得到第二重复纹理区。
24.进一步的,所述在多个纹理区域内,以每个像素点为中心建立第一自适应窗口,进而计算第一图像的代价集合和第二图像的代价集合,具体包括:
25.对高纹理区、第二重复纹理区和弱纹理区的像素点使用依次增大的窗口尺寸;
26.在视差搜索范围内,将第一图像中的任一窗口与第二图像中的所有窗口进行代价计算,进而得到第一图像的代价集合;
27.所述任一窗口内的中心像素点与所述所有窗口内的中心像素点在同一极线上;
28.其中,代价通过sad代价计算、census代价计算和梯度代价计算计算而得;
29.同理,得到第二图像的代价集合。
30.进一步的,所述基于第一初始视差图和第二初始视差图,根据一致性检测、无效点分类以及基于适应度的视差重建,对第三初始视差图进行遮挡恢复,具体包括:
31.利用第一初始视差图和第二初始视差图完成一致性检测,进而得到多个无效点,所述无效点包括遮挡点和误匹配点;
32.根据无效点的位置特征,对无效点进行分类;
33.根据分类好的无效点,以无效点为中心建立第二自适应窗口,所述第二自适应窗口的长度等于无效点左右最近有效点间距的两倍,所述第二自适应窗口的宽度等于无效点上下最近有效点间距的两倍;
34.对第二自适应窗口内的有效点进行计算,得到适应度;
35.根据最大适应度的有效点,在第三初始视差图内对无效点进行遮挡恢复。
36.进一步的,所述利用第一初始视差图和第二初始视差图完成一致性检测,如下式:
37.d
l
(i,j)-dr[i,j-d
l
(i,j)]≤d
[0038]
其中,d
l
(i,j)表示左点视差,dr(i,j)表示右点视差,d表示判断是否通过一致检测的阈值;
[0039]
所述根据无效点的位置特征,对无效点进行分类,如下式:
[0040][0041]
其中,0表示最左侧点,1表示最右侧点,2表示中心点,3表示边缘左侧点,4表示边缘右侧点;无效点向左获取连续的五个有效点,第二、三、四个有效点的视差平均值为无效点向右获取连续的五个有效点,第二、三、四个有效点的视差平均值为δd表示判断视差阶跃的阈值;
[0042]
所述对第二自适应窗口内的有效点进行计算,得到适应度,如下式:
[0043][0044]
其中,δi(x,y)表示颜色差,δl(x,y)表示距离差,d(x,y)表示所述有效点的视差值,δr、δs、δd分别表示颜色差、距离差、所述有效点的视差值的比例因子;λr、λs、λd在最左侧区中为:1、1、0;λr、λs、λd在最右侧区中为:0、1、1;λr、λs、λd在中心区中为:1、0、0;λr、λs、λd在边缘左侧区中为:1、1、1;λr、λs、λd在边缘右侧区中为:1、0、1。
[0045]
进一步的,所述对遮挡恢复后的第三初始视差图进行边缘矫正,得到最终视差图,具体包括:
[0046]
对遮挡恢复后的第三初始视差图的原图进行颜色分割,并将颜色分割后的原图作为引导图;
[0047]
基于引导图和遮挡恢复后的第三初始视差图,根据引导滤波公式,生成第一伪视差图,所述引导滤波公式包括惩罚函数ε(x,y),此时ε(x,y)=p,p为常数;
[0048]
基于第一伪视差图,根据引导滤波公式,生成第二伪视差图,此时为第一伪视差图中视差边缘的点赋予ε(x,y)=0,其他区域赋予ε(x,y)=1;
[0049]
根据自适应图像增强函数,对第二伪视差图进行增强,得到第三伪视差图;
[0050]
利用第三伪视差图矫正遮挡恢复后的第三初始视差图的边缘,得到最终视差图。
[0051]
本发明的第二个目的可以通过采取如下技术方案达到:
[0052]
一种基于高精度视差细化的立体匹配系统,所述系统包括:
[0053]
获取单元,用于获取极线矫正后的双目图像,所述双目图像包括第一图像和第二图像;
[0054]
纹理分割单元,用于根据纹理分割,将双目图像划分为多个纹理区域;
[0055]
代价计算单元,用于在多个纹理区域内,以每个像素点为中心建立第一自适应窗口,进而计算第一图像的代价集合和第二图像的代价集合;
[0056]
代价聚合与视差计算单元,用于根据第一图像的代价集合和第二图像的代价集合,分别得到第一初始视差图和第二初始视差图;
[0057]
遮挡恢复单元,用于基于第一初始视差图和第二初始视差图,根据一致性检测、无效点分类以及基于适应度的视差重建,对第三初始视差图进行遮挡恢复,所述第三初始视差图为第一初始视差图和第二初始视差图的其中之一;
[0058]
边缘矫正单元,用于对遮挡恢复后的第三初始视差图进行边缘矫正,得到最终视差图。
[0059]
本发明的第三个目的可以通过采取如下技术方案达到:
[0060]
一种计算机设备,包括处理器以及用于存储处理器可执行程序的存储器,所述处理器执行存储器存储的程序时,实现上述的立体匹配方法。
[0061]
本发明的第四个目的可以通过采取如下技术方案达到:
[0062]
一种存储介质,存储有程序,所述程序被处理器执行时,实现上述的立体匹配方法。
[0063]
本发明相对于现有技术具有如下的有益效果:
[0064]
1、初始视差计算更加快速,初始视差图的误匹配率更低:本发明在图像预处理阶段引入了纹理分割,使得代价计算阶段的窗口自适应化,避免了以大窗口的方式计算每一个像素点,从而在加快计算速度的同时,避免了一些固定窗口计算带来的错误;
[0065]
2、遮挡恢复更加精准,计算复杂度更低:本发明提出的遮挡恢复方式相较于现有技术,利用了所有与恢复视差相关的信息,因此遮挡恢复更加准确;此外,本发明把这些信息融合到一个公式中,并利用无效点分类使该公式自适应地改变,由此避免了多步视差细化带来的许多填充公式,降低了计算复杂度,且易于并行;
[0066]
3、直接准确地矫正视差边缘:本发明提出的边缘保护方法不同于现有技术利用弥补梯度算子保护边缘的方法,而是直接对视差边缘进行准确矫正,这种方法不仅更加有效,而且时间复杂度更低;
[0067]
4、本发明实施例中的代价聚合阶段改进了迭代次数的问题,避免了高纹理区多次迭代引入更多误差,加强了弱纹理区和重复纹理区的迭代,使得它们获得更稳定的信息。
附图说明
[0068]
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图示出的结构获得其他的附图。
[0069]
图1为本发明实施例1的基于高精度视差细化的立体匹配方法的具体流程图。
[0070]
图2为本发明实施例1的基于高精度视差细化的立体匹配方法的简要流程图。
[0071]
图3(a)~图6(a)为本发明实施例1获取自middbury的标准数据集的多张室内左图像;
[0072]
图3(b)~图6(b)为本发明实施例1获取自middbury的标准数据集的多张室内右图像;
[0073]
图7(a)~图10(a)为本发明实施例1自摄的多张室内左图像;
[0074]
图7(b)~图10(b)为本发明实施例1自摄的多张室内右图像;
[0075]
图11为本发明实施例1的遮挡区恢复的流程图。
[0076]
图12为本发明实施例1的视差不连续区矫正的流程图。
[0077]
图13为本发明实施例2的基于高精度视差细化的立体匹配系统的结构框图。
[0078]
图14为本发明实施例3的计算机设备的结构框图。
具体实施方式
[0079]
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整的描述,显然,所描述的实施例是本发明的一部分实施例,而不是全部的实施例,基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0080]
实施例1:
[0081]
现如今,双目视觉技术已经成为计算机视觉中的重要组成部分,其中局部立体匹配已逐渐成为主流。局部立体匹配因其匹配空间只在一条极线上,相比于全局立体匹配更为快速,更易满足实时性的需求;但是局部立体匹配的精度相对更低,特别是有着遮挡区域难以恢复和视差边缘难以拟合的问题。因此解决这两个问题是实现高精度快速立体匹配必须克服的困难。
[0082]
针对上述的两个问题,如图1和图2所示,本实施例提供了一种基于高精度视差细化的立体匹配方法,该方法利用双边滤波和图像方差特性分割图像纹理,从而使得代价计算阶段的窗口自适应化;通过组合sad、改进census和梯度累积代价数组,随后完成改进迭代问题的代价聚合;视差细化部分中,对遮挡区的恢复是利用适应度算式完成的,还开发了新的二次引导滤波与图像增强实现边缘矫正。
[0083]
具体地,该方法包括以下步骤:
[0084]
s101、获取极线矫正后的双目图像,所述双目图像包括第一图像和第二图像。
[0085]
步骤s101之前,包括如下步骤:
[0086]
s1011、通过平行双目视觉相机拍摄双目图像。
[0087]
本实施例中,双目图像为室内双目图像,参考图3(a)~图3(b)、图4(a)~图4(b)、图5(a)~图5(b)、图6(a)~图6(b)、图7(a)~图7(b)、图8(a)~图8(b)、图9(a)~图9(b)或图10(a)~图10(b);其中:a表示左图像,b表示右图像;图3~图6获取自middbury的标准数据集,图7~图10为自摄的室内双目图像。
[0088]
s1012、对拍摄得到的双目图像进行极线矫正,得到极线矫正后的双目图像,其中极线矫正后的双目图像包括左图像和右图像,左图像为第一图像,右图像为第二图像。
[0089]
另一实施例中,右图像为第一图像,左图像为第二图像。
[0090]
需要说明的是,步骤s101获取得到的左图像和右图像必须是平行双目视觉相机拍摄的图像,并且在相关软件上经过严格的极线矫正,否则,输出的视差图将出现大量的匹配错误。
[0091]
s102、根据纹理分割,将双目图像划分为多个纹理区域。
[0092]
本实施例中的纹理区域包括高纹理区、第二重复纹理区和弱纹理区的其中之一。
[0093]
步骤s1021~步骤s1023的思路,具体为:在对双边滤波有一定的效果即可分辨出纹理变化明显的区域逐点、逐窗口计算左图像、右图像、左滤波后图、右滤波后图的方差,再逐点、逐窗口计算左图像与左滤波后图的方差之差,右图像与右滤波后图的方差之差,生成了左右两个承载方差之差的矩阵;最终使用otsu阈值分割法二值化分割两个上述矩阵,分割出的高数值部分归为高纹理,低数值部分归为弱纹理,从而得到高纹理区、第一重复纹理区和弱纹理区。
[0094]
s1021、在双目图像内,以每个像素点为中心建立固定窗口。
[0095]
步骤s1021,具体为:在左图像和右图像中遍历每一个像素点,并以像素点为中心建立5
×
5的固定窗口。
[0096]
需要说明的是,固定窗口过大并不会带来更大的判断效益,反而会引入更大的计算复杂度。
[0097]
s1022、计算固定窗口内的颜色方差。
[0098]
计算固定窗口内的灰度方差。由于颜色方差可以反映固定窗口内灰度的离散程度。因此,在大多数情况下纹理丰富的固定窗口内将产生较大的方差;相反,纹理缺乏的固定窗口内将产生较小的方差。
[0099]
本实施例中,计算固定窗口内的颜色方差,如下式:
[0100][0101]
其中,p表示中心像素点,q表示其固定窗口内的领域像素点,w表示5
×
5的固定窗口,i指引颜色空间,s2(i,j)表示颜色方差,即图像颜色方差,ii(q)表示某一颜色空间下领域像素的颜色值,表示固定窗口内的平均颜色值,n表示固定窗口内的像素点总数。
[0102]
s1023、根据所有固定窗口内的颜色方差和双边滤波,对双目图像进行一次分割,得到高纹理区、弱纹理区和第一重复纹理区。
[0103]
为避免一些预期之外的情况带来判断误差,步骤s1023利用双边滤波进一步提高分割纹理的精度。对于输入的某张图像,如左图像或右图像,由于平滑作用,双边滤波前后在高纹理区会产生较大的方差之差,弱纹理区则反之。
[0104]
本实施例中,将分割后的高纹理区设置为黑色,将分割后的弱纹理区设置白色,如下式:
[0105][0106]
其中,a表示间断高纹理区和弱纹理区的阈值,由otsu阈值分割法产生,255表示白色的弱纹理区,0表示黑色的高纹理区,s
ref
(i,j)和s
ref
(i,j)表示参考图像和滤波后图像分别以(i,j)这个点为中心构建窗口内的方差值。
[0107]
实际应用中,可以手动调节双边滤波的参数以及间断高纹理区和弱纹理区的阈值。
[0108]
需要说明的是,第一重复纹理指在同一极线上多次出现相同颜色特征的分布,这对立体匹配而言也是极易产生误匹配的区域,它存在于高纹理区,需要继续寻找第二重复纹理(进一步分割,即二次分割,参考步骤s1024),具体为:循环遍历每一个高纹理点,并在其极线上搜索点,每建立一对点,都会分别为它们创建一对固定大小的窗口,一对窗口内的灰度总值之差反映了它们之间的相似程度,在此固定窗口的大小为3
×
3;且在标记了一对第二重复纹理点之后,该两点都不会再参与第二重复纹理的判断,从而避免多次重复运算引入更大的计算复杂度。
[0109]
需要说明的是,双边滤波是一种保边滤波器,利用图像中像素点间的空间距离与颜色差异做出综合判断,达到平滑图像却不影响边缘的效果。
[0110]
s1024、对第一重复纹理区进行二次分割,得到第二重复纹理区。
[0111]
步骤s1024,如下式:
[0112][0113]
f(i,j)=f(i

,j

)=125,ifδi(i,j)<b
[0114]
其中,ii(q)表示高纹理点的某一颜色值,i’i
(q

)表示视差搜索极线上点的某一颜色值,δi(i,j)表示两点窗口内灰度总值的差距,代表两点之间的相似程度,b表示判断第二重复纹理的阈值,若低于该阈值,则该点为第二重复纹理点并设置为灰色,数值为125。
[0115]
需要说明的是,高纹理点指的是高纹理区中的像素点,弱纹理点和第二重复纹理点同理。
[0116]
至此生成的纹理区域包括黑色区域、白色区域、灰色区域的其中之一,黑色区域对应高纹理区、白色区域对应弱纹理区、灰色区域对应第二重复纹理区,其中,由于逐点计算特性,一般会产生一些预想之外的小连通区域,因此在纹理区域中智能寻找该区域并将小连通区域剔除,之后利用中值滤波做简单的处理。
[0117]
s103、在多个纹理区域内,以每个像素点为中心建立第一自适应窗口,进而计算第一图像的代价集合和第二图像的代价集合。
[0118]
s1031、对高纹理区、第二重复纹理区和弱纹理区的像素点使用依次增大的窗口尺寸。
[0119]
步骤s1031,具体为:令第一图像为参考图像、第二图像为匹配图像,遍历第一图像和第二图像的每个像素点,并以像素点为中心建立第一自适应窗口,其中第一自适应窗口包括高纹理点的窗口、弱纹理点的窗口和第二重复纹理点的窗口;令高纹理点的窗口尺寸为5
×
5、弱纹理点的窗口尺寸为9
×
9、第二重复纹理点的窗口尺寸为7
×
7。
[0120]
s1032、在视差搜索范围内,将第一图像中的任一窗口与第二图像中的所有窗口进行代价计算,进而得到第一图像的代价集合,所述任一窗口内的中心像素点与所述所有窗口内的中心像素点在同一极线上。
[0121]
需要说明的是,在视差搜索范围d
min
到d
max
内,获取每个像素点共d
max-d
min
个代价,代价代表两点间的相似程度;视差搜索范围由输入图像的分辨率和相机距离目标物的远近决定,可在代价计算之前进行手动修改。
[0122]
其中,本实施例沿用了组合代价计算的方法,将ad-census法改进为sad+改进census+梯度因子,即sad代价计算、census代价计算和梯度代价计算,并利用纹理区域实现代价计算阶段的窗口自适应化;三种代价计算,具体如下:
[0123]
a、sad代价计算,如下式:
[0124][0125]
其中,q表示左窗口内的点,d表示视差搜索值,i
l
与ir表示左右图像中的灰度值,w表示计算窗口。
[0126]
值得注意的是,使用sad代价计算替换ad代价计算,ad是左图像单个像素点与其右图像对应像素点之间在r、g、b空间上颜色差值的平均,由于单个像素点考虑的颜色信息不够全面,因此使用sad替换ad;sad,具体为:左点与右点构建相同大小的窗口,计算两个窗口
间每个像素点对的灰度绝对差值,再对所有差值求和;sad易于拟合处于同一视差平面且纹理丰富的区域,不易于拟合边缘。
[0127]
b、census代价计算。
[0128]
census的核心思想是通过比对大小来取代了具体的灰度运算。传统census是将窗口内的领域像素与中心像素比较灰度值大小,使高于中心像素灰度值的位置置为1,反之置为0,窗口内形成一个二进制字符串;求取左右点分别对应的二进制字符串,字符串间通过异或得到汉明距离;census使得立体匹配算法拥有较好的抗光照干扰能力,但是窗口内单个的二进制数往往表达信息不够,即它的抗噪能力很强,但是获取图像信息的能力较弱;本实施例延续了规定阈值改进census的思路,使得比中心灰度足够小的位置置为00,更大的灰度依次置为01、10、11,计算公式如下:
[0129][0130]
其中,census
l
与censusr分别表示左、右窗口计算出的二进制字符串。
[0131]
c、梯度代价计算
[0132]
引入的梯度因子同样依赖于窗口执行,且仅仅将sad中的灰度差值改为梯度差值,因此可在视差计算阶段投入梯度信息,益于视差不连续区的初次拟合;梯度因子通过x方向正向梯度与y方向正向梯度计算而来,如下式:
[0133][0134]
其中,分别表示左图像在x、y方向的梯度,分别表示右图像在x、y方向的梯度。
[0135]
进一步地,census代价计算、sad代价计算和梯度代价计算的归一化函数,如下式:
[0136]
c(p,d)=ρ(c
cen
(p,d),λ
cen
)+ρ(c
sad
(p,d),λ
sad
)+ρ(c
gra
(p,d),λ
gra
)
[0137]
其中,c、c
cen
、c
sad
、c
gra
分别表示最终代价、改进census代价、sad代价和梯度代价,ρ(c,λ)来自ad-census归一化函数,λ表示控制代价大小的比例因子;组合代价计算中,为三种公式分配的比例因子λ
cen
、λ
sad
和λ
gra
可任意调节。
[0138]
最终,代价计算的结果是d
max-d
min
个矩阵(代价集合),每个矩阵包括一个视差搜索距离下产生的左图像中所有点的代价;同理,得到第二图像的代价集合。
[0139]
s104、根据第一图像的代价集合和第二图像的代价集合,分别得到第一初始视差图和第二初始视差图。
[0140]
s1041、依次聚合步骤s103获得的多个矩阵中的代价,具体为:首先确定一个中心点,由该点向左侧和右侧伸展水平臂长,伸展最大不超过10个像素点,若伸展过程有梯度阶跃较大的情况,则停止该方向的伸展;随后对水平臂长上的每个像素点以相同方式在垂直方向上伸展,最终构建出该中心点的十字交叉域,中心像素的代价聚合,如下式:
[0141][0142]
其中,ω表示位于第i行j列像素点的十字交叉域,q表示其中的某个像素点,n表示ω内的像素点总数。
[0143]
值得注意的是,代价聚合是优化初始视差图的关键,可大幅度改善初始代价的质量。同样在该部分延续了ad-census中改进的十字交叉域代价聚合,规定最长臂展前提下,
以灰度梯度作为截断臂长伸长的标准。其中,为了获得稳定的结果,往往以先构建水平臂再构建垂直臂的方法完成第一次聚合,随后通过先构建垂直臂再构建水平臂完成第二次聚合。总共完成四次聚合,第三次聚合与第一次相同,第四次与第二次相同,由此进一步减小误差。
[0144]
s1042、在第一次聚合以后,更改臂长伸展顺序,对弱纹理区和第二重复纹理区再聚合一次,随后再对弱纹理区聚合两次。
[0145]
在聚合以后,高纹理区的代价通常比第二重复纹理的代价和弱纹理区的代价低很多,但是每个点的多个代价处在同一个量级上,因此不用进行代价的归一化处理。
[0146]
s1043、遍历代价矩阵,利用胜者为王(winner-take-all,wta)方法寻找每个点含有的所有代价中最小代价即其对应的视差值。
[0147]
本实施例中,wta公式,如下式:
[0148][0149]
其中,ci(i,j)表示一个像素点含有的所有代价。
[0150]
s1044、选取最小代价前后的代价拟合一元二次曲线,随后利用导数等于0对应曲线极值点的数学原理找到浮点数最优视差值。
[0151]
s1045、将每个最优视差值添加到左图像和右图像相对应的像素点处,生成第一初始视差图和第二初始视差图。
[0152]
s105、基于第一初始视差图和第二初始视差图,根据一致性检测、无效点分类以及基于适应度的视差重建,对第三初始视差图进行遮挡恢复。
[0153]
如图11所示,步骤s105,具体包括:
[0154]
s1051、利用第一初始视差图和第二初始视差图完成一致性检测,进而得到多个无效点,所述无效点包括遮挡点和误匹配点。
[0155]
进一步地,利用第一初始视差图和第二初始视差图完成一致性检测,如下式:
[0156]dl
(i,j)-dr[i,j-d
l
(i,j)]≤d
[0157]
其中,d
l
(i,j)表示左点视差,dr(i,j)表示右点视差,d表示判断是否通过一致检测的阈值。
[0158]
本实施例中,将d设置为1,未通过的像素点则为无效点并置0,通过的像素点则为有效点并置255。
[0159]
s1052、根据无效点的位置特征,对无效点进行分类。
[0160]
进一步地,根据无效点的位置特征,对无效点进行分类,如下式:
[0161][0162]
其中,0表示最左侧点,1表示最右侧点,2表示中心点,3表示边缘左侧点,4表示边缘右侧点;无效点向左获取连续的五个有效点,第二、三、四个有效点的视差平均值为无
效点向右获取连续的五个有效点,第二、三、四个有效点的视差平均值为δd表示判断视差阶跃的阈值。
[0163]
本实施例中,将δd设置为1。
[0164]
s1053、根据分类好的无效点,以无效点为中心建立第二自适应窗口,所述第二自适应窗口的长度等于无效点左右最近有效点间距的两倍,所述第二自适应窗口的宽度等于无效点上下最近有效点间距的两倍。
[0165]
步骤s1053的目的在于:保证以无效点为中心建立的第二自适应窗口内含有足够多其周边的有效点。
[0166]
s1054、对第二自适应窗口内的有效点进行计算,得到适应度。
[0167]
适应度是为表示该有效点是否适合于填充无效点的视差,它是由有效点与无效点在原图上的颜色差值,欧拉距离以及有效点的视差值所决定的,由于三种因素涵盖了所有与视差重建相关的信息,基于适应度的视差重建将显得更加准确。
[0168]
进一步地,对第二自适应窗口内的有效点进行计算,得到适应度,如下式:
[0169][0170]
其中,δi(x,y)表示颜色差,δl(x,y)表示距离差,d(x,y)表示所述有效点的视差值,δr、δs、δd分别表示颜色差、距离差、所述有效点的视差值的比例因子,防止某个值过小或过大。
[0171]
为进一步降低计算复杂度,三个参数将只以二进制数表示,即:λr、λs、λd在最左侧区中为:1、1、0;λr、λs、λd在最右侧区中为:0、1、1;λr、λs、λd在中心区中为:1、0、0;λr、λs、λd在边缘左侧区中为:1、1、1;λr、λs、λd在边缘右侧区中为:1、0、1。
[0172]
值得注意的是,在步骤s105中,首先是进行传统的一致性检测,获取第一初始视差图和第二初始视差图中不匹配的点,将它们置0,其余置255;其中,置0的点分为遮挡点和误匹配点,但本实施例并不致力于区分开遮挡点与误匹配点,这是因为准确地分开二者容易引入大量的计算量,且误分类的点一定会被错误填充,没有容错率。因此,本实施例以位置特征被分类为分散在五个区域的点,为每个无效点创建第二自适应窗口,并计算适应度,适应度最高的点用于重建中心无效点视差,此部分已阐述。遮挡恢复的具体流程如图11所示,虚线框中的内容是每个无效点都会经过的步骤,这种恢复遮挡和弥补误匹配的方法,首先分类速度更快,依据位置分类也更准,且重建视差时适应度的公式总会为填充提供保底。例如,颜色出现误差时,依然会填充距离更近,视差更小的有效点,而视差过小的有效点也会考虑充分考虑其颜色和距离决定是否用于填充。
[0173]
s1055、根据最大适应度的有效点,在第三初始视差图内对无效点进行遮挡恢复。
[0174]
本实施例中,第三初始视差图为第一初始视差图和第二初始视差图的其中之一。
[0175]
s106、对遮挡恢复后的第三初始视差图进行边缘矫正,得到最终视差图。
[0176]
如图12所示,步骤s106,具体包括:
[0177]
s1061、对遮挡恢复后的第三初始视差图的原图进行颜色分割,并将颜色分割后的原图作为引导图。
[0178]
步骤s1061中,采用mean-shift算法对遮挡恢复后的第三初始视差图的原图进行颜色分割。
[0179]
s1062、基于引导图和遮挡恢复后的第三初始视差图,根据引导滤波公式,生成第一伪视差图,所述引导滤波公式包括惩罚函数ε(x,y),此时ε(x,y)=p,p为常数。
[0180]
本实施例中,引导滤波公式,如下式:
[0181][0182][0183][0184]
其中,q表示输出图像,i表示引导图像,a与b表示线性公式中的参数,分别控制边缘保护能力和平滑图像能力,|ω|表示计算窗口内的像素总个数,pi与是输入图像像素点灰度值及其窗口内灰度均值,μk和分别表示引导图像像素点窗口内的灰度均值和灰度方差。
[0185]
需要说明的是,关键在于值在0-1间惩罚函数ε(x,y),它的值越大图像平滑越明显,它的值越小边缘将会越突出。
[0186]
s1063、基于第一伪视差图,根据引导滤波公式,生成第二伪视差图,此时为第一伪视差图中视差边缘的点赋予ε(x,y)=0,其他区域赋予ε(x,y)=1。
[0187]
s1064、根据自适应图像增强函数,对第二伪视差图进行增强,得到第三伪视差图。
[0188]
本实施例中,自适应图像增强函数,如下式:
[0189][0190][0191]
其中,factor(x,y)表示自适应改变的增强因子,δ表示控制梯度的比例因子。
[0192]
根据自适应图像增强函数,视差梯度越大的边缘将使得其比例因子变化越大,从而扩大边缘两侧的对比度,达到加强边缘的目的。
[0193]
s1065、利用第三伪视差图矫正遮挡恢复后的第三初始视差图的边缘,得到最终视差图。
[0194]
需要说明的是,矫正边缘的过程是通过两次迭代完成的。首先利用自适应canny算子检测伪视差图与真实视差图的边缘,随后在第一次迭代中,遍历真实视差图的边缘点,寻找其极线上接近的伪视差图边缘,重新修补两边缘点间的空间。第二次迭代则是将搜索范围扩宽为上、下、左、右四个方向,以相同的方法处理视差不连续区,完成边缘矫正。
[0195]
在得到最终视差图之前,利用加权中值滤波滤除一些矫正边缘过程中产生的毛刺,并对该过程图像做伪彩色化,输出最终视差图,至此本实施例结束。
[0196]
本领域技术人员可以理解,实现上述实施例的方法中的全部或部分步骤可以通过程序来指令相关的硬件来完成,相应的程序可以存储于计算机可读存储介质中。
[0197]
应当注意,尽管在附图中以特定顺序描述了上述实施例的方法操作,但是这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实
现期望的结果。相反,描绘的步骤可以改变执行顺序。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。
[0198]
实施例2:
[0199]
如图13所示,本实施例提供了一种基于高精度视差细化的立体匹配系统,该系统包括获取单元1301、纹理分割单元1302、代价计算单元1303、代价聚合与视差计算单元1304、遮挡恢复单元1305和边缘矫正单元1306,各个单元的具体功能如下:
[0200]
获取单元1301,用于获取极线矫正后的双目图像,所述双目图像包括第一图像和第二图像;
[0201]
纹理分割单元1302,用于根据纹理分割,将双目图像划分为多个纹理区域;
[0202]
代价计算单元1303,用于在多个纹理区域内,以每个像素点为中心建立第一自适应窗口,进而计算第一图像的代价集合和第二图像的代价集合;
[0203]
代价聚合与视差计算单元1304,用于根据第一图像的代价集合和第二图像的代价集合,分别得到第一初始视差图和第二初始视差图;
[0204]
遮挡恢复单元1305,用于基于第一初始视差图和第二初始视差图,根据一致性检测、无效点分类以及基于适应度的视差重建,对第三初始视差图进行遮挡恢复,所述第三初始视差图为第一初始视差图和第二初始视差图的其中之一;
[0205]
边缘矫正单元1306,用于对遮挡恢复后的第三初始视差图进行边缘矫正,得到最终视差图。
[0206]
实施例3:
[0207]
如图14所示,本实施例提供了一种计算机设备,其包括通过系统总线1401连接的处理器1402、存储器、输入装置1403、显示装置1404和网络接口1405。其中,处理器1402用于提供计算和控制能力,存储器包括非易失性存储介质1406和内存储器1407,该非易失性存储介质1406存储有操作系统、计算机程序和数据库,该内存储器1407为非易失性存储介质1406中的操作系统和计算机程序的运行提供环境,计算机程序被处理器1402执行时,实现上述实施例1的立体匹配方法,如下:
[0208]
获取极线矫正后的双目图像,所述双目图像包括第一图像和第二图像;
[0209]
根据纹理分割,将双目图像划分为多个纹理区域;
[0210]
在多个纹理区域内,以每个像素点为中心建立第一自适应窗口,进而计算第一图像的代价集合和第二图像的代价集合;
[0211]
根据第一图像的代价集合和第二图像的代价集合,分别得到第一初始视差图和第二初始视差图;
[0212]
基于第一初始视差图和第二初始视差图,根据一致性检测、无效点分类以及基于适应度的视差重建,对第三初始视差图进行遮挡恢复,所述第三初始视差图为第一初始视差图和第二初始视差图的其中之一;
[0213]
对遮挡恢复后的第三初始视差图进行边缘矫正,得到最终视差图。
[0214]
实施例4:
[0215]
本实施例提供一种存储介质,该存储介质为计算机可读存储介质,其存储有计算机程序,所述计算机程序被处理器执行时,实现上述实施例1的立体匹配方法,如下:
[0216]
获取极线矫正后的双目图像,所述双目图像包括第一图像和第二图像;
[0217]
根据纹理分割,将双目图像划分为多个纹理区域;
[0218]
在多个纹理区域内,以每个像素点为中心建立第一自适应窗口,进而计算第一图像的代价集合和第二图像的代价集合;
[0219]
根据第一图像的代价集合和第二图像的代价集合,分别得到第一初始视差图和第二初始视差图;
[0220]
基于第一初始视差图和第二初始视差图,根据一致性检测、无效点分类以及基于适应度的视差重建,对第三初始视差图进行遮挡恢复,所述第三初始视差图为第一初始视差图和第二初始视差图的其中之一;
[0221]
对遮挡恢复后的第三初始视差图进行边缘矫正,得到最终视差图。
[0222]
需要说明的是,本实施例的计算机可读存储介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑磁盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。
[0223]
在本实施例中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本实施例中,计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读信号介质还可以是计算机可读存储介质以外的任何计算机可读存储介质,该计算机可读信号介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读存储介质上包含的计算机程序可以用任何适当的介质传输,包括但不限于:电线、光缆、rf(射频)等等,或者上述的任意合适的组合。
[0224]
上述计算机可读存储介质可以以一种或多种程序设计语言或其组合来编写用于执行本实施例的计算机程序,上述程序设计语言包括面向对象的程序设计语言—诸如java、python、c++,还包括常规的过程式程序设计语言—诸如c语言或类似的程序设计语言。程序可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络,包括局域网(lan)或广域网(wan)连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
[0225]
综上所述,本发明引入纹理分割改进视差计算,并在视差细化阶段计算适应度,完成遮挡恢复,以及利用基于视差图的二次引导滤波矫正视差不连续区,从而在尽可能不增加计算复杂度的前提下,有效提高视差细化的能力。
[0226]
以上所述,仅为本发明专利较佳的实施例,但本发明专利的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明专利所公开的范围内,根据本发明专利的技术方案及其发明构思加以等同替换或改变,都属于本发明专利的保护范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1