0%

论文记录 Towards View-invariant and Accurate Loop Detection Based on Scene Graph

Liu, Chuhao, and Shaojie Shen. “Towards View-Invariant and Accurate Loop Detection Based on Scene Graph.” arXiv, May 24, 2023. http://arxiv.org/abs/2305.14885.

1 Introduction

Lin 等人(Lin 等, 2021)提出了使用随机游走描述子建立物体实例的拓扑结构,进而实现语义图匹配,该方法可实现系数环境中大视角变化下的回环检测;但是,该方法难以处理距离较近的、具有相同语义标签的模糊实例,然而,室内场景中这种情况有很常见,如Fig. 1 所示,这些具有相同语义标签的临近物体实例(如图中的沙发)共享近邻neighbors,如果简单地使用随机游走描述子进行表示,它们会拥有相同的随机游走路线以及同样的拓扑结构描述子,进而会导致回环检测失败。

fig1

除了模糊实例外,随机扫描的路线所生成的语义图会包含一些变化因素:如当从不同视角扫描一个稠密场景时,只有实例的一部分会被同时观测到,由此所重建的语义图会由于较小的重叠体积导致两图不相同;又如低动态物体,打开的窗帘或者移动的椅子,它们会在重建语义图中创形成一个micro-differences 。在使用语义地标的拓扑结构进行回环检测时需要考虑这些变化因素,来保证系统的鲁棒性。

此外,语义信息辅助的回环检测性能严重依赖于前端是否可以构建持续一致的语义地标,之前的方法(Lin 等, 2021)使用object map 作为前端,在重建之前对采集到的图片进行实例分割;但是,实例分割对于视角变化较为敏感,当图片中物体的形状、外观发生变化,或者被遮挡时可能会产生不同的语义分割结果,这就导致图片间的数据关联异常困难,因此,之前的语义信息辅助回环检测大部分是基于稀疏物体场景的应用,或者忽略许多不能确定联系的物体

基于以上分析,本文提出了使用RGB-D 相机作为采集设备,通过匹配inactive 场景图与active 场景图来实现回环检测,作者不使用object map 作为前端,而是基于SceneGraphFusion 创建语义地标,SceneGraphFusion 可将一个重建的3D 图实时分割为语义实例。由于语义实例是从增量式图accumulated map中提取得到的,因此不需要帧间的数据关联。在后端中,作者使用一个随机游走描述子来创建全局拓扑结构,使用一个邻域游走描述子neighbor walk descriptor 来表示局部拓扑结构,利用一个占据体积相似度occupancy similarity 来联合考虑两种拓扑结构,实现关联查找。

2.1 Semantic Mapping with RGB-D Camera

object mapping 和 scene segmentation 都可以建立一个语义图,关键区别在于分割是在场景重建前还是重建后。

2.2 Semantic-aided Loop Detection

RGB-D 相机位姿服从4自由度:x, y, z, yaw angle。

根据node2vec 的阐述,随机游走描述子中有两种不同的游走策略:breadth-first sampling (BFS), depth-first sampling (DFS),前者代表了图的micro-view,后者代表了macro-view。X-View (Gawel 等, 2018)提出了使用DFS 策略处理随机游走描述子,然而,DFS 策略是基于同质性homophily 建立顶点的拓扑结构,代表了图中顶点的共同出现,因此,当出现具有共享邻域的模糊语义实例时会导致错误匹配;而且,DFS 对于图变化更敏感,特别是当使用不准确的特征来描述顶点时。这就导致当出现视角或分割变化时随机游走描述子的退化。

因此,为了确保实例拓扑的可区分描述discriminative description 来提高剧烈视角变化时的鲁棒性,作者联合使用随机游走描述子邻域游走描述子来表示实例拓扑结构。

3 Methodology

3.1 System Overview

fig2

系统工作流程如下:

  1. 本系统使用RGB-D 图片作为输入,并使用ORB-SLAM3 来计算相机位姿;
  2. 前端使用SceneGraphFusion 对重建场景进行增量式分割,基于此创建一个动态场景图activate scene graph,并为每个实例创建拓扑描述子
  3. 然后,将动态图与一个提前构建的非动态图进行匹配实现回环检测,如果成功检测到回环,对两图之间的位姿漂移进行估计,并融合相应的场景图。

3.2 Active Scene Graph Construction

基于SceneGraphFusion 构建一个场景图 $G = \{V, \xi\}$ ,其中 $V$ 是顶点组合,$\xi$ 是边组合。

将SceneGraphFusion 产生的节点nodes 作为输入来产生顶点,一些节点可能是被过度分割的物体实例的部分,作者将这些节点进行融合作为一个实例;忽略那些体积太小或者低置信度的物体实例。每一个被创建的实例表示为顶点 $v_i = \{\mathbf{p, b, n}, l\}, v_i \in V$ ,其中 $\mathbf{p} \in R^3$ 表示实例中心坐标,轴对齐的bounding box 尺寸 $\mathbf{b} \in R^3$ ,法向量 $\mathbf{n} \in R^3$ ,以及语义标签 $l$ ,其中,法向量 $\mathbf{n}$ 只适用于平面类实例,如墙壁、地板等。由于相机位姿为4自由度,所以各顶点会将其roll、pitch朝向进行对齐。

边 $\xi$ 的构建过程考虑顶点的语义和几何属性来添加有向边

  • 对于两个物体,如果它们的中心点距离小于一个阈值则添加一条边;
  • 对于一个物体和一个垂直的墙体,如果它们的垂直距离小于一个阈值则添加一条边;
  • 对于两个墙体,如果它们的中心距离近且其法线角度大于一个阈值,则添加一条边;
  • 对于任意的顶点以及一个地板,如果它们水平重叠,则添加一条边。

3.3 Topology Descriptors

在构建活动场景图active scene graph $G^a$ 时,每个顶点的拓扑描述子也被增量式生成。使用随机游走描述子 $\mathbf{d_i^r} \in C^{N_i \times k}$ 来描述顶点 $v_i$ 的macro-view 拓扑结构,其中 $N_i$ 表示随机游走数量,$k=4$ 表示随机游走深度。随机游走描述子生成过程如Fig. 3所示,但是它不能区分模糊实例

fig3

为了解决模糊实例、提高鲁棒性,作者提出了顶点 $v_i$ 的邻域游走描述子 $\mathbf{d^n_i} \in C^{M_i \times q}$ ,其中 $M_i$ 表示邻域游走数量,$q=4$ 表示游走深度。沿着z 轴逆时针遍历顶点 $v_i$ 的邻域,若当前邻接物体与上个邻接物体之间的角度大于 150°,则忽略该次游走。如Fig. 3所示,使用邻域游走描述子可以区分模糊实例(图中的两把椅子)。邻域游走描述子是收到node2vec 的BFS 策略启发产生的,强调了顶点的结构一致性,另一个优点是对于4自由度位姿漂移的不变性

顶点 $v_i$ 的完整拓扑结构描述子表示为 $\{\mathbf{d_i^r, d_i^n}\}$ 。

3.4 Graph Match

3.4.1 Build Score Matrix

计算所有可能节点对的相似度得分,如对于活动场景图与先验场景图中的一对节点 $\{v_i, v_j | v_i\in V^a, v_j \in V^i\}$ ,它们的相似度计算公式如下所示:

f1

其中,随机游走项与邻域游走项分别计算并归一化:

f1-1

两式的分子均为两组描述子中相同行的个数,值得注意的是,两个式子的归一化分母取值不同:

  • 对于随机游走描述子,归一化分母取值为两个描述子行数的最小值,这样可以实现当 $v_i$ 由于不完整扫描导致部分游走缺失,但 $\mathbf{d_i^r}$ 中的大部分游走都可以在 $\mathbf{d_j^r}$ 中找到相同部分时,仍可实现较高的相似度得分;
  • 而邻域游走描述子的归一化分母取值为两个描述子行数中的最大值,当 $v_i$ 与 $v_j$ 拥有不同的邻域描述子,即便部分游走相同,但是计算得到的相似度得分较低,这样就相当于设定了一个较高的匹配阈值,可有效减小模糊实例的错误匹配。

此外,相似度计算还考虑了物体的体积相似度,计算如下所示:

f2

其中, $\mathbf{b} \in R^3$ 是轴对齐的bounding box 尺寸,而 $l(\mathbf{b})$ 是对角线长度。

由此可得到两节点的相似度得分 $S_{ij}$ ,进而得到两图的完整得分矩阵 $S \in R^{|V^s| \times |V^t|}$ 。

3.4.2 Find Correspondences

由上文得到的得分矩阵 $S$ ,将每行、每列的最高分保留,其余元素置零,如果最大相似度大于阈值 $\tau = 0.5$ ,则将其标记为一对匹配实例。最终,如果达到最小匹配数量 $\epsilon = 4$ ,表示回环检测成功。