/DL_ImageProcessing

Implementing image saliency maps, fooling images and style transfer using neural networks.

Primary LanguageJupyter Notebook

Deep Learning and Image Processing

This repository looks the the use of image gradients along with various deep learning methods to implement the following three ideas:

  1. Saliency Maps: Saliency maps allow us to understand which parts of an image were focused on by the nerual network to achieve its results. The code implements the algorithm presented by K. Simoyan et al.
  2. Fooling Images: Fooling images are images altered by minute amounts of noise (imperceptible to the human eye) to fool the neural network to predict it wrongly. This can be used by an adversarial to get unwanted results from a neural network. THe code implemented here is from the paper by C. Szegedy et al.
  3. Style Transfer: Neural Style Transfer involves using a neural network to transfer the style of one image into another, while preserving the content of the second. This code implements the algorithm by L.A. Gatys et al.

Running the code

The Jupyter notebook requires the pytorch package.

Some Results

1. Saliency Maps

Saliency map example outputs

2. Fooling Images

In the examples below, each fooling image, when fed to the neural net predicts a class 8 classes below the correct ID. Fooling map example output

3. Style Transfer

Style Transfer example output