This is a TensorFlow implementation of PredCNN, an entire convolutional model for video prediction as described in the following paper:
PredCNN: Predictive Learning with Cascade Convolutions, by Ziru Xu, Yunbo Wang, Mingsheng Long and Jianmin Wang.
Required python libraries: tensorflow (>=1.0) + opencv + numpy. Tested in ubuntu/centOS + nvidia titan X (Pascal) with cuda (>=8.0) and cudnn (>=5.0).
We conduct experiments on one video dataset, Moving Mnist, and two crowd flow dataset, TaxiBJ and BikeNYC.
For other video format datasets, please extract frames from original video clips and move them to the data/
folder.
Use the scripts/train.sh
script to train the model. To train the default model on Moving MNIST simply use:
cd scripts;sh train.sh;
You might want to change the --train_data_paths
, --valid_data_paths
and --save_dir
which point to paths on your system to download the data to, and where to save the checkpoints.
To train on your own dataset, have a look at the InputHandle
classes in the data_provider/
folder. You have to write an analogous iterator object for your own dataset.
At inference, the generated future frames will be saved in the --results
folder.
If you use this code for your research, please consider citing:
@inproceedings{xu2018predcnn,
title={PredCNN: Predictive Learning with Cascade Convolutions.},
author={Xu, Ziru and Wang, Yunbo and Long, Mingsheng and Wang, Jianmin},
booktitle={IJCAI},
pages={2940--2947},
year={2018}
}
If you have any problem about our code, feel free to contact [email protected] or describe your problem in Issues.