Getting Started8 min read

Getting Started with LightGlue: Complete Implementation Guide

Learn how to install and use LightGlue for feature matching in your computer vision projects. This comprehensive guide covers everything from basic setup to advanced usage patterns.

Published January 27, 2025

What is LightGlue?

LightGlue is a fast and lightweight feature matching algorithm designed for computer vision applications. It provides efficient local feature matching with early exit mechanisms and intelligent pruning of unmatchable key points. This makes it ideal for real-time applications where speed and accuracy are both critical.

Prerequisites

Before installing LightGlue, ensure you have the following:

  • Python 3.8 or higher
  • PyTorch 1.9+ (with CUDA support recommended for GPU acceleration)
  • Git (for cloning the repository)
  • Basic understanding of computer vision concepts

Installation

Follow these steps to install LightGlue:

1. Clone the Repository

git clone https://github.com/cvg/LightGlue.git
cd LightGlue

2. Install Dependencies

pip install -r requirements.txt

3. Install LightGlue

pip install -e .

Basic Usage

Here's a simple example of how to use LightGlue for feature matching:

import torch
from lightglue import LightGlue, SuperPoint
from lightglue.utils import load_image, rbd

# Initialize the models
extractor = SuperPoint(max_num_keypoints=2048).eval()
matcher = LightGlue(features='superpoint').eval()

# Load images
image0 = load_image('path/to/image1.jpg')
image1 = load_image('path/to/image2.jpg')

# Extract features
feats0 = extractor.extract(image0, max_num_keypoints=2048)
feats1 = extractor.extract(image1, max_num_keypoints=2048)

# Match features
matches01 = matcher({'image0': feats0, 'image1': feats1})
feats0, feats1, matches01 = [rbd(x) for x in [feats0, feats1, matches01]]

# Get matched keypoints
kpts0, kpts1 = feats0['keypoints'], feats1['keypoints']
m_kpts0, m_kpts1 = kpts0[matches01['matches'][:, 0]], kpts1[matches01['matches'][:, 1]]

Understanding the Output

The LightGlue matcher returns several important pieces of information:

  • matches: Array of matched keypoint indices
  • mscores: Confidence scores for each match
  • batch: Batch indices for batched processing

Advanced Configuration

LightGlue offers several configuration options to optimize performance for your specific use case:

Adjusting Keypoint Limits

# For faster processing with fewer keypoints
extractor = SuperPoint(max_num_keypoints=1024).eval()

# For higher accuracy with more keypoints
extractor = SuperPoint(max_num_keypoints=4096).eval()

GPU Acceleration

# Move models to GPU
device = torch.device('cuda' if torch.cuda.is_available() else 'cpu')
extractor = extractor.to(device)
matcher = matcher.to(device)

# Move images to GPU
image0 = image0.to(device)
image1 = image1.to(device)

Performance Optimization Tips

  • Batch Processing: Process multiple image pairs simultaneously for better GPU utilization
  • Image Resizing: Resize large images before processing to improve speed
  • Keypoint Limits: Adjust the number of keypoints based on your accuracy vs. speed requirements
  • Memory Management: Use torch.no_grad() for inference to reduce memory usage

Common Use Cases

Image Registration

LightGlue excels at finding correspondences between images with different viewpoints, making it perfect for image registration tasks.

Object Tracking

The algorithm's speed makes it suitable for real-time object tracking applications where features need to be matched across video frames.

3D Reconstruction

LightGlue provides robust feature matching for structure-from-motion and 3D reconstruction pipelines.

Troubleshooting

Installation Issues

If you encounter installation problems:

  • Ensure you have the correct Python version (3.8+)
  • Update pip: pip install --upgrade pip
  • Install PyTorch separately if needed: pip install torch torchvision

Performance Issues

For performance problems:

  • Check if CUDA is properly installed and available
  • Monitor GPU memory usage during processing
  • Consider reducing the number of keypoints for faster processing

Next Steps

Now that you have LightGlue installed and running, you can:

Note: LightGlue is available under an academic license. For commercial use, please review the licensing terms and contact the research team for appropriate arrangements.