激光与光电子学进展, 2020, 57 (2): 021012, 网络出版: 2020-01-03   

面向无人机自主飞行的无监督单目视觉深度估计 下载: 1264次

Unsupervised Monocular Depth Estimation for Autonomous Flight of Drones
作者单位
西安科技大学机械工程学院, 陕西 西安 710054
摘要
针对双目视觉深度估计成本高、体积大以及监督学习需要大量深度图进行训练的问题,为实现无人机在飞行过程中的场景理解,提出一种面向无人机自主飞行的无监督单目深度估计模型。首先,为减小不同尺寸目标对深度估计的影响,将输入的图像进行金字塔化处理;其次,针对图像重构设计一种基于ResNet-50进行特征提取的自编码神经网络,该网络基于输入的左视图或右视图以及生成对应的金字塔视差图,采用双线性插值的方法重构出与其对应的金字塔右视图或左视图;最后为提高深度估计的精度,将结构相似性引入到图像重构损失、视差图一致性损失中,并且联合视差图平滑性损失、图像重构损失、视差图一致性损失作为训练的总损失。实验结果表明,经过在KITTI数据集上的训练,该模型在KITTI和Make3D数据集上相比其他单目深度估计方法具有更高的准确性和实时性,基本满足无人机自主飞行对深度估计准确性和实时性的要求。
Abstract
This study proposes an unsupervised monocular depth estimation model for autonomous drone flight to overcome the limitations of high cost and large size in binocular depth estimation and a large number of depth maps required for training in supervised learning. The model first processes the input image into a pyramid shape to reduce the impact of different target sizes on the depth estimation. In addition, the neural network of the automatic encoder used for image reconstruction is designed based on ResNet-50, which is capable of feature extraction. The corresponding right or left pyramid images are subsequently reconstructed by the bilinear sampling method based on the left or right input images, and corresponding pyramid disparity map is generated. Finally, the training loss could be assessed as the combination of the disparity smoothness loss, image reconstruction loss based on the structural similarity, and the loss of disparity consistency. Experimental results indicate that the model is more accurate and timely on KITTI and Make3D compared with other monocular depth estimation methods. When trained on KITTI, the model essentially meets the accuracy requirements and real-time necessities for autonomous drone flight depth estimation.

1 引言

随着人工智能、云计算、大数据的迅速发展,无人驾驶汽车、无人机、智能机器人等产品不断出现在人们的生活中。这些产品在工作中需要对周围环境进行实时三维(3D)感知,以便做出正确的决策。深度估计是实现3D环境感知的基础[1]。目前,深度估计常用的方法有两种:一是利用硬件设备直接获取,比如微软的Kinect相机、激光测距仪、双目相机等,但是其价格比较昂贵;二是基于视觉的深度估计[2-3],视觉深度估计根据拍摄图像所用摄像头的多少,分为单目深度估计和多目深度估计(常用的是双目相机)。双目深度估计通过双目相机获取同一场景的左右视图,然后利用三角形测量法将左右视图之间的匹配信息转换为视差信息,进而根据双目相机的焦距和左右摄像头基线距离推出深度图[4-5],目前该研究主要集中在提高精度上。单目深度估计则是通过一张图像获取3D场景,由于一张图具有无穷多个3D场景,因此对于计算机视觉系统通过单目进行深度估计仍然是一个具有挑战性的任务[6-7],单目深度估计具有很大的研究价值和提升空间。

此前,针对单目深度估计这个问题,国内外已进行大量研究,并取得可观的效果。最早单目深度估计比较经典的算法有,从运动中恢复形状(SFM)[8]、从阴影中恢复形状[9](SFS)和从对焦或离焦中获取深度[10-11](DFF/DFD)等,但因其受所需设备比较昂贵、拍摄要求高、结果易受遮挡和对应关系匹配等因素的影响,上述方法均未被大量使用。随着计算机性能的不断提高,机器学习被广泛应用在各个领域,目前,对于单目深度估计这一问题,机器学习主要采用监督学习的方法进行解决,即:以每一张图像和其对应的深度图作为输入;然后构建像素与深度关系的马尔可夫随机场(MRF)或条件随机场(CRF)等模型,将其深度估计问题转换为参数优化问题;紧接着通过大量数据学习输入映射到输出的规律;最后对新输入的图像进行深度预测。但该方法很难找到图像像素与深度之间的模型,导致深度估计精度较低、计算量大、耗时高,因而此方法很难在实际中应用。近几年,随着深度学习理论的不断成熟,深度学习被广泛应用于单目视觉深度估计中,目前基于深度学习的单目视觉深度估计常用的方法如下。1)仅依靠深度学习理论和网络构架进行深度估计,2014年Eigen等[12]提出采用多尺度卷积神经网络(CNN)进行单目深度估计;2016年许路等[13]提出基于深度卷积神经网络实现单目红外图像的深度估计。2)依靠深度信息本身的性质进行单目深度估计,深度信息的本质就是一个由远到近一层一层的分类,2018年Cao等[14]提出采用全连接残差神经网络通过分类方式实现单目视觉深度估计。3)基于随机场模型与深度学习结合进行单目深度估计,2015年Liu等[15]提出采用CRF与CNN融合实现单目视觉深度估计,其原理为利用CRF的一阶项和二阶项综合训练一阶项CNN和二阶项CNN,两个CNN通过CRF能量函数统一于一个训练框架中。4)基于无监督学的单目视觉深度估计,2016年Chen等[16]与Mayer等[17]提出采用单张图像进行深度估计,其原理为以双目相机拍摄的左右两张图像为约束,基于自编码神经网络重构图像,然后不断优化视差图得到深度图;2017年Godard等[18]针对Chen等[16]与Mayer等[17]单目深度估计误差大的问题,提出将左右视差图一致性函数作为无监督模型的训练损失函数,来进行单目无监督深度估计;2017年Zhou等[19]基于无监督学习理论提出采用单目视频序列,实现深度与姿态估计;2018年Wang等[20]受直接里程计(DVO)的影响,提出采用直接方法实现无监督单目深度估计。

针对监督学习的单目深度估计需要大量深度数据及无监督学习深度估计准确度低、实时性差等问题,以现有无监督学习深度估计方法为基础,本文提出一种面向无人机自主飞行的无监督单目视觉深度估计模型。本文模型首先为实现多特征提取,将输入图片进行金字塔化处理;其次提出一种ResNet-50自编码神经网络进行特征提取,该网络可以基于预设的视差图重构图像;最后基于双目成像原理得出图像的视差图,同时将结构相似性(SSIM)引入图像重构损失函数和视差图一致性损失函数中,将视差图平滑性损失、图像重构损失、视差图一致性损失作为训练的总损失。

2 单目深度估计原理

借鉴双目深度估计的原理,如图1所示,X表示三维场景映射到二维平面,Z表示坐标系中沿光轴的方向,z表示图像的深度,x表示图像上某一像素点距左相机的铅直距离,xlxr分别表示双目相机左、右两个摄像头成像中的坐标,f表示双目相机的焦距,b表示双目相机左右摄像头之间的基线距离。根据以上信息,利用三角形相似原理,可得

x-b=zf×xr,(1)x=zf×xl,(2)d=xl-xr=f×bz,(3)z=d×zb,(4)

式中:d表示视差。本模型将单目深度估计问题转换为图像重构问题,然后基于重构的左右视图,依据双目深度估计原理得出图像深度。本模型的具体实现过程为

1) 输入双目相机左右摄像头拍摄的一对图像IlIr;

2) 将Il传入图1所示的自编码神经网络,生成预估的视差图dr,以视差图dr和左视图Il,基于双线性插值重构出相对应的右视图 I˙r,同理基于右视图Ir重构出相对应的 I˙l;

3) 依据双目成像原理,基于左视图Il和重构的右视图 I˙r推出视差图,根据双目相机的焦距f和基线b得出深度信息,同理基于右视图Ir和重构的左视图 I˙l测出深度信息。

3 无监督单目深度估计模型

针对单个图像输入容易导致小目标丢失而影响深度估计精度的问题,将输入图像进行金字塔处理;针对特征提取网络层数过多易出现退化的问题,引入残差块的ResNet-50进行特征提取;为提高单目深度估计的精度,在训练中提出一种新的损失函数,该损失函数主要包括视差平滑度损失、图像重构损失、视差图一致性损失。基于此,设计一种无监督深度估计模型,如图2所示。该模型的步骤如下。1)先进行图像处理,即将输入的图像采用面积插值法处理成256×512的固定尺寸,然后对图像进行去燥、调整亮度、左右翻转等处理,最后将输入的图像通过金字塔处理成256×512、128×256、64×128、32×64的4种分辨率;2)将处理好的图像通过图3所示的自编码神经网络进行图像重构,该网络主要由两部分构成,即基于ResNet-50进行特征提取的编码神经网络和图像重构的解码反卷积神经网络,通过该网络生成4种不同分辨率的近似视差图;3)基于双线性插值法,根据生成的视差图和对应输入的左视图或右视图重构出与其相对应的右视图或左视图;4)依据双目成像的原理生成视差图,最终得出深度图。

图 1. 双目深度估计原理

Fig. 1. Principle of binocular depth estimation

下载图片 查看所有图片

图 2. 无监督单目深度估计结构图

Fig. 2. Structural diagram of unsupervised monocular depth estimation

下载图片 查看所有图片

3.1 图像重构网络

基于左视图或右视图重构出相应的右视图或左视图是本模型进行单目深度估计的核心。本文借鉴自编码神经网络进行图像重构的思想,同时考虑到网络层数过多会导致梯度消失和梯度爆炸的问题,提出一种基于ResNet-50进行特征提取、基于反向卷积神经网络进行图像重构的网络模型。本模型结构如图3所示,该模型主要由两部分构成:一是基于ResNet-50进行特征提取;二是基于反向卷积神经网络实现图像重构。

图 3. 图像重构模型

Fig. 3. Model of image reconstruction

下载图片 查看所有图片

ResNet-50由于引入残差块,能有效解决传统网络因层数过多而产生梯度消失和退化的问题。本模型采用基于三层恒等残差块的ResNet-50对输入的金字塔图像进行特征提取,三层恒等残差块的数学表达式为

al+3=R{C{C[C(al,n,f1,s1,R),n,f2,s2,R],4n,f3,s3}+al},(5)R(X)=0,X01,X0,(6)

式中:al表示第l层的输出;al+3表示第l+3层的输出;R表示ReLU激活函数,该激活函数能使学习周期大大缩短;C表示卷积函数;n表示输出层大小;fi表示滤波器的大小,i=1,2,3;s表示步长,本模型中f1=1,s1=1,f2=3,s2=2,f3=1,s3=1。基于ResNet-50进行粗特征提取的具体过程为:首先对输入图像x采用金字塔原理处理成256×512、128×256、64×128、32×64四种尺度;然后将输入图像进行C(x,64,7,2,R)卷积操作输出原图像1/2尺寸的Conv1,对Conv1进行最大池化 (maxpool) 操作输出原图像1/4尺寸的Pool1,对Pool1进行Resblock(Pool1,64,3)卷积操作输出原图像1/8尺寸的Conv2 ,其中64代表输出卷积层数目,3代表采用3个(5)式所示的残差块,对Conv2进行Resblock(Conv2,128,4)卷积操作输出原图像1/16的Conv3,对Conv3进行Resblock(Conv3,256,6)卷积操作输出原图像1/32尺寸的Conv4;最后对Conv4进行Resblock(Conv4,512,3)卷积操作输出原图像1/64尺寸的Conv5。经过以上基于ResNet-50进行特征提取后,输出特征图变为输入图像的1/64。

仅通过ResNet-50进行粗特征提取无法实现精确的图像重构,本模型借鉴自编码神经图像重构的思想,采用反向卷积神经网络进行图像重构(见图3中的iconv6,iconv5,Disp4, Disp3, Disp2和Disp1)。反卷积操作的目的是通过卷积神经特征提取恢复其输入的特征尺寸,其原理为

al+1=C{[Upsample(al,Scale)],n,f,s},(7)

式中:Upsample表示上采样操作;Scale表示图像变化比例;s表示卷积函数的步长,在本模型中s=1,将(7)式的反卷积操作简写为al+1= C˙(al,n,f,scale)。为确保反卷积神经网络中特征图尺寸与ResNet-50特征图尺寸相对应,提出设置Skip作用域,将ResNet-50编码过程中的部分特征图直接拼接到反卷积神经网络解码过程中,具体拼接过程如图3所示。受双目深度估计原理的启发,利用双目深度估计的逆原理在反卷积神经网络中进行图像重构,利用卷积神经网络生成近似视差图,然后利用视差图和其对应的左视图或者右视图,采用双线性插值法重构出右视图或左视图。视差图生成的数学表达式为

yDisp=Upsample[αC(al,n,f,s,S),Scale],(8)S=11+e-x,(9)

式中:yDisp表示近似视差图;α表示视差比例系数;S表示Sigmoid激活函数,在本模型中,视差生成函数α=0.3,n=2,f=1,s=1。反卷积神经网络进行图像重构的步骤为:1)将ResNet-50特征提取得到的Conv5利用 (7)式进行 C˙(Conv5,515,3,2)反卷积操作输出原图像1/32尺寸的upconv6,然后对upconv6与ResNet-50特征提取中的Conv5进行第4维度的张量拼接得到concat6,最后对拼接后的特征图采用C(concat6,512,3,1,R)输出iconv6;2)同理对iconv6进行 C˙(iconv6,256,3,2)反卷积操作、与Conv4进行张量拼接得到concat5、采用C(concat5,256,3,1,R)卷积操作输出原图像1/16尺寸的iconv5;3)对iconv5进行 C˙(iconv5,128,3,2)反卷积操作、与Conv3进行张量拼接得到concat4、采用C(concat4,128,3,1,R)卷积操作输出原图像1/8尺寸的iconv4。然后采用(8)式进行Upsample[0.3C(iconv4,2,1,1,S),2]操作输出视差图4(Disp4),重复视差图4的生成方法对iconv4进行操作输出原图像1/4尺寸iconv3和视差图3(Disp3),对iconv3进行操作输出原图像1/2尺寸iconv2和视差图2(Disp2),对iconv2进行操作输出原图像一样尺寸iconv1和视差图1(Disp1),在生成视差图3、视差图2、视差图1的过程中对应的卷积层输出层数依次为64、32、16,其余参数与生成视差4一样。最后基于金字塔视差图(视差1、视差2、视差3、视差4)与其对应输入处理的左视图或右视图金字塔图像重构出右视图或左视图金字塔图像。

3.2 训练损失函数

为提高单目深度估计的精度,提出一种新的训练损失函数,该损失函数主要包括4种不同分辨率左右视图的重构损失函数、视差图平滑性损失函数、基于双目原理生成视差图一致性损失函数。函数表达式为

Cs=αap(Capl+Capr)+αds(Cdsl+Cdsr)+αlrClr,(10)C=s=14Cs,(11)

式中:Capl表示左视图重构损失;Capr表示右视图重构损失;Cdsl表示左视图产生视差图的平滑性损失;Cdsr表示右视图产生视差图的平滑性损失;Clr表示左视图重构右视图产生视差与右视图重构左视图产生视差的一致性损失;ααpαdsαlr分别表示图像重构损失函数、视差图平滑性损失函数、双目原理生成视差图一致性损失函数所占的比例。

视差图平滑性损失函数主要是降低通过卷积神经网络生成近似视差图的平滑性对图像重构的影响。为提高视差图的平滑性,提出对视差图的xy进行梯度求导,该函数的数学表达式为

Cdsl=1Ni,jxdijle-xIijl+ydijle-yIijl,(12)

式中:∂xdijl表示视差图在x方向上的梯度;∂ydijl表示视差图在y方向上的梯度;Iijl表示输入的金字塔图像; e-xIijl表示x方向上的平滑度系数; e-yIijl表示y方向上的平滑度系数;N表示训练中使用图像对的数量。

在训练中本模型通过输入一张左视图或右视图,根据与其对应的视差图生成相对应的右视图或者左视图,借鉴文献[ 20-21]在图像重构中将结构相似性(SSIM)引入图像重构损失函数的影响,提出在训练中采用生成图像与原图像之差绝对值和SSIM联合作为图像重构损失函数,该函数的数学表达式为

Cαpl=1Ni,jα1-SSSIM(Iijl,I˙ijl)2+(1-α)Iijl-I˙ijl,(13)

式中: I˙ijl表示重构的金字塔图像。

双目原理生成视差图一致性损失函数主要是确保左视图重构右视图产生的视差图与右视图重构左视图产生的视差图一致,本损失函数借鉴(13)式,将SSIM引入双目原理生成视差图一致性损失函数中,联合左右视差之差绝对值、左右SSIM作为双目原理生成视差图一致性损失函数,该损失函数学表达式为

Clr=1Ni,jα1-SSSIM(dijl,dijr)2+(1-α)dijl-dijr14

式中:dijl表示通过左视图重构右视图产生的视差图;dijr表示通过右视图重构左视图产生的视差图。

4 实验过程与结果分析

4.1 实验设置

本实验训练无监督单目深度估计模型的硬件和软件配置为:处理器选用Intel(R)Core(TM)i7-7700K CPU 4.20 GHz;显卡采用NVIDIA GeForce GTX 1080 8 GB;内存为16 GB;训练系统为Ubuntu16.04;深度学习框架为谷歌开源的Tensorflow。训练数据集采用KITTI,将该数据集划分为280000对训练集、1600对验证集。本文定义的最大训练步长为182000次,batchsize为8,epoch为50;训练中每100步保存一次训练损失、每10000次保存一次训练权重;训练初始学习率为0.0001,并在训练总步长的60%时将学习率衰减至原来的50%,在训练总步长的80%时将学习率衰减至原来的25%;在训练中损失函数的系数ααp=1,αds=0.85,αlr=1。

4.2 模型训练

本模型采用Adam Optimizer对网络权重不断优化,整个训练总共用了35.5 h,每张图片大约0.05 s,训练具体结果如图4所示。图4(a)为重构图像与原图一致性损失函数;图4(b)为重构图像与原图之差绝对值损失函数;图4(c)为总的图像重构损失函数,即为图4(a)和(b)损失函数之和;图4(d)为视差图平滑性损失函数;图4(e)为基于双目原理生成左右视差图一致性损失函数;图4(f)为本模型总的损失函数,即为图4(c)~(e)训练损失函数之和。观察图4可知,经过训练损失函数,整体有小幅度振荡并趋于稳定,且总损失经过训练降到0.4左右,表明本文基于无监督单目深度估计模型的训练效果比较理想。

图 4. 训练过程中各部分损失函数。(a)重构图像与原图的结构相似性损失;(b)重构图像与原图之差绝对值损失;(c)总的图像重构损失;(d)视差图平滑性损失;(e)左右视差图一致性损失;(f)本模型的总损失

Fig. 4. Loss function of each part of training process. (a) Structural similarity loss of reconstructed image and original image; (b) absolute value loss of difference between reconstructed image and original image; (c) total image reconstruction loss; (d) loss of disparity smoothness; (e) loss of consistency in left and right disparity maps; (f) total loss of our model

下载图片 查看所有图片

4.3 无人机实验平台

针对目前市场上无人机因其技术封装性不利于二次开发的问题,选用开源的Pixhawk飞控以及相关无人机组件组装无人机,如图5(a)所示。为实现数据的处理,选用搭载Auvidea J120载板的NVIDIA Jeston TX2,NVIDIA Jeston TX2是一款嵌入式领域的人工智能(AI)计算机,该计算机使用6核Tegra处理器和256核Pascal架构核心GPU,具备极强的AI计算能力。NVIDIA Jeston TX2与无人机的连接如图5(b)所示。

图 5. 无人机实验平台。(a)无人机;(b) NVIDIA Jeston TX2与Pixhawk连接

Fig. 5. Platform of drone experiment. (a) Drone; (b) connection of NVIDIA Jeston TX2 and Pixhawk

下载图片 查看所有图片

4.4 实验结果及分析

为验证本文基于无监督单目深度估计模型在无人机上的准确性和实时性,将训练好的模型移植到无人机上的NVIDIA Jeston TX2进行实验验证;为验证本模型的泛化能力,将本模型与比较经典的深度估计方法在KITTI、Make3D上进行比较,并且在真实室外环境下进行模型测试。以经常采用的评价指标作为参考,评价指标主要包括平均相对误差(REL)、方均根误差(RMSE)、对数空间平均误差、阈值δth。前三者的表达式分别为

EREL=1Miyi*-yiyi*,(15)ERMSE=1Mi(yi*-yi)2,(16)lgERMSE=1Milgyi*-lgyi2,(17)

式中: yi*表示真实深度值;yi表示预测的深度值;M表示测试中的图像像素总和。阈值δth满足条件max= yi*yi,yiyi*=δ<δth的像素数量所占像素的百分比。

表1所示,本文采用KITTI数据集进行了5组对比实验,前2组分别为文献[ 12]、文献[ 15]提出的基于监督学习的单目深度估计,第3组和第4组分别为文献[ 19]、文献[ 20]提出的无监督学习的单目深度估计(输入图像未进行金字塔处理且训练损失函数比较单一),第5组为本文模型采用VGG-16进行特征提取的无监督学习的单目深度估计。根据表中的数据可以得出以下结论:1)本文模型进行深度估计的准确率接近甚至优于基于监督学习的单目深度估计模型,这说明基于无监督进行深度估计具有较高的可行性;2)第3组、第4组和第5组数据表明,图像金字塔处理可以实现不同大小目标的检测,进而提高深度估计的准确率,联合视差图平滑性损失、图像重构损失、视差图一致性损失作为训练的总损失有助于提升模型的训练效果,进而提升深度估计的准确率;3)第5组和本文模型对比得出基于ResNet-50进行特征提取可以降低模型的训练损失,进而提高深度估计的准确率,综上可以得出,本模型提出采用ResNet-50进行特征提取、联合视差图平滑性损失、图像重构损失、视差图一致性损失作为训练的总损失函数有助于提升深度估计的准确率;4)本模型每一帧图片的检测时间少于其他模型,平均每帧图片检测时间为0.048 s,即每秒检测21 frame,本无人机平台选用的单目相机每秒拍摄20 frame,因此本模型满足无人机自主飞行中实时深度估计的要求。

为测试本模型深度估计的检测效果,图6对比了表1中3组深度估计模型与本模型。图6(a)为输入图片,图6(b)为真实深度图,图6(c)为文献[ 15]提出的基于监督学习的单目深度估计深度图,图6(d)为文献[ 20]提出的基于无监督单目深度估计深度图,图6(e)是本模型采用VGG-16进行特征提取的无监督单目深度估计的深度图,图6(f)是本模型进行深度估计的深度图。4组实验与真实深度图比较可知:1)本模型预测深度图的清晰度优于其他3组实验,且本模型预测的深度图与真实深度图比较接近;2)本模型可以检测比较小的物体轮廓,比如图中的车、人、电线杆等;3)预测近距离深度的准确率优于远处,说明本模型深度估计类似于人眼估计深度。综上可得,本文基于无监督单目深度估计具有较高的准确率,满足无人机自主飞行中实时三维感知的要求。

表 1. KITTI数据集上实验结果对比

Table 1. Comparison of experimental results on KITTI dataset

MethodSupervisedError (lower is better)Accuracy (higher is better)Time /s
ERELERMSELog ERMSEδ<1.25δ<1.252δ<1.252
Ref. [12]Yes0.2036.3070.2820.7020.8900.9580.051
Ref. [15]Yes0.2026.5230.2750.6780.8950.9650.045
Ref. [19]No0.2086.8560.2830.6780.8850.9570.062
Ref. [20]No0.1595.7890.2340.7960.9230.9630.057
Our (VGG-16)No0.1485.4960.2260.8120.9120.9600.056
Our (RseNet-50)No0.1245.3310.2190.8470.9450.9750.048

查看所有表

图 6. KITTI数据集上预测深度图实例。(a)输入的图片;(b)真实深度图;(c)文献[ 15]预测的深度图;(d)文献[ 20]预测的深度; (e) 本模型基于VGG-16预测的深度;(f)本模型基于ResNet-50预测的深度

Fig. 6. Examples of depth map predicted on KITTI dataset. (a) Input image; (b) ground truth depth map; (c) depth map predicted by Ref. [15] ; (d) depth map predicted in Ref. [20]; (e) depth map predicted by our model based on VGG-16; (f) depth map predicted by our model based on ResNet-50

下载图片 查看所有图片

为验证本模型的泛化能力,将本模型与其他深度估计方法在Make3D上进行实验验证,实验结果如表2所示。表2表1对比得知:1)采用KITTI数据集训练得到的模型在KITTI上深度估计准确率优于在Make3D上的深度估计准确率;2)本模型单目深度估计的准确率优于其他5种单目深度估计方法,且准确率基本满足无人机自主飞行对深度估计准确率的要求;3)本模型每帧图片的检测时间少于其他5种方法,且每帧平均检测时间为0.053 s,即平均每秒检测19 frame,无人机相机每秒拍摄20 frame,因此本模型针对Make3D数据集基本满足无人机实时深度估计的要求。

此外,为更好体现本模型的泛化能力,采用真实的室外场景进行实验验证,图7为本模型在真实室外环境进行深度估计的结果。由图7可知:1)本模型在距离较近时可以很好地预测出景物轮廓,当距离较远时景物轮廓不清晰,其深度估计精度类似于人眼深度估计的精度;2)与KITTI数据集上深度估计检测结果进行比较,得知本模型在真实室外场景中仍能取得较好的深度估计效果;3)每帧图片的深度估计时间为0.058 s,即每秒检测18 frame。综上得知,本模型对真实室外场景的深度估计仍能取得较好的估计效果,由此证明本模型具有较强的泛化能力。

表 2. Make3D数据集上实验结果对比

Table 2. Comparisonof experimental results on Make3D dataset

MethodSupervisedError (lower is better)Accuracy (higher is better)Time/s
ERELERMSELog ERMSEδ<1.25δ<1.252δ<1.252
Ref. [12]Yes0.4178.5260.4030.6920.8990.9480.068
Ref. [15]Yes0.4629.9720.4560.6560.8870.9450.048
Ref. [19]No0.4438.3260.3980.6620.8850.9320.074
Ref. [20]No0.3877.8950.3540.7040.8990.9460.054
Our (VGG16)No0.3618.1020.3770.7270.9050.9580.061
Our (RseNet-50)No0.3287.5290.3480.7510.9240.9620.053

查看所有表

图 7. 真实室外场景上预测深度图实例。(a)输入的图片;(b)真实深度图

Fig. 7. Examples of depth map predicted in real outdoor scenes. (a) Input images; (b) ground truth depth maps

下载图片 查看所有图片

5 结论

针对目前单目深度估计需要大量深度图进行训练以及双目深度估计体积大、成本高的问题,为实现无人机自主飞行过程中的三维实时环境感知,提出一种基于无监督学习的单目深度估计模型。本模型借鉴双目深度估计和基于自编码神经网络进行图像重构的原理,将无监督单目深度估计问题转换为图像重构问题。为避免网络层数过多而导致梯度消失和退化问题,该模型基于ResNet-50进行特征提取;为实现对小目标的检测,将输入的图像进行金字塔化处理;为提高模型的训练效果,提出联合视差图平滑性损失、图像重构损失、视差图一致性损失作为训练的总损失,并且将结构相似性原理引入到图像损失函数、视差图一致性损失函数中。基于KITTI数据集、Make3D数据集以及真实室外场景进行实验,实验验证与一些经典的基于监督学习的单目深度估计、基于无监督学习的单目深度估计方法相比,本文方法显示出了有效性和优越性,满足无人机自主飞行中实时深度估计准确性和实时性的要求。

参考文献

[1] 李耀宇, 王宏民, 张一帆, 等. 基于结构化深度学习的单目图像深度估计[J]. 机器人, 2017, 39(6): 812-819.

    Li Y Y, Wang H M, Zhang Y F, et al. Structured deep learning based depth estimation from a monocular image[J]. Robot, 2017, 39(6): 812-819.

[2] 鲍振强, 李艾华, 崔智高, 等. 深度学习在视觉定位与三维结构恢复中的研究进展[J]. 激光与光电子学进展, 2018, 55(5): 050007.

    Bao Z Q, Li A H, Cui Z G, et al. Research progress of deep learning in visual localization and three-dimensional structure recovery[J]. Laser & Optoelectronics Progress, 2018, 55(5): 050007.

[3] 廖斌, 李浩文. 基于多孔卷积神经网络的图像深度估计模型[J]. 计算机应用, 2019, 39(1): 267-274.

    Liao B, Li H W. Image depth estimation model based on atrous convolutional neural network[J]. Journal of Computer Applications, 2019, 39(1): 267-274.

[4] 毕天腾, 刘越, 翁冬冬, 等. 基于监督学习的单幅图像深度估计综述[J]. 计算机辅助设计与图形学学报, 2018, 30(8): 1383-1393.

    Bi T T, Liu Y, Weng D D, et al. Survey on supervised learning based depth estimation from a single image[J]. Journal of Computer-Aided Design & Computer Graphics, 2018, 30(8): 1383-1393.

[5] 何通能, 尤加庚, 陈德富. 基于DenseNet的单目图像深度估计[J]. 计算机测量与控制, 2019, 27(2): 233-236.

    He T N, You J G, Chen D F. Depth estimation from single monocular images based on DenseNet[J]. Computer Measurement & Control, 2019, 27(2): 233-236.

[6] 顾婷婷, 赵海涛, 孙韶媛. 基于金字塔型残差神经网络的红外图像深度估计[J]. 红外技术, 2018, 40(5): 417-423.

    Gu T T, Zhao H T, Sun S Y. Depth estimation of infrared image based on pyramid residual neural networks[J]. Infrared Technology, 2018, 40(5): 417-423.

[7] 袁建中, 周武杰, 潘婷, 等. 基于深度卷积神经网络的道路场景深度估计[J]. 激光与光电子学进展, 2019, 56(8): 081501.

    Yuan J Z, Zhou W J, Pan T, et al. Road scene depth estimation based on deep convolutional neural networks[J]. Laser & Optoelectronics Progress, 2019, 56(8): 081501.

[8] SnavelyN, Seitz SM, SzeliskiR. Skeletal graphs for efficient structure from motion[C]∥2008 IEEE Conference on Computer Vision and Pattern Recognition, June 23-28, 2008, Anchorage, AK, USA. New York: IEEE, 2008: 10139983.

[9] Zhang R, Tsai P S, Cryer J E, et al. Shape-from-shading: a survey[J]. IEEE Transactions on Pattern Analysis and Machine Intelligence, 1999, 21(8): 690-706.

[10] Nayar S K, Nakagawa Y. Shape from focus[J]. IEEE Transactions on Pattern Analysis and Machine Intelligence, 1994, 16(8): 824-831.

[11] Favaro P, Soatto S. A geometric approach to shape from defocus[J]. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2005, 27(3): 406-417.

[12] EigenD, PuhrschC, FergusR. Depth map prediction from a single image using a multi-scale deep network[C]∥Proceedings of the 27th International Conference on Neural Information Processing Systems, December 8-13, 2014, Montreal, Canada.USA: MIT Press, 2014: 2366- 2374.

[13] 许路, 赵海涛, 孙韶媛. 基于深层卷积神经网络的单目红外图像深度估计[J]. 光学学报, 2016, 36(7): 0715002.

    Xu L, Zhao H T, Sun S Y. Monocular infrared image depth estimation based on deep convolutional neural networks[J]. Acta Optica Sinica, 2016, 36(7): 0715002.

[14] Cao Y, Wu Z F, Shen C H. Estimating depth from monocular images as classification using deep fully convolutional residual networks[J]. IEEE Transactions on Circuits and Systems for Video Technology, 2018, 28(11): 3174-3182.

[15] Liu FY, Shen CH, Lin GS. Deep convolutional neural fields for depth estimation from a single image[C]∥2015 IEEE Conference on Computer Vision and Pattern Recognition (CVPR), June 7-12, 2015, Boston, MA, USA. New York: IEEE, 2015: 5162- 5170.

[16] Chen WF, FuZ, Yang DW, et al. Single-image depth perception in the wild[C]∥Advances in Neural Information Processing Systems 29 (NIPS 2016), December 5-10, 2016, Barcelona, Spain. Canada: NIPS, 2016: 730- 738.

[17] MayerN, IlgE, HausserP, et al. A large dataset to train convolutional networks for disparity, optical flow, and scene flow estimation[C]∥2016 IEEE Conference on Computer Vision and Pattern Recognition (CVPR), June 27-30, 2016, Las Vegas, NV, USA. New York: IEEE, 2016: 4040- 4048.

[18] GodardC, Aodha OM, Brostow GJ. Unsupervised monocular depth estimation with left-right consistency[C]∥2017 IEEE Conference on Computer Vision and Pattern Recognition (CVPR), July 21-26, 2017, Honolulu, HI, USA. New York: IEEE, 2017: 6602- 6611.

[19] Zhou TH, BrownM, SnavelyN, et al. Unsupervised learning of depth and ego-motion from video[C]∥2017 IEEE Conference on Computer Vision and Pattern Recognition (CVPR), July 21-26, 2017, Honolulu, HI, USA. New York: IEEE, 2017: 6612- 6621.

[20] Wang CY, Buenaposada JM, ZhuR, et al. Learning depth from monocular videos using direct methods[C]∥2018 IEEE/CVF Conference on Computer Vision and Pattern Recognition, June 18-23, 2018, Salt Lake City, UT, USA. New York: IEEE, 2018: 2022- 2030.

[21] JaderbergM, SimonyanK, ZissermanA, et al. Spatial transformer networks[C]∥Advances in Neural Information Processing System 28 (NIPS 2015), December 7-12, 2015, Montreal, Quebec, Canada. Canada: NIPS, 2015: 2017- 2025.

赵栓峰, 黄涛, 许倩, 耿龙龙. 面向无人机自主飞行的无监督单目视觉深度估计[J]. 激光与光电子学进展, 2020, 57(2): 021012. Zhao Shuanfeng, Huang Tao, Xu Qian, Geng Longlong. Unsupervised Monocular Depth Estimation for Autonomous Flight of Drones[J]. Laser & Optoelectronics Progress, 2020, 57(2): 021012.

本文已被 3 篇论文引用
被引统计数据来源于中国光学期刊网
引用该论文: TXT   |   EndNote

相关论文

加载中...

关于本站 Cookie 的使用提示

中国光学期刊网使用基于 cookie 的技术来更好地为您提供各项服务,点击此处了解我们的隐私策略。 如您需继续使用本网站,请您授权我们使用本地 cookie 来保存部分信息。
全站搜索
您最值得信赖的光电行业旗舰网络服务平台!