/Satellite-Image-Classification

Image Classification model to predict the type of geographical area that is being represented in a satellite image.

Primary LanguageJupyter Notebook

Satellite-Image-Classification

  • Built an Image Classification model to predict the type of geographical area that is being represented in a satellite image.
  • Compared 4 different CNN architectures ie. a custom CNN, InceptionV2, MobileNetV2 , EfficientNetB3 based on model performance on this dataset.

Data

This dataset has 4 different classes of satellite images taken from google maps. The objective is to predict the images into 4 classes: cloudy , desert , green_area , desert.

The dataset can be downloaded from here

Experiments

MobileNetV2:

  • The MobileNetV2 model was initialized with pre-trained ImageNet weights and all the layers were fine-tuned. Training the model with an Adam optimizer with learning rate of 0.001 for 8 epochs yielded an Accuracy of 99.2%.

Custom CNN:

  • A baseline was created using a custom CNN model with 2 convolution layers and 3 dense layers. A kernel of size 3 x 3 was used for all the convolution layers. A dropout layer was used with dropout rate 0.1 .Training the model with an Adam optimizer with learning rate of 0.001 for 5 epochs yielded an accuracy of 90%.

InceptionV2:

  • The InceptionV2 model was initialized with pre-trained ImageNet weights. Only the Dense layers were fine-tuned. Training the model with an Adam optimizer with learning rate of 0.001 for 5 epochs yielded an Accuracy of 88.92%.

EfficientNetB3:

  • The EfficientNetB3 model was initialized with pre-trained ImageNet weights and all the layers were fine-tuned. Training the model with an Adam optimizer with learning rate of 0.001 for 5 epochs yielded an Accuracy of 86.72%
Model Accuracy
Baseline CNN 90%
Mobilenetv2 99%
InceptionV2 88%