一种基于条件生成对抗网络的单目图像深度估计方法与流程

文档序号:15494130发布日期:2018-09-21 21:17阅读:3723来源:国知局

本发明涉及单目图像深度估计技术领域,尤其涉及一种基于生成式对抗网络的深度估计方法。



背景技术:

深度信息能够反映2d图像所不具有的几何信息,对于三维场景重建、手势识别、人体姿态估计等有着重要意义[1]。当前深度信息的获取主要有以下两个途径:一是采用硬件设备如激光雷达、kinect等直接获取距离信息;二是采用多视点、如双目图像的方法,利用视差来估计深度信息。由于深度传感器造价昂贵,多视点方法需要配置多个图像采集设备,因此从单幅单目图像估计自然场景的深度估计在场景理解,三维建模,机器人等领域有着极为重要的意义,是计算机视觉中的一个基本问题。利用单目图像进行深度估计是一个不适定问题,因为一副图像可能对应于无数现实世界的实际场景[2]。对于人类来说,从单个图像推断潜在的三维结构并不困难,对于计算机视觉算法来说,由于没有具体可靠的特征如几何信息等可以直接利用,因此仍然是一个极具挑战的任务。

当前基于单目图像的深度估计研究主要分为三类:一是在带有几何限制的场景下进行深度估计的研究,此类方法直接将图像强度或颜色信息映射到深度值,在自然场景下不具有通用性;二是将其他信息加入到深度估计的输入特征中,如用户注释、语义标注,但是此类方法依赖于图像的人工标记,较为耗时;三是利用深度学习的方法,训练一个卷积神经网络(convolutionalneuralnetwork,cnn),使之直接学习单目图像和深度图之间的映射关系,从而能够从彩色平面图像直接拟合出深度图像,当下深度估计领域的最优方法大多都采用此类方法。

生成对抗网络(generativeadversarialnetworks,gan)是深度学习算法中的一种新型的网络,通过由卷积神经网络构建的生成网络和判别网络进行对抗式的训练,利用二元零和博弈的原理完成生成模型的建模,被广泛地应用到图像转换、图像处理等领域。生成模型可以帮助生成相关数据,提高数据数量,从而利用半监督学习提升学习效率。而判别模型可以判断样本的真实度,通过不断迭代,使生成样本越来越接近真实样本。在通常的gan中,输入生成器的是固定维度长度的噪声,而在条件生成对抗网络中,输入生成模型的的是噪声p(z)与条件信息y组成的联合隐层表征,相当于对gan的随机分布中加了一个潜在的约束范围。

参考文献:

[1]田虎.单目图像的深度估计[d].北京邮电大学,2015.

[2]d.eigen,c.puhrsch,andr.fergus,“depthmappredictionfromasingleimageusingamulti-scaledeepnetwork,”inproc.adv.neuralinf.process.syst.,2014.



技术实现要素:

本发明要解决的问题在于,针对上述现有技术的缺陷,设计一种单目图像深度估计的方法,使之能够仅需要单幅单目图像即能够得到较高质量的深度图。本发明采用一种条件生成对抗网络的模型,完成对单幅单目图像的深度图的估计,在两种公开数据集上进行评估,在准确度和泛化性上均有较好的表现。

一种基于条件生成对抗网络的单目图像深度估计方法,包括步骤如下:

(1)对数据集进行预处理:将数据集中保存的深度信息的矩阵统一转化为深度图像格式,用于网络的训练、生成深度图的可视化及估计结果的评估,并且将彩色图像与对应的深度图像组成图像对,用于网络的训练;

(2)构建生成式对抗网络中的生成器:利用编码器-解码器结构,构建由卷积层-反卷积层组合的生成器网络结构,并在此基础上构建跳跃连接结构,将编码器每层的输出特征图映射到对称解码器的输入中,通过通道维度连接起来,以增加解码器的细节信息;在输入层和输出层之间共享低层的信息,使得高层输出图像带有低级的细节特征,提升生成深度图像的质量;

(3)构建生成式对抗网络中的判别器:采用卷积层-激活函数层-批量归一化层batchnorm作为判别器网络的组成单元,多层堆叠成最终的判别网络,采用分块判别器的结构,分别判别生成器生成图像各块的图像是否为真实图像或虚假图像,再将各块的响应取平均值作为判别器的最终输出;

(4)构建生成对抗网络的损失函数:在条件生成对抗网络损失函数的基础上,加入一范数损失函数,使得生成器的任务不仅要求其混淆判别器,还在一范数空间中最小化生成图像与真实标签之间的损失,提升生成图像在低频信息段的质量,并且使用dropout代替条件生成网络通常使用的高斯噪声;

(5)对构建完成的生成对抗网络进行训练和测试:将第一步得到的数据集,每次随机选择一副图像对,首先进行随机裁剪的数据增强,输入到网络中进行训练调整训练参数,选择优化器,对判别器和生成器交替式训练,前向传递计算损失值,反向传递更新网络权重,经过一定的迭代次数之后保存最终生成器网络的权重,将测试集的彩色图像输入进训练好的生成器网络中,得到网络预测出的深度图像。

优选地,步骤(5)中交替式训练的方法为:每次随机从训练数据集中选择一对图像作为训练数据,先把真实彩色图像与真实深度图像组成成多通道图像输入到判别器中,作为正样本,将网络输出与正样本标签进行交叉熵损失值计算,采用反向传播算法回传梯度值,更新判别器网络权重;然后将彩色图像输入到生成网络中,得到生成深度图像,再与原彩色图像组合成多通道图像输入到判别网络中,作为负样本,计算交叉熵损失值以及生成深度图像与真实深度图像的一范数损失,统一回传生成网络并更新网络权重。

本发明的技术特点及效果:本发明利用条件生成式对抗网络提供了一种能够从2d彩色图像生成其场景所对应的深度图像的方法,主要是利用生成器生成深度图像,然后通过判别器判别生成深度图像与彩色图像是否对应于同一场景,并在两个公开深度估计数据集上评估本发明的效果以及泛化性能。本发明具有以下特点:

1、利用生成式对抗网络生成器的优势,生成高质量的深度图像。

2、利用生成式对抗网络判别器的特点,判断生成深度图像是否和彩色图像为同一对应的场景。

3、相比传统深度估计的方法以及基于深度学习深度估计的方法,本发明的方法具有更好的泛化性能。

附图说明

图1是本发明方法中生成器的网络结构图

图2是本发明方法中判别器的网络结构图

图3是make3d的深度估计结果

图4是nyuv2的深度估计结果

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面结合实施例和附图对本发明的具体实施方式做进一步地描述。

单目图像深度估计作为不适定问题,从单幅彩色图像可以得到无数深度图像。近年来常用做法是采用深度卷积神经网络直接在某一距离空间内与真实深度图像进行回归,但此方法得到的最终结果是所有可能深度信息的平均值,因此通常图像较为模糊。本发明利用生成对抗网络,利用判别器来判别生成深度图是否与原彩色图像为对应的场景图像,能够较好的解决现有方法的不足。

具体技术细化如下:

(1)对数据集进行预处理

本发明在两个公开数据集上nyuv2和make3d进行评估。本方法从nyuv2数据集中等间隔采样作为训练数据,最终训练集数目为6595张成对图像,而在采用深度学习进行单目图像深度估计的其他算法中,往往需要12000张以上的训练数据。原始训练集图像大小为640×480,训练时首先使用最邻近差值的方法下采样到286×286,然后进行随机裁剪的数据增强方法,每次训练沿图像中心随机裁剪256×256的图像,送入网络进行训练。make3d数据集只含有400张训练数据,并且深度图像与彩色图像尺寸不一致,本方法将所有图像大小统一调整为345×460。并且采用和nyuv2一样的训练方法。注意两个数据集由于分别为室内场景和室外场景,因此深度距离范围不相同,nyuv2数据集最远为10米左右,make3d数据集最远为80米,即使天空这样的距离也只能映射为80米。本方法在训练时将深度信息都归一化到0-255的数值范围之间,保存为uint8的成对图像,用于网络的训练。在仅仅400张训练数据的make3d上的实验效果表明本发明不需要大量训练数据即可生成较高质量的深度图像。

(2)构建生成式对抗网络中的生成器

利用编码器-解码器结构的思想,构建由卷积层-反卷积层组合的生成器网络结构,并在此基础上构建跳跃连接结构,在输入层和输出层之间共享低层的信息,使得高层输出图像带有低级的细节特征,提升生成深度图像的质量。生成器网络分为编码层(共八层),解码层(共八层)两部分,每编码一层,特征图尺寸减半,特征图数量数增加一倍;每解码一层,特征图尺寸放大一倍,特征图数量增加一倍。

增加跳跃连接结构,将编码器每层的输出特征图映射到对称解码器的输入中,通过通道维度连接起来,以增加解码器的细节信息,再进行解码的反卷积操作。卷积层的数量设计在16层,4次下采样进行编码,4次上采样进行解码。具体地通过卷积层和反卷积层来实现。所有卷积层的卷积核尺寸都设置为4,步长为2,补充边长为1。因此编码层和解码层的结构实际上我的对称的。整个网络最后一层接tanh激活函数单元,编码层的各卷积层后接leakyrelu激活层,并且激活函数的系数设置为0.2。解码层的各卷积层后接非线性运算单元(rectifiedlinearunits,relu)激活单元。每层卷积层后接批量归一化层(batchnormalization),便于梯度的流动和误差的回传,利用训练的快速收敛。生成器最后一层网络输出通道数量为1,以生成1通道的深度图。利用dropout层为生成网络输入随机噪声,并且参数设置为0.5。

我们在每一个第i层和第n-i层之间添加跳跃连接,把对称两层中的所有通道相连接。因此解码器的输出通道数量比原本扩大一倍。实现证明跳跃连接的结构能够大大提升生成深度图像的质量。本发明采用的生成器结构图如图1所示。

通过下采样过程,能够提取图像的语义信息,有助于根据图像物理类别的不同进行深度估计;通过跳跃连接的方式能够为解码层引入细节特征,并且实现特征的重复利用。

(3)构建生成式对抗网络中的判别器。

采用卷积层-激活函数层-批量归一化层(batchnorm)作为判别器网络的组成单元,多层堆叠成最终的判别网络。不同于传统的gan判别网络,本发明采用分块判别器的结构,分别判别生成器生成图像各块的图像是否为真实图像或虚假图像,再将各块儿的响应取平均值作为判别器的最终输出。生成对抗网络的判别器有多种网络结构,一是基于整图的判别网络,直接判断全图的质量,实验采用7层的全卷积网络结构,以获得256以上的感受野范围,实验证明此种判别器含有更多的参数和更深的网络结构,不易训练;二是基于像素的判别网络,判断每个像素点的生成质量,实验采用卷积核尺寸全部为1×1的2层的判别网络,实验证明此判别器容易产生更丰富的色彩特性,但是对于图像的空间锐化特性没有影响。本发明采用分块判别网络的结构,能够显著提升生成图像高频部分的质量。具体结构如下所示。

判别器采用5层卷积层,前三层的卷积核尺寸为4,步长为2,补充边长为1,第四层的步长参数变为1,并且都后跟leakyrelu激活函数层,系数设置为0.2,输出通道数量逐层增加一倍,从输入的4通道数量依次逐层增加为64、128、256、512通道数量,并最终通过尺寸为4,2,1的卷积层将特征图从512维度映射为1维的输出向量,进过sigmoid激活函数归一化为[0,1]之前的概率值,用于计算损失函数值。除了第一层和最后一层,其他各层后设置批量归一化层(batchnorm),便于梯度的流动和网络的训练。判别器的网络结构图如图2所示。

(4)构建生成对抗网络的损失函数。

生成式对抗网络源于零和博弈理论,由一个生成器和一个判别器组成,生成器负责捕捉样本数据的分布,用服从某一分布的随机变量生成一个类似真实训练数据的样本,旨在生成逼真的合成样本;判别器是一个二分类器,用于估计一个输入样本来自于真实的训练数据集(而非生成数据集)的概率。上述过程可以表述为如下公式:

lgan(g,d)=ey[logd(y)]+ex,z[log(1-d(x,g(x,z)))]

条件生成对抗网络损失函数的基础上,使得判别器不只判断生成的y的真实度,而判断输入x和y是否为成对儿图像。如下所示:

lcgan(g,d)=ex,y[logd(x,y)]+ex,z[log(1-d(x,g(x,z)))]

判别器网络可以较好的判别生成图像在高频信息段的质量,而低频段的质量可以由图像级别的损失去控制。本发明加入传统损失函数一范数损失,使得生成器的任务不仅要求其混淆判别器,还需要在一范数空间中最小化生成图像与真实标签之间的损失,提升生成图像在低频信息段的质量。最终本发明使用的条件生成网络的目标函数如下:

式中,g表示生成器,d表示判别器,x表示输入彩色图像,y表示输出深度图像,z表示输入的随机噪声,在本发明中采用dropout代替。λ控制两种损失值的权重,由于深度估计更侧重于图像本身的距离,在本发明中λ设置为1000。

(5)对生成式对抗网络进行训练

将第一步得到的数据集,每次随机选择一副图像对,分为原彩色图像和真实深度图像两幅图像,输入到网络中进行训练。具体训练步骤如下所示:

a.先把真实彩色图像与真实深度图像组成多通道图像输入到判别器中,作为正样本,将网络输出与正样本标签进行二元交叉熵(binarycrossentropy,bce)的损失值值计算,采用反向传播算法回传梯度值,更新判别器网络权重;

b.将彩色图像输入到生成网络中,得到生成深度图像,再与原彩色图像组合成多通道图像输入到判别网络中,作为负样本,计算交叉熵损失值以及生成深度图像与真实深度图像的一范数损失,统一回传生成网络并更新网络权重。

c.重复进行a、b步骤,将对判别器、生成器进行交替式训练,前向传递计算损失值,反向传递更新网络权重。当遍历完整个训练集200遍之后保存最终生成器网络的权重。将测试集的彩色图像输入进训练好的生成器网络中,得到网络预测出的深度图像。

整个网络的训练批输入数量设置为1,训练过程采用adam(adaptivemomentestimation)优化器,动量(momentum)设置为0.5,初始学习率设置为0.0002,学习率衰减的间隔设置为50。整个实验在pytorch的深度学习框架下进行,实验环境为ubuntu14.04操作系统,利用nvidia公司11gb显存的gtx1080tigpu进行网络的训练并利用cuda进行训练的加速。训练完make3d数据集需要大约3小时时间,训练完nyuv2数据集需要48小时时间。

(5)生成深度图像质量的评估。

为了评估在两个公开数据集上生成效果,依据之前算法的评估方法,采用平均相对误差(rel)、均方误差(rms)、平均对数误差(log10)三种指标来计算生成深度图像与真实深度图像之间的误差,并与其他算法进行比较。为了评估本发明提出方法的泛化性能,再将不出现在两个数据集中的自然图像输入进生成器中,得到自然图像的深度图。其中三种评估指标具体如下所示:

a.平均相对误差(rel):

b.均方误差(rms):

c.平均对数误差(log10):

最终结果如下表1和表2所示:

表1make3d结果

表2nyudepthv2结果

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