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.

Documents pareils