第15卷第5期 智能系统学报 Vol.15 No.5 2020年9月 CAAI Transactions on Intelligent Systems Sep.2020 D0:10.11992/tis.202004023 网络出版地址:https:/ns.cnki.net/kcms/detail/23.1538.TP.20200904.1708.002.html 视觉SLAM研究进展 王霞,左一凡 (北京理工大学光电成像技术与系统教育部重点实验室,北京100081) 摘要:视觉SLAM是指相机作为传感器进行自身定位同步创建环境地图。SLAM在机器人、无人机和无人车 导航中具有重要作用,定位精度会影响避障精度,地图构建质量直接影响后续路径规划等算法的性能,是智能 移动体应用的核心算法。本文介绍主流的视觉SLAM系统架构,包括几种最常见的视觉传感器,以及前端的功 能和基于优化的后端。并根据视觉SLAM系统的度量地图的种类不同将视觉SLAM分为稀疏视觉SLAM、半 稠密视觉SLAM和稠密视觉SLAM3种,分别介绍其标志性成果和研究进展,提出视觉SLAM目前存在的问题 以及未来可能的发展。 关键词:视觉同步定位与创建地图:稀疏视觉SLAM:半稠密视觉SLAM:稠密视觉SLAM:视觉传感器:优化; 视觉SLAM系统;度量地图 中图分类号:TP391文献标志码:A文章编号:1673-4785(2020)05-0825-10 中文引用格式:王霞,左一凡.视觉SLAM研究进展.智能系统学报,2020,15(⑤):825-834 英文引用格式:WANG Xia,ZUO Yifan.Advances in visual SLAM researchJ.CAAI transactions on intelligent systems,2020, 15(5:825-834. Advances in visual SLAM research WANG Xia,ZUO Yifan (Key Laboratory of Photo-electronic Imaging Technology and System,Ministry of Education of China,Beijing Institute of Techno- logy,Beijing 100081,China) Abstract:Visual SLAM,i.e.,simultaneous localization and mapping with cameras,plays an important role in the navig- ation of robots,unmanned aerial vehicles,and unmanned vehicles.As the location accuracy affects the obstacle avoid- ance accuracy and the mapping quality directly affects the path planning performance,the visual SLAM algorithm is the core aspect of intelligent mobile applications.This paper introduces the architecture of the mainstream visual SLAM system,including several common visual sensors,the function of the front end,and the optimized back end.According to the type of the metric map model created by the visual SLAM system,visual SLAM can be classified into three types: sparse visual SLAM,semi-dense visual SLAM,and dense visual SLAM.The landmark achievements and research pro- gress of visual SLAM are reviewed in this paper,and its current problems and possible future developments are discussed. Keywords:visual simultaneous localization and mapping;sparse visual SLAM:SemiDense visual SLAM;dense visual SLAM:visual sensors;optimization;visual SLAM system;metric map 同步地图构建和定位(simultaneous localiza-机器人要想精确移动,必须有精确的环境地图: tion and mapping,SLAM)包含定位和建图两方面,然而,为了建立一个精确的地图,必须知道移动 是移动机器人领域的一个重要的开放问题:移动 机器人精确的位置山,所以,这是一个相辅相成的 过程。1990年,有学者首次提出利用拓展卡尔曼 滤波器对机器人姿态的后验分布进行增量估计。 收稿日期:2020-04-23.网络出版日期:2020-09-08. 基金项目:装备预先研究项目(41417070401). 事实上,在未知的位置、未知的环境中,机器人通 通信作者:左一凡.E-mail:zuoyifan bit(@outlook.com 过在运动过程中反复观察环境特征确定自身位
DOI: 10.11992/tis.202004023 网络出版地址: https://kns.cnki.net/kcms/detail/23.1538.TP.20200904.1708.002.html 视觉 SLAM 研究进展 王霞,左一凡 (北京理工大学 光电成像技术与系统教育部重点实验室,北京 100081) 摘 要:视觉 SLAM 是指相机作为传感器进行自身定位同步创建环境地图。SLAM 在机器人、无人机和无人车 导航中具有重要作用,定位精度会影响避障精度,地图构建质量直接影响后续路径规划等算法的性能,是智能 移动体应用的核心算法。本文介绍主流的视觉 SLAM 系统架构,包括几种最常见的视觉传感器,以及前端的功 能和基于优化的后端。并根据视觉 SLAM 系统的度量地图的种类不同将视觉 SLAM 分为稀疏视觉 SLAM、半 稠密视觉 SLAM 和稠密视觉 SLAM 3 种,分别介绍其标志性成果和研究进展,提出视觉 SLAM 目前存在的问题 以及未来可能的发展。 关键词:视觉同步定位与创建地图;稀疏视觉 SLAM;半稠密视觉 SLAM;稠密视觉 SLAM;视觉传感器;优化; 视觉 SLAM 系统;度量地图 中图分类号:TP391 文献标志码:A 文章编号:1673−4785(2020)05−0825−10 中文引用格式:王霞, 左一凡. 视觉 SLAM 研究进展 [J]. 智能系统学报, 2020, 15(5): 825–834. 英文引用格式:WANG Xia, ZUO Yifan. Advances in visual SLAM research[J]. CAAI transactions on intelligent systems, 2020, 15(5): 825–834. Advances in visual SLAM research WANG Xia,ZUO Yifan (Key Laboratory of Photo-electronic Imaging Technology and System, Ministry of Education of China, Beijing Institute of Technology, Beijing 100081, China) Abstract: Visual SLAM, i.e., simultaneous localization and mapping with cameras, plays an important role in the navigation of robots, unmanned aerial vehicles, and unmanned vehicles. As the location accuracy affects the obstacle avoidance accuracy and the mapping quality directly affects the path planning performance, the visual SLAM algorithm is the core aspect of intelligent mobile applications. This paper introduces the architecture of the mainstream visual SLAM system, including several common visual sensors, the function of the front end, and the optimized back end. According to the type of the metric map model created by the visual SLAM system, visual SLAM can be classified into three types: sparse visual SLAM, semi-dense visual SLAM, and dense visual SLAM. The landmark achievements and research progress of visual SLAM are reviewed in this paper, and its current problems and possible future developments are discussed. Keywords: visual simultaneous localization and mapping; sparse visual SLAM; SemiDense visual SLAM; dense visual SLAM; visual sensors; optimization; visual SLAM system; metric map 同步地图构建和定位 (simultaneous localization and mapping, SLAM) 包含定位和建图两方面, 是移动机器人领域的一个重要的开放问题:移动 机器人要想精确移动,必须有精确的环境地图; 然而,为了建立一个精确的地图,必须知道移动 机器人精确的位置[1] ,所以,这是一个相辅相成的 过程。1990 年,有学者首次提出利用拓展卡尔曼 滤波器对机器人姿态的后验分布进行增量估计[2]。 事实上,在未知的位置、未知的环境中,机器人通 过在运动过程中反复观察环境特征确定自身位 收稿日期:2020−04−23. 网络出版日期:2020−09−08. 基金项目:装备预先研究项目 (41417070401). 通信作者:左一凡. E-mail:zuoyifan_bit@outlook.com. 第 15 卷第 5 期 智 能 系 统 学 报 Vol.15 No.5 2020 年 9 月 CAAI Transactions on Intelligent Systems Sep. 2020
·826· 智能系统学报 第15卷 置,然后根据自己的位置构建一个增量的周边环 些SLAM系统包含重定位模块,作为更稳定和准 境地图,从而达到同时定位和地图构建的目的。 确的视觉SLAM附加模块。本文主要介绍几种 随着中央处理器(central processing unit,.CPU)和 重要的视觉传感器,并根据数据的稀疏程度分类 图形处理器(graphic processing unit,,GPU的发展, 综述视觉SLAM的现阶段成果。 图形处理能力越来越强大。相机传感器变得更价 廉、更轻便,同时具有更多功能。在过去的十几 1视觉SLAM系统 年中,视觉SLAM发展迅速。该系统可在微PC 视觉SLAM(visual SLAM,VSLAM)系统的架 和嵌入式设备上运行,甚至可在智能手机等移动 构包括两个主要部分:前端和后端。前端抓取传 设备上运行B-。视觉SLAM可使用单目相机、立 感器数据,并进行状态估计,后端对前端产生的 体相机等视觉传感器进行数据采集、前端视觉里 数据进行优化。后端可为前端提供反馈,并进行 程计、后端优化、回环检测和地图构建等1。有 回环检测。该体系结构如图1所示。 前端 后端 传感器数据 SLAM估计 特征提取 据关联 最大后验估计 短期关 往追踪 长期关联(回环检测) 图1典型的SLAM系统图 Fig.1 A typical SLAM system 1.1 视觉传感器 而是异步地测量每个像素的亮度变化)。事件相 大多数视觉传感器是基于相机,相机可以分为 机具有非常高的动态范围、高时间分辨率、低功 单目相机、立体相机、RGB-D相机和事件相机等四。 耗,并且不会出现运动模糊。因此,事件相机在 1.1.1单目相机 高速、高动态范围的情况下性能优于传统相机。 单目相机定位和建图具有和现实世界的真实 事件相机包含动态视觉传感器4、动线传感器阁 比例关系,但没有真实的深度信息和绝对尺度, 动态和主动像素视觉传感器和异步基于时间 这称为尺度模糊2。基于单目相机的SLAM必须 的图像传感器。 进行初始化来确定尺度,而且面临漂移问题,但 以上4种视觉传感器各有其优缺点,如表1 单目相机价格低廉、计算速度快,在SLAM领域 所示。 受到广泛应用。 1.1.2立体相机 表14种视觉传感器的优缺点 Table 1 Advantages and disadvantages of 4 kinds of visu- 立体相机是两个单目相机的组合,其中两个 al sensor 相机之间的距离是已知的,称之为基线。使用立 传感器类型 体相机,可以通过定标、较正、匹配和计算4个步 优点 缺点 骤获取深度信息,进而确定尺度信息,但这个过 成本低、结构 没有深度信息和 单目相机 程会消耗很大的计算资源。 简单、速度快 尺度信息 可通过基线 1.1.3RGB-D相机 立体相机 计算量巨大 RGB-D相机也称为深度相机,因为这种相机 估计深度 可估计像素 测量范围窄、 可以直接以像素形式输出深度信息。深度相机可 RGB-D相机 以通过立体视觉、结构光和飞行时间(time of flight,. 级深度信息 噪声大 高动态范围、高时间分 噪声大、特征点 TOF)技术来实现。结构光理论是指红外激光向 事件相机 辨率、低延时、低功耗 难以提取 物体表面发射具有结构特征的图案,红外相机收 集不同深度的表面图案的变化信息。TOF通过测 1.2 VSLAM前端 量激光飞行的时间计算距离。 在实际的机器人应用中,可能很难将传感器 1.1.4事件相机 的测量值直接写成传感器状态量的解析函数。例 事件相机不是以固定的速率捕获即时消息, 如,原始传感器数据是一个图像,那么可能很难
置,然后根据自己的位置构建一个增量的周边环 境地图,从而达到同时定位和地图构建的目的。 随着中央处理器 (central processing unit, CPU) 和 图形处理器 (graphic processing unit, GPU) 的发展, 图形处理能力越来越强大。相机传感器变得更价 廉、更轻便,同时具有更多功能。在过去的十几 年中,视觉 SLAM 发展迅速。该系统可在微 PC 和嵌入式设备上运行,甚至可在智能手机等移动 设备上运行[3-7]。视觉 SLAM 可使用单目相机、立 体相机等视觉传感器进行数据采集、前端视觉里 程计、后端优化、回环检测和地图构建等[8]。有 些 SLAM 系统包含重定位模块,作为更稳定和准 确的视觉 SLAM 附加模块[9]。本文主要介绍几种 重要的视觉传感器,并根据数据的稀疏程度分类 综述视觉 SLAM 的现阶段成果。 1 视觉 SLAM 系统 视觉 SLAM(visual SLAM, VSLAM) 系统的架 构包括两个主要部分:前端和后端。前端抓取传 感器数据,并进行状态估计,后端对前端产生的 数据进行优化。后端可为前端提供反馈,并进行 回环检测[10]。该体系结构如图 1 所示。 数据关联 短期关联(特征追踪) 长期关联(回环检测) 特征提取 前端 传感器数据 后端 最大后验估计 SLAM估计 图 1 典型的 SLAM 系统图 Fig. 1 A typical SLAM system 1.1 视觉传感器 大多数视觉传感器是基于相机,相机可以分为 单目相机、立体相机、RGB-D 相机和事件相机等[11]。 1.1.1 单目相机 单目相机定位和建图具有和现实世界的真实 比例关系,但没有真实的深度信息和绝对尺度, 这称为尺度模糊[12]。基于单目相机的 SLAM 必须 进行初始化来确定尺度,而且面临漂移问题,但 单目相机价格低廉、计算速度快,在 SLAM 领域 受到广泛应用。 1.1.2 立体相机 立体相机是两个单目相机的组合,其中两个 相机之间的距离是已知的,称之为基线。使用立 体相机,可以通过定标、较正、匹配和计算 4 个步 骤获取深度信息,进而确定尺度信息,但这个过 程会消耗很大的计算资源。 1.1.3 RGB-D 相机 RGB-D 相机也称为深度相机,因为这种相机 可以直接以像素形式输出深度信息。深度相机可 以通过立体视觉、结构光和飞行时间 (time of flight, TOF) 技术来实现。结构光理论是指红外激光向 物体表面发射具有结构特征的图案,红外相机收 集不同深度的表面图案的变化信息。TOF 通过测 量激光飞行的时间计算距离。 1.1.4 事件相机 事件相机不是以固定的速率捕获即时消息, 而是异步地测量每个像素的亮度变化[13]。事件相 机具有非常高的动态范围、高时间分辨率、低功 耗,并且不会出现运动模糊。因此,事件相机在 高速、高动态范围的情况下性能优于传统相机。 事件相机包含动态视觉传感器[14-17] 、动线传感器[18] 、 动态和主动像素视觉传感器[19] 和异步基于时间 的图像传感器[20]。 以上 4 种视觉传感器各有其优缺点,如表 1 所示。 表 1 4 种视觉传感器的优缺点 Table 1 Advantages and disadvantages of 4 kinds of visual sensor 传感器类型 优点 缺点 单目相机 成本低、结构 简单、速度快 没有深度信息和 尺度信息 立体相机 可通过基线 估计深度 计算量巨大 RGB-D相机 可估计像素 级深度信息 测量范围窄、 噪声大 事件相机 高动态范围、高时间分 辨率、低延时、低功耗 噪声大、特征点 难以提取 1.2 VSLAM 前端 在实际的机器人应用中,可能很难将传感器 的测量值直接写成传感器状态量的解析函数。例 如,原始传感器数据是一个图像,那么可能很难 ·826· 智 能 系 统 学 报 第 15 卷
第5期 王霞,等:视觉SLAM研究进展 ·827· 将每个像素的强度表示为SLAM状态的函数:这 模型,可以建立第k个因子与相应变量X的依赖 是由于无法设计一个足够普遍、但又易于处理的 关系。p(K)项和pX)项都称之为因子,通过节 函数来表示环境与传感器状态的关系;即使存在 点建立约束。因子图可直观表示约束,如图2展 这样一种普遍的表示,也很难写出一个将测量值 示了一个用因子图表示的简单的SLAM问题。 与传感器状态联系起来的解析函数。因此,在数 其中蓝色代表机器人位姿,绿色代表地标点坐 据进入SLAM后端之前,通常需要一个前端模块 标,红色为相机标定参数,黑色方块是因子,代表 提取传感器原始图像的相关特征。例如,在 变量间的约束。通过因子图的方式可以表示复杂 VSLAM中,前端提取特征点位置,后端可根据这 的多优化变量模型。 些特征点的位置进行优化处理。同时,前端模块 负责初始化,例如单目SLAM中的初始化,利用 多角度观测图像三角化将尺度信息固定。 前端数据关联模块包括短期数据关联和长期 数据关联,短期数据关联负责联系传感器数据的 帧间特征点及追踪特征点,常用的方法有特征匹 配和光流法等。长期关联是关联新的信息是否和 过去的所有信息有关联,即回环检测,常用的方 图2因子图表示的SLAM 法有词袋法和深度学习0。 Fig.2 SLAM as a factor graph 1.3基于优化的SLAM后端 假设测量噪声8是零均值的高斯噪声,其信 早期SLAM后端主要是基于滤波的方法,但 息矩阵表示为2,则式(2)中的似然可表示为 由于优化方法的精度明显优于滤波的方法而逐渐 成为主流。文献[21-22]综述了滤波的方法,本文 p(zlXz)o expl()l (3) 主要介绍基于优化的SLAM后端。 在SLAM问题中,需要估计的未知变量X包 其中,lelg=e2e,同理,假设先验可以写为 括机器人的位姿和路标点的物理坐标。给定观测 p(X)oc exp -2h(K)-a6,ho)为给定的函数,0 数据Z={a:k=1,2,…,m,观测方程可表示为未知 为先验均值,2为信息矩阵。因为最大后验相当 变量X的函数。例如4=h(X)+,其中XSX, 于最小后验的负对数,所以最大后验估计可写为 ()是已知的测量或观测函数,8是随机测量误 差。根据贝叶斯理论,通过X的测量值X估计最 X'=arg min-log(p(X) p(zlX))= 大后验概率p(XZ☑: (4) arg min〉h,(Xe)-zl喝 X=arg max p(XZ☑)= (1) arg max p(ZX)p(X) 式(4)是一个最小二乘问题,在SLAM问题 式中:p(ZX)是给定X的观测量Z的似然;p(X)称 中,()是一个非线性函数。求解相机位姿即求 为X的先验概率。先验概率包含X所有的先验信 解此最小二乘问题。通常使用Gauss-Newton法 息;在没有先验信息的情况下,先验概率为常量, 或者Levenberg-Marquardt法求解,得到优化变量X 在优化中不起作用,最大后验估计简化为似然估 2度量地图模型的VSLAM系统 计。不同于卡尔曼滤波的方法,最大后验概率估 计不需要区分运动模型和观测模型,这两个模型 度量地图是对环境结构的一种表示方法。选 都被视为因子整合到估计的过程中。 择合适的SLAM度量表示方法十分重要,会影响 假设测量值Z是独立的,即噪声不相关,将 很多研究领域,例如长时间导航、环境交互和人 式(1)因式分解为 机交互等领域。根据利用图像信息的方法不同, 可分为直接法和特征点法,直接法会产生半稠密 X'=arg max p(X) (X)= (2) 和稠密的结构,特征点法会产生稀疏的结构。本 文根据SLAM系统产生的不同稀疏程度结构的 arg max p(X)p(zalX) 特点,将VSLAM分为稀疏VSLAM、半稠密VSLAM 式(2)可以用因子图来解释,因子图是一种图 和稠密VSLAM
将每个像素的强度表示为 SLAM 状态的函数;这 是由于无法设计一个足够普遍、但又易于处理的 函数来表示环境与传感器状态的关系;即使存在 这样一种普遍的表示,也很难写出一个将测量值 与传感器状态联系起来的解析函数。因此,在数 据进入 SLAM 后端之前,通常需要一个前端模块 提取传感器原始图像的相关特征。例如, 在 VSLAM 中,前端提取特征点位置,后端可根据这 些特征点的位置进行优化处理。同时,前端模块 负责初始化,例如单目 SLAM 中的初始化,利用 多角度观测图像三角化将尺度信息固定。 前端数据关联模块包括短期数据关联和长期 数据关联,短期数据关联负责联系传感器数据的 帧间特征点及追踪特征点,常用的方法有特征匹 配和光流法等。长期关联是关联新的信息是否和 过去的所有信息有关联,即回环检测,常用的方 法有词袋法和深度学习[10]。 1.3 基于优化的 SLAM 后端 早期 SLAM 后端主要是基于滤波的方法,但 由于优化方法的精度明显优于滤波的方法而逐渐 成为主流。文献 [21-22] 综述了滤波的方法,本文 主要介绍基于优化的 SLAM 后端。 Z = {zk : k = 1,2,··· ,m} zk = hk(Xk)+εk Xk ⊆ X hk(·) εk p(X|Z) 在 SLAM 问题中,需要估计的未知变量 X 包 括机器人的位姿和路标点的物理坐标。给定观测 数据 ,观测方程可表示为未知 变量 X 的函数。例如 ,其中 , 是已知的测量或观测函数, 是随机测量误 差。根据贝叶斯理论,通过 X 的测量值 X *估计最 大后验概率 : X ∗ · =arg max X p(X|Z) = arg max X p(Z|X)p(X) (1) 式中: p(Z|X) 是给定 X 的观测量 Z 的似然; p(X) 称 为 X 的先验概率。先验概率包含 X 所有的先验信 息;在没有先验信息的情况下,先验概率为常量, 在优化中不起作用,最大后验估计简化为似然估 计。不同于卡尔曼滤波的方法,最大后验概率估 计不需要区分运动模型和观测模型,这两个模型 都被视为因子整合到估计的过程中。 假设测量值 Z 是独立的,即噪声不相关,将 式 (1) 因式分解为 X ∗ = arg max X p(X) ∏m k=1 p(zk |X) = arg max X p(X) ∏m k=1 p(zk |Xk) (2) 式 (2) 可以用因子图来解释,因子图是一种图 p(zk |Xk) p(X) 模型,可以建立第 k 个因子与相应变量 Xk 的依赖 关系。 项和 项都称之为因子,通过节 点建立约束。因子图可直观表示约束,如图 2 展 示了一个用因子图表示的简单的 SLAM 问题。 其中蓝色代表机器人位姿,绿色代表地标点坐 标,红色为相机标定参数,黑色方块是因子,代表 变量间的约束。通过因子图的方式可以表示复杂 的多优化变量模型。 p c1 u1 x1 l 1 K l 2 x2 x3 v1 v2 v3 v4 c2 u2 图 2 因子图表示的 SLAM Fig. 2 SLAM as a factor graph εk Ωk 假设测量噪声 是零均值的高斯噪声,其信 息矩阵表示为 ,则式 (2) 中的似然可表示为 p(zk |Xk) ∝ exp( − 1 2 ||hk(Xk)−zk ||2 Ωk ) (3) ||e||2 Ω = e TΩe p(X) ∝ exp( − 1 2 ||h0(X)−z0 ||2 Ωk ) h0(·) z0 Ω0 其 中 , ,同理,假设先验可以写为 , 为给定的函数, 为先验均值, 为信息矩阵。因为最大后验相当 于最小后验的负对数,所以最大后验估计可写为 X ∗ = arg min X −log(p(X) ∏m k=1 p(zk |Xk)) = arg min X ∑m k=0 ||hk(Xk)−zk ||2 Ωk (4) hk(·) 式 (4) 是一个最小二乘问题,在 SLAM 问题 中, 是一个非线性函数。求解相机位姿即求 解此最小二乘问题。通常使用 Gauss-Newton 法 或者 Levenberg-Marquardt 法求解,得到优化变量 X。 2 度量地图模型的 VSLAM 系统 度量地图是对环境结构的一种表示方法。选 择合适的 SLAM 度量表示方法十分重要,会影响 很多研究领域,例如长时间导航、环境交互和人 机交互等领域。根据利用图像信息的方法不同, 可分为直接法和特征点法,直接法会产生半稠密 和稠密的结构,特征点法会产生稀疏的结构。本 文根据 SLAM 系统产生的不同稀疏程度结构的 特点,将 VSLAM 分为稀疏 VSLAM、半稠密 VSLAM 和稠密 VSLAM。 第 5 期 王霞,等:视觉 SLAM 研究进展 ·827·
·828… 智能系统学报 第15卷 2.1稀疏VSLAM 此PTAM的出现对于SLAM的发展具有重要意 稀疏VSLAM的前端算法以特征点匹配为 义。同样,PTAM也存在场景小、跟踪容易丢失 主,光流追踪以及直接法等方法也在不断发展, 等特点。 但特征匹配仍为稀疏VSLAM的主流前端算法。 2009年,K1ein等提出关键帧的概念和重定 后端算法主要分为基于滤波的算法和基于优化的 位的方法。同年,此团队又提出应用于照相手机 算法,早期由于算力的限制,主要以基于滤波的 的基于关键帧的SLAM系统2.2015年,建立了 后端算法为主,随着CPU和GPU的发展,基于优 ORB-SLAM),一种基于ORB特征匹配2的单目 化的后端由于其具有更好的精度而逐渐成为主流。 实时SLAM系统,此系统在稀疏VSLAM领域具 MonoSLAM是在2007年提出的一种可以通 有里程碑意义,系统十分完善,可应用于多种场 过单目相机实现实时场景三维重建的算法2),该 景,对于运动杂波具有较强的鲁棒性。具有追 算法首次实现单目SLAM系统,可实现实时且无 踪、建图、重定位和回环检测功能,其标志性地使 漂移的运动恢复结构,后端使用拓展的卡尔曼滤 用3个线程(如图3所示),分别为特征点追踪线 波算法,前端使用稀疏的特征点匹配,实现在线 程、局部重投影误差优化线程和基于位姿图的全 稀疏地图的持续构建。虽然MonoSLAM应用场 局优化线程。对于选择重建点和关键帧具有良好 景很窄,特征点也容易丢失,但作为第一个SLAM 鲁棒性,可生成增量地图,这使得基于特征点的 系统,具有里程碑意义。2007年,一种专门为小 SLAM成为当时的主流。目前此项目源代码已开 型AR工作空间中手持摄像机设计的系统一 源。2017年的ORB-SLAM227支持单目相机、立 PTAM系统出现2,此系统首次将特征点追踪和 体相机和RGB-D相机的SLAM系统,可在CPU 地图构建分为两个独立的任务,使用并行处理的 上实时工作。 方式,并首次使用重投影误差进行后端优化,因 Tracking Extract Initial ose estimation from last frame or Track New keyframe rame ORB local map relocalisation decision Map initialization Map Keyframe Place Mappoints recognition Keyframe insertion Keyframes Visual Recent vocabulary mappoints Covisibility culling Recognition graph database Spanning New points creation tree Loop correction Loop detection Local BA Local Optimize essential Loop Compute Candidates keyframe sim3 culling graph fusion detection Loop closing 图3ORB-SLAM的三线程结构 Fig.3 Three-thread structure of ORB-SLAM 与其他基于特征点提取的稀疏VSLAM不 上鲁棒的概率深度估计算法,能够有效地跟踪像 同,Forster等2在2016年提出了一种半直接VO 素的角点和边。该算法可以很容易地扩展到多个 (semi-direct visual odometry,SVO),是一种直接法 相机跟踪,包括运动先验,并可适用于大视场相 和特征点混合的方法,它使用直接的方法跟踪和 机,如鱼眼和反折射相机。相对于其他VSLAM, 三角化像素,这些像素具有较高的图像梯度,但 SVO的优点是速度快、计算要求低。但只适用于 依赖于基于特征方法的联合优化。半直接VO加 平面运动,而且没有后端优化和回环检测,不是
2.1 稀疏 VSLAM 稀疏 VSLAM 的前端算法以特征点匹配为 主,光流追踪以及直接法等方法也在不断发展, 但特征匹配仍为稀疏 VSLAM 的主流前端算法。 后端算法主要分为基于滤波的算法和基于优化的 算法,早期由于算力的限制,主要以基于滤波的 后端算法为主,随着 CPU 和 GPU 的发展,基于优 化的后端由于其具有更好的精度而逐渐成为主流。 MonoSLAM 是在 2007 年提出的一种可以通 过单目相机实现实时场景三维重建的算法[23] ,该 算法首次实现单目 SLAM 系统,可实现实时且无 漂移的运动恢复结构,后端使用拓展的卡尔曼滤 波算法,前端使用稀疏的特征点匹配,实现在线 稀疏地图的持续构建。虽然 MonoSLAM 应用场 景很窄,特征点也容易丢失,但作为第一个 SLAM 系统,具有里程碑意义。2007 年,一种专门为小 型 AR 工作空间中手持摄像机设计的系统— PTAM 系统出现[24] ,此系统首次将特征点追踪和 地图构建分为两个独立的任务,使用并行处理的 方式,并首次使用重投影误差进行后端优化,因 此 PTAM 的出现对于 SLAM 的发展具有重要意 义。同样,PTAM 也存在场景小、跟踪容易丢失 等特点。 2009 年,Klein 等 [5] 提出关键帧的概念和重定 位的方法。同年,此团队又提出应用于照相手机 的基于关键帧的 SLAM 系统[25]。2015 年,建立了 ORB-SLAM[3] ,一种基于 ORB 特征匹配[26] 的单目 实时 SLAM 系统,此系统在稀疏 VSLAM 领域具 有里程碑意义,系统十分完善,可应用于多种场 景,对于运动杂波具有较强的鲁棒性。具有追 踪、建图、重定位和回环检测功能,其标志性地使 用 3 个线程 (如图 3 所示),分别为特征点追踪线 程、局部重投影误差优化线程和基于位姿图的全 局优化线程。对于选择重建点和关键帧具有良好 鲁棒性,可生成增量地图,这使得基于特征点的 SLAM 成为当时的主流。目前此项目源代码已开 源。2017 年的 ORB-SLAM2[27] 支持单目相机、立 体相机和 RGB-D 相机的 SLAM 系统,可在 CPU 上实时工作。 Keyframe insertion Local mapping Recent mappoints culling New points creation Local BA Local keyframe culling Keyframe Frame Map initialization Place recognition Visual vocabulary Map Mappoints Keyframes Covisibility graph Spanning tree Loop correction Loop detection Loop closing Optimize essential graph Loop fusion Compute sim3 Candidates detection Recognition database Tracking Extract ORB Initial ose estimation from last frame or relocalisation Track local map New keyframe decision 图 3 ORB-SLAM 的三线程结构 Fig. 3 Three-thread structure of ORB-SLAM 与其他基于特征点提取的稀疏 VSLAM 不 同,Forster 等 [28] 在 2016 年提出了一种半直接 VO (semi-direct visual odometry, SVO),是一种直接法 和特征点混合的方法,它使用直接的方法跟踪和 三角化像素,这些像素具有较高的图像梯度,但 依赖于基于特征方法的联合优化。半直接 VO 加 上鲁棒的概率深度估计算法,能够有效地跟踪像 素的角点和边。该算法可以很容易地扩展到多个 相机跟踪,包括运动先验,并可适用于大视场相 机,如鱼眼和反折射相机。相对于其他 VSLAM, SVO 的优点是速度快、计算要求低。但只适用于 平面运动,而且没有后端优化和回环检测,不是 ·828· 智 能 系 统 学 报 第 15 卷
第5期 王霞,等:视觉SLAM研究进展 ·829· 完整的SLAM系统。2018年,L00等29提出利用 的半稠密VSLAM系统。 神经网络预测单目图像深度的SVO版本,可根据 LSD-SLAM是2014年Engel等B6提出的一 单图像深度来预测网络的深度预测结果,通过初 种直接(无特征)单目SLAM算法,与目前最先进 始化特征点处深度的均值和方差改进SVO建图。 的直接方法相比,可构建大规模、一致的环境地 此外,还有大量优秀的稀疏VSLAM系统。 图,标志着半稠密VSLAM的成功应用,其运行结 2016年,Zhang等0提出ENFT-sfm系统,它是一 果如图4所示。2015年立体相机直接SLAM算 种特征跟踪方法,能够有效地匹配一个或多个视 法在标准CPU上以高帧速率实时运行叨,此前很 频序列之间的特征点对应。升级版的ENFT- 少见到使用CPU实时建立半稠密地图的算法。 SLAM可大规模运行。DS0是2017年Engel等B则 此方法的创新性在于直接基于所有高对比度像 提出的基于单目相机在不需要检测和描述特征点 素(包括角、边和高纹理区域)的亮度一致性对图 的情况下,采用直接法和稀疏法建立的一个可视 像进行对齐,同时,通过固定基线的立体摄像机 化导航系统。2018年,Schlegel等B提出一种简 设置的静态立体以及利用摄像机运动的临时多视 单的轻量级立体VSLAM,此方法重点在数据结 点立体估计这些像素的深度。2015年,Caruso等 构和算法提升方面,可达到目前最优秀算法级别 将鱼眼相机引入直接单目SLAM方法,使直接法 的准确性,同时大大减少计算资源。OpenVSLAM SLAM支持广角相机。但LSD-SLAM同时有着 是Sumikura等B2019年提出的一个具有高可用 直接法SLAM的缺点,对相机内参和曝光敏感, 性和可扩展性的可视化SLAM框架,基于具有稀 相机快速运动时容易丢失。 疏特征的间接SLAM算法。传统的开源 VSLAM框架并不适合作为第三方程序调用,此 框架易于扩展和使用,该系统支持透视、鱼眼等 相机,甚至支持自己设计的相机模型。2019年, 通过使用AprilTag基准标记实现SLAM的 TagSLAM系统出现Bw。该系统提供了一个前端 图4LSD-SLAM运行图 的GT-SAM因子图优化器,此优化器可设计大量 Fig.4 LSD-SLAM running figure 的实验,包括完整SLAM系统、相机标定、视觉定 基于事件相机的SLAM系统的早期代表为 位、回环检测以及位姿估计等。UcoSLAM是 2013年Weikersdorfer等B提出的一种对单个像 2019年提出的一种融合自然地标和人工地标的 素事件进行操作的算法,可生成具有精确机器人 同步定位方法B。多数SLAM方法使用自然地 定位的高质量2D环境地图。2014年又提出了一 标(如关键点)。但是,自然地标随着时间的推移 种基于事件的动态视觉传感器与一个基于帧的 是不稳定的,在许多情况下是重复的,或者不足 RGB-D传感器融合的SLAM系统,以产生一个深 以进行鲁棒的跟踪(例如在室内建筑物中)。另一 度增强的3D点图0。EV0是2016年提出的一种 方面,基于人工地标的其他方法(例如平方基准 基于事件的视觉里程计算法,此算法成功地利 标记)可通过放置在环境中的地标帮助跟踪和重 用了事件相机的特性来跟踪快速的相机运动,同 新定位。UcoSLAM提出了一种将这两种方法相 时恢复了半密集的3D环境地图。由于事件相机 结合的方法,以实现在许多场景下的长期鲁棒跟 的性质,算法不受运动模糊的影响,并在具有挑 踪,且具有更好的准确性。 战性的高动态范围条件下运行良好,光照变化强 综上所述,稀疏VSLAM由于其计算量小、速 烈。2018年,Zhou等42提出了一种基于立体事 度快,一度成为VSLAM的主流方法,但稀疏 件相机的SLAM系统,可进行半稠密的三维重建。 VSLAM无法构建稠密地图,对于路径规划以及 2.3稠密VSLAM 场景理解等高层任务无法很好地实现。 稠密VSLAM由于可构建三维稠密地图并应 2.2半稠密VSLAM 用于路径规划中,使其具有前者不具备的优势 由于特征点法只能产生稀疏的结构,半稠密 在近些年得到了广泛关注。与半稠密VSLAM类 VSLAM主要以直接法和半直接法为主,直接法 似,稠密VSLAM也是以直接法和半直接法为主。 不需要提取特征点,直接根据像素变化估计相机 DTAM是2011年Newcombe等41提出的一 运动,因此计算量远高于特征点法,其起步也晚 种不依赖于特征提取而是依赖于稠密的逐像素方 于基于特征点法的VSLAM。本文介绍几种经典 法,使用RGB-D相机和一种非凸优化框架中最小
完整的 SLAM 系统。2018 年,Loo 等 [29] 提出利用 神经网络预测单目图像深度的 SVO 版本,可根据 单图像深度来预测网络的深度预测结果,通过初 始化特征点处深度的均值和方差改进 SVO 建图。 此外,还有大量优秀的稀疏 VSLAM 系统。 2016 年,Zhang 等 [30] 提出 ENFT-sfm 系统,它是一 种特征跟踪方法,能够有效地匹配一个或多个视 频序列之间的特征点对应。升级版的 ENFTSLAM 可大规模运行。DSO 是 2017 年 Engel 等 [31] 提出的基于单目相机在不需要检测和描述特征点 的情况下,采用直接法和稀疏法建立的一个可视 化导航系统。2018 年,Schlegel 等 [32] 提出一种简 单的轻量级立体 VSLAM,此方法重点在数据结 构和算法提升方面,可达到目前最优秀算法级别 的准确性,同时大大减少计算资源。OpenVSLAM 是 Sumikura 等 [33] 2019 年提出的一个具有高可用 性和可扩展性的可视化 SLAM 框架,基于具有稀 疏特征的间 接 SLA M 算法。传统的开 源 VSLAM 框架并不适合作为第三方程序调用,此 框架易于扩展和使用,该系统支持透视、鱼眼等 相机,甚至支持自己设计的相机模型。2019 年, 通过使 用 AprilTa g 基准标记实 现 SLAM 的 TagSLAM 系统出现[34]。该系统提供了一个前端 的 GT-SAM 因子图优化器,此优化器可设计大量 的实验,包括完整 SLAM 系统、相机标定、视觉定 位、回环检测以及位姿估计等。UcoSLAM 是 2019 年提出的一种融合自然地标和人工地标的 同步定位方法[35]。多数 SLAM 方法使用自然地 标 (如关键点)。但是,自然地标随着时间的推移 是不稳定的,在许多情况下是重复的,或者不足 以进行鲁棒的跟踪 (例如在室内建筑物中)。另一 方面,基于人工地标的其他方法 (例如平方基准 标记) 可通过放置在环境中的地标帮助跟踪和重 新定位。UcoSLAM 提出了一种将这两种方法相 结合的方法,以实现在许多场景下的长期鲁棒跟 踪,且具有更好的准确性。 综上所述,稀疏 VSLAM 由于其计算量小、速 度快,一度成为 VSLAM 的主流方法,但稀疏 VSLAM 无法构建稠密地图,对于路径规划以及 场景理解等高层任务无法很好地实现。 2.2 半稠密 VSLAM 由于特征点法只能产生稀疏的结构,半稠密 VSLAM 主要以直接法和半直接法为主,直接法 不需要提取特征点,直接根据像素变化估计相机 运动,因此计算量远高于特征点法,其起步也晚 于基于特征点法的 VSLAM。本文介绍几种经典 的半稠密 VSLAM 系统。 LSD-SLAM 是 2014 年 Engel 等 [36] 提出的一 种直接 (无特征) 单目 SLAM 算法,与目前最先进 的直接方法相比,可构建大规模、一致的环境地 图,标志着半稠密 VSLAM 的成功应用,其运行结 果如图 4 所示。2015 年立体相机直接 SLAM 算 法在标准 CPU 上以高帧速率实时运行[37] ,此前很 少见到使用 CPU 实时建立半稠密地图的算法。 此方法的创新性在于直接基于所有高对比度像 素 (包括角、边和高纹理区域) 的亮度一致性对图 像进行对齐,同时,通过固定基线的立体摄像机 设置的静态立体以及利用摄像机运动的临时多视 点立体估计这些像素的深度。2015 年,Caruso 等 [38] 将鱼眼相机引入直接单目 SLAM 方法,使直接法 SLAM 支持广角相机。但 LSD-SLAM 同时有着 直接法 SLAM 的缺点,对相机内参和曝光敏感, 相机快速运动时容易丢失。 图 4 LSD-SLAM 运行图 Fig. 4 LSD-SLAM running figure 基于事件相机的 SLAM 系统的早期代表为 2013 年 Weikersdorfer 等 [39] 提出的一种对单个像 素事件进行操作的算法,可生成具有精确机器人 定位的高质量 2D 环境地图。2014 年又提出了一 种基于事件的动态视觉传感器与一个基于帧的 RGB-D 传感器融合的 SLAM 系统,以产生一个深 度增强的 3D 点图[40]。EVO 是 2016 年提出的一种 基于事件的视觉里程计算法[41] ,此算法成功地利 用了事件相机的特性来跟踪快速的相机运动,同 时恢复了半密集的 3D 环境地图。由于事件相机 的性质,算法不受运动模糊的影响,并在具有挑 战性的高动态范围条件下运行良好,光照变化强 烈。2018 年,Zhou 等 [42] 提出了一种基于立体事 件相机的 SLAM 系统,可进行半稠密的三维重建。 2.3 稠密 VSLAM 稠密 VSLAM 由于可构建三维稠密地图并应 用于路径规划中,使其具有前者不具备的优势, 在近些年得到了广泛关注。与半稠密 VSLAM 类 似,稠密 VSLAM 也是以直接法和半直接法为主。 DTAM 是 2011 年 Newcombe 等 [43] 提出的一 种不依赖于特征提取而是依赖于稠密的逐像素方 法,使用 RGB-D 相机和一种非凸优化框架中最小 第 5 期 王霞,等:视觉 SLAM 研究进展 ·829·