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

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)

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/>
Downloads last month

-

Downloads are not tracked for this model. How to track
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Dataset used to train Rhodham96/EuroSatCNN