Classification d`image satellite
Transcription
Classification d`image satellite
Classification d'image satellite Auteur: G. Picard, 2014 Objectif: – Appliquer les connaissances acquises en cours en classification supervisée et non-supervisée. Introduction L'image de travail est une zone d'une scène Landsat ETM+ sur les Alpes acquise le 21 juillet 2001. Les bandes 1 à 5 et 7 sont incluses dans un fichier landsat-grenoble-subset2.tif . Cette image est une petite partie de l'image originale centrée sur la vallée du Grésivaudan Les données sont accessibles ici: http://lgge.osug.fr/~picard/enseignement/ Pour information une description des bandes Landsat : Band Number Spectral Range (in Microns) EM Region 1 0.45 - 0.52 Visible Blue 2 0.52 - 0.60 Visible Green 3 0.63 - 0.69 Visible Red 4 0.76 - 0.90 Near Infrared 5 1.55 - 1.75 Middle Infrared 6 10.40- 12.50 Thermal Infrared 7 2.08 - 2.35 Middle Infrared 8 0.52 - 0.90 (panchromatic) Green, Visible Red, Near Infrared Classification non-supervisée : K-mean Le logiciel qui fournit l'algorithme K-mean est une boite à outil indépendant de QGIS, mais insérée dans QGIS, ce qui pose parfois des problèmes (bug...). Il faut que Orfeo ToolBox soit correctement installé pour que ca marche !! De part son principe même, la classification non-supervisée demande peut d'action préalable, l'algorithme fait le travail tout seul. - Lancer une classification sur l'image Landsat. Choisir les paramètres suivants : Cette première opération est simple et assez rapide, mais le travail commence : il faut retrouver le sens de chaque classe car elles se distinguent pour le moment un numéro de 0 à 9 dans l'image (utiliser « ValueTool » pour vérifier). Pour cela, régler l'affichage de la couche raster résultat pour afficher « raster pseudo-color single » et utiliser le mode d'échelle de couleur « Exact » (pas d'interpolation) car on veut choisir la couleur de chaque classe. Commence alors le travail d'identification de chaque classe. Pour cela, il est conseiller de commencer par les classes « faciles » : avec ValueTool chercher le numéro de classe qui correspond au lac / rivière. Ajouter ce numéro avec une couleur bleu et le label « eau » dans la table définissant l'échelle de couleur (Property de la couche onglet « Style »). Continuer ainsi. Une autre façon de faire – légèrement différente – est d'ajouter un numéro de classe (0 par exemple) dans l'échelle de couleur, lui donner une couleur voyante (magenta, jaune, ...), cliquer sur « Apply » pour appliquer ce changement et basculer entre l'image Landsat et l'image classifiée pour identifier la classe qui s'affiche de facon marquer. Changer ensuite la couleur et mettre un nom dans la « label ». Faire ce travail sur l'ensemble des 10 classes. Pour ne pas perdre le travail il est possible d'enregistrer le « style », mais attention, une nouvelle classification ne produira pas les mêmes numéros de classe Au cours de ce travail évaluer : - les surfaces qui sont bien reconnues, sans ambiguïté. - les surfaces qui couvrent plusieurs classes alors que thématiquement on s'attend à une seule classe. - les surfaces qui sont classées avec un autre type de surface thématiquement très différent. Partager votre expérience avec vos voisins car les classifications peuvent différer Que peut-on en conclure ? Classification supervisée D'une manière générale, pour réaliser une classification supervisée, il faut définir des zones d’entraînement dans une couche vecteur polygone. On appelle souvent ces zones des ROI = regions of interest. Lancer ensuite la classification en spécifiant le fichier raster (et les bandes) et les ROI. L'agorithme calcule alors les propriétés statistiques de la couche raster dans chaque ROI, puis utilise cette information sur l'ensemble de l'image pour la classifier. Deux outils très différents peuvent être utilisés dans QGIS pour faire une classification supervisée. Méthode 1 basée sur SAGA SAGA est un logiciel SIG qui peut être intégré dans QGIS. Pour le faire fonctionner, il faut qu'il soit correctement installé. Il faut de plus régler les paramètres dans « Processing »/ « Options and configuration », « Provider », « Saga ». A ce niveau sur ma machine j'ai décoché « Use SAGA 2.0.8 syntax » puisque j'avais une version plus récente de Saga. - Construire une couche vecteur polygone. Il est important de spécifier le CRS à la création de telle façon que ce soit le même que l'image ! Basculer la couche vecteur en mode édition et ajouter des polygones. Le champ de la table des attributs ID (créé automatiquement par QGIS à la création de la couche) est important car sa valeur sera la valeur dans le fichier raster contenant le résultat de la classification. Commencer par 2-3 polygones maximum avant de continuer, en ajouter ensuite pour afiner le résultat. - Réaliser la classification, dans la fenêtre « processing » : « Saga »/ « Imagery - Classification » / « Supervised classification ». Choisir la couche raster à classifier, la couche vecteur contenant les ROI, Le « class identifier » est l'attribut qui permet de choisir le champ de la table des attributs qui contient le numéro de la classe. Enfin choisir comme « Method » le « Maximum Likelihood ». Les valeurs par défaut des autres paramètres conviennent. Lancer la classification. Le résultat apparaît sous forme d'une couche raster « Classification » avec des niveaux de gris – qu'il faut colorée – mais contrairement à la classification non-supervisée, les numéros de classe correspondent aux zones d'entraînement, il n'y a donc pas d'interprétation à faire. Mettre simplement les couleurs et label correspondant aux numéros des ROI que vous avez choisi (ou qui ont été choisi automatiquement par QGIS, voir la table des attributs de la couche vecteur). Il est possible d'enregistrer le « style » de la couche raster dans un fichier, car dans ce cas, le même style pourra s'appliquer à d'autres classifications de la même image (avec une autre méthode par exemple) ou avec une autre image à condition que les ROI respectent la même relation entre numéro et classe thématique (ex : 0 est toujours « eau », 1 est toujours « foret », ...). Après le premier essai avec 2-3 polygones, il est possible de voir les zones/classes qui posent des problèmes de classification. L'idée est donc ensuite d'ajouter progressivement des polygones (ou de supprimer ceux qui pouvaient poser problème) pour atteindre l'objectif final. Méthode 2 basée sur le plugin « Semi-Automatic Classification Plugin » Installer ce plugin via le menu «Plugins »/ « Install and manage ». Utiliser le filtre avec le mot« classif » pour trouver le plugin facilement. Ce plugin est plus permet de travailler plus efficacement mais est un peu plus difficile à utiliser finalement. - Selectionner le fichier raster au niveau de la barre d'outil (toolbar) : - Dans la boite de création des ROI (à droite), créer une nouvelle couche shapefile pour accueillir les ROI. - dans la boite des signatures spectrales (à gauche). créer aussi un fichier en cliquant sur « Save » et en donnant un nom de fichier (e.g. signature.xml). - Pour créer les ROI, c'est un peu compliqué et il faut bien enchainer les étapes sans se tromper : 1- Dans « ROI creation », cliquer sur « create a ROI polygon » puis cliquer sur l'image avec le bouton gauche pour ajouter les vertex sauf le dernier où il faut cliquer bouton droit ce qui ferme le polygone. 2- Dans « ROI Signature Definition », il faut : MC ID doit être un nombre unique pour chaque classe (mettre 1 puis 2 puis 3...) C ID doit être unique pour chaque ROI. Dans notre cas, et pour faire simple, on va faire 1 ROI par classe, donc mettre le même numéro pour MC ID et C ID. Renseigner aussi MC Info avec le nom de la classe (e.g. « lac », « foret », …). C ID est faculatif. Quand c'est fait, cliquer sur « Save ROI », ce qui ajoute la ROI dans la boite « ROI List » et dans « Signature List ». Si vous vous êtes trompé sur les ID, il faut donc modifier dans la ROI List et la Signature List les ID. 3- Dans la « Signature List » ajouter des couleurs adaptées à la classe. - Après avoir construit deux ou trois ROI (pas mal pour le moment !), il est interessant de visualiser les signatures spectrales en cliquant sur l'icon : ou des scatterogrammes avec l'icon : Interpréter ces signatures à partir des connaissances acquises lors des TP précédents - Pour lancer la classification, il suffit de choisir le type d'algorithme dans la boite « Classification algorithme » (prendre « maximum likelihood ») et de cocher la case « Use Macroclass ID ». Ensuite cliquer sur « Perform classification ». Donner un nom au fichier qui contiendra la classification (e.g. classification-v1.tif). - Amélioré ensuite l'apprentissage en intégrant de nouvelles ROI et classes.