Github link

PULSE (Photo Upsampling via Latent Space Exploration) is a new algorithm published in 2020 that generates a high resolution facial image from a low resolution one. The main idea is to encode a low resolution image to a latent variable with GAN, change the latent variable a little bit, and generate a new but highly similar image.

To make it easier for anyone to try out PULSE, I wrote a COLAB notebook that takes an image URL (such as those obtained from Google image search), performs downsampling, and then upsampling with PULSE.

Instruction to run

  1. Open the COLAB notebook
  2. Click “Connect” button on top right to connect to the GPU server.
  3. Replace Photo_URL with an URL of your interest
  4. Click the play button on the left of the second cell.

It usually takes a minute or two to generate a new image.

Below are a few examples. Image on the left is the original, middle one is the downsampled original, and the right one is the image generated by PULSE.

Pretty good! You may think. Things go a bit haywire with some images…

As you can see, the generator is biased towards white young-looking adults. In fact there have been a lot of discussion around bias implicit in machine learning models. To sum up, it’s all about the training data. The models simply fill in the gap based on what they saw from the training data. The PULSE model was trained with the a dataset of Flickr images and inherited all its bias. The bias issue can likely be resolved by carefully selecting a dataset with diverse age, ethnicity and gender.