SRZoo

SRZoo

SRZoo

Introduction

SRZoo is a collection of toolkits and models for deep learning-based image super-resolution. It provides various pre-trained state-of-the-art super-resolution models that are ready for use.

Here are the key features of SRZoo:

You can find our motivation and some detailed description of SRZoo such as performance comparison in the following paper.

Requirements

Pre-trained super-resolution models

We currently provide the following pre-trained super-resolution models, where the model parameters are provided by the original authors. Please cite the paper of the original authors when you use the models.

Name Config Upscaling factor Model Source
EDSR-baseline edsr_baseline.json 2 edsr_baseline_x2.pb EDSR-PyTorch
EDSR-baseline edsr_baseline.json 3 edsr_baseline_x3.pb EDSR-PyTorch
EDSR-baseline edsr_baseline.json 4 edsr_baseline_x4.pb EDSR-PyTorch
EDSR edsr.json 2 edsr_x2.pb EDSR-PyTorch
EDSR edsr.json 3 edsr_x3.pb EDSR-PyTorch
EDSR edsr.json 4 edsr_x4.pb EDSR-PyTorch
EUSR eusr.json 2 eusr_x2.pb EUSR-TensorFlow
EUSR eusr.json 4 eusr_x4.pb EUSR-TensorFlow
EUSR eusr.json 8 eusr_x8.pb EUSR-TensorFlow
DBPN dbpn.json 2 dbpn_x2.pb DBPN-Pytorch
DBPN dbpn.json 4 dbpn_x4.pb DBPN-Pytorch
DBPN dbpn.json 8 dbpn_x8.pb DBPN-Pytorch
RCAN rcan.json 2 rcan_x2.pb RCAN
RCAN rcan.json 3 rcan_x3.pb RCAN
RCAN rcan.json 4 rcan_x4.pb RCAN
RCAN rcan.json 8 rcan_x8.pb RCAN
MSRN msrn.json 2 msrn_x2.pb MSRN-PyTorch
MSRN msrn.json 3 msrn_x3.pb MSRN-PyTorch
MSRN msrn.json 4 msrn_x4.pb MSRN-PyTorch
4PP-EUSR 4pp_eusr.json 4 4pp_eusr_pirm_x4.pb tf-perceptual-eusr
ESRGAN esrgan.json 4 esrgan_x4.pb ESRGAN
RRDB rrdb.json 4 rrdb_x4.pb ESRGAN
CARN carn.json 2 carn_x2.pb CARN-pytorch
CARN carn.json 3 carn_x3.pb CARN-pytorch
CARN carn.json 4 carn_x4.pb CARN-pytorch
FRSR frsr_x2.json 2 frsr_x2.pb NatSR
FRSR natsr.json 3 frsr_x3.pb NatSR
FRSR natsr.json 4 frsr_x4.pb NatSR
NatSR natsr.json 4 natsr_x4.pb NatSR

Super-resolved image retrieval

SRZoo offers a simple image retrieval via get_sr.py, e.g.,

python get_sr.py --config_path=configs/edsr.json --model_path=edsr_x4.pb --input_path=LR --output_path=SR --scale=4

Arguments:

※ Some models can be run only on GPUs due to the different ordering of the dimensions.

Performance evaluation

With the obtained super-resolved images, it is possible to evaluate the performance via evaluate_sr.py, e.g.,

python evaluate_sr.py --sr_path=SR --truth_path=HR

Arguments:

You can also write your own evaluation metric by implementing an evaluator class that inherits BaseEvaluator in the evaluators/ folder.

Model conversion

It is possible to convert the other pre-trained super-resolution models. Please refer to the converter/ folder for more information. In addition, please refer to the config/ folder to write your own model config file along with the converted model.

Miscellaneous

Image downscaling utilities

We also provide the downscaling utilities for evaluating the super-resolution models, which are in the utils/downscale/ folder.

Employing other image processing models

Since SRZoo is developed to deal with models considering images as both inputs and outputs, our repository can be used to employ the other image processing algorithms with only a few modifications. As a proof-of-concept, we provide a pre-trained deep learning-based image compression model in SRZoo.

Name Config Model Source
fab-jul/imgcomp-cvpr fabjul_imgcomp.json fabjul_imgcomp_a.pb imgcomp-cvpr
fab-jul/imgcomp-cvpr fabjul_imgcomp.json fabjul_imgcomp_b.pb imgcomp-cvpr
fab-jul/imgcomp-cvpr fabjul_imgcomp.json fabjul_imgcomp_c.pb imgcomp-cvpr

To use these models, simply set the upscaling factor (e.g., --scale option of get_sr.py) to 1. Note that only the GPU mode is currently supported for these models.