{"id":15027420,"url":"https://github.com/avinashpaliwal/super-slomo","last_synced_at":"2025-10-06T21:31:16.530Z","repository":{"id":41086469,"uuid":"163100923","full_name":"avinashpaliwal/Super-SloMo","owner":"avinashpaliwal","description":"PyTorch implementation of Super SloMo by Jiang et al.","archived":true,"fork":false,"pushed_at":"2023-03-09T18:39:45.000Z","size":27529,"stargazers_count":2995,"open_issues_count":29,"forks_count":476,"subscribers_count":96,"default_branch":"master","last_synced_at":"2024-11-19T10:49:34.296Z","etag":null,"topics":["convolutional-neural-networks","deep-learning","deep-neural-networks","frame-interpolation","pytorch","pytorch-implmention","slomo","slow-motion","super-slomo","video-frame-interpolation"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/avinashpaliwal.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2018-12-25T17:34:17.000Z","updated_at":"2024-11-18T07:42:52.000Z","dependencies_parsed_at":"2023-10-20T18:09:06.330Z","dependency_job_id":null,"html_url":"https://github.com/avinashpaliwal/Super-SloMo","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/avinashpaliwal%2FSuper-SloMo","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/avinashpaliwal%2FSuper-SloMo/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/avinashpaliwal%2FSuper-SloMo/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/avinashpaliwal%2FSuper-SloMo/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/avinashpaliwal","download_url":"https://codeload.github.com/avinashpaliwal/Super-SloMo/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":235552613,"owners_count":19008464,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["convolutional-neural-networks","deep-learning","deep-neural-networks","frame-interpolation","pytorch","pytorch-implmention","slomo","slow-motion","super-slomo","video-frame-interpolation"],"created_at":"2024-09-24T20:06:24.273Z","updated_at":"2025-10-06T21:31:09.669Z","avatar_url":"https://github.com/avinashpaliwal.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Super-SloMo [![MIT Licence](https://badges.frapsoft.com/os/mit/mit.svg?v=103)](https://opensource.org/licenses/mit-license.php)\nPyTorch implementation of \"Super SloMo: High Quality Estimation of Multiple Intermediate Frames for Video Interpolation\" by Jiang H., Sun D., Jampani V., Yang M., Learned-Miller E. and Kautz J. [[Project]](https://people.cs.umass.edu/~hzjiang/projects/superslomo/) [[Paper]](https://arxiv.org/abs/1712.00080)\n\n__Check out [our paper](https://github.com/avinashpaliwal/Deep-SloMo) \"Deep Slow Motion Video Reconstruction with Hybrid Imaging System\" published in TPAMI.__\n\n## Results\nResults on UCF101 dataset using the [evaluation script](https://people.cs.umass.edu/~hzjiang/projects/superslomo/UCF101_results.zip) provided by paper's author. The `get_results_bug_fixed.sh` script was used. It uses motions masks when calculating PSNR, SSIM and IE.\n\n| Method | PSNR | SSIM | IE |\n|------|:-----:|:-----:|:-----:|\n| DVF | 29.37 | 0.861 | 16.37 |\n| [SepConv](https://github.com/sniklaus/pytorch-sepconv) - L_1 | 30.18 | 0.875 | 15.54 |\n| [SepConv](https://github.com/sniklaus/pytorch-sepconv) - L_F | 30.03 | 0.869 | 15.78 |\n| SuperSloMo_Adobe240fps | 29.80 | 0.870 | 15.68 |\n| **pretrained mine** | **29.77** | **0.874** | **15.58** |\n| SuperSloMo | 30.22 | 0.880 | 15.18 |\n\n\n\u003cimg src='./misc/original.gif'\u003e\n\u003cimg src='./misc/slomo.gif'\u003e\n\n## Prerequisites\nThis codebase was developed and tested with pytorch 0.4.1 and CUDA 9.2 and Python 3.6.\nInstall:\n* [PyTorch](https://pytorch.org/get-started/previous-versions/)\n\nFor GPU, run\n```bash\nconda install pytorch=0.4.1 cuda92 torchvision==0.2.0 -c pytorch\n```\nFor CPU, run\n```bash\nconda install pytorch-cpu=0.4.1 torchvision-cpu==0.2.0 cpuonly -c pytorch\n```\n* [TensorboardX](https://github.com/lanpa/tensorboardX) for training visualization\n* [tensorflow](https://www.tensorflow.org/install/) for tensorboard\n* [matplotlib](https://matplotlib.org/users/installing.html) for training graph in notebook.\n* [tqdm](https://pypi.org/project/tqdm/) for progress bar in [video_to_slomo.py](video_to_slomo.py)\n* [numpy](https://scipy.org/install.html)\n\n## Training\n### Preparing training data\nIn order to train the model using the provided code, the data needs to be formatted in a certain manner.\nThe create_dataset.py script uses [ffmpeg](https://www.ffmpeg.org/) to extract frames from videos.\n#### Adobe240fps\nFor adobe240fps, [download the dataset](http://www.cs.ubc.ca/labs/imager/tr/2017/DeepVideoDeblurring/DeepVideoDeblurring_Dataset_Original_High_FPS_Videos.zip), unzip it and then run the following command\n```bash\npython data\\create_dataset.py --ffmpeg_dir path\\to\\folder\\containing\\ffmpeg --videos_folder path\\to\\adobe240fps\\videoFolder --dataset_folder path\\to\\dataset --dataset adobe240fps\n```\n\n#### Custom\nFor custom dataset, run the following command\n```bash\npython data\\create_dataset.py --ffmpeg_dir path\\to\\folder\\containing\\ffmpeg --videos_folder path\\to\\adobe240fps\\videoFolder --dataset_folder path\\to\\dataset\n```\n\nThe default train-test split is 90-10. You can change that using command line argument `--train_test_split`.\n\nRun the following commmand for help / more info\n```bash\npython data\\create_dataset.py --h\n```\n\n### Training\nIn the [train.ipynb](train.ipynb), set the parameters (dataset path, checkpoint directory, etc.) and run all the cells.\n\nor to train from terminal, run:\n```bash\npython train.py --dataset_root path\\to\\dataset --checkpoint_dir path\\to\\save\\checkpoints\n```\nRun the following commmand for help / more options like continue from checkpoint, progress frequency etc.\n```bash\npython train.py --h\n```\n\n### Tensorboard\nTo get visualization of the training, you can run tensorboard from the project directory using the command:\n```bash\ntensorboard --logdir log --port 6007\n```\n\nand then go to [https://localhost:6007](https://localhost:6007).\n\n## Evaluation\n### Pretrained model\nYou can download the pretrained model trained on adobe240fps dataset [here](https://drive.google.com/open?id=1IvobLDbRiBgZr3ryCRrWL8xDbMZ-KnpF).\n\n### Video Converter\nYou can convert any video to a slomo or high fps video (or both) using [video_to_slomo.py](video_to_slomo.py). Use the command\n```bash\n# Windows\npython video_to_slomo.py --ffmpeg path\\to\\folder\\containing\\ffmpeg --video path\\to\\video.mp4 --sf N --checkpoint path\\to\\checkpoint.ckpt --fps M --output path\\to\\output.mkv\n\n# Linux\npython video_to_slomo.py --video path\\to\\video.mp4 --sf N --checkpoint path\\to\\checkpoint.ckpt --fps M --output path\\to\\output.mkv\n```\nIf you want to convert a video from 30fps to 90fps set `fps` to 90 and `sf` to 3 (to get 3x frames than the original video).\n\nRun the following commmand for help / more info\n```bash\npython video_to_slomo.py --h\n```\n\nYou can also use `eval.py` if you do not want to use ffmpeg. You will instead need to install `opencv-python` using pip for video IO.\nA sample usage would be:\n\n```bash\npython eval.py data/input.mp4 --checkpoint=data/SuperSloMo.ckpt --output=data/output.mp4 --scale=4\n```\n\nUse `python eval.py --help` for more details\n\nMore info TBA\n\n\n## References:\nParts of the code is based on [TheFairBear/Super-SlowMo](https://github.com/TheFairBear/Super-SlowMo)\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Favinashpaliwal%2Fsuper-slomo","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Favinashpaliwal%2Fsuper-slomo","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Favinashpaliwal%2Fsuper-slomo/lists"}