Noureddine RAMDI / OverlapNet: Siamese networks for loop closure detection in 3D LiDAR SLAM

Created Sat, 23 May 2026 20:41:14 +0000 Modified Sat, 23 May 2026 20:41:27 +0000

PRBonn/OverlapNet

OverlapNet offers a neat solution to a common challenge in 3D LiDAR-based SLAM: detecting loop closures without relying on prior pose estimates. It converts raw 3D point clouds into 2D range images and employs a Siamese neural network that predicts both the percentage of overlap and relative yaw angle between LiDAR scans. This dual-head architecture elegantly tackles loop closure detection in a single model.

what overlapnet does: loop closure detection from 3d lidar range images

OverlapNet is a Siamese neural network framework developed by researchers at the University of Bonn, nominated as Best System Paper at RSS 2020. The core idea is to process pairs of range images generated from LiDAR scans and predict two outputs simultaneously: the overlap percentage and the relative yaw angle between the scans.

Under the hood, the system preprocesses 3D point clouds to produce input images representing depth, surface normals, and optionally semantic or intensity channels. These 2D images encode the 3D geometric information in a format suitable for convolutional networks. Using Keras and TensorFlow as its foundation, OverlapNet employs a dual-head Siamese architecture where each branch processes one scan’s range image.

This approach is designed specifically for loop closure detection in LiDAR SLAM pipelines, where recognizing previously visited locations is crucial for correcting drift. Unlike some methods that require prior pose estimates or rely on feature matching in 3D space, OverlapNet predicts overlap and relative yaw directly from the learned embeddings of the range images.

The project also includes a lightweight variant called OverlapTransformer, which uses transformer architectures to achieve sub-4 millisecond inference times — a notable improvement for real-time applications.

technical strengths and design tradeoffs: dual-head siamese network and image projection

OverlapNet stands out by transforming the 3D LiDAR point cloud problem into a 2D image domain task, which is computationally more manageable and leverages the strengths of convolutional neural networks. This projection to range images preserves geometric cues like depth and surface normals, allowing the network to infer spatial relationships effectively.

The dual-head Siamese architecture predicts both overlap and relative yaw angle simultaneously. This is an elegant design because it combines two related but distinct predictions in one model, likely improving consistency between predictions and saving inference time.

The repo is research-oriented with configurable YAML-based training pipelines, pretrained models, and demo scripts that cover data generation, inference, and loop closure detection on standard datasets like KITTI. The codebase is built with TensorFlow and Keras, which makes it accessible yet powerful.

However, the approach comes with tradeoffs. Representing 3D data as 2D images may lose some spatial resolution or introduce distortions, depending on the projection method. Also, while the dual-head design is efficient, it requires careful balancing of the training objectives to avoid one task dominating the learning.

The inclusion of a transformer-based lighter model variant addresses inference speed, which is critical for real-time SLAM, but adds complexity in terms of architecture.

quick start: running demos for data generation, inference, and loop closure detection

This repository includes several demos showcasing the functionality:

  • Demo 1 generates various data types from LiDAR scans:
python3 demo/demo1_gen_data.py
  • Demo 2 runs inference for overlap and relative yaw angle estimation. Before running, you need to download the pretrained model and place it in the data folder or update the path in /config/network.yml:
python3 demo/demo2_infer.py
  • Demo 3 performs full loop closure detection on KITTI odometry data. It requires downloading the pretrained model, KITTI data with SLAM covariance, and preprocessed data extracted into the data folder or configured paths in YAML files:
python3 demo/demo3_lcd.py
  • Demo 4 generates ground truth labels for training and testing datasets.

These demos provide a hands-on way to explore the core capabilities without needing to build from scratch.

verdict: suited for SLAM researchers and practitioners needing loop closure detection

OverlapNet is a solid research codebase for those working on LiDAR-based SLAM and loop closure detection. Its approach of converting 3D scans into 2D range images and predicting overlap plus relative yaw via a dual-head Siamese network is elegant and practical.

The repository is clearly research-focused, with a flexible YAML-based training setup and multiple demos that cover essential workflows. However, this also means it might require some familiarity with machine learning pipelines and LiDAR data preprocessing to integrate into production systems.

Limitations include potential spatial information loss in image projection and the need for careful training balance between the dual tasks. The transformer variant offers speed improvements but adds architectural complexity.

If you’re developing or experimenting with LiDAR SLAM systems and need a learned approach to loop closure detection that bypasses pose priors, OverlapNet is worth a close look. It’s less suited for those seeking out-of-the-box turnkey solutions but strong for prototyping and research extensions.


→ GitHub Repo: PRBonn/OverlapNet ⭐ 729 · Python