BasicVSR: The Search for Essential Components in Video Super-Resolution and Beyond
Task: Video Super-Resolution
Video super-resolution (VSR) approaches tend to have more components than the image counterparts as they need to exploit the additional temporal dimension. Complex designs are not uncommon. In this study, we wish to untangle the knots and reconsider some most essential components for VSR guided by four basic functionalities, i.e., Propagation, Alignment, Aggregation, and Upsampling. By reusing some existing components added with minimal redesigns, we show a succinct pipeline, BasicVSR, that achieves appealing improvements in terms of speed and restoration quality in comparison to many state-of-the-art algorithms. We conduct systematic analysis to explain how such gain can be obtained and discuss the pitfalls. We further show the extensibility of BasicVSR by presenting an information-refill mechanism and a coupled propagation scheme to facilitate information aggregation. The BasicVSR and its extension, IconVSR, can serve as strong baselines for future VSR approaches.
Evaluated on RGB channels for REDS4 and Y channel for others. The metrics are PSNR
/ SSIM
.
The pretrained weights of SPyNet can be found here.
Model | Dataset | PSNR (RGB) | SSIM (RGB) | PSNR (Y) | SSIM (Y) | Training Resources | Download |
---|---|---|---|---|---|---|---|
basicvsr_reds4 | REDS4 (BIx4) | 31.4170 | 0.8909 | - | - | 2 (Tesla V100-PCIE-32GB) | model | log |
basicvsr_reds4 | UDM10 (BDx4) | - | - | 33.4478 | 0.9306 | 2 (Tesla V100-PCIE-32GB) | model | log |
basicvsr_reds4 | Vimeo-90K-T (BIx4) | - | - | 36.2848 | 0.9395 | 2 (Tesla V100-PCIE-32GB) | model | log |
basicvsr_reds4 | Vimeo-90K-T (BDx4) | - | - | 34.4700 | 0.9286 | 2 (Tesla V100-PCIE-32GB) | model | log |
basicvsr_reds4 | Vid4 (BIx4) | - | - | 27.2694 | 0.8318 | 2 (Tesla V100-PCIE-32GB) | model | log |
basicvsr_reds4 | Vid4 (BDx4) | - | - | 24.4541 | 0.7455 | 2 (Tesla V100-PCIE-32GB) | model | log |
basicvsr_vimeo90k_bi | REDS4 (BIx4) | 30.3128 | 0.8660 | - | - | 2 (Tesla V100-PCIE-32GB) | model | log |
basicvsr_vimeo90k_bi | UDM10 (BDx4) | - | - | 34.5554 | 0.9451 | 2 (Tesla V100-PCIE-32GB) | model | log |
basicvsr_vimeo90k_bi | Vimeo-90K-T (BIx4) | - | - | 37.2026 | 0.9434 | 2 (Tesla V100-PCIE-32GB) | model | log |
basicvsr_vimeo90k_bi | Vimeo-90K-T (BDx4) | - | - | 34.8097 | 0.9316 | 2 (Tesla V100-PCIE-32GB) | model | log |
basicvsr_vimeo90k_bi | Vid4 (BIx4) | - | - | 27.2755 | 0.8248 | 2 (Tesla V100-PCIE-32GB) | model | log |
basicvsr_vimeo90k_bi | Vid4 (BDx4) | - | - | 25.0517 | 0.7636 | 2 (Tesla V100-PCIE-32GB) | model | log |
basicvsr_vimeo90k_bd | REDS4 (BIx4) | 29.0376 | 0.8481 | - | - | 2 (Tesla V100-PCIE-32GB) | model | log |
basicvsr_vimeo90k_bd | UDM10 (BDx4) | - | - | 39.9953 | 0.9695 | 2 (Tesla V100-PCIE-32GB) | model | log |
basicvsr_vimeo90k_bd | Vimeo-90K-T (BIx4) | - | - | 34.6427 | 0.9335 | 2 (Tesla V100-PCIE-32GB) | model | log |
basicvsr_vimeo90k_bd | Vimeo-90K-T (BDx4) | - | - | 37.5501 | 0.9499 | 2 (Tesla V100-PCIE-32GB) | model | log |
basicvsr_vimeo90k_bd | Vid4 (BIx4) | - | - | 26.2708 | 0.8022 | 2 (Tesla V100-PCIE-32GB) | model | log |
basicvsr_vimeo90k_bd | Vid4 (BDx4) | - | - | 27.9791 | 0.8556 | 2 (Tesla V100-PCIE-32GB) | model | log |
Train
You can use the following commands to train a model with cpu or single/multiple GPUs.
# cpu train
CUDA_VISIBLE_DEVICES=-1 python tools/train.py configs/basicvsr/basicvsr_2xb4_reds4.py
# single-gpu train
python tools/train.py configs/basicvsr/basicvsr_2xb4_reds4.py
# multi-gpu train
./tools/dist_train.sh configs/basicvsr/basicvsr_2xb4_reds4.py 8
For more details, you can refer to Train a model part in train_test.md.
Test
You can use the following commands to test a model with cpu or single/multiple GPUs.
# cpu test
CUDA_VISIBLE_DEVICES=-1 python tools/test.py configs/basicvsr/basicvsr_2xb4_reds4.py https://download.openmmlab.com/mmediting/restorers/basicvsr/basicvsr_reds4_20120409-0e599677.pth
# single-gpu test
python tools/test.py configs/basicvsr/basicvsr_2xb4_reds4.py https://download.openmmlab.com/mmediting/restorers/basicvsr/basicvsr_reds4_20120409-0e599677.pth
# multi-gpu test
./tools/dist_test.sh configs/basicvsr/basicvsr_2xb4_reds4.py https://download.openmmlab.com/mmediting/restorers/basicvsr/basicvsr_reds4_20120409-0e599677.pth 8
For more details, you can refer to Test a pre-trained model part in train_test.md.
@InProceedings{chan2021basicvsr,
author = {Chan, Kelvin CK and Wang, Xintao and Yu, Ke and Dong, Chao and Loy, Chen Change},
title = {BasicVSR: The Search for Essential Components in Video Super-Resolution and Beyond},
booktitle = {Proceedings of the IEEE conference on computer vision and pattern recognition},
year = {2021}
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。