MultiSpec gyakorlatok – 7. – v. 3.3 – 9/17/20103
7. Gyakorlat – Főkomponens elemzés Hozzávalók: MultiSpec program (MultiSpecWin32.exe); bármilyen multispektrális felvétel. Egy kis elmélet, forrása: http://www.uni-miskolc.hu/~foldrajz/hallgato/segedlet/Muholdas_taverzekeles_alapjai.pdf A megadott könyvészet gyakorlatilag a teljes távérzékelésről szól, a PCA elemzésről szóló elmélet a dokumentum 55. illetve 107. oldalán található. Sokszor a képsávok (adatdimneziók) számának növekedésével nem növekszik arányosan az információtartalom. Lesznek ugyanis olyan képsávok melyek között nagy a korreláció (együtt járás). Például az a pixel, amelyik az egyik csatornán magas értékkel rendelkezik (világos volt) a másikon is az lesz, amelyik pedig alacsonnyal (sötét árnyalatú) a másik képen is alacsonyabb értékű lesz. A főkomponens analízis lényege, hogy a képsávokat lineárisan transzformáljuk úgy, hogy a sávok közötti korreláció a lehető legkisebb legyen, majd kiválasztjuk azokat az új sávokat, melyeken belül a pixelértékek varianciája a legnagyobb. Ezek a főkomponensek. A későbbi elemzések során elegendő lehet ezekkel dolgozni, hiszen a pixelek ezek segítségével lesznek a legkönnyebben és legpontosabban osztályozhatók. Nézzünk egy példát két képsáv esetére. Ekkor minden egyes pixelnek két értéke van, képsávonként egy-egy. A pixelek így egy kétdimenziós koordinátarendszerben ábrázolhatók, ahol is a tengelyek a képsávok, a pixel elhelyezkedését pedig az értékei határozzák meg. Mint az ábrán is látható, előfordulhat, hogy a képpontok két képsávban felvett értékei között nagy a korreláció (ha a pixel értéke az egyik sávban nagy, akkor nagy valószínűséggel nagy lesz a másikban is).
1
MultiSpec gyakorlatok – 7. – v. 3.3 – 9/17/20103
Az ábra a többsávos digitális képek pixelértékeinek megjelenítésére szolgáló diagramtípus, az ún scattergram (szóródási pontdiagram). Forgassuk el (transzformáljuk) a koordinátarendszer tengelyeit (a képsávokat) úgy, hogy a korreláció megszűnjön (csökkenjen). A pontos matematikai eljárást itt nem ismertetjük, mivel a főkomponens elemzés (PCA) a legtöbb térinformatikai szoftverben beépítve rendelkezésre áll. A módszer lényegéről elég annyit tudnunk, hogy a képpontok intenzitásértékei által meghatározott vektorok eloszlását leíró kovariancia mátrixból számítja ki az ún. sajátértékeket és sajátvektorokat, melyek az új koordináta rendszert (vagyis az új képsávokat) határozzák meg. Ezután, mint látható, az új x tengely jelölte képsávban szélesebb értéktartományban, egymástól szétválaszthatóbban oszlanak el a pixelek (nagyobb a varianciájuk), vagyis eben a sávban könnyebben, pontosabban osztályozhatók. Ezért ez lesz az első komponens. Nyilván a transzformáció után is lesznek olyan pixelek, melyek értékei az első komponensben (képsávban) megegyeznek, de más sávokban eltérhetnek. Tehát a pixelek különbözőségét az első komponens sem határozza meg száz százalékosan. Ezért további komponensekre (képsávokra) is szükségünk lehet az osztályozás során. A további komponensek azonban már egyre kevésbé jellemzik a képpontok értékeinek eloszlását. A transzformációt (PCA-t) követően a képpontok varianciájának 90%-át általában már az első két képsávban megkapjuk (forrás a fent említett dokumetum).
2
MultiSpec gyakorlatok – 7. – v. 3.3 – 9/17/20103 Most akkor lássuk a PCA-t a gyakorlatban. A lényeg jobb megértése érdekében végezzünk el újra egy felügyelt osztályozást a 4. gyakorlatban leírtak szerint. Az egyszerűség kedvéért itt vázlatosan ismételten bemutatjuk a fontosabb lépéseket. 1. Indítsuk el a MultiSpec programot a már megismert módon. A File – Open Image parancs segítségével nyissuk meg valamelyik már ismert állományt. A gyakorlat írásakor a Szent-Anna-tavat és környékét ábrázoló állományt használtuk. 2. A Processor menüből válasszuk a Statistics parancsot, ennek hatására megjelenik a projekt beállítási lehetőségeit biztosító ablak. 3. Az OK gomb megnyomásával fogadjuk el az összes alapértelmezett beállítást. Ennek hatására a jobb oldalon megjelenik egy újabb ablak amelynek a neve „Project”. Észrevehetjük, hogy ebben az ablakban van egy „SELECT FIELD” felirat ami azt jelenti, hogy a program várja a mintaterületek megrajzolását. Amint azt már előzőleg kipróbáltuk, minden különösebb parancs nélkül lehetőségünk van téglalap alakú területeket kijelölni az egér segítségével. Amennyiben, figyelmesebb vizsgálat után, a kijelölés hibásnak tűnik egyszerűen újrarajzoljuk. Arra törekedjünk, hogy egy megrajzolt téglalapon belül csak egyféle felület legyen, ugyanakkor ne menjünk nagyon közel a kiválasztott terület széléhez. Szükség esetén használjuk a nagyítási lehetőséget. Válasszuk a lehető legtöbb mintát és igyekezzünk, hogy a minták jó minőségűek legyenek. 4. Az egyes területek berajzolása után a project ablakban aktívvá válik az „Add to List” lehetőség. Erre kattintva megnyílik egy újabb ablak ahol megadhatjuk a kijelölt mintaterület nevét. A nevet tartalmazó ablak alatt látható a kijelölt terület celláinak a száma. A project ablak alján a megrajzolt téglalap sarokpontjainak a koordinátái láthatók. 5. Amennyiben szükséges, használhatjuk a „Polygon Enter” előtti jelölő négyzetet. Ennek hatására lehetőségünk lesz egy szabálytalan alakú sokszöget rajzolni. 6. A kiválasztott állományon a következő mintákat jelöltük meg:
3
MultiSpec gyakorlatok – 7. – v. 3.3 – 9/17/20103 7. A Processor menüből kapcsoljuk be a Classify parancsot. A megjelenő „Set Classification Specifications” ablakban hagyjunk mindent alapértelmezetten, kivéve a bal oldalon lévő „Image Selection” nevű jelölő négyzetet. Ezt kapcsoljuk ki, így lentről eltűnnek a kép méreteit jelző kis ablakok. Ez tulajdonképpen azt jelenti, hogy csak az imént megrajzolt mintaterületeket fogja megvizsgálni. Ha most megnyomjuk az OK gombot egy kis ablakban rákérdez, hogy számítsa-e újra a statisztikákat. Nyomjuk meg az OK gombot. 8. A szöveges ablakban megjelenő táblázatban vizsgáljuk meg a mintáink pontosságát. Ha valamelyik osztálynál a 3. oszlopban nagyon kicsi, 50% körüli érték lenne akkor azt az osztály újra meg kéne határozni egy új mintaterület kijelölésével. 9. Fogadjuk el a vizsgálat eredményeit és végezzük el a teljes felvétel osztályozását. 10. Kapcsoljuk be ismét a Processor menüből a Classify parancsot. A megjelenő „Set Classification Specifications” ablakban most változtassuk meg a beállításokat az ábra szerint: Ezt kapcsoljuk ki 11. Győződjünk meg arról az ablak bal alsó sarkában, hogy a teljes képfelület meg lesz vizsgálva. A Ezt kapcsoljuk BE jobb oldalon végzett beállítások az osztályozás eredményét mentik le, a továbbiakban adjunk nevet az állományoknak, erre kétszer is kér a program. 12. A művelet elvégzése után a szöveg ablakban megnézhetjük az osztályozás eredményét. Minden osztályra meg van adva a cellák száma és az osztály területe %-ban és hektárban is. Az osztályozás eredménye az alábbi ábrán látható:
13. Munkánk eredményeképpen létrejött az a bizonyos kékes kép is ami a vizsgálat pontosságát próbálja érzékeltetni. Ezt most nem muszáj megnyitni, de jól jegyezzük meg, hogy hová és milyen név alatt mentettük. A szöveges ablakban megnézhetjük, hogy az
4
MultiSpec gyakorlatok – 7. – v. 3.3 – 9/17/20103 elemzésünk átlagos pontossága 10,1% vagy sajnos ennél kisebb. Hát ezt kéne valahogyan javítani! És akkor most jön a PCA (Principal Component Analysis) elemzés. 14. Először is mentsük le a projektünket a File menü Save project As… parancsával, majd zárjuk be a projektet és az összes képet, kivéve az eredeti állományt. 15. Keressük meg a Processor menü, Utilities almenüjében a Principal Component Analysis parancsot. A megjelenő ablakban végezzük el az ábrán látható beállításokat: 16. Az „Image Area” azt jelenti, hogy a teljes képfelületet vizsgáljuk, az összes csatornára. 17. Az opcióknál a „List eigenvectors” azt jelenti, hogy listázza ki a sajátvektorok értékeit (lásd elméleti bevezető). 18. A „Save eigenvalues/eigenvectors” opciónak köszönhetően az értékek le lesznek mentve a memóriába, nem egy külön állományként, hanem a szöveges ablakba. 19. A számítások eredményei a szöveges ablakban fognak megjelenni. 20. Az „OK” gomb megnyomása után a számítások elkészülnek és az eredmények a szöveges ablakban tekinthetők meg. (Megjegyezzük, hogy a számok valószínűleg nem találnak az itt bemutatottakkal) Lássuk mit mondanak a számok:
21. Kiderül, hogy 59514 pixel elemzése történt meg és a művelet 51 ismétlése után találta meg a program a legnagyobb átlót, amely az főkomponenst jellemzi (lásd a 2. ábrát az elméleti részből). 22. Amint az már elhangzott, a PCA lényege az adatmennyiség csökkentése. Ez valójában az első táblázat soraiban a „Percent” (piros keret) és „Cum. Percent” (kék keret) oszlopokban látható. De mit jelentenek a számok? A százalékos értékek azt fejezik ki,
5
MultiSpec gyakorlatok – 7. – v. 3.3 – 9/17/20103 hogy az illető komponens milyen mértékben hordozza a teljes felvétel információit. Az összesített (Cum) oszlop 97,3475 értéke azt jelenti, hogy az elemzés eredményeképpen keletkező komponensek közül az első kettő már hordozza a teljes információmennyiség több mint 97%-át. Így a továbbiakban elég lesz ezt a két komponenst használni. De mik ezek a komponensek? Valójában új sávok jönnek létre, amelyeknek az értékét a második táblázatban látható értékekből számolhatjuk ki a következőképpen: 23. Az első komponens kiszámításához a táblázat első sorában lévő értékekkel kell a megfelelő (lásd a táblázat oszlopainak fejlécében) képsávokat megszorozni, majd a szorzatokat összeadni. Persze mindezt minden cellára és minden sávra. Van összesen 59514 cella és 6 sáv… A táblázat szerint: 0,20081*első képsáv cellaértéke + 0,26310*második képsáv cellaértéke + 0,35737*harmadik képsáv cellaértéke + 0,38793*negyedik képsáv cellaértéke + 0,62384*ötödik képsáv cellaértéke + 0,47231*hatodik képsáv cellaértéke. A második (és nyílván a többi) komponens kiszámítása hasonló elven történik. Hát ezt remélhetőleg nem kézzel kell kiszámolni, még szerencse, hogy lementettük az értékeket. No de akkor hogyan? 24. A továbbiakban már ismert ablakokat nyitunk meg. Válasszuk a Processor menüből a Reformat menüpont Change Image File Format parancsát. Elmondhatjuk, hogy ez az egyik leggyakrabban használt parancs, hiszen segítségével nagyon sok kérdés megoldható. Most jelöljük be az ablak bal szélén, a képfelület területi kijelölése alatt található „Transform Data…” jelölőnégyzetet. Ennek hatására megjelenik a „Set Reformat Transform Parameters” nevű ablak. Az ablak közepén válasszuk ki a „New Channels from PC Eigenvectors” lehetőséget. A mellette lévő ablakban válasszuk a „Subset…” lehetőséget. Itt állíthatjuk be a kiszámítandó komponensek, új „csatornák” számát. Mi most csak az első két komponenst fogjuk használni. 25. Miután megnyomtuk kétszer is az OK gombot visszajutunk az eredeti ablakhoz, ahol be kell állítanunk a 16 bites felbontást az adatok értékeként, ez a következő ábrán látható.
6
MultiSpec gyakorlatok – 7. – v. 3.3 – 9/17/20103
26. Az OK gomb megnyomása után megjelenik a lementési ablak, itt adjunk nevet az új állománynak, de a könnyebb áttekinthetőség kedvéért a névbe szúrjuk be az „pca” szócskát is. 27. Jelenítsük meg az imént létrehozott állományt egy új ablakban, úgy hogy az eredeti felvétel is látszódjon. Mivel ez valójában csak 2 sávot tartalmaz, használjuk a 2Channel Color (R-G) lehetőséget, vagyis az első komponens vörösben a második zöldben fog megjelenni.
7
MultiSpec gyakorlatok – 7. – v. 3.3 – 9/17/20103 28. Most nyissuk meg az előbbi osztályozás után lementett projekt állományt. Mivel az eredeti kép be van már töltve az ablakba, meg fognak jelenni rajta a megrajzolt mintaterületek. Most állítsuk be úgy, hogy az imént betöltött „pca” képen is jelenjenek meg. Ehhez Project menü Change Base Image File… parancsot indítsuk el és válasszuk ki a megfelelő állományt. A továbbiakban gondoskodjunk arról, hogy ez az állomány legyen aktív, tehát kattintsunk a címsorára, majd végezzük el az előbb leírt osztályozási műveleteket (1-13 pontok) és hozzuk létre az osztályozott képet valamint a megbízhatóságot ábrázoló, már ismert kékes képet. 29. Ha megnézzük a szöveges ablakot kiderül, hogy az újonnan létrehozott kép átlagos pontossága 15,1. Ez még mindig nem hatalmas érték, de mindenképpen javulást jelent a nyers képeken végzett osztályozáshoz képest. A képek színéből is látszik a különbség, lennebb látható előbb az eredeti, majd alatta a PCA kép osztályozásának eredménye.
30. Valójában a jobb érték nem azt jelenti, hogy jobban sikerült az osztályozás, hanem azt, hogy az osztályba sorolás megbízhatóbb. Az osztályozás minősége sok tényezőtől függ, leginkább a mintaterületek kiválasztásától.
8