一种像素点视差值计算方法、装置及终端与流程

文档序号:13935249
一种像素点视差值计算方法、装置及终端与流程

本发明涉及图像处理技术领域,尤其涉及一种像素点视差值计算方法、装置及终端。



背景技术:

双目立体视觉技术是一种对双目摄像机拍摄的同一场景的深度图进行视差计算,确定三维空间场景深度的技术。

视差计算过程主要包括:对摄像机拍摄的同一场景的深度图(基准图和匹配图)进行像素点匹配,即建立基准图中像素点与匹配图中像素点之间的代价函数,并以最小代价从匹配图中找到与基准图中匹配的像素点,计算基准图中每个像素点的视差值,再利用能量函数加以优化,最终确定基准图中每个像素点的最优视差,该计算过程运算量较大,实时性不高。



技术实现要素:

本发明为了解决现有计算视差值的运算量较大的问题,提供一种像素点视差值计算方法、装置及终端,用以大幅降低计算视差值的运算量。

为实现上述发明目的,本发明提供了如下技术方案:

第一方面,本发明提供一种像素点视差值计算方法,所述方法包括:

基于预先划分的具有不同视差精度的至少两个视差段,将第一深度图划分成与所述视差段对应的像素区域;

分别设置所述像素区域的压缩比例,对所述第一深度图按照所述压缩比例进行降采样,得到第二深度图;

根据计算得到的所述第二深度图的视差图,确定所述第一深度图的视差图。

第二方面,本发明提供一种像素点视差值计算装置,所述装置包括:

划分单元,用于基于预先划分的具有不同视差精度的至少两个视差段,将第一深度图划分成与所述视差段对应的像素区域;

压缩单元,用于分别设置所述像素区域的压缩比例,对所述第一深度图按照所述压缩比例进行降采样,得到第二深度图;

确定单元,用于根据计算得到的所述第二深度图的视差图,确定所述第一深度图的视差图。

第三方面,本发明提供一种像素点视差值计算终端,包括摄像头组件、存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现以下步骤:

基于预先划分的具有不同视差精度的至少两个视差段,将第一深度图划分成与所述视差段对应的像素区域;

分别设置所述像素区域的压缩比例,对所述第一深度图按照所述压缩比例进行降采样,得到第二深度图;

根据计算得到的所述第二深度图的视差图,确定所述第一深度图的视差图。

由以上描述可以看出,本发明基于具有不同视差精度的视差段,将摄像机拍摄的第一深度图划分成与视差段对应的像素区域,并设置每一个像素区域的压缩比例,基于压缩比例对第一深度图进行压缩,并对压缩后得到的第二深度图进行视差值计算,最终确定第一深度图的视差图。由于本发明是基于压缩后的图像(行数、列数、视差范围相较于压缩前的图像均会缩小)计算视差值,视差值计算过程中的像素匹配次数(匹配次数与行数、列数、视差范围呈正相关关系)会明显减少,因此,可大幅降低计算视差值的运算量。

附图说明

为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本发明实施例示出的一种像素点视差值计算方法流程图;

图2A是本发明实施例示出的道路场景的深度图(基准图);

图2B是本发明实施例示出的同一道路场景的另一个深度图(匹配图);

图2C是本发明实施例示出的第一深度图的像素区域划分示意图;

图2D是本发明实施例示出的基于压缩比例1/2对图2B所示深度图压缩后得到的深度图(基准图);

图2E是本发明实施例示出的基于压缩比例1/2对图2C所示深度图压缩后得到的深度图(匹配图);

图2F是本发明实施例示出的基于图2D和图2E计算出来的视差图;

图2G是本发明实施例示出的基于图2F所示视差图升采样后的视差图;

图2H是本发明实施例示出的基于图2A和图2B中第一像素区域计算得到的视差图;

图2I是本发明实施例示出的利用图2H所示视差图对图2G所示视差图修正后得到的视差图;

图2J是采用现有技术基于图2A和图2B所示深度图计算得到的视差图;

图2K是本发明实施例示出的基于图2D和图2E中第二像素区域计算得到的视差图;

图2L是本发明实施例示出的基于图2K所示视差图升采样后的视差图;

图2M是本发明实施例示出的基于图2H所示视差图和图2L所示视差图得到的视差图;

图3是本发明实施例示出的一种像素点视差值计算装置的结构示意图;

图4是本发明实施例示出的一种像素点视差值计算终端的结构示意图。

具体实施方式

这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本发明相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本发明的一些方面相一致的装置和方法的例子。

在本发明使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本发明。在本发明和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。

应当理解,尽管在本发明可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本发明范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。

参见图1,为本发明提供的一种像素点视差值计算方法的实施例流程图,该实施例对像素点视差值计算过程进行描述。

步骤101,基于预先划分的具有不同视差精度的至少两个视差段,将第一深度图划分成与所述视差段对应的像素区域。

本发明通过两台深度相机(亦称为双目摄像机)拍摄同一场景的深度图(记为第一深度图,包括基准图和匹配图),参见图2A,为本发明实施例示出的道路场景的第一深度图(基准图);图2B为本发明实施例示出的同一道路场景的另一个第一深度图(匹配图)。

本发明中的视差段是基于实际应用场景中视差值变化对景深变化的影响程度来确定的。具体为,参见如下公式:

其中,h为像素点对应物体的景深,B为双目相机的基线长度,f为相机焦距,u为单个像素点对应的物理长度,d为像素点的视差值。

当视差值d变化Δd时,对景深变化Δh的影响程度如下述公式所示:

从公式(2)我们可以得出,当Δd<<d时,Δh与呈正相关关系,换言之,相同的视差值变化Δd对景深变化Δh的影响程度与视差值d呈反相关关系,即视差值d越大,相同的视差值变化Δd对景深变化Δh的影响程度越小。

举例说明,像素点p的真实视差值为40,对应景深为4米,若实际计算出来的像素点p的视差值为39(忽略相机固有特性产生的误差),则对应景深为4.1米,即视差值变化40-39=1对景深变化的影响为4.1-4=0.1米;像素点q的真实视差值为2,对应景深为80米,若实际计算出来的像素点q的视差值为1(忽略相机固有特性产生的误差),则对应景深为160米,即视差值变化2-1=1对景深变化的影响为160-80=80米。

可见,同样的视差值变化对视差值较大区域的像素点的景深影响不大,而对视差值较小区域的像素点的景深影响却很大,换言之,要想达到相同的景深精度,随着视差值的增大可以逐渐降低像素点的视差值的计算精度,反之,随着视差值的减小应逐渐提升像素点的视差值的计算精度,因此,本发明利用景深精度与不同视差值下视差精度之间存在的上述关系,将第一深度图的视差范围预先划分成至少两个视差段,例如,若第一深度图的视差范围为0~80,以划分两个视差段为例,可以划分为0~40和41~80两个视差段,在满足景深精度要求的情况下,每个视差段可具有不同的视差值精度。当然,视差段划分越多,视差精度的划分粒度也就越细。

基于预先划分的具有不同视差精度的多个视差段,将第一深度图划分成与视差段对应的像素区域。参见图2C,为本发明实施例示出的第一深度图的像素区域划分示意图,图中虚线将第一深度图划分为上、下两个像素区域,为了便于描述,将虚线以上像素区域称为第一像素区域,虚线以下像素区域称为第二像素区域。第一像素区域主要包括天空、远处的路面等视差值较小(距离越远视差值越小)的物体,也就是说,较小的视差值(例如,0~40视差段)主要位于第一像素区域;第二像素区域主要包括近处的路面等视差值较大的物体,也就是说,较大的视差值(例如,41~80视差段)主要位于第二像素区域。

步骤102,分别设置所述像素区域的压缩比例,对所述第一深度图按照所述压缩比例进行降采样,得到第二深度图。

如前所述,在满足同等景深精度要求的情况下,随着视差值的增大可以适当降低像素点的视差值的计算精度,也就是说,本发明中主要包含较大视差值的像素区域的视差精度可低于主要包含较小视差值的像素区域的视差精度,即图2C中第二像素区域的视差精度可低于第一像素区域的视差精度。

为了达到对不同像素区域执行不同视差精度控制的目的,本发明为每一个像素区域设置了不同的压缩比例,其中,该压缩比例小于等于1,且与像素区域对应的视差段的视差均值呈反相关关系,即像素区域对应的视差段的视差均值越大,该像素区域的压缩比例越小。

例如,若设置图2C中第一像素区域的压缩比例为1,第二像素区域的压缩比例为1/2,则基于压缩比例1对第一深度图进行降采样,相当于未压缩,得到的第二深度图即为第一深度图;基于压缩比例1/2对第一深度图进行降采样,得到长、宽各缩小一半的第二深度图,参见图2D,为基于压缩比例1/2对图2A所示第一深度图进行降采样后得到的第二深度图(基准图),图2E为基于压缩比例1/2对图2B所示第一深度图进行降采样后得到的第二深度图(匹配图)。

步骤103,根据计算得到的所述第二深度图的视差图,确定所述第一深度图的视差图。

在一种可选的实施方式中,本步骤包括:

从第二深度图中选择压缩比例最小的深度图(记为第三深度图),计算该第三深度图的视差图(记为第一视差图)。例如,针对图2C中第一像素区域和第二像素区域分别设置压缩比例为1和1/2,则最小压缩比例为1/2,基于最小压缩比例压缩后的深度图如图2D和图2E所示,即图2D和图2E为压缩比例最小的第三深度图,其中,图2D为压缩后的基准图,图2E为压缩后的匹配图,计算得到如图2F所示的第一视差图。

对第一视差图中压缩比例大于该第一视差图压缩比例的像素区域进行视差值修正,具体为,将第一视差图作为初始的待修正视差图,执行如下视差值修正操作:

对当前待修正视差图进行升采样,得到第二视差图,该第二视差图的尺寸与按压缩比例排序大于当前待修正视差图对应压缩比例的下一压缩比例对应的深度图(记为第四深度图)的尺寸相同。参见图2G,为基于图2F所示待修正视差图升采样后的第二视差图,其中,图2F所示待修正视差图的压缩比例为1/2,升采样后与压缩比例为1(压缩比例1为大于压缩比例1/2的下一压缩比例)的第四深度图的尺寸相同,即与图2A和图2B所示深度图的尺寸相同。

基于第四深度图的压缩比例对应的待修正像素区域,计算第四深度图中待修正像素区域的第三视差图。举例说明,如前所述,图2G所示为升采样后的第二视差图,该第二视差图的尺寸与压缩比例为1的图2A和图2B所示深度图的尺寸相同,压缩比例1对应的是图2C中虚线以上的第一像素区域,因此,确定该第一像素区域为待修正像素区域,计算图2A和图2B中第一像素区域的视差图(即第三视差图)。

可选的,在计算第三视差图时,可预设小于第四深度图的视差范围的第一视差范围,基于该第一视差范围计算待修正像素区域的第三视差图。例如,对于基准图(图2A)中第一像素区域内的像素点,可基于预设的小于该基准图视差范围(0~80)的第一视差范围(0~20),在匹配图(图2B)的第一像素区域内查找匹配的像素点,得到基准图中第一像素区域内像素点的视差值。此处,通过缩小视差范围,可进一步降低视差值计算的运算量。在完成像素匹配后,利用能量函数加以优化后,确定基准图中第一像素区域内每一个像素点的最优视差值,得到如图2H所示的第三视差图。

若第二视差图中待修正像素区域内的像素点的视差值小于预设的视差阈值,则将第二视差图中待修正像素区域内的像素点的视差值替换为第三视差图中该像素点对应的视差值。由于第二视差图是基于待修正视差图升采样得到的,其视差值的计算精度不高,仅能满足视差值较大的像素点的视差精度要求,因此,本发明通过视差精度较高的第三视差图来修正第二视差图中视差值较小的像素点的视差精度,即通过设置视差阈值确定第二视差图中待修正像素区域内需要修正的视差值较小的像素点,再利用视差精度较高的第三视差图中对应像素点的视差值进行修正。例如,利用图2H所示第三视差图修正图2G所示第二视差图,得到如图2I所示修正后的视差图。

判断是否存在未参与视差值计算的第二深度图,若存在,将替换后的第二视差图作为新的待修正视差图,返回执行视差值修正操作;若不存在,则将替换后的第二视差图作为修正后的第一视差图。本发明通过对不同压缩比例的第二深度图循环执行上述视差值修正过程,逐步完成对具有不同视差精度要求的像素点的视差值修正。

将上述修正后的第一视差图确定为第一深度图的视差图。至此,完成本实施方式的视差图计算。

在另一种可选的实施方式中,本步骤包括:

计算第二深度图的压缩比例对应的像素区域的第四视差图。例如,若图2C中第一像素区域和第二像素区域的压缩比例分别为1和1/2,基于压缩比例1压缩后(实际未压缩)的图2A和图2B计算第一像素区域的第四视差图,得到如图2H所示的第四视差图;基于压缩比例1/2压缩后的图2D和图2E计算第二像素区域的第四视差图,得到如图2K所示的第四视差图。

对第四视差图进行升采样,得到第五视差图,该第五视差图的尺寸与像素区域在第一深度图中的尺寸相同。例如,图2H所示第四视差图的尺寸与第一像素区域在图2A和图2B中的尺寸相同,因此,图2H所示第四视差图即为第五视差图;对图2K所示第四视差图进行升采样,得到如图2L所示第五视差图,该第五视差图的尺寸与第二像素区域在图2A和图2B中的尺寸相同。

基于每一个像素区域对应的第五视差图进行视差融合,得到第一深度图的视差图,即将图2H所示视差图与图2L所示视差图进行拼接,得到如图2M所示视差图。至此,完成本实施方式的视差图计算。

从上述描述可以看出,本发明基于压缩后的图像(行数、列数、视差范围相较于压缩前的图像均会缩小)计算视差值,视差值计算过程中的像素匹配次数(匹配次数与行数、列数、视差范围呈正相关关系)明显减少,从而大幅降低计算视差值的运算量。

现通过以下两个具体实施例来描述本发明的视差值计算过程以及效果:

实施例一:

参考基准图图2A所示的是一台深度相机拍摄的道路场景的深度图,匹配图图2B所示的是另一台深度相机拍摄的同一道路场景的深度图,现有技术在利用基准图图2A和匹配图图2B计算该道路场景的视差图时,基于基准图图2A和匹配图图2B的行数、列数以及视差范围,以预设的匹配窗口在匹配图图2B中查找与基准图图2A中像素点匹配的像素点,根据匹配结果计算基准图图2A中每一个像素点的视差值,再利用能量函数传播得到每一个像素点的最终能量值,确定该像素点的最优视差值,视差图如图2J所示。由于匹配过程是基于原始图像(图2A和图2B)的行数、列数以及视差范围来匹配,匹配次数(与行数、列数以及视差范围呈正相关关系)过多,导致运算量过大,且从图2J中可以看出,虚线框内存在噪点。

针对上述问题,本发明对图2A和图2B所示图像进行降采样,得到行数、列数、视差范围各缩小一半的基准图图2D和匹配图图2E,基于基准图图2D和匹配图图2E的行数、列数以及视差范围,以预设的匹配窗口在匹配图图2E中查找与基准图图2D中像素点匹配的像素点,根据匹配结果计算基准图图2D中每一个像素点的视差值,再利用能量函数传播得到每一个像素点的最终能量值,确定该像素点的最优视差值,视差图如图2F所示。由于匹配过程是基于压缩后的基准图图2D和匹配图图2E的行数、列数以及视差范围来匹配,因此,匹配次数明显减少,运算量大幅下降,且由于压缩图像后匹配窗口中纹理信息较多,导致最终得到的视差图图2F中不存在图2J中虚线框内的噪点,但是由于压缩图像会导致视差值的精度不高。

对基准图图2A和匹配图图2B中的上半部分区域(图2C中虚线以上区域)计算视差图,计算过程中基于较小的视差范围(小于图2A和图2B原始视差范围),从匹配图图2B的上半部分区域中查找与基准图图2A的上半部分区域中像素点匹配的像素点,根据匹配结果计算上半部分区域中每一个像素点的视差值,再利用能量函数传播得到每一个像素点的最终能量值,确定该像素点的最优视差值,视差图如图2H所示,该视差图中虽然存在虚线框内的噪点,但是视差值较小的像素点的视差精度较高。

将视差图图2F放大,得到与图2A和图2B同等大小的视差图图2G,利用视差图图2H修正视差图图2G,得到修正后的视差图图2I(不存在图2J中虚线框内的噪点)。由于修正时只修正视差值较小的像素点的视差值,因此,可有效提升修正后视差值较小的像素点的视差精度,而视差值较大的像素点的视差值维持视差图图2G中原有视差值,因此,图2H中的噪点(对应视差值较大)不会引入到最终的视差图图2I中,而整个计算过程由于基于压缩的行数、列数、以及视差范围进行计算,因此,运算量大幅降低。

实例二:

参考基准图图2A所示的是一台深度相机拍摄的道路场景的深度图,匹配图图2B所示的是另一台深度相机拍摄的同一道路场景的深度图,现有技术在利用基准图图2A和匹配图图2B计算该道路场景的视差图时,基于基准图图2A和匹配图图2B的行数、列数以及视差范围,以预设的匹配窗口在匹配图图2B中查找与基准图图2A中像素点匹配的像素点,根据匹配结果计算基准图图2A中每一个像素点的视差值,再利用能量函数传播得到每一个像素点的最终能量值,确定该像素点的最优视差值,视差图如图2J所示。由于匹配过程是基于原始图像(图2A和图2B)的行数、列数以及视差范围来匹配,匹配次数(与行数、列数以及视差范围呈正相关关系)过多,导致运算量过大。

针对上述问题,本发明对图2A和图2B所示图像进行降采样,得到行数、列数、视差范围各缩小一半的基准图图2D和匹配图图2E,然后,基于图2A和图2B中第一像素区域的行数、列数以及视差范围,以预设的匹配窗口在匹配图图2B的第一像素区域中查找与基准图图2A的第一像素区域中像素点匹配的像素点,根据匹配结果计算基准图图2A的第一像素区域中每一个像素点的视差值,再利用能量函数传播得到每一个像素点的最终能量值,确定该像素点的最优视差值,得到如图2H所示视差图;基于图2D和图2E中第二像素区域的行数、列数以及视差范围,以预设的匹配窗口在匹配图图2E的第二像素区域中查找与基准图图2D的第二像素区域中像素点匹配的像素点,根据匹配结果计算基准图图2D的第二像素区域中每一个像素点的视差值,再利用能量函数传播得到每一个像素点的最终能量值,确定该像素点的最优视差值,得到如图2K所示视差图。对图2K进行升采样,得到如图2L所示视差图,该视差图的尺寸与第二像素区域在图2A和图2B中的尺寸相同,将图2H所示第一像素区域的视差图与图2L所示第二像素区域的视差图进行拼接,得到如图2M所示视差图。由于第二像素区域是基于压缩后的图像进行像素匹配,匹配过程中的行数、列数以及视差范围均有所缩小,因此,匹配次数减少,运算量下降。

与前述像素点视差值计算方法的实施例相对应,本发明还提供了像素点视差值计算装置的实施例。

请参考图3,为本发明一个实施例中的像素点视差值计算装置的结构示意图。该像素点视差值计算装置300包括划分单元301、压缩单元302以及确定单元303,其中:

划分单元301,用于基于预先划分的具有不同视差精度的至少两个视差段,将第一深度图划分成与所述视差段对应的像素区域;

压缩单元302,用于分别设置所述像素区域的压缩比例,对所述第一深度图按照所述压缩比例进行降采样,得到第二深度图;

确定单元303,用于根据计算得到的所述第二深度图的视差图,确定所述第一深度图的视差图。

进一步地,

所述压缩比例小于等于1,且与像素区域对应的视差段的视差均值呈反相关关系。

进一步地,

所述确定单元303,具体用于从所述第二深度图中选择压缩比例最小的第三深度图,计算所述第三深度图的第一视差图;对所述第一视差图中压缩比例大于所述第一视差图压缩比例的像素区域进行视差值修正;将修正后的第一视差图确定为所述第一深度图的视差图。

上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。

本发明还提供了像素点视差值计算终端的实施例,请参考图4,为本发明一个实施例中的像素点视差值计算终端的结构示意图。该像素点视差值计算终端400包括处理器401、存储器402、摄像头组件403,其中:

处理器401是该终端400的控制中心,利用各种接口和线路连接整个该终端的各个部分,通过运行或执行存储在存储器402内的计算机程序,实现上述像素点视差值计算方法中对应步骤。可选的,处理器401可包括一个或多个处理核心。

存储器402可用于存储计算机程序,处理器401通过运行存储在存储器402的计算机程序,实现上述像素点视差值计算方法中对应步骤。存储器402可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。

摄像头组件403用于采集图像,该摄像头组件403可以包括至少两个摄像头,该至少两个摄像头可以分别为双目摄像头的左摄像头和右摄像头。

以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。

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