Pytorch implementation of "Learning A Single Network for Scale-Arbitrary Super-Resolution", ICCV 2021
- A plug-in module to extend a baseline SR network (e.g., EDSR and RCAN) to a scale-arbitrary SR network with small additional computational and memory cost.
- Promising results for scale-arbitrary SR (both non-integer and asymmetric scale factors) while maintaining the state-of-the-art performance for SR with integer scale factors.
Although recent CNN-based single image SR networks (e.g., EDSR, RDN and RCAN) have achieved promising performance, they are developed for image SR with a single specific integer scale (e.g., x2, x3, x4). In real-world applications, non-integer SR (e.g., from 100x100 to 220x220) and asymmetric SR (e.g., from 100x100 to 220x420) are also necessary such that customers can zoom in an image arbitrarily for better view of details.
- Python 3.6
- PyTorch == 1.1.0
- numpy
- skimage
- imageio
- cv2
1.1 Download DIV2K training data (800 training images) from DIV2K dataset or SNU_CVLab.
1.2 Cd to ./utils
and run gen_training_data.m
in Matlab to prepare HR/LR images in your_data_path
as belows:
your_data_path
└── DIV2K
├── HR
├── 0001.png
├── ...
└── 0800.png
└── LR_bicubic
├── X1.10
├── 0001.png
├── ...
└── 0800.png
├── ...
└── X4.00_X3.50
├── 0001.png
├── ...
└── 0800.png
Run ./main.sh
to train on the DIV2K dataset. Please update dir_data
in the bash file as your_data_path
.
1.1 Download benchmark datasets (e.g., Set5, Set14 and other test sets).
1.2 Cd to ./utils
and run gen_test_data.m
in Matlab to prepare HR/LR images in your_data_path
as belows:
your_data_path
└── benchmark
├── Set5
├── HR
├── baby.png
├── ...
└── woman.png
└── LR_bicubic
├── X1.10
├── baby.png
├── ...
└── woman.png
├── ...
└── X4.00_X3.50
├── baby.png
├── ...
└── woman.png
├── Set14
├── B100
├── Urban100
└── Manga109
├── HR
├── AisazuNihalrarenai.png
├── ...
└── YouchienBoueigumi.png
└── LR_bicubic
├── X1.10
├── AisazuNihalrarenai.png
├── ...
└── YouchienBoueigumi.png
├── ...
└── X4.00_X3.50
├── AisazuNihalrarenai.png
├── ...
└── YouchienBoueigumi.png
Run ./test.sh
to test on benchmark datasets. Please update dir_data
in the bash file as your_data_path
.
Run ./quick_test.sh
to enlarge an LR image to an arbitrary size. Please update dir_img
in the bash file as your_img_path
.
Please try our interactive viewer.
@InProceedings{Wang2020Learning,
title={Learning A Single Network for Scale-Arbitrary Super-Resolution},
author={Longguang Wang, Yingqian Wang, Zaiping Lin, Jungang Yang, Wei An, and Yulan Guo},
booktitle={ICCV},
year={2021}
}
This code is built on EDSR (PyTorch) and Meta-SR. We thank the authors for sharing the codes.