一种基于立体匹配和置信度传播的场景深度获取方法与流程

文档序号:18200555发布日期:2019-07-17 06:08阅读:319来源:国知局
一种基于立体匹配和置信度传播的场景深度获取方法与流程

本发明属于计算机视觉、场景理解、深度估计领域,特别涉及深度学习、立体匹配和基于置信度传播的深度补全方法。



背景技术:

场景深度获取是计算机视觉领域中的一个重要的基础性问题,它能从图像中精确感知场景的几何结构,是许多上游应用的基础,在机器人和导航等领域中有广泛的应用,例如三维重建,即时定位和地图构建(slam),增强现实(ar)等。现有的方法主要分为基于传统的立体匹配的方法,基于传感器的硬件设备采集方法,基于深度神经网络学习的方法和基于融合补全的方法等。然而,在实际应用场景下,由于不同视角下存在遮挡区域、光照变化、以及大量弱纹理区域等问题,基于传统立体匹配的方法获取的深度值准确性较低。同时,各类硬件深度信息采集设备(如tof、结构光、激光雷达等)通常只能获得稀疏、可靠的深度数据或低分辨率的深度图。

近年来,由于深度学习的蓬勃发展,一些基于深度卷积网络的深度补全方法受到广泛关注,它利用深度学习对场景强大的解析能力,通过引入rgb图像提供场景的结构信息,用于实现稀疏深度信息的稠密化。其中一些方法仅仅使用单张rgb图像,利用深度神经网络的高层语义理解能力,得到深度预测,但这种方法本质上存在不适定性。同时,一些方法借鉴传统的立体匹配和运动恢复结构的思想,利用深度卷积神经网络的强大学习能力进行拟合,但相比传统的基于较完善理论解释的方法,深度学习拟合/回归方法缺乏理论指导并且泛化能力还需要实践的检验,且需要海量数据来训练。

近来,基于多模态数据融合的深度补全成为一个新的研究课题,即利用可靠的稀疏深度数据结合rgb图像数据恢复得到稠密的场景深度估计,并因其在实际场景中的适用性得到广泛关注。



技术实现要素:

本发明为了解决现有场景深度获取技术中所存在的问题,提出了一种基于立体匹配和置信度传播的场景深度获取方法,从而提升场景深度获取的鲁棒性和精确度。

为实现上述目的,本发明公开了一种基于立体匹配和置信度传播的场景深度获取方法。该方法为:

步骤1:获取训练用数据集d0,所述数据集d0包含n0组双目立体相机获得的左图和右图,以及左图对应的深度图,因此,该数据集d0中包含了n0×3张图片;

步骤2:从数据集d0任意选取若干组图片,作为一个批次的样本;每组的左图和右图作为输入,基于现有的立体匹配方法,获得初始的稀疏视差图,以及对应的置信度。通过立体视觉原理将稀疏视差图转化为稀疏深度图。

步骤3:以步骤2中的稀疏深度图为初始值,分别结合对应的置信度,并以数据集d0内的对应深度图作为监督,采用基于置信度传播的深度补全方法,训练深度卷积神经网络;利用多个批次的样本完成深度卷积神经网络的训练,得到基于置信度传播的深度补全模型,通过该深度补全模型,从稀疏深度图输入得到致密的深度图输出。

步骤4:输入双目立体相机得到的一组左右视图,先按照步骤2获得稀疏深度图和置信度,进一步利用步骤3训练得到的基于置信度传播的深度补全模型得到最终精确的深度估计。

进一步地,步骤3中所述训练基于置信度传播的补全模块使用深度真值提供监督,具体为:以输出的致密深度图和数据集d0内的对应深度图的相似度为损失;相似度的度量方式包括但不限于l1范数,欧式距离等。

进一步地,步骤3的深度卷积神经网络的训练过程中,还引入了附加损失,所述的附加损失通过以下方法得到:

利用步骤3中的多个批次的样本,每个批次中的每一组视图先按照步骤2获得稀疏深度图和置信度,进一步利用基于置信度传播的深度补全模型得到致密深度图输出。利用左图加上左图对应的致密深度图输出,通过视角重建模块可以重建出右图,并与数据集内的右图计算相似度,该相似度为附加损失。

进一步地,该方法还包括利用无监督的双目立体数据集d1对步骤3中的置信度传播的深度补全模块进行精调,所述的数据集d1为无监督的双目立体数据集,包含n1组双目立体相机获得的左图和右图,因此,该数据集d1包含了n1×2张图片,精调方法如下:

从数据集d1选取m组图片,m≤n1,按照步骤4得到m个致密深度图输出,利用左图加上左图对应的致密深度图输出,通过视角重建模块可以重建出右图,并与数据集内的右图计算相似度,以该相似度为损失,对基于置信度传播的深度补全模型进行精调。

进一步地,所述的相似度采用l1范数,欧式距离等。

本发明的有益效果:本发明所提出的基于立体匹配和置信度传播的场景深度获取方法,能够在现有的立体匹配方法的基础上,结合对应的置信度信息,采用基于置信度传播的方法对立体匹配的结果进行进一步地优化,得到精确的致密深度估计;进一步的,本发明在训练基于置信度传播的深度补全模块时,引入附加损失,进一步提升训练模型的性能;进一步的,本发明利用无监督的双目立体数据集精调该模型,使得该方法在现实场景下具备很强的鲁棒性和精确度,并解决现实场景下深度真值数据难以获得的困难。

附图说明

图1是基于立体匹配和置信度传播的场景深度获取方法的流程图;

图2是在数据集d0下基于深度真值图监督训练的结构框图;

图3是在数据集d0下引入无监督的附加损失训练的结构框图;

图4是在数据集d1下无监督训练的结构框图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚,下面结合具体实施例,对本发明的技术方案做进一步的详细说明。

本发明中,训练数据集d0可以使用公开的kitti数据集(可以在http://www.cvlibs.net/datasets/kitti/网址下载获取),d1可以使用公开的sceneflow数据集(可以在https://lmb.informatik.uni-freiburg.de/resources/datasets/网址下载获取);

本发明中,基于置信度传播的深度补全模块的构建方法可以参考论文:《sparsityinvariantcnns》。

以下实施例在以本发明技术方案为前提下进行实施,给出了详细的实施方式和具体的操作过程,但本发明的保护范围不限于下述的实施例。

参考图1所示,为本发明实施例的基于立体匹配和置信度传播的场景深度获取方法的训练流程图。

本实施例从kitti数据集获取训练用数据集d0,从sceneflow数据集获取训练用数据集d1。其中数据集d0包含图像的深度真值,为监督训练用的数据集;数据集d1不包含图像的深度真值,更贴近现实使用场景,为无监督训练用的数据集。值得注意的是,用户可利用双目相机拍摄得到现实场景左右视图,自行构建无监督数据集d1。

1.使用数据集d0,采用如图2所示的基于深度真值图监督训练的结构框图进行训练。

(1.1)从数据集d0任意选取若干张图片,作为一个批次的样本,最好包含不少于4组图片,本实施例中,每个样本批次中包含8组图片,每组图片包含来自双目相机标定好的左图和右图,以及左图对应的深度真值图。因此,每个样本批次中包含24张图片。本实施例中,我们首先对原始数据进行处理,包括将原始数据进行裁剪,将图片大小归一化到1216*352;根据数据集提供的相机参数信息,记录下后续要用到的参数:相机焦距f以及双目相机的光心距离(基线)b。值得注意的是,由于数据集提供的深度真值也是部分缺失的,且缺失部分像素值为0。

(1.2)根据图2所示的结构框图进行训练,模型的输入为来自双目相机标定好的左图和右图,首先利用现有的双目立体匹配方法搭建立体匹配模块,该模块通过对输入的左图和右图进行匹配输出对应左图的视差图预测和该视差图的置信度,根据双目立体匹配的原理,该模块将在弱纹理区域得到较差的预测结果和较低的置信度,因此我们可以通过设定阈值(本实施例中,设定阈值为0.7,可根据实际场景进行调节),去除低置信度的预测结果,并将其像素值置为0,保证输出视差图的可靠性。因此该部分输出的视差图是稀疏的,仅仅保留高置信度区域的视差结果。由于我们目标是深度获取,因此我们可以利用立体视觉的知识:深度z和视差d之间的关系:z=f·b/d,其中相机焦距f和基线b都是数据集中可获得的,因此我们将输出的稀疏视差图转化为稀疏深度图,值得注意的是,当视差d=0时,上式除数为0没有意义,取其深度为场景深度最大可能值(本实施例中,取深度最大可能值为80m,可根据实际场景进行调节)。

(1.3)利用以上稀疏深度图预测和置信度作为输入,参考现有基于置信度传播的深度补全方法构建基于置信度传播的深度补全模块,值得注意的是,该模块不同于传统的卷积神经网络,分为两路分别处理深度图和置信度,并利用置信度进行指导,有针对性的进行补全,并最终输出致密深度图预测,我们可以根据深度真值图构建损失项,即图2中loss,本实施例中,损失项采用欧式距离计算:

其中,dp为最终输出的致密深度图预测,dt为深度真值,由于深度真值图都是部分缺失的,且缺失部分像素值为0,因此表示在深度真值图都有值且不为0时,结果为1,其余情况(即深度真值图有缺失)处结果为0。根据损失项loss,并固定立体匹配模块,可以训练得到基于置信度传播的深度补全模型。

2.测试阶段,输入现实场景下利用双目相机得到的,并经过标定好的左图和右图,值得注意的是,该部分的图片是训练场景中所没有的,通过立体匹配模块得到初始稀疏视差图预测和对应的置信度,利用双目相机的参数:焦距f和基线b,以及立体视觉的知识:深度z和视差d之间的关系:z=f·b/d,我们可以将初始稀疏视差图转化为稀疏深度图,同样的,当视差d=0时,取其深度为场景深度最大可能值,本实施例中,取深度最大可能值为80m。将稀疏深度图和对应的置信度输入基于置信度传播的深度补全模块,得到最终输出的致密的场景深度估计结果。

同样的,我们可以将上述左图和右图输入到传统的立体匹配模块中,得到场景深度图。与本发明的场景深度估计结果相比,本发明基于立体匹配和置信度传播的场景深度获取方法,相比于传统立体匹配方法,克服了其在大量弱纹理区域的深度值准确性低下的问题,并根据传统立体匹配方法特性,保持在强纹理区域的高准确性,利用基于置信度传播的深度补全模块对其进行补全,得到最后精确且致密的场景深度图输出,大大提升传统立体匹配模块的场景深度获取准确性,完成现实场景下高准确性的深度获取。

本实施例在训练基于置信度传播的深度补全模块时,引入附加损失进一步优化训练,采用如图3所示在数据集d0下引入无监督的附加损失训练的结构框图进行训练。

(3.1)在1中基于深度真值图构建的损失项的基础上,我们引入附加的无监督损失项,进一步优化网络训练,以获得更好的训练效果。具体为:

根据1中在数据集d0上得到的立体匹配模块和基于置信度传播的深度补全模块,对于输入的每组标定好的左图和右图,我们将可以得到其左图对应的深度图预测,利用立体视觉的知识:深度z和视差d之间的关系:z=f·b/d,其中相机焦距f和基线b都是数据集中可获得的,因此我们将预测的深度图转化为视差图,同样的,当视差d=0时,取其深度为场景深度最大可能值,本实施例中,取深度最大可能值为80m。接下来,我们利用传统的视角重建知识搭建视角重建模块,以左图以及左图对应的视差图作为输入,我们将可以得到重建的右图,根据输入的真实右图,构建损失项,即图3中loss2,本实施例中,损失项采用l1范数计算:

其中,i′r为重建的右图,ir为输入的真实右图,表示重建的右图有值的部分为1,缺失的部分为0。最终我们结合1中的基于深度真值图构建的损失项,此处记为loss1(即图3中loss1),得到最终的损失项:

loss=λ1·loss1+λ2·loss2

其中,本实施例中,取λ1=λ2=1,可根据实际场景及数据集的不同进行调整,根据最终的损失项loss,进一步训练基于置信度传播的深度补全模块。

(3.2)测试阶段同2中所述,通过最后输出的场景深度图可以看出,训练中加入了无监督的附加损失之后,对于现实场景下的测试图片(训练场景下没有见过的),具有更强的鲁棒性,从输出场景深度图可以看出,场景的一致性保持得更好,更符合输入图像的物体边缘和结构。同时,从训练角度来说,加入了无监督的附加损失,基于置信度传播的深度补全模块的训练收敛更快,也达到了更好的性能。

进一步的,我们使用无监督数据集d1,采用如图4所示的在数据集d1下无监督训练的结构框图进行训练。

(4.1)随机打乱数据集d1,构建多个批次的样本,本实施例中,每个样本批次包含4组图片,每组图片包含来自双目相机标定好的左图和右图。因此每个批次中包含8张图片。本实施例中,我们首先对原始数据进行处理,包括将原始数据进行裁剪,将图片大小归一化到1216*352;根据数据集提供的相机参数信息,记录下后续要用到的参数:相机焦距f以及双目相机的光心距离(基线)b。

(4.2)根据1中在数据集d0上得到的立体匹配模块和基于置信度传播的深度补全模块,对于输入的每组标定好的左图和右图,我们将可以得到其左图对应的深度图预测,利用立体视觉的知识:深度z和视差d之间的关系:z=f·b/d,其中相机焦距f和基线b都是数据集中可获得的,因此我们将预测的深度图转化为视差图。利用传统的视角重建知识搭建视角重建模块,以左图以及左图对应的视差图作为输入,我们将可以得到重建的右图,根据输入的真实右图,构建损失项,即图4中loss,本实施例中,损失项采用l1范数计算:

其中,i′r为重建的右图,ir为输入的真实右图,表示重建的右图有值的部分为1,缺失的部分为0。根据损失项loss,我们可以在数据集d1上,以无监督的方式调优整个网络,使其在现实场景下具有更强的鲁棒性。

(4.3)测试阶段同2中所述,通过最后输出的场景深度图可以看出,进一步的使用无监督数据集d1训练,对于测试图片具有更强的鲁棒性,场景的一致性保持得更好,更符合输入图像的物体边缘和结构。这是由于在无监督数据集d1训练之后,使得最终的基于立体匹配和置信度传播的场景深度获取模型可以在不同的数据集下都得到很好的性能,也就说明了该模型得到的是通用、普适的结果,也即具备了可迁移性,为各种场景下的深度获取提供方法。

另外,用户可利用双目相机拍摄得到现实场景左右视图,自行构建无监督数据集d1,利用上述无监督方法在该数据集上训练,使其适应现实的测试场景,给各种场景下准确的深度获取提供基础,并解决现实场景下深度真值数据难以获得的困难。

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

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