How fast can image matching be?
This repository aims to combine the fastest feature extraction and matching methods, i.e. XFeat and LightGlue, and evaluate their performance on laptop and service devices.
git clone https://github.com/LuoXubo/FastMatch.git
conda create -n fastmatch python=3.8 -y
conda activate fastmatch
pip install -r requirements.txt
See demo.ipynb
for a quick start.
- Test device: Ubuntu 20.04, RTX 3090 Ti
- Test image size: 800x600
Method | Feature Extraction | Matching | Total Time |
---|---|---|---|
SP + LG | 0.060s | 0.020s | 0.0800s |
Efficient LoFTR | - | - | 0.0630s |
XFeat + mnn (sparse) | 0.016s | 0.0007s | 0.0167s |
XFeat + mnn (semi-dense) | 0.170s | 0.007s | 0.1770s |
XFeat + LightGlue | 0.024s | 0.0202s | 0.0442s |
Notice: These methods are tested in a jupyter notebook, so the actual runing speed may be faster than the results.
Test on Orin Nano:
- Test device: Nvidia Jetson Orin Nano
- Test image size: 4000x4000
Method | Feature Extraction | Matching | Total Time |
---|---|---|---|
XFeat + mnn (sparse) | 12.146s | 0.025s | 12.171s |
- Test device: Ubuntu 20.04, RTX 3090 Ti
- Test video size: 1280x720, 30fps, shot by iPhone 13
- Test video length: 12s
XFeat + mnn
SuperPoint + LightGlue
Efficient LoFTR
XFeat + LighterGlue
Usage:
python video_matching.py --ref=assets/groot/groot.jpg --tgt=assets/groot/groot.mp4 --method=sp+lg --save_path=assets/groot/groot_sp+lg.mp4
This project is licensed under the MIT License - see the LICENSE.md file for details.