Satellite image classification is the most significant technique used in remote sensing for the computerized study and pattern recognition of satellite information, which is based on diversity structures of the image that involve rigorous validation of the training samples depending on the used classification algorithm.
This is a pytorch implementation of a deep learning model for classification of satellite images. The proposed architecture is based on tranfer learning and uses ResNet18, ResNet34, and ResNet50 architectures as backbone pre-trained models.
For running the sample code:
Satellite image Classification Dataset-RSI-CB256. This dataset has 4 different classes mixed from Sensors and google map snapshot.
The input image size for CNN is 224*224, it means we need to resize all images to this size. See example image as below:
Cloudy ![]() |
Desert ![]() |
Forest ![]() |
Water ![]() |
Data | Number of Images |
---|---|
Train Set | 4504 |
Test Set | 1127 |
The CNN models applied in this project includes ResNet18, ResNet34, and ResNet50. We compare the test accuracy of each CNN model in our dataset and the conclusion is ResNet18 has the best performance with 99% test accuracy and 0.057 test loss.
Model | Test Accuracy | Test Loss |
---|---|---|
ResNet18 | 99% | 0.0247 |
ResNet34 | 99% | 0.0571 |
ResNet50 | 98% | 0.1050 |