From coarse to fine: robust hierarchical localization at large scale 是目前正在ETHZ的CVG组读博的Paul-Edouard Sarlin在硕士期间发表在CVPR 2019的一篇论文。这篇论文还附带了一个开源的定位工具箱hloc.

总体而言这篇工作的思想还是比较简单直观的,这篇工作要解决的问题是在大场景下的6-DoF视觉定位,为了提高定位的效率以及鲁棒性,作者使用了 “from coarse to fine” 的定位方式,即从粗到细的定位。本篇工作的主要内容为一分层特征网络(Hierarchical Feature Network, HF-Net)。

背景

视觉定位是计算机视觉中的一项关键任务,在机器人、自动驾驶等等领域有着广泛的应用。随着视觉定位应用的范围增长,其所需要解决的问题也就更多,诸如明暗变化、天气,季节变化、室内外定位等等。因此鲁棒性对于该任务是至关重要的。同时,在机器人和各种载具上的资源是有限的,因此,本文的目的即是研究在计算资源受限条件下的大尺度变化场景鲁棒定位。

作者指出目前的定位方法主要可分为两类:

  • 利用局部描述子对2D图像特征点和3D模型中的特征点进行匹配的定位。该方法无法同时达到高效和鲁棒两个目标。
  • 利用全局描述子进行图像检索(image retrieval)。该方法鲁棒性和效率好,但是精度差。

框架

作者提出了一种从粗到细的定位方式,利用到了图像的全局特征和局部特征进行定位。也就是说结合了特征点匹配定位和图像检索定位的优势:

  1. 先进行图像检索确定大致的6-DoF位姿,从而降低下一步进行特征点匹配时的计算复杂度;
  2. 根据图像检索得到的大致位姿,将图像的局部特征子和图像附近的3D模型中的特征子进行匹配,利用PnP+RANSAC进行精细定位,得到最终的结果;
Pipeline
Pipeline

如pipeline所示:首先离线提取图片的全局特征构建 global index,以及利用 SfM 重建3D模型得到局部特征在三维空间中的位置。然后再进行在线定位(即先进行图像检索,再根据PnP的方式求得最终位姿)

作者也指出了近年来基于神经网络的特征在变化场景下具有较好的鲁棒性。因此,为了进一步提升计算效率,作者提出了HF-Net以同时提取局部特征和全局特征。同时作者利用模型蒸馏的方式将多个SOTA的预测头(也就是局部特征层和全局特征层)结合起来,提升了计算效率。

HF-Net的整体框架如下:

HF-Net
HF-Net

由于图片的全局特征(如VLAD等)往往是由局部特征聚合而来,因此全局特征网络和局部特征网络共用一个backbone是很合理的一个想法。本文中作者选用MobileNet作为backbone,降低模型参数,提升推理速度。 同时作者选用 NetVLAD 作为 global teacher model,选用 Superpoint 作为 local teacher model. 通过模型蒸馏的方式去直接地去联合学习全局特征和局部特征,能够有效地缩小

student network 的大小并且加速训练。

实验

作者在Aachen Daynight, RobotCar 和 CMU Seasons这类包含了昼夜、天气、季节变化的大场景数据集上进行了测试,并且与其他多种方式进行了对比。最终得出的结论是相对于单一的特征点定位或图像检索定位,这种层次化定位的精度得到了巨大的提升。同时作者也将层次化定位中的Superpoint特征更换为SIFT特征进行测试,结论是相对于SIFT这种传统手工特征,Superpoint特征在变化场景下展现出了更好的鲁棒性。

针对于HF-Net定位的速度,作者也给出了数据:在GTX 1080上,HF-Net能够达到20fps左右的运行速度。

个人评价

这一套层次化定位思想简单但有效,HF-Net作为一种神经网络能够达到很高的运行速度,足以在移动设备上运行。而且再加上很多场景下可以利用其他传感器提供位置信息,这里的层次化视觉定位可以仅用于提供一个先验的约束。而在NVIDIA Jetson嵌入式开发板上运行时预估能够达到的数fps的速度已经能够有效地提供先验定位结果了。