/BasicSR

Open Source Image and Video Restoration Toolbox, especially for Super-Resolution, including EDSR, RCAN, SRResNet, SRGAN, ESRGAN, EDVR, etc. Also support StyleGAN2, DFDNet.

Primary LanguagePython

🚀 BasicSR

English | 简体中文GitHub | Gitee码云

google colab logo Google Colab: GitHub Link | Google Drive Link
⏬ Google Drive: Pretrained Models | Reproduced Experiments ⏬ 百度网盘: 预训练模型 | 复现实验
📈 Training curves in wandb
💻 Commands for training and testing
HOWTOs


BasicSR is an open source image and video super-resolution toolbox based on PyTorch (will extend to more restoration tasks in the future).
(ESRGAN, EDVR, DNI, SFTGAN)

✨ New Feature

  • Sep 8, 2020. Add blind face restoration inference codes: DFDNet. Note that it is slightly different from the official testing codes.

    ECCV20: Blind Face Restoration via Deep Multi-scale Component Dictionaries
    Xiaoming Li, Chaofeng Chen, Shangchen Zhou, Xianhui Lin, Wangmeng Zuo and Lei Zhang

  • Aug 27, 2020. Add StyleGAN2 training and testing codes: StyleGAN2.

    CVPR20: Analyzing and Improving the Image Quality of StyleGAN
    Tero Karras, Samuli Laine, Miika Aittala, Janne Hellsten, Jaakko Lehtinen and Timo Aila

More
  • Aug 19, 2020. A brand-new BasicSR v1.0.0 online.

⚡ HOWTOs

We provides simple pipelines to train/test/inference models for quick start. These pipelines/commands cannot cover all the cases and more details are in the following sections.

🔧 Dependencies and Installation

  1. Clone repo

    git clone https://github.com/xinntao/BasicSR.git
  2. Install dependent packages

    cd BasicSR
    pip install -r requirements.txt
  3. Install BasicSR

    Please run the following commands in the BasicSR root path to install BasicSR:
    (Make sure that your GCC version: gcc >= 5)
    If you do not need the cuda extensions:
    dcn for EDVR
    upfirdn2d and fused_act for StyleGAN2
    please add --no_cuda_ext when installing

    python setup.py develop --no_cuda_ext

    If you use the EDVR and StyleGAN2 model, the above cuda extensions are necessary.

    python setup.py develop

Note that BasicSR is only tested in Ubuntu, and may be not suitable for Windows. You may try Windows WSL with CUDA supports :-) (It is now only available for insider build with Fast ring).

⏳ TODO List

Please see project boards.

🐢 Dataset Preparation

  • Please refer to DatasetPreparation.md for more details.
  • The descriptions of currently supported datasets (torch.utils.data.Dataset classes) are in Datasets.md.

💻 Train and Test

  • Training and testing commands: Please see TrainTest.md for the basic usage.
  • Options/Configs: Please refer to Config.md.
  • Logging: Please refer to Logging.md.

🏰 Model Zoo and Baselines

  • The descriptions of currently supported models are in Models.md.
  • Pre-trained models and log examples are available in ModelZoo.md.
  • We also provide training curves in wandb:

📝 Codebase Designs and Conventions

Please see DesignConvention.md for the designs and conventions of the BasicSR codebase.
The figure below shows the overall framework. More descriptions for each component:
Datasets.md | Models.md | Config.md | Logging.md

overall_structure

📜 License and Acknowledgement

This project is released under the Apache 2.0 license. More details about license and acknowledgement are in LICENSE.

📧 Contact

If you have any question, please email xintao.wang@outlook.com.