ECCV18 Workshops - Enhanced SRGAN. Champion PIRM Challenge on Perceptual Super-Resolution. The training codes are in BasicSR.
Go to file
2018-09-05 23:36:19 +08:00
figures rm unnecessary files 2018-09-05 22:34:21 +08:00
LR add test codes 2018-09-01 17:20:42 +08:00
models rm unnecessary files 2018-09-05 22:34:21 +08:00
results add test codes 2018-09-01 17:20:42 +08:00
architecture.py add test codes 2018-09-01 17:20:42 +08:00
block.py add test codes 2018-09-01 17:20:42 +08:00
net_interp.py fixbug net_interp 2018-09-05 23:28:53 +08:00
README.md Update README.md 2018-09-05 23:36:19 +08:00
test.py test.py with model path 2018-09-05 22:41:42 +08:00

ESRGAN (Enhanced SRGAN) [Paper] [BasicSR]

Enhanced Super-Resolution Generative Adversarial Networks

By Xintao Wang, Ke Yu, Shixiang Wu, Jinjin Gu, Yihao Liu, Chao Dong, Chen Change Loy, Yu Qiao, Xiaoou Tang

This repo only provides simple testing codes, pretrained models and the netwrok strategy demo.

😃 For full training and testing codes, please refer to BasicSR.

We won the first place in PIRM2018-SR competition (region 3) and got the best perceptual index. The paper is accepted to ECCV2018 PIRM Workshop.

BibTeX

@article{wang2018esrgan,
    author={Wang, Xintao and Yu, Ke and Wu, Shixiang and Gu, Jinjin and Liu, Yihao and Dong, Chao and Loy, Chen Change and Qiao, Yu and Tang, Xiaoou},
    title={ESRGAN: Enhanced super-resolution generative adversarial networks},
    journal={arXiv preprint arXiv:1809.00219},
    year={2018}
}

The RRDB_PSNR PSNR_oriented model trained with DF2K dataset (a merged dataset with DIV2K and Flickr2K (proposed in EDSR)) is also able to achive high PSNR performance.

Method Training dataset Set5 Set14 BSD100 Urban100 Manga109
SRCNN 291 30.48/0.8628 27.50/0.7513 26.90/0.7101 24.52/0.7221 27.58/0.8555
EDSR DIV2K 32.46/0.8968 28.80/0.7876 27.71/0.7420 26.64/0.8033 31.02/0.9148
RCAN DIV2K 32.63/0.9002 28.87/0.7889 27.77/0.7436 26.82/ 0.8087 31.22/ 0.9173
RRDB(ours) DF2K 32.73/0.9011 28.99/0.7917 27.85/0.7455 27.03/0.8153 31.66/0.9196

Quick Test

Dependencies

  • Python 3
  • PyTorch >= 0.4.0
  • Python package cv2, numpy

Test models

  1. Clone this github repo.
git clone https://github.com/xinntao/ESRGAN
cd ESRGAN
  1. Place your own low-resolution images in ./LR folder. (There are two sample images - baboon and comic).
  2. Download pretrained models from Google Drive or Baidu Drive. Place the models in ./models. We provide two models with high perceptual quality and high PSNR performance (see model list).
  3. Run test. We provide ESRGAN model and RRDB_PSNR model.
python test.py models/RRDB_ESRGAN_x4.pth
python test.py models/RRDB_PSNR_x4.pth
  1. The results are in ./results folder.

Network interpolation demo

We can interpolate the RRDB_ESRGAN and RRDB_PSNR models with alpha in [0, 1].

  1. Run python net_interp.py 0.8, where 0.8 is the interpolation parameter.
  2. Run python test.py models/interp_08.pth, where models/interp_08.pth is the model path.

Introduction

We improve the SRGAN from three aspects:

  1. adopt a deeper model using Residual-in-Residual Dense Block (RRDB) without batch normalization layers.
  2. employ Relativistic average GAN instead of vanilla GAN.
  3. improve the perceptual loss by using the features before activation.

In contrast to SRGAN, which claimed that deeper models are increasingly difficult to train, our deeper ESRGAN model shows its superior performance with easy training.

Network Interpolation

We propose the network interpolation strategy to balance the visual quality and PSNR.

We show the smooth animation with the interpolation parameters changing from 0 to 1.

   

Qualitative Results

PSNR (evaluated on the luminance channel in YCbCr color space) and the perceptual index used in the PIRM-SR challenge are also provided for reference.