Skip to content

Commit 0320800

Browse files
authored
[Feature] Add RealBasicVSR Training Config (open-mmlab#680)
1 parent dea1e01 commit 0320800

6 files changed

+744
-0
lines changed
+46
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
# RealBasicVSR (arXiv'2021)
2+
3+
## Abstract
4+
5+
<!-- [ABSTRACT] -->
6+
7+
The diversity and complexity of degradations in real-world video super-resolution (VSR) pose non-trivial challenges in inference and training. First, while long-term propagation leads to improved performance in cases of mild degradations, severe in-the-wild degradations could be exaggerated through propagation, impairing output quality. To balance the tradeoff between detail synthesis and artifact suppression, we found an image pre-cleaning stage indispensable to reduce noises and artifacts prior to propagation. Equipped with a carefully designed cleaning module, our RealBasicVSR outperforms existing methods in both quality and efficiency. Second, real-world VSR models are often trained with diverse degradations to improve generalizability, requiring increased batch size to produce a stable gradient. Inevitably, the increased computational burden results in various problems, including 1) speed-performance tradeoff and 2) batch-length tradeoff. To alleviate the first tradeoff, we propose a stochastic degradation scheme that reduces up to 40% of training time without sacrificing performance. We then analyze different training settings and suggest that employing longer sequences rather than larger batches during training allows more effective uses of temporal information, leading to more stable performance during inference. To facilitate fair comparisons, we propose the new VideoLQ dataset, which contains a large variety of real-world low-quality video sequences containing rich textures and patterns. Our dataset can serve as a common ground for benchmarking. Code, models, and the dataset will be made publicly available.
8+
9+
<!-- [IMAGE] -->
10+
<p align="center">
11+
<img src="https://user-images.githubusercontent.com/7676947/146704029-58bc4db4-267f-4158-8129-e49ab6652249.png" />
12+
</p>
13+
14+
<!-- [PAPER_TITLE: Investigating Tradeoffs in Real-World Video Super-Resolution] -->
15+
<!-- [PAPER_URL: https://arxiv.org/abs/2111.12704] -->
16+
17+
## Citation
18+
19+
<!-- [ALGORITHM] -->
20+
21+
```bibtex
22+
@article{chan2021investigating,
23+
author = {Chan, Kelvin C.K. and Zhou, Shangchen and Xu, Xiangyu and Loy, Chen Change},
24+
title = {Investigating Tradeoffs in Real-World Video Super-Resolution},
25+
journal = {arXiv preprint arXiv:2111.12704},
26+
year = {2021}
27+
}
28+
```
29+
30+
## Results and models
31+
32+
Evaluated on Y channel. The code for computing NRQM, NIQE, and PI can be found [here](https://github.com/roimehrez/PIRM2018). MATLAB official code is used to compute BRISQUE.
33+
34+
| Method | NRQM (Y) | NIQE (Y) | PI (Y) | BRISQUE (Y) | Download |
35+
|:------------------------------------------------------------------------------------------------------------------------------:|:--------:|:--------:|:------:|:-----------:|:----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:|
36+
| [realbasicvsr_c64b20_1x30x8_lr5e-5_150k_reds](/configs/restorers/real_basicvsr/realbasicvsr_c64b20_1x30x8_lr5e-5_150k_reds.py) | 6.0477 | 3.7662 | 3.8593 | 29.030 | [model](https://download.openmmlab.com/mmediting/restorers/real_basicvsr/realbasicvsr_c64b20_1x30x8_lr5e-5_150k_reds_20211104-52f77c2c.pth)/[log](https://download.openmmlab.com/mmediting/restorers/real_basicvsr/realbasicvsr_c64b20_1x30x8_lr5e-5_150k_reds_20211104_183640.log.json) |
37+
38+
39+
40+
## Training
41+
The training is divided into two stages:
42+
1. Train a model without perceptual loss and adversarial loss using [realbasicvsr_wogan_c64b20_2x30x8_lr1e-4_300k_reds.py](realbasicvsr_wogan_c64b20_2x30x8_lr1e-4_300k_reds.py).
43+
2. Finetune the model with perceptual loss and adversarial loss using [realbasicvsr_c64b20_1x30x8_lr5e-5_150k_reds.py](realbasicvsr_c64b20_1x30x8_lr5e-5_150k_reds.py).
44+
45+
**Note:**
46+
1. You may want to crop the images into sub-images for faster IO. Please refer to [here](/tools/data/super-resolution/reds/preprocess_reds_dataset.py) for more details.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
# RealBasicVSR (arXiv'2021)
2+
3+
<!-- [ALGORITHM] -->
4+
5+
<details>
6+
<summary align="right"><a href="https://arxiv.org/abs/2111.12704">RealBasicVSR (arXiv'2021)</a></summary>
7+
8+
```bibtex
9+
@article{chan2021investigating,
10+
author = {Chan, Kelvin C.K. and Zhou, Shangchen and Xu, Xiangyu and Loy, Chen Change},
11+
title = {Investigating Tradeoffs in Real-World Video Super-Resolution},
12+
journal = {arXiv preprint arXiv:2111.12704},
13+
year = {2021}
14+
}
15+
```
16+
17+
</details>
18+
19+
<br/>
20+
21+
在 Y 通道上评估。 计算 NRQM、NIQE 和 PI 的代码可以在[这里](https://github.com/roimehrez/PIRM2018)找到。我们使用 MATLAB 官方代码计算 BRISQUE。
22+
23+
| 算法 | NRQM (Y) | NIQE (Y) | PI (Y) | BRISQUE (Y) | Download |
24+
|:------------------------------------------------------------------------------------------------------------------------------:|:--------:|:--------:|:------:|:-----------:|:----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:|
25+
| [realbasicvsr_c64b20_1x30x8_lr5e-5_150k_reds](/configs/restorers/real_basicvsr/realbasicvsr_c64b20_1x30x8_lr5e-5_150k_reds.py) | 6.0477 | 3.7662 | 3.8593 | 29.030 | [model](https://download.openmmlab.com/mmediting/restorers/real_basicvsr/realbasicvsr_c64b20_1x30x8_lr5e-5_150k_reds_20211104-52f77c2c.pth)/[log](https://download.openmmlab.com/mmediting/restorers/real_basicvsr/realbasicvsr_c64b20_1x30x8_lr5e-5_150k_reds_20211104_183640.log.json) |
26+
27+
## 训练
28+
训练分为两个阶段:
29+
1. 使用 [realbasicvsr_wogan_c64b20_2x30x8_lr1e-4_300k_reds.py](realbasicvsr_wogan_c64b20_2x30x8_lr1e-4_300k_reds.py) 训练一个没有感知损失和对抗性损失的模型。
30+
2. 使用感知损失和对抗性损失 [realbasicvsr_c64b20_1x30x8_lr5e-5_150k_reds.py](realbasicvsr_c64b20_1x30x8_lr5e-5_150k_reds.py) 微调模型。
31+
32+
**注:**
33+
1. 您可能希望将图像裁剪为子图像以加快 IO。请参阅[此处](/tools/data/super-resolution/reds/preprocess_reds_dataset.py)了解更多详情。
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
Collections:
2+
- Metadata:
3+
Architecture:
4+
- RealBasicVSR
5+
Name: RealBasicVSR
6+
Paper:
7+
- https://arxiv.org/abs/2111.12704
8+
README: configs/restorers/real_basicvsr/README.md
9+
Models:
10+
- Config: configs/restorers/real_basicvsr/realbasicvsr_c64b20_1x30x8_lr5e-5_150k_reds.py
11+
In Collection: RealBasicVSR
12+
Metadata:
13+
Training Data: REDS
14+
Name: realbasicvsr_1x30x8
15+
Results:
16+
- Dataset: REDS
17+
Metrics:
18+
BRISQUE (Y): 29.03
19+
NIQE (Y): 3.7662
20+
NRQM (Y): 6.0477
21+
PI (Y): 3.8593
22+
Task: Restorers
23+
Weights: https://download.openmmlab.com/mmediting/restorers/real_basicvsr/realbasicvsr_c64b20_1x30x8_lr5e-5_150k_reds_20211104-52f77c2c.pth

0 commit comments

Comments
 (0)