【SLAM论文翻译】ORBSLAM-Atlas a robust and accurate multi-map system

题目

ORBSLAM-Atlas: a robust and accurate multi-map system
ORBSLAM-Atlas:一个稳健和精确的多建图系统

作者

Richard Elvira, Juan D. Tardós and J.M.M. Montiel

ORBSLAM的不足之处:

  1. ORBSLAM:ORBSLAM的突出鲁棒性和精确性是因为它能够检测关键帧之间的宽基线(wide-baseline)匹配,利用这些匹配做非线性优化,但它只能处理单个地图,如果跟踪丢失,将导致探索性轨迹完全失败,并停止多个建图。
  2. ORBSLAM2:以处理单目情况下的多个地图。它们对多个子图的整合不如我们的紧密,因为它们的子地图作为单独存在保存,每个都有自己的DBoW2数据库。此外,它们的合并操作计算子映射之间的链接,但不会用合并的子地图替换被合并的子地图。

贡献

提出了一个能够处理无限数量不连通子地图的ORBSLAM-Atlas,该系统包括一个健壮的地图融合算法,能够检测出具有公共区域的子地图,并将其无缝融合

  • 我们称之为atlas的多地图表示,它处理无限数量的子地图。该图集有一个唯一的DBoWs数据库,其中包含所有子地图的关键帧,这允许高效的多地图位置识别。
  • 所有多建图操作的算法:创建新的建图、在多个建图中重新定位和合并建图。我们设计了如何将基本建图阶段交织在一起,以稳健、准确、高效地执行多重建图操作。在系统的各个组成部分中,地图合并过程是一个相关的过程,它将两个地图与一个公共区域进行无缝融合。合并后,两个合并地图将完全替换为新的合并地图。我们建议在跟踪丢失后创建一个新的地图。它可以防止探索性轨迹中出现问题,在这种情况下,重新定位无法恢复相机跟踪损失。
  • 一个新的原则,以宣布跟踪丢失的情况下,能够观察到不良的相机姿态。它能够防止在包含高度不确定相机位姿的闭环中出现错误的位姿图优化。

ORBSLAM
【SLAM论文翻译】ORBSLAM-Atlas a robust and accurate multi-map system
ORBSLAM-Atlas
【SLAM论文翻译】ORBSLAM-Atlas a robust and accurate multi-map system


原文翻译

摘要-我们提出了一个能够处理无限数量不连通子地图的ORBSLAM-Atlas,该系统包括一个健壮的地图融合算法,能够检测出具有公共区域的子地图,并将其无缝融合。ORBSLAM的突出鲁棒性和精确性是因为它能够检测关键帧之间的宽基线(wide-baseline)匹配,利用这些匹配做非线性优化,但它只能处理单个地图。ORBSLAM-Atlas为多地图区域带来了宽基线匹配检测和开发。结果是SLAM系统明显得更加通用和健壮,能够执行多个建图。如果在探索过程中丢失了跟踪,则不会冻结地图,而是启动一个新的子地图,当访问公共部分时,它可以与以前的地图融合。我们的标准,以宣布相机失去对比以往的方法,简单地计数跟踪点的数量,我们建议放弃也不准确估计的相机姿势,由于不良的几何条件。结果,地图被分割成更精确的子地图,这些子地图最终被合并到更精确的全局地图中,这要归功于多重地图功能。
我们在EuRoC数据集中提供了大量的实验验证,ORBSLAM-Atlas在ORBSLAM失败的困难序列中获得准确的单目和立体结果。我们也在同一个房间内进行多个子地图后构建全局地图,获得迄今为止最好的结果,其精度是对比多地图方法的2至3倍。我们还展示了我们的系统在处理动态场景方面的健壮性和性能,定量地在EuRoC数据集中,定性地在人口稠密的走廊中,在那里相机经常停止工作和跟踪丢失。

1. INTRODUCTION

  SLAM算法能够根据传感器的读数建立一个地图,同时估计地图内的传感器定位。相机是特别有趣的传感器,因为它们提供了独特的几何和语义组合。在这种情况下,这些算法被称为V-SLAM(visualslam),在这项工作中,我们主要关注纯视觉的单目和立体传感器。由于关键帧和特征点SLAM方法的重定位和位置识别性能,我们将重点放在关键帧和特征点SLAM方法上,这体现在它们能够可靠地构建城市块大小的地图。
  更具体地说,我们建立在参考系统ORBSLAM[1],[2],[3]之上。如果与视觉里程计方法[4]、[5]、[6]、[7]、[8]相比,ORBSLAM可以更精确地执行任务,特别是在重新访问同一区域时。ORBSLAM的精度来自非线性约束调整(BA),其中对同一地图点的观测来自于相隔甚远的关键帧。一方面,ORBSLAM能够很好地检测关键帧之间的匹配,即使它们在时间上被相差很远,即使在闭环的极端情况下也是如此。ORBSLAM能够通过基本建图阶段的交织来充分利用这些丰富的高视差重新观测:ORB匹配、DBoW2位置识别、位姿图优化、局部BA、全局BA和地图管理。地图管理包括地图点和关键帧的创建、删除和合并。但是,它只能处理单个建图,如果跟踪丢失,将导致探索性轨迹完全失败,并停止多个建图。
  我们提出了ORBSLAM-Atlas,将ORBSLAM推广到多地图情况。我们的主要贡献是:

  • 我们称之为atlas的多地图表示,它处理无限数量的子地图。该图集有一个唯一的DBoWs数据库,其中包含所有子地图的关键帧,这允许高效的多地图位置识别。
  • 所有多建图操作的算法:创建新的建图、在多个建图中重新定位和合并建图。我们设计了如何将基本建图阶段交织在一起,以稳健、准确、高效地执行多重建图操作。在系统的各个组成部分中,地图合并过程是一个相关的过程,它将两个地图与一个公共区域进行无缝融合。合并后,两个合并地图将完全替换为新的合并地图。我们建议在跟踪丢失后创建一个新的地图。它可以防止探索性轨迹中出现问题,在这种情况下,重新定位无法恢复相机跟踪损失。
  • 一个新的原则,以宣布跟踪丢失的情况下,能够观察到不良的相机姿态。它能够防止在包含高度不确定相机姿势的闭环中出现错误的位姿图优化。

  我们在EuRoC数据集中提供了一个定量的实验验证,其中ORBSLAM-Atlas完成了最佳结果:在经过多次建图过程后获得了全局地图。在单目EuRoC困难数据集中,与单目ORBSLAM相比,极大地提高了覆盖率和定位误差。此外,该系统在处理动态场景时具有很强的鲁棒性。

2. RELATED WORK

  在本篇论文,多地图功能作为协作建图系统的一个组成部分被研究,协作代理最终将帧发送到执行多个建图操作的中心服务器。Foster等人,在[9]中首次提出了这种分布式体系结构。在他们的方法中,代理将帧发送到全局服务器,但是,他们不能从服务器获取信息来改进他们的局部建图。第一个具有从代理到服务器和从服务器到代理的双向信息流的系统是C2TAM[10],它是PTAM[11]到RGB-D传感器的扩展,后者能够在多个机器人中处理多个地图。莫里森等人,在[12]中,研究了一种用于协作多设备SLAM的健壮的无状态客户机-服务器体系结构。他们的主要关注点是软件架构,而不是报告准确的结果。Schmuck和Chli[13],[14]最近的工作提出了CCM-SLAM,一种基于ORBSLAM的多无人机分布式多地图,具有双向信息流。我们的系统离他们的中心服务器很近,因为这两个系统都建立在类似的基本建图阶段之上。他们的重点是克服单目情况下有限带宽和分布式处理的挑战,而我们的重点是建立一个准确的全球地图。根据他们在欧洲机器大厅数据集上的实验报告,我们的系统在单目情况下的准确度大约提高了3倍。此外,我们的系统显示出健壮性,能够准确地处理所有的EuRoC数据集,包括立体和单目的。
  最近的ORB-SLAM[15]也提出了ORBSLAM2的扩展,以处理单目情况下的多个地图。它们对多个子图的整合不如我们的紧密,因为它们的子地图作为单独存在保存,每个都有自己的DBoW2数据库。此外,它们的合并操作计算子映射之间的链接,但不会用合并的子地图替换被合并的子地图。
  本文还比较了VINS Mono[4]在EuRoC Machine Hall数据集多段场景处理中的应用。VINS-Mono是一种视觉里程计系统,通过位姿图优化来估计闭环矫正。由于ORBSLAM-Atlas能够探测和使用BA处理大量高视差观测,它们的个别地图比VINS Mono的精确2倍。ORBSLAM-Atlas多个全局地图比VINS mono全局地图保持了2倍的精度,因为由于地图合并,它能够检测并从高视差匹配中获得有益的部分,在多地图和多场景情况下也是如此。
  Eade和Drummond[16]在一种滤波方法中首次提出了通过地图创建和融合来增加探测过程中跟踪损失的鲁棒性的思想。第一个基于关键帧的多地图系统是[17],他们提出了断开地图的思想,但是地图初始化是手动的,系统无法合并或关联不同的子地图。在滤波EKF-SLAM方法中,当协方差很容易获得时,在匹配次数和低相机定位误差协方差的双重阈值条件下,相机被宣告丢失[18]。在关键帧方法中,由于不计算协方差,因此准则仅减少到匹配数。我们提出用一个低成本的摄像机姿态协方差代理来恢复双准则,该代理来自于仅摄像机姿态优化的Hessian。这种近似协方差最近在[19]中被用于主动感知。

3. ORBSLAM-A TLAS MULTI - MAP REPRESENTATION

  我们称之为新的多重地图表示atlas,从现在起,我们将使用名称map来指定每个地图集子地图。下一小节详细介绍了地图集结构和确定何时创建新地图的标准。

【SLAM论文翻译】ORBSLAM-Atlas a robust and accurate multi-map system
Fig. 1: ORBSLAM-Atlas multi-map representation and workflow.

A. Multi-map representation

  地图集(图1)由几乎无限数量的地图组成,每个地图都有自己的关键帧、地图点、共视图和生成树。每个地图参考帧固定在其第一个相机中,并且它独立于ORBSLAM中的其他地图参考。传入的视频只更新地图册中的一个地图,我们称之为活动地图(active map),我们将其余地图称为非活动地图(non active map)。该图集还包含一个所有地图的唯一DBoW2识别数据库,该数据库存储识别任何地图中任何关键帧的所有信息。
  我们的系统有一个单一的位置识别步骤来检测公共地图区域,如果它们都在活动地图中,它们对应一个闭环,而如果它们在不同的地图中,它们对应一个地图合并。

B. New map creation criteria

  当相机跟踪被认为丢失时,我们尝试在地图册中重新定位。如果在几帧内重新定位失败,活动地图将变为非活动地图并存储在地图册中。然后,根据[2]和[1]中描述的算法启动新的地图初始化。
  为了确定相机是否在轨道上,我们试探性地提出了两个必须满足的规定,否则,相机将被视为丢失:

  • a) 匹配特征数:当前帧与局部地图中的点之间的匹配数高于定义的阈值。
  • b) 相机姿态可观测性:如果检测点的几何条件较差,则相机姿态不可观测,相机定位估计不准确。

【SLAM论文翻译】ORBSLAM-Atlas a robust and accurate multi-map system
【SLAM论文翻译】ORBSLAM-Atlas a robust and accurate multi-map system
Fig. 2: Example of mapping accuracy improvement due to observability criterion. (a) Frame where most of the matched points are far from the camera. The number of points criterion is fulfilled but not the observability criterion,and the camera translation is inaccurately estimated. The image corresponds to the region marked as P 1 in the maps below. (b) Camera trajectory without observability criterion. Two loop closures were detected at P 2 and P 3 , due to the inaccurate camera poses around P1, the pose graph optimization fails to produce an accurate correction. © Camera trajectory with observability criterion. The camera poses in the rectangle in the P 1 region area are excluded.When the low observability region is left, a second map is created. When P 2 is reached, the place recognition fires, and the two maps are merged into a single map. At P 3 a loop closing is detected applying the corresponding correction.The final global map has fewer localized frames but they are more accurate.
  图2显示了Malaga数据集[20]中的一个示例,在该示例中,共视标准的使用与多重建图相结合,可以显著提高建图精度。在图像中,超过阈值的多个点被匹配,但是它们对应于远处的地图点,因此不准确地估计摄像机的平移。由于没有可观测性准则,由位姿图优化计算的闭环校正由于闭环中包含的相对平移精度差而不准确。如果使用可观测性准则,则这些不确定的关键帧将从地图中移除,地图将被分割,但ORBSLAM-Atlas能够将所有子地图合并到一个精确的全局地图中。

C. Camera pose observability

  我们从相机位姿误差协方差来估计可观测性。我们假设地图点是完美估计的,因为实时操作无法计算每帧地图点的协方差。测量信息矩阵Ωi,j\Omega_{i,j},编码相机ii中地图点jj的观测Xi,j\mathbf{X}_{i,j}jj的不确定度。它与检测到图像FAST特征点的图像分辨率比例成比例地调整。相机ii的不确定性是用mim_i点来估计的,其中mim_i是相机中与地图点匹配的点数。
  我们将6*度相机位姿估计为T^i,ωSE(3)\hat{\mathbf{T}}_{i,\omega} \in SE(3)变换。此外,我们通过6个参数ϵi\epsilon_{i}的无偏高斯向量对其不确定性进行编码,该无偏高斯向量定义了近似于Ti,ω\mathbf{T}_{i,\omega}T^i,ω\hat{\mathbf{T}}_{i,\omega}的李代数:
Ti,ω=Exp(ϵi)T^i,ω\mathbf{T}_{i,\omega}=\mathrm{Exp}(\epsilon_i) \oplus \hat{\mathbf{T}}_{i,\omega}
ϵi=(x y z ωx ωy ωz)N(0,Ci)\epsilon_i = ({x\ y\ z\ \omega_x\ \omega_y\ \omega_z}) \sim \mathcal{N} ({0, \mathbf{C}_i})
Hij=1miJi,jTΩi,jJi,j\mathbf{H}_i \simeq {\sum_{j=1}^{m_i} \mathbf{J}_{i,j}^{T} \Omega_{i,j} \mathbf{J}_{i,j}}
Ci=Hi1\mathbf{C}_i = \mathbf{H}_i^{-1}
其中Exp:R6SE(3)\mathrm{Exp}:\mathbb{R}^6 \rightarrow SE (3)直接从参数空间Exp:R6\mathrm{Exp}:\mathbb{R}^6映射到李群SE(3)\mathrm{SE}(3)。协方差矩阵Ci\mathbf{C}_i编码相机估计精度,Ji,j\mathbf{J}_{i,j}是相机ii中地图点JJ的观测引起的相机姿态测量的雅可比矩阵。由于平移是弱可观测量,我们建议在准则中仅使用与平移误差相对应的Ci\mathbf{C}_i对角线值:
max(σx σy σz)<σthtmax(\sigma_x\ \sigma_y\ \sigma_z) < \sigma_{th}^t
[σx2 σy2 σz2]=diag(Ci)[\sigma_x^2\ \sigma_y^2\ \sigma_z^2] = diag(\mathbf{C}_i)
(1)

D. Relocalization in multiple maps

  如果相机跟踪丢失,我们使用帧来查询地图集DBoW数据库。这个查询可以在任何地图中找到更相似的关键帧。一旦我们有了候选的关键帧、建图和假定的匹配映射点,我们就执行下面的重新定位[1]。它包括通过第一个PnP和RANSAC步骤稳健地估计相机位姿,然后进行匹配的引导搜索和最终的非线性相机位姿优化。

IV. SEAMLESS MAP MERGING

  为了检测地图合并,我们使用ORBSLAM位置识别步骤。为了降低误报风险,该算法对由共视图连接的三个关键帧进行重复位置识别。此外,在合并过程中,活动地图会吞并已找到公共区域的其他映射。合并完成后,合并的地图将完全替换这两个合并地图。必要时,我们将使用asm子索引分别引用活动的、吞入的和合并的地图。

  1. 两个地图之间公共区域的检测。位置识别提供了两个匹配的关键帧KaK_aKsK_s以及两个地图MaM_aMsM_s中的点之间的一组假定匹配
  2. 对准变换的估计。正是这种变换,立体中的SE(3)SE\left(3\right)或单目中的Sim(3)Sim\left(3\right),将两个合并地图的全局参照对齐。我们结合Horn方法[21]和RANSAC,从MaM_aMsM_s地图点之间的假定匹配计算初始估计。我们将估计的变换应用于KsK_s的引导匹配阶段,在KsK_s中匹配MaM_a的点,最后通过对重投影误差的非线性优化来估计TWa,Ws\mathbf{T}_{W_a,W_s}
  3. 合并合并的地图。我们将TWa,Ws\mathbf{T}_{W_a,W_s}应用于MsM_s中的所有关键帧和地图点。然后,我们检测出重复的地图点并将其融合,从而得到从MsM_sMaM_a中的关键帧观测到的地图点。然后,我们将所有MsM_sMaM_a关键帧合并,并将点映射到MmM _m。此外,我们还将MsM_sMaM_a生成树以及可测图合并到MmM _m的生成树和可测图中。
  4. 焊接区域的局部BA。根据MmM _m共视图,它包含了与KaK-a共视的所有关键帧。为了固定轨距*度,在MaM_a中固定的关键帧在局部BA中保持固定,而其余关键帧在非线性优化过程中*移动。我们应用第二个重复点检测和融合阶段更新MmM_m可见度图。
  5. 位姿图优化。最后,我们对MmM_m展开了位姿图优化

  合并在与跟踪线程、局部建图线程并行的线程中运行,偶尔也运行一个全局约束调整线程(图1)。在开始合并之前,局部建图线程将停止,以避免在地图集中添加新的关键帧。如果一个全局约束调整线程正在运行,它也会停止,因为BA正在运行的生成树将被更改。跟踪线程保持在旧的活动地图上运行,以保持实时操作。完成地图合并后,我们继续局部建图线程。全局约束调整(如果已停止)将重新启动以处理新数据。