# DF-VO **Repository Path**: godycc/DF-VO ## Basic Information - **Project Name**: DF-VO - **Description**: No description available - **Primary Language**: Python - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2021-11-03 - **Last Updated**: 2021-11-09 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Introduction This repo implements the system described in the ICRA-2020 paper and the extended report: [Visual Odometry Revisited: What Should Be Learnt? ](https://arxiv.org/abs/1909.09803) [DF-VO: What Should Be Learnt for Visual Odometry? ](https://arxiv.org/abs/2103.00933) Huangying Zhan, Chamara Saroj Weerasekera, Jiawang Bian, Ravi Garg, Ian Reid The demo video can be found [here](https://www.youtube.com/watch?v=Nl8mFU4SJKY). ``` @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} } ``` This repo includes 1. the frame-to-frame tracking system **DF-VO**; 2. evaluation scripts for visual odometry; 3. trained models and VO results ### Contents 1. [Requirements](#part-1-requirements) 2. [Prepare dataset](#part-2-download-dataset-and-models) 3. [DF-VO](#part-3-DF-VO) 4. [Result evaluation](#part-4-result-evaluation) ### Part 1. Requirements This code was tested with Python 3.6, CUDA 9.0, Ubuntu 16.04, and [PyTorch-1.1](https://pytorch.org/). We suggest use [Anaconda](https://www.anaconda.com/distribution/) for installing the prerequisites. ``` cd envs conda env create -f requirement.yml -p {ANACONDA_DIR/envs/dfvo} # install prerequisites conda activate dfvo # activate the environment [dfvo] ``` ### Part 2. Download dataset and models The main dataset used in this project is [KITTI Driving Dataset](http://www.cvlibs.net/datasets/kitti/eval_odometry.php). 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](https://www.dropbox.com/sh/9by21564eb0xloh/AABHFMlWd_ja14c5wU4R1KUua?dl=0) to download the models and save the models into the directory `model_zoo/`. ### Part 3. DF-VO We have created some examples for running the algorithm. ``` # Example 1: run default kitti setup python apis/run.py -d options/examples/default_configuration.yml # Example 2: Run custom kitti setup python apis/run.py \ -d options/examples/default_configuration.yml \ -c options/examples/kitti_stereo_train_icra.yml \ --no_confirm # More examples and our experiments can be found in scripts/experiment.sh ``` The result (trajectory pose file) is saved in `result_dir` defined in the configuration file. Please check the `options/examples/default_configuration.yml` or [Configuration Documentation](https://df-vo.readthedocs.io/en/latest/rsts/configuration.html) for reference. ### Part 4. Result evaluation The original results, including related works, can be found [here](https://www.dropbox.com/sh/u7x3rt4lz6zx8br/AADshjd33Q3TLCy2stKt6qpJa?dl=0). #### KITTI [KITTI Odometry benchmark](http://www.cvlibs.net/datasets/kitti/eval_odometry.php) contains 22 stereo sequences, in which 11 sequences are provided with ground truth. The 11 sequences are used for evaluating visual odometry. ``` python tools/evaluation/odometry/eval_odom.py --result result/tmp/0 --align 6dof ``` For more information about the evaluation toolkit, please check the [toolbox page](https://github.com/Huangying-Zhan/kitti_odom_eval) or the [wiki page](https://github.com/Huangying-Zhan/DF-VO/wiki). ### Part 5. Run your own dataset We also provide a guideline to run DF-VO on your own dataset. Please check [Run own dataset](https://df-vo.readthedocs.io/en/latest/rsts/run_own_dataset.html) for more details. ### License For academic usage, the code is released under the permissive MIT license. Our intension of sharing the project is for research/personal purpose. For any commercial purpose, please contact the authors. ### Acknowledgement Some of the codes were borrowed from the excellent works of [monodepth2](https://github.com/nianticlabs/monodepth2), [LiteFlowNet](https://github.com/twhui/LiteFlowNet) and [pytorch-liteflownet](https://github.com/sniklaus/pytorch-liteflownet). The borrowed files are licensed under their original license respectively.