News w. TBD:
Note (2025/09/18): We got accepted by NeurIPS 2025 and it's spotlighted! 🎉🎉🎉 The code are ready to play, enjoy!
- 2025/08/24: I'm updating some codes for early release.
- 2025/08/24: Updating train data augmentation as illustrated in the DeltaFlow paper.
- 2025/08/25: Updating paper preprint link.
- 2025/09/05: Merged the latest commit from OpenSceneFlow codebase to DeltaFlow for afterward unified merged.
- 2025/09/25: DeltaFlow Model file, config file and loss function. Update quick training example.
- 2025/09/29: Pre-trained weights for Argoverse 2, Waymo, nuScenes. Contact me if any issue (e.g., ask for delete ckpt as privacy concern etc). These models are provided for research and reproducibility purposes only.
- Public review comments for readers to refer to future improvement/directions etc. Refer discussion here.
- Merged into OpenSceneFlow, check pull request here: KTH-RPL/OpenSceneFlow#21
To train the full dataset, please refer to the OpenSceneFlow for raw data download and h5py files preparation.
- Prepare the demo train and val data for a quick run:
# around 1.3G
wget https://huggingface.co/kin-zhang/OpenSceneFlow/resolve/main/demo-data-v2.zip
unzip demo-data-v2.zip -d /home/kin/data/av2/h5py # to your data path-
Follow the OpenSceneFlow to setup the environment or use docker.
-
Run the training with the following command (modify the data path accordingly):
python train.py model=deltaflow loss_fn=deltaflowLoss batch_size=4 num_frames=5 voxel_size="[0.15,0.15,0.15]" point_cloud_range="[-38.4,-38.4,-3,38.4,38.4,3]" optimizer.lr=2e-4 train_data=${demo_train_data_path} val_data=${demo_val_data_path}Here is the pretrained weights link table for different training datasets (Note that these models are only used for research and reproducibility purposes only please follow the dataset license and privacy rules to use them):
| Train Dataset | Pretrained ckpt Link |
|---|---|
| Argoverse 2 | huggingface |
| Waymo Open Dataset | huggingface |
| nuScenes | huggingface |
Please check the local evaluation result (raw terminal output screenshot) in this discussion thread. You can also run the evaluation by yourself with the following command with trained weights:
python eval.py checkpoint=${path_to_pretrained_weights} dataset_path=${demo_data_path}Please refer to the OpenSceneFlow for visualization instructions.
While I will update a unified visualization script for OpenSceneFlow to quickly save all window views as images at the same view and same time etc. (Free us from qualitative figure making work!)
@article{zhang2025deltaflow,
title={{DeltaFlow}: An Efficient Multi-frame Scene Flow Estimation Method},
author={Zhang, Qingwen and Zhu, Xiaomeng and Zhang, Yushan and Cai, Yixi and Andersson, Olov and Jensfelt, Patric},
year={2025},
journal={arXiv preprint arXiv:2508.17054},
}
This work was partially supported by the Wallenberg AI, Autonomous Systems and Software Program (WASP) funded by the Knut and Alice Wallenberg Foundation and Prosense (2020-02963) funded by Vinnova.