APP下载

单目视觉的地图构建与同时定位研究进展

2018-12-22穆莉莉郭枫

电脑知识与技术 2018年32期
关键词:深度学习

穆莉莉 郭枫

摘要:同时定位和地图构建技术(SLAM)在移动机器人自主导航领域有着广泛的应用。首先列举了国内外具有代表性的单目SLAM算法,并简要介绍了这些算法的概况;其次依托这些算法阐述并分析了单目视觉SLAM过程中的关键步骤,包括初始化,特征点跟踪,直接法跟踪,回环检测,后端优化步骤的原理和现有的处理方法;最后对未来视觉SLAM中的多传感器融合,深度学习的发展趋势做了总结。

关键词:单目视觉;同时定位与地图构建;图优化;多传感器融合;深度学习

中图分类号:TP391 文献标识码:A 文章编号:1009-3044(2018)32-0197-04

Abstract: Simultaneous Localization and Mapping (SLAM) has a wide range of applications in the field of mobile robot autonomous navigation. Firstly, the representative monocular SLAM algorithms at home and abroad are listed, and the overview of these algorithms is briefly introduced. Secondly, based on these algorithms, the theories and existing method of key steps in the monocular visual SLAM process include initialization, feature tracking, direct method tracking, loop detection, back-end optimization are described and analyzed. Finally, the trend of future visual SLAM involed multi-sensor fusion and deep learning is summarized.

Key words: monocular vision; simultaneous location and mapping; graph optimization; multi-sensor fusion; deep learning

1 引言

同时定位与地图构建SLAM(Simultaneous Localization and Mapping)于1987年由Smith Self和Che-eseman两位学者提出[1],是当前移动机器人研究的核心。SLAM研究的主要问题集中在如何在缺少先验信息的环境中利用自身携带传感器进行准确的自身定位和地图构建。当前,随着计算机视觉技术的发展,SLAM对传感器的选择逐渐由开始的激光雷达向视觉相机发展,相机具有价格低廉,获取信息丰富,小范围内定位精度高的优点,将其应用于移动机器人SLAM具有更好的效果,因此视觉SLAM成为目前SLAM研究领域中一个重要的发展方向,其中结构最简单的单目相机被广泛研究和应用。本文将从单目视觉SLAM过程的关键步骤出发,介绍单目视觉SALM中关键步骤的原理和实现过程,综述当前的发展现状和未来的发展趋势。

2 单目视觉SLAM算法

在SLAM技术发展进程中,国外的研究团队做出了重要的贡献。2007年英国伦敦帝国理工学院的A.J.Davison教授及其团队提出了单目视觉SLAM系统MonoSLAM[2],采用概率椭圆主动搜索的方式匹配特征点,在线创建了稀疏的地图,真正意义上实现了视觉SLAM的实时化,是视觉SLAM一个里程碑式的工作。同年,Klein等提出了一种跟踪和建图并行的SLAM算法PTAM[3],它也是第一个使用非线性优化作为优化方法的SLAM算法,对比基于滤波器作为后端优化的算法,可取得更好的优化效果。Engel J等人于2014年提出的LSD-SLAM[5]利用直接法跟踪,避免了特征点提取,构建了半稠密地图,与稀疏特征点法不同的是,它采用单目创建信息更为丰富的地图且可以实时运行。Forster C等人在2014年设计了一个半直接SLAM算法SVO[6],它提取关键点的同时用周围图像块的亮度信息估计相机的运动,用逆深度[7]表示关键点深度,用深度滤波器迭代计算关键点位置,该算法特点是速度极快。2015年R Mur-Artal等继承PTAM大体框架研究了一种十分成熟的SLAM算法ORB-SLAM[4], 它首次将SLAM过程分成了特征点跟踪,局部建图,回环融合三個线程,在跟踪和优化能力上相较于以前的算法有了巨大的提升。

国内对SLAM技术研究起步较晚,但其中也不乏一些优秀的算法。2013年浙江大学Wei等提出的RDSLAM[8]采用全局SIFT[9]特征匹配,并用KD-Tree加速了匹配过程,同时基于时序先验自适应 RANSAC[10]方法可以有效剔除误匹配,该算法能鲁棒地处理动态场景中包括物体位置改变或被遮挡的情况下的图像匹配问题,具有十分重要的现实意义。2016年,浙江大学章国锋等人等提出了ENFT-SLAM算法,是ENFT-SfM[11]实时化算法,它改进了传统的特征点跟踪方式,提出了非连续特征跟踪方法和分段式全局优化的方法,这两种方法对SLAM过程中场景变化,多回路闭合的情况十分友好。

3 单目视觉SLAM关键步骤

单目视觉SLAM算法流程如图1,主要包括图像信息的获取、初始化、视觉里程计、回环检测、后端优化、地图构建等几个步骤。

图像信息直接由单目相机获取;单目相机不同于深度相机和双目相机,其不可以直接求地图点的深度,故必须通过初始化分解出相机的姿态并解出地图点的深度;视觉里程计通过特征点跟踪或者直接法跟踪计算相机的位姿信息;后端优化对相机的位姿和地图点进行调整以得到更精确的定位和建图结果;回环检测是通过计算两个不同时刻图像的相似程度来判断相机是否经过同一个位置,给后端优化增加约束,提升SLAM精度;地图构建由后端对地图点的优化直接完成。

3.1 初始化

单目相机的初始化必须考虑平移以及避免纯旋转的情况。MonoSLAM采用在场景中预先放置已知形状的目标以完成初始化。PTAM通过分解单应矩阵获取相机运动[12],用户选择前两个关键帧,在第一帧中提取FAST角点[13],在平面内缓慢平滑移动相机跟踪匹配直至确定第二个关键帧,采用MLESAC方法[14]来计算两个关键帧之间的单应矩阵,分解得到相机的运动。SVO同样采取分解单应矩阵初始化,与PTAM不同的是它不需要用户指定关键帧,当算法认为提取到两个关键帧时自动计算分解单应矩阵。RDSLAM由选定的两个关键帧通过5点法[15]计算确定相机的运动。LSD-SLAM将第一个关键帧深度信息设置成一个方差很大的随机量,连续匹配后来的图像并采用滤波的方式不断迭代得到初始特征点的正确深度信息。ORB-SLAM以启发式方式初始化地图,对于平面场景分解单应矩阵,对于非平面场景分解基础矩阵。ENFT-SLAM通过分解单应矩阵求解相机的运动,在图像的匹配过程中采用效率更高的非连续特征跟踪算法,初始化速度更快。

3.2 特征点跟踪和直接法追踪

基于特征点的SLAM方法在估计两帧之间相机的运动和空间结构时,需要对两帧的图像进行特征点的提取和匹配,根据匹配关系求解相机运动。早期,主要以Harris[16]、F?rsnter[17]等局部角点作为图像特征点提取算子[18],但当场景变化较大时,角点的性能急剧下降,可能会造成无法匹配的情况。据此,Lowe D G、Rublee E等提出了一些性能更高的特征点如SIFT,ORB[19]来解决这个问题。MonoSLAM使用Shi and Tomasi角点[20],在概率模型投影椭圆中主动搜索匹配。PTAM使用FAST角点作为特征算子,ORB-SLAM全局采用ORB特征,都假设相机做匀速运动,通过再投影方式计算相机的运动。RDSLAM和ENFT-SLAM全局采用SIFT算子,分别用KD-Tree和非连续跟踪的方式进行匹配。

直接法追踪的SLAM方法,不需要提取计算关键点和描述子,直接通过最小化光度误差求解相机的运动。优点是节省了计算量,对于特征缺失区域的跟踪也有较好鲁棒性,不仅可以像基于特征点SLAM算法一样构建稀疏的地图,也能够构建半稠密和稠密的地图。缺点是对光照极为敏感,在光照变化大的情况下,很有可能跟踪失败。LSD-SLAM通过直接图像配准得到高度准确的姿态估计。SVO为半直接法,提取关键点,并跟踪关键点周围的像素块进行匹配,得到相机的运动。

3.3 回环检测

回环检测的目的是减小SLAM过程中的累积误差,过程是判断当前时刻的数据和过去某个时刻是否相似,若相似,则形成一个回环,生成一个约束,送入后端优化,提高系统的定位精度。也可以利用回环检测在相机跟踪失败时进行重定位[21]。MonoSLAM匹配过程中使用概率椭圆主动搜索,若地图点可持续在椭圆中搜索到直至在某一帧可匹配到足够多的点,认为回环产生。RDSLAM没有回路检测机制,但全局采用SIFT特征且用KD-Tree加速匹配过程,可以在回路发生时快速检测出匹配关系继而通过优化消除累积误差[22]。ORB-SLAM采用词袋模型(BoW)[23]做回环检测,步骤主要分为1)计算关键帧Ki词袋和它在covisibility graph[4]相邻图像的相似度,选取一系列图像作为候选帧。2)计算当前关键帧和这些图像帧的相似变换以得到回环的累积误差,使用RANSAC和 Horn[24]方法进行迭代和计算相似变换,不断优化匹配效果好的图像直到可以作为闭环帧。LSD-SLAM和ORB-SLAM采用类似的回路检测方式,先选取十个可能形成闭环的关键帧,计算每一个关键帧的两个相似变换,当相似变换接近时,才把约束加入优化过程。ENFT-SLAM的回路闭合是通过计算当前帧与历史关键帧的相似度并选择相似度高的关键帧进行匹配确定回环。

3.4 后端优化

优化方法主要分为滤波器法和图优化。在SLAM发展前期,主要使用扩展卡尔曼滤波(EKF)作为优化方法[25]。SLAM是一个非线性系统,要使用扩展卡尔曼滤波,需要对其做泰勒展开近似成线性系统[26]进行预测更新。基于滤波器方法的优化大都认为当前时刻的系统状态仅仅和上个时刻或者上几个时刻的状态有关,这在一定程度不够准确,应该把前面所有相关时刻的状态量考虑进来对当前时刻做估计,得到的估计值更为精确。目前主流的方法是使用图优化,示意图如图2所示。

和滤波器方法不同,图优化从全局出发,优化当前和历史时刻所有相机位姿和空间点状态量。随着相机运动时间的增加和空间点数量的增加,虽然可以利用矩阵的稀疏性[27]减少计算量,但这种优化方式对计算能力仍提出了不小的挑战。因此,在保证SLAM准确度的前提下,只优化相机位姿而忽略空间点的位姿图优化方法(如图3),节省了大量的計算时间,提高了系统的运行速度。

MonoSLAM采用传统EKF进行后端优化,分为预测和更新两步,通过运动模型预测相机的姿态,采用投影方程更新优化相机的位姿和地图点的位置。PTAM采用Levenberg-Marquardt[28]方法做BA优化,将前后两个关键帧三角化获得局部地图,最后对所有的地图点,关键帧的相机位姿进行BA优化,得到更为精确的地图点云和相机姿态,在建图线程执行局部BA,优化当前关键帧和附近4个关键帧的位姿及它们能看到的所有地图点。RDSLAM也使用BA优化方法,但由于采用KD-Tree匹配和时序先验的自适应 RANSAC 策略,提高了匹配精度降低了误匹配数量,优化能力比PTAM要强。LSD-SLAM以帧间sim(3)约束关系相连接构成边,以关键帧作为节点,在后端通过姿态图进行优化,采用高斯牛顿方法最小化误差函数得到最优解。SVO仅相当于一个视觉里程计,没有优化模块。ORB-SLAM主要包括两个图,Covisibility Graph和Essential Graph,Covisibility Graph以相机的位姿作为顶点,两个位姿的变换关系作为图优化的边。Essential Graph是用最少边连接的Covisibility Graph的子图。ORB-SLAM的局部BA优化当前帧和当前帧在Covisibility Graph连接的所有帧,全局优化用Essential Graph以减少计算量。ENFT-SLAM局部BA优化被分割的每个序列,全局采用基于分段的BA进行优化。

4 SLAM未來发展趋势

4.1 多传感器融合

相机和惯性测量单元(IMU)组合形成的SLAM系统是被研究最多的系统之一[29-31]。IMU有测量频率高,短时间测量准确的优点,可以帮助相机在一些特征缺失(如白墙)的地方估计运动,且可以帮助单目相机构建场景的尺度。深度相机能够获取三维空间中的深度信息,可以辅助跟踪和帮助构建稠密的三维环境[32-34]。此外,激光测距仪,光流计,里程计,GPS等也可以和相机形成优势互补,提升SLAM的性能。

4.2 深度学习

近些年随着人工智能的发展,逐渐将深度学习引入了SLAM领域以得到更精确的结果。深度学习在SLAM领域可以解决的问题有图像之间位姿的估计[35],闭环检测[36],图像的识别分割等[37,38]。Konda K等[35]提出了一种端到端,基于深度学习的架构预测速度和方向的变化。Gao X等[36]使用堆叠去噪自动编码器(SDA)多层神经网络解决回环检测问题。He K等[37]提出了残差学习框架,在图像识别上可以取得很好的效果。近期,谷歌推出了语义理解分割技术[38],可以实现在图像中任意添加,改变,移动对象,和原图完美融合。

5 结束语

作为一个多学科交叉的技术,视觉SLAM正在被越来越多的应用在机器人导航,无人驾驶,增强现实,虚拟现实,三维重建等各个领域。经过30多年的发展,视觉SLAM技术日渐成熟,但由于应用场景的复杂化,例如运动物体干扰,剧烈运动,自然条件变化,物体追踪需求等,对其实时性,鲁棒性,功能性的要求不断提高,需要不断完善算法,融合其他传感器,加入新的技术以提高其性能,使之更鲁棒的适用于各种场景。

参考文献:

[1] SMITHR, CHEESEMEMAN P. On the representation and estimation of spatial uncertainty[J]. The International Jour- nal of Robotics Research, 1987, 5(4): 56-58.

[2] Davison A J, Reid I D, Molton N D, et al. MonoS-LAM: Real-Time Single Camera SLAM[J]. IEEE Trans Pattern Anal Mach Intell, 2007, 29(6): 1052-1067.

[3] Klein G, Murray D. Parallel tracking and mapping for small AR workspaces[C]//Mixed and Augmented Reality, 20 07. ISMAR 2007. 6th IEEE and ACM In ternational Symposium on. IEEE, 2007: 225-234.

[4] Mur-Artal R, Montiel J M M, Tardós J D. ORB-SLAM: A Versatile and Accurate Monocular SLAM System[J]. IE- EE Transactions on Robotics, 2017, 31 (5): 1147-1163.

[5] Engel J, Sch?ps T, Cremers D. LSD-SLAM: Large- Scale Direct Monocular SLAM[C]// European Conference on C- omputer Vision. Springer, Cham, 2014: 834-849.

[6] Forster C, Pizzoli M, Scaramuzza D. SVO: Fast semi-direct monocular visual odometer[C]// IEEE Inteernational C- onference on Robotics and Automation. IEEE, 2014: 15-22.

[7] Civera J, Davison A J, Montiel J M M. Inverse Depth Parametrization for Monocular SLAM[J]. IEEE Transactions on Robotics, 2008,24(5):932-945.

[8] Tan W, Liu H, Dong Z, et al. Robust monocular SLAM in dynamic environments[C]//Mixed and Augmented Realit- y (ISMAR), 2013 IEEE International Symposium on. IEEE, 2013: 209-218.

[9] Lowe D G. Distinctive Image Feature from Scale-Invariant Key points[J]. International Journal of Computer Vision, 2004.

[10] Fischler M A, Bolles R C. Random Sample Consensus: A Paradigm for Model Fitting with Applications to Image Analysis and Automated Cartography [J]. Readings in Computer Vision, 1987:726-740.

[11] Zhang G, Liu H, Dong Z, et al. Efficient non-consecutive feature tracking for robust structure-from-motion[J]. IEEE Transactions on Image Processing, 2016,25(12): 5957-5970.

[12] Faugeras O D, Lustman F. Motion and structure from motion in a piecewise planar environment[J]. International Jo- urnal of Pattern Recognition and Artificial Intelligence, 1988, 2(03): 485-508.

[13] Rosten E, Drummond T. Machine learning for high- speed corner detection[C]//European conference on computer vi- sion. Springer, Berlin, Heidelberg, 2006: 430-443.

[14] Torr P H S, Zisserman A. MLESAC: A new robust estimator with application to estimating image geometry[J]. Co- mputer vision and image understanding, 2000, 78(1): 138-156.

[15] Nistér D. An efficient solution to the five-point relative pose problem[J]. IEEE transactions on pattern analysis and machine intelligence, 2004, 26(6): 756-770.

[16] Harris C, Stephens M. A combined corner and edge detector[C]//Alvey vision conference. 1988, 15(50): 10-5244.

[17] F?rstner W, Gülch E. A fast operator for detection and precise location of distinct points, corners and centres of ci- rcular features[C]//Proc. ISPRS intercommission conference on fast processing of photogrammetric data. 1987: 281-3 05.

[18] 邸凯昌, 万文辉, 赵红颖, 等. 视觉SLAM技术的进展与应用[J]. 测绘学报, 2018(6).

[19] Rublee E, Rabaud V, Konolige K, et al. ORB: An efficient alternative to SIFT or SURF[C]//Computer Vision (IC- CV), 2011 IEEE international conference on. IEEE, 2011: 2564-2571.

[20] Shi J, Tomasi C. Good features to track[R]. Cornell University, 1993.

[21] 高翔, 张涛,等. 视觉SLAM十四讲从理论到实践[M]. 北京: 電子工业出版社, 2017: 184-185.

[22] 刘浩敏, 章国锋, 鲍虎军. 基于单目视觉的同时定位与地图构建方法综述[J]. 计算机辅助设计与图形学学报, 2016, 28 (6):855-868.

[23] Gálvez-López D, Tardos J D. Bags of binary words for fast place recognition in image sequences[J]. IEEE Transac- tions on Robotics, 2012, 28(5): 1188-1197.

[24] Horn B K P. Closed-form solution of absolute orientation using unit quaternions[J]. JOSA A, 1987, 4(4): 629-642.

[25] Aulinas J, Petillot Y R, Salvi J, et al. The SLAM problem: a survey[J]. CCIA, 2008, 184(1): 363-371.

[26] Kalman R E, Bucy R S. New results in linear filtering and prediction theory[J]. Journal of basic engineering, 1961, 83(1): 95-108.

[27] Dellaert F, Kaess M. Square Root SAM: Simultaneous localization and mapping via square root information smooth- ing[J]. The International Journal of Robotics Research, 2006, 25(12): 1181-1203.

[28] R. I. Hartley and A. Zisserman. Multiple View Geometry in Computer Vision. Cambridge University Press, second edition, 2004.

[29] Mourikis A I, Roumeliotis S I. A multi-state constraint Kalman filter for vision-aided inertial navigation [C]//Roboti- cs and automation, 2007 IEEE international conference on. IEEE, 2007: 3565-3572.

[30] Qin T, Li P, Shen S. Vins-mono: A robust and versatile monocular visual-inertial state estimator[J]. IEEE Transacti- ons on Robotics, 2018, 34(4): 1004-1020.

[31] Leutenegger S, Furgale P, Rabaud V, et al. Keyframe-Based Visual-Inertial SLAM using Nonlinear Optimization [C]//Robotics: Science and Systems. 2013: 789–795.

[32] Newcombe R A, Lovegrove S J, Davison A J. DTAM: Dense tracking and mapping in real-time[C]//IEEE Internati- onal Conference on Computer Vision. IEEE, 2011: 2320-2327.

[33] Labbe M, Michaud F. Online global loop closure detection for large-scale multi-session graph-based SLAM[C]//Intell- igent Robots and Systems (IROS 2014), 2014 IEEE/RSJ International Conference on. IEEE, 2014: 2661-2666.

[34] Kerl C, Sturm J, Cremers D. Dense visual SLAM for RGB-D cameras[C]//Intelligent Robots and Systems (IROS), 2 013 IEEE/RSJ International Conference on. IEEE, 2013: 2100-2106.

[35] Konda K R, Memisevic R. Learning Visual Odometry with a Convolutional Network[C]//VISAPP (1). 2015: 486-49 0.

[36] Gao X, Zhang T. Unsupervised learning to detect loops using deep neural networks for visual SLAM system[J]. Au- tonomous robots, 2017, 41(1): 1-18.

[37] He K, Zhang X, Ren S, et al. Deep residual learning for image recognition[C]//Proceedings of the IEEE conference on computer vision and pattern recog- nition. 2016: 770-778.

[38] 張鑫,三石.谷歌等祭出图像语义理解分割神器,PS再也不用专业设计师![EB/OL].https://mp.weixin.qq.com/ s/MiChpWi m5pGlRj88rcQta- A.

【通联编辑:梁书】

猜你喜欢

深度学习
从合坐走向合学:浅议新学习模式的构建
搭建深度学习的三级阶梯
有体验的学习才是有意义的学习
利用网络技术促进学生深度学习的几大策略
MOOC与翻转课堂融合的深度学习场域建构
大数据技术在反恐怖主义中的应用展望
构建“单元整合、主题牵引”诗歌鉴赏“深度学习”课堂的策略