Modele și platforme AI
DeepFace pentru Recunoașterea Avansată a Feței

Recunoașterea feței a fost un domeniu în tendințe în AI și ML de mai mulți ani, iar implicațiile culturale și sociale ale recunoașterii feței sunt foarte extinse. Cu toate acestea, există o lacună de performanță între sistemele vizuale umane și mașini care limitează în prezent aplicațiile recunoașterii feței.
Pentru a depăși bufferul creat de lacuna de performanță și a furniza o acuratețe la nivel uman, Meta a introdus DeepFace, un cadru de recunoaștere a feței. Modelul DeepFace este antrenat pe un set de date faciale mari care diferă semnificativ de seturile de date utilizate pentru a construi benchmark-urile de evaluare, și are potențialul de a depăși cadrele existente cu adaptări minime. Mai mult, cadru DeepFace produce reprezentări compacte ale feței în comparație cu alte sisteme care produc mii de caracteristici ale aparenței faciale.
Cadru propus DeepFace utilizează Deep Learning pentru a fi antrenat pe un set de date mare care constă în diferite forme de date, inclusiv imagini, videoclipuri și grafică. Arhitectura rețelei DeepFace presupune că, odată ce alinierea este finalizată, locația fiecărei regiuni faciale este fixată la nivel de pixel. Prin urmare, este posibil să se utilizeze valorile brute ale pixelilor RGB fără a utiliza multiple straturi de convoluție, așa cum se face în alte cadre.
Pipeline-ul convențional al cadrului modern de recunoaștere a feței cuprinde patru etape: Detectare, Aliniere, Reprezentare și Clasificare. Cadru DeepFace utilizează modelarea explicită 3D a feței pentru a aplica o transformare piecewise și utilizează o rețea neurală profundă de nouă straturi pentru a deriva o reprezentare facială. Cadru DeepFace încearcă să facă următoarele contribuții
- Să dezvolte o arhitectură eficientă DNN sau Rețea Neurală Profundă care să poată valorifica un set de date mare pentru a crea o reprezentare facială care să poată fi generalizată la alte seturi de date.
- Să utilizeze modelarea explicită 3D pentru a dezvolta un sistem eficient de aliniere a feței.
Înțelegerea Funcționării Modelului DeepFace
Alinierea Feței
Alinierea feței este o tehnică care rotește imaginea unei persoane în funcție de unghiul ochilor. Alinierea feței este o practică populară care este utilizată pentru a prelucra datele pentru recunoașterea feței, și seturile de date aliniate ale feței ajută la îmbunătățirea acurateței algoritmilor de recunoaștere prin furnizarea unui input normalizat. Cu toate acestea, alinierea feței într-un mod neconstrâns poate fi o sarcină dificilă din cauza multiplelor factori implicați, cum ar fi expresii non-rigide, poziții ale corpului și altele. Tehnici de aliniere sofisticate, cum ar fi utilizarea unui model analitic 3D al feței sau căutarea punctelor fiduciale dintr-un set de date extern, ar putea permite dezvoltatorilor să depășească aceste provocări.
Deși alinierea este metoda cea mai populară pentru a face față verificării și recunoașterii feței neconstrânse, nu există o soluție perfectă în acest moment. Modelele 3D sunt, de asemenea, utilizate, dar popularitatea lor a scăzut semnificativ în ultimii ani, în special atunci când se lucrează într-un mediu neconstrâns. Cu toate acestea, deoarece fețele umane sunt obiecte 3D, ar putea fi abordarea corectă, dacă este utilizată corect. Modelul DeepFace utilizează un sistem care utilizează puncte fiduciale pentru a crea o modelare analitică 3D a feței. Această modelare 3D este apoi utilizată pentru a deforma o recoltă facială într-un mod frontal 3D.
Mai mult, la fel ca majoritatea practicilor de aliniere, alinierea DeepFace utilizează, de asemenea, detectoare de puncte fiduciale pentru a direcționa procesul de aliniere. Deși modelul DeepFace utilizează un detector de puncte simple, el aplică acesta în mai multe iterații pentru a rafina ieșirea. Un regresor de suport vectorial sau SVR, antrenat pentru a prejudeca configurațiile de puncte, extrage punctele fiduciale dintr-un descriptor de imagine la fiecare iterație. Descriptorul de imagine DeepFace se bazează pe histograma LBP, deși el ia în considerare și alte caracteristici.
Alinierea 2D
Modelul DeepFace inițiază procesul de aliniere prin detectarea a șase puncte fiduciale în interiorul recoltei de detectare, centrată în mijlocul ochilor, a gurii și a vârfului nasului. Acestea sunt utilizate pentru a roti, scala și transla imaginea în șase locații de ancoră și pentru a itera pe imaginea deformată până când nu există nicio schimbare vizibilă. Transformarea agregată generează apoi o recoltă aliniată 2D. Metoda de aliniere este foarte asemănătoare cu cea utilizată în LFW-a și a fost utilizată de-a lungul anilor în încercarea de a îmbunătăți acuratețea modelului.
Alinierea 3D
Pentru a alinia fețele cu rotații în afara planului, cadru DeepFace utilizează un model generic de formă 3D și înregistrează o cameră 3D care poate fi utilizată pentru a deforma recolta 2D aliniată în imaginea planului. Ca rezultat, modelul generează versiunea aliniată 3D a recoltei și este realizată prin localizarea a 67 de puncte fiduciale suplimentare în recolta 2D aliniată, utilizând un al doilea SVR sau regresor de suport vectorial.
Modelul plasează apoi manual cele 67 de puncte de ancoră pe modelul 3D și este astfel capabil să obțină corespondența completă între referințele 3D și punctele fiduciale corespunzătoare. În următoarea etapă, o cameră 3D-2D afină este adăugată utilizând o soluție de cel mai mic pătrat generalizată pentru sistemele liniare cu o matrice de covarianță cunoscută care minimizează anumite pierderi.
Frontalizarea
Deoarece deformările non-rigide și proiecțiile de perspectivă complete nu sunt modelate, camera 3D-2D ajustată servește doar ca o aproximare. În încercarea de a reduce coruperea factorilor importanți care poartă identitatea în warp-ul final, modelul DeepFace adaugă reziduurile corespunzătoare componentelor x-y ale fiecărui punct fiducial de referință. O astfel de relaxare pentru scopul de a deforma imaginea 2D cu distorsionări mai mici asupra identității este plauzibilă și, fără ea, fețele ar fi fost deformate în aceeași formă în 3D, pierzând factori importanți de discriminare în proces.
În final, modelul realizează frontalizarea utilizând o transformare piecewise afină, dirijată de triangularea Delaunay derivată din 67 de puncte fiduciale.

- Față detectată cu 6 puncte fiduciale.
- Recoltă aliniată 2D indusă.
- 67 de puncte fiduciale pe recolta 2D aliniată.
- Formă de referință 3D transformată în imaginea recoltei 2D aliniate.
- Vizibilitatea triunghiului în raport cu camera 3D-2D.
- 67 de puncte fiduciale induse de modelul 3D.
- Versiunea aliniată 3D a recoltei finale.
- Vedere nouă generată de modelul 3D.
Reprezentare
Odată cu creșterea cantității de date de antrenare, metodele bazate pe învățare au demonstrat că sunt mai eficiente și mai precise în comparație cu caracteristicile inginerizate, în principal pentru că metodele bazate pe învățare pot descoperi și optimiza caracteristici pentru o sarcină specifică.
Arhitectura DNN și Antrenarea
Rețeaua DeepFace DNN este antrenată pe o sarcină de recunoaștere facială multi-clasă care clasifică identitatea unei imagini a feței.
Figura de mai sus reprezintă arhitectura generală a modelului DeepFace. Modelul are un strat de convoluție (C1) cu 32 de filtre de dimensiune 11x11x3 care este alimentat cu o imagine 3D aliniată, 3 canale RGB de dimensiune 152×152 pixeli și rezultă în 32 de hărți de caracteristici. Aceste hărți de caracteristici sunt apoi alimentate într-un strat de pooling maxim (M2) care ia maximul peste vecinătăți spațiale 3×3 și are o pașă de 2, separat pentru fiecare canal. Următorul este un alt strat de convoluție (C3) care cuprinde 16 filtre, fiecare de dimensiune 9x9x16. Scopul principal al acestor straturi este de a extrage caracteristici de nivel scăzut, cum ar fi textura și muchii simple. Avantajul utilizării straturilor de pooling maxim este că face ieșirea generată de straturile de convoluție mai robustă la translații locale și, atunci când se aplică imaginilor aliniate ale feței, face rețeaua mult mai robustă la erorile de înregistrare la scară mică.
Multiple niveluri de pooling fac rețeaua mai robustă la anumite situații, dar ele fac și ca rețeaua să piardă informații despre poziția precisă a texturilor micro și structurilor faciale detaliate. Pentru a evita ca rețeaua să piardă aceste informații, modelul DeepFace utilizează un strat de pooling maxim doar cu primul strat de convoluție. Aceste straturi sunt apoi interpretate de model ca un pas de preprocesare adaptivă de front-end. Deși ele fac cea mai mare parte a calculului, ele au un număr limitat de parametri în sine și ele extind doar intrarea într-un set de caracteristici locale.
Straturile următoare, L4, L5 și L6, sunt conectate local și, la fel ca un strat de convoluție, aplică un set de filtre, unde fiecare loc în harta de caracteristici învață un set unic de filtre. Deoarece diferite regiuni dintr-o imagine aliniată au statistici locale diferite, ele nu pot menține ipoteza staționarității spațiale. De exemplu, zona dintre sprâncene și ochi are o capacitate de discriminare mai mare în comparație cu zona dintre gură și nas. Utilizarea straturilor locale afectează numărul de parametri supuși antrenării, dar nu afectează încărcătura computațională în timpul extragerii caracteristicilor.
Modelul DeepFace utilizează trei straturi în primul rând doar pentru că are o cantitate mare de date de antrenare bine etichetate. Utilizarea straturilor locale poate fi justificată și prin faptul că fiecare unitate de ieșire a unui strat local este afectată de o parte mare a datelor de intrare.
În final, straturile de sus sunt conectate complet, cu fiecare unitate de ieșire conectată la toate intrările. Cele două straturi pot captura corelațiile dintre caracteristicile capturate în diferite părți ale imaginilor feței, cum ar fi poziția și forma gurii și poziția și forma ochilor. Ieșirea primului strat complet conectat (F7) va fi utilizată de rețea ca vectorul de caracteristici brut al reprezentării feței. Modelul va alimenta apoi ieșirea ultimului strat complet conectat (F8) într-un softmax cu K căi care produce o distribuție peste etichetele de clasă.
Seturi de Date
Modelul DeepFace utilizează o combinație de seturi de date, cu setul de date Social Face Classification sau SFC fiind principalul.
Setul de Date SFC
Setul de date SFC este învățat dintr-o colecție de fotografii de pe Facebook (META ) și cuprinde 4,4 milioane de imagini etichetate ale a 4.030 de persoane, cu fiecare având 800 până la 1200 de fețe. Cele mai recente 5% din imaginile feței din setul de date SFC sunt lăsate pentru testare.
Setul de Date LFW
Setul de date LFW cuprinde 13.323 de fotografii ale a peste cinci mii de celebrități, care sunt apoi împărțite în 6.000 de perechi de fețe pe 10 diviziuni.
Setul de Date YTF
Setul de date YTF cuprinde 3.425 de videoclipuri ale a 1.595 de subiecți și este un subset al celor din setul de date LFW.
Rezultate
Fără frontalizare și utilizând doar alinierea 2D, modelul obține un scor de acuratețe de doar aproximativ 94,3%. Când modelul utilizează corpul central al detectării feței, el nu utilizează nicio aliniere și, în acest caz, modelul returnează un scor de acuratețe de 87,9%, deoarece unele părți ale regiunii faciale pot cădea în afara corpului central. Pentru a evalua capacitatea de discriminare a reprezentării feței în izolare, modelul urmează setarea de învățare nesupravegheată pentru a compara produsul interior al caracteristicilor normalizate. Acesta crește acuratețea medie a modelului la 95,92%.

Figura de mai sus compară performanța modelului DeepFace cu alte modele de recunoaștere facială de ultimă generație.

Imaginea de mai sus prezintă curbele ROC pe setul de date.
Concluzie
Ideal, un clasificator de fețe ar trebui să poată recunoaște fețele cu acuratețea unui om și ar trebui să poată returna o acuratețe ridicată, indiferent de calitatea imaginii, poziție, expresie sau iluminare. Mai mult, un cadru ideal de recunoaștere facială ar trebui să poată fi aplicat unei varietăți de aplicații cu modificări minime sau deloc. Deși DeepFace este unul dintre cele mai avansate și eficiente cadre de recunoaștere facială în prezent, el nu este perfect și nu poate furniza întotdeauna rezultate precise în anumite situații. Cu toate acestea, cadru DeepFace este o piatră de hotar importantă în industria recunoașterii feței și închide lacuna de performanță prin utilizarea unei tehnici de învățare metrică puternice și va continua să devină mai eficient în timp.












