SLAM论文阅读笔记
[1]陈卫东, 张飞. 移动机器人的同步自定位与地图创建研究进展[J]. 控制理论与应用, 2005, 22(3):455-460.
[2]Cadena C, Carlone L, Carrillo H, et al. Past, Present, and Future of Simultaneous Localization and Mapping: Toward the Robust-Perception Age[J]. IEEE Transactions on Robotics, 2016, 32(6):1309-1332. (综述)
[3]Birk A, Pfingsthorn M. Simultaneous Localization and Mapping (SLAM)[M]// Wiley Encyclopedia of Electrical and Electronics Engineering. John Wiley & Sons, Inc. 2016.
[4]Choset H, Nagatani K. Topological simultaneous localization and mapping (SLAM): toward exact localization without explicit localization[J]. Robotics & Automation IEEE Transactions on, 2001, 17(2):125-137.
[5]许亚朝, 何秋生, 王少江,等. 一种改进的自适应卡尔曼滤波算法[J]. 太原科技大学学报, 2016, 37(3):163-168.
[6]Martinez-Cantin R, Castellanos J A. Unscented SLAM for large-scale outdoor environments[C]// Ieee/rsj International Conference on Intelligent Robots and Systems. IEEE, 2005:3427-3432. (引:142)
[7]Chekhlov D, Pupilli M, Mayol-Cuevas W, et al. Real-Time and Robust Monocular SLAM Using Predictive Multi-resolution Descriptors.[C]// International Symposium on Visual Computing. 2006:276-285. (引:142)
[8]Holmes S, Klein G, Murray D W. A Square Root Unscented Kalman Filter for visual monoSLAM[C]// IEEE International Conference on Robotics and Automation. IEEE, 2008:3710-3716. (引:65)
[10]Sim R, Elinas P, Griffin M. Vision-based SLAM using the Rao-Blackwellised particle filter[J]. Ijcai Workshop on Reasoning with Uncertainty in Robotics, 2005, 9(4):500-509. (引:232)
[11]Li M, Hong B, Cai Z, et al. Novel Rao-Blackwellized Particle Filter for Mobile Robot SLAM Using Monocular Vision[J]. International Journal of Intelligent Technology, 2008(1):63--69. (引:5)
[12]Klein G, Murray D. Parallel Tracking and Mapping for Small AR Workspaces[C]// IEEE and ACM International Symposium on Mixed and Augmented Reality. IEEE, 2008:1-10. (引:1927)
[13]Klein G, Murray D. Improving the Agility of Keyframe-Based SLAM[C]// European Conference on Computer Vision. Springer-Verlag, 2008:802-815. (引:290)
[14]Mur-Artal R, Tardós J D. Fast relocalisation and loop closing in keyframe-based SLAM[C]// IEEE International Conference on Robotics and Automation. IEEE, 2014:846-853. (引:28)
[15]Mur-Artal R, Montiel J M M, Tardós J D. ORB-SLAM: A Versatile and Accurate Monocular SLAM System[J]. IEEE Transactions on Robotics, 2015, 31(5):1147-1163. (引:145)
[16]Henry P, Krainin M, Herbst E, et al. RGB-D mapping: Using depth cameras for dense 3-D modeling of indoor environments[M]//KHATIB O, KUMAR V, PAPPAS G J. Experimental Robotics. Berlin Heidelberg: Springer, 2014: 647-663.
最早提出使用RGBD相机对室内环境进行三维重建的方法,在彩色图像中提取SIFT特征并在深度图像上查找相应的深度信息。然后使用RANSAC方法对3D特征点进行匹配并计算出相应的刚体运动变换,再以此作为ICP(iterative closest point)的初始值来求出更精确的位姿。RGBD SLAM通常使用ICP算法来进行位姿估计。其基本流程为:
[17]Henry P, Krainin M, Herbst E, et al. RGB-D mapping: Using Kinect-style depth cameras for dense 3D modeling of indoor environments[M]// Experimental Robotics. Springer Berlin Heidelberg, 2014:647-663. (引:435)
与文献[16]类似,不同点在于对彩色图像进行的是SURF特征提取,并用ICP对运动变换进行优化后,最后使用Hogman位姿图优化方法求出全局最优位姿。
[18]Jan Stühmer, Gumhold S, Cremers D. Real-time dense geometry from a handheld camera[C]// Dagm Conference on Pattern Recognition. Springer-Verlag, 2010:11-20.(引:123)
文献18的相机定位方法依赖图像的每个像素点,即用稠密的图像对准来进行自身定位并构建稠密的3-D地图。
[19]Engel J, Sturm J, Cremers D. Semi-dense Visual Odometry for a Monocular Camera[C]// IEEE International Conference on Computer Vision. IEEE Computer Society, 2013:1449-1456. (引:125)
文献19对当前图像构建半稠密inverse深度地图,并使用稠密图像配准(dense image alignment)法计算相机位姿。构建半稠密地图即估计图像中梯度较大的所有像素的深度值,该深度值被表示为高斯分布,且当新的图像到来时,该深度值被更新。
[20]Newcombe R A, Lovegrove S J, Davison A J. DTAM: Dense tracking and mapping in real-time[C]// IEEE International Conference on Computer Vision. IEEE, 2012:2320-2327. (引:545)
文献20对每个像素点进行概率的深度测量,有效降低了位姿估计的不确定性。
[21]Forster C, Pizzoli M, Scaramuzza D. SVO: Fast semi-direct monocular visual odometry[C]// IEEE International Conference on Robotics and Automation. IEEE, 2014:15-22. (引:215)
提出了一种半直接的单目视觉里程计方法,该方法相比于直接法不是对整幅图像进行直接匹配从而获得相机位姿,而是通过在整幅图像中提取的图像块来进行位姿的获取,这样能够增强算法的鲁棒性。
[22]Engel J, Schöps T, Cremers D. LSD-SLAM: Large-Scale Direct Monocular SLAM[M]// Computer Vision – ECCV 2014. Springer International Publishing, 2014:834-849. (引:257)
提出了LSD-SLAM算法(large-scale direct SLAM),相比之前的直接的视觉里程计方法,该方法在估计高准确性的相机位姿的同时能够创建大规模的三维环境地图。
[23]Newcombe R A, Izadi S, Hilliges O, et al. KinectFusion: Real-time dense surface mapping and tracking[C]// IEEE International Symposium on Mixed and Augmented Reality. IEEE Computer Society, 2011:127-136.(引:1345)
提出了Kinect融合算法,该方法通过Kinect获取的深度图像对每帧图像中的每个像素进行最小化距离测量而获得相机位姿,且融合所有深度图像,从而获得全局地图信息。
[24]Gokhool T, Meilland M, Rives P, et al. A dense map building approach from spherical RGBD images[C]// International Conference on Computer Vision Theory and Applications. IEEE, 2014:656-663. (引:5)
使用图像像素点的光度信息和几何信息来构造误差函数,通过最小化误差函数而获得相机位姿,且地图问题被处理为位姿图表示。
[25]Kerl C, Sturm J, Cremers D. Dense visual SLAM for RGB-D cameras[C]// Ieee/rsj International Conference on Intelligent Robots and Systems. IEEE, 2014:2100-2106. (引:138)
是较好的直接RGB-D SLAM方法,该方法结合像素点的强度误差与深度误差作为误差函数,通过最小化代价函数,从而求出最优相机位姿,该过程由g2o实现,并提出了基于熵的关键帧提取及闭环检测方法,从而大大降低路径误差。
[26]Lowe D G. Distinctive Image Features from Scale-Invariant Keypoints[M]. Kluwer Academic Publishers, 2004. (引:3.6万)
[27]Bay H, Tuytelaars T, Gool L V. SURF: Speeded Up Robust Features[M]// Computer Vision-ECCV 2006. Springer Berlin Heidelberg, 2006:404-417.(引:9931)
[28]Rublee E, Rabaud V, Konolige K, et al. ORB: An efficient alternative to SIFT or SURF[C]// IEEE International Conference on Computer Vision. IEEE, 2012:2564-2571.(引:1892)
[29]Eade E, Drummond T. Edge landmarks in monocular SLAM[J]. Image & Vision Computing, 2009, 27(5):588-596. (引:126)
[30]Klein G, Murray D. Improving the Agility of Keyframe-Based SLAM[C]// European Conference on Computer Vision. Springer-Verlag, 2008:802-815. (引:290)
[31]Concha A, Civera J. Using superpixels in monocular SLAM[C]// IEEE International Conference on Robotics and Automation. IEEE, 2014:365-372. (引:19)
[32]Williams B, Cummins M, Neira J, et al. A comparison of loop closing techniques in monocular SLAM[J]. Robotics & Autonomous Systems, 2009, 57(12):1188-1197.(引:139)
文献32对闭环检测方法进行了比较,且得出图像对图像[33,34]的匹配性能由于地图对地图[35],图像对地图[36]的匹配方法。
[33]Mur-Artal R, Tard贸s J D. ORB-SLAM: Tracking and Mapping Recognizable Features[C]// The Workshop on Multi View Geometry in Robotics. 2014.
[34]]Cummins M J, Newman P M. Accelerated appearance-only SLAM[C] / /IEEE International Conference on Robotics and Automation,2008:1828- 1833.
[35]Burgard W, Brock O, Stachniss C. Mapping Large Loops with a Single Hand-Held Camera[C]// Robotics: Science & Systems Iii, June, Georgia Institute of Technology, Atlanta, Georgia, Usa. DBLP, 2007:297-304. (引:282)
[36]Cummins M, Newman P. FAB-MAP: Probabilistic Localization and Mapping in the Space of Appearance[J]. International Journal of Robotics Research, 2008, 27(6):647-665.(引:737)
[37]Nister D, Stewenius H. Scalable Recognition with a Vocabulary Tree[C]// IEEE Computer Society Conference on Computer Vision and Pattern Recognition. IEEE Computer Society, 2006:2161-2168. (引:3605)
[9]权美香, 朴松昊, 李国. 视觉SLAM综述[J]. 智能系统学报, 2016, 11(6):768-776.
QUAN Meixiang, PIAO Songhao, LI Guo. An overview of visual SLAM[J]. CAAI transactions on intelligent systems, 2016, 11(6): 768-776.
内容:基于特征的视觉SLAM方法、直接的SLAM方法、SIFT,SURF,ORB特征的检测与匹配、关键帧选择方法、对消除累积误差的闭环检测及地图优化的方法。
根据采用的视觉传感器的不同,可将视觉SLAM分为:单目视觉SLAM;立体视觉SLAM中的双目视觉SLAM;基于单目相机与红外传感器结合构成的RGB-D SLAM。
基于特征的视觉SLAM方法:指的是对输入的图像进行特征点检测及提取,并基于2-D或3-D的特征匹配计算相机的位姿及对环境进行建图。
早期的单目视觉SLAM的实现是借助于滤波器实现的。
1.利用扩展卡尔曼滤波器(extended Kalman filter, EKF)实现同时定位与地图创建,主要思想是使用状态向量来存储相机位姿及地图点的三维坐标,利用概率密度函数来表示不确定性,从观测模型和递归的计算,最终获得更新的状态向量
的均值和方差。
2.为了解决计算复杂度及线性化带来的不确定性问题,针对单目视觉的SLAM文献[6,7,8]引入了无迹卡尔曼滤波器(Unscented Kalman filter, UKF)或改进的UKF,虽然改善了不确定性的问题,但增加了计算复杂度。
3.文献[10,11]利用Rao-Blackwellized粒子滤波(Particle filter)实现单目视觉SLAM,此方法避免了线性化且对相机的快速运动有一定的弹力,但为了保证定位精度,则需要使用较多的粒子,从而大大提高了计算复杂度。
4.基于关键帧的单目视觉SLAM[12,13,14,15],其中最具有代表性的是parallel tracking and mapping(PTAM)[12],该论文提出了一个简单、有效的提取关键帧的方法,且将定位和创建地图分为两个独立的任务,并在两个线程上进行。文献[15]是在关键帧的基础上提出的一个单目视觉SLAM系统,将整个SLAM过程分为定位、创建地图、闭环3个线程,且对这3个任务使用相同的ORB特征,并引进本质图的概念来加速闭环校正的过程。
5.微软推出的Kinect相机能够同时获取图像信息和深度信息,从而简化了三维重建过程,使得基于RGB-D SLAM得到了迅速发展。
直接的SLAM方法:指的是直接对像素点的强度进行操作,避免了特征点的提取,该方法能够使用图像的所有信息[18,19,20,21,22,23,24,25]。
视觉SLAM的主要标志性成果:
看论文
SLAM的主要研究实验室:
1.苏黎世联邦理工学院的Autonomous System Lab,该实验室在tango项目上与谷歌合作,负责视觉惯导的里程计,基于视觉的定位和深度重建算法。
2.明尼苏达大学的Multiple Autonomous Robotic Systems Laboratory,主要研究四轴飞行器导航,合作建图,基于地图的定位,半稠密地图创建等。
3.慕尼黑理工大学的The Computer Vision Group,主要研究基于图像的3-D重建,机器人视觉,视觉SLAM等。
SLAM的关键性问题:
1.特征检测与匹配
目前使用最多的是点特征:SIFT(Scale invariant feature transform)[26]特征,SURF(Speeded up robust features)[27]特征和ORB(oriented fast and rotated BRIEF)[28]特征。
SIFT特征具有可辨识性,由于其描述符用高维向量(128维)表示,且具有旋转不变性、尺度不变性、放射不变性,对噪声和光照变化也有鲁棒性,在视觉SLAM使用了SIFT特征,但是由于SIFT特征的向量维数太高,导致时间复杂度高。
SURF特征具有尺度不变性、旋转不变性,且相对于SIFT特征的算法速度提高了3到7倍。对两幅图像的SIFT和SURF特征进行匹配时通常是计算两个特征向量之间的欧氏距离,并以此作为特征特征点的相似性判断度量。
ORB特征是FAST特征检测算子与BRIEF描述符的结合,并在其基础上做了改进。ORB特征最大的优点是计算速度快,是SIFT的100倍,SURF的10倍,其原因是FAST特征检测速度就很快,再加上BRIEF描述符是二进制串,大大缩减了匹配速度,并且具有旋转不变性但不具有尺度不变性。ORB特征匹配是以BRIEF二进制描述符的汉明距离为相似性度量的。
但对于包含大量直线和曲线的环境下,使用点特征环境中的很多信息会被丢失,所以提出了基于边特征的视觉SLAM[29,30]和基于区域特征的视觉SLAM[31]。
2.关键帧的选择
帧对帧的对准方法会造成大的累积漂浮,由于位姿估计过程中总会产生误差。为了减少帧对帧的对准方法带来的误差,基于关键帧的SLAM[12-16,25,]方法被提出。
文献[10,13]里当满足一下全部条件时该帧作为关键帧插入到地图里:从上一个关键帧经过了n个帧;当前帧至少能看到n个地图点,位姿估计准确性较高。
3.闭环检测(loop closing)方法
闭环检测及位置识别,判断当前位置是否是以前已访问过的环境区域。三维重建过程中必然会产生误差累积,实现闭环是消除的一种手段。在位置识别算法中,视觉是主要的传感器。文献32对闭环检测方法进行了比较,且得出图像对图像[33,34]的匹配性能由于地图对地图[35],图像对地图[36]的匹配方法。
图像对图像的匹配方法中,词袋(bag of words)方法由于其有效性的到了广泛应用。词袋指的是使用视觉词典树(visual vocabulary tree)将一幅图像的内容转换为数字向量的技术。对训练图像进行特征提取,并将其特征描述符空间通过K中心点聚类(K medians clustering)方法离散化为个簇,由此,词典树的第一节点层被创建。下面的层通过对每个簇重复执行这个操作而获得,直到共获得层。最终获得W个叶子节点,即视觉词汇。每层到每层的K中心聚类过程如图所示[36]。
4.地图优化:
闭环检测成功后,往地图里添加闭环约束,执行闭环校正。闭环问题可以描述为大规模的光束平差法(bundle adjustment)问题,即对相机位姿及所有的地图点3D坐标进行优化,但是该优化算法复杂度太高,从而很难实现实时。
一种可执行方法为通过位姿图优化(pose graph optimization)方法来对闭环进行优化,顶点为相机位姿,边表示位姿之间相对变换的图称为位姿图,位姿图优化即将闭环误差沿着图进行分配,即均匀分配到图上的所有位姿上。图优化通常由图优化框架g2o(general graph optimization)[38]里的LM(levenberg-marquardt)算法实现。
[38]Kümmerle R, Grisetti G, Strasdat H, et al. G2o: A general framework for graph optimization[C]// IEEE International Conference on Robotics and Automation. IEEE, 2011:e43478.
5.视觉SLAM主要发展趋势及研究热点
5.1 多传感器融合
相机能够捕捉场景的丰富细节,而惯性测量单元(inertial measurement unit, IMU)有高的帧率且相对小的能够获得准确的短时间估计,这两个传感器能够相互互补,从而一起使用能够获得更好的结果。
最初的视觉与IMU结合的位姿估计是用滤波方法解决的,用IMU的测量值作为预测值,视觉的测量值用于更新。
许多结果都已证明在准确性上基于优化的视觉SLAM优于基于滤波的SLAM方法。
5.2 SLAM与深度学习结合
随着深度学习在计算机视觉领域的大成功,大家对深度学习在机器人领域的应用有很大的兴趣。SLAM是一个大系统,里面有很多子模块,例如闭环检测,立体匹配等,都可通过深度学习的使用来获得更优的结果。
1.基于深度学习的立体匹配方法——卷积神经网络
2.整合全局敏感散列法和新的语义搜寻空间划分的优化技术——卷积神经
3.卷积神经网络学习视觉里程计的最佳视觉特征和最优的估计器
4.重定位系统——贝叶斯卷积神经网络
6.视觉SLAM的优缺点
6.1单目视觉SLAM的优缺点
单目相机应用灵活、简单、价格低。但是,单目视觉SLAM在每个时刻只能获取一张图像,且只能依靠获得的图像数据计算环境物体的方向信息,无法直接获得可靠的深度信息,从而初始地图创建及特征点的深度恢复都比较困难。此外,尺度不确定性是单目SLAM的主要特点,它是主要的误差源之一,但是正是尺度不确定性才使得单目SLAM能够在大尺度和小尺度环境之间进行自由转换。
6.2 双目视觉SLAM的优缺点
双目视觉SLAM利用外极线几何约束的原理去匹配左右两个相机的特征,从而能够在当前帧速率的条件下直接提取完整的特征数据,因而应用比较广泛,它直接解决了系统地图特征的初始化问题。但是系统设计比较复杂,系统成本比较高,且它的视角范围受到一定限制,不能够获取远处的场景,从而只能在一定的尺度范围内进行可靠的测量,从而缺乏灵活性。
6.3 RGBD SLAM的优缺点
深度相机在获得彩色图像的同时获得深度图像,从而方便获得深度信息,且能够获得稠密的地图,但是成本高,体积大,有效探测距离太短,从而可应用环境很有限。
[39]王希彬, 赵国荣, 潘爽. 无人机视觉同时定位与地图创建技术综述[C]// 中国自动化学会控制理论专业委员会C卷. 2011.
对无人机视觉SLAM当前面临的挑战做了详述,建立了状态方程和测量方程,并对视觉SLAM的地标初始化技术进行了详细归纳,总结了EKF、SEIF和FASTSLAM三种滤波方法在SLAM中的应用研究状况,