This repo implements a topological SLAM system. Deep Visual Odometry (DF-VO) and Visual Place Recognition are combined to form the topological SLAM system.
@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}
}
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]
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/
.
# 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.
Please check here for evaluating the result.
Please check License file.
Some of the codes were borrowed from the excellent works of monodepth2, LiteFlowNet and pytorch-liteflownet. The borrowed files are licensed under their original license respectively.