0%

论文记录 Semantic Visual Localization

Schonberger, Johannes L., Marc Pollefeys, Andreas Geiger, and Torsten Sattler. “Semantic Visual Localization.” In 2018 IEEE/CVF Conference on Computer Vision and Pattern Recognition, 6896–6906. Salt Lake City, UT: IEEE, 2018. https://doi.org/10.1109/CVPR.2018.00721.

1 Introduction

本文遵循基于结构的视觉定位方法,并使用一个三维语义图作为数据库场景database scene 的表示;给定一个带有语义分割和深度图的查询图片,作者建立一个三维的语义查询图,并从中提取到的局部描述子,然后在查询描述子和数据库描述子之间使用3D-3D 匹配,来对齐图并获取所要查询的位姿估计。

所有的视觉定位方法(包括本文提出的方法)都直接或间接地测量一个查询图片与数据库场景表示之间的相似度(视觉或结构),因此,这些方法都默认一个先验假设:查询图与数据库图是在充分相似的条件(视角、光照以及场景外观等)下描述一个场景的。如Fig. 1所示,这种先验假设在实际应用场景中会被轻易地打破。

fig1

主要挑战在于如何建立查询图与数据库图之间的data association。现有的基于图片或基于结构的方法都使用具有区别性的局部特征:同样物理点的描述子是相似的,不相关点的描述子差距很大。然而,视觉观测条件的巨变(外观或几何)却对同一物理点在不同外观下要求具有不变的embedding 表示,这与上述方法的区别性描述子相矛盾。

为解决该问题,作者提出了一种基于生成式的描述子学习方法。该方法的核心在于学习一个欧氏空间中的embedding,该embedding 包含有恢复不同视角条件下场景外观所需的所有信息。作者提出的该embedding 包含高等级的3D 几何信息和语义信息,使得我们可以处理强烈的视角改变以及轻微的场景几何改变(如由季节变化引起的)。此外,作者还提出一个基于3D 语义场景补全辅助任务的声称是描述子模型,该描述子可通过自监督学习进行获取,且泛化能力较好。

本文贡献如下:

  1. 提出一个基于3D 几何信息和语义信息的视觉定位方法;
  2. 利用面向3D 语义场景补全的生成式模型进行描述子学习;
  3. 证明了本方法在两个挑战性问题中的有效性:在强烈视角变化以及光照/季节改变情况下相机位姿的精确估计。

即使不用语义信息,本方法也远远超过现有的SOTA 方法,这证明了生成式描述子在定位应用中的强大,而包含语义信息后会取得更大的性能提升。

3 Semantic Visual Localization

本文提出的语义视觉定位方法包含以下三个步骤:

  1. 离线操作:利用语义场景补全辅助任务来学习鲁棒的局部描述子;
  2. 在线操作:使用该局部描述子建立查询图与数据库图之间的3D-3D匹配;
  3. 在线操作:利用匹配来估计两个图之间的对齐关系,进而获取查询图对应的位姿。

3.1 Semantic Segmentation and Fusion

将语义分割后的图片融合为语义3D体素地图,该地图在体素分辨率上具有强烈照明改变以及几何改变的不变性。尽管语义信息包含高层次的场景信息,但是为实现对场景的明确、实例级的理解就需要较大的空间上下文信息,这就会导致由于遮挡造成的观测缺失,比如不同视角(甚至是相反视角)下查询图与数据库图之间的结构重叠会非常小。因此,本文方法的一个主要挑战就在于在共同观测缺失的情况下如何实现查询图与数据库图之间的鲁棒匹配。

3.2 Generative Descriptor Learning

因为查询图和数据库图在尺寸和覆盖范围上的不同,作者选择建立两图中具有相同尺寸的子块 $ v_D \in M_D, v_Q \in M_Q$ 之间的联系,利用一个function来识别相似的子块,其中,语义场景理解是该function的关键。

针对该function的两种传统解决方法是:匹配function $f(v_D, v_Q)$ 和embedding $f(v)$ 。embedding $f(v)$ 是将相同的子块映射到欧氏空间内的相似点处;而匹配function $f(v_D, v_Q)$ 理论上具有更强大区分能力,但是其使用穷举配对比较方法具有太大的计算复杂度,在大规模数据上难以高效运行。因此,本文选用embedding $f(v)$ 方法,每个子块只需要评估一次即可。 $f(v)$ 将一个子块映射为一个低维空间描述子,同时编码场景语义和几何信息。

为了从不同视角甚至是相反视角下识别出同一物体,需要对子块的未观测部分进行补全,作者引入了语义场景补全辅助任务:使用function $h(v)$ 来补全输入未观测部分的语义和几何信息。作者使用一个3D 编码器-解码器结构 $h(v) = g(f(v))$ , 其中 $f$ 是对不完整子块进行编码的神经网络,$g$ 是对子块进行补全的神经网络。$h$ 的架构和示分别如Fig.2 和 Fig. 3所示。值得注意的是,网络训练完成后,本文的语义定位pipeline只使用 $h$ 的编码器部分 $f$ 来产生描述子 $\mu$ 。

fig2

fig3

3.3 Bag of Semantic Words

利用编码器部分 $f$ 产生描述子 $\mu$ 来创建一个 Bag of Semantic Words。

作者在离线步骤中使用训练数据集的bag of semantic words 建立一个语义词库 semantic vocabulary,使用层级k-means 和 一个 Hamming embedding 来量化描述子空间,将数据库图的所有语义词 semantic words 建立词库树索引,作为实现高效匹配的数据结构。在匹配过程中遍历词库树索引并找到汉明距离最近的匹配结果。

3.5 Semantic Alignment and Verification

根据3.4节得到的匹配结果,寻找将query与数据库地图实现最佳对齐的转换关系 $P \in SE(3)$ ,一个好的对齐定义为同时满足几何及语义对齐。本描述子不具有旋转不变性,因此,转换关系P 包含了旋转与平移参数。

作者穷尽匹配对所有的转换假设,对于每一个转换假设P,将query经P转换后与数据库地图进行对齐,计算正确对齐的体素个数,体素的正确对齐包含几何(占用)与语义的一致性。作者使用ICP (Iterative Closest Point) 算法进一步细调对齐关系。