高精度稠密深度图像的生成方法和装置与流程

文档序号:17430719发布日期:2019-04-17 03:27阅读:281来源:国知局
高精度稠密深度图像的生成方法和装置与流程

本申请涉及图像处理技术领域,特别涉及一种高精度稠密深度图像的生成方法和装置。



背景技术:

随着计算机视觉技术的发展,携带有深度信息的深度图像的应用越来越广泛。例如,在图像识别与处理、场景理解、增强与虚拟现实、机器人导航等应用领域,都会使用到深度图像这种图像数据。相应的,人们对深度图像的精度、分辨率等要求也越来越高。

目前,为了获取得到精度较高的深度图像,大多会将tof(timeofflight)相机等深度相机所采集到的图像数据直接融入并参与双目立体视觉的匹配算法中,以简化由双目相机(包括左摄像头和右摄像头的相机)所采集的图像数据的立体匹配,最终得到精度相对较高的深度图像。

但是,由于深度相机抗干扰能力较差,所采集的图像数据往往分辨率、精度相对较低,容易出现误差信息。例如,在某些特殊材料或物体边缘会出现一些不可靠的图像数据。而基于上述方法,具体实施时,会将深度相机所采集的图像数据中存在的一些误差信息也一并引入匹配算法中,并随着匹配过程被传递和扩散,导致最终得到深度图像往往会存在误差,表现较为稀疏,且分辨率不高、准确度也相对较差。即,现有方法往往存在所确定的深度图像误差大、精度不高的技术问题。

针对上述问题,目前尚未提出有效的解决方案。



技术实现要素:

本申请实施例提供了一种高精度稠密深度图像的生成方法和装置,以解决现有方法中存在的确定深度图像误差大、精度不高的技术问题,达到获取稠密的、具有较高精度和分辨率的深度图像的技术效果。

本申请实施例提供了一种高精度稠密深度图像的生成方法,包括:

获取第一图像、第二图像和第三图像,其中,所述第一图像为通过左摄像头获取的包含有目标对象的图像数据,所述第二图像为通过右摄像头获取的包含有目标对象的图像数据,所述第三图像为通过深度相机获取的包含有目标对象的图像数据;

根据所述第一图像、所述第二图像和所述第三图像确定视差图;

根据所述第一图像中的待匹配像素点的灰度值、所述待匹配像素点的匹配窗口内的像素点的灰度值和预设编码规则,确定所述待匹配像素点的匹配窗口内的像素点的预设编码;

根据所述第一图像中的待匹配像素点的灰度值、所述待匹配像素点的匹配窗口内的像素点的预设编码、所述视差图,从所述第二图像中确定出与所述第一图像中的待匹配像素点对应的匹配像素点;

根据第一图像中的待匹配像素点,和所述第二图像中的与所述第一图像中的待匹配像素点对应的匹配像素点,确定第一深度图像。

在一个实施方式中,根据所述第一图像中的待匹配像素点的灰度值、所述待匹配像素点的匹配窗口内的像素点的灰度值和预设编码规则,确定所述待匹配像素点的匹配窗口内的像素点的预设编码,包括:

将所述待匹配像素点的匹配窗口内的像素点的灰度值分别与所述第一图像中的待匹配像素点的灰度值进行比较;

根据比较结果,将所述待匹配像素点的匹配窗口内的灰度值小于或等于所述待匹配像素点的灰度值的像素点的预设编码确定为1;将所述待匹配像素点的匹配窗口内的灰度值大于所述待匹配像素点的灰度值的像素点的预设编码确定为0。

在一个实施方式中,根据所述第一图像中的待匹配像素点的灰度值、所述待匹配像素点的匹配窗口内的像素点的预设编码、所述视差图,从所述第二图像中确定出与所述第一图像中的待匹配像素点对应的匹配像素点,包括:

根据所述待匹配像素点的第一坐标和所述视差图,从所述第二图像中筛选出多个像素点作为测试像素点;

确定测试像素点的灰度值,以及测试像素点的匹配窗口内的像素点的预设编码;

根据所述待匹配像素点的灰度值、所述待匹配像素点的匹配窗口内的像素点的预设编码、所述测试像素点的灰度值、所述测试像素点的匹配窗口内的像素点的预设编码,计算所述待匹配像素点与所述测试像素点的匹配代价;

将匹配代价数值最小的测试像素点确定为与所述第一图像中的待匹配像素点对应的匹配像素点。

在一个实施方式中,根据所述待匹配像素点的灰度值、所述待匹配像素点的匹配窗口内的像素点的预设编码、所述测试像素点的灰度值、所述测试像素点的匹配窗口内的像素点的预设编码,计算所述待匹配像素点与所述测试像素点的匹配代价,包括:

按照以下公式,计算所述待匹配像素点与所述测试像素点的匹配代价:

其中,c表示为待匹配像素点与测试像素点的匹配代价,表示为第一图像中的待匹配像素点的灰度值,表示为第二图像中的测试像素点的灰度值,表示为第一图像中待匹配像素点的匹配窗口内的编号为k的像素点的预设编码,表示为第二图像中测试像素点的匹配窗口内的编号为k的像素点的预设编码,n表示为所述匹配窗口内的像素点的总数。

在一个实施方式中,在根据第一图像中的待匹配像素点,和所述第二图像中的与所述第一图像中的待匹配像素点对应的匹配像素点,确定第一深度图像后,所述方法还包括:

根据所述视差图,生成修正权值;

根据所述修正权值和所述第一深度图像,确定第二深度图像。

在一个实施方式中,根据所述修正权值和所述第一深度图像,确定第二深度图像,包括:

按照以下公式,计算所述第二深度图像中像素点的数据值:

其中,qi表示为第二深度图像中编号为i的像素点的数据值,wij(i)表示为修正权值,i表示为视差图,pj表示为第一深度图像中对应的预设窗口内编号为j的像素点的数据值。

在一个实施方式中,所述修正权值按照以下公式确定:

其中,ii、ij表示为视差图中对应的预设窗口内相邻的两个像素点的数据值,μk表示为视差图中对应的预设窗口内的像素点的数据值的平均值,σk表示为视差图中对应的预设窗口内的像素点的数据值的方差,ε表示为惩罚值,τ表示为扰动值。

在一个实施方式中,在根据第一图像中的待匹配像素点,和所述第二图像中的与所述第一图像中的待匹配像素点对应的匹配像素点,确定第一深度图像后,所述方法还包括:

检测所述第一深度图像中是否存在空白区域,其中,所述空白区域为包含有多个数据值为0的像素点的区域;

在确定所述第一深度图像中存在空白区域的情况下,获取所述第一深度图像中非空白区域与所述空白区域相连的像素点的数据值;

根据所述第一深度图像中非空白区域与所述空白区域相连的像素点的数据值,修改所述空白区域内的像素点的数据值。

本申请实施例还提供了一种高精度稠密深度图像的生成装置,包括:

获取模块,用于获取第一图像、第二图像和第三图像,其中,所述第一图像为通过左摄像头获取的包含有目标对象的图像数据,所述第二图像为通过右摄像头获取的包含有目标对象的图像数据,所述第三图像为通过深度相机获取的包含有目标对象的图像数据;

第一确定模块,用于根据所述第一图像、所述第二图像和所述第三图像确定视差图;

第二确定模块,用于根据所述第一图像中的待匹配像素点的灰度值、所述待匹配像素点的匹配窗口内的像素点的灰度值和预设编码规则,确定所述待匹配像素点的匹配窗口内的像素点的预设编码;

第三确定模块,用于根据所述第一图像中的待匹配像素点的灰度值、所述待匹配像素点的匹配窗口内的像素点的预设编码、所述视差图,从所述第二图像中确定出与所述第一图像中的待匹配像素点对应的匹配像素点;

第四确定模块,用于根据第一图像中的待匹配像素点,和所述第二图像中的与所述第一图像中的待匹配像素点对应的匹配像素点,确定第一深度图像。

本申请实施例还提供了一种电子设备,包括处理器以及用于存储处理器可执行指令的存储器,所述处理器执行所述指令时实现获取第一图像、第二图像和第三图像,其中,所述第一图像为通过左摄像头获取的包含有目标对象的图像数据,所述第二图像为通过右摄像头获取的包含有目标对象的图像数据,所述第三图像为通过深度相机获取的包含有目标对象的图像数据;根据所述第一图像、所述第二图像和所述第三图像确定视差图;根据所述第一图像中的待匹配像素点的灰度值、所述待匹配像素点的匹配窗口内的像素点的灰度值和预设编码规则,确定所述待匹配像素点的匹配窗口内的像素点的预设编码;根据所述第一图像中的待匹配像素点的灰度值、所述待匹配像素点的匹配窗口内的像素点的预设编码、所述视差图,从所述第二图像中确定出与所述第一图像中的待匹配像素点对应的匹配像素点;根据第一图像中的待匹配像素点,和所述第二图像中的与所述第一图像中的待匹配像素点对应的匹配像素点,确定第一深度图像。

本申请实施例还提供了一种计算机可读存储介质,其上存储有计算机指令,所述指令被执行时实现获取第一图像、第二图像和第三图像,其中,所述第一图像为通过左摄像头获取的包含有目标对象的图像数据,所述第二图像为通过右摄像头获取的包含有目标对象的图像数据,所述第三图像为通过深度相机获取的包含有目标对象的图像数据;根据所述第一图像、所述第二图像和所述第三图像确定视差图;根据所述第一图像中的待匹配像素点的灰度值、所述待匹配像素点的匹配窗口内的像素点的灰度值和预设编码规则,确定所述待匹配像素点的匹配窗口内的像素点的预设编码;根据所述第一图像中的待匹配像素点的灰度值、所述待匹配像素点的匹配窗口内的像素点的预设编码、所述视差图,从所述第二图像中确定出与所述第一图像中的待匹配像素点对应的匹配像素点;根据第一图像中的待匹配像素点,和所述第二图像中的与所述第一图像中的待匹配像素点对应的匹配像素点,确定第一深度图像。

在本申请实施例中,通过根据预设编码规则获取并利用第一图像中的待匹配像素点邻近的匹配窗口内的像素点预设编码,结合待匹配像素点的灰度值,并以视差图为约束,通过匹配从第二图像中确定出较为准确的匹配像素点,用以确定深度图像,减少了由于光照导致灰度信息出现差异等因素所引起的匹配误差,从而解决了现有方法中存在的确定深度图像误差大、精度不高的技术问题,达到获取稠密的、具有较高精度和分辨率的深度图像的技术效果。

附图说明

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

图1是根据本申请实施方式提供的高精度稠密深度图像的生成方法的处理流程图;

图2是根据本申请实施方式提供的高精度稠密深度图像的生成方法中的一个实施例示意图;

图3是根据本申请实施方式提供的高精度稠密深度图像的生成方法中的一个实施例示意图;

图4是根据本申请实施方式提供的高精度稠密深度图像的生成方法中的一个实施例示意图;

图5是根据本申请实施方式提供的高精度稠密深度图像的生成装置的组成结构图;

图6是基于本申请实施例提供的高精度稠密深度图像的生成方法的电子设备组成结构示意图。

具体实施方式

为了使本技术领域的人员更好地理解本申请中的技术方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。

考虑到现有的深度图像的生成方法,大多是直接将通过tof相机等深度相机采集得到图像数据,引入并参与双目相机中的左、右摄像头采集的图像数据的立体视觉匹配中,以简化匹配过程,得到最终的深度图像。但是,由于tof相机等深度相机的实现机理不同于普通的相机,相对更容易受到外界干扰,导致所采集的图像数据分辨率相对较差、精度相对较低,即,本身就可能会存在许多误差信息。因此,现有方法在引入tof相机等深度相机采集的图像数据参与匹配时,也会将上述误差信息一同引入匹配过程,且在匹配过程上述误差信息还会被传递、放大,导致匹配结果不准确,进而使得最终得到的深度图像精度较低、分辨率较差,且得到的深度图像往往还表现得较为稀疏,不能满足较高的处理要求。

针对产生上述技术问题的根本原因,本申请考虑到tof相机等深度相机所采集的图像数据通常容易受环境光照等影响,导致所得到的图像数据中的像素点的灰度信息(或称灰度值)往往会存在误差、不够精确。进一步分析现有方法在实施过程中会引入上述图像数据,并且在匹配的过程中非常依赖受上述图像数据影响的灰度信息,从而在匹配过程中将上述图像数据中所携带的误差信息进行了传递和放大,导致匹配不准确,并影响最终得到深度图像的精度和分辨率。正是发现并注意上述情况,本申请考虑可以在利用深度相机采集的图像数据引导匹配、提高匹配效率的同时,减少匹配过程中对像素点的灰度信息依赖,从而减少上述图像数据所携带的误差的传递和放大,保护深度图像的分辨率和精度。具体的,可以通过根据预设编码规则确定匹配过程中待匹配像素点邻近的匹配窗口内的像素点预设编码,进而可以不利用上述匹配窗口内的像素点的灰度值,而是利用对应的预设编码,结合待匹配像素点的灰度值进行双目匹配,找到对应的匹配点,以生成深度图像,从而减少了对灰度信息的依赖,提高了匹配的准确度,解决了现有方法中存在的确定深度图像误差大、精度不高的技术问题,达到获取稠密的、具有较高精度和分辨率的深度图像的技术效果。

基于上述思考思路,本申请实施例提供了一种高精度稠密深度图像的生成方法。具体请参阅图1所示的根据本申请实施方式提供的高精度稠密深度图像的生成方法的处理流程图。本申请实施例提供的高精度稠密深度图像的生成方法,具体实施时,可以包括以下步骤。

s11:获取第一图像、第二图像和第三图像,其中,所述第一图像为通过左摄像头获取的包含有目标对象的图像数据,所述第二图像为通过右摄像头获取的包含有目标对象的图像数据,所述第三图像为通过深度相机获取的包含有目标对象的图像数据。

在本实施方式中,上述第一图像和第二图像具体可以理解为一种包含有目标对象的彩色图像(也可称rgb图像)或者黑白图像。

在本实施方式中,上述第一图像具体可以是由双目相机(或者双目立体系统)中的左摄像头(或独立的左摄像机,记为l)拍摄采集的针对目标对象的图像数据,上述第二图像具体可以是由双目相机中的右摄像头(或独立的右摄像机,记为r)拍摄采集的同一时间针对同一个目标对象的图像数据。当然,也可以是以下情形:上述第一图像具体可以是由双目相机中的右摄像头拍摄采集的针对目标对象的图像数据,上述第二图像具体可以是由双目相机中的左摄像头拍摄采集的同一时间针对同一个目标对象的图像数据。对此,本申请不作限定。

在本实施方式中,上述第三图像具体可以是由深度相机拍摄采集的同一时间针对同一目标对象的图像数据。上述第三图像携带有深度信息,但精度较差、分辨率较低,可以视为一种初始的深度图像。其中,上述深度相机具体可以包括tof(timeofflight)相机等能够获取深度图像的相机。当然,上述所列举的由tof相机只是为了更好地说明本申请实施方式。具体实施时,上述第三图像还可以是通过除tof相机以外的其他类型的深度相机获取的图像数据。对此,本申请不作限定。

需要说明的是,上述深度相机不同于普通相机,即不同于上述左摄像头或右摄像头,在拍摄采集图像数据时,是通过内置发射器对目标对象发射连续的近红外脉冲,然后用传感器接收由物体反射回的光脉冲;通过比较发射光脉冲与经过目标对象反射的光脉冲的相位差,计算得到光脉冲之间的传输延迟,进而得到目标对象相对于发射器的距离(即一种深度信息),最终得到包含有深度信息的图像数据。因此,第三图像本身就可以理解为一种深度图像。但是,由于深度相机自身机理的缺陷,导致所得到的深度图像(即第三图像)的分辨率往往不及普通的彩色图像的分辨率,且深度图像中的深度值、灰度值等信息容易受到外界噪声干扰。此外由于一个像素点所对应的目标对象可能涵盖了不同的物体对象的表面,导致在目标对象的边缘处的深度值容易出现误差等问题。

在本实施方式中,上述第一图像、第二图像和第三图像具体是同步获取的,同一时间针对同一目标对象的图像数据。

在一个实施方式中,在获取第一图像、第二图像和第三图像前,可以先参阅图2所示的根据本申请实施方式提供的高精度稠密深度图像的生成方法中的一个实施例示意图,按照预设的布设规则布设用于获取第一图像、第二图像和第三图像的左摄像头、右摄像头和深度相机。

在本实施方式中,具体实施时,可以将左摄像头、右摄像头与深度相机布设于同一水平位置。同时,通过调整使得上述左摄像头、右摄像头的成像原点坐标一致,保持镜头光轴平行、成像平面共面、对极线行对齐等,便于后续的数据处理(例如,双目匹配等)。

需要说明的是,通过使得左摄像头、右摄像头对极线行对齐,可以使得后续匹配时,可以以对极线为约束,在对应行内寻找匹配像素点。从而将二维搜索降为了一维搜索,减少了匹配搜索的范围,提高了处理效率。

在一个实施方式中,在布设好左摄像头、右摄像头和深度相机后,所述方法还包括:对左摄像头、右摄像头和深度相机进行联合标定,以确定出相机内参数和相机外参数。

在本实施方式中,上述相机内参数具体可以理解为左摄像头、右摄像头和深度相机各自的自身内部的运行参数,可以记为k。具体的,上述相机内参数可以包括以下所列举运行参数中的一种或多种:焦距、成像原点和畸变系数等。当然,需要说明的是,上述所列举的相机内参数只是一种示意性说明。具体实施时,根据具体情况,上述相机内参数还可以包括有其他类型的运行参数。对此,本申请不作限定。

在本实施方式中,上述相机外参数具体可以理解为限定左摄像头与右摄像头、左摄像头与深度相机、有摄像头与深度相机两两相对的位置关系的位置参数,可以记为r和t。具体的,上述相机外参数可以包括以下所列举的位置参数中的一种或多种:旋转矢量、平移矢量等等。当然,需要说明的是,上述所列举的相机外参数只是一种示意性说明。具体实施时,根据具体情况,上述相机外参数还可以包括有其他类型的运行参数。对此,本申请不作限定。

在一个实施方式中,上述对左摄像头、右摄像头和深度相机进行联合标定,以确定出相机内参数和相机外参数,具体实施时,可以包括以下内容:通过所述左摄像头和所述右摄像头分别获取同一棋盘图像,根据得到的棋盘对象分别计算出左摄像头和右摄像头的内参数和外参数。

具体的,对于得到的每一张棋盘图像中的投影点的位置向量,可以表示为以下公式:

其中,具体可以表示为投影点的位置向量,k具体可以表示为左摄像头和右摄像头的内参数,r具体可以表示为左摄像头和内摄像头间的旋转矢量,t具体可以表示为左摄像头和内摄像头间的平移矢量,m具体可以表示为三维坐标点。

对上述公式进行变形转化,将求解相机内参数和外参数(即参数k、r和t)的问题转化为求解以下最大似然函数的最优解:

这样,可以通过求解上述最大似然函数的最优解,确定出合适的相机内参数和相机外参数,以便后续可以配合摄像头的设置位置,对第一图像和第二图像进行畸变消除和行对准,使得第一图像和第二图像的成像原点坐标统一,两图像成像平面共面,对极线行对齐,有助于后续进行图像数据处理时可以进一步减少匹配搜索范围,进一步提高处理效率。

在一个实施方式中,在获取了第三图像后,所述方法还包括以下内容:对所述第三图像进行预处理。其中,所述预处理至少包括过滤处理。

在本实施方式中,考虑到上述第三图像由于是通过深度相机等深度相机获得的图像数据,往往精度较差、分辨率较低,导致在目标对象边缘处的图像数据往往误差较大、不可靠。为了避免上述误差相对较大的图像数据对后续数据处理的影响,可以先检测出第三图像中的表征目标对象边缘的图像数据,并过滤掉上述目标对象边缘的图像数据,从而减少上述图像数据后续引入的误差,进一步提高了处理精度。

s12:根据所述第一图像、所述第二图像和所述第三图像确定视差图。

在本实施方式中,上述视差图也可以称为初始视差,是没有通过双目匹配得到的视差图。这种视差图精度相对较低、准确度相对较差,但在一定程度上可以反映出一些整体信息,因此,后续可以利用该视差图作为约束,辅助进行匹配处理。

在一个实施方式中,上述根据所述第一图像、所述第二图像和所述第三图像确定视差图,具体实施时,可以包括以下内容:根据所述第三图像,恢复得到三维点云;根据所述相机内参数和所述相机外参数,将所述三维点云投影到第一图像中,得到第一投影图像;根据所述相机内参数和所述相机外参数,将所述三维点云投影到第二图像中,得到第二投影图像;根据所述第一投影图像和所述第二投影图像,确定视差图。

在本实施方式中,考虑到上述左摄像头、右摄像头和深度相机是按照一定规则布设的,且通过联合标定和相应的调整校正,使得光轴相互平行,即得到第一图像、第二图像和第三图像在u轴方向上对齐,只在v轴方向上存在偏移。这时,可以将摄像机坐标系的设置在左摄像头和右摄像头之间中心对称的位置处,通过将携带有深度信息的、基于第三图像恢复得到的三维点的坐标分别投影到第一图像、第二图像中,得到对应的二维点的坐标的第一投影图像、第二投影图像,便于后续的数据处理。

具体的,任意一个基于第三图像恢复得到的三维点在摄像机坐标系中的3维坐标可以表示为:x=[x,y,z]t。根据相机内参数和相机外参数,将上述三维点分别投影到第一图像中,得到所述第一投影图像,其中,第一投影图像中的像素点的2维坐标可以表示为:xl=[ul,vl]t。类似的,根据相机内参数和相机外参数,将所述第三图像中的像素点分别投影到第二图像中,得到所述第二投影图像,其中,第二投影图像中的像素点的2维坐标可以表示为:xr=[ur,vr]t。其中,上述坐标u、v分别用于表征图像中的行(即第一坐标)和列(即第二坐标)。

在本实施方式中,上述根据所述第一投影图像和所述第二投影图像,确定视差图,具体实施时,可以包括将第二投影图像与第一投影图像中同名点的第二坐标值进行做差,得到所述视差图。具体的,上述第一投影图像和第二投影图像之间的视差图可以表示为以下形式:d0=vr-vl

s13:根据所述第一图像中的待匹配像素点的灰度值、所述待匹配像素点的匹配窗口内的像素点的灰度值和预设编码规则,确定所述待匹配像素点的匹配窗口内的像素点的预设编码。

在本实施方式中,在得到上述第一图像、第二图像和视差图后,进一步可以以视差图作为约束条件,引导进行第一图像和第二图像间的双目立体匹配。即,例如,可以以第一图像为基准,分别确定出第一图像上的各个待匹配像素点在第二图像中对应的匹配像素点,进而完成后续的匹配,得到对应的深度图像。当然,需要说明的是,上述所列举的以第一图像为基准进行双目匹配只是一种示意性说明。具体实施时,也可以以第二图像为基准进行双目匹配。对此,本申请不作限定。

在本实施方式中,需要说明的是,由于上述视差图是通过基于第三图像得到的三维点云进行投影得到的;而第三图像又是通过tof相机等深度相机所获取的图像数据。因此,得到的上述视差图中的像素点的灰度值往往并不准确,会存在一定的误差。

而现有的深度图像的生成方法,往往没有考虑到上述像素点的灰度值存在误差,而是直接利用上述视差图,去匹配搜索待匹配像素点和匹配像素点,导致将灰度值上的误差传递到了匹配过程,影响匹配精度,进而使得后续确定的深度图像的精度较低。

在本实施方式中,正是考虑到上述视差图中的像素点的灰度值存在误差、不够精确,因此在待匹配像素点的临近区域(即匹配窗口)引入了基于与待匹配像素点灰度值的差异所确定的预设编码来代替灰度值,从而避免了由于过分依赖灰度值,来确定匹配像素点,导致将灰度值的误差传递到匹配过程,影响后续匹配精度的问题。

在一个实施方式中,上述根据所述第一图像中的待匹配像素点的灰度值、所述待匹配像素点的匹配窗口内的像素点的灰度值和预设编码规则,确定所述待匹配像素点的匹配窗口内的像素点的预设编码,具体实施时,可以包括以下内容:

s1:将所述待匹配像素点的匹配窗口内的像素点的灰度值分别与所述第一图像中的待匹配像素点的灰度值进行比较;

s2:根据比较结果,将所述待匹配像素点的匹配窗口内的灰度值小于或等于所述待匹配像素点的灰度值的像素点的预设编码确定为1;将所述待匹配像素点的匹配窗口内的灰度值大于所述待匹配像素点的灰度值的像素点的预设编码确定为0。

在本实施方式中,上述匹配窗口可以理解为一种与待匹配像素点临近的,不包含待匹配像素点的,由其他像素点构成的范围区域。具体的,可以参阅图3所示的根据本申请实施方式提供的高精度稠密深度图像的生成方法中的一个实施例示意图,待匹配像素点位于该匹配窗口的中心位置,与该待匹配像素点相邻的周围的8个像素点为该待匹配像素点的匹配窗口内的像素点。当然,需要说明的是,上述所列举的待匹配像素点的匹配窗口内的像素点只是一种示意性说明。具体实施时,根据所选择的匹配窗口的形状和大小,上述待匹配像素点的匹配窗口内的像素点还可以是包含有其他个数、按照其他方式分布的像素点。对此,本申请不作限定。

具体的,例如,参阅图3所示,根据预设编码规则进行编码,先通过比较,发现匹配窗口内第一个位置的像素点的灰度值为6小于待匹配像素点的灰度值7,因此,可以确定第一像素点对应的预设编码为1。而匹配窗口内的第二个位置的像素点的灰度值为8大于待匹配像素点的灰度值7,因此,可以确定出第二个像素点对应的预设编码为0。按照上述方法,可以分别确定出第一图像中待匹配像素点的匹配窗口内的8个像素点中各个像素点的预设编码依次为:1、0、0、0、1、1、1、0。进一步,系统可以将待匹配像素点位置处的预设编码置空,同时将上述匹配窗口内的像素点的预设编码按照像素点的位置进行排列整理,进而可以记录得到一个表征特征序列的向量,即:(1,0,0,0,1,1,1,0)。其中,该向量中每一位数值对应待匹配像素点的匹配窗口内的一个位置的像素点的预设编码。

在本实施方式中,可以按照上述方式根据预设编码规则,确定出第一图像中的各个待匹配像素点的匹配窗口内的像素点的预设编码,进而后续可以基于上述预设编码,而不是存在误差的灰度值,进行具体匹配,从而可以有效地降低匹配误差,提高匹配精度。

s14:根据所述第一图像中的待匹配像素点的灰度值、所述待匹配像素点的匹配窗口内的像素点的预设编码、所述视差图,从所述第二投影图像中确定出与所述第一图像中的待匹配像素点对应的匹配像素点。

在本实施方式中,上述第二图像中与第一图像中的待匹配像素点对应的匹配像素点具体可以理解为第二图像中指示的实际位置与第一图像中的待匹配像素点所指示的实际位置相同的像素点,也可以称为是待匹配像素点在第二图像中的同名像素点。

在本实施方式中,由于是利用待匹配像素点的匹配窗口内的像素点的预设编码,结合待匹配像素点的灰度值,即不是全部依赖像素点的灰度值来匹配搜索对应的匹配像素点,因此,减少了灰度值的误差导致的匹配误差,提高了匹配的准确度。

在一个实施方式中,上述根据所述第一图像中的待匹配像素点的灰度值、所述待匹配像素点的匹配窗口内的像素点的预设编码、所述视差图,从所述第二图像中确定出与所述第一图像中的待匹配像素点对应的匹配像素点,具体实施时,可以包括以下内容:

s1:根据所述待匹配像素点的第一坐标和所述视差图,从所述第二图像中筛选出多个像素点作为测试像素点;

s2:确定测试像素点的灰度值,以及测试像素点的匹配窗口内的像素点的预设编码;

s3:根据所述待匹配像素点的灰度值、所述待匹配像素点的匹配窗口内的像素点的预设编码、所述测试像素点的灰度值、所述测试像素点的匹配窗口内的像素点的预设编码,计算所述待匹配像素点与所述测试像素点的匹配代价;

s4:将匹配代价数值最小的测试像素点确定为与所述第一图像中的待匹配像素点对应的匹配像素点。

在本实施方式中,考虑到视差图虽然存在误差,但能够反映出整体的特征趋势,可以作为指导和参照。因此,具体实施时,可以以所述视差图作为指导和参照,确定出第二图像中可以待匹配像素点对应的匹配像素点可能存在的区域范围;再根据第一坐标从上述区域范围中进一步筛选出多个测试像素点。

在本实施方式中,上述第一坐标具体可以理解为是行坐标,即u。需要说明的是,由于通过联合标定,使得所获取的第一图像和第二图像是行对齐的图像。因此,可以减少匹配搜索范围,在匹配搜索待匹配像素点在第二图像中的匹配像素点时,可以将第二图像中,与待匹配像素点的行坐标,即u值相同的像素点作为测试像素点,即可能为匹配像素点的待进一步测试、确定的像素点。从而避免了对第二图像中所有像素点的遍历搜索,减少了匹配搜索范围,提高了处理效率。

在本实施方式中,在确定了上述测试像素点后,进一步可以按照确定待匹配像素点的匹配窗口内的像素点的预设编码的方式,分别确定出多个测试像素点中各个测试像素点的匹配窗口内的像素点的预设编码,以便可以根据预设编码,只结合测试像素点的灰度值搜索匹配到第二图像中最合适的像素点作为匹配像素点。

在本实施方式中,上述匹配代价具体可以理解为一种能够反映测试像素点与待匹配像素点的相似性程度的参数。具体的,通常一个测试像素点与待匹配像素点的匹配代价越小,与待匹配像素点的相似程度越高,该测试像素点具有相对越大的概率成为与待匹配像素点对应的匹配像素点。相反,一个测试像素点与待匹配像素点的匹配代价越大,与待匹配像素点的相似程度越低,该测试像素点具有相对越小的概率成为与待匹配像素点对应的匹配像素点。

在本实施方式中,为了减少对灰度信息的依赖,减少第三图像中引入的灰度值的误差对匹配的精度的影响,具体实施时,可以利用待匹配像素点的匹配窗口内的像素的预设编码、测试像素点的匹配窗口内的像素点的预设编码分别代替对应灰度值,通过进行异或运算,来确定待匹配像素点的邻近的匹配窗口与测试像素点的邻近的匹配窗口的近似程度,作为匹配代价中的第一项数据,以降低第三图像由于精度低、分辨率差对匹配过程产生的影响,保留下图像中较为准确的局部纹理的结构信息。

在本实施方式中,可以利用待匹配像素点的匹配窗口内的像素点的预设编码、测试像素点的匹配窗口内的像素点的预设编码分别代替对应灰度值,通过进行异或运算,来确定待匹配像素点的邻近的匹配窗口与测试像素点的邻近的匹配窗口的近似程度,作为匹配代价中的第一项数据。具体实施时,可以包括以下内容:将待匹配像素点的匹配窗口内的各个位置处的像素点的预设编码分别与测试像素点的匹配窗口内的相同位置处的像素点的预设编码一一进行比较;根据比较结果,每当一个待匹配像素点的匹配窗口内的一个位置处的像素点的预设编码分别与测试像素点的匹配窗口内的相同位置处的像素点的预设编码相同,累积1;比较完所有位置处的像素点的预设编号后,得到总的累加结果,作为匹配代价中的第一项数据。

在本实施方式中,又考虑为了消除图像中的毛刺等杂质信息,又引入了待匹配像素点的灰度值与测试像素点的灰度值的差值的绝对值作为匹配代价中的第二项数据,起到平滑的作用,使得后续得到图像相对更加平滑,效果相对更好。

在一个实施方式中,上述根据所述待匹配像素点的灰度值、所述待匹配像素点的匹配窗口内的像素点的预设编码、所述测试像素点的灰度值、所述测试像素点的匹配窗口内的像素点的预设编码,计算所述待匹配像素点与所述测试像素点的匹配代价,具体实施时,可以包括以下内容:

按照以下公式,计算所述待匹配像素点与所述测试像素点的匹配代价:

其中,c具体可以表示为待匹配像素点与测试像素点的匹配代价,具体可以表示为第一图像中的待匹配像素点的灰度值,具体可以表示为第二图像中的测试像素点的灰度值,具体可以表示为第一图像中待匹配像素点的匹配窗口内的编号为k的像素点的预设编码,具体可以表示为第二图像中测试像素点的匹配窗口内的编号为k的像素点的预设编码,n具体可以为所述匹配窗口内的像素点的总数。

在本实施方式中,上述符号具体可以用于表征异或运算。具体计算时,当该符号两侧的数值相同时,结果为1;当该符号两侧的数值不同时,结果为0。

在本实施方式中,具体实施时,可以按照上述方式计算得到第二图像中的多个测试像素点中的各个测试像素点与第一图像中的待匹配像素点之间的匹配代价。

在本实施方式中,在得到第二图像中的多个测试像素点中的各个测试像素点与第一图像中的待匹配像素点之间的匹配代价后,进一步可以对上述匹配代价进行比较,选择匹配代价数值最小,即对应近似程度最高的匹配代价所对应的测试像素点作为待匹配像素点在第二图像中对应的匹配像素点。按照上述方式,可以确定出第一图像中的各个待匹配像素点在第二图像中对应的匹配像素点,从而较为快速、准确地完成匹配搜索。

s15:根据第一图像中的待匹配像素点,和所述第二图像中的与所述第一图像中的待匹配像素点对应的匹配像素点,确定第一深度图像。

在本实施方式中,在得到了第一图像中各个待匹配像素点分别在第二图像中对应的匹配像素点,根据待匹配像素点与匹配像素点的映射关系,对第一图像和第二图像进行具体的立体匹配处理,效果较好的视差图,再根据该视差图进一步得到了较为精确的、携带有深度信息的第一深度图像。

其中,上述第一深度图像由于在进行匹配搜索的过程中没有全部依赖存在误差的灰度信息,而是引入预设编码,结合待匹配像素点和测试像素点的灰度值,来确定匹配像素点,从而在减少第三图像由于光照差异导致灰度值精度较差引入的匹配误差,保留了图像中局部纹理结构信息外,还对进行了平滑处理,使得得到的第一深度图像的效果更为理想。

在本申请实施例中,相较于现有方法,通过根据预设编码规则获取并利用第一图像中的待匹配像素点邻近的匹配窗口内的像素点预设编码,结合待匹配像素点的灰度值,并以视差图为约束,通过匹配从第二图像中确定出较为准确的匹配像素点,以确定深度图像,减少了由于光照导致灰度信息出现差异所引起的匹配误差,从而解决了现有方法中存在的确定深度图像误差大、精度不高的技术问题,达到获取稠密的、具有较高精度和分辨率的深度图像的技术效果。

在一个实施方式中,在根据第一图像中的待匹配像素点,和所述第二图像中的与所述第一图像中的待匹配像素点对应的匹配像素点,确定第一深度图像后,所述方法具体实施时,还可以包括以下内容:

s1:根据所述视差图,生成修正权值;

s2:根据所述修正权值和所述第一深度图像,确定第二深度图像。

在本实施方式中,考虑所得到的第一深度图像还可能会存在一些毛刺、不够平滑的地方,为了使得所得到的深度图像更为平滑、效果更好,同时也为进一步提高深度图像的精度。在获取了第一深度图像后,还可以利用基于tof相机等深度相机所获取的视差图作为指导,对第一深度图像进行修正、调整,得到更平滑、精度更高的深度图像。

在本实施方式中,同样考虑到了基于第三图像得到视差图(也可以称为初始视差图,记为i)虽然在整体上可以用于指导对深度图像的修正调整,但是上述视差图中的像素点的数据值由于是基于第三图像中的灰度值得到的,因此,本身也可能存在误差,分辨率也相对较低。为了不引入上述视差图存在误差,具体实施时,可以仅利用视差图生成用于修正调整的权重值,而对第一深度图像进行方向性调整,而不过多地参与深度图像中像素点具体数据值的计算,从而保证了修正后的像素点的数据值尽可能少地受到视差图中数据值的误差影响,保持较高的分辨率和精度。

在一个实施方式中,上述根据所述修正权值和所述第一深度图像,确定第二深度图像,具体实施时,可以包括:

按照以下公式,计算所述第二深度图像中像素点的数据值:

其中,qi具体可以表示为第二深度图像中编号为i的像素点的数据值,wij(i)具体可以表示为修正权值,i具体可以表示为视差图,pj具体可以为第一深度图像中对应的预设窗口内编号为j的像素点的数据值。

在一个实施方式中,为了减少视差图中像素点的数据误差对深度图的影响,具体实施时,可以按照以下公式确定所述修正权值:

其中,ii、ij具体可以表示为视差图中对应的预设窗口内相邻的两个像素点的数据值,μk具体可以表示为视差图中对应的预设窗口内的像素点的数据值的平均值,σk具体可以表示为视差图中对应的预设窗口内的像素点的数据值的方差,ε表示为惩罚值,τ为扰动值。

在本实施方式中,上述预设窗口具体可以理解为以与第二深度图像中的像素点对应的像素点为中心的范围区域。具体实施,可以根据具体情况,设置上述预设窗口形成或大小。对此,本申请不作限定。

在本实施方式中,上述扰动值的具体数值可以是一个很小数值,以确保分母不为0。上述扰动值和惩罚值的具体数值可以根据具体情况和精度要求,灵活设置。对此,本说明书不作限定。

在本实施方式中,上述数据值不同于灰度值,具体可以理解为一种同时包含有深度信息的参数数据。

在本实施方式中,需要说明的是,通过上述方式确定的修正权值,可以使得在目标对象的边缘位置处时,由于相邻的两个像素点的数据值ii、ij的差值较大,且ii、ij分别位于边缘处的两侧,使得(ii-μk)和(ij-μk)为异号,且(ii-ij)的数值相对较大,从而对第二深度图像中靠近边缘处的像素点的数据值产生较为微弱的调整和修正。而当不在目标对象的边缘位置处时,则(ii-μk)和(ij-μk)为同号,且(ii-ij)的数值相对较小,从而对第二深度图像中不在边缘处的像素点的数据值产生较为明显的调整和修正。即上述修正权值,在边缘处的具体数值往往远小于在非边缘处,例如平坦处的数值。

由于修正权值具有上述特点,在利用上述修正权值对第一深度图像进行修正调整,得到第二深度图像的过程中,可以使得针对非边缘区域的像素点的权值相对较大,平滑的效果相对更明显;针对边缘区域的像素点的权值相对较小,平滑的效果相对较微弱,起到保持图形边界的效果。即能够更有针对性、更准确地对深度图像进行平滑处理,并保留下边界信息。

在一个实施方式中,在根据第一图像中的待匹配像素点,和所述第二图像中的与所述第一图像中的待匹配像素点对应的匹配像素点,确定第一深度图像后,所述方法具体实施时还可以包括以下内容:

s1:检测所述第一深度图像中是否存在空白区域,其中,所述空白区域为包含有多个数据值为0的像素点的区域;

s2:在确定所述第一深度图像中存在空白区域的情况下,获取所述第一深度图像中非空白区域与所述空白区域相连的像素点的数据值;

s3:根据所述第一深度图像中非空白区域与所述空白区域相连的像素点的数据值,修改所述空白区域内的像素点的数据值。

在本实施方式中,上述空白区域具体可以理解为一种包含有多个连续的数据值为0的像素点的范围区域。可以参阅图4所示的根据本申请实施方式提供的高精度稠密深度图像的生成方法中的一个实施例示意图。

在本实施方式中,进一步考虑到在获取第一深度图像的过程中还是使用了精度较低、分辨率较差的第三图像,或者由于所使用的第一图像、第二图像也存在数据误差,导致得到深度图像的局部表明纹理信息不足,造成出现了空白区域。为了能够准确地填补上述空白区域,得到完整、精确的深度图,同时也为避免由于利用基于第三图像得到视差图的数据值进行填补,进一步引入误差,影响深度图的精度,具体实施时,可以利用深度图像中非空白区域但与空白区域相连数据值不为0的像素点的数据值来填补相邻空白区域中的数据值。例如,参与图4所示,可以利用与第一行第三列的空白区域中的像素点相连的第一行第二列非空白区域中的像素点的数据值3来填补该空白区域中的像素点。按照类似的方式,分别对各个空白区域中的像素点进行对应的填补,从而得到完整、且精确的深度图,进一步提高了深度图的准确度。

在本实施方式中,进一步考虑到基于上述方法得到的深度图像,通常在边缘位置具有较高的精度,因此很少出现空白区域,即使出现空白区域可能也不一定就是误差导致的。而非边缘位置,例如目标对象的内部,如果出现空白区域,通常具有较大概率是由于误差引入的,这时相对更适合使用上述方法进行空白区域的填补。因此,具体实施时,还可以进一步细化,包括以下内容:在确定所述第一深度图像中存在空白区域的情况下,检测所述空白区域是否位于目标对象的边缘位置;在确定所述空白区域不是位于目标对象的边缘位置的情况下,获取所述第一深度图像中非空白区域与所述空白区域相连的像素点的数据值;根据所述第一深度图像中非空白区域与所述空白区域相连的像素点的数据值,修改所述空白区域内的像素点的数据值。

在本实施方式中,上述检测所述空白区域是否位于目标对象的边缘位置,具体实施时,可以通过检测空白区域和非空白区域边界两侧的数据值的梯度是否大于预设阈值来确定是否位于目标对象的边缘位置。如果边界两侧的数据值的梯度大于预设阈值,可以确定空白区域位于目标对象的边缘位置。如果边界两侧的数据值的梯度小于或等于预设阈值,可以确定空白区域不位于目标对象的边缘位置。

在本实施方式中,考虑到所得到的第一深度图像在边缘位置本身通常具备较好的精度,因此,在确定空白区域位于目标对象的边缘位置时,不对空白区域进行填补。

从以上的描述中,可以看出,本申请实施例提供的高精度稠密深度图像的生成方法,通过根据预设编码规则获取并利用第一图像中的待匹配像素点邻近的匹配窗口内的像素点预设编码,结合待匹配像素点的灰度值,并以视差图为约束,通过匹配从第二图像中确定出较为准确的匹配像素点,以确定深度图像,减少了由于光照导致灰度信息出现差异所引起的匹配误差,从而解决了现有方法中存在的确定深度图像误差大、精度不高的技术问题,达到获取稠密的、具有较高精度和分辨率的深度图像的技术效果;还通过根据视差图,确定修正权值,再利用上述修正权值对第一深度图像进行指导性修正,使得在利用深度相机得到的图像对第一深度图像进行平滑处理的过程中,不会引入深度相机得到的图像由于精度差所导致的误差数据,从而可以得到精度更高、平滑效果更好的深度图像;还通过利用视差图进行引导,使用深度图像中的像素点的数据值对深空白区域中的像素点进行填补,从而进一步提高了所获取的深度图像的精度。

基于同一发明构思,本发明实施例中还提供了一种高精度稠密深度图像的生成装置,如下面的实施例所述。由于高精度稠密深度图像的生成装置解决问题的原理与高精度稠密深度图像的生成方法相似,因此装置的实施可以参见高精度稠密深度图像的生成方法的实施,重复之处不再赘述。以下所使用的,术语“单元”或者“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。请参阅图5,是本申请实施例提供的高精度稠密深度图像的生成装置的一种组成结构图,该装置具体可以包括:获取模块51、第一确定模块52、第二确定模块53、第三确定模块54和第四确定模块55,下面对该结构进行具体说明。

获取模块51,具体可以用于获取第一图像、第二图像和第三图像,其中,所述第一图像为通过左摄像头获取的包含有目标对象的图像数据,所述第二图像为通过右摄像头获取的包含有目标对象的图像数据,所述第三图像为通过深度相机获取的包含有目标对象的图像数据;

第一确定模块52,具体可以用于根据所述第一图像、所述第二图像和所述第三图像确定视差图;

第二确定模块53,具体可以用于根据所述第一图像中的待匹配像素点的灰度值、所述待匹配像素点的匹配窗口内的像素点的灰度值和预设编码规则,确定所述待匹配像素点的匹配窗口内的像素点的预设编码;

第三确定模块54,具体可以用于根据所述第一图像中的待匹配像素点的灰度值、所述待匹配像素点的匹配窗口内的像素点的预设编码、所述视差图,从所述第二图像中确定出与所述第一图像中的待匹配像素点对应的匹配像素点;

第四确定模块55,具体可以用于根据第一图像中的待匹配像素点,和所述第二图像中的与所述第一图像中的待匹配像素点对应的匹配像素点,确定第一深度图像。

在一个实施方式中,为了能够根据所述第一图像中的待匹配像素点的灰度值、所述待匹配像素点的匹配窗口内的像素点的灰度值和预设编码规则,确定所述待匹配像素点的匹配窗口内的像素点的预设编码,上述第二确定模块53具体可以包括以下结构单元:

第一比较单元,具体可以用于将所述待匹配像素点的匹配窗口内的像素点的灰度值分别与所述第一图像中的待匹配像素点的灰度值进行比较;

第一确定单元,具体可以用于根据比较结果,将所述待匹配像素点的匹配窗口内的灰度值小于或等于所述待匹配像素点的灰度值的像素点的预设编码确定为1;将所述待匹配像素点的匹配窗口内的灰度值大于所述待匹配像素点的灰度值的像素点的预设编码确定为0。

在一个实施方式中,为了能够根据所述第一图像中的待匹配像素点的灰度值、所述待匹配像素点的匹配窗口内的像素点的预设编码、所述视差图,从所述第二图像中确定出与所述第一图像中的待匹配像素点对应的匹配像素点,上述第三确定模块54具体可以包括以下结构单元:

筛选单元,具体可以用于根据所述待匹配像素点的第一坐标和所述视差图,从所述第二图像中筛选出多个像素点作为测试像素点;

第二确定单元,具体可以用于确定测试像素点的灰度值,以及测试像素点的匹配窗口内的像素点的预设编码;

第一计算单元,具体可以用于根据所述待匹配像素点的灰度值、所述待匹配像素点的匹配窗口内的像素点的预设编码、所述测试像素点的灰度值、所述测试像素点的匹配窗口内的像素点的预设编码,计算所述待匹配像素点与所述测试像素点的匹配代价;

第三确定单元,具体可以用于将匹配代价数值最小的测试像素点确定为与所述第一图像中的待匹配像素点对应的匹配像素点。

在一个实施方式中,上述第一计算单元具体实施时,可以按照以下公式,计算所述待匹配像素点与所述测试像素点的匹配代价:

其中,c具体可以表示为待匹配像素点与测试像素点的匹配代价,具体可以表示为第一图像中的待匹配像素点的灰度值,具体可以表示为第二图像中的测试像素点的灰度值,具体可以表示为第一图像中待匹配像素点的匹配窗口内的编号为k的像素点的预设编码,具体可以表示为第二图像中测试像素点的匹配窗口内的编号为k的像素点的预设编码,n具体可以为所述匹配窗口内的像素点的总数。

在一个实施方式中,所述装置具体还可以包括第五确定模块,用于根据第一深度图像,确定第二深度图像。其中,上述第五确定模块具体可以包括以下结构单元:

第一生成单元,具体可以用于根据所述视差图,生成修正权值;

第四确定单元,具体可以用于根据所述修正权值和所述第一深度图像,确定第二深度图像。

在一个实施方式中,上述第四确定单元,具体实施时,可以按照以下公式,计算所述第二深度图像中像素点的数据值:

其中,qi具体可以表示为第二深度图像中编号为i的像素点的数据值,wij(i)具体可以表示为修正权值,i具体可以表示为视差图,pj具体可以为第一深度图像中对应的预设窗口内编号为j的像素点的数据值。

在一个实施方式中,上述第四确定单元,具体实施时,可以按照以下公式确定所述修正权值:

其中,ii、ij具体可以表示为视差图中对应的预设窗口内相邻的两个像素点的数据值,μk具体可以表示为视差图中对应的预设窗口内的像素点的数据值的平均值,σk具体可以表示为视差图中对应的预设窗口内的像素点的数据值的方差,ε具体可以表示为惩罚值,τ具体可以为扰动值。

在一个实施方式中,所述装置具体还可以包括填充模块,具体以用于检测所述第一深度图像中是否存在空白区域,其中,所述空白区域为包含有多个数据值为0的像素点的区域;在确定所述第一深度图像中存在空白区域的情况下,获取所述第一深度图像中非空白区域与所述空白区域相连的像素点的数据值;根据所述第一深度图像中非空白区域与所述空白区域相连的像素点的数据值,修改所述空白区域内的像素点的数据值。

本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

需要说明的是,上述实施方式阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。为了描述的方便,在本说明书中,描述以上装置时以功能分为各种单元分别描述。当然,在实施本申请时可以把各单元的功能在同一个或多个软件和/或硬件中实现。

此外,在本说明书中,诸如第一和第二这样的形容词仅可以用于将一个元素或动作与另一元素或动作进行区分,而不必要求或暗示任何实际的这种关系或顺序。在环境允许的情况下,参照元素或部件或步骤(等)不应解释为局限于仅元素、部件、或步骤中的一个,而可以是元素、部件、或步骤中的一个或多个等。

从以上的描述中,可以看出,本申请实施例提供的高精度稠密深度图像的生成装置,通过第二确定模块、第三确定模块和第四确定模块根据预设编码规则获取并利用第一图像中的待匹配像素点邻近的匹配窗口内的像素点预设编码,结合待匹配像素点的灰度值,并以视差图为约束,通过匹配从第二图像中确定出较为准确的匹配像素点,以确定深度图像,减少了由于光照导致灰度信息出现差异所引起的匹配误差,从而解决了现有方法中存在的确定深度图像误差大、精度不高的技术问题,达到获取稠密的、具有较高精度和分辨率的深度图像的技术效果;还通过修正模块根据由第三图像得到的视差图,确定修正权值,再利用上述修正权值对第一深度图像进行指导性修正,使得在利用深度相机得到的图像对第一深度图像进行平滑处理的过程中,不会引入深度相机得到的图像由于精度差所导致的误差数据,从而可以得到精度更高、平滑效果更好的深度图像;还通过填充模块利用视差图进行引导,使用深度图像中的像素点的数据值对深空白区域中的像素点进行填补,从而进一步提高了所获取的深度图像的精度。

本申请实施例还提供了一种电子设备,具体可以参阅图6所示的基于本申请实施例提供的高精度稠密深度图像的生成方法的电子设备组成结构示意图,所述电子设备具体可以包括输入设备61、处理器62、存储器63。其中,所述输入设备61具体可以用于输入第一图像、第二图像和第三图像,其中,所述第一图像为通过左摄像头获取的包含有目标对象的图像数据,所述第二图像为通过右摄像头获取的包含有目标对象的图像数据,所述第三图像为通过深度相机获取的包含有目标对象的图像数据。所述处理器62具体可以用于根据所述第一图像、所述第二图像和所述第三图像确定视差图;根据所述第一图像中的待匹配像素点的灰度值、所述待匹配像素点的匹配窗口内的像素点的灰度值和预设编码规则,确定所述待匹配像素点的匹配窗口内的像素点的预设编码;根据所述第一图像中的待匹配像素点的灰度值、所述待匹配像素点的匹配窗口内的像素点的预设编码、所述视差图,从所述第二图像中确定出与所述第一图像中的待匹配像素点对应的匹配像素点;根据第一图像中的待匹配像素点,和所述第二图像中的与所述第一图像中的待匹配像素点对应的匹配像素点,确定第一深度图像。所述存储器63具体可以用于存储经输入设备61输入的第一图像、第二图像、第三图像,以及处理器62所使用的程序指令。

在本实施方式中,所述输入设备具体可以是用户和计算机系统之间进行信息交换的主要装置之一。所述输入设备可以包括键盘、鼠标、摄像头、扫描仪、光笔、手写输入板、语音输入装置等;输入设备用于把原始数据和处理这些数的程序输入到计算机中。所述输入设备还可以获取接收其他模块、单元、设备传输过来的数据。所述处理器可以按任何适当的方式实现。例如,处理器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(applicationspecificintegratedcircuit,asic)、可编程逻辑控制器和嵌入微控制器的形式等等。所述存储器具体可以是现代信息技术中用于保存信息的记忆设备。所述存储器可以包括多个层次,在数字系统中,只要能保存二进制数据的都可以是存储器;在集成电路中,一个没有实物形式的具有存储功能的电路也叫存储器,如ram、fifo等;在系统中,具有实物形式的存储设备也叫存储器,如内存条、tf卡等。

在本实施方式中,该电子设备具体实现的功能和效果,可以与其它实施方式对照解释,在此不再赘述。

本申请实施例还提供了一种基于高精度稠密深度图像的生成方法的计算机存储介质,所述计算机存储介质存储有计算机程序指令,在所述计算机程序指令被执行时实现:获取第一图像、第二图像和第三图像,其中,所述第一图像为通过左摄像头获取的包含有目标对象的图像数据,所述第二图像为通过右摄像头获取的包含有目标对象的图像数据,所述第三图像为通过深度相机获取的包含有目标对象的图像数据;根据所述第一图像、所述第二图像和所述第三图像确定视差图;根据所述第一图像中的待匹配像素点的灰度值、所述待匹配像素点的匹配窗口内的像素点的灰度值和预设编码规则,确定所述待匹配像素点的匹配窗口内的像素点的预设编码;根据所述第一图像中的待匹配像素点的灰度值、所述待匹配像素点的匹配窗口内的像素点的预设编码、所述视差图,从所述第二图像中确定出与所述第一图像中的待匹配像素点对应的匹配像素点;根据第一图像中的待匹配像素点,和所述第二图像中的与所述第一图像中的待匹配像素点对应的匹配像素点,确定第一深度图像。

在本实施方式中,上述存储介质包括但不限于随机存取存储器(randomaccessmemory,ram)、只读存储器(read-onlymemory,rom)、缓存(cache)、硬盘(harddiskdrive,hdd)或者存储卡(memorycard)。所述存储器可以用于存储计算机程序指令。网络通信单元可以是依照通信协议规定的标准设置的,用于进行网络连接通信的接口。

在本实施方式中,该计算机存储介质存储的程序指令具体实现的功能和效果,可以与其它实施方式对照解释,在此不再赘述。

在一个具体实施场景示例中,应用本申请实施例的提供高精度稠密深度图像的生成方法和装置获取高精度、稠密的深度图像。

s1:初始图像(即视差图)的求取。

在本实施方式中,可以假设两个rgb摄像机(即左摄像头和右摄像头)l、r已经过校正,且光轴相互平行,v轴完全对齐。这时通过上述两个rgb摄像机得到图像(即第一图像和第二图像)只在u轴方向有偏移。

将摄像机坐标系放置在两个摄像机中心对称的位置。根据摄影几何知识,可以由深度相机获得的深度图(即第三图像)恢复其坐标系下的三维点云。其中,根据基于第三图像恢复得到的三维点云,该空间中任意一个3d点在摄像机坐标系中的坐标为x=[x,y,z]t。其在左右图像平面上分别成像(即将第三图像分别投影到第一图像和第二图像)。根据联合标定得到相机内、外参数(即相机内参数和相机外参数),可以得到该点在左右相机图像坐标系中的2d坐标:xl=[ul,vl]t,xr=[ur,vr]t(即分别对应于第一投影图像和第二投影图像),则两者在双目立体系统中的初始视差可以表示为d0=vr-vl,从而得到了初始视差(即视差图)。

s2:匹配代价计算。

在本实施方式中,以待匹配点(即第一图像中的待匹配像素点)为中心构建一个矩形窗口,将窗口中心点与其邻域像素点(即待匹配像素点的匹配窗口内的像素点)的灰度值进行比较,将灰度值小于中心点像素的(预设编码)记为1,灰度大于中心点的(预设编码)则记为0,并将这些数值按像素点的位置依次连接成一个向量,以此作为该点的特征序列。然后比较另一图像(第二图像)中与待匹配点的序列在相同位置上的点(即测试像素点)的不同值的数目之和,以此作为匹配代价的一项,这种非参数变换可以以保留图像的局部纹理结构信息,减少光照差异引起的误匹配。再加上又以左右两图像中待匹配窗口中心像素的灰度绝对差作为匹配代价的第二项,可起到平滑的作用。得到效果较好的匹配代价。具体的,可以按照以下公式计算匹配代价:

其中,c表示为待匹配像素点与测试像素点的匹配代价,表示为第一图像中的待匹配像素点的灰度值,表示为第二图像中的测试像素点的灰度值,表示为第一图像中待匹配像素点的匹配窗口内的编号为k的像素点的预设编码,表示为第二图像中测试像素点的匹配窗口内的编号为k的像素点的预设编码,n表示为所述匹配窗口内的像素点的总数。

进而可以根据匹配代价,确定出待匹配点的同名点,通过相应的匹配处理,得到深度图像(即第一深度图像)。

s3:引导匹配策略(以对第一深度图像进行修正得到第二深度图像)。

假设tof的图像(即第三图像)转化而来的初始视差(即视差图)记为i,双目匹配得到的结果(即第一深度图像)为p,输出(即第二深度图像)为q,可以按照以下方式进行引导匹配(得到平滑效果更好的第二深度图像):

其中,qi表示为第二深度图像中编号为i的像素点的数据值,wij(i)表示为修正权值,i表示为视差图,pj表示为第一深度图像中对应的预设窗口内编号为j的像素点的数据值,ii、ij表示为视差图中对应的预设窗口内相邻的两个像素点的数据值,μk表示为视差图中对应的预设窗口内的像素点的数据值的平均值,σk表示为视差图中对应的预设窗口内的像素点的数据值的方差,ε表示为惩罚值,τ表示为扰动值。

其中,τ是一个很小的扰动,以确保分母不为0。在物体(即目标对象)边缘处,ii,ij的差值较大,同时由于ii,ij在边界两侧时,(ii-μk)和(ij-μk)异号;否则,差值小且同号。而在边缘处的权重值将远远小于平坦处的权重值,这样处于平坦区域的像素则会被加以较大的权重,平滑效果更明显,而处于边界两侧的像素则会被加以较小的权重,平滑效果较弱,能够起到保持边界的效果。

s4:无特征区域(即空白区域)填补。

在本实施方式中,考虑到当物体表面纹理信息不足时,可能会出现无特征区域;这时可以根据初始视差图判断无特征区域是否为物体边缘;如果不是,则可以利用物体内部表面的数据值(即非空白区域与所述空白区域相连的像素点的数据值)填补无特征区域中的这些空洞,得到更加准确的深度图像。

在本实施方式中,由于采用局部编码(即预设编码)代替中心像素点的灰度值作为待匹配窗口的相似性测度,同时又利用待匹配窗口中心像素灰度值作差,将非参数变换与参数变换结合起来,合理使用而不过分依赖像素灰度信息,提高了处理精度;在融合匹配策略上,又考虑到tof深度图低精度和不可靠性,所以只将其作为引导而非依赖,这样不仅可以消除由于左右摄像机不同的视角接受到的光强不一致,摄像机增益、电平变化引起的差异,以及图像采集不同通道的噪声不同等因素带来的影响,还可以得到边缘清晰内部平滑的稠密的视差图。

在本实施方式中,上述匹配代价的计算综合了census变换和绝对差的优势,在消除光照差异的影响的同时保持平滑连续性;由于不使用tof的具体灰度值和数据值,不以其作为“种子点”也不根据其值进行分层匹配,不会将其局部错误进行扩大;在无特征区域不是使用tof深度转化而来的初始视差值进行填补,而是在其指导下利用双目匹配自身视差值进行填补;在引导匹配的过程中,利用tof得到的初始视差设计权重项,在边缘区域权重小,在平坦区域权重大,可以进一步降噪平滑。

在本实施方式中,上述实施过程可以基于移动智能终端,实现双相机+tof模块的精确3d重建功能;也可以做成体积较大的模块,工作距离较大,用于机器人3d视觉感知、引导等用途。

通过上述场景示例,验证了本申请实施例提供的高精度稠密深度图像的生成方法和装置,通过根据预设编码规则获取并利用第一图像中的待匹配像素点邻近的匹配窗口内的像素点预设编码,结合待匹配像素点的灰度值,并以视差图为约束,通过匹配从第二图像中确定出较为准确的匹配像素点,以确定深度图像,减少了由于光照导致灰度信息出现差异所引起的匹配误差,确实解决了现有方法中存在的确定深度图像误差大、精度不高的技术问题,达到获取稠密的、具有较高精度和分辨率的深度图像的技术效果。

尽管本申请内容中提到不同的具体实施例,但是,本申请并不局限于必须是行业标准或实施例所描述的情况等,某些行业标准或者使用自定义方式或实施例描述的实施基础上略加修改后的实施方案也可以实现上述实施例相同、等同或相近、或变形后可预料的实施效果。应用这些修改或变形后的数据获取、处理、输出、判断方式等的实施例,仍然可以属于本申请的可选实施方案范围之内。

虽然本申请提供了如实施例或流程图所述的方法操作步骤,但基于常规或者无创造性的手段可以包括更多或者更少的操作步骤。实施例中列举的步骤顺序仅仅为众多步骤执行顺序中的一种方式,不代表唯一的执行顺序。在实际中的装置或客户端产品执行时,可以按照实施例或者附图所示的方法顺序执行或者并行执行(例如并行处理器或者多线程处理的环境,甚至为分布式数据处理环境)。术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、产品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、产品或者设备所固有的要素。在没有更多限制的情况下,并不排除在包括所述要素的过程、方法、产品或者设备中还存在另外的相同或等同要素。

上述实施例阐明的装置或模块等,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。为了描述的方便,描述以上装置时以功能分为各种模块分别描述。当然,在实施本申请时可以把各模块的功能在同一个或多个软件和/或硬件中实现,也可以将实现同一功能的模块由多个子模块的组合实现等。以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。

本领域技术人员也知道,除了以纯计算机可读程序代码方式实现控制器以外,完全可以通过将方法步骤进行逻辑编程来使得控制器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种控制器可以被认为是一种硬件部件,而对其内部包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。

本申请可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构、类等等。也可以在分布式计算环境中实践本申请,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。

通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本申请可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,移动终端,服务器,或者网络设备等)执行本申请各个实施例或者实施例的某些部分所述的方法。

本说明书中的各个实施例采用递进的方式描述,各个实施例之间相同或相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。本申请可用于众多通用或专用的计算机系统环境或配置中。例如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、多处理器系统、基于微处理器的系统、置顶盒、可编程的电子设备、网络pc、小型计算机、大型计算机、包括以上任何系统或设备的分布式计算环境等等。

虽然通过实施例描绘了本申请,本领域普通技术人员知道,本申请有许多变形和变化而不脱离本申请的精神,希望所附的实施方式包括这些变形和变化而不脱离本申请。

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