Project 3 – Satellite Image Segmentation with Deep Learning
| Technical level | Tasks |
|---|---|
| Doing the exercises of steps 1 and 3, relying on clues and solutions if needed. | |
| Doing the exercises of steps 1 to 3, without relying on clues and solutions. | |
| 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):
- Data Acquisition & Manipulation – Download Sentinel-2 images and CLC+ labels, visualise and manipulate raster data.
- Model Training (optional) – Understand the SegFormer architecture and how the segmentation model was trained.
- Inference & Statistics – Use a pre-trained model to produce land-cover maps, then compute regional statistics.
- 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
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
.qmdfiles and the_quarto.yamlfile are necessary to build the website; - The file
pyproject.tomldescribes 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