/cats_denoising_autoencoder

Convolutional autoencoder for image denoising with a PyTorch

Primary LanguageJupyter Notebook

Denoising Autoencoder using PyTorch

  • Only cats pictures from Dogs vs. Cats dataset were used for denoising because why not (^._.^)

  • All pictures were resized to 128x128 and normalized in range [-1, 1]

  • Gaussian noise with a mean=0 and variance=0.08 was applied to the images

  • 10000 pictures were used for training and 2500 for testing

  • Total parameters of autoencoder: 776,579

  • The training was done for 50 epochs

  • Learning rate scheduler was used to reduce learning rate while training

  • Autoencoder architecture:

    Input

    Images with a shape [3, 128, 128] ->

    Encoder

    -> 4 blocks of [Conv2d -> LeakyReLU activation] ->

    Latent space

    -> MaxPool2d -> MaxUnpool2d ->

    Decoder

    -> 3 blocks of [ConvTranspose2d -> LeakyReLU activation] -> ConvTranspose2d -> Tanh activation ->

    Output

    -> denoised images with a shape [3, 128, 128]

Some denoised images. More of them you can find here

clear-noised-1-10-50-16images-final

clear-noised-1-10-50-8images-final