用于视频预测的动态多尺度体素流网络
主页 | Colab | arXiv | YouTube
本项目是我们论文《用于视频预测的动态多尺度体素流网络》的实现,该论文被**CVPR2023接收(亮点✨,占录用论文的10%)。**我们提出了一个用于视频预测的最先进模型。
海报 | 研究历程 | 中文论文 | 回复 (3WA->1WA2SA) | 演示
使用方法
安装
git clone https://github.com/megvii-research/CVPR2023-DMVFN.git
cd CVPR2023-DMVFN
pip3 install -r requirements.txt
- 从Google Drive下载预训练模型。(百度网盘 密码:33ly),并将预训练参数移动到
CVPR2023-DMVFN/pretrained_models/*
pip install gdown
mkdir pretrained_models && cd pretrained_models
gdown --id 1jILbS8Gm4E5Xx4tDCPZh_7rId0eo8r9W
gdown --id 1WrV30prRiS4hWOQBnVPUxdaTlp9XxmVK
gdown --id 14_xQ3Yl3mO89hr28hbcQW3h63lLrcYY0
cd ..
数据准备
在本节中,我们将下载所有部分,包括训练集和测试集。如果你只需要测试集,请跳转到直接下载测试分割。
最终的数据文件夹CVPR2023-DMVFN/data/
应该按以下方式组织:
data
├── Cityscapes
│ ├── train (512x1024的Citysapes图像)
│ │ └── 000000
│ │ └── ...
│ │ └── 002974
│ ├── test (512x1024的Citysapes图像)
│ │ └── 000000
│ │ └── ...
│ │ └── 000499
├── KITTI
│ ├── train (256x832的Kitti图像)
│ │ └── 000000
│ │ └── ...
│ │ └── 013499
│ ├── test (256x832的Kitti图像)
│ │ └── 000000
│ │ └── ...
│ │ └── 001336
├── UCF101
│ ├── v_ApplyEyeMakeup_g08_c01
│ └── ...
└── vimeo_interp_test
└── target
└── 00001
└── ...
Cityscapes
-
从这里下载Cityscapes数据集
leftImg8bit_sequence_trainvaltest.zip
。 -
解压
leftImg8bit_sequence_trainvaltest.zip
。
unzip leftImg8bit_sequence_trainvaltest.zip
- 运行 ./utils/prepare_city.py
python3 ./utils/prepare_city.py
KITTI
-
从Google Drive下载KITTI数据集。你需要注册并登录,然后下载所有视频。
-
我们的训练分割和测试分割与YueWuHKUST/CVPR2020-FutureVideoSynthesis一致。
训练分割的视频:
2011_09_26_drive_0001_sync 2011_09_26_drive_0018_sync 2011_09_26_drive_0104_sync 2011_09_26_drive_0002_sync 2011_09_26_drive_0048_sync
2011_09_26_drive_0106_sync 2011_09_26_drive_0005_sync 2011_09_26_drive_0051_sync 2011_09_26_drive_0113_sync 2011_09_26_drive_0009_sync
2011_09_26_drive_0056_sync 2011_09_26_drive_0117_sync 2011_09_26_drive_0011_sync 2011_09_26_drive_0057_sync 2011_09_28_drive_0001_sync
2011_09_26_drive_0013_sync 2011_09_26_drive_0059_sync 2011_09_28_drive_0002_sync 2011_09_26_drive_0014_sync 2011_09_26_drive_0091_sync
2011_09_29_drive_0026_sync 2011_09_26_drive_0017_sync 2011_09_26_drive_0095_sync 2011_09_29_drive_0071_sync
用于测试分割的视频:
2011_09_26_drive_0060_sync 2011_09_26_drive_0084_sync 2011_09_26_drive_0093_sync 2011_09_26_drive_0096_sync
- 解压所有文件,然后按如下方式重新组织数据集:
mkdir train_or
unzip 2011_09_26_drive_0001_sync
mv 2011_09_26_drive_0001_sync/image02/data/ train_or/2011_09_26_drive_0001_sync
对所有文件执行此命令。我们使用image02和image03进行训练。
- 运行 ./utils/prepare_kitti.py。
python3 ./utils/prepare_kitti.py
- 对测试分割做同样的操作。
UCF101
我们从UCF101数据集中的每个视频中提取RGB帧并保存为.jpg图像。
为方便起见,直接从feichtenhofer/twostreamfusion下载预处理的数据。
wget http://ftp.tugraz.at/pub/feichtenhofer/tsfusion/data/ucf101_jpegs_256.zip.001
wget http://ftp.tugraz.at/pub/feichtenhofer/tsfusion/data/ucf101_jpegs_256.zip.002
wget http://ftp.tugraz.at/pub/feichtenhofer/tsfusion/data/ucf101_jpegs_256.zip.003
cat ucf101_jpegs_256.zip* > ucf101_jpegs_256.zip
unzip ucf101_jpegs_256.zip
Vimeo90K
- 直接从这里下载Vimeo90K数据集。
- 解压数据集。
运行
😆训练
对于Cityscapes数据集:
python3 -m torch.distributed.launch --nproc_per_node=8 \
--master_port=4321 ./scripts/train.py \
--train_dataset CityTrainDataset \
--val_datasets CityValDataset \
--batch_size 8 \
--num_gpu 8
对于KITTI数据集:
python3 -m torch.distributed.launch --nproc_per_node=8 \
--master_port=4321 ./scripts/train.py \
--train_dataset KittiTrainDataset \
--val_datasets KittiValDataset \
--batch_size 8 \
--num_gpu 8
对于DAVIS和Vimeo数据集:
python3 -m torch.distributed.launch --nproc_per_node=8 \
--master_port=4321 ./scripts/train.py \
--train_dataset UCF101TrainDataset \
--val_datasets DavisValDataset VimeoValDataset \
--batch_size 8 \
--num_gpu 8
🤔️测试
直接下载不同数据集的测试分割
直接从Google Drive下载Cityscapes_test。(百度网盘 密码: wk7k)
直接从Google Drive下载KITTI_test。(百度网盘 密码: e7da)
直接从Google Drive下载DAVIS_test。(百度网盘 密码: mczk)
直接从Google Drive下载Vimeo_test。(百度网盘 密码: 0mjo)
运行以下命令生成DMVFN模型的测试结果。--val_datasets
可以是CityValDataset
、KittiValDataset
、DavisValDataset
和VimeoValDataset
。--save_image
可以禁用。
python3 ./scripts/test.py \
--val_datasets CityValDataset [可选: KittiValDataset, DavisValDataset, VimeoValDataset] \
--load_path 预训练权重的路径 \
--save_image
图像结果
我们在百度网盘(密码: k7eb)中提供了DMVFN在各种数据集(Cityscapes、KITTI、DAVIS和Vimeo)上的图像结果。
我们还在百度网盘(密码: 8zo9)中提供了DMVFN(无路由)的结果。
测试图像结果
运行以下命令直接测试图像结果。
python3 ./scripts/test_ssim_lpips.py
😋单次测试
我们提供了一个简单的代码,用t-1
和t
图像预测t+1
图像。请运行以下命令:
python3 ./scripts/single_test.py \
--image_0_path ./images/sample_img_0.png \
--image_1_path ./images/sample_img_1.png \
--load_path 预训练权重的路径 \
--output_dir pred.png
推荐
我们诚挚推荐一些相关论文:
ECCV22 - Real-Time Intermediate Flow Estimation for Video Frame Interpolation
CVPR22 - Optimizing Video Prediction via Video Frame Interpolation
引用
如果您认为这个项目有帮助,请随意给予星标或引用我们的论文:
@inproceedings{hu2023dmvfn,
title={用于视频预测的动态多尺度体素流网络},
author={胡晓涛 and 黄哲伟 and 黄艾琳 and 徐军 and 周树昌},
booktitle={IEEE/CVF计算机视觉与模式识别会议论文集(CVPR)},
year={2023}
}