{"id":22381943,"url":"https://github.com/googleinterns/deep-stabilization","last_synced_at":"2025-04-09T23:17:56.987Z","repository":{"id":44808258,"uuid":"263769322","full_name":"googleinterns/deep-stabilization","owner":"googleinterns","description":null,"archived":false,"fork":false,"pushed_at":"2024-08-30T23:56:48.000Z","size":113401,"stargazers_count":169,"open_issues_count":19,"forks_count":36,"subscribers_count":13,"default_branch":"master","last_synced_at":"2025-04-09T23:17:45.886Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/googleinterns.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"docs/contributing.md","funding":null,"license":"LICENSE","code_of_conduct":"docs/code-of-conduct.md","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":"2020-05-13T23:48:28.000Z","updated_at":"2025-04-09T09:05:35.000Z","dependencies_parsed_at":"2024-12-05T00:21:11.245Z","dependency_job_id":null,"html_url":"https://github.com/googleinterns/deep-stabilization","commit_stats":{"total_commits":38,"total_committers":4,"mean_commits":9.5,"dds":0.5,"last_synced_commit":"7159c09d21aee3fc2098c64698c1300e40e3a8ea"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/googleinterns%2Fdeep-stabilization","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/googleinterns%2Fdeep-stabilization/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/googleinterns%2Fdeep-stabilization/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/googleinterns%2Fdeep-stabilization/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/googleinterns","download_url":"https://codeload.github.com/googleinterns/deep-stabilization/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248125593,"owners_count":21051771,"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":[],"created_at":"2024-12-05T00:11:07.556Z","updated_at":"2025-04-09T23:17:56.963Z","avatar_url":"https://github.com/googleinterns.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Deep Online Fused Video Stabilization\n\n[[Paper]](https://openaccess.thecvf.com/content/WACV2022/papers/Shi_Deep_Online_Fused_Video_Stabilization_WACV_2022_paper.pdf)[[Supplementary]](https://zhmeishi.github.io/dvs/paper/dvs_supp.pdf)  [[Project Page]](https://zhmeishi.github.io/dvs/) [[Dataset]](https://storage.googleapis.com/dataset_release/all.zip) [[Our Result]](https://storage.googleapis.com/dataset_release/inference_result_release.zip) [[More Results]](https://zhmeishi.github.io/dvs/supp/results.html) \n\nThis repository contains the Pytorch implementation of our method in the paper \"Deep Online Fused Video Stabilization\".\n\n## Environment Setting\nPython version \u003e= 3.6\nPytorch with CUDA \u003e= 1.0.0 (guide is [here](https://pytorch.org/get-started/locally/))\nInstall other used packages:\n```\ncd dvs\npip install -r requirements.txt --ignore-installed\n```\n\n## Data Preparation\nDownload sample video [here](https://drive.google.com/file/d/1PpF3-6BbQKy9fldjIfwa5AlbtQflx3sG/view?usp=sharing).\nUncompress the *video* folder under the *dvs* folder.\n```\npython load_frame_sensor_data.py \n```\nDemo of curve visualization:\nThe **gyro/OIS curve visualization** can be found at *dvs/video/s_114_outdoor_running_trail_daytime/ControlCam_20200930_104820_real.jpg*.\n\n\n## FlowNet2 Preparation\nNote, we provide optical flow result of one test video in our Data Preparation. If you would like to generate them for all test videos, please follow [FlowNet2 official website](https://github.com/NVIDIA/flownet2-pytorch) and guide below. Otherwise, you can skip this section. \n\nNote, FlowNet2 installation is tricky. Please use Python=3.6 and Pytorch=1.0.0. More details are [here](https://github.com/NVIDIA/flownet2-pytorch/issues/156) or contact us for any questions.\n\nDownload FlowNet2 model *FlowNet2_checkpoint.pth.tar* [here](https://drive.google.com/file/d/1hF8vS6YeHkx3j2pfCeQqqZGwA_PJq_Da/view).  Move it under folder *dvs/flownet2*.\n```\npython warp/read_write.py # video2frames\ncd flownet2\nbash install.sh # install package\nbash run.sh # generate optical flow file for dataset\n``` \n\n## Running Inference \n```\npython inference.py\npython metrics.py\n``` \nThe loss and metric information will be printed in the terminal. The metric numbers can be slightly different due to difference on opencv/pytorch versions.  \n\nThe result is under *dvs/test/stabilzation*.   \nIn *s_114_outdoor_running_trail_daytime.jpg*, the blue curve is the output of our models, and the green curve is the input.   \n*s_114_outdoor_running_trail_daytime_stab.mp4* is uncropped stabilized video.  \n*s_114_outdoor_running_trail_daytime_stab_crop.mp4* is cropped stabilized video. Note, the cropped video is generated after running the metrics code.   \n\n## Training\nDownload dataset for training and test [here](https://storage.googleapis.com/dataset_release/all.zip). \nUncompress *all.zip* and move *dataset_release* folder under the *dvs* folder.\n\nFollow FlowNet2 Preparation Section.\n```\npython warp/read_write.py --dir_path ./dataset_release # video2frames\ncd flownet2\nbash run_release.sh # generate optical flow file for dataset\n``` \n\nRun training code.\n```\npython train.py\n``` \nThe model is saved in *checkpoint/stabilzation_train*.\n\n## Citation \nIf you use this code or dataset for your research, please cite our paper.\n```\n@inproceedings{shi2022deep,\n  title={Deep Online Fused Video Stabilization},\n  author={Shi, Zhenmei and Shi, Fuhao and Lai, Wei-Sheng and Liang, Chia-Kai and Liang, Yingyu},\n  booktitle={Proceedings of the IEEE/CVF Winter Conference on Applications of Computer Vision},\n  pages={1250--1258},\n  year={2022}\n}\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgoogleinterns%2Fdeep-stabilization","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgoogleinterns%2Fdeep-stabilization","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgoogleinterns%2Fdeep-stabilization/lists"}