Giter Site home page Giter Site logo

jarvisyjw / gv-bench Goto Github PK

View Code? Open in Web Editor NEW
16.0 1.0 0.0 19.14 MB

A geometric verification benchmark targeting long-term loop closure detection.

License: MIT License

Python 100.00%
image-matching loop-closure-detection visual-place-recognition

gv-bench's Introduction

GV-Bench: Benchmarking Local Feature Matching for Geometric Verification of Long-term Loop Closure Detection

Description

Abstract

Visual loop closure detection is an important module in visual simultaneous localization and mapping (SLAM), which associates current camera observation with previously visited places. Loop closures correct drifts in trajectory estimation to build a globally consistent map. However, a false loop closure can be fatal, so verification is required as an additional step to ensure robustness by rejecting the false positive loops. Geometric verification has been a well-acknowledged solution that leverages spatial clues provided by local feature matching to find true positives. Existing feature matching methods focus on homography and pose estimation in long-term visual localization, lacking references for geometric verification. To fill the gap, this paper proposes a unified benchmark targeting geometric verification of loop closure detection under long-term conditional variations. Furthermore, we evaluate six representative local feature matching methods (handcrafted and learning-based) under the benchmark, with in-depth analysis for limitations and future directions.

Run-time Analysis

We measure the runtime of six methods listed in Table I on NVIDIA GeForce RTX 3090 GPU and Intel i7-13700K CPU over 10K runs. The results are shown in figure below as inference time over performance, i.e., max recall @100 precision. We can conclude that the runtime of six local feature matching methods is at a millisecond level on a modern GPU. The choice can be made based on the trade-off between time efficiency and performance.

Description

News

  • ๐Ÿš€ Releasing the visualization of image matching results. (google drive)

  • ๐Ÿš€ ๐Ÿš€ Releasing the benchmark (easy)! Checkout the image pairs from dataset/release/pairs and images from google drive

  • โญ Benchmark usage is coming soon!

Release Timeline

  • Appendix for visualization
    • Visualization of image matches
    • Visualization of inliers' distirbution
  • Release benchmark sequences.
    • Benchmark-easy
      • Day
      • Weather
      • Night-easy
      • Season-easy
    • Benchmark-hard
  • Release Local feature extraction and matching implementation
  • Release evaluation tools
  • Release data analysis tools
  • Expansion to other verification methods
    • Dopplergangers
    • Semantics
    • Keypoint topology
  • Release sequence version of benchmark

Installation

We use part of the HLoc code for feature extraction and matching.

git clone && cd GV-Bench
git submodule init
git submodule update
cd third_party/Hierarchival-Localization
git checkout gvbench # this is a customized fork version
python -m pip install -e .

Usage

  • Download the dataset sequences from google drive and put it under the dataset/ folder.
  • Extract and match feature using hloc (Take SuperPoint and SuperGlue as an example).
    • Extract features: SIFT, SuperPoint, and DISK

      python gvbench_utils.py --extraction --image_path /path/to image/ --output_path /path/to/output
      python gvbench_utils.py --extraction --image_path dataset/images/ --output_path dataset/output/features/
    • Match features: SIFT-NN, SIFT-LightGlue (Not yet implemented), SuperPoint-NN, DISK-NN, SuperPoint-SuperGlue, SuperPoint-LightGlue, DISK-LightGlue, LoFTR

      # all methods except LoFTR
      python gvbench_utils.py --matching --pairs /path/to/pairs 
                  --features /path/to/feature/root/folder 
                  --output_path /path/to/matches/output
      
      # LoFTR is different from above methods thus
      python gvbench_utils.py --matching_loftr --pairs datasets/GV-Bench/release/gt/day.txt 
              --features datasets/GV-Bench/release/features 
              --output_path datasets/GV-Bench/release/matches
    • Image pairs files

      • We prepare pairs file for matching under pairs/ foler.
      • e.g. day.txt means single image pairs and day_5.txt means sequence image pairs.

Acknowledgement

gv-bench's People

Contributors

jingwenyust avatar jarvisyjw avatar

Stargazers

Chen Yao avatar Jeff Carpenter avatar Winky Ge avatar  avatar mmc avatar  avatar Frankie Dong Li avatar Tianyu(Joey) Liu avatar  avatar  avatar  avatar Andre Nguyen avatar gogojjh avatar Guangcheng Chen avatar  avatar MedlarTea (Hanjing YE) avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.