Skip to content

A program that determines which matching algorithm or neural network best fits the needs for the Clew app.

Notifications You must be signed in to change notification settings

occamLab/MatchingBenchmarking

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

76 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

MatchingBenchmarking

A program that determines which matching algorithm or neural network best fits the needs for the Clew app.

Getting Started

Dependencies

  • opencv-python
  • numpy
  • scipy
  • pandas
  • matplotlib
  • torch
  • pickle
  • protobuf
  • progressbar

File Structure

Main files

  • main.py: The main file that runs the program.
  • FirebaseWrapper.py: Contains the FirebaseWrapper class that handles downloading data from Firebase Storage and extracting session data from it.
    It runs these scripts before collecting the session data:
    • sync_firebase_storage.sh: A bash script that syncs the Firebase Storage bucket with a local directory.
    • untar.sh: A bash script that untars all the tar files into correctly nested directories.
  • SessionGenerator.py: Takes the session data generated by FirebaseWrapper.py and creates a pickle file containing all the sessions.
  • Benchmarker.py: Contains the Benchmarker class that runs the matching algorithms and neural networks on different sessions.

Helper files

  • MatchingAlgorithms.py: Contains OpenCV image matching algorithms and SuperGlue abstracted into classes to streamline the benchmarking process.
  • UniMatch.py: Standardizes datatype for matched keypoints to be used in the image matching algorithms.
  • benchmarkers/: Contains different types of Benchmarkers to run in the main.py file.
  • mesh_pb2.py: Contains the protobuf class for unpacking the LiDAR data.

Refer to demo.ipynb for a demo of the benchmarkers.

About

A program that determines which matching algorithm or neural network best fits the needs for the Clew app.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •