Metode Interactive de Învățare pentru Analiza Imaginilor [308058]

Universitatea "Politehnică" [anonimizat]: [anonimizat]. [anonimizat].Ing. Anca POPESCU

2012

Lista figurilor

Figura 1 Chile – incendiul de la Torres del Paine, 2012 13

Figura 2 Extragerea de informații 14

Figura 1. 1 [anonimizat]. 20

Figura 1. 2 Clasificator SVM neliniar 22

Figura 1. 3 Exemplu de clasificare k-NN 23

Figura 1. 4 Schemă bloc. Clasificare Nesupervizată 25

Figura 1. 5 Schemă bloc. Clasificare Supervizată 27

Figura 2. 1 Teledetecția 29

Figura 2. 2 Sursa de energie 30

Figura 2. 3 Radiația electromagnetică 31

Figura 2. 4 Lungimea de undă 31

Figura 2.5 Spectrul Electromagnetic 32

Figura 2.6 Reflexia radiației electromagnetice asupra vegetație 34

Figura 2.7 Digitizarea imaginilor satelitare 39

Figura 2.8 SPOT-XS,-PAN 43

Figura 2.9 [anonimizat], rezoluție 1m 44

Figura 2.10 LANDSAT TM: RGB=3,2,1 45

Figura 2.11 [anonimizat]. 46

Figura 2.12 Rezoluția temporal vs Rezoluția Spațială 47

Figura 3.1 Modelul sistemului 53

Figura 3.2 Bismarck, North Dakota(înainte de inundarea controlată) 54

Figura 3.3 [anonimizat] 54

Figura 3.4 [anonimizat]. Louis, Missouri. 55

Figura 3.5 St. John's [anonimizat]. 55

Figura 3.6 Kingdom Tower. 56

Figura 3.7 Tidal Basin 56

Figura 3.8 Seiano Grotto 57

Figura 3.9 Interfață grafică. 59

Figure 3.10 Interfață învățare supervizată 60

Figura 3.11 Clasificare K-means 61

Figura 3.12 Statistică K-means 61

Figura 3.13 Clasificare SVM 62

Figura 3.14 Statistica SVM 62

Figure 3.15 Clasificare MAP 63

Figure 3.16 Statistică MAP 63

Figure 3.17 Clasificare K-NN 64

Figure 3.18 Statistică K-NN 64

Figure 3.19 Teren viran/paouri solare; Apa și vegetație; Zonă urbană 3 66

Figure 3.20 Procentul de recunoaștere pentru cele 13 clase semantice identificate vizual. 66

Lista acronimelor

AVHRR:Advanced Very High Resolution Radiometer

ASTER:Advanced Spaceborne Thermal Emission and Reflection Radiometer

ASM: Angular Second Moment

DCS: [anonimizat]: Data Mining

DTS: Distributed Temperature Sensing System

E: [anonimizat]: Environmental Satellite

EO: [anonimizat] a Pământului

EROS:Earth Resources Observation Satellite

ERS:European remote sensing satellite: Satelit de teledetecție European

GLMC:Gray Level Cooccurence Matrix

GNSS: [anonimizat]: [anonimizat]:Human Recording System

Hz: Hertz

IMU: Inerțial measurement unit: echipament de măsură inerțial

IR: Infrared- infraroșu

IRS: Indian Remote Sensing

JERS: Japanese Earth Resources Satellite

K-NN: K- Nearest Neighbors

LIDAR: Light Detection And Ranging

M: [anonimizat]:Maximum a Posteriori Probability

MODIS:Moderate-Resolution Imaging Spectroradiometer

MSS:Multi-[anonimizat]ispectral

PB: Peta-Byte

RGB: Red Green Blue- modelul cromatic: Roșu Verde Albastru

RSS: Residual Sum of Squares – Suma reziduurilor pătratice

SAR:Synthetic-aperture radar

SPOT: Systeme Pour l’Observation de la Terre

SUA:Statele Unite ale Americii SVM: Support Vector Machine

SWIR: Short-wave Infrared

TIR: Thermal Infrared

UAV: Unmanned Aerial Vehicle –Drone

UV: Ultraviolet

VNIR: Visible and Near-Infrared

Introducere

Volumul de date oferit de senzorii satelitari de observare a Pământului (EO) este intr-o continuă creștere, atât datorită numărului de platforme, cât și datorită rezoluției din ce în ce mai ridicate. În plus, datele satelitare devin accesibile unui număr din ce în ce mai mare de utilizatori, atât din mediul științific cât și din domeniul public sau privat. Cu toate acestea, deși cererea de date este în creștere pentru un număr foarte mare de aplicații, de la cartografie la monitorizarea mărilor si oceanelor, ghețari, la aplicații urbane și de mediu sau de securitate, modalitățile de prelucrare și analiză a datelor sunt încă limitate, fiind nevoie de metode automate atît de vizualizare cît și de manevrare a arhivelor mari de imagini.

Astăzi, mai mult de un PB (Peta-Byte = 1012 Bytes) de date este livrat de satelitii de Observare a Pământului într-o misiune tipică de 5 ani, ceea ce face imposibilă prelucrarea lor manuală de către analiștii de imagini [1]. Astfel, doar un mic procent de date ajunge să fie efectiv utilizat.

Pentru realizarea unei hărți tematice, spre exemplu în cazul unui dezastru natural precum o alunecare de teren, un cutremur sau un tsunami, specialiștii trebuie sa parcurga și să analizeze scene care acoperă zeci sau sute de kilometri. Atunci când rezoluția imaginii este foarte mare, spre exemplu de 1 sau 2 m, asemenea suprafete se traduc în imagini de ordinul a 10.000 x 10.000 pixeli, iar volumul de muncă depus chiar și doar pentru vizualizarea acestor date este uriaș. Astfel, arhivele de teledetecție devin comparabile, atât ca dimensionalitate cât și din punct de vedere al conținutului, cu arhivele multimedia. Totuși, chiar dacă în multumedia există deja un număr semnificativ de instrumente de procesare, iar problema este relativ bine definită, în cazul datelor de teledetecție lucrurile sunt ceva mai complicate, în special din cauza heterogenității crescute a conținutului, care este direct proporționala cu rezoluția.

Sistemele inteligente de prelucrare a informației de teledetecție încearcă să ofere răspunsuri la aceste probleme. Există abordări axate pe extragerea unui anumit strat informațional, centrate pe aplicație, cum ar fi spre exemplu analiza norilor in meteorologie, inventarierea pădurilor, analiza straturilor de gheață,etc. Deoarece astfel de metode sunt foarte specializate se încearcă formularea unor abordări mai generale, care să poată răspunde câtor mai multe cerințe. Evoluția tehnicilor de Data Mining (DM) din ultimii ani a condus la dezvoltarea unei familii de metode pentru extragerea automată a informației de conținut: identificare de structuri, trăsături spectrale, de textură, categorii semantice, etc.

Pentru că imaginile satelitare de obicei conțin mulți factori complecși, o rată de recunoaștere mare nu este ușor de obținut. În special pentru regiunele neomogene, valorile de gri ale imaginilor satelitare variază foarte mult si astfel valorile de gri folosite direct nu pot fi categorizate corect. Clasificarea tipurilor de acoperiri de teren și identificarea si recunoașterea obiectelor în imagini folosind teledetecția este considerată importantă atât pentru interesul public cât și pentru cercetare. Fară beneficiile satelițiilor, nu am putea analiza informațiile de distribuție a solului, a orașelor, nici variația norilor și a vulcanilor pentru prezicerea vremii, sau respectiv pentru prevenirea dezastrelor naturale. Un element important din orice sistem automat care încearca gruparea scenelor după continut îl constituie etapa de clasificare și învățare, în care sistemul trebuie să decidă, pe baza unui set de descriptori predefiniți, cărei clase i se atribuie cel mai bine o anumită regiune.Scopul nostru este să construim un sistem care sub asistarea noastră să poată analiza și clasifica automat informațiile de la imaginile satelitare. [4]

Image mining se ocupă cu extragerea de informații implicite, relații între date sau cu alte tipare care nu sunt explicit stocate în imagini și folosește noțiuni din computer vision, procesare de imagini, recunoaștere de imagini, procesare de date, metode de învățare, baze de date, etc. Pixeli din imagine sunt procesați efectiv si eficient pentru identificarea obiectelor spațiale și a relațiilor dintre acestea. Exploatarea imaginii tipică implică preprocesarea, extragerea de trasături, exploatarea (descoperirea modelelor importante din extragerea de trăsături) , evaluarea și interpretarea informațiilor obținute la final.

Recunoașterea de obiecte, metode de învățare, metodele de clasificare și clustering-ul sunt, de asemenea aplicate în image mining. Aceste principii generale, aplicate pentru exploatarea imaginii sunt folosite cu succes în teledetecție, nu doar în imaginile medicale sau multimedia.

Sistemul recepționează cererea clientului (de obicei selectarea vizuală de imagini sau regiuni) și caută prin baza de date predefinită, eventuale potriviri pe un set de trăsături, care au fost extrase anterior; sistemul selectează cele mai relevante date pe baza unei anumite reguli de decizie; utilizatorul poate interacționa într-o maniera iterativă , oferind exemple de antrenare sistemului; numărul de exemple este relative mic, iar sistemul oferă cele mai bune elemente care se potrivesc. [5]

Cap1. Metode de învățare

1.1 Introducere

Imaginile satelitare și în general imaginile în format digital sunt alcătuite din pixeli, cea mai mică entitate ce contribuie la formarea imaginii obiectelor. Pixelii, indiferent de valorile numerice asociate sunt „purtători" de informație geografică, deoarece, în imaginile geocorectate, centrul acestor pătrate sau dreptunghiuri are anumite coordonate, geografice sau rectangulare.

În practica procesării imaginilor, ultima etapă sau una dintre ultimele este extragerea informațiilor din imagini și pregătirea lor în vederea transferului către aplicații. Tehnic, aceste informații sunt grupări de pixeli sau clustere, iar algoritmii perfecționați se numesc clasificări de pixeli. Definiția acestora este centrată pe „gruparea automată a pixelilor ce alcătuiesc imaginea digitală sub forma de clase sau teme de acoperire a terenului"[6]. Acest concept de „acoperire a terenului" se referă la totalitatea formelor de utilizare a terenului, naturale și impuse de societate, ce apar în imagini prin pixeli și porțiuni de pixeli, prin tonuri sau nuanțe de culoare în funcție de signatura lor spectrală.

Prin clasificări, pixelii sunt grupați în clustere ce reflectă mai mult sau mai puțin realitatea terenului, în funcție de signatura spectrală, textură (diferențele de ton sau nuanță în raport cu pixelii învecinați) și momentul de timp al preluării imaginii (ce implică schimbări la nivel de fenologia vegetației, regim hidrologic, acoperire cu zăpadă, prezența unor construcții etc.).

Clasificările de pixeli sunt diferit abordate de la o aplicație la alta, în funcție de tipul de imagine, particularitățile terenului ce se reflectă în texturi mai fine (apele curate) sau mai grosiere (culturi pomicole sau viticole), scopul aplicației (în unele cazuri este necesară doar clasificarea unui număr limitat de elemente cum ar fi numai pădurile de molid) și resursele informatice (condiționează rularea în timp mai lung sau mai scurt a algoritmilor)[6].

Lucrările de specialitate din domeniu explică trei tipuri de clasificări de pixeli:

Clasificarea nesupervizată – presupune doar gruparea pe criterii de signatură spectrală a pixelilor în clustere, fără a se cunoaște semnificația lor în teren.

Clasificarea supervizată – se bazează pe date-eșantion create de analist pe baza informațiilor din teren sau alte surse, care sunt comparate cu datele spectrale din imagine în funcție de algoritmi și parametri.

Clasificarea hibridă – este o combinație între cele două pentru obținerea unor rezultate cât mai reale în raport cu terenul.

Rezultatele clasificărilor sunt imagini noi, în nuanțe sau tonuri de culori ce se pot vizualiza separat sub forma de hărți tematice sau se pot utiliza în alte analize.

1.2 Metode de clasificare

Prin clasificare se înțelege gruparea unor entități (observații, obiecte etc.) în clase (grupuri) de entități similare. Atunci când gruparea este efectuată manual, cel care o efectuează operează cu judecăți de similaritate, asemănare, apropiere. Acest tip de raționament este formalizat și în metodele automate.

1.2.1 Algoritmul K-means

Clustering este o formă de invățare nesupervizată, unde un set de date (de exemplu lungimea unor vectori normalizați in spațiu real) sunt grupate in subseturi. Clusterele sunt asemănătoare pe plan intern, dar diferite unele de altele. Datele dintr-un cluster trebuie să fie similare în funcție de informațiile cerute. Aceasta se face prin intermediul unor variabile statistice, stabilite în funcție de textura imaginii dar și de scopul aplicației.

În acest scop, se stabilesc automat în funcție de numărul de clase, pixelii centrali ai clusterelor, în jurul cărora se generează un spațiu multidimensional, în funcție de numărul de benzi spectrale la care se raportează clasificarea. Pe baza variabilelor ce se completează în câmpurile ferestrei aferente, se generează vectori în spațiul aminitit care exprimă distanțele medii ale fiecărui pixel în raport cu centrul unui cluster[7].

Algoritmul este rulat până ce toți pixelii au fost raportați prin vectori la clustere și au fost atribuiți uneia sau alteia dintre clasele spectrale. Clasificarea poate duce frecvent la insuficienta grupare a pixelilor, unii dintre aceștia fiind mențonați ca „neclasificați". Din acest motiv clasificarea se poate relua după modificarea unor variabile ca de pildă numărul de clase, numărul de pixeli dintr-o clasă, deviația standard a variației numărului digital din cuprinsul unei clase etc.

Algoritmul K-means are ca scop reducerea distanței (de obicei diastanța Euclidiană patratică) intre date și centroizii clusterelor pentru care sunt atribuite. Centroidul clasei este definit ca :

unde c reprezinta clusterul , și reprezintă vectorul de date. Clusterele sunt în mod ideal reprezentate de sfere care nu se suprapun, cu centroidul în centrul de greutate. Pentru k clustere, gradul de reprezentare al centroidului relativ la membrii clusterului este dat de suma reziduurilor pătratice(RSS):

Algoritmul incepe cu selectarea centrelor initiale clusterelor (de obicei intr-un mod aleatoriu). Apoi, centrele clusterelor sunt mutate in spațiu pentru a minimize Rss. Algoritmul este iterat pană când convergența este îndeplinită. Pentru ca algoritmul să conveargă, RSS trebuie sa fie monoton descrescătoare. Această condiție este îndeplinită ca urmare a faptului că, în toate iterații, vectori sunt atribuiți celui mai apropiat centru de greutate, astfel încât distanțele pătratice să scadă pentru fiecare cluster, iar suma lor , de asemenea va scădea. Când minimul local este atins algoritmul se oprește[7]. Numărul de clustere k trebuie știut de la începutul algoritmului. Alegerea lui k care oferă gruparea optimal poate fi facută prin minimizarea funcția obiectiv RSS:

Unde se referă la distorsiune și reprezintă complexitatea modelului. Cea mai simplă soluție prin stabilirea , ceea ce reduce problema găsirii numărului de clustere k, care minimizează RSS.

1.2.2 Învățare Bayesiană

Raționamentul Bayesian oferă o abordare probabilistică a deducției. Aceasta se bazează pe presupunerea că regiunile de intereses sunt guvernate de distribuții probabilistice si că deciziile optime pot fi facute impreună cu datele observate. Raționamentul Bayesian oferă baza pentru algoritmi de învățare care utilizează probabilitați, precum și un model de analiză pentru alți algoritmi ca nu utilizează explicit probablilitați[8].

Metodele invățării bayesiene sunt relevante pentru studiul machine learning din doua motive. În primul rând algoritmii care calculează implicit probabilitatile pentru ipoteze, ca de exemplu clasificatorul naïve Bayes, iar cel de-al doilea motiv este că aceste metode sunt pintre cele mai practice.

1.2.3 Support vector machine

Support vector machine ( SVM ) este un concept în statistică și în știința calculatoarelor pentru analiza datelor și recunoașterea modelor prin metode de învățare supervizate. SVM-ul standard este un clasificator liniar, binar, neprobabilistic. Acesta preia un set de date de intrare și le clasifică în doua posibile clase pe baza unui set de exemple. Un model SVM este o reprezentare de puncte în spațiu, separate în categorii cât mai diferite posibil.

Un SVM construiește un hiperplan sau un set de hiperplane într-un spațiu foarte mare sau infinit-dimensional, care poate fi folosit la clasificare. Idea algoritmului SVM este de a găsi un hiperplan care împarte optim setul de date de antrenament[8]. Hiperplanul optim se poate distinge prin marginea de separare maximă dintre toate punctele de antrenare și hiperplan. Pentru o problemă într-un spațiu bidimensional algoritmul caută după o dreaptă care separă „cel mai bine" punctele din clasa pozitivă de punctele din clasa negativă.

Punctele din spațiul finit dimensional nu sunt întotdeauna separabile. Din acest motiv s-a propus ca spațiul inițial să fie reprezentate într-un spațiu mult mai mare și astfel să se faca separarea datelor mult mai ușor[9].

SVM liniar

Se dă un set de date de antrenare D de forma:

unde indică cărei clase aparține . Fiecare este un vector real p dimensional. Scopul este găsirea unui hiperplan maxim care să împartă punctele care au =1 de punctele care au . Orice hiperplan poate fi scris ca un set de puncte care satisface relatia:

w∙x-b=0,

unde ∙ reprezintă produsul scalar, iar w-vectorul normal la hiperplan. Parametrul determină deplasarea hiperplanului față de origine de-a lungul vectorului normal w.

Dacă datele de antrenare sunt liniar separabile, putem selecta două hiperplanuri în ideea în care nu există alte puncte între ele. Regiunea delimitată de cele două hiperplanuri se numește “graniță” .Aceste hiperplanuri pot fi descrise de următoarele ecuații:

w∙x-b=1 și w∙x-b= -1,

Distanța dintre cele două hiperplanuri este , iar ||w|| trebuie minimizat[9].

Trebuie adăugate următoarele constrângeri pentru a preveni încadrarea datelor la graniță:

w∙ -b1 , pentru fiecare din prima clasă și

w∙ -b-1 , pentru fiecare din cea de-a doua clasă

Atunci:

(w∙ –b)≥1, pentru 1in

Pentru a optimiza problema trebuie să minimizăm ||w|| ,pentru fiecare i=1,….,n

Formă primară

Problema obtimizării prezentată anterior este dificil de rezolvat deoarece depinde de ||w||, norma vectorului w care implică aflarea rădacinii pătratice. Din fericire este posibil să se modifice ecuația prin înlocuirea ||w|| cu (factorul este folosit pentru comoditate mathematică) fără a schimbarea soluției (minimul ecuației originale și a ecuației modificare au același w și b). Aceasta este o problemă de optimizare pătratică.

Prin introducerea multiplicatorului Lagrange α , constrângerea anterioară poate fi exprimată ca:

Pentu cautarea punctului staționar toate punctele vor fi separate ca în condițiile în care trebuie să stabilim la zero. Această problemă poate fi rezolvată prin tehnici standard de programare pătratică. Condiția staționară  Karush–Kuhn–Tucker implică faptul ca soluția poate fi exprimată ca o combinație liniară a vectorilor de antrenare.

Doar câteva vor fi mai mari decât zero, în acest caz sunt exact vectorii suport, care se află la graniță și satisfac relația:(w∙ –b)=1. Dacă derivam această relație obținem[9]:

w∙ –b=1/=b= w∙-

care ne permite să definim b. În practică este mult mai robust să mediem toți cei vectorii de suport:

Forma duală

Regula de clasificare, în formă duală, arată că hiperplanu de granița este doar o funcție a vectorilor de suport (datele de antrenare de la graniță). Folosindu-ne de faptul că și substituind

SVM dual reduce următoarea problemă de optimizare:

Maximizând( în )

U nde:

≥0, pentru orice i=1,…,n

= reprezintă funcția kernel

, este o constrângere pentru minimizarea vectorului b

De unde rezultă:

Hiperplan cu prag sau fară prag

Din motive de simplitate, uneori este necesar ca hiperplanul sa treaca prin originea sistemului de axe de coordonate.Astfel de hiperplane se numesc fară prag. În general nu este necesar ca hiperplanul să treacă prin origine,astfel de hiperplane se numesc fară prag. Un hiperplan poate fi forțat să fie fară prag prin setarea condiției b=0 în problema de optimizare, iar în formă duala fară constrângerea de egalitate:

Clasificarea neliniară

Algoritmul original al hiperplanului optimal a fost propus de de către Vapnik în 1963. Acest algoritm este un clasificator liniar. Cu toate acestea, în 1992,  Bernhard E. Boser, Isabelle M. Guyon și Vladimir N. Vapnik propun o metodă de clasificare neliniară, prin aplicarea algoritmului  kernel trick. Algoritmul rezultat este similar cu algoritmul precedent, doar că fiecare punct este înlocuit cu o funcție kernel neliniară[8]. Acest lucru permite algoritmului să potrivească hiperplanul în spațiul de caracteristici.

Dacăfuncția kernel folosită este o funcție gausiană, atunci spațiul de trăsături este un spațiu Hilbert infinit dimensional

Funcțiile kernel pot fi:

Polinomiale (omegene):=

Polinomiale (neomogene):=

Funcții gausiene:=, pentru .

Funcții tangente hiperbolice:=, unde și .

Funcția kernel este legată de ecuația prin ecuația=. Valoarea vectorului w este de asemenea în spațiul trasformat, cu:

În general există o valoare w’ pentru care :

Proprietăți

SVM-ul face parte din familia de clasificatori liniari și poate fi interpretat ca o extensie a perceptonului. El poate fi considerat un caz special regularizării Tikhomov. SVM-ul prezintă o proprietate specială, aceea că minimizează eroarea de clasificare empirică și maximizează granița geometrică. Eficacitatea algoritmului SVM depinde de selecția funcției nucleului[9].

1.2.4 Algoritmul celor mai apropiați k vecini (k-nearest neighbors)

Algoritmul celor mai apropiați k vecini (k – nearest neighbors k-NN) este o tehnică predictivă potrivită pentru clasificarea modelelor. Tehnica k-NN presupune că întregul set de antrenare include atât datele cât și clasificările dorite pentru fiecare item. Ca urmare a aplicării tehnicii datele de antrenare devin modelul. K reprezintă numărul de cazuri similare sau numărul de articole din grup.

La apariția unui caz sau exemplu nou în model algoritmul verifică toate datele pentru a găsi un subset care este cel mai apropiat de cel nou și oferă acest subset ca și rezultat, plasându-1 în clasa care conține cei mai mulți itemi din acest set al celor mai apropiați k itemi[7].

Algoritmul k-NN are doi parametri principali:

numărul celor mai apropiate (similare) cazuri – k

o metrică pentru măsurarea similarității

La fiecare utilizare a algoritmului k-NN este necesar să se specifice o valoare întreagă pozitivă pentru k. Această valoare reprezintă numărul de cazuri existente care sunt analizate la precizarea unui nou caz.

Algoritmul k-NN decide în ce clasă să plaseze un nou caz prin examinarea unui număr k de cazuri (vecini) cu un grad mare de asemănare. Algoritmul calculează distanța de la noul caz (N) la fiecare caz din setul de antrenare (X, Y). Noul caz N este atribuit clasei căreia îi aparțin majoritatea cazurilor din cele k cazuri, considerate cele mai apropiate din setul de antrenare. Astfel, noul caz este asignat acelei clase căreia îi aparțin cele mai multe cazuri similare, respectiv clasei X, deoarece în interiorul elipsei sunt mai multe elemente X decât elemente Y[10].

Cercul verde trebuie clasificat fie la clasa de pătratele albastre,fie la clasa de triunghiuri roșii. Dăcă k=3, algoritmul îl va clasifica la clasa cu triunghiuri, deoarece sunt 2 triunghiuri și doar un pătrat în interiorul cercului. Dacă k=5, algoritmul îl va clasifica la clasa cu pătrate (3 pătrate vs. 2 triunghiuri în interiorul cercului).

Algoritmul k-NN este bazat pe conceptul de distanță iar aceasta necesită o metrică pentru determinarea distanțelor. Presupunând că avem n vectori de caracteristici x1,x2…..xn și că aceștia fac parte din grupări compacte, cu c<n. Fie mi media vectorilor din gruparea i. Dacă grupările sunt bine separate putem utiliza un clasificator de distanță minimă pentru a le separa. Adică putem spune că x este în gruparea i dacă distanța ||x- mi|| este minimul dintre toate cele k distante.

Pentru atributele continue putem folosi distanța Euclidiană iar pentru variabilele de tip enumerat trebuie să găsim un mod potrivit pentru calcularea distanțelor dintre atributele din setul de date. Alegerea unei metrici potrivite este o problemă dificilă deoarece diferite metrici folosite pe același set de antrenare pot da rezultate complet diferite. Aceasta înseamnă că avem nevoie de un expert în domeniu care să ajute la alegerea unei metrici potrivite.

Avantaje și dezavantaje ale algoritmului k-NN

Algoritmul k-NN este un model vast, deoarece folosește întregul set de antrenare ca și model. Numărul de clase este dat, în general, ca și variabilă de intrare, ceea ce, în anumite probleme, nu este întotdeauna ușor de presupus. Timpul de calcul a algoritmului k-NN este de ordinul factorialului numărului total de puncte, deoarece se realizează recalcularea pentru fiecare caz nou.

Măsurile de similaritate bazate pe distanțe nu pot să facă față unor date de dimensiune mare deoarece noțiunea de vecini devine fără sens. In astfel de cazuri se folosește o metodă mai sofisticată (de exemplu, SOM-self organizing map).

Un alt dezavantaj îl reprezintă tratarea unor inexactități în date și a suprapunerii grupărilor, cu alte cuvinte de a decide de care grupă aparțin datele care sunt în regiunea frontierelor. în astfel de cazuri se folosește o abordare fuzzy. O tehnică fuzzy k-NN este de fapt o tehnică k-NN în care tehnica de măsurare este fuzzy[11].

1.3 Metode nesupervizate

În învățarea supervizată, scopul este de a învăța o reprezentare a datelor de la intrare către datele de la iesire, unde valorile corecte sunt furnizate de către un supervizor. În învațarea nesupervizată, nu există un supervizor și avem doar datele de la intrare. Scopul este de a găsi regularități în datele de la intrare. Există o structură a spațiului de la intrare, în care anumite date apar des decât altele. În statistică, aceasta se numeste estimarea densității.

O metodă pentru estimarea densității este clustering-ul unde scopul este de a găsi clustere sau grupări ale datelor de la intrare.

O aplicare interesantă a clustering-ului este compresia imaginilor.În acest caz, datele de intrare sunt pixeli imaginilor reprezentați ca valori RGB. Un program de clustering formează grupuri de pixelii, având culori asemănătoare și aceste grupuri corespund culorilor ce apar frecvent în imagine. Imaginea este cuantizată atunci când un grup de culori asemănătoare este reprentată pintr-o singură culoare ( de exemplu media tuturor culorilor). Dacă un pixel dintr-o imagine are 24 de biți și reprezintă 16 milioane de culori, atunci în cazul în care există numai 64 de nuanțe de culori principale este necesar doar 6 biți pentru fiecare pixel[7].

Figura 1. Schemă bloc. Clasificare Nesupervizată

1.4 Metode supervizate

Posibilitatea grupării pixelilor în mod dirijat, în raport cu semnificația lor reală este oferită de clasificarea supervizată. Aceasta reprezintă un ansamblu de algoritmi matematici și statistici, rulați în mediu digital care se bazează pe urmărirea fiecărui pixel în fiecare bandă spectrală a unei scene sau subscene satelitare, la nivel de număr digital și raportarea lui la un set de date-eșantion creat de analist.

Clasificarea se bazează în acest caz pe diferența cât mai mare de signatură spectrală de la un pixel la altul. Având în vedere faptul că datele-eșantion sunt elementul-cheie și mai ales importanța documentării în teren și în diverse alte surse, considerăm acest tip de clasificare drept „cea mai geografică". Clasificarea supervizată prezintă trei etape:

Etapa pregătitoare, în care analistul identifică zone eșantion pe care le delimitează și le asociază cu valori numerice.

Etapa clasificării propriu-zise în care fiecare pixel din imagine este distribuit într-o clasă de acoperire a terenului (land-cover) în funcție de zonele- eșantion prestabilite (pixelii care nu își găsesc asemănare se raportează ca necunoscuți).

Etapa finală, în care noua imagine rezultată prin clasificare este procesată la nivel cromatic, exploatată statistic, folosită în cartografiere sau integrată ca un layer distinct în aplicație.

Etapa pregătitoare este de cea mai mare importanță, în acest context. Rezultatul clasificării propriu-zise se bazează pe exactitatea delimitării zonelor-eșantion[6].

Zonele-eșantion denumite în literatură și „zone de interes" sunt grupări de pixeli, de diferite forme și mărimi, omogene sub raportul semnificației geografice (ex. pădure, pajiște, teren construit, teren arabil, apă etc.). Pixelii cuprinși în acestea nu au aproape niciodată același număr digital, dar au valori apropiate, caracterizate de o serie de parametri ca valori extreme, medii, deviație standard etc.

Crearea acestor zone-eșantion este realizată manual, similar vectorizării, în jurul unui grup de pixeli considerat ca fiind reprezentativ. În literatură se recomandă ca numărul minim de pixeli să fie egal cu numărul de benzi al scenei satelitare plus 1, însă practica recomandă numere de 10 sau 100 de ori mai mari decât numărul de benzi pentru ca eșantionul să fie statistic reprezentativ la nivel de covarianță[12]. Clasificarea devine mai performantă dacă pixelii aleși sunt mai numeroși și mai reprezentativi sub raport spectral și informațional. Se impune o cât mai bună distribuire spațială la nivelul imaginii, astfel încât să fie surprinse diferențele cele mai mici la nivelul aceleiași clase din imagine.

Alegerea zonelor-eșantion ține seama de faptul că pixelii care reprezintă același element de mediu nu au valori spectrale identice. Ei alcătuiesc nori de puncte, similare clusterelor de stele de pe bolta cerească. Tendința este de grupare, dar definirea zonelor-eșantion poate duce la erori în clasificare, dacă nu sunt precizate corect variabilele la nivel de grup de pixeli. Un exemplu este pădurea de pe versanții dealurilor sau munților care deși identică ea apare diferit ca signatură spectrală datorită umbririi. In aceste cazuri se impun fie alegerea unor combinații de benzi optime, în care efectul umbririi să fie diminuat (exemplu cele în infraroșu), fie realizarea unor corecții[6].

Etapa clasificării propriu-zise necesită în primul rând alegerea de către analist a algoritmului potrivit. De acesta depind și calitatea rezultatului clasificării. Și în acest caz scopul este clasificare tuturor pixelilor cu erori cât mai mici în raport cu realitatea terenului. Derularea algoritmilor necesită crearea zonelor- eșantion

Îmbunătățirea clasificării

Rezultatele clasificărilor supervizate se constituie în seturi de date raster cu o mare aplicabilitate practică. Pe de o parte clasificarea se poate transform în hartă tematică, ca de pildă harta utilizării terenului sau harta vegetației. Frecvent, date din clasificări sunt vizualizate împreună cu alte date, ca de pildă limitele pădurilor și mase de alunecări de teren, într-o conexiune logică. Alte date se pot introduce în producerea de noi date raster cum ar fi integrarea utilizării terenului în hărțile de hazard geomorfologic[6].

Calitatea rezultatelor crește dacă a fost selectată combinația optimă pentru generarea zonelor-eșantion și dacă analistul a sesizat corect varianța spectrală a pixelilor ce reprezintă aceeași entitate, delimitând clase în mod adecvat.

Decorelarea benzilor spectrale se impune atunci când diferențierea spectrală a claselor este dificilă. Se aplică ori strech de decorelare, dar cel mai util este generarea componentelor principale și utilizarea primelor trei (imagine RGB pe care sunt trasate zonele-eșantion).Expresia cantitativă a calității rezultatelor este dată de matricea de divergență. Ea arată de fapt datele de covarianță rezultate din corelarea celor două benzi, exprimând diferența statistică dintre setul de date-eșantion și rezultatul clasificării.

Figura 1. Schemă bloc. Clasificare Supervizată

Matricea de erori sau de contingență exprimă nivelul de performanță atins de analist în clasificarea imaginii. Rezultatul este un tablel în care se arată cum s-au clasificat procentual pixelii în raport de cei de referință. Matricea exprimă mai ales incertitudinea clasificării unor pixeli și atenționează analistul în a reveni asupra algoritmului și alegerii zonelor de interes. Matricea rezultă din compararea rezultatului clasificării cu o „imagine" a realității terenului, ce poate fi o hartă în format grid sau altă imagine rezultată din clasificarea unui alt set de date de teledetecție. Uneori se apelează la zonele- eșantion, dar rezultatul nu reflectă în totalitate, procentul de clasificare corectă, pentru că ele au fost create de pe aceași imagine.

În practică, cea mai simplă posibilitate este compararea imaginii inițiale cu rezultatul clasificării, ceea ce necesită un efort de interpretare vizuală. Ea se realizează pe porțiuni limitate de imagine[6]

Cap. 2 Învățare supervizată pentru înțelegerea imaginilor satelitare de înaltă rezoluție

2.1.Modelul de formare al imaginilor satelitare

Imaginile satelitare sunt fotografii ale Pământului sau ale altor planete realizate prin intermediul satelițiilor artificiali. Primele imagini din spațiu au fost fotografiate prin efectuarea unor zboruri suborbitale. Statele Unite ale Americii a lansat avionul V-2 pe data de 24 octombrie 1946 cu scopul de a capta imagini la fiecare 1.5 secunde. Aceste fotografii erau realizate la 105 km, de 5 ori mai înalte decât recordul anterior (22 km) . Prima fotografie satelitară (orbitală) a Pământului a fost facută pe 14 august 1959 de către US Explorer 6.

Imaginile satelitare sunt utile în meteorologie, agricultură, geologie, silvicultură, peisagistică, agricultură, conservarea biodiversității, planificare regională și război. Imaginile pot fi în spectrul vizibil sau în alte spectre electromagnetice. Interpretarea și analiza imaginilor satelitare este realizată de către aplicații în teledetecție. Imaginile satelitare sunt utilizate, de asemenea în seismologie și oceanografie pentru detecția de terenuri noi formate și pentru măsurarea adâncimilor de apă.

Bazele de imagini satelitare sunt uriașe deoarece suprafața totală a Pământului este foarte mare și rezoluția este relativ ridicată. În funcție de senzorul utilizat, condițiile meteorologice pot afecta calitatea imaginii: de exemplu, este dificil de a obține imagini pentru zonele frecvent acoperite cu nori, cum ar fi vârfurile de munte[13].

2.2 Teledetecția

Teledetectia este stiința (și într-o oarecare măsură, arta) de a achiziționa informații despre suprafața Pământului, fără a fi de fapt în contact direct cu aceasta. Acest lucru este realizat prin detecția, înregistrarea energiei reflectate sau emise de catre zona de interes și prin procesarea, analiza, aplicarea acestor informații. Mai mult, teledetecția presupune o interacțiune intre radiația incidentă si zona de interes. Acest lucru este exemplificat prin utilizarea sistemelor de formare a imaginii, unde următoarele șapte elemente sunt implicate[14]:

1.Sursa de energie sau de iluminare (A)-prima condiție pentru teledetecție este de a avea o sursa de energie, care iluminează sau furnizează energie electromagnetică zonei de interes.

2.Radiația si atmosfera(B)-energia circula de la sursa spre zona de interes intrând în contact cu atmosfera prin care trece. Această interacțiune durează atât timp cât energia circulă de la zona de interes până la senzor.

3.Interacțiunea cu zona de interes(C)-o data ce energia își face drum către țintă, prin atmosferă, aceasta interacționează cu zona de interes în funcție de proprietățile atât ale țintei cât și ale radiației.

4.Înregistrarea energie de senzor(D)-după ce energia a fost reflectată sau emisa de către țintă, aceasta este recepționată de către un senzor, care înregistrează radiația electromagnetică.

5. Transmisie, receptie, și procesare (E) –energia înregistrată de senzor va fi transmis către o stație de procesare in formă electromagnetică, unde datele sunt prelucrate într-o imagine

6.Analiza și interpretarea(F)- imaginea este interpretată, vizual și/sau digital, pentru a extrage informații despre zona de interes.

7.Aplicația(G)-elementul final al procesului de teledetecție este atins atunci când informațiile, extrase din imaginea zonei de interes, se aplică pentru rezolvarea unei probleme anume sau pentru aflarea unor informații noi despre zona de interes.

Aceste șapte elemente cuprind procesul de teledetecție de la început până la sfârșit. Totuși, teledecția implică, de asemenea ,detectarea energiei emise si utilizarea de senzori non-imagistici[14].

2.2.1 Radiația electromagnetică

Prima cerință pentru teledetecție este de a avea o sursă de energie pentru a ilumina zona de interes (cu excepția cazului in care energia este emisă de catre zona de interes). Această energie este sub formă de radiații electromagnetice.

Toate radiațiile electromagnetice au proprietății fundamentale și se comport în moduri previzibile în conformitate cu elementele de baza din teoriei undelor. Radiația electromagnetic constă într-un camp electric (E), care variază în amplitudine pe direcție perpendiculară direcției de înaintare a radiației, si un câmp magnetic (M) orientat la 900 grade față de câmpul electric. Ambele câmpuri călatoresc cu viteza luminii (c).

Doua caracteristici ale radiației electromagnetice sunt deosebit de importante pentru înțelegerea teledetecție.Acestea sunt lungimea de undă și frecvența.

Lungimea de undă este un parametru de bază al oricărui fenomen ondulatoriu (undă) care se propagă în spațiu și anume reprezintă distanța parcursă de undă pe durata unei oscilații, ori distanța dintre două puncte din spațiu între care defazajul relativ al oscilațiilor este de 2π radiani.

Lungimea de undă este legată de viteza de propagare a undei respective și de frecvența ei prin relația:

unde simbolurile reprezintă: λ = lungimea de undă, v = viteza de propagare a undei în mediul respectiv,f = frecvența undei, inversa perioadei temporale, T = perioada undei.

În cazul luminii viteza se notează de obicei cu litera c și este 299.792.458 m/s în vid (valoare exactă, prin definiția metrului) și doar puțin mai mică în aer. În cazul undelor sonore propagate în aer viteza este de aproximativ 343 m/s la temperatura de 20°C.

Lungimea de undă are un sens bine definit numai în cazul unei unde monocromatice, adică de o singură frecvență și ale cărei oscilații se repetă la infinit. În acest caz idealizat, lungimea de undă este cea mai mică mărime λ care îndeplinește relația:

unde u este parametrul oscilant al undei (de exemplu intensitatea cîmpului electric în cazul unei unde electromagnetice, presiunea instantanee locală a mediului în cazul undelor sonore, etc.), x este poziția de-a lungul direcției de propagare a undei, iar k este un număr întreg. Trebuie precizat că formula anterioară este riguros exactă numai în cazul undelor plane care se propagă într-un mediu omogen.

În timp ce lungimea de undă depinde de mediul în care se propagă unda, frecvența undei este constantă, cel puțin în cazul în care sursa, receptorul și mediul de propagare sînt în repaus relativ. De aceea, în precizarea parametrilor undei se preferă adesea frecvența acesteia. Dacă totuși o undă este descrisă prin lungimea de undă a oscilațiilor sale, trebuie precizat sau convenit mediul de propagare. De exemplu, în cazul luminii, există convenția de a considera că toate lungimile de undă se referă la propagarea în vid[15].

Frecvența este măsura numărului de repetări ale unui fenomen periodic în unitatea de timp. În Sistemul Internațional unitatea pentru frecvență este numită hertz și este simbolizată prin Hz.O frecvență de 1 Hz corespunde unei perioade de repetare de o secundă. Dacă știm că un anumit fenomen se repetă la un interval de timp T, putem calcula frecvența lui prin simpla inversie matematică: f=1/T.

Prin urmare, cele doua caracteristici strâns legate una de cealaltă.Cu cât lungimea de undă este mai lungă cu atât frecvența este mai joasă[16]

2.2.2 Spectrul Electromagnetic

Spectrul electromagnetic variază de la lungimi de unda mai scurte (inclusiv gama si raze X) pana la lungimi de unda lungi (microunde si unde radio). Sunt mai multe regiuni ale spectrului electromagnetic, care sunt utile pentru teledetecție.

Razele ultraviolete numite și raze UV sunt radiații electromagnetice cu o lungime de undă mai mică decât radiațiațiile luminii percepute de ochiul omenesc. Razele Röntgen (= radiația X) au o lungime de undă și mai mică. Denumirea de „ultraviolet” provine de la culoarea violet din spectrul luminii albe, care are o lungime de undă învecinată, doar ceva mai mare. Lumina naturală de la Soare conține printre altele și raze ultraviolete.

Lumina, pe care ochii nostri o pot detecta, face parte din spectrul vizibil. Este important de sesizat cât de mică este porțiunea spectrului vizibil față de restul spectrului. Există o mulțime de radiații în jurul nostru care sunt invizibile pentru ochiul nostru, dar acestea pot fi detectate de echipamente și folosite în avantajul nostru.

Lungimea spectrului vizibil acoperă o gama de la 0.4μm pana la 0.7μm.Cea mai lungă lungime de undă vizibilă este culoarea roșu, iar cea mai scurtă este culoarea violet. Lungimi de undă specifice culorilor ce le percem sunt enumerate după cum urmează[14]:

-Violet: 0.4 – 0.446 μm

-Albastru: 0.446 – 0.500 μm

-Verde: 0.500 – 0.578 μm

-Galben: 0.578 – 0.592 μm

-Portocaliu: 0.592 – 0.620 μm

-Roșu: 0.620 – 0.7 μm

Albastru,Verde și roșu sunt culori primare. Aceste culori sunt alese în așa fel încât o singură culoare primară nu poate fi formată din celelalte doua, dar toate celelalte culori pot fi formate prin combinarea culorilor roșu,verde și albastru. Deși noi vedem lumina soarelui ca o culoare uniform sau omegenă, aceasta de fapt este compusă din diferite lungimi de undă. Partea vizibilă a acestei radiații poate fi vizualizată la trecerea luminii solare pintr-o prismă

Următoarea porțiune de interes din spectrul electromagnetic este radiația în infraroșu(IR) care acoperă un interval de lungimi de undă cuprins între 0.7 μm și 100 μm- de 100 de ori mai larg decât porțiunea vizibilă a spectrului. Radiația în infraroșu poate fi împărțită în două categorii pe baza proprietațiilor radiației:IR reflectat și IR emis (IR termice). Radiațiile în zona IR reflectat sunt folosite în moduri asemănatoare radiațiilor în spectrul vizibil. Radiațiile IR reflectate sunt cuprinse aproximativ între 0.7 μm și 3.0 μm.

Regiunea de radiații IR termice este destul de diferită față de spectrul vizibil și porțiunea de IR reflectat. Această energie este emisă de către suprafața pământului sub formă de caldură. Regiunea radiațiilor IR termice este cuprinsă intre 3.0 μm to 100 μm.

Microundele reprezintă porțiunea cuprinsă între 1mm și 1m din spectrul electromagnetic și prezintă un deosebit interes în teledetecție. Acestea acoperă cele mai mari lungimi de undă folosite în teledetecție. Lungimile de undă mai mici prezintă proprietăți similare undelor IR termice, în timp ce lungimile de undă mari se aproprie de undele radio[14].

2.2.3 Comportamentul spectral al vegetației, solului și apelor.

Diferențierea răspunsului spectral al obiectelor și fenomenelor a impus adaptarea aplicațiilor specifice teledetecției de la sistemele de senzori la algoritmii de analiză și reprezentare grafică și cartografică. Imaginile de teledetecție prezintă atât forma obiectelor dar prin rezoluția lor spectrală aduc informații ascunse, codificate în structura obiectului cu anumite proprietăți fizice și chimice. Fiecare atom sau moleculă are un anumit comportament spectral. Astfel, cele trei elemente de bază ale peisajului pot fi caracterizate din acest punct de vedere.

Vegetația conține clorofila, substanță pe care se sprijină comportamenul ei spectral. Clorofila absoarbe albastrul și roșul în vizibil dar tot aici reflectă verdele, în cazul in care plantele nu sunt afectate de poluare. În cazul degradării acesteia, răspunsul ei spectral se schimbă deoarece este reflectat roșul care în amestec cu verdele produce culoarea galbenă. În infraroșul apropiat și mijlociu, în intervalul 0,7-1,3 μm, răspunsul spectral al vegetației este mai nuanțat, astfel încât plantele, arborii pot fi diferențiate ca genuri și câteodată, la rezoluții spectrale mai mari, ca specii[6].

Detecția vegetației devine ineficientă dincolo de 1,3 μm, ca efect al absorbției radiațiilor de către gazele și vaporii atmosferici. Umiditatea conținută de vegetație face însă posibilă înregistrarea radiațiilor reflectate în ferestrele 1,4 , 1,9 și 2,7 μm cu un optim la 1,6 μm. Eficiența procesului depinde de grosimea frunzelor, de volumul de clorofilă stocat între epidermele acestora.

Solul sau scoarța de alterare are reflectața condiționată de textură, de procentul de argilă, praf, nisip, de rugozitatea suprafeței și de conținutul în oxizi de fier și substanță organică. Umiditatea mare imprimă de asemenea o reflectanța scăzută. Nisipul și solul nisipos reflectă mult lumina în zona vizibilului, însă solul argilos și scoarța de alterare au o reflectanță mare în infraroșu, între 1,4 și 2,2 μm. Solul organic, turba răspund mai mult în infraroșu[6].

Apa are un comportament nuanțat, în funcție de calitățile ei fizice și chimice, de conținutul ei. În zona vizibilului, apa cu aluviuni are o mare reflectanță, în special în zona albastrului, unde lumina poate penetra mediul acvatic și se pot obține informații despre colmatarea unor lacuri, transportul solid al râurilor ori sedimenele de pe șelfurile continentale. În infraroșu, apa absoarbe radiațiile, însa atunci când conține alge, clorofilă în general, are reflectanță relativ mare. Avantajele analizei multispectrale ating inclusiv apa cu poluanți, ce se poate interpreta în infraroșu dar mai ales în cel termal, ca efect al modificării temperaturii acesteia. Interpretarea pH-ului sau al salinității sunt mai dificil de vizualizat (numai prin spectrometrie de teren și în laborator.

Fiecare obiect și fenomen din teren are o personalitate a răspunsului spectral caracteristic. Aceasta definește signatura spectrală ce diferă de la un obiect la altul, chiar dacă imaginea percepută de ochiul uman are aceași culoare[6]. De exemplu, răspunsul coroanei merilor în luna iunie este identic la prima vedere cu al prunului însă diferențierea se face mai mult în infraroșu, deci în afara spectrului vizibil.

Signatura spectrala variază în dependență strânsă cu sezonul de vegetație (cazul foioaselor care au frunze doar câteva luni pe an), de momentul fotografierii la elementele antropice (culturi de camp, clădiri în construcție), de localizarea în teren a obiectului și data/ora înregistrării imaginii (azimutul și elevația Soarelui).

Obiectele cu cel mai puternic răspuns spectral apar pe imagini, de regulă, strălucitor. Acest element este legat de radianța specifică, influențată de condițiile atmosferice, altitudinea de la care se realizează înregistrarea (de care depinde difuzia și reducerea energiei radiației incidente) și de poziția Soarelui în raport cu obiectul detectat.

2.2.4 Clasificarea platformelor de teledetecție

Platformele de teledetecție se împart în: platforme terestre, aeriene și satelitare.

Platformele terestre de teledetecție sunt vehicule capabile să ridice senzorul de teledetecție (interferometru, spectrometru. radiometru) la altitudini de până la 50 m pentru a permite măsurarea semnăturilor spectrale ale solului, covorului vegetal, suprafețelor de apă. etc. Datele culese din teren sunt preluate concomitent cu înregistrările aeriene sau satelitare și sunt utilizate pentru calculul reflectanței spectrale al elementelor din spațiul obiect, facilitând procesul de interpretare a imaginii. Platformele terestre de preluare au cunoscut o dezvoltare semnificativă în ultima perioadă a anilor '80. o dată cu apariția sistemelor integrate de cartografiere instalate pe furgonete. Aceste sisteme sunt alcătuite din senzori de poziționare, sisteme laser scaner și senzori de preluare a imaginilor, în vederea realizării modelului tridimensional urban.

La bordul platformelor aeriene poate fi instalat un sistem complet digital, alcătuit dintr-un senzor de preluare și echipamente auxiliare, care permit arhivarea temporară a colecțiilor de date. Senzorii de preluare pot fi pancromatici, multi-spectrali. hiper-spectrali, radar sau LIDAR. Platformele aeropurtate ating o altitudine maximă de 50 km și sunt reprezentate de: baloane libere sau motorizate, elicoptere, avioane de joasă, medie sau mare altitudine, rachete de sondaj. Un alt tip de platformă capabilă să atingă și să mențină altitudinea de zbor necesară senzorului de preluare este reprezentat de sistemele aeropurtate de supraveghere și recunoaștere fără pilot la bord (HALE UAV) [18] .

Platformele satelitare de preluare sunt alcătuite din mai multe subsisteme, fiecare dintre acestea având un rol bine determinat: un subsistem structural, un subsistem de determinare și control al atitudinii, un subsistem energetic, un subsistem termic, un subsistem de comunicație, un sistem de senzori de teledetecție. Toate sistemele modeme de preluare, la nivel satelitar, aeropurtat sau terestru, sunt echipate cu sisteme IMU și GNSS, care oferă parametrii necesari realizării operației de orientare exterioară a imaginilor.

2.2.5 Platforme de teledetecție operaționale

Înainte de era spațială (datată convențional in anul 1957), omenirea nu reușise niciodată să observe o emisferă întreagă într-o singură imagine. Mai mult decât atât, nu avusese niciodată o vedere sinoptică a planetei pe care trăia. Acest fapt a fost schimbat o dată cu lansarea pe orbită a primei nave spațiale, iar omenirea a putut vedea planeta noastră așa cum nu se mai întâmplase niciodată până atunci. în decursul a mai mult de cinci decenii de zbor spațial, planeta Pământ a fost redescoperită prin culegerea sistematică și analiza unui volum imens de informații[6].

Anterior lansării platformelor satelitare, teledetecția purta denumirea de fotogrammetrie aeriană, iar preluarea imaginilor se realiza numai cu camere fotografice. La câțiva ani de la inventarea fotografiei (Daguerre, 1839), fotograful francez Gaspard Felix Toiuiiaclion (alias Nadar) a preluat prima fotogramă aeriană (23 octombrie 1858) dintr-un balon aflat deasupra Parisului, la o altitudine de aproximativ 80 m. Acest moment este considerat începutul fotogrammetriei aeriene.

Momentul de început al teledetecției este considerat lansarea satelitului Sputnik de către fosta Uniune Sovietică, la data de 4 octombrie 1957, de la baza Baikonur. Sputnik-1 efectua măsurători care permiteau o primă evaluare a densității straturilor superioare ale atmosferei[18].

O etapă deosebit de importantă în dezvoltarea teledetecției a fost reprezentată de realizarea primului sistem satelitar prevăzut cu senzori de baleiaj pentru preluarea imaginilor în format digital, destinat atât aplicațiilor civile, cât și militare, fiind lansat de către SUA în anul 1972 platforma Landsat 1 este primul satelit dedicat aplicațiilor cartografice și monitorizării resurselor naturale, fiind echipat cu senzor MSS (Multi-Spectral Scanner) de baleiaj, cu oglinda de rotație. Următorul pas important în evoluția sistemelor de teledetecție a fost reprezentat de seria platformelor comerciale de foarte mare rezoluție spațială, care a debutat cu lansarea satelitului IKONOS 2 de către SUA, în 1999 [6].

Sistemele de teledetecție prevăzute cu senzori activi au fost dezvoltate in principal pentru cartografierea zonelor acoperite cu gheață sau zăpadă și a oceanelor, regiuni în care acoperirea sistematică cu nori împiedică înregistrarea de date cu senzori pasivi sau reflectivi. Utilizarea undelor radio pentru detectarea prezenței obiectelor metalice situate la o anumită distanță a fost realizată pentru prima oară de către Christian Htilsmeyer care a folosit această tehnică pentru identificarea navelor în condiții de ceață densă, fară a calcula însă distanța până la aceste obiecte. înainte de cel de Al Doilea Război Mondial, au fost efectuate cercetări în acest domeniu de către americani, germani, francezi și britanici, însă cel care a propus termenul "radar" (Radio Detection and Ranging) și a realizat primul aparat a fost englezul Robert Watson- Watt, în anul 1935. Tehnologia radar a fost ținută secret până în anul 1946. După acest moment, radarul începe să fie utilizat și în alte tipuri de aplicații, cum ar fi controlul traficului aerian, monitorizarea condițiilor meteorologice și controlul vitezei vehiculelor[6].

O nouă generație de sisteme de preluare este reprezentată de senzorii hiper-spectrali, care au capacitatea de a prelua imagini cu ajutorul unui număr mare de benzi spectrale, între 100 și 200 pentru un senzor, în domenii spectrale foarte înguste, cu ordinul de mărime de aproximativ μ . Astfel este posibil studiul detaliat al elementelor și fenomenelor din spațiul obiect. într-un spectru aproape continuu . În ultima perioadă, au fost lansate misiuni satelitare bazate pe constelații de micro-sateliți, care necesită costuri reduse.

2.2.6 Senzori

Senzorii de preluare pasivi înregistrează radiația solară reflectata de spațiul obiect și/sau radiația emisă de către acesta. Din punct de vedere al senzorilor de preluare a înregistrărilor, sistemele de teledetecție se pot clasifica în]: senzori de teledetecție cu formare de imagine (camera aero-fotogrammetrică, sisteme de baleiaj aeropurtate sau satelitare, optico-mecanice sau opto-electronice; aceste sisteme pot produce: imagini cu geometrie constantă sau imagini cu geometrie dinamică) și fără formare de imagine (spectrometre, radiometre, interferometre – utilizate mai ales în lucrările de teren pentru înregistrarea semnaturilor spectrale) [18].

Sistemele optice de baleiaj cu formare de imagine produc în mod secvențial o imagine analogică sau digitală, cu geometrie dinamică. Baleiajul se poate efectua în spațiul obiect sau in spațiul imagine de către un sistem optico-mecanic sau opto-electronic. Sistemele opto-electronice sunt alcătuite din senzori de imagine bazați pe dispozitive cuplate prin sarcină DCS sau dispozitive cu transfer de sarcină DTS. Senzorii de preluare sunt formați din elemente fotosensibile individuale denumite detectori, dispuse într-un format liniar sau bidimensional. în prezent, toate camerele digitale aeriene sau satelitare folosesc senzori de tip DCS.În cazul senzorilor de foarte mare rezoluție spațială, cu integrare și întârziere a timpului de interogare a detectorilor, intervalul de citire a răspunsului unui detector este foarte scurt raportat la viteza de deplasare a platformei. Pentru creșterea calității imaginii sunt utilizați acești senzori care permit o orientare flexibilă a direcției de preluare, fiind prevăzuți cu un anumit timp de integrare și întârziere a interogării detectorilor[6].

Senzorii aflați la bordul platformei SPOT 5, lansată în 2002, sunt: HRG (Higli Resolution Geometric), Vegetation 2 și HRS (Higli Resolution Stereoscopic). O caracteristică importantă a platformelor SPOT 1-5 este aceea că oferă posibilitatea înclinării senzorilor de preluare cu +/- 27° față de verticală. Aceasta permite diminuarea rezoluției temporale, de la 26 de zile la 4-5 zile pentru regiunile aflate în zona temperată. Preluarea imaginilor pe direcții laterale permite realizarea unor acoperiri stereoscopice. Platforma SPOT 5 păstrează caracteristicile tehnice ale sateliților precedenți din serie: orbită circulară, cvasi-polară și helio-sincronă[18].

Cei doi senzori HRG ai platformei SPOT 5 prezintă un unghi de câmp de 4°, care acoperă la sol o bandă cu lățimea de 60 km. Acești senzori preiau imagini în benzile spectrale. Fiecare dintre cei doi senzori HRG (rezoluție spațiala 10 m multi-spectral, 5 m pancromatic) pot funcționa independent sau simultan în modurile enumerate mai sus. Atunci când este utilizată tehnica Supennode, rezoluția spațială a imaginilor devine 2,5 m. Tehnica Supemode implică prelucrarea și interpolarea specială a imaginilor preluate cu rezoluția spațială de 5 m, prin eșantionare pe direcția de deplasare pe orbită. Rezultatul este reprezentat de o imagine cu rezoluția spațiala de 2,5 m. Teoretic, informația conținută de aceasta imagine corespunde conținutului unei imagini cu dimensiunea fizică a pixelului de 3 m.

Senzorul HRS al platformei SPOT 5 este destinat preluării imaginilor stereoscopice de-a lungul orbitei de deplasare, pe baza cărora pot fi generate modele digitale altimetrice ale terenului. Preluarea celor două imagini stereoscopice se realizează astfel: senzorul orientat înainte la 20° față de verticală preia prima imagine a stereo-cuplului, iar după 90 secunde senzorul orientat înapoi la 20° față de verticală înregistrează cea de a doua imagine. La rândul său, HRS este alcătuit din doi senzori liniari de tip DCS, compuși din 12000 de detectori fiecare[6]. Dimensiunea unui pixel imagine in teren este de 5 m pe direcția de deplasare a satelitului pe orbită și 10 m perpendicular pe orbită (stereo-modelul rezultat acoperă 120 km x 60 km), domeniul pancromatic. Unghiul de incidență este de 22,5°, iar raportul bază înălțime are valoarea optimă pentru generarea modelelor digitale altimetrice ale terenului, respectiv 1,2. Un interval de preluare cu o valoare atât de mică reprezintă iui avantaj important al acestui senzor, fiind o fiind o garanție a faptului că imaginile sunt preluate in aceleași condiții de iluminare.

Modelul digital al terenului generat pe baza imaginilor stereoscopice preluate de senzorul HRS este numit SPOT 3D. Modelul este reprezentat printr-o grilă de puncte uniform distribuite, pasul acestei grile fiind de o secundă de arc (aproximativ 30 m la ecuator, variabilă în funcție de latitudine). Teoretic, precizia planimetrică absolută a modelului SPOT 3D este aproximativ ± 15 m, în timp ce precizia altimetrică absolută este situată în intervalul ± 10 m – 30 m, în funcție de panta terenului[18].

Senzorii de preluare activi sunt dotați cu surse proprii de energie. Radarul este un sistem ce permite determinarea poziției spațiale și distanța până la un obiect pe baza undelor electromagnetice reflectate de acesta. Sistemele radar (Radio Detection and Ranging) sunt operative și pe timpul nopții și au capacitatea de a penetra acoperirea cu nori și ceață. Sistemele de teledetecție care acționează in domeniul microundelor (lățime de bandă 1 cm – 1 m, benzile Ka, K, Ku, X, C, S, L, P) sunt caracterizate de lungimea de undă în care operează. Dintre acestea, cel mai frecvent folosite sunt benzile X, C și L[18].

O înregistrare SAR complexă reprezintă o imagine digitală care poate fi privită drept o matrice bidimensională de elemente imagine denumite pixeli. Fiecare pixel conține atât informația de amplitudine, cât și informația de fază a semnalului retro-reflectat de elementele din spațiul obiect. Coordonatele unui punct din imaginea SAR se exprimă în distanță (r) și azimut (a). Rezoluția sistemelor SAR este funcție de proprietățile semnalului. Rezoluția in distanță este dependentă de lungimea de undă a semnalului radar. [6] Rezoluția în azimut este determinată de dimensiunea unghiulară a fasciculului emis de sistemul SAR și de distanța înclinată. Radarele cu apertură sintetică simulează efectul unei antene de dimensiuni foarte mari, prin deplasarea platformei pe orbită și prin operațiuni specifice de înregistrare și procesare a semnalelor retro-reflectate. Imaginile preluate de sistemele SAR sunt afectate de deformații. Aceste efecte geometrice sunt provocate de geometria de preluare a imaginilor și de faptul că radarul este un instrument de măsurare a distanțelor. Deformațiile de scară în distanță înclinată apar deoarece radarul măsoară distanța de la senzor la obiectul vizat pe direcție laterală și nu distanța reală măsurată in plan orizontal la nivelul suprafeței terenului. Imaginile SAR sunt afectate de deformații geometrice provocate de relief: fenomenele de contracție, inversiune și suprapunere, umbrire[6].

Platforma satelitară ERS-1 a fost lansată in anul 1991, iar ERS-2 în 1995, în același plan orbital ca ERS-1, ceea ce a permis realizarea unor misiuni în tandem (în perioadele 1995-1996 și 1999-2000). În timpul acestor misiuni au fost preluate înregistrări care au fost utilizate în aplicații de interferometrie, în special pentru generarea modelului digital al terenului. Senzorul SAR operează in banda C, polarizare W (transmisie verticală a semnalului, recepție verticală a semnalului), având lungimea de undă de 5.66 cm. Acest senzor preia imagini cu rezoluția spațială de 30 m, cu dimensiunea de 100 km x 250 km. Conform cercetărilor efectuate până în prezent, modelul digital al terenului obținut în urina procesării interferometrice a datelor preluate de ERS-1/ERS-2 prezintă o precizie altimetrică situată între ± 5 m și ± 20 m. Precizia altimetrică variază în funcție de relief și baza de preluare.

Platforma ENVISAT a fost lansată în anul 2002, la bordul acesteia fiind instalați 10 senzori radar și optici. Senzorul ASAR permite înregistrarea datelor în regimuri de lucru diferite: modul de operare Image Mode (IM – generează o imagine cu dimensiunea de 50 – 100 km. cu o rezoluție spațiala 30 m, polarizare verticală VV sau orizontală HH). modul de operare Wide Swath (WSM – generează o imagine cu dimensiunea maximă de 400 km în plan perpendicular pe direcția de deplasare a platformei, rezoluție spațială 150 m, polarizare VV sau HH) și modul de operare Altemating Polarisation (AP – imaginile preluate prezintă o acoperire între 50 și 100 km. rezoluție spațială 30 m și polarizare alternativă HH/VV, HH/HV. VV/VH). Precizia verticală a modelelor digitale ale terenului obținute pe baza imaginilor ENVISAT ASAR este de aproximativ ± 10 m (în unele cazuri atingând chiar și ± 16 m) [18].

Platforma TerraSAR-X, lansată în iunie 2007, este echipată cu un radar lateral cu apertură sintetică, care operează în banda X (lungimea de undă 3 cm). Antena electronică a radarului poate fi programată să opereze în diverse moduri: StripMap (SM – reprezintă modul de preluare clasic al senzorilor SAR, întâlnit și la alte platforme satelitare, cum ar fi ERS-l/ERS-2 sau ENVISAT), Spotlight (permite preluarea a două tipuri de înregistrări: Spotlight – SL și High Resolution Spotliglit – HS, care diferă prin rezoluția în azimut și dimensiunea zonei înregistrate), modul de operare ScanSAR (SC – emite impulsuri radar sub unghiuri de incidență diferite; benzile de preluare ScanSAR sunt alcătuite în mod exclusiv din fascicule StripMap). Modelul digital al terenului construit pe baza imaginilor TerraSAR-X prezintă o precizie altimetrică absolută de aproximativ ±5-10 m, în funcție de condițiile de preluare[18].

2.3 Caracteristicile imaginilor satelitare

Energia electromagnetic poate fi detectă pe cale fotografică sau electronic. Procesul fotografic folosește reacții chimice pe suprafața unui film, sensibil la lumină pentru a detecta și înregistra variațiile de energie. Este important să se facă o distincție între termenul de imagini și fotografii în teledetecție. O imagine se referă la orice reprezentare grafică a energiei electromagnetice, indiferent de ce lungimi de undă și ce echipamente s-au folosit în teledetecție.O fotografie se referă, în special, la imaginile care au fost detectate și captate pe un film fotografic. Imaginile sunt înregistrate în mod normal, pe gama de lungimi de undă între 0.3 μm și 0.9 μm-spectrul vizibil și IR reflectat[14]. O fotografie poate fi reprezentată în formă digitală prin subdivizarea imaginii în mai mulți pixeli (zone mici, de dimensiuni egale, reprezentând luminozitatea fiecarui punct)

Această fotografie a fost scanată și subdivizată în mai mulți pixeli, fiecarui pixel îi este atribuit un număr digital reprezentând luminozitatea relativă. Senzorii captează energia electromagnetic, electronic sub forma unui șir de numere în format digital. Există două moduri diferite în reprezentarea și afișarea datelor: pictorial sau digital.Aceste moduri sunt interschimbabile, dar există riscul ca unele detalii să fie pierdute atunci când se face conversia de la pictorial la digital și invers.

În teledetecție există două tehnici implicate în procesarea imaginilor: îmbunatățirea imaginilor și extragerea informațiilor. Ambele tehnici lucrează la nivel de pixel și folosesc informații din statistică matematică. Dacă imaginile sunt reprezentate pe mai multe dimensiuni spectrale (colorate) exită o gamă largă de tehnici entru extragerea informațiilor și caracteristicilor spectrale.

Analiza de imagini tradiționale folosește elemente cheie (mărime, formă, înălțime, umbră…) în procesul de recunoastere.

Forma este unul dintre elementele cele mai utile în procesul de recunoaștere. În recunoașterea obiectelor după acest criteriu un rol important îl are scara. Destul de complicată este identificarea formelor după de relief, intrucât adâncimile și înclinarea versanților sunt exagerate.O structură clasică de recunoaștere este Pentagonul. Alte forme, precum pistele de curse ovale sau piramidele din Egipt sunt detectate instant[14].

Dimensiunea relativă este de ajutor în identificarea obiectelor. Deși mărimea imaginii nu permite identificarea obiectelor, împreună cu forma poate duce la identificare. De exemplu, imaginea casei si cea a cuștii sunt asemănătoare ca forma, însă dimensiunile arată evident deosebirile dintre cele două. Acest criteriu se poate aplica corect în funcție de scara imaginilor. Dacă scara devine prea mica, odată cu pierderea formei, obiectele își pierd și caracteristicile dimensionale.

Culoarea este un criteriu sigur și ușor de folosit, dar se impune ca redarea culorilor să fie cât mai fidelă. Unele obiecte, de exemplu vegetația își modifică culoarea după sezon.

Tonul are o valoare relativă și depinde de mai multe variabile. Diferite părți ale aceluiași obiect pot să apară în tonuri diferite, în funcție de gradul de iluminare și de direcția în care se reflectă lumina.

Umbra este un criteriu indirect de mare importanță.Aceasta redă destul de bine forma unor obiecte izolate. Forma umbrei se aseamănă adesea cu forma siluetei obiectului care o genereaza, de exemplu în cazul arborilor, caselor, etc. Lungimea umbrei indică înălțimea obiectului iar orientarea ei permite stabilirea punctelor cardinale sau a orei de fotografiere[14].

Textura reprezintă dispunerea spațială a obiectelor, care sunt prea mici pentru a fi deosebite.Textura depinde de scala imaginii și poate fi folosită pentru distingerea obiectelor, care altfel nu ar putea fi rezolvate. Astfel, asprimea sau finețea suprafețelor de pământ devine un indiciu important pentru datele radar(figura 2.8 ).

2.3.1 Rezoluția imaginilor

Rezoluția este una dintre cele mai însemnate caracteristici ale unei imagini, deoarece aceasta permite identificarea unui obiect de către analistul care utilizează imaginea in diferite scopuri. In identificarea unei imagini, rezoluția este importantă alături de tipul de senzor, dată și natura imaginii. Rezoluția este o caracteristică a informației pe care o conține imaginea. Din acest punct de vedere rezoluția se poate defini spațial, spectral și temporal[18].

Rezoluția spațială exprimă adesea cât de performantă este imaginea. Ea reprezintă dimensiunea lineară a celui mai mic obiect din teren prezent într-o imagine. Ea poate fi considerată și ca lățimea liniei care separa două obiecte învecinate de mici dimensiuni dintr-o imagine ca de pildă un automobil și o clădire.

La imaginile digitale rezoluția spațială corespunde dimensiunii în teren a laturii unui pixel, cel mai mic element ce alcătuiește imaginea respectivă. In acest caz, rezoluția spațială este strâns legată de însuși volumul de informație al imaginii. La sistemele ce captează prin scanare radiațiile electromagnetice, rezoluția este data de suprafața de teren vizibilă în câmpul de vedere instantaneu al sistemului de scanare.

O imagine de rezoluție mică, permite identificarea unor detalii de mari dimensiuni(ex. văi, interfluvii sau grupe montane, ghețari de calotă sau sisteme glaciare montane, metropole, masive forestiere, deșerturi etc.), printr-un număr limitat de pixeli. Aceștia au și un grad mare de neomogenitate numit și impuritate, deoarece într-un singur pixel se pot afla mai multe elemente ale cadrului geografic sau acoperirii terenului.

La polul opus se află o imagine de rezoluție mare, ca de pildă o fotogramă aeriană, în care se identifică detalii mici din teren, de la case de locuit, copaci izolați, autovehicule, marcaje rutiere și chiar oamenii în grupuri sau izolat. În acest caz și pixelii corespunzători imaginii digitale sunt mai numeroși, dar prezintă și un grad mai mare de omogenitate sau de puritate[6].

Clasificarea imaginilor în funcție de rezoluția spațială are în vedere dimensiunea în teren a pixelului care alcătuiește imaginea. În principal, în literatură apar trei sau chiar patru categorii de imagini.

Imagini de foarte mică rezoluție spațială (sub 1000 m sau 1 km), sunt reprezentate de imaginile cu cea mai mare cuprindere spațială, obținute de la altitudini foarte mari, de ordinul zecilor de mii de kilometri, având un volum limitat de informație la teren, însă de mare utilitate în meteorologie și oceanografie (ex. imaginile de la sateliții geostaționari ce acoperă o întreagă emisferă)

Imagini de mică rezoluție spațială (între 1000 m și 100 m), corespund imaginilor satelitare obținute de la altitudini mari, de ordinul sutelor de kilometri, în special prin scanare termică sau prin radiometrie în infraroșul termal (ex. banda 6 la scenele Landsat TM cu rezoluția de 120 m) sau benzile spectrale NOAA-AVHRR cu rezoluția de cca. 1 km

De multe ori cele două categorii sunt reunite în grupa imaginilor de mică și foarte mică rezoluție spațială.

Imagini de medie rezoluție spațială (între 10 m și 100 m), grupează cele mai multe imagini satelitare multispectrale și o parte a celor radiometrice, ca de pildă Landsat (toate cele trei generații), SPOT XS (multispectrale la 20 m) și HRV (pancromatice la 10 m), ASTER(vizibil și infraroșu apropiat la 15 m, infraroșu mediu 30 m, infraroșu termal 90 m), IRS (satelit indian cu rezoluții de 23,5 m, respectiv 56 m în infraroșul apropiat și mediu), JERS (satelit japonez) cu 18 m vizibil, infraroșu apropiat și mediu dar și cu imagini în banda radar L cu polarizare HH (oblice) etc[18].

Imagini de mare rezoluție spațială (între 10 m și 1 m) sunt reprezentate de o parte a fotogramelor aeriene (cca. 1 m), dar mai ales de imaginile satelitare multispectrale, în special în vizibil și infraroșul apropiat (în parte în pancromatic) obținute de senzori satelitari de ultimă generație ca Ikonos (4 m), Quick Bird (2,6 m), GeoEye (1,65 m) din SUA, Cartosat 1 lansat de India în 2005 (2,5 m), SPOT 5 din Franța (5 m în pancromatic, 10 m multispectral), Formosat lansat de Taiwan în 2004 (2 m în pancromatic, 8 m multispectral) etc.

Imagini de foarte mare rezoluție spațială (mai mare de 1 m) cuprind cea mai mare parte a fotografiilor aeriene, ce ating rezoluții mari mai ales la imaginile digitale (de multe ori de 0,4-0,lm ), dar și o serie de imagini în pancromatic ale unor sisteme deja amintite în categoria anterioară: Ikonos (1 m), QuickRird (0,65 m), GeoEye (0,41 m), WorldView 1, lansat de SUA în 2007 (0,5 m), EROS B, din Israel, lansat în 2006 (0,7 m) [18]. Sunt imagini obținute de obicei de pe orbite polare și heliosincrone ceva mai joase, situate la 400-500 km altitudine, comparativ cu cele de rezoluții medii obținute de pe orbite mai înalte, la 700-900 km

În cazul unor imagini satelitare, în special a celor radar și a celor de rezoluții mari și foarte mari, există posibilitatea tehnică de a înregistra radiațiile electromagnetice în sistem nadiral (vertical) și oblic (extranadiral, de la engl. off nadir). In cazul de față, imaginile sunt rezultate în perechi, dublete sau benzi de imagini paralele, suprapuse pe 60-80%, fapt ce permite exploatare stereoscopică. Aplicațiile acestora sunt utile cartografiei, modelării digitale a reliefului și nu numai. Imaginile de acest tip sunt precizate două rezoluții (ex. Cartosat 1), ca de pildă la imaginile pancromatice Ikonos cu 0,82 m la nadir (vertical), respectiv 1 m lateral (la un unghi de 26°)[18].

Diferențele de rezoluție spațială între imaginile în pancromatic și cele multispectrale sunt utile în fuziunile de imagini, ce au ca rezultat imagini color la rezoluția pancromaticului. Produsul rezultat este numit în engleză pansharpened și se obține prin aplicarea unor algoritmi matematici în pachete software specializate.

Rezoluția spectrală reprezintă intervalul spectral sau intervalul de lungime de undă în limitele căruia s-a realizat înregistrarea unei imagini.

În cazul imaginilor multispectrale rezoluția spectrala se exprimă, in egală măsură, prin numărul de benzi sau intervale spectrale în care s-au obținut în mod simultan imagini ale aceleiași suprafețe de teren și raportarea lor la spectrul electromagnetic (ex. scena satelitară). În literatură se mai folosește și termenul de sensibilitatea senzorului (acea caracteristică a unui sistem de senzori de a permite recunoașterea diferențiată, selectivă, a radiațiilor emise de obiecte și fenomene), considerat sinonim de către unii autori[6].

Rezoluția spectrală permite identificarea unui obiect sau fenomen din teren prin intermediul radiației electromagnetice reflectate în limitele unei ferestre atmosferice. Astfel unele obiecte din teren, mai mici decât rezoluția spațială a imaginii se pot identifica datorită rezoluției spectrale (sensibilității senzorului), care determină o mare valoare a reflectanței specifică acestui obiect. Este cazul unui drum ce traversează un teren cultivat agricol sau o pădure.

Rezoluția spectrală depinde de două elemente, de comportamentul spectral al obiectelor raportat la lungimea de undă a radiației electromagnetice (exprimat prin reflectanță sau radianță spectrală), respectiv de sensibilitatea senzorului (sau a filmului la imaginile fotografice), în raport cu diferitele intervale spectrale. In legătură cu această trăsătură a imaginilor se definesc două noțiuni. La acestea se mai adaugă și alte elemente cum ar fi nivelul de calibare al senzorului sau al camerei de fotografiere, aplicarea corecțiilor radiometrice (și mai ales a celor atmosferice), uzura senzorului sau diversele defecte ale imaginii (lineare, punctuale etc.).

Reflectanța reprezintă procentul din radiația solară incidență pe care un corp relativ omogen fizic și chimic, îl reflectă în atmosferă. Depinde de proprietățile corpului și de intervalul spectral la care se raportează. Pe baza reflectanței în raport cu lungimile de undă ale spectrului electromagnetic, se generează o reprezentare grafică numită și curbă spectrala. Aceasta este specifică fiecărui obiect din teren și exprimă variația relectanței în raport cu lungimea de undă a radiației reflectate. Imaginile de mare rezoluție spectrală (cu un număr mare de benzi spectrale obținute simultan într-un larg interval spectral), utilizează curbele spectrale în contextul obținerii lor prin scanare multispectrală sau radiometrie.

Clasificarea imaginilor după rezoluția spectrală este determinată de numărul de benzi sau intervale spectrale care se obțin simultan în contextul înregistrării imaginii de teledetecție. Acesta poate varia de la un singur interval la fotogramele aeriene, la peste 200 la sistemele de scanare hiperspectrală. Stabilirea acestor limite este determinată de imaginile de pe piață, având diferite aplicații. După Satellite Imaging Corporation, companie profilată pe comercializarea unei largi game de imagini, există trei categorii de imagini:

Imagini de mică rezoluție spectrală cu până la trei (patru n.n.) benzi spectrale, ce corespund în principal imaginilor obținute în spectrul vizibil sau mai ales vizibil și infraroșul apropiat, la rezoluții mari și foarte mari. Exemple sunt imaginile Spot 5, Ikonos sau QuickBird, ori IRS (două benzi din vizibil, două în infraroșu) sau vechile Landsat MSS. Acestea cuprind și o bandă pancromatic, care este considerată separat, deoarece ea se suprapune de regulă vizibilului și infraroșului apropiat[6].

Imagini de medie rezoluție spectrală, cu 3-4 până la 14-15 benzi spectrale sunt de regulă imagini obținute prin scanare multispectrală sau radiometrie, dar de medie rezoluție spațială. Ele acoperă în principal, prin intervalele înguste, spectrul vizibil, infraroșu apropiat, mediu și cel termal. Limita de 14-15 benzi este dată de imaginile Aster și alte aplicații similare. In această grupă se înscriu cele mai cunoscute imagini cu aplicații în cercetarea resurselor sau mediului ca de pildă Landsat (7 benzi la sistemele TM și ETM+, fig. 6.10), CBERS 2, satelit chinez (5 benzi), ASTER (14 benzi grupate în trei intervale, VNIR, SWIR, TIR), AVHRR (6 benzi la ultima generație). Aceste imagini au un avantaj în plus față de cele din categoria anterioară, și anume accesibilitatea la nivel de prețuri. Tehnicile de procesare digitală actuale permit de multe ori fuziuni de date între imagini pancromatice de mare rezoluție spațială și imagini multispectrale de medie rezoluție spectrală. Mai mult, în cazul în care lipsește banda albastru, tehnica permite simularea imaginii corespunzătoare din imaginile în benzile verde și roșu. Astfel rezultă chiar imagini în culori naturale la senzori care au în domeniul vizibil doar benzile verde și roșu (ex. SPOT 4 și 5) [18].

Imagini de mare rezoluție spectrala cu 15 până la peste 220 de benzi spectrale obținute simultan în intervale înguste ale spectrului. In această categorie se înscriu imaginile hiperspectrale, aplicații de mare complexitate ce permit analize la nivel de componente de mediu sau resurse de subsol cu ajutorul bibliotecilor spectrale special generate. Exemple de asemenea aplicații sunt MODIS (sistem plasat pe orbită împreună cu ASTER, cu satelitul TERRA, în anul 2000, cu un senzor radiometric ce permite înregistrarea a 36 de benzi cu destinații precise la nivel de aplicații),GER (63 de benzi) DEDALAUS (102 benzi) sau AVIRIS (224 de benzi). Aceste sisteme permit obținerea de imagini în intervale înguste la spectrului ce ajung și la 1-5 nm. Scannerele hiperspectrale sunt de regulă aeropurtate, așa cum este cazul lui AVIRIS, ce obține imagini de la altitudini mari, de la bordul avioanelor militare de observație americane U 2[18].

Rezoluția este o trăsătură de bază a imaginilor de teledetecție. În realitate, mijloacele tehnice nu au permis obținerea unor imagini de mare rezoluție spațială, spectrală și temporală cu un singur sistem de senzori. Cu alte cuvinte, acesta ar fi sistemul de teledetecție ideal, cel care poate înlocui, prin înregistrările rezultate, orice imagine satelitară sau aeriană de până astăzi. Rezultă că imaginile de teledetecție sunt complementare la nivelul rezoluției.

Rezoluția temporală, localizează în timp caracteristicile imaginii de teledetecție și reprezintă momentul de timp bine precizat (an, lună, ziuă, oră) la care a fost înregistrată o imagine. Acesta este precizat împreună cu datele auxiliare care însoțesc imaginea, indiferent de formatul analogic (pe hârtie sau peliculă transparentă) ori digital (pe marginea imaginii, dar mai ales în fișierul de date despre imagine).

Un alt mod de a defini rezoluția temporală îl reprezintă intervalul de timp în limitele căruia un sistem de teledetecție a înregistrat imagini sau acoperirea temporală a arhivei de imagini.

Rezoluția temporală explică, în egală măsură, prezența sau absența unui element din imagine la un moment dat. De exemplu apariția unor autostrăzi într-o imagine a unei regiuni dintr-un stat al Europei de Est. Pachetele de programe specializate permit analize avansate pe imagini multitemporale la nivel de fenomene, fapt ce se constituie în analize calitative și cantitative, reunite sub denumirea de analiza detecției schimbărilor (engl. change detection) [6].

2.4 Tipuri de descriptori utilizați pentru caracterizarea imaginilor

2.4.1 Trăsături spectrale

Histograma unei imagini reprezintă frecvența relativă de apariție a nivelelor de gri din imagine . Pentru o imagine f, de dimensiune M x N histograma se defineste

unde funcția este definită în următorul mod:

Din punct de vedere statistic, putem considera valoarea fiecarui pixel al imaginii ca o realizare particulară a unei variabile aleatoare asociată nivelelor de gri, caz în care histograma reprezintă funcția de densitate de probabilitate a acestei variabile aleatoare. Fiind o funcție de densitate de probabilitate, histograma oricărei imagini verifică condiția de normare:

Practic, calculul histogramei presupune parcurgerea pixel cu pixel a imaginii ți contorizarea numărului de nivele de gri întâlnite[20].

2.4.2 Descriptori de textură

În anul 1973 Haralick a introdus noțiiunile de matrice de coocurență și trăsăturile de textură pentru clasificarea automată a rocilor în șase categorii. În zilele nostre aceste trăsături sunt larg folosite în analiza imaginilor satelitare. Extragerea trasăturilor de textură este relativ consumatoare de timp[21].

Matricea de coocurență.

Trăsăturile de textură sunt calculate pe baza distribuției statistice a combinațiilor de intensitate,observate de la un poziție relativă la fiecare altă poziție din imagine. În funcție de numarul de puncte de intensitate(pixeli) in fiecare combinație, statistica se imparte în statistică de ordinul unu, statistică de ordin doi și statistică de ordin mai mare.

Matricea de coocurență( GLCM) este o metodă de extragere a trăsăturilor de textură și corespunde statisticii de ordin doi.

Matricea de coocurență este o matrice pătratică, unde numărul de linii și de coloane este egal cu numărul de nivele de gri din imagine. Elementul matricii P(i,j) reprezintă frecvența relativă, pe care o pereche de doi pixeli separați de o distanță apar într-o vecinătate. De asemenea se poate spune că elementul matricii de coocurență este probabilitatea de ordin doi a aparițiilor perechilor de pixeli, asezați la o distanță d și un unghi particular .

Existența unui număr mare de nivele de gri implică folosirea unei zone de memorie ridicate pentru memorarea matricii de coocurență. De aceea de cele mai multe ori, numărul de nivele de gri sunt reduse. Chiar și vizual, cuantizarea la 16 nivele de gri este suficientă pentru extragerea de trasături de textură[22].

În aplicația noastră folosim 13 trăsături de texturi Haralick:

1.Momentul unghiular secund (ASM) și Energia (mai este denumită și uniformitate) folosesc fiecare .Valori mari ale ASM sau energie sunt atinse atunci când matricea de coocurență este foarte ordonată[21]:

Energia=

2.Contrast:

3.Corelatie:

4.Varianță:

5.Omogenitate locală (Înversului momentului diferență):

6.Suma diferență medie:

7.Suma Varianței:

8.Suma Entropiei:

9.Entropia:

10.Varianța diferență:

11.Entropia Diferență:

12.Informație asupra măsurii corelației1:

13.Informație asupra măsurii corelației2:

Unde[21]:

Cap 3 Aplicație

Scopul lucrării de față este acela de a clasifica diferite imagete pe baza trăsăturilor caracteristice extrase anterior. Pentru a verifica eficiența metodelor de clasificare și pentru a vizualiza rezultatele s-a realizat o aplicație în Matlab cu interfață grafică.

3.1 Modelul sistemului

Pentru realizarea testelor s-a folosit o bază de șapte imagini satelitare (3000×3000 pixeli) descărcate de pe site-ul Geoeye [24]. Imaginile au fost împarțite în imagete de 300×300 de pixeli. S-au formeazat vectorii de trăsături (trăsături spectrale și de textură) pentru fiecare imagetă. Trăsăturile spectrale au fost extrași în urma unei operații de cuantizare pe histogramă. Pentru aceasta, au fost folosite doar canalele din spectrul vizibil (roșu, verde, albastru), cuantizate cu trei nivele de gri pentru două benzi și respectiv două nivele pentru a treia bandă. Pentru trăsăturile de textură s-au calculat parametrii de textură corespunzători GLCM (grey level coocurence matrix) pe o singură bandă. Pentru calcularea GLCM –ului s-a realizat o transformare de spații de culoare, din RGB în niveluri de gri. Astfel, a rezultat un vector de 21 de trăsături (8 trăsături spectrale și 13 trăsături de textură).

S-a efectuat o operție de clustering pe toți pixelii (K-Means). Dacă au fost identificate clustere goale acestea au fost rejectate. S-au indexat pixelii grupați în clustere astfel încât să se identifice originea pixelilor din fiecare cluster (adică imaginea careia îi aparțineau inițial). S-au obținut astfel benzile cu etichete spectrale (de culoare) și de textură.

Pentru o analiză comparativă a rezultatelor și performanțelor descriptorilor utilizați, s-au atașat trei algoritmi de învățare supervizată: SVM (Support vector machine), MAP ( maxim a posteriori), K-NN (K- Nearest Neighbor) . Funcționarea și principiile acestora au fost prezentate în capitolul 1.

S-a realizat o interfață grafică prin intermediul căreia utilizatorul poate participa la antrenarea sistemului, prin indicarea de exemple pozitive și negative din setul de imaginete disponibil. După operația de învățare, sistemul returnează imagete cu conținut similar.

3.2 Baza de date

Pentru realizarea bazei de date s-au folosit imagini satelitare, cu o rezoluție de o jumătate de metru, realizate de către satelitul GeoEye-1, în timp ce zbura la 412 mile(681 km) deasupra Pământului, cu o viteză medie de 17 000 mph ( patru mile pe secundă) .

1.

Această imagine a fost preluată pe data de 12 noiembrie 2010. Imaginea cuprinde atât raul Missouri, cât si vecinatea acestuia Bismarck, North Dakota, înainte ca inginerii de la U.S army Corps să dea drumul controlat la barajul Garrison Dam Spillway. Această imagine este utilă, în special, atunci când este comparată cu imaginea aceleiași zone, preluată pe 3 iunie 2011, în timpul inundațiilor controlate. Cele două imagini comparate pot fi folositoare pentru a detecta schimbarile intervenite ți pentru a evalua și măsura deteriorarea clădirilor, drumurilor sau a altor structuri. Ele ar putea fi utilizate și pentru prevenirea dezastrelor.

2.

Imaginea reprezintă cel mai mare parc solar din lume și este situat în Charanka in Northern Gujarat, India. Satelitul GeoEye -1 a preluat imaginea pe 27 aprilie 2012.

3.

Imaginea a fost captată pe data de 28 mai 2012 (Memorial Day). Jefferson Barracks este unul dintre cele mai vechi locuri de înhumare pentru militarii din toate războaiele. Baza militară originală a fost aleasă strategic din punct de vedere geografic, fiind construită la sud de St. Louis pe malul râului Mississippi pentru a înlocui fortul Bellefontaine. Aceasta a fost deschisă în anul 1826 și a devenit prima bază permanentă la vest de Mississippi. Până în 1840 a fost cea mai mare bază militară din Statele Unite ale Americii.În iulie 1936 , departamentul de război a numit această bază Jefferson Barracks National Cemetery. În 1998 acesta a fost introdusă în registrul Național al Locurilor istorice. În fiecare an voluntari decorează mormintele cu mici steaguri pentru a comemora Memorial Day

4.

Imaginea a fost facută pe data de 16 mai 2012, și arată eforturile de reconstruire după o tornadă de grad 5 care a distrus aproape în totalitate orașul în data de 22 mai 2011. Acestă imagine este în special folositoare atunci când este comparată cu imaginea preluată pe 29 mai 2011 și oferă o perspectivă asupra daunelor clădirilor, instalațiilor și a altor structuri afectate de tornadă.

5.

Kingdom Center este localizat în Riyadh(Arabia Saudită), pe strada Al-Urubah, în districtul de afaceri Olaya. Kingdom Center are o înalțime de 302.3 metrii, 5 nivele de shopping, cu 41 de etaje și două niveluri de subsol.Acesta găzduiește, de asemenea, un hotel de patru stele Riyadh. Acesta are o înălțime de 290.4 metrii, iar din vârful acestuia se poate vedea întregul oraș. În 2002, Kingdom Center a primit premiul pentru design "World’s best skyscraper design". Satelitul GeoEye -1 a preluat imaginea pe data de 8 mai 2012 .

6.

Imaginea satelitară cuprinde locul memorial Martin Luther King Jr. situate în Washington DC, pe o suprafață de patru hectare de-a lungul bazinului Tidal Basin, alaturi de Franklin D. Roosevelt, iar în fața acestora se află monumentele memoriale Lincoln și Jefferson Memorials. Memorialul a fost construit pentru a comemora viața și munca lui Dr. Martin Luther King, Jr. Mulțimi de oameni pot fi văzute în jurul Memorialui, numit “Stone of Hope”. Satelitul GeoEye a captat imaginea pe data de 22 august 2011, în aceeași zi în care memorialul a fost deschis publicului după două decenii de planificare, stranger de fonduri și de construcții.

7.

Seiano Grotto și locul arheologic Pausylipon, localizate la aproximativ 13 km la vest de Naples, Italia. Aceste ruine arheologice includ un remarcabil anfiteatru cu 13 rânduri de scaune în sala de sus, șase rânduri în mijloc și cu o capacitate totală de două mii de persoane. Locul arheologic a fost redeschis permanent publicului datorită arheologilor Caserta și Sovrintendenza din Napoli precum și contribuția orașului Napoli. Această imagine fost captată de către satelitul GeoEye-1 pe data de 9 aprilie 2012.

3.3 Extragere trăsături

Pentru a putea fi clasificate imagetele trebuie să fie extras un vector de trăsături din fiecare imagetă. Acest vector de trăsături trebuie normalizat pentru o mai bună clasificare.

3.3.1 Trăsături spectrale

Pentru realizarea vectorului de trăsături spectrale se cuantizează cele trei culori de bază, respectiv roșu cu trei nivele, verde cu trei nivele și albastru cu două nivele. Se calculează probabilitatea de apariție a fiecarui nivel de culoare în imageta respectivă cu ajutorul funcției hist.

Astfel rezultă un vector de opt probabilități de apariție, ce caracterizează fiecare imagetă.

Tabel 3.1 Exemplu de trăsături spectrale din primele 10 imagete extrase din baza de date.

3.3.2 Trăsături de textură

Pentru extragerea vectorului de trăsături de textură este necesară realizarea unei transformări RGB-grey a imagetei și calcularea matricii de coocurență. Aceste două operații se realizează cu funcția graycomatrix, specifică matlab-ul. Cele 13 trăsături de textură Haralick, descrise anterior, se calculează pe matriceea de coocurență, rezultând astfel un vector de 13 elemente

Tabel 3.2 Exemplu de trăsături de textură din primele 10 imagete extrase din baza de date.

Cei doi vectori se îmbină rezultând astfel un vector de 21 de trăsături specifice pentru fiecare imagetă.

3.4 Interfața

Pentru o mai buna întelegere a acestei lucrări s-a realizat o interfață grafică GUI( Graphical User Interface) cu ajutorul toolbox-ului GUIDE (Graphical User Interface Design Environment) din Matlab. Codul interfeței este prezentat în anexa 1.

Interfața grafică arată astfel:

Pentru alegerea altei baze de date, diferită fața de cea initială se poate apasa butonul Alege date. În acel moment, va aparea o fereastră, care vă va ajuta să alegeți folderul dorit. Prin alegerea datelor algoritmul selecteaza toate imaginile cu extensia *.jpg. Aceste imagini vor fi impărțite într-o mulțime de imagete având dimensiunile de 300×300 pixeli. Tot în acest moment se va crea și vectorul de trăsături (prin utilizarea funcției trasaturi() prezentă în Anexa 2) pentru fiecare imagetă în parte., rezulând astfel o matrice de trăsături pentru întreaga baza de date.

Prin apasarea pop-up menu Clasificare, utilizatorul are la dispoziție patru metode de clasificare: K-means, MAP, SVM, K-NN, în funcție de dorința acestuia privind clasificarea supervizată sau nesupervizată.

Prin alegerea unei dintre metodele de clasificare supervizata va aparea o fereastră în care se poate antrena sistemul prin exemple pozitive (0) sau exemple negative (1).

Următoarea imagine arată modul de interfață privind clasificarea supervizată:

Prin utilizarea butoanelor 0 și 1 se antrenează sistemul prin exemple atât pozitive, dar și negative. În partea din dreapta interfeței se află două înșiruiri de imagini, fiecare reprezentând exemplele selectate. Pentru o bună vizualizare a acestor imagini se poate folosi slider-ul. Pentru a realiza clasificarea se apasă butonul de clasificare (SVM, MAP, K-NN) în funcție de clasificarea aleasă.

Pentru o analiza o analiză statiscă a rezultatelor se apasă butonul Statistică. În acel moment pe ecran va aparea o fereastră care cuprinde repezentarea a două grafice:unul de distribuție a imagetelor și unul pentru vizualizarea parametrilor. Distribuția imagetelor reprezintă numărul de imagete repartizat pe clase. Prin graficul reprezentare parametrii se vizualizează 2 trăsături într-un spațiu 2-D, precum și apartenența fiecarui punct la clasa respectivă.

3.5 Metode de clasificare

Pentru realizarea metodelor de clasificare s-au utilizat funcțiile de clasificare predefinite de programul matlab.

K-means

Pentru realizare metode de clasificare nesupervizată k-means s-a utilizat funcția kmeans(v, claseKmeans,'Distance','city'), unde v reprezintă matricea de trăsături, iar claseKmeans reprezintă numărul de clase în care se doreste clasificarea. Se va obține un număr de clase de imagete asemănatoare între ele. O bună clasificare depinde de numărul de clase ales.

Statistica K-means arată o distrbuire uniformă a celor șase clase. Cele 700 de imagete au fost împărțite pe șase clase reprezentative pentru baza de date aleasă, astfel încât s-au creat clase de păduri, ape, cladiri, etc, în funcție de caracterul spectral și de textură conținută. În graficul din dreapta imaginii este afisată o reprezentare bidimensională a două trăsături și apartenența fiecarui punct la clasa respectivă.Experimental s-a observat că există câteva imagete care nu au putut fi clasificate.

SVM

Pentru realizarea clasificării supervizate SVM s-a utilizat funcția predefinită svmclassify(svmStruct,v), unde svmStruct reprezintă o structură de vectori de învățare, format prin intermediul utilizatorului, iar v este vectorul de trăsături reprezentativ pentru baza de date aleasă.

Algoritmul SVM a clasificat baza de date, în conformitate cu exemple oferite de utilizator, astfel încât s-a obtinut aproximativ 200 de imagete asemănătoare cu exemple pozitive, iar pe celelalte le-a clasificat ca fiind diferite. În dreapta imaginii se poate observa reprezentarea clasificării și reprezentarea punctelor specifice celor două trăsături alese.

MAP

Clasificarea imagetelor pe baza algoritmului MAP s-a realizat prin funcția predefinită programului matlab classify(v,train,group,'quadratic') unde train este vectorul de trăsături format prin învățare interactivă, iar group reprezintă vectorul de trăsături ce se doreste a fi clasificat.

În clasificarea Naive Bayes cea mai bună clasă se stabilește după metoda maximului a posteriori (MAP).

K-NN

Figure 3.17 Clasificare K-NN

Pentru realizarea clasificării cu algoritmul K-NN s-a folosit funția predefinită matlab-ului knnclassify(v,train,group), v reprezintă vectorul de trăsături ale imagetelor din baza de imagini, train- vectorul de antrenare, iar group- reprezintă grupul din care fac parte imagetele.

Figure .18 Statistică K-NN

Algoritmul K-NN permite clasificarea în multiple clase și modelarea relațiilor neliniare dintre date. Algoritmul este unul pintre puținele care acceptă ca date de intrare , date de natură diferită.

3.6 Analiza calitativă și cantitativă

Selectarea celui mai adecvat algoritm este o problemă dificilă în clasificarea imaginilor satelitare. Există o mulțime de algoritmi de clasificare din diferite arii teoretice: statistică, învățare automată, rețele neurale.

Scopul lucrării a fost acela de a examina diferiți algoritmi de clasificare, pe o bază de imagini satelitare precum și de a compara rezultatele obținute.

1. Influența bazei de date

Baza de date utilizată conține 700 de imagete de 300 x 300 pixeli fiecare. Justificarea alegerii dimensiunii imagetelor este dată de rezolutia spațială foarte înaltă, de 0.5m. În cazul în care se utilizează date cu rezoluție mică de ordinul sutelor de metri, cantitatea de informație din imagine este mult mai scăzută, astfel că un pixel încorporează un număr foarte mare de clase care se mixează și oferă un răspuns (o semnătură spectrală sau de textură mixtă). Odată cu creșterea rezoluției numărul de clase (obiecte, structuri) vizibile din date este mult mai mare, imaginile sunt mult mai heterogene, astfel că pentru a putea înțelege conținutul datelor este necesară analiza pe o fereastră suficient de mare (care să cuprindă zeci sau sute de metri pe sol). Această heterogenitate a datelor introduce însă anumite probleme atunci când se dorește clasificarea pe bază de conținut. Dacă la rezoluții scăzute o clasificare la nivel de pixel poate fi realizată cu destul de multă precizie, în cazul analizei pe imagete situația se complică, din cauza aranjamentului si diversității obiectelor si structurilor din imagine, care pot fi atât naturale cât și realizate de om.

Baza de date utilizată conține aproximativ 13 clase semantice, după cum urmează:

Râu

Zonă urbana tip 1

Vegetație înaltă (pădure tip 1)

Vegetație joasă – teren agricol

Panouri solare

Teren viran

Vegetație mixtă (urbană)

Zonă industrială

Zonă urbană tip 2

Zonă urbană tip 3

Clădiri foarte înalte (tip turn)

Zonă urbană tip 4

Apă de mare

Aceste clase semantice au fost identificate vizual, și se referă la clasa dominantă din imagetă. Având in vedere dimensiunea imagetei, în majoritatea cazurilor există două sau mai multe clase în aceeași imagetă.

2. Performanța clasificatorilor

Clasificatorul K-Means

Acest clasificator a fost evaluat folosind intre 3 si 16 clase. S-a observat că alegerea numărului de clase influențează foarte mult rezultatul clasificării. In general, datorită varietății foarte mari de obiecte din scenă, alegerea unui număr mic de clase conduce la o confuzie foarte mare, si in general la o grupare a diverselor clase în funcție de trăsăturile spectrale.

Spre exemplu, la o clasificare cu 4 clase, sistemul returnează următoarele categorii:

Figure 3.19 Teren viran/paouri solare; Apa și vegetație; Zonă urbană 3; Vegetație mixtă/teren agricol

Se observă o preferință pentru gruparea imagetelor din aceeași zonă geografică.

În plus, algoritmul de clasificare K-means este sensibil la spații ale trăsăturilor care nu sunt foarte compacte, ci au un caracter alungit. Acest lucru este întâlnit în special în cazurile în care există zone foarte mari de vegetație mixtă în baza de date, ceea ce este și cazul de față. Pentru îmbunătațirea rezultatelor se poate folosi in clasificator de tip ISODATA, care este mai putin sensibil la această problemă.

Figure 3.20 Procentul de recunoaștere pentru cele 13 clase semantice identificate vizual. Ca referință a fost folosită anotarea manuală.

Clasificatorii supervizați

Au fost folosiți metodele SVM, MAP și K-NN. Pentru toate cele 3 cazuri s-a efectuat o clasificare binară, în care utilizatorul a indicat clasa preferată, toate celelalte clase fiind marcate ca exemplu negativ. Pentru antrenare s-au folosit în medie 20 de imagete ca exemplu, atât pozitive cât și negative, adică aproximativ între 2 si 5 % dintre eșantioane au fost folosite pentru antrenare și 95% pentru testare. În general rezutatele clasificărilor supervizate de acest tip au fost mai bune decât clasificările M-are. Cea mai bună recunoaștere a fost obținută pentru clasa "Apă de mare", care este de altfel și cea mai simplă clasă. O categorie semantică complicată ce a fost recunoscută cu o rată acceptabilă de eroare este clasa "Zonă urbană 3", care are o textură pronunțată și în general are o varianță redusă a valorilor spectrale ale pixelilor.

Concluzii și perspective

Lucrarea de față și-a propus realizarea unui sistem automat de clasificare a imaginilor satelitare bazate pe conținut. Au fost folosite imagini Geoeye de rezoluție 0.5 metri, din zone geografice diferite, pentru asigurarea unei varietăți crescute de obiecte și categorii semantice. Au fost studiate metodele de clasificare, în contextul teoriei deciziilor. Descriptorii folosiți au constat din trăsături spectrale și de textură. Au fost utilizate patru metode de clasificare, atât supervizate cât și nesupervizate, pentru o analiză comparativă. A fost realizată o interfață grafică interactivă, în mediul MATLAB. Rezultatele au arătat ca în general metodele supervizate cu clasificare binară au avut o performanță mai bună decât cele nesupervizate, ceea ce se explică atât prin heterogenitatea crescută a datelor, cât și prin faptul că în cazul clasificării binare suprafețele de separație între clase sunt definite pe baza selecției utilizatorului uman.

Rezultatele pot fi îmbunătățite prin creșterea numărului de trăsături, astfel încât să se ia în considerare și elemente geometrice (de exemplu, clădirile care au un aspect geometric bine definit pot fi identificate mai ușor pe baza contururilor). De asemenea, se poate adăuga o buclă de "relevance feedback", în care utilizatorul poate continua antrenarea după primele iterații ale sistemului. Astfel, după o primă antrenare, în care se indică exemplele pozitive și cele negative, iar sistemul returnează o primă clasificare a imagetelor, utilizatorul poate continua să marcheze din rezultatele returnate care dintre acestea respectă intr-adevăr cerințele sale. O altă perspectivă a lucrării o constituie testarea sistemului pe o bază de date mai complexă, precum și evaluarea performanței la diverse rezoluții.

Bibliografie

[1] http://www.realtimesatelliteimages.net/ 04.06.2012 14:00

[2] http://www.zki.dlr.de/ 22.06.2012 15:00

[3] http://www.google.com/earth/index.html 22.06.2012 15:00

[4] Nikhil R. Pal, Advanced Techniques in data mining and knowledge discovery, Springe, London, 2005

[5] Anca Popescu, “Integration of SAR Signatures with InSAR Processing for Precise Surface Models Estimation”, PhD Thesis, UPB, 2011

[6] Bogdan Andrei, Introducere în procesarea digital a imaginilor, Rometex, 2007

[7] Ethem Alpaydin, Introduction to Machine Learning , The MIT Press, 2004

[8] Tom Mitchell, Machine Learning, McGraw, 1997

[9] http://en.wikipedia.org/wiki/Support_vector_machine 03.07.2012 20:00

[10] http://en.wikipedia.org/wiki/K-nearest_neighbor_algorithm 04.07.2012 09:00

[11] Henri Prade, Fuzzy Sets and Systems: Theory and Applications, Academic Press,1980

[12] Mathieu Cord, Philippe Gosselin, Stochastic exploration and active learning for image retrieval, France, 2003

[13] http://en.wikipedia.org/ wiki/ Satellite_imagery 04.07.2012 09:00

[14] Fundamentals of Remote Sensing, Canada Center for Remote Sensing

[15] http://ro.wikipedia.org/wiki/Lungime_de_und%C4%83 05.07.2012 10:00

[16] http://ro.wikipedia.org/wiki/Frecven%C8%9B%C4%83 05.07.2012 10:00

[17] http://ro.wikipedia.org/wiki/Radia%C8%9Bie_electromagnetic%C4%83 05.07.2012 12:00

[18] R.C. Olsen, Remote Sensing from Air and Space, Spie Press, Washington,2006

[19] Mihai Datcu, Explorarea și Interpretarea Informației din Imagistica Satelitară, Note de Curs, 2011

[20] Mihail Ivanovici, Procesarea Imaginilor, Brasov, 2006

[21] Markus Gipp, Guillermo Marcus, Haralick's Texture Features Computed by GPUs for Biological Applications, IAENG International Journal of Computer Science

[22] Fritz Albregtsen, Statistical Texture Measures Computed from Gray Level Coocurrence Matrices, University of Oslo, 2008

[23] Imagini TerraSAR-X, www.infoterra.de, disponibile online în 2009

[24] Colecții de imagini Geoeye, disponibile la http://www.geoeye.com/CorpSite/products-and-services/imagery-collection/, 2012

Anexa 1

function varargout = interactive_learning(varargin)

% INTERACTIVE_LEARNING M-file for interactive_learning.fig

% INTERACTIVE_LEARNING, by itself, creates a new INTERACTIVE_LEARNING or raises the existing

% singleton*.

%

% H = INTERACTIVE_LEARNING returns the handle to a new INTERACTIVE_LEARNING or the handle to

% the existing singleton*.

%

% INTERACTIVE_LEARNING('CALLBACK',hObject,eventData,handles,…) calls the local

% function named CALLBACK in INTERACTIVE_LEARNING.M with the given input arguments.

%

% INTERACTIVE_LEARNING('Property','Value',…) creates a new INTERACTIVE_LEARNING or raises the

% existing singleton*. Starting from the left, property value pairs are

% applied to the GUI before interactive_learning_OpeningFcn gets called. An

% unrecognized property name or invalid value makes property application

% stop. All inputs are passed to interactive_learning_OpeningFcn via varargin.

%

% *See GUI Options on GUIDE's Tools menu. Choose "GUI allows only one

% instance to run (singleton)".

%

% See also: GUIDE, GUIDATA, GUIHANDLES

% Edit the above text to modify the response to help interactive_learning

% Last Modified by GUIDE v2.5 17-Jun-2012 04:00:46

% Begin initialization code – DO NOT EDIT

gui_Singleton = 1;

gui_State = struct('gui_Name', mfilename, …

'gui_Singleton', gui_Singleton, …

'gui_OpeningFcn', @interactive_learning_OpeningFcn, …

'gui_OutputFcn', @interactive_learning_OutputFcn, …

'gui_LayoutFcn', [] , …

'gui_Callback', []);

if nargin && ischar(varargin{1})

gui_State.gui_Callback = str2func(varargin{1});

end

if nargout

[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});

else

gui_mainfcn(gui_State, varargin{:});

end

% End initialization code – DO NOT EDIT

% – Executes just before interactive_learning is made visible.

function interactive_learning_OpeningFcn(hObject, eventdata, handles, varargin)

% This function has no output args, see OutputFcn.

% hObject handle to figure

% eventdata reserved – to be defined in a future version of MATLAB

% handles structure with handles and user data (see GUIDATA)

% varargin command line arguments to interactive_learning (see VARARGIN)

% Choose default command line output for interactive_learning

handles.output = hObject;

set(handles.panel1,'visible','on');

set(handles.panel_kmeans,'Visible','on');

set(handles.panel_super,'Visible','off');

set(handles.panel_statistica,'Visible','off');

set(handles.text,'Visible','off');

%[handles.imaget,handles.v]=proiect('D:\facultate\licenta\eu\baza de imag1');

handles.nr1=1;

handles.nr0=1;

handles.contor=1;

handles.p=0;

handles.nrs=0;

handles.stat=0;

% Update handles structure:

set(handles.Nr_clase_Kmeans,'string',1:100);

guidata(hObject, handles);

% UIWAIT makes interactive_learning wait for user response (see UIRESUME)

% uiwait(handles.figure1);

% – Outputs from this function are returned to the command line.

function varargout = interactive_learning_OutputFcn(hObject, eventdata, handles)

% varargout cell array for returning output args (see VARARGOUT);

% hObject handle to figure

% eventdata reserved – to be defined in a future version of MATLAB

% handles structure with handles and user data (see GUIDATA)

% Get default command line output from handles structure

varargout{1} = handles.output;

% – Executes on selection change in Clasa_afisat.

function Clasa_afisat_Callback(hObject, eventdata, handles)

% hObject handle to Clasa_afisat (see GCBO)

% eventdata reserved – to be defined in a future version of MATLAB

% handles structure with handles and user data (see GUIDATA)

% Hints: contents = cellstr(get(hObject,'String')) returns Clasa_afisat contents as cell array

% contents{get(hObject,'Value')} returns selected item from Clasa_afisat

handles.Clasa=get(hObject,'Value');

if (handles.p==1) cla(handles.a1);end

if (handles.p==2) cla(handles.a1);cla(handles.a2);end;

if (handles.p>=3) cla(handles.a1);cla(handles.a2);cla(handles.a3);end

[handles.imagDinClas,handles.p]= ImagDinCls(handles.imaget,handles.clase,handles.Clasa);

%handles.p

%cla(handles.a1)

%cla(handles.a2)

%cla(handles.a3)

if (handles.p<=3)

set(handles.slider,'Visible','off');

end

if (handles.p>3)

set(handles.slider,'Visible','on');

set(handles.slider,'Max',handles.p);

set(handles.slider,'value',3);

set(handles.slider,'Min',3);

set(handles.slider, 'SliderStep', [1/handles.p,1/handles.p]);

end

if (1<=handles.p)

handles.a1=subplot(1,3,1,'Parent',handles.imag_kmeans);

imshow(handles.imagDinClas(:,:,:,1));

end

if (2<=handles.p)

handles.a2=subplot(1,3,2,'Parent',handles.imag_kmeans);

imshow(handles.imagDinClas(:,:,:,2));

end

if (3<=handles.p)

handles.a3=subplot(1,3,3,'Parent',handles.imag_kmeans);

imshow(handles.imagDinClas(:,:,:,3));

end

guidata(hObject, handles);

%montage(handles.imagDinClas);

%figure,imshow(handles.imagDinClas(:,:,:,1));

%hSP = imscrollpanel(hFig,hIm);

%set(hSP,'Units','normalized', 'Position',[0 .1 1 .9]);

% – Executes during object reation, after setting all properties.

function Clasa_afisat_CreateFcn(hObject, eventdata, handles)

% hObject handle to Clasa_afisat (see GCBO)

% eventdata reserved – to be defined in a future version of MATLAB

% handles empty – handles not created until after all CreateFcns called

% Hint: popupmenu controls usually have a white background on Windows.

% See ISPC and COMPUTER.

if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))

set(hObject,'BackgroundColor','white');

end

% – Executes on selection change in Nr_clase_Kmeans.

function Nr_clase_Kmeans_Callback(hObject, eventdata, handles)

% hObject handle to Nr_clase_Kmeans (see GCBO)

% eventdata reserved – to be defined in a future version of MATLAB

% handles structure with handles and user data (see GUIDATA)

% Hints: contents = cellstr(get(hObject,'String')) returns Nr_clase_Kmeans contents as cell array

% contents{get(hObject,'Value')} returns selected item from Nr_clase_Kmeans

handles.nrClase=get(hObject,'Value');

[handles.clase,handles.centru]=kmans(handles.v,handles.nrClase);

set(handles.Clasa_afisat, 'value', 1);

set(handles.Clasa_afisat,'String',1:handles.nrClase);

handles.stat=1;

guidata(hObject,handles);

% – Executes during object creation, after setting all properties.

function Nr_clase_Kmeans_CreateFcn(hObject, eventdata, handles)

% hObject handle to Nr_clase_Kmeans (see GCBO)

% eventdata reserved – to be defined in a future version of MATLAB

% handles empty – handles not created until after all CreateFcns called

% Hint: popupmenu controls usually have a white background on Windows.

% See ISPC and COMPUTER.

if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))

set(hObject,'BackgroundColor','white');

end

% – Executes on slider movement.

function slider_Callback(hObject, eventdata, handles)

% hObject handle to slider (see GCBO)

% eventdata reserved – to be defined in a future version of MATLAB

% handles structure with handles and user data (see GUIDATA)

%cla(handles.a1)

%cla(handles.a2)

%cla(handles.a3)

val = round(get(hObject,'Value'));

%if (val<=handles.p)

% handles.a1=subplot(1,3,1,'Parent',handles.imag_kmeans);

% imshow(handles.imagDinClas(:,:,:,val));

%end

%if (val+1<=handles.p)

% handles.a2=subplot(1,3,2,'Parent',handles.imag_kmeans);

% imshow(handles.imagDinClas(:,:,:,val+1));

%end

%if (val+2<=handles.p)

% handles.a3=subplot(1,3,3,'Parent',handles.imag_kmeans);

% imshow(handles.imagDinClas(:,:,:,val+2));

%end

if (val>=3)

cla(handles.a1)

cla(handles.a2)

cla(handles.a3)

handles.a1=subplot(1,3,1,'Parent',handles.imag_kmeans);

imshow(handles.imagDinClas(:,:,:,val-2)); handles.a2=subplot(1,3,2,'Parent',handles.imag_kmeans);

imshow(handles.imagDinClas(:,:,:,val-1))

handles.a3=subplot(1,3,3,'Parent',handles.imag_kmeans);

imshow(handles.imagDinClas(:,:,:,val));

end

% Hints: get(hObject,'Value') returns position of slider

% get(hObject,'Min') and get(hObject,'Max') to determine range of slider

guidata(hObject,handles)

% – Executes during object creation, after setting all properties.

function slider_CreateFcn(hObject, eventdata, handles)

% hObject handle to slider (see GCBO)

% eventdata reserved – to be defined in a future version of MATLAB

% handles empty – handles not created until after all CreateFcns called

% Hint: slider controls usually have a light gray background.

if isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))

set(hObject,'BackgroundColor',[.9 .9 .9]);

end

% – Executes on selection change in clasificare.

function clasificare_Callback(hObject, eventdata, handles)

% hObject handle to clasificare (see GCBO)

% eventdata reserved – to be defined in a future version of MATLAB

% handles structure with handles and user data (see GUIDATA)

str = get(hObject, 'String');

val = get(hObject,'Value');

switch str{val};

case 'K-means'

set(handles.panel_kmeans,'Visible','on');

set(handles.panel_super,'Visible','off');

set(handles.panel_statistica,'Visible','off');

if (handles.p==1) cla(handles.a1);end

if (handles.p==2) cla(handles.a1);cla(handles.a2);end;

if (handles.p>=3) cla(handles.a1);cla(handles.a2);cla(handles.a3);end

case 'SVM'

set(handles.panel_kmeans,'Visible','off');

set(handles.panel_super,'Visible','on');

set(handles.panel_statistica,'Visible','off');

set(handles.pushSVM,'visible','on');

set(handles.pushknn,'visible','off');

set(handles.pushmap,'visible','off');

set(handles.button0,'Visible','on');

set(handles.button1,'Visible','on');

set(handles.imag_antrenare,'Visible','on');

set(handles.vizual,'Visible','off');

set(handles.slider5,'Visible','off'); handles.random=randint(1,1,[1,length(handles.v)]);

subplot(1,1,1,'Parent',handles.imag_antrenare);

imshow(handles.imaget(:,:,:,handles.random));

if (handles.nr1==2)

cla(handles.i1)

end

if (handles.nr1==3)

cla(handles.i1)

cla(handles.i2)

end

if (handles.nr1>=4)

cla(handles.i1)

cla(handles.i2)

cla(handles.i3)

end

if (handles.nr0==2)

cla(handles.i01)

end

if (handles.nr0==3)

cla(handles.i01)

cla(handles.i02)

end

if (handles.nr0>=4)

cla(handles.i01)

cla(handles.i02)

cla(handles.i03)

end

handles.contor=1;

handles.nr1=1;

handles.nr0=1;

handles.group=zeros(0,1);

handles.training=zeros(0,21);

handles.rand1=zeros(0);

handles.rand0=zeros(0);

handles.imag_rand=zeros(0);

case 'MAP'

set(handles.panel_kmeans,'Visible','off');

set(handles.panel_super,'Visible','on');

set(handles.panel_statistica,'Visible','off');

set(handles.pushSVM,'visible','off');

set(handles.pushknn,'visible','off');

set(handles.pushmap,'visible','on');

set(handles.button0,'Visible','on');

set(handles.button1,'Visible','on');

set(handles.imag_antrenare,'Visible','on');

set(handles.vizual,'Visible','off');

set(handles.slider5,'Visible','off');

handles.random=randint(1,1,[1,length(handles.v)]);

subplot(1,1,1,'Parent',handles.imag_antrenare);

imshow(handles.imaget(:,:,:,handles.random));

subplot(1,1,1), subimage(handles.imaget(:,:,:,handles.random)) ; axis off;

if (handles.nr1==2)

cla(handles.i1)

end

if (handles.nr1==3)

cla(handles.i1)

cla(handles.i2)

end

if (handles.nr1>=4)

cla(handles.i1)

cla(handles.i2)

cla(handles.i3)

end

if (handles.nr0==2)

cla(handles.i01)

end

if (handles.nr0==3)

cla(handles.i01)

cla(handles.i02)

end

if (handles.nr0>=4)

cla(handles.i01)

cla(handles.i02)

cla(handles.i03)

end

handles.contor=1;

handles.nr1=1;

handles.nr0=1;

handles.group=zeros(0,1);

handles.training=zeros(0,21);

handles.rand1=zeros(0);

handles.rand0=zeros(0);

handles.imag_rand=zeros(0);

case 'K-NN'

set(handles.panel_kmeans,'Visible','off');

set(handles.panel_super,'Visible','on');

set(handles.panel_statistica,'Visible','off');

set(handles.pushSVM,'visible','off');

set(handles.pushknn,'visible','on');

set(handles.pushmap,'visible','off');

set(handles.button0,'Visible','on');

set(handles.button1,'Visible','on');

set(handles.imag_antrenare,'Visible','on');

set(handles.vizual,'Visible','off');

set(handles.slider5,'Visible','off');

handles.random=randint(1,1,[1,length(handles.v)]);

subplot(1,1,1,'Parent',handles.imag_antrenare);

imshow(handles.imaget(:,:,:,handles.random));

if (handles.nr1==2)

cla(handles.i1)

end

if (handles.nr1==3)

cla(handles.i1)

cla(handles.i2)

end

if (handles.nr1>=4)

cla(handles.i1)

cla(handles.i2)

cla(handles.i3)

end

if (handles.nr0==2)

cla(handles.i01)

end

if (handles.nr0==3)

cla(handles.i01)

cla(handles.i02)

end

if (handles.nr0>=4)

cla(handles.i01)

cla(handles.i02)

cla(handles.i03)

end

handles.contor=1;

handles.nr1=1;

handles.nr0=1;

handles.group=zeros(0,1);

handles.training=zeros(0,21);

handles.rand1=zeros(0);

handles.rand0=zeros(0);

handles.imag_rand=zeros(0);

end

guidata(hObject,handles)

% Hints: contents = cellstr(get(hObject,'String')) returns clasificare contents as cell array

% contents{get(hObject,'Value')} returns selected item from clasificare

% – Executes during object creation, after setting all properties.

function clasificare_CreateFcn(hObject, eventdata, handles)

% hObject handle to clasificare (see GCBO)

% eventdata reserved – to be defined in a future version of MATLAB

% handles empty – handles not created until after all CreateFcns called

% Hint: popupmenu controls usually have a white background on Windows.

% See ISPC and COMPUTER.

if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))

set(hObject,'BackgroundColor','white');

end

% – Executes on button press in button0.

function button0_Callback(hObject, eventdata, handles)

% hObject handle to button0 (see GCBO)

% eventdata reserved – to be defined in a future version of MATLAB

% handles structure with handles and user data (see GUIDATA)

handles.group(handles.contor,1)=0;

handles.training(handles.contor,:)=handles.v(handles.random,:);

handles.rand0(handles.nr0)=handles.random

if (handles.nr0==1)

handles.i01=subplot(3,1,1,'Parent',handles.imag0);

imshow(handles.imaget(:,:,:,handles.random));

end

if (handles.nr0==2)

handles.i02=subplot(3,1,2,'Parent',handles.imag0);

imshow(handles.imaget(:,:,:,handles.random));

end

if (handles.nr0==3)

handles.i03=subplot(3,1,3,'Parent',handles.imag0);

imshow(handles.imaget(:,:,:,handles.random));

end

if (handles.nr0>3)

handles.i01=subplot(3,1,1,'Parent',handles.imag0);

imshow(handles.imaget(:,:,:,handles.rand0(handles.nr0-2)));

handles.i02=subplot(3,1,2,'Parent',handles.imag0);

imshow(handles.imaget(:,:,:,handles.rand0(handles.nr0-1)));

handles.i03=subplot(3,1,3,'Parent',handles.imag0);

imshow(handles.imaget(:,:,:,handles.rand0(handles.nr0)));

set(handles.slider0,'Max',handles.nr0);

set (handles.slider0,'Value',3);

set (handles.slider0,'Min',3);

set(handles.slider0, 'SliderStep', [1/handles.nr0,1/handles.nr0]);

end

handles.nr0=handles.nr0+1;

handles.random=randint(1,1,[1,length(handles.v)]);

handles.imag_rand(1,handles.contor)=handles.random;

subplot(1,1,1,'Parent',handles.imag_antrenare);

imshow(handles.imaget(:,:,:,handles.random));

handles.contor=handles.contor+1;

guidata(hObject,handles)

% – Executes on button press in button1.

function button1_Callback(hObject, eventdata, handles)

% hObject handle to button1 (see GCBO)

% eventdata reserved – to be defined in a future version of MATLAB

% handles structure with handles and user data (see GUIDATA)

handles.group(handles.contor,1)=1;

handles.training(handles.contor,:)=handles.v(handles.random,:);

c=handles.training

handles.rand1(handles.nr1)=handles.random

if (handles.nr1==1)

handles.i1=subplot(3,1,1,'Parent',handles.imag1);

imshow(handles.imaget(:,:,:,handles.random));

end

if (handles.nr1==2)

handles.i2=subplot(3,1,2,'Parent',handles.imag1);

imshow(handles.imaget(:,:,:,handles.random));

end

if (handles.nr1==3)

handles.i3=subplot(3,1,3,'Parent',handles.imag1);

imshow(handles.imaget(:,:,:,handles.random));

end

if (handles.nr1>3)

handles.i1=subplot(3,1,1,'Parent',handles.imag1);

imshow(handles.imaget(:,:,:,handles.rand1(handles.nr1-2)));

handles.i2=subplot(3,1,2,'Parent',handles.imag1);

imshow(handles.imaget(:,:,:,handles.rand1(handles.nr1-1)));

handles.i3=subplot(3,1,3,'Parent',handles.imag1);

imshow(handles.imaget(:,:,:,handles.rand1(handles.nr1)));

set(handles.slider1,'Max',handles.nr1);

set (handles.slider1,'Value',3);

set (handles.slider1,'Min',3);

set(handles.slider1, 'SliderStep', [1/handles.nr1,1/handles.nr1]);

end

handles.nr1=handles.nr1+1;

handles.random=randint(1,1,[1,length(handles.v)]);

handles.imag_rand(1,handles.contor)=handles.random;

subplot(1,1,1,'Parent',handles.imag_antrenare);

imshow(handles.imaget(:,:,:,handles.random));

handles.contor=handles.contor+1;

guidata(hObject,handles)

% – Executes on button press in pushSVM.

function pushSVM_Callback(hObject, eventdata, handles)

% hObject handle to pushSVM (see GCBO)

% eventdata reserved – to be defined in a future version of MATLAB

% handles structure with handles and user data (see GUIDATA

[handles.imag_svm,handles.clsvm]=svm_clasf(handles.training,handles.group,handles.v)

%for i=1:length(handles.imag_svm)

%imshow(handles.imaget(:,:,:,handles.imag_svm(i)))

% pause(0.2);

%end

handles.stat=3;

set(handles.button0,'Visible','off');

set(handles.button1,'Visible','off');

set(handles.pushSVM,'Visible','off');

set(handles.pushknn,'Visible','off');

set(handles.pushmap,'Visible','off');

set(handles.vizual,'Visible','on');

set(handles.slider5,'Visible','on');

set(handles.imag_antrenare,'Visible','off');

if (handles.nrs==1) cla(handles.b1);end

if (handles.nrs==2) cla(handles.b1);cla(handles.b2);end

if (handles.nrs>=3) cla(handles.b1);cla(handles.b2);cla(handles.b3);end

handles.nrs =length(handles.imag_svm);

if (handles.nrs<=3)

set(handles.slider5,'Visible','off');

end

if (handles.nrs>3)

set(handles.slider5,'Visible','on');

set(handles.slider5,'Max',handles.nrs);

set(handles.slider5,'value',3);

set(handles.slider5,'Min',3);

set(handles.slider5, 'SliderStep', [1/handles.nrs,1/handles.nrs]);

end

if (1<=handles.nrs)

handles.b1=subplot(3,1,1,'Parent',handles.vizual);

imshow(handles.imaget(:,:,:,handles.imag_svm(1)))

end

if (2<=handles.nrs)

handles.b2=subplot(3,1,2,'Parent',handles.vizual);

imshow(handles.imaget(:,:,:,handles.imag_svm(2)))

end

if (3<=handles.nrs)

handles.b3=subplot(3,1,3,'Parent',handles.vizual);

imshow(handles.imaget(:,:,:,handles.imag_svm(3)))

end

guidata(hObject,handles)

% – Executes on button press in pushknn.

function pushknn_Callback(hObject, eventdata, handles)

% hObject handle to pushknn (see GCBO)

% eventdata reserved – to be defined in a future version of MATLAB

% handles structure with handles and user data (see GUIDATA)

[handles.imag_knn,handles.clknn]=knn_clasf(handles.v,handles.training,handles.group);

%for i=1:length(handles.imag_knn)

%imshow(handles.imaget(:,:,:,handles.imag_knn(i)))

% pause(0.2);

%end

set(handles.button0,'Visible','off');

set(handles.button1,'Visible','off');

set(handles.pushSVM,'Visible','off');

set(handles.pushknn,'Visible','off');

set(handles.pushmap,'Visible','off');

set(handles.vizual,'Visible','on');

set(handles.slider5,'Visible','on');

set(handles.imag_antrenare,'Visible','off');

if (handles.nrs==1) cla(handles.b1);end

if (handles.nrs==2) cla(handles.b1);cla(handles.b2);end

if (handles.nrs>=3) cla(handles.b1);cla(handles.b2);cla(handles.b3);end

handles.nrs =length(handles.imag_knn);

if (handles.nrs<=3)

set(handles.slider5,'Visible','off');

end

if (handles.nrs>3)

set(handles.slider5,'Visible','on');

set(handles.slider5,'Max',handles.nrs);

set(handles.slider5,'value',3);

set(handles.slider5,'Min',3);

set(handles.slider5, 'SliderStep', [1/handles.nrs,1/handles.nrs]);

end

if (1<=handles.nrs)

handles.b1=subplot(3,1,1,'Parent',handles.vizual);

imshow(handles.imaget(:,:,:,handles.imag_knn(1)))

end

if (2<=handles.nrs)

handles.b2=subplot(3,1,2,'Parent',handles.vizual);

imshow(handles.imaget(:,:,:,handles.imag_knn(2)))

end

if (3<=handles.nrs)

handles.b3=subplot(3,1,3,'Parent',handles.vizual);

imshow(handles.imaget(:,:,:,handles.imag_knn(3)))

end

handles.stat=2;

guidata(hObject,handles)

% – Executes on button press in pushmap.

function pushmap_Callback(hObject, eventdata, handles)

% hObject handle to pushmap (see GCBO)

% eventdata reserved – to be defined in a future version of MATLAB

% handles structure with handles and user data (see GUIDATA)

[handles.imag_map,handles.clmap]=map_clasf(handles.v(:,10:18),handles.training(:,10:18),handles.group);

set(handles.button0,'Visible','off');

set(handles.button1,'Visible','off');

set(handles.pushSVM,'Visible','off');

set(handles.pushknn,'Visible','off');

set(handles.pushmap,'Visible','off');

set(handles.vizual,'Visible','on');

set(handles.slider5,'Visible','on');

set(handles.imag_antrenare,'Visible','off');

if (handles.nrs==1) cla(handles.b1);end

if (handles.nrs==2) cla(handles.b1);cla(handles.b2);end

if (handles.nrs>=3) cla(handles.b1);cla(handles.b2);cla(handles.b3);end

handles.nrs =length(handles.imag_map);

if (handles.nrs<=3)

set(handles.slider5,'Visible','off');

end

if (handles.nrs>3)

set(handles.slider5,'Visible','on');

set(handles.slider5,'Max',handles.nrs);

set(handles.slider5,'value',3);

set(handles.slider5,'Min',3);

set(handles.slider5, 'SliderStep', [1/handles.nrs,1/handles.nrs]);

end

if (1<=handles.nrs)

handles.b1=subplot(3,1,1,'Parent',handles.vizual);

imshow(handles.imaget(:,:,:,handles.imag_map(1)))

end

if (2<=handles.nrs)

handles.b2=subplot(3,1,2,'Parent',handles.vizual);

imshow(handles.imaget(:,:,:,handles.imag_map(2)))

end

if (3<=handles.nrs)

handles.b3=subplot(3,1,3,'Parent',handles.vizual);

imshow(handles.imaget(:,:,:,handles.imag_map(3)))

end

handles.stat=4;

%for i=1:length(handles.imag_map)

%imshow(handles.imaget(:,:,:,handles.imag_map(i)))

% pause(0.2);

%end

guidata(hObject,handles)

% – Executes on button press in push_alegedate.

function push_alegedate_Callback(hObject, eventdata, handles)

% hObject handle to push_alegedate (see GCBO)

% eventdata reserved – to be defined in a future version of MATLAB

% handles structure with handles and user data (see GUIDATA)

set(handles.panel1,'visible','on');

set(handles.panel_kmeans,'Visible','off');

set(handles.panel_super,'Visible','off');

set(handles.panel_statistica,'Visible','off');

set(handles.text,'Visible','on');

directoryname = uigetdir;

if (directoryname==0) % cancel pressed

set(handles.text,'Visible','off');

set(handles.panel_kmeans,'Visible','on');

else

[handles.imaget,handles.v]=proiect(directoryname);

set(handles.panel1,'visible','on');

set(handles.panel_kmeans,'Visible','off');

set(handles.text,'Visible','off');

if (handles.p==1) cla(handles.a1);end

if (handles.p==2) cla(handles.a1);cla(handles.a2);end;

if (handles.p>=3) cla(handles.a1);cla(handles.a2);cla(handles.a3);end

end

guidata(hObject, handles);

% – Executes on slider movement.

function slider1_Callback(hObject, eventdata, handles)

% hObject handle to slider1 (see GCBO)

% eventdata reserved – to be defined in a future version of MATLAB

% handles structure with handles and user data (see GUIDATA)

% Hints: get(hObject,'Value') returns position of slider

%get(hObject,'Min') and get(hObject,'Max') to determine range of slider

maxx=get(hObject,'Max')

val =maxx+3-round(get(hObject,'Value'))

if (val>=3)

cla(handles.i1)

cla(handles.i2)

cla(handles.i3)

handles.i1=subplot(3,1,1,'Parent',handles.imag1);

imshow(handles.imaget(:,:,:,handles.rand1(val-2)));

handles.i2=subplot(3,1,2,'Parent',handles.imag1);

imshow(handles.imaget(:,:,:,handles.rand1(val-1)));

handles.i3=subplot(3,1,3,'Parent',handles.imag1);

imshow(handles.imaget(:,:,:,handles.rand1(val)));

end

guidata(hObject, handles);

% – Executes during object creation, after setting all properties.

function slider1_CreateFcn(hObject, eventdata, handles)

% hObject handle to slider1 (see GCBO)

% eventdata reserved – to be defined in a future version of MATLAB

% handles empty – handles not created until after all CreateFcns called

% Hint: slider controls usually have a light gray background.

if isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))

set(hObject,'BackgroundColor',[.9 .9 .9]);

end

% – Executes on slider movement.

function slider0_Callback(hObject, eventdata, handles)

% hObject handle to slider0 (see GCBO)

% eventdata reserved – to be defined in a future version of MATLAB

% handles structure with handles and user data (see GUIDATA)

% Hints: get(hObject,'Value') returns position of slider

% get(hObject,'Min') and get(hObject,'Max') to determine range of slider

maxx=get(hObject,'Max')

val =maxx+3-round(get(hObject,'Value'))

if (val>=3)

cla(handles.i01)

cla(handles.i02)

cla(handles.i03)

handles.i01=subplot(3,1,1,'Parent',handles.imag0);

imshow(handles.imaget(:,:,:,handles.rand0(val-2)));

handles.i02=subplot(3,1,2,'Parent',handles.imag0);

imshow(handles.imaget(:,:,:,handles.rand0(val-1)));

handles.i03=subplot(3,1,3,'Parent',handles.imag0);

imshow(handles.imaget(:,:,:,handles.rand0(val)));

end

guidata(hObject, handles);

% – Executes during object creation, after setting all properties.

function slider0_CreateFcn(hObject, eventdata, handles)

% hObject handle to slider0 (see GCBO)

% eventdata reserved – to be defined in a future version of MATLAB

% handles empty – handles not created until after all CreateFcns called

% Hint: slider controls usually have a light gray background.

if isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))

set(hObject,'BackgroundColor',[.9 .9 .9]);

end

% – Executes on button press in pushStatistica.

function pushStatistica_Callback(hObject, eventdata, handles)

% hObject handle to pushStatistica (see GCBO)

% eventdata reserved – to be defined in a future version of MATLAB

% handles structure with handles and user data (see GUIDATA)

set(handles.panel_kmeans,'Visible','off');

set(handles.panel_super,'Visible','off');

set(handles.panel_statistica,'Visible','on');

if (handles.stat==1)

subplot(1,1,1,'Parent',handles.panel_distributie);

hist(handles.clase)

end

if (handles.stat==2)

subplot(1,1,1,'Parent',handles.panel_distributie);

hist(handles.clknn)

end

if (handles.stat==3)

subplot(1,1,1,'Parent',handles.panel_distributie);

bar([1 2],[length(handles.imag_svm) length(handles.v)-length(handles.imag_svm)]);

end

if (handles.stat==4)

subplot(1,1,1,'Parent',handles.panel_distributie);

hist(handles.clmap)

end

set(handles.popupmenu7,'string',1:21);

set(handles.popupmenu8,'string',1:21);

guidata(hObject, handles);

% – Executes on selection change in popupmenu7.

function popupmenu7_Callback(hObject, eventdata, handles)

% hObject handle to popupmenu7 (see GCBO)

% eventdata reserved – to be defined in a future version of MATLAB

% handles structure with handles and user data (see GUIDATA)

% Hints: contents = cellstr(get(hObject,'String')) returns popupmenu7 contents as cell array

% contents{get(hObject,'Value')} returns selected item from popupmenu7

% – Executes during object creation, after setting all properties.

function popupmenu7_CreateFcn(hObject, eventdata, handles)

% hObject handle to popupmenu7 (see GCBO)

% eventdata reserved – to be defined in a future version of MATLAB

% handles empty – handles not created until after all CreateFcns called

% Hint: popupmenu controls usually have a white background on Windows.

% See ISPC and COMPUTER.

if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))

set(hObject,'BackgroundColor','white');

end

% – Executes on selection change in popupmenu8.

function popupmenu8_Callback(hObject, eventdata, handles)

% hObject handle to popupmenu8 (see GCBO)

% eventdata reserved – to be defined in a future version of MATLAB

% handles structure with handles and user data (see GUIDATA)

% Hints: contents = cellstr(get(hObject,'String')) returns popupmenu8 contents as cell array

% contents{get(hObject,'Value')} returns selected item from popupmenu8

% – Executes during object creation, after setting all properties.

function popupmenu8_CreateFcn(hObject, eventdata, handles)

% hObject handle to popupmenu8 (see GCBO)

% eventdata reserved – to be defined in a future version of MATLAB

% handles empty – handles not created until after all CreateFcns called

% Hint: popupmenu controls usually have a white background on Windows.

% See ISPC and COMPUTER.

if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))

set(hObject,'BackgroundColor','white');

end

% – Executes on button press in spatiu.

function spatiu_Callback(hObject, eventdata, handles)

% hObject handle to spatiu (see GCBO)

% eventdata reserved – to be defined in a future version of MATLAB

% handles structure with handles and user data (see GUIDATA)

a=get(handles.popupmenu7,'Value');

b=get(handles.popupmenu8,'Value');

subplot(1,1,1,'Parent',handles.panel_vizualizare);

x=[handles.v(:,a) handles.v(:,b)];

if (handles.stat==1)

gscatter(handles.v(:,a),handles.v(:,b),handles.clase)

end

if (handles.stat==2)

gscatter(handles.v(:,a),handles.v(:,b),handles.clknn)

end

if (handles.stat==3)

gscatter(handles.v(:,a),handles.v(:,b),handles.clsvm)

end

if (handles.stat==4)

gscatter(handles.v(:,a),handles.v(:,b),handles.clmap)

end

%plot(handles.v(:,a),handles.v(:,b),'b*');

%xlabel('f1','FontSize',6)

%ylabel('f2','FontSize',6)

%title('spatiu parametrilor','FontSize',8);

%scatterplot(x,handles.panel_vizualizare)

guidata(hObject, handles);

% – Executes on slider movement.

function slider5_Callback(hObject, eventdata, handles)

% hObject handle to slider5 (see GCBO)

% eventdata reserved – to be defined in a future version of MATLAB

% handles structure with handles and user data (see GUIDATA)

maxx=get(hObject,'Max')

val =maxx+3-round(get(hObject,'Value'))

if (val>=3)

cla(handles.b1)

cla(handles.b2)

cla(handles.b3)

if (handles.stat==2)

handles.b1=subplot(3,1,1,'Parent',handles.vizual);

imshow(handles.imaget(:,:,:,handles.imag_knn(val-2)))

handles.b2=subplot(3,1,2,'Parent',handles.vizual);

imshow(handles.imaget(:,:,:,handles.imag_knn(val-1)))

handles.b3=subplot(3,1,3,'Parent',handles.vizual);

imshow(handles.imaget(:,:,:,handles.imag_knn(val)))

end

if (handles.stat==3)

handles.b1=subplot(3,1,1,'Parent',handles.vizual);

imshow(handles.imaget(:,:,:,handles.imag_svm(val-2)))

handles.b2=subplot(3,1,2,'Parent',handles.vizual);

imshow(handles.imaget(:,:,:,handles.imag_svm(val-1)))

handles.b3=subplot(3,1,3,'Parent',handles.vizual);

imshow(handles.imaget(:,:,:,handles.imag_svm(val)))

end

if (handles.stat==4)

handles.b1=subplot(3,1,1,'Parent',handles.vizual);

imshow(handles.imaget(:,:,:,handles.imag_map(val-2)))

handles.b2=subplot(3,1,2,'Parent',handles.vizual);

imshow(handles.imaget(:,:,:,handles.imag_map(val-1)))

handles.b3=subplot(3,1,3,'Parent',handles.vizual);

imshow(handles.imaget(:,:,:,handles.imag_map(val)))

end

end

guidata(hObject, handles);

% Hints: get(hObject,'Value') returns position of slider

% get(hObject,'Min') and get(hObject,'Max') to determine range of slider

% – Executes during object creation, after setting all properties.

function slider5_CreateFcn(hObject, eventdata, handles)

% hObject handle to slider5 (see GCBO)

% eventdata reserved – to be defined in a future version of MATLAB

% handles empty – handles not created until after all CreateFcns called

% Hint: slider controls usually have a light gray background.

if isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))

set(hObject,'BackgroundColor',[.9 .9 .9]);

end

% – Executes on button press in pushbutton10.

function pushbutton10_Callback(hObject, eventdata, handles)

% hObject handle to pushbutton10 (see GCBO)

% eventdata reserved – to be defined in a future version of MATLAB

% handles structure with handles and user data (see GUIDATA)

if (handles.stat==1)

set(handles.panel_statistica,'Visible','off');

set(handles.panel_kmeans,'Visible','on');

else

set(handles.panel_statistica,'Visible','off');

set(handles.panel_kmeans,'Visible','off');

set(handles.panel_super,'Visible','on');

set(handles.panel_statistica,'Visible','off');

set(handles.pushSVM,'visible','off');

set(handles.pushknn,'visible','off');

set(handles.pushmap,'visible','off');

set(handles.button0,'Visible','off');

set(handles.button1,'Visible','off');

set(handles.imag_antrenare,'Visible','off');

set(handles.vizual,'Visible','on');

set(handles.slider5,'Visible','on');end

Anexa 2

function [v] = trasaturi(a)

%extragere trasaturi spectrale

%cuantizare imageta cu 3 nivele pt rosu si verde si 2 nivele pt albastru

img=double(a);

img=cuantizare(img);

red=img(:,:,1);

green=img(:,:,2);

blue=img(:,:,3);

[n,m]=size(red);

%figure,imagesc(red),colormap(gray(256))

hr=hist(reshape(red,1,[]),1:3)/(n*m);

hg=hist(reshape(green,1,[]),1:3)/(n*m);

hb=hist(reshape(blue,1,[]),1:2)/(n*m);

%figure, bar(1:3,hr);

spectral=[hr hg hb];

%extragere trasaturi de textura

%transformare imagine din rgb in gray

img_gray=rgb2gray(a);

%figure,imshow(img_gray)

%realizare matrice de coocurenta pe 8 nivele de gri

%se poate schimba nr de nivele 'NumLevels'

glcm=graycomatrix(img_gray);

%calcul parametrii textura pe matricea de coocurenta

[Ng,Ng]=size(glcm);

[n,m]=size(img_gray);

P=(1/((n-1)*(m-1)))*glcm;

pxpy=zeros(1,2*Ng);

pxmy=zeros(1,Ng);

p=zeros(1,Ng);

mean=0;

H=0;

for i=1:Ng

for j=1:Ng

pxpy(i+j)=pxpy(i+j)+P(i,j);

pxmy(abs(i-j)+1)=pxmy(abs(i-j)+1)+P(i,j);

p(i)=p(i)+P(i,j);

end

mean=mean+i*p(i);

if (p(i)~=0)

H=H+p(i)*log(p(i)) ;

end

end

var=0;

hxy1=0;

hxy2=0;

for i=1:Ng

for j=1:Ng

if (p(i)*p(j)~=0) hxy1=hxy1-P(i,j)*log(p(i)*p(j));end

if (p(i)*p(j)~=0) hxy2=hxy2-p(i)*p(j)*log(p(i)*p(j));end

end

var=var+p(i)*((i-mean)^2);

end

f1=0;f2=0;f3=0;f4=0;f5=0;f6=0;f7=0;f8=0;f9=0;f10=0;f11=0;

for i=1:Ng

for j=1:Ng

f1=f1+P(i,j)^2;

f5=f5+P(i,j)/(1+(i-j)^2);

if (P(i,j)~=0) f9=f9-P(i,j)*log(P(i,j));end

f3=f3+i*j*P(i,j);

f4=f4+(i-mean)^2*P(i,j);

end

end

f3=(1/var)*f3-mean^2;

suma=sum(sum(P));

for k=1:Ng

f2=f2+(k-1)^2*suma;

sum2=0;

for l=0:Ng-1;

sum2=sum2+l*pxmy(k);

end

f10=f10+pxmy(k)*(k-1-sum2)^2;

if (pxmy(k)~=0) f11=f11-pxmy(k)*log(pxmy(k));end

end

for k=1:2*Ng-1

f6=f6+(k-1)*pxpy(k);

if (pxpy(k)~=0) f8=f8-pxpy(k)*log(pxpy(k));end

end

for k=1:2*Ng-1

f7=f7+(k-1-f6)^2*pxpy(k);

end

f12=0;f13=0;

if(H~=0) f12=(f9-hxy1)/H;end

if (1-exp(-2*abs(hxy2-f9))>=0) f13=sqrt(1-exp(-2*abs(hxy2-f9))); end;

textura=[f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12 f13];

v=cat(2,spectral,textura);

end

function [I] =cuantizare(a)

red=a(:,:,1);

green=a(:,:,2);

blue=a(:,:,3);

%cuantizare rosu

red(red<100)=1;

red(red>=100&red<150)=2;

red(red>=150)=3;

%cuatizare verde

green(green<100)=1;

green(green>=100&green<150)=2;

green(green>=150)=3;

%cuantizare albastru

blue(blue<125)=1;

blue(blue>=125)=2;

I=cat(3,red,green,blue);

end

function [imagDinClas,p]= ImagDinCls(imaget,clase,clasa);

[r,c,v]= find(clase==clasa);

imagDinClas = imaget(:,:,:,r);

[r,c,v,p]=size(imagDinClas);

function [clase,centru] = kmans(v,claseKmeans);

[clase,centru] = kmeans(v,claseKmeans,'Distance','city');

%clase

function[imag_knn,p]=knn_clasf(v,train,group)

p=knnclassify(v,train,group)

[r,c,v]=find(p==1);

imag_knn=r;

end

function[imag_map,class]=map_clasf(v,train,group)

class=classify(v,train,group,'quadratic')

[r,c,v]=find(class==1);

imag_map=r;

end

function [imag_svm,clsvm]=svm_clasf(train,group,v)

svmStruct=svmtrain(train,group);

[r,c]=size(v);

j=1;

for i=1:r

t=svmclassify(svmStruct,v(i,:))

clsvm(i)=t;

if (t==1) imag_svm(j)=i;

j=j+1;

end

end

end

function [imaget,v]=proiect(imgdirectory)

tic

%imgdirectory='D:\facultate\licenta\eu\baza de imag1';

imgfiles=dir([imgdirectory '/*.jpg']);

v=zeros(0,21);

j=1;

for k=1:length(imgfiles)

filename=[imgdirectory '/' imgfiles(k).name];

I=imread(filename);

%figure,image(I)

%formare imagete 300*300

[N,M,t]=size(I);

for i=1:300:(M-299)

for t=1:300:(N-299)

imageta=I(t:(t+299),i:(i+299),:);

imaget(:,:,:,j)=imageta;

j=j+1;

%extragere trasaturi spectrale si de textura pentru fiecare imageta

v=[v;trasaturi(imageta)];

end

end

end

%normalizare vector trasaturi

minv=min(v);

maxv=max(v);

[rv,cv]=size(v);

for j=1:cv

for i=1:rv

v(i,j)=(v(i,j)-minv(j))/(maxv(j)-minv(j));

end

end

%v=normc(v);

%[clase,centru] = kmeans(v,claseKmeans);

%[r,c,v]= find(clase==clasa);

%imagDinClas = imaget(:,:,:,r);

%hFig = figure('Toolbar','none','Menubar','none');

%hIm = montage(imaget(:,:,:,r));

%hSP = imscrollpanel(hFig,hIm);

%set(hSP,'Units','normalized', 'Position',[0 .1 1 .9]);

toc

end

Similar Posts