一种利用多任务互补提高深度估计准确性的方法

文档序号:1202612 发布日期:2020-09-01 浏览:9次 >En<

阅读说明:本技术 一种利用多任务互补提高深度估计准确性的方法 (Method for improving depth estimation accuracy by utilizing multitask complementation ) 是由 颜成钢 张杰华 楼杰栋 孙垚棋 张继勇 张勇东 于 2020-04-29 设计创作,主要内容包括:本发明公开了一种利用多任务互补提高深度估计准确性的方法。本发明方法使用SFM系统得到的稀疏的深度图像作为辅助输入,与RGB图像一同输入到卷积神经网络,作为辅助线索提高深度估计的准确性。将稀疏的深度图像和RGB图像当作有噪声的数据,通过去噪编码器对输入数据进行编码,提取其中的特征,将提取的四组特征串联后进行共享,解决了单独的RGB图像以基于卷积神经网络的方法进行深度估计时没有可靠且鲁棒的线索的问题;将编码后的特征通过解码器重建为精确的深度图,得到了更加精确的深度估计结果。(The invention discloses a method for improving depth estimation accuracy by utilizing multi-task complementation. The method uses the sparse depth image obtained by the SFM system as auxiliary input, and inputs the auxiliary input and the RGB image into the convolutional neural network together to serve as an auxiliary clue so as to improve the accuracy of depth estimation. The sparse depth image and the RGB image are used as noisy data, the input data are coded through a denoising coder, the features of the input data are extracted, the four extracted features are connected in series and then shared, and the problem that when the depth estimation is carried out on the single RGB image by a method based on a convolutional neural network, no reliable and robust clues exist is solved; and reconstructing the coded features into an accurate depth map through a decoder to obtain a more accurate depth estimation result.)

一种利用多任务互补提高深度估计准确性的方法

技术领域

本发明涉及计算机视觉领域,尤其涉及一种利用多任务互补提高深度估计准确性的方法。一种以单目相机进行深度估计的方法。

背景技术

作为计算机视觉领域中的重要组成部分,深度估计在近年来随着深度学习的发展变得热门起来。深度估计的主要应用有场景理解、场景建模、深度感知,对于自动驾驶、可穿越性估计也有很大的帮助。

深度估计可以通过激光雷达等设备实现,也可以使用计算机视觉的方法通过摄像头采集图像获得。使用激光雷达等设备有诸多不便,具有设备的价格高昂、不能适用于透明物体等缺点;近年来随着深度学习的发展,使用传统机器学习的方法进行深度估计成果逐渐减少,这是由于传统方法需要手工提取的特征,且这些特征并不能很好的表示真实的3D结构信息,不能取得精确的结果。深度学习的巨大进步,使得让模型自己从图像中学习到丰富的特征成为可能,因此将卷积神经网络(CNN)用于深度估计在近五年中逐渐成为主流。另一方面,采集图像的设备又可分为单目摄像头与双目摄像头,单目摄像头是日常生活场景中常用的图像采集设备,价格低廉,引用广泛;双目摄像头是模仿人眼的结构设计的,可以通过双目视差计算深度,这种方法计算量巨大且受光照和距离影响严重。

实际上单纯通过二维RGB图像要获得三维的深度信息,由于没有可靠的线索,依然存在困难;特别是使用基于卷积神经网络的端到端的回归方法,从RGB图像估计深度,会忽略许多线索和特征。考虑到Geiger等已有的计算稀疏点云的方法,可以用来计算图像的稀疏深度图,利用这种带有噪声的且稀疏的深度图像作为RGB图像的辅助,可以达到提升预测精度的目的。

发明内容

本发明旨在解决单纯使用RGB图片,通过基于卷积神经网络的方法进行深度估计不能够得到足够好结果的这一问题,通过一种利用多任务互补提高深度估计准确性的方法,用来提高深度估计准确性。

为达到上述目的,本发明方法使用SFM系统得到的稀疏的深度图像作为辅助输入,与RGB图像一同输入到卷积神经网络,作为辅助线索提高深度估计的准确性。

步骤1、通过SFM系统对数据集中的RGB图像进行处理,得到稀疏深度图像,和数据集中原RGB图像一一对应,成为数据集的一部分。

步骤2、将RGB图像与稀疏深度图像分别输入到RGB去噪编码器与深度去噪编码器,分别得到编码后的关于稀疏深度图和RGB图像的特征,分别记作稀疏深度图特征d_feat、RGB图像R通道特征r_feat、RGB图像G通道特征g_feat、RGB图像B通道特征b_feat。

其中RGB去噪编码器结构如下:

输入层大小等于输入的RGB图像尺寸大小;隐藏层大小为1024个神经元,激活函数为relu激活函数,权值初始化方式为按正态分布随机初始化;输出层大小与输入层大小相同等于输入RGB图像的尺寸大小,权重初始化方式为按正态分布随机初始化,激活函数为sigmoid激活函数。

深度去噪编码器的结构为:

输入层大小等于稀疏深度图像尺寸大小;隐藏层大小为1024个神经元,激活函数为relu激活函数,权值初始化方式为按正态分布随机初始化;输出层大小与输入层大小相同等于输入的稀疏深度图像的尺寸大小,权重初始化方式为按正态分布随机初始化,激活函数为linear激活,即不做任何改变。隐藏层的输入为输入层的输出,隐藏层的输出作为输出层的输入。

步骤3、将步骤2所得特征d_feat、r_feat、g_feat、b_feat进行串联,即做一个点积操作,得到串联后的特征cancat_feat,将串联后的特征cancat_feat输入到下一卷积层,激活串联后的特征cancat_feat,卷积层输出共享特征。

所述卷积层结构为1024个神经元组成,激活函数为relu激活函数,权重初始方式为按正态分布随机初始化。卷积层输出的共享特征记为shared_feat。

步骤4、将共享特征shared_feat输入到解码层,解码层大小等同于稀疏深度图像尺寸大小,权重初始化方式为按正态分布随机初始化,激活函数为relu函数。解码层的输出为即为所要得到的深度图。

以上为本发明的主要结构和流程,其中由一些细节需要进行补充说明,首先一张RGB图像应该分为红绿蓝三个通道分别输入到RGB去噪编码器,即RGB去噪编码器需要调用三次,有三个输出;其次训练时的损失函数为欧几里得损失,用随机梯度下降方法训练模型;

本发明所达到的有益效果为:

将稀疏的深度图像和RGB图像当作有噪声的数据,通过去噪编码器对输入数据进行编码,提取其中的特征,将提取的四组特征串联后进行共享,解决了单独的RGB图像以基于卷积神经网络的方法进行深度估计时没有可靠且鲁棒的线索的问题;将编码后的特征通过解码器重建为精确的深度图,得到了更加精确的深度估计结果。

附图说明

图1为本发明流程图

图2为编码器结构示意图

具体实施方式

下面结合附图并通过具体实施例对本发明做进一步详述。

本发明的具体实施例及其实施过程如下:

具体实施过程包括深度模型的训练与测试两个阶段:

步骤1:进行数据增强:

将已划分训练集和测试集的数据集中的所有RGB图像进行水平翻转并保存,使数据集的规模扩大一倍。通过SFM系统对将扩大后数据集中的RGB图像进行处理,得到稀疏深度图像;将稀疏深度图像和扩大后数据集中RGB图像一一对应,成为数据集的一部分。

深度模型的训练阶段的具体步骤为:

步骤2:构建编码解码网络。

编码解码网络包括RGB去噪编码器和深度去噪编码器。编码器有三层,包括输入层、隐藏层、输出层。两个编码器的隐藏层均只由一个全连接层组成。

对于RGB去噪编码器的输入层,输入为训练集中的单张RGB图像,输入层的输出端输出单目RGB图像给隐藏层,要求输入层的大小为W*H*1,为一卷积层,层名称上加以变量‘channel’以区分三个通道。W为输入RGB图像的宽,H为输入RGB图像的高,channel取值为r、g、b。隐藏层为1024个神经元的全连接层,激活函数为relu函数,权重初始化方式为按零均值正态分布随机初始化,层名称加一变量以区分不同通道的隐藏层。隐藏层激活后输出到输出层。输出层为W*H个神经元的全连接层,激活函数为sigmoid激活函数,权重初始化方式为按零均值正态分布随机初始化。输出层的输出再重整为W*H*1形状。

对于深度去噪编码器输入层,输入为SFM系统输出的训练集中的稀疏深度图像,输出端将输入的稀疏深度图像传递给隐藏层,要求输入层的大小为W*H*1,为卷积层,之后在输入到隐藏层之前先平铺,然后再输入到隐藏层;隐藏层为1024个神经元的全连接层,对平铺后的输入进行激活,权重的初始化方式为按零均值的正态分布随机初始化,激活函数为relu激活函数,隐藏层激活后输出到输出层,输出层为W*H个神经元的全连接层,权重初始化方式为按零均值正态分布随机初始化,激活函数为线性激活即不做改变,输出结果重整为W*H*1的形状。

步骤3:特征提取融合。

将训练集中的RGB图像和稀疏深度图像中的10%像素值置零,分别输入到RGB去噪编码器与深度去噪编码器,从输出层分别得到编码后的关于稀疏深度图和RGB图像的特征。将RGB图像R通道特征、RGB图像G通道特征、RGB图像B通道特征、稀疏深度图特征分别记作r_feat、g_feat、b_feat、d_feat。对提取的特征进行concatenate操作,concatenate操作在keras库中为点积运算。concatenate操作后的特征记作concat_feat,输入到有1024个神经元的全连接层,权重的初始化方式为按零均值正态分布随机初始化,激活函数为relu函数,全连接层输出结果记作共享特征shared_feat,即进行了特征共享。

步骤4:输出结果。将共享特征shared_feat进行解码,shared_feat输入到含有W*H个神经元的全连接层(解码层),权重的初始化方式为按零均值正态分布随机初始化,激活函数为relu函数,输出结果为深度预测图像,记作d_output。将d_output重整为W*H*1形状。

训练参数为:在keras库下,优化器选择SGD随机梯度下降,损失函数为均方损失,学习率设置为10-5,最大步数10000,批处理大小32,迭代次数60。参数需要根据数据集的不同进行调整,训练深度模型直至收敛到最优模型。

深度模型发测试阶段:

步骤5:将增强后的测试集中的数据载入训练好的深度模型,得到单目估计的深度预测图像。

针对深度预测图像计算指标rms、log rms、δ、δ2,根据指标得到的结果,进行判断,表明本发明专利的效果优于现有单目图像深度估计方法。

7页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:一种行驶车辆高度实时检测方法

网友询问留言

已有0条留言

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

精彩留言,会给你点赞!