English | 简体中文
本项目包含了以下论文的官方实现:
Towards An End-to-End Framework for Flow-Guided Video Inpainting
Zhen Li#, Cheng-Ze Lu#, Jianhua Qin, Chun-Le Guo*, Ming-Ming Cheng
IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR), 2022
[论文] [Demo Video (Youtube)] [演示视频 (B站)] [项目主页 (待定)] [海报 (待定)]
-
2022.05.15: 可适配任意分辨率的E2FGVI-HQ已发布.该模型仅需要在 432x240 的分辨率下进行训练, 即可适配更高分辨率下的推理任务.并且, 该模型比原先模型能够取得更好的PSNR/SSIM指标. :link: 下载链接: [Google Drive] [Baidu Disk] 🎥 演示视频: [Youtube] [B站]
-
2022.04.06: 代码公开发布.
- 更好的性能: 本文提出的E2FGVI模型相较于现有工作在所有量化指标上取得了显著提升.
- 更快的速度: 本文的方法在一张Titan XP GPU上, 处理分辨率为 432 × 240 的视频大约需要0.12秒/帧, 大约是前有的基于光流的方法的15倍.除此以外, 本文的方法相较于之前最优的方法具有最低的FLOPs计算量.
- 更新项目主页
- Hugging Face 演示
- 更高效的推理过程
-
克隆仓库
git clone https://github.com/MCG-NKU/E2FGVI.git
-
创建Conda环境并且安装依赖
conda env create -f environment.yml conda activate e2fgvi
- Python >= 3.7
- PyTorch >= 1.5
- CUDA >= 9.2
- mmcv-full (following the pipeline to install)
若无法使用
environment.yml
安装依赖, 请参照此处.
首先请下载预训练模型
模型 | 🔗 下载链接 | 支持任意分辨率 ? | PSNR / SSIM / VFID (DAVIS) |
---|---|---|---|
E2FGVI | [谷歌网盘] [百度网盘] | ❌ | 33.01 / 0.9721 / 0.116 |
E2FGVI-HQ | [谷歌网盘] [百度网盘] | ⭕ | 33.06 / 0.9722 / 0.117 |
然后, 解压文件并且将模型放入release_model
文件夹下.
文件夹目录结构如下:
release_model
|- E2FGVI-CVPR22.pth
|- E2FGVI-HQ-CVPR22.pth
|- i3d_rgb_imagenet.pt (for evaluating VFID metric)
|- README.md
我们提供了两个测试示例
使用如下命令运行:
# 第一个示例 (使用视频帧)
python test.py --model e2fgvi (or e2fgvi_hq) --video examples/tennis --mask examples/tennis_mask --ckpt release_model/E2FGVI-CVPR22.pth (or release_model/E2FGVI-HQ-CVPR22.pth)
# 第二个示例 (使用mp4格式的视频)
python test.py --model e2fgvi (or e2fgvi_hq) --video examples/schoolgirls.mp4 --mask examples/schoolgirls_mask --ckpt release_model/E2FGVI-CVPR22.pth (or release_model/E2FGVI-HQ-CVPR22.pth)
视频补全的结果会被保存在results
路径下.若果想要测试更多样例, 请准备mp4视频(或视频帧)以及每一帧的mask.
注意: E2FGVI会将输入视频放缩到固定的分辨率(432x240), 然而E2FGVI-HQ不会改变输入视频的分辨率.如果需要自定义输出的分辨率, 请设置--set_size
参数以及设置输出分辨率的--width
和--height
值.
例:
# 使用该命令输入720p视频
python test.py --model e2fgvi_hq --video <video_path> --mask <mask_path> --ckpt release_model/E2FGVI-HQ-CVPR22.pth --set_size --width 1280 --height 720
数据集 | YouTube-VOS | DAVIS |
---|---|---|
详情 | 训练: 3,471, 验证: 508 | 验证: 50 (共90) |
Images | [官方链接] (下载全部训练测试集) | [官方链接] (2017, 480p, TrainVal) |
Masks | [谷歌网盘] [百度网盘] (复现论文结果) |
训练与测试集分割文件位于 datasets/<dataset_name>
.
对于每一个数据集, 需要将 JPEGImages
放入 datasets/<dataset_name>
目录下.
然后, 运行 sh datasets/zip_dir.sh
(注意: 请编辑对应的目录路径) 来压缩位于datasets/<dataset_name>/JPEGImages
的每一个视频.
将下载的mask解压缩至 datasets
.
datasets
目录结构如下: (注意: 请仔细核验)
datasets
|- davis
|- JPEGImages
|- <video_name>.zip
|- <video_name>.zip
|- test_masks
|- <video_name>
|- 00000.png
|- 00001.png
|- train.json
|- test.json
|- youtube-vos
|- JPEGImages
|- <video_id>.zip
|- <video_id>.zip
|- test_masks
|- <video_id>
|- 00000.png
|- 00001.png
|- train.json
|- test.json
|- zip_file.sh
运行如下的一个命令进行验证:
# 验证E2FGVI模型
python evaluate.py --model e2fgvi --dataset <dataset_name> --data_root datasets/ --ckpt release_model/E2FGVI-CVPR22.pth
# 验证E2FGVI-HQ模型
python evaluate.py --model e2fgvi_hq --dataset <dataset_name> --data_root datasets/ --ckpt release_model/E2FGVI-HQ-CVPR22.pth
若你验证 E2FGVI 模型, 那么将会得到论文中的验证结果. E2FGVI-HQ 的验证结果请参考 [此处].
验证结果将被保存在 results/<model_name>_<dataset_name>
目录下.
若需验证temporal warping error, 请添加 --save_results
参数.
Our training configures are provided in train_e2fgvi.json
(for E2FGVI) and train_e2fgvi_hq.json
(for E2FGVI-HQ).
本文的训练配置如 train_e2fgvi.json
(对于 E2FGVI) 与 train_e2fgvi_hq.json
(对于 E2FGVI-HQ) 所示.
运行如下的一条命令进行训练:
# 训练 E2FGVI
python train.py -c configs/train_e2fgvi.json
# 训练 E2FGVI-HQ
python train.py -c configs/train_e2fgvi_hq.json
如果需要恢复训练, 请运行相同的指令.
训练损失能够使用如下命令可视化:
tensorboard --logdir release_model
请使用上述步骤来验证训练的模型.
若我们的仓库对你的研究内容有帮助, 请参考如下 bibtex 引用本文:
@inproceedings{liCvpr22vInpainting,
title={Towards An End-to-End Framework for Flow-Guided Video Inpainting},
author={Li, Zhen and Lu, Cheng-Ze and Qin, Jianhua and Guo, Chun-Le and Cheng, Ming-Ming},
booktitle={IEEE Conference on Computer Vision and Pattern Recognition (CVPR)},
year={2022}
}
若有任何疑问, 请通过zhenli1031ATgmail.com
或 czlu919AToutlook.com
联系.
该仓库由 Zhen Li 与 Cheng-Ze Lu 维护.
代码基于 STTN, FuseFormer, Focal-Transformer, 与 MMEditing.