Awesome Open Source
Awesome Open Source


arXiv Paper Version

Pytorch implementation of the paper DeblurGAN: Blind Motion Deblurring Using Conditional Adversarial Networks.

Our network takes blurry image as an input and procude the corresponding sharp estimate, as in the example:

The model we use is Conditional Wasserstein GAN with Gradient Penalty + Perceptual loss based on VGG-19 activations. Such architecture also gives good results on other image-to-image translation problems (super resolution, colorization, inpainting, dehazing etc.)

How to run


  • NVIDIA GPU + CUDA CuDNN (CPU untested, feedback appreciated)
  • Pytorch

Download weights from Google Drive . Note that during the inference you need to keep only Generator weights.

Put the weights into


To test a model put your blurry images into a folder and run:

python --dataroot /.path_to_your_data --model test --dataset_mode single --learn_residual


Download dataset for Object Detection benchmark from Google Drive


If you want to train the model on your data run the following command to create image pairs:

python datasets/ --fold_A /path/to/data/A --fold_B /path/to/data/B --fold_AB /path/to/data

And then the following command to train the model

python --dataroot /.path_to_your_data --learn_residual --resize_or_crop crop --fineSize CROP_SIZE (we used 256)

Other Implementations

Keras Blog

Keras Repository


If you find our code helpful in your research or work please cite our paper.

  title = {DeblurGAN: Blind Motion Deblurring Using Conditional Adversarial Networks},
  author = {Kupyn, Orest and Budzan, Volodymyr and Mykhailych, Mykola and Mishkin, Dmytro and Matas, Jiri},
  journal = {ArXiv e-prints},
  eprint = {1711.07064},
  year = 2017


Code borrows heavily from pix2pix. The images were taken from GoPRO test dataset - DeepDeblur

Alternative Project Comparisons
Related Awesome Lists
Top Programming Languages

Get A Weekly Email With Trending Projects For These Topics
No Spam. Unsubscribe easily at any time.
Python (889,550
Deep Learning (39,305
Network (37,434
Pytorch (22,629
Paper (18,766
Neural Network (16,105
Convolutional Neural Networks (12,859
Convolutional Networks (12,840
Computer Vision (9,735
Image Processing (6,117
Gan (5,357
Adversarial (3,505
Adversarial Networks (890
Image Manipulation (780
Pix2pix (547
Image To Image Translation (141
Deblurring (64
Blurry Images (4