Home

Awesome

Satellite-image-SRGAN using PyTorch

Using GAN to do super resolution of satellite images.

index_18_psnr_19.6009_ssim_0.6538

<p style="text-align:center;">Fig.1. From left to right: ground truth; srgan result; bicubic result.</p>

This is a mini project fulfilled for ELEG5491: Introduction to Deep Learning, The Chinese University of Hong Kong. The course website is here.

The basic concept comes from the paper Photo-Realistic Single Image Super-Resolution Using a Generative Adversarial Network.

For the usage of this code, please walk through the below steps.

0. System environment

NO.ParameterValueNO.ParameterValue
1Operating systemUbuntu 18.46CPU versionIntel Xeon(R)
2GPU versionTelsa K807CPU memory47GB
3GPU memory10GB8CPU clock speed2.5GHz
4GPU number39CPU core number12
5CUDA version10.210CPU number4

1. Create the dataset

First, go to the source file folder to generate our own dataset. The source image is obtained by a satellite pushbroom scanning method with multiple stitches. Its original size is 1 x 1197 x 50500. We will use the crop_data script to randomly crop the source image and generate the training, validation and testing dataset.

In this case, we will generate 96000 training images, 3000 validation images, and 1000 testing images, respectively, with the shape of 1 x 128 x 128.

Reference

  1. PyTorch-GAN
  2. Photo-Realistic Single Image Super-Resolution Using a Generative Adversarial Network