153ZODH / 11. cvičení

Z GeoWikiCZ
Přejít na: navigace, hledání
předchozí cvičenístránky předmětudalší cvičení

Řízená, částečně řízená klasifikace

Osnova

Řízená klasifikace obrazových dat, hybridní - částečně řízená klasifikace.

Seznam příkazů

Úvod

Řízená klasifikace je založena na interaktivním výběru ploch patřící do předem určené třídy (na základě šetření v terénu či podkladové mapy). Tyto plochy jsou označovány jako trénovací plochy (ground truth areas). Trénovací plochy jsou v klasifikačního procesu použity pro sestavení spektrálních příznaků. Nesmí být příliš malé a měly by být homogenní. Modul g.gui.iclass umožňuje jejich analýzu pomocí histogramu či rozptylogramu jednotlivých kanálů, Gaussovy distribuční funkce spektrální odezvy a příslušné směrodatné odchylky. Výsledné spektrální příznaky jsou určeny na základě směrodatných odchylek a kovariančních matic.

Trénovací plochy mohou být digitalizovány přímo v modulu g.gui.iclass (včetně vygenerování spektrálních příznaků) či externě pomocí digitalizačního nástroje wxGUI - v tomto případě jsou spektrální příznaky sestaveny modulem i.gensig.

Nejprve je nutno vytvořit obrazovou skupinu/podskupinu a vložit do ní všechny požadované obrazové vrstvy (tj. jednotlivá pásma družicového snímku vyjma termálního pásma).

 # sestavení obrazové skupiny
 #
 i.group group=tm subgroup=tm input=tm1,tm2,tm3,tm4,tm5,tm7

Z menu wxGUI Imagery → Develop images and groups → Create/edit group

Založení obrazové skupiny ve wxGUI (výběr rastrových map)
Založení obrazové skupiny ve wxGUI

Pro usnadnění výběru trénovacích ploch je vhodné vytvořit pomocnou RGB syntézu.

 g.region rast=tm1
 #
 # RGB syntéza 453
 #
 r.composite red=tm4 green=tm5 blue=tm3 output=tm453

Výběr trénovacích ploch

Interaktivní

Supervised Classification Tool (nový nástroj, GRASS 7)

wxGUI Supervised Classification Tool je nový nástroj ve verzi GRASS 7, který vznikl v rámci semestrálního projektu předmětu 153YZOD na ČVUT v Praze v akademickém roce 2011/2012. Více o projektu na stránkách Open Source Geospatial Research and Education Laboratory.

wxGUI Supervised Classification Tool

Postup práce:

  1. Volba skupiny a podskupiny Iclass-set-group.png
  2. Definice tříd Iclass-class-manager.png
  3. Digitalizace trénovacích ploch pro jednotlivé třídy Iclass-digitize-areas.png
    • Volitelně lze trénovací plochy uložit do vektorové mapy Iclass-export-areas.png
  4. Provést analýzu trénovacích ploch, aktualizace histogramů Iclass-run.png
  5. Uložení výsledků do příznakového souboru Iclass-sigfile.png, tento soubor bude sloužit jako vstup do klasifikátoru i.maxlik
Návod na digitalizaci trénovacích ploch ve wxGUI Supervised Classification Tool

i.class (původní nástroj v GRASS 6)

Interaktivní výběr (digitalizaci) trénovacích ploch umožňuje v GRASS 6 modul i.class. Tento modul však obsahuje řadu omezení.

Zadáme název obrazové skupiny, podskupiny, podkladové rastrové vrstvy a souboru s výstupními příznaky.

 i.class map=tm453 group=tm subgroup=tm outsig=tm_riz

Grafické okno se rozdělí na tři části (podobně jako při georeferencování dat, modul i.points), vpravo nahoře se zobrazí zvolená obrazová vrstva, v dolní části je umístěn zvětšený detail zvoleného území (funkce "Zoom") - viz obr. níže. V levé části jsou zobrazovány histogramy trénovacích ploch.

Trénovací plochy jsou digitalizovány pomocí funkce "Define region" a "Draw region", pro uzavření aktuální plochy "Complete region", podmenu se opustí pomocí "Done". Analýza dané zvolené trénovací plochy - "Analyze region".

Grafické okno GRASSu po spuštění modulu i.class

Spektrální příznaky jsou tak vyhledány na základě vybrané trénovací plochy. Následně jsou v levé části zobrazeny histogramy pro všechna pásma obsažená v dané obrazové skupině. Pomocí položky menu "Display matches" lze zobrazit plochy, které budou podle vytvořených příznaků přiřazeny k dané třídě. Ve snaze ovlivnit výsledek této operace můžeme změnit směrodatnou odchylku (v menu "Set std dev's").

Zobrazení ploch odpovídající sestaveným spektrálním příznakům, standardní odchylka "7.5"

Po ukončení ("Done") se objeví otázka, zda chcete uložit aktuální spektrální příznaky ("Do you want to save this signatures?"), po vybrání "Yes" se zadá v okně konzole textový popisek příznaků - např. "vodni plochy". Podobně určíme další trénovací plochy. Modul se ukončí z menu "Quit". Spektrální příznaky zvolených trénovacích ploch jsou tak uloženy do speciálního textového souboru.

Trénovací plochy nesmí obsahovat tzv. hraniční pixely reprezentující často smíšené spektrální příznaky. Příliš malé trénovací plochy budou posléze (ze statistického hlediska) ignorovány.

Neinteraktivní

Mapovou vrstvu s trénovacími plochami lze vytvořit externě na základě mapy využití půdy, barevné syntézy a pod.

Pro vektorizaci trénovacích ploch lze použít modul g.gui.vdigit - viz 9. cvičení.

Nejprve zobrazíme podkladovou barevnou syntézu, vytvoříme novou vektorovou vrstvu 'tplochy' (včetně atributové tabulky) a otevřeme vrstvu pro editaci.

 d.rast map=tm453

Hranice ploch vektorizujeme bez kategorie, kategorie (atributová data) bude přiřazena pouze centroidům ploch. Po ukončení vektorizace trénovacích ploch vrstvu rasterizujeme pomocí modulu v.to.rast.

 # rasterizace plochy
 #
 v.to.rast input=tplochy output=tplochy use=cat labelcolumn=popisek
Trénovací plochy

Nakonec vytvoříme soubor se spektrálními příznaky.

 i.gensig trainingmap=tplochy group=tm subgroup=tm signaturefile=tm_riz

Klasifikace (Gaussův klasifikátor)

Soubor s příznaky (sigfile) lze vygenerovat v Supervised Classification Tool - viz postup. Alternativně lze soubor s příznaky vygenerovat pomocí modulu i.gensig. V tomto případě nejprve vektorovou mapu trénovacích ploch zrasterizujeme pomocí modulu v.to.rast.

Aplikace rozhodovacího pravidla (Gaussova klasifikátoru) je obdobná jako v případě neřízené klasifikace.

 # klasifikátor maximum likelihood (MLC)
 #
 i.maxlik group=tm subgroup=tm sigfile=tm_riz class=tm_rkl reject=tm_rzam
Výsledek řízené klasifikace
Zamítací rastrová vrstva

Poznámka: Popisky tříd lze nastavit manuálně pomocí modulu r.category. Nicméně pokud jste použili parametr labelcolumn při rasterizaci trénovacích ploch (v.to.rast), tak by popisky jednotlivých tříd měly být již nastaveny.

Nastavení popisků tříd pomocí modulu r.category. Položky jsou odděleny dvojtečkou.

Částečně řízená klasifikace

Tato metoda se podobá neřízené klasifikaci, pouze s tím rozdílem, že jsou nejprve vytvořeny spektrální příznaky podobně jako v případě řízené klasifikace (g.gui.iclass či i.gensig). Tyto příznaky jsou posléze použity jako zárodečné (seed signatures) pro modul i.cluster. Další postup kopíruje neřízenou klasifikaci.

Někdy se tato metoda označuje jako hybridní klasifikace.

 # rasterizace trénovacích ploch (pozor na výpočetní region)
 v.to.rast input=tr_areas output=tr_areas use=cat rgbcolumn=color
 
 # vytvoření souboru s příznaky
 i.gensig trainingmap=tr_areas group=B subgroup=B signaturefile=sig_areas

 # předzpracování - vytvoření shluku na základě zárodečných příznaků
 i.cluster group=B subgroup=B signaturefile=sig_hybrid classes=4 seed=sig_areas

 # aplikace Gaussova klasifikatoru 
 i.maxlik group=B subgroup=B signaturefile=sig_hybrid output=classes_hybrid

 # pro výsledek klasifikace nastavíme odpovídající tabulku barev odvozenou z trénovacích ploch
 r.colors map=classes_hybrid raster=tr_areas

Řízená kombinovaná geometrická a radiometrická klasifikace

Kombinovaná geometrická/radiometrická klasifikace je založena na klasifikátoru SMAP (Sequential Maximum A Posteriori - estimation). Klasifikátor SMAP na rozdíl od MLC bere v potaz okolí podobnosti, to může vést k lepším výsledkům klasifikace. Klasifikátor SMAP na rozdíl od MLC může akceptovat pouze jeden kanál (použitelné pro segmentaci obrazu). Klasifikátor SMAP je dostupný jako modul i.smap.

Postup se od řízené klasifikace popsané výše příliš neliší. Nejprve je potřeba vytvořit obrazovou skupinu pomocí i.group, následně vytvořit rastrovou vrstvu s trénovacími plochami. Spektrální příznaky jsou vytvořeny modulem i.gensigset. Proces klasifikace je ukončen aplikací i.smap.

 # rasterizace trénovacích ploch (pozor na výpočetní region)
 v.to.rast input=tplochy output=tplochy use=cat rgbcolumn=color

 # sestavení spektrálních příznaků
 i.gensigset trainingmap=tplochy group=tm subgroup=tm signaturefile=tm_smap maxsig=1
 
 # klasifikátor SMAP
 i.smap group=tm subgroup=tm signaturefile=tm_smap output=tm_smap

 # pro výsledek klasifikace nastavíme odpovídající tabulku barev odvozenou z trénovacích ploch
 r.colors map=tm_smap raster=tplochy
Výsledek řízené klasifikace (SMAP)

Příklad rastrové mapy porovnání výsledku MLC a SMAP.

 r.mapcalc 'tm_dif = if(tm_rkl != tm_smap, 1, null())'
Odlišně klasifikované plochy, klasifikátor MLC × SMAP

Pro porovnání výsledků klasifikace lze pohodlně použít i nástroj g.gui.mapswipe (viz obr. níže).

Porovnání výsledku klasifikátoru MLC a SMAP, bez postklasifikačních úprav