/BasicSR

Basic Super-Resolution Toolbox, including SRResNet, SRGAN, ESRGAN, etc.

Primary LanguagePythonApache License 2.0Apache-2.0

We have merged BasicSR into MMSR 😄

MMSR is an open source image and video super-resolution toolbox based on PyTorch. It is a part of the open-mmlab project developed by Multimedia Laboratory, CUHK. MMSR is based on our previous projects: BasicSR, ESRGAN, and EDVR.

BasicSR [EDVR] [DNI] [ESRGAN] [SFTGAN]

🚩 We have updated the BasicSR toolbox (v0.1).
Almost all the files have updates, including:

  • Support PyTorch 1.1 and distributed training
  • Simplify network structures
  • Update the dataset format
  • Use yaml for configurations
  • ...

If you find compatibility issues, please see whether these files are in the To-be-updated list.
If you want to use the old version, please find it in the releases with tag v0.0.


Check out our new work on:

  1. Video Super-Resolution: EDVR: Video Restoration with Enhanced Deformable Convolutional Networks, which has won all four tracks in NTIRE 2019 Challenges on Video Restoration and Enhancement (CVPR19 Workshops).
  2. DNI (CVPR19): Deep Network Interpolation for Continuous Imagery Effect Transition

Updates

[2019-06-13] Update to a new version.

Dependencies and Installation

  • Python 3 (Recommend to use Anaconda)
  • PyTorch >= 1.0
  • NVIDIA GPU + CUDA
  • Python packages: pip install numpy opencv-python lmdb pyyaml
  • TensorBoard:
    • PyTorch >= 1.1: pip install tb-nightly future
    • PyTorch == 1.0: pip install tensorboardX

Dataset Preparation

We use datasets in LDMB format for faster IO speed. Please refer to wiki for more details.

Get Started

Please see wiki for the basic usage, i.e., training and testing.

Model Zoo and Baselines

Results and pre-trained models are available in the wiki-Model zoo.

Contributing

We appreciate all contributions. Please refer to mmdetection for contributing guideline.

Python code style
We adopt PEP8 as the preferred code style. We use flake8 as the linter and yapf as the formatter. Please upgrade to the latest yapf (>=0.27.0) and refer to the yapf configuration and flake8 configuration.

Before you create a PR, make sure that your code lints and is formatted by yapf.

Citation

@InProceedings{wang2018esrgan,
    author = {Wang, Xintao and Yu, Ke and Wu, Shixiang and Gu, Jinjin and Liu, Yihao and Dong, Chao and Qiao, Yu and Loy, Chen Change},
    title = {ESRGAN: Enhanced super-resolution generative adversarial networks},
    booktitle = {The European Conference on Computer Vision Workshops (ECCVW)},
    month = {September},
    year = {2018}
}
@InProceedings{wang2018sftgan,
    author = {Wang, Xintao and Yu, Ke and Dong, Chao and Loy, Chen Change},
    title = {Recovering realistic texture in image super-resolution by deep spatial feature transform},
    booktitle = {The IEEE Conference on Computer Vision and Pattern Recognition (CVPR)},
    month = {June},
    year = {2018}
}