Detectia Fețelor Umane
DETECTIA FEȚELOR UMANE
Cuprins
INTRODUCERE
Detectia fetelor…………………………………………………………………………………………………………….4
CAPITOLUL I
I.1. Imaginile digitale……………………………………………………………………………………………………5
CAPITOLUL II
II.1. Segmentarea imaginilor și a culorilor……………………………………………………………………….6
II.2. Reprezentarea culorilor în spațiul YcbCr………………………………………………………………….6
II.3. Reprezentarea culorilor în spațiul RGB……………………………………………………………………7
II.4. Reprezentarea culorilor în spațiul HSI……………………………………………………………………..8
II.5. Segmentarea imaginilor………………………………………………………………………………………….9
II.6. Segmentarea culorilor în spațiul RGB………………………………………………………………………9
CAPITOLUL III
III.1. Operațiuni morfologice……………………………………………………………………………………….11
III.2. Dilatarea morfologică………………………………………………………………………………………….11
III.3. Eroziunea morfologică………………………………………………………………………………………..13
III.4. Deschiderea și închiderea morfologică………………………………………………………………….14
CAPITOLUL IV
IV.1. Transformări locale…………………………………………………………………………………………….18
IV.2. Detecția marginilor…………………………………………………………………………………………….18
IV.3. Calculul gradientului imaginii……………………………………………………………………………..19
IV.4. Masca determinării fețelor…………………………………………………………………………………..23
CAPITOLUL V
Analiza și recunoșterea formelor
Algoritmul de umplere – „Flood Fill”
Eliminarea selecțiilor nepotrivite
CAPITOLUL VI
Prezentarea aplicației
CAPITOLUL VII
Rezultate și concluzii
Bibliografie
Anexe (figuri, tabele, poze, etc)
INTRODUCERE
Detecția fețelor
Departe de a mai reprezenta o tehnologie exotică, desprinsă din povestiri sau filme științifico-fantastice, detecția automată a fețelor în imaginile digitale a devenit deja parte a vieții noastre cotidiene. Astfel, în zilele noastre, practic oricine a avut ocazia să utilizeze o cameră foto digitală obișnuită (sau chiar camera foto a unui telefon mobil) și a putut observa pe ecranul acesteia cum, la încadrarea subiecților umani, apare un dreptunghi / pătrat colorat care încadrează figurile respective. Această funcție de localizare automată a fețelor permite o mai bună încadrare, precum și stabilirea automată a parametrilor de focalizare și expunere corectă a fețelor respective, prin comparație cu restul scenei. Probabil însă că puțini sunt aceia care s-au întrebat cum anume reușește camera foto să distingă faptul că într-o anumită regiune a imaginii există o figură umană iar în altele nu, respectiv că o anumită configurație de pixeli reprezintă o față, în timp ce alte configurații nu, toate acestea fiind în timp real. Cum camerele foto sau telefoanele mobile, cel puțin cele de clasă medie, ieftine, nu sunt dotate cu cipuri cu putere foarte mare de procesare, înseamnă că algoritmul respectiv și implementarea sa trebuie să fie extrem de eficiente. În plus, software-ul de detecție a fețelor integrat în camerele foto obișnuite a evoluat, ajungând astăzi nu numai să localizeze figurile umane, dar chiar să și identifice apariția zâmbetului pe acestea și să comande declanșarea automată în momentul respectiv.
Detectarea fețelor umane și localizarea lor în imaginile digitale a câștigat importanță în ultimii ani, cu o mulțime de aplicații în diverse domenii cum ar fi: recunoașterea fețelor, monitorizare video, interfață om-calculator.
Totuși, trebuie precizat faptul că problema detectării figurilor umane în imagini nu este tocmai una trivială, datorită varietății uriașe în care acestea pot apărea în percepția senzorului 2-D, atât din cauza trăsăturilor și particularităților fizionomice, culorii, dimensiunilor, poziției, acoperirii parțiale, fundalului complex, dar mai cu seamă din cauza zonelor de lumină și umbră determinate de poziția și distribuția sursei / surselor de lumină.
În această lucrare s-a urmarit detectarea și extragerea fețelor pe baza segmentării culorilor și a unor prelucrări morfologice, dar se încearcă totodată și detectarea fețelor aparținând tuturor raselor umane, de diferite nuanțe ale culorii pielii. Rezultatele experimentale arată o detecție a fețelor în proporție de 70%.
Aplicația a fost realizată utilizând limbajul de programare Java. Interfața grafică folosește controale de tip AWT și Swing pentru conturarea meniului, butoanelor, panourilor, etichetelor și listei derulante. Dispunerea controalelor și propietățile lor permit redimensionarea ferestrei.
Lucrarea are următoarea structură: Capitolul I în care este prefațată tema lucrarii (ce înseamnă si ce presupune),cât și o clasificare a imaginilor digitale, Capitolul II tratează segmentarea culorilor în vederea determinării zonelor care reprezintă pielea. Capitolul III explică operațiunea de deschidere morfologică pentru eliminarea zonelor de mici dimensiuni și separarea componentelor conectate. Capitolul IV prezintă operațiunea de detecție a marginilor folosind algoritmul Roberts Cross și combinarea cu imaginea de tip mască descrisă în capitolul precedent. Capitolul V descrie determinarea zonelor care reprezintă fețele și rejecția zonelor necorespunzătoare. În capitolul VI este prezentată aplicația realizată. La final în capitolul VII sunt prezentate rezultatele testelor efectuate și concluzii.
CAPITOLUL I
1. Imaginile digitale
O imagine digitală este o reprezentare a unei imagini reale bidimensionale (imagine în "2D" sau două dimensiuni), ca o mulțime finită de valori digitale (numerice), codificate după un anumit sistem. Dacă a fost produsă printr-un procedeu fotografic se mai numește și fotografie digitală.
Imaginile digitale pot fi produse și plecând de la imagini tradiționale, analogice, prin digitalizare. Acestea imagini analogice se împart mai întâi în numeroase elemente infime ca suprafață numite pixeli, și anume sub formă de raster grafic sau hartă de tip raster, fiecare pixel având două coordonate plane. Apoi caracteristicile de luminozitate și culoare ale fiecărui pixel, eventual împreună cu coordonatele sale (dacă acestea nu sunt implicite), sunt codificate conform mai multor sisteme, rezultatul final al acestei digitalizări fiind un șir de numere care sunt memorate cu ajutorul calculatoarelor. În mod obișnuit, imaginile digitale și pixelii lor sunt stocate în memorii de computere, sau și pe benzi magnetice video digitale. Luate ca atare, imaginile digitale și pixelii nu se pot vedea, deoarece ele sunt doar înșiruiri de numere. În mod teoretic memorarea lor ar putea fi realizată și prin simpla notare a șirului de numere pe hârtie, ceeace însă este împiedicat în practică de lungimea uriașă a șirului. Pentru a ocupa mai puțin loc în memorie, imaginile digitale pot fi stocate, sau și transmise sub forme comprimate, urmând să fie decomprimate la destinație după necesități. După tipul datelor din acestă structură bidimensională, imaginile prelucrate pot fi împărțite în mai multe categorii:
imagini scalare, în care fiecare componentă este un scalar (număr unic);
Exemple de astfel de imagini sunt imaginile monocrome (în care punctele au doar două valori posibile, corespunzătoare unui conținut binar al imaginii, în general alb-negru) dar și imaginile cu nivele de gri ( imaginii de luminanță de pe ecranele televizoarelor alb-negru).
imagini vectoriale, în care fiecare componentă este un vector de numere;
Exemple: Imaginilor color, în care vectorul are trei elemente (ce corespund celor trei constituente de bază ale oricărei culori); în general, pentru imaginile multicomponentă, vectorul asociat fiecărui punct din imagine are mai multe elemente (caz ce corespunde imaginilor preluate în mai multe benzi de frecvență, așa cum sunt imaginile de teledetecție ale sateliților, imaginile de termodetecție în benzile de infraroșu,…). Un alt exemplu din această categorie a imaginilor vectoriale sunt și imaginile stereo (o pereche de imagini ale aceleiași scene, luate din unghiuri diferite) și secvențele de imagini.
Conform statisticii, dintre imaginile prelucrate în aplicații funcționale, 20 % sunt alb-negru, 32 % sunt cu nivele de gri, 20 % sunt color, 10 % sunt imagini stereoscopice și 18 % sunt secvențe de imagini.
Valoarea unui element al unei imagini este o măsură a intensității luminoase în punctul considerat; acesta nu este însă decât un caz particular. În funcție de natura lor, imaginile pot fi clasificate ca imagini abstracte, imagini non-vizibile și imagini vizibile. Imaginile abstracte sau modelele sunt funcții matematice, continue sau discrete, de două variabile. Imaginile non-vizibile, care nu pot fi percepute în mod direct de ochiul uman, sunt de fapt achiziții ale unor câmpuri bidimensionale de parametri fizici (presiune, temperatură, presiune, densitate, …). În fine, imaginile ce pot fi percepute în mod direct de către ochiul uman (deci imaginile vizibile) sunt la rândul lor imagini optice, generate ca distribuții de intensitate luminoasă (așa ca hologramele, imaginile de interferență și difracție) sau imagini propriu-zise (de luminanță – în sensul curent al termenului, ce se referă la fotografii, desene, picturi, schițe, scheme și altele din aceeași categorie).
O altă clasificare a imaginilor scalare se poate realiza după semnificația ce se dă valorii numerice a pixelilor. Vom distinge astfel imagini de intensitate și imagini indexate. O imagine de intensitate este o imagine în care valoarea fiecărui pixel este o măsură directă a intensității luminoase sau a mărimii fizice preluate de senzor, ca de exemplu în imaginile cu nivele de gri. Pixelii unei imagini de intensitate pot avea orice fel de valori: reale sau naturale (depinzând dacă imaginea este sau nu cuantizată). O imagine indexată este acea imagine în care valoarea fiecărui pixel este un indice prin care se regăsește informația de culoare asociată pixelului respectiv. Deci, pentru afișarea sau reprezentarea unei imagini indexate este necesară o informație suplimentară, de asociere între indici și culori. Această asociere se face prin intermediul tabelei de culoare. Tabela de culoare este o matrice în care fiecare linie conține descrierea unei culori (deci cele trei componente ce definesc culoarea – în mod tipic intensitățile relative de roșu, verde și albastru ce compun culoarea dată printr-un amestec aditiv). Deci tabela de culoare are trei coloane; numărul de linii al tabelei de culoare este egal cu numărul de culori din imaginea reprezentată și este în mod tipic o putere a lui doi (16, 256, …). Indicele (valoarea pixelului) va fi numărul de ordine al liniei din tabela de culoare pe care se găsește descrierea culorii. Este evident că valorile pixelilor unei imagini indexate nu pot fi decât numere naturale (deoarece sunt indici într-o matrice).
CAPITOLUL II
1.Segmentarea imaginilor și a culorilor
Segmentarea este una din cele mai importante etape ce conduce la analiza unei imagini procesate. Principalul scop al acesteia este divizarea imaginii în părți ce au o strânsă legătură cu obiectele și suprafețele din scena reală.
Segmentarea poate fi:
completă – se vor obține regiuni disjuncte ce corespund obiectelor din scenă;
parțială – regiuni ce nu corespund obiectelor, da..). În fine, imaginile ce pot fi percepute în mod direct de către ochiul uman (deci imaginile vizibile) sunt la rândul lor imagini optice, generate ca distribuții de intensitate luminoasă (așa ca hologramele, imaginile de interferență și difracție) sau imagini propriu-zise (de luminanță – în sensul curent al termenului, ce se referă la fotografii, desene, picturi, schițe, scheme și altele din aceeași categorie).
O altă clasificare a imaginilor scalare se poate realiza după semnificația ce se dă valorii numerice a pixelilor. Vom distinge astfel imagini de intensitate și imagini indexate. O imagine de intensitate este o imagine în care valoarea fiecărui pixel este o măsură directă a intensității luminoase sau a mărimii fizice preluate de senzor, ca de exemplu în imaginile cu nivele de gri. Pixelii unei imagini de intensitate pot avea orice fel de valori: reale sau naturale (depinzând dacă imaginea este sau nu cuantizată). O imagine indexată este acea imagine în care valoarea fiecărui pixel este un indice prin care se regăsește informația de culoare asociată pixelului respectiv. Deci, pentru afișarea sau reprezentarea unei imagini indexate este necesară o informație suplimentară, de asociere între indici și culori. Această asociere se face prin intermediul tabelei de culoare. Tabela de culoare este o matrice în care fiecare linie conține descrierea unei culori (deci cele trei componente ce definesc culoarea – în mod tipic intensitățile relative de roșu, verde și albastru ce compun culoarea dată printr-un amestec aditiv). Deci tabela de culoare are trei coloane; numărul de linii al tabelei de culoare este egal cu numărul de culori din imaginea reprezentată și este în mod tipic o putere a lui doi (16, 256, …). Indicele (valoarea pixelului) va fi numărul de ordine al liniei din tabela de culoare pe care se găsește descrierea culorii. Este evident că valorile pixelilor unei imagini indexate nu pot fi decât numere naturale (deoarece sunt indici într-o matrice).
CAPITOLUL II
1.Segmentarea imaginilor și a culorilor
Segmentarea este una din cele mai importante etape ce conduce la analiza unei imagini procesate. Principalul scop al acesteia este divizarea imaginii în părți ce au o strânsă legătură cu obiectele și suprafețele din scena reală.
Segmentarea poate fi:
completă – se vor obține regiuni disjuncte ce corespund obiectelor din scenă;
parțială – regiuni ce nu corespund obiectelor, dar sunt omogene, având aceleași proprietăți (luminozitate, culoare).
Segmentarea este divizarea unei imagini în regiuni sau obiecte. Nivelul până la care se efectuează subdivizarea depinde de tipul problemei de rezolvat. Grupurile etnice diferite au nivele diferite de melamină și pigmentare a pielii, intervalul de culoare atribuit pielii umane este o parte distinctă din totalul de culori, presupunând că persoana vizată nu are fața acoperită de culori nenaturale. Algoritmul are ca și avantaj limitarea căutării fețelor doar la zonele de culoare din intervalul atribuit pielii umane și nu în toată imaginea încărcată.
Există numeroși algoritmi de detecție a fețelor bazați pe culoare, YCbCr – descrie culoarea sub formă de luminanță (Y) si crominanță (Cr și Cb), HSI – descrie culoare pe baza nuanței (Hue), a saturației (Saturation) și a intensității (Intensity), RGB – descrie culoarea pe baza intensității a trei culori primare roșu (Red), verde (Green) si albastru (Blue).
2.Reprezentarea culorilor în spațiul YcbCr
Spațiul de culoare YCbCr a fost un răspuns la cererea de algoritmi digitali pentru gestionarea secvențelor video și a devenit modelul cel mai folosit în televiziunea digitală. Din familia spațiului YCbCr mai fac parte și reprezentări analogice precum YUV folosit în transmiterea semnalului PAL și YIQ pentru transmiterea semnalului NTSC. Acest spațiu de culoare separă componentele RGB (roșu-verde-albastru) în luminanță și cromină.
3.Reprezentarea culorilor în spațiul RGB
Culoarea fiecărui pixel (atât pentru echipamentele de achiziție –camer) cât și pentru afișare TV,CRT, LCD) se obține prin combinația a trei culori primare: roșu, verdeși albastru. (Red, Green și Blue).
Fig. 1. Reprezentarea combinării aditive a culorilor. Acolo unde culorile primare se suprapun se observă
apariția culorilor secundare. Acolo unde toate trei culorile se suprapun se observă apariția culorii albe.
Astfel, fiecare pixel din imagine va fi caracterizat prin câte o valoare pentru fiecare din cele trei componente de culoare primare. Culoarea sa reprezintă un punct în spațiul 3D al modelului de culoare RGB (Fig.2). În acest cub al culorilor, originea axelor R, G și B corespunde culorii negre (0, 0, 0). Vârful opus al cubului corespunde culorii albe (255, 255,
255). Diagonala cubului, între negru și alb corespunde tonurilor de gri (grayscale) (R=G=B). Trei dintre vârfuri corespund culorilor primare roșu, verde și albastru. Celelalte 3 vârfuri corespund culorilor complementare: turcoaz, mov și galben (Cyan, Magenta and Yellow). Dacă translatăm originea sistemului de coordonate în punctul „alb” și redenumim cele 3 axe de coordonate ale sistemului în C, M, Y obținem spațiul de culoare complementar CMY, (folosit la dispozitive de imprimare color).
Fig. 2. Modelul de culoare RGB mapat pe un cub. În acest exemplu fiecare culoare este reprezentată pe câte 8 biți (256 de nivele) (imagini bitmap RGB24). Numărul total de culori este 28x28x28 = 224 = 16.777.216.
Pentru imagini RGB24 (24 biți/pixel) spațiul de culoare poate fi reprezentat complet. Într-o imagine indexată (cu paletă) poate fi reprezentat doar un anumit subspațiu al spațiului de culoare din Fig. 2. În acest context, numărul de biți/pixel (numărul de biți folosiți pentru codificarea unei culori) se numește „adâncime de culoare” (color depth) (Tabelul 1).
Tabel 1. Adâncimea și tipul imaginii
4.Reprezentarea culorilor în spațiul HSI
Având în vedere că nuanța, saturația și intensitatea sunt trei proprietăți utilizate pentru a descrie o culoare, este logic să existe o un spațiu de culoare corespunzător. Utilizând spațiu de culoare HIS nu este nevoie a se ști ce procent de roșu, verde sau albastru este necesar pentru a produce o culoare. Culoarea se obține prin modificarea nuanței. Pentru a transforma un roșu intens în roz se modifică saturația. Pentru a face o imagine mai întunecată sau mai luminoasă se modifică intensitatea.
Nuanța reprezintă poziția relativă a culorii în spectru și, în modelul HSI, corespunde unghiului pe care îl face culoarea în cercul de culori. Domeniul de nuanțare se întinde de la 0 la 360 de grade. Saturația specifică puritatea culorii. Valoarea saturației se exprimă în procente și variază de la 0 (fără culoare) până la 100 (culoare pură, așa cum este definita de valoarea nuanțării). Ultimul parametru specifică intensitatea culorii. O reprezentare simbolica a modelului HSI este dată în Fig.3. Nuanța determină culoarea (unghi = 60° – Galben, 180° – Cyan, etc.) Saturația este masurată în procente de la centrul cercului de bază la suprafața conurilor. Intensitatea se masoara pe linia Alb-Negru.
Fig. 3.
5.Segmentarea imaginilor
Segmentarea imaginilor înseamnă descompunerea unei imagini în componentele sale. În urma procesului de segmentare vor fi extrase din imagine obiecte distincte, regiuni ce satisfac anumite criterii de uniformitate, sau alte elemente.
O definiție matematizată a procesului de segmentare, și anume segmentarea unei imagini este definită ca partiționarea completă într-un ansamblu de mulțimi disjuncte nevide și conexe, ce satisfac fiecare un anumit criteriu ∁, criteriu ce nu este respectat pentru reuniunea oricăror două elemente ale partiției.
Alegerea unei tehnici specifice de segmentare (partiționare a imaginii) este legată de mai multe aspecte caracteristice imaginii de analizat și cerințelor utilizatorului. După natura și conținutul imaginii, tehnicile de segmentare trebuie să țină cont de prezența în imagine a diverse categorii de artefacte:
reflexii, iluminare neomogenă
zgomot suprapus infomației utile
zone texturate
După primitivele de extras, tehnicile de segmentare se împart în două categorii fundamentale: tehnicile de segmentare orientate pe regiuni și tehnicile de segmentare orientate pe contur. Primitivele extrase din imagine sunt regiuni (forme) și zone texturate pentru tehnicile orientate pe regiuni, sau entități de tip discontinuitate (frontiere, segmente de dreaptă, unghiuri) pentru tehnicile orientate pe contur. În cadrul segmentării orientate pe regiuni se disting câteva categorii principale de tehnici:
etichetarea imaginilor binare
segmentarea pe histogramă
creșterea și fuziunea regiunilor
segmentarea texturilor
segmentarea prin metode de clustering
Tehnicile de segmentare orientată pe contururi sunt urmatoarele:
extragerea contururilor prin metode de gradient și derivative
extragerea contururilor prin metode neliniare
extragerea contururilor prin metode liniare optimale
extragerea contururilor prin modelare matematică
6. Segmentarea culorilor în spațiul RGB
Algoritmul de detecție folosește spațiul de culoare RGB. Algoritmul are rezultatele cele mai bune pentru imagini realizate cu iluminare naturală de vară. După ce clasificarea a fost facută pentru fiecare pixel al imaginii se realizează segmentarea. În Fig. 4. se poate observa rezultatul segmentării.
Algoritmul * este descris astfel:
R > 95, G > 40 și B > 20;
max{R, G,B} − min{R, G,B} > 15 (componentele RGB nu trebuie să fie alăturate – se elimină griul)
|R − G| > 15 (de asemenea nici componentele R și G nu trebuie să fie apropiate alfel nu vom avea o detecție mulțumitoare)
R > G și R > B (componenta R trebuie să fie predominantă)
În acest fel avem primul pas în detectarea fețelor.
* Peer, Peter; Kovac, Jure and Solina, Franc. 2003. „Human skin colour clustering for face detection”, In submitted to EUROCON 2003 – International Conference on Computer as a Tool.
a)
b)
Fig. 4. Segmentarea culorilor. a) imaginea de intrare b) imaginea rezultată în urma segmentării.
CAPITOLUL III
1. Operațiuni morfologice
Morfologia matematică realizează o abordare axată pe formă a prelucrării imaginilor. Folosită corespunzător, morfologia matematică conduce la prelucrări ce simplifică structura imaginii, păstrând caracteristicile esențiale de formă și eliminând irelevanțele. Scopul acestor transformări este extragerea de forme mai simple din formele inițiale (complexe) ale imaginii. Ideea de bază a oricărei prelucrări morfologice constă în considerarea imaginii ca un ansamblu (mulțime, reuniune de părți) asupra căruia se aplică transformări a căror esență este comparația cu mulțimi (ansambluri) mai simple, numite elemente structurate. Deci, caracterizarea formei este rezultatul comparației (interacțiunii, aplicării de relații) între forma necunoscută și elementul structurant. Operatorii morfologiei matematice verifică îndeplinirea unor relații între punctele mulțimii de prelucrat (obiectul) și elementul structurant. Elementul structurant este o mulțime geometrică, arbitrară, impusă, cunoscută. Forma elementului structurant determină proprietățile testate asupra formei necunoscute.
Elementul structurant este echivalentul vecinătății folosite în operațiile de prelucrare de vecinătate. Elementul structurant are un sistem de coordonate propriu (nu sunt coordonatele imaginii). Valorile kernel–ului folosite de obicei sunt {0, 1} pentru operațiile de dilatare, eroziune, deschidere și închidere; {-1, 0, 1} pentru operațiile de detecție de contur, scheletizare. Morfologia matematică este utilizată ca o abordare naturală a proceselor de vedere artificială, deoarece trăsăturile și respectiv identificarea obiectelor sunt corelate cu forma.
2. Dilatarea morfologică
Dilatarea se face prin suprapunerea unui element structural, B, peste imaginea A, și mutarea lui peste imagine, într-o manieră similară convoluției.
Notație:
Dilatarea mărește obiectele, permițând umplerea unor mici goluri și conectarea elementelor disjuncte. Diferența dintre convoluție și dilatare, folosind element structural, este felul în care se aplică operația, convoluția fiind definită ca un operator liniar, iar dilatarea fiind definită prin urmatoarea secvență de pași:
dacă originea elementului structural se suprapune cu un pixel „alb” din imagine, nu se efectuează nici o modificare și se trece mai departe la următorul pixel.
dacă originea elementului structural coincide cu un pixel „negru” din imagine, atunci toți pixelii acoperiți de elementul structural devin negri.
Elementul structural poate avea orice formă. Câteva forme des întâlnite sunt:
Fig. 5. Forme tipice pentru elementele structurale (B). a) element structural cu 4 vecini, b) element structural cu 8 vecini.
În Fig. 6 este prezentat un exemplu de dilatare. A se observa că în cazul operației de dilatare toți pixelii „negrii” vor fi păstrați, marginile obiectelor vor fi extinse, iar micile goluri vor fi umplute.
a. b. c.
a. Imaginea originală, b.element structural x=origine, c.Imagine după dilatare (conturul original cu linii).
Fig. 6. Ilustrarea procesului de dilatare.
a. b.
Fig. 7. Exemplu de dilatare: a.Imaginea originală A, b.Imaginea rezultată în urma operației:
3.Eroziunea morfologică
Operația de eroziune este similară cu cea de dilatare, dar anumiți pixeli „negrii” vor fi transformați în pixeli „albi”, invers decât la dilatare.
Notație:
Asemenea dilatării, elementul structural este deplasat peste imagine, dar se va folosi urmatoarea secvență de pași:
dacă originea elementului structural se suprapune peste un pixel „alb” din imagine atunci nu se efectuează nici o modificare și se trece la următorul pixel.
dacă originea elemntului structural se suprapune peste un pixel „negru” din imagine și există cel puțin un pixel „negru” al elementului structural care se suprapune peste un pixel „alb” din imagine atunci pixelul curent din imagine va fi transformat într-unul „alb”.
Eroziunea morfologică a mulțimii A este transformata Hit or Miss a mulțimii cu un element structurant .
Această relație de definiție se mai poate exprima ca:
astfel încatastfel încat
În Fig.8 au rămas doar pixelii „negrii” care coincid cu originea elementului structural dacă aceasta s-a suprapus în întregime peste pixelii „negrii” a unui obiect exestent. Pentu că elementul structural are 3 pixeli lățime, partea din dreapta a obiectului a fost complet erodată, dar partea din stânga și-a menținut câțiva dintre pixeli, pentru că inițial avea 3 pixeli lățime.
a. b. c.
a. Imaginea originală, b. Elementul structural x=origine, c. Imagine după eroziune (conturul original cu linii)
Fig. 8. Ilustrarea procesului de eroziune.
a. b.
Fig. 9. Exemplu de eroziune: a.Imaginea originală A, b.Imaginea rezultată în urma operației:
4. Deschiderea și închiderea morfologică
Cele 2 operații de bază, dilatarea și eroziunea pot fi combinate în secvențe de operații complexe. Cele mai utile combinații de filtrare morfologică sunt deschiderea și închiderea.
Deschiderea constă într-o eroziune formată de o dilatare, și poate fi folosită pentru eliminarea pixelilor din regiunile care sunt prea mici pentru a conține elementul structural. În acest caz, elementul structural este adesea numit sondă pentru ca acesta cauta obiectele prea mici și le filtrează. Vezi Fig. 10 ca exemplu pentru deschidere.
Notatie:
Închiderea constă într-o dilatare urmată de o eroziune, și poate fi folosită pentru umplerea de goluri și mici discontinuități. În Fig. 11 se poate vedea că operația de închidere are ca efect umplerea golurilor și a discontinuităților. Comparând imaginiile din partea stângă și partea dreaptă a Fig 10 și 11, putem observa că ordinea operațiilor de dilatare și eroziune este importantă. Închiderea și deschiderea au rezultate diferice chiar dacă ambele provin dintr-o operație de eroziune si una de dilatare.
Notatie:
a. b. c.
a. Imaginea originală, b. Elementul structural x=origine, c. Imagine după deschidere (eroziune urmată de dilatare)
Fig. 10. Ilustrarea operației de deschidere.
a. b. c.
a. Imaginea originală, b. Elementul structural x=origine, c. Imagine după închidere (dilatare urmată de eroziune)
Fig. 11. Ilustrarea operației de închidere.
a. b.
Fig. 12. Rezultatul deschiderii a. și închiderii b. aplicată pe imaginea originală din Fig. 7. a.
Proprietatea de bază a deschiderii și închiderii morfologice este aceea că sunt transformări duale una alteia (proprietate ce derivă din dualitatea blocurilor constituente de bază, dilatarea și erodarea). Această proprietate permite interpretarea rezultatelor unei operații și deducerea proprietăților acesteia pe baza caracteristicilor dualei sale.
și
Demonstrația acestor proprietăți:
În mod evident, rezultatul unei deschideri sau al unei închideri este diferit de mulțimea ce a fost prelucrată. Relația dintre rezultatul prelucrării și mulțimea inițială este dată de proprietățile de extensivitate ale transformărilor.
Deschiderea morfologică este antiextensivă, adică
Închiderea morfologică este extensivă, adică
În concluzie, pentru a sintetiza, putem afirma că
Relațiile pot fi interpretate ca o modificare sigură a mulțimii: prin deschidere se vor elimina o parte dintre elementele mulțimii ce se prelucrează, iar prin închidere se adaugă elemente noi mulțimii. Proprietatea de idempotență a operațiilor introduce o limitare a modificărilor: mulțimea obținută după o deschidere sau închidere este invariantă la repetarea operației:
și
Relațiile se pot demonstra folosind proprietățile deja enunțate ale deschiderii și închiderii (extensivitate) și proprietățile de monotonie ale operațiilor morfologice de bază. Închiderea și deschiderea moștenesc o parte dintre proprietățile operațiilor morfologice de bază: invarianța la translație și la scalare, monotonia față de mulțimea prelucrată și față de elementul structurant folosit. Din punctul de vedere al acestor proprietăți, deschiderea se comportă analog erodării iar închiderea are o comportare analoagă dilatării.
și
:și
:și
În ceea ce privește proprietățile legate de comportarea față de translație a operatorilor de deschidere și închidere, merită subliniat faptul că proprietatea este identică cu cea a erodării și dilatării doar la translația mulțimii prelucrate (rezultatul unei deschideri sau închideri a unei mulțimi este același, indiferent de poziția spațială a mulțimii). În cazul translatării elementului structurant, rezultatul operației este același, invariant la translație (ca rezultat a iterării erodării și dilatării cu elemente structurante simetrice).
Pentru realizarea efectivă a operațiilor de deschidere și închidere este importantă exprimarea acestora ca operații la nivelul elementelor mulțimilor ce se prelucrează. Deschiderea mai poate fi exprimată și ca mulțimea elementelor structurante translatate ce sunt incluse în mulțimea de prelucrat:
Închiderea mai poate fi exprimată și ca mulțimea punctelor pentru care toate elementele structurante translatate ce le conțin au puncte comune cu mulțimea de prelucrat:
Pe baza acestor exprimări se pot deduce și efectele practice ale deschiderii și închiderii asupra formelor (mulțimilor). Prin deschidere, formele mai mici ca elementul structurant folosit vor fi eliminate, se lărgesc golurile înglobate în obiecte, contururile sunt netezite prin teșirea convexităților iar obiectele unite prin istmuri sunt separate. Datorit ă proprietății de dualitate, închiderea va avea aceleași efecte asupra fundalului (complementarei obiectelor) pe care le are deschiderea asupra mulțimilor. Închiderea umple golurile înglobate în obiecte (dacă aceste găuri sunt mai mici decât elementul structurant folosit), netezește contururile formelor prin umplerea concavităților și unește obiectele foarte apropiate (umple “strâmtorile”).
Efectele operațiilor de deschidere și închidere pot fi considerate ca analoage efectelor unei filtrări de netezire a formelor și eliminare a zgomotului (zgomot interpretat ca obiecte și găuri de mici dimensiuni). În cadrul teoriei algebrice a morfologiei matematice, un filtru este definit ca o operație crescătoare și idempotentă. Trebuie făcută deci distincția între filtrul algebric și filtrul obișnuit, în sensul teoriei prelucrării semnalelor.
a.
b.
Figura 13. Rezultatul operațiunii de deschidere asupra rezultatului segmentării culorilor. a) segmentarea culorilor b) segmentarea supusă deschiderii.
CAPITOLUL IV
1. Transformări locale
Aceste transformări țin cont de o anumită vecinatate a pixelului al cărui nivel de gri va fi modificat. De obicei, vecinătățile cu care se lucrează sunt pătratice, de dimensiuni 3×3, 5×5, 7×7, în general de forma (2p+1)x(2p+1), centrate pe pixelul supus transformării. Transformările locale, în funcție de scopul lor, se pot clasifica în două categorii :
transformări care vizează “netezirea” imaginii (image smoothing) sau a unor regiuni din aceasta, având drept scop reducerea zgomotului sau altor defecte ale imaginii.
transformări care vizează detecția muchiilor (edge detection), bazate pe derivatele funcției asociată imaginii.
O altă clasificare a transformarilor locale are în vedere proprietățile de liniaritate ale acestora. Astfel, putem vorbi despre:
transformări liniare
transformări neliniare
Transformarile liniare se caracterizează prin faptul că valoarea rezultată reprezintă o combinație liniară a nivelurilor de gri din vecinatatea utilizată pentru fiecare pixel. Contribuția fiecarui pixel din vecinatate în rezultatul final este ponderată cu o anumită valoare, astfel:
unde () sunt coordonatele pixelului asupra căruia se realizează transformarea, f reprezintă imaginea originală iar imaginea finală.
Ecuația de mai sus poate fi scrisă ca un produs de convoluție dintre imaginea originală f și nucleul (matricea) w, astfel:
2. Detecția marginilor
Punctele de muchie sunt puncte în jurul cărora intensitatea imaginii suferă un salt brusc de-a lungul unei anumite direcții „x” (Fig.14). Această variație de intensitate poate fi identificată prin detecția punctelor de maxim ale derivatei de ordin 1 a imaginii (gradientului:’) sau prin detectarea trecerilor prin „0” ale derivatei de ordin 2 a imaginii (laplacianului:’’).
Fig. 14. Modalități de detecție a punctelor de muche (zonelor în care intensitatea variază brusc).
În Fig. 15 sunt prezentate două profile ideale de muchii cât și un caz real de muchie însoțită de zgomot.
Fig. 15. Profile de muchii. a) muchie tip treaptă, b) muchie tip vârf, c) muchie reală cu zgomot
Muchiile de tip treaptă se situează între regiuni caracterizate de valori medii ale nivelurilor de gri diferite. Muchiile de tip vârf corepund unei variații locale a intensității pixelilor, variație ce prezintă un maxim sau un minim. Schimbările de intensitate pot fi detectate aplicând imaginii un operator de tip gradient. Gradientul unei funcții într-un punct este un vector normal la curba descrisă de funcție în punctul respectiv.
3. Calculul gradientului imaginii
Gradientul într-un punct al imaginii este un vector care indică direcția de variație a intenstității imaginii (Fig. 16) în jurul acelul punct, modul său fiind proporțional cu amplitudinea acestei variații raportată la unitatea de lungime (viteza acestei variații) (Fig 14). Dacă punctele de muchie fac parte dintr-un contur (ca în Fig. 16), gradientul într-un punct de muche al acestui contur va fi perpendicular pe tangenta acestui contur în punctul respectiv.
Fig.16. Ilustrarea semnificației gradientului imaginii. În figura din stânga este reprezentată imaginea modulului gradientului.
Privind imaginea ca o funcție de 2 variabile f(x,y) care asociază fiecărui punct (x,y) o valoare a intensității (nivel de gri) și făcând presupunerea că funcția este continuă și derivabilă, gradientul în punctul (x,y) va fi:
Amplitudinea și orientarea gradientului în punctul (x,y) sunt date de:
Amplitudinea gradientului masoară diferența dintre intensitătile pixelilor dintr-o vecinătate, iar orientarea relevă direcția celei mai semnificative schimbări de intensitate, care este probabil și direcția muchiei.
Aceste formule se transformă în cazul discret al procesării imaginilor digitale prin înlocuirea derivatelor parțiale cu diferențe finite, altfel:
Alte aproximări ale celor două componente ale gradientului se pot obține prin convoluția imaginii cu următoarele nuclee:
Prewitt:
Operatorul Prewitt folosește urmatoarea aproximare a derivatelor în cele două direcții:
Ca urmare, nucleele folosite în cazul convoluției sunt:
Gradientul este estimat în 8 direcții posibile (în cazul unui nucleu 3×3) iar valoarea amplitudinii reprezintă maximul rezultatelor obținute prin aplicarea celor 8 nuclee. Direcția gradientului se calculează pentru situația corespunzătoare maximului amplitudinii.
Sobel:
În acest caz, nucleele de convoluție sunt:
Se pot folosi toate cele 8 nuclee corespunzătoare celor 8 direcții, într-o manieră similara operatorului Prewitt, însă se pot folosi doar nucleele w1 și w3 pentru realizarea diferențelor finite pe linii, respectiv coloane. În acest caz amplitudinea și direcția gradientului se calculează în maniera obișnuită:
Roberts (cross)
Operatorul Roberts Cross efectuează un calcul simplu, rapid de măsurare a gradientului într-un spațiu 2-D pe o imagine. Valorile pixelilor la ieșire reprezintă valoarea absolută a gradientului spațial al imaginii de intrare din acel punct. Operatorul constă într-o pereche de 2×2 nuclee de convoluție cum sunt descrise mai jos. Un nucleu este pur și simplu rotirea celuilalt cu 90°.
a)
b)
Fig.17. Detecția marginilor. a) imaginea de intrare b) rezultatul detectării marginilor.
4. Masca determinării fețelor
Una dintre operațiile uzuale în metodele de extragere a frontierelor este aceea de aplicare a unui prag peste matricea amplitudinilor fronturilor. Operația de aplicare a unui prag poate fi efectuată și asupra unei matrici imagine, rezultand o imagine binară.
Astfel, daca a(k , l) este matricea amplitudinilor (sau o matrice imagine), atunci imaginea binară, B(k , l) este :
unde T este o valoare prag.
Valoarea T poate fi aleasă inspectând histograma imaginii (matricei amplitudine), a(k, l), astfel încât numai un mic procent din elementele matricei a sa aiba valoarea T. În acest caz, operația de binarizare este globala, deoarece T este ales pe baza unei informații globale si operația se efectueaza peste întreaga imagine.
În multe cazuri imaginea (matricea amplitudinilor) conține regiuni cu proprietați statistice diferite. Binarizarea globala poate produce frontiere subțiri în unele regiuni și late sau intrerupte in altele. În aceste cazuri este de dorit o binarizare adaptată local, adică :
,unde T(k,l) este pragul adaptat local.
O metoda de a-l obține constă în calculul mediei aritmetice locale în matricea imagine ( sau matricea amplitudinilor produsă de detectorul de fronturi):
, unde p este un procent care indică nivelul pragului peste media locală.
Deci, pragul diferă de la pixel la pixel în funcție de media amplitudinilor fronturilor din vecinatatea pixelului.
Pentru obținerea măștii finale pe baza căreia se va face determinarea zonelor de interes s-au combinat imaginile rezultate în urma operațiunilor de deschidere morfologică și a detecției marginilor. Combinarea s-a făcut utilizând operația de „ȘI” între pixelii imaginii deschise morfologic și inversul pixelilor imaginii obținute prin detecția marginilor.
Fig.8. Masca folosită pentru determinarea zonelor de interes.
Copyright Notice
© Licențiada.org respectă drepturile de proprietate intelectuală și așteaptă ca toți utilizatorii să facă același lucru. Dacă consideri că un conținut de pe site încalcă drepturile tale de autor, te rugăm să trimiți o notificare DMCA.
Acest articol: Detectia Fețelor Umane (ID: 127359)
Dacă considerați că acest conținut vă încalcă drepturile de autor, vă rugăm să depuneți o cerere pe pagina noastră Copyright Takedown.
