Anomaly detection in Satellite Imagery
Deep convolutional generative adversarial networks, GANs
I have been recently inspired by Omdena’s last summer's challenge, to detect anomalies on Mars surface, and thought to spot, using GANs, any type of technological signature detected around forests for deforestation purposes.
Why an unsupervised approach? because of the challenges in the data set:
a. data collections and no predefined labeled dataset, forest ‘surface’ is very diverse, the same ‘surface’ in different seasons looks very different,
b. data imbalance, forest surface has millions of square kilometers and on this surface, we have to spot anomalies measuring not more than a few 10s of feet each. Let us have a quick look at the generator and discriminator models structure:
I have chosen RGB images and trained using all 3 channels. Though since I don’t want to create too much of a carbon print (would be ironical: saving trees though creating more carbon in the process) I have chosen to train for 20 epochs. Of course, keep in mind this is a demo and it all depends on the data and project purposes.
After training the GANs I have a test. As you can see above: I have computed the anomaly score on a sample from the test set, as well on unseen data, and had a quick look at the generated images. Now, time to test on unseen complex images(and I get promising results):
Observations: natural/forest data has a lover anomaly score, while technological signature data/objects have a higher score:
Conclusions: it can be quite useful and definitely worth a look at.