Project 3 – Satellite Image Segmentation with Deep Learning

Authors
Affiliation

Raya Berova

Cédric Couralet

Meilame Tayebjee

Technical level Tasks
Beginner Doing the exercises of steps 1 and 3, relying on clues and solutions if needed.
Intermediate Doing the exercises of steps 1 to 3, without relying on clues and solutions.
Expert Doing the exercises of steps 1 to 3, without relying on clues and solutions, and completing steps 4 (deployment).

Introduction

Satellite imagery is one of the richest data sources available for understanding how land is used and how it changes over time. With this project, you will work with Sentinel-2 multispectral images from the European Copernicus programme and use a deep learning model (SegFormer) to perform semantic segmentation : classifying every pixel in an image into a land-cover category.

0.1 What is satellite image segmentation?

A segmentation mask assigns a class label to each pixel in an image. In the context of land-cover mapping, those classes correspond to categories such as sealed surfaces (buildings, roads), forests, cropland, or water… The ground-truth labels we use come from CLC+ Backbone, a high-resolution land-cover product produced by the Copernicus Land Monitoring Service covering the whole of Europe.

0.2 What you will learn

By completing this project you will learn to:

  • Download and manipulate satellite imagery and land-cover labels
  • Understand the structure of multispectral raster data (bands, CRS, bounding boxes)
  • Manipulate geodata and associate it to maps
  • Run inference with a pre-trained SegFormer model to produce land-cover maps
  • Compute regional statistics (area by class, artificialization rates) using administrative boundaries
  • (Optional) Train a segmentation model with PyTorch Lightning
  • (Optional) Deploy an interactive dashboard to explore the results

1 Structure of the project

This project has four sections (listed in the banner at the top of the page):

  1. Data Acquisition & Manipulation – Download Sentinel-2 images and CLC+ labels, visualise and manipulate raster data.
  2. Model Training (optional) – Understand the SegFormer architecture and how the segmentation model was trained.
  3. Inference & Statistics – Use a pre-trained model to produce land-cover maps, then compute regional statistics.
  4. Deployment (optional) – Build an interactive dashboard to visualise the results.

2 Initialization of the project

2.1 fork the github project in your own account with Git

This will facilitate modification and tests :

https://github.com/AIML4OS/funathon-project3/fork

NoteGetting started on SSP Cloud

Vscode-python.

Create a VScode service on SSP Cloud. In the service, open a terminal by clicking on , then Terminal > New Terminal. Clone the project repository with:

git clone https://github.com/AIML4OS/funathon-project3.git

Structure of the project:

  • The .qmd files and the _quarto.yaml file are necessary to build the website;
  • The file pyproject.toml describes the dependencies of the project;
  • The starting_point/ folder contains exercise templates with TODO blanks;
  • Intermediate solutions to the exercises are available in the intermediate_solutions/ folder;
  • The final solution is available in the final_solution/ folder.

2.2 Installation of dependencies

Install the project dependencies by running the following command in the terminal:

uv sync

If you want to work on the optional model-training section, install the training extras:

uv sync --extra training