View this PageEdit this PageUploads to this PageVersions of this PageHomeRecent ChangesSearchHelp Guide

Image Compression via Neural Network

We want to compress images using neural networks.

Description

Taking a look at the picture below, imagine you have a neural network with an input layer (left), an output layer of the same size (right), and a hidden layer.

Uploaded Image: bpNetwork.gif

Further, imagine that you put an image (like a picture of a puppy) into the inputs at the left in some way (possibly one pixel per node), apply feedforward to push the results through the network to the outputs at the right, then check the outputs against the inputs. You can adjust the network using backpropagation, and then repeat the process until the outputs match the inputs. Eventually given the image as an input to the network, the network will be able to produce the same image as the output.

Not very impressive, unless you make the hidden layer smaller than the input layer and the output layer, as is shown in the picture above. The outputs of the trained hidden layer then represent the compressed image, because given just those values, the original picture can be recreated. Said another way, to store a set of pictures requires storing a single set of output weights, and the outputs of each picture's hidden weights.

Therefore, the outputs of the hidden layer can be transmitted or stored, and the image reconstituted by giving those weights to the output nodes as inputs.

Resources

http://www.speech.sri.com/people/anand/771/html/node37.html
http://neuron.eng.wayne.edu/bpImageCompression9PLUS/bp9PLUS.html
http://www.comp.glam.ac.uk/digimaging/neural.htm
http://documents.wolfram.com/applications/neuralnetworks/NeuralNetworkTheory/2.5.1.html
http://www.willamette.edu/~gorr/classes/cs449/backprop.html
http://community.corest.com/~luciano/etc/
The last link is to a neural network library for Squeak we are looking into and may use.

Features

We want to implement a program that can take a picture, compress it in the manner described above, transmit or store the compressed version, and then reconstitute it at another time. If time permits, we will expand this to multiple images and perhaps video. We will most likely stick to sets of static images, such as a photo collection you might want to send to a friend.

We think that because successive images in video are very similar, this kind of network could be used in an efficient video compression algorithm.

Names

Andreea Picu
Chucky Ellison
Nistha Tripathi

Link to this Page

  • Class projects last edited on 2 April 2008 at 5:20:59 pm by vpn3-144241.near.uiuc.edu