ORB-SLAM2

Mur-Artal 2017 · 论文

一句话总结 — 将ORB-SLAM扩展到双目和RGB-D相机,提供一个统一的开源SLAM框架,具备度量尺度,并在所有三种传感器模态上均达到当时最先进的精度。

问题

ORB-SLAM只支持单目:单个相机无法观测深度,因此地图和轨迹的尺度未知,系统初始化需要多视图初始化,还会遭受尺度漂移,并且在纯旋转下容易失败。双目和RGB-D相机可以解决所有这些问题,但现有的双目/RGB-D系统要么缺乏回环检测,要么为了常数时间运行而放弃全局一致性,要么依赖ICP或光度对齐。ORB-SLAM2(IEEE TRO 2017)将基于BA的框架进行了推广,使一个系统能”在标准CPU上实时运行于各种各样的环境中,从室内手持小场景序列,到工业环境中飞行的无人机以及在城市中行驶的汽车”。

方法与架构

三个并行线程——跟踪、局部建图、回环检测——加上第四个线程,在回环检测后运行全局BA。跟踪线程通过仅优化运动的BA将每一帧定位到局部地图中;局部建图线程在共视窗口上运行局部BA;回环检测线程用DBoW2检测回环,并通过在共视图/生成树上进行位姿图优化来纠正漂移,随后运行全局BA,其结果通过生成树传播关键帧修正量的方式合并回系统。

{R,t}=argminR,tiXρ(x()iπ()(RXi+t)Σ2)\{\mathbf{R},\mathbf{t}\}=\operatorname*{argmin}_{\mathbf{R},\mathbf{t}}\sum_{i\in\mathcal{X}}\rho\left(\left\|\mathbf{x}^{i}_{(\cdot)}-\pi_{(\cdot)}\left(\mathbf{R}\mathbf{X}^{i}+\mathbf{t}\right)\right\|^{2}_{\Sigma}\right)

使用Huber代价函数 ρ\rho、与关键点尺度相关的协方差 Σ\Sigma,以及投影函数 πm=(fxXZ+cx, fyYZ+cy)\pi_{\mathrm{m}}=\left(f_x\frac{X}{Z}+c_x,\ f_y\frac{Y}{Z}+c_y\right) 和双目投影函数 πs\pi_{\mathrm{s}}(在其上附加第三行 fxXbZ+cxf_x\frac{X-b}{Z}+c_x)。局部BA优化共视关键帧集合 KL\mathcal{K}_L 及其地图点 PL\mathcal{P}_L,同时固定边界关键帧 KF\mathcal{K}_F;全局BA除起始关键帧外,其余全部自由优化。

实验结果

在29个公开序列上评估(每个序列运行5次,取中位数;Intel i7-4790):

对SLAM的意义

ORB-SLAM2将ORB-SLAM打造成一个覆盖单目、双目和RGB-D传感器的通用SLAM库,并在数年间一直是SLAM论文中占主导地位的精度基准;它的虚拟双目RGB-D技巧和近点/远点策略被广泛借鉴。它是从单目SLAM(第3级)通向双目SLAM(第7级)和RGB-D SLAM(第4级)的天然桥梁,也是ORB-SLAM3视觉惯性多地图系统的直接前身。

动手实践

相关条目