立体匹配方法和系统转让专利

申请号 : CN201210321155.6

文献号 : CN103679680B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 王炳融白向晖王寰宇谭志明

申请人 : 富士通株式会社

摘要 :

公开了一种立体匹配方法和系统。该立体匹配方法包括:通过分别对左图像和右图像迭代地进行缩放处理,生成相同层级数目的左图像金字塔和右图像金字塔;通过对左图像金字塔中处于最高层级的左变换图像和右图像金字塔中处于最高层级的右变换图像进行匹配来获取最高层级的左/右变换图像的视差图,并且通过对最高层级的左/右变换图像的视差图迭代地进行缩放和匹配处理来获取左图像/右图像的视差图,其中左图像金字塔和右图像金字塔中的最高层级是指左图像金字塔和右图像金子塔中尺寸最小的变换图像所在的层级;以及对左图像/右图像的视差图进行优化。

权利要求 :

1.一种立体匹配方法,包括:

通过分别对左图像和右图像迭代地进行缩放处理,生成相同层级数目的左图像金字塔和右图像金字塔;

通过对所述左图像金字塔中处于最高层级的左变换图像和所述右图像金字塔中处于最高层级的右变换图像进行匹配来获取所述最高层级的左/右变换图像的视差图,并且通过对所述最高层级的左/右变换图像的视差图迭代地进行缩放和匹配处理来获取所述左图像/右图像的视差图,其中所述左图像金字塔和所述右图像金字塔中的最高层级是指所述左图像金字塔和所述右图像金子塔中尺寸最小的变换图像所在的层级;以及对所述左图像/右图像的视差图进行优化,其中对于所述左/右图像金字塔中的任意一个层级,即第p层级的左/右变换图像:

通过对所述左/右图像金字塔中的第p-1层级的左/右变换图像的视差图进行缩放,获取所述第p层级的左/右变换图像的粗略视差图;

基于不连续性保留全局优化的层级立体匹配,利用所述左图像金字塔中的第p层级的左变换图像和所述右图像金字塔中的第p层级的右变换图像获取所述第p层级的左/右变换图像的修正视差图;以及通过将所述第p层级的左/右变换图像的粗略视差图与修正视差图叠加,来获取所述第p层级的左/右变换图像的精确视差图。

2.根据权利要求1所述的立体匹配方法,其特征在于,通过分别对所述左图像和所述右图像迭代地进行高斯滤波和下采样,来生成所述左图像金字塔和所述右图像金字塔。

3.根据权利要求1所述的立体匹配方法,其特征在于,对所述左图像/右图像的视差图进行优化的处理包括:通过多对一的像素对应不被接受、对应像素光强一致、和孤立深度的像素不被接受这三个原则找出所述左图像/右图像的视差图中的被遮挡像素,并利用所述左图像/右图像的视差图中除被遮挡像素以外的其他像素的像素值来获取所述左图像/右图像的视差图中的被遮挡像素的修正后的像素值,从而对所述左图像/右图像的视差图进行优化。

4.根据权利要求1所述的立体匹配方法,其特征在于,获取所述第p层级的左/右变换图像的修正视差图的处理包括:基于迭代调整权重的最小二乘法,利用当前的修正视差图计算权重矩阵进而得到线性方程的系数矩阵,通过求解线性方程得到新的修正视差图,重复这个过程直至该修正视差图收敛或者系统达到预先定义的最大迭代次数。

5.一种立体匹配系统,包括:

金字塔生成单元,用于通过分别对左图像和右图像迭代地进行缩放处理,生成相同层级数目的左图像金字塔和右图像金字塔;

视差图获取单元,用于通过对所述左图像金字塔中处于最高层级的左变换图像和所述右图像金字塔中处于最高层级的右变换图像进行匹配来获取所述最高层级的左/右变换图像的视差图,并且通过对所述最高层级的左/右变换图像的视差图迭代地进行缩放和匹配处理来获取所述左图像/右图像的视差图,其中所述左图像金字塔和所述右图像金字塔中的最高层级是指所述左图像金字塔和所述右图像金子塔中尺寸最小的变换图像所在的层级;以及视差图优化单元,用于对所述左图像/右图像的视差图进行优化,其中对于所述左/右图像金字塔中的任意一个层级,即第p层级的左/右变换图像,所述视差图获取单元通过以下处理来获取所述第p层级的左/右变换图像的最佳视差图:通过对所述左/右图像金字塔中的第p-1层级的左/右变换图像的视差图进行缩放,获取所述第p层级的左/右变换图像的粗略视差图;

基于不连续性保留全局优化的层级立体匹配,利用所述左图像金字塔中的第p层级的左变换图像和所述右图像金字塔中的第p层级的右变换图像获取所述第p层级的左/右变换图像的修正视差图;以及通过将所述第p层级的左/右变换图像的粗略视差图与修正视差图叠加,来获取所述第p层级的左/右变换图像的最佳视差图。

6.根据权利要求5所述的立体匹配系统,其特征在于,所述金字塔生成单元通过分别对所述左图像和所述右图像迭代地进行高斯滤波和下采样,来生成所述左图像金字塔和所述右图像金字塔。

7.根据权利要求5所述的立体匹配系统,其特征在于,所述视差图优化单元通过以下处理对所述左图像/右图像的视差图进行优化:通过多对一的像素对应不被接受、对应像素光强一致、和孤立深度的像素不被接受这三个原则找出所述左图像/右图像的视差图中的被遮挡像素,并利用所述左图像/右图像的视差图中除被遮挡像素以外的其他像素的像素值来获取所述左图像/右图像的视差图中的被遮挡像素的修正后的像素值,从而对所述左图像/右图像的视差图进行优化。

8.根据权利要求5所述的立体匹配系统,其特征在于,所述视差图获取单元通过以下处理来获取所述第p层级的左/右变换图像的修正视差图:基于迭代调整权重的最小二乘法,利用当前的修正视差图计算权重矩阵进而得到线性方程的系数矩阵,通过求解线性方程得到新的修正视差图,重复这个过程直至该修正视差图收敛或者系统达到预先定义的最大迭代次数。

说明书 :

立体匹配方法和系统

技术领域

[0001] 本发明涉及图像处理领域,更具体地涉及立体匹配方法和系统。

背景技术

[0002] 立体匹配是对某一场景拍摄两个以上图像,通过精确地找出图像间的匹配像素来估计该场景的三维(3D)模型,并且将这些图像间的匹配像素的二维(2D)位置转换为3D深度的处理。在例如两只眼睛或两个相机向前直视的简单的成像配置中,两只眼睛或两个相机之间的视差与该两只眼睛或两个相机与观察对象之间的距离(即,观察对象在所拍摄的图像中的立体深度)成反比。所以,视差图通常被用来描述所拍摄图像中的像素的立体深度。
[0003] 在传统的用于立体匹配的算法中,通常将分别由两个眼睛或两个相机获取的两个图像中的一个图像作为参考图像、另一个图像作为目标图像,并且输出目标图像相对于参考图像的视差图。
[0004] 用于立体匹配的方法大致可以分为全局型方法和局部型方法。一般的局部型方法通常需要对开销容积的每个部分中的像素窗口中的开销进行聚集。局部型方法的计算简单且快速,但是问题也比较明显。首先,局部型方法隐含地假设支持窗口中的像素具有恒定的视差,这导致重建正面平行表面的倾向,并且在倾斜表面中存在问题。其次,由于局部开销聚集的原因,局部型方法不能处理较大的无纹理的区域。
[0005] 全局型方法通过对全局能量函数进行最小化来找出最佳的视差,其克服了局部型方法的一些缺陷。但是,诸如图割(graph-cut)优化之类的找出全局能量的最小值的处理通常比较复杂,且速度较慢。并且,较简单的解决方案不能得到令人满意的结果,例如动态规划和扫描行优化算法会受到计算出的视差图中的横条的不良影响。另一个问题是,一半的全局型优化不能保留不连续性。

发明内容

[0006] 鉴于以上所述的问题,本发明提供了一种新颖的立体匹配方法和系统。
[0007] 根据本发明实施例的立体匹配方法,包括:通过分别对左图像和右图像迭代地进行缩放处理,生成相同层级数目的左图像金字塔和右图像金字塔;通过对左图像金字塔中处于最高层级的左变换图像和右图像金字塔中处于最高层级的右变换图像进行匹配来获取最高层级的左/右变换图像的视差图,并且通过对最高层级的左/右变换图像的视差图迭代地进行缩放和匹配处理来获取左图像/右图像的视差图,其中左图像金字塔和右图像金字塔中的最高层级是指左图像金字塔和右图像金子塔中尺寸最小的变换图像所在的层级;以及对左图像/右图像的视差图进行优化。
[0008] 根据本发明实施例的立体匹配系统,包括:金字塔生成单元,用于通过分别对左图像和右图像迭代地进行缩放处理,生成相同层级数目的左图像金字塔和右图像金字塔;视差图获取单元,用于通过对左图像金字塔中处于最高层级的左变换图像和右图像金字塔中处于最高层级的右变换图像进行匹配来获取最高层级的左/右变换图像的视差图,并且通过对最高层级的左/右变换图像的视差图迭代地进行缩放和匹配处理来获取左图像/右图像的视差图,其中左图像金字塔和右图像金字塔中的最高层级是指左图像金字塔和右图像金子塔中尺寸最小的变换图像所在的层级;以及视差图优化单元,用于对左图像/右图像的视差图进行优化。
[0009] 比较现有的立体匹配的方法和系统,本发明通过金字塔式的视差图计算架构,可以更好地处理无材质区域和避免视差在求解中因陷入局部收敛而得到错误值;通过在每一层对来自上一层的粗略视差图的修正,可以自然地得到子像素精度的视差图和更好地的保留边界;通过对视差图的优化后处理,标识并处理错误的视差值。

附图说明

[0010] 从下面结合附图对本发明的具体实施方式的描述中可以更好地理解本发明,其中:
[0011] 图1示出了根据本发明实施例的立体匹配系统的框图;
[0012] 图2示出了根据本发明实施例的立体匹配方法的流程图;
[0013] 图3示出了获取左图像/右图像的视差图的过程的示意图;
[0014] 图4示出了找出左图像(或其视差图)中被遮挡的像素的过程;
[0015] 图5示出了找出左图像中孤立深度的像素的过程。

具体实施方式

[0016] 下面将详细描述本发明各个方面的特征和示例性实施例。下面的描述涵盖了许多具体细节,以便提供对本发明的全面理解。但是,对于本领域技术人员来说显而易见的是,本发明可以在不需要这些具体细节中的一些细节的情况下实施。下面对实施例的描述仅仅是为了通过示出本发明的示例来提供对本发明更清楚的理解。本发明绝不限于下面所提出的任何具体配置和算法,而是在不脱离本发明的精神的前提下覆盖了相关元素、部件和算法的任何修改、替换和改进。
[0017] 本发明提出的方法是一种全局型的立体匹配方法和系统。具体地,该立体匹配方法和系统以增量式光流框架为基础,可以获得平滑的子像素视差,并且对于无纹理的区域的处理效果很好。在根据本发明实施例的立体匹配方法和系统中视差图是通过求解线性等式计算出来的,所以根据本发明实施例的立体匹配方法和系统比一般的全局型方法更容易实现。另外,根据本发明实施例的立体匹配方法和系统重新设计的平滑项保证了不连续性保留的特性,并且包括新颖的异步遮挡检测处理。
[0018] 图1示出了根据本发明实施例的立体匹配系统的框图。图2示出了根据本发明实施例的立体匹配方法的流程图。下面,结合附图详细描述根据本发明实施例的立体匹配系统和方法。
[0019] 如图1中所示,根据本发明实施例的立体匹配系统包括金字塔生成单元102、视差图获取单元104、以及视差图优化单元106。其中,金字塔生成单元102通过分别对左图像和右图像迭代地进行缩放处理,生成相同层级数目的左图像金字塔和右图像金字塔(即,执行步骤S202);视差图获取单元104通过对左图像金字塔中处于最高层级的左变换图像和右图像金字塔中处于最高层级的右变换图像进行匹配来获取最高层级的左/右变换图像的视差图,并且通过对最高层级的左/右变换图像的视差图迭代地进行缩放和匹配处理来获取左图像/右图像的视差图(即,执行步骤S204);视差图优化单元106对左图像/右图像的视差图进行优化(即,执行步骤S206)。
[0020] 下面,结合图3至图5描述由根据本发明实施例的立体匹配系统中包括的上述各个单元实现的根据本发明实施例的立体匹配方法的以下步骤。
[0021] S202,生成图像金字塔。
[0022] 在根据本发明实施例的立体匹配方法中,分别对左图像和右图像进行缩放处理以生成左图像金字塔和右图像金字塔。具体地,在左/右图像金字塔中,将原始图像记为I0,将第1层级的变换图像记为I1,将第2层级的变换图像记为I2,...,将第p层级的变换图像记为Ip。这里,为了描述方便,在左/右图像金字塔中,可以将第p等级称为最高等级(相应地,将原始图像所在的等级称为第0等级),将第p-1等级称为第p等级的上一个等级,并将第p+1等级称为第p等级的下一个等级。其中,处于越高等级的变换图像的尺寸越小,并且处于最高等级的变换图像的尺寸最小。可以根据下面的等式从第p层级的变换图像计算得出第p+1层级的变换图像:
[0023]
[0024] 其中,Ip+1表示第p+1层级的变换图像,Ip表示第p层级的变换图像, 表示对第p层级的变换图像Ip进行高斯滤波,↓factor表示按照预定的比率factor对第p层级的变换图像Ip进行下采样。
[0025] S204,获取左/右图像的视差图。
[0026] 图3示出了获取左图像/右图像的视差图的过程的示意图。从图3可以看出,从左/右图像金字塔的最高层级的变换图像开始,逐层级地获取每个层级的变换图像的视差图,最终即可得到左图像/右图像的视差图。具体地,可以通过对左图像金字塔中处于最高层级的左变换图像和右图像金字塔中处于最高层级的右变换图像进行匹配来获取最高层级的左/右变换图像的视差图,并且通过对最高层级的左/右变换图像的视差图迭代地进行缩放和匹配处理来获取左图像/右图像的视差图。
[0027] 下面详细描述对于左/右图像金字塔中的任意一个层级的变换图像,如何得出该变换图像的最佳视差图。
[0028] 在左/右图像金字塔中的任意一个层级,例如第p层级,该层级的变换图像的粗略视差图可以根据第p+1等级的变换图像的最佳视差图迭代地估计出来,如以下等式所示:
[0029] dp=(up+1/factor)↑1/factor
[0030] 其中,dp表示第p层级的变换图像的粗略视差图,↑1/factor表示按照比率1/factor对第(p+1)层级的变换图像的最佳视差图up+1进行上采样。在得出第p层级的变换图像的粗略视差图dp后,需要对其进行修正以得出第p层级的变换图像的最佳视差图up。
[0031] 在根据本发明实施例的立体匹配方法中,可以基于不连续性保留全局优化的层级立体匹配,利用左图像金字塔中的第p层级的变换图像和右图像金字塔中的第p层级的变换图像,来获取第p层级的变换图像的修正视差图。
[0032] 在图像对(例如,左图像和右图像)的立体匹配处理中,全局优化的目的是找出全局能量最小的视差图u。具体地,视差图u的全局能量可以由以下等式表示:
[0033] E(u)=Edata(u)+αEsmooth(u)
[0034] 其中,Edata(u)和Esmooth(u)分别表示视差图u的全局能量的数据项和平滑项(调整项),α表示用于对平滑项进行加权的加权值。
[0035] 数据项Edata(u)表示图像对中像素点或特征点属性的相似性度量。根据亮度恒定性假设,数据项可以被定义如下:
[0036] Edata(u)=||FuIR-IL||
[0037] 其中,IL和IR分别表示左图像和右图像(这里假设,需要获取左图像的视差图)。Fu表示对应于视差图u的弯曲矩阵。
[0038] 平滑项Esmooth(u)表示对视差图u中的不平滑区域的惩罚函数。与普通的全变差(Total Variation,TV)函数不同,这里的平滑项可以更好地保留视差的不连续性:
[0039]
[0040] 其中,矩阵 和 分别表示在水平方向和竖直方向将视差图u移动l个像素和m个像素得到的矩阵。矩阵E是单位矩阵。缩放权重β(0<β<1)被用来对平滑项进行空间衰减。p表示视差图移动的范围,正值表示向右/向上移动,负值表示向左/向下移动,这里p的取值是2。函数 用于使视差图u的不连续性出现在图像梯度值大的位置,其被定义为:
[0041]
[0042] 在增量光流框架中,假设光流场已知,那么需要估计最佳增量(即,修正视差图)du。然后,全局能量函数被转换为:
[0043]
[0044] 可以通过一阶泰勒展开对数据项Fu+duIR-IL进行线性化处理:
[0045]
[0046] 其中,diag(X)表示将X作为主对角线的矩阵,并且为了增加鲁棒性需要对图像对(即,左图像和右图像)应用空间平滑内核(例如,具有标准偏差0.5的高斯内核h),即:
[0047]
[0048]
[0049] 其中, 是图像I’R和I’L的平均水平梯度。为了简化以上等式,这里使用It替代FuI′R-I′L,并使用Ix替代
[0050] 为了使用基于梯度的方法找出最小全局能量,可以利用可区分近似来代替L1范数。所以,全局能量函数可以被重写为:
[0051]
[0052] 其中,对角线权重矩阵为:
[0053] W=diag([1/φ((It+Ixdu)2(q))]);
[0054]
[0055] 然后,可以得出:
[0056]
[0057] 其中,权重的拉普拉斯矩阵L被定义为:
[0058]
[0059] 令 可以得到:
[0060]
[0061] 然后,可以根据以上等式得出du。
[0062] 具体地,因为W和Ws是和当前迭代中和u、du相关的对角线权重矩阵,根据求解上述线性方程得到的du将会被用来重新计算上述两个对角线权重矩阵,使得新的du被计算,这个过程迭代进行直到du收敛或者迭代次数达到预定义的限制;因为Ix是以按照u对利用经过高斯滤波的左右图像获取的平均水平梯度图像进行变换后所得图像矩阵作为对角线向量的稀疏矩阵,It是按照u对经过高斯滤波的右图像进行变换所得图像与左图像的每像素差值所得向量,使用du修正后的u将会被用来重新计算上述两个矩阵,导致新一轮du的迭代求解过程,然后得到新的被修正的u,这个过程迭代进行直到u收敛或者迭代次数达到预定义的限制。
[0063] 具体地,对于以上所述的第p层级的变换图像,在得到其修正视差图dup后,需要将其粗略视差图dp与修正视差图dup叠加来得到其最佳视差图up。进一步地,在某些情况下还需要利用3*3中值滤波器对该最佳视差图up进行中值滤波,以平滑与周围像素视差值不同的孤立视差值,滤波器大小与具体的应用有关,更大的滤波器大小会丢失细节与减慢运算速度,更小的滤波器的大小不能很好地达到平滑的目的,对于大部分应用3*3的中值滤波器较为合理。
[0064] 以上所述的过程可以被直接应用于灰度图像。对于多通道的图像(例如,RGB图像),在每个通道中计算矩阵W、Ix和It,并且在每个通道中计算 和WIxIt。然后,为了使用上面的线性方程,计算这两项的平均值,作为单通道的相应值。为了改善该方法的精确性,可以将水平和竖直梯度图像添加到输入RGB图像,以形成5通道图像
[0065] S206,对左图像/右图像的视差图进行优化(异步遮挡检测和填充)。
[0066] 除了不连续性保存全局优化外,在本发明的实施例中还提出了简单的异步遮挡检测策略,其包括三个部分(这里假设通过以上处理已经得到了左图像的视差图)。
[0067] 首先,根据以下等式利用左图像及其视差图来计算右图像中对应像素的x坐标:
[0068] f(x,y)=x-round(d(x,y))
[0069] 这里假设,右图像中的每个像素在左图像中的对应像素不应该超过一个。具体地,如果利用左图像中多个像素的x坐标和它们相应的视差值计算出了多个相同的x坐标,则认为左图像中该多个像素中的除x坐标最大的像素以外的其他像素被遮挡,并将这些其他像素标记为被遮挡的像素,如图4中所示。同时,如果利用左图像中某个像素的x坐标和其相应的视差值计算出的x坐标值为负值(即,f(x,y)<0),则也认为左图中的该像素被遮挡,并将其标记为被遮挡的像素。该过程产生了二进制的遮挡图L1(在遮挡图L1中,将被遮挡的像素标记为1,并将未被遮挡的像素标记为0)。也就是说,这里运用了多对一的像素对应不被接受的原则来获取左图像中被遮挡的像素。
[0070] 接下来,根据以下等式计算二进制的遮挡图L2:
[0071]
[0072] 其中,这里的阈值threshold可以取0.05。也就是说,这里运用了对应像素光强一致的原则来获取左图像中被遮挡的像素。
[0073] 接下来,找出二进制的遮挡图L3,该遮挡图用于移除孤立视差。具体地在本发明的实施例中,可以根据不同的视差值得到一些二进制图像。例如,可以设置三个阈值(th1~th3),并且对于th1至th3中的任意一个阈值(例如,th1),将视差图中小于th1的值标记为1,并将视差图中不小于th1的值标记为2,即可得到一个二进制图像(当然,同样可以利用th2和th3得到另外两个二进制图像)。然后,可以利用Haralick算法来标记每个二进制图像中的例如所有的8连通目标(例如,所有的8连续标记1或0)。然后,认为尺寸小于预定阈值的所有目标被遮挡。该处理在图5中示出。也就是说,这里应用了孤立深度的像素不被接受的原则来获取左图像中被遮挡的像素。
[0074] 通过以上的异步遮挡检测,得到的最终的遮挡图为:
[0075] L=L1∪L2∪L3
[0076] 这里,可以认为视差图中与上述遮挡图对应的区域为被遮挡区域,并且可以使用例如,边缘保留滤波器对视差图的其余部分进行处理来对这些遮挡区域进行填充。对于每个被遮挡的像素,使用相同行上最接近像素的视差值进行替换,然后使用边缘保留的滤波器对该被遮挡像素的视差值进行滤波,把滤波后所得到的结果作为该被遮挡像素的视差值。
[0077] 根据本发明实施例的立体匹配方法和系统具有以下优点:1)当大多数局部型方法不适用时,可以正确地处理无纹理的区域;2)无需额外的处理,即可直接产生子像素视差;3)相对于其他全局型方法,可以保留视差的不连续性;4)通过求解规则的线性系统来得出结果,所以可以简单利用很多现有的求解器;5)不必找出最大视差,所以避免了很多冗余计算;6)通过简单的异步遮挡检测来处理大多数错误视差。
[0078] 以上已经参考本发明的具体实施例来描述了本发明,但是本领域技术人员均了解,可以对这些具体实施例进行各种修改、组合和变更,而不会脱离由所附权利要求或其等同物限定的本发明的精神和范围。
[0079] 根据需要可以用硬件或软件来执行步骤。注意,在不脱离本发明范围的前提下,可向本说明书中给出的流程图添加步骤、从中去除步骤或修改其中的步骤。一般来说,流程图只是用来指示用于实现功能的基本操作的一种可能的序列。
[0080] 本发明的实施例可利用编程的通用数字计算机、利用专用集成电路、可编程逻辑器件、现场可编程门阵列、光的、化学的、生物的、量子的或纳米工程的系统、组件和机构来实现。一般来说,本发明的功能可由本领域已知的任何手段来实现。可以使用分布式或联网系统、组件和电路。数据的通信或传送可以是有线的、无线的或者通过任何其他手段。
[0081] 还将意识到,根据特定应用的需要,附图中示出的要素中的一个或多个可以按更分离或更集成的方式来实现,或者甚至在某些情况下被去除或被停用。实现可存储在机器可读介质中的程序或代码以允许计算机执行上述任何方法,也在本发明的精神和范围之内。
[0082] 此外,附图中的任何信号箭头应当被认为仅是示例性的,而不是限制性的,除非另有具体指示。当术语被预见为使分离或组合的能力不清楚时,组件或者步骤的组合也将被认为是已经记载了。