一种基于深度神经网络的双目深度估计方法与流程

文档序号:16926172发布日期:2019-02-22 19:53阅读:385来源:国知局
一种基于深度神经网络的双目深度估计方法与流程

本发明属于多媒体图像处理领域,涉及到计算机视觉、深度学习技术,由其是一种基于深度神经网络的双目深度估计方法。

技术背景

深度估计一直是计算机视觉领域的热门研究方向,深度图提供的三维数据为三维重建、增强现实(augmentedreality,ar)、智能导航等应用的实现提供了所需信息。同时,深度图表达的位置关系在众多图像任务中极为重要,能够使得图像处理算法进一步简化。目前较为常见的深度估计主要分为两类,即单目深度估计和双目深度估计。

单目深度估计方法只使用一个相机,传统算法中相机捕获连续的图像帧,通过帧间的运动模型进行投影变换从而估计图像深度。基于深度学习的单目深度估计则是利用带有真实深度信息的数据集训练深度神经网络,利用学习得到的深度神经网络来回归深度。此类算法设备简单,成本较低,可适用于动态场景。但同时因为缺少尺度信息,通常深度信息不够准确,在未知场景中性能往往严重退化。双目估计方法使用两台经过校准的摄像头,从两个不同的视角观测同一物体。找到不同视角下的同一空间点,计算出对应像素点间的视差,然后通过三角测量即可将视差转换为深度。传统的双目估计采用立体匹配算法,计算量较大,对低纹理场景效果较差。基于深度学习的双目深度估计多采用监督学习方法,由于神经网络强大的学习能力,比起传统方法,目前此类方法不管是在精度还是速度上都有了极大的提升。

然而有监督学习通常过于依赖真实值,但真实值可能存在误差和噪音、深度信息较为稀疏、硬件设备很难校准等问题,从而使得估计出的深度值不够准确。无监督学习方法一直被认为是人工智能能够在真实世界真正有效地自我学习的研究方向,因此,近年来基于无监督学习的图像深度估计方法成为研究热点。



技术实现要素:

本发明的目的是提出一种基于深度神经网络的双目深度估计方法,采用无监督学习的思想,仅利用双目相机获取的左右视点图像作为网络输入,而不需预先获取输入图像的深度信息作为训练标签。同时,该网络的自适应性设计将相机内外参数设置为单独的模型参数,因此能够在不需要修改网络的前提下适用于多个相机系统。此外,该神经网络基本不受光照、噪声等影响,鲁棒性较高。

实现本发明目的的技术方案如下:

一种基于深度神经网络的双目深度估计方法,步骤如下:

1)对输入的左右视点图像进行切割、变换等相应的图像预处理进行数据增强,包括轻度的仿射变形、随机水平旋转、随机尺度抖动、随机对比度、亮度、饱和度和锐度等等,从而进一步增加样本数量,有利于网络参数的训练优化,增强网络的泛化能力;

2)构建双目深度估计的多尺度网络模型,模型包含多个卷积层、激活层、残差连接、多尺度池化连接以及线性上采样层等。

(a)网络采用三个残差网络结构对输入进行多尺度卷积,每个残差模块包括两个卷积层和一个恒等映射。除了第一个卷积核为3*3,其余均为7*7大小。

(b)网络中第二层、第六层和第十四层为多尺度池化模块,对第二层和第六层输出进行平均池化操作,分别为步长为4、核大小为4*4和步长为2、核大小为2*2,并与第十四层输出一同进行1*1的卷积。

(c)左右视图通过前端网络处理,通过多尺度池化模块后采用特征相关操作关联左右视图的特征信息,计算两图间特征相关性:

c(x1,x2)=∑o∈[-k,k]×[-k,k]<fl(x1+o),fr(x2+o)>

c为左图特征以x1为中心的图像块与右图特征以x2为中心的图像块的相关性,fl为左图特征,fr为右图特征,图像块大小为k*k。

(d)之后网络根据相关性特征恢复图像原始分辨率,利用反卷积、上采样等获取不同尺度深度图。线性上采样操作中对于上一层输出采用双线性插值生成图像,并利用残差学习与上层上采样层进行跃层连接,最终将图像恢复到原始大小。

3)根据设计的网络模型设置初始化参数,设计损失函数使其在不断的训练过程中取得最小化结果,从而获得最优的网络权重。

网络输入的左右视图像素值分别表示为il、ir,当网络获得左图的预测深度图时,利用相机内参矩阵k-1将在图像坐标系下的ir转换为相机坐标系,再利用外参矩阵t将其转换到左图的相机坐标系下,之后通过内参矩阵k再次转到左图的图像坐标系,此时获得过渡图具体公式如下所示:

其中pr为相应图像像素值。投影变换使得过渡图中像素坐标为连续值,因此利用4邻域插值法确定每个坐标的像素值,最终获取目标图

式中w正比于目标点与临近点的空间距离,且∑a,bwab=1。

采用huber损失函数来构造重建损失函数

4)将待处理的图像输入到网络模型中,得到对应的深度图,并不断重复以上这几个步

骤直到网络收敛或达到训练次数。

本发明提出了一个基于无监督学习的深度神经网络,针对无真实深度信息的左右图像进行网络模型训练,从而获取单目深度图。本发明采用了双目相机多视角的优势,利用卷积神经网络这种多层表示形式的表示学习方法,实现了从双目图像的输入到单目深度图像的输出映射。网络模型中通过多层下采样操作来获取不同尺度感受野,利用残差结构对输入图像进行特征提取,并采用多尺度池化模块强化图像的局部纹理细节信息,提高网络模型的准确性和鲁棒性。上采样层采用双线性插值法,再次利用残差结构学习多个上采样层信息,减少恢复图像大小过程中的信息损耗,进一步确保深度估计准确性。

本发明的优点和有益效果:

1、本发明提出的基于深度神经网络的双目深度估计方法基于无监督学习方法,利用深度卷积网络强大的学习能力确保预测深度值的精确性。

2、本发明多次使用残差连接进行特征提取,在上采样中利用跃层连接完成多尺度信息融合,一定程度上减少传统卷积在信息传递中的损耗和丢失,保证了信息的完整性并大大提高网络收敛速度。

3、本发明通过多次下采样获得不同尺度图像,并利用多尺度池化模块获取图像的不同感受野来强化局部纹理细节。

4、本发明网络中的特征相关操作进行左右视图的特征关联,不易受到噪声影响,提高了该网络模型的鲁棒性。

5、本发明网络的输入图像不带有真实的深度信息,网络通过预测深度图、相机参数以及原始输入计算目标图,通过构建目标图与原始输入间的差值构建损失函数以实现网络参数优化,因此整个网络能够以无监督学习的方式完成训练。

6、相机的参数信息作为网络参数的一部分在网络外部设置,因此该模型适用于多种不同配置相机系统,自适应能力强。

附图说明

图1为双目深度估计的神经网络模型图。

具体实施方式

下面结合附图并通过具体实施例对本发明作进一步详述,以下实施例只是描述性的,不是限定性的,不能以此限定本发明的保护范围。

1)对输入的左右视点图像进行切割、变换等相应的图像预处理进行数据增强。

本发明采用双目相机获取的左右视角的图像作为网络输入,可输出左相机坐标系或右相机坐标系下的单目深度图。为了方便叙述,本文提到的输出单目深度图均为左图的深度图。本发明中的输入图像需要左右视角的rgb图,因此采用人工合成数据集sceneflow和真实环境下的kitti2015数据集中的部分数据作为训练数据。大数据集sceneflow数据集中包含39000张960×540分辨率的双目图像和对应的深度图,大量的训练数据能够保证卷积神经网络的学习能力。但由于sceneflow数据集为人工合成图像,因此与现实世界下采集的真实图像具有一定差异性。为了加强模型在日常生活场景中的应用效果,本例中选择将模型在kitti2015数据集上进行微调,以适应真实场景。kitti2015数据集包含200张双目图像和对应的稀疏深度图。因为本方法是无监督学习类型,因此不使用sceneflow数据集和kitti2015数据集中真实的深度图数据。数据集中图像分辨率较大使得网络训练速度较慢,因此将图像随机裁剪为320x180大小,以提高网络训练速度。此外,对数据集中的图像进行图像预处理,包括轻度的仿射变形、随机水平旋转、随机尺度抖动、随机对比度、亮度、饱和度和锐度等等,从而进一步增加样本数量,有利于网络参数的训练优化,增强网络的泛化能力。

2)构建双目深度估计的多尺度网络模型,模型包含多个卷积层、激活层、残差连接、多尺度池化连接以及线性上采样层等。

a)为了大规模降低网络模型的参数量使其更易收敛,同时具有更强的特征表达能力,本网络选用3个残差模块对输入图像进行特征提取。除了第一层外,其余卷积层均采用3*3的小卷积核从而更好地保留边缘信息。每个卷积层后都进行批规范化操作,使数据分布稳定。模型中每个卷积层后采用relu激活函数,防止网络训练时发生梯度消失问题。对每个残差块的输出进行下采样,并设计多尺度池化模块将残差块输入进行不同大小的平均池化操作,再通过1*1的卷积层进行降维,因此能够在不同尺度的层次上感受不同的特征信息,并大大降低了网络的训练参数。

b)输入图像在通过三次残差模块、经过多尺度池化模块并降维后,最终得到原图八分之一分辨率的特征图。左右图网络权重共享,在相关性操作中计算两图的特征相关性,公式如下:

式中以x1为中心的左图特征块能够和右图所有特征块进行相关操作,遍历计算左图中一点到右图中所有点的匹配特征。该矩阵可以看做特征块在不同深度上的匹配成本,进而选择将深度回归看做分类问题。深度回归时,首先利用softmax函数j=1,…,k,将该深度上k个匹配成本转换成深度的概率分布,再通过加权求和的方式得到更加稳定的深度估计其中表示预测像素点的深度,dmax表示需要估计的最大视差,d为对应于深度概率分布的各个深度值,cd表示匹配成本,最后的输出为该像素点所有可能深度和该深度可能性的加权和。

c)小尺度的匹配成本进行双线性插值的上采样后加入到下一更大尺度中去,并利用残差连接将多个上采样层信息进行跃层连接。上采样过程中的残差学习充分利用了多尺度信息,这使得网络在上一尺度的深度估计基础上,进一步细化深度估计,同时使得网络更容易训练。

3)根据设计的网络模型设置初始化参数,设计损失函数使其在不断的训练过程中取得最小化结果,从而获得最优的网络权重。

本发明的一个关键点在于如何实现无监督学习,网络需要构建合理的损失函数对训练参数进行训练和优化调整。假设预测目标图为左图深度图,已获得网络预测左图深度图为了获得目标图首先需要将在图像坐标系下的输入图像右图ir利用内参矩阵k-1转换到右图的相机坐标系下,在根据立体匹配原理利用预测左图深度图与外参矩阵t进行相应的投影变换得到在左图相机坐标系下的图像,随之再次利用矩阵k进行坐标系变换,获得左图图像坐标系下的过渡图根据双目相机投影转换公式可得:

其中pr为相应图像像素值。由于投影变换的特性使得过渡图中的坐标转换为连续值,因此采用了坐标的4个临近像素值对其进行线性插值。4个临近像素坐标分别为左上、左下、右上和右下,插值公式如下所示:

其中,为目标图相应像素值,w正比于目标点与临近点的空间距离,且∑a,bwab=1。

因此,重建损失函数如下式:

其中,

式中x表示目标图和输入图相应像素点差值,n为图像像素点个数,c为经验设置的阈值,在本实施样例中设为1。

huber损失函数在c值处有一个一阶差分的跳变,当值在c范围内时小残差梯度较好,当范数超过c时则大残差效果更好,因此能够有效地平衡两种损失。

本网络的输入图像不带有真实的深度信息,而是通过预测深度图、相机参数矩阵估计原始输入图像,并将其作为网络标签对训练参数进行优化,从而实现该网络的无监督学习。同时,相机参数在不在网络训练的优化过程中,可以通过外部修改,因此该模型适用于多个相机系统,具有自适应的性能。

4)将待处理的图像输入到网络模型中,得到对应的深度图,并不断重复以上这几个步骤直到网络收敛或达到训练次数。

本例中使用合成大数据集sceneflow进行预训练,再采用kitti2015数据集进行微调,使网络在日常真实场景中也有很高的精度,证明了本发明具有良好的通用性。

以上所述,仅为本发明专利较佳的实施例,但本发明专利的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明专利所公开的范围内,根据本发明专利的技术方案及其发明专利构思加以等同替换或改变,都属于本发明专利的保护范围。

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