En mild introduktion till djupt lärande för ansiktsigenkänning

Tweet Share Share

Senast uppdaterad den 5 juli 2019

ansiktsigenkänning är problemet med att identifiera och verifiera personer på ett fotografi av deras ansikte.

det är en uppgift som trivialt utförs av människor, även under varierande ljus och när ansikten ändras efter ålder eller hindras med tillbehör och ansiktshår. Ändå förblev det ett utmanande datorsynproblem i årtionden tills nyligen.djupa inlärningsmetoder kan utnyttja mycket stora datamängder av ansikten och lära sig rika och kompakta representationer av ansikten, så att moderna modeller först kan prestera också och senare överträffa ansiktsigenkänningsförmågan hos människor.

i det här inlägget kommer du att upptäcka problemet med ansiktsigenkänning och hur djupa inlärningsmetoder kan uppnå övermänsklig prestanda.

Efter att ha läst det här inlägget vet du:

  • ansiktsigenkänning är ett brett problem med att identifiera eller verifiera personer i fotografier och videor.
  • ansiktsigenkänning är en process som består av detektering, justering, extraktion av funktioner och en igenkänningsuppgift
  • Djupinlärningsmodeller närmade sig först och överskred sedan mänsklig prestanda för ansiktsigenkänningsuppgifter.

kickstarta ditt projekt med min nya bok Deep Learning for Computer Vision, inklusive steg-för-steg-handledning och Python-källkodsfilerna för alla exempel.

Låt oss komma igång.

en mild introduktion till djupt lärande för ansiktsigenkänning

en mild introduktion till djupt lärande för ansiktsigenkänning
foto av Susanne Nilsson, vissa rättigheter reserverade.

översikt

denna handledning är uppdelad i fem delar; de är:

  1. ansikten i fotografier
  2. Process för automatisk ansiktsigenkänning
  3. Ansiktsigenkänningsuppgift
  4. Ansiktsigenkänningsuppgifter
  5. djup inlärning för ansiktsigenkänning

ansikten i fotografier

det finns ofta ett behov av att automatiskt känna igen personerna på ett fotografi.

det finns många anledningar till varför vi kanske vill känna igen en person automatiskt på ett fotografi.

till exempel:

  • vi kanske vill begränsa åtkomsten till en resurs till en person, kallad ansiktsautentisering.
  • vi kanske vill bekräfta att personen matchar sitt ID, kallat ansiktsverifiering.
  • vi kanske vill tilldela ett namn till ett ansikte, kallat ansiktsidentifiering.

generellt hänvisar vi till detta som problemet med automatisk ”ansiktsigenkänning” och det kan gälla både stillbilder eller ansikten i videoströmmar.

människor kan utföra denna uppgift mycket enkelt.

Vi kan hitta ansikten i en bild och kommentera vem folket är, om de är kända. Vi kan göra detta mycket bra, till exempel när folket har åldrats, bär solglasögon, har olika färgat hår, tittar i olika riktningar och så vidare. Vi kan göra det så bra att vi hittar ansikten där det inte finns några, som i moln.

ändå är detta fortfarande ett svårt problem att utföra automatiskt med programvara, även efter 60 eller fler års forskning. Fram till kanske väldigt nyligen.

till exempel är erkännande av ansiktsbilder som förvärvats i en utomhusmiljö med förändringar i belysning och/eller pose fortfarande ett i stort sett olöst problem. Med andra ord är nuvarande system fortfarande långt ifrån det mänskliga uppfattningssystemets förmåga.

— – ansiktsigenkänning: en litteraturundersökning, 2003.

vill du ha resultat med djup inlärning för datorseende?

Ta min gratis 7-dagars e-postkraschkurs nu (med provkod).

Klicka för att registrera dig och även få en gratis PDF Ebook version av kursen.

ladda ner din gratis minikurs

Process för automatisk ansiktsigenkänning

ansiktsigenkänning är problemet med att identifiera eller verifiera ansikten på ett fotografi.

en allmän redogörelse för problemet med maskinigenkänning av ansikten kan formuleras enligt följande: med tanke på stillbilder eller videobilder av en scen, identifiera eller verifiera en eller flera personer i scenen med en lagrad databas med ansikten

— ansiktsigenkänning: en litteraturundersökning, 2003.

ansiktsigenkänning beskrivs ofta som en process som först involverar fyra steg; de är: ansiktsigenkänning, ansiktsinriktning, extraktion av funktioner och slutligen ansiktsigenkänning.

  1. ansiktsigenkänning. Leta reda på ett eller flera ansikten i bilden och markera med en avgränsningsruta.
  2. Ansiktsinriktning. Normalisera ansiktet för att överensstämma med databasen, såsom geometri och fotometri.
  3. Feature Extraction. Extrahera funktioner från ansiktet som kan användas för igenkänningsuppgiften.
  4. ansiktsigenkänning. Utför matchning av ansiktet mot ett eller flera kända ansikten i en förberedd databas.

ett givet system kan ha en separat modul eller ett program för varje steg, vilket traditionellt var fallet, eller kan kombinera några eller alla steg i en enda process.

en användbar översikt över denna process finns i boken ”Handbook of Face Recognition”, nedan:

översikt över stegen i en Ansiktsigenkänningsprocess

översikt över stegen i en Ansiktsigenkänningsprocess. Hämtad från” Handbook of Face Recognition”, 2011.

Ansiktsigenkänningsuppgift

ansiktsigenkänning är det icke-triviala första steget i ansiktsigenkänning.

det är ett problem med objektigenkänning som kräver att både platsen för varje ansikte i ett fotografi identifieras (t.ex. positionen) och ansiktets omfattning är lokaliserad (t. ex. med en avgränsningsruta). Objektigenkänning i sig är ett utmanande problem, även om det i detta fall liknar det eftersom det bara finns en typ av objekt, t.ex. ansikten, som ska lokaliseras, även om ansikten kan variera vildt.

det mänskliga ansiktet är ett dynamiskt objekt och har en hög grad av variation i sitt utseende, vilket gör ansiktsigenkänning ett svårt problem i datorsyn.

— – ansiktsigenkänning: en undersökning, 2001.eftersom det är det första steget i ett bredare ansiktsigenkänningssystem måste ansiktsdetektering vara robust. Till exempel kan ett ansikte inte identifieras om det inte först kan detekteras. Det betyder att ansikten måste detekteras med alla slags orienteringar, vinklar, ljusnivåer, frisyrer, hattar, glasögon, ansiktshår, smink, åldrar och så vidare.

som en visuell frontprocessor bör ett ansiktsigenkänningssystem också kunna uppnå uppgiften oavsett belysning, orientering och kameraavstånd

-ansiktsigenkänning: en undersökning, 2001.

2001 års papper med titeln ”Face Detection: A Survey” ger en taxonomi av ansiktsigenkänningsmetoder som i stort sett kan delas in i två huvudgrupper:

  • funktionsbaserad.
  • bildbaserad.

den funktionsbaserade ansiktsigenkänningen använder handgjorda filter som söker efter och lokaliserar ansikten i fotografier baserat på en djup kunskap om domänen. De kan vara mycket snabba och mycket effektiva när filtren matchar, även om de kan misslyckas dramatiskt när de inte gör det, t.ex. gör dem något bräckliga.

… gör uttrycklig användning av ansiktskunskap och följ den klassiska detekteringsmetoden där lågnivåfunktioner härleds före kunskapsbaserad analys. De uppenbara egenskaperna hos ansiktet såsom hudfärg och ansiktsgeometri utnyttjas på olika systemnivåer.

— – ansiktsigenkänning: en undersökning, 2001.

alternativt är bildbaserad ansiktsigenkänning holistisk och lär sig hur man automatiskt lokaliserar och extraherar ansikten från hela bilden. Neurala nätverk passar in i denna klass av metoder.

… adress ansiktsigenkänning som ett allmänt igenkänningsproblem. Bildbaserade representationer av ansikten, till exempel i 2D-intensitetsarrayer, klassificeras direkt i en ansiktsgrupp med hjälp av träningsalgoritmer utan funktionsderivation och analys. dessa relativt nya tekniker införlivar ansiktskunskap implicit i systemet genom kartläggnings-och utbildningssystem.

— – ansiktsigenkänning: en undersökning, 2001.

kanske den dominerande metoden för ansiktsigenkänning som användes under många år (och användes i många kameror) beskrevs i 2004-papperet med titeln ”Robust objektdetektering i realtid”, kallad detektorkaskaden eller helt enkelt ”kaskad.”

deras detektor, kallad detektorkaskad, består av en sekvens av enkla till komplexa ansiktsklassificerare och har lockat omfattande forskningsinsatser. Dessutom har detector cascade distribuerats i många kommersiella produkter som smartphones och digitalkameror. Medan kaskaddetektorer exakt kan hitta synliga upprättstående ansikten, misslyckas de ofta med att upptäcka ansikten från olika vinklar, t.ex. sidovy eller delvis ockluderade ansikten.

— Multi-view ansiktsigenkänning med hjälp av djupa Konvolutionella neurala nätverk, 2015.

för en handledning om djupt lärande för ansiktsigenkänning Se:

  • hur man utför ansiktsigenkänning med djupt lärande i Keras

Ansiktsigenkänningsuppgifter

ansiktsigenkänningsuppgiften är bred och kan anpassas till de specifika behoven hos ett prediktionsproblem.

i 1995 års papper med titeln ”Human and machine recognition of faces: A survey” beskriver författarna tre ansiktsigenkänningsuppgifter:

  • Ansiktsmatchning: hitta den bästa matchningen för ett visst ansikte.
  • Face Similarity: hitta ansikten som mest liknar ett givet ansikte.
  • Face Transformation: skapa nya ansikten som liknar ett givet ansikte.

de sammanfattar dessa tre separata uppgifter enligt följande:

matchning kräver att kandidatens matchande ansiktsbild finns i någon uppsättning ansiktsbilder som valts av systemet. Likhetsdetektering kräver förutom att matcha att bilder av ansikten hittas som liknar ett återkallat ansikte detta kräver att likhetsåtgärden som används av igenkänningssystemet nära matchar likhetsåtgärderna som används av människor Transformationsapplikationer kräver att nya bilder som skapas av systemet liknar mänskliga minnen av ett ansikte.

— – människa och maskin erkännande av ansikten: en undersökning, 1995.

2011 års bok om ansiktsigenkänning med titeln ”Handbook of Face Recognition” beskriver två huvudlägen för ansiktsigenkänning, som:

  • Ansiktsverifiering. En en-till-en kartläggning av ett givet ansikte mot en känd identitet (t. ex. är detta personen?).
  • ansiktsidentifiering. En en-till-många kartläggning för ett givet ansikte mot en databas med kända ansikten (t. ex. vem är den här personen?).

ett ansiktsigenkänningssystem förväntas identifiera ansikten som finns i bilder och videor automatiskt. Den kan fungera i ett eller båda av två lägen: (1) ansiktsverifiering (eller autentisering) och (2) ansiktsidentifiering (eller igenkänning).

— sida 1, Handbok för ansiktsigenkänning. 2011.

vi kan beskriva problemet med ansiktsigenkänning som en övervakad prediktiv modelleringsuppgift utbildad på prover med ingångar och utgångar.

i alla uppgifter är inmatningen ett foto som innehåller minst ett ansikte, troligen ett upptäckt ansikte som också kan ha justerats.

utgången varierar beroende på vilken typ av förutsägelse som krävs för uppgiften; till exempel:

  • Det kan då vara en binär klassetikett eller binär klass Sannolikhet vid en ansiktsverifieringsuppgift.
  • Det kan vara en kategorisk klassetikett eller uppsättning sannolikheter för en ansiktsidentifieringsuppgift.
  • Det kan vara en likhetsmått i fallet med en likhetstyp uppgift.

Deep Learning for Face Recognition

ansiktsigenkänning har varit ett aktivt forskningsområde inom datorseende.

kanske en av de mer kända och antagna ”maskininlärningsmetoderna” för ansiktsigenkänning beskrevs i 1991 års papper med titeln ”ansiktsigenkänning med hjälp av Eigenfaces.”Deras metod, kallad helt enkelt” Eigenfaces”, var en milstolpe eftersom den uppnådde imponerande resultat och visade förmågan hos enkla holistiska tillvägagångssätt.

ansiktsbilder projiceras på ett funktionsutrymme (”ansiktsutrymme”) som bäst kodar variationen bland kända ansiktsbilder. Ansiktsutrymmet definieras av ”eigenfaces”, som är egenvektorerna för uppsättningen ansikten; de motsvarar inte nödvändigtvis isolerade funktioner som ögon, öron och näsor

— ansiktsigenkänning med Eigenfaces, 1991.

2018-papperet med titeln ”Deep Face Recognition: A Survey” ger en användbar sammanfattning av tillståndet för ansiktsigenkänningsforskning under de senaste nästan 30 åren, vilket belyser den breda trenden från holistiska inlärningsmetoder (som Eigenfaces), till lokal handgjord funktions upptäckt, till grunda inlärningsmetoder, till slutligen djupa inlärningsmetoder som för närvarande är toppmoderna.

de holistiska metoderna dominerade ansiktsigenkänningsgemenskapen på 1990-talet. I början av 2000-talet blev handgjorda lokala deskriptorer populära, och den lokala inlärningsmetoden introducerades i slutet av 2000-talet. prestanda förbättras stadigt från cirka 60% till över 90%, medan djupt lärande ökar prestandan till 99,80% på bara tre år.

— – djup ansiktsigenkänning: en undersökning, 2018.med tanke på Alexnets genombrott 2012 för det enklare problemet med bildklassificering fanns det en uppsjö av forskning och publikationer 2014 och 2015 om djupa inlärningsmetoder för ansiktsigenkänning. Kapaciteter uppnådde snabbt prestanda på nära mänsklig nivå och överskred sedan prestanda på mänsklig nivå på en standard ansiktsigenkänningsdataset inom en treårsperiod, vilket är en häpnadsväckande förbättringsgrad med tanke på de tidigare decennierna av ansträngning.

det finns kanske fyra milstolpesystem på djupt lärande för ansiktsigenkänning som drev dessa innovationer; de är: DeepFace, DeepID series of systems, VGGFace och FaceNet. Låt oss kort beröra var och en.

DeepFace är ett system baserat på djupa konvolutionella neurala nätverk som beskrivs av Yaniv Taigman, et al. från Facebook AI Research och Tel Aviv. Det beskrevs i 2014-papperet med titeln ”DeepFace: Closing the Gap to Human-Level Performance in Face Verification.”Det var kanske det första stora språnget framåt med djupt lärande för ansiktsigenkänning, vilket uppnådde prestanda på mänsklig nivå på en standard benchmark dataset.

vår metod når en noggrannhet på 97,35% på de märkta ansikten i det vilda (LFW) datasetet, vilket minskar felet i det nuvarande toppmoderna med mer än 27% och närmar sig prestanda på mänsklig nivå.

— DeepFace: stänga klyftan till prestanda på mänsklig nivå i Ansiktsverifiering, 2014.

DeepID, eller ”Deep hidden IDentity features”, är en serie system (t.ex. DeepID, DeepID2, etc.), först beskrivs av Yi Sun, et al. i deras 2014-papper med titeln ” Deep Learning Face Representation från att förutsäga 10 000 klasser.”Deras system beskrevs först som DeepFace, även om det utvidgades i efterföljande publikationer för att stödja både identifierings-och verifieringsuppgifter genom träning via kontrastiv förlust.

den viktigaste utmaningen för ansiktsigenkänning är att utveckla effektiva funktionsrepresentationer för att minska intra-personliga variationer samtidigt som man förstorar interpersonella skillnader. Ansiktsidentifieringsuppgiften ökar de interpersonella variationerna genom att dra DeepID2-funktioner extraherade från olika identiteter isär, medan ansiktsverifieringsuppgiften minskar de intra-personliga variationerna genom att dra DeepID2-funktioner extraherade från samma identitet tillsammans, vilka båda är väsentliga för ansiktsigenkänning.

— – djupt lärande Ansikte Representation genom gemensam identifiering-verifiering, 2014.DeepID-systemen var bland de första djupinlärningsmodellerna för att uppnå bättre än mänsklig prestanda på uppgiften, t.ex. DeepID2 uppnådde 99,15% på de märkta ansikten i naturen (LFW) dataset, vilket är bättre än mänsklig prestanda på 97,53%. Efterföljande system som FaceNet och VGGFace förbättrades på dessa resultat.

FaceNet beskrevs av Florian Schroff, et al. på Google i deras 2015 papper med titeln ”FaceNet: En enhetlig inbäddning för ansiktsigenkänning och kluster.”Deras system uppnådde sedan toppmoderna resultat och presenterade en innovation som kallades ”triplettförlust” som gjorde det möjligt att koda bilder effektivt som funktionsvektorer som möjliggjorde snabb likhetsberäkning och matchning via avståndsberäkningar.

FaceNet, som direkt lär sig en kartläggning från ansiktsbilder till ett kompakt euklidiskt utrymme där avstånd direkt motsvarar ett mått på ansiktslikhet. Vår metod använder ett djupt konvolutionellt nätverk utbildat för att direkt optimera inbäddningen själv, snarare än ett mellanliggande flaskhalslager som i tidigare djupa inlärningsmetoder. För att träna använder vi tripletter med grovt anpassade matchande / icke-matchande ansiktsplåster genererade med en ny online triplett mining method

— FaceNet: en enhetlig inbäddning för ansiktsigenkänning och kluster, 2015.

för en handledning om FaceNet, se:

  • hur man utvecklar ett ansiktsigenkänningssystem med FaceNet i Keras

VGGFace (för brist på ett bättre namn) utvecklades av Omkar Parkhi, et al. från Visual Geometry Group (VGG) vid Oxford och beskrevs i deras 2015-papper med titeln ”Deep Face Recognition.”Förutom en bättre avstämd modell var fokus i deras arbete på hur man samlar in en mycket stor träningsdataset och använder detta för att träna en mycket djup CNN-modell för ansiktsigenkänning som gjorde det möjligt för dem att uppnå då toppmoderna resultat på vanliga dataset.

… vi visar hur en mycket storskalig dataset (2,6 m bilder, över 2,6 K personer) kan monteras med en kombination av automatisering och människa i slingan

— djup ansiktsigenkänning, 2015.

för en handledning om VGGFace, Se:

  • hur man utför ansiktsigenkänning med VGGFace2 i Keras

Även om dessa kan vara de viktigaste tidiga milstolparna inom djupinlärning för datorsyn, har framstegen fortsatt, med mycket innovation inriktad på förlustfunktioner för att effektivt träna modellerna.

för en utmärkt uppdaterad sammanfattning, se 2018-papperet ” Deep Face Recognition: A Survey.”

Vidare läsning

detta avsnitt ger mer resurser om ämnet om du vill gå djupare.

böcker

  • Handbok för ansiktsigenkänning, andra upplagan, 2011.

Ansiktsigenkänningspapper

  • ansiktsigenkänning: en litteraturundersökning, 2003.
  • ansiktsigenkänning: en undersökning, 2001.
  • människa och maskin erkännande av ansikten: en undersökning, 1995.
  • Robust objektdetektering i realtid, 2004.
  • ansiktsigenkänning med Eigenfaces, 1991.

djupt lärande Ansiktsigenkänningspapper

  • djupt ansiktsigenkänning: en undersökning, 2018.
  • djup ansiktsigenkänning, 2015.
  • FaceNet: en enhetlig inbäddning för ansiktsigenkänning och kluster, 2015.
  • DeepFace: stänga klyftan till prestanda på mänsklig nivå i Ansiktsverifiering, 2014.
  • djupt lärande Ansikte Representation genom gemensam identifiering-verifiering, 2014.
  • djupt lärande Ansikte Representation från att förutsäga 10,000 klasser, 2014.
  • Multi-view ansiktsigenkänning med hjälp av djupa Konvolutionella neurala nätverk, 2015.
  • från ansiktsdelar svar på ansiktsigenkänning: en djup inlärningsmetod, 2015.
  • överträffar Ansiktskontrollprestanda på mänsklig nivå på LFW med GaussianFace, 2014.

artiklar

  • ansiktsigenkänningssystem, Wikipedia.
  • ansiktsigenkänning, Wikipedia.
  • ansiktsigenkänning, Wikipedia.
  • märkta ansikten i Wild Dataset

sammanfattning

i det här inlägget upptäckte du problemet med ansiktsigenkänning och hur djupa inlärningsmetoder kan uppnå övermänsklig prestanda.

specifikt lärde du dig:

  • ansiktsigenkänning är ett brett problem att identifiera eller verifiera personer i fotografier och videor.
  • ansiktsigenkänning är en process som består av detektering, justering, extraktion av funktioner och en igenkänningsuppgift
  • Djupinlärningsmodeller närmade sig först och överskred sedan mänsklig prestanda för ansiktsigenkänningsuppgifter.

har du några frågor?
Ställ dina frågor i kommentarerna nedan och jag kommer att göra mitt bästa för att svara.

utveckla djupa inlärningsmodeller för Vision idag!

djupt lärande för datorsyn

utveckla dina egna Visionsmodeller på några minuter

…med bara några rader av python kod

Upptäck hur i min nya Ebook:
Deep Learning for Computer Vision

det ger självstudier handledning om ämnen som:
klassificering, objektdetektering (yolo och rcnn), ansiktsigenkänning (vggface och facenet), databeredning och mycket mer…

slutligen ta djupt lärande till dina Visionsprojekt

hoppa över akademikerna. Bara Resultat.

se vad som finns inuti

Tweet Dela Dela

Related Posts

Lämna ett svar

Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *