HF-Net

Sarlin 2019 · 论文

一句话总结 — 由粗到细的分层定位方法:全局检索先将搜索范围缩小到候选地点,再由局部特征匹配得到精确的6自由度位姿——HF-Net 用单次CNN前向传播同时计算这两类特征。

问题

鲁棒且精确的视觉定位是自动驾驶、移动机器人和AR的基础能力,但在大尺度场景和强烈的外观变化(昼夜、季节)下仍然十分困难。直接的2D-3D匹配方法(Active Search、CSL)精度高,但随着模型规模增大和外观变化,匹配会变得模糊且缓慢;基于图像检索的方法鲁棒性好,但只能给出精度受限于数据库离散程度的位姿。手工设计特征(SIFT)限制了鲁棒性,学习型稠密特征在移动端难以承受计算量——而分别计算一个检索网络和一个局部特征网络又是冗余的,因为两者都源自相同的底层图像线索。

方法与架构

分层定位流程(沿用 Sarlin 2018 的思路,并升级为学习型特征):

  1. 先验检索:将查询图像的全局描述子与数据库图像匹配;k个最近邻即为候选地点。
  2. 共视聚类:将先验帧分组为多个地点——即将数据库图像与SfM模型三维点相连的共视图中的连通分量。
  3. 局部匹配:在每个地点内,将查询图像的2D关键点与该地点的三维点匹配,并用PnP+RANSAC估计6自由度位姿,一旦得到首个有效位姿即停止。改进的比值测试仅在两个最近邻属于不同三维点时才拒绝该匹配,从而在高共视区域保留匹配。

最强的变体 NV+SP 用NetVLAD做检索、SuperPoint做局部特征;SfM模型在真值参考位姿下,通过COLMAP用SuperPoint关键点重新三角化。

HF-Net。 为了让该流程能在移动端运行,单个MobileNetV2编码器(深度乘数0.75)驱动三个输出头:关键点得分和稠密局部描述子(采用SuperPoint的无参数解码方式,在第7层分支,此时空间分辨率仍较高),以及在第18层输出的NetVLAD全局描述子头——局部特征比全图级特征处于更低层,因此分支点也不同。

多任务蒸馏。 真值局部对应关系和全局多样化影像在任何数据集中都无法共存,因此HF-Net被训练成模仿三个教师模型——NetVLAD(t1t_1,全局)、SuperPoint(t2t_2描述子、t3t_3关键点)——并使用自平衡损失权重 w1,2,3w_{1,2,3}(Kendall等人的方法):

L=ew1dsgdt1g22+ew2dsldt2l22+2ew3CrossEntropy(ps,pt3)+iwiL=e^{-w_{1}}\|\mathbf{d}^{g}_{s}-\mathbf{d}^{g}_{t_{1}}\|_{2}^{2}+e^{-w_{2}}\|\mathbf{d}^{l}_{s}-\mathbf{d}^{l}_{t_{2}}\|_{2}^{2}+2e^{-w_{3}}\,\mathrm{CrossEntropy}(\mathbf{p}_{s},\mathbf{p}_{t_{3}})+\sum_{i}w_{i}

其中 dg,dl\mathbf{d}^{g},\mathbf{d}^{l} 为全局/局部描述子,p\mathbf{p} 为关键点得分。训练使用18.5万张Google Landmarks白天图像,外加3.7万张夜间/黄昏的Berkeley Deep Drive图像(夜间数据被证明对夜间检索至关重要),并采用光度增强,但教师目标是在干净图像上预测得到的。

实验结果

对SLAM的意义

HF-Net确立的由粗到细范式,如今已成为SLAM中重定位和回环检测验证的通用设计:几乎所有现代系统都是用全局描述子检索地点,再用局部特征匹配加以确认。其配套工具箱hloc成为了竞赛和研究中使用的标准视觉定位流程,同样的方法也支撑着大规模AR定位服务。

相关条目