This repository represents the official implementation of the paper:
OverlapNetVLAD: A Coarse-to-Fine Framework for LiDAR-based Place Recognition
OverlapNetVLAD is a coase-to-fine framework for LiARD-based place recognition, which use global descriptors to propose place candidates, and use overlap prediction to determine the final match.
This code has been tested on Ubuntu 18.04 (PyTorch 1.12.1, CUDA 10.2, GeForce GTX 1080Ti).
Pretrained models in here.
We use spconv-cu102=2.1.25, other version may report error.
The rest requirments are comman and easy to handle.
conda install pytorch==1.12.1 torchvision==0.13.1 torchaudio==0.12.1 cudatoolkit=10.2 -c pytorch
pip install spconv-cu102==2.1.25
pip install pyymal tqdm open3d tensorboardX
python tools/utils/gen_bev_features.py
The training of backbone network and overlap estimation network please refs to BEVNet. Here is the training of global descriptor generation network.
python train/train_netvlad.py
python evaluate/evaluate.py
the function evaluate_vlad is the evaluation of the coarse seaching method using global descriptors.
Thanks to the source code of some great works such as pointnetvlad, PointNetVlad-Pytorch , OverlapTransformer and so on.
If you find this repo is helpful, please cite:
@InProceedings{Fu_2023_OverlapNetVLAD,
author = {Fu, Chencan and Li, Lin and Peng, Linpeng and Ma, Yukai and Zhao, Xiangrui and Liu, Yong},
title = {OverlapNetVLAD: A Coarse-to-Fine Framework for LiDAR-based Place Recognition},
journal={arXiv preprint arXiv:2303.06881},
year={2023}
}