融合扩张卷积网络与SLAM的无监督单目深度估计 下载: 1188次
1 引言
理解三维场景几何是视觉感知的基本主题。大部分物体是规则的并存在一定的相关性,获取场景的深度信息可以了解场景的三维结构,从而结构化地了解世界,继而完成许多经典的计算机视觉任务,如深度恢复、视觉测距和三维重建等。这些技术在工业上具有广泛的应用,可以推动自动驾驶[1]、三维重建技术[2]和交互式机器人[3]等人工智能技术的发展。近几年,卷积神经网络(CNN)在深度估计中的重要性不言而喻,文献[ 4-10]显示,采用CNN估计深度已经取得了很好的效果。然而监督方式的CNN学习通常需要大量的数据,在标注真实值(ground truth)时成本较高,很大程度上限制了数据量[5-7]。由于监督式学习的深度估计方法存在泛化能力低、成本昂贵等问题,许多研究者将目光转向无监督学习的深度估计方法,利用几何约束来优化深度图,致力于恢复场景的运动结构。然而,当前主流的无监督方法[4,8,11-13]训练的模型在精度上往往不能达到预期的效果,且深度图像分辨率低的问题也一直被广泛关注[14]。相比之下,传统的深度估计方法需要先进传感器如激光雷达,既昂贵又不灵活。此外,传感器生成的深度图分辨率低,边缘信息不准确。RGB相机因其体积小、功耗低而被广泛应用于深度估计领域。综合近几年各种相关工作,本文采取一种无监督视图重建的方式获取单目图片的深度。受文献[ 15]对图像进行语义分割时保留完全尺度上的特征图的启发,本文对现有的深度估计网络(DispNet)进行改进,引入扩张卷积神经网络,扩大感受野的同时,保留更大尺度上的深度特征,提高深度图的视觉质量。同时,针对神经网络回归相机姿态准确率低等问题,采用传统的基于定向的FAST特征和旋转的BRIEF特征的SLAM(Simultaneous Localization and Mapping)算法(ORB-SLAM算法)取代神经网络对相机姿态进行全局优化,利用视图重建[4,8,11-13]的方式训练网络模型,通过最小化渲染重建视图与原始图片的差值,促使网络生成更准确的深度图。与现有的深度学习的深度估计方法相比,本文方法在视觉感知上可获取更高质量的深度图,同时获得了更高的准确率。
本文方法创新点如下:1)采用扩张卷积神经网络保留完全尺度上的特征图,考虑了更大范围的图片特征,保留了更多的细节位置信息,提高了深度图的视觉质量;2)利用传统ORB-SLAM算法的追踪线程计算并优化相机姿态,将优化后的相机姿态嵌入视图重构深度估计网络框架中,促使改进的DispNet生成更准确的深度图。
2 视图重构理论分析
视图重构的无监督学习法以目标帧的重建误差作为监控信号。给定目标帧的深度及其相邻帧的相机运动姿态,利用仿射变换进行渲染能够重建目标帧。其中,重建误差作为网络训练的约束项和评估深度准确率的度量方式。采用的视图重构框架中,对于每个训练样本,输入t-1,t和t+1时刻的三张图片经预处理后的单张图片(参考文献[ 4,11]),三张图片分别表示为Ft-1,Ft和Ft+1。其中,Ft-1,Ft+1分别为左侧和右侧参考视图,Ft为目标视图,F't为重构得到的目标视图,将<F1,F2,…,FN>视为框架的视频训练集。采用扩张卷积改进的DispNet提取图片的深度特征并采用ORB-SLAM算法分别优化左/右视图与目标视图之间的全局相机姿态。目标帧的深度和目标帧与相邻帧之间的相机姿态用于从相邻参考帧中重建目标帧。利用目标帧的深度和相邻帧的运动信息,基于几何推理可以重构目标帧,优化重构视图与目标视图之间的光学误差从而优化深度图。重构过程包含两个可微分运算,允许梯度传播训练神经网络。重构得到的两个目标视图为
式中:r(·)为重构过程;K为相机内参;Tt→t-1、Tt→t+1分别为左、右参考视图和目标视图之间的相对相机姿态;Dt为目标视图的深度。与文献[ 4,13]相同的是,r(·)使用极线几何变换和变形定义左视图和右视图之间的像素关联,并使用此相关信息合成目标视图。引入扩张卷积神经网络提取大尺度下的特征并直接映射第t帧的深度值Dt。同时,采用传统的ORB-SLAM算法优化全局相机姿态Tt→t-1和Tt→t+1。利用线性几何原理进行视图重构,重构的主要过程表示为
3 无监督单目深度估计扩张卷积神经网络
3.1 网络架构
基于视图重构是无监督深度估计的典型方法。通过训练卷积编码器估计目标视图的深度,利用相邻帧之间的相机位姿重构目标视图,进而优化深度图,这一方法被广泛使用。本文提出了一种融合扩张卷积网络与视觉同时定位与建图(SLAM)的方法估计单目图片的深度,该方法通过扩张卷积增大特征提取的感受野,考虑更多的细节特征,并采用传统的SLAM算法对相机姿态进行全局优化,利用线性几何原理重构得到目标视图。在整体框架中,具有时序信息的视频帧经过预处理后的单张图片作为输入图像,通过扩张卷积网络获取初始深度图,并结合传统SLAM算法优化后的相机位姿,得到重构视图。通过最小化重构视图与目标视图之间的差值优化深度图,从而提高深度图的视觉质量和准确率。详细的网络架构如
3.2 扩张卷积深度图网络
采用扩张卷积神经网络提取图像的深度信息,基于主流的DispNet[12]进行改进。在视图重建损失的约束下,通过迭代训练得到单目图片深度估计模型。扩张卷积的引入源于特征提取的过程中,下采样操作常丢弃具有小尺寸的局部特征。而扩张卷积正是下采样层的替代方案[15],不仅增加了感受野,保留更多的局部信息,还保持了特征图的空间维度,实现了局部与全局的双重优化。
扩张卷积在非零滤波器中插入零点对特征图进行采样,加快了感受野的动态速率,保持了特征图的空间维度而不增加计算复杂度[15]。与标准卷积的区别在于(假设卷积核大小为3×3),标准大小的卷积核的感受野大小为3×3;扩张率为n的扩张卷积的感受野扩大为(2n+1)×(2n+1),在扩张卷积的过程中,卷积核大小保持不变。具体的卷积对比如
图 2. 标准卷积与扩张卷积滤波器对比图。(a)标准卷积滤波器;(b)扩张率为2的扩张卷积滤波器;(c)扩张率为3的扩张卷积滤波器
Fig. 2. Comparison of standard convolution and dilated convolution filters. (a) Standard convolution filter; (b) dilated convolution filter with dilation ratio of 2; (c) dilated convolution filter with dilation ratio of 3
图 3. 扩张卷积与标准卷积的可视化过程对比图。(a)标准卷积可视化过程;(b)扩张率为2的扩张卷积可视化过程;(c)扩张率为3的扩张卷积可视化过程
Fig. 3. Visualization process comparison of dilated convolution and standard convolution. (a) Visualization process of standard convolution; (b) visualization process of dilated convolution with dilation ratio of 2; (c) visualization process of dilated convolution with dilation ratio of 3
扩张卷积与标准卷积的可视化操作对比如
4 ORB-SLAM算法优化相机姿态
4.1 ORB-SLAM算法优化模块
采用ORB-SLAM算法全局优化相机姿态。选定初始帧后,使用随机抽样一致性(RANSAC)算法[16-17]进行图像的特征点匹配。只有满足前后帧匹配点对超过100,才认为当前两帧可以进行初始化并利用两帧的匹配关系进行后续工作。继而开始计算两帧之间的变换矩阵T(由旋转矩阵R和平移矩阵
图 4. ORB-SLAM算法优化全局相机姿态总体流程
Fig. 4. Flow chart of optimizing global camera pose by ORB-SLAM algorithm
用于优化相机姿态的ORB-SLAM算法主要采用Bundle Adjustment[17](BA)优化算法,即采用最小化重投影误差来减小漂移误差。重投影误差指真实三维空间点在图像平面上的投影和重投影的差值,最小化差值的和是整个过程优化的目标。将这个问题转化成一个最小二乘法的问题,可获取最优的相机位姿参数[18]及三维空间点的坐标。
此外,BA算法是一个图优化模型,由节点和边组成。该图模型的节点由相机Ct和三维空间点Xk构成,若点Xk投影到相机Ct的图像上,则将这两个节点连接起来。BA可以化为稀疏矩阵的形式,从而减小计算量。联合最小化所有相机和点的重投影误差,优化本质图得到最终的相机位姿。具体的投影约束过程如
姿势优化的目标函数表示为
式中:Tt为t时刻的变换矩阵;xk,t为t时刻第k帧的三维坐标点的真实值;f(·)代表重投影过程;Rt,t-1与
图 5. 三维空间点在图像平面上的投影过程
Fig. 5. Projection process of three-dimensional space points onto the image plane
4.2 误差度量方式
4.2.1 视图重建损失
记Ftar为原始目标图像,其对应的重建图像为Frec。由上文可知,给定目标图像的深度图和目标视图与相邻视图之间的相机运动姿态,利用仿射变换可以重建目标视图。视图重建过程的损失(Lrec)为
式中:p为像素。
4.2.2 深度平滑损失
CNN学习的深度特征具有空间细节、边缘和噪声,图像中的梯度差异很大。为了减小梯度差异并使深度图看起来更真实,视差梯度由图像域的边缘感知平滑项进行加权,通过边缘感知平滑项使得深度图添加鲁棒的空间平滑度惩罚。深度预测平滑损失(Lsmooth)为[9]
式中:N为像素总数;θx和θy分别为水平方向和垂直方向的梯度;Fij为像素i,j处的原始图像;Dij为其深度。
4.2.3 总体损失
结合4.2.1节和4.2.2节的两个损失函数,记λrec和λsmooth为每个损失项的权重。总体损失函数(Lfinal)为
5 实验结果与分析
将扩张卷积模型预测的深度图效果与现有方法进行比较,同时也利用标准的评估工具对模型性能进行评估与对比。
5.1 KITTI数据集实验
5.1.1 实验环境与平台
实验环境包括一台配有NVIDIA GTX 1070 显卡和 8 GB 内存的计算机硬件设备、Pycharm专业版以及Kdevelop4 IDE软件开发工具。采用TensorFlow框架,在官方KITTI Odometry数据集上进行训练,并利用KITTI raw数据集进行评估。实验过程中,选用KITTI Odometry数据集中00-10的左视频序列作为训练集和验证集,数据集中的图片大小均设置为128×416。训练阶段采用Adam[19]优化器,通过不断进行实验与调参发现,超参数[β1,β2]=[0.9,0.999]效果最佳。借鉴文献[
4],将λrec和λsmooth分别设为1.0和0.5来训练网络,以达到最优性能。训练初始学习率设置为0.0001。重建损失变化、平滑损失变化及总体损失变化情况如
5.1.2 相机姿态估计可视化结果比较
ORB-SLAM算法采用BA算法、回环检测和重定位共同对相机姿态进行全局优化。为了更直观地理解ORB-SLAM算法计算相机姿态的结果,使用可视化工具显示00-03、09和10序列的相对姿态轨迹、ground truth与当前主流方法的对比,如
从
图 6. 不同损失变化曲线。(a)重建损失;(b)平滑损失;(c)总体损失
Fig. 6. Curves for different losses. (a) Reconstruction loss; (b) smooth loss; (c) total loss
图 7. KITTI Odometry数据集中不同序列的相对相机姿态轨迹。(a) 00;(b) 01;(c) 09;(d) 02;(e) 03;(f) 10
Fig. 7. Camera pose trajectories for different sequences in the KITTI Odometry dataset. (a) 00; (b) 01; (c) 09; (d) 02; (e) 03; (f) 10
5.1.3 深度图估计可视化结果比较
模型预测结果如
图 8. 深度预测的定性比较。(a) RGB输入图像;(b) Garg等[11]的方法;(c) sfmlearner方法[4];(d)本文方法;(e) ground truth
Fig. 8. Qualitative comparison of depth prediction. (a) RGB input image; (b) method of Garg et al.[11]; (c) sfmlearner method[4]; (d) our method; (e) ground truth
5.2 模型性能评估
5.2.1 相机姿态结果评估
采用均方根误差(RMSE)度量方式评估ORB-SLAM算法的准确性,并与现有方法进行比较,如
由
5.2.2 深度估计模型性能评估
使用官方TUM评估工具包对KITTI raw数据集进行评估实验,与其他方法进行公平比较,具体的度量方式如下:
绝对差为
平方差为
RMSE为
对数均方差为
阈值为
式中:N为测试集中具有地面实况的像素数;D't和Dt分别为第t个像素的真实和预测深度;δ取值为1.25,1.252,1.253;Tthreshold为阈值。利用(8)~(12)式,深度估计模型的TUM评估结果如
表 1. KITTI Odometry数据集09和10序列的RMSE比较
Table 1. RMSE comparison of 09 and 10 sequences in the KITTI Odometry dataset
|
图 9. 深度细节可视化比较。(a)(c)输入图像;(b)(d)输出图像
Fig. 9. Visualization comparison of depth details. (a)(c) Input images; (b)(d) output images
表 2. 深度估计模型的TUM评估结果比较
Table 2. Comparison of TUM evaluation results for depth estimation model
|
Eigen等[5-6]使用从粗略到细致的网络预测深度图,在真实深度值的监督下,采用了由局部到全局的思想实现单目图片深度估计。Liu等[7]使用VGG-16的监督方法训练网络以初始化参数。以上几种方法均需利用标注好的真实深度值监督网络的训练,大大限制了数据量。Kumar等[22]采用一种生成对抗式网络估计单目图片的深度信息,取得了不错的效果。Zhou等[4]采用视图合成的思想进行无监督学习的单目图片深度估计,对不同的数据集进行了实验,并将网络的性能分为有、无可解释性掩模分别进行了定量比较。本文基于文献[
4]的方法进行改进,由
6 结论
为处理无监督单目图片深度估计的任务,提出了一种新颖的无监督单目图片深度估计方法,利用光学误差的约束进行单目图片的深度估计。网络训练受扩张卷积网络和传统姿态估计的双重约束。其中,深度图网络使用扩张卷积扩大了感受野,考虑了更大尺度的信息,促使特征更加完整。用于视图重建的相机姿态采用传统的算法进行全局优化,即ORB-SLAM算法,结果几乎接近真实值,优于大部分现有的姿态估计方法。该网络架构不需要真实的深度值,质量和准确率都得以提高,能够将网络回归的深度图直接应用于三维重建、智能机器人等领域。实验结果表明,扩张卷积网络考虑到了更多的细节特征,传统方法的姿态估计几乎接近实际数值,准确率达到了较高的水平。模型最终估计的深度图不仅在视觉质量上取得了更好的效果,在准确率方面也得到了较大提升。本文方法无需深度真实值的监督,优于大部分无监督方式的深度估计方法,与有监督学习的方法相比性能也有较大的提升。
[1] Pan XL, You YR, Wang ZY, et al.Virtual to real reinforcement learning for autonomous driving[C]∥Proceedings of the British Machine Vision Conference 2017, September 2017, London, UK.UK: BMVA Press, 2017: 11.
[2] 曾昭鹏, 张江乐, 魏志尚, 等. 一种基于智能手机成像的三维重建方法[J]. 激光与光电子学进展, 2018, 55(11): 111502.
[3] Michalos G, Karagiannis P, Makris S, et al. Augmented reality (AR) applications for supporting human-robot interactive cooperation[J]. Procedia CIRP, 2016, 41: 370-375.
[4] 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.
[5] EigenD, PuhrschC, FergusR. Depth map prediction from a single image using a multi-scale deep network[C]∥Advances in Neural Information Processing Systems, December 8-13, 2014, Montreal, Quebec, Canada. Canada: NIPS, 2014: 2366- 2374.
[6] EigenD, FergusR. Predicting depth, surface normals and semantic labels with a common multi-scale convolutional architecture[C]∥2015 IEEE International Conference on Computer Vision (ICCV), December 7-13, 2015, Santiago, Chile. New York: IEEE, 2015: 2650- 2658.
[7] 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.
[8] Wang A J, Fang Z J, Gao Y B, et al. Depth estimation of video sequences with perceptual losses[J]. IEEE Access, 2018, 6: 30536-30546.
[9] TosiF, AleottiF, PoggiM, et al. Learning monocular depth estimation infusing traditional stereo knowledge[C]∥Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition(CVPR), June 16-20, 2019, Long Beach, CA. New York: IEEE, 2019: 9799- 9809.
[10] 李阳, 陈秀万, 王媛, 等. 基于深度学习的单目图像深度估计的研究进展[J]. 激光与光电子学进展, 2019, 56(19): 190001.
[11] GargR, Vijay K B G, Carneiro G, et al. Unsupervised CNN for single view depth estimation: geometry to the rescue[M] ∥Leibe B, Matas J, Sebe N, et al. Computer vision-ECCV 2016. Lecture notes in computer science. Cham: Springer, 2016, 9912: 740- 756.
[12] 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.
[13] Zhan HY, GargR, Weerasekera CS, et al. Unsupervised learning of monocular depth estimation and visual odometry with deep feature reconstruction[C]∥2018 IEEE/CVF Conference on Computer Vision and Pattern Recognition, June 18-23, 2018, Salt Lake City, UT, USA. New York: IEEE, 2018: 340- 349.
[14] 李素梅, 雷国庆, 范如. 基于卷积神经网络的深度图超分辨率重建[J]. 光学学报, 2017, 37(12): 1210002.
[15] Zhou XY, Zheng JQ, Yang G Z. Atrous convolutional neural network ( ACNN) for biomedical semantic segmentation with dimensionally lossless feature maps[J/OL]. ( 2019-01-26)[2019-07-03]. https:∥arxiv.gg363.site/abs/1901. 09203.
[16] Chen S, Wang L. An improved SIFT feature matching based on RANSAC algorithm[J]. Information Technology, 2016, 40(12): 39-43.
[17] Shi GJ, Xu XY, Dai YP. SIFT feature point matching based on improved RANSAC algorithm[C]∥2013 5th International Conference on Intelligent Human-Machine Systems and Cybernetics, August 26-27, 2013, Hangzhou, China. New York: IEEE, 2013: 474- 477.
[18] 陈健武, 全思博, 全燕鸣, 等. 双二维激光雷达相对位姿的标定方法[J]. 中国激光, 2017, 44(10): 1004005.
[19] Kingma DP, Ba J. Adam: a method for stochastic optimization[J/OL]. ( 2017-01-30)[2019-07-03]. https:∥arxiv.org/abs/1412. 6980.
[20] Luo C X, Yang Z H, Wang P, et al. Every pixel counts ++: joint learning of geometry and motion with 3D holistic understanding[J]. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2019, 1.
[21] Li RH, WangS, Long ZQ, et al. UnDeepVO: monocular visual odometry through unsupervised deep learning[C]∥2018 IEEE International Conference on Robotics and Automation (ICRA), May 21-25, 2018, Brisbane, QLD, Australia. New York: IEEE, 2018: 7286- 7291.
[22] Kumar A RS, Bhandarkar SM, PrasadM. Monocular depth prediction using generative adversarial networks[C]∥2018 IEEE/CVF Conference on Computer Vision and Pattern Recognition Workshops (CVPRW), June 18-22, 2018, Salt Lake City, UT, USA. New York: IEEE, 2018: 413- 421.
Article Outline
戴仁月, 方志军, 高永彬. 融合扩张卷积网络与SLAM的无监督单目深度估计[J]. 激光与光电子学进展, 2020, 57(6): 061007. Renyue Dai, Zhijun Fang, Yongbin Gao. Unsupervised Monocular Depth Estimation by Fusing Dilated Convolutional Network and SLAM[J]. Laser & Optoelectronics Progress, 2020, 57(6): 061007.