/mmsr

Open MMLab Image and Video Super-Resolution Toolbox, , including SRResNet, SRGAN, ESRGAN, EDVR, etc.

Primary LanguagePythonApache License 2.0Apache-2.0

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.

Highlights

  • A unified framework suitable for image and video super-resolution tasks. It is also easy to adapt to other restoration tasks, e.g., deblurring, denoising, etc.
  • State of the art: It includes several winning methods in competitions: such as ESRGAN (PIRM18), EDVR (NTIRE19).
  • Easy to extend: It is easy to try new research ideas based on the code base.

Updates

[2019-07-25] MMSR v0.1 is released.

Dependencies and Installation

  • Python 3 (Recommend to use Anaconda)
  • PyTorch >= 1.1
  • NVIDIA GPU + CUDA
  • Deformable Convolution. We use mmdetection's dcn implementation. Please first compile it.
    cd ./codes/models/archs/dcn
    python setup.py develop
    
  • Python packages: pip install numpy opencv-python lmdb pyyaml
  • TensorBoard:
    • PyTorch >= 1.1: pip install tb-nightly future

Dataset Preparation

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

Training and Testing

Please see wiki- Training and Testing 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.

License

This project is released under the Apache 2.0 license.