toposlam
This repo implements a topological SLAM system. Deep Visual Odometry (DF-VO) and Visual Place Recognition are combined to form the topological SLAM system.
Publications
Visual Odometry Revisited: What Should Be Learnt?
DF-VO: What Should Be Learnt for Visual Odometry?
Scalable Place Recognition Under Appearance Change for Autonomous Driving
@INPROCEEDINGS{zhan2019dfvo,
author={H. {Zhan} and C. S. {Weerasekera} and J. -W. {Bian} and I. {Reid}},
booktitle={2020 IEEE International Conference on Robotics and Automation (ICRA)},
title={Visual Odometry Revisited: What Should Be Learnt?},
year={2020},
volume={},
number={},
pages={4203-4210},
doi={10.1109/ICRA40945.2020.9197374}}
@misc{zhan2021dfvo,
title={DF-VO: What Should Be Learnt for Visual Odometry?},
author={Huangying Zhan and Chamara Saroj Weerasekera and Jia-Wang Bian and Ravi Garg and Ian Reid},
year={2021},
eprint={2103.00933},
archivePrefix={arXiv},
primaryClass={cs.CV}
}
@inproceedings{doan2019scalable,
title={Scalable place recognition under appearance change for autonomous driving},
author={Doan, Anh-Dzung and Latif, Yasir and Chin, Tat-Jun and Liu, Yu and Do, Thanh-Toan and Reid, Ian},
booktitle={Proceedings of the IEEE/CVF International Conference on Computer Vision},
pages={9319--9328},
year={2019}
}
Demo:
Part 1. Requirements
This code was tested with Python 3.6, CUDA 10.0, Ubuntu 16.04, and PyTorch-1.0.
We suggest use Anaconda for installing the prerequisites.
cd envs
conda env create -f min_requirements.yml -p {ANACONDA_DIR/envs/topo_slam} # install prerequisites
conda activate topo_slam # activate the environment [topo_slam]
Part 2. Download dataset and models
The main dataset used in this project is KITTI Driving Dataset. After downloaing the dataset, create a softlink in the current repo.
ln -s KITTI_ODOMETRY/sequences dataset/kitti_odom/odom_data
For our trained models, please visit here to download the models and save the models into the directory model_zoo/
.
Part 3. Run example
# run default kitti setup
python main.py -d options/examples/default.yml -r data/kitti_odom
More configuration examples can be found in configuration examples.
The result (trajectory pose file) is saved in result_dir
defined in the configuration file.
Please check Configuration Documentation for reference.
Part 4. Result evaluation
Please check here for evaluating the result.
License
Please check License file.