You are on page 1of 6

视觉 SLAM 技术综述

502022230018 潘禹龙

摘 要

SLAM(simultaneous localization and mapping)技术,即时定位与地图重建技术,指的是搭


载特定传感器的主体,在没有环境先验信息的情况下,能做到于运动过程中建立环境的模
型,并同时估计自己的运动的一项技术。搭载特定传感器的机器人在运动过程中自主建立环
境模型并计算自身位姿,这样就能够大幅提高移动机器人的自主导航能力,以及对不同应用
环境的适应性,并有助于动态路径规划、实时避障的实现。按照所使用的传感器不同,可分
为激光 SLAM 技术以及视觉 SLAM 技术。本文主要着眼于视觉 SLAM 技术,首先,会阐述
SLAM 技术的基本原理。然后,会重点对几种主流的 SLAM 技术的研究发展历史进行详细
介绍。最后,本文将通过 SLAM 领域的最新文献分析视觉 SLAM 技术的研究现状与前沿算
法。

关键词: SLAM,视觉里程计,闭环检测

1 引言

机器人在缺少环境的先验信息的情况下,仅基于其自身的传感器构建实时地图和定位具有
重要意义。这个问题最初在 1986 年的 IEEE Robotics and Automation Conference 上被提出,并被
命名为 SLAM。SLAM 是机器人领域的关键问题,也是大量相关应用的基石,例如自动驾驶、无
人机、智能物流、智能服务机器人、增强现实、外太空探索等。机器人在所处环境中的位置以及
对所处环境的理解是后续相关决策(例如路径规划、避障、任务相关操作等)的基础,越高层次
的任务对于环境的理解能力要求越高。
SLAM 根据自身所使用的传感器类型的不同,可以分为激光 SLAM 和视觉 SLAM 两种。激
光 SLAM 采用激光雷达作为传感器,具有精度高、速度快、响应快的优点,其缺点是体积大、价
格昂贵以及信息单一。而视觉 SLAM 采用摄像头作为传感器,成本更低、数据信息更为丰富。
视觉 SLAM 根据传感器与工作模式的不同可进一步分类为单目 SLAM、双目 SLAM 和 RGB-
D SLAM。单目视觉 SLAM 基于单目相机完成,因此具有结构简单,成本低的优点。当单目相
机与物体之间产生相对运动时,距离不同的物体在图像序列中产生的位移也不同,依据物体在
图像中的视差就能判断相机距离不同物体的远近关系,但是单目视觉 SLAM 无法计算物体距离
相机的绝对深度,具有尺度不确定性的问题。双目视觉 SLAM 通过两个相机对同一场景进行拍
摄,两相机间距为基线,通过像素在两成像平面的视差就能计算得到物点到相机的距离,双目
视觉 SLAM 的有更高的精度和更好的鲁棒性,能够适应复杂的室内外环境,但计算量太大,实
时性较差。RGB-D SLAM 使用激光传感器,利用红外结构光原理或飞行时间法(Time of Flight,
,来测量相机到物体的距离,虽然不需要像双目视觉 SLAM 一样进行大量计算,但是成本
TOF)
较高、且测量范围小、噪声大、易受外界环境因素影响。

1
图 1: 传统视觉 SLAM 框架结构

传统的视觉 SLAM 系统的框架结构如图1所示。


视觉 SLAM 一般由传感器(获得图像帧)
,前端(视觉里程计估计相机位姿)、后端优化、回
环检测和建图五个模块组成。首先通过传感器拍摄得到图像,并对获得的图像进行预处理送到
前端的视觉里程计。前端的视觉里程计通过提取相邻两帧图像的特征,使用特征匹配的方法或
者最小化像素光度误差的直接法来估计相机的位姿与运动。这过程中会产生噪声以及累计轨迹
飘移问题。后端优化部分则是通过图像帧间的对应关系创建地图并对地图和相机姿态进行优化,
提高建图精度以及全局一致性。回环检测部分检测相机是否回到先前位置。如果形成闭环,则对
闭环之间的所有路标点和位姿优化,可以有效减少累计误差。最终便可得到相机的完整运动轨
迹以及环境的地图。随着计算机与机器学习技术的发展与进步,视觉 SLAM 技术不断突破,在
越来越多的领域有了更多的应用。

2 发展历程

2.1 传统视觉 SLAM

早期的 SLAM 主要通过提取图像的特征点,进行特征点匹配以及滤波的方法来估计并优化


相机位姿。Davison 等人基于扩展卡尔曼滤波器于 2007 年最先提出了 MonoSLAM[2],这是第一
个可实时运行的视觉 SLAM 系统。由于连续图像帧中包含大量冗余信息,Klein 等人在 2007 年
提出了 PTAM[7],只选取具有代表性的关键帧来进行特征提取,降低了计算的复杂度,并采用
Tracking、Mapping 的前后端双线程架构,后端采用 BA(bundle adjustment)取代滤波法进行优
化。Mur-Artal 等在 PTAM 基础上于 2015 年提出了 ORB-SLAM[11] 系统,该系统共包含三个线
程,即追踪(Tracking)
、地图构建(Mapping)以及闭环(Loop)
。ORB-SLAM 通过提取图像中
的 ORB 特征来估计相机位姿,采用共视图优化相机位姿,在闭环线程中利用词袋模型检测闭环
进行全局 BA 优化。Mur-Artal 还进一步提出了 ORB-SLAM2 和 ORB-SLAM3 系统,增加了对双
目、RGB-D 相机的支持,是目前应用最为广泛的 SLAM 系统之一。
基于特征提取的视觉 SLAM 系统在特征提取与匹配时需要消耗大量的计算资源不利于系统
的实时性,鉴于此,基于直接法的视觉 SLAM 系统发展起来。直接法基于像素灰度不变性假设,
通过最小化光度误差估计相机运动,无需提取特征。2011 年 Newcombe 等人提出了基于直接稠
密法的单目视觉 SLAM 系统 DTAM[12]。系统直接对关键帧中的每一个像素的信息进行分析计
算,通过最小化全局空间规范能量函数实时重建三维模型,并通过最小化光度误差法来优化相
机运动。2014 年 Jakob Engel 等人提出了 LSD-SLAM[4]。LSD-SLAM 使用方差归一化后的光度

2
误差对图像的梯度进行跟踪,通过对当前帧和关键帧进行匹配得到当前帧的位姿并更新关键帧,
最后通过闭环检测进行位姿和地图的优化。2014 年 Forster 等提出了 SVO[5],结合了特征点法
和直接法,是稀疏直接法视觉里程计。2016 年 Jakob Engel 等提出了 DSO[3],DSO 通过计算点
在每一帧中的投影残差值估计相机运动,并通过光度标定,降低光照对跟踪的影响,有效的提
高了系统的鲁棒性。

2.2 结合深度学习的视觉 SLAM

随着计算机硬件能力的提升以及相关理论的发展,以卷积神经网络为代表的深度学习技术
发展起来,并应用到众多计算机视觉的研究领域中,取得了突破性的进展。近年来,涌现出了
许多深度神经网络与 SLAM 结合的工作。相较于传统算法,将深度学习技术与 SLAM 融合的深
度学习 SLAM 系统具有更好的鲁棒性和更强的环境适应性。深度学习 SLAM 系统主要可分为两
类:
1. 端到端方式:直接使用深度神经网络估计相机的位姿变换,网络模型是一个从图像序列
到相机位姿变换的直接映射。端到端方式可细分为有监督方式和无监督方式。
有监督方式使用标记数据集训练深度神经网络模型,并用模型直接估计相机的运动变换。模
型的输入是两帧图像,输出是相机的位姿变化以及深度图。2015 年,Konda 等 [8] 最早通过卷积
神经网络以图像序列作为输入来预测相机速度和位姿的变化,是将深度学习与 SLAM 结合的最
早研究成果之一。Wang 等提出 DeepVO[16],该方法将卷积神经网络和递归神经网络相结合,不
仅能通过 CNN 自动学习图像特征,而且能够利用 RNN 隐式地学习图像间的内在联系及动力学
关系,是目前效果最好且应用最为广泛的深度学习 SLAM 算法。
无监督方式则利用两帧图像深度图与位姿之间的约束关系构建误差函数从而估计位姿变换
以及深度图。2017 年,Godard 等 [6] 最先在 CVPR 会议上提出了采用无监督学习的方式来进行
单一图像的深度估计的方法。为了解决相机参数未知的问题,Zhou 等 [17] 提出了一种改进算法。
通过深度 CNN 和位姿 CNN 两个网络分别生成深度图和图像间的位姿,根据深度图与位姿将原
图像投射到目标图像上,最后通过比较真实目标图像与投射产生的目标图像的重建误差来训练
网络。该学习方式在网络结构设计、初始值设定和训练方法上都采用了较为合适的策略,是目
前效果最好的无监督学习方法之一。2018 年,Li 等提出一种基于无监督学习方法的单目视觉里
程计估计网络 UnDeepVO[9],系统由位姿估计器和深度估计器两部分构成,与大多数单目无监
督的学习方案相比,该方法能够真实地恢复相机位姿的尺度。
2. 结合深度学习的语义 SLAM 系统:语义 SLAM 将语义信息与视觉信息融合,相较于传统
的图像特征,语义特征对于环境变化有较好的鲁棒性。而深度学习的主要作用则是识别图像中
的语义信息。2017 年,Bowman 等 [1] 引入了期望最大值方法来动态估计物体与观测的匹配关
系。作者把语义 SLAM 转换成概率问题,利用概率模型计算出来的物体中心在图像上重投影时
应该接近检测框的中心这一思想来优化重投影误差。Lianos 等 [10] 提出视觉语义里程计(VSO)
方法,使用距离变换将分割结果的边缘作为约束,同时利用投影误差构造约束条件,从而实现
中期连续点跟踪。

3
3 最新研究

3.1 DROID-SLAM

Teed 等在 2021 年的 NeurlPS 上提出了具有端到端的可微分架构的 DROID-SLAM[15]。


DROID-
SLAM 结合了传统方法和深度神经网络,通过一个 DBA(Dense Bundle Adjustment) 层来循环迭代
相机位姿与像素深度值。它在基于光流法的 RAFT 的基础上进行了两点创新:
1.RAFT 对光流进行迭代更新,而 DROID-SLAM 则直接对相机的位姿以及深度图进行更新。
RAFT 只能对输入的两帧图像进行处理,而该算法的迭代则适用于任意数量的帧,从而能够对所
有相机姿势和深度图进行联合全局优化,这能够最大限度地减少长轨迹和闭环的漂移。
2. 其次,DROID-SLAM 中相机姿态和深度图的每次更新都是由可微的密集束调整 (DBA) 层
生成,该层计算相机姿态和像素深度的高斯牛顿更新,使其最大限度地提高其与当前光流估计的
兼容性。该 DBA 层利用几何约束,提高准确性和鲁棒性,并使单目系统能够处理立体或 RGB-D
输入,而无需重新训练。
DROID-SLAM 包含两个异步运行的线程。前端线程接收图像、提取特征、选择关键帧并执
行局部 BA 优化。后端线程在所有关键帧上执行全局 BA 优化。系统具有很高的准确度以及鲁棒
性,在 TartanAir SLAM 比赛的单目轨迹追踪上的错误率相较于此前的最好成绩减少了 62%,在
立体视觉轨迹追踪上减少了 60%。

3.2 NeRF-SLAM

Rosinol 等人在 2022 年的 CVPR 上提出了 NeRF-SLAM[13],NeRF-SLAM 结合了稠密单目视


觉 SLAM 与神经辐射场 (NeRF),能实时地利用单目相机所获得的图像序列构建神经辐射场。其
核心思想是,使用单目稠密 SLAM 估计密集深度图和相机姿势,以及深度和姿势的不确定性,并
使用这些信息训练具有密集深度损失神经辐射场 (密集深度损失的权重为深度的边际协方差)。
NeRF-SLAM 结合了单目稠密 SLAM 和神经辐射场的优点,并且同样由一个 mapping 和一个
tracking 线程组成。NeRF-SLAM 使用使用 Droid-SLAM 作为前端跟踪线程,通过最小化关键帧的
BA 重投影误差估计稠密深度图以及相机位姿,同时得到深度和位姿的不确定度估计。mapping
线程使用前端的输出信息作为监督,训练一个辐射场,其损失函数是颜色误差和带权重的深度
误差,权重值由先前的不确定度得到。

3.3 IMAP

Sucar 等在 2021 年的 ICCV 上提出了 IMAP[14],一个基于隐式神经网络场景表示的密集实


时 SLAM 系统,能联合优化完整 3D 地图和相机姿态。IMAP 首次在以手持 RGB-D 相机为传感
器的实时 SLAM 系统中使用 MLP 作为唯一的场景表示。并且 IMAP 在实际操作过程中训练神
经网络,不需要任何的预训练数据。
IMAP 系统采用了关键帧结构和类似于 PTAM 的多线程结构。在 tracking 线程中,IMAP 将
实时的 RGB-D 图像流与 MLP 场景图所重建的渲染深度和颜色对齐, 优化当前帧相对于场景地
图的位姿。同时,在 mappng 线程中选择一组关键帧,并使用这些关键帧不断训练和改进 MLP,

4
同时共同优化关键帧位姿。除此之外,IMAP 对信息量大的 RGB-D 像素进行动态采样,以减少
几何不确定性,提升系统运行的实时速度。

3.4 NICE-SLAM

ZHU 等在 2022 年 CVPR 上提出了 NICE-SLAM[18],NICE-SLAM 是在 IMAP 的基础上提出


的一种结合了神经隐式表达 (neural implicit representations) 以及多层次场景表达 (hiearchical scene
representations) 的稠密的 RGB-D 的 SLAM 系统。不同于 IMAP 使用单个多层感知机来表示整个
场景,NICE-SLAM 使用一个分层的、基于网格的神经隐式编码器来表示场景,并且允许局部更
新。相较于 IMAP,NICE-SLAM 更适合在大场景中使用。
NICE-SLAM 以 RGB-D 图像流作为输入,并输出相机位姿以及用多层特征网格的形式表达
的场景。一方面,NICE-SLAM 通过给定的场景表示和相机姿势重建深度和颜色图像。另一方面,
NICE-SLAM 通过反向传播图像和深度重建损失来优化关键帧的相机姿势与场景表示。
NICE-SLAM 采用由粗到细的分层场景表达,在不同分辨率尺度的特征网格下应用预训练的
MLP,每个 MLP 更加小型、轻量。并且,由于场景表达依照尺度做了分层,NICE-SLAM 允许
局部更新,避免了遗忘问题,计算收敛也更加迅速,处理大型场景的性能得到了改善。

4 总结

随着过去几年深度学习的飞速发展,视觉 SLAM 所面对的种种困难似乎都有了解决思路,


传统的功能模块中也都加入了深度学习的影子,无论是系统质量还是效率都得到了较大提升。
然而,视觉 SLAM 的研究还没有到达完善的地步,还需要继续提高系统的准确性和鲁棒性来适
应更多、更复杂的应用场景。到目前为止,深度学习与 SLAM 的结合已经在视觉里程计、场景
识别与全局优化等各种任务中取得了显著的成果。同时,由于深度神经网络具有强大的非线性
拟合能力,可以任意逼近人工建模难以模拟的非线性函数,因此在实际应用中鲁棒性更佳。此
外,语义信息与传统视觉 SLAM 算法的集成有助于提高对图像特征的理解,对构建高精度的语
义图也产生了重要影响。基于深度学习的 SLAM 技术的快速发展为移动机器人向实用化、系列
化、智能化发展提供了助力。未来,视觉 SLAM 将会在无人驾驶、智能机器人等领域得到快速
发展与广泛应用。

参考文献
[1] Sean L Bowman et al. “Probabilistic data association for semantic slam”. In: 2017 IEEE international conference on
robotics and automation (ICRA). IEEE. 2017, pp. 1722–1729.

[2] Andrew J Davison et al. “MonoSLAM: Real-time single camera SLAM”. In: IEEE transactions on pattern analysis and
machine intelligence 29.6 (2007), pp. 1052–1067.

[3] Jakob Engel, Vladlen Koltun, and Daniel Cremers. “Direct sparse odometry”. In: IEEE transactions on pattern analysis
and machine intelligence 40.3 (2017), pp. 611–625.

[4] Jakob Engel, Thomas Schöps, and Daniel Cremers. “LSD-SLAM: Large-scale direct monocular SLAM”. In: European
conference on computer vision. Springer. 2014, pp. 834–849.

5
[5] Christian Forster, Matia Pizzoli, and Davide Scaramuzza. “SVO: Fast semi-direct monocular visual odometry”. In: 2014
IEEE international conference on robotics and automation (ICRA). IEEE. 2014, pp. 15–22.

[6] Clément Godard, Oisin Mac Aodha, and Gabriel J Brostow. “Unsupervised monocular depth estimation with left-right
consistency”. In: Proceedings of the IEEE conference on computer vision and pattern recognition. 2017, pp. 270–279.

[7] Georg Klein and David Murray. “Parallel tracking and mapping for small AR workspaces”. In: 2007 6th IEEE and ACM
international symposium on mixed and augmented reality. IEEE. 2007, pp. 225–234.

[8] Kishore Reddy Konda and Roland Memisevic. “Learning visual odometry with a convolutional network.” In: VISAPP
(1) 2015 (2015), pp. 486–490.

[9] Ruihao Li et al. “Undeepvo: Monocular visual odometry through unsupervised deep learning”. In: 2018 IEEE interna-
tional conference on robotics and automation (ICRA). IEEE. 2018, pp. 7286–7291.

[10] Konstantinos-Nektarios Lianos et al. “Vso: Visual semantic odometry”. In: Proceedings of the European conference on
computer vision (ECCV). 2018, pp. 234–250.

[11] Raul Mur-Artal, Jose Maria Martinez Montiel, and Juan D Tardos. “ORB-SLAM: a versatile and accurate monocular
SLAM system”. In: IEEE transactions on robotics 31.5 (2015), pp. 1147–1163.

[12] Richard A Newcombe, Steven J Lovegrove, and Andrew J Davison. “DTAM: Dense tracking and mapping in real-time”.
In: 2011 international conference on computer vision. IEEE. 2011, pp. 2320–2327.

[13] Antoni Rosinol, John J Leonard, and Luca Carlone. “Nerf-slam: Real-time dense monocular slam with neural radiance
fields”. In: arXiv preprint arXiv:2210.13641 (2022).

[14] Edgar Sucar et al. “iMAP: Implicit mapping and positioning in real-time”. In: Proceedings of the IEEE/CVF Interna-
tional Conference on Computer Vision. 2021, pp. 6229–6238.

[15] Zachary Teed and Jia Deng. “Droid-slam: Deep visual slam for monocular, stereo, and rgb-d cameras”. In: Advances in
neural information processing systems 34 (2021), pp. 16558–16569.

[16] Sen Wang et al. “Deepvo: Towards end-to-end visual odometry with deep recurrent convolutional neural networks”. In:
2017 IEEE international conference on robotics and automation (ICRA). IEEE. 2017, pp. 2043–2050.

[17] Tinghui Zhou et al. “Unsupervised learning of depth and ego-motion from video”. In: Proceedings of the IEEE confer-
ence on computer vision and pattern recognition. 2017, pp. 1851–1858.

[18] Zihan Zhu et al. “Nice-slam: Neural implicit scalable encoding for slam”. In: Proceedings of the IEEE/CVF Conference
on Computer Vision and Pattern Recognition. 2022, pp. 12786–12796.

You might also like