alicevision/popsift
PopSift is an implementation of the SIFT algorithm in CUDA.
What it solves
PopSift provides a high-performance, real-time implementation of the Scale-Invariant Feature Transform (SIFT) algorithm. It allows developers to extract distinctive image features (keypoints) from grayscale images quickly using GPU acceleration, while remaining faithful to the original academic specification of the algorithm.
How it works
PopSift is implemented in CUDA, enabling it to run on NVIDIA GPUs. It processes grayscale images (either as unsigned chars or floats) and extracts features that include X and Y coordinates, scale (sigma), and descriptors. The library supports an asynchronous API where images can be enqueued for processing, and the results can be retrieved via a job pointer once the extraction is complete.
Who it’s for
It is designed for developers and researchers working on computer vision tasks that require fast, accurate feature extraction, specifically those who need a commercially viable, GPU-accelerated version of SIFT.
Highlights
- GPU Accelerated: Built with CUDA for real-time performance on NVIDIA hardware.
- Faithful Implementation: Sticks closely to David Lowe's original SIFT paper to ensure accuracy.
- Asynchronous Processing: Supports enqueuing multiple images for extraction to maximize throughput.
- Flexible Configuration: Can be tuned at runtime to produce results similar to other popular libraries like VLFeat or OpenCV.