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

DETECTARE ŞI URMĂRIRE AUTOMATĂ A FEŢELOR UTILIZÂND IMPLEMENTĂRI OPENCV ALE METODEI VIOLA-JONES

Mihnea Horia Vrejoiu
mihnea@dossv1.ici.ro

Ştefan Alexandru Preda
stefanalex@ici.ro

Mădălina Zamfir
madalina@ici.ro
Institutul Naţional de Cercetare – Dezvoltare în Informatică, ICI – Bucureşti

Rezumat: S-a proiectat, implementat şi testat un sistem experimental de detecţie şi urmărire a feţelor umane în imagini statice, respectiv dinamice – cadre video succesive din fişiere video (filme), sau capturate în timp real (live) cu o cameră video sau chiar cu una web – bazat pe biblioteca open source de funcţii de vedere artificială (Computer Vision) a Intel, OpenCV. În acest context, s-a imaginat, proiectat şi implementat un scenariu, o metodă şi un algoritm de detecţie şi urmărire (tracking) a fiecărei feţe statice sau în mişcare identificate ca atare în cadrele respective, prin etichetarea / indexarea acesteia şi cu calcularea poziţiilor viitoare posibile. Au fost elaborate soluţii pentru etichetarea / indexarea corectă a feţelor în cadrele succesive inclusiv în situaţiile de posibile ambiguităţi în identificarea corectă a acestora în cazul „pierderii” lor temporare din cadre şi reapariţiei ulterioare.

Cuvinte cheie:  detecţia feţelor, urmărirea feţelor, vedere artificială, analiză de imagini, cascadă Haar, OpenCV.

 Introducere:În contextul unui proiect [1] derulat în cadrul Programului Nucleu la ICI, s-a proiectat şi implementat între altele şi un sistem experimental destinat detecţiei şi/sau urmăririi figurilor umane în imagini statice sau respectiv dinamice – cadre video succesive din fişiere video (filme), sau capturate în timp real (live) cu o cameră video sau chiar cu una web – bazat pe biblioteca open source de funcţii de vedere artificială (Computer Vision) a Intel, OpenCV. Sistemul experimental proiectat a avut drept scop iniţial testarea funcţiilor care implementează în biblioteca OpenCV [2] metoda Viola-Jones [3, 4, 5] de detecţie a feţelor umane, extinsă pentru poziţii / orientări diferite ale acestora [6, 7], atât în imagini statice (încărcate din fişiere imagine sau capturate prin „îngheţare” din flux video continuu cât şi în timp real din cadre video live obţinute prin achiziţie video continuă sau dintr-un film „înregistrat” anterior. În cazul celor din urmă s-a imaginat, proiectat şi implementat şi un scenariu, o metodă şi un algoritm de urmărire (tracking) a fiecărei feţe statice sau în mişcare, identificate ca atare în cadrele respective, prin etichetarea / indexarea acesteia. Au fost elaborate soluţii pentru etichetarea / indexarea corectă a feţelor în cadrele succesive, inclusiv pentru situaţiile de posibile ambiguităţi în etichetarea corectă a acestora în cazul „pierderii” lor temporare din cadre. Pentru fiecare faţă detectată într-un cadru sunt calculate poziţiile viitoare posibile. Acestea sunt utilizate atât pentru identificarea corectă şi coerentă în cadrul următor cât şi pentru cazurile în care faţa respectivă „dispare” dintr-un motiv sau altul din cadrele video pentru o perioadă scurtă de timp – nu este detectată, se întoarce cu spatele la cameră, iese temporar din scenă sau este obturată temporar de alt obiect sau altă persoană etc. – şi apoi reapare. În proiectarea şi implementarea scenariului şi algoritmului de urmărire a feţelor în flux video continuu, s-a pornit de la o euristică de tipul: între două cadre video succesive, o aceeaşi faţă nu poate apărea decât cel mult într-o anumită vecinătate nu foarte extinsă faţă de localizarea iniţială.Astfel, în mod normal, o faţă va fi etichetată / indexată similar, cu aceeaşi etichetă (acelaşi index) în două cadre succesive, dacă centrele geometrice ale dreptunghiurilor de încadrare în cele două cadre nu sunt mai depărtate decât o anumită distanţă maximă stabilită empiric.

Vizualizează articolul complet

Pentru fiecare faţă detectată într-un cadru se poate defini o anumită regiune în care ne putem aştepta ca ea să fie regăsită în cadrul următor, respectiv centrul geometric al dreptunghiului său de încadrare în acest nou cadru se va regăsi cel mai probabil într-un cerc de rază egală cu distanţa maximă amintită mai înainte şi centrat în poziţia corespunzătoare centrului său geometric din cadrul anterior. În cazul mai multor feţe, corespondentul fiecăreia în cadrul nou va fi dat de distanţa minimă între centrele geometrice respective.

Eventuale situaţii de ambiguitate în cazul mai multor feţe apropiate sunt rezolvate prin găsirea distanţei minime pentru fiecare dintre acestea la posibilii corespondenţi din celălalt cadru. Totodată, pentru eliminarea ambiguităţilor ce pot apărea în cazul intersectării mai multor persoane, când unele din feţe sunt obturate temporar de altele, s-a utilizat euristica dată de dimensiunile dreptunghiurilor de încadrare ale feţelor care datorită profunzimii sunt mai mari pentru cele situate în planuri mai apropiate şi mai mici pentru cele mai îndepărtate. Pe baza acestui criteriu se poate păstra etichetarea / indexarea corectă a fiecărei feţe după reapariţia în cadru a celor temporar obturate.

Concluzi: A fost imaginat, proiectat, implementat şi testat cu succes un sistem experimental pentru detecţia şi urmărirea feţelor în imagini utilizându-se implementări ale metodei Viola-Jones din biblioteca open source de funcţii de vedere artificială a Intel, OpenCV. Dezvoltarea programelor s-a realizat în limbajul C++. Sistemul lucrează în timp real, făcând faţă fără probleme la achiziţie video continuă cu o cameră web simplă, la o rezoluţie de 320×240 pixeli, cu 15 cadre pe secundă. Algoritmul de etichetare (indexare) a feţelor detectate în cadrele video lucrează corect, păstrând identificarea acestora inclusiv în situaţiile de posibile ambiguităţi datorate „dispariţiei” temporare a unora dintre ele şi reapariţiei lor ulterioare.

BIBLIOGRAFIE:

  1. VREJOIU, M. H.; HOTĂRAN, A. M.; PREDA, Ş.; ZAMFIR, M.: Metode, tehnici şi algoritmi pentru localizarea şi urmărirea figurilor umane în imagini statice, respectiv dinamice. Studiu. Specificaţii de definire metode, tehnici şi algoritmi. Specificaţii de implementare metode, tehnici şi algoritmi. Sistem experimental – Raport de cercetare, etapa 1 (unică) a proiectului PN09230606, ICI Bucureşti, iulie 2013.
  2. HEWITT, R.: Seeing With OpenCV, Part 2: Finding Faces in Images, in SERVO Magazine, T & L Publications Inc., February 2007.
  3. VREJOIU, M. H.; HOTĂRAN, A. M.: Detectarea automată a feţelor umane. Metoda ViolaJones, în Revista Română de Informatică şi Automatică (RRIA), vol.23, nr.2, iunie 2013.
  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), Kluwer Academic Publishers, 2004, pp. 137-154.
  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.

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