BVMatch is a LiDAR-based place recognition method that is capable of estimating 2D relative poses. It projects LiDAR scans to BV images and extracs BVFT descriptors from the images. Place recognition is achieved using bag-of-words approach, and the relative pose is computed through BVFT descriptor matching.
OpenCV >= 3.3
Eigen
Just run
mkdir build
cd build
cmake .. && make
./match_two_scan ../data/xxx.bin ../data/xxx.bin
You will see the matching result of two LiDAR scans of the Oxford RobotCar dataset,
Download the Oxford Robotcar dataset here (about 3.8GB) or from google drive. Extract the foler on the project directory. Go to the scripts
directory and change the root_path
in config.py
to the dataset path.
Note that all the following operations are under the scripts
directory.
We extract the BVFT descriptors of each submap in advance for bag-of-words model training and global descriptor generation.
python generate_local_descriptors.py
The local descriptors are stored in the local_des
folder on the corresponding sequence directory.
We use the sequences collected in 2014
for training. (You may just skip this step since we have included the pre-trained model in this repo)
python train_model.py
We use the sequences collected in 2015
for testing. We test the place recognition performance by retrivaling all the submaps in each sequence from all the other sequences. The retrival is successful when the ground turth distance between the query and the match is less than 25 meters. The ground truth correspondences are stored in the pickle files.
python generate_test_sets.py
Generate global descriptors and perform evaluation.
python evaluate.py
Note that this step may take hours since all the submaps in the sequences are evaluated.
Please cite this paper if you want to use it in your work,
@article{luo2021bvmatch,
author={Luo, Lun and Cao, Si-Yuan and Han, Bin and Shen, Hui-Liang and Li, Junwei},
journal={IEEE Robotics and Automation Letters},
title={BVMatch: Lidar-Based Place Recognition Using Bird's-Eye View Images},
year={2021},
volume={6},
number={3},
pages={6076-6083},
doi={10.1109/LRA.2021.3091386}
}
Lun Luo
Zhejiang University