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/>