Skip to content

This project implements an Autoencoder based on Convolutional Neural Networks (CNNs) for learning efficient representations of images through deep learning. The model is trained to reconstruct input images, making it capable of unsupervised feature learning, dimensionality reduction, and image denoising.

Notifications You must be signed in to change notification settings

srividhya66/Deep_Learning_AutoEncoder-Using-CNN

Repository files navigation

🧠 Image Compression and Denoising using Deep Learning CNN Autoencoder

📘 Project Overview

This project demonstrates how a Deep Convolutional Neural Network (CNN) Autoencoder can be used for image compression and image denoising. The model learns to encode images into a compact latent representation and then decode them back to reconstruct clean, high-quality images — even when the input is noisy or corrupted.

Autoencoders are a type of unsupervised deep learning model that automatically learns important features from data without explicit labels. By leveraging CNN layers, this project efficiently captures spatial and structural information from images.

🚀 Features

🧩 Image Compression: Reduces image size while preserving key visual details.

🧼 Image Denoising: Removes Gaussian noise from images using learned patterns.

🔍 Deep CNN Autoencoder Architecture: Encoder–Decoder with convolutional layers.

📊 Visualization: Shows noisy vs. denoised and compressed vs. reconstructed outputs.

⚡ Built with TensorFlow/Keras for high flexibility and performance.

🏗️ Model Architecture

Encoder:

Multiple convolutional and pooling layers to reduce dimensionality and extract features.

Decoder:

Symmetric convolutional layers that reconstruct the original image from encoded features.

Loss Function:

Mean Squared Error (MSE) between input and reconstructed output.

Optimizer:

Adam optimizer with learning rate tuning.

📚 Technologies Used

Python 3.x

TensorFlow / Keras

NumPy

Matplotlib

scikit-learn

OpenCV / PIL (for image preprocessing)

📁 Dataset

You can use any standard image dataset such as:

MNIST (handwritten digits)

CIFAR-10 (natural images)

Custom dataset of your choice

Noise can be added using Gaussian noise or Salt-and-Pepper noise for training the denoising model.

⚙️ How to Run

Clone this repository:

git clone https://github.com//Image-Compression-and-Denoising-CNN-Autoencoder.git cd Image-Compression-and-Denoising-CNN-Autoencoder

Install the dependencies:

pip install -r requirements.txt

Run the notebook:

jupyter notebook Image_Compression_Denoising_CNN_Autoencoder.ipynb

Follow the notebook steps to:

Load and preprocess the dataset

Add synthetic noise

Train the CNN Autoencoder

Visualize the results

📈 Results

Compressed and reconstructed images show minimal quality loss.

Denoised images demonstrate effective noise reduction while maintaining key features.

Visualization plots show training and validation loss convergence.

💡 Applications

Image compression for storage and transmission

Noise removal in photography or medical imaging

Feature extraction for downstream machine learning tasks

Pretraining for computer vision models

🧩 Future Enhancements

Add Variational Autoencoder (VAE) for probabilistic compression

Implement U-Net-based architecture for improved denoising

Extend support for color images (RGB)

Deploy model using Streamlit or Flask for real-time demos

About

This project implements an Autoencoder based on Convolutional Neural Networks (CNNs) for learning efficient representations of images through deep learning. The model is trained to reconstruct input images, making it capable of unsupervised feature learning, dimensionality reduction, and image denoising.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published