Professional Documents
Culture Documents
1. Introducere.......................................................................................................................3
2. Recunoasterea fetei (vedere de ansamblu)......................................................................4
2.1. Aplicatii.....................................................................................................................4
2.2.Solutii.........................................................................................................................5
2.2.1. Analiza Karrhunen-Loeve (Eigenfaces)............................................................5
2.2.2.Metodele de baza de caracateristica vectoriala...................................................5
2.2.3. Modele deformabile...........................................................................................5
2.2.4. Machete bazate pe vederi multiple....................................................................5
2.2.5. Unduieli.............................................................................................................5
2.2.6. Alte Programe....................................................................................................6
2.3. Rezultate...................................................................................................................6
3. Faze ale recunoasterii fetei..............................................................................................6
3.1. Achizitia de imagine.................................................................................................6
3.2. Prelucrarea caracteristicilor......................................................................................6
3.3. Segmenatrea..............................................................................................................6
3.4. Extractia caracteristica..............................................................................................7
3.5. Cautare in baza de date.............................................................................................7
4. Achizitia de imagine........................................................................................................7
4.1. Dispozitiv de captura................................................................................................7
4.2. Conditii esentiale ambientale....................................................................................8
5. Prelucrarea imaginii.........................................................................................................9
5.1. Filtre de netezire.......................................................................................................9
5.1.1.Filtru mediu........................................................................................................9
5.1.2.Filtru median.....................................................................................................10
5.1.3.Segmentarea Reddi...........................................................................................11
5.1.4.Generalizarea segmentatiei Reddi.....................................................................11
5.2. Detectarea de muchie..............................................................................................12
5.2.1.Detectarea de muchie Prewitt...........................................................................12
5.2.2.Detectarea de muchie Sobel..............................................................................13
5.2.3.Detectarea de muchie SUSAN..........................................................................13
5.3.Egalarile de histograma...........................................................................................14
5.4.Segmentarea culorii de baza....................................................................................15
5.5. Transformarea morfologica....................................................................................15
6. Segmentarea...................................................................................................................17
6.1. Primul pas. Culoarea bazata pe regiuni selectate....................................................18
6.2 Prelucrarea anticipata a formei fetei........................................................................21
6.2.1 Selecteaza mai complet umplutura regiuniei,...................................................21
6.2.2 Minimalizarea regiuni de interes......................................................................27
6.3 Sporirea bazata pe intensitati ale conturului fetei....................................................29
6.3.1 Aproximarea fetei.............................................................................................30
6.3.2 Producerea celei de a doua fete........................................................................31
6.3.3 Concluzii ale acestei abordari...........................................................................33
6.4 Largirea conturului fetei bazata pe profilul lateral..................................................34
1
6.4.1 Aflarea profilului lateral folosind metoda SUSAN..........................................34
6.4.2 Selectarea regiuni..............................................................................................38
6.4.3 Netezirea conturului..........................................................................................40
7. Extragerea caracteristicilor............................................................................................43
7.1. Caracteristici în funcţie de distanţă şi raţie.............................................................43
7.1.1 Detectarea sprâncenelor....................................................................................43
7.1.2 Detectarea ochilor.............................................................................................43
7.1.3 Detectarea nasului.............................................................................................44
7.1.3 Detectarea gurii.................................................................................................44
7.1.5 Modelarea conturului feţei................................................................................44
7.2. Alte caracteristici....................................................................................................45
7.2.1. Proprietăţi geometrice......................................................................................45
7.2.2. Transformări Fourier şi transformări Fourier discrete.....................................48
7.2.3. Transformările Cosine discrete........................................................................49
7.3. Decompresie wavelet a imaginilor feţei.................................................................51
7.4. Probleme în extragerea caracteristicilor.................................................................52
8. Căutarea în baza de date................................................................................................53
8.1. Abordări pentru căutarea feţelor.............................................................................53
8.2. Identificare folosind distanţele de caracteristici.....................................................54
9. Ghidul de aplicaţie segmentat........................................................................................55
9.1. Detalii ale implementării........................................................................................55
9.1.1. Interfaţa utilizator............................................................................................56
9.1.2 Capturarea video...............................................................................................56
9.1.3. Rutine de procesare a imaginii........................................................................56
9.2. Mini Ghidul utilizator.............................................................................................57
10. Concluzii şi îmbunătăţiri ulterioare.............................................................................58
Referinţe............................................................................................................................61
Anexa A - Algoritmi Matlab..............................................................................................63
Anexa B - Iniţializarea DirectX.........................................................................................68
2
1. Introducere
Recunoasterea automata a fetei umane este o problema foarte complexa rezolvata
de oameni cu o pereche de senzori foarte complex- ochii, si cu procesorul lor principal
creierul.Rezultatul de recunoastere a identitatii folosind sisteme automate este un process
foarte complex, deoarece mecanismele folosite de creierul nostru pentru a le rezolva sunt
inca insufficient cunoscute.
3
Rezultatele aplicatiei au fost acceptabile: tastand intr-o baza de date cu 10-20
oameni, raportul de recunoastere a fost aproximativ de 80-90%. Noi am identificat niste
probleme pe care ne-am propus sa le eliminam in viitor. Aceste probleme sunt:
dependenta de mediul inconjurator, calitatea modesta a fotografiei capturata, algoritmi
precari pentru detectia unor caracteristici si nevoia de fundal monocrom.
Aceasta munca infatiseaza rezultatul obtinut in ultimul an. Cea mai importanta
parte este focalizarea fetei, separatea acesteia de imaginea fundalului si alegera
rezultatului correct dar pe scurt infatisarea intregului process de recunoastere a fetei de la
imaginea capturata, prin la extragerea caracteristicilor corespunzatoare figurii pana la
identificarea subiectului.
Urmatoarele capitole sunt structurate dupa cum urmeaza: Capitolul 1 prezinta
introducerea cititorului la recunoasterea fetei si prezinta cateva din solutiile prezentului.
Capitolul 2 pe scurt prezinta fazele recunoasterii. Fiecare capitol de la 3 la 7 prezinta una
din fazele: Achizitia de imagine, procesarea, localizarea fatei cu segmentare de imagine,
extragerea caracteristicilor si cautarea in baza de date. Capitolul 8 prezinta aplicatia ce a
fost scrisa sa testeze fazele descoperite si prezentarea in fazale anterioare, in special
segmentarea. Si in cele din urma capitolul 9 ce contine concluziile luate.
4
in intregime automatizate.
Securitatea ATM
Solutiile multor banci, ATM-urile si altor aplicatii critice de siguranta ar putea
cere recunoasterea fetei in masura in care acum se cer parole.
Interfata om/computer
Statiile de lucru ar trebui sa poata sa recunoasca utilizatorii sau ar trebui sa
captureze infatisarea utilizatorului, eliminand nevoia de lucru manual de calitate precisa.
2.2.Solutii
Solutiile problemelor de mai sus sunt prezentate in multe moduri partiale. Acestea
se schimba de la constrangeri la constrangeri. Nu exista o metoda generala aplicabila.
Una dintre modurile folosite sau propuse sunt prezentate in urmare.
2.2.5. Unduieli
In MENG00 un mod bazat pe unduieli este prezent. Vectorii extrasi sunt clasificati
intr-un model Hidden Markov. Este demonstrate ca rezultatele sunt unduieli fata de
metodele conventionale ale machetei.
In GARC99b si GARC00 este prezenta o metoda care extrage saisprezece unde
5
intr-o descompunere de nivel doi. Trasaturile fetei sunt localizate utilizand aceste unde.
Vectorul fetei este obtinut de la valorile regiunilor statistice.
2.3. Rezultate
Solutiile existente functioneaza in circumstante limitate. Exista relatate 80% -
90% succese recunoscute. Desi este un procentaj mare, niciuna dintre metodele cunoscute
este acceptata ca o solutie viabila si generala. Putinele aplicatii functionabile in viata
reala prezinta greseli mari, rezultatele lor sunt nesemnificative.
3.3. Segmenatrea
In recunoasterea fetei, dar si in alte imagini sunt probleme de prelucrare, este
importanta segmentarea imaginilor in complementarea regiunilor si in fundal, sau pentru
a separa imaginea in obiecte cunoscute si examinate. Segmenatrea este o faza importanta,
6
deoarece poate sa hotarasca daca informatia utila este extrasa sau este ignorata: fazele
urmatoare pot fi compromise cu usurinta daca acest pas nu face treaba exacta. Dar
folosirea acestui pas poate reduce la extreme urmatoarele faze prelucrate cu effort.
4. Achizitia de imagine
4.1. Dispozitiv de captura
Achizitia de imagine este primul pas al procedurii prelucrarii imaginii. Fotografia
de intrare trebuie sa fie de format digital, care poate fi obtinuta din mai multe surse.
Cel mai simplu si ieftin mod de a obtine o imagine digitala este de a scana poza
unui aparat de fotografiat normal cu hartia de scaner ieftina si de calitate din zilele
noastre. Aceasta metoda este simpla, ieftina si rezulta o imagine digitala de calitate buna,
dar principalul dezavantaj este timpul prelucrarii pozelor extrem de mult pana ajunge la
imagine digitala.
Dezavantajul timpului lung al capturarii poate fi inlaturat folosind echipament
capabil de a obtine fotografii in format electronic. Dispozitivul cel mai des folosit de
aceasta categorie este camera web. Aceasta poate capta in format digital ori fotografii sau
filme (succesiuni de fotografii). Rezolutia camerelor web este de obicei mai rea decat a
fotografiilor scanate. Calitatea imaginii (semnal/marja de eroare, acuratetea culoriilor)
este in general rea, deoarece senzorii CMOS ieftini care sunt folositi inautrul acestor
aparate de fotografiat – desi exista niste aparate de fotografiat CCD capabile pentru a
captura imagini de calitate buna, dar totusi rezolutia lor este mica.
Avansarile tehnicii in echipamente digitale permit folosirea eficienta a
dispozitivelor video. Aparatele analogice de fotografiat mai vechi, cu un card care obtine
o imagine video de calitate buna permite o viteza de capturare mai mare (de obicei
7
standard PAL 25Hz sau NTSC 29.999Hz TV semnal cadre/secunda ) si o calitate buna a
fotografiei. Noile camere complet digitale permit o viteza superioara si performanta de
calitate. Senzorii CMOS- cu calitate medie- sau CCD –cu calitate mai buna- captureaza
imaginile reale direct in format digital. Dispozitivele pot stoca imaginea in format digital,
sau o pot transfera prin o largime de banda inalta la alt echipament digital (ca un
computer personal).
Deoarece noi credem ca o calitate buna a imaginii imbunatateste rezultatul in
aceasta lucrare folosind pentru captura camera digitala cu rezolutia standard 720x576
PAL.
Aparatele de fotografiat digitale sunt o tehnologie noua si au o dezvoltare rapida a
dispozitivelor de capturare. Acestea difera in rezolutia dispozitivelor pentru generarea
semnalelor – senzorii lor sunt CCD, camera cu senzori CMOS sunt considerate
echivalente cu cele din categoria camerelor web. Aparatele de fotografiat bune sunt
considerate cele care au peste 3 mega-pixeli. Acestea pot fi folosite pentru capturarea
fotografiilor, in sistem digital, daca au o interfata corespunzatoare. Acest lucru este
satisfacut de 99% dintre aparatele de fotografiat: au cel putin unul in serie, fire-wire,
analogic (compozita), sau cea mai frecventa interfata USB.
Figura 2. Schimbarea luminii. In mediu ambiental intunecos, aparatul de fotografiat nu poate executa o
poza de calitate buna. Daca imaginea capturata nu este marita, apoi nu poate fi folosita
8
In aceasta lucrare am stabilt sa cerem conditii diferite, mai putine constrangeri,
mai simplu de realizat si ma bine definite. Conditiile sunt urmatoarele:
- Fata este descoperita
- Fata acopera mai mult de 40% din poza
- Aparatul de fotografiat este
- Subiectul identificat are tenul deschis la culoare (alb, galben sau masliniu)
- Existenta sau absenta parului nu conteaza
- Fata persoanei este fara barba
- Mustata este posibila
- Va fi luata in considerare cea mai mare fata
- Capul este drept in pozitia verticala normala, cu ochii fixati la aparatul de
fotografiat
- Aparatul de fotografiat este la nivelul ochiilor
- Sursa luminii este in spatele si deasupra capului, in linie cu capul si aparatul
5. Prelucrarea imaginii
Pasul prelucrarii include operatiuni simple, care aplica operatii aritmetice simple
la fiecare pixel al imaginii, rezultand o imagine cu caracteristici sporite. Aceste operatii
variaza de la lumina simpla si culori intense la mucdie de detectare complexa si
algoritmi de segmentare. In cele ce vor urma vor fi prezente filtre frecvent folosite.
5.1.1.Filtru mediu
Acest filtru netezeste valorile pixelilor, efectuand non-important sau de
importanta medie a valorilor pixelilor vecini. Miezurile pot fi de mai multe tipuri, unele
dintre
1 1 1 1 1
1 1 1 1 10 1 0 1 1 11 2 1
1
, 1 1 1 1, 1 2 4 2, 1
Ele sunt : 1 1 1
16 25 1 1 1 1 1.951 1 1 1 10 1 0 1 1 11 2 1
1 1 1 1 1
9
2 3 6 7 8
3 4 5 8 9
6 6 9 5 6
7 4 2 3 4
8 2 3 2 2 x xxx x
x 4.8 5.8 7.8 x
x 5.2 5.1 5.6 x
x 2.0 1.0 4.0 x
x xxx x
Figura 3. Exemplu de matrice Figura 4. Rezulta cu a-2-a kernel
Filtrul mediu este folositor cand eroarea este distribuita uniform in imagine. Daca
ei sunt distribuiti la intamplare, atunci vor fi prezenti deasemenea in rezultat. Alta lipsa al
filtrului este ca netezeste nu numai erorile, dar si detaliile folositoare, deasemenea. O
muchie ascutita dupa ce filtrul este aplicat va face imaginea rezultata cenusie.
5.1.2.Filtru median
Acest filtru este foarte util cand sunt erori prezente. Aceasta eroare modifica cu
distribuirea intamplatoare unii pixeli ai imaginii. Acesti pixeli particulari au o intensitate
de valoare mai mult sau mai putin decat ceilalti din imprejurimile lor.
Filtrul median aplica la fiecare pixel: (2N + 1)*(2N + 1) o matrice de masca larga.
Intensitatea valorii pexelilor din matrice sunt sortate in crestere (2N+ 1)*(2N+ 1) in
functie de ordinea sortarii. Rezultatul filtrului este luat de la 2 valori.
Aceasta triere este foarte utila pentru a elimina pixelii cu valori care sa aiba o
diferenta mare intre ei si valorile vecinilor. De exemplu in cazul unei matrice de 3 x 3
(N=3) daca pixeli vecini ai valorii 9 sunt aceiasi ca in Figura 6. Rezultatul sortarii este 2,
2, 3, 3, 4, 3, 6, 8, 9 si acesta este rezultatul valorii pixelului current care va schimba din 9
in 4. Dupa cum este prezentat in Figura 7 unii pixeli pot sa fie schimbati, depinzand de
pixelul vecin.
10
Figura 6 Figura 7
Figura 8. Filtru Median. Imagine cu erori de tip sare si piper in stanga. Rezultatul imaginii
filtrate in dreapta. Se poate vedea foarte bine ca filtrul fereste muchiile obiectelor .
5.1.3.Segmentarea Reddi
Algoritmul original Reddi a aparut in [REDD84]. Autorii prezinta cum ei pot
generalizeze algoritmul de segmentare Otsu [OTSU79] pentru a segmenta o imagine cu
un obiect real in trei regiuni gri: regiunile obiectului stralucitor, regiunea umbrei de
mijloc si regiunea intunecoasa pentru fundal.Algoritmul interativ rezolva (1),rezultand
doua praguri de sensibilitate pentru lumina, mijloc si regiunile stralucitoare [OTSU79]
11
determina precum multe preguri de sensibilitate sunt necesare folosind (2)
Pragurile de sensibilitate ale segmentului ki in imaginea originala a zonei n+2, care poate
fi sursa de informatie de calitate extrasa din imagine.
Aceasi imagine pentru Figura 9, segmentata in 5 regiuni este prezentata in Figura 10.
Figura 10. Generalizarea segmentarii Reddi. Regiunile intunecoase pana la cele luminoase sunt
prezentate de la stanga la dreapta
Muchia este detectata daca valoarea derivatei este mai mare decat o valoare specificata –
de obicei determinate din intregul set de valori derivate
1 1 1 1 1
1 1 1 1 3
12
2 2 2 2 2
8 8 7 7 7
0 0 0 -2 X
7 8 7 7 7
-1 -1 -1 -1 x
-6 -5 -5 -5 X
0 1 0 0 X
x x x x x
Pentru matricea de la Figura 11, rezultatul Filtrului Sobel este prezentat in figura 13.
Poate fi vazut derivatul maxim care corespunde muchiei.
Figura 13. Rezultatele filtrului Sobel. Derivatele Y si X si suma celor doua derivate sunt prezentate de la
stanga la dreapta
Figura 14. Filtrul Sobel: imaginea originala, derivate orizontala, derivate verticala, suma a doua directii
derivate, suma pragului de sensibilitate(valoarea maxima 7*), imagine dupa ce sa aplicat reducerea muchiei
13
5.2.3.Detectarea de muchie SUSAN
De la algoritmul detectarii de muchie de baza la alti algoritmi mai mult sau mai
putin similari au fost derivarati. Forma unica [FLEC94] prezinta un algoritm de valoare
pentru textura mai multa a imaginii. Fata are textura mai putina a imaginii, asa ca accesul
tine cont ca aceasta este mai valoroasa. Cea care face acest lucru este detectarea de
muchie SUSAN.
Principiul SUSAN a fost prezentat in [SMIT95a]. O masca circulara (avand un
pixel de centru cunoscut ca “nucleu”) este prezentat ca cinci pozitii de imagini. Daca
luminozitatea fiecarui pixel dinauntrul mastii este comparat cu luminozitatea mastii
nucleului dupa aceea o suprafata a mastii poate fi precizata care are aceasi (sau similara)
luminozitate ca a nucleului. Aceasta suprafata a mastii este cunoscuta ca “USAN”,
Univalue Segment Assimilating Nucleus.
Acest concept ca fiecare punct din imagine avand asociat cu el o suprafata cu
luminozitate similara este baza principiului SUSAN. Suprafata sau USAN contine multe
informatii despre structura imaginii. Aceasta este efectiv regiunea descoperita la scara
mica.
Algoritmul de detectare a muchiei foloseste o fereastra predeterminata centrata
pe fiecare pixel din imagine. Muchia detectorului de masca SUSAN poate fi rotunda sau
rectangulara. Cele mai bune rezultate pot fi obtinute cu mai multe masti complexe
circulare. Razele de cerc propuse sunt [SMIT95] de 3.4 pixeli (dand o masca de 37
pixeli). Masca este situata la fiecare punct din imagine si pentru fiecare dintre ele
luminozitatea fiecarui pixel dinauntrul mastii este comparata cu acesta in centrul
punctului. La inceput o ecuatie simpla determina comparatia:
(3)
De la c(y,y0) rezulta importanta valoare n pentru fiecare pixel:
14
Figura 15. Detectarea de muchie SUSAN. N, matricile R si imaginea pragului de sensibilitate R
5.3.Egalarile de histograma
Egalarile de histograma au incercat adesea sa mareasca o imagine [SHAP01].
Cele doua conditii pe operator sunt: imaginea rezultata ar trebui sa foloseasca toate
nivelele disponibilesi rezultatul are aproximativ acelasi numar de pixeli la fiecare nivel
gri. Harta de nivele gri nu schimba vederea de ansamblu a imaginii, doar face niste
regiuni mai vizibile. Pragurile de sensibilitate tk al egalarii sunt definite folosind
histograma H(i) a imaginii de ecuatia (6) si (7).
Figura 16. Egalarea de histograma. Imaginea originala si histograma de sus, imaginea netezita
ultima de jos
15
YUV). Frecventele culorilor au diferite histograme construite [SHAP01] sau domeniile
color stiute anterior sunt aplicate sa obtina regiune dorita. Segmentarea culorii este
folosita pentru detectarea fetelor. Acest subiect este tratat detaliat in sectiunea 6.1.
16
Figura 18. Exemplu de matrice
Eroziunea Dilatarea
Deschiderea Inchiderea
6. Segmentarea
In acest capitol este prezentat algoritmul segmentarii. Problema segmentarii este
definite ca: este data arbitraroimagine color, fata gasita in imagine trebuie sa fie gasita si
separate de fundal. Pentru oameni aceasta este usor de facut diferenta dintre culorile
specifice ale fetei si ale fundalului, folosind vederea tridimensionala si cunoscand
conturul specific si tiparul fetei. In viziunea computerului doar ocazional este disponibila
picture 3D, asa ca aceasta metoda poate fi folosita rar. Tiparele fetei si conturul fetei
specific sunt caracteristici complexe, pot fi reprezentate doar de modele complexe, care
sunt mai putin eficiente pentru suprafete mari – acestea vor fi aplicate regiunilor fetei
detectate si vor fi folosite in algoritmul detectarii fetei.
Multe lucrari se ocupa cu segmentarea imaginii. Unele dintre ele ([AMIT98])
trateaza cazuri mai generale, altele incearca sa extraga regiuni si obiecte specifice.
17
Conceptii diferite sunt prezentate in literature. In [WUHU00] autorii folosesc 6-D
RGB si suprafata de culoare HSV utilizeaza tehnici de analiza discriminatorii multiple si
metode probabilistice.
Textura bazata pe segmentare [GUOL00] poate fi o alternativa potrivita. Fata are
texturi particulare in zone specifice. Pielea, parul, ochii, gura, nasul pot fi identificate
bazate pe textural lor si locatia corelata a acestor caracteristici poate fi sursa localizarii
fetei in imagini arbitrare.
In urmatoarele vor fi prezentate urmatoarele moduri: in primulpas folosirea
informatiei culorii imaginii regiunile satisfacatoare ale fetei sunt selectate si in pasul doi
pentru regiunea cea mai probabila este facuca o aproximatie pentru a mari precizia gasirii
fetei. Pentru pasul al doilea sunt date doua alternative.
18
Unde am caracterizat intensitatea imaginii si este egala cu LG; Rg este diferenta lui LR si
LG, si By este diferenta intre LB si media dintre LG si LR:
Texturile corespunzatoare fetei sunt zone ale imaginii putin texturate, astfel
conditia corespunzatoare pentru textura este:
(d)Texture < 1
Intersectia lui (a) … (d) conditiile determina posibili pixeli ai fetei. Conditile de
mai sus sunt facute pentru a fi conditii slabe, pentru a garanta ca majoritatea fetei este
selectata.
Codul sursei din Matlab al intregului algoritm este prezentat in Appendix A.
Rezultate al algoritmului extragerii culorii sunt prezentate in Figura 20, Figura 21,
Figura 22 si Figura 23.
Figura 20. Extragerea culorii. Imaginea originala, Masca I, Masca Rg, Masca By, Masca de
textura, imaginea rezultata dupa aplicarea mastii imaginii originale de la stanga la dreapta, de sus in jos
19
Figura 21. Extragerea culorii. . Imaginea originala, Masca I, Masca Rg, Masca By, Masca de
textura, imaginea rezultata dupa aplicarea mastii imaginii originale de la stanga la dreapta, de sus in jos
Figura 22. Extragerea culorii. . Imaginea originala, Masca I, Masca Rg, Masca By, Masca de
textura, imaginea rezultata dupa aplicarea mastii imaginii originale de la stanga la dreapta, de sus in jos
20
Figura 23. Extragerea culorii. . Imaginea originala, Masca I, Masca Rg, Masca By, Masca de
textura, imaginea rezultata dupa aplicarea mastii imaginii originale de la stanga la dreapta, de sus in jos
Concluzia finala este ca aceasta culoare bazat pe detectare este buna, dar nu destul
pentru gasirea fetei in imagine.
21
si fruntea au o culoare diferita de restul fetei). Aceste zone neselectate trebuie sa constitue
parte a regiunii invecinate. Cel mai usor de realizat aceasta este aplicand algoritmul de
umplere in cascada, astfel umplandu-se zonele care nu se invecineaza. Se poate aplica
apoi metoda de realizare pas-cu-pas a unei regiuni.
Aceasta metoda de exprimare este buna dar nu optima deoarece necesita doua
faze. Daca ceai doi algoritmi ar lucra in tr-o singura faza atunci cel de performanta ar fi
O(n ?m) unde n si m sunt dimensiuni ale imaginii. De accea s-a utilizat un nou algoritm
combinat. Acest algoritm a fost gandit pentru a face toate calculele deoadatautilizand
structuri de date suplimentare.
848
44
848
Figure 24. Vecinatatea Pixelului
Inainte ca algoritmi sa fie descrisi in amanunt trebuie sa explicam diferenta intre
4 si 8, cei 4 vecini de legaruta al unui pixel sunt cei 4 pixeli din dreapta, stanga,deasupra
si dedesuptul pixelului curent ; cei 8 vecini de legatura ai unui pixel sunt cei 8 pixeli
inconjoara. Algoritmul urmator va lua in calcul doi pixeli parte a unei singure zone daca
au o cale de 8 pixeli de legatura intre ei. Daca avem campul din fata o legatura de 8 apoi
parte complementara a imaginii trebuie sa fie o legatura de 4 pe verso. Aceasta este o
observatie importanta care este folosita in tratarea pixelilor din prim plan si de pe
fundal(din umbra)
Partea principala a algoritmului este o scanare secventiala de sus in jos si de la
stanga la dreapta aimaginii. Pentru fiecare pixel se determina culoarea. Culoarea pixelului
inseamna grupul de numere caruia ii apartine. Toti pixelii care formeaza o regiune au
acceasi culoare, in acest algoritm fiecare pixel primeste un cod format dintr-o valoare
numerica. Sunt trei variante (figura 25)
Daca pixelul este de mascare culoarea sa este codata numar intreg pozitiv. In
exemple ei sunt marcati cu numere pozitive in celule gri.
Daca pixelul este de fundal de bordare atunci culoare lui este 0. pixelii de bordare
sunt pixeli de fundal care se afla pe marginea imaginii ori au vecini de margine de
legarura 4. in exemple ei sunt marcari cu 0-uri in celule de culoare alba.
Daca pixelul este de interior atunci culoare primeste codificare cu numere intregi
negative.
Pixelii de interior au conoscut pana de curand la recentele prelucrari vecini numai
pixeli de mascare sau de interiorse va schimba in unul de margine numai daca se
cunoaste ca are vecinii de bordurare.
In exemple ei sunt marcati cu nume intregi subliniate in celule de culoare alba.
In exemple semnul ? este folosit numai daca culoarea pixelului nu este cunoscuta.
In momentul cand pixelul este iontarit (bolded) atunci cand culoarea pixelului din centru
este in procesul de cautare.
22
Operatiile facute depind de fiecare faza de felul pixelului , daca-i de mascare ori
fundal :
a.) Pentru pixeli de mascare :
Se cauta culoarea pixeluilui superior(de sus) si a celui de sus-
dreapta(N_NE)si a celui din stanga si stanga sus. Aceaste grupari sunt facute deoarece
daca scanarea sus-jos stanga-dreapta anunta ca culorile combinate sunt de mascare atunci
ele vor avea acceasi culoare. Daca NE_N si W_NW sunt puncte de masurare si ele sunt
egale(de ex fig.26a) vecinul pixelului este o zona numai astfel culoarea pixelului va fi
data de culoarea vecinatatii.
Daca NE_N si W_NW sunt pixeli de fundal(fig 26 b) atunci culoarea pixelului
este una noua.
Acest pixel va fi primul pixel al unei noi regiuni. Daca N-NE sau W-WE sunt
pixeli de fundal (fig 26 c) atunci culoarea pixelului nu este de fundal. Dac N-NE si W-
WE sunt puncte de mascare si nu sunt egale (fig 26 d)atunci inseamna ca cele doua
regiuni considerate doua regiuni diferite sunt de fapt o singura regiune unita de un pixel.
In acest caz cele doua zone trebuie unite iar culoarea pixelului va fi culoarea vecinatatii.
Dupa unificare culoarea dominanta se va transforma in culoarea mai slaba. Numerele
pixelului celor doua zone se vor insuma. Daca W-NW este mai mare decat N-NE atunci
culoarea culoarea pixelilor ramasi pe pozitie se schimba pentru a ne asigura ca pe linia
urmatoare pixelii vor folosi culoarea corecta a pixelului superior. Nu este ceva strict dar
da posibilitatea realizarii algoritmului in cele din urma ne vom da seamna sin ce culoare
se va schimba culoarea dominanta.
23
Daca unul din vecini este un pixel de bordurare (fig27a) atunci si acest pixel este
de bordurare.
In acest caz daca este un pixel de bordurare numai de interior este mascata acela
este de bordura. Acesta se va pastra pentru toti pixelii de pe un rand, dand astfel
posibilitatea stabilirii valorilor de bordurare.
Daca numai unul din vecini este punct de interior(fig27b) sau cei doi vecini sunt
de interior si au aceeasi culoare atunci pixelul curent este punctul de interior al aceleaiasi
regiuni.
Daca vecinii sunt de interior dar au culori diferite(fig 27d) atunci cele doua culori
sunt unite in acelasi mod cum s-a facut cu pixelii de mascare. Daca cei doi vecini sunt
puncte de mascare(fig27e) atunci o noua zona interna va debuta.
Pentru ultimele trei variante mai este necesara o operatiune : pentru fiecare pixel
de inerior se stocheaza intr-o structura de set vecini de mascare de culoarea celor de
interior. Dupa acest pas de marcare pixelii sunt inconjurati de regiuni de mascare
inconjuratoare. Acest pas poate produce o unire a zonelor de mascare respectiv o regiune
de mascare inconjoara o regiune interna care inconjoara o alta zona de mascare. Eficienta
algoritmului este n m 1 unde 1 reprezinta complexitatea setului add,
unify(adaugare unifica) aceste informatii pot fi implementate cu o structura de datede
stabilire folosind pointerul de stabilire parentala [CRET92]. Acest algoritm are o
prformanta de inserare de 1.cercetarea din structura de stabilire are nevoie de o
performanta intre 1 si n 2 dar aceasta operatie fiind aplicata numai in stadiul fina,
unde este determinat rezultatul mascariisi foloseste algoritmul de restrangere a caii ea
este considerata aproximativ 1astfeln m aliniamntul crescand cu marimea
imaginii. Trebue sa ne reducem la : nevoia unui rand suplimentar de date de stabilire
necesaul total este sub 2 n m .
Functionalitatea algoritmului este exemplificata in fig 29. Figura 28 prezinta
rezultatul selectiei aplicate la rezultatul selectiei de culoare.
Versiunea matematica de laborator a algoritmului este prezentata in Anexa A.
24
25
26
6.2.2 Minimalizarea regiuni de interes
Miscarile care au aparut din implementarea pasului anterior nu sunt intotdeauna
corecte. Se intampal de multe ori sa se selecteze mai mult decat o fata sau sa nu se
selecteze intreaga fata, ci numai o parte. Aceasta mascare poate sa nu fie rezultatul final
dar da informatii utile pentru urmatorii pasi. Deci folosind aceasta mascare se obtine
imaginea definita.
Sus/jos sau stanga/dreapta deci selectam marginea sunt similare. Mai intai se va
proceda la selectarea stanga/dreapta.
Pentru aceasta se determina pixelul cel mai de sus si respectiv cel mai de jos
rezultand mobilul de jos si de sus al mascarii(a,b) si diferenta (fig30c). Numarul de pixeli
in fiecare coloana este o informatie utila, deasemenea. Marginea (distanta) din stanga
respectiv din dreapta se selecteaza in acelasi mod. Pornind de la coloana cu numar mai
mare de pixeli fiecare coloana din stanga dreapta va fiverificata pentru a ne convinge ca:
diferenta sus-jos este mai mare decat pragul T1 unde T1 este 40% din diferenta
sus-jos ;
numarul total de pixeli din coloana din stanga sa fie mai mic decat acelasi din
dreapta sau unul dintre ei sa fie mai mare decat pragul T2. T2 este 40% din
maximumul numarului de pixeli al coloanei.
27
la acest punct unde conditiile nu se potrivesc exista distante laterale primare aratate in
fig30 cu linii de interior. Aceste marginii cand mascarea nu este indeajuns de buna
elimina parti ale fetei iata de ce aceste distante laterale sunt marite cu ajutorul unei zone
tampon. Marimile sunt marcate cu linii exterioare.
Distantele de deaspura si de dedesupt sunt aflate intr-un mod asemanator.profilele da
stanga dreapta diferenata stanga dreapta si numarul de pixeli pe verticala sunt aratate in
fig 31.
28
6.3 Sporirea bazata pe intensitati ale conturului fetei.
S-a incercat sporirea marirea a doua imaginii de contur.prima este mai mult bazata
pe diferenta de culoare iar a adoua pe definirea muchiei. Amandoua au dat rezultate bune
dar nici una 100%.
Prima incercare a prezentat trei faze, care au scris in relief fata :
Fata este aproximata folosind nuante de culoare saturata si paramentri de valoare.
O a doua incercare selecteaza zona fetei in final.
Muchiile din stanga si din dreapta sunt intense si corectate pentru a inlatura
poziile care nu sunt tip[ice fetei.
29
6.3.1 Aproximarea fetei.
Aceasta faza foloseste imaginea prin metoda culoare-spatiu HSV se verifica mai
intai compunerea valorii:
valoarea medie M se determina
se construiesc in pasi de 0,02 imaginii de mascare pentru σ 0.1 ; 0.325 care au
componenta
se alege valoarea minima σ a coeficientului.
Observatie : ecuatia de mai sus are doua componente de valoare in zona M σ ; M
σ regiunea maxim umpluta(vezi 6.2.1) fiind selectata si urmatorii parametri
verificati :
daca suprafata regiuni este mai mica de 70% din intreaga fata. Altfel regiunea
selectata va fi mai mare decat fata.
Daca raportul inaltime/latime este in relatia 1.1; 1.6]care este de fapt proportia
dimensiunilor standard ale fetei.
Pentru zonele care satisfac conditiile de mai sus se calculeaza un coeficient de
probabilitate bazat pe P adica suprafata zonei O si unghiul dintre aza X si axa
majora principala a elipsei care are aceleasi momente secndare ca si regiunea :
Se poate observa ca se analizeaza mai mult decat fata. Astfel este necesar sa facem
referire la o serie de alti pasi si mulaje :
A ) mulajul rezultand din ecuatia S 0.15 S 0.70 2 (vezi fig 34a) si H 0.30
H 0.8 3 (vezi Fig 34b) produce doua mulaje, care rezultat reduce selectia V .
B) suprafata maxim umplutura se determina pentru mulajul care rezulta (fig 34c).
30
C) de tedermina mediul M si derivata standard a saturatiei pixelilor selectati.
D) Mulajul final (fig34e) rezulta din aplicarea formulei S S M σ M S S M
σ M mask (Fig 34d) la forma mulajului (b) si umpland complet spatiile din interior
31
pentru a corespunde pixelului cu valoarea sobel maxima (fig37c) filtrul sobel poate da
rezultat cu valori nestabile langa punctul dat : profilul care rezulta are multe gauri care
pot fi eliminate cu un al doilea filtru mediu (fig37d). Aceeasi pasi sunt parcursi cu
profilul din dreapta, urmand sa unim cele doua profile dand forma finala a mulajului (fig
36).
32
6.3.3 Concluzii ale acestei abordari.
Rezultatele acestei abordari au fost bune(fig38). Dintr-un set de 252 de imagini 9
fete au fost nedetectate in fazele initiale din cauza acuratetei slaba a culorii si doua fete au
avut parti cu zone incorect scoase in relief.
33
6.4 Largirea conturului fetei bazata pe profilul lateral .
Prima tratare a fost buna dar ea a folosit numai culoarea fetei, informatii despre
intensitati si forma fetei. Informatii suplimentare care ar mai putea fi folosite sunt cele
privitoare la profilul lateral. Sunt algoritmi diversi care ar putea da profilul; ei difera in
precizie prelucrare pe calculator si o caracteristica importanta: ce caracteristici locale ar
putea fi luate in consideratie Dupa ce au fost incercati mai multi algoritmi abordarea
SUSAN (prezentata in lucrarea SMITH95a si intr-o mica prezentare in §5.2.3) a fost
aleasa pentru detectarea profilului. Acest algoritm a fost ales deoarece el foloseste pentru
detectarea profilului informatii despre similaritate intr-o zona local comparata cu alte
metode care se bazeaza pe variatia nivelului pixelilor imaginii.
In cele ce urmeaza regiunile fetei cu culori similare delimitate de profile laterale
sunt dezvaluite.
O selectare corecta a acestor regiuni va forma imaginea formei fetei. Pasul cheie
este selectarea regiunilor: ea poate forma correct fata daca se lucreaza bine sau daca nu
deoarece poate da locuri goale pe imagine poate mai multe decat fata selectata.
Dupa ce fata a foat selectata se va face o mica ajustare care netezeste conturul
fetei.
6.4.1 Aflarea profilului lateral folosind metoda SUSAN.
Dupa ce fata a fost detasata de imagine facand ce se scrie in 6.2.2 se aplica
algoritmul SUSAN.
Mai intai imaginea n (fig 39) este determinata cu ecuatiile (3 si 4) folosind un
mulaj USAN lat de 11x11. valorile USAN astfel determinate vor caracteriza profilele
laterale a fetei. Apoi pragul indicat de 3n max / 4 se aplica rezulatnd (vezi ecuatia 5)
imaginea R (fig 40). Primele profile laterale (fig 42) sunt date de combinatia R>0 si un
mulaj nuantat (fig41).
34
Mulajul nuantat este necesar deoarece raspunsul profilului poate contine
raspunsuri superioare in unele regiuni care mai mult ca sigur nu sunt regiuni ale fetei.
Masca nuantata este generata din mulajul de fata produs : se determina valoarea medie a
nuantari ; variatia de la medie este determinata folosind (9) conditia pusa in aceasta
exprimare este argumentata de rotunjirea mantiei : valoarea 1 este echivalenta lui 0si
distanta dintre 0.2 si 0.8 nu este 0.8 0.2 , dar 1 0.80.2 . Formulei de mai jos i se va
atentie pentru a obtine valorile corecte.
35
Apoi profilelor laterale se va aplica. Se vor determina pixeli vecini tangentiali profilului
lateral pentru fiecare pixel al profilului lateral initial calculand mai intai directia profilului
36
Apoi se procedeaza la separarea profilelor laterale se vor folosi pragurile
T1=Rmax/2 si T2= Rmax/4 daca un pixel are R mai mare decat T1 el va fi considerat
punct de pornire al profilului si se va continua pe profil( in directia tangentei la profil)
pana ce valoarea urmaorilor pixeli scade sub praful T2. Toate profilele cu lungimea mai
mare de 5 sunt depozitate, celelalte fiind considerate p[rea scurte. Profilele separate sunt
prezentate in figura 44.
Profilele separate nu sunt continue. Pasul urmator va face sa crestem fiecare profil
de la capatul sau pan ace intaneste alt profil. Cresterea va fi pixel cu pixel in directia
tangentiala profilului Algoritmul este mult mai complex decat o pot face cateva randuri
de exprimare, dar se scoate evidenta ideea princiala. Profilele gasite pot fi vizualizate in
fig 45. Profilele gasite delimiteaza suprafata fetei care in pasul urmator va fi selectata sau
nu.
37
6.4.2 Selectarea regiuni.
Regiunile gasite in imagine vor fi caracterizate ca regiuni fata sau fundal. Este
foarte important dar cel mai important si mai putin formulat subiect . In continuare
prezentam abordarea acestui subiect. Ea este aflata pe bara experimentala si a fost
dezvoltata pe baza de cunoastre sei observatie a structurilor si proprietatilor fetei.
Aceasta faza incepe cu identificarea regiunii. Fiecarei regiuni I se aloca un
identificator unic explicandu-i-se un algoritm de culoare liniar. Regiunea care poseda un
pixel in stanga sus va fi considerata speciala, adica regiunea fundal. Aceasta zona,
rezultata din aflarea profilului unde pixeli de margine 5 nu sunt marcati cu toate ca ei sunt
puncte ale profilului inconjoara toate celelalte regiuni.
casuta de legatura a regiunilor ;
valorile medii ale componentelor R, G si B ale regiunii ;
centrul aglomerat al regiunii
suprafata regiuni
daca suprafata este mai mare sau nu decat pragul suprafetei ales(de 75 pixeli)
daca culoarea regiuniieste mai mult culoare pura 85% sau mai mult este data de
componentele R G sau B cresterea fiind aratata in fig 47. Cresterea este formata
de restrangere care foarfeca regiunile care au vecinii mai mult neselecati.
Se vor determina de asemnea fiecare regiune invecinata si numarul de pixeli de
granita pentru regiuni. Dca suprafata unei regiouni este prea mica zona va fi unita cu o
regiune invecinata a carei culoare nu difera prea mult de accea a regiunii de baza iar
suprafata este mai mare decat suprafata zonei de baza si pixelul invecinat comun este
valoare maxima intre regiunile invecinate disponibile. Regiunile mic si selectate sunt
38
unite si li se dermina proprietatile iar vecinii sunt combinati. Centrul algorimului zonei
care nu-i fundal se considera centrul fetei. Raza cea mai dintai a fetei este data de
jumatatea partii exteriora cea mai centala a regiunilor daca raza rezultata este de mai
putin de 30 pixeli atunci raza este considerata de 30.
Intensitatea minima a regiunilor ce pot fi selectate se obtine calculand 80% din
media suprafetei sumei componentelor R, G si B care se va imparti la 3 si se va retine
aceasta operatie deoarece daca nu tinem seama, trebuie sa foloim pe fiecare data formula
altfel pierdem.
Apoi centrul masei este recalculat drept centru zonelor cu intensitati mai mari
decat minimumul calculat.
Dupa ce determinam acest centru mult mai exact recal ;culam din nou centru
regiunilor cu internsitate corecta si centru cel mai aprorpait de raza maxima, dupa care
raza este recalculata la valoarea minima, drept minimumul distantei dintre centrul zonei
de margine si se va corecta ca in primul caz.
Aceata faza este urmata de faza selectiei regiunii. Fiecare zona cu centru mai
apropiat de centru determinat de cat de raza este selectat dreot regiunea fetei(fig 46) daca
inensitatea este mai mare decat minimumul intensitatii zonei atunci culoarea regiunii este
luata in calcul pentru determinarea culorii medii a zonelor selectate. Pe curba de selctie se
calculeaza casuta de legatura a fetei.
39
6.4.3 Netezirea conturului.
Mulajul rezultat candva contine regiuni neinsemnate care in mod nevoit au fost
sterse sau adaugate fetei.
Astfel, in faza finala conturul fetei poate fi marit. Exagerarea prezinta urmatorii pasi:
a.) profilele interioare sunt umplute
40
De aici rezulta MAX_PI= 1256, rotunjit MAX_PI=1250
Valorile Ri sunt recalulate drept valoarea radiara une mulajul se schimba in fundal
sub unchiul θ i
Daca masca are concavitati pot exista valori multiple ale Ri, in acest caz avand de
ales valoarea cea mai apropiata mediei Ri calculate anterior
41
d.)Acesti pasi sunt urmati de o mediana de 31 de pasi lata si o filtrare medie lata
de 101 pasi. Filtrul median netezeste gaurile din contur si filteaza marile adancituri si
ridicaturi de pe contur.
e.)Conturul este tot atat de bine realizat pe cat este de apropiat profilurilor fetei.
Iata de ce pasul urmator inlocuieste Ri cu o valoare gama Ri+-5 pixeli cu valoarea ce
maximizeaza prezentarea n din valoarea de filtru Susan la pixelul tintei.
f.) in fine acest rezultat este filtrat din nou printr-o filtrare mediana de 31 de pasi
lata si una de 100 pasi lata.
g.) apoi Ri regenreaza conturul imaginii(fig 52) si de pe conturul masti rezultand
imaginea finala(fig 53)
Figura 68,70 si fig 71 in anexa D arata secventa de pasi din profilul susan. Imagionile
contin (de sus in jos de la stnga la dreapta zonele de delimitare ale profilelor laterale,
culorile lor medii, zona centrala initiala rezultatele cresterii, descresterii, conturului si fata
rezultata.
42
7. Extragerea caracteristicilor
Ţinta imaginii segmentate regăseşte faţa în imagine. În faza de extragere a
caracteristicilor această regiune va fi verificată pentru a se găsi caracteristici. Dacă se
găsesc mai multe caracteristici căutarea feţei va fi mai uşoară si mai exactă.
Principalul scop al acestei etape esă extragă cât mai multe caracteristici ale feţei.
Mai întâi sunt prezentate câteva caracteristici care au fost identificate şi extrasee în
proiectul DALT.2.4/2001 şi apoi sunt prezentate alte metode posibile.
43
Poziţia orizontală a centrului ochilor (x_eye_left şi x_eye_rigth) precum şi axa de
simetrie a feţei (x_symmetry) sunt detectate precum în [ASK98].
Aceste două coordinate preliminare ale ochilor sunt folosite în continuare pentru a
detecta colţul ochiului. Pentru a minimiza erorile de detecţie generate de o iluminare
neuniformă a feţei, am definit regiuni separate de interes pentru segmentarea Reddi (fig
55). Pixeli cei mai întunecaţi şi cei mai spre dreapta şi stânga sunt colţii ochilor
(x_left_eye_right, x_left_eye_left, y_left_eye_up, y_left_eye_down, x_right_eye_right,
x_right_eye_left, y_right_eye_up, y_right_eye_down)
Căutând poziţia cea mai din dreapta şi cea mai din stânga a pixelilor întunecaţi
într-o bandă îngustă în jurul poziţie verticale găsite pentru gură se găsesc coordonatele
colţurilor gurii (x_mouth_left, x_mouth_right).
Procedura presupune că forma gurii este aproximativ orizontală. Imagini ale gurii
precum cea din fig 57 dreapta produc rezultate eronate.
44
7.1.5 Modelarea conturului feţei
Pentru o caracterizare mai bună a feţei, pentru a creşte gradul de individualitate a
modelelor feţelor, am introdus coordonate suplimentare pentru detectarea grosimii feţei:
la ochi (x_right_at_eyes, x_left_at_eyes), la nas (x_right_at_nose, x_left_at_nose) şi la
gură (x_right_at_mouth, x_left_at_mouth).
Procesul e o reducere simplă a căutării marginii feţei în imaginea Sobel la nivelele
corespunzătoare.
Fig 58. Imaginea originală a centroid-ului. Imaginea din stânga este o imagine alb
negru cu o singură regiune. Această imagine va fi folosită pentru exemplificarea
proprietăţilor prezentate în paragraf. În imaginea din dreapta ete o cruce care marchează
centrul imaginii. Aria regiunii este 5692.
45
Lungimea perimetrului P a unei regiuni este o altă proprietate. O simplă definire a
unui perimetru a unei regiuni fără găuri este setul pixelilor graniţei interioare. Un pixel al
unei regiuni este un pixel de graniţă dacă are câţiva pixeli vecini care sunt în afara
regiuni. Când se foloseşte 8-conectivitatea pentru a determina dacă un pixel din regiune
este conectat cu un pixel din afara regiuni, setul rezultat de pixeli de perimetru este 4-
conectat. Când se foloseşte 4-conectivitatea pentru a determina dacă un pixel din regiune
este conectat cu un pixel din afara regiuni, setul rezultat de pixeli de perimetru este 8-
conectat. Aceasta este motivaţia definiţiei perimetrului 4 şi 8 –conectivităţii:
46
Fig. 60 Cutie de încadrare
Momente spaţiale sunt adesea folosite pentru a descrie forma unei regiune. Există
trei momentele spaţiale de ordinul al doilea al unei regiune. Ele sunt definite după cum
urmează:
Momentul de ordinul al doilea de verticală.
Deci µyy măsoară variaţia orizontală, µxx măsoară variaţia orizontală, iar µyx
măsoară variaţia orizontală şi verticală.
Aceste valori sunt adesea folosite ca descriptori de formă, deoarece sunt
invariabili la traziţie şi schimbare de scală a unei forme 2D.
Momentele spaţiale secunde au valoarea şi importanţă pentru regiunea de oricare
formă.
Dacă regiunea este o elipsă, axa minoră şi majoră şi orientarea axei de majore (în
mod clar orientarea axei minore) poate fi determinată după cum urmează:
Dacă µyx=0 şi µyy> µxx , atunci axa majoră este orientată la un unghi de 90ş în
sens invers ceasornic faţă de axa orizontală şi are o lungime de . Axa
minoră are o lungime de
Dacă µyx=0 şi µyy<= µxx, atunci axa majoră este orientată la un unghi de 0ş în
47
Dacă µyx!=0 şi µyy> µxx, atunci axa majoră este orientată la un unghi de
Dacă µyx!=0 şi µyy<= µxx, atunci axa majoră este orientată la un unghi de
48
(10)
Variabilele ω1 şi ω2 sunt variabile de frecvenţă. Unităţile lor sunt radiani/sample.
F(ω1,ω2) este des numită reprezentarea domeniului de frecvenţă a f(m,n).
F(ω1,ω2) este o funcţie de valoare complexă care este periodica atât în ω1 cât şi în
ω2, de perioadă 2π. Din această cauză, de obicei e afişată doar în acest interval.
Lucrul cu transformata Fourier pe calculator implică de obicei o formă a
trasformatei cunoscută sub numele de transformata Fourier discretă (DFT). Sunt 2 motive
pt. folosirea acestei forme:
Intrarea şi ieşirea DFT sunt discrete, cea ce e bine pt. manipularea pe calculator.
Există un algoritm rapid pentru calcularea DFT cunoscut ca Transformarea
Fourier Rapidă (FFT).
DFT este de obicei definit pentru o funcţie discretă f(m,n) care e nonzero doar pe
intervalul finit 0 ≤m ≤ M −1 şi 0 ≤n ≤ N −1. relaţia bidimensională M-N a
DFT e dată de ecuaţia (11).
(11).
49
Fig 62. Imagini DFT. Sunt prezentate 5 imagini si transformata Fourier de 512x512
(12)
unde 0<=p<=M-1 şi 0<=q<=N-1.
Valorile Bpq sunt numite coeficienţii DCT a lui A.
DCT este o transformare inversabilă, iar inversa sa este:
50
unde αp , αq sunt
aceleaşi ca în ecuaţia (12).
Inversa DCT poate fi interpretată că orice matrice AMN poate fi scrisă ca o sumă de
M*N funcţii de forma
(13).
Aceste funcţii sunt numite funcţii de bază a DCT. Coeficientul DCT Bpq, poate fi
considerat ca greutatea aplicată fiecărei funcţii de bază.
Figura 63 prezintă un exemplu, a proprietăţilor de compresie a DCT. Figura arată
imaginile reconstruite folosind 1,2,3,4 şi 5 coeficienţi DCT.
Fig. 63. Imagini reconstruite cu DCT. Se poate observa că ultima imagine (5 coeficienţii)
este aproape identică cu originalul.
Tabelul 1 prezintă nevoile de stocare a imaginii dacă informaţia gri este înlocuită
cu coeficienţi DCT. În procente este exprimată raţia elementelor diferite de 0 a
coeficienţilor DCT. Aceasta nu e o raţie de compresare reală deoarece coeficienţii sunt
numere reale iar informaţia gri este un întreg între 0 şi 255, aşa că raţia de compresie este
de 2,4 sau 8 ori mia mică (procentul este mai mare) decât valorile din tabelul 1.
51
Pentru imagini reale rezultatul este redat în figura 64.
52
7.4. Probleme în extragerea caracteristicilor
Caracteristicile extrase pot fi alterate de multe elemente externe sau interne ceea
ce e o mare problemă a parţii de identifica din procesul de detectarea a feţei.
Cele mai importante puncte sunt:
Variaţii determinate de poziţia capului. Diferenţe de rotaţie, chiar dacă sunt foarte
mici, pot cauză disimilarităţi în caracteristicile determinate. Această problemă
poate fi rezolvată prin normalizarea poziţiei feţei, efectuând o rotaţie înapoi la
poziţia normală.
Metode de normalizare scalară trebuie folosite dacă faţa se află la distanţe diferite
de dispozitiv. O dimensiune (înălţime, Lăţimea, sau distanţa dintre ochi) este
distanţa de normalizare, care trebuie să fie de lungime standard, şi restul imaginii
va fi scalată păstrând raţia. (vezi fig. 65)
53
8.1. Abordări pentru căutarea feţelor
Îndrumările de bază pentru măsurarea asemănările sunt prezente în [DASK91],
dar există o varietate largă pentru a le măsura.
Primele şi cele mai folosite s-au bazat pe calculele statistice. Ele definesc o clasă
a caracteristicilor pentru fiecare persoană din baza de date. Dacă caracteristicile nu sunt
precise atunci setul de parametri poate varia în domenii foarte mari ce va decurge la
intersecţia nedorită de clasele diferite, însemnând că identitatea nu va fi detectată.
Abordările statistice au fost de încredere, eliminând valorile ce sunt afară din variaţia de
parametri acceptată.
Metoda prezentată în [MICE02] se bazează pe combinaţiile distanţei liniare
minime. O combinaţie liniară de vectorii prototipici aparţinând unei clase de feţe este
folosită ca să definească o măsură de distanţă de la vectorul interogare la clasă, măsura
fiind definită ca distanţa Euclidiană de la interogare la combinaţia liniară ce mai
apropiată de vectorul interogare.
Metoda celei mai apropiate linie de caracteristici ( [Stan98a], [STAN00]) este o
altă abordare. Orice două puncte de caracteristici ale aceleaşi persoane sunt generalizate
de linia de caracteristici traversând cele două puncte. Linia caracteristica derivată poate
să captureze mai mult variaţi ale imaginii feţei decât punctul original şi astfel extinzând
capacitatea bazei de date disponibile. Clasificarea se bazează pe distanţa minimă de la
caracteristica de interogare la fiecare linie de caracteristică.
Recent a fost încercări de folosire a reţelelor neuronale şi modele ascunse Markov
([NEFI99]) din care au decurs rezultatele bune, dar chiar şi aceste abordări nu dau
rezultate 100%.
54
13 Distanţă verticală între gură şi nas. y_mouth – y_noes
14 Distanţă verticală între gură şi y_mouth – y_eyebrows
sprâncene.
15 Distanţă verticală între nas şi y_noes – y_eyebrows
sprâncene
Tabelul 2 Valori ale vectorului feţei
Pentru a identifica o persoană înregistrată din baza de date noi am folosit metrică
pătratică de eroare minimă, definită precum:
(10)
Atât vectorul de feţe (xk) cât şi modelul feţei pentru intrarea în baza de date (mki)
sunt scalaţi.
După ce căutarea e terminată, primele două valori minime ale εi sunt stoacate ca
să calculeze probabilitatea de identificare ca identitate cu eroarea pătratică minimă:
(11)
55
Nevoile de memorie pentru stocarea imaginii sunt mari, a fost nevoie de compacta
cât mai zonele de memorie folosite. Dacă algoritmii ar fi fost împărţiţi în obiectele
interactive atunci trecerea parametrilor ar fi ocupat foarte multă memorie.
Pentru realizarea unei performanţe mai bune, principiul de încapsulare a
programării structurate e spart: parametrul care trece între metodele de prelucrare
foloseşte variabile globale, în care se stochează după fiecare fază rezultatul fiecărei faze.
Aceasta a fost compromisul acceptabil pentru nu copia rezultatele de unul pas la
intrarea pasului următor. În acelaşi stil, o altă variabilă globală s-a întrebuinţat pentru
salvarea calculelor matricei SUSAN folosită în detectarea Susan Edge în partea de
finisare a conturului.
56
SelectHue() - calculează valoarea de nuanţă rea şi regiunea aproape de aceasta
(vedeţi §6. 4.)
Susan1() – detectarea marginii zonei pe baza Susan. Include restrângerea marginii
şi lărgirea marginii (vedeţi §6. 4.)
Susan2()— Selectează de la zonele delimitate cu muchiile Susan, care formează
figura (vedeţi §6. 4.)
ConturSmoothing()— sporeşte conturul feţei (vedeţi §6. 4.)
Fig 66. Interfaţa cu utilizatorul. În dreapta în modulul de timp real iar în stânga în
modulul static, de testare
57
Ferestrele de rezultat afişează să urmeze rezultatele (de sus în jos, stânga sau
drepta):
Imaginea statică care a fost capturată. Această imagine este intrarea paşilor de
prelucrare. În fiecare 10 secunde, dacă procesele anterioare s-au terminat o
imagine nouă este capturată.
Suprafaţa selectată cu culoare aproape de culoarea feţei.
Regiuni maxim umplute, aceasta este figura şi alte regiuni care au o conexiune la
figura, şi au culorile asemănătoare.
Rezultatul de selectare Susan.
Rezultat final după calificarea conturului
Utilizatorul poate să selecteze cu butonul de selectare imaginile, care din ele să fie
afişate înăuntru ferestrei mari din stânga.
Utilizatorul poate să controleze procesul de capturare cu butoanele din subsolul
ferestrelor:
Capturare să poată să fie oprite cu butonul Pasuse.
Dacă capturarea a fost oprită, după aceea ea poate să fie repornită cu butonul
Start.
Capturare să poată să fie făcută cadrul cu cadru la momente când utilizatorul
apasă butonul Step.
Cu butonul Stave oricare imagine de rezultat afişată în dialog să poată să fie
salvată într-un fişier bmp.
Caseta Status information informează utilizatorul ce ar trebui să facă ca să
primească un rezultat corect dacă prelucrarea nu poate să fie făcută. Aplicaţia poate să
sugereze utilizatorului să se apropie sau să se îndepărteze de cameră sau să regleze
expunerea camerei sau balanţa albă. La aceste mesaje de obicei este adăugat mesajul de
voce asemănător.
58
universal valabile, autorii nu au specificat în mod corect toată informaţie necesară, sau
informaţia a fost interpretată greşit.
Segmentarea bazată pe culoare nu lucrează numai singură pentru mai multe
motive:
Camera a capturat culorile incorecte, deoarece:
o calităţii mediocre a senzorului
o iluminare slabă
o colori nebalansate (balanţa albă a fost nu a făcută)
Se poate să fie mai mult obiecte colorate în faţa camerei şi suprafaţa acestor
obiecte să fie detectate ca o faţă.
Noi putem încerca să minimalizăm deficienţa anterioare strâmtând domeniul
culorii selecte. Această pe altă mână duce la regiuni ale feţei detaşate: pierderea
ochilor, nasului, zonele de frunte.
Abordarea luată a fost combinarea segmentării de culoare uşor restricţionată cu o
aproximaţie de faţă de nivel al doilea, care dă aproximaţia de faţă mai bună şi finală.
Aceste două abordări au fost prezente. Prima dă un rezultat foarte stabil, dar el nu este
atent la informaţia de muchie a feţei şi foloseşte în special culoarea şi informaţia de
intensitate imaginii. Aceasta face algoritmul foarte vulnerabil pentru schimbările
ambiante, în special pentru variaţiile fulger.
A doua abordare detectează muchiile într-o regiune a imaginii reduse, şi regiunile
delimitate cu aceste muchii sunt clasificate ca regiuni ale feţei sau de fundal. Acesta este
un proces de clasificare complex. Această clasificare este partea cea mai multă
vulnerabilă. Ea trebuie să fie foarte bine reglată în viitor pentru a da rezultate foarte bune,
pentru a depăşi în calitate prima abordare.
Platformele ţintă ale algoritmilor sunt procesoarele de semnal digitale. Deşi
îndeplinirea prezentă este pe sistemul PC, designul ales pentru implementare este cât mai
simplu cu putinţă. El permite uşor transportarea codului la un procesor DSP cu o simplă
migraţia de cod C sau o transformare de la C la cod de asamblare.
Problema cea mai mare care apare rezultă din nevoile mari de memorie ale
algoritmului. Implemetarea actuală are nevoie de 40 MB de memorie.
59
Eliminarea slăbiciunilor din Tabelul 3 este scopul dezvoltările viitoare:
Structurile de informaţie ale algoritmului de umplere vor fi îmbunătăţite
pentru o viteză mai bună
Constantele specifice ale algoritmului vor fi studiate şi se vor alege
valorile lor optime
Alocările de memorie pentru structurile interne se vor reduce, nevoile de
memorie vor fi dinamic determinate de la parametrii obţinuţi în paşii
anteriori (ex. Pentru detectarea muchiei SUSAN de numărul muchiilor
depinde de dimensiunea de imaginii)
Alte dezvoltări aflate în plan:
Integrare rutinelor în aplicaţia proiectului DALT 2.4
Dezvoltare fazei de detectare de caracteristici.
Transportarea aplicaţiei la un sistem bazat pe DSP
Concluzia finală după această lucrare e că câmpurile de procesare a imaginii sunt
domenii foarte importante ale tehnologiei informaţiei. În repetate rânduri este foarte greu
să reuşeşti ceea ce îţi propui, dar bucuria e mare când ceva nou rezultă din munca ta. De
asemenea există multe secrete neexplorate care fac acest domeniu unul foarte interesant.
60
Referinţe
CRET02 CretuAASK98K. Aas, ""Detection and Recognition of Faces in Video
Sequences"", Proceedings of the NOBIM, Oslo, June 1998.
AMIT998 Y. Amit, D. Geman, "A Computational Model for Visual Selection", Neural
Computation, vol. 11, pp. 1691-1715, 1998
BEYM93 D.J. Beymer, "Face Recognition Under Varying Pose", Technical Report, MIT
AI Lab, AI memo 1461, December 1993MIT technical report AI.1461, CBCL.
89, 1993
BRUN93 R. Brunelli and T. Poggio, "Face Recognition vs Templates", IEEE Trans. on
Pattern Analysis and Mach Intelligence, Vol. 15, pp. 1042 -1052, 1993.
CRET92 V. Cretu, "Structuri de date si tehnici de programare avansata", UTT
lithography, Timisoara, pp. 52-60, 1992
DASK91 Th.N.Daskalakis, C.N. Daskalakis, "Similarity Measures for Content Retrieval
of Images", Digital Signal Processing, Elsevier Science Publisher, 1991
FANS00 L. Fan, K.K. Sung, "A Combined Feature-Texture Similarity Measure for Face
Alignment Under Varying Pose", IEEE Proc. on Computer Vision and Pattern
Recognition (CVPR'00), Vol.1, pp. 1308-1315, May 2000
FERI02R.S. Feris, J.Gemmell, K. Toyama, V. Krüger, "Facial Feature Detection Using a
Hierarchical Wavelet Face Databases", Microsoft Research Technical Report,
Redmond, 2002
FLEC94 M.M. Fleck, "Practical Edge Finding with a Robust Estimator", IEEE Proc. on
Computer Vision and Pattern Recognition (CVPR'94), pp. 649-653, 1994
FLEC96 M.M. Fleck, D.A. Forsyth, "Finding Naked People", Proc. European Conf. on
Computer Vision , pp. 593-602, Germany: Springer-Verlag, 1996
GARC98 C.Garcia, G. Zikos, G.Tziritas, "Wavelet Packet Analysis for Face
Recognition", Image and Vision Computing, Vol. 18, No. 4, pp.289-297, Feb.
2000
GARC99a C.Garcia, G.Tziritas, "Face Detection Using Quantized Skin Color Regions
Merging and Wavelet Packet Analysis", IEEE trans. On Multimedia, vol.1,
September, 1999
GARC99b C.Garcia, G. Zikos, G.Tziritas, "Face Detection in Color Images using
Wavelet Packet Analysis", IEEE Int. Conf. on Multimedia Computing and
Systems, 1999
GUOL00 G. Guo, S.Z. Li, K.L. Chan, H. Pan, "Texture Image Segmentation using
Reduced Gabor Filter Set and Mean Shift Clustering", Fourth Asian Conference
on Computer Vision, ACCV2000, pp.198-203, 2000.
LIAO00R. Liao, S.Z. Li, "Face Recognition Based on Multiple Facial Features", In Proc.
IEEE Conf. on Automatic Face and Gesture Recognition, pp.239-244, 2000
61
LILU98 S.Z. Li, J. Lu, K.L. Chan, J. Liu, L. Wang, “Hierarchical Linear Combinnantions
for Face Recognition”, Proc. of ICPR'98, Vol.2, pp. 1191–1193, Australia, 1998
MENG00 L. Meng, T.Q. Nguyen, D.A Castnon, “An Image-based Bayesian Framework
for Face Detection”, IEEE Proc. on Computer Vision and Pattern Recognition
(CVPR'00), Vol.1, pp. 1302–1307, May 2000
MICE02 M.V. Micea, V. Cretu, L. Prodan, Z. Husz, “Face Recognition Techniques for
Embedded Systems”, submitted to Tran. on IEEE Signal and Image@@
NAGA00 Nagao, “Face Recognition by Distribution Specific Feature Extraction”, IEEE
Proc. on Computer Vision and Pattern Recognition (CVPR’00), Vol.1, pp.
1278–1285, May 2000
NEFI99A.V. Nefian, M.H. Hayes III., “Face Recognition Using an Embedded HMM”,
IEEE International Conference Audio Video Biometric based Person
Authentication, March 1999, p. 19-24.
OTSU79 N. Otsu, "A Threshold Selection Method from Gray-Level Histograms", IEEE
Trans.actions on Systems, Man, and Cybernetics, Vol. 9, pp. 62 - 66, 1979.
REDD84 S.S. Reddi, S.F. Rudin and H.R. Keshavan, "An Optimal Threshold Scheme for
image Segmentation", IEEE Trans.actions on Systems, Man, and Cybernetics,
Vol. 14, pp. 661- 665, July/August 1984.
ROWL99 H.A. Rowley, “Neutral Network Based Face Detection”, PhD thesis, CMU,
Pittsburg, 1999
SHAP01 L.G. Shapiro, G.C. Stockman, “Computer Vision”, Prentice Hall, New Jersey,
2001
SMITH95a S.M. SMITH, J.M. Brady, “SUSAN – A New Approach to Low Level Image
Processing”, Int. Journal of Computer Vision, 23(1):45–78, May 1997
SMITH95b S.M. SMITH, “Edge Thinning Used in the SUSAN Edge Detector”,
Technical Report TR95SMS5, 1995
STAN00 S.Z. Li, J. Lu, “Face Recognition Using the Nearest Feature Line Method”,
IEEE Trans. on Speech and Audio Processing, Vol.10, pp.439–443, September
2000
STAN98a S.Z. Li, “Face Recognition Based on Nearest Linear Combinations”, In
Proceedings of IEEE Computer Society Conference on Computer Vision and
Pattern Recognition, pp. 839–844,. June 23–25, 1998.
STAN98b S.Z. Li, J. Lu, “Generalizing Capacity of Face Database For Face
Recognition”, In. Proceedings of the Third IEEE International Conference on
Automatic Face and Gesture Recognition. pp. 402–405., April 14–16, 1998
TIAN00Y.Tian, T. Kanade, J. Cohn, “Recognizing Upper Face Action Units for Facial
Expression Analysis”, Proceedings of the IEEE Conference on Computer Vision
and Pattern Recognition (CVPR’00), Vol. 1, June, 2000, pp. 294–301.
WUHU00 Y.Wu, T.S. Huang, “Color Tracking by Transductive Learning”, In Proc. IEEE
Conf. on Computer Vision and Pattern Recognition (CVPR’00), Vol.II, pp.222–
227, Hilton Head Island, SC, June, 2000IEEE ??????, 2000
ZHAO00 W.Y. Zhao, R. Chellappa, “Illumination-Insensitive Face Recognition Using
Symmetric Shape-form-Shading”, IEEE Proc. on Computer Vision and Pattern
Recognition (CVPR'00), Vol.1, pp. 1278–1286, May 2000
62
Anexa A - Algoritmi Matlab
Extragerea culorii
Acest algoritm face o selecţie rapidă pentru imaginea iniţială. E foarte simplu dar are
slăbiciuni.
Minval= min(min(min(Image)));
MinArray = double(Minval) * ones(size(Image(:,:,1)));
%logaritmic values
LR = LogValue(double(Image(:,:,1)) - MinArray);
LG = LogValue(double(Image(:,:,2)) - MinArray);
LB = LogValue(double(Image(:,:,3)) - MinArray);
I = LG;
Rg = LR - LG;
By = LB - ( LG + LR ) / 2;
%texture calculations
Texture = medfilt2 ( abs ( I - medfilt2 (I , [5 5] )), [ 7 7 ]);
TextureMask = Texture < 1;
Output = I_Mask & Rg_Mask & By_Mask; & TextureMask;
63
%
% Inputs : Value - parameter what to be logaritmated
% Outputs : Output - logaritmic value
Output = 105 *log10( Value + 1 + random('unif', 0, 1, size(Value)));
MAXCOLORS=5000;
Size= size(InputMask);
InputMask(1,:) = 0;
InputMask(:,1) = 0;
InputMask(Size(1), :) = 0;
InputMask(: ,Size(2)) = 0;
for y = 2 : Size(1)
for x = 2 : Size(2)
if InputMask(y,x) == 1
W_NW = SelectNon0( C(y, x-1), C(y-1, x-1) );
N_NE =SelectNon0( C(y-1, x), C(y-1, x+1) );
64
if C(y,x-1) < 0
nullrow(-C(y,x-1), y, x);
end
if C(y-1,x) < 0
nullabove(-C(y-1,x));
end
else
end
clear Colors;
clear N;
clear L;
clear C;
clear invert;
65
Output = B;
end;
global Colors;
global L;
global N;
global C;
if Colors(c2) > 0
Colors(c1) = Colors(c1) + Colors(c2);
Colors(c2) = 0;
L{c1} = unique([L{c1} c2 L{c2}]);
if Negative==1
N{c1} = unique([N{c1} N{c2}]);
end
end
if C2<C1
% update row
% if C1>C2 do updates needed
if Negative==1
C1 = -C1;
C2 = -C2;
end
for X=1:x-1
if C(y,X)==C1
C(y,X)=C2;
end
end
end
invert(c2) = c1;
Output = c1;
function Output=invrec(n)
%subroutine of SelectMaximumFilled
%findes recursive the color into wich to color was changed
global invert;
while n ~= invert(n)
n = invert(n);
end;
66
Output = n;
global L;
global Colors;
if Colors(c2)>0
Colors(c1) = Colors(c1) + Colors(c2);
Colors(c2) = 0;
L{c1} = unique([L{c1} c2 L{c2}]);
end
function nullabove(Color)
%subroutine of SelectMaximumFilled
%
%updets the when a non-backgorund pixel is found to be backgound
global Colors;
Colors(Color) = 0;
67
Anexa B - Iniţializarea DirectX
În această anexă e prezentă iniţializarea capturii DirectShow. E considerată valoaroasă
deoarece programarea COM are nevoie de cunoaşterea multor interfeţe iar alegerea celei
mai bune poate lua mult timp.
HRESULT hr;
hr = InitStillGraph( );
if (FAILED(hr))
{
Error( TEXT("Failed to initialize StillGraph !"));
EndDialog(IDABORT );
return FALSE;
}
68
m_hDevNotify = RegisterDeviceNotification(mCB.m_hwndOwner,
&filterData, DEVICE_NOTIFY_WINDOW_HANDLE);
ASSERT(m_hDevNotify != NULL);
hr = m_pGrabber.CoCreateInstance( CLSID_SampleGrabber );
if( !m_pGrabber )
{
Error( TEXT("Could not create SampleGrabber (is qedit.dll
registered?)"));
return hr;
69
}
CComQIPtr< IBaseFilter, &IID_IBaseFilter > pGrabBase( m_pGrabber );
if( FAILED( hr ) )
{
Error( TEXT("Could not created caputure builder."));
return hr;
}
hr = pCapture->SetFiltergraph(m_pGraph);
if( FAILED( hr ) )
{
Error( TEXT("Could not set caputure builder graph."));
return hr;
70
}
if ( hr != S_OK )
break;
71
//
m_pGrabber->SetCallback( &mCB, 1 );
// Add our graph to the running object table, which will allow
// the GraphEdit application to "spy" on our graph
#ifdef REGISTER_FILTERGRAPH
hr = AddGraphToRot(m_pGraph, &m_dwGraphRegister);
if (FAILED(hr))
{
Error(TEXT("Failed to register filter graph with ROT!"));
m_dwGraphRegister = 0;
}
#endif
hr = pVSC->SetFormat(pmt);
if(hr != S_OK)
//ErrMsg(TEXT("%x: Cannot set new frame rate"),
hr);
72
Error( TEXT("Cannot set frame rate"));
}
DeleteMediaType(pmt);
}
}
}
*ppCap = NULL;
// create an enumerator
//
CComPtr< ICreateDevEnum > pCreateDevEnum;
pCreateDevEnum.CoCreateInstance( CLSID_SystemDeviceEnum );
if( !pCreateDevEnum )
return;
pEm->Reset( );
73
if( hr != S_OK )
continue;
void CFaceDetectDlg::ClearGraphs( )
{
// Destroy capture graph
if( m_pGraph )
{
// have to wait for the graphs to stop first
//
CComQIPtr< IMediaControl, &IID_IMediaControl > pControl = m_pGraph;
if( pControl )
pControl->Stop( );
#ifdef REGISTER_FILTERGRAPH
// Remove filter graph from the running object table
if (m_dwGraphRegister)
RemoveGraphFromRot(m_dwGraphRegister);
m_dwGraphRegister = 0;
#endif
m_pGraph.Release( );
m_pGrabber.Release( );
m_eState = NotInitialized;
}
}
74