1.一种基于深度卷积神经网络的单目视觉深度估计方法,其特征在于包括训练阶段和测试阶段两个过程;
所述的训练阶段过程的具体步骤为:
步骤1_1:选取N幅原始的单目图像及每幅原始的单目图像对应的真实深度图像,并构成训练集,将训练集中的第n幅原始的单目图像记为{Qn(x,y)},将训练集中与{Qn(x,y)}对应的真实深度图像记为 其中,N为正整数,N≥1000,n为正整数,1≤n≤N,1≤x≤R,1≤y≤L,R表示{Qn(x,y)}和 的宽度,L表示{Qn(x,y)}和 的高度,R和L均能被2整除,Qn(x,y)表示{Qn(x,y)}中坐标位置为(x,y)的像素点的像素值,表示 中坐标位置为(x,y)的像素点的像素值;
步骤1_2:构建深度卷积神经网络:深度卷积神经网络包括输入层、隐层和输出层;隐层包括编码框架和译码框架;
对于输入层,输入层的输入端接收一幅原始输入图像,输入层的输出端输出原始输入图像给隐层;其中,要求输入层的输入端接收的原始输入图像的宽度为R、高度为L;
对于编码框架,其由依次设置的第一卷积层、第一批规范化层、第一激活层、第一最大池化层、第一conv_block网络块、第一identity_block网络块、第二identity_block网络块、第二conv_block网络块、第三identity_block网络块、第四identity_block网络块、第五identity_block网络块、第三conv_block网络块、第六identity_block网络块、第七identity_block网络块、第八identity_block网络块、第四conv_block网络块、第九identity_block网络块、第十identity_block网络块组成,其中,第一卷积层的卷积核大小为1×1、卷积核个数为32、卷积步长采用默认值,第一批规范化层的参数采用默认值,第一激活层的激活函数采用ReLu,第一最大池化层的池化步长为2×2,第一conv_block网络块中的融合层的第一个输入中的一个卷积层的卷积核大小为1×1、卷积核个数为128、卷积步长为1×1,第一conv_block网络块中的融合层的第二个输入中按序设置的第1个卷积层的卷积核大小为1×1、卷积核个数为64、卷积步长为1×1,第一conv_block网络块中的融合层的第二个输入中按序设置的第2个卷积层的卷积核大小为3×3、卷积核个数为64、卷积步长采用默认值,第一conv_block网络块中的融合层的第二个输入中按序设置的第3个卷积层的卷积核大小为1×1、卷积核个数为128、卷积步长采用默认值,第一identity_block网络块和第二identity_block网络块各自中的融合层的第二个输入中按序设置的第1个卷积层的卷积核大小为1×1、卷积核个数为64、卷积步长为采用默认值,第一identity_block网络块和第二identity_block网络块各自中的融合层的第二个输入中按序设置的第2个卷积层的卷积核大小为3×3、卷积核个数为64、卷积步长采用默认值,第一identity_block网络块和第二identity_block网络块各自中的融合层的第二个输入中按序设置的第3个卷积层的卷积核大小为1×1、卷积核个数为128、卷积步长采用默认值,第二conv_block网络块中的融合层的第一个输入中的一个卷积层的卷积核大小为1×1、卷积核个数为256、卷积步长为
2×2,第二conv_block网络块中的融合层的第二个输入中按序设置的第1个卷积层的卷积核大小为1×1、卷积核个数为128、卷积步长为2×2,第二conv_block网络块中的融合层的第二个输入中按序设置的第2个卷积层的卷积核大小为3×3、卷积核个数为128、卷积步长采用默认值,第二conv_block网络块中的融合层的第二个输入中按序设置的第3个卷积层的卷积核大小为1×1、卷积核个数为256、卷积步长采用默认值,第三identity_block网络块、第四identity_block网络块和第五identity_block网络块各自中的融合层的第二个输入中按序设置的第1个卷积层的卷积核大小为1×1、卷积核个数为128、卷积步长为采用默认值,第三identity_block网络块、第四identity_block网络块和第五identity_block网络块各自中的融合层的第二个输入中按序设置的第2个卷积层的卷积核大小为3×3、卷积核个数为128、卷积步长采用默认值,第三identity_block网络块、第四identity_block网络块和第五identity_block网络块各自中的融合层的第二个输入中按序设置的第3个卷积层的卷积核大小为1×1、卷积核个数为256、卷积步长采用默认值,第三conv_block网络块中的融合层的第一个输入中的一个卷积层的卷积核大小为1×1、卷积核个数为512、卷积步长为2×2,第三conv_block网络块中的融合层的第二个输入中按序设置的第1个卷积层的卷积核大小为1×1、卷积核个数为256、卷积步长为2×2,第三conv_block网络块中的融合层的第二个输入中按序设置的第2个卷积层的卷积核大小为3×3、卷积核个数为256、卷积步长采用默认值,第三conv_block网络块中的融合层的第二个输入中按序设置的第3个卷积层的卷积核大小为1×1、卷积核个数为512、卷积步长采用默认值,第六identity_block网络块、第七identity_block网络块和第八identity_block网络块各自中的融合层的第二个输入中按序设置的第1个卷积层的卷积核大小为1×1、卷积核个数为256、卷积步长为采用默认值,第六identity_block网络块、第七identity_block网络块和第八identity_block网络块各自中的融合层的第二个输入中按序设置的第2个卷积层的卷积核大小为3×
3、卷积核个数为256、卷积步长采用默认值,第六identity_block网络块、第七identity_block网络块和第八identity_block网络块各自中的融合层的第二个输入中按序设置的第
3个卷积层的卷积核大小为1×1、卷积核个数为512、卷积步长采用默认值,第四conv_block网络块中的融合层的第一个输入中的一个卷积层的卷积核大小为1×1、卷积核个数为
1024、卷积步长为2×2,第四conv_block网络块中的融合层的第二个输入中按序设置的第1个卷积层的卷积核大小为1×1、卷积核个数为512、卷积步长为2×2,第四conv_block网络块中的融合层的第二个输入中按序设置的第2个卷积层的卷积核大小为3×3、卷积核个数为512、卷积步长采用默认值,第四conv_block网络块中的融合层的第二个输入中按序设置的第3个卷积层的卷积核大小为1×1、卷积核个数为1024、卷积步长采用默认值,第九identity_block网络块和第十identity_block网络块各自中的融合层的第二个输入中按序设置的第1个卷积层的卷积核大小为1×1、卷积核个数为512、卷积步长采用默认值,第九identity_block网络块和第十identity_block网络块各自中的融合层的第二个输入中按序设置的第2个卷积层的卷积核大小为3×3、卷积核个数为512、卷积步长采用默认值,第九identity_block网络块和第十identity_block网络块各自中的融合层的第二个输入中按序设置的第3个卷积层的卷积核大小为1×1、卷积核个数为1024、卷积步长采用默认值;
对于编码框架,第一卷积层的输入端接收输入层的输出端输出的原始输入图像,第一卷积层的输出端输出32幅特征图,将输出的所有特征图构成的集合记为J1,其中,J1中的每幅特征图的宽度为R、高度为L;第一批规范化层的输入端接收J1中的所有特征图,第一批规范化层的输出端输出32幅特征图,将输出的所有特征图构成的集合记为P1,其中,P1中的每幅特征图的宽度为R、高度为L;第一激活层的输入端接收P1中的所有特征图,第一激活层的输出端输出32幅特征图,将输出的所有特征图构成的集合记为H1,其中,H1中的每幅特征图的宽度为R、高度为L;第一最大池化层的输入端接收H1中的所有特征图,第一最大池化层的输出端输出32幅特征图,将输出的所有特征图构成的集合记为Z1,其中,Z1中的每幅特征图的宽度为 高度为 第一conv_block网络块的输入端接收Z1中的所有特征图,第一conv_block网络块的输出端输出128幅特征图,将输出的所有特征图构成的集合记为C1,其中,C1中的每幅特征图的宽度为 高度为 第一identity_block网络块的输入端接收C1中的所有特征图,第一identity_block网络块的输出端输出128幅特征图,将输出的所有特征图构成的集合记为I1,其中,I1中的每幅特征图的宽度为 高度为 第二identity_block网络块的输入端接收I1中的所有特征图,第二identity_block网络块的输出端输出
128幅特征图,将输出的所有特征图构成的集合记为I2,其中,I2中的每幅特征图的宽度为高度为 第二conv_block网络块的输入端接收I2中的所有特征图,第二conv_block网络块的输出端输出256幅特征图,将输出的所有特征图构成的集合记为C2,其中,C2中的每幅特征图的宽度为 高度为 第三identity_block网络块的输入端接收C2中的所有特征图,第三identity_block网络块的输出端输出256幅特征图,将输出的所有特征图构成的集合记为I3,其中,I3中的每幅特征图的宽度为 高度为 第四identity_block网络块的输入端接收I3中的所有特征图,第四identity_block网络块的输出端输出256幅特征图,将输出的所有特征图构成的集合记为I4,其中,I4中的每幅特征图的宽度为 高度为 第五identity_block网络块的输入端接收I4中的所有特征图,第五identity_block网络块的输出端输出256幅特征图,将输出的所有特征图构成的集合记为I5,其中,I5中的每幅特征图的宽度为 高度为 第三conv_block网络块的输入端接收I5中的所有特征图,第三conv_block网络块的输出端输出512幅特征图,将输出的所有特征图构成的集合记为C3,其中,C3中的每幅特征图的宽度为 高度为 第六identity_block网络块的输入端接收C3中的所有特征图,第六identity_block网络块的输出端输出512幅特征图,将输出的所有特征图构成的集合记为I6,其中,I6中的每幅特征图的宽度为 高度为 第七identity_block网络块的输入端接收I6中的所有特征图,第七identity_block网络块的输出端输出512幅特征图,将输出的所有特征图构成的集合记为I7,其中,I7中的每幅特征图的宽度为 高度为 第八identity_block网络块的输入端接收I7中的所有特征图,第八identity_block网络块的输出端输出512幅特征图,将输出的所有特征图构成的集合记为I8,其中,I8中的每幅特征图的宽度为 高度为 第四conv_block网络块的输入端接收I8中的所有特征图,第四conv_block网络块的输出端输出1024幅特征图,将输出的所有特征图构成的集合记为C4,其中,C4中的每幅特征图的宽度为 高度为 第九identity_block网络块的输入端接收C4中的所有特征图,第九identity_block网络块的输出端输出1024幅特征图,将输出的所有特征图构成的集合记为I9,其中,I9中的每幅特征图的宽度为 高度为 第十identity_block网络块的输入端接收I9中的所有特征图,第十identity_block网络块的输出端输出1024幅特征图,将输出的所有特征图构成的集合记为I10,其中,I10中的每幅特征图的宽度为 高度为对于译码框架,其由依次设置的第一dense block网络块、第一transitionup网络块、第二dense block网络块、第二transitionup网络块、第三dense block网络块、第三transitionup网络块、第四dense block网络块、第四transitionup网络块、第二卷积层、第二批规范化层、第二激活层组成,其中,第一dense block网络块、第二dense block网络块、第三dense block网络块和第四dense block网络块中的参数采用默认值,第一transitionup网络块、第二transitionup网络块、第三transitionup网络块和第四transitionup网络块各自中的反卷积层的卷积核大小采用默认值、卷积核个数采用默认值、卷积步长为2×2,第二卷积层的卷积核大小为1×1、卷积核个数为1、卷积步长采用默认值,第二批规范化层的参数采用默认值,第二激活层的激活函数采用ReLu;
对于译码框架,第一dense block网络块的输入端接收I10中的所有特征图,第一dense block网络块的输出端输出1184幅特征图,将输出的所有特征图构成的集合记为D1,其中,D1中的每幅特征图的宽度为 高度为 第一transitionup网络块的输入端接收D1中的所有特征图和I8中的所有特征图,第一transitionup网络块的输出端输出672幅特征图,将输出的所有特征图构成的集合记为T1,其中,T1中的每幅特征图的宽度为 高度为 第二dense block网络块的输入端接收T1中的所有特征图,第二dense block网络块的输出端输出832幅特征图,将输出的所有特征图构成的集合记为D2,其中,D2中的每幅特征图的宽度为高度为 第二transitionup网络块的输入端接收D2中的所有特征图和I5中的所有特征图,第二transitionup网络块的输出端输出416幅特征图,将输出的所有特征图构成的集合记为T2,其中,T2中的每幅特征图的宽度为 高度为 第三dense block网络块的输入端接收T2中的所有特征图,第三denseblock网络块的输出端输出576幅特征图,将输出的所有特征图构成的集合记为D3,其中,D3中的每幅特征图的宽度为 高度为 第三transitionup网络块的输入端接收D3中的所有特征图和I2中的所有特征图,第三transitionup网络块的输出端输出288幅特征图,将输出的所有特征图构成的集合记为T3,其中,T3中的每幅特征图的宽度为 高度为 第四dense block网络块的输入端接收T3中的所有特征图,第四dense block网络块的输出端输出448幅特征图,将输出的所有特征图构成的集合记为D4,其中,D4中的每幅特征图的宽度为 高度为 第四transitionup网络块的输入端接收D4中的所有特征图和H1中的所有特征图,第四transitionup网络块的输出端输出192幅特征图,将输出的所有特征图构成的集合记为T4,其中,T4中的每幅特征图的宽度为R、高度为L;第二卷积层的输入端接收T4中的所有特征图,第二卷积层的输出端输出1幅特征图,其中,输出的特征图的宽度为R、高度为L;第二批规范化层的输入端接收第二卷积层的输出端输出的特征图,第二批规范化层的输出端输出1幅特征图,其中,输出的特征图的宽度为R、高度为L;第二激活层的输入端接收第二批规范化层的输出端输出的特征图,第二激活层的输出端输出1幅特征图,其中,输出的特征图的宽度为R、高度为L;
对于输出层,输出层的输入端接收第二激活层的输出端输出的特征图,输出层的输出端输出一幅原始输入图像对应的估计深度图像;其中,估计深度图像的宽度为R、高度为L;
步骤1_3:将训练集中的每幅原始的单目图像作为原始输入图像,输入到深度卷积神经网络中进行训练,得到训练集中的每幅原始的单目图像对应的估计深度图像,将{Qn(x,y)}对应的估计深度图像记为 其中, 表示 中坐标位
置为(x,y)的像素点的像素值;
步骤1_4:计算训练集中的每幅原始的单目图像对应的估计深度图像与对应的真实深度图像之间的损失函数值,将 与 之间的损失函数值记为
步骤1_5:重复执行步骤1_3和步骤1_4共V次,得到训练好的深度卷积神经网络训练模型,并共得到N×V个损失函数值;然后从N×V个损失函数值中找出值最小的损失函数值;接着将值最小的损失函数值对应的权值矢量和偏置项对应作为训练好的深度卷积神经网络训练模型的最优权值矢量和最优偏置项,对应记为Wbest和bbest;其中,V>1;
所述的测试阶段过程的具体步骤为:
步骤2_1:令{Q(x',y')}表示待预测的单目图像;其中,1≤x'≤R',1≤y'≤L',R'表示{Q(x',y')}的宽度,L'表示{Q(x',y')}的高度,Q(x',y')表示{Q(x',y')}中坐标位置为(x',y')的像素点的像素值;
步骤2_2:将{Q(x',y')}输入到训练好的深度卷积神经网络训练模型中,并利用Wbest和bbest进行预测,得到{Q(x',y')}对应的预测深度图像,记为{Qdepth(x',y')};其中,Qdepth(x',y')表示{Qdepth(x',y')}中坐标位置为(x',y')的像素点的像素值。
2.根据权利要求1所述的一种基于深度卷积神经网络的单目视觉深度估计方法,其特征在于所述的步骤1_4中, 采用均方误差函数获得。