marți , 21 august 2018
roen

Art. 03 – Vol.23 – Nr. 2 – 2013

DETECTAREA AUTOMATĂ A FEŢELOR UMANE.
METODA VIOLA-JONES


Mihnea Horia Vrejoiu

mihnea@dossv1.ici.ro

Institutul Naţional de Cercetare-Dezvoltare în Informatică – ICI Bucureşti

 Anca Mihaela Hotăran

ahotaran@ici.ro

Institutul Naţional de Cercetare-Dezvoltare în Informatică – ICI Bucureşti

Rezumat: Departe de a mai reprezenta o tehnologie exotică, desprinsă din povestiri sau filme ştiinţifico-fantastice, detecţia automată a feţelor în imaginile digitale a devenit deja parte a vieţii noastre cotidiene. Astăzi, practic orice utilizator al unei camere foto obişnuite poate remarca apariţia automată a unor dreptunghiuri colorate care încadrează figurile subiecţilor umani asupra cărora este îndreptat obiectivul respectivei camere. Puţini sunt totuşi cei care s-au întrebat cum este posibil aceasta şi mai puţini probabil, sunt cei care cunosc mai mult sau mai puţin răspunsul la această întrebare. Articolul de faţă îşi propune să prezinte problematica detecţiei automate a feţelor, cu o succintă trecere în revistă a dificultăţilor specifice, precum şi a principalelor tipuri de abordări în soluţionarea acesteia, cu detalierea – la un nivel care se doreşte cât mai accesibil posibil – a uneia dintre cele mai cunoscute şi utilizate metode, şi anume Viola-Jones. Articolul nu se doreşte a fi un studiu exhaustiv sau o monografie a domeniului, ci numai o introducere în acesta, cât mai pe înţelesul celor mai mulţi, încercând totodată să reliefeze frumuseţea şi eleganţa inovaţiei, eficienţa şi performanţa aduse de metoda Viola-Jones.

Cuvinte-cheie: detecţia feţelor, vedere artificială, analiză de imagini, învăţare automată, caracteristici de tip Haar, cascadă atenţională, AdaBoost, clasificator, imagine integrală.

Introducere: Departe de a mai reprezenta o tehnologie exotică, desprinsă din povestiri sau filme ştiinţifico-fantastice, detecţia automată a feţelor în imaginile digitale a devenit deja parte a vieţii
noastre cotidiene.

Astfel, în zilele noastre, practic oricine a avut ocazia să utilizeze o cameră foto digitală obişnuită (sau chiar camera foto a unui telefon mobil ieftin) şi a putut observa pe ecranul acesteia cum, la încadrarea subiecţilor umani, apare (câte) un dreptunghi / pătrat colorat care încadrează figurile respective. Această funcţie de localizare automată a feţelor permite o mai bună încadrare, precum şi stabilirea automată a parametrilor de focalizare şi expunere corectă a feţelor respective, prin comparaţie cu restul scenei. Probabil însă că puţini sunt aceia care s-au întrebat cum anume reuşeşte camera foto să distingă faptul că într-o anumită regiune a imaginii există o figură umană iar în altele nu, respectiv că o anumită configuraţie de pixeli reprezintă o faţă, în timp ce alte configuraţii nu. Şi asta practic în timp real! Cum camerele foto sau telefoanele mobile, cel puţin cele de clasă medie, ieftine, nu sunt dotate cu cipuri cu putere foarte mare de procesare, înseamnă că algoritmul respectiv şi implementarea sa trebuie să fie extrem de eficiente. În plus, software-ul de detecţie a feţelor integrat în camerele foto obişnuite a evoluat, ajungând astăzi nu numai să localizeze figurile umane, dar chiar să şi identifice apariţia zâmbetului pe acestea şi să comande declanşarea automată în momentul respectiv.

De asemenea, detecţia automată a feţelor reprezintă astăzi o componentă fundamentală ca prim pas în aplicaţiile din ce în ce mai variate şi răspândite de recunoaştere a feţelor, precum şi în cele vizând noi modalităţi evoluate de interacţiune om-calculator. Ea joacă totodată un rol extrem de important şi în ceea ce înseamnă etichetarea automată a volumului uriaş de date de tip imagine disponibile pe Internet, într-o nouă paradigmă a acestuia, prin asocierea unor metadate descriptive utile pentru clasificarea lor, stabilirea de legături categoriale şi/sau semantice între ele şi alte date disponibile şi, în cele din urmă, pentru căutarea şi regăsirea acestora grupate pe criterii variate.

Concluzii:

În prezentul articol s-a încercat o introducere în domeniul detecţiei automate a feţelor, cu o prezentare succintă a principalelor tipuri de abordări şi o descriere ceva mai detaliată, dar totuşi la un nivel de înţelegere cât mai general, a unei metode de referinţă în domeniu, metoda Viola-Jones.

Detecţia automată a feţelor în imagini digitale şi-a făcut loc în viaţa noastră de zi cu zi fiind inclusă ca funcţionalitate în camerele foto digitale, aplicaţiile de recunoaştere a feţelor incluse în sisteme de securitate, control automat al accesului, verificare a identităţii, în noile paradigme în ceea ce priveşte interfeţele om-calculator evoluate şi clasificarea şi etichetarea datelor şi imaginilor pe Internet cu meta-informaţii şi acestea sunt numai câteva dintre cele mai la îndemână exemple.

Problema detectării figurilor umane în imagini nu este tocmai una trivială, datorită varietăţii uriaşe în care acestea pot apărea în percepţia senzorului 2-D, atât din cauza trăsăturilor şi particularităţilor fizionomice, culorii, dimensiunilor, poziţiei, acoperirii parţiale, fundalului complex, dar mai cu seamă din cauza zonelor de lumină şi umbră determinate de poziţia şi distribuţia sursei / surselor de lumină.

Abordările şi soluţiile încercate de-a lungul timpului au trebuit să-şi propună să facă faţă tuturor situaţiilor care pot fi întâlnite, indiferent de particularităţile subiectului şi în orice context de poziţionare, dimensiune, scalare, încadrare, fundal, sau iluminare s-ar afla acesta.

O altă necesitate pentru majoritatea, datorită specificului aplicaţiilor, a fost să producă rezultate în timp real. Unele au reuşit mai bine, altele mai puţin bine.

Vizualizează articolul complet

În evaluarea performanţelor sistemelor de detecţie a feţelor se ţine cont, pe lângă factorul viteză de calcul acolo unde aceasta este necesară, de două componente: rata fals-pozitivelor (confuziilor, raportări false ca feţe ale unor regiuni din imagini care nu conţin în realitate o faţă), precum şi rata fals-negativelor (rateurilor, regiuni ale imaginilor care în realitate conţineau o faţă, dar care nu au fost raportate ca atare), care trebuie să fie ambele cît mai mici, ideal chiar zero fiecare.

În general, metodele utilizate, indiferent de tipul acestora, sunt laborioase, presupun numeroase iteraţii, analize pe diferite criterii, scalări, filtrări, comparaţii, şi evident au solicitat eforturi şi timp pentru a fi puse la punct. Unele se bazează pe antrenări anterioare ale unor clasificatoare (în general cu două clase: faţă şi non-faţă) de diferite tipuri (utilizând reţele neuronale, SVM etc.), în timp ce altele încearcă să se bazeze pe cunoştinţe şi observaţii a priori codate programatic şi utilizate astfel la detecţie, iar altele încearcă o mixare între aceste două tipuri de abordări în diferite etape de analiză.

O metodă de referinţă, care a marcat un punct de cotitură începând cu anul 2001 în evoluţia sistemelor utilizând detecţia feţelor, extrem de remarcabilă atât prin ingeniozitate cât şi prin performanţe şi viteză, este metoda Viola-Jones.

Spre deosebire de altele, metoda nu presupune o abordare piramidală prin scalarea imaginii iniţiale cu diferiţi factori şi totodată nu recurge la o analiză în sens clasic a valorilor intensităţilor pixelilor ce formează imaginea originală. Metoda recurge la analizarea unor caracteristici locale din imagini, utilizând aşa numite „caracteristici de tip Haar” (Haar-like features), prin analogie, dar fără a se confunda cu wavelet-uri Haar, şi care sunt reprezentate fiecare de câte 2, 3 sau 4 dreptunghiuri adiacente, cu tentă închisă şi respectiv deschisă, de formă şi dimensiuni identice între ele. Aceste caracteristici sunt scalate succesiv şi mutate prin subferestre de diferite dimensiuni, glisate  peste imaginea originală şi pentru fiecare se calculează câte o valoare, dată de diferenţa între suma pixelilor din regiunile din imaginea originală acoperite de dreptunghiurile deschise minus suma pixelilor din regiunile acoperite de dreptunghiurile închise componente ale caracteristicii respective.

O altă inovaţie care a adus o considerabilă optimizare computaţională, o reprezintă utilizarea unei „imagini integrale” calculate cu o singură trecere prin imaginea originală, în care fiecare punct capătă valoarea sumei tuturor pixelilor din stânga şi de deasupra pixelului corespondent din imaginea originală, inclusiv acesta. Suma pixelilor din orice dreptunghi definit pe imaginea originală se poate obţine prin trei operaţii elementare (două scăderi şi o adunare) între cele patru valori din imaginea integrală corespunzătoare colţurilor dreptunghiului respectiv.

Pe baza unui prag ce se stabileşte empiric, se poate indica faptul că o caracteristică este prezentă sau nu într-o subfereastră analizată. În loc să construiască un unic clasificator complex, utilizând un clasificator de tip AdaBoost, Viola şi Jones au selectat cele mai discriminante caracteristici, pe care le-au combinat în mai multe niveluri, într-o cascadă de filtre, clasificatoare AdaBoost mai slabe fiecare („cascadă atenţională” care reprezintă a treia inovaţie importantă introdusă de Viola şi Jones), în care primele niveluri, care includ mai puţine caracteristici şi implică mai puţine calcule, elimină masiv şi rapid subferestrele de tip non-faţă, urmând ca nivelurile următoare, mai complexe şi cu mai multe caracteristici, să analizeze mai profund subferestrele care au trecut de nivelurile anterioare dacă sunt feţe sau nu.

Pentru antrenare / învăţare au fost utilizate aproape 5.000 de exemple de feţe şi 10.000 de exemple de non-feţe. Învăţările au durat săptămâni.

Se poate vorbi despre o metodă în care învăţarea este lentă, dar detecţia este foarte rapidă. Rezultatul este că metoda Viola-Jones produce rezultate extrem de bune foarte rapid, suficient de repede pentru ca puterea de calcul limitată a camerelor digitale de clasă medie să poată face faţă cu succes.

O implementare a metodei Viola-Jones este disponibilă liber pentru mai multe platforme în biblioteca open source de funcţii de vedere artificială (Computer Vision) a Intel, OpenCV.

Bibliografie

  1. Yang, M.-H.; Kriegman, D. J.; Ahuja, N.: Detecting Faces in Images: A Survey, in IEEE Trans. on PAMI, 24(1), pag. 34-58, 2002
  2. Bucknall, J. M.: How to Find a Face, in PC Plus, Issue 296, July 18th 2010.
  3. Gupta, R.; Saxena, A. K.: Survey of Advanced Face Detection Techniques, in Image Processing, International Journal of Computer Science and Management Research, Vol. 1, Issue 2, ISSN 2278-733X, September 2012, pp. 156-164.
  4. Viola, P.; Jones, M.: Rapid Object Detection using a Boosted Cascade of Simple Features, in the Proceedings of the Conference on Computer Vision and Pattern Recognition (CVPR), 2001.
  5. Viola, P.; Jones, M. J.: Robust Real-Time Face Detection, in the International Journal of Computer Vision (IJCV) 57(2), pag. 137-154, Kluwer Academic Publishers, 2004.
  6. Jones, M.; Viola, P.: Fast multi-view face detection, in Technical report, Mitsubishi Electric Research Laboratories, TR2003-96, 2003.
  7. Lienhart, R.; Maydt, J.: An extended set of Haar-like features for rapid object detection, in Proc. of ICIP, 2002.
  8. Hewitt, R.: Seeing With OpenCV, Part 2: Finding Faces in Images, in SERVO Magazine, T & L Publications Inc., February 2007.
  9. Freund, Y.; Schapire, R. E.: A Decision-Theoretic Generalization of on-Line Learning and an Application to Boosting, in Proceedings of EuroCOLT, 1995, pp. 23-37.

Creative Commons License
This work is licensed under a Creative Commons Attribution 4.0 International License.