WEO · Computer vision · Summer 2023
Mapping Luxembourg's land cover from space
A U-Net on AWS SageMaker that lifted average F1 from 72% to 80.3%.
- Role
- Data Scientist Intern
- Built with
- Python, TensorFlow, NumPy, GDAL, AWS SageMaker, S3, Cloud9, Airflow, QGIS
The goal
Classify every 10 m pixel of Luxembourg into five land-cover classes from satellite imagery, using the official 2018 land-cover map as ground truth.
Approach
- A parametric U-Net for semantic segmentation: satellite tiles in, per-pixel class probabilities out.
- A fully cloud-based pipeline: after modelling the architecture locally, we deployed the model on AWS and trained it on SageMaker, with scripts on Cloud9 downloading and processing data from S3, so everything up to model evaluation runs in the cloud.
- The best model trained on both 2018 and 2019 imagery against the 2018 ground truth. Buildings, streets and rivers barely change in a year, so this nearly doubled the training data at the cost of a few mislabelled pixels.
Results
Average F1 is the most meaningful metric given how the five classes are distributed in the ground truth. It rose from 72% to 80.3%, with 86.28% accuracy on the validation set.
| Class | Precision | Recall | F1 |
|---|---|---|---|
| Trees and bushes | 92.1% | 91.4% | 91.8% |
| Bare soil, seasonal vegetation, vineyards | 88.0% | 84.0% | 85.9% |
| Permanent herbaceous vegetation | 79.8% | 83.6% | 81.7% |
| Buildings and other construction | 75.1% | 74.7% | 74.9% |
| Water | 84.6% | 55.8% | 67.3% |
Loss: the validation curve shows very little overfitting.
Accuracy over training, reaching 86.28%.
Qualitative check on a 128 × 128 px tile: satellite image at 10 m resolution, ground truth, and the model’s prediction.
Impact
WEO uses the per-pixel tree probabilities to estimate canopy growth for the trees it monitors. These estimates feed environmental reports that local governments use for budgeting, monitoring and risk management.
Initial tree canopy and its growth, as shown in WEO’s reports.
What I learned
In three months at WEO I built a strong understanding of the basics of deep learning and remote sensing, and worked across several AWS services: SageMaker, Cloud9, S3 and Airflow, alongside TensorFlow, NumPy, GDAL and QGIS.
Data: European Space Agency and Geoportal.lu.
Code on GitHub (opens in a new tab)Recommendation letter (PDF) (opens in a new tab)
“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.”
Frankwin van Winsen Head of Development, WEO From his recommendation letter Read the recommendation letter (opens in a new tab)