OA-SLAM

对论文 OA-SLAM: Leveraging Objects for Camera Relocalization in Visual SLAM (ISMAR, 2022) 的阅读整理。

OA-SLAM

论文情况

  • 标题:OA-SLAM: Leveraging Objects for Camera Relocalization in Visual SLAM
  • 作者:Matthieu Zins, Gilles Simon, Marie-Odile Berger
  • 会议:ISMAR (International Symposium on Mixed and Augmented Reality), 2022
  • 源码:https://gitlab.inria.fr/tangram/oa-slam

1 Introduction

应用场景:

  • 增强现实要求使用虚拟信息丰富化现实世界;当构建对象级的交互应用时,场景的准确感知对于视觉元素的定位是重要的。

现有视觉 SLAM:

  • RGB-D 相机 SLAM 局限于中小型室内环境,并且难以适应高反射的结构,如金属结构;
  • 深度传感器不足以适用于消费应用程序。

AR 应用程序在用户使用时可能面临的问题:

  • AR 应用面向大众,包括不太熟悉的用户,因此可能出现快速或突然的相机运动;
  • 由于由于用户不受运动的影响,系统应该能够从场景中的任何位置重新启动;
  • 现有的相机跟踪系统通常不支持这些具有挑战性的条件。

目前视觉 SLAM 的 SOTA 存在的问题:

  • ORB-SLAM2 使用 BoW 寻找相似图片,使用 ORB 或 SIFT 特征寻找关键点匹配。然而,使用这些低级特征不适应于发生突然的大视角变化时的重定位。

本文贡献:

  1. 一种改进的重定位方法,结合了物体和关键点,能够从多种视角估计相机姿态。
  2. 提出全自动的 SLAM 系统能够识别、跟踪和重建物体。
  3. 说明了系统如何在先前构建的或可能的 AR 地图上重新初始化相机跟踪,以及在相机跟踪丢失后如何恢复相机跟踪。

2 Motivations

大多数现有的基于物体的 SLAM 系统通过联合相机-地标-物体优化将物体集成在 SLAM 系统的核心中。然而,这不一定能提高相机姿态精度。因此,用粗模型(长方体或椭球体)表示的目标可能不足以提高相机姿态跟踪的准确性,但文章仍然认为,当跟踪丢失时,它们是有用的。当前的目标检测器对视角和光照变化具有很强的鲁棒性,这对于从多种视角恢复相机姿态是非常理想的。此外,这种使用物体的方式在现有的基于物体的 SLAM 系统中还没有被探索很多。

第二个动机是缺乏用于构建面向对象地图的全自动系统。大多数现有方法都需要外部信息或人工处理。例如 QuadricSLAM[1] 和 SO-SLAM[2] 都假设目标关联问题已经解决。实验中,它们手动注释了检测到的物体和地图中的物体之间的匹配。DSP-SLAM[3] 能够提供良好的物体重建,但代价是为系统使用期间遇到的每一类物体训练一个额外的形状先验网络。相比之下,文章选择使用一个通用的、相对粗糙的对象模型,同时允许系统的全自动地图构建。

3 Method

3.1 System Overview

OA-SLAM 基于 ORB-SLAM2(tracking、local mapping、loop closure),增加了额外的面向物体的模块。

3.2 Ellipsodial Object Representation

文章将物体在 3D 空间内建模为一个椭球体,而在图像中用一个椭圆进行表示。这种表示方法粗糙但是轻量级,只需要 9 个参数:3 个轴长参数、3 个旋转参数、3 个位置参数。椭球体在任意视点下投影为椭圆,其方程可以在对偶空间中进行表示。在此空间中,椭球体定义为 4×44 \times 4 的矩阵 QQ^{*},椭圆则定义为 3×33 \times 3 的矩阵 CC^{*},二者间通过投影矩阵 PP 进行转换:

C=PQPT(1)C^{*} = P Q^{*} P^T \tag{1}

选择椭球体表示的优点:

  • 对于物体的立方体表示来说,将 3D 框的角点与 2D 框的边缘匹配会产生复杂的数学计算。

3.3 Object Detection and Association

使用 YOLO 进行目标检测,考虑置信度大雨 0.5 的检测。在一系列目标检测间建立关联是系统的关键。给定当前帧的检测集合,目标是观测这个检测结果是否与已存在的目标相匹配,或者说是一个新的目标。关联关系首先受到对象类别的约束;此外,还考虑了检测框之间的重叠以及框与框之间的点匹配。

3.3.1 Box-based Object Tracking

在重建前,基于边界框重叠和标签一致性在 2D 帧上跟踪物体。当两帧之间的运动相对较小且平滑时,这种跟踪在短期内是可能的。然而,当某些帧的检测缺失、物体超出相机视野或相机突然运动时,该算法容易产生错误。

一旦在具有足够序列上成功地对目标进行 2D 跟踪,则可以通过考虑其 3D 重建来获得较长期的跟踪。为此,将 3D 椭球投影到当前帧,并利用与该帧中目标检测的重叠信息来寻找关联。

对于这种关联方法,可以通过匈牙利算法来进行匹配,目的是最大化 NN 个检测和 MM 个目标的匹配分数。定义时间 tt 的分数矩阵为:

St=[sijt]N×M(2)\mathbf{S}^t = [s_{ij}^t]_{N \times M} \tag{2}

sijt=max(IoU(Dit,Bjtk),IoU(Dit,box(proj(Ojt)))or 0 if reconstruction not yet available)(3)s_{ij}^t = \max (\text{IoU}(D_i^t, B_j^{t - k}), \underbrace{\text{IoU}(D_i^t, \text{box}(\text{proj}(O_j^t)))}_{\text{or 0 if reconstruction not yet available}}) \tag{3}

其中 DitD_i^t 表示当前帧的第 ii 个检测,BjtkB_j^{t-k} 表示与第 jj 个目标关联的最新的(latest)边界框,OjtO_j^t 为第 jj 个椭球。左侧的 IoU 对应 2D 边界框的追踪,右侧的 IoU 对应长期的关联。

3.3.2 Point-based Object Tracking

之前描述的长期关联方法仅依赖于重建椭球体的几何形状,对于小目标或无纹理的目标非常有意义,但在检测中断的情况下会失效。为此,本文利用了提供更精确 2D 定位的点。在 SLAM 系统进行相机位姿估计时,将图像关键点与地图地标进行匹配。这些匹配可以用来连接检测框和对象椭球:

  • 在图像中,如果关键点位于边界框内,则该点关联于这个检测。
  • 在地图中,如果一个点地标位于一个椭球内,则它与该对象相关联。

如果存在至少 τ(=10)\tau(=10) 个匹配,则认为出现关联。这种跟踪方法仅在目标被重建后才启用,并且对于高度纹理的目标或基于几何的跟踪失败时特别有用。

3.4 Initial Object Reconstruction

本文的主要思想是在检测后快速生成 3D 目标假设,以便在基于框的跟踪之外还可以进行基于模型的跟踪。如果后续帧中的跟踪与初始假设一致,则在后续验证和整合地图中的目标。否则,对象假设被拒绝。

一旦在视角有足够变化的帧中成功跟踪目标,系统就会创建其 3D 椭球的初步粗略估计。为了快速获得物体的 3D 估计,选择了一种更简单但更可靠的方法,在这种方法中,物体最初被重建为一个球体,然后,随着更多视图的到达,以椭球的形式进行细化。该球体的位置从边界框的中心进行三角剖分,其半径确定为边界框的平均大小,并将其反向投影到估计位置,即:

radius=12ni=1nzi2(wifx+hify)(4)radius = \frac{1}{2n} \sum_{i=1}^n \frac{z_i}{2} (\frac{w_i}{f_x} + \frac{h_i}{f_y}) \tag{4}

其中 ziz_i 为第 ii 个相机坐标系下的目标中心的 z 坐标,wiw_ihih_i 为检测框的宽和高,fxf_xfyf_y 为相机内参,nn 为目标被跟踪的所有帧的数目。

然后,球体被细化为椭球,当在新图像中检测到目标时,它的轴和位置被更新。这种改进以重投影误差最小化的形式表示,类似于下一节中描述的优化。一旦目标在足够数量的帧中被重建和细化(通常为 40 帧),只要在跟踪目标的所有帧中其投影和检测之间的重叠(阈值 0.3)足够多,则将目标整合到地图中。

3.5 Local Object Mapping

3.5.1 Objects Refinement

每当新的关键帧观察到地图中存在的对象时,该对象通过最小化重投影误差进行更新。以检测框内椭圆与估计椭球投影之间的 Wasserstein 距离作为目标函数(该距离在 [4] 中被用于计算椭球与椭圆之间的损失)。这个距离中,椭圆被认为服从 2D 高斯分布 N(μ,Σ)\mathscr{N}(\mu, \Sigma)

μ=[cx,cy],Σ1=R(θ)[1α2,00,1β2]R(θ)T(5)\mu = \left[ \begin{matrix} c_x, \\ c_y \end{matrix} \right], \Sigma^{-1} = R(\theta) \left[ \begin{matrix} \frac{1}{\alpha^2}, &0 \\ 0, &\frac{1}{\beta^2} \end{matrix} \right] R(\theta)^T \tag{5}

[cx,cy][c_x, c_y] 为椭圆中心,[α,β][\alpha, \beta] 为轴长,θ\theta 为旋转角。高斯分布 N1(μ1,Σ1)\mathscr{N_1}(\mu_1, \Sigma_1)N2(μ2,Σ2)\mathscr{N_2}(\mu_2, \Sigma_2) 之间的 Wasserstein 距离:

W22(N1,N2)=μ1μ222+Tr(Σ1+Σ22(Σ112Σ2Σ112)12)(6)\mathscr{W}_2^2(\mathscr{N}_1, \mathscr{N}_2) = \| \mu_1 - \mu_2 \|_2^2 + \text{Tr}(\Sigma_1 + \Sigma_2 - 2(\Sigma_1^{\frac{1}{2}} \Sigma_2 \Sigma_1^{\frac{1}{2}})^\frac{1}{2}) \tag{6}

ii 个目标的椭球因此细化为最小化:

j=0Nσj1W22(Eij,PjQiPjT)(7)\sum_{j=0}^N \sigma_j^{-1} \mathscr{W}_2^2 (E_{ij}, P_j Q_i^{*} P_j^T) \tag{7}

其中 EijE_{ij} 为第 jj 个关键帧中的椭圆,QQ^{*} 为第 ii 个目标的对偶矩阵,PjP_j 为第 jj 个关键帧的投影矩阵,σj\sigma_j 为第 jj 个关键帧的检测分数,NN 为物体的被观测次数。

3.5.2 Object Fusion

在某些情况下,目标可能会在地图中重复:

  • 当检测到的目标在几帧内不可见,并且数据关联未能正确地将其与现有轨迹重新匹配并在地图中插入新目标时,就会发生这种情况。为了防止这种情况,系统需要定期检查重复的对象。

如果两个同一类别的物体的 3D 框 IoU 超过一定的阈值(实验中为 0.2),或者如果一个椭球的中心位于另一个椭球的内部,或者它们共享的共同 3D 地标超过 τ\tau,则被认为是同一物体。在这种情况下,在关键帧中跟踪的两个目标的检测框被合并,并初始化一个新的椭球体。

3.6 Relocalization using Objects

ORB-SLAM2 原始的重定位方法具有较好的可靠性,但当查询图像远离过去的相机轨迹时往往失效。它使用词袋描述符来寻找相似的候选关键帧并搜索点匹配,当重建地图上的视点与关键帧差异显著时,这种方法经常失败。

本文使用一种基于对象的方法来增强重定位,对视点变化更鲁棒,当建立的点对应关系太少时就会触发视点变化。

从 PnP 计算的姿态比从物体对应关系中获得的姿态更准确,本文的主要思想是用从 2D/3D 物体对应关系中计算的姿态来指导点匹配。这种姿态通常足以使地标点的投影与检测到的点相似,从而允许轻松执行点对应并使用 PnP 进行定位。

根据椭圆-椭球的分类建立椭圆-椭球对。在每次迭代中,选择由 3 个椭圆-椭球对形成的集合,并在椭圆和椭球中心上使用 P3P 算法计算相机姿态。P3P 提供了 4 种解决方案。对于每个姿态,投影椭球并根据它们的重叠与检测相关联。成本计算为每个关联对的 1−IoU 之和,并选择四个 P3P 解决方案中具有最小成本的姿态。通过 ORB-SLAM2 的局部匹配步骤,利用这些姿态识别关键点与地标的对应关系,最后选择代价最小且关键点与地标匹配次数超过 30 次的姿态,并在点上进行优化。

4 Experiments and Results

  • 数据集:TUM RGB-D

4.1 Object Mapping

4.2 Object versus Point

4.3 Application to AR

4.4 By-Part Modeling

参考

  • https://www.youtube.com/watch?v=50zXF7Z7FLo(视频)
  • [1] Nicholson L, Milford M, Sünderhauf N. Quadricslam: Dual quadrics from object detections as landmarks in object-oriented slam[J]. IEEE Robotics and Automation Letters, 2018, 4(1): 1-8.
  • [2] Liao Z, Hu Y, Zhang J, et al. SO-SLAM: Semantic object SLAM with scale proportional and symmetrical texture constraints[J]. IEEE Robotics and Automation Letters, 2022, 7(2): 4008-4015.
  • [3] Wang J, Rünz M, Agapito L. DSP-SLAM: Object oriented SLAM with deep shape priors[C]//2021 International Conference on 3D Vision (3DV). IEEE, 2021: 1362-1371.
  • [4] S. Pan, S. Fan, S. W. K. Wong, J. V. Zidek, and H. Rhodin. Ellipse detection and localization with applications to knots in sawn lumber images. In WACV, 2021.