{"id":13935840,"url":"https://github.com/sniklaus/sepconv-slomo","last_synced_at":"2025-05-15T00:07:20.942Z","repository":{"id":46588198,"uuid":"103007434","full_name":"sniklaus/sepconv-slomo","owner":"sniklaus","description":"an implementation of Video Frame Interpolation via Adaptive Separable Convolution using PyTorch","archived":false,"fork":false,"pushed_at":"2025-01-06T01:01:19.000Z","size":14877,"stargazers_count":1015,"open_issues_count":1,"forks_count":169,"subscribers_count":42,"default_branch":"master","last_synced_at":"2025-04-14T19:54:41.450Z","etag":null,"topics":["cuda","cupy","deep-learning","python","pytorch"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/sniklaus.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2017-09-10T05:58:15.000Z","updated_at":"2025-01-30T10:20:15.000Z","dependencies_parsed_at":"2025-01-26T20:00:26.264Z","dependency_job_id":"aef17f28-5eac-4fd9-a295-9e19f1ef9088","html_url":"https://github.com/sniklaus/sepconv-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/sniklaus%2Fsepconv-slomo","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sniklaus%2Fsepconv-slomo/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sniklaus%2Fsepconv-slomo/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sniklaus%2Fsepconv-slomo/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sniklaus","download_url":"https://codeload.github.com/sniklaus/sepconv-slomo/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254249197,"owners_count":22039029,"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":["cuda","cupy","deep-learning","python","pytorch"],"created_at":"2024-08-07T23:02:08.169Z","updated_at":"2025-05-15T00:07:15.906Z","avatar_url":"https://github.com/sniklaus.png","language":"Python","funding_links":[],"categories":["Python"],"sub_categories":[],"readme":"This work has now been superseded by: https://github.com/sniklaus/revisiting-sepconv\n\n# sepconv-slomo\nThis is a reference implementation of Video Frame Interpolation via Adaptive Separable Convolution [1] using PyTorch. Given two frames, it will make use of [adaptive convolution](http://sniklaus.com/papers/adaconv) [2] in a separable manner to interpolate the intermediate frame. Should you be making use of our work, please cite our paper [1].\n\n\u003ca href=\"https://arxiv.org/abs/1708.01692\"\u003e\u003cimg src=\"http://content.sniklaus.com/sepconv/paper.jpg\" alt=\"Paper\" width=\"100%\"\u003e\u003c/a\u003e\n\nFor a reimplemntation of our work, see: https://github.com/martkartasev/sepconv\n\u003cbr /\u003e\nAnd for another adaptation, consider: https://github.com/HyeongminLEE/pytorch-sepconv\n\u003cbr /\u003e\nFor softmax splatting, please see: https://github.com/sniklaus/softmax-splatting\n\n## setup\nThe separable convolution layer is implemented in CUDA using CuPy, which is why CuPy is a required dependency. It can be installed using `pip install cupy` or alternatively using one of the provided [binary packages](https://docs.cupy.dev/en/stable/install.html#installing-cupy) as outlined in the CuPy repository.\n\nIf you plan to process videos, then please also make sure to have `pip install moviepy` installed.\n\n## usage\nTo run it on your own pair of frames, use the following command. You can either select the `l1` or the `lf` model, please see our paper for more details. In short, the `l1` model should be used for quantitative evaluations and the `lf` model for qualitative comparisons.\n\n```\npython run.py --model lf --one ./images/one.png --two ./images/two.png --out ./out.png\n```\n\nTo run in on a video, use the following command.\n\n```\npython run.py --model lf --video ./videos/car-turn.mp4 --out ./out.mp4\n```\n\nFor a quick benchmark using examples from the Middlebury benchmark for optical flow, run `python benchmark.py`. You can use it to easily verify that the provided implementation runs as expected.\n\n## video\n\u003ca href=\"http://content.sniklaus.com/sepconv/video.mp4\"\u003e\u003cimg src=\"http://content.sniklaus.com/sepconv/video.jpg\" alt=\"Video\" width=\"100%\"\u003e\u003c/a\u003e\n\n## license\nThe provided implementation is strictly for academic purposes only. Should you be interested in using our technology for any commercial use, please feel free to contact us.\n\n## references\n```\n[1]  @inproceedings{Niklaus_ICCV_2017,\n         author = {Simon Niklaus and Long Mai and Feng Liu},\n         title = {Video Frame Interpolation via Adaptive Separable Convolution},\n         booktitle = {IEEE International Conference on Computer Vision},\n         year = {2017}\n     }\n```\n\n```\n[2]  @inproceedings{Niklaus_CVPR_2017,\n         author = {Simon Niklaus and Long Mai and Feng Liu},\n         title = {Video Frame Interpolation via Adaptive Convolution},\n         booktitle = {IEEE Conference on Computer Vision and Pattern Recognition},\n         year = {2017}\n     }\n```\n\n## acknowledgment\nThis work was supported by NSF IIS-1321119. The video above uses materials under a Creative Common license or with the owner's permission, as detailed at the end.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsniklaus%2Fsepconv-slomo","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsniklaus%2Fsepconv-slomo","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsniklaus%2Fsepconv-slomo/lists"}