O introducere blândă în învățarea profundă pentru recunoașterea feței

Tweet Share Share

actualizată ultima dată pe 5 iulie 2019

recunoașterea feței este problema identificării și verificării persoanelor dintr-o fotografie după fața lor.

este o sarcină care este trivial efectuată de oameni, chiar și sub lumină variabilă și atunci când fețele sunt schimbate în funcție de vârstă sau obstrucționate cu accesorii și păr facial. Cu toate acestea, a rămas o problemă provocatoare de viziune pe calculator de zeci de ani până de curând.

metodele de învățare profundă sunt capabile să utilizeze seturi de date foarte mari de fețe și să învețe reprezentări bogate și compacte ale fețelor, permițând modelelor moderne să funcționeze mai întâi și mai târziu să depășească capacitățile de recunoaștere a feței oamenilor.

în acest post, veți descoperi problema recunoașterii feței și modul în care metodele de învățare profundă pot obține performanțe supraomenești.

după ce ați citit această postare, veți ști:

  • recunoașterea feței este o problemă largă de identificare sau verificare a persoanelor din fotografii și videoclipuri.
  • recunoașterea feței este un proces format din detectarea, alinierea, extragerea caracteristicilor și o sarcină de recunoaștere
  • modelele de învățare profundă abordate mai întâi au depășit performanța umană pentru sarcinile de recunoaștere a feței.

începeți-vă proiectul cu noua mea carte Deep Learning For Computer Vision, inclusiv tutoriale pas cu pas și fișierele de cod sursă Python pentru toate exemplele.

Să începem.

o introducere blândă în învățarea profundă pentru recunoașterea feței

o introducere blândă în învățarea profundă pentru recunoașterea feței
fotografie de Susanne Nilsson, unele drepturi rezervate.

Prezentare generală

acest tutorial este împărțit în cinci părți; acestea sunt:

  1. fețe în fotografii
  2. procesul de recunoaștere automată a feței
  3. sarcina de detectare a feței
  4. sarcini de recunoaștere a feței
  5. învățare profundă pentru recunoașterea feței

fețe în fotografii

există adesea nevoia de a recunoaște automat persoanele dintr-o fotografie.

există multe motive pentru care am putea dori să recunoaștem automat o persoană într-o fotografie.

de exemplu:

  • am putea dori să restricționeze accesul la o resursă pentru o singură persoană, numită autentificare față.
  • este posibil să dorim să confirmăm că persoana se potrivește cu ID-ul său, numit verificarea feței.
  • este posibil să dorim să atribuim un nume unei fețe, numită identificare a feței.

în general, ne referim la aceasta ca la problema „recunoașterii automate a feței” și se poate aplica atât fotografiilor statice, cât și fețelor din fluxurile video.

oamenii pot îndeplini această sarcină foarte ușor.

putem găsi fețele într-o imagine și să comentăm cine sunt oamenii, dacă sunt cunoscuți. Putem face acest lucru foarte bine, cum ar fi atunci când oamenii au îmbătrânit, poartă ochelari de soare, au păr colorat diferit, se uită în direcții diferite și așa mai departe. Putem face acest lucru atât de bine încât găsim fețe unde nu există, cum ar fi în nori.cu toate acestea, aceasta rămâne o problemă greu de realizat automat cu software-ul, chiar și după 60 sau mai mulți ani de cercetare. Până poate foarte recent.

de exemplu, recunoașterea imaginilor feței dobândite într-un mediu exterior cu modificări ale iluminării și / sau pozei rămâne o problemă în mare parte nerezolvată. Cu alte cuvinte, sistemele actuale sunt încă departe de capacitatea sistemului de percepție umană.

— recunoașterea feței: un sondaj de literatură, 2003.

vrei rezultate cu Deep Learning pentru Computer Vision?

Ia-Mi gratuit 7 zile de e-mail crash course acum (cu codul de probă).

Faceți clic pentru a vă înscrie și pentru a obține, de asemenea, o versiune gratuită PDF Ebook a cursului.

descărcați Mini-cursul gratuit

procesul de recunoaștere automată a feței

recunoașterea feței este problema identificării sau verificării fețelor dintr-o fotografie.

o declarație generală a problemei recunoașterii automate a fețelor poate fi formulată după cum urmează: date imagini statice sau video ale unei scene, identificați sau verificați una sau mai multe persoane din scenă folosind o bază de date stocată de fețe

— recunoașterea feței: un sondaj de literatură, 2003.

recunoașterea feței este adesea descrisă ca un proces care implică mai întâi patru pași; acestea sunt: detectarea feței, alinierea feței, extragerea caracteristicilor și, în final, recunoașterea feței.

  1. detectarea feței. Localizați una sau mai multe fețe din imagine și marcați cu o casetă de delimitare.
  2. alinierea feței. Normalizați fața pentru a fi în concordanță cu baza de date, cum ar fi geometria și fotometria.
  3. extracție caracteristică. Extrageți caracteristici de pe față care pot fi utilizate pentru sarcina de recunoaștere.
  4. recunoașterea feței. Efectuați potrivirea feței cu una sau mai multe fețe cunoscute într-o bază de date pregătită.

un sistem dat poate avea un modul sau un program separat pentru fiecare pas, ceea ce a fost în mod tradițional cazul, sau poate combina unele sau toate etapele într-un singur proces.

o prezentare utilă a acestui proces este oferită în cartea „Manual de recunoaștere a feței”, prezentată mai jos:

Prezentare generală a pașilor dintr-un proces de recunoaștere a feței

Prezentare generală a pașilor dintr-un proces de recunoaștere a feței. Preluat din „manualul de recunoaștere a feței”, 2011.

sarcina de detectare a feței

detectarea feței este primul pas non-banal în recunoașterea feței.

este o problemă de recunoaștere a obiectelor care necesită identificarea atât a locației fiecărei fețe dintr-o fotografie (de exemplu, poziția), cât și localizarea feței (de exemplu, cu o cutie de încadrare). Recunoașterea obiectelor în sine este o problemă provocatoare, deși în acest caz este similară, deoarece există un singur tip de obiect, de exemplu fețe, care trebuie localizate, deși fețele pot varia sălbatic.

fața umană este un obiect dinamic și are un grad ridicat de variabilitate în aspectul său, ceea ce face ca detectarea feței să fie o problemă dificilă în viziunea computerului.

— detectarea feței: un sondaj, 2001.

Mai mult, deoarece este primul pas într-un sistem mai larg de recunoaștere a feței, detectarea feței trebuie să fie robustă. De exemplu, o față nu poate fi recunoscută dacă nu poate fi detectată mai întâi. Asta înseamnă că fețele trebuie detectate cu tot felul de orientări, unghiuri, niveluri de lumină, coafuri, pălării, ochelari, păr facial, machiaj, vârste și așa mai departe.

ca procesor frontal vizual, un sistem de detectare a feței ar trebui să poată îndeplini sarcina indiferent de iluminare, orientare și distanța camerei

-detectarea feței: un sondaj, 2001.

lucrarea din 2001 intitulată „detectarea feței: un sondaj” oferă o taxonomie a metodelor de detectare a feței care pot fi împărțite în general în două grupe principale:

  • bazate pe caracteristici.
  • bazat pe imagini.

detectarea feței bazată pe caracteristici utilizează filtre artizanale care caută și localizează fețe în fotografii pe baza unei cunoașteri profunde a domeniului. Ele pot fi foarte rapide și foarte eficiente atunci când filtrele se potrivesc, deși pot eșua dramatic atunci când nu, de exemplu, făcându-le oarecum fragile.

… folosiți explicit cunoașterea feței și urmați metodologia clasică de detectare în care sunt derivate caracteristici de nivel scăzut înainte de analiza bazată pe cunoștințe. Proprietățile aparente ale feței, cum ar fi culoarea pielii și geometria feței, sunt exploatate la diferite niveluri ale sistemului.

— detectarea feței: un sondaj, 2001.

alternativ, detectarea feței bazată pe imagine este holistică și învață cum să localizeze și să extragă automat fețele din întreaga imagine. Rețelele neuronale se încadrează în această clasă de metode.

… detectarea feței adresei ca problemă generală de recunoaștere. Reprezentările bazate pe imagini ale fețelor, de exemplu în matrice de intensitate 2D, sunt clasificate direct într-un grup de fețe folosind algoritmi de antrenament fără derivarea și Analiza caracteristicilor. aceste tehnici relativ noi încorporează implicit cunoașterea feței în sistem prin scheme de cartografiere și instruire.

— detectarea feței: un sondaj, 2001.poate că metoda dominantă de detectare a feței folosită de mulți ani (și a fost folosită în multe camere) a fost descrisă în lucrarea din 2004 intitulată „detecție robustă a obiectelor în timp real”, numită Cascada detectorului sau pur și simplu „cascadă.”

detectorul lor, numit detector cascade, constă dintr-o secvență de Clasificatoare de față simple până la complexe și a atras eforturi ample de cercetare. În plus, detector cascade a fost implementat în multe produse comerciale, cum ar fi smartphone-uri și camere digitale. În timp ce detectoarele în cascadă pot găsi cu precizie fețe verticale vizibile, adesea nu reușesc să detecteze fețe din unghiuri diferite, de exemplu vedere laterală sau fețe parțial ocluzate.

— detectarea feței cu mai multe vizualizări folosind rețele neuronale convoluționale profunde, 2015.

pentru un tutorial despre învățarea profundă pentru detectarea feței, consultați:

  • cum se efectuează detectarea feței cu învățarea profundă în Keras

sarcini de recunoaștere a feței

sarcina recunoașterii feței este largă și poate fi adaptată nevoilor specifice ale unei probleme de predicție.

de exemplu, în lucrarea din 1995 intitulată „recunoașterea umană și mașină a fețelor: un sondaj”, autorii descriu trei sarcini de recunoaștere a feței:

  • potrivirea feței: găsiți cea mai bună potrivire pentru o anumită față.
  • similitudine față: găsiți fețe care sunt cele mai asemănătoare cu o față dată.
  • transformarea feței: generează fețe noi care sunt similare cu o față dată.

acestea rezumă aceste trei sarcini separate după cum urmează:

potrivirea necesită ca imaginea feței care se potrivește candidatului să fie într-un set de imagini ale feței selectate de sistem. Detectarea similitudinii necesită, pe lângă potrivirea, găsirea de imagini ale fețelor care sunt similare cu o față rechemată, acest lucru necesită ca măsura de similitudine utilizată de sistemul de recunoaștere să se potrivească îndeaproape cu măsurile de similitudine utilizate de aplicațiile de transformare umană necesită ca imaginile noi create de sistem să fie similare cu amintirile umane ale unei fețe.

— recunoașterea umană și mașină a fețelor: un sondaj, 1995.

cartea din 2011 privind recunoașterea feței intitulată „Manual de recunoaștere a feței” descrie două moduri principale de recunoaștere a feței, ca:

  • verificarea feței. O cartografiere unu-la-unu a unei fețe date împotriva unei identități cunoscute (de exemplu, aceasta este persoana?).
  • identificarea feței. O cartografiere unu-la-mulți pentru o anumită față împotriva unei baze de date de fețe cunoscute (de exemplu, cine este această persoană?).

se așteaptă ca un sistem de recunoaștere a feței să identifice automat fețele prezente în imagini și videoclipuri. Poate funcționa în unul sau ambele moduri: (1) verificarea feței (sau autentificarea) și (2) identificarea feței (sau recunoașterea).

— pagina 1, Manual de recunoaștere a feței. 2011.

putem descrie problema recunoașterii feței ca o sarcină de modelare predictivă supravegheată instruită pe eșantioane cu intrări și ieșiri.

în toate activitățile, intrarea este o fotografie care conține cel puțin o față, cel mai probabil o față detectată care poate fi, de asemenea, aliniată.

ieșirea variază în funcție de tipul de predicție necesar pentru sarcină; de exemplu:

  • poate fi apoi o etichetă de clasă binară sau o probabilitate de clasă binară în cazul unei sarcini de verificare a feței.
  • poate fi o etichetă de clasă categorică sau un set de probabilități pentru o sarcină de identificare a feței.
  • poate fi o metrică de similitudine în cazul unei sarcini de tip similitudine.

învățarea profundă pentru recunoașterea feței

recunoașterea feței a rămas un domeniu activ de cercetare în viziunea computerizată.

poate că una dintre cele mai cunoscute și adoptate metode de „învățare automată” pentru recunoașterea feței a fost descrisă în lucrarea din 1991 intitulată „recunoașterea feței folosind fețele proprii.”Metoda lor, numită pur și simplu” fețe proprii”, a fost o piatră de hotar, deoarece a obținut rezultate impresionante și a demonstrat capacitatea unor abordări holistice simple.

imaginile feței sunt proiectate pe un spațiu caracteristic („spațiul feței”) care codifică cel mai bine variația dintre imaginile feței cunoscute. Spațiul feței este definit de” fețele proprii”, care sunt vectorii proprii ai setului de fețe; ele nu corespund neapărat unor caracteristici izolate, cum ar fi ochii, urechile și nasul

— recunoașterea feței folosind fețele proprii, 1991.

lucrarea din 2018 intitulată „Deep Face Recognition: a Survey” oferă un rezumat util al cercetării de recunoaștere a feței din ultimii aproape 30 de ani, subliniind tendința largă de la metodele de învățare holistică (cum ar fi fețele proprii), la detectarea caracteristicilor artizanale locale, la metodele de învățare superficială, la metodele de învățare profundă care sunt în prezent de ultimă generație.

abordările holistice au dominat comunitatea de recunoaștere a feței în anii 1990. La începutul anilor 2000, descriptorii locali artizanali au devenit populari, iar abordarea locală de învățare a caracteristicilor a fost introdusă la sfârșitul anilor 2000. performanța se îmbunătățește constant de la aproximativ 60% la peste 90%, în timp ce învățarea profundă crește performanța la 99,80% în doar trei ani.

— recunoașterea profundă a feței: un sondaj, 2018.

având în vedere descoperirea AlexNet în 2012 pentru problema mai simplă a clasificării imaginilor, a existat o serie de cercetări și publicații în 2014 și 2015 privind metodele de învățare profundă pentru recunoașterea feței. Capabilitățile au obținut rapid performanțe la nivel aproape uman, apoi au depășit performanța la nivel uman pe un set de date standard de recunoaștere a feței într-o perioadă de trei ani, ceea ce reprezintă o rată uluitoare de îmbunătățire, având în vedere deceniile anterioare de efort.

există probabil patru sisteme de referință pentru învățarea profundă pentru recunoașterea feței care au condus aceste inovații; acestea sunt: DeepFace, seria de sisteme DeepID, VGGFace și FaceNet. Să atingem pe scurt fiecare.

DeepFace este un sistem bazat pe rețele neuronale convoluționale profunde descrise de Yaniv Taigman și colab. de la Facebook AI Research și Tel Aviv. A fost descris în lucrarea din 2014 intitulată „DeepFace: închiderea decalajului la performanța la nivel uman în verificarea feței.”A fost probabil primul salt major înainte folosind învățarea profundă pentru recunoașterea feței, obținând performanțe aproape la nivel uman pe un set de date standard de referință.

metoda noastră atinge o precizie de 97,35% pe fețele etichetate în setul de date Wild (LFW), reducând eroarea stadiului actual al tehnicii cu mai mult de 27%, apropiindu-se îndeaproape de performanța la nivel uman.

— DeepFace: închiderea decalajului la performanța la nivel uman în verificarea feței, 2014.

DeepID, sau „Deep hidden IDentity features”, este o serie de sisteme (de exemplu, DeepID, DeepID2, etc.), descris pentru prima dată de Yi Sun și colab. în lucrarea lor din 2014 intitulată „reprezentarea feței de învățare profundă din prezicerea a 10.000 de clase.”Sistemul lor a fost descris pentru prima dată la fel ca DeepFace, deși a fost extins în publicațiile ulterioare pentru a sprijini atât sarcinile de identificare, cât și de verificare prin instruire prin pierderi contrastive.

provocarea cheie a recunoașterii feței este de a dezvolta reprezentări eficiente ale caracteristicilor pentru reducerea variațiilor intra-personale în timp ce mărește diferențele inter-personale. Sarcina de identificare a feței mărește variațiile inter-personale prin extragerea caracteristicilor DeepID2 extrase din identități diferite, în timp ce sarcina de verificare a feței reduce variațiile intra-personale trăgând împreună caracteristicile DeepID2 extrase din aceeași identitate, ambele fiind esențiale pentru recunoașterea feței.

— reprezentarea feței de învățare profundă prin identificare-verificare comună, 2014.

sistemele DeepID au fost printre primele modele de învățare profundă care au obținut performanțe mai bune decât cele umane în sarcină, de exemplu DeepID2 a obținut 99,15% pe setul de date etichetate Faces in the Wild (LFW), care este o performanță mai bună decât cea umană de 97,53%. Sistemele ulterioare, cum ar fi FaceNet și VGGFace, s-au îmbunătățit la aceste rezultate.

FaceNet a fost descris de Florian Schroff și colab. la Google în lucrarea lor din 2015 intitulată ” FaceNet: O încorporare unificată pentru recunoașterea feței și gruparea.”Sistemul lor a obținut apoi rezultate de ultimă generație și a prezentat o inovație numită „pierdere tripletă” care a permis codificarea eficientă a imaginilor ca vectori de caracteristici care au permis calculul rapid al similarității și potrivirea prin calcule la distanță.

FaceNet, care învață direct o mapare din imaginile feței într-un spațiu euclidian compact, unde distanțele corespund direct unei măsuri de asemănare a feței. Metoda noastră folosește o rețea convoluțională profundă instruită pentru a optimiza direct încorporarea în sine, mai degrabă decât un strat intermediar de blocaj ca în abordările anterioare de învățare profundă. Pentru a instrui, vom folosi tripleti de potrivire aproximativ aliniate/non-potrivire patch— uri de fata generate folosind un roman on-line triplet metoda mining

– FaceNet: o încorporare unificată pentru recunoașterea feței și Clustering, 2015.

pentru un tutorial despre FaceNet, vezi:

  • cum se dezvoltă un sistem de recunoaștere a feței folosind FaceNet în Keras

VGGFace (pentru lipsa unui nume mai bun) a fost dezvoltat de Omkar Parkhi și colab. de la grupul de geometrie vizuală (VGG) de la Oxford și a fost descris în lucrarea lor din 2015 intitulată „recunoașterea profundă a feței.”În plus față de un model mai bine reglat, accentul muncii lor a fost pe modul de colectare a unui set de date de formare foarte mare și de a folosi acest lucru pentru a instrui un model CNN foarte profund pentru recunoașterea feței, care le-a permis să obțină rezultate de ultimă oră pe seturi de date standard.

… arătăm cum un set de date la scară foarte mare (imagini de 2,6 m, peste 2,6 k persoane) poate fi asamblat printr— o combinație de automatizare și uman în buclă

– Deep Face Recognition, 2015.

pentru un tutorial despre VGGFace, consultați:

  • cum să efectuați recunoașterea feței cu VGGFace2 în Keras

deși acestea pot fi etapele cheie timpurii în domeniul învățării profunde pentru viziunea computerizată, progresul a continuat, cu multă inovație axată pe funcțiile de pierdere pentru a instrui eficient modelele.

pentru un rezumat excelent actualizat, consultați lucrarea din 2018 „recunoașterea profundă a feței: un sondaj.”

lecturi suplimentare

această secțiune oferă mai multe resurse pe această temă dacă doriți să aprofundați.

Cărți

  • Manual de recunoaștere a feței, ediția a doua, 2011.

lucrări de recunoaștere a feței

  • recunoașterea feței: un sondaj de literatură, 2003.
  • detectarea feței: un sondaj, 2001.
  • recunoașterea umană și mașină a fețelor: un sondaj, 1995.
  • detecție robustă a obiectelor în timp real, 2004.
  • recunoașterea feței folosind fețele proprii, 1991.

Deep Learning Face Recognition Papers

  • recunoașterea profundă a feței: un sondaj, 2018.
  • recunoașterea profundă a feței, 2015.
  • FaceNet: o încorporare unificată pentru recunoașterea feței și gruparea, 2015.
  • DeepFace: închiderea decalajului față de performanța la nivel uman în verificarea feței, 2014.
  • reprezentarea feței de învățare profundă prin identificare-verificare comună, 2014.
  • Deep Learning reprezentarea feței de la prezicerea a 10.000 de clase, 2014.
  • detectarea feței Multi-view utilizând rețele neuronale convoluționale profunde, 2015.
  • din răspunsurile părților faciale la detectarea feței: o abordare de învățare profundă, 2015.
  • depășind performanța de verificare a feței la nivel uman pe LFW cu GaussianFace, 2014.

articole

  • sistem de recunoaștere facială, Wikipedia.
  • recunoaștere facială, Wikipedia.
  • detectarea feței, Wikipedia.
  • fețe etichetate în setul de date sălbatic

rezumat

În acest post, ați descoperit problema recunoașterii feței și modul în care metodele de învățare profundă pot obține performanțe supraomenești.

Mai exact, ați învățat:

  • recunoașterea feței este o problemă largă de identificare sau verificare a persoanelor din fotografii și videoclipuri.
  • recunoașterea feței este un proces format din detectarea, alinierea, extragerea caracteristicilor și o sarcină de recunoaștere
  • modelele de învățare profundă abordate mai întâi au depășit performanța umană pentru sarcinile de recunoaștere a feței.

aveți întrebări?
Pune-ți întrebările în comentariile de mai jos și voi face tot posibilul să răspund.

dezvoltați modele de învățare profundă pentru viziune astăzi!

învățare profundă pentru viziunea computerului

Dezvoltați-vă propriile modele de viziune în câteva minute

…cu doar câteva linii de cod python

Descoperiți cum în noul meu Ebook:
Deep Learning pentru Computer Vision

acesta oferă tutoriale de auto-studiu pe teme cum ar fi:
clasificarea, detectarea obiectelor (yolo și rcnn), recunoașterea feței (vggface și facenet), pregătirea datelor și multe altele…

în cele din urmă aduceți învățarea profundă proiectelor dvs. de viziune

săriți academicienii. Doar Rezultate.

vezi ce e înăuntru

Tweet Share Share

Related Posts

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *