掌桥专利:专业的专利平台
掌桥专利
首页

视差图像的确定方法、装置、集成电路芯片和计算机设备

文献发布时间:2024-04-18 19:58:21


视差图像的确定方法、装置、集成电路芯片和计算机设备

技术领域

本申请涉及计算机视觉技术领域,特别是涉及一种视差图像的确定方法、装置、集成电路芯片、计算机设备、存储介质和计算机程序产品。

背景技术

双目立体匹配也称作视差估计(disparity estimation),或者双目深度估计;是利用双目相机拍摄同一场景的左、右两幅视点图像(即左右相机图像),再运用立体匹配算法对左右相机图像进行计算以获取视差图像。视差是三维场景中某一点在左右相机图像中对应点位置的像素级差距;视差图像指的是根据参考图像(一般以左图作为参考图像)中每个像素对应的视差值所构成的视差图。当给定摄像机的基线距离和焦距之后,就可以根据视差图像计算出对应的深度图像,后续便可以根据深度图像进行深度感知、自动驾驶以及安防监控等领域的技术实现。双目立体匹配主要由初始代价计算、代价聚合、视差计算、视差后处理四个步骤组成,具有计算复杂度高、精度要求高等特点,这些特点使得立体匹配算法在嵌入式处理平台的部署尤为困难。

其中,视差后处理阶段包括对通过视差计算得出的视差图像进行去噪操作。传统的技术方案中,一般是针对视差图像中的每一个视差值,确定其上下左右(即周围)至少有一个视差值满足视差连通条件后,再分别以它们为起点(称为传播),检测其周围的视差值是否满足视差连通条件;每检测到一个新的连通点,其相应点的标志位置1,计数器加一,直到对于每一个新的连通点,其周围的点都不满足视差连通条件,停止计数;然后判断计数值(即与当前处理的视差值的连通区域的像素点个数)是否大于预设阈值;若大于,则认为当前处理的视差值有效,保留该视差值;否则认为当前处理的视差值是噪点,因此去除当前处理的视差值。但是这种确定出视差图像的方法需要针对每一个视差值进行判断计算,处理过程复杂,需要消耗大量的逻辑资源和存储资源。

因此,如何提高确定出视差图像的便捷度和效率,是本领域技术人员目前需要解决的技术问题。

发明内容

基于此,有必要针对上述技术问题,提供一种能够提高确定出视差图像的便捷度和效率的视差图像的确定方法、装置、集成电路芯片、计算机设备、计算机可读存储介质和计算机程序产品。

第一方面,本申请提供了一种视差图像的确定方法。所述方法包括:

对左右相机图像进行立体匹配,得到待处理视差图像,并利用第一滑窗滑动遍历所述待处理视差图像;

在所述第一滑窗对应的每一个局部视差图像中,确定所述局部视差图像中的各视差值与所述局部视差图像的中心位置对应的中心视差值的差值绝对值是否小于或等于第一阈值;

统计所述差值绝对值小于或等于所述第一阈值的所述视差值的统计数量;

若所述统计数量小于或等于第二阈值,保留所述中心视差值;

若所述统计数量大于所述第二阈值,将所述中心视差值设置为目标值;

在利用所述第一滑窗遍历所述待处理视差图像后,确定出目标视差图像。

在其中一个实施例中,所述对左右相机图像进行立体匹配,得到待处理视差图像,包括:

获取所述左右相机图像;

根据所述左右相机图像计算初始代价;

根据所述初始代价进行代价聚合操作,得到最终代价;

对所述最终代价进行视差计算,确定出所述待处理视差图像。

在其中一个实施例中,所述根据所述左右相机图像计算初始代价,包括:

利用第二滑窗遍历第一图像,确定所述第二滑窗对应的各第一局部像素图像,并确定与各所述第一局部像素图像对应的第一变换向量;其中,所述左右相机图像包括所述第一图像和第二图像;

确定所述第二图像中与所述第一局部像素图像对应的第二局部像素图像的第二变换向量;

根据所述第一变换向量和所述第二变换向量,确定与所述第一局部像素图像对应的局部初始代价;

在利用所述第二滑窗遍历所述第一图像后,得到与所述第一图像对应的所述初始代价;所述初始代价包括所述局部初始代价。

在其中一个实施例中,所述确定所述第二图像中与所述第一局部像素图像对应的第二局部像素图像的第二变换向量,包括:

确定预设视差范围,计算所述第二图像中与所述第一局部像素图像对应的第二局部像素图像在所述预设视差范围内分别对应的待确认第二变换向量;所述待确认第二变换向量包括所述第二变换向量;

所述根据所述第一变换向量和所述第二变换向量,确定与所述第一局部像素图像对应的局部初始代价,包括:

根据所述第一变换向量和各所述待确认第二变换向量分别确定对应的待确认局部初始代价;

将所述待确认局部初始代价中的最小值,确定为所述局部初始代价。

在其中一个实施例中,在所述根据所述左右相机图像计算初始代价之后,以及所述根据所述初始代价进行代价聚合操作,得到最终代价之前,所述方法还包括:

对所述初始代价进行饱和操作,得到更新后的所述初始代价。

在其中一个实施例中,所述对所述初始代价进行饱和操作,得到更新后的所述初始代价,包括:

若所述初始代价大于或等于第三阈值,将所述初始代价设置为第一预设值;

否则,删除所述初始代价对应的二进制的最低位,并利用删除最低位后的所述二进制值更新所述初始代价。

在其中一个实施例中,所述根据所述初始代价进行代价聚合操作,得到最终代价,包括:

根据所述初始代价进行四方向聚合代价操作,得到所述最终代价。

在其中一个实施例中,所述方法还包括:

按照预设规则将各所述待确认局部初始代价和所述局部初始代价分组;

将分组后的各所述待确认局部初始代价和所述局部初始代价进行信息拼接,并按照拼接结果将所述各所述待确认局部初始代价和所述局部初始代价存储至预设存储位置。

在其中一个实施例中,所述左右相机图像包括:

利用双路双目相机模组获取两组所述左右相机图像;

通过分时复用的方式分别对两组所述左右相机图像执行视差图像的确定方法。

第二方面,本申请还提供了一种视差图像的确定装置。所述装置包括:

滑窗遍历模块,用于对左右相机图像进行立体匹配,得到待处理视差图像,并利用第一滑窗滑动遍历所述待处理视差图像;

连通确定模块,用于在所述第一滑窗对应的每一个局部视差图像中,确定所述局部视差图像中的各视差值与所述局部视差图像的中心位置对应的中心视差值的差值绝对值是否小于第一阈值;

统计模块,用于统计所述差值绝对值小于所述第一阈值的所述视差值的统计数量;

执行模块,用于若所述统计数量小于或等于第二阈值,保留所述中心视差值;若所述统计数量大于所述第二阈值,将所述中心视差值设置为目标值;

图像确定模块,用于在利用所述第一滑窗遍历所述待处理视差图像后,确定出目标视差图像。

第三方面,本申请还提供了一种集成电路芯片,所述集成电路芯片用于实现上述的方法的步骤。

第四方面,本申请还提供了一种计算机设备。所述计算机设备包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述的方法的步骤。

第五方面,本申请还提供了一种计算机可读存储介质。所述计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述的方法的步骤

第六方面,本申请还提供了一种计算机程序产品。所述计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述的方法的步骤。

上述视差图像的确定方法、装置、集成电路芯片、计算机设备、存储介质和计算机程序产品,本方法中,利用第一滑窗滑动遍历待处理视差图像,在第一滑窗对应的每一个局部视差图像中,确定局部视差图像中的各视差值与局部视差图像的中心位置对应的中心视差值的差值绝对值是否小于或等于第一阈值;再统计差值绝对值小于或等于第一阈值的视差值的统计数量,并根据统计结果删除噪点,得到目标视差图像。相较于现有技术,本方法是针对第一滑窗对应的局部视差图像进行判断计算,能够降低判断计算过程的复杂度,因此能够提高出确定视差图像的便捷度和效率。

附图说明

图1为一个实施例中视差图像的确定方法的流程示意图;

图2为一个实施例中计算初始代价的过程示意图;

图3为一个实施例中计算变换向量的过程示意图;

图4为一个实施例中计算初始代价的过程示意图;

图5为一个实施例中左右相机图像中的第一图像或者第二图像的示意图;

图6为未进行饱和处理的初始代价对应的待处理视差图像的示意图;

图7为进行饱和处理后的初始代价对应的待处理视差图像的示意图;

图8为传统技术方案中八方向聚合代价操作对应的视差图的示意图;

图9为一个实施例中四方向聚合代价操作对应的视差图的示意图;

图10为一个实施例中分时复用的时序示意图;

图11为一个实施例中视差图像的确定装置的结构框图;

图12为一个实施例中计算机设备的内部结构图。

具体实施方式

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

本申请实施例提供的视差图像的确定方法,可以应用于设置有双目相机的终端设备;终端设备利用双目相机获取左右相机图像,并对左右相机图像进行立体匹配,得到待处理视差图像,并利用第一滑窗滑动遍历待处理视差图像;在第一滑窗对应的每一个局部视差图像中,确定局部视差图像中的各视差值与局部视差图像的中心位置对应的中心视差值的差值绝对值是否小于或等于第一阈值;统计差值绝对值小于或等于第一阈值的视差值的统计数量;若统计数量小于或等于第二阈值,保留中心视差值;若统计数量大于第二阈值,将中心视差值设置为目标值;在利用第一滑窗遍历待处理视差图像后,确定出目标视差图像。其中,终端设备可以但不限于是各种智能驾驶设备和便携式可穿戴设备,智能驾驶设备可为无人驾驶汽车、扫地机器人等,便携式可穿戴设备可为智能手表、智能手环、头戴设备等。可以理解的是,该方法也可以应用于包括双目相机和服务器的系统,双目相机采获取左右相机图像并发送给服务器,利用服务器执行视差图像的确定方法,确定出目标视差图像。其中,服务器可以用独立的服务器或者是多个服务器组成的服务器集群来实现。

在一个实施例中,提供了一种视差图像的确定方法,以该方法应用于终端设备为例说明,包括以下步骤:

步骤102,对左右相机图像进行立体匹配,得到待处理视差图像,并利用第一滑窗滑动遍历待处理视差图像。

在本实施例中,左右相机图像指的是通过双目相机获取到的图像,一般包括第一图像和第二图像。在一种具体的实施例中,第一图像对应为左图像,第二图像对应为右图像,且一般将左图像作为参考图像。其中,待处理视差图像指的是需要进行滑窗去噪的视差图像;视差图像指为根据参考图像中每个像素对应的视差值所构成的视差图;视差是三维场景中某一点在左右相机图像中对应点位置的像素级差距。在实际操作中,通过对左右相机图像进行立体匹配,得到待处理视差图像。

其中,第一滑窗指的是第一预设格式的滑动窗口;在对左右相机图像进行立体匹配,得到待处理视差图像之后,利用第一滑窗按照第一滑动步长滑动遍历待处理视差图像。本实施例中,第一滑窗的窗口大小一般为m*n;其中,m和n均为奇数,且m和n可以相等;第一滑窗对应的第一滑动步长为1。

步骤104,在第一滑窗对应的每一个局部视差图像中,确定局部视差图像中的各视差值与局部视差图像的中心位置对应的中心视差值的差值绝对值是否小于或等于第一阈值;

步骤106,统计差值绝对值小于或等于第一阈值的视差值的统计数量;

步骤108,若统计数量小于或等于第二阈值,保留中心视差值;若统计数量大于第二阈值,将中心视差值设置为目标值。

具体的,在利用第一滑窗滑动遍历待处理视差图像的过程中,在第一滑窗每次滑动之后,待处理视差图像中与第一滑窗对应的局部图像为局部视差图像。针对第一滑窗滑动遍历待处理视差图像时对应的每一个局部视差图像,均进行如下处理:

根据第一滑窗和当前的局部视差图像,确定局部视差图像的中心位置,并获取该中心位置对应的中心视差值;确定局部视差图像中各其他位置对应的视差值;计算局部视差图像中的各视差值分别与中心视差值对应的差值绝对值;将各差值绝对值分别与第一阈值(threshold0)进行比较,判断各差值绝对值是否小于或等于第一阈值(threshold0);统计差值绝对值小于或等于第一阈值(threshold0)的视差值的统计数量;判断统计出的统计数量是否小于或等于第二阈值(threshold1);若统计数量小于或等于第二阈值(threshold1),保留中心视差值;若统计数量大于第二阈值(threshold1),将中心视差值设置为目标值;其中,目标值可是0。至此,完成对当前的局部视差图像的滑窗去噪。

然后,第一滑窗按照第一滑动步长继续滑动,将滑动后对应的局部视差图像作为当前的局部视差图像并继续进行处理。

需要说明的是,本实施例中的第一阈值和第二阈值根据实际经验设置,本实施例对第一阈值和第二阈值的具体取值不做限定。

步骤110,在利用第一滑窗遍历待处理视差图像后,确定出目标视差图像。

在本步骤中,是在利用第一滑窗遍历待处理视差图像,针对第一滑窗对应的各局部视差图像分别进行滑窗去噪操作后,确定出目标视差图像。也就是说,目标视差图像是利用第一滑窗遍历待处理视差图像并进行滑窗去噪操作后得到的图像。

需要说明的是,在确定出目标视差图像后,终端设备可以根据目标视差图像进行避障、三维建模、检测识别等操作。

上述视差图像的确定方法,利用第一滑窗滑动遍历待处理视差图像,在第一滑窗对应的每一个局部视差图像中,确定局部视差图像中的各视差值与局部视差图像的中心位置对应的中心视差值的差值绝对值是否小于或等于第一阈值;再统计差值绝对值小于或等于第一阈值的视差值的统计数量,并根据统计结果删除噪点,得到目标视差图像。相较于现有技术,本方法是针对第一滑窗对应的局部视差图像进行判断计算,能够降低判断计算过程的复杂度,因此能够提高出确定视差图像的便捷度和效率。

作为一种优选的实施方式,统计差值绝对值小于第一阈值的视差值的统计数量,包括:将局部视差图像中差值绝对值小于或等于第一阈值的视差值设置为1;将局部视差图像中差值绝对值大于第一阈值的视差值设置为0;计算局部视差图像中的各更新后的视差值的累计值,得到统计数量。

具体的,在本实施例中,是在分别将各差值绝对值与第一阈值(threshold0)进行比较,判断各差值绝对值是否小于或等于第一阈值(threshold0)之后;将局部视差图像中差值绝对值小于或等于第一阈值(threshold0)的视差值设置为1,将局部视差图像中差值绝对值大于第一阈值(threshold0)的视差值设置为0;即利用视差值1表示该位置对应的像素点与中心视差值对应的像素点连通,利用视差值0表示该位置对应的像素点与中心视差值对应的像素点不连通。然后,计算局部视差图像中的各更新后的视差值的累计值,得到统计数量,也就是计算当前的局部视差图像中的1的个数,得到差值绝对值小于或等于第一阈值的视差值的统计数量。需要说明的是,按照本实施例的方法确定出统计数量后,需要进一步将视差值恢复为调整前的视差值,以便后续利用视差值进行处理计算。

作为另一种优选的实施方式,统计差值绝对值小于第一阈值的视差值的统计数量,预设统计变量,且初始化该统计变量为0;依次判断计算出的各差值绝对值是否小于或等于第一阈值时,若判断出差值绝对值小于或等于第一阈值,则将统计变量加1,否则统计变量保持不变;并继续判断下一个差值绝对值是否小于或等于第一阈值,直至对局部视差图像中对应的各差值绝对值均进行判断,此时统计变量对应的值即为统计数量。

可见,按照本实施例的方法,能够便捷准确地确定出差值绝对值小于或等于第一阈值的视差值的统计数量。

在上述实施例的基础上,本实施例对技术方案作了进一步的说明和优化,具体的,本实施例中,对左右相机图像进行立体匹配,得到待处理视差图像,包括:

获取左右相机图像;

根据左右相机图像计算初始代价;

根据初始代价进行代价聚合操作,得到最终代价;

对最终代价进行视差计算,确定出待处理视差图像。

具体的,在利用双目相机获取到左右相机图像后,首先根据左右相机图像计算对应的初始代价。其中,可以通过Census变换法计算左右相机图像对应的初始代价。

代价聚合操作指的是以相似区域具有相似的视差为操作依据,为减少初始代价中匹配模糊和图像噪声的影响的操作;代价聚合操作包括图像分割、自适应权重以及自适应窗口等方法;在对初始代价进行代价聚合操作后,得到的即为最终代价。

在确定出最终代价后,通过对最终代价进行视差计算,得到待处理视差图像。更具体的,可以通过WTA(winner takes all)视差计算的方式来计算对应的视差;本实施例对视差计算的具体方式不做限定。

可见,按照本实施例的方法,能够快速便捷地确定出待处理视差图像。

需要说明的是,在实际操作中,在进行视差计算后,还可进一步进行视差优化操作,视差优化操作包括剔除错误匹配、剔除小连连通区(Remove Peaks)、唯一性检测(Uniqueness Check)、亚像素差值和左右一致性检测等。通过进一步对待处理视差图像进行视差优化处理,提高视差精度,使待处理视差图像更可靠、更精确;因此能够提高后续基于待处理视差图像进行滑窗去噪操作的精准度。

另外需要说明的是,在实际操作中,在获取左右相机图像后,可以进一步对左右相机图像进行图像校正操作,后续针对图像校正操作后的左右相机计算初始代价。其中,图像校正操作包括镜头阴影校正、双边滤波去噪、降采样、自动曝光等预处理步骤,经过预处理后的左右相机图像数据需要进行去畸变、平行校正操作,得到校正后的左右相机图像。

可见,本实施例通过对获取到的左右相机图像进行图像校正操作,能够增强左右相机图像中的有效信息,提高利用左右相机图像中确定的待处理视差图像的图像质量,进而提高确定目标视差图像的图像质量。

如图2所示,为本实施例提供的一种计算初始代价的过程示意图。在上述实施例的基础上,本实施例对技术方案作了进一步的说明和优化,具体的,本实施例中,根据左右相机图像计算初始代价,包括:

步骤202:利用第二滑窗遍历第一图像,确定第二滑窗对应的各第一局部像素图像,并确定与各第一局部像素图像对应的第一变换向量;其中,左右相机图像包括第一图像和第二图像。

其中,左右相机图像包括第一图像(左图像)和第二图像(右图像),以第一图像(左图像)作为参考图像。第二滑窗指的是第二预设格式的滑动窗口;利用第二滑窗按照第二滑动步长滑动遍历第一图像,在第二滑窗遍历第一图像的过程中,第一图像中与第二滑窗对应的局部图像为第一局部像素图像。针对每一个局部像素图像,确定与第一局部像素图像对应的第一变换向量。

如图3所示的一种计算变换向量的过程示意图;假设第二滑窗为3*3格式的滑窗,将第二滑窗的各像素值分别与滑窗中心的像素值进行比较,将像素值小于或等于滑窗中心的像素值的位置设置为0,将像素值大于滑窗中心的像素值的位置设置为1,确定出第一变换向量(Cencus向量)。

步骤204:确定第二图像中与第一局部像素图像对应的第二局部像素图像的第二变换向量。

根据第二滑窗在第一图像中的位置,在第二图像中依据相同的滑窗位置确定出第二局部像素图像;并按照上述相同的方式,确定出第二局部像素图像对应的第二变换向量。

步骤206:根据第一变换向量和第二变换向量,确定与第一局部像素图像对应的局部初始代价。

在针对第二滑窗对应的第一局部像素图像和第二局部像素图像分别确定出对应的第一变换向量和第二变换向量后,计算第一变换向量和第二变换向量的汉明距离;具体为对第一变换向量和第二变换向量对应的序列逐位执行异或运算,再统计异或运算结果中的比特位为1的个数,得到对应的汉明距离;即确定出一个滑窗位置对应的局部初始代价。其中,汉明距离为表示第一变换向量和第二变换向量的相似度的值,汉明距离越小,相似度越大。

步骤208:在利用第二滑窗遍历第一图像后,得到与第一图像对应的初始代价;初始代价包括局部初始代价。

具体的,利用第二滑窗遍历第一图像,并针对第二滑窗的每个滑窗位置,分别确定出与各滑窗位置对应的第一局部像素图像的局部初始代价;在利用第二滑窗遍历第一图像后,即获取第一图像的各第一局部像素图像分别对应的局部初始代价,再通过整理得出与第一图像对应的初始代价。

具体的,如图4所示的一种计算初始代价的过程示意图。具体的,获取3*3格式的第一局部像素图像分别对应的汉明距离,将3*3格式中的各汉明距离求和,得到对应的初始代价。

可见,本实施例中的确定初始代价的方法,保留了第二滑窗中像素的位置特征,并且对亮度偏差较为鲁棒,能够减少光照差异引起的误匹配。

作为优选的实施方式,步骤204:确定第二图像中与第一局部像素图像对应的第二局部像素图像的第二变换向量,包括:

确定预设视差范围,计算第二图像中与第一局部像素图像对应的第二局部像素图像在预设视差范围内分别对应的待确认第二变换向量;待确认第二变换向量包括第二变换向量;

在本实施例中,首先确定预设视差范围,在第二图像中确定与第一图像中的相同的滑窗位置对应的第二局部像素图像后,针对预设视差范围中的每一个候选视差值,分别计算假设视差值为候选视差值时,第二局部像素图像对应的第二变换向量,即得到待确认第二变换向量。

对应的,步骤206:根据第一变换向量和第二变换向量,确定与第一局部像素图像对应的局部初始代价,包括:

根据第一变换向量和各待确认第二变换向量分别确定对应的待确认局部初始代价;

将待确认局部初始代价中的最小值,确定为局部初始代价。

对应的,在依据预设差值范围确定出第二局部像素图像对应的多个待确认第二变换向量后,计算第一变换向量与各待确认第二变换向量分别对应的汉明距离,即得到与各第一局部像素图像对应的多个待确认局部初始代价。然后,比较第一局部像素图像对应的多个待确认局部初始代价的大小,将多个待确认局部初始代价中的最小值,确定为局部初始代价。

可见,按照本实施例的方法确定出局部初始代价,因此后续利用各最小局部初始代价确定出的初始代价为最小初始代价,能够减少初始代价所需占用的逻辑资源。

在上述实施例的基础上,本实施例对技术方案作了进一步的说明和优化,具体的,本实施例中,在根据左右相机图像计算初始代价之后,以及根据初始代价进行代价聚合操作,得到最终代价之前,方法还包括:

对初始代价进行饱和操作,得到更新后的初始代价。

具体的,饱和操作指的是对初始代价进行调整,以使得后续利用调整后的初始代价进行操作时能达到更优的处理效果的操作。在实际操作中,可以直接对初始代价进行计算,将初始代价的一半或者其他比例对应的值作为更新后的初始代价;或者直接将初始代价减去预设值,并将计算结果作为更新后的初始代价;本实施例对饱和操作的具体过程不做限定。

需要说明的是,进一步对初始代价进行饱和操作,使得调整后的初始代价能够在不影响确定出的目标视差图像的精度的情况下,减少对逻辑资源的占用。

作为优选的实施方式,对初始代价进行饱和操作,得到更新后的初始代价,包括:

若初始代价大于或等于第三阈值,将初始代价设置为第一预设值;

否则,删除初始代价对应的二进制的最低位,并利用删除最低位后的二进制值更新初始代价。

其中,第三阈值为用于确定采用何种方式调整初始代价的判断值;本实施例对第三阈值的实际值不做限定,可根据实际需求设置。在一种实际操作中,为了将调整后的初始代价降到4比特以下,因此将5比特的二进制对应的最大值31,设置为第三阈值。其中,根据4比特的二进制对应的最大值1111,设置第一预设值为15。

在一种具体实施方式中,假设第三阈值为31,第一预设值为15,对初始代价进行饱和操作,操作原理如下:

根据上述操作原理,若初始代价(cost_block)大于或等于第三阈值31,则直接将该初始代价设置为第一预设值15;若初始代价(cost_block)小于第三阈值31,则删除初始代价对应的二进制的最低位,利用删除最低位后二进制值更新初始代价。例如,若初始代价为35(100011);则直接将该初始代价设置为第一预设值15;若初始代价为30(11110),则删除该初始代价对应的最低位,得到二进制1111,根据删除最低位得到的二进制1111,确定更新后的初始代价为15;若初始代价为12(1100),则删除该初始代价对应的最低位,得到二进制110,根据删除最低位得到的二进制110,确定更新后的初始代价为6。

可以理解的是,通过对初始代价进行饱和操作,能够减少初始代价所需占用的逻辑资源。并且,由于在后续的处理过程中是利用最小初始代价进行计算的,因此对初始代价进行饱和处理导致的视差精度影响可忽略。例如,图5为左右相机图像中的第一图像或者第二图像的示意图,根据是否对初始代价进行饱和处理设置对应的仿真算法效果,得到对应的待处理视差图像;图6为未进行饱和处理的初始代价对应的待处理视差图像的示意图,图7为进行饱和处理后的初始代价对应的待处理视差图像的示意图,比较图6和图7可以看出,若对初始代价进行饱和处理,得到的待处理视差图像边缘会有毛躁现象发生,但深度信息无明显误差,图像绝大部分视差信息是保留住的,对于边缘深度信息的误差可以忽略不计;因此可以说明对初始代价进行饱和处理,不仅保留了深度信息的精度,也极大地降低了逻辑资源的消耗。

在上述实施例的基础上,本实施例对技术方案作了进一步的说明和优化,具体的,本实施例中,根据初始代价进行代价聚合操作,得到最终代价,包括:

根据初始代价进行四方向聚合代价操作,得到最终代价。

具体的,在本实施例中,对进行饱和处理后的初始代价进行四方向聚合代价操作,代价聚合原理如下:

其中,L

Cost(p,d)表示匹配点p的匹配代价值;

L

L

L

min

P1和P2为可调整参数,用于对视差进行补偿,对算法进行微调;P1表示视差差异为1的惩罚系数,P2表示该方向最小初始代价的惩罚系数。

多方向的聚合代价值为:

本实施例中,对W、NW、N、NE四方向进行聚合代价操作,极大地减少了需要缓存的数据量,降低计算复杂度,能够提高进行代价聚合的效率;并且,经测试,按照本实施例的方法进行代价聚合,能够有效地保留聚合代价的精度,效果对比图8和图9所示;图8为传统技术方案中八方向聚合代价操作对应的视差图的示意图,图9为本实施例中四方向聚合代价操作对应的视差图的示意图;比较图8和图9可以看出,视差图信息的确会造成信息缺失,但是大部分深度信息未丢失,对于大部分的避障、检测识别等应用是不受影响的。

在上述实施例的基础上,本实施例对技术方案作了进一步的说明和优化,具体的,本实施例中,方法还包括:

按照预设规则将各待确认局部初始代价和局部初始代价分组;

将分组后的各待确认局部初始代价和局部初始代价进行信息拼接,并按照拼接结果将各待确认局部初始代价和局部初始代价存储至预设存储位置。

其中,可以是按照代价聚合的聚合方向将各待确认局部初始代价和局部初始代价分组,得到与各聚合方向分别对应的数据,数据包括待确认局部初始代价和局部初始代价。

在对数据分组后,将分组后的各待确认局部初始代价和局部初始代价进行信息拼接,得到拼接后的信息;然后按照拼接结果将各待确认局部初始代价和局部初始代价存储至预设存储位置。

可以理解的是,在进行并行代价聚合操作时,需要缓存每个聚合方向分别对应的待确认局部初始代价和局部初始代价,如果采用视差独立缓存的方式,需要占用大量的片上存储资源。

在代价聚合和视差计算的过程中均可以采用拼接缓存方法。在一种具体的操作中,在图像分辨率为800x500,视差范围取74情况下,采用视差独立缓存和拼接缓存分别对应的内存占用资源情况对比如下:

表1缓存方法的内存资源占用对比

从上表可以看出,按照本实施例的拼接缓存方法,可以大量减少片上存储资源的占用。

在上述实施例的基础上,本实施例对技术方案作了进一步的说明和优化,具体的,本实施例中,左右相机图像包括:

利用双路双目相机模组获取两组左右相机图像;

通过分时复用的方式分别对两组左右相机图像执行视差图像的确定方法。

其中,双目相机模组指的是能针对拍摄对象拍摄得出左右两幅图像的相机,常见的双目相机模组根据实际需求也有多种类型,本实施例对双目相机模组的具体类型不做限定。双路双目相机模组指的是利用两组双目相机模组对同一拍摄对象进行拍摄。

假设双路双目相机模组包括双目相机模组0和双目相机模组1,且双目相机模组0和双目相机模组1分别获取对应的左右相机图像,通过分时复用的方式分别对两组左右相机图像执行视差图像的确定方法。即组包括双目相机模组0和双目相机模组1分时产生图像帧头、图像有效信号、图像数据,根据帧头计数切换处理通道proc_chanel,分时输出两路分别与双目相机模组0和双目相机模组1对应的目标视差图像。

如图10所示的一种分时复用的时序示意图;其中,clk为时钟信号,rst_n为复位信号;img_frm_vld1和img_frm_vld2表示双目相机模组0和双目相机模组1分别对应的图像帧头信号;img_row_vld1和img_row_vld2表示双目相机模组0和双目相机模组1分别对应的图像行有效信号;imgl_dat1和imgr_dat1表示双目相机模组0的左右两幅图像;imgl_dat2和imgr_dat2表示双目相机模组1的左右两幅图像;proc_chanel表示正在处理的通道,通过切换该通道为双目相机模组0或双目相机模组1,即表示处理双目相机模组0或双目相机模组1对应的左右相机图像;disp_frm_vld表示深度图数据帧头;disp_row_vld表示深度行有效信号;disp_dat表示得出的目标视差图像。

按照本实施例的方法,对双路双目相机模组获取两组左右相机图像进行分时复用的处理机制,不仅能够保障双路双目相机模组的处理速度,并且降低了单模组的曝光频率,显著地降低了双目相机模组的工作功耗。

为了使本技术领域的人员更好地理解本申请中的技术方案,下面结合实际应用场景对本申请实施例中的技术方案进行详细说明。本申请实施例提供的一种视差图像的确定方法,具体步骤如下:

利用双路双目相机模组获取两组左右相机图像;

通过分时复用的方式分别对两组左右相机图像执行视差图像的确定方法;其中,每一路双目相机模组获取的左右相机图像包括第一图像和第二图像;

利用第二滑窗遍历第一图像,确定第二滑窗对应的各第一局部像素图像,并确定与各第一局部像素图像对应的第一变换向量;

确定预设视差范围,计算第二图像中与第一局部像素图像对应的第二局部像素图像在预设视差范围内分别对应的待确认第二变换向量;待确认第二变换向量包括第二变换向量;

根据第一变换向量和各待确认第二变换向量分别确定对应的待确认局部初始代价;

将待确认局部初始代价中的最小值,确定为局部初始代价;

按照预设规则将各待确认局部初始代价和局部初始代价分组;

将分组后的各待确认局部初始代价和局部初始代价进行信息拼接,并按照拼接结果将各待确认局部初始代价和局部初始代价存储至预设存储位置;

在利用第二滑窗遍历第一图像后,得到与第一图像对应的初始代价;初始代价包括局部初始代价;

对初始代价进行饱和操作,得到更新后的初始代价;对初始代价进行饱和操作,得到更新后的初始代价,包括:

若初始代价大于或等于第三阈值,将初始代价设置为第一预设值;

否则,删除初始代价对应的二进制的最低位,并利用删除最低位后的二进制值更新初始代价;

根据更新后的初始代价进行四方向聚合代价操作,得到最终代价;

对最终代价进行视差计算,确定出待处理视差图像;

利用第一滑窗滑动遍历待处理视差图像;

在第一滑窗对应的每一个局部视差图像中,确定局部视差图像中的各视差值与局部视差图像的中心位置对应的中心视差值的差值绝对值是否小于或等于第一阈值;

将局部视差图像中差值绝对值小于或等于第一阈值的视差值设置为1;

将局部视差图像中差值绝对值大于第一阈值的视差值设置为0;

计算局部视差图像中的各更新后的视差值的累计值,得到统计数量;

若统计数量小于或等于第二阈值,保留中心视差值;

若统计数量大于第二阈值,将中心视差值设置为0;

在利用第一滑窗遍历待处理视差图像后,确定出目标视差图像。

上述视差图像的确定方法,本方法中,利用第一滑窗滑动遍历待处理视差图像,在第一滑窗对应的每一个局部视差图像中,确定局部视差图像中的各视差值与局部视差图像的中心位置对应的中心视差值的差值绝对值是否小于或等于第一阈值;再统计差值绝对值小于或等于第一阈值的视差值的统计数量,并根据统计结果删除噪点,得到目标视差图像。相较于现有技术,本方法是针对第一滑窗对应的局部视差图像进行判断计算,能够降低判断计算过程的复杂度,因此能够提高出确定视差图像的便捷度和效率。

应该理解的是,虽然如上的各实施例所涉及的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,如上的各实施例所涉及的流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。

基于同样的发明构思,本申请实施例还提供了一种用于实现上述所涉及的视差图像的确定方法的视差图像的确定装置。该装置所提供的解决问题的实现方案与上述方法中所记载的实现方案相似,故下面所提供的一个或多个视差图像的确定装置实施例中的具体限定可以参见上文中对于视差图像的确定方法的限定,在此不再赘述。

在一个实施例中,如图11所示,提供了一种视差图像的确定装置,包括:滑窗遍历模块1102、连通确定模块1104、统计模块1106、执行模块1108和图像确定模块1110,其中:

滑窗遍历模块1102,用于对左右相机图像进行立体匹配,得到待处理视差图像,并利用第一滑窗滑动遍历待处理视差图像;

连通确定模块1104,用于在第一滑窗对应的每一个局部视差图像中,确定局部视差图像中的各视差值与局部视差图像的中心位置对应的中心视差值的差值绝对值是否小于第一阈值;

统计模块1106,用于统计差值绝对值小于第一阈值的视差值的统计数量;

执行模块1108,用于若统计数量小于或等于第二阈值,保留中心视差值;若统计数量大于第二阈值,将中心视差值设置为目标值;

图像确定模块1110,用于在利用第一滑窗遍历待处理视差图像后,确定出目标视差图像。

本发明实施例提供的一种视差图像的确定装置,具有与上述一种视差图像的确定方法相同的有益效果。

在其中一个实施例中,滑窗遍历模块包括:

获取子模块,用于获取左右相机图像;

初始代价计算子模块,用于根据左右相机图像计算初始代价;

代价聚合子模块,用于根据初始代价进行代价聚合操作,得到最终代价;

视差计算子模块,用于对最终代价进行视差计算,确定出待处理视差图像。

在其中一个实施例中,初始代价计算子模块包括:

第一确定单元,用于利用第二滑窗遍历第一图像,确定第二滑窗对应的各第一局部像素图像,并确定与各第一局部像素图像对应的第一变换向量;其中,左右相机图像包括第一图像和第二图像;

第二确定单元,用于确定第二图像中与第一局部像素图像对应的第二局部像素图像的第二变换向量;

第三确定单元,用于根据第一变换向量和第二变换向量,确定与第一局部像素图像对应的局部初始代价;

第四确定单元,用于在利用第二滑窗遍历第一图像后,得到与第一图像对应的初始代价;初始代价包括局部初始代价。

在其中一个实施例中,第二确定单元包括:

第一确定子单元,用于确定预设视差范围,计算第二图像中与第一局部像素图像对应的第二局部像素图像在预设视差范围内分别对应的待确认第二变换向量;待确认第二变换向量包括第二变换向量;

第三确定单元,包括:

第二确定子单元,用于根据第一变换向量和各待确认第二变换向量分别确定对应的待确认局部初始代价;

第三确定子单元,用于将待确认局部初始代价中的最小值,确定为局部初始代价。

在其中一个实施例中,视差图像的确定装置还包括:

饱和操作模块,用于对初始代价进行饱和操作,得到更新后的初始代价。

在其中一个实施例中,饱和操作模块包括:

执行子模块,用于若初始代价大于或等于第三阈值,将初始代价设置为第一预设值;否则,删除初始代价对应的二进制的最低位,并利用删除最低位后的二进制值更新初始代价。

在其中一个实施例中,代价聚合子模块包括:

代价聚合单元,用于根据初始代价进行四方向聚合代价操作,得到最终代价。

在其中一个实施例中,视差图像的确定装置还包括:

分组模块,用于按照预设规则将各待确认局部初始代价和局部初始代价分组;

存储模块,用于将分组后的各待确认局部初始代价和局部初始代价进行信息拼接,并按照拼接结果将各待确认局部初始代价和局部初始代价存储至预设存储位置。

上述视差图像的确定装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。

在一个实施例中,提供了一种集成电路芯片,集成电路芯片在运行时实现上述的方法的步骤。

其中,集成电路芯片可以是FPGA(Field-Programmable Gate Array,现场可编程门阵列)或者CPLD(Complex Programmable Logic Device,复杂可编程逻辑器件)等,本实施例对集成电路芯片的具体类型不做限定。

本申请实施例提供的一种集成电路芯片,具有与上述一种视差图像的确定方法相同的有益效果;并且利用集成电路芯片执行上述方法,处理速度快。

在一个实施例中,提供了一种计算机设备,该计算机设备可以是终端设备,其内部结构图可以如图12所示。该计算机设备包括通过系统总线连接的处理器、存储器、通信接口、显示屏和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的通信接口用于与外部的终端进行有线或无线方式的通信,无线方式可通过WIFI、移动蜂窝网络、NFC(近场通信)或其他技术实现。该计算机程序被处理器执行时以实现一种视差图像的确定方法。该计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。

本领域技术人员可以理解,图12中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。

在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现上述的方法的步骤。

本申请实施例提供的一种计算机设备,具有与上述一种视差图像的确定方法相同的有益效果。

在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述的方法的步骤。

本申请实施例提供的一种计算机可读存储介质,具有与上述一种视差图像的确定方法相同的有益效果。

在一个实施例中,提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述的方法的步骤。

本申请实施例提供的一种计算机程序产品,具有与上述一种视差图像的确定方法相同的有益效果。

需要说明的是,本申请所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-OnlyMemory,ROM)、磁带、软盘、闪存、光存储器、高密度嵌入式非易失性存储器、阻变存储器(ReRAM)、磁变存储器(Magnetoresistive Random Access Memory,MRAM)、铁电存储器(Ferroelectric Random Access Memory,FRAM)、相变存储器(Phase Change Memory,PCM)、石墨烯存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器等。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic RandomAccess Memory,DRAM)等。本申请所提供的各实施例中所涉及的数据库可包括关系型数据库和非关系型数据库中至少一种。非关系型数据库可包括基于区块链的分布式数据库等,不限于此。本申请所提供的各实施例中所涉及的处理器可为通用处理器、中央处理器、图形处理器、数字信号处理器、可编程逻辑器、基于量子计算的数据处理逻辑器等,不限于此。

以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。

以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请的保护范围应以所附权利要求为准。

相关技术
  • 一种基于双目图像确定视差图的方法及装置
  • 图像模糊度确定方法、装置、计算机设备及存储介质
  • 扫描范围的确定方法、医学图像的获取方法、装置和设备
  • 图像分割方法、装置、计算机设备及计算机存储介质
  • 图像生成方法和装置、计算机设备和计算机存储介质
  • 视差图像生成装置、视差图像生成方法、程序及集成电路
  • 视差图像生成装置、视差图像生成方法、程序及集成电路
技术分类

06120116483200