Awesome
SiLK - Simple Learned Keypoints
[Arxiv Paper] <br/> Authors : Pierre Gleize, Weiyao Wang and Matt Feiszli <br/> Conference : ICCV 2023
SiLK is a self-supervised framework for learning keypoints. SiLK focuses on simplicity and flexibility, while also providing state-of-art and competitive results on existing benchmarks.
<p float="middle"> <img src="doc/images/keypoints.png" width="33%"/> <img src="doc/images/matches.png" width="66%"/> </p>Pre-trained models are also provided.
The released code has been tested on Linux, with two Tesla V100-SXM2 GPUs and takes about 5 hours to train.
Requirements
- conda should be installed in order to setup the silk environment.
- Two GPUs are required to train SiLK.
Usage
- How to setup the python environment ?
- How to setup datasets ?
- How to train SiLK ?
- How to add a backbone ?
- How to run the evaluation pipeline ?
- How to run inference ?
- How to convert SiLK to torch script ?
- How to import SiLK features to COLMAP ?
- FAQ
Results
The results below have been computed using our VGG-4 backbone (checkpoint pvgg-4.ckpt for tab 2,3,6 and coco-rgb-aug for tab 4,5). To reproduce the IMC2022 results, we also provide the Kaggle notebook.
<img src="doc/images/results-hpatches-sparse.png" width="100%"/> <p float="middle"> <img src="doc/images/results-hpatches-dense.png" width="46%"/> <img src="doc/images/results-imc.png" width="53%"/> </p> <p float="middle"> <img src="doc/images/results-scannet-pose.png" width="36%"/> <img src="doc/images/results-scannet-pcloud.png" width="63%"/> </p>Full Documentation
We provide a documentation, but it is non-exhaustive. Please create a new issue if clarification is required regarding some part of the code. We will add documentation if required by the community.
Our documentation can be found here.
Contributions
See the CONTRIBUTING file for how to help out.
License
SiLK is licensed under a GNU General Public License (Version 3), as specified in the LICENSE file.