
创新视频修复技术提升传播和变换器效果
ProPainter是一个开源的视频修复项目,通过改进传播和变换器技术提高修复质量。它支持对象移除和视频补全,可处理高分辨率视频,并提供内存高效的推理。该项目开放了源代码和预训练模型,还提供在线演示。ProPainter在视频修复领域取得了显著进展,为相关研究和应用提供了有力支持。
⭐ 如果ProPainter对您的项目有帮助,请给这个仓库点个星。谢谢!🤗
:open_book: 更多视觉效果,请查看我们的<a href="https://shangchenzhou.com/projects/ProPainter/" target="_blank">项目主页</a>

克隆仓库
git clone https://github.com/sczhou/ProPainter.git
创建Conda环境并安装依赖
# 创建新的anaconda环境 conda create -n propainter python=3.8 -y conda activate propainter # 安装Python依赖 pip3 install -r requirements.txt
requirements.txt中从Releases V0.1.0下载我们的预训练模型到weights文件夹。(所有预训练模型也可以在首次推理时自动下载。)
目录结构将安排如下:
weights
|- ProPainter.pth
|- recurrent_flow_completion.pth
|- raft-things.pth
|- i3d_rgb_imagenet.pt (用于评估VFID指标)
|- README.md
我们在inputs文件夹中提供了一些示例。
运行以下命令来尝试:
# 第一个示例(物体移除) python inference_propainter.py --video inputs/object_removal/bmx-trees --mask inputs/object_removal/bmx-trees_mask # 第二个示例(视频补全) python inference_propainter.py --video inputs/video_completion/running_car.mp4 --mask inputs/video_completion/mask_square.png --height 240 --width 432
结果将保存在results文件夹中。
要测试您自己的视频,请准备输入的mp4视频(或拆分帧)和逐帧掩码。
如果您想指定处理的视频分辨率或避免内存不足,可以设置--width和--height的视频大小:
# 处理576x320的视频;设置--fp16以在推理时使用fp16(半精度)。 python inference_propainter.py --video inputs/video_completion/running_car.mp4 --mask inputs/video_completion/mask_square.png --height 320 --width 576 --fp16
视频修复通常需要大量的GPU内存。在这里,我们提供了各种功能,有助于内存高效推理,有效避免内存不足(OOM)错误。您可以使用以下选项进一步减少内存使用:
--neighbor_length(默认10)来减少局部邻居的数量。--ref_stride(默认10)来减少全局参考的数量。--resize_ratio(默认1.0)来调整处理视频的大小。--width和--height来设置较小的视频尺寸。--fp16在推理时使用fp16(半精度)。--subvideo_length(默认80),这有效地解耦了GPU内存成本和视频长度。以下显示了不同子视频长度使用fp32/fp16精度的估计GPU内存需求:
| 分辨率 | 50 帧 | 80 帧 |
|---|---|---|
| 1280 x 720 | 28G / 19G | OOM / 25G |
| 720 x 480 | 11G / 7G | 13G / 8G |
| 640 x 480 | 10G / 6G | 12G / 7G |
| 320 x 240 | 3G / 2G | 4G / 3G |
训练和测试的分割文件位于datasets/<dataset_name>中。对于每个数据集,你应该将JPEGImages放置在datasets/<dataset_name>中。将所有视频帧调整为432x240大小用于训练。解压下载的掩码文件到datasets目录。
datasets目录结构将如下排列:(注意:请仔细检查)
datasets
|- davis
|- JPEGImages_432_240
|- <video_name>
|- 00000.jpg
|- 00001.jpg
|- test_masks
|- <video_name>
|- 00000.png
|- 00001.png
|- train.json
|- test.json
|- youtube-vos
|- JPEGImages_432_240
|- <video_name>
|- 00000.jpg
|- 00001.jpg
|- test_masks
|- <video_name>
|- 00000.png
|- 00001.png
|- train.json
|- test.json
我们的训练配置在train_flowcomp.json(用于循环流补全网络)和train_propainter.json(用于ProPainter)中提供。
运行以下命令之一进行训练:
# 训练循环流补全网络 python train.py -c configs/train_flowcomp.json # 训练ProPainter python train.py -c configs/train_propainter.json
你可以运行相同的命令来恢复你的训练。
为了加速训练过程,你可以使用以下命令预先计算训练数据集的光流:
# 计算训练数据集的光流 python scripts/compute_flow.py --root_path <dataset_root> --save_path <save_flow_root> --height 240 --width 432
运行以下命令之一进行评估:
# 评估流补全模型 python scripts/evaluate_flow_completion.py --dataset <dataset_name> --video_root <video_root> --mask_root <mask_root> --save_results # 评估ProPainter模型 python scripts/evaluate_propainter.py --dataset <dataset_name> --video_root <video_root> --mask_root <mask_root> --save_results
分数和结果也将保存在results_eval文件夹中。
请使用--save_results以便进一步评估时间扭曲误差。
如果你发现我们的仓库对你的研究有用,请考虑引用我们的论文:
@inproceedings{zhou2023propainter, title={{ProPainter}: Improving Propagation and Transformer for Video Inpainting}, author={Zhou, Shangchen and Li, Chongyi and Chan, Kelvin C.K and Loy, Chen Change}, booktitle={Proceedings of IEEE International Conference on Computer Vision (ICCV)}, year={2023} }
本项目采用<a rel="license" href="./LICENSE">NTU S-Lab许可证1.0</a>授权。重新分发和使用应遵循此许可证。
如果你有任何问题,请随时通过shangchenzhou@gmail.com与我联系。
本代码基于E<sup>2</sup>FGVI和STTN。部分代码来自BasicVSR++。感谢他们出色的工作。
特别感谢Yihang Luo为ProPainter构建和维护Gradio演示做出的宝贵贡献。


企业专属的AI法律顾问
iTerms是法大大集团旗下法律子品牌,基于最先进的大语言模型(LLM)、专业的法律知识库和强大的智能体架构,帮助企业扫清合规障碍,筑牢风控防线,成为您企业专属的AI法律顾问。


稳定高效的流量提升解决方案,助力品牌曝光
稳定高效的流量提升解决方案,助力品牌曝光


最新版Sora2模型免费使用,一键生成无水印视频
最新版Sora2模型免费使用,一键生成无水印视频


实时语音翻译/同声传译工具
Transly是一个多场景的AI大语言模型驱动的同声传译、专业翻译助手,它拥有超精准的音频识别翻译能力,几乎零延迟的使用体验和支持多国语言可以让你带它走遍全球,无论你是留学生、商务人士、韩剧美剧爱好者,还是出国游玩、多国会议、跨国追星等等,都可以满足你所有需要同传的场景需求,线上线下通用,扫除语言障碍,让全世界的语言交流不再有国界。


选题、配图、成文,一站式创作,让内容运营更高效
讯飞绘文,一个AI集成平台,支持写作、选题、配图、排版和发布。高效生成适用于各类媒体的定制内容,加速品牌传播,提升内容营销效果。


AI辅助编程,代码自动修复
Trae是一种自适应的集成开发环境(IDE),通过自动化和多元协作改变开发流程。利用Trae,团队能够更快速、精确地编写和部署代码,从而提高编程效率和项目交付速度。Trae具备上下文感知和代码自动完成功能,是提升开发效率的理想工具。


最强AI数据分析助手
小浣熊家族Raccoon,您的AI智能助手,致力于通过先进的人工智能技术,为用户提供高效、便捷的智能服务。无论是日常咨询还是专业问题解答,小浣熊都能以快速、准确的响应满足您的需求,让您的生活更加智能便捷。


像人一样思考的AI智能体
imini 是一款超级AI智能体,能根据人类指令,自主思考、自主完成、并且交付结果的AI智能体。


AI数字人视频创作平台
Keevx 一款开箱即用的AI数字人视频创作平台,广泛适用于电商广告、企业培训与社媒宣传,让全球企业与个人创作者无需拍摄剪辑,就能快速生成多语言、高质量的专业视频。


一站式AI创作平台
提供 AI 驱动的图片、视频生成及数字人等功能,助力创意创作
最新AI工具、AI资讯
独家AI资源、AI项目落地

微信扫一扫关注公众号