A program that determines which matching algorithm or neural network best fits the needs for the Clew app.
- opencv-python
- numpy
- scipy
- pandas
- matplotlib
- torch
- pickle
- protobuf
- progressbar
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 byFirebaseWrapper.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.
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 ofBenchmarkers
to run in themain.py
file.mesh_pb2.py
: Contains the protobuf class for unpacking the LiDAR data.