In this project we will implement an image super-resolution network. The goal of this project is to take an input image of size 64 x 64 and produce one super-resolved image of size 256 x 256. You may use any traning data and algorithm for this tasks. However, you should choose one of four different loss functions:
- A perceptual loss: Perceptual Losses for Real-Time Style Transfer and Super-Resolution, Johnson etal. 2016
- A GAN loss: Generative Adversarial Nets, Goodfellow etal. 2014
- IMLE: Implicit Maximum Likelihood Estimation, Li etal. 2018
- Normalizing flow: Glow: Generative Flow with Invertible 1x1 Convolutions, Kingma etal. 2018
We provide a python starter code which contains a project and a val_grader. Please implement your superresolution network in one function, as the grader will load your model super-resolve the test images. The starter code also contains a downsample function that we use to produce the low-resolution images. During testing we will evaluate your algorithm on three criteria:
- Does the high-resolution image map back to the low-resolution when downsampled. 30pt graded linear from 10% - 5% relative error, see starter code.
- Does the algorithm reproduce a high-resolution image. 30 pt graded linear from linear upsampling (baseline in starter code) to a perfect reconstruction. Distance used: L1, SSIM, perceptial metric
- Does the algorithm provide a diverse set of outputs. 30pt measured by the average difference between different solutions produced (all pairs between 10 random generations).
Not all losses above will do equally well in all criteria. We only require you to reach 60pt for a full score. If you’re complementation does not reach 60pt, please mention in a writeup why. A good explaination why, will also give you full credit.
We will again use a hidden dataset to measure the performance of your model.
Please load your model once when your module starts up and not every time your model super-resolves.
The best two performing models per loss (paper) will receive extra credit and should be prepared to brifly explain their solution in class.
You may use anyones auto-encoder code from last assignment.