/image-deblurring-using-deep-learning

PyTorch implementation of image deblurring using deep learning. Use a simple convolutional autoencoder neural network to deblur Gaussian blurred images.

Primary LanguageJupyter Notebook

README

  • First of all, you can find the dataset on Kaggle:

  • Get the dataset and extract it inside the input folder. Following is the directory structure for the project:

    ├───input
    │   ├───defocused_blurred
    │   ├───gaussian_blurred
    │   ├───motion_blurred
    │   └───sharp
    ├───outputs
    │   └───saved_images
    └───src
    

Steps to Execute

  • I have not used the blurred images that are given in the original dataset for image deblurring. They are spatially variant due to motion blurring and defocus-blurring. I have added Gaussian blurring to the images using the add_guassian_blur.py script inside the src folder. Then I have used these images for deblurring.
  • The following is the order of execution:
    1. add_gaussian_blur.py
    2. deblur_ae.py
  • Note: Execute all the scripts while being within the src folder inside the terminal.

Some Results

  • Loss Plot

  • Blurred Image

    Final Deblurred Image

Future Work

  • To deblur the spatially variant images inside the defocused_blurred and motion_blurred folders.
  • Add more and better models to models.py script.
  • Any useful contribution to the project is highly appreciated.

References