Retour
Machine Learning & Télédétection

Cartographier l'occupation du sol avec Sentinel-2 : une approche en machine learning

Exploration de Random Forest, XGBoost et LightGBM sur des données ESA WorldCover

Contexte

Les données satellitaires Sentinel-2 fournissent une observation multispectrale régulière de la surface terrestre à différentes résolutions spatiales. Ces données peuvent notamment être utilisées pour caractériser la végétation, les surfaces agricoles, les zones artificialisées ou encore les surfaces aquatiques.

Parallèlement, l'ESA WorldCover fournit une cartographie globale de l'occupation du sol à partir de données satellitaires et constitue ici une source de labels permettant d'entraîner un modèle d'apprentissage supervisé.

Ce projet explore donc la possibilité d'apprendre la relation entre les signatures spectrales observées par Sentinel-2 et les classes d'occupation du sol proposées par WorldCover.

Problématique

« Dans quelle mesure les données Sentinel-2 permettent-elles de discriminer les principales classes d'occupation du sol, et quels choix de features et de modèles permettent d'obtenir la meilleure généralisation spatiale ? »

Présentation des données

Donnée Source Rôle Résolution
Sentinel-2 L2A Copernicus Prédicteurs 10 / 20 / 60 m
ESA World Cover 2021 ESA Labels 10 m
Zone d’étude Sud-Ouest de la France / Occitanie Domaine expérimental -

Sur la tuile utilisée dans cette étude, les données ESA World Cover présentent les classes suivantes :

Classes ESA World Cover

Code classe Nom
10 Tree Cover
30 Grassland
40 Cropland
50 Built-up
60 Bare/Sparse vegetation
80 Permanent water
90 Herbaceous wetland

Etape 1 : Pre-processing des données

Objectif : Sélectionner et préparer les données de label et d’entraînement

Les données Land Cover qui serviront de référence (labels) pour cette étude sont récupérées sur le site de l’ESA : viewer.esa-worldcover.org. La tuile correspondant à la région de Toulouse (France, Occitanie) est téléchargée depuis le portail. Ce produit fait référence pour l’année 2021.

Visualisation QGIS de ESA World Cover
Visualisation de ESA WORLD COVER

Pour les données d’entraînement, on se tourne vers le portail Copernicus qui permet de télécharger les données Sentinel-2 L2A pour une zone et temps donnés. Par souci de cohérence avec les données ESA World Cover, on récupère une date en 2021, tout en cherchant à optimiser la couverture nuageuse. C’est la date du 15 avril 2021 qui présente la meilleure pertinence, avec un Cloud Cover très faible (2.8).

Visualisation QGIS de ESA World Cover
Visualisation des données Sentinel en RGB

Les données Sentinel-2 L2A comprennent l’ensemble des bandes de 01 à 12 (ainsi que AOT, SCL, TCI, WVP) à des résolutions spatiales allant de 10m, 20m ou 60m selon les bandes considérées. Les données à 10m étant limitées à quelques bandes et les données ESA World Cover se trouvant à une résolution spatiale de 10m, le choix est fait de travailler à 20m, en appliquant un rééchantillonnage sur les données ESA pour les aligner parfaitement sur la grille Sentinel-2.

Ce rééchantillonnage est réalisé en parcourant le raster en fenêtre (grille) de 4 pixels (20m de résolution spatiale) et en sélectionnant la valeur majoritaire. Un score de purity est calculé simultanément afin d’identifier les pixels ambigus (pas de classe majoritaire) et de les écarter ensuite lors de l’entraînement des modèles.

A l’issue de cette étape, un raster de labels ESA World Cover à 20m de résolution est généré et les rasters Sentinel-2 L2A sont prêts pour commencer l’approche machine learning.

Etape 2 : Sélection des Area of Interest (AOI)

Objectif : Identifier au sein de la tuile ESA World Cover des zones de références pour l’entraînement, la validation et le test des modèles

La tuile World Cover entière ne peut être utilisée comme base pour l’entraînement des modèles, d’une part à cause du trop grand nombre de pixels qui alourdiraient les temps de calcul au-delà du raisonnable, d’autres part en raison de la forcément très inégale répartition des pixels qui pourrait générer des biais d’entraînement.

Le choix est donc fait de travailler sur des zones de 20x20km (soit 1 000 000 de pixels), ce qui représente une taille à la fois exploitable et suffisamment riche en information. Néanmoins, là où une approche standard en machine learning consiste à appliquer une séparation randomisée des données en un jeu d’entraînement, un jeu de validation et un jeu de test, la problématique est légèrement différente dans le domaine de l’apprentissage géospatial. En effet, les risques de biais liés à l'autocorrélation spatiale des données nécessitent une totale indépendance géographique entre les données d’entraînement, de validation et de test.

On cherche donc à identifier un triplet d’AOI (train, validation, test) en optimisant leurs caractéristiques. A l’œil, les zones autour des communes petites à moyennes semblent présenter une bonne diversité de classes, mais on laisse le soin à un script Python de confirmer et sélectionner les meilleures zones. Pour cela, on parcourt le raster en grille avec calcul de plusieurs paramètres : Entropie de Shannon, Pixels valides (purity > 0.75), nombre de classes et équilibre. Une distance minimale de 20km est imposée entre chaque zone pour garantir l'indépendance spatiale.

A l’issue de cette étape, le meilleur triplet est déterminé ainsi :

  • TRAIN Zone d’entraînement (20x20km) autour des communes de Valence, Golfech, Saint-Nicolas-de-la-Grave
  • VAL Zone de validation (20x20km) dans le Sud-Ouest de Toulouse, aux alentours des communes de Masseube / Bellegarde
  • TEST Zone de test (20x20km) aux alentours des communes de Nailloux / Villefranche-de-Lauragais
Localisation des zones Train, Validation & Test
Localisation des zones Train, Validation & Test

Un script Python est ensuite appliqué pour extraire les données ESA ainsi que Sentinel-2 pour ces 3 zones, au format .parquet bien adapté au traitement de ce volume de données.

Etape 3 : Tests exploratoires

Objectif : Tester l’hypothèse selon laquelle les données Sentinel-2 L2A contiennent suffisamment d’information pour permettre à un modèle d’apprentissage supervisé de discriminer des classes d’occupation du sol

L’état de l’art et les connaissances métier dans le domaine de la télédétection / Machine Learning géospatial nous poussent à sélectionner 9 bandes de Sentinel-2 pour une première approche exploratoire :

Bande Domaine spectral Résolution Intérêt potentiel
B02Bleu10 meau, végétation, sols
B03Vert10 mvégétation, eau
B04Rouge10 mvégétation, sols
B05Red Edge20 métat de la végétation
B06Red Edge20 mvégétation
B07Red Edge20 mvégétation
B8ANIR20 mvégétation, humidité
B11SWIR20 mhumidité, sols, bâti
B12SWIR20 msols, végétation, bâti

Un script python est utilisé pour lire les .parquet générés précédemment. On y filtre les pixels sur un critère de Purity > 0.75 (ce qui élimine environ 10% des pixels) et on sélectionne un seuil maximal de 10 000 critères par classe. On configure ensuite un ensemble de 3 modèles (Scikit-Learn) :

  • • DummyClassifier : modèle basique voué à servir de témoin
  • • DecisionTree : modèle en arbre unique pour benchmarking
  • • RandomForest : modèle de référence dont on va évaluer la performance par rapport aux autres
Python // Extrait script python
# Configuration et entrainement des modeles baselines (Dummy, DecisionTree, RandomForest)

Les critères retenus pour l’évaluation sont l’accuracy, la balanced accuracy et surtout le F1-score (moyenne des scores F1 de chaque classe) qui permet de prendre en compte la précision et le recall et s’avère plus adapté aux problèmes présentant des classes déséquilibrées.

A l’issue de ce test avec un paramétrage standard des modèles, les résultats obtenus sur l’ensemble de validation sont les suivants :

Model Macro F1-Score Accuracy Balanced Accuracy
Dummy Classifier 0.068 0.312 0.143
Decision Tree 0.464 0.723 0.601
Random Forest 0.496 0.761 0.592

Le DummyClassifier fournit une référence volontairement naïve, avec un macro-F1 de seulement 0,068. Les modèles basés sur des arbres améliorent très nettement ce résultat : le Random Forest atteint un macro-F1 de 0,496.

Cette première expérience constitue donc un premier élément en faveur de l'hypothèse de départ : les bandes spectrales Sentinel-2 contiennent suffisamment d'information pour apprendre une discrimination non triviale entre les classes étudiées.

Etape 4 : Feature Engineering et Ablation Study

Objectif : Déterminer un ou plusieurs features sets optimaux pour permettre le tuning et l’évaluation de différents modèles

L’étape suivante consiste à optimiser les résultats obtenus en influant sur les features d’entrée (prédicteurs). On calcule un ensemble d’indices spectraux classiques de télédétection, que l’on ajoute à notre feature set de prédicteurs :

Indice / ratio Formule Interprétation
NDVI(B8A−B04)/(B8A+B04)Vigueur / présence de végétation
NDWI(B03−B8A)/(B03+B8A)Information liée à l'eau
NDMI(B8A−B11)/(B8A+B11)Humidité de la végétation
NDBI(B11−B8A)/(B11+B8A)Information liée aux surfaces bâties
RE1B05/B04 Détection précoce du stress végétal et teneur initiale en chlorophylle
RE2B06/B04Teneur globale en chlorophylle a+b et estimation du LAI (indice foliaire)
RE3B07/B04Biomasse dense et niveau de maturité/sénescence de la canopée
NIR_RE1B8A/B05 Évaluation de la structure foliaire et de la densité de canopée sans saturation
NIR_RE2B8A/B06Ratio du plateau PIR/RE intermédiaire, sensible aux variations d'azote et de biomasse active
NIR_RE3B8A/B07Ratio du plateau PIR/RE haut, indicateur de l'efficacité photosynthétique globale

Ces nouvelles features sont ensuite évaluées en entraînant les modèles précédents sur un grand ensemble de FeatureSets :

  • 9 Bands : Les 9 bandes utilisées à l’origine
  • 9 Bands + Indices : Les 9 bandes pour les indices NDVI, NDWI, NDMI, NDBI
  • 9 Bands + Indices + Ratios : La totalité des 9 bandes, indices et ratios
  • 9 Bands + NDVI seul
  • 9 Bands + NDWI seul
  • 9 Bands + NDMI seul
  • 9 Bands + NDBI seul

Par définition, les indices type NDVI sont basés sur des informations déjà contenues dans les bandes Sentinel-2. Le fait de les tester ensemble et séparément sert à vérifier s’ils apportent tout de même une information discriminante par rapport aux bandes et si oui, quels indices sont les plus pertinents.

Résultats de l'Ablation Study (Performances par Feature Set)

Validation Set
Feature Set Modèle Accuracy Balanced Acc. Macro F1-Score
RGB_NIR Decision Tree 0.723 0.601 0.464
Random Forest 0.761 0.592 0.496
9_bands Decision Tree 0.753 0.621 0.491
Random Forest 0.804 0.627 0.515
9_bands_NDWI Decision Tree 0.757 0.624 0.494
Random Forest 0.802 0.626 0.513
9_bands_NDVI Decision Tree 0.755 0.604 0.486
Random Forest 0.802 0.620 0.510
9_bands_indices_ratios Decision Tree 0.762 0.633 0.493
Random Forest 0.795 0.628 0.512
9_bands_indices Decision Tree 0.751 0.623 0.485
Random Forest 0.794 0.615 0.501
indices_ratios_only Decision Tree 0.710 0.603 0.444
Random Forest 0.749 0.594 0.479
Note :

Le modèle témoin DummyClassifier donne sur l'ensemble des configurations un score invariant : Accuracy = 0.312, Balanced Acc. = 0.143, Macro F1 = 0.068.

L’ajout des indices spectraux semble au final apporter peu d’amélioration mesurable par rapport aux seules 9 bandes dans le cadre de notre Random Forest, ce qui s’explique sans doute par le fait que le modèle est capable de retirer l’essentiel de l’information contenue dans ces indices depuis les bandes brutes. Pour la suite de l’exploration, on retient néanmoins 3 feature sets :

  • •9 bands : Le meilleur compromis a priori entre performance et simplicité du modèle
  • •9 bands + NDVI + NDWI : Ces deux indices semblent être ceux dont l’ajout modifie le plus favorablement les performances.
  • •9 bands + indices + ratios : Le plus complet (potentiel supérieur pour des modèles type Gradient Boosting).

On cherche ensuite à intégrer la dimension spatiale du problème. Pour intégrer cette information, des statistiques locales sont calculées sur des fenêtres carrées centrées sur chaque pixel :

Moyenne locale :
$$\mu_{w}(x,y) = \frac{1}{|w|} \sum_{(i,j) \in w} I(i,j)$$
Écart-type local :
$$\sigma_{w}(x,y) = \sqrt{\frac{1}{|w|} \sum_{(i,j) \in w} (I(i,j) - \mu_{w})^2}$$

Deux tailles de voisinage sont testées : 3×3 pixels (60 m × 60 m) et 5×5 pixels (100 m × 100 m), calculées sur B04, B8A et B11.

Impact du Contexte Spatial sur les Performances

Ablation Study Spatiale
Feature Set Modèle Accuracy Balanced Acc. Macro F1-Score
9_bands (Baseline) Decision Tree 0.753 0.621 0.491
Random Forest 0.804 0.627 0.515
9_bands_spatial_3 Decision Tree 0.744 0.634 0.491
Random Forest 0.809 0.630 0.524
9_bands_spatial_5 Decision Tree 0.755 0.638 0.499
Random Forest 0.810 0.632 0.534
9_bands_NDVI_NDWI_spatial_3 Decision Tree 0.761 0.642 0.501
Random Forest 0.810 0.633 0.529
9_bands_NDVI_NDWI_spatial_5 Decision Tree 0.757 0.633 0.503
Random Forest 0.811 0.638 0.542
9_bands_indices_ratios_spatial_3 Decision Tree 0.770 0.648 0.501
Random Forest 0.816 0.636 0.530
9_bands_indices_ratios_spatial_5 Decision Tree 0.776 0.650 0.506
Random Forest 0.818 0.635 0.532
9_bands_mean5 Decision Tree 0.749 0.630 0.496
Random Forest 0.807 0.637 0.540
9_bands_std5 Decision Tree 0.750 0.642 0.491
Random Forest 0.808 0.635 0.531
Observations clés :
  • Gain systématique de la dimension spatiale : L'ajout d'un contexte spatial ($3\times3$ ou $5\times5$) augmente significativement le Macro F1 (de 0.515 à >0.530) et l'Accuracy globale.
  • Fenêtres $5\times5$ vs $3\times3$ : La fenêtre contextuelle élargie ($5\times5$) surpasse systématiquement la fenêtre $3\times3$, permettant de mieux lisser le bruit d'enregistrement spectral.
  • Efficacité de la moyenne spatiale : L'agrégation spectrale simple 9_bands_mean5 atteint un excellent Macro F1 = 0.540, très proche de 9_bands_NDVI_NDWI_spatial_5 (0.542).

L'ajout de statistiques spatiales produit une amélioration plus nette que celle observée avec les indices spectraux. Les datasets retenus pour la suite sont :

  • 9 Bands + mean 5x5 : Meilleur compromis performance/simplicité à priori
  • 9 Bands + mean + std 5x5 : Potentiel apport d’information supplémentaire
  • 9 Bands + indices + ratios + mean + std 5x5 : Le plus complet

Cette étape nous aura permis d’évaluer la pertinence et le poids des principaux prédicteurs utilisables et dérivables à partir des données Sentinel-2. Le travail de comparaison et d’ablation permet d’éliminer certains indices potentiellement redondants et de déterminer 3 ensembles de features de référence à tester avec différents modèles de classification.

Etape 5 : Comparaison avec des modèles de Gradient Boosting

Objectif : Déterminer les modèles les plus performants sur nos features set de référence afin de procéder ensuite à leur optimisation

Il est maintenant temps de procéder à la comparaison de performance entre différents modèles. Si Random Forest est une référence reconnue dans la littérature, d’autres modèles de Classifier – souvent plus récents – peuvent constituer des alternatives de choix. Au regard de l’état de l’art sur le sujet, 3 modèles de Gradient Boosting apparaissent comme des candidats sérieux : XGB Classifier, Light GBM et le GradientBoosting Classifier de scikit-learn

Modèle Famille Principe Rôle dans l’étude
RandomForestBagging d’arbreAgrégation de nombreux arbresRéférence robuste
SkLearn Gradient BoostingGradient BoostingArbres construits séquentiellementBenchmark
Light GBM (LGBM)Gradient BoostingBoosting optimisé et régulariséPerformance / vitesse
XGB ClassifierGradient BoostingBoosting basé sur histogrammesPerformance / vitesse

Les modèles sont tout d’abord entraînés avec des paramètres standards et leurs résultats sont évalués selon leur score macro-F1, leur accuracy, balanced accuracy mais aussi temps de traitement.

train_gradient_boosting.py
Python 3
# Chargement du script Python en cours...

En sortie, nous obtenons :

Modèle Feature set Accuracy Balanced Acc. Macro-F1 Temps
Random ForestMean 5×50,8070,6340,5365,9 s
Gradient BoostingMean 5×50,8210,6610,550323,8 s
XGBoostSpatial 5×50,8310,6480,5676,4 s
LightGBMFull0,8420,6610,5727,6 s

Deux configurations apparaissent comme les meilleures candidates pour la phase d'optimisation : LightGBM avec l'ensemble complet de variables, et XGBoost avec les variables spectrales et spatiales. GradientBoosting ScikitLearn offre aussi une performance solide à priori, mais son temps d’entraînement très largement supérieur pour des résultats légèrement en deça en font un moins bon candidat pour un tuning fin.

Etape 6 : Tuning des modèles finalistes

Objectif : Améliorer les performances des meilleurs modèles en déterminant les ensembles optimaux d’hyperparamètres

Les deux modèles sélectionnés font ensuite l’objet d’une recherche des paramètres optimaux via RandomizedSearchCV.

train_random_forest.py
Python 3
# Chargement du script Python en cours...

Dans ce cadre, une cross-validation stratifiée en 3 folds est utilisée sur le jeu d’entraînement, avec le macro F-1 comme métrique à optimiser pour accorder un poids similaire à chacune des classes. Cette approche nécessaire à la recherche des meilleurs hyperparamètres reste cependant potentiellement sensible à l’autocorrélation spatiale et ne remplace pas la validation spatialement indépendante mise en place précédemment.

Modèle Macro-F1 CV Macro-F1 validation spatiale
LightGBM baseline—0,572
LightGBM tuned0,7930,564
XGBoost tuned0,7770,570

Ainsi le tableau ci-dessus démontre que les performances très élevées obtenues en cross-validation 3 folds ne sont pas reproduits sur le dataset de validation, ce qui confirme en outre l’importance de conserver un jeu de validation géographiquement indépendant.

Etape 7 : Analyse des erreurs

Objectif : Identifier les classes les plus difficiles à distinguer et comparer le comportement des deux modèles finalistes.

Après le tuning, les modèles LightGBM et XGBoost sont évalués sur le jeu de validation spatialement indépendant. L’analyse ne se limite pas à l’accuracy globale : les métriques sont étudiées classe par classe afin de mettre en évidence les erreurs de classification et l’impact du déséquilibre entre les classes.

Classe Support LGBM
Précision
LGBM
Rappel
LGBM
F1
XGB
Précision
XGB
Rappel
XGB
F1
Tree cover 278 176 0,892 0,834 0,862 0,896 0,834 0,864
Grassland 260 049 0,733 0,868 0,795 0,736 0,871 0,798
Cropland 343 852 0,938 0,828 0,880 0,938 0,833 0,882
Built-up 4 127 0,284 0,938 0,435 0,286 0,938 0,438
Bare / sparse vegetation 24 0,000 0,000 0,000 0,000 0,000 0,000
Permanent water 6 279 0,850 0,931 0,889 0,856 0,947 0,900
Herbaceous wetland 80 0,052 0,237 0,085 0,068 0,225 0,105

Les deux modèles présentent des performances très proches sur les principales classes. Le Tree cover, le Grassland et le Cropland obtiennent des F1 compris entre 0,79 et 0,88, tandis que la classe Permanent water est également bien reconnue.

Une difficulté importante apparaît cependant pour la classe Built-up. Son rappel élevé (~0,94) indique que la majorité des pixels bâtis sont correctement détectés, mais sa précision très faible (~0,28) montre que de nombreux pixels appartenant à d'autres classes sont également prédits comme bâtis. Le modèle a donc tendance à sur-prédire cette classe.

Les classes Bare / sparse vegetation et Herbaceous wetland restent particulièrement difficiles à modéliser. Cette observation doit toutefois être interprétée avec prudence : elles disposent respectivement de seulement 24 et 80 observations dans le jeu de validation. Les métriques associées sont donc beaucoup moins stables que celles des classes majoritaires.

Matrice de confusion normalisée — LightGBM Cliquer pour agrandir
Matrice de confusion normalisée — XGBoost Cliquer pour agrandir

Les matrices de confusion permettent de préciser la nature de ces erreurs. Les principales confusions concernent les classes Tree cover, Grassland et Cropland. Ces classes correspondent toutes à des couvertures végétales dont les signatures spectrales peuvent être proches, notamment lorsqu'elles sont observées à une résolution de 20 m.

La classe Herbaceous wetland est également difficile à distinguer, notamment vis-à-vis des surfaces en eau. Cette difficulté peut s'expliquer par la proximité spectrale entre certaines zones humides et les pixels contenant de l'eau ou de la végétation humide.

Comparaison des modèles

Modèle Accuracy Balanced Accuracy Macro-F1
LightGBM tuned 0,8427 0,6625 0,5637
XGBoost tuned 0,8454 0,6640 0,5695

Les différences entre les deux modèles restent faibles. XGBoost obtient une légère avance sur l'accuracy et le macro-F1, tandis que les deux modèles présentent une balanced accuracy très proche. Aucun modèle ne se distingue donc nettement sur l'ensemble des critères.

À retenir : l'erreur de classification provient principalement de la confusion entre les différentes classes de végétation, tandis que les classes disposant de signatures spectrales plus distinctes, comme l'eau, sont mieux reconnues. Les très faibles performances observées sur certaines classes rares doivent être interprétées avec prudence en raison de leur faible nombre d'observations dans le jeu de validation.

Etape 8 : Généralisation sur la zone de test

Objectif : Entraîner les modèles LGBM et XGBoost sur les ensembles de données train et validation, les utiliser pour prédire la zone de test et mesurer leur performance

Nous procédons maintenant à l’application des modèles LGBM et XGBoost sur la zone de test, qui contient uniquement des pixels totalement indépendants de tout entraînement et validation réalisé jusqu’à maintenant. Les zones de train et validations sont fusionnées en un seul dataset qui va servir à entraîner les modèles avec les paramètres optimaux déterminés lors des étapes précédentes.

Performances finales sur la zone de test

Une fois le tuning terminé, les ensembles d'entraînement et de validation sont fusionnés afin d'entraîner les deux modèles finalistes avec leurs hyperparamètres optimisés. Les modèles sont ensuite appliqués une seule fois sur la zone de test, totalement indépendante des données utilisées précédemment.

Les résultats obtenus permettent ainsi d'évaluer la capacité de généralisation des modèles sur une zone géographique jamais utilisée lors de l'entraînement ou de la sélection des hyperparamètres.

Modèle Accuracy Balanced Accuracy Macro-F1
LightGBM 0,8682 0,6954 0,6065
XGBoost 0,8718 0,6874 0,6002

Les deux modèles obtiennent des performances globales proches. XGBoost atteint la meilleure accuracy avec 87,18 %, tandis que LightGBM obtient la meilleure balanced accuracy (69,54 %) et le meilleur Macro-F1 (0,6065).

L'accuracy doit cependant être interprétée avec précaution en raison du fort déséquilibre des classes dans la zone de test. La classe Cropland représente à elle seule environ 77 % des pixels évalués. Une accuracy élevée peut donc être obtenue malgré des performances plus limitées sur les classes minoritaires.

Visualisation des résultats

Les performances quantitatives sont maintenant complétées par une analyse spatiale des prédictions. L'outil ci-dessous permet de visualiser les prédictions de LightGBM et XGBoost au format raster et de les comparer à la référence ESA World Cover. Il propose aussi d'afficher les rasters d'erreurs de classification pour les 2 modèles. La présence de pixels noirs (no data) sur les prédictions s'explique par les pixels exclus sur le cirtère de purity (pixels dont le label n'est pas considré comme assez fiable suite au rééchantillonnage à 20m).

Les deux modèles présentent une organisation spatiale globalement similaire, ce qui est cohérent avec leurs performances très proches sur la zone de test. Une tendance déjà observée dans l'analyse des erreurs apparaît également visuellement : les deux modèles semblent sur-prédire les surfaces de type Built-up.

Raster Droite --- Raster Gauche ---
Légende Occupation du Sol (ESA WorldCover) :
Tree Cover
Grassland
Cropland
Built-up
Bare/sparse vegetation
Permanent water
Herbaceous wetland
No data (purity filter)

Limites et perspectives d'amélioration

Les résultats présentés ici montrent que les données Sentinel-2 constituent des prédicteurs intéressants pour déduire l'occupation des sols à l'aide de modèles de Machine Learning relativement simples et peu coûteux. Les performances obtenues sur la zone de test sont encourageantes, mais plusieurs limites doivent néanmoins être gardées à l'esprit, autant sur le plan des données que sur celui de la méthodologie.

1. Une référence qui n'est pas totalement indépendante des prédicteurs

Les données de référence ESA WorldCover sont produites en partie à l'aide de données Sentinel-2. Même si la méthodologie de production de WorldCover est différente de celle suivie dans ce projet, cette dépendance constitue une limite méthodologique qui mérite d'être signalée : les variables utilisées comme prédicteurs et la donnée de référence ne sont pas complètement indépendantes. Les performances mesurées doivent donc être interprétées comme une évaluation par rapport à WorldCover, et non comme une mesure absolue de la capacité du modèle à retrouver une occupation du sol parfaitement indépendante.

2. Des choix de sampling et de qualité des labels à approfondir

Plusieurs paramètres ont été volontairement conservés constants afin de maintenir une méthodologie cohérente tout au long de l'étude. Le seuil de purity a notamment été fixé à 0,75, tandis que l'entraînement a été limité à un maximum de 10 000 pixels par classe. Ces choix permettent de contrôler la qualité des labels et le déséquilibre entre classes, mais ils constituent également des hyperparamètres méthodologiques qui pourraient être étudiés plus systématiquement.

Une analyse de sensibilité pourrait par exemple comparer plusieurs seuils de purity et plusieurs stratégies d'échantillonnage. L'objectif serait de mesurer le compromis entre quantité de données disponibles, fiabilité des labels et représentativité des classes.

3. Une forte difficulté sur les classes minoritaires

Les résultats montrent logiquement que les classes les moins représentées obtiennent des performances plus fragiles. C'est particulièrement visible pour les classes Bare / sparse vegetation et Herbaceous wetland, dont le nombre de pixels disponibles dans les zones étudiées est très faible.

Cette situation limite la fiabilité des métriques associées à ces classes et réduit la capacité du modèle à apprendre leurs caractéristiques spectrales. Malgré une sélection des AOI visant à conserver une diversité suffisante, une perspective naturelle serait donc d'intégrer davantage de zones géographiques présentant ces occupations du sol, notamment sur d'autres tuiles Sentinel-2 et WorldCover.

4. Une généralisation géographique encore à confirmer

Le protocole mis en place sépare les données géographiquement afin de limiter les phénomènes de fuite d'information liés à l'autocorrélation spatiale. Cette approche fournit une évaluation plus réaliste qu'une séparation aléatoire pixel par pixel, mais elle reste limitée à une seule zone d'étude et à une seule date d'acquisition Sentinel-2.

Les performances observées ne permettent donc pas encore de conclure que les modèles conserveraient le même niveau de performance sur d'autres régions, d'autres paysages ou d'autres conditions d'acquisition. Une validation sur plusieurs tuiles géographiques constituerait une étape importante pour évaluer la véritable capacité de généralisation spatiale du modèle.

5. Une information temporelle encore peu exploitée

L'étude repose ici sur une acquisition Sentinel-2 unique. Or certaines classes peuvent être difficiles à distinguer à partir d'une seule observation, notamment lorsque leurs signatures spectrales sont proches à une date donnée.

Une amélioration importante consisterait à exploiter une série temporelle de plusieurs acquisitions Sentinel-2. L'évolution saisonnière des indices spectraux et des bandes pourrait alors apporter une information complémentaire pour différencier, par exemple, certaines surfaces végétalisées ou agricoles dont la signature peut fortement varier entre autonmne, hiver, été ou printemps.

Perspectives

Plusieurs pistes permettraient ainsi de prolonger ce travail. Une première consisterait à réaliser un benchmark plus systématique des paramètres de préparation des données : seuil de purity, stratégie d'échantillonnage et pondération éventuelle des observations selon leur qualité.

Une seconde piste serait d'élargir le jeu de données à plusieurs régions et plusieurs dates, afin d'améliorer la représentativité des classes et de tester la robustesse géographique et temporelle des modèles. Enfin, l'utilisation de méthodes davantage orientées vers l'information spatiale ou temporelle, ainsi que de modèles plus avancés, pourrait être envisagée pour dépasser les limites observées sur les classes difficiles.

En résumé : les performances obtenues sont encourageantes, mais le principal enjeu pour une prochaine version du projet serait moins de chercher à gagner quelques points de performance sur une seule zone que de vérifier que ces performances restent robustes sur d'autres territoires, d'autres dates et des classes mieux représentées.