Top AI Repos — open-source AI, indexed and scored
Top AI Repos tracks AI repositories on GitHub and answers two different questions about each one: is it moving right now, and would you bet a product on it.
Top AI Repos tracks AI repositories on GitHub and answers two different questions about each one: is it moving right now, and would you bet a product on it.
LightGlue: Local Feature Matching at Light Speed (ICCV 2023)
| Date | Stars |
|---|---|
| 2026-07-24 | 4672 |
| 2026-07-25 | 4671 |
| 2026-07-28 | 4671 |
| 2026-07-30 | 4671 |
| 2026-08-06 | 4671 |
Today
— stars today
This week
— stars this week
This month
— stars this month
Momentum
0.0
growth rate 0.00%/day
<p align="center">
<h1 align="center"><ins>LightGlue</ins> ⚡️<br>Local Feature Matching at Light Speed</h1>
<p align="center">
<a href="https://www.linkedin.com/in/philipplindenberger/">Philipp Lindenberger</a>
·
<a href="https://psarlin.com/">Paul-Edouard Sarlin</a>
·
<a href="https://www.microsoft.com/en-us/research/people/mapoll/">Marc Pollefeys</a>
</p>
<h2 align="center">
<p>ICCV 2023</p>
<a href="https://arxiv.org/pdf/2306.13643.pdf" align="center">Paper</a> |
<a href="https://colab.research.google.com/github/cvg/LightGlue/blob/main/demo.ipynb" align="center">Colab</a> |
<a href="https://huggingface.co/spaces/ETH-CVG/LightGlue" align="center">🤗 Demo </a> |
<a href="https://psarlin.com/doc/LightGlue_ICCV2023_poster_compressed.pdf" align="center">Poster</a> |
<a href="https://github.com/cvg/glue-factory" align="center"> ⚙️ Train your own</a>
</h2>
</p>
<p align="center">
<a href="https://arxiv.org/abs/2306.13643"><img src="assets/easy_hard.jpg" alt="example" width=80%></a>
<br>
<em>LightGlue is a deep neural network that matches sparse local features across image pairs.<br>An adaptive mechanism makes it fast for easy pairs (top) and reduces the computational complexity for difficult ones (bottom).</em>
</p>
##
This repository hosts the inference code of LightGlue, a lightweight feature matcher with high accuracy and blazing fast inference. It takes as input a set of keypoints and descriptors for each image and returns the indices of corresponding points. The architecture is based on adaptive pruning techniques, in both network width and depth - [check out the paper for more details](https://arxiv.org/pdf/2306.13643.pdf).
We release pretrained weights of LightGlue with [SuperPoint](https://arxiv.org/abs/1712.07629), [DISK](https://arxiv.org/abs/2006.13566), [ALIKED](https://arxiv.org/abs/2304.03608) and [SIFT](https://www.cs.ubc.ca/~lowe/papers/ijcv04.pdf) local features.
The training and evaluation code can be found in our library [glue-factory](https://github.com/cvg/glue-factory/).
LightGlue is now part of 🤗 [Hugging Face Transformers](https://huggingface.co/docs/transformers/main/en/model_doc/lightglue) (credit to [@sbucaille](https://huggingface.co/stevenbucaille)!). It enables easy inference in a few lines of Python code, using `pip install transformers` ([model card](https://huggingface.co/ETH-CVG/lightglue_superpoint)).
## Installation and demo [](https://colab.research.google.com/github/cvg/LightGlue/blob/main/demo.ipynb) [](https://huggingface.co/spaces/ETH-CVG/LightGlue)
Install this repo using pip:
```bash
git clone https://github.com/cvg/LightGlue.git && cd LightGlue
python -m pip install -e .
```
We provide a [demo notebook](demo.ipynb) which shows how to perform feature extraction and matching on an image pair.
Here is a minimal script to match two images:
```python
from lightglue import LightGlue, SuperPoint, DISK, SIFT, ALIKED, DoGHardNet
from lightglue.utils import load_image, rbd
# SuperPoint+LightGlue
extractor = SuperPoint(max_num_keypoints=2048).eval().cuda() # load the extractor
matcher = LightGlue(features='superpoint').eval().cuda() # load the matcher
# or DISK+LightGlue, ALIKED+LightGlue or SIFT+LightGlue
extractor = DISK(max_num_keypoints=2048).eval().cuda() # load the extractor
matcher = LightGlue(features='disk').eval().cuda() # load the matcher
# load each image as a torch.Tensor on GPU with shape (3,H,W), normalized in [0,1]
image0 = load_image('path/to/image_0.jpg').cuda()
image1 = load_image('path/to/image_1.jpg').cuda()
# extract local features
feats0 = extractor.extract(image0) # auto-resize the image, disable with resize=None
feats1 = extractor.extract(image1)
# match the features
matches01 = matcher({'image0': feats0, 'image1': feats1})
featExcerpt of 10,203 characters
Read on GitHubPhilipp Lindenberger · ETH Zurich · Switzerland
18
Paul-Edouard Sarlin · Switzerland
10
skydes
5
Dmytro Mishkin · Czech Technical University in Prague · Czech Republic
4
Fabio Milentiansen Sim
1
1
1
Would you bet a product on this? Bounded 0–100 and slow moving.
matched fp:9ddf3446ba4df9c6, topic:deep-learning
matched fp:9ddf3446ba4df9c6, topic:pose-estimation