File size: 3,134 Bytes
a843013 39742ac a843013 db0c75d a843013 db0c75d a843013 db0c75d a843013 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 |
---
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/>
|