A modular Python toolbox for state-of-the-art 6-DoF visual localization using hierarchical image retrieval and feature matching.
hloc is a hierarchical localization toolbox that provides state-of-the-art 6-DoF visual localization by combining image retrieval and feature matching. It solves the problem of accurately determining a camera's position and orientation in a known environment using images, which is essential for applications like augmented reality, robotics, and 3D mapping.
Computer vision researchers, robotics engineers, and developers working on augmented reality or 3D reconstruction who need robust, scalable visual localization pipelines.
Developers choose hloc because it integrates years of academic research into a single, modular, and well-documented toolbox, supporting multiple leading algorithms and datasets while offering extensive customization and debugging capabilities.
Visual localization made easy with hloc
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Implements hierarchical localization with algorithms like SuperPoint and SuperGlue, achieving top benchmark results on Aachen and InLoc, as shown in the README's performance tables.
Offers separate scripts for feature extraction, matching, and reconstruction, allowing easy customization and experimentation with new methods, supported by extensive interfaces in hloc/extractors/ and hloc/matchers/.
Includes ready pipelines for multiple indoor and outdoor datasets like Aachen Day-Night and InLoc, facilitating reproducibility and benchmarking without manual setup.
Provides debugging scripts to analyze localization logs and visualize 3D models, such as sparse depth maps, helping diagnose failures and understand pipeline behavior.
Requires managing Python, PyTorch, git submodules, and optional Docker, which can be error-prone and time-consuming, especially for non-experts or quick prototyping.
Assumes familiarity with computer vision concepts, SfM, and command-line tools, with documentation focused on research use rather than beginner-friendly guides.
Designed for offline or batch processing with GPU reliance; not suited for low-latency applications, as noted by its focus on benchmarks and Colab notebooks rather than edge deployment.
Heavily depends on pre-defined pipelines and GPU acceleration; adapting to custom or unsupported data requires significant manual work and computational resources.