基于深度学习的单目深度估计方法

文档序号:1578317 发布日期:2020-01-31 浏览:17次 >En<

阅读说明:本技术 基于深度学习的单目深度估计方法 (Monocular depth estimation method based on deep learning ) 是由 林立雄 黄国辉 汪青 何炳蔚 张立伟 陈彦杰 于 2019-10-10 设计创作,主要内容包括:本发明提出一种基于深度学习的单目深度估计方法,包括:基于用于单目深度估计的无监督卷积神经网络结构,包括:编码器、多尺度特征融合模块、门控自适应解码器和细化单元;包括以下步骤:步骤S1:数据集预处理;步骤S2:构造卷积神经网络的损失函数,输入训练集图像,使用反向传播算法计算损失函数损失值,通过反复迭代减小误差进行参数学习,使预测值逼近真实值,以获得卷积神经网络的最佳权重模型;步骤S3:加载步骤S2已训练好的权重模型,将测试集输入用于单目深度估计的无监督卷积神经网络,获得深度预测图像。其解决了离线训练时计算量大和深度重建中细节部分恢复效果差的问题。(The invention provides monocular depth estimation methods based on depth learning, which comprise an encoder, a multi-scale feature fusion module, a control self-adaptive decoder and a refining unit based on an unsupervised convolutional neural network structure for monocular depth estimation, and comprise the following steps of S1 data set preprocessing, S2 data set preprocessing, constructing a loss function of the convolutional neural network, inputting a training set image, calculating a loss value of the loss function by using a back propagation algorithm, carrying out parameter learning by reducing errors through repeated iteration, enabling a predicted value to approach a true value, and obtaining an optimal weight model of the convolutional neural network, and S3 data processing, loading the weight model trained in the step S2, inputting a test set into the unsupervised convolutional neural network for monocular depth estimation, and obtaining a depth prediction image.)

基于深度学习的单目深度估计方法

技术领域

本发明属于图像识别和人工智能领域,尤其涉及一种基于深度学习的单目深度估计方法。

背景技术

近年来,随着计算机技术的发展,深度学习在计算机视觉领域取得了一系列突破性进展,使用深度学习获取单目图像的深度也成为了热门研究领域。深度图像包含了场景中的距离信息,是三维重建、导航、目标检测与识别、语义分割中的基本任务,是环境感知与场景理解的重要基础。尽管目前主流使用激光雷达和深度传感器获取物体距离信息,但这些传感器价格昂贵,使用时对周围环境有一定要求,例如激光雷达在大雨、浓烟、浓雾等恶劣环境下,激光衰减急剧加大,将直接影响传播距离和测量精度。因此从图像中获取距离信息仍是首选方案,相比于其他传感器,视觉方案具有小巧方便、价格低廉,适应性广,在实际生活中广泛使用的优势。通常使用单目、双目,甚至多目相机采集原始图像,使用立体相机时需要固定的位置和仔细的校准,耗费了大量时间,且计算量大。单目相机相比于激光或立体相机等传感器具有成本低廉,使用方便的优势,在机器人、无人车等设备中使用单目相机能够节约使用空间,计算量小,可以满足实时计算的需求,因此越来越多的研究者开始探索使用单目相机进行深度估计。

传统深度估计的视觉方法主要是基于光学几何约束,如尺度不变特征变换(ScaleInvariant Feature Transform,SIFT)、运动中恢复结构(Structure from Motion,SfM),使用传统的视觉方法估计图像深度时,相同的输入图像可以映射多个合理深度,这是一个不适定的问题。最近的研究使用卷积神经网络学习真实场景与深度图像之间的非线性映射关系,通过最小化误差来训练神经网络,仅需要将真实图像输入神经网络,即可获得深度图像,这些方法已经取得了不错的效果。然而使用目前的方法重建后的深度图像还不能满足实际使用需求,深度估计的精度需要进一步提高。为了更好地实现深度重建,使用跳过连接和残差学习来建立更深的网络,学习更多特征信息,可以提高深度估计的精度,多尺度连接也使深度估计的效果有了进一步改进。例如在文献“Hu J,Ozay M,Zhang Y,etal.Revisiting Single Image Depth Estimation:Toward Higher Resolution MapsWith Accurate Object Boundaries[C].2019IEEE Winter Conference on Applicationsof Computer Vision(WACV),2019:1043-1051.”中使用单目图像作为输入,通过多尺度连接得到深度图像。但这些方法都是基于低分辨率处理,导致获得的深度图像不能较好地恢复细节部分的纹理。许多研究表明高分辨率图像是保证高质量深度重建的关键,而高分辨率的图像需要更多的计算资源,同时深度学习需要使用大量图像输入神经网络训练,离线训练时运算量大,对于计算机性能有着很高的要求,在一定程度上限制了技术的应用。

发明内容

鉴于现有技术的不足,本发明所要解决的技术问题是提供一种基于深度学习的单目深度估计方法,以解决使用深度学习进行深度估计时计算量大和深度重建中细节部分恢复效果较差的问题。

为了解决上述技术问题,本发明包括以下设计要点:1)对数据集的图像文件进行预处理,生成训练集和测试集,进行数据增强;2)用于单目深度估计的无监督卷积神经网络结构的设计,该网络包括编码器、多尺度特征融合模块、门控自适应解码器、细化单元四个单元,使用训练集学习模型参数,实现对单目图像端对端的深度估计;3)构造卷积神经网络的损失函数,利用损失函数训练,迭代优化模型参数;4)使用测试集对训练好的卷积神经网络模型进行测试。

具体采用以下技术方案:

一种基于深度学习的单目深度估计方法,其特征在于,基于用于单目深度估计的无监督卷积神经网络结构,包括:编码器、多尺度特征融合模块、门控自适应解码器和细化单元,将单目图像作为输入,输出具有深度信息的深度图像;

包括以下步骤:

步骤S1:数据集预处理,生成单目原始图像和其对应真实深度图像的训练集和测试集,对单目原始图像进行数据增强;

步骤S2:构造卷积神经网络的损失函数,输入训练集图像,使用反向传播算法计算损失函数损失值,通过反复迭代减小误差进行参数学习,使预测值逼近真实值,以获得卷积神经网络的最佳权重模型;

步骤S3:加载步骤S2已训练好的权重模型,将测试集输入所述用于单目深度估计的无监督卷积神经网络,获得深度预测图像。

优选地,所述编码器采用ResNet-50网络结构,共有五层,每一层网络依次执行卷积、正则化、激活、池化操作,每层网络对输入图像进行一次下采样,使用ReLU激活函数

Figure BDA0002227978810000031

假设第一层输入图像分辨率为320*256,通道数为3,经过五次连续的下采样后,最后编码器输出的图像分辨率为10*8,通道数为2048;

所述多尺度特征融合模块将来自编码器的低分辨率图像通过子像素卷积转为高分辨率图像,作为细化单元的输入:首先对编码器第二至五层网络的输出进行子像素卷积,放大倍数分别为2、4、8、16倍,得到分辨率为160*128的高分辨率图像,然后将四层图像融合,进行卷积、正则化、激活,使用ReLU激活函数

Figure BDA0002227978810000032

最后输出分辨率为160*128,通道数为120的高分辨率图像;

所述门控自适应解码器有五层,每层网络使用子像素卷积对图像依次进行上采样,上采样放大倍数为2倍,其中第三、四、五层网络采用门控单元对图像特征进行筛选,解码器最后输出的图像分辨率为160*128,通道数为4;

所述细化单元,融合来自门控自适应解码器和多尺度特征融合模块的输出,将门控自适应解码器和多尺度特征融合模块输出的分辨率为160*128的图像,按维数1(列)拼接,再执行两次卷积核大小为5,步长为2,填充值为2的卷积操作,每次卷积后需对图像进行归一化和激活处理,最后使用卷积将输出图像的通道数置为1,得到深度预测图像。

优选地,所述子像素卷积的方法具体包括以下步骤:设输入图像的分辨率为H*W*C;其中,H、W、c分别表示图像的高度、宽度和通道数,需要将图像放大r倍,即rH*rW*C;对于由L层组成的网络,首先进行L-1次卷积运算,生成C*r2张分辨率为H*W图像,再通过随机运算生成分辨率为rH*rW*C的高分辨率图像。

优选地,所述门控自适应解码器的门控单元,门控单元对来自编码器和上一层解码器的输出特征进行筛选,门控单元第一层网络卷积核大小为3,步长为1,使用LeakyReLU激活函数

Figure BDA0002227978810000033

第二层网络卷积核大小为1,步长为1。

优选地,所述步骤S1具体包括以下步骤:

步骤S11:对原始数据集进行分类,生成训练集和测试集以及两者的标签文件,训练集和测试集均包括原始图像和相对应的真实深度图像,标签文件包括单目原始图像和真实深度图像的序号、文件目录;

步骤S12:重新调整训练集图像大小;

步骤S13:对训练集图像进行随机的水平翻转;

步骤S14:对训练集图像进行随机的角度旋转;

步骤S15:分别将训练集中的单目原始图像和真实深度图像调整至不同大小;

步骤S16:对训练集中的单目原始图像进行主成分分析(Principal ComponentAnalysis,PCA),来降低特征数,剔除噪音和冗余,减少过度拟合的可能性;

步骤S17:对训练集中的单目原始图像进行图像亮度、对比度和饱和度变换;

步骤S18:对训练集中的单目原始图像进行归一化处理,归一化参数为平均值和标准差;

在步骤S12和步骤S15中,采取双线性插值的方法将图像像素按比例缩放至指定大小。

优选地,在步骤S2中,所述构造卷积神经网络的损失函数,是使用单目原始图像和其对应真实深度图像作为卷积神经网络的输入,其中单目原始图像用于生成包含深度预测值的深度预测图像,真实深度图像用于计算损失函数,最后将深度预测值和真实图像深度值同时作为损失函数的输入。

优选地,所述损失函数由三个损失项组成,即:L=Ld+Lgrad+Lnormal,其中:

Ld为深度重建误差,用于计算深度预测值与真实深度之间的差值,即:

Figure BDA0002227978810000041

其中p定义为像素在图像中的坐标,N为图像的总像素数量,dp表示真实图像深度值,

Figure BDA0002227978810000042

表示深度预测值,ep表示深度预测值与真实图像深度值之间的L1范数,α为参数值,取0.5,Ω为图像像素所属区域;

Lgrad为图像梯度损失函数,即图像梯度g的L1范数:

Figure BDA0002227978810000051

其中gx和gy分别为ep在x和y分量上的导数;

Lnormal为图像表面法线损失函数,用于测量深度预测图像的表面法线相对于真实深度图像的准确性,即:

Figure BDA0002227978810000052

其中中间参数

Figure BDA0002227978810000053

优选地,在步骤S3中,将深度预测图像与真实深度图像进行比对,计算误差和精度,对权重模型进行检测。

优选地,对权重模型进行检测的误差评价指标包括:

均方根误差(RMSE):

Figure BDA0002227978810000054

绝对误差(REL):

Figure BDA0002227978810000055

对数均方根误差(Log10):

阈值精度:

Figure BDA0002227978810000057

其中n是所有深度图的像素数量。

本发明及其优选方案通过多尺度特征融合模块捕获不同感受野下的高级特征,利用门控结构从多层特征中自适应地选择有用信息,改善深度重建质量,有效地降低离线训练时的计算量,可实时计算图像深度。此外,使用图像超分辨技术提高深度图的精度,特别是在远距离场景的深度估计中表现出良好的效果。该方法仅使用单目相机获得的图像,将图像输入已训练好的网络模型,即可完成对图像深度的估计,解决离线训练时计算量大和深度重建中细节部分恢复效果差的问题。

与现有技术相比,本发明及其优选方案具有以下突出的有益效果:

1.在网络的上采样结构中,使用子像素卷积(Sub-pixel Convolution)取代传统的双线性插值上采样方式,对图像进行超分辨处理,在提高训练速度的同时,也使得深度图像的细节恢复效果更佳。

2.采用多尺度特征融合模块,对编码器网络中的每层网络输出进行超分辨处理,再将其融合输入到细化单元,通过学习不同层级网络的图像特征,捕获不同感知域下的高级信息,使输出图像的信息更为完整。

3.使用门控自适应解码器,分别将编码器网络和解码器网络的输出连接至门控单元,充分利用来自编码器网络中低分辨率图像的特征,实现了低分辨率和高分辨率之间更好的特征映射,提高算法精度,同时使用门控单元自适应地去除冗余信息,筛选出有用信息作为下一层解码器网络的输入,提升了计算效率。

4.增加细化单元,融合来自门控自适应解码器网路和多尺度特征融合模块的输出,对图像进行进一步细化,提高算法的精确度。

附图说明

下面结合附图和

具体实施方式

对本发明进一步详细的说明:

图1是本发明实施例整体流程示意图;

图2是本发明实施例无监督卷积神经网络结构示意图;

图3是本发明实施例门控单元示意图;

图4是本发明实施例算法结果对比示意图。

具体实施方式

为让本专利的特征和优点能更明显易懂,下文特举实施例,作详细说明如下:

如图1所示,本实施例提供的方案流程包括以下步骤:

1)数据集预处理,生成训练集和测试集,对由单目镜头采集的原始图像和其对应的真实深度图像进行数据增强,具体步骤如下:

1-1)对原始数据集进行分类,生成训练集和测试集以及两者的标签文件,其中50688对图像为训练集,654对图像作为测试集,训练集和测试集的每对图像包括原始图像和相对应的真实深度图像,标签文件包括原始图像和真实深度图像的序号、文件目录;

1-2)重新调整训练集图像大小使其短边像素值为400;

1-3)按照0.5的概率对训练集图像进行随机的水平翻转;

1-4)随机旋转训练集图像一定角度,选择角的取值范围为(-5°,5°);

1-5)分别将训练集中的原始图像和真实深度图像调整至不同大小,原始图像分辨率调整至512*384,对应的真实深度图像分辨率为256*192;

1-6)将训练集图像进行主成分分析(Principal ComponentAnalysis,PCA),来减少特征数,减少噪音和冗余,减少过度拟合的可能性,eigval和eigvec分别指协方差的特征值和特征向量:

eigval=(0.2175,0.0188,0.0045),

Figure BDA0002227978810000071

1-7)对训练集图像进行颜色变换,包括图像亮度、对比度、饱和度,取值分别为0.4,0.4,0.4;

1-8)对训练集图像进行归一化处理,归一化参数为平均值和标准差,mean和std分别指平均值和标准差:

mean=(0.485,0.456,0.406),std=(0.229,0.224,0.225)

2)如图2所示,设计用于单目深度估计的无监督卷积神经网络结构,该网络包括编码器、多尺度特征融合模块、门控自适应解码器、细化单元四个单元,整个神经网络完成对图像的特征提取、非线性映射和深度图像重构,是一个端到端的无监督学习过程。

采用ResNet-50作为编码器,共有五层,每一层网络依次执行卷积、正则化、激活、池化操作,每层网络对输入图像进行一次下采样,使用ReLU激活函数

Figure BDA0002227978810000072

第一层输入图像分辨率为320*256,通道数为3,经过五次连续的下采样后,最后编码器输出的图像分辨率为16*12,通道数为2048。

多尺度特征融合模块将编码器的低分辨率图像通过子像素卷积超分辨为高分辨率图像,作为细化单元的输入。具体过程为对编码器第二至五层网络的输出进行子像素卷积,放大倍数分别为2、4、8、16倍,得到四层分辨率为160*128的图像,将四层图像融合后,进行卷积、正则化、激活,使用ReLU激活函数

Figure BDA0002227978810000081

最后输出分辨率为160*128,通道数为120的高分辨率图像。

门控自适应解码器有五层,使用子像素卷积(具体参考论文Shi W,Caballero J,Husz F,et al.Real-Time Single Image and Video Super-Resolution Using anEfficient Sub-Pixel Convolutional Neural Network[C].2016IEEE Conference onComputer Vision and Pattern Recognition,2016:1874-1883.)对图像进行上采样,解码器第二层和第三层的输入为上一层网络的输出和多尺度特征融合模块的输出,解码器最后输出的图像分辨率为256*192,通道数为4。

如图3所示,门控单元主要由两个卷积层组成。门控单元的输入是来自编码器第i层输出的低分辨率图像

Figure BDA0002227978810000082

和解码器第j层输出的高分辨率图像

Figure BDA0002227978810000083

输出为高分辨率图像通过简单的卷积结构,对来自编码器和上一层解码器的输出特征进行筛选,自适应地选择有用信息,减少冗余信息,提高计算效率,同时充分利用来自编码器网络中低分辨率图像的特征,实现了低分辨率和高分辨率之间更好的特征映射。门控单元第一层网络卷积核大小为3,步长为1,使用LeakyReLU激活函数

Figure BDA0002227978810000085

第二层网络卷积核大小为1,步长为1。

细化单元,融合来自门控自适应解码器和多尺度特征融合模块的输出,具体为将门控自适应解码器最后一层和多尺度特征融合模块输出的分辨率为160*128的图像,按维数1(列)拼接,再执行两次卷积核大小为5,步长为2,填充值为2的卷积操作,每次卷积后需对图像进行归一化和激活处理,最后使用卷积将输出图像的通道数置为1,得到估计的深度图像。

3)构造卷积神经网络的损失函数,使用反向传播算法迭代计算损失函数,以获得卷积神经网络的最佳权重模型。神经网络训练过程实际是一个构建目标函数

Figure BDA0002227978810000086

的过程,通过反向传播算法迭代计算损失函数L,使损失函数最小化来求解目标函数,

Figure BDA0002227978810000087

表示深度预测值,Ip为输入图像的每一个像素值,p定义为像素在图像中的坐标。

损失函数分为三项,分别为深度重建误差损失、梯度平滑损失和表面法线误差损失。第一个损失项深度重建误差Ld计算深度预测值与真实深度之间的差值,为了便于计算采用log函数计算,即:

Figure BDA0002227978810000091

其中d表示真实图像深度值,ep表示深度预测值与真实图像深度值之间的L1范数,α为参数值,取0.5,Ω为图像像素所属区域。

第二个损失项Lgrad定义为图像梯度g上的L1范数,即:

Figure BDA0002227978810000092

其中gx和gy分别为ep在x和y分量上的导数。

第三个损失项Lnormal测量深度预测图像的表面法线相对于真实深度图的准确性,即:

Figure BDA0002227978810000093

其中

Figure BDA0002227978810000094

最终的损失函数由以上三项组成,即:

L=Ld+Lgrad+Lnormal

完成卷积神经网络的设计和目标函数构造后,输入预处理后的训练集,使用反向传播算法计算损失函数损失值,通过反复迭代减小误差进行参数学习,以获得卷积神经网络的最佳权重模型。在实际训练过程中进行20次循环训练,批处理参数设置为4,使用Adam优化,学习率设置为0.0001,学习率每隔5次循环减少10%,权重衰减系数为0.0001,超参数β1和β2分别取值0.9、0.999。

4)加载已训练好的权重模型,将测试集输入卷积神经网络,可以直接得到深度图像,将得到的深度图像与真实深度图像进行比对,计算误差和精度,对权重模型进行评价。

本发明的效果由以下仿真实验进一步说明。

1.仿真条件

(1)选取测试集中的654对图像作为测试图像,每对图像包括原始图像和真实深度图像,将每对图像分辨率转化为320*256。

(2)实验参数设置:归一化参数的平均值和标准差分别设置为:

mean=(0.485,0.456,0.406),std=(0.229,0.224,0.225)

(3)实验环境:操作系统为Ubuntu16.04,显卡型号为NVIDIA Tesla M40,使用PyTorch深度学习框架和Python2.7程序语言。

2.仿真内容与结果

仿真内容:使用分辨率为320*256的测试集图像作为输入,输出分辨率为160*128的深度图像,使用统一的误差评价指标对比其他算法的结果,其中误差评价指标如下:

·均方根误差(RMSE):

Figure BDA0002227978810000101

·绝对误差(REL):

Figure BDA0002227978810000102

·对数均方根误差(Log10):

Figure BDA0002227978810000103

·阈值精度:

Figure BDA0002227978810000104

其中n是所有深度图的像素数量,

Figure BDA0002227978810000105

是深度预测值,dp是真实深度值。

实验结果:

实验结果如表1所示,本发明与Junjie.Hu提出的单目深度估计算法相比,在误差和阈值精度评价指标优于Junjie.Hu的算法,本发明提出的方法在离线训练时的速度是Junjie.Hu算法的3.45倍,如图4所示,在细节恢复和更深的场景中深度重建质量明显优于Junjie.Hu的算法,能更好地满足实际应用需求。

表1

Figure BDA0002227978810000111

本专利不局限于上述最佳实施方式,任何人在本专利的启示下都可以得出其它各种形式的基于深度学习的单目深度估计方法,凡依本发明申请专利范围所做的均等变化与修饰,皆应属本专利的涵盖范围。

14页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:浮水式海底数据测量方法、装置和电子设备

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!