laatst bijgewerkt op 5 juli 2019
gezichtsherkenning is het probleem van het identificeren en verifiëren van mensen op een foto aan de hand van hun gezicht.
Het is een taak die triviaal wordt uitgevoerd door mensen, zelfs onder wisselend licht en wanneer gezichten worden veranderd door leeftijd of belemmerd door Accessoires en gezichtshaar. Toch is het bleef een uitdagende computer visie probleem voor decennia tot voor kort.
Deep learning-methoden zijn in staat om zeer grote datasets van gezichten te benutten en rijke en compacte representaties van gezichten te leren, waardoor moderne modellen eerst even goed presteren en later beter presteren dan de gezichtsherkenningscapaciteiten van mensen.
in dit bericht, zult u het probleem van gezichtsherkenning ontdekken en hoe diep leermethoden bovenmenselijke prestaties kunnen bereiken.
na het lezen van dit bericht, zult u weten:
- gezichtsherkenning is een breed probleem bij het identificeren of verifiëren van mensen in foto ’s en video’ s.
- gezichtsherkenning is een proces dat bestaat uit detectie, uitlijning, extractie van functies en een herkenningstaak
- Deep learning-modellen die eerst werden benaderd en die de menselijke prestaties voor gezichtsherkenningstaken overtroffen.
start uw project met mijn nieuwe boek Deep Learning for Computer Vision, inclusief stap-voor-stap tutorials en de Python broncode bestanden voor alle voorbeelden.
laten we beginnen.
Een Zachte introductie tot Deep Learning voor gezichtsherkenning
Foto door Susanne Nilsson, enkele rechten voorbehouden.
- overzicht
- gezichten in foto’ s
- wilt u resultaten met Deep Learning voor Computer Vision?
- proces van automatische gezichtsherkenning
- gezichtsherkenning taak
- Gezichtsherkenningstaken
- Deep Learning voor gezichtsherkenning
- verder lezen
- Books
- gezichtsherkenning Papers
- Deep Learning Face Recognition Papers
- Articles
- samenvatting
- ontwikkel Deep Learning modellen voor visie vandaag!
- Ontwikkel uw eigen Visiemodellen in minuten
- breng eindelijk diep leren naar uw Visieprojecten
overzicht
Deze tutorial is verdeeld in vijf delen; ze zijn:
- gezichten in foto ’s
- proces van automatische gezichtsherkenning
- Gezichtsherkenningstaak
- Gezichtsherkenningstaken
- Deep Learning voor gezichtsherkenning
gezichten in foto’ s
vaak is het nodig om de personen op een foto automatisch te herkennen.
er zijn vele redenen waarom we een persoon op een foto automatisch willen herkennen.
bijvoorbeeld:
- mogelijk willen we de toegang tot een bron beperken tot één persoon, face authentication genaamd.
- we willen mogelijk bevestigen dat de persoon overeenkomt met zijn ID, gezichtsverificatie genoemd.
- we willen mogelijk een naam toewijzen aan een gezicht, genaamd gezichtsidentificatie.
in het algemeen noemen we dit het probleem van automatische “gezichtsherkenning” en het kan van toepassing zijn op zowel foto ‘ s als gezichten in videostreams.
mensen kunnen deze taak heel eenvoudig uitvoeren.
we kunnen de gezichten in een afbeelding vinden en commentaar geven over wie de mensen zijn, als ze bekend zijn. We kunnen dit heel goed doen, zoals wanneer de mensen ouder zijn geworden, een zonnebril dragen, verschillend gekleurd haar hebben, in verschillende richtingen kijken, enzovoort. We kunnen dit zo goed doen dat we gezichten vinden waar er geen zijn, zoals in wolken.
niettemin blijft dit een moeilijk probleem om automatisch uit te voeren met software, zelfs na 60 jaar of meer onderzoek. Tot voor kort.
bijvoorbeeld, herkenning van gezichtsopnamen die in een buitenomgeving zijn verkregen met veranderingen in de belichting en/of pose blijft een grotendeels onopgelost probleem. Met andere woorden, de huidige systemen zijn nog ver verwijderd van het vermogen van het menselijk waarnemingssysteem.
— Face Recognition: A Literature Survey, 2003.
wilt u resultaten met Deep Learning voor Computer Vision?
neem nu mijn gratis 7-daagse e-mail spoedcursus (met voorbeeldcode).
Klik om u aan te melden en ontvang ook een gratis PDF Ebook versie van de cursus.
download uw gratis minicursus
proces van automatische gezichtsherkenning
gezichtsherkenning is het probleem van het identificeren of verifiëren van gezichten op een foto.
een algemene verklaring van het probleem van machineherkenning van gezichten kan als volgt worden geformuleerd: geef stilstaande of videobeelden van een scène, identificeer of verifieer een of meer personen in de scène met behulp van een opgeslagen database van gezichten
— gezichtsherkenning: een literatuurstudie, 2003.
gezichtsherkenning wordt vaak beschreven als een proces dat eerst vier stappen omvat: gezichtsherkenning, gezichtsuitlijning, functie-extractie en tenslotte gezichtsherkenning.
- gezichtsherkenning. Zoek een of meer gezichten in de afbeelding en markeer met een begrenzend kader.
- Gezichtsuitlijning. Normaliseer het gezicht om consistent te zijn met de database, zoals geometrie en fotometrie.
- extractie van de functie. Haal functies uit het gezicht die kunnen worden gebruikt voor de herkenningstaak.
- gezichtsherkenning. Matching van het gezicht uit te voeren tegen een of meer bekende gezichten in een voorbereide database.
een bepaald systeem kan voor elke stap een aparte module of programma hebben, wat traditioneel het geval was, of kan sommige of alle stappen in één proces combineren.
een nuttig overzicht van dit proces wordt gegeven in het boek “Handbook of Face Recognition,” hieronder:
overzicht van de stappen in een Gezichtsherkenningsproces. Overgenomen uit” Handbook of Face Recognition, ” 2011.
gezichtsherkenning taak
gezichtsherkenning is de niet-triviale eerste stap in gezichtsherkenning.
Het is een probleem van objectherkenning dat vereist dat zowel de locatie van elk gezicht op een foto wordt geïdentificeerd (bijvoorbeeld de positie) en de omvang van het gezicht wordt gelokaliseerd (bijvoorbeeld met een begrenzend kader). Objectherkenning zelf is een uitdagend probleem, hoewel het in dit geval vergelijkbaar is omdat er slechts één type object, bijvoorbeeld gezichten, gelokaliseerd moet worden, hoewel gezichten enorm kunnen variëren.
het menselijk gezicht is een dynamisch object en heeft een hoge mate van variabiliteit in zijn uiterlijk, waardoor gezichtsdetectie een moeilijk probleem is in computervisie.
— Face Detection: A Survey, 2001.
verder, omdat het de eerste stap is in een breder gezichtsherkenningssysteem, moet gezichtsherkenning robuust zijn. Een gezicht kan bijvoorbeeld niet worden herkend als het niet eerst kan worden gedetecteerd. Dat betekent dat gezichten moeten worden gedetecteerd met allerlei oriëntaties, hoeken, lichtniveaus, kapsels, hoeden, glazen, gezichtshaar, make-up, leeftijden, enzovoort.
als visuele front-end processor moet een gezichtsdetectiesysteem ook in staat zijn de taak te vervullen, ongeacht de belichting, oriëntatie en cameraafstand
— gezichtsdetectie: een enquête, 2001.
het artikel uit 2001 getiteld “Face Detection: A Survey” biedt een taxonomie van gezichtsdetectiemethoden die grofweg in twee hoofdgroepen kunnen worden onderverdeeld:
- Feature-Based.
- Image-Based.
De functiegebaseerde gezichtsherkenning maakt gebruik van handgemaakte filters die gezichten zoeken en lokaliseren in foto ‘ s op basis van een grondige kennis van het domein. Ze kunnen zeer snel en zeer effectief zijn wanneer de filters overeenkomen, hoewel ze dramatisch kunnen falen wanneer ze dat niet doen, bijvoorbeeld waardoor ze enigszins fragiel zijn.
… maak expliciet Gebruik van gezichtskennis en volg de klassieke detectiemethodologie waarbij kenmerken op laag niveau worden afgeleid voorafgaand aan op kennis gebaseerde analyse. De schijnbare eigenschappen van het gezicht, zoals huidskleur en gezichtsgeometrie, worden op verschillende systeemniveaus benut.
— Face Detection: A Survey, 2001.
afwisselend is beeldgebaseerde gezichtsdetectie holistisch en leert hoe men automatisch gezichten uit de gehele afbeelding kan lokaliseren en extraheren. Neurale netwerken passen in deze klasse van methoden.
… gezichtsdetectie aanpakken als een algemeen herkenningsprobleem. Beeldgebaseerde representaties van gezichten, bijvoorbeeld in 2D-intensiteitsarrays, worden direct geclassificeerd in een gezichtsgroep met behulp van trainingsalgoritmen zonder feature-afleiding en-analyse. deze relatief nieuwe technieken brengen face knowledge impliciet in het systeem door middel van het in kaart brengen en trainingsprogramma ‘ s.
— Face Detection: A Survey, 2001.
misschien is de dominante methode voor gezichtsdetectie die al vele jaren wordt gebruikt (en in veel camera ‘ s wordt gebruikt) beschreven in het artikel “robuust Real-time Object Detection,” genaamd de detector cascade of simpelweg “cascade.”
hun detector, de zogenaamde detectorcascade, bestaat uit een reeks eenvoudige tot complexe gezichtsclassifiers en heeft uitgebreide onderzoeksinspanningen aangetrokken. Bovendien is detector cascade ingezet in veel commerciële producten zoals smartphones en digitale camera ‘ s. Terwijl cascade detectoren nauwkeurig zichtbare rechtopstaande gezichten kunnen vinden, kunnen ze vaak gezichten niet detecteren vanuit verschillende hoeken, bijvoorbeeld zijaanzicht of gedeeltelijk afgesloten gezichten.
— Multi-view Face Detection Using Deep Convolutional Neural Networks, 2015.
voor een tutorial over deep learning voor gezichtsdetectie zie:
- Hoe gezichtsdetectie uit te voeren met Deep Learning in Keras
Gezichtsherkenningstaken
de taak van gezichtsherkenning is breed en kan worden afgestemd op de specifieke behoeften van een voorspellingsprobleem.
in het artikel uit 1995 getiteld “Human and machine recognition of faces: A survey” beschrijven de auteurs bijvoorbeeld drie gezichtsherkenningstaken:
- Gezichtsaanpassing: Zoek de beste Overeenkomst voor een bepaald gezicht.
- Gezicht overeenkomst: zoek gezichten die het meest lijken op een gegeven gezicht.
- Gezichtstransformatie: Genereer nieuwe gezichten die vergelijkbaar zijn met een gegeven gezicht.
ze vatten deze drie afzonderlijke taken als volgt samen:
Matching vereist dat de kandidaat-overeenkomende gezichtsafbeelding zich bevindt in een aantal door het systeem geselecteerde gezichtsafbeeldingen. Gelijkvormigheid detectie vereist naast het matchen dat afbeeldingen van gezichten worden gevonden die vergelijkbaar zijn met een teruggeroepen Gezicht dit vereist dat de gelijkenis maatregel gebruikt door het herkenningssysteem nauw overeenkomen met de gelijkenis maatregelen gebruikt door mensen Transformatietoepassingen vereisen dat nieuwe beelden gemaakt door het systeem vergelijkbaar zijn met menselijke herinneringen van een gezicht.
— Human and machine recognition of faces: a survey, 1995.
het boek uit 2011 over gezichtsherkenning getiteld “Handbook of Face Recognition” beschrijft twee hoofdmodi voor gezichtsherkenning::
- Gezichtsverificatie. Een één-op-één afbeelding van een gegeven gezicht tegen een bekende identiteit (bijvoorbeeld is dit de persoon?).
- Gezichtsidentificatie. Een één-op-veel mapping voor een gegeven gezicht tegen een database van bekende gezichten (bijvoorbeeld Wie is deze persoon?).
van een gezichtsherkenningssysteem wordt verwacht dat het gezichten die aanwezig zijn in afbeeldingen en video ‘ s automatisch identificeert. Het kan werken in een of beide van twee modi: (1) gezichtsverificatie (of authenticatie), en (2) gezichtsherkenning (of herkenning).
— Page 1, Handbook of Face Recognition. 2011.
We kunnen het probleem van gezichtsherkenning beschrijven als een onder toezicht staande taak voor voorspellend modelleren, getraind op samples met inputs en outputs.
bij alle taken is de invoer een foto die ten minste één gezicht bevat, waarschijnlijk een gedetecteerd gezicht dat ook uitgelijnd kan zijn.
De uitvoer varieert afhankelijk van het type voorspelling dat vereist is voor de taak; bijvoorbeeld:
- het kan dan een binaire klasse label of binaire klasse waarschijnlijkheid in het geval van een gezicht verificatie taak.
- het kan een categorisch klassenetiket zijn of een reeks waarschijnlijkheden voor een gezichtsidentificatietaak.
- het kan een gelijkvormigheidsmeting zijn in het geval van een gelijkvormigheidstaak.
Deep Learning voor gezichtsherkenning
gezichtsherkenning is een actief onderzoeksgebied in computervisie gebleven.
misschien is een van de meer bekende en gebruikte “machine learning” methoden voor gezichtsherkenning beschreven in het artikel uit 1991 getiteld “Face Recognition Using Eigenfaces.”Hun methode, simpelweg “Eigenfaces” genoemd, was een mijlpaal omdat het indrukwekkende resultaten behaalde en het vermogen van eenvoudige holistische benaderingen aantoonde.
Gezichtsafbeeldingen worden geprojecteerd op een functieruimte (“gezichtsruimte”) die het beste de variatie tussen bekende gezichtsafbeeldingen codeert. De gezichtsruimte wordt gedefinieerd door de “eigenfaces”, die de eigenvectoren van de verzameling gezichten zijn; ze komen niet noodzakelijk overeen met geïsoleerde kenmerken zoals ogen, oren en neuzen
— gezichtsherkenning met Eigenfaces, 1991.
het artikel van 2018 getiteld “Deep Face Recognition: A Survey,” geeft een nuttige samenvatting van het onderzoek naar gezichtsherkenning in de afgelopen bijna 30 jaar, en benadrukt de brede trend van holistische leermethoden (zoals Eigenfaces), tot lokale handgemaakte functiedetectie, tot ondiepe leermethoden, tot eindelijk deep learning-methoden die momenteel state of the art zijn.
de holistische benaderingen domineerden de gezichtsherkenningsgemeenschap in de jaren negentig. In het begin van de jaren 2000 werden handgemaakte lokale descriptoren populair en de lokale feature learning aanpak werd geïntroduceerd in de late jaren 2000. prestaties gestaag verbetert van ongeveer 60% tot boven 90%, terwijl deep learning verhoogt de prestaties tot 99,80% in slechts drie jaar.
— Deep Face Recognition: A Survey, 2018.
gezien de doorbraak van AlexNet in 2012 voor het eenvoudiger probleem van beeldclassificatie, was er een vlaag van onderzoek en publicaties in 2014 en 2015 over deep learning methoden voor gezichtsherkenning. Capaciteiten snel bereikt bijna-mens-niveau prestaties, dan overschreden mens-niveau prestaties op een standaard gezichtsherkenning dataset binnen een periode van drie jaar, dat is een verbazingwekkende snelheid van verbetering gezien de voorgaande decennia van inspanning.
er zijn misschien vier milestone-systemen op deep learning voor gezichtsherkenning die aan deze innovaties ten grondslag liggen: DeepFace, de DeepID-serie van systemen, VGGFace en FaceNet. Laten we ze kort bespreken.
DeepFace is een systeem gebaseerd op diepe convolutionele neurale netwerken beschreven door Yaniv Taigman, et al. van Facebook AI Research en Tel Aviv. Het werd beschreven in de 2014 paper getiteld ” DeepFace: Closing the Gap to Human-Level Performance in Face Verification.”Het was misschien de eerste grote sprong voorwaarts met behulp van deep learning voor gezichtsherkenning, het bereiken van de buurt van de mens-niveau prestaties op een standaard benchmark dataset.
onze methode bereikt een nauwkeurigheid van 97,35% op de gelabelde gezichten in het Wild (LFW) dataset, waardoor de fout van de huidige stand van de techniek met meer dan 27% wordt verminderd, en de prestaties op menselijk niveau dicht benaderen.
— DeepFace: Closing the Gap to Human-level Performance in Face Verification, 2014.
DeepID, of “Deep hidden IDentity features,” is een reeks systemen (bijvoorbeeld DeepID, DeepID2, enz.), voor het eerst beschreven door Yi Sun, et al. in hun 2014 paper getiteld ” Deep Learning Gezicht vertegenwoordiging van het voorspellen van 10.000 klassen.”Hun systeem werd voor het eerst beschreven als DeepFace, hoewel het in latere publicaties werd uitgebreid om zowel identificatie-als verificatietaken te ondersteunen door training via contrastief verlies.
de belangrijkste uitdaging van gezichtsherkenning is het ontwikkelen van effectieve feature representations voor het verminderen van intra-persoonlijke variaties en het vergroten van inter-persoonlijke verschillen. De gezichtsidentificatietaak verhoogt de interpersoonlijke variaties door DeepID2-functies uit verschillende identiteiten uit elkaar te trekken, terwijl de gezichtsverificatietaak de intrapersoonlijke variaties vermindert door DeepID2-functies uit dezelfde identiteit samen te trekken, die beide essentieel zijn voor gezichtsherkenning.
— Deep Learning Face Representation by Joint Identification-Verification, 2014.
de DeepID-systemen behoorden tot de eerste deep-leermodellen die beter dan menselijk presteren op de taak, bijvoorbeeld DeepID2 behaalde 99,15% op de gelabelde gezichten in het Wild (LFW)-dataset, wat 97,53% beter is dan menselijk presteren. Latere systemen zoals FaceNet en VGGFace verbeterden op deze resultaten.
FaceNet werd beschreven door Florian Schroff, et al. op Google in hun 2015 paper getiteld ” FaceNet: Een uniforme inbedding voor gezichtsherkenning en Clustering.”Hun systeem bereikte dan state-of-the-art resultaten en presenteerde een innovatie genaamd ’triplet loss’ waarmee beelden efficiënt worden gecodeerd als feature vectoren die snelle gelijkenis berekening en matching via afstand berekeningen mogelijk.
FaceNet, dat direct een afbeelding leert van gezichtsafbeeldingen naar een compacte Euclidische ruimte waar afstanden direct overeenkomen met een maat voor gezichtssamenstelling. Onze methode maakt gebruik van een diep convolutioneel netwerk dat getraind is om de inbedding zelf direct te optimaliseren, in plaats van een tussenliggende bottlenecklaag zoals in eerdere deep learning-benaderingen. Om te trainen gebruiken we drieling van ruwweg uitgelijnde matching / non-matching face patches gegenereerd met behulp van een nieuwe online triplet mining method
— FaceNet: A Unified Embedding for Face Recognition and Clustering, 2015.
voor een tutorial over FaceNet, zie:
- How to Develop a Face Recognition System Using FaceNet in Keras
Het VGGFace (bij gebrek aan een betere naam) werd ontwikkeld door Omkar Parkhi, et al. van de Visual Geometry Group (VGG) in Oxford en werd beschreven in hun 2015 paper getiteld “Deep Face Recognition.”Naast een beter afgesteld model lag de focus van hun werk op het verzamelen van een zeer grote trainingsdataset en deze gebruiken om een zeer diep CNN-model voor gezichtsherkenning te trainen, waarmee ze dan state-of-the-art resultaten op standaard datasets konden bereiken.
… we laten zien hoe een dataset op zeer grote schaal (2.6 m afbeeldingen, meer dan 2.6 K mensen) kan worden samengesteld door een combinatie van automatisering en mens in de lus
— Deep Face Recognition, 2015.
voor een tutorial over VGGFace, zie:
- Hoe gezichtsherkenning met VGGFace2 in Keras
hoewel dit de belangrijkste vroege mijlpalen kunnen zijn op het gebied van deep learning voor computervisie, is de vooruitgang voortgezet, met veel innovatie gericht op verliesfuncties om de modellen effectief te trainen.
voor een uitstekende up-to-date samenvatting, zie de 2018 paper “Deep Face Recognition: A Survey.”
verder lezen
Deze sectie biedt meer bronnen over het onderwerp als u dieper wilt gaan.
Books
- Handbook of Face Recognition, tweede editie, 2011.
gezichtsherkenning Papers
- gezichtsherkenning: een literatuurstudie, 2003.
- Face Detection: a Survey, 2001.
- mens en machine recognition of faces: a survey, 1995.
- robuuste real-time objectdetectie, 2004.
- gezichtsherkenning met Eigenfaces, 1991.
Deep Learning Face Recognition Papers
- Deep Face Recognition: A Survey, 2018.
- Deep face recognition, 2015.
- FaceNet: a Unified Embedding for Face Recognition and Clustering, 2015.
- DeepFace: Closing the Gap to Human-Level Performance in Face Verification, 2014.
- Deep Learning Face Representation door Joint Identification-Verification, 2014.
- Deep Learning Face Representation from Predicting 10,000 Classes, 2014.
- Multi-view Face Detection Using Deep Convolutional Neural Networks, 2015.
- From Facial Parts Responses to Face Detection: A Deep Learning Approach, 2015.
- overtreft de prestaties van Gezichtsverificatie op menselijk niveau op LFW met GaussianFace, 2014.
Articles
- gezichtsherkenningssysteem, Wikipedia.
- gezichtsherkenning, Wikipedia.
- gezichtsherkenning, Wikipedia.
- gelabelde gezichten in de Wild Dataset
samenvatting
in dit bericht ontdekte u het probleem van gezichtsherkenning en hoe diepe leermethoden bovenmenselijke prestaties kunnen bereiken.
specifiek leerde u:
- gezichtsherkenning is een breed probleem bij het identificeren of verifiëren van mensen in foto ’s en video’ s.
- gezichtsherkenning is een proces dat bestaat uit detectie, uitlijning, extractie van functies en een herkenningstaak
- Deep learning-modellen die eerst werden benaderd en die de menselijke prestaties voor gezichtsherkenningstaken overtroffen.
heeft u vragen?
Stel uw vragen in de opmerkingen hieronder en Ik zal mijn best doen om te beantwoorden.
ontwikkel Deep Learning modellen voor visie vandaag!
Ontwikkel uw eigen Visiemodellen in minuten
…met slechts een paar regels python code
ontdek hoe in mijn nieuwe Ebook:
Deep Learning for Computer Vision
Het biedt zelfstudie tutorials over onderwerpen als:
classificatie, objectdetectie (yolo en rcnn), gezichtsherkenning (vggface en facenet), gegevensvoorbereiding en nog veel meer…
breng eindelijk diep leren naar uw Visieprojecten
sla de academici over. Alleen Resultaten.
bekijk wat er in