WEO · Computer vision · Estate 2023
Mappare la copertura del suolo del Lussemburgo dallo spazio
Una U-Net su AWS SageMaker che ha portato l’F1 medio dal 72% all’80,3%.
- Ruolo
- Data Scientist Intern
- Realizzato con
- Python, TensorFlow, NumPy, GDAL, AWS SageMaker, S3, Cloud9, Airflow, QGIS
L’obiettivo
Classificare ogni pixel di 10 m del Lussemburgo in una delle cinque categorie di copertura del suolo a partire da immagini satellitari, usando come ground truth la mappa ufficiale della copertura del suolo del 2018.
Approccio
- Una U-Net parametrica per la segmentazione semantica: in ingresso le immagini satellitari, in uscita la probabilità di ogni classe per ciascun pixel.
- Una pipeline interamente in cloud: dopo aver modellato l’architettura in locale, abbiamo portato il modello su AWS e lo abbiamo addestrato su SageMaker, con script su Cloud9 che scaricano ed elaborano i dati da S3. Tutto, fino alla valutazione del modello, gira in cloud.
- Il modello migliore è stato addestrato sulle immagini del 2018 e del 2019, usando la ground truth del 2018. Edifici, strade e fiumi cambiano pochissimo in un anno: così i dati di addestramento sono quasi raddoppiati, al costo di qualche pixel etichettato male.
Risultati
L’F1 medio è la metrica più significativa, vista la distribuzione delle cinque classi nella ground truth. È passato dal 72% all’80,3%, con un’accuratezza dell’86,28% sul validation set.
| Classe | Precisione | Recall | F1 |
|---|---|---|---|
| Alberi e arbusti | 92,1% | 91,4% | 91,8% |
| Suolo nudo, vegetazione stagionale, vigneti | 88,0% | 84,0% | 85,9% |
| Vegetazione erbacea permanente | 79,8% | 83,6% | 81,7% |
| Edifici e altre costruzioni | 75,1% | 74,7% | 74,9% |
| Acqua | 84,6% | 55,8% | 67,3% |
Loss: la curva di validation mostra pochissimo overfitting.
Accuratezza durante l’addestramento, fino all’86,28%.
Verifica qualitativa su un riquadro di 128 × 128 px: immagine satellitare con risoluzione di 10 m, ground truth e previsione del modello.
Impatto
WEO usa le probabilità “albero” di ogni pixel per stimare la crescita della chioma degli alberi che monitora. Queste stime alimentano report ambientali che gli enti locali usano per il budget, il monitoraggio e la gestione del rischio.
La chioma iniziale e la sua crescita, come appaiono nei report di WEO.
Cosa ho imparato
In tre mesi in WEO ho costruito una solida base di deep learning e telerilevamento, e ho lavorato con diversi servizi AWS (SageMaker, Cloud9, S3 e Airflow), oltre che con TensorFlow, NumPy, GDAL e QGIS.
Dati: Agenzia spaziale europea e Geoportal.lu.
“Enrico's contributions during his internship exceeded our expectations. Instead of mere optimization, he undertook the task of rewriting the model's codebase. Notably, this model outperformed its predecessor, showcasing Enrico's problem-solving skills. In addition to his technical skills, Enrico is a great team player. He is a fast learner and a hardworking individual who adds value to any team he joins.”
Traduzione: “Il contributo di Enrico durante il tirocinio ha superato le nostre aspettative. Invece di limitarsi a ottimizzare, si è impegnato a riscrivere il codice del modello. Il nuovo modello ha superato il precedente, a dimostrazione della sua capacità di risolvere i problemi. Oltre alle competenze tecniche, Enrico sa lavorare molto bene in squadra. Impara in fretta, lavora sodo e porta valore a ogni team in cui entra.”
Frankwin van Winsen Head of Development, WEO Dalla sua lettera di raccomandazione Leggi la lettera di raccomandazione (si apre in una nuova scheda)