ABONAMENTE VIDEO REDACȚIA
RO
EN
NOU
Numărul 151
Numărul 150 Numărul 149 Numărul 148 Numărul 147 Numărul 146 Numărul 145 Numărul 144 Numărul 143 Numărul 142 Numărul 141 Numărul 140 Numărul 139 Numărul 138 Numărul 137 Numărul 136 Numărul 135 Numărul 134 Numărul 133 Numărul 132 Numărul 131 Numărul 130 Numărul 129 Numărul 128 Numărul 127 Numărul 126 Numărul 125 Numărul 124 Numărul 123 Numărul 122 Numărul 121 Numărul 120 Numărul 119 Numărul 118 Numărul 117 Numărul 116 Numărul 115 Numărul 114 Numărul 113 Numărul 112 Numărul 111 Numărul 110 Numărul 109 Numărul 108 Numărul 107 Numărul 106 Numărul 105 Numărul 104 Numărul 103 Numărul 102 Numărul 101 Numărul 100 Numărul 99 Numărul 98 Numărul 97 Numărul 96 Numărul 95 Numărul 94 Numărul 93 Numărul 92 Numărul 91 Numărul 90 Numărul 89 Numărul 88 Numărul 87 Numărul 86 Numărul 85 Numărul 84 Numărul 83 Numărul 82 Numărul 81 Numărul 80 Numărul 79 Numărul 78 Numărul 77 Numărul 76 Numărul 75 Numărul 74 Numărul 73 Numărul 72 Numărul 71 Numărul 70 Numărul 69 Numărul 68 Numărul 67 Numărul 66 Numărul 65 Numărul 64 Numărul 63 Numărul 62 Numărul 61 Numărul 60 Numărul 59 Numărul 58 Numărul 57 Numărul 56 Numărul 55 Numărul 54 Numărul 53 Numărul 52 Numărul 51 Numărul 50 Numărul 49 Numărul 48 Numărul 47 Numărul 46 Numărul 45 Numărul 44 Numărul 43 Numărul 42 Numărul 41 Numărul 40 Numărul 39 Numărul 38 Numărul 37 Numărul 36 Numărul 35 Numărul 34 Numărul 33 Numărul 32 Numărul 31 Numărul 30 Numărul 29 Numărul 28 Numărul 27 Numărul 26 Numărul 25 Numărul 24 Numărul 23 Numărul 22 Numărul 21 Numărul 20 Numărul 19 Numărul 18 Numărul 17 Numărul 16 Numărul 15 Numărul 14 Numărul 13 Numărul 12 Numărul 11 Numărul 10 Numărul 9 Numărul 8 Numărul 7 Numărul 6 Numărul 5 Numărul 4 Numărul 3 Numărul 2 Numărul 1
×
▼ LISTĂ EDIȚII ▼
Numărul 95
Abonament PDF

Deep Learning pentru recunoașterea facială

Iulia Botnari
Software Engineer @ Wipro Limited



Bogdan Druțu
Technical Lead @ Wipro Limited



PROGRAMARE

Recunoașterea facială este din ce în ce mai folosită în zilele noastre: aplicații de securitate, control acces, supraveghere, carduri inteligente și altele. De-a lungul anilor au fost întreprinse multe cercetări în acest domeniu. În ultimul deceniu, evoluția arhitecturilor și algoritmilor de deep learning a făcut posibilă creșterea performanțelor de recunoaștere facială de către calculator, depășind în anumite scenarii capabilitățile umane.

În articolul de față, ne propunem să descriem cele mai importante arhitecturi de deep learning pentru recunoașterea facială. În prima parte, definim sistemele biometrice, procesul de recunoaștere facială și tipurile de sisteme de recunoaștere facială. În a doua parte, descriem următoarele arhitecturi: DeepFace, FaceNet, seriile VGGFace, SphereFace și ArcFace. Și, în ultima parte, trecem în revistă câteva dintre dificultățile tehnice ale metodelor prezentate.

Procesul de recunoaștere facială

Să începem prin a defini ce este un sistem biometric:

"Un sistem biometric este un sistem tehnologic care folosește informații despre o persoană (sau un alt organism biologic) pentru a identifica acea persoană. Pentru a funcționa eficient, sistemele biometrice utilizează anumite informații ale trăsăturilor biologice unice. Un sistem biometric va implica rularea datelor de către algoritmi pentru a obține o identificare pozitivă a unui utilizator sau a unei alte persoane."

- HIMSS Dictionary of Health Information and Technology Terms, Acronyms and Organizations" [1]

Multe sisteme biometrice folosesc drept identificatori amprenta, ADN-ul, irisul, mâna, vocea, fața etc. Acești identificatori pot fi folosiți individual (ex: doar fața) sau în combinație (ex: amprenta și fața) pentru a face sistemele mai robuste.

Recunoașterea facială, una dintre cele mai folosite tehnologii biometrice, este procesul de identificare al unei persoane sau al unui grup de oameni dintr-o imagine sau videoclip folosind fața ca identificator biometric.

Cartea "Handbook of Face Recognition" [2] definește două moduri de operare pentru un sistem de recunoaștere facială: verificarea feței și identificarea feței.

"Poate funcționa într-unul sau în ambele moduri: (1) verificarea facială (sau autentificare) și (2) identificarea facială (sau recunoaștere). Verificarea implică compararea imaginii faciale prezentate cu imaginea șablon din baza de date a persoanei a cărei identitate este reclamată (comparare unu la unu). Identificarea implică compararea imaginii faciale prezentate cu toate șabloanele din baza de date, încercând să identifice persoana din imagine (comparare unu la mai multe)."

În general, sistemele de recunoaștere facială sunt implementate printr-o secvență de pași. În figura de mai jos se poate vizualiza o implementare standard.

Fig.1. Implementare standard de recunoaștere a feței. [2]

Primul modul al unui sistem de recunoaștere facială este modulul de detectare a feței - "Face Detection". Rolul acestui modul este de a detecta și a extrage fața unei persoane dintr-o imagine. Următorul modul este modulul de aliniere al feței - "Face Alignment". Acesta identifică structura geometrică a fețelor umane și aplică diferite tehnici de procesare ale imaginilor pentru a rezolva problemele generate de variația luminii sau a contrastului redus. Imaginea rezultată este folosită ca intrare pentru modulul de "Feature extraction". Rolul acestuia este de a extrage informații utile care pot fi folosite pentru a face distincție între persoane. În ultimul modul, "Face Matching", se face o comparație între caracteristicile extrase din imaginea dată ca intrare sistemului și caracteristicile salvate în baza de date.

Arhitecturi deep learning pentru recunoașterea facială

În ultimele trei decenii, au fost testate diferite tehnici de recunoaștere facială, tehnici care au avut mai mult sau mai puțin succes. Articolul "Deep Face Recognition: A survey" [3] oferă o trecere în revistă a celor mai importante tehnici:

"Abordările holistice au dominat comunitatea de recunoaștere facială în anii '90. La începutul anilor 2000, abordările handcrafted local descriptors au devenit populare, iar abordarea modulară a învățării caracteristicilor a fost introdusă la sfârșitul anilor 2000. În 2014, DeepFace [195] și DeepID [187] au obținut performanțe excelente, iar cercetarea s-a îndreptat către abordările bazate pe deep learning. " [3]

Dar ce se înțelege prin deep learning?

Deep learning este un subdomeniu al machine learning, bazat pe rețele neuronale artificiale. Aceste rețele neuronale artificiale sunt sisteme de calcul care imită modul în care funcționează creierul uman. În acest fel, sarcina de îndeplinit este "descoperită" de rețea, nu este scrisă cu reguli specifice de către programator. Putem spune că rețeaua este capabilă să "învețe" dintr-un set de date.

O mulțime de materiale au fost scrise despre acest subiect. Pentru o înțelegere mai aprofundată, va recomandăm următoarea carte "Deep Learning (Adaptive Computation and Machine Learning series)" de Ian Goodfellow, Yoshua Bengio, Aaron Courville. [4]

În ultimul deceniu, multe implementări ale sistemelor de recunoaștere facială utilizând deep learning au arătat performanțe uimitoare, care, în unele cazuri, au depășit performanțele umane.

Cele mai populare arhitecturi de recunoaștere facială utilizând deep learning sunt prezentate în figura de mai jos:

Fig. 2. Evoluția arhitecturilor de recunoaștere facială utilizând deep learning.

În continuare, vom face o scurtă descriere a acestor arhitecturi.

DeepFace este un model de recunoaștere facială creat de un grup de cercetători de la Facebook Research AI și Universitatea Tel Aviv. Ei au publicat inovațiile aduse și rezultatele obținute în lucrarea intitulată "DeepFace: Closing the Gap to Human Level Performance in Verification Face" [5].

Fig. 3. Arhitectura DeepFace. [5]

Arhitectura este alcătuită dintr-un strat de convoluție cu 32 filtre de 11x11x3, urmat de un strat pooling, un al doilea strat de convoluție cu 16 filtre de 9x9x32, urmat de 3 straturi locally connected și 2 straturi fully connected.

DeepFace a fost antrenat folosind un set de date de la Facebook - setul de date "Social Face Classification", care include 4,4 milioane de fețe etichetate. Autorii au evaluat modelul pe setul de date "Labeled Faces in the Wild", obținând o acuratețe de 97,35%, foarte aproape de performanța umană: 97,53%.

FaceNet este un model de recunoaștere facială, descris de Florian Schroff și colaboratorii de la Google în lucrarea intitulată "FaceNet: A Unified Embedding for Face Recognition and Clustering". [6]

Structura modelului FaceNet este prezentată în figura 4:

Fig. 4. Structura modelului FaceNet. [6]

Pentru procesul de antrenare au fost utilizate două tipuri de arhitecturi deep convolutional : arhitectura Zeiler & Fergus și modele de tip inception GoogLeNet.

Modelul FaceNet antrenează rețeaua CNN să "învețe" un spațiu vectorial de caracteristici din imaginile faciale, spațiu cunoscut sub denumirea de "embedding", folosind funcția de cost triplet loss (inovație adusă de către autorii modelului).

"Metoda noastră se bazează pe învățarea unei mapări (Euclidian embedding) pentru fiecare imagine de către o rețea deep convoluțional. Rețeaua este antrenată în așa fel încât distanțele euclidiene (L2 squares) din spațiul embedding să corespundă similarităților dintre fețe: fețe ale aceleiași persoane vor fi mapate la o distanță mai mică una față de alta, pe când fețe ale unor persoane diferite vor avea o distanță mai mare ."

- "FaceNet: A Unified Embedding for Face Recognition and Clustering". [6]

Modelul a fost evaluat pe setul de date "Labeled Faces în the Wild (LFW)", obținând o acuratețe record de 99,63%. Pe setul de date YouTube Faces (YTF) se obține o acuratețe de 95,12%.

Pentru a putea antrena o rețea de deep learning cu rezultate foarte bune este nevoie de un set de date suficient de mare. Până în 2015, doar marile companii ( Facebook, Google) dețineau metodologia necesară și posibilitățile financiare de a dezvolta astfel de seturi .

Deoarece aceste seturi aparțineau companiilor private, iar mediile academice nu aveau acces la ele pentru a-și continua cercetarea, VGG (Visual Geometry Group) a publicat o procedură formală ce permite dezvoltarea unui set de date suficient de mare pentru a putea obține rezultate comparabile cu cele ale companiilor private. Metodologia și setul de date sunt disponibile public [7]. Pentru a demonstra eficacitatea setului de date, au testat modelul utilizând arhitectura de VGGNet prezentată în figura de mai jos:

Fig. 5. VGGNet architecture. [8]

Ca și în cazul celorlalte modele prezentate, evaluarea modelului a fost efectuată pe setul de date LFW obținând o precizie de 98,95% (rezultat comparabil cu FaceNet) și pe YTF cu o precizie de 97,3%.

Doi ani mai târziu, VGG a dezvoltat un alt set de date pentru antrenarea și evaluarea unor modele mai bune - VGGFace2.

"Setul de date a fost colectat având în vedere trei obiective: (i) să aibă atât un număr mare de identități diferite, cât și un număr mare de imagini pentru fiecare identitate; (ii) să acopere o gamă largă în ceea ce privește poziția feței, vârsta sau etnia unei persoane; și (iii) pentru a minimiza efectele produse de etichetarea greșită a identităților.[...] Pentru a evalua performanța recunoașterii faciale folosind noul set de date VGGFace2, s-a antrenat modelul cu ResNet-50 (cu sau fără blocuri Squeeze and Excitation) pe 3 seturi: VGGFace2, pe MS-Celeb-1M și pe uniunea lor, și arătăm că antrenarea pe VGGFace2 conduce la performanțe de recunoaștere îmbunătățite în ceea privește poziția feței și vârsta. În cele din urmă, folosind modelele antrenate pe aceste seturi de date, demonstrăm performanțe de ultimă generație pe seturile de date IJB, depășind performanțele anterioare cu o marjă mare. "

- "VGGFace2: A dataset for recognising faces across pose and age" [9]

Anii 2017 și 2018 aduc noi îmbunătățiri pentru funcția de pierdere (loss function). Funcția de pierdere are rolul de a minimiza eroarea în timpul antrenării rețelei de deep learning.

Modelele SphereFace și ArcFace propun noi funcții de pierdere: angular softmax și additive angular margin . Cele două funcții permit rețelelor de deep learning să învețe caracteristici cât mai discriminatorii (comparativ cu alte funcții de pierdere - triplet loss, softmax loss, intra-loss).

Pentru aprofundarea subiectului, celor cu cunoștințe solide de matematică, le recomandăm să studieze lucrările celor două modele: "SphereFace: Deep Hypersphere Embedding for Face Recognition" [10] și "ArcFace: Additive Angular Margin Loss for Deep Face Recognition". [11]

Tabelul din Figura 6 oferă o privire de ansamblu (funcție de pierdere, arhitectură, set de date, acuratețe) asupra metodelor de recunoaștere facială prin deep learning.

Dificultăți tehnice

Deși în ultima perioadă recunoașterea facială a fost îmbunătățită datorită metodelor deep learning și a progreselor tehnologice, există încă dificultăți tehnice de depășit.

Securitate

Ca orice alt sistem informațional, sistemele de recunoaștere facială pot fi atacate. Unele dintre cele mai utilizate metode de atac sunt: ​​atac de tip prezentare (presentation attack), atac de tip adversar (adversarial attack), atac de tip șablon (template attack).

Atacul de tip prezentare constă în inducerea în eroare a sistemului cu un dispozitiv electronic de afișare sau cu o poză cu imaginea unei persoane.

Un atac de tip adversar constă în mici modificări aplicate imaginii de intrare astfel încât sistemul de recunoaștere facială să fie indus în eroare și să clasifice incorect imaginea.

Atacul de tip șablon constă în reconstruirea imaginii faciale originale dintr-un șablon facial sustras (șablon generat de rețeaua de deep learning) și folosirea imaginii reconstruite pentru a accesa sistemul.

Fig. 6. Acuratețea diferitelor metode de recunoaștere facială evaluate pe setul de date LFW [3]

Variabilitate redusă a aspectului facial

Există diverse situații în care pentru un sistem de identificare facială este dificil să identifice persoana. Unele dintre cele mai dificile situații sunt cele de variabilitate redusă a aspectului facial: gemeni identici, o persoană înainte și după operație, aceeași persoană dar de vârstă diferită, asemănări între mamă - fiică și așa mai departe.

Din cauza acestor mici variații, sistemele de identificare facială întâmpină greutăți în a extrage caracteristicile necesare pentru efectuarea unei identificări valide.

Soluțiile posibile sunt descrise în "Deep Face Recognition: A Survey".[3]

"O soluție fiabilă este utilizarea mai multor surse de date biometrice[168]. Aceste surse de date pot corespunde diferitelor trăsături biometrice (de exemplu, față + mână [169]), senzori (de exemplu, camere foto 2D + 3D), tehnici de extragere și comparare a caracteristicilor, sau instanțe (de exemplu: o secvență de imagini cu diferite poziții ale feței." [3]

Probleme de confidențialitate

Pentru o funcționare eficientă, sistemele de identificare facială utilizează seturi largi cu imagini ale fețelor utilizatorilor.

În acest context, cel puțin două probleme apar în ceea ce privește confidențialitatea utilizatorilor:

Pentru a proteja confidențialitatea utilizatorilor se pot implementa diferite soluții:

Aceste rețele sunt realizate cu scopul de a face imposibilă identificarea genului unei persoane în timp ce taskul de identificare nu este afectat.

"Funcția de pierdere utilizată pentru antrenarea acestei rețele are trei scopuri: unul să asigure că imaginea perturbată este o imagine realistă; altul să asigure că genul persoanei nu poate fi identificat; și al treilea să asigure că performanța de recunoaștere nu este influențată de perturbarea imaginii." [13]

Referințe

[1] "HIMSS Dictionary of Health Information and Technology Terms, Acronyms and Organizations", editia a 5-a, de HIMSS

[2] "Handbook of Face Recognition", First Edition, 2005, by Stan Z. Li, Anil K. Jain

[3] "Deep Face Recognition: A survey", 2019, Mei Wang, Weihong Deng

[4] "Deep Learning (Adaptive Computation and Machine Learning series)" by Ian Goodfellow, Yoshua Bengio, Aaron Courville

[5] "DeepFace: Closing the Gap to Human-Level Performance in Face Verification" by Yaniv Taigman et al.

[6] "FaceNet: A Unified Embedding for Face Recognition and Clustering" by Florian Schroff, et al.

[7] "Deep Face Recognition" by Omar M. Parkhi et al.

[8] "Convolutional Neural Network Layers and Architectures" by Timea Bezdan and Nebojsa Bacanin

[9] "VGGFace2: A dataset for recognising faces across pose and age" by Qiong Cao et al.

[10] "SphereFace: Deep Hypersphere Embedding for Face Recognition" by Weiyang Liu et al.

[11] "ArcFace: Additive Angular Margin Loss for Deep Face Recognition" by Jiankang Deng et al.

[12] "Privacy-Preserving Face Recognition" by Zekeriya Erkin et al.

[13] "Semi-Adversarial Networks: Convolutional Autoencoders for Imparting Privacy to Face Images" by Vahid Mirjalili et al.

NUMĂRUL 150 - Technologiile SAP ABAP

Sponsori

  • Accenture
  • BT Code Crafters
  • Bosch
  • Betfair
  • MHP
  • BoatyardX
  • .msg systems
  • P3 group
  • Ing Hubs
  • Cognizant Softvision
  • Colors in projects