HF-Net
Sarlin 2019 · 论文
一句话总结 — 由粗到细的分层定位方法:全局检索先将搜索范围缩小到候选地点,再由局部特征匹配得到精确的6自由度位姿——HF-Net 用单次CNN前向传播同时计算这两类特征。
问题
鲁棒且精确的视觉定位是自动驾驶、移动机器人和AR的基础能力,但在大尺度场景和强烈的外观变化(昼夜、季节)下仍然十分困难。直接的2D-3D匹配方法(Active Search、CSL)精度高,但随着模型规模增大和外观变化,匹配会变得模糊且缓慢;基于图像检索的方法鲁棒性好,但只能给出精度受限于数据库离散程度的位姿。手工设计特征(SIFT)限制了鲁棒性,学习型稠密特征在移动端难以承受计算量——而分别计算一个检索网络和一个局部特征网络又是冗余的,因为两者都源自相同的底层图像线索。
方法与架构
分层定位流程(沿用 Sarlin 2018 的思路,并升级为学习型特征):
- 先验检索:将查询图像的全局描述子与数据库图像匹配;k个最近邻即为候选地点。
- 共视聚类:将先验帧分组为多个地点——即将数据库图像与SfM模型三维点相连的共视图中的连通分量。
- 局部匹配:在每个地点内,将查询图像的2D关键点与该地点的三维点匹配,并用PnP+RANSAC估计6自由度位姿,一旦得到首个有效位姿即停止。改进的比值测试仅在两个最近邻属于不同三维点时才拒绝该匹配,从而在高共视区域保留匹配。
最强的变体 NV+SP 用NetVLAD做检索、SuperPoint做局部特征;SfM模型在真值参考位姿下,通过COLMAP用SuperPoint关键点重新三角化。
HF-Net。 为了让该流程能在移动端运行,单个MobileNetV2编码器(深度乘数0.75)驱动三个输出头:关键点得分和稠密局部描述子(采用SuperPoint的无参数解码方式,在第7层分支,此时空间分辨率仍较高),以及在第18层输出的NetVLAD全局描述子头——局部特征比全图级特征处于更低层,因此分支点也不同。
多任务蒸馏。 真值局部对应关系和全局多样化影像在任何数据集中都无法共存,因此HF-Net被训练成模仿三个教师模型——NetVLAD(,全局)、SuperPoint(描述子、关键点)——并使用自平衡损失权重 (Kendall等人的方法):
其中 为全局/局部描述子, 为关键点得分。训练使用18.5万张Google Landmarks白天图像,外加3.7万张夜间/黄昏的Berkeley Deep Drive图像(夜间数据被证明对夜间检索至关重要),并采用光度增强,但教师目标是在干净图像上预测得到的。
实验结果
- 基准测试(在距离/朝向阈值内的召回率):在Aachen Day-Night上,NV+SP在(0.5m,2°)/(1m,5°)/(5m,10°)阈值下对夜间查询的定位率分别为40.8/56.1/74.5%,而NV+SIFT为30.6/43.9/58.2,Active Search为19.4/30.6/43.9。在CMU Seasons城市场景中,NV+SP达到91.7/94.6/97.7,而语义SMC基线为75.0/82.1/87.8。在RobotCar Seasons夜间场景中为6.6/17.1/32.2,而AS为0.5/1.1/3.4。HF-Net与其NV+SP上界相差不超过平均召回率2.6%(其蒸馏得到的全局描述子是在RobotCar夜间模糊查询上的限制因素)。
- 蒸馏可以超越教师:将HF-Net的局部特征换入NV+SP流程(NV+HF-Net)后,在Aachen上略优于SuperPoint本身(例如白天0.25m阈值下81.2对79.7)。
- 更精简的地图:SuperPoint/HF-Net在Aachen上构建的模型有68.5万个三维点,而SIFT为189.9万个,每张图像的关键点数为2,576对10,230,且被匹配上的关键点比例更高(33.8%对18.8%)——即更稀疏的模型反而定位效果更好。
- 运行时间(GTX 1080):在Aachen白天数据上完整定位耗时45毫秒,而NV+SP为148毫秒、Active Search为375毫秒、NV+SIFT为1356毫秒——HF-Net推理比单独运行NetVLAD+SuperPoint快7倍,整个系统运行速度超过20FPS,约比AS快10倍。
对SLAM的意义
HF-Net确立的由粗到细范式,如今已成为SLAM中重定位和回环检测验证的通用设计:几乎所有现代系统都是用全局描述子检索地点,再用局部特征匹配加以确认。其配套工具箱hloc成为了竞赛和研究中使用的标准视觉定位流程,同样的方法也支撑着大规模AR定位服务。
相关条目
- hloc — 实现该分层流程的开源工具箱
- NetVLAD — 全局检索描述子
- SuperPoint — 用于精细匹配的局部特征
- SuperGlue — 后来升级精细匹配阶段的学习型匹配器
- Visual Place Recognition (VPR) — 一般意义上的粗检索问题