Sunteți pe pagina 1din 6

Laborator IX

Transformata KLT. Analiza in Componente Principale


In analiza statistica, masivele de date sunt organizate sub forma unei
matrice MxN unde M reprezint numrul indivizilor iar N numrul
caracteristicilor. Pentru o asemenea colecie de date, se pune problema
analizei corelaiei/legturii care exista intre caracteristicile msurate prin
intermediul matricei de covariana precum si reprezentarea mai compacta a
masivului de date : trecerea dintr-un spaiu RN (spaiul caracteristicilor) intrun spaiu redus RK definit de o serie de vectori care aproximeaz cel mai bine
datele masivului.
I.

Corelaia liniara intre doua variabile. Matricea de covariana.

Sa consideram perechile (x,y) de pixeli vecini dintr-o imagine


monocromatica. Mulimea perechilor (x,y) poate fi considerata ca o serie de
realizri pentru doua variabile aleatoare X si Y. Reprezentarea grafica in
planul 2D ne sugereaz faptul ca exista o anumita direcie de aliniere a
punctelor (x,y), ceea ce indica existenta unei corelaii intre cele doua
variabile, corelaie determinata de redundanta pixelilor vecini intr-o imagine
naturala. O msura a corelaiei dintre doua variabile X1 si X2 este matricea
de covariana :

Direcia principala in care punctele variaz este data de axa U iar direcia
secundara de axa V, ortogonala acesteia. Daca originea sistemului de
coordonate (U,V) este plasata in punctul mediu (centrul de greutate) al
punctelor (x,y), se obine o reprezentare mai compacta a datelor in sensul ca
in noua reprezentare (u,v) datele vor fi complet decorelate.
Pentru un set de date, Analiza in Componente Principale se refera la
determinarea sistemului de axe definit de principalele direcii in care datele

variaz : axele U si V. Daca in plus, variaia lui V este redusa in raport cu


variatia lui U, setul de date ar putea fi reprezentat doar prin intermediul lui U,
ducnd astfel la reducerea dimensiunii problemei.
a) Rulati prima parte a scriptului labklt.m pentru a observa aspectele
explicate anterior.
II.

Corelaia dintre componentele R, G si B ale unei imagini color.

Componentele principale se pot calcula prin intermediul valorilor si vectorilor


proprii ai matricei de covariana. Vectorul propriu corespunztor celei mai
mari valori proprii reflecta direcia cu cea mai mare variaie, cel
corespunztor urmtoarei valori proprii a doua direcie de variaie ca
importanta, s. a. m. d. Vectorii proprii sunt ortogonali si de obicei specificai
in forma normalizata. reprezint matricea diagonala ce are pe diagonala
principala valorile proprii iar celelalte elemente sunt nule.

Pentru o imagine color, ne propunem studiul redundantei in sensul corelaiei


liniare care exista intre componentele R, G si B. Decorelarea completa a celor
3 componente se realizeaz prin intermediul transformatei KLT; in practica
nsa se prefera o serie de transformate liniare in alte spatii de culoare (ex.
YUV, YCbCr) pentru decorelarea pariala a celor 3 componente spectrale.
Care credei ca este motivul acestei alegeri ?
a) Rulai a doua parte a scriptului labklt.m pentru a observa corelarea care
exista intre valorile R, G si B din cadrul unei imagini color.
b) Refacei imaginea RGB doar prin considerarea a 2 dintre cei 3 vectori
proprii.
c) Cuantificai componenta Y1 cu un pas de cuantificare ales (ex. 10) si
refacei imaginea.
III.

Recunoaterea fetelor prin metoda EigenFaces

Recunoaterea faciala constituie un exemplu practic de folosire a analizei in


componente principale, prin reducerea numrului de variabile pentru
reprezentarea unei fete. Vom considera ca avem la dispoziie un numr de
imagini de aceeai dimensiune pentru un numr de persoane dintr-o baza de
date; pentru aceeai persoana putem avea una sau mai multe ipostaze. Vom
considera ca in orice imagine fata unei persoanei este centrata.
Astfel, fiecare pixel al unei imagini poate fi considerat o variabila iar o fata se
reprezint astfel ca un vector de P variabile (unde P reprezint numrul de
pixeli). Numrul acestor variabile fiind foarte mare, vom ncerca sa reducem

complexitatea comparrii a doua fete prin aproximarea unei fete printr-un


numr mai mic de variabile. O imagine de n pixeli poate fi considerata astfel
un punct in spaiul imaginilor (spaiu n-dimensional).
Fie vectorul linie px = (i1; i2; i3; in) unde i1, i2 reprezint intensitile
pixelilor. Vectorul se formeaz prin transformarea imaginii intr-un vector linie;
astfel pentru o imagine de 128x128 vom avea dimensiunea 16384 (16K) :

Avand la dispoziie N imagini, fiecare de n pixeli, intregul set de imagini


poate fi reprezentat ca o matrice D de dimensiuni N x n, in care fiecare
imagine reprezint o linie:

Primul pas in PCA (Analiza in Componente Principale) este mutarea originii


datelor in mijlocul celor n variabile, operaie ce este echivalenta cu scderea
valorii medii a variabilelor din fiecare imagine. In cazul nostru, imaginea
medie (fata medie) se calculeaz fcnd media pe toate coloanele matricei
D. Aceasta fata medie urmeaz a fi extrasa din fiecare imagine a setului de
date D. Matricea diferena obinuta astfel va fi notata cu U. Pe exemplul
considerat media celor n coloane este :

Calculul caracteristicilor faciale / componentelor principale


Primul pas in determinarea componentelor principale ale matricei D este
calculul matricei de covariana a matricei U; se poate observa foarte usor ca

datorita extragerii valorii medii de pe fiecare coloana a matricei D, matricea


de covariana de dimensiuni nxn se poate exprima astfel : C = UT x U / N.
Se calculeaz apoi valorile proprii si vectorii proprii ai matricei de covariana.
In urma normalizrii vectorilor proprii, mulimea lor va forma o baza
ortonormata in spaiul Rn:

Vom exprima acum toate liniile matricei U (fostele fete din care s-a sczut
fata medie) in baza formata din vectorii proprii. Fiecare vector propriu
corespunde unei valori proprii care reprezint variaia datelor matricei U de-a
lungul vectorului propriu corespunztor. Prin urmare, in loc sa folosim toi cei
n vectori proprii vom folosi doar m (m<<n) reprezentativi care corespund
celor mai mari m valori proprii. In mod obinuit, pentru problema
recunoaterii faciale valoarea lui m este destul de mica (intre 20 si 50).
Astfel, vom exprima liniile matricei U in baza m-dimensionala formata din cei
m vectori alei:

Fiecare linie va avea m coeficieni care se obin prin proiecia liniei respective
(produsul scalar) pe fiecare dintre vectorii alei. Astfel, o imagine px = (i1;
i2; i3; in) se exprima in noul spaiu al vectorilor alei (spaiul
componentelor principale) astfel :

Am reuit astfel sa reducem reprezentarea imaginii de la un spaiu ndimensional (n=128x128) la un spaiu m-dimensional (m=20-50). Imaginea
px iniiala poate fi de asemenea reconstruita aproximativ din cei m vectori
prin aplicarea transformrii inverse:

Se poate arata ca prin alegerea celor m vectori proprii corespunzatori celor


mai mari m valori proprii se minimizeaz eroarea ptratica de reconstrucie a
matricei D (orice ali vectori conduc la o eroare mai mare). Alegerea lui m
depinde nsa de setul de date D; pentru aceasta se poate cuta un m
folosind coeficientul PSNR intre imaginea originala si cea reconstruita sau se
poate adopta urmtoarea metoda. Avnd in vedere ca suma valorilor proprii
este egala cu suma variaiilor pe cele n direcii date de vectorii proprii
corespunztori, se poate calcula procentajul de variaie pstrat prin
alegerea a i vectori principali astfel :

Se alege m=i astfel ca procentajul sa fie cel puin egal cu un prag dat (ex.
95%).

Recunoasterea unei fete


Avnd data o imagine de test py, din ea se va scdea imaginea medie si apoi
aceasta va fi exprimata (proiectata) in baza m-dimensionala a vectorilor
proprii alei, rezultnd un set de coeficieni w=(w1,w2, , wm). Imaginea
cea mai apropiata fata de imaginea de test va fi determinata prin evaluarea
unei distante (ex. euclidiana) intre vectorul w si vectorii w din baza de
imagini :

Implementarea si testare
In directorul specific acestui laborator vei gsi setul de imagini de invatare
(training) precum si doua directoare cu imagini de test (test si strangers).
a) Rulai treptat scriptul learn.m pentru a vedea modul in care sunt
implementate ideile anterioare si cum este construita matricea
vectorilor de caracteristici w din spatiul m-dimensional.
b) Completai apoi scriptul recognise_stud.m pentru a testa validitatea
metodei.
c) Ce influenta au asupra metodei urmtorii parametri : numrul de
imagini/persoana, numrul de coeficieni m, distanta aleasa ?
IV.

Compresia imaginilor prin transformatele KLT si DCT

In ultima parte a acestui laborator ne propunem sa vedem modul in care


transformata KLT si analiza in componente principale poate fi aplicata la
compresia imaginilor, comparnd totodat performantele acesteia cu mult
mai cunoscuta transformata DCT.
Analiza unei imagini se va face prin impartirea acesteia in blocuri 8x8;
fiecare bloc 8x8 se va scrie apoi ca o linie de 64 de pixeli iar apoi toate
blocurile vor fi puse intr-o matrice de MxN/64 linii si 64 coloane (procedeu
asemntor celui folosit in metoda Eigenfaces).
In continuare se va proceda in mod similar ca si in cazul recunoaterii faciale:
se va face descompunerea matricei formate in componente principale si vom
alege K din cei 64 vectori proprii pentru reconstrucia fiecrui bloc al

imaginii. Blocurile astfel reconstruite (linii de 64 valori) trebuiesc repuse la


locul lor in cadrul imaginii. Aceasta constituie reprezentarea imaginii folosind
doar K coeficieni KLT.
Pentru metoda DCT, vom proceda astfel : fiecare bloc 8x8 va fi aproximat
prin cei mai reprezentativi K coeficieni DCT considerai in ordinea zigzag (a
se vedea functiile zigzag.m si izigzag.m). Blocurile sunt apoi reconstruite prin
transformata DCT inversa si repuse in cadrul imaginii.
Scriptul kltdct.m contine implementarea ideilor descrise anterior.
a) Testai diferite valori pentru K si observai diferenele intre imaginea
originala si reconstrucia ei prin intermediul coeficientului PSNR.
b) Testai scriptul pentru diferite imagini : lena, baboon, etc. Cum variaz
numrul de coeficieni K ales pentru PSNR=40dB ? Explicai.
c) De ce nu s-a adoptat transformata KLT in standardul de compresie JPEG
dei ofer rezultate superioare fata de transformata DCT ?

S-ar putea să vă placă și