Cuprins 1. Introducere.......................................................................................................................2 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....................................................................................................5 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 ...................................................................12 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..........................................................................14 5.3.Egalarile de histograma............................................................................................15 5.4.Segmentarea culorii de baza....................................................................................16 5.5. Transformarea morfologica....................................................................................16 6. Segmentarea...................................................................................................................18 6.1. Primul pas. Culoarea bazata pe regiuni selectate....................................................18 6.2 Prelucrarea anticipata a formei fetei........................................................................22 6.2.1 Selecteaza mai complet umplutura regiuniei,...................................................22 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.4.3 Netezirea conturului..........................................................................................40 7. Extragerea caracteristicilor............................................................................................43

1

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 ...............................................................................45 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........................................................................50 7.3. Decompresie wavelet a imaginilor feţei.................................................................51 7.4. Probleme în extragerea caracteristicilor..................................................................53 8. Căutarea în baza de date................................................................................................53 8.1. Abordări pentru căutarea feţelor.............................................................................54 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

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

2

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. Proiectul de recunoastere a fetei in care eu sunt implicat a fost inceput in Martie 2001, ca proiect oferit de Motorola Inc. (DALT. 2.4/2001) Membrii echipei au fost s.1. ing. Mihai V. Micea, prof. dr. ing.Vladimir Cretu, assist. Lucian Prodan si eu. Proiectul a inceput ca o cerceare referitoare la recunoasterea fetei umane. Dupa patru luni de cercetare si munca noi am dezvoltat o aplicatie Pc-based si un raport tehnic reprezentand rezultatele. Aplicatia a fost un prototip avand principala propunere de a testa algoritmi de recunoastere umana cu ajutorul fetei. Aplicatia foloseste o imagine de la camera web; de la preluarea imaginii el a extras caracteristicile figurii, si acestea le-a comparat cu vectorii caracteristici memorati in baza de date a aplicatiei. Rezultatul aplicatiei este imaginea capturata, marcata de pozitia caracteristicilor fetei (Figura 1) si recunoasterea identitatii persoanei in cazul in care caracteristicile sunt correct detectate. Aplicatia presupune un fundal monocrom si unele schimbari in conditiile ambientale.

Figura 1. Aplicatie test a proiectului DALT.2.4/2001

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. 3

extragerea caracteristicilor si cautarea in baza de date.1.) si la Oceanfront din Virginia Beach.Aceasta munca infatiseaza rezultatul obtinut in ultimul an. localizarea fatei cu segmentare de imagine. Capitolul 2 pe scurt prezinta fazele recunoasterii. ATM-urile si altor aplicatii critice de siguranta ar putea cere recunoasterea fetei in masura in care acum se cer parole.Desi la ora actuala nu lucreaza foarte bine. in armata sau guvern se pot verifica persoanele care vor sa intre. poate fi inselat si are nevoie de materiale extra pentru a fi facut (carduri magnetice personalizate. procesarea. ce probabil este deja instalata pentru scopul propus. separatea acesteia de imaginea fundalului si alegera rezultatului correct dar pe scurt infatisarea intregului process de recunoastere a fetei de la imaginea capturata. Aceasta logare poate fi integrata cu un sistem de detectie a fetei. prin la extragerea caracteristicilor corespunzatoare figurii pana la identificarea subiectului. Cautarea bazei de date existente Registrul prezent si bazele de date de recunoastere de fete umane ar trebui sa fie in intregime automatizate. 2. in special segmentarea. fara nici o nevoie externa si cu o reducere consistenta de vulnerabilitate poate determina cine intra sau iasa din spatiul supravegheat folosind o singura camera. Aceasta este o solutie viabila. Cea mai importanta parte este focalizarea fetei. Si in cele din urma capitolul 9 ce contine concluziile luate. care. Urmatoarele capitole sunt structurate dupa cum urmeaza: Capitolul 1 prezinta introducerea cititorului la recunoasterea fetei si prezinta cateva din solutiile prezentului. Capitolul 8 prezinta aplicatia ce a fost scrisa sa testeze fazele descoperite si prezentarea in fazale anterioare. carte pentru logare – ce sa planifice). Securitatea cladirilor Recunoasterea fetei poate fi folosita(si a fost deja incercata la aeroportul international Palm Beach ) pentru verificare de siguranta: la personalul angajat si la pasagerii din aeroporturi acestia pot fi verificati. Aplicatia de baza a acesteia se regaseste in camprile urmatoare: Jurnalul de logare sistemelor: Multe corporatii si institutii vor sa verifice activitatea angajatilor. Recunoasterea fetei (vedere de ansamblu) 2. Aplicatii Recunoasterea fetei este o aplicatie potrivita in multe inca nerezolvate sau nerezolvate optim probleme. Aceasta de obicei se face manual sau folosind carduri magnetice bazat pe un sistem cand angajatul ajunge sau paraseste zona de lucru. Securitatea ATM Solutiile multor banci. Identificarea persoanelor disparate sau a criminalilor Sistemul de recunoastere a fetei poate fi instalat intr-un spatiu public. Fiecare capitol de la 3 la 7 prezinta una din fazele: Achizitia de imagine. Interfata om/computer 4 . dar are lipsurile ei: procesul de logare poate fi uitat. pentru a identifica oameni disparuti sau cautati. exista deja doua sisteme pentru aceasta propunere in orasul de noapte Ybor City la Tampla (Fl.

2. 2. Dupa ce fetele au fost localizate tranformarile Gabor sunt aplicate regiunilor caracteristice. Fiecare nivel da o aproximatie mai buna caracteristicilor pozitiei. Ei sugereaza folosirea combinatiei nivelului al doilea al prototipurilor liniare apartinand aceleasi clase de figure. Modele deformabile Modelele deformabile sunt construite de mana de la curbe parametrice cu contur caracteristic. Unduieli In MENG00 un mod bazat pe unduieli este prezent. nu obtinuta prin prototipuri in mod coerent. Figura necunoscuta este scrisa ca suma importanta de baza a imaginilor. Un process de minimizare a functiilor energetice da valoarea parametriilor. eliminand nevoia de lucru manual de calitate precisa. Alte Programe In o poza este prezentata o apreciere FANS00. Prelucrarea fetei se incheie dupa 5 . Machete bazate pe vederi multiple BEYM93 prezinta o fata cu machete de la modelul vederilor multiple care acopera poze diferite ale sferei.2. fetele pereche sunt determinate comparand transformarea de afin – conformand poza – regiunilor relevante ale imaginii. Este demonstrate ca rezultatele sunt unduieli fata de metodele conventionale ale machetei. Poza fetei detectata foloseste un mod piramidal de nivel 5. Importanta va caracteriza figura din imagine. 2. 2. Acestea se schimba de la constrangeri la constrangeri. Una dintre modurile folosite sau propuse sunt prezentate in urmare. Trasaturile fetei sunt localizate utilizand aceste unde. LILU98 propune o analiza de nivel al doilea. caracterizand fata.2.5. Nu exista o metoda generala aplicabila. Dupa ce poza este evaluata. Vectorul fetei este obtinut de la valorile regiunilor statistice.2.2. Vectorii extrasi sunt clasificati intr-un model Hidden Markov.Metodele de baza de caracateristica vectoriala In LIAO00 doua filtre Gabor bazate pe caracteristica vectorilor sunt prezentate modurile.6. Analiza Karrhunen-Loeve (Eigenfaces) Modul eigenfaces este o metoda des folosita si devreme implementata. 2. Este bazat pe analiza fetei intr-o baza de figuri.Statiile de lucru ar trebui sa poata sa recunoasca utilizatorii sau ar trebui sa captureze infatisarea utilizatorului.4. Scopul lor este sa imbunatateasca recunoasterea fetei sub o noua conditie. 2.2.2. calculata de la imaginile bazei de date. pentru a trata prototipurile coerent.2. In GARC99b si GARC00 este prezenta o metoda care extrage saisprezece unde intr-o descompunere de nivel doi.Solutii Solutiile problemelor de mai sus sunt prezentate in multe moduri partiale.3.1. 2. 2.

daca transfromarea poate fi realizata. niciuna dintre metodele cunoscute este acceptata ca o solutie viabila si generala. Dar folosirea acestui pas poate reduce la extreme urmatoarele faze prelucrate cu effort. 3. sau pentru a separa imaginea in obiecte cunoscute si examinate. 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. 3. 3. si rezultatul lor este unit la punctual de intalnire dintre ele. imaginile dinamice sau statice salvate de web-cam. este importanta segmentarea imaginilor in complementarea regiunilor si in fundal.3. 6 .1. Segmenatrea In recunoasterea fetei. ei aplica culoarea si histograma prelucrata. Prelucrarea caracteristicilor reduce de obicei erorile imaginilor. Sistemele de neuron incearca sa simuleze procesele competente ale creierului uman. Aceste faze sunt studiate impartite. rezultatele lor sunt nesemnificative. Desi este un procentaj mare.3. Rezultatul imaginilor interpretate usor de catre oameni ori sunt prelucrate simplu in urmatorii pasi automati pregatiti. imagini vopsite si rezultatele de la alte imagini digitale). sau folosind alte surse (ex: zgarieturi manuale. 2. care transforma faza de intrare in rezultatul dorit. Un mod statistic cu clase separabile este prezentat in NAGA00. Un sistem de retea neuronal este prezentat in ROWL99. dar si in alte imagini sunt probleme de prelucrare. fotografierea cu camera de filmat de inalta calitate. Exista moduri evidente pentru a obtine imagini digitale: scanarea unei poze facuta de un aparat de fotografiat. Faze ale recunoasterii fetei Complexitatea problemei de recunoastere a fetei inseamna ca trebuie sa fie divizata in mai multe faze simple. Segmenatrea este o faza importanta. Imaginea poate fi obtinuta din mai multe surse. Exista relatate 80% 90% succese recunoscute. Rezultate Solutiile existente functioneaza in circumstante limitate. Achizitia de imagine Aceasta faza capteaza ilustratiile folosind dispozitive de capturare periferice.ce fata si trasaturile sunt localizate si informatia este folosita pentru a evalua poza. Acesti pasi garanteaza o prelucrare mai simpla in fazele urmatoare. cativa pasi de prelucrare sunt bine veniti. Prelucrarea caracteristicilor Dupa ce o imagine este disponibila. In ZHAO00 autorii folosesc informatia conturului extrasa din umbre si simetria fetei in scop de recunoastere. 3.2. Fiecare faza contine una sau mai multe informatii prelucrand pasi. Deoarece procesul de competenta complexa este dificil de simulate. Putinele aplicatii functionabile in viata reala prezinta greseli mari.

Cautare in baza de date Acest pas este principalul scop al prelucrarii. 4. cu un card care obtine o imagine video de calitate buna permite o viteza de capturare mai mare (de obicei standard PAL 25Hz sau NTSC 29. 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. Avansarile tehnicii in echipamente digitale permit folosirea eficienta a dispozitivelor video. etc. acuratetea culoriilor) este in general rea.sau CCD –cu calitate mai buna. Aparatele analogice de fotografiat mai vechi.4. suprafetele regiunilor. Extractia caracteristica Caracteristicile imaginii sunt un set de valori statistice determinate de valori de stil. Este importanta alegerea caracteristicilor deoarece sunt folosite in clasificarea proceselor: un rezultat rau rezulta o identificare rea si un rezultat bun determina o metoda usora. Dezavantajul timpului lung al capturarii poate fi inlaturat folosind echipament capabil de a obtine fotografii in format electronic. care poate fi obtinuta din mai multe surse. Rezolutia camerelor web este de obicei mai rea decat a fotografiilor scanate. poate compara parametrul stability pentru a determina daca reprezinta aceasi persoana sau daca nu este aceasi persoana. Caracteristicile pot fi distantate intre doua puncte.captureaza imaginile reale direct in format digital.cu calitate medie. sau poate determina daca fata este in baza de date existenta. Dispozitivul cel mai des folosit de aceasta categorie este camera web. Aceasta poate capta in format digital ori fotografii sau filme (succesiuni de fotografii). Noile camere complet digitale permit o viteza superioara si performanta de calitate. momentele. Aceasta metoda este simpla. parametrii transformati aplicati local sau global. Dupa ce sunt extrase caracteristicile. sau pot fi rezultate din altele. Fotografia de intrare trebuie sa fie de format digital. acestea trebuie sa fie ordonate intr-o forma coerenta.5. ce poate descrie cu precizie o figura. 7 . ieftina si rezulta o imagine digitala de calitate buna. simpla si exacta de identificat. Calitatea imaginii (semnal/marja de eroare. dar totusi rezolutia lor este mica.1. Achizitia de imagine 4. lungimile perimetrelor. 3. regiuni limitate. Aceasta depinde de model. centrul masei. Daca setul ales are o asemanare mai mare dacat minimul pragului atunci imaginea corespunde imaginii alese din aza de date. Senzorii CMOS. Dispozitivele pot stoca imaginea in format digital. dar principalul dezavantaj este timpul prelucrarii pozelor extrem de mult pana ajunge la imagine digitala.3.999Hz TV semnal cadre/secunda ) si o calitate buna a fotografiei. urmata de alegerea identitatii celei mai similare cu imaginea interesata. Daca similaritatea ii sub prag . 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 de obicei este o verificare secventiala a fetelor pentru fiecare persoana disponibila din baza de date. rezulta ca imaginea curenta nu corespunde nici unei identitati cunoscute din baza de date. Dispozitiv de captura Achizitia de imagine este primul pas al procedurii prelucrarii imaginii.

In mediu ambiental intunecos. aparatul de fotografiat nu poate executa o poza de calitate buna. mai simplu de realizat si ma bine definite. care trebuie sa fie bine definite. Figura 2. Daca imaginea capturata nu este marita.2. mai putine constrangeri. Alta conditie este lumina. Daca nu asigura conditiile satisfacator. Acest lucru este satisfacut de 99% dintre aparatele de fotografiat: au cel putin unul in serie. Algoritmii aplicati au unele nevoi.Fata acopera mai mult de 40% din poza 8 . Schimbarea luminii. Conditiile sunt urmatoarele: . Acestea pot fi folosite pentru capturarea fotografiilor. Aparatele de fotografiat digitale sunt o tehnologie noua si au o dezvoltare rapida a dispozitivelor de capturare. pot functiona numai in conditii limitate. Aparatele de fotografiat bune sunt considerate cele care au peste 3 mega-pixeli. Presupunem ca lumina cade in spatele si deasupra fetei. apoi nu poate fi folosita In aceasta lucrare am stabilt sa cerem conditii diferite. Deoarece noi credem ca o calitate buna a imaginii imbunatateste rezultatul in aceasta lucrare folosind pentru captura camera digitala cu rezolutia standard 720x576 PAL. analogic (compozita). fire-wire. in sistem digital. camera cu senzori CMOS sunt considerate echivalente cu cele din categoria camerelor web. Conditii esentiale ambientale Conditia ambientala a achizitii de imagine au multe influente asupra algoritmilor folositi in pasii urmatori. daca au o interfata corespunzatoare.Fata este descoperita . Modul nostru de anul trecut implica o imagine cu fundal uniform. 4. mai mult. atunci imaginea capturata poate fi inutilizabila (ultima poza de la Figura 2 este prea intunecoasa). sau cea mai frecventa interfata USB. Aceasta conditie esentiala a facut posibila folosirea unor algoritmi simpli pentru a gasi o fata intr-o poza. Acestea difera in rezolutia dispozitivelor pentru generarea semnalelor – senzorii lor sunt CCD.sau o pot transfera prin o largime de banda inalta la alt echipament digital (ca un computer personal).

1. Prelucrarea imaginii Pasul prelucrarii include operatiuni simple. Daca dispozitivul de capturare are calitate slaba sau conditile ambiante nu sunt favorabile. apoi imaginea capturata trebuie sa fie sporita inainte ca alt process sa poata fi aplicat. Daca ambianta este insuficienta pentru aceste conditii. unele dintre 1 1 1 1 1  1 1 1 1 1 0 1 0  1 1 11 2 1   1  Ele sunt : ⋅  1 1 1  0 1 1 11 2 1    1 1 1 1 1 16  25 1 1 1 1 1 . 1 ⋅ 1 1 1 . 5. 5. 1 ⋅  2 3 6 7 8 9 . Aceste operatii variaza de la lumina simpla si culori intense la mucdie de detectare complexa si algoritmi de segmentare. in linie cu capul si aparatul Consecintele conditiei se intrebuinteaza in diferiti pasi ai prelucrarii si sunt luati in considerare ca asigurare pentru ambianta. In cele ce vor urma vor fi prezente filtre frecvent folosite. Filtre de netezire Aceste filtre reduc semnalul de eroare al imaginii.951 1 1 1 10 1 . cu ochii fixati la aparatul de fotografiat Aparatul de fotografiat este la nivelul ochiilor Sursa luminii este in spatele si deasupra capului. care aplica operatii aritmetice simple la fiecare pixel al imaginii.1. Miezurile pot fi de mai multe tipuri. 5.- Aparatul de fotografiat este Subiectul identificat are tenul deschis la culoare (alb. atunci rezultatul va fi necunoscut. 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.Filtru mediu Acest filtru netezeste valorile pixelilor. efectuand non-important sau de importanta medie a valorilor pixelilor vecini.1. 1 ⋅  2 4 2 . rezultand o imagine cu caracteristici sporite.

Aceasta eroare modifica cu distribuirea intamplatoare unii pixeli ai imaginii. 9 si acesta este rezultatul valorii pixelului current care va schimba din 9 in 4. Imaginea cu erori este in stanga. 3. 10 . Figura 5. Rezultatul de 3x3 a filtrului mediu non-important este in dreapta 5. 3.Filtru median Acest filtru este foarte util cand sunt erori prezente. Rezultatul filtrului este luat de la 2 valori. Filtrul median aplica la fiecare pixel: (2N + 1)*(2N + 1) o matrice de masca larga.2 2.1 1. deasemenea. Dupa cum este prezentat in Figura 7 unii pixeli pot sa fie schimbati. 6.6 4. Filtru mediu. Rezulta cu a-2-a kernel Filtrul mediu este folositor cand eroarea este distribuita uniform in imagine. Acesti pixeli particulari au o intensitate de valoare mai mult sau mai putin decat ceilalti din imprejurimile lor. Daca ei sunt distribuiti la intamplare.0 xxx 5.8 5. dar si detaliile folositoare.0 7.8 5. Rezultatul sortarii este 2. Aceasta triere este foarte utila pentru a elimina pixelii cu valori care sa aiba o diferenta mare intre ei si valorile vecinilor.3 6 7 8 4 6 4 2 5 9 2 3 8 5 3 2 9 6 4 2 x x x x x xxx 4.2.1. depinzand de pixelul vecin. atunci vor fi prezenti deasemenea in rezultat.8 5. 2. 3.0 x x x x x Figura 3. Alta lipsa al filtrului este ca netezeste nu numai erorile. 8. De exemplu in cazul unei matrice de 3 x 3 (N=3) daca pixeli vecini ai valorii 9 sunt aceiasi ca in Figura 6. 4. Exemplu de matrice Figura 4. Intensitatea valorii pexelilor din matrice sunt sortate in crestere (2N+ 1)*(2N+ 1) in functie de ordinea sortarii. O muchie ascutita dupa ce filtrul este aplicat va face imaginea rezultata cenusie.

3. originalul si imaginile rezultate arata ca in Figura 8. Imaginea originala se afla in stanga. mijloc si regiunile stralucitoare [OTSU79] Figura 9. Figura 8.Figura 6 Figura 7 Pentru o imagine reala. 5.rezultand doua praguri de sensibilitate pentru lumina.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. Se poate vedea foarte bine ca filtrul fereste muchiile obiectelor. Filtru Median.1.Algoritmul interativ rezolva (1). regiunea umbrei de mijloc si regiunea intunecoasa pentru fundal. urmand imaginile intunecate. Rezultatul imaginii filtrate in dreapta. umbrite si de mijloc. Filtrarea Reddi. Imagine cu erori de tip sare si piper in stanga. 11 .

2. Figura 10. Principiul lui este bazat pe derivarea imaginii bidimensionale.5.1. segmentata in 5 regiuni este prezentata in Figura 10.Generalizarea segmentatiei Reddi In [MICE02] noi am generat algoritmul de segmentare Reddi.2. Derivarea este realizata [1 0] folosind rasucirea cu Kernel. Detectarea de muchie Exista multi algoritmi utili pentru detectarea muchiei.Detectarea de muchie Prewitt Detectarea de muchie Prewitt este unul dintre cei mai simpli. Algoritmul generalizat determina precum multe preguri de sensibilitate sunt necesare folosind (2) Pragurile de sensibilitate ale segmentului ki in imaginea originala a zonei n+2. Regiunile intunecoase pana la cele luminoase sunt prezentate de la stanga la dreapta 5.1. care poate fi sursa de informatie de calitate extrasa din imagine. Unii dintre ei au fost inventati de 10-20 de ani. Generalizarea segmentarii Reddi. altii sunt mai noi si difera de la cei mai vechi cu imbunatatiri mai putine sau mai multe. Aceasi imagine pentru Figura 9. Derivarea foloseste numai 0 1/ valorile a doi pixeli vecini.4. vechi si rapizi algoritmi. 5. Muchia este detectata daca valoarea derivatei este mai mare decat o valoare specificata – de obicei determinate din intregul set de valori derivate 12 .

Detectarea de muchie Sobel Detecatarea de muchie Sobel foloseste Kernel / 000 / determinand Y directia D Derivate si este pentru directia lui X si derivate D. Figura 13. dar cu o forma calculate si salvata: Pentru matricea de la Figura 11. Derivatele Y si X si suma celor doua derivate sunt prezentate de la stanga la dreapta 13 .2. -2 -1 -5 0 x X x X X x Figura 11. rezultatul Filtrului Sobel este prezentat in figura 13. 5.2. Rezultatele filtrului Sobel.1 1 2 8 7 1 1 2 8 8 1 1 2 7 7 1 1 2 7 7 0 -1 -6 0 x 1 3 2 7 7 0 -1 -5 1 x 0 -1 -5 0 x Figura 12. Poate fi vazut derivatul maxim care corespunde muchiei. Valoarea finala a derivatei sau cu o similara.

care este stability la 3nmax/4. Muchia detectorului de masca SUSAN poate fi rotunda sau rectangulara. n este comparat cu un prag de sensibilitate fix g.3. La inceput o ecuatie simpla determina comparatia: (3) De la c(y. Suprafata sau USAN contine multe informatii despre structura imaginii.Figura 14. Principiul SUSAN a fost prezentat in [SMIT95a]. asa ca accesul tine cont ca aceasta este mai valoroasa. O masca circulara (avand un pixel de centru cunoscut ca “nucleu”) este prezentat ca cinci pozitii de imagini. derivate verticala. derivate orizontala. imagine dupa ce sa aplicat reducerea muchiei 5. 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. Algoritmul de detectare a muchiei foloseste o fereastra predeterminata centrata pe fiecare pixel din imagine. 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. Univalue Segment Assimilating Nucleus. Raspunsul de muchie initial este atunci crea folosind regula: 14 . Fata are textura mai putina a imaginii.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. suma a doua directii derivate. Acest concept ca fiecare punct din imagine avand asociat cu el o suprafata cu luminozitate similara este baza principiului SUSAN.2. Filtrul Sobel: imaginea originala. Cele mai bune rezultate pot fi obtinute cu mai multe masti complexe circulare.y0) rezulta importanta valoare n pentru fiecare pixel: Apoi. Cea care face acest lucru este detectarea de muchie SUSAN. suma pragului de sensibilitate(valoarea maxima 7*). unde nmax este valoarea maxima pe care o poate lua n.4 pixeli (dand o masca de 37 pixeli). Aceasta suprafata a mastii este cunoscuta ca “USAN”. Razele de cerc propuse sunt [SMIT95] de 3. Aceasta este efectiv regiunea descoperita la scara mica.

Pragurile de sensibilitate tk al egalarii sunt definite folosind histograma H(i) a imaginii de ecuatia (6) si (7).Egalarile de histograma Egalarile de histograma au incercat adesea sa mareasca o imagine [SHAP01]. 15 . 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. N. Harta de nivele gri nu schimba vederea de ansamblu a imaginii. Detectarea de muchie SUSAN. doar face niste regiuni mai vizibile. 5. rezultand un contur bun de imagine. matricile R si imaginea pragului de sensibilitate R Acest pas urmat de reducerea algoritmilor ca [SMITH95b].3.Figura 15.

imaginea netezita ultima de jos 5. deschiderea si inchiderea exemplului aplicat matricei binare de la Figura 18 poate fi vazuta la Figura 19. dar o mult mai mica imagine binara. care este alta.Segmentarea culorii de baza Segmentarea culorii de baza foloseste informatia imagini color. Aceasta poate folosi una sau mai multe spatii de culori disponibile (RGB. dilatarea.Figura 16.1. Egalarea de histograma. 16 . Unele elemente de structura sunt prezentate in figura 17. YIQ si YUV). HIS. Elemente de structura Eroziunea imaginii binare B structurand elementul S este definit ca Dilatarea imaginii binare B structurand elementul S este definit ca Deschiderea unei imagini binare B structurand elementul S este definit ca Inchiderea unei imagini binare B structurand elementul S este definit ca Eroziunea. Transformarea morfologica Operatiile de morfologie binara transforma o imagine de intrare binara B folosind o structura a unui element S.4. Acest subiect este tratat detaliat in sectiunea 6. Figura 17.5. poate sa aiba orice marime sis a aiba structura arbitrara [SHAP01]. Structura elementului reprezinta o forma. Imaginea originala si histograma de sus. Frecventele culorilor au diferite histograme construite [SHAP01] sau domeniile color stiute anterior sunt aplicate sa obtina regiune dorita. CMY. Segmentarea culorii este folosita pentru detectarea fetelor. HSV. 5.

Transformari morfologice 17 . Exemplu de matrice Eroziunea Dilatarea Deschiderea Inchiderea Figura 19.Figura 18.

Textura bazata pe segmentare [GUOL00] poate fi o alternativa potrivita. pentru a inlatura influenta luminozitatii imaginii. Principala problema a culorii bazata pe segmentare este variatia valorii culorilor depinzand de luminozitatea imaginii. Tiparele fetei si conturul fetei specific sunt caracteristici complexe. Alta histograma bazata pe metode este prezentata in [SHAP01]. G. Multe cercetari au fost facute pe aceasta problema. ochii. B) si aceasta valoare este scazuta de la fiecare valoare a culorii. Unele dintre ele ([AMIT98]) trateaza cazuri mai generale. una mixta a fost aleasa. In acest mod am folosit logaritmul RGB suprafata de culoare: aceasta suprafata de culoare comparat cu RGB. Primul pas. gura. asa ca aceasta metoda poate fi folosita rar. pot fi reprezentate doar de modele complexe. Dispozitivul de capturare are erori. introducand un comportament automat nedeterminat al algoritmului care egaleaza cu niste culori inconstante ale apratatului de fotografiat: 18 . fata gasita in imagine trebuie sa fie gasita si separate de fundal. In [GARC99a]. nasul pot fi identificate bazate pe textural lor si locatia corelata a acestor caracteristici poate fi sursa localizarii fetei in imagini arbitrare. [GARC99b] si [FLEC96] autorii au propus diferite sortimente ale culorii componentelor(in spatiile de culoare diferite) care caracterizeaza fata. Pielea. 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. restrictiile culorilor prezentate in [FLEC96]. folosind vederea tridimensionala si cunoscand conturul specific si tiparul fetei. Culoarea bazata pe regiuni selectate In primul pas folosin informatia culorii a fiecarui pixel. a fost aleasa una similara cu fata. Pentru pasul al doilea sunt date doua alternative. Multe lucrari se ocupa cu segmentarea imaginii.1. altele incearca sa extraga regiuni si obiecte specifice. Mai intai. parul. Fata are texturi particulare in zone specifice. Problema segmentarii este definite ca: este data arbitraroimagine color.6. care sunt mai putin eficiente pentru suprafete mari – acestea vor fi aplicate regiunilor fetei detectate si vor fi folosite in algoritmul detectarii fetei. In [WUHU00] autorii folosesc 6-D RGB si suprafata de culoare HSV utilizeaza tehnici de analiza discriminatorii multiple si metode probabilistice. Dupa ce mai multe moduri au fost incercate. Pentru oameni aceasta este usor de facut diferenta dintre culorile specifice ale fetei si ale fundalului. o valoare aleatoare intre 0 si 1 este adaugata inainte de operatia logarithm. HSI sau suprafata HSV spatiile sunt mult mai stabile la variatiile luminii. intensitatea minima a fost gasita in fiecare zona colorata (R. Pe luminozitate vectorul normalizat operatia log10 este aplicata. Conceptii diferite sunt prezentate in literature. Segmentarea In acest capitol este prezentat algoritmul segmentarii. Dup ace toate aceste au fost incercate. In viziunea computerului doar ocazional este disponibila picture 3D. posibilele regiuni ale fetei sunt selectate. 6. pentru a compensa acestea.

Unde LogValue(Value) este: Coeficientul 105 este folosit doar pentru a obtine rezultatul in domeniul Un pixel al imaginii este declarat de a fi pixelul posibil al fetei daca multumeste urmatoarele conditii: Unde am caracterizat intensitatea imaginii si este egala cu LG. Codul sursei din Matlab al intregului algoritm este prezentat in Appendix A. Figura 22 si Figura 23. Conditile de mai sus sunt facute pentru a fi conditii slabe. si By este diferenta intre LB si media dintre LG si LR: Conditile de mai sus au fost determinate bazandu-se pe [FLEC96] si pe studiile experimentate ale seturilor de imagini disponibile. Figura 21. apoi valoarea completa al acestor diferente sunt parcurse de un al doilea filtru median: Texturile corespunzatoare fetei sunt zone ale imaginii putin texturate. Inca o conditie a fost folosita in versiunea Matlab cu algoritmul bazat pe [FLEC96]: pentru a calcula a amploarea texturii. astfel conditia corespunzatoare pentru textura este: (d)Texture < 1 Intersectia lui (a) … (d) conditiile determina posibili pixeli ai fetei. Rg este diferenta lui LR si LG. pentru a garanta ca majoritatea fetei este selectata. 19 . intensitatea imaginii este netezita cu un filtru median si rezultatul este scazut din imaginea originala. Rezultate al algoritmului extragerii culorii sunt prezentate in Figura 20.

de sus in jos 20 . Masca By. Imaginea originala. Extragerea culorii. de sus in jos Figura 21. imaginea rezultata dupa aplicarea mastii imaginii originale de la stanga la dreapta. .Figura 20. imaginea rezultata dupa aplicarea mastii imaginii originale de la stanga la dreapta. Masca Rg. Masca de textura. Masca By. Masca Rg. Masca I. Masca de textura. Extragerea culorii. Imaginea originala. Masca I.

de sus in jos Figura 23. Extragerea culorii. . Imaginea originala. Masca By. Masca By. Extragerea culorii. de sus in jos In aceasta parte a algoritmului putem duce la niste concluzii 1. Masca I. Masca de textura. imaginea rezultata dupa aplicarea mastii imaginii originale de la stanga la dreapta. Imaginea originala. Culorile diferite logaritmice sunt standarde bune in extragerea culorii asemanatoare fetei. . Masca Rg. Masca Rg.Figura 22. imaginea rezultata dupa aplicarea mastii imaginii originale de la stanga la dreapta. Masca de textura. 21 . Masca I.

data de filtrarea mediana poate fi superioara ca performanta rezultatului. Aceasta metoda de exprimare este buna dar nu optima deoarece necesita doua faze. Urmand pasul anterior am obtinut o imagine in care regiunea cea mai mare este zona fetei design aceasta prin cele trei conditii anticipate (expuse in g3. Se poate aplica apoi metoda de realizare pas-cu-pas a unei regiuni. 4. astfel umplandu-se zonele care nu se invecineaza. 6. stanga. Daca avem campul din fata o legatura de 8 apoi parte complementara a imaginii trebuie sa fie o legatura de 4 pe verso. 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. 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. 6.1 Selecteaza mai complet umplutura regiuniei. Conditile Rg si By sunt folositoare pentru selectarea punctelor fetei. Acest algoritm a fost gandit pentru a face toate calculele deoadatautilizand structuri de date suplimentare. 3. Culoarea pixelului inseamna grupul de numere caruia ii apartine. Conditile (a)…(d) detecteaza nu numai zona fetei.2. ochii spacenele si fruntea au o culoare diferita de restul fetei).2. Toti pixelii care formeaza o regiune au acceasi culoare. figura 21. Aceste zone neselectate trebuie sa constitue parte a regiunii invecinate. cei 4 vecini de legaruta al unui pixel sunt cei 4 pixeli din dreapta. cei 8 vecini de legatura ai unui pixel sunt cei 8 pixeli inconjoara. deasemenea. Texturarea imaginilor poate fi folositoare in observarea regiunilor netezite ale fetei. dar au unele deficiente: doar culorile deschise ale fetei sunt selectata (fara ochi. Cel mai usor de realizat aceasta este aplicand algoritmul de umplere in cascada. De accea s-a utilizat un nou algoritm combinat. sprancene sau par) si detecteaza alte regiuni care au culori similare cu ale fetei. dar folosirea lor nu este intotdeauna obligatorie si efortul lor calculat.deasupra si dedesuptul pixelului curent . Pentru fiecare pixel se determina culoarea. in acest algoritm fiecare pixel primeste un cod format dintr-o valoare 22 . Concluzia finala este ca aceasta culoare bazat pe detectare este buna.1) Mai este necesara o observatie dupa cum se poate vedea in figura 20. 848 44 848 Figure 24.2 Prelucrarea anticipata a formei fetei După ce regiuni posibile ale formei fetei sunt aflate urmează doi paşi: selectează zona cea mai mare si alege din zona selectata pe accea care formeaza o imagine completa. dar si alte regiuni colorate ca ale fetei. figura 22 si figura 23 parte din fata poate contine zone negre (unde gura. Vecinatatea Pixelului Inainte ca algoritmi sa fie descrisi in amanunt trebuie sa explicam diferenta intre 4 si 8. Algoritmul urmator va lua in calcul doi pixeli parte a unei singure zone daca au o cale de 8 pixeli de legatura intre ei. dar nu destul pentru gasirea fetei in imagine.

Numerele pixelului celor doua zone se vor insuma. 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. Dac N-NE si WWE 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. Sunt trei variante (figura 25) • Daca pixelul este de mascare culoarea sa este codata numar intreg pozitiv. Daca NE_N si W_NW sunt puncte de masurare si ele sunt egale(de ex fig. 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 23 . • Daca pixelul este de fundal de bordare atunci culoare lui este 0.26a) vecinul pixelului este o zona numai astfel culoarea pixelului va fi data de culoarea vecinatatii. In exemple semnul ? este folosit numai daca culoarea pixelului nu este cunoscuta. daca-i de mascare ori fundal : a.numerica. 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. Operatiile facute depind de fiecare faza de felul pixelului . 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 pixelul este de interior atunci culoare primeste codificare cu numere intregi negative. In exemple ei sunt marcati cu nume intregi subliniate in celule de culoare alba. Daca N-NE sau W-WE sunt pixeli de fundal (fig 26 c) atunci culoarea pixelului nu este de fundal.) Pentru pixeli de mascare : Se cauta culoarea pixeluilui superior(de sus) si a celui de susdreapta(N_NE)si a celui din stanga si stanga sus. In exemple ei sunt marcati cu numere pozitive in celule gri. In momentul cand pixelul este iontarit (bolded) atunci cand culoarea pixelului din centru este in procesul de cautare. Dupa unificare culoarea dominanta se va transforma in culoarea mai slaba. Daca NE_N si W_NW sunt pixeli de fundal(fig 26 b) atunci culoarea pixelului este una noua. In acest caz cele doua zone trebuie unite iar culoarea pixelului va fi culoarea vecinatatii. Acest pixel va fi primul pixel al unei noi regiuni.

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. unde este determinat rezultatul mascariisi foloseste algoritmul de restrangere a caii ea este considerata aproximativ ∪ ( 1) astfel ∪( n ⋅ m ) aliniamntul crescand cu 24 .urmatoare pixelii vor folosi culoarea corecta a pixelului superior. 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. Eficienta algoritmului este ∪( n ⋅ m ) ⋅ ∉ 1 unde ∉1 reprezinta complexitatea setului add. In functie de valorile lor sunt 4 variante : Daca unul din vecini este un pixel de bordurare (fig27a) atunci si acest pixel este de bordurare. b. Acesta se va pastra pentru toti pixelii de pe un rand.) Pentru pixelii de fundal Intru cat umplutura de legatura 8 este realizata. 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. Acest algoritm are o prformanta de inserare de ∪ ( 1) . In acest caz daca este un pixel de bordurare numai de interior este mascata acela este de bordura. 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. dand astfel posibilitatea stabilirii valorilor de bordurare. 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.cercetarea din structura de stabilire are nevoie de o performanta intre ∪ ( 1) si ∪ n 2 dar aceasta operatie fiind aplicata numai in stadiul fina. vom verifica numai vecinii supriori si cei din stanga pixelului de fundal. Daca cei doi vecini sunt puncte de mascare(fig27e) atunci o noua zona interna va debuta. unify(adaugare unifica) aceste informatii pot fi implementate cu o structura de datede stabilire folosind pointerul de stabilire parentala [CRET92].

Figura 28 prezinta rezultatul selectiei aplicate la rezultatul selectiei de culoare. Functionalitatea algoritmului este exemplificata in fig 29.marimea imaginii. Trebue sa ne reducem la : nevoia unui rand suplimentar de date de stabilire necesaul total este sub 2 ⋅ n ⋅ m . 25 . Versiunea matematica de laborator a algoritmului este prezentata in Anexa A.

26 .

6.2. T2 este 40% din maximumul numarului de pixeli al coloanei. Deci folosind aceasta mascare se obtine imaginea definita. Aceasta mascare poate sa nu fie rezultatul final dar da informatii utile pentru urmatorii pasi. 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. Se intampal de multe ori sa se selecteze mai mult decat o fata sau sa nu se selecteze intreaga fata. 27 . Sus/jos sau stanga/dreapta deci selectam marginea sunt similare.b) si diferenta (fig30c). ci numai o parte. Marginea (distanta) din stanga respectiv din dreapta se selecteaza in acelasi mod. Mai intai se va proceda la selectarea stanga/dreapta. 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 . deasemenea.2 Minimalizarea regiuni de interes Miscarile care au aparut din implementarea pasului anterior nu sunt intotdeauna corecte. • 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. Numarul de pixeli in fiecare coloana este o informatie utila.

28 . Marimile sunt marcate cu linii exterioare. 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.profilele da stanga dreapta diferenata stanga dreapta si numarul de pixeli pe verticala sunt aratate in fig 31.la acest punct unde conditiile nu se potrivesc exista distante laterale primare aratate in fig30 cu linii de interior. Distantele de deaspura si de dedesupt sunt aflate intr-un mod asemanator.

29 . • Muchiile din stanga si din dreapta sunt intense si corectate pentru a inlatura poziile care nu sunt tip[ice fetei.3 Sporirea bazata pe intensitati ale conturului fetei. Prima incercare a prezentat trei faze.6. Amandoua au dat rezultate bune dar nici una 100%. • O a doua incercare selecteaza zona fetei in final.prima este mai mult bazata pe diferenta de culoare iar a adoua pe definirea muchiei. S-a incercat sporirea marirea a doua imaginii de contur. care au scris in relief fata : • Fata este aproximata folosind nuante de culoare saturata si paramentri de valoare.

1.1) fiind selectata si urmatorii parametri verificati : • daca suprafata regiuni este mai mica de 70% din intreaga fata.3.1 cu 0 indicand o alegere mai buna. Astfel este necesar sa facem referire la o serie de alti pasi si mulaje : A ) mulajul rezultand din ecuatia S > 0. • Daca raportul inaltime/latime este in relatia [1. Acest component va incerca sa selecteze zona sub forma de elipsa fara alte concavitati. M + σ ] regiunea maxim umpluta(vezi 6.6]] care este de fapt proportia dimensiunilor standard ale fetei. Prima genereaza O daca orientarea este 90% insemnand ca regiunea corespunde unei fete orientate vertical.8 3 (vezi Fig 34b) produce doua mulaje.30 ∨ H > 0. 0.1. care rezultat reduce selectia V . 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.15 ∧ S < 0. Altfel regiunea selectata va fi mai mare decat fata.2.2. Se poate observa ca se analizeaza mai mult decat fata. Observatie : ecuatia de mai sus are doua componente de valoare in zona [M − σ .1 .1 Aproximarea fetei.6.325] care au componenta • se alege valoarea minima σ a coeficientului. Al doilea component genereaza O daca zona are forma de cerc sau de elipsa. 30 .1)ambele generand valori in gama 0 .70 2 (vezi fig 34a) si H < 0. • 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 alege valoarea minima a coefinientului Coef Observatie :ecuatia de mai sus are doua componente de valoare in zona [M − σ . M + σ ] regiunea maxim umpluta(vezi 6.02 imaginii de mascare pentru σ ∈ [0.

care este de fapt centrul fetei. In unele cazuri noul mulaj contine concavitati cu suisuri si coborajuri. Figura 35 arata un caz unde un ochi lipseste de pe fata. 31 .B) suprafata maxim umplutura se determina pentru mulajul care rezulta (fig 34c). marginile sunt constituite din ultimele randuri cu pixeli de mascare. Selectarea degajarilor superioara si inferioara se simplifica. 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 6. este interpolata liniar folosind cele doua puncte de margine (fig 37a). Partile laterale stanga si dreapta sunt selectate ca in primul caz. Adanciturile sunt in mod liniar interpuse : se determina minimumul histogramei.3. C) de tedermina mediul M si derivata standard a saturatiei pixelilor selectati. daca ascendenta monotona de pe pereti este intrerupta. In aceasta faza se elimina regiunile neportivite.2 Producerea celei de a doua fete. atunci alinierea dintre ultimul punct descrescator si urmatorul punct mai mic. daca ele fusesera introduce in faza anterioara. Algoritmul de netezire este urmatorul : se determina media histogramelor.

urmand sa unim cele doua profile dand forma finala a mulajului (fig 36).Profilul este netezit cu un filtru lat de 10 pixeli (fig 37b). 32 . Aceeasi pasi sunt parcursi cu profilul din dreapta. Pentru a obtine un rezultat mai bun pe lateralul fetei valoarea profilului se modifica cu maximum ±3 pixeli 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).

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.3.3 Concluzii ale acestei abordari. Rezultatele acestei abordari au fost bune(fig38).6. 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.8) − 0.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 ca in formula este unchiul luat ca directie iar y si x se caracterizeaza variabila in vecinatatea de 3x3 apixelului conform modalitati urmatoare.

Unchiul θ poate fi de 30 sau 60 grade. Vecinii tangentiali sunt determinati dupa cum urmeaza : a.) daca θ este mai mic de 30 de grade atunci 2 si 8 sunt vecinii ; b.) daca θ mai mare de 30 de grade atunci 4 si 6 sunt vecinii; c.) daca θ mai mare de 30 de grade si θmai mic de 60 de grade iar |3-7|>|1-9| atunci 1 si 9 sunt vecinii d.) daca θ mai mare de 30 de grade si θ mai mic de 60 de grade iar |3-7|=|19| atunci 3 si 7 sunt vecinii.

e.) Intrucat cat functia aratam este momentan crescatoare se poate ca pentru implementarea algoritmului sa fie eliminatacomparand proportia cu Tan(30)=0.5774 si tan(60)=1.773. Subtierea profilului ne va da o imagine in care profilele laterale se vor putea usor diatinge de ochiul omenes, dar este necesara mai multa munca pentru calcularea automata(fig43).

36

Profilele separate sunt prezentate in figura 44. Toate profilele cu lungimea mai mare de 5 sunt depozitate. Profilele gasite pot fi vizualizate in fig 45. Profilele separate nu sunt continue. dar se scoate evidenta ideea princiala. celelalte fiind considerate p[rea scurte. 37 .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. Pasul urmator va face sa crestem fiecare profil de la capatul sau pan ace intaneste alt profil. Profilele gasite delimiteaza suprafata fetei care in pasul urmator va fi selectata sau nu. Cresterea va fi pixel cu pixel in directia tangentiala profilului Algoritmul este mult mai complex decat o pot face cateva randuri de exprimare.

Fiecarei regiuni I se aloca un identificator unic explicandu-i-se un algoritm de culoare liniar. adica regiunea fundal. Regiunea care poseda un pixel in stanga sus va fi considerata speciala. Regiunile gasite in imagine vor fi caracterizate ca regiuni fata sau fundal. In continuare prezentam abordarea acestui subiect. • valorile medii ale componentelor R. 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 38 .6. G si B ale regiunii . Ea este aflata pe bara experimentala si a fost dezvoltata pe baza de cunoastre sei observatie a structurilor si proprietatilor fetei. • casuta de legatura a regiunilor . Aceasta faza incepe cu identificarea regiunii. rezultata din aflarea profilului unde pixeli de margine 5 nu sunt marcati cu toate ca ei sunt puncte ale profilului inconjoara toate celelalte regiuni. Este foarte important dar cel mai important si mai putin formulat subiect .4. Cresterea este formata de restrangere care foarfeca regiunile care au vecinii mai mult neselecati. Aceasta zona. • 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. Se vor determina de asemnea fiecare regiune invecinata si numarul de pixeli de granita pentru regiuni.2 Selectarea regiuni.

Regiunile mic si selectate sunt unite si li se dermina proprietatile iar vecinii sunt combinati.culam din nou centru regiunilor cu internsitate corecta si centru cel mai aprorpait de raza maxima. Centrul algorimului zonei care nu-i fundal se considera centrul fetei. Dupa ce determinam acest centru mult mai exact recal . Acest algoritm anexeaza regiunile de selectia curenta pana cand vor fi adaugate mai multe zone. 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. dupa care raza este recalculata la valoarea minima. Apoi centrul masei este recalculat drept centru zonelor cu intensitati mai mari decat minimumul calculat. 39 . Pe curba de selctie se calculeaza casuta de legatura a fetei. Aceata faza este urmata de faza selectiei regiunii. G si B care se va imparti la 3 si se va retine aceasta operatie deoarece daca nu tinem seama. Intensitatea minima a regiunilor ce pot fi selectate se obtine calculand 80% din media suprafetei sumei componentelor R. drept minimumul distantei dintre centrul zonei de margine si se va corecta ca in primul caz. Se reda in continuare cresterea regiunii initiale. Rezultatul selectiei de regiuni este aratat in figura 48. 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. trebuie sa foloim pe fiecare data formula altfel pierdem.valoare maxima intre regiunile invecinate disponibile.

) profilele interioare sunt umplute b. in faza finala conturul fetei poate fi marit. Exagerarea prezinta urmatorii pasi: a.6. Astfel. adica Rmax=200 si distanta care urmeaza este de un pixel(caz aratat in figura 49) Astfel θ ∆ si MAX_PI se deremina dupa cum urmeaza : 40 . Distanmta va fi retinuta pe un vector de lungime MAX_PI unde elementul i inmagazineaza distanta de contur din i.3 Netezirea conturului.) conturul mulajului se determina ca distanta dintre punctul de contur pana la centrul masti(mulajului).4. Mulajul rezultat candva contine regiuni neinsemnate care in mod nevoit au fost sterse sau adaugate fetei. Lungimea minima a centrului vector Max_PI pana la unghiul θ i = 2 ⋅ π ⋅ este importanta deoarece θ ∆ rezolutiei lui θ i daca este prea mare mai mare decat conturul inmagazinat in Ri valoarea MAX_PI se deremina astfel ca θ ∆ rezolutiei sa fie capabila sa descrie cel mai extrem raza este cea mai mare considerata raza maxima.

O chestiune care trebuie luata in calcul arata ca Ri este un tampon circular (deoarece contulul este o curba inchisa) : daca prima valoare a lui Ri este nedefinita atunci vecinul din dreapta trebuie cautat la capatul lui Ri si in acelasi mod daca ultima valoare Ri este nedefinita atunci vecinul ei din dreapta trebuie cautat la inceputul vectorului (fig 51) 41 .)Pentru unele valori θ Ri poate fi nemodificat daca conturul este foarte varialbil aceste valori sunt interpretate liniar folosind primii vecini cunoscuti stanga dreapta.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 c.

Imagionile contin (de sus in jos de la stnga la dreapta zonele de delimitare ale profilelor laterale. 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. g. conturului si fata rezultata.70 si fig 71 in anexa D arata secventa de pasi din profilul susan.)Conturul este tot atat de bine realizat pe cat este de apropiat profilurilor fetei.) in fine acest rezultat este filtrat din nou printr-o filtrare mediana de 31 de pasi lata si una de 100 pasi lata. f.) apoi Ri regenreaza conturul imaginii(fig 52) si de pe conturul masti rezultand imaginea finala(fig 53) Figura 68. zona centrala initiala rezultatele cresterii. e. 42 .)Acesti pasi sunt urmati de o mediana de 31 de pasi lata si o filtrare medie lata de 101 pasi. culorile lor medii. Filtrul median netezeste gaurile din contur si filteaza marile adancituri si ridicaturi de pe contur.d. descresterii.

Poziţia verticală a ochiului (y_eye) este următorul maxim al Aeye.1. 7. Scanând de sus în jos. 7. calculat în pasul anterior.2. segmnetat cu un filtru Reddi modificat 7. 54). apoi am încercat algoritmi de design pentru găsirea poziţiei lor.4/2001 şi apoi sunt prezentate alte metode posibile. se obţine coordonata y_eyebrows. 43 .7.1. Extragerea caracteristicilor Ţinta imaginii segmentate regăseşte faţa în imagine.2 Detectarea ochilor Regiunea de interes pentru localizarea ochilor se află chiar sub sprâncene. Fiecare algoritm are o zonă specifică de interes (ROI) care defineşte aria de căutare pentru rezultatul algoritmului. Caracteristici în funcţie de distanţă şi raţie Mai întâi am încercat să extragem cele mai importante caracteristici. Fig 54 Exemplu de ROI al sprâncenelor. Această poziţie se găseşte căutând în sus o variaţie de mai puţin de 85% din maximul precedent. Aeye –ul mediu este format peste 5 linii orizontale.1 Detectarea sprâncenelor Un filtru Reddi cu trei praguri este aplicat în ROI-ul sprâncenelor (fig. Dacă se găsesc mai multe caracteristici căutarea feţei va fi mai uşoară si mai exactă.1. Maximul acestei medii este calculat localizând poziţia liniei verticale a sprâncenelor. ROI este determinată în funcţie de parametrii deja calculaţi. Ca rezultat. În faza de extragere a caracteristicilor această regiune va fi verificată pentru a se găsi caracteristici. Mai întâi sunt prezentate câteva caracteristici care au fost identificate şi extrasee în proiectul DALT. Principalul scop al acestei etape esă extragă cât mai multe caracteristici ale feţei.

x_right_eye_left. Pentru a minimiza erorile de detecţie generate de o iluminare neuniformă a feţei. se află împărţind gura în două regiuni. Mai întâi se localizează poziţia verticală (y_mouth). 56). Poziţia verticală a nasului (y_nose') se află selectând numărul maxim de pixeli întunecaţi pentru fiecare linie orizontală în imaginea filtrată Sobel a feţei: nasul formează o margine bine conturată. 57 ROI segmentate Reddi ale gurii 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. y_right_eye_down) Fig 55 Exemplu de segmente Reddi ale ochilor 7. y_right_eye_up. x_left_eye_left.3 Detectarea nasului Locaţia orizontală a nasului este definită de axa de simetrie a feţei [AASK98]. pentru regiunea întunecată a buzelor. Pixeli cei mai întunecaţi şi cei mai spre dreapta şi stânga sunt colţii ochilor (x_left_eye_right. x_right_eye_right. Mai apoi.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. Folosind aceleaşi tehnici de segmentare Reddi. stânga şi dreapta ROI.1. x_nose_right) sunt găsite căutând în ROI sfârşitul zonei negre a găurilor nasului (vezi fig. Procedura presupune că forma gurii este aproximativ orizontală. Imagini ale gurii precum cea din fig 57 dreapta produc rezultate eronate. marginile nasului (x_nose_left. Poziţia orizontală a gurii şi implicit dimensiunea ei. x_mouth_right). Fig. am definit regiuni separate de interes pentru segmentarea Reddi (fig 55). y_left_eye_down. poziţia verticală a nasului e apoi calibrată.3 Detectarea gurii Procedura de detectare a gurii este similară cu cea pentru nas. precum în figura 57. printr-o scanare sus-jos a ROI. noua poziţie verticală a nasului (y_nose) e calculată ca linia ce separă zonele negre ale găurilor nasului în două regiuni simetrice. Ca rezultat. 56 ROI segmentate Reddi pentru determinarea caracteristicilor orizontatele ale nasului 7. [BRUN93]. Fig.1. 44 . y_left_eye_up.

pentru a creşte gradul de individualitate a modelelor feţelor. Imaginea din stânga este o imagine alb negru cu o singură regiune. Aria lui R este: sau numărul de pixeli din regiune. În paragraful următor vor fi prezentate proprietăţile geometrice ale regiunii R.2.7. perimetru. 7. de asemenea. orientare.2. momente. Deşi x şi y sunt întregi şi sunt numere reale: 45 . Această imagine va fi folosită pentru exemplificarea proprietăţilor prezentate în paragraf.1. DCT şi wavelet pot fi aplicate zonelor locale şi globale. În imaginea din dreapta ete o cruce care marchează centrul imaginii. x_left_at_eyes). Transformările Fourier. Procesul e o reducere simplă a căutării marginii feţei în imaginea Sobel la nivelele corespunzătoare. Aria regiunii este 5692.5 Modelarea conturului feţei Pentru o caracterizare mai bună a feţei. x_left_at_nose) şi la gură (x_right_at_mouth. Se presupune că pixeli sunt de formă pătratică. am introdus coordonate suplimentare pentru detectarea grosimii feţei: la ochi (x_right_at_eyes. cutie de restrângere. Centroid-ul este locaţia medie a pixelilor în setul R. x_left_at_mouth). la nas (x_right_at_nose. aria. Alte caracteristici Şi alte caracteristici pot fi extrase din faţă. Imaginea originală a centroid-ului. Caracteristici locale sunt: centrul masei. Acestea pot rezulta din calcule locale sau globale. Proprietăţi geometrice Fig 58. 7.1.

setul rezultat de pixeli de perimetru este 8conectat. jos. fiecare pereche de pixeli succesivi din secvenţă fiind vecini. iar în stânga este perimetrul de 4-conectivitate a unei regiume cu lungime Lungimea calculată |P| a perimetrului P. stânga şi dreapta. 59. Când se foloseşte 8-conectivitatea pentru a determina dacă un pixel din regiune este conectat cu un pixel din afara regiuni.Lungimea perimetrului P a unei regiuni este o altă proprietate. care e un dreptunghi cu părţi orizontale şi verticale care îngrădesc regiunea si ating cele mai extreme puncte de sus. inclusiv primul si ultimul.(yk-1. setul rezultat de pixeli de perimetru este 4conectat. o măsură comună a circularităţii regiunii este lungimea perimetrului la pătrat împărţită la arie: E de folos să ai idee unde se află regiunea într-o imagine. Un pixel al unei regiuni este un pixel de graniţă dacă are câţiva pixeli vecini care sunt în afara regiuni. Apoi lungimea perimetru |P| este definită ca: Cu aria A si perimetrul P definite. O simplă definire a unui perimetru a unei regiuni fără găuri este setul pixelilor graniţei interioare.xk-1)}. Perimetrii. Aceasta este motivaţia definiţiei perimetrului 4 şi 8 –conectivităţii: Fig. Când se foloseşte 4-conectivitatea pentru a determina dacă un pixel din regiune este conectat cu un pixel din afara regiuni. 46 . pixeli din P trebuie ordonaţi într-o secvenţă P={(y0. Un concept folositor este cutia de restrângeri.….x0). În dreapta este perimetrul de 4-conectivitate a unei regiuni cu lungime.

µxx măsoară variaţia orizontală. Dacă regiunea este o elipsă. Există trei momentele spaţiale de ordinul al doilea al unei regiune. 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 .Fig. 60 Cutie de încadrare Momente spaţiale sunt adesea folosite pentru a descrie forma unei regiune. iar µyx măsoară variaţia orizontală şi verticală. deoarece sunt invariabili la traziţie şi schimbare de scală a unei forme 2D. Aceste valori sunt adesea folosite ca descriptori de formă. Momentele spaţiale secunde au valoarea şi importanţă pentru regiunea de oricare formă. 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. Ele sunt definite după cum urmează: • Momentul de ordinul al doilea de verticală. atunci axa majoră este orientată la un unghi de 0ş în sens invers ceasornic faţă de axa orizontală şi are o lungime de minoră are o lungime de . • Momentul de ordinul al doilea orizontal. • Momentul de ordinul al doilea amestecat Deci µyy măsoară variaţia orizontală. Axa 47 .

Transformata Fourier este definită de ecuaţia (10). atunci axa majoră este orientată la un unghi de î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. folosind un set de feţe cunoscute. Pentru detectarea unui proprietăţi locale se poate folosi reţeaua wavelet precum în [FERI02]. Aceşti algoritmi sunt creaţi pentru analiza expresiilor. restaurare. Reţeaua wavelet detectează forma dintr-o faţă necunoscută. 61 Elipsa înconjurătoare În [TIAN00] sunt prezentate câteva metode pentru detectarea caracteristicilor şi extragerea lor. dar informaţia formelor caracteristicilor feţei poate fi folosită foarte uşor caă proprietate globală a feţei. Transformări Fourier şi transformări Fourier discrete Transformările sunt ustensile de extragere a caracteristicilor foarte eficiente. Axa minoră are o lungime de Fig. care deja au semne pentru toate caracteristicile detectabile. atunci axa majoră este orientată la un unghi de în sens invers ceasornic faţă de axa orizontală şi are o lungime de .2. inclusiv analiză.• Dacă µyx!=0 şi µyy> µxx. pe baza documentaţiei Matlab. 48 . Transformarea Fourier are un rol important în zona aplicaţiilor de procesare a imaginilor. mărire şi compresare. Acestea vor fi prezentate pe scurt. 7.2.

Lucrul cu transformata Fourier pe calculator implică de obicei o formă a trasformatei cunoscută sub numele de transformata Fourier discretă (DFT). DFT este de obicei definit pentru o funcţie discretă f(m.(10) Variabilele ω1 şi ω2 sunt variabile de frecvenţă. relaţia bidimensională M-N a DFT e dată de ecuaţia (11). valoarea F(0. folosirea acestei forme: • Intrarea şi ieşirea DFT sunt discrete.0) este numită coeficientul DC.n). Din această cauză. de obicei e afişată doar în acest interval.n) care e nonzero doar pe intervalul finit 0 ≤m ≤ M −1 şi 0 ≤n ≤ N −1. cea ce e bine pt. 49 . • Există un algoritm rapid pentru calcularea DFT cunoscut ca Transformarea Fourier Rapidă (FFT). Valorile sunt coeficienţii DFT F( p. Coeficienţii rezultaţi din DFT nu pot fi folosiţi pentru a caracteriza proprietăţile regiunii. în particular.ω2) este des numită reprezentarea domeniului de frecvenţă a f(m. În figura 62 sunt câteva imagini şi transformata Fourier corespunzătoare cu M=N=152. F(ω1.ω2) este o funcţie de valoare complexă care este periodica atât în ω1 cât şi în ω2. (11). q ) ai f(m. F(ω1.n). Unităţile lor sunt radiani/sample. manipularea pe calculator. Sunt 2 motive pt. de perioadă 2π.

DCT bidimensional a unei matrice A de dimensiuni M-N este definită astfel: (12) unde 0<=p<=M-1 şi 0<=q<=N-1. Din acest motiv este folosită în aplicaţii de compresie a imaginilor. pentru o imagine tipică.2. DCT este o transformare inversabilă.3. Imagini DFT. majoritatea informaţiei semnificative este concentrată în doar câţiva coeficienţi ai DCT. Sunt prezentate 5 imagini si transformata Fourier de 512x512 7. Transformările Cosine discrete DCT are proprietatea că. DCT este la baza algoritmului de compresare internaţional a imaginilor cunoscut sub nule de JPEG. iar inversa sa este: 50 . Valorile Bpq sunt numite coeficienţii DCT a lui A.Fig 62.

rezultând 16 wavelets a imaginii. a proprietăţilor de compresie a DCT. Ei aplică o decompresie arbore quad pe 2 nivele a imaginii. poate fi considerat ca greutatea aplicată fiecărei funcţii de bază.unde αp . (15). αq sunt aceleaşi ca în ecuaţia (12). Tabelul 1 Evaluare a compresiei imaginii cu coeficienţi DCT 7. Inversa DCT poate fi interpretată că orice matrice AMN poate fi scrisă ca o sumă de M*N funcţii de forma (13). Se poate observa că ultima imagine (5 coeficienţii) este aproape identică cu originalul. Figura 63 prezintă un exemplu. Imagini reconstruite cu DCT. Punctul de pornire e decompresia wavelet clasică: imaginea e împărţită într-o aproximaţie şi imagini detaliate. Fig. Coeficientul DCT Bpq.3.3. 63.4 sau 8 ori mia mică (procentul este mai mare) decât valorile din tabelul 1. Tabelul 1 prezintă nevoile de stocare a imaginii dacă informaţia gri este înlocuită cu coeficienţi DCT. Pentru a-l n -lea nivel semnanul este decompresat conform (14). Aceste funcţii sunt numite funcţii de bază a DCT. Decompresie wavelet a imaginilor feţei În [GARC00] autorii folosesc decompresia wavelet a feţei.2. aşa că raţia de compresie este de 2. 51 . (16) şi (17). Figura arată imaginile reconstruite folosind 1. Aproximaţie e apoi împărţită într-o aproximaţie de nivel 2 şi detalii. Î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.4 şi 5 coeficienţi DCT.

Wavelets ale feţei Caracteristicile pot fi extrase din aproximaţie. similar ca în [MICE02]. Fig 64. Pe deasupra wavelets pot fi folosite şi pentru detectarea feţei.Pentru imagini reale rezultatul este redat în figura 64. calculând diferite calcule statistice [GARC00]. 52 .

sau distanţa dintre ochi) este distanţa de normalizare. dar noi trebuie să facem progresele în această direcţie. am folosit raţii de normalizare diferite pentru caracteristici orizontale si verticale: • Caracteristicile orizontale sunt scalate cu „Lăţimeaa feţei la ochi” • Caracteristicile verticale sunt scalate cu „distanţa bărbie-sprâncene” 8. A lua totul în considerare este aproape imposibil. Dacă ele se întrebuinţează. (vezi fig.7. 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. pot cauză disimilarităţi în caracteristicile determinate. Diferenţe de rotaţie. atunci trebuie să aibă o greutate în decizie foarte joasă comparată cu alte caracteristici. 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. mustaţă. 53 . vârstă) să nu ar trebui să altereze caracteristica extrasă. 65) Fig 65 Scalarea feţei În [MICE02] am folosit caracteristicile normalizate după ce au fost extrase. Condiţii exterioare ambiante (iluminare.4. Nu există o soluţie bună. • Caracteristicile folosite pentru căutare ar trebui să fie cele care au cantitatea de informaţie maximă. Această problemă poate fi rezolvată prin normalizarea poziţiei feţei. O dimensiune (înălţime. forma feţei. barbă. forma liniei spectrale de margine de păr nu sunt semnificative. Pe de altă parte. dimensiunile feţei sunt specifice pentru o persoană dată • Există multe abordări pentru procesul de identificare. Ele au abordări diferite. formă cu stabilă şi invariabilă pentru o persoană dată. Caracteristici ca diametrul pupilei. Cele mai importante puncte sunt: • Variaţii determinate de poziţia capului. forma nasului. În paragraful următor sunteţi prezent mai multe abordări. şi restul imaginii va fi scalată păstrând raţia. Siguranţa căutării depinde în special de: • precizia caracteristicile extrase: caracteristicile trebuie să fie bine identificate. care trebuie să fie de lungime standard. Lăţimea. chiar dacă sunt foarte mici. au avantajele diferite şi dezavantaje diferite. Căutarea în baza de date.

Lăţimea nasului. Orice două puncte de caracteristici ale aceleaşi persoane sunt generalizate de linia de caracteristici traversând cele două puncte. Metoda celei mai apropiate linie de caracteristici ( [Stan98a]. 8. precum e descris în Tabelul 2. 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ă. Distanţă verticală între ochi şi sprâncene. Clasificarea se bazează pe distanţa minimă de la caracteristica de interogare la fiecare linie de caracteristică. Ele definesc o clasă a caracteristicilor pentru fiecare persoană din baza de date. Metoda prezentată în [MICE02] se bazează pe combinaţiile distanţei liniare minime. Lăţimea feţei la nivelul de gură. Abordări pentru căutarea feţelor Îndrumările de bază pentru măsurarea asemănările sunt prezente în [DASK91]. însemnând că identitatea nu va fi detectată. Distanţă verticală între ochi şi gură. un model al feţei este construit (un „vector de figură”). Distanţă între ochi. eliminând valorile ce sunt afară din variaţia de parametri acceptată. 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. E compus din din15 valori. [STAN00]) este o altă abordare. Identificare folosind distanţele de caracteristici Distanţele între caracteristicile detectate au fost folosite în [MICE02].2. Lăţimea la nivelul de nas. Lăţimea ochiului stânga Lăţimea ochiului drept Lăţimea gurii. dar există o varietate largă pentru a le măsura. Ca pasul următor. Formula x_right_at_eyes – x_left_at_eyes y_bottom – y_eyebrows x_right_edge –x_left_edge x_right_at_nose – x_left_at_nose x_right_at_mouth – x_left_at_mouth x_eye_right – x_eye_left x_left_eye_right – x_left_eye_left x_right_eye_right. După ce caracteristicile au fost detectate toate caracteristici de distanţă necesare pot fi extrase pentru o figura de intrare necunoscută.1. Primele şi cele mai folosite s-au bazat pe calculele statistice. măsura fiind definită ca distanţa Euclidiană de la interogare la combinaţia liniară ce mai apropiată de vectorul interogare. Nr. 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. Abordările statistice au fost de încredere.8.x_right_eye_left x_mouth_right –x_mouth_left x_nose_right – x_nose_left y_eyes – y_eyebrows y_mouth – y_eyes 54 . dar chiar şi aceste abordări nu dau rezultate 100%. Recent a fost încercări de folosire a reţelelor neuronale şi modele ascunse Markov ([NEFI99]) din care au decurs rezultatele bune. 1 2 3 4 5 6 7 8 9 10 11 12 Descrierea valorii Lăţimea feţei la nivelul de ochi Distanţa bărbie-sprânceana Lăţime feţei.

• O interfaţă utilizator Windows a fost necesară ca să interacţioneze cu utilizatorul. În paragraful următor implementarea detaliilor va fi dată. Au existat mai multe probleme care au necesitat completare: • Problema cea mai simplă a fost transpunerea codului înregistrat Matlab în codul de C. atunci numai în cazul cel mai bun va fi compilatoarele C disponibile. acesta nu a fost folosit la implementarea metodelor de procesare a imaginilor. altfel fiecare algoritm va trebui să fie tradus în limbajul de asamblare al DSP 55 .13 14 15 Distanţă verticală între gură şi nas. • O soluţie de captare video a fost necesară pentru a achiziţiona imaginea.1. primele două valori minime ale εi sunt stoacate ca să calculeze probabilitatea de identificare ca identitate cu eroarea pătratică minimă: (11) 9. o ustensilă de testare a algoritmilor. După ce căutarea e terminată. Ţinta acestei aplicaţii e să implementeze într-un limbaj de programare algoritmii dezvoltaţi în mediul Matlab. y_mouth – y_noes Distanţă verticală între gură şi y_mouth – y_eyebrows sprâncene. Deşi MS VC++ permite un stil de programare orientată obiect foarte organizat şi de structură. deoarece: • Dacă algoritmii vor fi vor transpuşi în DSP. Aplicaţia a fost luată în consideraţie ca o versiune prototip pentru PC. • A fost o nevoie pentru a implementa în C algoritmii interni şi optimizaţi ai Matlab. Detalii ale implementării Ţinta proiectului a fost să realizeze o aplicaţie DSP. 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. La implementarea acestei aplicaţii acest lucru a fost luat în considerare. Algoritmii au fost scrişi stilul de limbaj procedural şi structurat. urmat de un paragraf explicând utilizarea aplicaţiei din punctul de vere a utilizatorului. 9. Ghidul de aplicaţie segmentat Acest capitolul prezintă aplicaţia realizată. 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ă.

9. Rutine de procesare a imaginii Rutinele de căutare a feţei în imaginea capturată.1. 2.a selectat regiunea de suprafaţă maxim umplută (vedeţi §6. principiul de încapsulare a programării structurate e spart: parametrul care trece între metodele de prelucrare foloseşte variabile globale. CSamplerGraber copiază imaginea capturată la o zonă de buffer şi o transmite la rutinele de prelucrare. funcţie de procesare sau afişare). a pornit de la lansările de obiect CSamplerGraber la rând cu celelalte metode de procesare. care transmite fiecare capturată umplută la obiectul Samplergraber COM definit care implementează interfaţa ISampleGrabberCB. Aplicaţia trebuie doar să construiască un grafic de filtru corespunzător (termen introdus de Directshow: la set bloc.) • SelectMaximumFilled () . Directshow captează graficele şi manipulează evenimentele aplicaţiei. Interfeţele COM permit să folosirea independentă din limbajul de programare. Aceasta a fost compromisul acceptabil pentru nu copia rezultatele de unul pas la intrarea pasului următor. Pentru realizarea unei performanţe mai bune. Dacă algoritmii ar fi fost împărţiţi în obiectele interactive atunci trecerea parametrilor ar fi ocupat foarte multă memorie. fiecare bloc având o captură specifică.restrânge zona de figură. CFaceDetectDlg iniţializează dispozitivul de captură. sunteţi încapsulate în obiectul CFaceProcessing. Acestea corespund paşii descrişi în amănunţime în Capitolul 6 şi sunt: • ColorExtraction () . În acelaşi stil. Folosind API-ul dat de Directshow cel mai multe probleme de capturare sunt rezolvate de Directshow şi de adaptoarele multimedia ale Windows.Nevoile de memorie pentru stocarea imaginii sunt mari. 9. în care se stochează după fiecare fază rezultatul fiecărei faze.1.3. Partea cea mai multă importantă de această fază.) 56 . bazat pe Clasele Microsoft Framework( MFC). Graficul de filtru include un filtru SamplerGraber. Interfaţa utilizator Interfaţa utilizator a fost construită în stilul cel mai simplu. • 9. care dă un API la dispozitivele multimedia. 2. interconectat într-o ordine secvenţială. 1. reducând suprafaţa de prelucrat (vedeţi §6.1. Este o aplicaţie de dialog singular cu clase de stil standard provenite din CWinApp (CFaceDetectApp) şi CWinApp (CFaceDetectApp). codul de iniţializare de grafic de filtru este prezent în Appendix B şi el este făcut bazându-se pe exemplele Directx SDK.1.selectează zonele care au culorile asemănătoare cu ale feţei (vedeţi §6. o altă variabilă globală s-a întrebuinţat pentru salvarea calculelor matricei SUSAN folosită în detectarea Susan Edge în partea de finisare a conturului. a fost nevoie de compacta cât mai zonele de memorie folosite. Directx este o tehnologie bazată COM.2 Capturarea video Capturarea video e realizată folosind Directshow API şi cadrele Directx. Metoda DoProcessing().) • FaceCrop() . Programarea cadrelor a fost făcută într-un stil simplu şi standard.

comportamentul aplicaţiei va fi prezentă în modul în timp real.2. Include restrângerea marginii şi lărgirea marginii (vedeţi §6.• • • • SelectHue() .) 9.calculează valoarea de nuanţă rea şi regiunea aproape de aceasta (vedeţi §6. nu există imagini capturate. Dacă nu există dispozitive de capturare ataşate. În dreapta în modulul de timp real iar în stânga în modulul static. 4. şi butoanele de comandă ale camerei sunt dezactivate (Figura 66). atunci Camera şi ferestrele celelalte rămân goale. 57 .) ConturSmoothing()— sporeşte conturul feţei (vedeţi §6. Interfaţa cu utilizatorul. Fig 66. Fig. dialogul principal apare şi imaginea camerei online va fi afişată înăuntrul ferestrei Camera. 4. în modulul dinamic şi static. După detectare dispozitivul va aproviziona aplicaţia cu imagini. Modulul de testare este o versiune limitată a modului real. de testare În continuare. Mini Ghidul utilizator. până când dispozitivului funcţionabil va fi va ataşat la PC.) Susan1() – detectarea marginii zonei pe baza Susan.) Susan2()— Selectează de la zonele delimitate cu muchiile Susan. diferenţa este că în modul static. După ce utilizatorul porneşte aplicaţia. Aplicaţia detectează conexiunea unui dispozitivul de video nou. 4. 67 Detectarea unui dispozitiv de capturare. Independent de modul realizării. fereastra camerei este goală. 4. şi dacă el este capabil pentru a captura se va întrebuinţa ca sursa (Figura 67) şi capturarea va începe instantaneu. aplicaţia înfăţişează aceeaşi interfaţă. care formează figura (vedeţi §6.

în prezent de doar camerele color au fost disponibile pentru pe noi să folosim pentru proiect. La aceste mesaje de obicei este adăugat mesajul de voce asemănător. El a fost studiat şi s-au încercat mai multe abordări şi algoritmi decât au fost prezenţi în această lucrare. Această imagine este intrarea paşilor de prelucrare. • Suprafaţa selectată cu culoare aproape de culoarea feţei. • Capturare să poată să fie făcută cadrul cu cadru la momente când utilizatorul apasă butonul Step. Fiecare pas a fost tratat cu mai multe sau mai puţine detalii. • Regiuni maxim umplute. În fiecare 10 secunde. După un 58 . Utilizatorul poate să controleze procesul de capturare cu butoanele din subsolul ferestrelor: • Capturare să poată să fie oprite cu butonul Pasuse. care din ele să fie afişate înăuntru ferestrei mari din stânga. stânga sau drepta): • Imaginea statică care a fost capturată. după aceea ea poate să fie repornită cu butonul Start. până la determinarea identităţii. datorită preţurilor. • Rezultat final după calificarea conturului Utilizatorul poate să selecteze cu butonul de selectare imaginile. Cu butonul Stave oricare imagine de rezultat afişată în dialog să poată să fie salvată într-un fişier bmp. metode sau algoritmii pentru fiecare fază. Ideea de pornire a segmentării bazate pe culoare a fost dată de disponibilitatea imaginilor color.Ferestrele de rezultat afişează să urmeze rezultatele (de sus în jos. şi au culorile asemănătoare. şi cu ele o figură poate să fie să găsească bine într-o o imagine color. dacă procesele anterioare s-au terminat o imagine nouă este capturată. Pentru a transforma imaginea de culoare capturată să într-una alb-negru (ce a fost făcut în anul anterior) a părut să fie o pierdere de informaţie nedorită. Caseta Status information informează utilizatorul ce ar trebui să facă ca să primească un rezultat corect dacă prelucrarea nu poate să fie făcută. Deşi în domeniile industriale şi camerele alb-negru sunt mai mult folosite. A fost prezentă de la prima fază de achiziţie a imaginii la identificarea feţei. aceasta este figura şi alte regiuni care au o conexiune la figura. dar aceştia au fost scoşi din prezentare. 10. • Rezultatul de selectare Susan. Mai mulţi autori studiaţi afirmă că există regiunile de spaţiu de culoare de figură specifice. Concluzii şi îmbunătăţiri ulterioare Această lucrare prezintă o abordare realizabilă pentru recunoaşterea feţei. • Dacă capturarea a fost oprită. deoarece se pare că ei nu duc la soluţiile bune. 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ă. Au fost folosite una sau mai multe abordări. Cel mai mult descris a fost pasul de segmentare şi prezentarea de algoritmi folosiţi.

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. zonele de frunte. în special pentru variaţiile fulger. A fost proiectat un algoritm de umplere combinată şi selectare de suprafaţă maximă. sau informaţia a fost interpretată greşit. A doua abordare detectează muchiile într-o regiune a imaginii reduse. nasului. Aceasta face algoritmul foarte vulnerabil pentru schimbările ambiante. Selectarea regiunilor de feţei sunt greu de realizat. Prima dă un rezultat foarte stabil. Abordarea luată a fost combinarea segmentării de culoare uşor restricţionată cu o aproximaţie de faţă de nivel al doilea. Platformele ţintă ale algoritmilor sunt procesoarele de semnal digitale. pentru a depăşi în calitate prima abordare. Nevoile de memorie mari Slăbiciuni Puncte forte X X X X X X Tabelul 3 Puncte forte şi slăbiciuni 59 .studiu de o lungă perioadă concluzia care a fost luată e că acele regiuni ori nu sunt universal valabile. şi regiunile delimitate cu aceste muchii sunt clasificate ca regiuni ale feţei sau de fundal. Aceste două abordări au fost prezente. 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ţă. Întăririle bazate pe muchii delimitează bine zonele fetei. Segmentarea bazată pe culoare nu lucrează numai singură pentru mai multe motive: • Camera a capturat culorile incorecte. Ea trebuie să fie foarte bine reglată în viitor pentru a da rezultate foarte bune. care dă aproximaţia de faţă mai bună şi finală. • Noi putem încerca să minimalizăm deficienţa anterioare strâmtând domeniul culorii selecte. autorii nu au specificat în mod corect toată informaţie necesară. Uni dintre algoritmii arii de suprafaţă maxime nu sunt optimizaţi. care nu sunt destul de precise. Implemetarea actuală are nevoie de 40 MB de memorie. Problema cea mai mare care apare rezultă din nevoile mari de memorie ale algoritmului. 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. Acesta este un proces de clasificare complex. depind de multe constante. designul ales pentru implementare este cât mai simplu cu putinţă. Această pe altă mână duce la regiuni ale feţei detaşate: pierderea ochilor. Această clasificare este partea cea mai multă vulnerabilă. Deşi îndeplinirea prezentă este pe sistemul PC. Observaţii Segmentarea bazată pe culoare e folositoare la detectarea obiectelor de culoarea feţei.

60 . 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. • 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.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. În repetate rânduri este foarte greu să reuşeşti ceea ce îţi propui.4 • Dezvoltare fazei de detectare de caracteristici. 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.

Zikos. on Computer Vision and Pattern Recognition (CVPR'00). 1999 GARC99b C. Forsyth.1. 52-60. Cretu. G. Digital Signal Processing. December 1993MIT technical report AI. Li.1. Zikos. on Pattern Analysis and Mach Intelligence. Fourth Asian Conference on Computer Vision. 1998 BEYM93 D.Garcia. On Multimedia. pp. H. Oslo. "Face Recognition Under Varying Pose".Daskalakis. "Face Detection Using Quantized Skin Color Regions Merging and Wavelet Packet Analysis". 2000 GARC99a C. pp. "A Computational Model for Visual Selection". 4. 89. Vol. Vol. vol.L. Proc. 1691-1715. C. IEEE Trans. Fleck. K. Guo.J. "Face Recognition vs Templates".K. "Face Detection in Color Images using Wavelet Packet Analysis". Microsoft Research Technical Report. 1992 DASK91 Th. Elsevier Science Publisher. European Conf. J. Li. 649-653. Conf. 1994 FLEC96 M. ACCV2000. 15. "Structuri de date si tehnici de programare avansata". Image and Vision Computing. Fan. In Proc. LIAO00R. 1991 FANS00 L.Garcia. "Wavelet Packet Analysis for Face Recognition". 18.M. Brunelli and T. D. G. "Finding Naked People". 1993. 11. Timisoara. June 1998. G. pp.Gemmell. "Facial Feature Detection Using a Hierarchical Wavelet Face Databases". 593-602. CBCL. IEEE Int. AMIT998 Y. Sung. S. Technical Report. 1042 -1052. "Face Recognition Based on Multiple Facial Features".Z. pp. No. 2002 FLEC94 M. on Computer Vision and Pattern Recognition (CVPR'94).Garcia. D. Redmond. Feris. May 2000 FERI02R.N. IEEE Proc. IEEE trans. Liao. Toyama. September. Proceedings of the NOBIM.N. "A Combined Feature-Texture Similarity Measure for Face Alignment Under Varying Pose". G. Germany: Springer-Verlag. ""Detection and Recognition of Faces in Video Sequences"". UTT lithography. Neural Computation. Vol. Poggio.S. Beymer. "Practical Edge Finding with a Robust Estimator". 1996 GARC98 C. AI memo 1461. Pan. Krüger. Feb. V.Tziritas. S. MIT AI Lab. "Similarity Measures for Content Retrieval of Images". Daskalakis.Tziritas.1461. pp. 2000. Amit. on Computer Vision .Referinţe CRET02 CretuAASK98K. "Texture Image Segmentation using Reduced Gabor Filter Set and Mean Shift Clustering". Chan. K. G. on Multimedia Computing and Systems. 61 .M.Z. pp. Geman. Fleck. K. 1999 GUOL00 G.289-297. Aas. 1308-1315.A. CRET92 V. pp. 1993 BRUN93 R. vol.198-203. IEEE Proc. pp.Tziritas.

V. 1998 TIAN00Y. Liu.R. pp. “Hierarchical Linear Combinnantions for Face Recognition”. September 2000 STAN98a S. Husz. pp. Nguyen. Brady. Micea. “Color Tracking by Transductive Learning”. Otsu. Z. Vol. L. WUHU00 Y. Chan. J. 1302–1307.66. 1278–1286.. pp. April 14–16. May 2000 62 . Lu.V. on Speech and Audio Processing. on Computer Vision and Pattern Recognition (CVPR’00).Tian. D. In. Huang. New Jersey. SMITH. 9. Meng. 2000 LILU98 S. STAN98b S. Wang. In Proceedings of IEEE Computer Society Conference on Computer Vision and Pattern Recognition. “Generalizing Capacity of Face Database For Face Recognition”. Vol. Kanade. T. Proceedings of the Third IEEE International Conference on Automatic Face and Gesture Recognition. “Computer Vision”.Z. SMITH. March 1999.1. IEEE Trans.S. Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition (CVPR’00). pp. pp. Li. 2000.actions on Systems.. Vol. June. 1191–1193.actions on Systems. “Illumination-Insensitive Face Recognition Using Symmetric Shape-form-Shading”. ROWL99 H. and Cybernetics. Vol. May 2000 NEFI99A. “Face Recognition by Distribution Specific Feature Extraction”. Chellappa. Hilton Head Island.Q. 2000IEEE ??????.S. and Cybernetics. IEEE Proc. Vol. 2001 SMITH95a S. IEEE International Conference Audio Video Biometric based Person Authentication. “Edge Thinning Used in the SUSAN Edge Detector”.M. REDD84 S. 1998 MENG00 L. Li.L. 19-24. June 23–25. Vol. submitted to Tran.10.M. Hayes III. SC. “Neutral Network Based Face Detection”.G.A Castnon. June. G. IEEE Conf. M. PhD thesis. 839–844. Cretu. “Recognizing Upper Face Action Units for Facial Expression Analysis”. Australia.665. on IEEE Signal and Image@@ NAGA00 Nagao.F. “An Image-based Bayesian Framework for Face Detection”. pp. 1999 SHAP01 L. pp. July/August 1984.Z. on Computer Vision and Pattern Recognition (CVPR'00)..Z. Prodan. Li. J. Zhao. 2000 ZHAO00 W. pp. 294–301. Reddi. on Computer Vision and Pattern Recognition (CVPR'00).H.439–443. IEEE Trans.IEEE Conf. “Face Recognition Based on Nearest Linear Combinations”. on Computer Vision and Pattern Recognition (CVPR’00). Man. Technical Report TR95SMS5.222–227. Stockman. Rowley. Proc. K.Y. S.C. Li. Vol. 661. 1. 1998.Z. pp. "A Threshold Selection Method from Gray-Level Histograms". p. J. “Face Recognition Using an Embedded HMM”. Rudin and H. pp. IEEE Proc.1. pp. May 1997 SMITH95b S. Cohn. “Face Recognition Using the Nearest Feature Line Method”. T. Pittsburg.2. 14. 23(1):45–78. pp. May 2000 MICE02 M. Lu. “SUSAN – A New Approach to Low Level Image Processing”. R. L. 62 . CMU. Lu.V. Journal of Computer Vision. on Automatic Face and Gesture Recognition. Keshavan.1. Shapiro. Vol. J.M. T. J. 1995 STAN00 S. Vol. Prentice Hall.A. IEEE Trans.Wu. 1979. of ICPR'98. "An Optimal Threshold Scheme for image Segmentation". OTSU79 N. 1278–1285. IEEE Proc.II. J. Nefian. Int.239-244. In Proc. “Face Recognition Techniques for Embedded Systems”. 402–405. Man.

LG. TextureMask = Texture < 1.3)) .RGB color % Outputs : Output . function Output = LogValue(Value) % calculates and returns the logatimic (with 10 base) % value of the Value parameter % this function applies a random [0.1))). I = LG. E foarte simplu dar are slăbiciuni. % these 4 informations are used to determine the posible zones of the face % % Inputs : Image . Then the % logaritmic values are calcutated.Anexa A . %logaritmic values LR = LogValue(double(Image(:. & TextureMask. MinArray = double(Minval) * ones(size(Image(:.( LG + LR ) / 2.:.1)) .1] correction.MinArray). LG = LogValue(double(Image(:.MinArray). function Output = ColorExtraction(Image) % using the color information this function creates a binary mask for % the imput image.Algoritmi Matlab Extragerea culorii Acest algoritm face o selecţie rapidă pentru imaginea iniţială.logic mask of the face (binary) Minval= min(min(min(Image))). to enable better % adaption for the skin color % the 105 factor stands for good scaling the resulting value 63 . [ 7 7 ]). First a intensiti normalization is done. Output = I_Mask & Rg_Mask & By_Mask.medfilt2 (I .2)) . LB = LogValue(double(Image(:. Rg = LR . Rg_Mask = Rg > 5 & Rg < 32. %texture calculations Texture = medfilt2 ( abs ( I . The texture matrix is calculated too. %color information extraction I_Mask = I > 200 & I<240. By = LB .:. By_Mask = (By > -28 & By < -7) | (By > -1 & By < 5). [5 5] )).:.MinArray).:.

1). x+1) ). global N.x) = NextColor. invert=[1:MAXCOLORS]. end elseif W_NW>0 C(y. x). to be available to the function’s subroutines global C.x))= Colors(C(y. % Fill the interrrior holes and selects from the resulting zones the biggest % % Inputs : ImageMask . x-1) ).x)= join(W_NW. InputMask(1.% in zone witch cana better handled % % Inputs : Value . N_NE. Selectarea ariei umplute la maxim Această funcţie efectuează umplerea combinată ci selectarea ariilor de regiune maxime function Output = SelectMaximumFilled(InputMask). y. if W_NW >0 & N_NE >0 if W_NW == N_NE C(y.1). size(Value))).x) == 1 W_NW = SelectNon0( C(y. :) = 0. x) == 0 64 . Colors(1:MAXCOLORS) = 0. else %% if InputMask(y.:) = 0. x-1). 0). global invert.Mask with holes(binary) % Outputs : Output. for y = 2 : Size(1) for x = 2 : Size(2) if InputMask(y.Size(2)) = 0. global Colors. L=cell(MAXCOLORS.1) = 0. 0. %global variable. end Colors(C(y.logaritmic value Output = 105 *log10( Value + 1 + random('unif'. NextColor = 0. global L. C(y-1. N_NE =SelectNon0( C(y-1. N=cell(MAXCOLORS. C(y-1. x. C = zeros(Size).parameter what to be logaritmated % Outputs : Output .x) = invert(W_NW).The selected maximim zone (binary) % % MAXCOLORS=5000.x)) + 1. 1.x) = invrec(W_NW). else C(y. C(y.x) = invert(N_NE). x-1) == 0 | C(y-1.x) == 0 if C(y. InputMask(Size(1). InputMask(: . Size= size(InputMask). InputMask(:. L{NextColor} = [NextColor]. elseif N_NE >0 C(y. else NextColor = NextColor + 1.

N.x)).x))= Colors(-C(y. i).x-1)). C(y-1.%% this pixel has exit to margin C(y. x. N{i}(j)). C. end else if C(y.x) = 0. x). x-1)<0 | C(y-1. x).x-1). C(y-1.B) %subroutine of SelectMaximumFilled %selects from A and B whis is greater then zero if (A > 0) 65 . x) < 0 C(y. %generate result image Output = ismember(C. end Colors(-C(y.x) < 0 nullabove(-C(y-1. C=abs(C). 1).x) = TRUE %finalize the join for i = NextColor:-1:1 if ~isempty(N{i}) & Colors(i)>0 T=invrec(N{i}(1)). x-1).2) join_at_end(T. invert. for j=2 : size(N{i}. end if C(y-1. x).x) = -NextColor. C(y-1.x)). y.L{Pos}). else NextColor = NextColor + 1.x) = -join( C(y. x).x) = -invert(-C(y. x) < 0 C(y. %%add the other as neighbour Add0Neighbour(-C(y. C(y. L{NextColor} = [NextColor]. join_at_end(T. x)). function Output = SelectNon0(A. clear clear clear clear clear Colors. Add0Neighbour(NextColor. end end %% if end %%for x end %%for y InputMask(y.x)) + 1. %%adds the other as neighbour Add0Neighbour(-C(y. x-1)).x) = -invrec(-C(y-1.x-1) < 0 nullrow(-C(y. end end end [Max Pos]= max(Colors). L. if C(y.x)<0 %% continues a 0 zone if C(y. C(y.x)). x-1) < 0 & C(y-1. C(y. elseif C(y-1. y.

if Negative==1 N{c1} = unique([N{c1} N{c2}]).Output = A. L{c1} = unique([L{c1} c2 L{c2}]). else c1 = C2. C2 = -C2. x.C2 backgorund of foreground regions if Negative == 1 C1 = -C1.X)==C1 C(y. end if C1 < C2 c1 = C1.X)=C2. Colors(c2) = 0. end global global global global Colors. N. Color) %subroutine of SelectMaximumFilled %adds Color to the neighbours of the Col non-foreground color global N. end function Output=invrec(n) %subroutine of SelectMaximumFilled %findes recursive the color into wich to color was changed global invert. end end if C2<C1 % update row % if C1>C2 do updates needed if Negative==1 C1 = -C1. y. while n ~= invert(n) 66 . if Color>0 N{Col}=union(N{Col}. if Colors(c2) > 0 Colors(c1) = Colors(c1) + Colors(c2). end. Negative) %subroutine of SelectMaximumFilled %joins C1. [Color]). C. Output = c1. L. c2 = C2. function Add0Neighbour(Col. C2. function Output= join (C1. end for X=1:x-1 if C(y. C2 = -C2. end end end invert(c2) = c1. c2 = C1. else Output = B.

global Colors. end. 67 . end end function nullabove(Color) %subroutine of SelectMaximumFilled % %updets the when a non-backgorund pixel is found to be backgound global Colors.n = invert(n). Output = n. for x2 = 1 : x if C(y. x2)=0. if Colors(c2)>0 Colors(c1) = Colors(c1) + Colors(c2). x). function join_at_end(c1. end function nullrow(Color. nullabove(Color). %subroutine of SelectMaximumFilled % %updets a row when a non-backgorund pixel is found to be backgound global C. Colors(c2) = 0. c2) %subroutine of SelectMaximumFilled %join to colors at the final phase global L. L{c1} = unique([L{c1} c2 L{c2}]). y. Colors(Color) = 0. x2) == -Color C(y.

filterData.Iniţializarea DirectX În această anexă e prezentă iniţializarea capturii DirectShow. } // Modify the window style of the capture and still windows // to prevent excessive repainting m_CameraScreen. hr = InitStillGraph( ). Codul care apelează iniţializarea e (din metoda OnDialogInit()): HRESULT hr. ZeroMemory(&filterData.Anexa B . WS_CLIPCHILDREN). m_FaceScreen. 68 . if (FAILED(hr)) { Error( TEXT("Failed to initialize StillGraph !")). E considerată valoaroasă deoarece programarea COM are nevoie de cunoaşterea multor interfeţe iar alegerea celei mai bune poate lua mult timp.ModifyStyle(0.dbcc_devicetype = DBT_DEVTYP_DEVICEINTERFACE. return FALSE. sizeof(DEV_BROADCAST_DEVICEINTERFACE)).ModifyStyle(0. filterData. EndDialog(IDABORT ). // Register for device add/remove notifications. WS_CLIPCHILDREN).dbcc_size = sizeof(DEV_BROADCAST_DEVICEINTERFACE). DEV_BROADCAST_DEVICEINTERFACE filterData.

m_hDevNotify = RegisterDeviceNotification(mCB. 69 . Iar acesta e codul care urmează iniţializării: /// Initializes the still image capturing graph HRESULT CFaceDetectDlg::InitStillGraph( ) { HRESULT hr. if( !pCap ) { Error( TEXT("No video capture device was detected on your system.") ). return E_FAIL. DEVICE_NOTIFY_WINDOW_HANDLE).CoCreateInstance( CLSID_FilterGraph ).dll registered?)")).CoCreateInstance( CLSID_SampleGrabber ). if( !m_pGrabber ) { Error( TEXT("Could not create SampleGrabber (is qedit.dbcc_classguid = AM_KSCATEGORY_CAPTURE. } // create a sample grabber // hr = m_pGrabber. such\r\n") TEXT("as a USB web camera.filterData. return E_FAIL. if( FAILED( hr ) ) { Error( TEXT("Could not put capture device in graph")). } // add the capture filter to the graph // hr = m_pGraph->AddFilter( pCap.m_hwndOwner. // that it will retry to constuct the graph return S_OK. //do not generate error: when a new device will be detected. GetDefaultCapDevice( &pCap ). } } // get whatever capture device exists // CComPtr< IBaseFilter > pCap.\r\n\r\n") TEXT("This sample requires a functional video capture device. if does not exists yet // if (!m_pGraph) { hr = m_pGraph. if( !m_pGraph ) { Error( TEXT("Could not create filter graph") ). ASSERT(m_hDevNotify != NULL). &filterData. // creates a filter graph. L"Cap" ).

if( FAILED( hr ) ) { Error( TEXT("Could not created caputure builder.")).SetSubtype( &MEDIASUBTYPE_RGB24 ). } // find the two pins and connect them // IPin * pCapOut = GetOutPin( pCap. } CComQIPtr< IBaseFilter. } // add the grabber to the graph // hr = m_pGraph->AddFilter( pGrabBase. IPin * pGrabIn = GetInPin( pGrabBase.return hr. if( FAILED( hr ) ) { Error( TEXT("Could not set caputure builder graph. return hr. &IID_IBaseFilter > pGrabBase( m_pGrabber ). VideoType. } hr = pCapture->SetFiltergraph(m_pGraph). CComPtr< ICaptureGraphBuilder2 > pCapture.SetType( &MEDIATYPE_Video ). 24 bit // CMediaType VideoType. pGrabIn ). hr = m_pGraph->Connect( pCapOut. // force it to connect to video. 0 ).\r\n") TEXT("Is the capture device being used by another application?")). return hr. // hr = m_pGraph->Render( pGrabOut ). IID_ICaptureGraphBuilder2. VideoType. return hr. return hr. NULL. CLSCTX_INPROC. } // render the sample grabber output pin. hr = m_pGrabber->SetMediaType( &VideoType ). 70 . if( FAILED( hr ) ) { Error( TEXT("Could not put sample grabber in graph")). if( FAILED( hr ) ) { Error( TEXT("Could not connect capture pin #0 to grabber.")). 0 ). // shouldn't fail if( FAILED( hr ) ) { Error( TEXT("Could not set media type")). 0 ). L"Grabber" ). (void **) &pCapture). hr = CoCreateInstance (CLSID_CaptureGraphBuilder2 . so we get a preview window // // IPin * pGrabOut = GetOutPin( pGrabBase.

71 . if (!FAILED( hr ) && pEnum) { pEnum -> Reset(). hr = m_pGrabber->GetConnectedMediaType( &mt ). if ( FAILED( hr) ) { Error( TEXT("Could not read the connected media type")). hr = pEnum -> Next(1.lWidth = vih->bmiHeader. return hr. NULL). ULONG ulFetched. mCB. if( FAILED( hr ) ) { Error( TEXT("Could not render sample grabber output pin")). // only grab one at a time. hr = m_pGraph -> EnumFilters(&pEnum). } // set the selected quality for every filter { CComPtr< IEnumFilters > pEnum. if ( hr != S_OK ) break. if (pDVDec) { pDVDec -> put_IPDisplay(DVRESOLUTION_SELECTED). // don't buffer the samples as they pass through // m_pGrabber->SetBufferSamples( FALSE ). } hr = pCapture ->RenderStream (NULL. stop stream after // grabbing one sample // m_pGrabber->SetOneShot( FALSE ). &IID_IIPDVDec > pDVDec( pFilter ). pGrabBase. &pFilter. &ulFetched). return hr. FreeMediaType( mt ).return hr.biWidth. so we can write out bitmaps // AM_MEDIA_TYPE mt.biHeight.lHeight = vih->bmiHeader. } VIDEOINFOHEADER * vih = (VIDEOINFOHEADER*) mt. NULL. while (1) { CComPtr< IBaseFilter > pFilter. NULL. } } } } // ask for the connection media type so we know how big // it is. mCB. CComQIPtr< IIPDVDec.pbFormat.

pWindow->put_Top( 0 ). pWindow->put_Owner( (OAHWND) hwndCamera ). which will allow the GraphEdit application to "spy" on our graph REGISTER_FILTERGRAPH = AddGraphToRot(m_pGraph. return E_FAIL. hr = pVSC->GetFormat(&pmt).left ).top ). so we can grab the one sample // m_pGrabber->SetCallback( &mCB. pWindow->put_Height( rc. } // set up the preview window to be in our dialog // instead of floating popup // HWND hwndCamera = NULL. &m_dwGraphRegister). (FAILED(hr)) Error(TEXT("Failed to register filter graph with ROT!")). ::GetWindowRect( hwndCamera. if( !pWindow ) { Error( TEXT("Could not get video window interface")).rc. GetDlgItem( IDC_STATIC_CAMERA. &IID_IVideoWindow > pWindow = m_pGraph. if(pVSC) { AM_MEDIA_TYPE *pmt. pWindow->put_Left( 0 ). if(hr != S_OK) Add our graph to the running object table. RECT rc. &hwndCamera ). 1 ). // DV capture does not use a VIDEOINFOHEADER if(hr == NOERROR) { if(pmt->formattype == FORMAT_VideoInfo) { VIDEOINFOHEADER *pvi = (VIDEOINFOHEADER *)pmt>pbFormat.bottom . hr = pVSC->SetFormat(pmt). &IID_IAMStreamConfig > pVSC ( pCapOut ).rc. 72 . pWindow->put_WindowStyle( WS_CHILD | WS_CLIPSIBLINGS ). &rc ). pWindow->put_Visible( OATRUE ). pvi->AvgTimePerFrame =LONGLONG)DELAY_BETWEEN_FRAMES*10000000.// set the callback. pWindow->put_Width( rc. // // #ifdef hr if { } #endif //set frame rate { CComQIPtr< IAMStreamConfig. m_dwGraphRegister = 0. // obtain media position interface // CComQIPtr< IVideoWindow.right .

Error( TEXT("Cannot set frame rate")).CoCreateInstance( CLSID_SystemDeviceEnum ). CComPtr< IMoniker > pM. // get the property bag interface from the moniker // 73 . hr = pEm->Next( 1. } DeleteMediaType(pmt). // enumerate video capture devices // CComPtr< IEnumMoniker > pEm. &pM. // create an enumerator // CComPtr< ICreateDevEnum > pCreateDevEnum. } } /// Determines the filter for capturing void CFaceDetectDlg::GetDefaultCapDevice( IBaseFilter ** ppCap ) { HRESULT hr. return hr. } m_eState = Run. &pEm. return 0. if( !pEm ) return. pCreateDevEnum. &ulFetched ). &IID_IMediaControl > pControl = m_pGraph. // go through and find first video capture device // while( 1 ) { ULONG ulFetched = 0. } } // run the graph // CComQIPtr< IMediaControl. hr = pControl->Run( ). if( FAILED( hr ) ) { Error( TEXT("Could not run graph")). pEm->Reset( ). 0 ). if( hr != S_OK ) break. hr).//ErrMsg(TEXT("%x: Cannot set new frame rate"). *ppCap = NULL. if( !pCreateDevEnum ) return. pCreateDevEnum->CreateClassEnumerator( CLSID_VideoInputDeviceCategory.

// ask for the actual filter // hr = pM->BindToObject( 0. if( *ppCap ) break. m_pGrabber. #endif m_pGraph. (void**) &pBag ). m_dwGraphRegister = 0. } } return. // make the window go away before we release graph // or we'll leak memory/resources // CComQIPtr< IVideoWindow.vt = VT_BSTR. &IID_IVideoWindow > pWindow = m_pGraph. if( hr != S_OK ) continue. m_eState = NotInitialized. } #ifdef REGISTER_FILTERGRAPH // Remove filter graph from the running object table if (m_dwGraphRegister) RemoveGraphFromRot(m_dwGraphRegister). NULL ).Release( ). void CFaceDetectDlg::ClearGraphs( ) { // Destroy capture graph if( m_pGraph ) { // have to wait for the graphs to stop first // CComQIPtr< IMediaControl. &var.Release( ). if( hr != S_OK ) continue. IID_IPropertyBag. var. pWindow->put_Owner( NULL ). } } 74 . (void**) ppCap ).CComPtr< IPropertyBag > pBag. 0. hr = pBag->Read( L"FriendlyName". hr = pM->BindToStorage( 0. IID_IBaseFilter. // ask for the english-readable name // CComVariant var. if( pControl ) pControl->Stop( ). &IID_IMediaControl > pControl = m_pGraph. if( pWindow ) { pWindow->put_Visible( OAFALSE ). 0.

Sign up to vote on this title
UsefulNot useful