Home

Awesome

GibbsDDRM: A Partially Collapsed Gibbs Sampler for Solving Blind Inverse Problems with Denoising Diffusion Restoration (ICML2023, Oral)

cover-img

This repository contains the code implementation for the paper "GibbsDDRM: A Partially Collapsed Gibbs Sampler for Solving Blind Inverse Problems with Denoising Diffusion Restoration" presented at ICML2023.

Abstract

Pre-trained diffusion models have been successfully used as priors in a variety of linear inverse problems, where the goal is to reconstruct a signal from noisy linear measurements. However, existing approaches require knowledge of the linear operator. In this paper, we propose GibbsDDRM, an extension of Denoising Diffusion Restoration Models (DDRM) to a blind setting in which the linear measurement operator is unknown. GibbsDDRM constructs a joint distribution of the data, measurements, and linear operator by using a pre-trained diffusion model for the data prior, and it solves the problem by posterior sampling with an efficient variant of a Gibbs sampler. The proposed method is problem-agnostic, meaning that a pre-trained diffusion model can be applied to various inverse problems without fine tuning. In experiments, it achieved high performance on both blind image deblurring and vocal dereverberation tasks, despite the use of simple generic priors for the underlying linear operators.

Paper and Demos

Paper on arXiv

Creative AI: Demos and Papers, Sony Group Corporation

Authors

Naoki Murata<sup>1</sup>, Koichi Saito<sup>1</sup>, Chieh-Hsin Lai<sup>1</sup>, Yuhta Takida<sup>1</sup>, Toshimitsu Uesaka<sup>1</sup>, Yuki Mitsufuji<sup>1,2</sup>, Stefano Ermon<sup>3</sup>

<sup>1</sup> Sony AI, <sup>2</sup> Sony Group Corporation,<sup>3</sup> Stanford University

Prereqruisites

Getting Started

1) Download Pretrained Checkpoint

Download the pretrained checkpoint for the desired dataset from the following external links:

Move the downloaded checkpoint file to the following locations:

2) Set Up Environment

Clone the MotionBlur repository, which contains the external codes used by our code:

git clone https://github.com/LeviBorodenko/motionblur.git

Install the required packages using the provided YAML file:

conda env create -f requirement.yml

Activate the conda environment

conda activate GibbsDDRM

3) Running Inference

For FFHQ, run the following command:

python main.py --ni --config ffhq_256_deblur.yml --doc ffhq --deg deblur_arbitral -i deblur_ffhq

For AFHQ, run the following command:

python main.py --ni --config afhq_256_deblur.yml --doc afhq --deg deblur_arbitral -i deblur_afhq

Citation

If you find this work useful, please consider citing the paper: [1] Murata, N., Saito, K., Lai, C., Takida, Y., Uesaka, T., Mitsufuji, Y., Ermon, S., "GibbsDDRM: A Partially Collapsed Gibbs Sampler for Solving Blind Inverse Problems with Denoising Diffusion Restoration," 40th International Conference on Machine Learning, 2023.

@inproceedings{murata2023gibbsddrm,
  title={Gibbs{DDRM}: A Partially Collapsed Gibbs Sampler for Solving Blind Inverse Problems with Denoising Diffusion Restoration},
  author={Murata, Naoki and Saito, Koichi and Lai, Chieh-Hsin and Takida, Yuhta and Uesaka, Toshimitsu and Mitsufuji, Yuki and Ermon, Stefano},
  booktitle={International Conference on Machine Learning}
  year={2023}
}

This implementation is based on: https://github.com/bahjat-kawar/ddrm/