EuroSatCNN / README.md
Rhodham96's picture
Update README.md
39742ac verified
---
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: <https://huggingface.co/datasets/blanchon/EuroSAT_MSI>.
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:** <https://www.linkedin.com/in/robin-hamers/>