{"id":22306516,"url":"https://github.com/myungsub/meta-interpolation","last_synced_at":"2026-03-15T07:39:22.445Z","repository":{"id":194101020,"uuid":"251497675","full_name":"myungsub/meta-interpolation","owner":"myungsub","description":"Source code for CVPR 2020 paper \"Scene-Adaptive Video Frame Interpolation via Meta-Learning\"","archived":false,"fork":false,"pushed_at":"2020-08-14T07:54:30.000Z","size":20837,"stargazers_count":80,"open_issues_count":4,"forks_count":13,"subscribers_count":11,"default_branch":"master","last_synced_at":"2025-06-24T13:13:20.521Z","etag":null,"topics":["computer-vision","cvpr2020","deep-learning","frame-interpolation","meta-learning","pytorch","slow-motion","video-frame-interpolation"],"latest_commit_sha":null,"homepage":null,"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/myungsub.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":"2020-03-31T04:09:48.000Z","updated_at":"2025-03-01T03:57:23.000Z","dependencies_parsed_at":"2023-09-11T21:51:44.853Z","dependency_job_id":null,"html_url":"https://github.com/myungsub/meta-interpolation","commit_stats":null,"previous_names":["myungsub/meta-interpolation"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/myungsub/meta-interpolation","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/myungsub%2Fmeta-interpolation","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/myungsub%2Fmeta-interpolation/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/myungsub%2Fmeta-interpolation/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/myungsub%2Fmeta-interpolation/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/myungsub","download_url":"https://codeload.github.com/myungsub/meta-interpolation/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/myungsub%2Fmeta-interpolation/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30537778,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-15T07:17:37.589Z","status":"ssl_error","status_checked_at":"2026-03-15T07:17:31.738Z","response_time":61,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["computer-vision","cvpr2020","deep-learning","frame-interpolation","meta-learning","pytorch","slow-motion","video-frame-interpolation"],"created_at":"2024-12-03T19:23:12.959Z","updated_at":"2026-03-15T07:39:22.402Z","avatar_url":"https://github.com/myungsub.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# SAVFI - Meta-Learning for Video Frame Interpolation\n\n#### Myungsub Choi, Janghoon Choi, Sungyong Baik, Tae Hyun Kim, Kyoung Mu Lee\n\nSource code for CVPR 2020 paper \"Scene-Adaptive Video Frame Interpolation via Meta-Learning\"\n\n[Project](https://myungsub.github.io/meta-interpolation) | [Paper-CVF](http://openaccess.thecvf.com/content_CVPR_2020/papers/Choi_Scene-Adaptive_Video_Frame_Interpolation_via_Meta-Learning_CVPR_2020_paper.pdf) | [Paper-ArXiv](https://arxiv.org/abs/2004.00779) | [Supp](http://openaccess.thecvf.com/content_CVPR_2020/supplemental/Choi_Scene-Adaptive_Video_Frame_CVPR_2020_supplemental.zip)\n\n\u003ca href=\"https://arxiv.org/abs/2004.00779\" rel=\"Video\"\u003e\u003cimg src=\"./figures/SAVFI_paper_thumb.jpg\" alt=\"Paper\" width=\"100%\"\u003e\u003c/a\u003e\n\n\n## Requirements\n\n- Ubuntu 18.04\n- Python==3.7\n- numpy==1.18.1\n- PyTorch==1.4.0, cudatoolkit==10.1\n- opencv==3.4.2\n- cupy==7.3 (recommended: `conda install cupy -c conda-forge`)\n- tqdm==4.44.1\n\nFor [[DAIN](https://github.com/baowenbo/DAIN)], the environment is different; please check `dain/dain_env.yml` for the requirements.\n\n\n## Usage\n\n***Disclaimer :*** This code is re-organized to run multiple different models in this single codebase. Due to a lot of version and env changes, the numbers obtained from this code may be different (usually better) from those reported in the paper. The original code modifies the main training scripts for each frame interpolation github repo ([[DVF (voxelflow)](https://github.com/lxx1991/pytorch-voxel-flow)], [[SuperSloMo](https://github.com/avinashpaliwal/Super-SloMo)], [[SepConv](https://github.com/sniklaus/sepconv-slomo)], [[DAIN](https://github.com/baowenbo/DAIN)]), and are put in `./legacy/*.py`. If you want to *exactly* reproduce the numbers reported in our paper, please contact [@myungsub](https://github.com/myungsub) for legacy experimental settings.\n\n### Dataset Preparation\n\n- We use [ [Vimeo90K Septuplet dataset](http://toflow.csail.mit.edu/) ] for training + testing\n  - After downloading the full dataset, make symbolic links in `data/` folder:\n    - `ln -s /path/to/vimeo_septuplet_data/ ./data/vimeo_septuplet`\n- For further evaluation, use:\n  - [ [Middlebury-OTHERS dataset](http://vision.middlebury.edu/flow/data/) ] - download `other-color-allframes.zip` and `other-gt-interp.zip`\n  - [ [HD dataset](https://github.com/baowenbo/MEMC-Net#hd-dataset-results) ] - download the original ground truth videos [[here](https://merced-my.sharepoint.com/:u:/g/personal/wbao2_ucmerced_edu/EU-1cwJsIGJLmGsIz6a30sEBo-Jv2DWcw65qElR5xwh6VA?e=spBaNI)]\n\n### Frame Interpolation Model Preparation\n\n- Download pretrained models from [[Here](https://www.dropbox.com/sh/4pphxdw8k3j34dq/AABRr61SSw09zVgfjYXlaHe3a?dl=0)], and save them to `./pretrained_models/*.pth`\n\n### Training / Testing with Vimeo90K-Septuplet dataset\n\n- For training, simply run: `./scripts/run_{VFI_MODEL_NAME}.sh`\n  - Currently supports: `sepconv`, `voxelflow`, `superslomo`, `cain`, and `rrin`\n  - Other models are coming soon!\n- For testing, just uncomment two lines containing: `--mode val` and `--pretrained_model {MODEL_NAME}`\n\n### Testing with custom data\n\n- See `scripts/run_test.sh` for details:\n- Things to change:\n  - Modify the folder directory containing the video frames by changing `--data_root` to your desired dir/\n  - Make sure to match the image format `--img_fmt` (defaults to `png`)\n  - Change `--model`, `--loss`, and `--pretrained_models` to what you want \n    - For [SepConv](https://github.com/sniklaus/sepconv-slomo), `--model` should be `sepconv`, and `--loss` should be `1*L1`\n    - For [VoxelFlow](https://github.com/lxx1991), `--model` should be `voxelflow`, and `--loss` should be `1*MSE`\n    - For [SuperSloMo](https://github.com/avinashpaliwal/Super-SloMo),  `--model` should be `superslomo`, `--loss` should be `1*Super`\n    - For [DAIN](https://github.com/baowenbo/DAIN), `--model` should be `dain`, and `--loss` should be `1*L1`\n    - For [CAIN](https://github.com/myungsub/CAIN), `--model` should be `cain`, and `--loss` should be `1*L1`\n    - For [RRIN](https://github.com/HopLee6/RRIN), '`--model` should be `rrin`, and `--loss` should be `1*L1`\n\n\n### Using Other Meta-Learning Algorithms\n\n- Current code supports using more advanced meta-learning algorithms compared to vanilla MAML, *e.g.* [MAML++](https://github.com/AntreasAntoniou/HowToTrainYourMAMLPytorch), [L2F](https://github.com/baiksung/L2F), or [Meta-SGD](https://arxiv.org/abs/1707.09835).\n  - For MAML++ you can explore many different hyperparameters by adding additional options (see `config.py`)\n  - For L2F, just uncomment `--attenuate` in `scripts/run_{VFI_MODEL_NAME}.sh`\n  - For Meta-SGD, just uncomment `--metasgd` (This usually results in the best performance!)\n\n### Framework Overview\n\n\u003ccenter\u003e\u003cimg src=\"./figures/fig_1.png\" width=\"80%\"\u003e\u003c/center\u003e\n\n\n\n## Results\n\n- Qualitative results for VimeoSeptuplet dataset\n\n\u003ccenter\u003e\u003cimg src=\"./figures/fig_qual.png\" width=\"100%\"\u003e\u003c/center\u003e\n\n- Qualitative results for Middlebury-OTHERS dataset\n\n\u003ccenter\u003e\u003cimg src=\"./figures/fig_qual_supp_middlebury.png\" width=\"100%\"\u003e\u003c/center\u003e\n\n- Qualitative results for HD dataset\n\n\u003ccenter\u003e\u003cimg src=\"./figures/fig_qual_supp_hd.png\" width=\"100%\"\u003e\u003c/center\u003e\n\n\n### Additional Results Video\n\n\u003ccenter\u003e\u003ca href=\"https://www.dropbox.com/s/6h4hyeiuoulzyk7/07235-supp-video.mp4\" rel=\"Video\"\u003e\u003cimg src=\"./figures/thumb.png\" alt=\"Video\" width=\"70%\"\u003e\u003c/a\u003e\u003c/center\u003e\n\n\n## Citation\n\nIf you find this code useful for your research, please consider citing the following paper:\n\n``` text\n@inproceedings{choi2020meta,\n    author = {Choi, Myungsub and Choi, Janghoon and Baik, Sungyong and Kim, Tae Hyun and Lee, Kyoung Mu},\n    title = {Scene-Adaptive Video Frame Interpolation via Meta-Learning},\n    booktitle = {CVPR},\n    year = {2020}\n}\n```\n\n## Acknowledgement\n\nThe main structure of this code is based on [MAML++](https://github.com/AntreasAntoniou/HowToTrainYourMAMLPytorch).\nTraining scripts for each of the frame interpolation method is adopted from: [[DVF](https://github.com/lxx1991/pytorch-voxel-flow)], [[SuperSloMo](https://github.com/avinashpaliwal/Super-SloMo)], [[SepConv](https://github.com/sniklaus/sepconv-slomo)], [[DAIN](https://github.com/baowenbo/DAIN)], [[CAIN](https://github.com/myungsub/CAIN)], [[RRIN](https://github.com/HopLee6/RRIN)]. \nWe thank the authors for sharing the codes for their great works.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmyungsub%2Fmeta-interpolation","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmyungsub%2Fmeta-interpolation","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmyungsub%2Fmeta-interpolation/lists"}