--- license: apache-2.0 datasets: - blanchon/EuroSAT_MSI language: - en metrics: - f1 - accuracy --- # Model Card: EuroSAT CNN for Land Cover Classification ## Model Description This model is a Convolutional Neural Network (CNN) designed for land cover classification on the EuroSAT dataset. The EuroSAT dataset consists of Sentinel-2 satellite images, each with 13 spectral bands, and is commonly used for remote sensing applications. The CNN architecture is as follows: * **Input:** 13 spectral bands, 64x64 pixel images. * **Feature Extractor (`nn.Sequential`):** * `Conv2d`: 13 input channels, 128 output channels, kernel size 4, padding 1. * `ReLU` activation. * `MaxPool2d`: kernel size 2. * `Conv2d`: 128 input channels, 64 output channels, kernel size 4, padding 1. * `ReLU` activation. * `MaxPool2d`: kernel size 2. * `Conv2d`: 64 input channels, 32 output channels, kernel size 4, padding 1. * `ReLU` activation. * `MaxPool2d`: kernel size 2. * `Conv2d`: 32 input channels, 16 output channels, kernel size 4, padding 1. * `ReLU` activation. * `MaxPool2d`: kernel size 2. * **Classifier (`nn.Sequential`):** * `Flatten` layer. * `Linear` layer: dynamically calculated input features to 64 output features. * `ReLU` activation. * `Linear` layer: 64 input features to `num_classes` (output classes). The model is implemented using PyTorch. ## Dataset The model was trained and evaluated using the **EuroSAT_MSI** dataset available on Hugging Face: . This dataset is a collection of Sentinel-2 satellite images, each with 13 spectral bands, categorized into 10 land cover classes. It is widely used for remote sensing and land use/land cover classification tasks. ## Training Data The model was trained on the EuroSAT dataset, which contains satellite images from the Sentinel-2 mission, categorized into various land cover classes. ## Training Notebook You can explore the full training process and code in the Google Colab notebook hosted on GitHub: [View Training Notebook on GitHub](https://github.com/Rhodham96/EuroSatCNN/blob/main/EuroSATCNN.ipynb) ## Evaluation Results The model's performance was evaluated on a dedicated test set. * **Test Accuracy:** 87.96% * **F1 Score (weighted):** 0.8776 ## Usage This model can be used for automated land cover classification of Sentinel-2 satellite imagery, specifically for images similar to those found in the EuroSAT dataset. ### Example (PyTorch) ```python import torch import torch.nn as nn from model_def import EuroSATCNN # Example usage: # Assuming num_classes is known, e.g., 10 for EuroSAT # model = EuroSATCNN(num_classes=10) # model.load_state_dict(torch.load("pytorch_model.bin")) # dummy_input_image = torch.randn(1, 13, 64, 64) # Batch size 1, 13 channels, 64x64 # output = model(dummy_input_image) # print(output.shape) # Should be torch.Size([1, 10]) if num_classes=20 --- ## About the Author This model was developed by **Robin Hamers**. * **LinkedIn:**