XII. Télédétection
XII.4 Classification supervisée
- Qu'est-ce qu'une classification supervisée ?
- Visualisation de l'image
- Extraction des signatures spectrales
- Classification supervisée avec l'algorithme du maximum de vraisemblance
- Interprétation des résultats et mise en page
Dans cette partie, nous allons effectuer une classification supervisée, c'est-à-dire se basant sur des données d'entraînement que vous aurez créées. Nous utiliserons pour cela une image Sentinel 2B acquise sur le bassin endoréique de l'Okavango, au Botswana.
Qu'est-ce qu'une classification supervisée ?
Comme une classification non supervisée, une classification permet le regroupement des pixels d'une image pour aboutir à des catégories, par exemple d'occupation du sol. Mais à la différence de cette dernière, elle se base sur un échantillonnage terrain fait par l'utilisateur.
Pour cet échantillonnage, il est possible de se baser sur une campagne de terrain avec des relevés d'occupation du sol, et/ou sur des bases de données autres (Corine Land Cover...).
Il existe de nombreux algorithmes de classification supervisée :
- Algorithmes bayésiens
- Machine Learning (SVM, Random Forest, réseaux de neurones...)
- Deep Learning (nécessite un très grand échantillonnage)
Nous utiliserons ici l'algorithme du maximum de vraisemblance, qui fait partie des algorithmes bayésiens. L'idée est de calculer pour chaque pixel la probabilité qu'il appartienne à chaque classe, avec 2 hypothèses préalables :
- un pixel a autant de probabilité d'appartenir à une classe qu'à une autre
- la distribution des valeurs dans chaque bande est gaussienne, c'est-à-dire qu'elle suit une loi normale :
Cet algorithme de type probabiliste bien adapté aux images satellitaires permet d'associer une probabilité d'appartenance d'un pixel à une classe. La prise de décision se fait par la valeur maximale de probabilité et permet d'associer une carte de confiance dans la prédiction.
Le choix d'un algorithme de classification demeure complexe puisqu'il dépend du type de données, de l'échantillonnage dont on dispose et surtout du paysage étudié.
Visualisation de l'image
Compositions colorées
Ouvrez un nouveau projet QGIS et ajoutez-y l'image SENTINEL2B_20200619-Okavango.
Ajoutez un fonds OpenStreetMap pour situer l'image.
En allant dans les propriétés de la couche, rubrique Information, vous pouvez voir que cette image n'a que 10 bandes, contrairement à ce que nous avons pu voir sur les images Sentinel-2 ici. Les bandes B1 (aérosol côtier), B9 (vapeur d'eau) et B10 (SWIR Cirrus) ne sont pas présentes, ce qui nous donne la correspondance suivante :
Numéro de bande | Bande Sentinel-2 |
---|---|
- | Bande 1 - Aérosol côtier |
01 | Bande 2 - Bleu |
02 | Bande 3 - Vert |
03 | Bande 4 - Rouge |
04 | Bande 5 - Végétation "red edge" |
05 | Bande 6 - Végétation "red edge" |
06 | Bande 7 - Végétation "red edge" |
07 | Bande 8 - PIR |
08 | Bande 8A - PIR "étroit" |
- | Bande 9 - Vapeur d'eau |
- | Bande 10 - SWIR - Cirrus |
09 | Bande 11 - SWIR |
10 | Bande 12 - SWIR |
Avec les bandes 3, 2 et 1 dans les canaux R, G et B, on obtient cette image en "vraies couleurs" :
A compléter !
Pixels en RFE (Réflectance au sol en pour 10000)
A faire !
Superficie de l'image
Comment obtenir la superficie de l'image étudiée ?
On peut utiliser l'emprise de la couche pour calculer cette surface.
Ouvrez les propriétés de la couche, rubrique Information.
Nous allons d'abord vérifier les unités des coordonnées de la couche, et donc le SCR. Descendez jusqu'à Système de coordonnées de référence (SCR) :
Il s'agit d'un SCR projeté utilisant la projection UTM, les coordonnées sont donc métriques.
Remontez maintenant jusqu'à Information du fournisseur pour lire l'emprise de la couche :
Cette emprise se lit comme ci : xmin, ymin, xmax, ymax.
La couche mesure donc en X :
750000 - 723200 = 26800
Soit 26,8 km, et en Y :
7812800 - 7790200 = 22600
Soit 22,6 km.
La superficie couverte est donc de 26,8 * 22,6 = 605,68
soit un peu plus de 600 km².
On peut aussi obtenir cette surface avec l'outil de mesure de QGIS, ce sera plus rapide mais moins précis !
Cliquez sur l'outil de mesure et sélectionnez Mesurer une aire si ça n'est pas déjà fait (l'icône de cet outil est différente suivant le type de mesure sélectionnée).
Dessinez ensuite le contour de l'image satellite, en cliquant sur chacun de ses 4 angles, avec un clic droit n'importe où pour terminer. Vous pouvez lire la surface de la zone que vous avez délimitée dans la fenêtre de l'outil, en choisissant l'unité kilomètres carrés :
Cette mesure variera selon les points où vous avez cliqué.
Notre zone couvre donc environ 23 km par 27 km,soit un peu plus de 600 km².
Dire pourquoi on calcule cette superficie
Extraction des signatures spectrales
Pour effectuer une classification supervisée, il nous faut des données d'entraînement, donc des ROI. Ces ROI nous serviront également à lire les signatures spectrales de nos futures classes d'occupation du sol.
Nous utiliserons les 4 classes suivantes :
- surface en eau
- végétation arborée
- végétation rase
- surface en sol nu
Créez une couche de ROI, en prenant entre 5 et 10 polygones par classe.
Pour digitaliser plusieurs polygones dans une même macro-classe, il faut cliquer après chaque polygone sur l'icône Sauver les ROI temporaires dans les données d'entraînement (en bas à droite du panneau SCP) :
Pour gagner du temps pendant la saisie, vous pouvez décocher la case Signature pour ne pas calculer les signatures spectrales à chaque sauvegarde.
Et dans ce cas, vous pouvez calculer ces signatures en une seule fois une fois tous les ROI créés, en les sélectionnant puis en cliquant sur le bouton calculer les signatures pour les éléments surlignés.
Il est ensuite possible de calculer une signature globale pour chaque classe.
Pour cela, sélectionnez tous les éléments d'une même classe puis cliquez sur le bouton Fusionner les signatures spectrales surlignées.
Il ne vous reste plus ensuite qu'à ajouter les signatures de chaque classe au graphique, à l'aide du bouton Ajouter les signatures spectrales surlignées au graphique :
Vous remarquerez que les 2 lignes du tableau correspondant à la végétation rase et au sol nu sont surlignées en orange : cela signifie que ces 2 classes se recouvrent partiellement.
Nous allons maintenant pouvoir faire une classification basée sur ces ROI !
Penser à ajouter dans les données en téléchargement une couche de ROI exemple.
Classification supervisée avec l'algorithme du maximum de vraisemblance
Ici, nous allons utiliser l'algorithme du maximum de vraisemblance pour regrouper les pixels en catégories, en se basant sur les ROI que nous venons de dessiner.
Pour accéder à l'outil de classification supervisée, cliquez sur l'icône Traitement de bande puis Classification dans la barre d'outils sur la gauche du panneau SCP, ou bien Menu SCP → Traitement de bande → Classification (cliquer pour voir en plus grand) :
- Sélectionner un jeu de bande : a priori il y a un seul jeu de bandes dans notre projet, laisser 1
- Utiliser : sélectionnez MC ID pour obtenir dans l'image finale autant de catégories que de macro-classes, c-est-à-dire de classes d'occupation du sol (en choisissant C ID nous aurions autant de catégories que de polygones)
- Algorithme : sélectionnez maximum de vraisemblance et laissez le seuil à 0. Si le seuil est défini, avec une valeur entre 0 et 100, les pixels ayant une probabilité inférieure à ce seuil d'appartenir à une classe seront exclus de la classification
- Classification d'occupation des sols : ne sélectionnez aucune valeur. Il s'agit d'un autre algorithme de classification qui peut être utilisé seul ou bien combiné à celui choisi au-dessus. Pour plus d'infos voir la documentation (Land Cover Signature Classification) !
- Sortie de la classification : il est possible ici de spécifier un style ou un masque pour l'image en sortie, créer un fichier vecteur de sortie en plus du geotiff, créer un rapport de classification qui indiquera pour chaque classe le nombre et le pourcentage de pixels concernés, ainsi que la surface. Ici, vous pouvez ne cocher que la case du rapport de classification.
- En cochant la case sauvegarder les fichiers temporaires, vous obtiendrez également un raster pour chacun des ROI utilisés, plus un raster « général » ; voir la documentation (Save algorithm files) pour plus d'informations.
Cliquez sur le bouton Lancer. Choisissez un emplacement et un nom pour le fichier geotiff qui sera créé.
Il est possible que le fichier créé n'ait pas d'extension dans son nom ; dans ce cas, ajoutez-lui l'extension .tif manuellement dans votre explorateur de fichier, pour qu'il soit bien reconnu comme un fichier geotiff.
L'image correspondant au résultat de la classification est chargée dans QGIS. Dans cette image, chaque pixel a une valeur correspondant à une des classes utilisées. Ici, ces valeurs vont de 1 à 4 car nous avons basé notre classification sur 4 macro-classes.
Pour mieux voir ce résultat, il est possible de modifier le style de cette couche. Rendez-vous dans ses propriétés → Symbologie : vous pouvez modifier la couleur de chaque classe et son étiquette en double-cliquant dessus (oui, il est possible de mettre des caractères accentués dans les étiquettes !) :
pour un résultat qui doit ressemble à ceci (ce résultat dépendra de vos ROI !) :
Alors là, j'ai un truc assez différent du cours, j'ai dû mal choisir mes ROI !!
Vous pouvez également ouvrir le rapport de classification avec un tableur, ce fichier CSV a été créé au même endroit que l'image avec le suffixe _report (le délimiteur est la tabulation) :
On peut y lire par exemple que la classe 3 (végétation rase) rassemble un peu plus de 35% des pixels de l'image. Bien sûr, vos résultats seront sûrement un peu différents !
Interprétation des résultats et mise en page
A faire !!
Vous êtes arrivé.e au bout de ce tutoriel. Si vous le suivez depuis le début, bravo pour votre patience, et sinon bravo également !
chapitre précédent
haut de page