Visual Place Recognition
This page summarizes the visual place recognition/localization module. It is a standalone C++ module that provides visual place recognition (VPR) capabilities, i.e., matching a query image against a database of previously seen places and retrieving the most similar image(s). SLAM-MER uses those retrieved candidates for loop validation and relocalization pose estimation.
Repository location
thirdparty/visual_place_localization
Description
For SLAM, this repository provides a common visual-place-recognition interface for image retrieval, along with implementations of multiple VPR backends. Current backends include:
Bag-of-Words (BoW)-based retrieval with OpenCV descriptors and FAISS search
MegaLoc global descriptor retrieval with ONNX Runtime and FAISS
Usage in the framework
In SLAM-MER, this module supports loop-candidate retrieval and relocalization workflows by matching current observations against a database of previously seen places. Candidate validation and camera-pose estimation are handled by the SLAM-MER geometric pose-estimation code.
Build and integration
This module is optional but strongly recommended for visual SLAM applications, as it provides robust place recognition capabilities that improve loop-closure detection and relocalization performance. To build it as part of the SLAM-MER workflow with the required options enabled, run the following commands from the root of the SLAM-MER project:
mise run configure_modules
mise run build_modules
This configures and builds thirdparty/visual_place_localization together
with the other optional modules.
For standalone installation details and backend-specific options, see the
repository README in thirdparty/visual_place_localization.