Skip to content

VSLAM-LAB/DROID-W-VSLAM-LAB

 
 

Repository files navigation

DROID-W: DROID-SLAM in the Wild

Moyang Li* . Zihan Zhu* . Marc Pollefeys . Dániel Béla Baráth

Computer Vision And Pattern Recognition (CVPR) 2026

teaser_image

Given a casually captured in-the-wild video, DROID-W estimates accurate camera trajectory, scene structure and dynamic uncertainty.



Table of Contents
  1. Installation
  2. Run
  3. Evaluation
  4. Acknowledgement
  5. Citation
  6. Contact

Installation

  1. First you have to make sure that you clone the repo with the --recursive flag. The simplest way to do so, is to use anaconda.
git clone --recursive https://github.com/MoyangLi00/DROID-W.git
cd DROID-W
  1. Creating a new conda environment.
conda create --name droid-w python=3.10
conda activate droid-w
  1. Install CUDA 11.8 and torch-related pacakges
pip install numpy==1.26.3
conda install --channel "nvidia/label/cuda-11.8.0" cuda-toolkit
pip install torch==2.1.0 torchvision==0.16.0 torchaudio==2.1.0 --index-url https://download.pytorch.org/whl/cu118
pip install torch-scatter -f https://pytorch-geometric.com/whl/torch-2.1.0+cu118.html
pip3 install -U xformers==0.0.22.post7+cu118 --index-url https://download.pytorch.org/whl/cu118
  1. Install the remaining dependencies.
python -m pip install -e thirdparty/lietorch --no-build-isolation
python -m pip install -e thirdparty/diff-gaussian-rasterization-w-pose --no-build-isolation
python -m pip install -e thirdparty/simple-knn --no-build-isolation
  1. Check installation.
python -c "import torch; import lietorch; import simple_knn; import diff_gaussian_rasterization; print(torch.cuda.is_available())"
  1. Now install the droid backends and the other requirements
python -m pip install -e . --no-build-isolation
python -m pip install -r requirements.txt
  1. Install MMCV (used by metric depth estimator)
pip install mmcv-full -f https://download.openmmlab.com/mmcv/dist/cu118/torch2.1.0/index.html
  1. Download the pretained models droid.pth, put it inside the pretrained folder.

Run

Bonn Dynamic Dataset

Download the data as below and the data is saved into the ./Datasets/Bonn folder. Note that the script only downloads the 8 sequences reported in the paper. To get other sequences, you can download from the webiste of Bonn Dynamic Dataset.

bash scripts_downloading/download_bonn.sh

You can run DROID-W via the following command:

python run.py  ./configs/Dynamic/Bonn/{config_file}

We have prepared config files for the 8 sequences. Note that this dataset needs preprocessing the pose. We have implemented that in the dataloader. If you want to test with sequences other than the ones provided, don't forget to specify dataset: 'bonn_dynamic' in your config file. The easiest way is to inherit from bonn_dynamic.yaml.

TUM RGB-D (dynamic) Dataset

Download the data (9 dynamic sequences) as below and the data is saved into the ./Datasets/TUM_RGBD folder.

bash scripts_downloading/download_tum.sh

The config files for 9 dynamic sequences of this dataset can be found under ./configs/Dynamic/TUM_RGBD. You can run DROID as the following:

python run.py --config ./configs/Dynamic/Wild_SLAM_Mocap/{config_file} 

DyCheck Dataset

Download the DyCheck dataset and put it in the ./datasets/DyCheck folder. The config files for the 12 sequences of this dataset can be found under ./configs/Dynamic/DyCheck. You can run DROID-W as the following:

python run.py --config ./configs/Dynamic/DyCheck/{config_file}

DROID-W Dataset

Download the data (7 dynamic sequences) as below and the data is saved into the ./Datasets/DROID-W folder.

bash scripts_downloading/download_droidw.sh

The config files for 7 dynamic sequences of this dataset can be found under ./configs/Dynamic/DROIDW. You can run DROID-W as the following:

python run.py --config ./configs/Dynamic/DROIDW/{config_file} 

YouTube Sequences

Download the sequences (12 dynamic sequences) as below and the data is saved into the ./Datasets/YouTube folder.

bash scripts_downloading/download_youtube.sh

The config files for 12 dynamic sequences of this dataset can be found under ./configs/Dynamic/YouTube. You can run DROID-W as the following:

python run.py --config ./configs/Dynamic/YouTube/{config_file} 

Evaluation

Camera poses

The camera trajectories will be automatically evaluated after each run of DROID-W except for the DROID-W dataset. Evaluate the camera poses for the DROID-W dataset using the following command:

python scripts_eval/evaluate_droidw.py

We provide a python script to summarize the RMSE of ATE:

python scripts_eval/summarize_rmse.py -b {path_to_output_dir}

Note

We disable the Gaussian Splatting mapping module by default. If you want to enable it, please set mapping.enable: True in configs/droid_w.yaml.

Acknowledgement

We adapted some codes from some awesome repositories including DROID-SLAM, WildGS-SLAM, Metric3D V2, and DUSt3R. Thanks for making codes publicly available.

Citation

If you find our code or paper useful, please cite

@inproceedings{Li2026DROIDW,
  author    = {Li, Moyang and Zhu, Zihan and Pollefeys, Marc and Barath, Daniel},
  title     = {DROID-SLAM in the Wild},
  booktitle = {Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR)},
  year      = {2026}
}

Contact

Contact Moyang Li for questions, comments and reporting bugs.

About

[CVPR 2026] DROID-SLAM in the Wild

Resources

License

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • Python 80.4%
  • Cuda 16.0%
  • C++ 1.5%
  • GLSL 1.5%
  • Shell 0.6%