Zj-BinXia / DiffIR

This project is the official implementation of 'Diffir: Efficient diffusion model for image restoration', ICCV2023
Apache License 2.0
472 stars 20 forks source link
deblurring diffusion-model inpainting super-resolution

DiffIR: Efficient diffusion model for image restoration (ICCV2023)

Paper | Project Page | pretrained models

News


Abstract: Diffusion model (DM) has achieved SOTA performance by modeling the image synthesis process into a sequential application of a denoising network. However, different from image synthesis, image restoration (IR) has a strong constraint to generate results in accordance with ground-truth. Thus, for IR, traditional DMs running massive iterations on a large model to estimate whole images or feature maps is inefficient. To address this issue, we propose an efficient DM for IR (DiffIR), which consists of a compact IR prior extraction network (CPEN), dynamic IR transformer (DIRformer), and denoising network. Specifically, DiffIR has two training stages: pretraining and training DM. In pretraining, we input ground-truth images into CPEN${S1}$ to capture a compact IR prior representation (IPR) to guide DIRformer. In the second stage, we train the DM to directly estimate the same IRP as pretrained CPEN${S1}$ only using LQ images. We observe that since the IPR is only a compact vector, DiffIR can use fewer iterations than traditional DM to obtain accurate estimations and generate more stable and realistic results. Since the iterations are few, our DiffIR can adopt a joint optimization of CPEN$_{S2}$, DIRformer, and denoising network, which can further reduce the estimation error influence. We conduct extensive experiments on several IR tasks and achieve SOTA performance while consuming less computational costs.


Installation

For inpainting, see pip.sh for the installation of dependencies required to run DiffIR.

For GAN based single-image super-resolution, see pip.sh for the installation of dependencies required to run DiffIR.

For real-world super-resolution, see pip.sh for the installation of dependencies required to run DiffIR.

For motion deblurring, see pip.sh for the installation of dependencies required to run DiffIR.

Training and Evaluation

Training and Testing instructions for Inpainting, GAN based single-image super-resolution, real-world super-resolution, and motion deblurring are provided in their respective directories. Here is a summary table containing hyperlinks for easy navigation:

Task Training Instructions Testing Instructions DiffIR's Pretrained Models
Inpainting Link Link Download
GAN based single-image super-resolution Link Link Download
Real-world super-resolution Link Link Download
Motion deblurring Link Link Download

Results

Experiments are performed for different image processing tasks including, inpainting, GAN-based single-image super-resolution, real-world super-resolution, and motion deblurring.

Inpainting (click to expand)
GAN-based single-image super-resolution (click to expand)
Real-world super-resolution (click to expand)
Motion deblurring (click to expand)

Citation

If you use DiffIR, please consider citing:

@article{xia2023diffir,
  title={Diffir: Efficient diffusion model for image restoration},
  author={Xia, Bin and Zhang, Yulun and Wang, Shiyin and Wang, Yitong and Wu, Xinglong and Tian, Yapeng and Yang, Wenming and Van Gool, Luc},
  journal={ICCV},
  year={2023}
}

Contact

Should you have any question, please contact zjbinxia@gmail.com