AI-modeller och plattformar
DeepFace för avancerad ansiktsigenkänning

Ansiktsigenkänning har varit ett trendande område inom AI och ML under flera år nu, och de omfattande kulturella och sociala implikationerna av ansiktsigenkänning är långtgående. Det finns dock ett prestandagap mellan mänskliga visuella system och maskiner som för närvarande begränsar ansökningsområdena för ansiktsigenkänning.
För att övervinna bufferten som skapats av prestandagapet och leverera mänsklig nivås noggrannhet, introducerade Meta DeepFace, ett ramverk för ansiktsigenkänning. DeepFace-modellen är tränad på en stor ansiktsdataset som skiljer sig avsevärt från de dataset som används för att konstruera utvärderingsbenchmarkerna, och den har potentialen att överträffa befintliga ramverk med minimala anpassningar. Dessutom producerar DeepFace-ramverket kompakta ansiktsrepresentationer när jämfört med andra system som producerar tusentals ansiktsutseendefunktioner.
Det föreslagna DeepFace-ramverket använder Deep Learning för att träna på en stor dataset som består av olika former av data, inklusive bilder, videor och grafik. DeepFace-nätverksarkitekturen antar att när justeringen är klar, är platsen för varje ansiktsregion fast på pixelnivå. Därför är det möjligt att använda de råa pixel-RGB-värdena utan att använda flera konvolutionslager som görs i andra ramverk.
Den konventionella pipeline för moderna ansiktsigenkänning ramverk består av fyra stadier: Detektering, Justering, Representation och Klassificering. DeepFace-ramverket använder explicit 3D-ansiktsmodellering för att applicera en styckvis transformation, och använder ett nio-lagers djupt neuronnät för att härleda en ansiktsrepresentation. DeepFace-ramverket försöker att göra följande bidrag
- Utveckla en effektiv DNN eller djup neuronnätarkitektur som kan utnyttja en stor dataset för att skapa en ansiktsrepresentation som kan generaliseras till andra dataset.
- Använda explicit 3D-modellering för att utveckla ett effektivt ansiktsjusteringssystem.
Förstå hur DeepFace-modellen fungerar
Ansiktsjustering
Ansiktsjustering är en teknik som roterar bilden av en person enligt ögonens vinkel. Ansiktsjustering är en vanlig praxis som används för att förbehandla data för ansiktsigenkänning, och ansiktsjusterade dataset hjälper till att förbättra noggrannheten hos igenkänningsalgoritmer genom att ge en normaliserad indata. Men att justera ansikten på ett obehindrat sätt kan vara en utmanande uppgift på grund av de många faktorer som är inblandade, som icke-rigida uttryck, kroppsställningar och mer. Flera sofistikerade justeringstekniker, som att använda en analytisk 3D-modell av ansiktet eller söka efter fiducialpunkter från externa dataset, kan tillåta utvecklare att övervinna utmaningarna.
Även om justering är den mest populära metoden för att hantera obehindrad ansiktsverifiering och igenkänning, finns det ingen perfekt lösning just nu. 3D-modeller används också, men deras popularitet har minskat avsevärt under de senaste åren, särskilt när de används i en obehindrad miljö. Men eftersom mänskliga ansikten är 3D-objekt, kan det vara rätt tillvägagångssätt om det används korrekt. DeepFace-modellen använder ett system som använder fiducialpunkter för att skapa en analytisk 3D-modellering av ansiktet. Denna 3D-modellering används sedan för att vrida en ansiktsgrupp till en 3D-framåtriktad modell.
Dessutom, precis som de flesta justeringsmetoder, använder DeepFace-justeringen också fiducialpunktsdetektorer för att styra justeringsprocessen. Även om DeepFace-modellen använder en enkel punktdetektor, tillämpar den den i flera iterationer för att förbättra utdata. En Support Vector Regressor eller SVR som tränats för att förutse punktkonfigurationer extraherar fiducialpunkterna från en bildbeskrivning vid varje iteration. DeepFace-bildbeskrivningen baseras på LBP-histogram, men den överväger också andra funktioner.
2D-justering
DeepFace-modellen initierar justeringsprocessen genom att upptäcka sex fiducialpunkter inom detekteringsgruppen, centrerad i mitten av ögonen, munnsplatser och nästippen. De används för att rotera, skalera och översätta bilden till sex ankarpunkter och iterera på den vridda bilden tills det inte finns någon synlig förändring. Den ackumulerade transformationen genererar sedan en 2D-justerad kropp. Justeringsmetoden är ganska lik den som används i LFW-a, och den har använts under åren i ett försök att förbättra modellens noggrannhet.
3D-justering
För att justera ansikten med ut-ur-planet-rotationer, använder DeepFace-ramverket en generisk 3D-formmodell och registrerar en 3D-kamera som kan användas för att vrida den 2D-justerade kroppen till den 3D-formen i dess bildplan. Som ett resultat genererar modellen den 3D-justerade versionen av kroppen, och den uppnås genom att lokalisera ytterligare 67 fiducialpunkter i den 2D-justerade kroppen med hjälp av en andra SVR eller Support Vector Regressor.
Modellen placerar sedan manuellt de 67 ankarpunkterna på den 3D-formen och kan därmed uppnå full korrespondens mellan 3D-referenser och deras motsvarande fiducialpunkter. I nästa steg läggs en 3D-till-2D-affinkamera till med hjälp av en genererad minsta-kvadrat-lösning till de linjära systemen med en känd kovariansmatris som minimerar vissa förluster.
Frontalisering
Eftersom icke-rigida deformationer och fulla perspektivprojektioner inte modelleras, fungerar den passade 3D-till-2D-kameran endast som en approximation. I ett försök att minska korruptionen av viktiga identitetsbärande faktorer till den slutliga vridda bilden, lägger DeepFace-modellen till de motsvarande resterna till x-y-komponenterna av varje referensfiducialpunkt. En sådan avslappning för syftet med att vrida den 2D-bilden med mindre distorsioner till identiteten är plausibel, och utan den skulle ansiktena ha vrits till samma form i 3D och förlorat viktiga diskriminerande faktorer under processen.
Till slut uppnår modellen frontalisering genom att använda en styckvis affintransformation som styrs av Delaunay-trianguleringen som härrör från 67 fiducialpunkter.

- Upptäckt ansikte med 6 fiducialpunkter.
- Inducerad 2D-justerad kropp.
- 67 fiducialpunkter på den 2D-justerade kroppen.
- Referens 3D-form transformerad till 2D-justerad kroppsbild.
- Triangel synlighet i förhållande till 3D-2D-kameran.
- 67 fiducialpunkter inducerade av 3D-modellen.
- 3D-justerad version av den slutliga kroppen.
- Ny vy genererad av 3D-modellen.
Representation
Med en ökning av mängden träningsdata, har lärandebaserade metoder visat sig vara mer effektiva och precisa jämfört med designade funktioner, främst för att lärandebaserade metoder kan upptäcka och optimera funktioner för en specifik uppgift.
DNN-arkitektur och träning
DeepFace DNN är tränad på en multi-klass ansiktsigenkänning uppgift som klassificerar identiteten av en ansiktsbild.
Ovanstående figur representerar den övergripande arkitekturen för DeepFace-modellen. Modellen har ett konvolutionslager (C1) med 32 filter av storlek 11x11x3 som matas med en 3D-justerad 3-kanals RGB-bild av storlek 152×152 pixlar, och det resulterar i 32 funktionella kartor. Dessa funktionella kartor matas sedan till ett Max Pooling-lager eller M2 som tar maximum över 3×3 spatiala grannskap, och har ett steg på 2, separat för varje kanal. Följande är ett annat konvolutionslager (C3) som består av 16 filter, var och en av storlek 9x9x16. Det primära syftet med dessa lager är att extrahera lågnivåfunktioner som textur och enkla kanter. Fördelen med att använda Max Pooling-lager är att det gör utdata genererad av konvolutionslagren mer robust mot lokala översättningar, och när det appliceras på justerade ansiktsbilder, gör det nätverket mer robust mot registreringsfel på en liten skala.
Flera nivåer av poolning gör nätverket mer robust mot vissa situationer, men det orsakar också att nätverket förlorar information om den exakta positionen av mikrotexturer och detaljerade ansiktsstrukturer. För att undvika att nätverket förlorar informationen, använder DeepFace-modellen ett maxpoolningslager endast med det första konvolutionslagret. Dessa lager tolkas av modellen som ett front-end adaptivt förbehandlingssteg. Även om de gör mest av beräkningen, har de begränsade parametrar på egen hand, och de utökar endast indata till en uppsättning lokala funktioner.
Följande lager L4, L5 och L6 är lokalt anslutna, och precis som ett konvolutionslager, tillämpar de en filterbank där varje plats i funktionella kartan lär sig en unik uppsättning filter. Eftersom olika regioner i en justerad bild har olika lokala statistik, kan det inte upprätthålla den spatiala stationäritetsantagandet. Till exempel har området mellan ögonbrynen och ögonen en högre diskrimineringsförmåga jämfört med området mellan munnen och näsan. Användningen av lojala lager påverkar antalet parametrar som är föremål för träning, men det påverkar inte den beräkningsmässiga bördan under funktionsextraheringen.
DeepFace-modellen använder tre lager i första hand endast för att den har en stor mängd väl-etiketterad träningsdata. Användningen av lokalt anslutna lager kan motiveras ytterligare eftersom varje utgångsenhet av ett lokalt anslutet lager kan påverkas av en stor patch av indata.
Till slut är de översta lagren fullständigt anslutna, med varje utgångsenhet som är ansluten till alla indata. De två lagren kan fånga korrelationerna mellan funktioner som fångats i olika delar av ansiktsbilderna, som position och form av mun och position och form av ögonen. Utdata från det första fullständigt anslutna lagret (F7) kommer att användas av nätverket som dess råa ansiktsrepresentationfunktion. Modellen kommer sedan att mata utdata från det sista fullständigt anslutna lagret (F8) till en K-vägs softmax som producerar en fördelning över klassetiketter.
Dataset
DeepFace-modellen använder en kombination av dataset med Social Face Classification eller SFC-datasetet som det primära. Dessutom använder DeepFace-modellen också LFW-datasetet och YTF-datasetet.
SFC-dataset
SFC-datasetet lärdes från en samling bilder från Facebook (META ), och det består av 4,4 miljoner etiketterade bilder av 4 030 personer med vardera 800 till 1 200 ansikten. De senaste 5% av SFC-datasetets ansiktsbilder för varje identitet lämnas utanför för teständamål.
LFW-dataset
LFW-datasetet består av 13 323 foton av över 5 000 kändisar som sedan delas in i 6 000 ansiktspar över 10 delningar.
YTF-dataset
YTF-datasetet består av 3 425 videor av 1 595 ämnen, och det är en undermängd av kändisarna i LFW-datasetet.
Resultat
Utan frontalisering och när endast 2D-justering används, uppnår modellen en noggrannhet på endast cirka 94,3%. När modellen använder centrumkroppen av ansiktsdetektering, använder den inte någon justering, och i detta fall returnerar modellen en noggrannhet på 87,9% eftersom vissa delar av ansiktsområdet kan falla utanför centrumkroppen. För att utvärdera den diskriminerande förmågan av ansiktsrepresentation i isolering, följer modellen den oövervakade inlärningssättet för att jämföra den inre produkten av normaliserade funktioner. Det ökar den genomsnittliga noggrannheten hos modellen till 95,92%

Ovanstående modell jämför prestandan hos DeepFace-modellen jämfört med andra state-of-the-art-ansiktsigenkänningmodeller.

Ovanstående bild visar ROC-kurvor på datasetet.
Slutsats
Idealt sett kommer en ansiktsklassificerare att kunna känna igen ansikten med samma noggrannhet som en människa, och den kommer att kunna returnera hög noggrannhet oavsett bildkvalitet, pose, uttryck eller belysning. Dessutom kommer ett idealt ansiktsigenkänningssystem att kunna appliceras på en mängd olika tillämpningar med liten eller ingen modifiering. Även om DeepFace är ett av de mest avancerade och effektiva ansiktsigenkänningssystemen för närvarande, är det inte perfekt, och det kan inte leverera exakta resultat i vissa situationer. Men DeepFace-ramverket är en betydande milstolpe inom ansiktsigenkänning, och det stänger prestandagapet genom att använda en kraftfull metric-inlärningsteknik, och det kommer att fortsätta att bli mer effektivt över tiden.












