/EDSR-PyTorch

PyTorch implements "Enhanced Deep Residual Networks for Single Image Super-Resolution"

Primary LanguagePythonApache License 2.0Apache-2.0

EDSR-PyTorch

Overview

This repository contains an op-for-op PyTorch reimplementation of Enhanced Deep Residual Networks for Single Image Super-Resolution.

Table of contents

About Enhanced Deep Residual Networks for Single Image Super-Resolution

If you're new to EDSR, here's an abstract straight from the paper:

Recent research on super-resolution has progressed with the development of deep convolutional neural networks (DCNN). In particular, residual learning techniques exhibit improved performance. In this paper, we develop an enhanced deep super-resolution network (EDSR) with performance exceeding those of current state-of-the-art SR methods. The significant performance improvement of our model is due to optimization by removing unnecessary modules in conventional residual networks. The performance is further improved by expanding the model size while we stabilize the training procedure. We also propose a new multi-scale deep super-resolution system (MDSR) and training method, which can reconstruct high-resolution images of different upscaling factors in a single model. The proposed methods show superior performance over the state-of-the-art methods on benchmark datasets and prove its excellence by winning the NTIRE2017 Super-Resolution Challenge.

Download weights

Download datasets

Contains DIV2K, DIV8K, Flickr2K, OST, T91, Set5, Set14, BSDS100 and BSDS200, etc.

Test

Modify the contents of the file as follows.

  • line 29: upscale_factor change to the magnification you need to enlarge.
  • line 31: mode change Set to valid mode.
  • line 69: model_path change weight address after training.

Train

Modify the contents of the file as follows.

  • line 29: upscale_factor change to the magnification you need to enlarge.
  • line 31: mode change Set to train mode.

If you want to load weights that you've trained before, modify the contents of the file as follows.

  • line 47: start_epoch change number of training iterations in the previous round.
  • line 48: resume the weight address that needs to be loaded.

Result

Source of original paper results: https://arxiv.org/pdf/1707.02921.pdf

In the following table, the value in () indicates the result of the project, and - indicates no test.

Dataset Scale PSNR
DIV2K 2 38.10(37.75)
DIV2K 3 34.65(34.02)
DIV2K 4 32.46(31.83)

Low Resolution / Super Resolution / High Resolution

Credit

Enhanced Deep Residual Networks for Single Image Super-Resolution

Lim, Bee and Son, Sanghyun and Kim, Heewon and Nah, Seungjun and Lee, Kyoung Mu

Abstract
Recent research on super-resolution has progressed with the development of deep convolutional neural networks (DCNN). In particular, residual learning techniques exhibit improved performance. In this paper, we develop an enhanced deep super-resolution network (EDSR) with performance exceeding those of current state-of-the-art SR methods. The significant performance improvement of our model is due to optimization by removing unnecessary modules in conventional residual networks. The performance is further improved by expanding the model size while we stabilize the training procedure. We also propose a new multi-scale deep super-resolution system (MDSR) and training method, which can reconstruct high-resolution images of different upscaling factors in a single model. The proposed methods show superior performance over the state-of-the-art methods on benchmark datasets and prove its excellence by winning the NTIRE2017 Super-Resolution Challenge.

[Paper]

@InProceedings{Lim_2017_CVPR_Workshops,
  author = {Lim, Bee and Son, Sanghyun and Kim, Heewon and Nah, Seungjun and Lee, Kyoung Mu},
  title = {Enhanced Deep Residual Networks for Single Image Super-Resolution},
  booktitle = {The IEEE Conference on Computer Vision and Pattern Recognition (CVPR) Workshops},
  month = {July},
  year = {2017}
}