一种基于神经网络的单目图像深度预测方法与流程

文档序号:17094260发布日期:2019-03-13 23:43阅读:218来源:国知局
一种基于神经网络的单目图像深度预测方法与流程
本发明涉及一种图像深度预测技术,尤其是涉及一种基于神经网络的单目图像深度预测方法。
背景技术
:随着机器学习的迅速发展,机器模仿人类从图像中一定程度上估计物体距离远近已成为可能,即机器能在一定程度上对单张图像进行深度预测并获得深度图。深度图在三维重建、机器人导航等领域应用较广;同时,深度图由于提供了物体远近的信息,有助于检测、分割等计算机视觉领域。深度图当前主要来源于不同型号的深度相机,但是深度相机因价格昂贵、不易携带等缺点应用具有局限性;而利用单目视觉提取的深度信息成本较低,已受到关注。自2014年,深度学习首次应用于单目图像深度预测,且获得了较好的预测结果。由数据驱动的深度学习方法在单目视觉深度预测领域发展较快。相较于原始的通过人工设计的手工特征提取图像的深度特性,深度学习方法由于通过数据提取特征,因此更加客观可靠。2014年,eigen等人首次提出多尺度神经网络的方式,通过对图像进行粗糙-精细两个尺度的特征提取,通过粗糙尺度获得低分辨率粗糙的网络框架,并通过精细尺度优化;2016年,lainai等人提出全卷积残差网络(fullyconvolutionalresidualnetworks,fcrn)网络框架,利用resnet网络框架强大的特征提取能力进行特征提取,并通过变形的卷积替代反卷积过程加快了运算速度;2017年,xiaogangwang等通过加入条件随机场(conditionalrandomfield,crf)改善预测的深度图,并获得了较好的结果。但是,上述方法并没有充分考虑全局和局部特征,因此在深度预测中精度上仍然有提升的空间。技术实现要素:本发明所要解决的技术问题是提供一种基于神经网络的单目图像深度预测方法,其预测精度高,且计算复杂度低。本发明解决上述技术问题所采用的技术方案为:一种基于神经网络的单目图像深度预测方法,其特征在于包括训练阶段和测试阶段两个过程;所述的训练阶段过程的具体步骤为:步骤1_1:选取q幅原始的单目图像及每幅原始的单目图像对应的真实深度图像,并构成训练集,将训练集中的第q幅原始的单目图像记为{iq(i,j)},将训练集中与{iq(i,j)}对应的真实深度图像记为其中,q为正整数,q≥200,q为正整数,1≤q≤q,1≤i≤w,1≤j≤h,w表示{iq(i,j)}和的宽度,h表示{iq(i,j)}和的高度,iq(i,j)表示{iq(i,j)}中坐标位置为(i,j)的像素点的像素值,表示中坐标位置为(i,j)的像素点的像素值;步骤1_2:构建神经网络:神经网络包括输入层、隐层和输出层;隐层包括编码网络框架和解码网络框架;对于输入层,输入层的输入端接收一幅原始输入图像,输入层的输出端输出原始输入图像给隐层;其中,要求输入层的输入端接收的原始输入图像的宽度为w、高度为h;对于编码网络框架,其包括5个神经网络块、1个推理层和1个连接层,第1个神经网络块由依次设置的2个卷积层和1个最大池化层组成,第2个神经网络块由依次设置的2个卷积层和1个最大池化层组成,第3个神经网络块由依次设置的3个卷积层和1个最大池化层组成,第4个神经网络块由依次设置的3个卷积层和1个最大池化层组成,第5个神经网络块由依次设置的3个卷积层和1个最大池化层组成,推理层由依次设置的2个带孔卷积神经网络构成,其中,每个神经网络块中的每个卷积层的卷积核尺寸为3×3、激活函数采用线性整流函数,每个神经网络块中的每个最大池化层的步长为2,每个带孔卷积神经网络中的卷积层的卷积核尺寸为3×3、激活函数采用线性整流函数,每个带孔卷积神经网络的膨胀率为2;对于编码网络框架,第1个神经网络块的输入端接收输入层的输出端输出的原始输入图像,第1个神经网络块的输出端输出k幅特征图,将k幅特征图构成的集合记为a1,其中,k=64,a1中的每幅特征图的宽度为高度为符号为向下取整运算符号;第2个神经网络块的输入端接收a1中的所有特征图,第2个神经网络块的输出端输出k幅特征图,将k幅特征图构成的集合记为a2,其中,k=64,a2中的每幅特征图的宽度为高度为第3个神经网络块的输入端接收a2中的所有特征图,第3个神经网络块的输出端输出k'幅特征图,将k'幅特征图构成的集合记为a3,其中,k'=128,a3中的每幅特征图的宽度为高度为第4个神经网络块的输入端接收a3中的所有特征图,第4个神经网络块的输出端输出k'幅特征图,将k'幅特征图构成的集合记为a4,其中,k'=128,a4中的每幅特征图的宽度为高度为第5个神经网络块的输入端接收a4中的所有特征图,第5个神经网络块的输出端输出k'幅特征图,将k'幅特征图构成的集合记为a5,其中,k'=128,a5中的每幅特征图的宽度为高度为推理层的输入端接收a5中的所有特征图,推理层的输出端输出k'幅特征图,将k'幅特征图构成的集合记为b,其中,k'=128,b中的每幅特征图的宽度为高度为连接层的输入端接收a5中的所有特征图和b中的所有特征图,连接层通过concatence方式连接a5和b得到集合c,连接层的输出端输出c,其中,c中的每幅特征图的宽度为高度为c中包含的特征图的总幅数为k'+k';对于解码网络框架,其包括5个神经网络块、5个连接层、4个独立的双线性上采样层,每个神经网络块由依次设置的1个卷积层和1个双线性上采样层组成,其中,每个神经网络块中的卷积层的卷积核尺寸为3×3、激活函数采用线性整流函数,第1个神经网络块中的双线性上采样层的目标的宽度设置为与a4中的特征图的宽度一致、高度设置为与a4中的特征图的高度一致,第2个神经网络块中的双线性上采样层的目标的宽度设置为与a3中的特征图的宽度一致、高度设置为与a3中的特征图的高度一致,第3个神经网络块中的双线性上采样层的目标的宽度设置为与a2中的特征图的宽度一致、高度设置为与a2中的特征图的高度一致,第4个神经网络块中的双线性上采样层的目标的宽度设置为与a1中的特征图的宽度一致、高度设置为与a1中的特征图的高度一致,第5个神经网络块中的双线性上采样层的目标的宽度设置为与原始输入图像的宽度一致、高度设置为与原始输入图像的高度一致,每个独立的双线性上采样层的目标的宽度设置为与原始输入图像的宽度一致、高度设置为与原始输入图像的高度一致;对于解码网络框架,第1个神经网络块的输入端接收c中的所有特征图,第1个神经网络块的输出端输出k'幅特征图,将k'幅特征图构成的集合记为c1,其中,k'=128,c1中的每幅特征图的宽度为高度为第1个连接层的输入端接收a4中的所有特征图和c1中的所有特征图,第1个连接层通过concatence方式连接a4和c1得到集合c2,第1个连接层的输出端输出c2,其中,c2中的每幅特征图的宽度为高度为c2中包含的特征图的总幅数为k'+k';第2个神经网络块的输入端接收c2中的所有特征图,第2个神经网络块的输出端输出k'幅特征图,将k'幅特征图构成的集合记为c3,其中,k'=128,c3中的每幅特征图的宽度为高度为第2个连接层的输入端接收a3中的所有特征图和c3中的所有特征图,第2个连接层通过concatence方式连接a3和c3得到集合c4,第2个连接层的输出端输出c4,其中,c4中的每幅特征图的宽度为高度为c4中包含的特征图的总幅数为k'+k';第3个神经网络块的输入端接收c4中的所有特征图,第3个神经网络块的输出端输出k幅特征图,将k幅特征图构成的集合记为c5,其中,k=64,c5中的每幅特征图的宽度为高度为第3个连接层的输入端接收a2中的所有特征图和c5中的所有特征图,第3个连接层通过concatence方式连接a2和c5得到集合c6,第3个连接层的输出端输出c6,其中,c6中的每幅特征图的宽度为高度为c6中包含的特征图的总幅数为k+k;第4个神经网络块的输入端接收c6中的所有特征图,第4个神经网络块的输出端输出k幅特征图,将k幅特征图构成的集合记为c7,其中,k=64,c7中的每幅特征图的宽度为高度为第4个连接层的输入端接收a1中的所有特征图和c7中的所有特征图,第4个连接层通过concatence方式连接a1和c7得到集合c8,第4个连接层的输出端输出c8,其中,c8中的每幅特征图的宽度为高度为c8中包含的特征图的总幅数为k+k;第5个神经网络块的输入端接收c8中的所有特征图,第5个神经网络块的输出端输出k幅特征图,将k幅特征图构成的集合记为c9,其中,k=64,c9中的每幅特征图的宽度为w、高度为h;第1个独立的双线性上采样层的输入端接收c1中的所有特征图,第1个独立的双线性上采样层的输出端输出k'幅特征图,将k'幅特征图构成的集合记为d1,其中,k'=128,d1中的每幅特征图的宽度为w、高度为h;第2个独立的双线性上采样层的输入端接收c3中的所有特征图,第2个独立的双线性上采样层的输出端输出k'幅特征图,将k'幅特征图构成的集合记为d2,其中,k'=128,d2中的每幅特征图的宽度为w、高度为h;第3个独立的双线性上采样层的输入端接收c5中的所有特征图,第3个独立的双线性上采样层的输出端输出k幅特征图,将k幅特征图构成的集合记为d3,其中,k=64,d3中的每幅特征图的宽度为w、高度为h;第4个独立的双线性上采样层的输入端接收c7中的所有特征图,第4个独立的双线性上采样层的输出端输出k幅特征图,将k幅特征图构成的集合记为d4,其中,k=64,d4中的每幅特征图的宽度为w、高度为h;第5个连接层的输入端接收c9中的所有特征图和d1,d2,d3,d4中的所有特征图,第5个连接层通过concatence方式连接c9和d1,d2,d3,d4得到集合e,第5个连接层的输出端输出e,其中,e中的每幅特征图的宽度为w、高度为h,e中包含的特征图的总幅数为k+k'+k'+k+k;对于输出层,其包括1个卷积层,其中,卷积层的卷积核尺寸为3×3、激活函数采用线性整流函数;输出层的输入端接收e中的所有特征图,输出层的输出端输出一幅原始输入图像对应的预测深度图像;步骤1_3:将训练集中的每幅原始的单目图像作为原始输入图像,输入到神经网络中进行训练,得到训练集中的每幅原始的单目图像对应的预测深度图像,将{iq(i,j)}对应的预测深度图像记为其中,表示中坐标位置为(i,j)的像素点的像素值;步骤1_4:计算训练集中的每幅原始的单目图像对应的预测深度图像与对应的真实深度图像之间的损失函数值,将与之间的损失函数值记为步骤1_5:重复执行步骤1_3和步骤1_4共v次,得到训练好的神经网络模型,并共得到q×v个损失函数值;然后从q×v个损失函数值中找出值最小的损失函数值;接着将值最小的损失函数值对应的权值矢量和偏置项对应作为训练好的神经网络模型的最优权值矢量和最优偏置项,对应记为wbest和bbest;其中,v>1;所述的测试阶段过程的具体步骤为:步骤2_1:令表示待预测的单目图像;其中,1≤i'≤w',1≤j'≤h',w'表示的宽度,h'表示的高度,表示中坐标位置为(i,j)的像素点的像素值;步骤2_2:将输入到训练好的神经网络模型中,并利用wbest和bbest进行预测,得到对应的预测深度图像,记为其中,表示中坐标位置为(i',j')的像素点的像素值。所述的步骤1_4中,采用均方误差获得,与现有技术相比,本发明的优点在于:1)针对当前深度预测的方法主要利用了小尺寸下的特征信息,对于大尺寸下的特征信息利用不足的缺点,本发明方法提出了一种新的神经网络结构,该神经网络结构采用5个神经网络块和两个带孔卷积层构成编码网络框架用于提取小尺寸下的特征信息,采用解码网络框架将图像逐渐恢复到原始单目图像的尺寸,在将图像不断变大的同时利用卷积神经网络提取特征,有效利用了大尺寸下获得的特征信息,通过两次融合的操作将编码网络框架阶段的特征信息融合入解码网络框架中,有利于边缘特征的提取和降低深度预测的误差。2)本发明方法仅利用了相机中仿照左眼或右眼获得的单目视觉的原始单目图像及其对应的真实深度图像,即只利用了单目视觉的信息,相较于双目降低了计算成本,计算复杂度低。3)本发明方法在编码网络框架的推理层利用了带孔卷积的方式增强了感受野,有利于生成更精确的深度图像,利用带孔卷积也减少了计算参数量,节约了计算成本。附图说明图1为本发明方法的总体实现框图。具体实施方式以下结合附图实施例对本发明作进一步详细描述。本发明提出的一种基于神经网络的单目图像深度预测方法,其总体实现框图如图1所示,其包括训练阶段和测试阶段两个过程;所述的训练阶段过程的具体步骤为:步骤1_1:选取q幅原始的单目图像及每幅原始的单目图像对应的真实深度图像,并构成训练集,将训练集中的第q幅原始的单目图像记为{iq(i,j)},将训练集中与{iq(i,j)}对应的真实深度图像记为其中,q为正整数,q≥200,如取q=4000,q为正整数,1≤q≤q,1≤i≤w,1≤j≤h,w表示{iq(i,j)}和的宽度,h表示{iq(i,j)}和的高度,iq(i,j)表示{iq(i,j)}中坐标位置为(i,j)的像素点的像素值,表示中坐标位置为(i,j)的像素点的像素值;在此,深度图像可通过激光雷达获取。步骤1_2:构建神经网络:神经网络包括输入层、隐层和输出层;隐层包括编码网络框架和解码网络框架;对于输入层,输入层的输入端接收一幅原始输入图像,输入层的输出端输出原始输入图像给隐层;其中,要求输入层的输入端接收的原始输入图像的宽度为w、高度为h;对于编码网络框架,其包括5个神经网络块、1个推理层和1个连接层,第1个神经网络块由依次设置的2个卷积层和1个最大池化层组成,第2个神经网络块由依次设置的2个卷积层和1个最大池化层组成,第3个神经网络块由依次设置的3个卷积层和1个最大池化层组成,第4个神经网络块由依次设置的3个卷积层和1个最大池化层组成,第5个神经网络块由依次设置的3个卷积层和1个最大池化层组成,推理层由依次设置的2个带孔卷积神经网络构成,其中,每个神经网络块中的每个卷积层的卷积核尺寸为3×3、激活函数采用现有的线性整流函数(rectifiedlinearunit,relu),线性整流函数在结构上具有模仿人脑神经元的特点,因此能够符合实际生物学对模拟神经网络的期望,每个神经网络块中的每个最大池化层的步长为2,每个带孔卷积神经网络中的卷积层的卷积核尺寸为3×3、激活函数采用现有的线性整流函数,每个带孔卷积神经网络的膨胀率(dilationrate)为2;对于编码网络框架,第1个神经网络块的输入端接收输入层的输出端输出的原始输入图像,第1个神经网络块的输出端输出k幅特征图,将k幅特征图构成的集合记为a1,其中,k=64,a1中的每幅特征图的宽度为高度为符号为向下取整运算符号;第2个神经网络块的输入端接收a1中的所有特征图,第2个神经网络块的输出端输出k幅特征图,将k幅特征图构成的集合记为a2,其中,k=64,a2中的每幅特征图的宽度为高度为第3个神经网络块的输入端接收a2中的所有特征图,第3个神经网络块的输出端输出k'幅特征图,将k'幅特征图构成的集合记为a3,其中,k'=128,a3中的每幅特征图的宽度为高度为第4个神经网络块的输入端接收a3中的所有特征图,第4个神经网络块的输出端输出k'幅特征图,将k'幅特征图构成的集合记为a4,其中,k'=128,a4中的每幅特征图的宽度为高度为第5个神经网络块的输入端接收a4中的所有特征图,第5个神经网络块的输出端输出k'幅特征图,将k'幅特征图构成的集合记为a5,其中,k'=128,a5中的每幅特征图的宽度为高度为推理层的输入端接收a5中的所有特征图,推理层的输出端输出k'幅特征图,将k'幅特征图构成的集合记为b,其中,k'=128,b中的每幅特征图的宽度为高度为连接层的输入端接收a5中的所有特征图和b中的所有特征图,连接层通过现有的concatence方式连接a5和b得到集合c,连接层的输出端输出c,其中,c中的每幅特征图的宽度为高度为c中包含的特征图的总幅数为k'+k';对于解码网络框架,其包括5个神经网络块、5个连接层、4个独立的双线性上采样层,每个神经网络块由依次设置的1个卷积层和1个双线性上采样层组成,其中,每个神经网络块中的卷积层的卷积核尺寸为3×3、激活函数采用现有的线性整流函数,第1个神经网络块中的双线性上采样层(采用现有的双线性插值的方法)的目标的宽度设置为与a4中的特征图的宽度一致、高度设置为与a4中的特征图的高度一致,第2个神经网络块中的双线性上采样层的目标的宽度设置为与a3中的特征图的宽度一致、高度设置为与a3中的特征图的高度一致,第3个神经网络块中的双线性上采样层的目标的宽度设置为与a2中的特征图的宽度一致、高度设置为与a2中的特征图的高度一致,第4个神经网络块中的双线性上采样层的目标的宽度设置为与a1中的特征图的宽度一致、高度设置为与a1中的特征图的高度一致,第5个神经网络块中的双线性上采样层的目标的宽度设置为与原始输入图像的宽度一致、高度设置为与原始输入图像的高度一致,每个独立的双线性上采样层的目标的宽度设置为与原始输入图像的宽度一致、高度设置为与原始输入图像的高度一致;对于解码网络框架,第1个神经网络块的输入端接收c中的所有特征图,第1个神经网络块的输出端输出k'幅特征图,将k'幅特征图构成的集合记为c1,其中,k'=128,c1中的每幅特征图的宽度为高度为第1个连接层的输入端接收a4中的所有特征图和c1中的所有特征图,第1个连接层通过现有的concatence方式连接a4和c1得到集合c2,第1个连接层的输出端输出c2,其中,c2中的每幅特征图的宽度为高度为c2中包含的特征图的总幅数为k'+k';第2个神经网络块的输入端接收c2中的所有特征图,第2个神经网络块的输出端输出k'幅特征图,将k'幅特征图构成的集合记为c3,其中,k'=128,c3中的每幅特征图的宽度为高度为第2个连接层的输入端接收a3中的所有特征图和c3中的所有特征图,第2个连接层通过现有的concatence方式连接a3和c3得到集合c4,第2个连接层的输出端输出c4,其中,c4中的每幅特征图的宽度为高度为c4中包含的特征图的总幅数为k'+k';第3个神经网络块的输入端接收c4中的所有特征图,第3个神经网络块的输出端输出k幅特征图,将k幅特征图构成的集合记为c5,其中,k=64,c5中的每幅特征图的宽度为高度为第3个连接层的输入端接收a2中的所有特征图和c5中的所有特征图,第3个连接层通过现有的concatence方式连接a2和c5得到集合c6,第3个连接层的输出端输出c6,其中,c6中的每幅特征图的宽度为高度为c6中包含的特征图的总幅数为k+k;第4个神经网络块的输入端接收c6中的所有特征图,第4个神经网络块的输出端输出k幅特征图,将k幅特征图构成的集合记为c7,其中,k=64,c7中的每幅特征图的宽度为高度为第4个连接层的输入端接收a1中的所有特征图和c7中的所有特征图,第4个连接层通过现有的concatence方式连接a1和c7得到集合c8,第4个连接层的输出端输出c8,其中,c8中的每幅特征图的宽度为高度为c8中包含的特征图的总幅数为k+k;第5个神经网络块的输入端接收c8中的所有特征图,第5个神经网络块的输出端输出k幅特征图,将k幅特征图构成的集合记为c9,其中,k=64,c9中的每幅特征图的宽度为w、高度为h;第1个独立的双线性上采样层的输入端接收c1中的所有特征图,第1个独立的双线性上采样层的输出端输出k'幅特征图,将k'幅特征图构成的集合记为d1,其中,k'=128,d1中的每幅特征图的宽度为w、高度为h;第2个独立的双线性上采样层的输入端接收c3中的所有特征图,第2个独立的双线性上采样层的输出端输出k'幅特征图,将k'幅特征图构成的集合记为d2,其中,k'=128,d2中的每幅特征图的宽度为w、高度为h;第3个独立的双线性上采样层的输入端接收c5中的所有特征图,第3个独立的双线性上采样层的输出端输出k幅特征图,将k幅特征图构成的集合记为d3,其中,k=64,d3中的每幅特征图的宽度为w、高度为h;第4个独立的双线性上采样层的输入端接收c7中的所有特征图,第4个独立的双线性上采样层的输出端输出k幅特征图,将k幅特征图构成的集合记为d4,其中,k=64,d4中的每幅特征图的宽度为w、高度为h;第5个连接层的输入端接收c9中的所有特征图和d1,d2,d3,d4中的所有特征图,第5个连接层通过现有的concatence方式连接c9和d1,d2,d3,d4得到集合e,第5个连接层的输出端输出e,其中,e中的每幅特征图的宽度为w、高度为h,e中包含的特征图的总幅数为k+k'+k'+k+k;对于输出层,其包括1个卷积层,其中,卷积层的卷积核尺寸为3×3、激活函数采用现有的线性整流函数;输出层的输入端接收e中的所有特征图,输出层的输出端输出一幅原始输入图像对应的预测深度图像。步骤1_3:将训练集中的每幅原始的单目图像作为原始输入图像,输入到神经网络中进行训练,得到训练集中的每幅原始的单目图像对应的预测深度图像,将{iq(i,j)}对应的预测深度图像记为其中,表示中坐标位置为(i,j)的像素点的像素值。步骤1_4:计算训练集中的每幅原始的单目图像对应的预测深度图像与对应的真实深度图像之间的损失函数值,将与之间的损失函数值记为在本实施例中,步骤1_4中,采用均方误差(mean-squareerror,mse)获得,步骤1_5:重复执行步骤1_3和步骤1_4共v次,得到训练好的神经网络模型,并共得到q×v个损失函数值;然后从q×v个损失函数值中找出值最小的损失函数值;接着将值最小的损失函数值对应的权值矢量和偏置项对应作为训练好的神经网络模型的最优权值矢量和最优偏置项,对应记为wbest和bbest;其中,v>1,在本实施例中取v=20。所述的测试阶段过程的具体步骤为:步骤2_1:令表示待预测的单目图像;其中,1≤i'≤w',1≤j'≤h',w'表示的宽度,h'表示的高度,表示中坐标位置为(i,j)的像素点的像素值。步骤2_2:将输入到训练好的神经网络模型中,并利用wbest和bbest进行预测,得到对应的预测深度图像,记为其中,表示中坐标位置为(i',j')的像素点的像素值。为了验证本发明方法的可行性与有效性,进行如下实验。选用kitti官网提供的数据集作为测试集,将测试集中的每幅待预测的单目图像输入到训练好的神经网络模型中,并利用wbest和bbest进行预测,输出预测深度图像。通过6个评测指标比较预测深度图像与真实深度图像之间的关联性,这6个评测指标分别为:均方根误差(rootmeansquareerror,rmse)、对数平均误差(averagelg10error,log10)、对数均方根误差(logrootmeansquareerror,log_rms)以及阈值下的精确度值:δ1、δ2、δ3;其中,均方根误差、对数平均误差和对数均方根误差反应的是预测深度图像与真实深度图像之间的误差,越小越好;阈值下的精确度值δ1、δ2、δ3反应的是预测深度图像的精度,越大越好。6个评测指标的计算公式如下:的阈值下的精确度值:其中,符号“||”为取绝对值符号,t表示所有预测深度图像中的像素点的总个数,即t=w×h,max()为取最大值函数,y表示待预测的单目图像对应的真实深度图像中的像素点的像素值,表示待预测的单目图像对应的预测深度图像中的像素点的像素值。表1给出了利用本发明方法得到的预测深度图像与真实深度图像之间的误差和相关性,从表1中可以看出,本发明方法有效降低了预测深度图像与真实深度图像之间的误差,精度也有所提高,可以较好地实现单目图像深度预测。表1利用本发明方法得到的预测深度图像与真实深度图像之间的误差和相关性评测指标结果rmselog10log_rmsδ1δ2δ32.41360.2370.1260.6770.9480.975当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1