Studiu Comparativ Privind Mijloacele de Detectie a Persoanelor In Secvente de Imagini
LUCRARE DE LICENȚĂ
LUCRARE DE LICENȚĂ
TEMA: ”STUDIU COMPARATIV PRIVIND MIJLOACELE DE DETECȚIE A PERSOANELOR ÎN SECVENȚE DE IMAGINI”
REFERAT DE APRECIERE
a lucrării de licență
1. Numele și prenumele absolventului:
______________________________________________________________
2. Domeniul de studii:
______________________________________________________________
3. Programul de studii universitare de licență:
______________________________________________________________
4. Tema lucrării de licență:
______________________________________________________________
________________________________________________________________
________________________________________________________________
5. Aprecieri asupra conținutului teoretic al lucrării de licență (se marchează cu X):
6. Aprecieri asuprapărții practic-aplicativea lucrării de licență (se marchează cu X):
7. Aprecieri privind redactarea lucrării de licență:
8. Considerații finale:
________________________________________________________________
________________________________________________________________
________________________________________________________________
Apreciez lucrarea de licență cu nota _____________ și o recomand
pentru a fi susținută în prezența comisiei examenului de licență.
Data Conducător științific
INTRODUCERE
Detecția și recunoașterea facială sunt termeni care se referă la o aplicație de calculator, care identifică în mod automat sau verifică o persoană dintr-o imagine digitală sau dintr-un cadru al unei surse video. Există mai multe modalități de realizare a acesteia, dar cea mai semnificativă este compararea caracteristicilor faciale selectate din imagine, cu o bază de date existentă care conține aceste caracteristici.
Utilizarea cea mai notabilă a acestei aplicații este în sisteme de securitate, alături de alte date biometrice, cum ar fi sistemele de recunoaștere a amprentelor digitale sau iris. Deși este un concept nou, a început să câștige din ce în ce mai multă atenție datorită faptului că procesul este format din reprezentări matematice avansate și procese de potrivire.
Primele încercări cu privire la acest concept datează la începutul anilor 1960. Dar, pentru că proiectul a fost finanțat de către o agenție de informații necunoscută, doar o mică parte a lucrărilor și rezultatelor au fost publicate. Mai târziu, la sfârșitul anilor 1990, un software robust a apărut pe piață. Acesta efectuează achiziția imaginii, localizarea feței și identificarea foarte rapid, devenind astfel cel mai bun lucru atunci când vine vorba de securitatea în aeroporturi, gări, bănci și locuri în general aglomerate.
În zilele noastre, conceptul de recunoaștere a feței este în mare parte cunoscut și utilizat pe scară largă. Bănci, stații, camere de trafic sunt câteva exemple de locuri în care se aplică acest sistem. Agențiile de informații tratează acest concept ca un punct de start important pentru asigurarea securității la nivel mondial, iar acest lucru poate însemna doar un singur lucru: nevoia de securitate este depășită.
Voi prezenta în cadrul capitolului 2, metodele cele mai uzuale folosite în detecția facială. De exemplu: metoda Viola-Jones (bazată pe identificarea obiectelor), metoda potrivirii graficelor mănunchi elastice (care cartografiază distanțele faciale, și le reține pentru rulări ulterioare), metoda bazată pe componente (care separă fața în elemente distincte și le unește la sfârșitul execuției programului), metoda eigenfaces (care este bazată pe analiza componentei principale), etc.
Oamenii folosesc adesea fețele pentru a recunoaște persoane și progresele în capacitatea de calcul pe parcursul ultimelor decenii, permit acum recunoașteri automate. Primii algoritmi pentru recunoașterea facială utilizau modele geometrice simple, dar procesul de recunoaștere s-a transformat într-o știință cu reprezentări matematice sofisticate și procese de asemuire.
Recunoașterea automată a feței este un concept relativ nou. Dezvoltat în anii 1960, primul sistem semi-automat de recunoaștere a feței cerea administratorului să localizeze caracteristici (cum ar fi ochii, urechile, nasul și gura) pe fotografii, înainte să calculeze distanțe și rapoarte pe un punct de referință comun, care erau mai apoi comparate cu datele de referință.
În ultimul capitol, voi prezenta câteva metode utilizate pentru detecția facială, exemplificându-le cu rulări ale acestora în programul Matlab.
CAPITOLUL 1: DETECȚIA ȘI RECUNOAȘTEREA FACIALĂ
1.1.Delimitări conceptuale privind detecția facială și elemente utilizate
Detecția feței este o parte importantă a recunoașterii faciale fiind primul pas în recunoașterea automată a feței. Cu toate acestea, detecția facială nu este simplă, pentru că are o mulțime de variații de aspect a imaginii, cum ar fi variația postură (față, non-față), ocluzia, orientarea imaginii, starea de iluminare și expresia facială.
Au fost propuse multe metode noi pentru a rezolva fiecare dintre variațiile enumerate mai sus. De exemplu, se folosesc metodele de potrivire-șablon pentru localizarea feței și detectare corelând o imagine de intrare pe un model de față standard. Abordările de tip caracteristică invariantă sunt utilizate pentru detectarea ochilor,a gurii, a urechilor, a nasului, etc. Sunt folosite metodele bazate pe înfățișare pentru detectarea feței cu eigenface, rețele neuronale, precum și abordări informaționale teoretice. Cu toate acestea, punerea în aplicare a metodelor este încă o mare provocare.
Primele eforturi de detectare a feței au fost datate la începutul anilor 1970, unde s-au folosit tehnici euristice simple și antropometrice. Aceste tehnici sunt în mare parte rigide din diverse ipoteze, cum ar fi fundal simplu, cu fața frontal prezentată – scenariu tipic fotografie pașaport. Pentru aceste sisteme, orice modificare a condițiilor imaginii ar însemna un reglaj fin, dacă nu un redesign complet. În ciuda acestor probleme creșterea interesului asupra cercetării au stagnat până în 1990, atunci când recunoașterea feței practică și sistemele de codare video, au început să devină o realitate. În ultimii ani a existat un mare interes asupra cercetării care acoperă mai multe aspecte importante de detectare a feței. Au fost prezentate scheme de segmentare mai robuste, mai ales acelea care folosesc mișcarea, culoarea, și informațiile generalizate. Utilizarea de statistici și de rețele neuronale a permis, de asemenea, detectarea fețelor din scene aglomerate sau de calitate scăzută la distanțe diferite față de aparatul foto. În plus, există numeroase progrese în proiectarea de extractoare de caracteristici, cum ar fi modelele deformabile și contururile active care pot localiza și urmări caracteristicile faciale cu precizie.
Pentru că tehnicile de detectare a feței necesită informații a priori despre față, ele pot fi organizate în mod eficient în două mari categorii și se disting prin abordarea lor diferită la utilizarea cunoștințelor despre față. Tehnicile din prima categorie fac uz în mod explicit de cunoștințele faciale și urmează metodologia de detectare clasică în care caracteristicile de nivel scăzut sunt derivate comparativ cu analiza bazată pe cunoștințe.
Proprietățile aparente ale feței, cum ar fi culoarea pielii și geometria feței sunt exploatate la niveluri diferite ale sistemului. De obicei, în aceste tehnici, sarcinile de detectare a feței sunt realizate prin manipularea distanței, unghiurilor, și măsurătorilor din zona de caracteristici vizuale derivate din scenă. Din moment ce aceste caracteristici sunt principalele ingrediente, aceste tehnici sunt denumite abordarea bazată pe caracteristică. Aceste abordări au reprezentat cea mai mare parte de interes în detecția feței cercetările începând încă din 1970 și, prin urmare, reprezintă cea mai mare parte a literaturii analizate în acest domeniu. Profitând de progresele actuale în teoria recunoașterii formelor, tehnicile din al doilea grup se adresează detecției feței ca o problemă de recunoaștere generală. Reprezentările fețelor bazate pe imagini, de exemplu, în matrice de intensitate 2D, sunt clasificate direct într-un grup al fețelor, folosind algoritmi de formare fără derivarea caracteristicilor și analizei. Spre deosebire de abordarea bazată pe caracteristică, aceste relativ noi tehnici încorporează cunoștințele despre față implicit în sistem prin cartografiere și formare de scheme.
Progresele tehnologiei de calcul au facilitat în ultimii ani dezvoltarea modulelor de viziune în timp real, care interacționează cu oamenii. Exemplele abundă, în special în elementele biometrice integrate și interacțiunea om-calculator după cum informațiile conținute în față trebuie să fie analizate pentru ca sistemele să reacționeze în consecință.
Pentru sistemele biometrice care folosesc fețele ca module de intrare non-intruzive, este imperativ să se localizeze fața într-o scenă înainte ca orice algoritm de recunoaștere să poată fi aplicat. O interfață de utilizator bazată pe viziune inteligentă ar trebui să fie în măsură să arate în care atenția utilizatorului este îndreptată (de exemplu, unde se uită utilizatorul), în scopul de a răspunde în mod corespunzător. Pentru detecția caracteristicilor faciale cu precizie în aplicații cum ar fi produsele cosmetice digitale, fețele trebuie să fie localizate și înregistrate în primul rând pentru a facilita prelucrarea ulterioară. Este evident că detecția feței joacă un rol important și esențial pentru succesul oricărui sistem de prelucrare a feței.
Problema de detectare a feței este o provocare, deoarece trebuie să țină seama de toate variațiile de aspect posibil cauzate de schimbările în iluminare, caracteristicile faciale, ocluzii, etc. În plus, ea are rolul de a detecta fețele care apar la scară diferită, postură diferită, cu rotații în plan. În ciuda tuturor acestor dificultăți, un progres enorm s-a realizat în ultimul deceniu și mai multe sisteme au demonstrat performanțe impresionante în timp real. Recentele progrese ale acestor algoritmi au adus, de asemenea, contribuții semnificative în detectarea altor obiecte, cum ar fi oameni/pietoni și autoturisme.
Cele mai multe sisteme de detectare îndeplinesc sarcina de a detecta o față prin extragerea anumitor proprietăți (de exemplu, caracteristici locale sau modele de intensitate holistice), ale unui set de imagini de test obținute într-o singură postură (de exemplu poziție frontal-verticală), într-un cadru off-line. Pentru a reduce efectele schimbărilor în iluminare, aceste imagini sunt procesate cu o histogramă de egalizare sau de standardizare. Pe baza proprietăților extrase, aceste sisteme scanează de obicei, prin întreaga imagine fiecare locație și scară posibile, în scopul de a localiza fețele. Proprietățile extrase pot fi codificate manual (cu ajutorul cunoștințelor umane) sau învățate de la un set de date după cum s-a adoptat în ultimii ani în unele sisteme care au demonstrat rezultate impresionante.
În scopul de a detecta fețele la scară diferită, procesul de detectare este de obicei repetat pe o piramidă de imagini ale căror rezoluție sunt reduse cu un anumit factor față de cel original. Aceste proceduri pot fi accelerate, atunci când alte repere vizuale pot fi încorporate cu precizie (de exemplu, culoare și mișcare), ca etape de pre-procesare, pentru a reduce spațiul de căutare. Cum fețele sunt adesea detectate la scara la care sunt aflate, primele fețe detectate sunt de obicei prelucrate în continuare pentru a combina rezultatele și elimina pozitivele false cu euristica (de exemplu, fețele de obicei, nu se suprapun în imagini) sau prelucrarea ulterioară (de exemplu, detectarea marginilor și variația intensității).
Numeroase reprezentări au fost propuse pentru detectarea feței inclusiv pe bază de pixeli, pe bază de componente, caracteristici locale ale marginilor, miniundele Haar și caracteristici de tip Haar. În timp ce sistemele de reprezentare holistice anterioare sunt capabile să detecteze fețele, sistemele recente cu caracteristici de tip Haar au demonstrat rezultate empirice impresionante în detectarea fețelor sub ocluzie. Un set mare și reprezentativ de imagini test cu fețe este esențial pentru succesul detectoarelor de față bazate pe învățare. Din setul de date colectate, mai multe exemple pozitive pot fi generate sintetic prin perturbarea, oglindirea, rotirea și scalarea imaginilor față de cele originale. Pe de altă parte, este relativ mai ușoară colectarea exemplelor negative prin eșantionarea la întâmplare a unor imagini care nu conțin fețe.
După cum detecția a feței poate fi formulată, în principal ca o problemă de recunoaștere a formelor, au fost propuși mai mulți algoritmi care află șabloanele generice (de exemplu eigenface și distribuția statistică) sau clasificatoare discriminant (de exemplu, rețele neuronale și arbori decizionali). De obicei, un sistem de detectare a feței performant trebuie să fie instruit cu mai multe iterații. O metodă comună pentru îmbunătățirea în continuare a sistemului este inițierea detectorului de față cu seturi de testare, și re-instruirea sistemului cu pozitive false cât și negative. Acest proces este repetat de mai multe ori, pentru a crește performanța unui detector facial.
Detectarea feței este în prezent un domeniu de cercetare foarte activ, iar tehnologia a ajuns la un nivel înalt de la sondajul „Recunoașterea facială: Un sondaj literar” întocmit de Chellappa. Ultimii ani au demonstrat progrese mari referitor la algoritmii care se ocupă cu medii complexe, cum ar fi imagini în tonuri de gri de calitate scăzută și fundaluri dezordonate. Câțiva dintre cei mai buni algoritmi sunt încă prea costisitori din punct de vedere al calculului pentru a fi aplicabili în procesarea în timp real, dar acest lucru este probabil să se schimbe odată cu îmbunătățirile care vin în componentele hardware ale computerelor. Metodele bazate pe caracteristică sunt aplicabile pentru sistemele în timp real unde culoarea și mișcarea sunt disponibile. Din moment ce o scanare a unei ferestre multirezoluțională exhaustivă nu este întotdeauna de preferat, metodele bazate pe caracteristici pot oferi indicii vizuale pentru concentrarea atenției. În aceste situații, cea mai utilizată tehnică la scară largă este detectarea culorii pielii bazată pe unul din modelele de culoare (RGB, HSV, HSL, etc.). Dintre abordările bazate pe caracteristică care funcționează pe imagini statice de culoare gri, algoritmul cercetătorilor Maio și Maltoni pare foarte promițător, arătând rezultate bune în detecție, fiind în același timp și eficiente din punct de vedere al puterii de calcul.
Abordările bazate pe imagini sunt tehnicile cele mai robuste pentru procesarea imaginilor statice de culoare gri. Toți acești algoritmi sunt bazați pe scanarea ferestrelor multirezoluție pentru a detecta fețele la toate nivelurile, ceea ce le face costisitoare computațional. Scanarea ferestrelor multirezoluție poate fi evitată prin combinarea abordării bazate pe imagine, cu o metodă bazată pe caracteristici ca un preprocesor, cu scopul de a ghida căutarea bazată pe indicii vizuale, cum ar fi culoarea pielii.
Cea mai importantă aplicație de detectare a feței este în continuare considerată un preprocesor în sistemele de recunoaștere a feței. Pentru prelucrarea offline, tehnologia de detecție facială a ajuns la un punct unde în cazul în care se detectează un singur chip într-o imagine cu rezoluție acceptabilă (tipic pentru un sistem de recunoaștere a feței), este aproape de a deveni o problemă rezolvată. Cu toate acestea, detectarea precisă a caracteristicilor faciale, cum ar fi colțurile ochilor și ale gurii este mai dificilă, iar acest lucru este încă o problemă greu de rezolvat. Detecția feței și-a găsit, de asemenea, calea spre sistemele CBIR (Căutarea Imaginilor Bazată pe Conținut) , cum ar fi motoarele de căutare web și indexarea video digitală.
Fața umană este un obiect dinamic, dar cu o confgurație standard de caracteristici faciale care pot varia într-un interval limitat. Este o problemă dificilă detectarea unor astfel de obiecte dinamice și luând în considerare schimbările din fețe în timp (păr facial, ochelari, riduri, culoare a pielii, vânătăi), împreună cu variații în postură, dezvoltarea unui algoritm robust de detecție facilă este încă o problemă greu de rezolvat în sistemele de viziune pe calculator.
Detecția facială este tehnica unde, pe o imagine arbitrară dată, este necesar să se determine dacă există sau nu există o față în imagine și, dacă este prezentă, să se returneze locația și mărimea imaginii fiecărei fețe. Provocările asociate cu detectarea feței sunt:
1) Postura: Imaginile unei fețe variază în funcție de pozițiile relative ale acesteia în raport cu camera și unele caracteristici faciale, cum ar fi un ochi sau nasul pot deveni ascunse parțial sau în întregime.
2) Prezența sau absența componentelor structurale: trăsături faciale, cum ar fi barba, mustățile și ochelarii pot fi prezente sau nu și există o mare variabilitate între aceste componente, inclusiv forma, culoarea, și dimensiunea.
3) Expresia facială: Modul cum o față apare este afectat direct de expresia facială a unei persoane.
4) Ocluzie. Fețele pot fi ascunse parțial de către alte obiecte. Într-o imagine cu un grup de oameni, unele fete pot bloca parțial alte fețe.
5) Orientarea imaginii: imaginile faciale variază în mod direct datorită diferitelor rotații ale axului optic al camerei și datorită condițiilor imaginii, atunci când imaginea este formată.
Pentru detectarea facială, au fost utilizate și puse în aplicare diferite metode, cum ar fi rețele neuronale artificiale, mașină cu vectori de suport (SVM), clasificator Bayesian, modelul Hidden Markov. Deși multe tehnici sunt disponibile pentru detectarea pielii, zona de detectare a pielii faciale este încă deschisă cercetărilor.
Procesul de detectare a pielii are două faze: o fază de formare (de instruire) și o fază de detectare. Instruirea unui detector de piele implică trei pași de bază:
1) Colectarea unei baze de date de patch-uri de piele de la imagini diferite. O astfel de bază de date conține de obicei patch-uri de culoarea pielii de la o varietate de oameni în diferite condiții de iluminare.
2) Alegerea unui spațiu de culoare adecvat.
3) Învățarea parametrilor unui clasificator de piele folosind rețele neuronale. Pe un detector instruit de piele, identificarea pixelilor de piele într-un anumit cadru de imagine sau video presupune:
(i) Conversia imaginii în același spațiu de culoare care a fost utilizat în faza de instruire.
(ii) Clasificarea fiecărui pixel folosind clasificatorul de piele (rețea neuronală), fie ca piele sau non-piele.
1.2.Clasificări ale metodelor de detecție umană
Detectarea cu o singură fereastră
Metodele de detectare cu o singură fereastră pot fi:
Metode bazate pe contur care pot utiliza o reprezentare continuă sau discretă a conturului. Abordările discrete reprezintă conturul printr-un set de exemple de contur. Abordarea continuă implică o reprezentare parametrică a conturului, parametrii fiind obținuți prin antrenare folosind un set de exemple sau metoda de înregistrare automată a conturului. Reprezentarea formei poate fi liniară, neliniară sau combinată.
Metodele „bazate pe exemple” utilizează un set de antrenare etichetat ca să recunoască omul în imagini. Aceste metode pot fi clasificate în trei clase:
Rețele neuronale multistrat feed-forward
Clasificator AdaBoost
Mașini cu Suport Vectorial
Metode „bazate pe componente” care detectează separat părțile corpului și verifică dacă acestea au o poziție geometrică naturală. Aceste componente fie sunt motivate semantic ca fiind părți ale corpului fie sunt părți conform caietului de coduri (coodbook).
Recunoașterea activității și a comportamentului
Termenul activitate se referă la mișcări simple, iar termenul comportament se referă la activități complexe, cu o durată mai lungă în timp. Tehnicile de recunoaștere a comportamentului pot fi clasificate în două categorii:
Abordări cu un singur strat (single-layered approaches)
Aproximările cu un singur strat recunosc activitățile umane în mod direct, bazate pe secvențe de imagini. Aceste metode pot fi:
Abordări spațiu-timp care vizualizează o secvență video ca un volum 3-dimensional (planul imaginii și a treia dimensiune este timpul) și pot fi împărțite în trei categorii, în funcție de tipul proprietății pe care o folosesc:
Abordările bazate pe traiectorii interpretează o activitate ca un set de traiectorii spațio-temporale.
Traiectoria-abordării bazate pe interpretarea activității ca un set de traiectorii spațio-temporale.
Tehnicile bazate pe volume spațio-temporale măsoară similitudinea dintre două volume.
Tehnicile bazate pe proprietăți locale spațio-temporale extrag proprietățile locale din volumul spațio-temporal 3D, pentru reprezentarea și recunoașterea activităților. Există două abordări: prima extrage caracteristicile locale la fiecare cadru de imagine și ulterior le înlănțuie astfel încât să descrie mișcarea în ansamblu a activității umane. A doua extrage caracteristici locale spațio-temporale din volumele 3D.
Abordările secvențiale interpretează un video ca o secvență de observații. Abordările secvențiale extrag caracteristicile din cadre, care descriu starea unei persoane în imagine, și analizează secvența de caracteristici pentru a măsura probabilitatea ca o persoană să efectueze o activitate. Abordările secvențiale pot fi clasificate în două categorii:
Recunoașterea bazată pe exemple utilizează exemple direct în faza de recunoaștere sau de antrenare. Secvențele noi sunt comparate cu secvențele existente de sabloane de vectori de trăsături extrase din seturi de antrenare.
Recunoașterea bazată pe modele sunt abordări care reprezintă o activitate umană ca un model compus dintr-un set de stări. Acest model este antrenat statistic, astfel încât aceasta să corespundă unor secvențe de caracteristici care definesc clase de activitate. Cele mai utilizate abordări bazate pe modele sunt Modele Markov ascunse (HMM) și rețelele dinamice bayesiene (DBNs).
Abordări ierarhice
Abordările ierarhice recunosc activitățile complexe sau comportamentele umane utilizând rezultatele recunoașterii activităților mai simple. Aceste sisteme sunt compuse din mai multe straturi. Abordările ierarhice sunt:
Abordări statistice care construiesc modele de stare statistice cu straturile având relații ierarhice pentru recunoașterea comportamentului uman. Primele straturi recunosc activități elementare din secventele de vectori ale proprietăților, utilizând abordări cu un singur strat secvențial. Straturile superioare tratează ca observații "acțiunile elementare" din stratul precedent.
Abordări sintactice care modelează activitățile umane, ca un șir de simboluri. Pentru a modela activitatea umană se folosește sintaxa gramaticii, cum ar fi gramaticile fără-context, (CFGs) sau gramatica stohastică fără-context (SCFG).
Abordările bazate pe descriere reprezintă activități umane complexe, pentru descrierea cărora se folosesc activități simple sau sub-evenimente și structurile lor temporale, spațiale și logice. Acțiunea umană este modelată ca producerea unor activități simple sau raportul dintre acțiuni și evenimentele care compun aceste activități.
O ultimă clasificare a metodelor folosite în detecția și recunoașterea facială este adăugată în Anexa 1.
1.3.Recunoașterea facială
În general, un sistem de recunoaștere facială uman utilizează un spectru larg de stimuli, obținuți de la mai multe, dacă nu toate, simțurile (vizual, auditiv, olfactiv, tactil, etc.) Acești stimuli sunt utilizați fie individual sau colectiv pentru stocarea și regăsirea de imagini. În multe cazuri, cunoașterea contextuală este de asemenea folosită, adică mediul joacă un rol important în recunoașterea fețelor în legătură cu locul în care acestea ar trebui să fie localizate.
Este inutil (folosind tehnologia existentă) a încerca chiar și a dezvolta un sistem care poate imita toate aceste capacități remarcabile ale oamenilor. Cu toate acestea, creierul uman are limitările sale în numărul total de persoane pe care și le poate cu exactitate "aminti". Un avantaj potențial cheie al unui sistem informatic este capacitatea sa de a se ocupa cu seturi de date mari de imagini faciale. În cele mai multe aplicații imaginile sunt vederi singulare sau multiple de date de intensitate 2-D, care forțează intrările algoritmilor de calculator pentru a fi doar vizuale.
Identitatea unei persoane este caracterizată de un set complex, variabil în timp și greu de definit de trăsături personalizate, de natură anatomică, fiziologică sau comportamentală.
Unele dintre aceste trăsături pot fi folosite, împreună cu tehnici automate de procesare, pentru implementarea sistemelor biometrice, capabile să recunoască sau să valideze autenticitatea identității unor persoane. Informațiile biometrice care se utilizează în mod curent sunt: amprentele, vocea, fața, irisul, forma geometrică a mâinii.
Comparativ cu modalitățile uzuale de identificare: legitimații, chei, parole sau coduri PIN (Personal Identification Number), informațiile biometrice se pot pierde, fura sau uita (dar pot fi reproduse cu acuratețe suficientă pentru a “păcăli” sistemele automate de recunoaștere).
Pentru a defini și măsura performanțele trebuie avute în vedere următoarele elemente ale unui sistem biometric ideal:
• membrii populației posedă trăsăturile pe care sistemul le va identifica
• fiecare “semnătură” biometrică a unei persoane diferă de semnăturile tuturor celorlalte persoane supuse analizei
• “semnătura” biometrică nu variază semnificativ în funcție de condițiile particulare în care este extrasă (obținută)
• sistemul are o rezistență crescută împotriva tentativelor de fraudare a semnăturilor biometrice
Se iau în considerare două clase de aplicații, de identificare (recunoaștere), respectiv de verificare (autentificare):
– în sistemul de identificare (recunoaștere), “semnătura” biometrică a unei
persoane necunoscute este prezentată la intrarea sistemului, urmând a fi comparată cu cele disponibile într-o bază de date alcătuită din “semnături” ale unui set de persoane cunoscute. Sistemul furnizează ca răspuns identitatea persoanei din baza de date a cărei “semnătură” are cele mai multe asemenări cu o persoană din baza de date cu cea a persoanei necunoscute (în principiu există și posibilitatea ca sistemul să decidă că persoana necunoscută nu seamănă cu nimeni din baza de date).
– în cadrul aplicației de verificare, o persoană își prezintă “semnătura” sa biometrică și susține că are identitatea care corespunde acelei “semnături”, pe baza căreia vrea să obțină dreptul de acces într-un spațiu sau la anumite resurse restricționate. Sistemul poate să accepte sau să respingă această cerere, respectiv poate furniza un grad de încredere asupra validității identității pretinse.
O declarație generală a problemei poate fi formulată după cum urmează: având în vedere un cadru fix sau o secvență video ale unei scene, să se identifice sau să se verifice una sau mai multe persoane din scenă, folosind o bază de date cu fețe. Informații suplimentare disponibile, cum ar fi rasa, vârsta, sex, expresii faciale și de vorbire pot fi utilizate în îngustarea căutarii (creșterea recunoașterii). Soluția la problemă implică segmentarea feței (detectare acesteia) din scene aglomerate, extracția trăsăturilor din regiunea feței, recunoașterea sau verificarea. În problemele de identificare, se introduce în sistem o față necunoscută, iar sistemul raportează identitatea determinată dintr-o bază de date de persoane cunoscute, în timp ce în problemele de verificare, sistemul trebuie să confirme sau să respingă identitatea revendicată de ceea ce s-a introdus în sistem.
Transformând o imagine de dimensiuni NxN pixeli într-un vector de dimensiune N2, acesta poate fi privit ca un punct într-un spațiu N2 -dimensional. Imaginile reprezentând fețe umane ocupă doar un mic subspațiu al acestui spațiu multidimensional, cu caracteristici specifice. Se poate arăta că modificările obișnuite precum translația, rotația, sau schimbarea nivelului de iluminare, atunci când au amplitudine mică, definesc simple subregiuni compacte din “subspațiul fețelor”. Pentru transformări mai generale – rotații mari, acoperire parțială, schimbări de scală – subregiunile feței devin non-convexe.
CAPITOLUL 2: ABORDĂRI PREDOMINANTE ÎN DETECȚIA ȘI RECUNOAȘTEREA FACIALĂ
2.1.Metoda eigenfaces
O mare parte din munca anterioară privind recunoașterea automată a feței a ignorat problema a doar ceea ce aspecte ale stimulului feței sunt importante pentru identificare. Acest lucru a sugerat că o abordare teoretică a informației de codificare și decodificare a imaginilor faciale poate oferi o perspectivă asupra conținutului informațional al imaginilor cu fețe, subliniind “caracteristici” locale și globale semnificative. Aceste caracteristici pot sau nu pot fi direct conectate cu noțiunea intuitivă de caracteristici faciale, cum ar fi ochii, nasul, buzele, și părul.
În limbajul teoriei informatice, este necesară extragerea informațiilor relevante într-o imagine facială, codificându-le cât mai eficient posibil, și compararea acestei codificări cu o bază de date de modele codate în mod similar. O abordare simplă la extragerea informațiilor conținute într-o imagine a unei fețe este de a capta cumva variația într-o colecție de imagini cu fețe, independent de orice judecată de caracteristici, și de a folosi aceste informații pentru a codifica și compara imagini individuale ale fețelor.
În termeni matematici, este necesară găsirea principalele componente ale distribuției de fețe, sau vectorii proprii ai matricei de covarianță a setului de imagini, tratarea unei imagini ca un punct (sau vector) într-un spațiu dimensional foarte mare. Vectorii proprii sunt ordonați, fiecare reprezentând o sumă diferită de variații între imaginile care conțin fețe.
Acești vectori proprii pot fi considerați ca fiind un set de trăsături care caracterizează împreună variația dintre imagini. Fiecare locație a imaginii contribuie mai mult sau mai puțin la fiecare vector propriu, astfel încât se poate afișa vectorul propriu ca un fel de chip fantomatic care se va numi o față eigen (eigenface). Unele dintre fețele studiate sunt ilustrate în Figura 1, iar fețele eigen corespunzătoare sunt prezentate în Figura 2. Fiecare eigenface deviază de la un gri uniform unde unele caracteristici faciale diferă de cele din setul de test, ele sunt un fel de hartă a variațiilor dintre fețe.
Fiecare față individuală poate fi reprezentată exact în termeni de o combinație liniară a eigenfaces. Fiecare față poate fi, de asemenea, aproximată, folosind doar "cea mai bună" față de tip eigen – cele care au cele mai mari valori proprii, și care, prin urmare, reprezintă cea mai mare variație în cadrul setului de imagini ale feței. Cele mai bune M eigenfaces cuprind un subspațiu M-dimensional – “spațiul față” -a tuturor imaginilor posibile.
Figura 1. Imagini folosite pentru test
Ideea de a folosi eigenfaces a fost motivată de o tehnică dezvoltată de Sirovich și Kirby (1987) și Kirby și Sirovich (1990) pentru a reprezenta în mod eficient imagini de chipuri folosind analiza componentelor principale. Începand cu un ansamblu de imagini faciale originale, ei au calculat un cel mai bun sistem de coordonate pentru comprimarea imaginii, în care fiecare coordonată este de fapt o imagine care au numit-o “eigenpicture”. Ei au susținut că, cel puțin în principiu, orice colecție de imagini cu fețe poate fi reconstruită aproximativ prin stocarea unei mici colecții de greutăți pentru fiecare față și un mic set de imagini standard (eigenpictures). Greutățile care descriu fiecare față sunt găsite prin proiectarea imaginii față pe fiecare eigenpicture. Aceasta demonstrează că dacă o multitudine de imagini cu fețe poate fi reconstruită prin sume ponderate de o mică colecție de trăsături caracteristice sau eigenpictures, probabil, o modalitate eficientă de a învăța și de a recunoaște chipurile ar fi de a construi trăsăturile caracteristice prin experiență odată cu trecerea timpului și să recunoască anumite chipuri prin compararea părților cu caracteristici necesare pentru a le reconstrui cu încărcaturile asociate cu persoane cunoscute . Fiecare individ, prin urmare, ar fi caracterizat de un set redus de trăsături sau eigenpictures necesare pentru a descrie și reconstitui – o reprezentare extrem de compactă în comparație cu imaginile în sine.
Această abordare pentru recunoașterea facială implică următoarele operații de inițializare:
achiziționarea unui set inițial de imagini ale feței (setul de test).
se calculează eigenfaces din setul de test, păstrând doar M imagini care corespund cu cele mai înalte valori proprii. Aceste M imagini definesc spațiul de față. În timp ce noi fețe sunt experimentate, eigenfaces pot fi actualizate sau recalculate.
calcularea repartiției corespunzătoare în spațiul greutate M-dimensional pentru fiecare individ cunoscut, prin proiectarea imaginilor cu fețele lor în “spațiul față”.
Aceste operațiuni pot fi, de asemenea, efectuate din timp în timp, ori de câte ori există o capacitate de calcul liberă.
După inițializarea sistemului, următorii pași sunt apoi folosiți pentru a recunoaște noile imagini faciale:
1. Calcularea un set de încărcături bazate pe imaginea de intrare și M eigenfaces prin proiectarea imaginii de intrare pe fiecare dintre eigenfaces.
2. Determinare dacă imaginea este o față într-adevăr (cunoscută sau necunoscută), prin verificare pentru a vedea dacă imaginea este suficient de aproape de “spațiul față”.
3. Dacă este o față, clasifică modelul încărcăturii, fie ca o persoană cunoscută sau ca necunoscută.
4. (Opțional) Actualizarea eigenfaces-urilor și / sau a modelor de încărcături.
5. (Opțional) Dacă aceeași față necunoscută este văzută de mai multe
ori, se calculează modelul său de greutate caracteristic și se include în categoria fețelor cunoscute.
CALCULAREA EIGENFACES
Fie o imagine facială I (x, y) o matrice bidimensională NxN de (8-biți) valori de intensitate. O imagine poate fi de asemenea considerată ca un vector de dimensiune N2, astfel că o imagine tipică de dimensiuni 256×256 devine un vector de dimensiune 65.536, sau, echivalent, un punct într-un spațiu dimensional de mărime 65.536. Un ansamblu de imagini, apoi, se trasează la o colecție de puncte în acest spațiu imens.
Imaginile fețelor, fiind similare în configurație de ansamblu, nu vor fi distribuite aleator în acest spațiu de imagine imens și, astfel, pot fi descrise printr-un sub-spațiu dimensional relativ scăzut. Ideea de bază a analizei componentei principale (sau expansiunea Karhunen-Loeve) este de a găsi cei mai buni vectori folosiți la distribuția imaginilor feței în întreg spațiul de imagini. Acești vectori definesc sub-spațiul de imagini faciale, care se numește “spațiul fețelor”. Fiecare vector este de lungime N2, descrie o imagine NxN, și este o combinație liniară a imaginilor originale care conțin fețe. Pentru că acești vectori sunt vectorii tip eigen ai matricei covarianță care corespunde imaginilor originale, și pentru că sunt asemănători unei fețe la apariție, ne referim la ei ca fiind “eigenfaces”.
Fie setul de imagini test Γ1,Γ2,Γ2,…,ΓM. Media setului de imagini este definită de Ψ = . Fiecare față diferă de medie prin vectorul Φi = Γi – Ψ. Un exemplu de set de test este arătat în Figura 1b. Acest set de vectori foarte mari este mai apoi subiectul analizei componentei principale, care caută un set de M vectori orto-normali, un, care descrie cel mai bine distribuția datelor. Vectorul k, uk, este ales în așa fel încât
este un maxim, subiect al
Vectorii uk și scalarii λk sunt eigen-vectorii și valorile eigen, ale matricei de covarianță
unde matricea A = [ Φ1 Φ2 . . . ΦM ]. Matricea C, însă, este N2 x N2, și determinarea celor N2 eigen-vectori și valori este o sarcină specifică mărimilor imaginilor. Este nevoie de o metodă de calcul ușor implementabilă pentru a găsi acești eigen-vectori.
Dacă numărul punctelor de date din spațiul de imagine este mai mic decât dimensiunea spațiului ( M < N2 ), atunci vor fi doar M – 1, în loc de N2, eigen-vectori utilizabili ( ceilalți vectori care rămân vor avea valoarea zero). Se rezolvă în continuare pentru cei N2 eigen-vectori dimensionali din acest caz, calculând inițial eigen-vectorii unei matrici M x M.
În urma acestei analize, se va construi matricea M x M, L = ATA, unde Lmn = ΦmT x Φn, și se vor găsi vectorii eigen, vl, ai matricei L. Acești vectori determină combinațiile liniare ale setului de imagini test M pentru a forma eigenfaces ul.
Cu această analiză, calculele sunt reduse foarte mult, de la ordinea numărului de pixeli din imagini (N2) la numarul de imagini din setul test (M). În practică, setul test de imagini faciale va fi relativ mic ( M « N2 , și calculele devin realizabile. Valorile eigen asociate permit ierarhizarea vectorilor eigen în funcție de utilitatea acestora în caracterizarea variației din cadrul imaginilor. Figura 2 afișează șapte eigenfaces derivate din imaginile încărcate de la Figura 1.
Figura 2. Rezultate finale, eigenfaces
Analiza de mai sus presupune că imaginea este centrată și de aceeași mărime ca imaginile din setul test și fețele eigen. Este nevoie în continuare de o modalitate de localizare a fețelor dintr-un cadru pentru a face recunoașterea.
Oamenii se mișcă în mod constant. Chiar și atunci când stau jos, își ajustează poziția corpului, își mișcă picioarele, se uită în împrejurimi și altele. În cazul unei singure persoane care se mișcă într-un mediu static, un simplu algoritm de detectare a mișcării și urmărire, ca în Figura 3, va localiza și urmări poziția capului. O filtrare spațio-temporală simplă ( de exemplu, diferențierea cadrelor ) accentuează locațiile din imagine care se schimbă cu trecerea timpului, deci o persoană în mișcare „se iluminează” în imaginea filtrată. Dacă imaginea se iluminează, mișcarea este detectată și prezența unei persoane este confirmată.
Figura 3. Algoritm detectare mișcare și urmărire
După segmentarea imaginii filtrate pentru a produce o imagine de mișcare binară, se analizează obiectele binare mari de mișcare în timp, pentru a decide dacă mișcarea este cauzată de persoană care se deplasează și se determină poziția capului. Câteva reguli simple se aplică, cum ar fi „capul este obiectul binar mai mic deasupra unui obiect binar mare (corpul)”, și „mișcarea capului trebuie să fie înceată și în apropiere” (nu este de așteptat ca un cap să se miște radical în cadrul secvenței).
Imaginea mișcării permite totodată o estimare a scalei. Mărimea obiectului binar care se presupune că este capul în mișcare determină mărimea subimaginii care se trimite la stadiul recunoașterii. Această subimagine este rescalată pentru a se potrivi cu dimensiunile eigenface.
2.2.Metoda potrivirii graficelor mănunchi elastic
Acest sistem are un nucleu important al structurii care reflectă faptul că imaginile obiectelor coerente tind să se transpună, scaleze, roti, și deforma în planul imaginii. Reprezentarea de bază a acestor obiecte este graficul etichetat; marginile sunt etichetate cu informații despre distanță și nodurile sunt etichetate cu răspunsuri miniundă incluse la nivel local în jet-uri. Grafice modele stocate pot fi adaptate la noi imagini pentru a genera grafice de imagine, care pot fi apoi încorporate într-o galerie și să devină modele grafice. Miniundele așa cum sunt folosite sunt robuste la moderate modificări de iluminare și schimbări mici și deformări. Graficele de modele pot fi ușor traduse, scalate, orientate, sau deformate în timpul procesului de potrivire, compensând astfel pentru o mare parte din varianța imaginilor. Din păcate, având o singură imagine pentru fiecare persoană în galerii nu oferă informații suficiente pentru a se accentua asupra rotației în profunzime. Cu toate acestea rezultatele asupra recunoașterii sunt acceptabile și se axează pe imagini în diferite posturi.
Această structură generală este utilă pentru manipularea oricărui tip de obiect coerent și poate fi suficientă pentru o discriminare între diferite tipuri de obiecte structurale. Cu toate acestea, pentru discriminarea obiectelor din aceeași clasă, între care se află recunoașterea facială, este necesar să se dispună de informații specifice structurii comune tuturor obiectelor din clasă. Acest lucru este crucial pentru extragerea acelor trăsături structurale din imagine, care sunt importante pentru discriminare („să știe unde să caute și asupra a ce să focalizeze atenția”). În acest sistem, informații de clasa specifice au forma unui buchet de grafice, câte unul pentru fiecare postură, care sunt stive de un număr moderat de fețe diferite, cu jet de eșantion într-un set adecvat de puncte de reper (plasat peste ochi, gură, contur, etc.). Graficele buchet sunt tratate ca entități combinatorii în care, pentru fiecare punct de referință, un jet de la o față eșantion diferită poate fi selectat, creând astfel un model extrem de adaptabil. Acest model este potrivit pentru noi imagini faciale pentru a găsi fiabil punctele de reper în imagine. Jeturile la aceste puncte și poziția lor relativă sunt extrase și sunt combinate într-un grafic de imagine, o reprezentare a feței care nu are nici o variație rămasă din cauza dimensiunii, poziției (sau orientării în plan).
Un grafic buchet este creat în două etape. Structura sa calitativă ca un grafic (un set de noduri plus marginile), precum și atribuirea de etichete corespunzătoare (jeturi și distanțe) pentru o imagine inițială sunt furnizate de proiectant, în timp ce cea mai mare parte a graficului buchet este extras semi-automat de la imagini eșantion prin potrivire cu graficul buchet inițial, intervenind din ce în ce mai puțin pentru a corecta punctele de reper identificate incorect. Graficele de imagine sunt destul de robuste pentru mici rotații în profunzime ale capului. Unghiurile de rotație mai mari, de exemplu diferite ipostaze, sunt manipulate cu ajutorul graficelor buchet cu o structură de grafic diferită și corespondențe între noduri în diferite ipostaze.
După aceste pregătiri sistemul poate extrage de la imagini simple descrieri ale feței concise și invariante în forma graficelor de imagine (denumite grafice de model atunci când fac parte dintr-o galerie). Ele conțin toate informațiile relevante pentru sarcina discriminării faciale. În scopul recunoașterii, graficele de imagine pot fi comparate cu graficele de modele la un cost de calcul mic prin evaluarea similitudinii jet-ului mediu.
În concluzie, sistem se bazează la maxim pe o structură generală a datelor – grafice etichetate cu răspunsurile miniundelor – și proprietățile generale de transformare. Acestea sunt furnizate, dar din cauza generalității și simplității lor efortul necesar este minim.
Prezentarea algoritmului de reprezentare a fețelor
Pentru fețe, se definește un set de puncte de reper, de exemplu, pupilele, colțurile gurii, vârful nasului, partea de jos și de sus a urechilor, etc. Un graf etichetat G care reprezintă o față este format din N noduri pe aceste puncte de reper, în pozițiile n, n = 1, …, N și E margini între ele. Nodurile sunt etichetate cu jeturi Jn. Marginile sunt etichetate cu distanțele Δe = n – n1, e = 1, . . .,E : unde marginea e conectează nodul n1 cu n. Prin urmare, etichetele de margine sunt vectori bidimensionale. (Dacă ne referim la structura geometrică a unui grafic, neetichetată de jeturi, o numim grilă.) Acest grafic al feței este adaptată pe obiect, deoarece nodurile sunt selectate dintre punctele-față specifice (punctele de reper) , exemplificare în figura 4.
Graficele pentru diferitele posturi ale capului diferă în geometrie și caracteristici locale. Deși punctele de reper se referă la locurile obiectelor corespunzătoare, unele pot fi omise, și jeturile de altfel după cum distanțele variază datorită rotației în adâncime. Pentru a putea compara graficele cu diferite ipostaze, se definesc manual indici pentru a asocia nodurile corespunzătoare cu diferite grafice.
Figura 4. Grile folosite în detecție și recunoaștere facială.
Pentru a găsi puncte de reper în fețe noi, este nevoie de o reprezentare generală, mai degrabă decât modele ale chipurilor individuale. Această reprezentare ar trebui să acopere o gamă largă de posibile variații în apariția fețelor, cum ar fi ochii în formă diferită, guri sau nasuri, diferite tipuri de barbă, variații cauzate de sex, vârstă, rasă, etc. Este evident că ar fi prea scump pentru a acoperi fiecare combinație de caracteristici cu un grafic separat. Se combină în schimb un set reprezentativ de modele grafice individuale într-o structură de tip grămadă, numită un grafic mănunchi față (Face Bunch Graph); a se vedea figura 5. Fiecare model are aceeași structură de tip grilă și nodurile se referă la puncte de reper identice. Un set de jeturi care se referă la un punct de referință este numit un mănunchi. Un mănunchi de ochi, de exemplu, poate include jeturi de la ochi închiși, deschiși, bărbătești, femeiești, etc., pentru a acoperi aceste variații locale. În timpul localizării punctelor de reper într-un chip care nu a fost văzut înainte, procedura selectează în continuare cel mai bun jet de potrivire, numit „expertul local”, din mănunchiul dedicat fiecărui punct de reper. Astfel, combinația completă de jeturi în graficul mănunchi este disponibilă, acoperind o gamă mult mai largă de variații faciale decât sunt reprezentate în modelul constitutiv grafic.
Figura 5. Grafic mănunchi față
Scopul Potrivirii Graficelor Mănunchi Elastic (EBGM) pe o imagine sondă este de a găsi punctele de reper și, astfel, să extragă de la imagine un grafic care maximizează sirnilaritatea cu graficul mănunchi față. În practică, trebuie să se aplice un algoritm euristic pentru a se veni mai aproape de optim într-un timp rezonabil. Se folosește un brut pentru o abordare mai fină în care se introduc gradele de libertate a FBG progresiv: translatare, scalare, raport de aspect, și în cele din urmă distorsiuni locale. Programul de potrivire descris aici își asumă fețe în posturi cunoscute și dimensiuni aproximativ standarde, astfel încât este nevoie de un singur FBG.
Pasul 1: Găsirea poziției feței aproximative. Condensarea FGB într-un grafic de medie, cu luarea mărimilor medii ale jeturilor în fiecare mănunchi al FBG (sau, alternativ, selectarea unui grafic arbitrar ca reprezentativ). Utilizarea acestui lucru ca un model rigid (λ = ∞) și evaluarea asemănării sale la fiecare locație a unui grilaj pătrat, cu o spațiere de 4 pixeli. La această etapă funcția similitudine Sa fără fază este folosite în locul SΦ. Se repetă scanarea în jurul celei mai bune poziții cu o spațiere de 1 pixel. Cea mai bună poziție servește în cele din urmă ca punct de plecare pentru următorul pas.
Pasul 2: Rafinarea poziției și dimensiunii. La acest pas, FBG este folosit fără medie, variind în poziție și dimensiune. Se face verificarea celor patru pixeli de poziție diferiți (±3, ±3) mutați din poziția găsită la Pasul 1, și la fiecare poziție se verifică două dimensiuni diferite care au aceeași poziție centrală, un factor de 1,18 mai mic sau mai mare decât dimensiunea medie FBG . Acest lucru este fără efect asupra similitudinii metrice, deoarece vectorii sunt transformați corespunzător. Se păstrează λ = ∞. Pentru fiecare dintre aceste opt variații, cel mai bun jet pentru fiecare nod este selectat și se calculează deplasarea acestuia. Acest lucru se face cu o accentuare de 1, adică, deplasările pot fi de o magnitudine de până la opt pixeli. Grilele sunt apoi rescalate și repoziționate pentru a minimiza suma pătrată a deplasărilor. Se păstrează cele mai bune dintre cele opt variante ca punct de plecare pentru următorul pas.
Pasul 3: Rafinarea dimensiunii și găsirea raportului de aspect. Se aplică un proces de relaxare similar celui descris la pasul 2, dar relaxând dimensiunile x și y independent. În plus, accentul este crescut succesiv de la 1 la 5.
Pasul 4:. Distorsionare locală. Într-o secvență pseudo-aleatoare poziția fiecărui nod în parte a imaginii este modificată pentru a spori și mai mult asemănarea cu FBG. Acum similaritatea metrică este luată în considerare prin setarea λ = 2 și folosind vectorii obținuți la pasul 3. În acest pas se iau în considerare doar acele poziții pentru care vectorul estimat de deplasare este mic (d <1). Pentru această distorsiune locală accentul crește din nou de la 1 la 5.
Graficul care rezultă este numit graficul imagine și este stocat ca o reprezentare a feței individuale din imagine.
2.3.Metoda Viola-Jones
Paul Viola și Michael Jones prezentau, în anul 2001, un cadru nou, pentru detectarea obiectelor aleatorii din imagini, pe care l-au modificat pentru detecția fețelor. Algoritmul este cunoscut în zilele noastre drept metoda Viola-Jones și este unul dintre cei mai performanți, robuști și utilizați, reprezentând practic un punct de plecare în dezvoltarea aplicațiilor practice folosite detecția fețelor în timp real, cum este cazul acelor aplicații încorporate în camerele foto digitale.
Metoda Viola-Jones oferă o viteză remarcabilă de procesare și o rată foarte mare de acuratețe – cercetătorii au raportat o rată de fals-negative (nedetecție) de sub 1% și o rată de fals-pozitive de sub 40%, atunci când se utilizează doar cele mai simple filtre pentru computație. Metoda completă utilizează aproximativ, până la 38 de filtre sau clasificatoare.
Principala inovație adusă de Viola și Jones a fost aceea de a evita analizarea directă a imaginii în sine, ci doar a anumitor „caracteristici” dreptunghiulare din aceasta. Aceste caracteristici, inspirate, printr-o analogie cu analiza formelor de undă complexe din sistemul orto-normal de funcții Haar de bază, sunt cunoscute sub denumirea de „caracteristici de tip Haar”, după matematicianul ungur Alfred Haar.
Mai întâi, dacă imaginea de analizat este una color, aceasta este transformată într-una în nivele de gri, în care apar doar nivelele de strălucire / luminanță, informația de culoare fiind neglijată. Este important aici faptul că independența de culoare conferă metodei o mare generalitate. In practică se poate utiliza pentru fiecare pixel (x, y) al unei imagini, o relație de forma:
i(x, y) = 0,299 R(x, y) + 0,587 G(x, y) + 0,114 B(x, y),
unde valorile R, G, B reprezintă respectiv componentele de roșu, verde și albastru ale valorii acelui pixel (x, y) în spațiul RGB utilizat frecvent în reprezentarea digitală a imaginilor color, pe 3 sau 4 octeți (24 sau 32 de biți). Valorile sunt cuprinse între 0 și 255 (cât se poate reprezenta pe un octet).
Pe o imagine cu 256 de nivele de gri obținută în urma transformării, pot fi analizate caracteristici dreptunghiulare specifice prin însumarea valorilor intensităților pixelilor în diferite blocuri dreptunghiulare.
În acest mod, pot fi detectate în cadrul imaginii caracteristici formate din blocuri mai întunecate, poziționate în apropierea unor blocuri mai luminoase, suma pixelilor din primele fiind mai mică decât cea a pixelilor din cele din urmă. Trebuie precizat faptul că aceste caracteristici nu reprezintă totuși în niciun fel caracteristici/ trăsături faciale specifice.
Viola și Jones au definit mai multe tipuri de astfel de caracteristici, reprezentate prin câte douã, trei, sau patru blocuri dreptrmghiulare adiacente, cu tentă întunecatã și respectiv deschisă. În Figura 6 sunt reprezentate câteva dintre acestea.
Figura 6. Caracteristici definite de Viola și Jones
Trebuie precizat faptul că intr-o caracteristică, toate blocurile dreptunghiulare componente au fiecare aceeași formă și aceleași dimensiuni. Aceste caracteristici pot fi evaluate la orice scală sau poziție în imagine, cele reprezentate în Figura 6 având dimensiuni arbitrare, date doar ca exemplu. Acestor caracteristici le este asociată o valoare care este calculată ca diferența între suma pixelilor din regiunea de imagine delimitată de dreptunghiurile deschise, minus suma pixelilor din dreptunghiurile închise care compun caracteristica respectivă. Valoarea caracteristicii este apoi utilizată de un filtru pentru a determina dacă acea caracteristică este prezentă sau nu în imaginea originală. La prima vedere mecanismul descris mai sus dă impresia că ar fi destul de costisitor din punct de vedere computațional, adică destul de lent. O a doua inovație spectaculoasă și importantă adusă de metoda Viola-Jones constă intr-o optimizare computațională ingenioasă, pentru îmbunătățirea vitezei de sumare a intensităților pixelilor din blocurile dreptunghiulare componente ale caracteristicilor definite.
Astfel, pentru fiecare imagine originală de analizat se generează inițial o așa numită „imagine integrală”, mapată 1 la l peste imaginea originală, în care fiecare punct capătă valoarea sumei tuturor pixelilor din imaginea originală situați la stânga și deasupra coordonatelor punctului respectiv, inclusiv.
Valorile tuturor punctelor ii(x, y) din imaginea integrală pot fi calculate cu o singură trecere prin imaginea inițială, pornind din colțul din stânga-sus (x = 0 și y = 0), pixel cu pixel, linie după linie, de sus în jos.
Fie, pentru oricare linie y din imaginea originală:
s(x, y) = s(x-1, y) + i(X, Y). cu convenția: s(-1, y) = 0,
suma curnulativă a valorilor tuturor pixelilor i(x, y) din linia y până în poziția x inclusiv.
Valoarea oricărui punct (X, y) din imaginea integrală poate fi calculată ca:
ii(x, y) = ii(x, y-1) + s(x, y), cu convenția: ii(x, -l) = 0.
Termenul „integrală” are aceiași senmificație ca în definirea matematică a unei integrale, respectiv aria de sub o curbă, obținută prin surnarea unor arii dreptunghiulare elementare.
Odată calculată imaginea integrală pentru fiecare punct corespunzător din imaginea originală, suma intensităților pixelilor din oricare dreptunghi arbitrar din aceasta din urmă poate fi calculată cu ușurință. Astfel, pentru calcularea sumei tuturor pixelilor din dreptunghiul abcd din imaginea originală (Figura 7), pot fi utilizate numai valorile punctelor a, b, c și d corespondente din imaginea integrală, efectuându-se numai trei operații simple (două scăderi și o adunare) între acestea, astfel:
Sabcd = iia – iib – iid + iic.
Astfel pot fi calculate extrem de eficient din punct de vedere computațional valorile asociate caracteristicilor definite, la orice scală și în orice poziție în imaginea originală. Prin comparație cu analiza directă a intensității pixelilor, caracteristicile oferă o vedere mai grosieră, în rezoluție scăzută, a imaginii, fiind potrivite pentru caracterizarea unor particularități locale în imagine prin detectarea limitelor între regiuni luminoase și înttmecoase, dtmgi / bare și alte structuri simple.
Ulterior, Viola și Jones au implementat un sistem de antrenare / învățare. Au utilizat ca input pentru rutina de detecție a fețelor un set de imagini de 24 x 24 de pixeli conținând fețe și un alt set de astfel de imagini de 24 x 24 pixeli care nu conțineau fețe și au antrenat rutina să rectmoască fețele și să elimine non-fețele. Au fost utilizate aproape 5.000 (circa 4.900) de astfel de exemple conținând fețe și 10.000 de exemple de non-fețe, colectate arbitrar de pe Internet.
Utilizând 24 x 24, există circa 45.000 de rnoduri diferite de a plasa una dintre cele patru tipuri de caracteristici prezentate în Figura 6 pe o astfel de imagine (sau peste 160.000 în cazul tuturor tipurilor de caracteristici definite de Viola și Jones). De exemplu, pentru primul tip de caracteristică, pot fi considerate dreptunghiuri de 1 x 2 pixeli, până la 1 x 24, apoi 2 x 2 până la 2 x 24 și așa mai departe. Aceste caracteristici de diverse dimensiuni pot fi plasate în poziții diferite pe imagine astfel încât să fie testate toate caracteristicile posibile, de toate dimensiunile posibile, în fiecare poziție posibilă.
Se poate observa imediat că numărul caracteristicilor posibile, de circa 45.000 (sau 160.000), este de departe mai mare ca numărul de pixeli dirrtr-o imagine 24 x 24, respectiv 576, deci este evident că trebuie redus cumva numărul celor care sunt utilizate. Să ne amintim că pentru fiecare caracteristică se calculează diferența între sumele pixelilor din regiunile deschise și respectiv închise ale acesteia. Se poate stabili rm prag pentru aceste diferențe (care poate fi ajustat îrr timpul antrenării) pe baza căruia o caracteristică să fie considerată ca detectată sau nu. Utilizându-se acesta, se aplică fiecare dintre cele 45.000 (respectiv 160.000) de caracteristici posibile la setul de învățare.
S-a dovedit însă, că anumite caracteristici nu sunt utile în determinarea faptului că o imagine reprezintă o figură sau nu, respectiv că nu există nicio corelație în modul în care o caracteristică identifică o față și respectiv nu o identifică și reciproc. La aceste caracteristici s-a renunțat. Pe de altă parte, alte caracteristici s-au dovedit a avea o rată de succes mare în eliminarea subferestrelor de tip non-față și aici intervine practic învățarea.
Viola și Jones au făcut o serie de experimente cu caracteristicile rămase pentru a determina cea mai bună metodă de utilizare a acestora pentru clasificarea unei imagini ca față sau non-față. În cele din urmă au decis să utilizeze o variantă a unui sistem de învățare automată (machine learning) denumit AdaBoost (de la Adaptive Boosting), pentru a construi un clasificator. AdaBoost este o tehnică de Inteligența Artificială (I.A.) similară rețelelor neuronale, un meta-algoritm adaptiv formulat inițial de Zoav Freund și Robert Schapire, dezvoltat pentru a combina caracteristici slabe intr-un clasificator mai puternic. Fiecărei caracteristici dintr-un clasificator îi este atașată o pondere (ajustată în timpul învățării) care definește precizia clasificatorului. Ponderi mici inseamnă caracteristici slabe, în timp ce ponderi mari sunt asociate cu caracteristici puternice. Dacă suma ponderilor caracteristicilor care au răspuns pozitiv pe o anumită imagine depășește un anumit prag (ajustabil de asemenea în timpul învățării), se decide că imaginea respectivă este o față. Un alt element important care trebuie subliniat este acela că Viola și Jones au utilizat AclaBoost nu numai pentru antrenarea clasificatorului, dar și pentru selectarea unui număr considerabil mai mic dintre toate caracteristicile inițial definite, care să fie utilizate în cele din urmă. Viola și Jones au constatat in cursul învățărilor că există două caracteristici care, combinate și ajustate corespunzător de AdaBoost într-un singur clasificator, pot recunoaște 100% fețele, cu o rată a fals-pozitivelor de 40% (respectiv, 60% dintre non-fețe sunt rejectate de acest clasificator). În Figura 8 este prezentat sugestiv acest tip simplu de clasificator în acțiune. El utilizează două caracteristici pentru a testa imaginea: o caracteristică orizontala, care măsoară diferența între regiunea mai întunecată a ochilor și cea mai luminată a pomeților obrajilor și caracteristica cu trei dreptunghiuri verticale, care testează regiunile mai întunecate ale ochilor cu regiunea mai luminoasă a șeii nazale.
Figura 8. Clasificatorul în lucru pe o imagine 24 x 24
Astfel, cu toate că inițial s-au străduit să implementeze un clasificator puternic prin combinarea a circa 200 de clasificatoare slabe, acest succes timpuriu i-a determinat ca în cele din urmă să construiască mai degrabă o cascadă de clasificatoare cu două clase fiecare, sub forma unui arbore de decizie degenerat, în locul unui singur clasificator uriaș- Această cascadă de filtre, denumită „cascada atențională” (Figura 9), reprezintă cea de-a treia inovație semnificativă introdusă de metoda Viola-Jones. Fiecare subfereastră a imaginii originale este testată cu primul clasificator – dacă trece de acesta, este testată cu al doilea – dacă trece și de acesta, este testată cu al treilea și așa mai departe- dacă nu trece de un anumit nivel, subfereastra este rejectată ca posibilă față la nivelul respectiv – numai dacă trece de toate filtrele din cascadă, atunci este clasificată ca fiind o față. Ce este interesant, este că cel de-al doilea clasificator și următorii nu (mai) sunt antrenați pe întregul set de învățare, ci numai pe acele imagini care nu au fost rejectate de clasificatorii anteriori din lanț. În același timp, subferestrele fals-pozitive scăpate de primele niveluri sunt oferite ca exemple de învățare de non-fețe nivelurilor următoare. Al doilea clasificator și următorii sunt mai complecși și au mai multe caracteristici decât primul și prin urmare sunt și mai mari consumatori de timp computațional. Este cu atât mai remarcabil faptul că există un astfel de clasificator simplu care să elimine atât de multe subferestre fără a necesita efectuarea calculelor necesare clasificatorilor mai complecși. Pe de altă parte, este mult mai probabil ca imagini aleatoare să nu conțină efectiv o față, sau ca regiunile conținând fețe în acestea să fie relativ puține, iar faptul că majoritatea subferestrelor pot fi eliminate ca posibili candidați cu efort computațional extrem de redus este un lucru benefic.
Figura 9. Cascada clasificatorilor utilizați de Viola-Jones
În cele din urmă, Viola și Jones au utilizat 38 de niveluri pentru cascada de clasificatori, utilizându-se în primele 5 dintre acestea, respectiv, câte 2, 10, 25, 25 și 50 de caracteristici, iar în total, pentru toate nivelurile, numărul acestora fiind de 6060. Numărul de caracteristici pentru fiecare nivel a fost stabilit empiric, prin încercare și eroare, pentru primele niveluri. Criteriul a fost minimizarea fals-pozitrvelor până sub un anumit prag pentru fiecare nivel, concomitent cu menținerea unei rate înalte a recunoașterilor corecte (rată foarte scăzută a fals-negativelor). Au fost adăugate caracteristici fiecărui nivel, în etape, până când criteriile de performanță propuse la nivelul respectiv au fost atinse. Clasificatoarele de pe primele niveluri sunt mai simple și asigură eliminarea foarte rapidă a unui număr mare de subferestre de tip non-față. Astfel, primul clasificator din cascadă utilizează cele două caracteristici descrise mai sus și elimină peste 50% dintre non-fețe, iar următorul, utilizând alte 10 caracteristici, elimină peste 80% dintre non-fețe.
Pentru învățare s-au utilizat 4.916 exemple de fețe descărcate aleator de pe Internet, decupate și aliniate grosier (manual) și scalate la 24 x 24 de pixeli. În procesul de învățare au fost utilizate ca exemple de fețe și imaginile în oglindă ale acestora față de axa centrală verticală, deci un total de 9.832 de imagini. Exemplele de non-fețe au fost selectate ca subferestre din alte peste 9.500 de imagini aleatoare, de asemenea descărcate de pe internet și verificate manual că nu conțin fețe. Numărul acestor subferestre este de circa 350.000.000, dar numai câte maximum 10.000 au fost utilizate pentru antrenarea fiecărui clasificator din cascadă. Trebuie precizat că este vorba de o învățare adaptivă. Dacă pentru primul nivel s-au utilizat subferestre din cele peste 9.500 de imagini non-fețe, pentru nivelurile următoare s-au utilizat subferestrele de tip non-față obținute din fals-pozitivele date de nivelurile anterioare. Întregul proces de învățare a durat mai multe săptămâni. Nu mai vorbim despre durata experimentărilor pentru alegerea caracteristicilor, a tipului de clasificator, pentru ajustarea ponderilor ș.a.m.d. Se poate concluziona că este vorba despre o metodă care a presupus o primă etapă extrem de laborioasă, din categoria celor în care învățarea este lentă, dar detecția este foarte rapidă. În final, când se analizează o imagine curentă, detectorul de fețe scanează imaginea completă prin subferestre la mai multe scale și cu mai multe poziționări pentru fiecare scală. Cercetătorii au stabilit că utilizarea unui factor de 1,25 de la o scalare a subferestrei la alta a produs cele mai bune rezultate. Totodată s-a mai constatat că nu este necesar să se testeze neapărat fiecare locație în parte. Chiar dacă se sar câțiva pixeli de fiecare dată la translatarea / glisarea subferestrei de analizat, rezultatele bune nu sunt afectate.
Toate aceste observații empirice au permis o mai mare optimizare și o îmbunătățire suplimentară a vitezei de calcul. Ulterior, pentru a face mai bine față situațiilor în care figurile nu apar frontal în imagini, atât Jones și Viola cât și alți cercetători, cum ar fi Lenhart și Maydt au continuat să aducă îmbunătățiri prin extinderea setului de caracteristici utilizate, introducând filtre diagonale sau caracteristici rotite cu 45 de grade, dar au mai existat și alte nenumărate contribuții care au adus completări și îmbunătățiri punctuale metodei.
În biblioteca de funcții de vedere artificială (Computer Vision) dezvoltată și menținută (inițial) de Intel, OpenCV, open source, disponibilă liber pentru mai multe platforme, există o implementare a metodei Viola-Jones ce poate fi direct utilizată prin includere a funcțiilor și structurilor respective în diverse aplicații.
2.4.Metoda analizei componentei independente (ICA)
Analiza Componentei Independente constă în statistici de ordin superior și identifică componentele sursă independentă după amestecurile liniare acestora (cele observabile). ICA oferă astfel o reprezentare a datelor mult mai puternică decât PCA, după cum obiectivul său este acela de a oferi un independent decât o reprezentare și decompunere non-corelată a imaginii.
Analiza Componentei Independente a unui vector aleator caută o transformare liniară care minimizează dependența statistică între componentele sale. În particular, fie X N un vector aleator reprezentând o imagine, unde N este dimensionalitatea spațiului imagine. Vectorul este format prin concatenarea rândurilor sau coloanelor imaginii care pot fi normalizate pentru a avea o normă unitară și/sau o histogramă egalizată. Matricea de covarianță a lui X este definită ca
unde E(.) este operatorul de așteptanță, t denotă operația transpunerii, și
NxN. ICA matricei X factorizează matricea de covarianță în forma următoare
unde Δ este diagonală reală pozitivă și F transformă datele originale X în Z
astfel încât componentele noului Z de date sunt independente sau „cele mai independent posibil”.
Pentru a deriva transformata F a ICA, Comon a dezvoltat un algoritm care constă în trei operații: de albire, de rotație, și normalizare. În primul rând, operațiunea de albire transformă un vector aleator X într-un altul U care are o matrice unitate de covarianță.
unde Φ și Λ sunt derivate din rezolvarea ecuației următoare de tip eigen-valoare .
unde Φ = [Φ1, Φ2,…, ΦN] este o matrice ortonormată eigenvector și Λ = diag{λ1, λ2,…, λN} este o matrice diagonală eigen-valoare a Se constată că albirea, o componentă a ICA integrală, contracarează faptul că Eroare Medie Pătratică (MSE) cântărește preferențial frecvențele joase. Operațiunile de rotație, efectuează apoi separația sursei (pentru a obține componente independente), prin minimizarea informației reciproce aproximată, folosind cumulanți ordin superior. În cele din urmă, operațiunea de normalizare derivă componente unice, independente din punct de vedere al orientării, unității de normă, și ordinea de proiecții.
2.5.Metoda analizei discriminantului liniar pentru imagini faciale
Ca modele bidimensionale foarte structurate, imaginile faciale ale oamenilor pot fi analizate în domeniile spațial și de frecvență. Aceste modele sunt compuse din componente care pot fi ușor recunoscute la un nivel ridicat, dar sunt slab definite la niveluri scăzute ale sistemului nostru vizual. Fiecare dintre componentele faciale (caracteristici) are o putere de discriminare diferită pentru identificarea unei persoane sau a sexului, rasei, și vârstei. Au fost multe studii bazate pe semnificația unor astfel de caracteristici care utilizau experimente subiective psiho-vizuale.
Folosind măsuri obiective, în această secțiune voi prezenta un sistem de calcul pentru evaluarea importanței atributelor faciale difierite în ceea ce privește potențialul lor de discriminare . Rezultatele acestei analize pot fi sprijinite de constatări psiho-vizuale subiective. Pentru a analiza orice reprezentare V, unde V poate fi imaginea originală, segmentele sale spațiale, sau imaginile transformate, se propune următorul cadru de lucru.
În primul rând, este nevoie de un set de testare compus dintr-un grup relativ mare de subiecți cu diverse caracteristici faciale. Selecția adecvată a setului de test determină în mod direct validitatea rezultatelor finale. Baza de date trebuie să conțină mai multe exemple de imagini faciale pentru fiecare subiect din setul de test și cel puțin un exemplu în acest set de testare. Aceste exemple ar trebui să reprezinte diferite vizualizări frontale ale subiecților cu variații minore în unghiul de vizualizare. Acestea ar trebui să includă, de asemenea, diferite expresii faciale, condiții de iluminare și fundal diferite, și exemple cu și fără ochelari. Se presupune că toate imaginile sunt deja standardizate la matricile m x n și că acestea conțin numai regiunile de față și nu prea mult din corpurile subiecților.
În al doilea rând, pentru fiecare imagine și sub-imagine, începând cu matricea bidimensională m x n de valori de intensitate I (x, y), se va construi expansiunea lexicografică a vectorului ϕ ℝm x n. Acest vector corespunde reprezentării inițiale a feței. Astfel, setul cu toate fețele din spațiul caracteristicilor este tratat ca un spațiu vectorial multi-dimensional.
În al treilea rând, prin definirea tuturor instanțelor cu fața aceleiași persoane ca fiind într-o singură clasă și fețele diferiților subiecți ca fiind în clase diferite pentru toți subiecții din setul de test, se va stabili un cadru de lucru pentru efectuarea unei analize a separării acumulării în spațiul caracteristicilor. De asemenea, având etichetate toate instanțele din setul de test și având definite toate clasele, vom calcula matricele claselor de împrăștiere din și dintre, după cum urmează:
Aici Sw este matricea de dispersie din clasă arătând dispersia medie , a vectorilor de probă (V) din diferite clase Ci, în jurul mediilor lor respective, vectorii μi,
În mod similar, Sb este matricea de împrăștiere dintre clase, reprezentând difuzia de mediei condiționate, vectorii (μi) în jurul valorii medie a vectorului μ.
PrCi este probabilitatea din clasa i. Puterea discriminatorie a unei reprezentări poate fi cuantificată prin utilizarea diferitelor măsurători. În această prezentare se va folosi matricea de separare, care arată o combinare a claselor de împrăștiere din și dintre punctele de caracteristică în spațiul de reprezentare. Matricea de separare de clasă și o măsură de separabilitate poate fi calculată ca
JV este măsura puterii de discriminare (DP), a unei reprezentări date V. După cum s-a menționat mai sus, reprezentarea poate corespunde datelor în forma lor originală (de exemplu, o imagine în tonuri de gri), sau se poate baza pe un set de caracteristici abstracte calculate pentru o anumită sarcină.
De exemplu, prin această analiză, se pot compara diferitele segmente spațiale ale unei fețe. Se poate aplica analiza de segmente ale imaginilor faciale, cum ar fi zonele din jurul ochilor, gurii, părului, și bărbiei sau combinații ale acestora. Figura 10 prezintă o analiză de separare pentru segmentele orizontale ale imaginilor faciale din baza de date. Rezultatele arată că puterile de discriminare a tuturor segmentelor sunt comparabile și că zona dintre nas și gură are mai multe informații de identificare decât alte părți.
Figura 10. Analiza de separare pentru segmente orizontale
Figura 11 arată că PD a întregii imagini este semnificativ mai mare decât cea a DP a părților sale.
Figura 11. Analiza de separare a segmentelor verticale
Folosind transformatele miniundă ca reprezentări ortogonale multi-scalare de imagini faciale, se poate efectua, de asemenea, o analiză comparativă a puterii de discriminare a sub-imaginilor în domeniul miniundă. Diferitele componente ale unei miniunde decompuse capturează diferite aspecte vizuale pe o scală de gri. După cum este prezentat în figura 12, la fiecare nivel al descompunerii există patru sub-imagini ortogonale corespunzătoare
LL: variațiile de frecvență joasă, netezite
LH:. schimbări fine în direcția orizontală, de exemplu, margini verticale
HL: modificări fine în direcția verticală, de exemplu, marginile orizontale
HH: modificări fine în direcții non-orizontale, non-verticale, de exemplu, alte margini
Figura 12. Cele 4 sub-imagini ortogonale corespunzătoare
Se aplică LDA pentru fiecare sub-imagine a transformatei miniundă (WT) a feței și a se estimează DP a fiecărei sub-benzi. Figura 12 compară separările obținute prin utilizarea fiecăreia dintre sub-benzile. În ciuda dimensiunilor lor egale, diferite sub-imagini au cantități diferite de informații pentru clasificare; componentele cu rezoluție scăzută sunt cele mai informative. Modelele marginilor orizontale sunt aproape la fel de importante ca și modelele marginilor verticale, și importanța lor relativă depinde scală. În cele din urmă, componenta cea mai puțin importantă din punct de vedere al discriminării feței este a patra sub-bandă, de exemplu, modelele marginilor înclinate. Se poate aplica, de asemenea, această idee la studiul importanței componentelor faciale pentru clasificarea sexului sau a rasei din imagini.
2.6.Detecția și recunoșterea bazate pe componente
Detectorul bazat pe componente detectează fața într-o imagine aleasă și extrage componentele faciale care sunt folosite mai târziu pentru a recunoaște fața. Arhitectura sistemului este prezentată schematic în anexa 2. Primul nivel este format din paisprezece clasificatori independenți de componente (Mașini de Vectori Suport liniare). Fiecare clasificator de componente a fost antrenat pe un set de componente faciale extrase și pe un set de modele non-față selectate aleatoriu. Componentele ar putea fi extrase automat din imaginile sintetice având corespondențele 3D complete între modelele faciale cunoscute. Figura 13 prezintă exemplul celor paisprezece componente pentru trei imagini de test. La al doilea nivel, rezultatele maxime continue ale clasificatorilor de componente în cadrul regiunilor de căutare dreptunghiulare din jurul pozițiilor estimate ale componentelor au fost utilizate ca intrări pentru un clasificator de combinări (SVM liniar), care a executat detecția finală a feței.
Figura 13. Exemplul celor 14 componente extrase din două imagini
Programul de recunoaștere bazat pe componente utilizează rezultatele detectorului facial, sub formă de componente extrase. În primul rând, fețe sintetice au fost generate la o rezoluție de 58 x 58 pentru cele șase subiecte de redare a modelelor 3D faciale sub diferite posturi și iluminare. În mod specific, fețele au fost rotite în profunzime de la 0° la 34° în trepte de 2° și redate cu două modele de iluminare la fiecare postură. Primul model a constat doar din lumină ambientală. Al doilea model a inclus lumină ambientală și o sursă de lumină direcționată, care a fost îndreptată spre centrul feței și poziționată între -90° și 90° în azimut și 0° și 75° în elevație. Poziția unghiulară a luminii direcționate a fost majorată cu 15° în ambele direcții.
Figura 14. Imagini sintetice de testare
Din cele paisprezece componente extrase de către detectorul de față, doar nouă componente au fost folosite pentru recunoașterea feței. Cinci componente au fost eliminate, deoarece acestea s-au suprapus puternic cu alte componente sau conțineau câteva structuri de valoare gri (de exemplu, obrajii). Figura 16 prezintă compunerea celor nouă componente extrase folosite pentru recunoașterea feței pentru câteva exemple de imagini. În plus, a fost adăugată o regiune interioară facială histogram-egalizată pentru a îmbunătăți recunoașterea. Câteva exemple ale acestei regiuni față interioară sunt prezentate în figura 15.
Figura 15. Regiunea facială interioară, adăugată ca fiind a 10-a componentă
Figura 16. Compunerea celor 9 componente reținute pentru recunoașterea facială
Detectorul facial bazat pe componente a fost aplicat la fiecare imagine facială sintetică (vezi Figura 14) din setul de test pentru a detecta componentele și, prin urmare regiunea facială. Egalizarea histogramei a fost apoi preformată pe caseta de încadrare din jurul componentelor. Valorile pixelilor gri ai fiecărei componente au fost apoi luate din imaginea egalizată-histogramă și combinate într-un singur vector de trăsături. Vectorii de trăsături au fost construiți pentru fiecare persoană, și clasificatorii corespunzători au fost instruiți.
Un sistem de recunoaștere facială, format din clasificatori SVM polinomiali de gradul 2, a fost instruit cu privire la acești vectori de trăsături într-o abordare unul vs. toți. Cu alte cuvinte, o SVM a fost instruită pentru fiecare subiect din baza de date pentru a-l/a o separa de toți celelalți subiecți. Pentru a stabili identitatea unei persoane în timpul rulării, s-au comparat rezultatele normalizate ale clasificatorilor SVM, adică distanțele la hiperplanuri în spațiul caracteristicilor. Identitatea asociată cu clasificatorul facial cu cele mai bune rezultate normalizate a fost considerată ca fiind identitatea feței.
2.7.Modelarea și recunoașterea facială
Abordările statistice pentru modelarea facială au devenit foarte populare, datorită muncii depuse de Turk și Pentland în dezvoltarea eigenface-urilor în 1991. În abordarea statistică, aspectul bidimensional al unei imagini faciale este tratat ca un vector prin scanarea imaginii în ordine lexicografică, cu dimensiunea vectorului fiind numărul de pixeli din imagine. În abordarea eigenface, toate imaginile faciale sunt compuse dintr-un subspațiu facial distinctiv. Acest subspațiu este liniar și calibrat de către vectorii eigen ai matricei covarianță găsită în urma aplicării Analizei Componentei Principale. De obicei păstrăm numărul de vectori eigen mult mai mic decât adevărata dimensiune a spațiului vectorial. Sarcina recunoașterii faciale este apoi de a găsi cea mai bună potrivire din acest subspațiu. Cu toate acestea, PCA este posibil să nu fie cea mai eficientă în ceea ce privește acuratețea recunoașterii, dat fiind faptul că subspațiul facial nu capturează și discriminanții dintre oameni.
Acest lucru motivează utilizarea LDA (Analiza Discriminantului Liniar) și variantele sale. În LDA, subspațiul liniar este construit, în așa natură încat clasa interioară difuzată este minimizată iar clasa de legătură difuzată este maximizată. Această idee este generalizată și mai mult în abordarea numită recunoașterea Bayesiană a feței, unde spațiul intra-personal (IPS) și spațiul extra-personal (EPS) sunt utilizate în locul măsurătorilor celor două clase de difuziune. Spațiul intra-personal modelează variațiile din aspectul aceleiași persoane iar spațiul extra-personal modelează variațiile din aspect pe baza diferențelor de identitate. Densitatea subspațiului probabilistică este apoi montată pe fiecare spațiu. Rețelele neuronale au fost, de asemenea, frecvent utilizate pentru recunoașterea feței. În algoritmul de maximizare a așteptanței, fața este reprezentată ca un grafic etichetat, în care fiecare nod este etichetat cu jeturi derivate din răspunsurile obținute prin convoluția imaginii cu o familie de funcții Gabor. Marginea caracterizează distanța geometrică între două noduri. Recunoașterea feței este apoi formalizată ca o problemă de potrivire a graficelor. Toate abordările de mai sus se bazează pe aspectul 2D și se comportă slab când apar variații semnificative în postură și iluminare.
Pentru a rezolva complet aceste probleme, modelarea facială 3D este necesară. Cu toate acestea, construirea unui model facial 3D este o sarcină foarte complicată și dificilă, în literatura de specialitate, chiar dacă structura obținută de la mișcare a fost studiată pe parcursul mai multor decenii.
CAPITOLUL 3: APLICAȚIE MATLAB PENTRU DETECȚIA FACIALĂ
3.1.Prezentare metode implementabile in Matlab
Analiza Componentei Principale (PCA) este derivată din transformarea Karhunen-Loeve și fiind dat un vector de dimensiune s, cu reprezentări ale fețelor din setul de instruire, are tendința de a găsi un subspațiu de dimensiune t ai cărui vectori de bază corespund direcției de varianță maxime din spațiul inițial al imaginii. Acest nou subspațiu este în mod normal mai mic dimensional (t <<s). În cazul în care elementele de imagine sunt considerate ca fiind variabile aleatoare, vectorii de bază ai PCA sunt definiți ca vectorii proprii ai matricei de dispersie.
Analiza componentelor independente (ICA) minimizează dependențele de ordin doi dar și de ordin mai mare, din datele de intrare și încearcă să găsească baza de-a lungul căreia datele (atunci când sunt proiectate pe dependențe) sunt statistic independente. Bartlett și colab. au realizat două arhitecturi de ICA pentru sarcina recunoașterii faciale: Arhitectură I – imagini de bază independente statistic, și Arhitectură II – reprezentare cod factorial.
Potrivire Grafice Mănunchi Elastic. Toate fețele umane au o structură topologică similară. Fețele sunt reprezentate sub formă de grafice, cu nodurile poziționate în punctele de reper (ochi, nas …) și marginile etichetate cu vectori de distanță 2-D. Fiecare nod conține un set de 40 coeficienți miniundă Gabor poziționați la diferite niveluri și orientări (de fază, amplitudine). Aceste noduri sunt numite „jeturi”. Recunoașterea se bazează pe grafice etichetate. Un grafic etichetat este un set de noduri conectate prin margini, nodurile sunt etichetate cu jeturi, marginile sunt etichetate cu distanțe.
Un Model de Aparență Activă(AAM) este un model statistic integrat care combină un model de variație a formei, cu un model al variațiilor aparițiilor într-un cadru formă normalizat. Un AAM poate conține un model statistic rezultat după forma și aspectul gri al obiectului de interes. Potrivirea a unei imagini implică găsirea parametrilor de model care să minimizeze diferența dintre imagine și un exemplu de model sintetizat proiectat în imagine.
Având în vedere un set de puncte care aparțin a două clase, o Mașină cu Vector Suport (SVM), găsește hiperplan-ul care separă cea mai mare fracțiune posibilă între puncte de aceeași clasă pe aceeași parte, maximizând în același timp distanța de la orice clasă la hiperplan. Metoda PCA este folosită mai întâi pentru a extrage caracteristicile imaginilor feței și apoi funcțiile de discriminare dintre fiecare pereche de imagini sunt învățate de către mai multe SVM.
Modelele Markov Ascunse (HMM) sunt un set de modele statistice utilizate pentru a caracteriza proprietățile statistice ale unui semnal. HMM constau din două procese interdependente: (1) un lanț Markov neobservabil cu un număr finit de stări, un matrice probabilitate de tranziție de stare și o distribuție de probabilitate inițială de stare și (2), un set de funcții de densitate de probabilitate asociate cu fiecare stare.
Cadrul Bayesian este o măsură de similaritate probabilistică bazată pe convingerea Bayesiană că diferențele de intensitate ale imaginii sunt caracteristice variațiilor tipice ale aspectului unui individ. Sunt definite două clase de variații ale imaginilor faciale: variații intrapersonale și variații extrapersonale. Similitudinea între fețe este măsurată folosind regula Bayesiană.
Față umană este o suprafață situată în spațiul 3-D intrinsec. Prin urmare, modelul 3-D ar trebui să fie mai bun pentru reprezentarea chipurilor, mai ales să se ocupe de variații faciale, cum ar fi postură, iluminare, etc. Blantz și colaboratorii au propus o metodă bazată pe un model 3-D facial schimbător care codifică forma și textura în ceea ce privește parametrii de model, și algoritm care recuperează acești parametri de la o singură imagine a unei fețe.
3.2.Prezentare rezultate obținute în Matlab
Am dezvoltat în cadrul programului Matlab, o aplicație care încorporeză 6 algoritmi de detecție facială. Dintre aceștia, patru utilizează imagini statice: algoritmul Viola-Jones, detectare pe bază de segmentare a imaginii, un algoritm care detecteză fețele umane după culoarea pielii și ultimul se bazează pe analiza componentei principale în combinare cu eigenfaces. Pentru setul de imagini de testare, am folosit baza de date cu fețe AT&T și de asemenea, imagini descărcate de pe Internet. Ceilalți doi algoritmi se axează pe secvențe de imagini (în cazul acestei aplicații, secvențe de imagini obținute în timp real de la webcam-ul încorporat în laptop-ul utilizat).
Aplicația a fost rulată pe un laptop Fujitsu-Siemens, configurație: procesor Intel Celeron B815 dual-core 1,6Ghz, memorie RAM 6GB, placă video Intel HD Graphics, HDD 500GB și cameră web Sonix 1,3mpx.
Rezultatele obținute în urma testărilor aplicației și algoritmilor sunt prezentate sub formă de imagini, iar codul adiacent fiecărui element este explicat în manieră detaliată.
În figura 17 este prezentată caseta principală a aplicației, realizată cu ajutorul funcției și directorului GUIDE (Mediul de creare a interfețelor grafice pentru utilizator) din Matlab. Aceasta conține 8 butoane de apelare a script-urilor din cadrul aplicației, o parte centrală utilizată pentru afișarea imaginilor și a rezultatelor algoritmilor și o parte text statică în partea superioară a cadrului.
Figura 17. Casetă principală aplicație
Codul sursă care stă la baza acestei interfețe grafice este:
function varargout = main(varargin)
% se incepe initializarea codului
gui_Singleton = 1;
gui_State = struct('gui_Name', mfilename, …
'gui_Singleton', gui_Singleton, …
'gui_OpeningFcn', @main_OpeningFcn, …
'gui_OutputFcn', @main_OutputFcn, …
'gui_LayoutFcn', [] , …
'gui_Callback', []);
if nargin && ischar(varargin{1})
gui_State.gui_Callback = str2func(varargin{1});
end
if nargout
[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});
else
gui_mainfcn(gui_State, varargin{:});
end
% sfarsitul codului de initializare
% – se executa inaintea afisarii interfetei
function main_OpeningFcn(hObject, eventdata, handles, varargin)
handles.output = hObject;
guidata(hObject, handles);
function varargout = main_OutputFcn(hObject, eventdata, handles)
varargout{1} = handles.output;
% urmatoarele secvente se executa separat la apasarea butoanelor
% corespunzatoare fiecareia
function pushbutton1_Callback(hObject, eventdata, handles)
detectare_culoare_piele();
function pushbutton2_Callback(hObject, eventdata, handles)
detectare_threshold();
function pushbutton3_Callback(hObject, eventdata, handles)
detectare_viola_jones();
function pushbutton4_Callback(hObject, eventdata, handles)
prag_gri();
function pushbutton5_Callback(hObject, eventdata, handles)
detectie_edge();
function pushbutton7_Callback(hObject, eventdata, handles)
skintracking();
function pushbutton8_Callback(hObject, eventdata, handles)
citire();
function pushbutton10_Callback(hObject, eventdata, handles)
cla
Acest cod inițializează afișarea interfeței și, în același timp, păstrează apelările fiecărui script din aplicație în comenzile efectuate de butoanele de control.
Prezentare scripturi utilizate și rezultatele acestora.
1.citire.m
Acest script utilizează doar 5 linii simple de cod pentru selectarea imaginii care se dorește a fi supusă testelor și este folosit în toți algoritmii care analizează imagini.
Cod sursă:
% Selectam imaginea dorita din folder.
[baseFileName, folder] = uigetfile({'*.jpg;*.gif;*.png;*.bmp','Fisiere imagine (*.jpg,*.gif,*.png,*.bmp)';
'*.*', 'Toate fisierele (*.*)'}, 'Alegeti un fisier');
% Creare nume nou imagine.
fullImageFileName = fullfile(folder, baseFileName);
im_dis=imread(fullImageFileName);
imshow(fullImageFileName)
Butonul „Incarcare Imagine” accesează script-ul citire.m și afișează în partea centrală a interfeței imaginea aleasă.
2.prag_gri.m
Script-ul returnează imaginea filtrată după ce aceasta a fost convertită într-o imagine binară cu ajutorul funcției im2bw. Conversia este necesară nu numai în cazul algoritmilor aplicați aici, ci și pentru majoritatea celorlalte metode care se folosesc în prezent în detecția facială.
Cod sursă:
clear all
clc
% afisare imagine in prag gri
citire();
I = imread(fullImageFileName);
level = graythresh(I);
BW = im2bw(I,level);
figure, imshow(BW);
hold on
Rezultatul estei conversii este prezentat în figura 18.
Figura 18. Imaginea după conversia în binar
3.detectare_culoare_piele.m
Script-ul folosit pentru detectarea feței în funcție de culoarea pielii, are la bază o serie de conversii ale imaginii originale, pentru a delimita părțile din imagine care conțin culori asemănătoare pielii. Acest algoritm este parcurs în două părți: prima parte este cea pentru conversie.
Cod sursă prima parte:
%detectare fata pe baza culoare piele
% se incarca imaginea
citire();
% algoritm concret
I=imread(fullImageFileName);
imshow(I)
cform = makecform('srgb2lab');
J = applycform(I,cform);
figure;imshow(J);
K=J(:,:,2);
figure;imshow(K);
L=graythresh(J(:,:,2));
BW1=im2bw(J(:,:,2),L);
figure;imshow(BW1);
M=graythresh(J(:,:,3));
figure;imshow(J(:,:,3));
BW2=im2bw(J(:,:,3),M);
figure;imshow(BW2);
O=BW1.*BW2;
A doua parte a codului este folosită pentru crearea căsuței de identificare în jurul feței, sau dacă este cazul, în jurul mai multor componente faciale.
Cod sursă partea a 2-a:
% creare casuta in jurul fetei
P=bwlabel(O,8);
BB=regionprops(P,'Boundingbox');
BB1=struct2cell(BB);
BB2=cell2mat(BB1);
[s1 s2]=size(BB2);
mx=0;
for k=3:4:s2-1
p=BB2(1,k)*BB2(1,k+1);
if p>mx && (BB2(1,k)/BB2(1,k+1))<1.8
mx=p;
j=k;
end
end
figure,imshow(I);
hold on;
rectangle('Position',[BB2(1,j-2),BB2(1,j-1),BB2(1,j),BB2(1,j+1)],'EdgeColor','b' )
Trebuie menționat că acest algoritm funcționează foarte bine în cazul imaginilor în care apare doar o singură persoană (figura 19) și aceasta este îmbrăcată în haine de nuanță diferită față de cea a feței. Rezultatele obținute pe o imagine cu un grup de oameni sunt foarte slabe, algoritmul considerând zone din imagine ca fiind de culoarea pielii.
Figura 19. Rezultatul final în imaginea din partea stângă, conversia imaginii în partea dreaptă.
4.detectare_viola_jones.m
Algoritmul Viola-Jones este unul care oferă o viteză remarcabilă de procesare și rezultate excepționale. Acest algoritm este unul bazat pe identificarea obiectelor dreptunghiulare, pentru o detecție foarte rapidă. Programul Matlab pune la dispoziție funcții deja create pentru detectarea obiectelor, printre care și vision.CascadeObjectDetector, care este în principiu un detector de obiecte cu formă rectangulară.
Cod sursă pentru algoritmul Viola-Jones:
clear all
clc
%% detectare obiecte cu algoritm Viola-Jones
% se incarca imaginea prin apelarea functiei citire
citire();
%pentru detectarea fetei
FDetect = vision.CascadeObjectDetector;
%se introduce imaginea
I = imread(fullImageFileName);
%returneaza valorile casetei din jurul fetei, pe baza numarului de obiecte
BB = step(FDetect,I);
figure, imshow(I); hold on
for i = 1:size(BB,1)
rectangle('Position',BB(i,:),'LineWidth',4,'LineStyle','-','EdgeColor','b');
end
title('Detectare reusita');
hold off;
Produsul final al acestui algoritm este extrem de satisfăcător ( figura 20), și în principiu este ideal a fi testat pentru detecția facială în imagini cu grupuri de oameni, unde există probleme pentru celelalte metode. Bineînțeles, programul dă dovadă de o robustețe imensă, și consider că este cea mai bună alegere în dezvoltarea aplicațiilor de acest gen.
Figura 20. Metoda Viola-Jones aplicată pe o imagine de grup cu rată de identificare 100%
5.detectare_threshold.m
Algoritmul threshold presupune segmentarea imaginii în componente, și compararea acestora la final cu o bază de date existentă. Eficacitatea acestuia scade, datorită faptului că funcționează în condiții optime doar cu imagini în tentă gri. Pe imagini color, implementarea este mai dificilă.
Codul sursă:
x = imread('geeks.jpg');
% arbore decizional.
% se alege o valoare mai mica daca au fost detectate falsuri
% se alege o valoare mai mare daca nu au fost detectate fete
% valori intre -10 si 10
threshold = 2;
imagesc(x); hold on; colormap gray;
s = fdmex(x', threshold);
for i=1:size(s,1)
h = rectangle('Position',[s(i,1)-s(i,3)/2,s(i,2)-s(i,3)/2,s(i,3),s(i,3)], …
'EdgeColor', [1,0,0], 'linewidth', 2);
end
axis equal;
axis off
Figura 21 arată rezultate acestei metode care, este destul de rapidă, dar scade la capitolul eficiență datorită condițiilor necesare rulării.
Figura 21. Metoda threshold aplicată pe o imagine în nuanțe gri.
6.skintracking.m
Acest script rulează prin conectarea la webcam-ul încorporat în laptop, unde rulează până la atingerea unui număr de 100 de cadre. Este de asemenea o combinare de tehnici de convertire a imaginilor, printre care trecerea din spectrul color RGB în nuanțe de gri, convertirea în imagini binare și segmentare a componentelor.
Cod sursă:
vid = videoinput('winvideo',1);
set(vid, 'FramesPerTrigger', Inf);
set(vid, 'ReturnedColorspace', 'rgb')
vid.FrameGrabInterval = 5;
%pornesc achizitia video
start(vid)
%setam o bucla sa se opreasca dupa 100 de frame-uri
while(vid.FramesAcquired<=100)
data = getsnapshot(vid);
diff_im = imsubtract(data(:,:,1), rgb2gray(data));
diff_im = medfilt2(diff_im, [3 3]);
diff_im = imadjust(diff_im);
level = graythresh(diff_im);
bw = im2bw(diff_im,level);
BW5 = imfill(bw,'holes');
bw6 = bwlabel(BW5, 4);
stats = regionprops(bw6,['basic']);
[N,M]=size(stats);
if (bw==0)
break;
else
tmp = stats(1);
for i = 2 : N
if stats(i).Area > tmp.Area
tmp = stats(i);
end
end
bb = tmp.BoundingBox;
bc = tmp.Centroid;
imshow(data)
hold on
rectangle('Position',bb,'Edgecolor','r','LineWidth',2)
hold off
end
end
stop(vid);
flushdata(vid);
clear all
sprintf('%s','succes')
Eficacitatea algoritmului este medie, comparativ cu celelalte folosite în zilele noastre, pentru că este asemănător algoritmului de detectare facială pe baza culorii pielii. De aceea, dacă apar în captura camerei, elemente de culoare aproximativ apropiată pielii, acesta va mări caseta de urmărire. Pe de altă parte, acest algoritm funcționează la standarde acceptabile în materie de urmărire a mișcării. Două exemple ale rulării acestui program sunt afișate în continuare.
Figura 22. Detecție corectă a feței
Figura 23. Detecție eronată a feței
7.detectie_edge.m
Scriptul ce va fi prezentat în continuare este bazat pe conversia imaginilor din RGB în gri și analizează diferitele nuanțe de gri, pentru a determina aproximativ marginile obiectelor din captura webcam. Acesta a fost implementat să analizeze doar primele 50 de cadre de la pornirea achiziției video dar, la fel ca cel anterior, poate fi configurat să ruleze la infinit.
Cod sursă:
vid = videoinput('winvideo');
set(vid, 'FramesPerTrigger', Inf);
set(vid, 'ReturnedColorspace', 'rgb')
vid.FrameGrabInterval = 5;
start(vid)
while(vid.FramesAcquired<=50)
imge = getsnapshot(vid);
gray=rgb2gray(imge);
ir=imge(:,:,1);
ig=imge(:,:,2);
[r c d]=size(imge);
for i=1:r
for j=1:c
if gray(i,j)>50 && gray(i,j)<100 && ir(i,j)>70 && ir(i,j)<180 && ig(i,j)>20
temp(i,j)=255;
else
temp(i,j)=0;
end
end
end
subplot(1,1,1);imshow(temp);title('Detectie margini')
end
stop(vid);
flushdata(vid);
clear all
Rezultate pot fi interpretate ca fiind adecvate, și este de apreciat faptul că algoritmul efectuează transformările, conversiile și verificările în timp real, lucru care presupune o putere de calcul de un nivel mediu. Bineînțeles, o creștere a acestei puteri, va duce la un produs mult mai bine dezvoltat și mai rapid. În figura 24 se poate observa cu ușurință conturul feței și elementele faciale, iar în partea dreaptă a imaginii, chiar și conturul palmei.
Figura 24. Aplicare detecție margini pe captură în timp real
8.recun_eigen_pca.m
Acest algoritm se bazează pe analiza componentei principale și metoda eigenfaces. Este configurat să lucreze pe baza de date formată din 400 de imagini, de unde alege una aleatoriu, și o testează mai apoi cu celelalte 399 rămase pentru a determina o potrivire. Algoritmul este un concept foarte simplu utilizat pentru recunoașterea facială.
Codul sursă este explicat în comentariile marcate prin culoarea verde:
%% recunoastere faciala
% acest algoritm foloseste metoda eigenfaces
%% se incarca baza de date in matricea w
w=load_database();
ri=round(400*rand(1,1)); % se alege un index
r=w(:,ri); % r contine imaginea aleasa initial
v=w(:,[1:ri-1 ri+1:end]); % v contine restul de 399 imagini
N=20; % numarul semnaturilor pentru fiecare imagine
O=uint8(ones(1,size(v,2)));
m=uint8(mean(v,2)); % m este media tuturor imaginilor
vzm=v-uint8(single(m)*single(O)); % vzm este noul v cu media scazuta
%% calculul eigen-vectorilor matricei
L=single(vzm)'*single(vzm);
[V,D]=eig(L);
V=single(vzm)*V;
V=V(:,end:-1:end-(N-1));
% se aleg eigen-vectorii care corespund celor mai mari 10 valori eigen
cv=zeros(size(v,2),N);
for i=1:size(v,2);
cv(i,:)=single(vzm(:,i))'*V; % fiecare rand din cv este semnatura unei imagini
end
%% recunoastere
% se ruleaza algoritmul
subplot(121);
imshow(reshape(r,112,92));title('Se cauta …','FontWeight','bold','Fontsize',16,'color','red');
subplot(122);
p=r-m; % se scade media
s=single(p)'*V;
z=[];
for i=1:size(v,2)
z=[z,norm(cv(i,:)-s,2)];
if(rem(i,20)==0),imshow(reshape(v(:,i),112,92)),end;
drawnow;
end
[a,i]=min(z);
subplot(122);
imshow(reshape(v(:,i),112,92));title('Gasit!','FontWeight','bold','Fontsize',16,'color','red');
În figura 25, am prezentat doar un exemplu al unei rulări a acestui program, unde se poate observa postura feței persoanei din prima imagine, și o postură diferită în a doua, dar pe care algoritmul reușește să o detecteze.
Figura 25. Rulare a algoritmului bazat pe eigenfaces
CONCLUZII ȘI PROPUNERI
BIBLIOGRAFIE
Autori străini:
A. Hyvärinen, J. Karhunen and E. Oja, Independent Component Analysis, 2001
D. Kresimir, and G. Mislav. Face recognition. I-Tech Education and Publishing, 2007
G. Shaogang, S. McKenna and A. Psarrou. Dynamic Vision: From images to Face Recognition, WSP Company, 2000
S.Z. Li and A.K. Jain. Handbook of Face Recognition, Springer, 2005
Periodice:
Beymer, D. Face recognition under varying pose. IEEE Computer Vision and Pattern Recognition, 1994, p.756-761
Bucknall, J. M.: How to Find a Face, in PC Plus, Nr. 296, July 18th 2010.
D. Maio and D. Maltoni, Real-time face location on gray-scale static images, Pattern Recognition, Nr. 33, 2000, p. 1525–1539
Detecting faces in images: A survey. IEEE Trans. on Pattern Analysis and Machine Intelligence (PAMI), Nr. 24, 2002, p.34-58
Heisele, B., Serre, T., Poggio, T.: A component-based framework for face detection and identification. International Journal of Computer Vision 74, 2007, p.167–181
Laptev, I., Marszalek, M., Schmid, C., and Rozenfeld, B.: “Learning realistic human actions from movies”, IEEE Conference on Computer Vision and Pattern Recognition, 2008.
M. Turk and A. Pentland: Eigenfaces for Recognition. Journal of Cognitive Neuroscience 3, 1991, p. 71-86
N. M. Oliver, B. Rosario, and A. P. Pentland: “A Bayesian Computer Vision System for Modeling Human Interactions”, IEEE Trans. on Patt. Anal. and Machine Intell., Vol. 22, No. 8, pp. 831-843, 2000
P. Comon. Independent component analysis, a new concept? Signal Processing, Nr. 36, p.287–314, 1994.
P.N. Belhumeur, J.P. Hespanha, and D.J. Kriegman: Eigenfaces vs. Fisherfaces: Recognition Using Class Specific Linear Projection. IEEE Trans. Pattern Analysis and Machine Intelligence 19, 1997, p.711-720
Park, S. and Aggarwal, J. K.: “A hierarchical Bayesian network for event recognition of human actions and interactions”, Multimedia Systems, Vol.10, No. 2, pp. 164-179, 2004
R. Baron. Mechanisms of human facial recognition. Int. J. Man-Machine Studies 15, 1981, p.137-178.
R. Chellappa, W. Zhao, P. J. Phillips and A. Rosenfeld. Face recognition: A literature survey, Acm Computing Surveys (CSUR) 35 (4), 399-458, 2003
Rowley, H., Baluja, S., Kanade, T.: Neural network-based face detection. IEEE Transactions on Pattern Analysis and Machine Intelligence 20, 1998, p. 23–38
T. Sakai, M. Nagao, and T. Kanade, Computer analysis and classification of photographs of human faces, in Proc. First USA-Japan Computer Conference, 1972, p. 2-7
Viola, P., Jones, M.: Robust real-time face detection. International Journal of Computer Vision 57, 2004, p. 137–154
Viola, P.; Jones, M. J .: Robust Real-Time Face Detection, in the International Joumal of Computer Vision (IJCV) 57(2), p. 137-154, Kluwer Academic Publishers, 2004.
Wiskott, L., Fellous, J.M., Kruger, N., and von der Malsburg, C. Face recognition by elastic bunch graph matching. IEEE Trans. on Pattern Analysis and Machine Intelligence, 19, 1997 p.775-779
Infografie:
http://en.wikipedia.org/wiki/Face_detection, accesat în data de 05.10.2013
http://en.wikipedia.org/wiki/Facial_recognition_system, accesat în data de 26.11.2013
http://facedetection.com/facedetection/techniques.htm, accesat în data de 10.12.2013
http://scholar.google.ro/, accesat în data de 20.02.2014
http://www.face-rec.org/, accesat în data de 25.11.2013
http://www.mathworks.com/, accesat în data de 17.11.2013
ANEXE
Anexa nr.1 – Schema metode abordate în detecția facială
Anexa nr. 2. Arhitectura sistemului de detectie bazat pe componente
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: Studiu Comparativ Privind Mijloacele de Detectie a Persoanelor In Secvente de Imagini (ID: 108172)
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.
