Git Product home page Git Product logo

autoencoder-denoising-fashion-mnist's Introduction

Autoencoder Denoising Fashion MNIST

Convolutional autoencoder removing noise from Fashion MNIST clothing images.


Problem Overview

Fashion MNIST is a dataset having 70,000 images of 10 different types of clothing. Each type of clothing constitutes a class. The dataset was proposed to substitute the original MNIST dataset, which has handwritten digits images for the 10 numeric digits. MNIST is generally considered too easy and not representative of the 2020s challenges in computer vision. Hence, Fashion MNIST brings a tougher trial to computer vision models and also is a dataset more closely related to real-world problems. Thinking about Fashion MNIST as a relevant dataset for modern computer vision analyses, we can use it for other tasks not related to classification, like image denoising. Below there is a selection of images from Fashion MNIST:

autoenconder_denoising_fashion_mnist_grid

Noise and outliers are unwanted artifacts in data that can heavily disturb the performance of a model or mess up analyses being done on the dataset. For this reason, many algorithms have been proposed to remove noise and outliers from data, including K-Means, kNN, DBSCAN and others.

Specifically talking about noise removal in images, many algorithms have been proposed, such as wavelet transform, anisotropic diffusion, non-local means and others. These algorithms, although being good on the task, have limited generalizing capabilities, may need parameter fine tuning and are not easily transferable to be applied on images with core differences.

Analysis Introduction

Autoencoders are types of neural networks that can compress and decompress data by reducing its dimensionality or overall size. Autoencoders have this ability because they are able to capture the most relevant features in the data and represent them in a more simple manner. This is also true for image data, especially considering that current machine learning libraries make it easy to add convolutional layers to autoencoders.

Convolutional layers are closely related with the revolution in computer vision caused by deep learning. Deep learning consists of models with many layers of neurons extracting features and interpreting them. Convolutions are the most common type of layer used for feature extraction; they have proved their proficiency in extracting information from images.

Autoencoders combined with convolutional layers can extract the most useful features in images, even if they have noise. Therefore, it is possible to use this combination to remove noise from images by filtering all the worthless information in the first phase. In the second phase, the original image is reconstructed using only relevant features learned before. In this way, convolutional autoencoders can provide image noise reduction to boost the performance of any computer vision model.

Here we develop a convolutional autoencoder able to remove all noise from a noisy version of Fashion MNIST. Although the denoised images do not look perfect, they still preserve the main aspects of their original noise-free versions and are still understandable:

autoenconder_denoising_fashion_mnist_denoised_grid

autoencoder-denoising-fashion-mnist's People

Contributors

guilhermedom avatar

Watchers

 avatar  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.