GV-Bench
收藏GV-Bench: Benchmarking Local Feature Matching for Geometric Verification of Long-term Loop Closure Detection
摘要
视觉回环检测是视觉同时定位与地图构建(SLAM)中的重要模块,它将当前相机观测与先前访问过的地方关联起来。回环检测通过纠正轨迹估计中的漂移来构建全局一致的地图。然而,错误的回环检测可能是致命的,因此需要验证步骤来确保鲁棒性,通过拒绝假阳性回环来实现。几何验证是一种公认的解决方案,它利用局部特征匹配提供的空间线索来寻找真实阳性。现有的特征匹配方法主要关注长期视觉定位中的单应性和姿态估计,缺乏几何验证的参考。为了填补这一空白,本文提出了一个统一基准,针对长期条件变化下的回环检测几何验证。此外,我们评估了六种代表性的局部特征匹配方法(手工和基于学习),并进行了深入分析以指出局限性和未来方向。
新闻
- 论文已在arxiv上发布。
- 论文已被IROS 2024接受。
- 发布了图像匹配结果的可视化。
- 发布了基准(简单),请查看
dataset/gt中的图像对和google drive中的图像。
安装
我们使用HLoc代码的一部分进行特征提取和匹配。 bash git clone && cd GV-Bench git submodule init git submodule update cd third_party/Hierarchival-Localization git checkout gvbench # 这是一个定制的分支版本 python -m pip install -e .
复制实验结果
我们提供了以下格式的输出结果。您可以直接使用这些结果。 bash $seq_$feature_$match.log $seq_$feature_$match.npy # 格式如下
python np.save(str(export_dir), { prob: num_matches_norm, qImages: qImages, rImages: rImages, gt: labels, inliers: inliers_list, all_matches: pointMaps, precision: precision, recall: recall, TH: TH, average_precision: average_precision, Max Recall: r_recall })
从头开始复制
为了获得标准的特征检测和匹配结果,我们建议使用hloc。
-
从google drive下载数据集序列并放在
dataset/文件夹下。 -
使用hloc提取和匹配特征。
-
提取特征:SIFT, SuperPoint, 和 DISK bash python third_party/Hierarchical-Localization/gvbench_utils.py config/${seq}.yaml --extraction
-
匹配特征:SIFT-NN, SIFT-LightGlue (尚未实现), SuperPoint-NN, DISK-NN, SuperPoint-SuperGlue, SuperPoint-LightGlue, DISK-LightGlue, LoFTR bash
除LoFTR外的所有方法
python third_party/Hierarchical-Localization/gvbench_utils.py config/${seq}.yaml --matching
LoFTR与其他方法不同
python third_party/Hierarchical-Localization/gvbench_utils.py config/${seq}.yaml --matching_loftr
-
图像对文件
- 我们在
dataset/gt文件夹下准备了匹配的图像对(GT)文件。 - 确保使用定制的hloc进行特征提取和匹配
https://github.com/jarvisyjw/Hierarchical-Localization.git -b gvbench
- 我们在
-
-
评估
- 我们提供了开箱即用的脚本
bash cd GV-Bench/scripts bash ./evaluation <day> # 使用序列名称运行脚本:day, night, night-hard, season, season-hard, weather
基准使用
-
使用定制的局部特征进行几何验证(GV)。
TODO
致谢
- 本工作基于hloc,感谢他们的出色工作。
- 联系:
jingwen.yu@connect.ust.hk




