Learning Image Compression with Convolutional Networks
Convolutional Neural Networks (ConvNets) have shown break-through performance and/or performance-per-power on many computer vision tasks such as classification, image segmentation, optical flow and super-resolution. We think that applying ConvNets for the compression of image data could be a promising approach. For this we would have to think about how we can limit the information capacity of the output signal, e.g. through quantization. A nice aspect of this application is that the usually limited training data is not an issue, since randomly acquired images our the internet can be used to train the network.
An earlier project we have conducted, has shown that we can improve the decompression part of well-known compression algorithms like JPEG. Now we want to take it to the next level: learning the compression part as well. Creating a ConvNet for a different encoding has been done several times before, but in order to optimize for best compression we need to quantize intermediate results.
In this project you learn the basics of ConvNets, develop such a quantization module, explore cost functions to be minimized and ConvNet architectures suitable for this purpose, and evaluate the results against existing compression schemes such as JPEG 2000.
- Looking for (1 or 2) Master or (1 or 2) semester project students (work load will be adjusted)
- Contact/Supervision: Lukas Cavigelli, Pascal Hager
- Decent Matlab and C programming skills
- Motivation for signal processing problems
- Ideally some knowledge of GPU programming
- 20%-30% Theory
- 20%-30% C/CUDA programming
- 50% ConvNet model design (Lua/Torch coding) and evaluation (Matlab)