📘Documentation | 🛠️Installation | 🚀Model Zoo | 🤗Huggingface | 👀Visualization | 🆕News
OpenSTL is a comprehensive benchmark for spatio-temporal predictive learning, encompassing a broad spectrum of methods and diverse tasks, ranging from synthetic moving object trajectories to real-world scenarios such as human motion, driving scenes, traffic flow, and weather forecasting. OpenSTL offers a modular and extensible framework, excelling in user-friendliness, organization, and comprehensiveness. The codebase is organized into three abstracted layers, namely the core layer, algorithm layer, and user interface layer, arranged from the bottom to the top. We support PyTorch Lightning implementation OpenSTL-Lightning (recommended) and naive PyTorch version OpenSTL.
[2023-12-15] OpenSTL-Lightning (OpenSTL
v1.0.0) is released.
[2023-09-23] The OpenSTL paper has been accepted by NeurIPS 2023 Dataset and Benchmark Track! arXiv / Zhihu.
[2023-06-19] OpenSTL
v0.3.0 is released and will be enhanced in #25.
This project has provided an environment setting file of conda, users can easily reproduce the environment by the following commands:
git clone https://github.com/chengtan9907/OpenSTL
cd OpenSTL
conda env create -f environment.yml
conda activate OpenSTL
python setup.py develop
Please refer to install.md for more detailed instructions.
Please see get_started.md for the basic usage. Here is an example of single GPU non-distributed training SimVP+gSTA on Moving MNIST dataset.
bash tools/prepare_data/download_mmnist.sh
python tools/train.py -d mmnist --lr 1e-3 -c configs/mmnist/simvp/SimVP_gSTA.py --ex_name mmnist_simvp_gsta
For the convenience of users, we provide a tutorial on how to train, evaluate, and visualize with OpenSTL on custom data. This tutorial enables users to quickly build their own projects using OpenSTL. For more details, please refer to the tutorial.ipynb
in the examples/
directory.
We also provide a Colab demo of this tutorial:
We support various spatiotemporal prediction methods and provide benchmarks on various STL datasets. We are working on add new methods and collecting experiment results.
Spatiotemporal Prediction Methods.
Spatiotemporal Predictive Learning Benchmarks (prepare_data or Baidu Cloud).
We present visualization examples of ConvLSTM below. For more detailed information, please refer to the visualization.
For synthetic moving object trajectory prediction and real-world video prediction, visualization examples of other approaches can be found in visualization/video_visualization.md. BAIR and Kinetics are not benchmarked and only for illustration.
For traffic flow prediction, visualization examples of other approaches are shown in visualization/traffic_visualization.md.
For weather forecasting, visualization examples of other approaches are shown in visualization/weather_visualization.md.
This project is released under the Apache 2.0 license. See LICENSE
for more information.
OpenSTL is an open-source project for STL algorithms created by researchers in CAIRI AI Lab. We encourage researchers interested in video and weather prediction to contribute to OpenSTL! We borrow the official implementations of ConvLSTM, PredNet, PredRNN variants, E3D-LSTM, MAU, PhyDNet, MMVP, and SwinLSTM.
If you are interested in our repository or our paper, please cite the following paper:
@inproceedings{tan2023openstl,
title={OpenSTL: A Comprehensive Benchmark of Spatio-Temporal Predictive Learning},
author={Tan, Cheng and Li, Siyuan and Gao, Zhangyang and Guan, Wenfei and Wang, Zedong and Liu, Zicheng and Wu, Lirong and Li, Stan Z},
booktitle={Conference on Neural Information Processing Systems Datasets and Benchmarks Track},
year={2023}
}
@inproceedings{gao2022simvp,
title={Simvp: Simpler yet better video prediction},
author={Gao, Zhangyang and Tan, Cheng and Wu, Lirong and Li, Stan Z},
booktitle={Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition},
pages={3170--3180},
year={2022}
}
@article{tan2022simvpv2,
title={SimVP: Towards Simple yet Powerful Spatiotemporal Predictive Learning},
author={Tan, Cheng and Gao, Zhangyang and Li, Siyuan and Li, Stan Z},
journal={arXiv preprint arXiv:2211.12509},
year={2022}
}
@inproceedings{tan2023temporal,
title={Temporal attention unit: Towards efficient spatiotemporal predictive learning},
author={Tan, Cheng and Gao, Zhangyang and Wu, Lirong and Xu, Yongjie and Xia, Jun and Li, Siyuan and Li, Stan Z},
booktitle={Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition},
pages={18770--18782},
year={2023}
}
For adding new features, looking for helps, or reporting bugs associated with OpenSTL
, please open a GitHub issue and pull request with the tag "new features", "help wanted", or "enhancement". Feel free to contact us through email if you have any questions.