Giter VIP home page Giter VIP logo

autoencoder-image-quality-manipulation's Introduction

Mentors

  • Aakarsh Bansal
  • Abhishek Srinivas
  • Raajan Wankhade

Mentees

  • Ananya A. K
  • Raunak Nayak
  • Sai Akhilesh Donga
  • Sanga Balanarsimha
  • Sarth Shah
  • Vaibhavi Nagaraja Nayak
  • Vanshika Mittal
  • Vedh Adla
  • Utkarsh Shukla

Aim

  • Perform denoising of images and image super resolution using deep autoencoders.
  • To create a simple frontend(Streamlit) to deploy the model.

Introduction and Overview

REPO LINK

In our project, we use the capabilities of deep autoencoders to enhance image quality. By using super-resolution and noise removal techniques, our project aims to tackle two of the most important problems with Image Quality. Deep autoencoders unveil intricate details within images, making them significant tools in applications requiring image quality preservation and restoration such as medical diagnostics, surveillance, and satellite imagery.

During the course of the project, we were able to gain knowledge in the fields of Machine Learning, Deep Learning, Convolutional Neural Networks. We also completed Kaggle tasks during the learning phase of the project.

Technologies used

  1. Python
  2. Streamlit
  3. Pytorch

Datasets

We made use of 2 datasets that were publicly available on Kaggle for performing denoising and super resolution. For the denoising of images, we used a dataset on Kaggle that contained 120 black-white images of Teeth X-Ray. For the super resolution component, we used a dataset on Kaggle that had 685 low and corresponding high resolution images. The links for the datasets are provided below:

DATASET1_Super_Resolution

DATASET2_Denosising

Model and Architecture

  1. Denoising of Images

As our dataset had noise free images of Teeth X-Ray, we first added either Gaussian/ Uniform noise to the X-Ray images of teeth.

We then used an architecture that would model a UNET here. Our architecture consisted of 2 encoder layers followed by 2 decoder layers and we also employed the use of skip connections for garnering global context.

We then used Cross Entropy Loss as the loss function, Adam as the optimiser, the number of epochs to be 200 and the learning rate to be around 1e-5. We were able to converge to a loss of around 0.000290.

  1. Super Resolution of Images

Again, we tried to model an architecture similar to UNET here. We however, used a more complex architecture as compared to the denoising model with 5 encoder layers, also making use of skip connections.

We also tried 2 different types of loss - VGG Loss and MSE Loss as well and observed that the model learnt better when we used the MSE loss. The number of epochs was 20, optimiser was Adam, and the loss converged to about 0.001.

Deployed model using Streamlit

  1. We were also able to deploy our model using Streamlit. After training the model for both tasks, we saved their weights, which allows us to use the model for any image without having to train again.
  2. For both tasks, we have a simple frontend where the user can choose to insert an image for either denoising or super resolution. The frontend would then display the new image - after denoising on increasing the resolution.

Conclusion

We were able to build 2 models that could successfully perform denoising and super resolution, in addition to building a Streamlit model. During the course of this project, we also understood the basics of Deep Learning and Convolutional Neural Networks.

Running the Streamlit App

First, please ensure that you have installed Git on your system. Also install streamlit on your system using the command:

pip install streamlit

Now, to run the app, please follow the given instructions:

git clone https://github.com/raajanwankhade/autoencoder-image-quality-manipulation

After this, for super resolution:

cd autoencoder-image-quality-manipulation/super-resolution/app

For denoising,

cd autoencoder-image-quality-manipulation/xray-denoising/app

After this:

streamlit run app.py

autoencoder-image-quality-manipulation's People

Contributors

porcupine12345 avatar raajanwankhade avatar typos12onlr avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.