AI-modellen en platforms
DeepFace voor geavanceerde gezichtsherkenning

Gezichtsherkenning is al beberapa jaar een trendy vakgebied in AI en ML, en de wijdverbreide culturele en sociale implicaties van gezichtsherkenning zijn verstrekkend. Echter, er bestaat een prestatiegap tussen menselijke visuele systemen en machines die de toepassingen van gezichtsherkenning op dit moment beperken.
Om het buffer te overwinnen dat door het prestatiegap is gecreëerd, en om menselijke precisie te leveren, heeft Meta DeepFace geïntroduceerd, een gezichtsherkenningframework. Het DeepFace-model is getraind op een grote gezichtsdataset die significant afwijkt van de datasets die worden gebruikt om de evaluatiebenchmarks te construeren, en het heeft het potentieel om bestaande frameworks met minimale aanpassingen te overtreffen. Bovendien produceert het DeepFace-framework compacte gezichtsrepresentaties in vergelijking met andere systemen die duizenden gezichtskenmerken produceren.
Het voorgestelde DeepFace-framework gebruikt Deep Learning om te trainen op een grote dataset die bestaat uit verschillende soorten data, waaronder afbeeldingen, video’s en graphics. De DeepFace-netwerkarchitectuur gaat ervan uit dat zodra de alignering is voltooid, de locatie van elke gezichtsregio op pixelniveau is vastgesteld. Daarom is het mogelijk om de ruwe pixel RGB-waarden te gebruiken zonder meerdere convolutionele lagen te gebruiken, zoals in andere frameworks wordt gedaan.
De conventionele pipeline van moderne gezichtsherkenningframeworks bestaat uit vier fasen: Detectie, Alignering, Representatie en Classificatie. Het DeepFace-framework gebruikt expliciete 3D-gezichtsmodellering om een stuksgewijze transformatie toe te passen, en gebruikt een negenlaags diep neuronaal netwerk om een gezichtsrepresentatie af te leiden. Het DeepFace-framework probeert de volgende bijdragen te leveren
- Ontwikkel een effectieve DNN of Diep Neuronaal Netwerkarchitectuur die een grote dataset kan gebruiken om een gezichtsrepresentatie te creëren die kan worden gegeneraliseerd naar andere datasets.
- Gebruik expliciete 3D-modellering om een effectief gezichtsaligneringssysteem te ontwikkelen.
Het werken van het DeepFace-model begrijpen
Gezichtsalignering
Gezichtsalignering is een techniek die de afbeelding van een persoon roteert volgens de hoek van de ogen. Gezichtsalignering is een populaire praktijk die wordt gebruikt om data voor te verwerken voor gezichtsherkenning, en gezichtsgealigneerde datasets helpen bij het verbeteren van de nauwkeurigheid van herkenning-algoritmes door een genormaliseerde invoer te geven. Echter, het aligneren van gezichten op een onbeperkte manier kan een moeilijke taak zijn vanwege de vele factoren die zijn betrokken, zoals niet-rigide expressies, lichaamshoudingen en meer. Verschillende geavanceerde aligneringstechnieken, zoals het gebruik van een analytisch 3D-model van het gezicht of het zoeken naar fiduciale punten uit een externe dataset, kunnen ontwikkelaars helpen om de uitdagingen te overwinnen.
Hoewel alignering de meest populaire methode is voor het omgaan met onbeperkte gezichtsverificatie en -herkenning, is er op dit moment geen perfecte oplossing. 3D-modellen worden ook gebruikt, maar hun populariteit is de afgelopen jaren aanzienlijk afgenomen, vooral wanneer ze in een onbeperkte omgeving worden gebruikt. Echter, omdat menselijke gezichten 3D-objecten zijn, kan het de juiste aanpak zijn als het correct wordt gebruikt. Het DeepFace-model gebruikt een systeem dat fiduciale punten gebruikt om een analytische 3D-modellering van het gezicht te creëren. Deze 3D-modellering wordt vervolgens gebruikt om een gezichtscrop te verwringen naar een 3D-frontale modus.
Bovendien gebruikt de DeepFace-alignering, net als de meeste aligneringpraktijken, fiduciale punt detectors om de alignering te leiden. Hoewel het DeepFace-model een eenvoudige punt detector gebruikt, past het deze toe in meerdere iteraties om het resultaat te verfijnen. Een Support Vector Regressor of SVR getraind om puntconfiguraties te bevooroordelen, haalt de fiduciale punten op uit een beeldbeschrijver bij elke iteratie. De beeldbeschrijver van DeepFace is gebaseerd op LBP-Histogrammen, hoewel het ook andere kenmerken in overweging neemt.
2D-Alignering
Het DeepFace-model start de aligneringsprocedure door zes fiduciale punten te detecteren binnen de detectiecrop, gecentreerd op het midden van de ogen, mondlocaties en de punt van de neus. Ze worden gebruikt om de afbeelding te roteren, schalen en vertalen naar zes ankerlocaties en herhalen op de verwrongen afbeelding totdat er geen zichtbare verandering is. De geaggregeerde transformatie genereert vervolgens een 2D-gealigneerde corp. De aligneringmethode is vrijwel identiek aan die gebruikt in LFW-a, en het is in de loop der jaren gebruikt in een poging om de modelnauwkeurigheid te verbeteren.
3D-Alignering
Om gezichten met uit-van-het-vlak rotaties te aligneren, gebruikt het DeepFace-framework een generieke 3D-vormmodel en registreert een 3D-camera die kan worden gebruikt om de 2D-gealigneerde corp te wikkelen naar de 3D-vorm in zijn beeldvlak. Als resultaat genereert het model de 3D-gealigneerde versie van de corp, en het wordt bereikt door 67 fiduciale punten te localiseren in de 2D-gealigneerde corp met behulp van een tweede SVR of Support Vector Regressor.
Het model plaatst vervolgens handmatig de 67 ankerpunten op de 3D-vorm en kan zo een volledige overeenstemming bereiken tussen 3D-referenties en hun corresponderende fiduciale punten. In de volgende stap wordt een 3D-naar-2D affiene camera toegevoegd met behulp van een gegeneraliseerde least squares-oplossing voor lineaire systemen met een bekende covariantiematrix die bepaalde verliezen minimaliseert.
Frontalisatie
Aangezien niet-rigide deformities en volledige perspectiefprojecties niet worden gemodelleerd, dient de aangepaste 3D-naar-2D-camera alleen als een benadering. In een poging om de corruptie van belangrijke identiteitsdragende factoren voor de uiteindelijke warp te verminderen, voegt het DeepFace-model de corresponderende residuen toe aan de x-y-componenten van elk referentiepunt. Een dergelijke ontspanning voor het doel van het verwringen van het 2D-beeld met minder distorties naar de identiteit is plausibel, en zonder het zouden de gezichten zijn verwrongen naar dezelfde vorm in 3D, en belangrijke discriminatieve factoren in het proces verloren zijn gegaan.
Ten slotte bereikt het model frontalisatie door een stuksgewijze affiene transformatie te gebruiken die wordt gericht door de Delaunay-triangulatie die is afgeleid van 67 fiduciale punten.

- Gedetecteerd gezicht met 6 fiduciale punten.
- Geïnduceerde 2D-gealigneerde corp.
- 67 fiduciale punten op de 2D-gealigneerde corp.
- Referentie 3D-vorm getransformeerd naar 2D-gealigneerde corp-afbeelding.
- Driehoekzichtbaarheid met betrekking tot de 3D-2D-camera.
- 67 fiduciale punten geïnduceerd door het 3D-model.
- 3D-gealigneerde versie van de definitieve corp.
- Nieuw beeld gegenereerd door het 3D-model.
Representatie
Met een toename van de hoeveelheid trainingsdata, hebben leren gebaseerde methoden zichzelf bewezen als meer efficiënt en nauwkeurig in vergelijking met geëngineerde kenmerken, voornamelijk omdat leren gebaseerde methoden kenmerken kunnen ontdekken en optimaliseren voor een specifieke taak.
DNN-Architectuur en Training
Het DeepFace DNN wordt getraind op een multi-class gezichtsherkenningstaak die de identiteit van een gezichtsafbeelding classificeert.
De bovenstaande figuur vertegenwoordigt de algehele architectuur van het DeepFace-model. Het model heeft een convolutionele laag (C1) met 32 filters van formaat 11x11x3 die een 3D-gealigneerd 3-kanaals RGB-afbeelding van formaat 152×152 pixels voedt, en het resulteert in 32 kenmerkkaarten. Deze kenmerkkaarten worden vervolgens gevoed aan een Max Pooling-laag of M2 die het maximum neemt over 3×3-spatiale buurten, en heeft een stapgrootte van 2, afzonderlijk voor elk kanaal. Vervolgens komt een andere convolutionele laag (C3) die bestaat uit 16 filters van elk formaat 9x9x16. Het primaire doel van deze lagen is om lage-niveau-kenmerken te extraheren, zoals textuur en eenvoudige randen. Het voordeel van het gebruik van Max Pooling-lagen is dat het de door de convolutionele lagen gegenereerde output robuuster maakt voor lokale translaties, en wanneer toegepast op gealigneerde gezichtsafbeeldingen, maken ze het netwerk veel robuuster voor registratiefouten op kleine schaal.
Meerdere niveaus van pooling maken het netwerk robuuster voor bepaalde situaties, maar het zorgt er ook voor dat het netwerk informatie verliest over de precieze positie van microtexturen en gedetailleerde gezichtsstructuren. Om te voorkomen dat het netwerk deze informatie verliest, gebruikt het DeepFace-model een Max Pooling-laag alleen met de eerste convolutionele laag. Deze lagen worden door het model geïnterpreteerd als een front-end adaptieve voorverwerkingstap. Hoewel ze de meeste berekeningen uitvoeren, hebben ze beperkte parameters op zichzelf, en ze breiden de invoer alleen uit naar een set lokale kenmerken.
De volgende lagen L4, L5 en L6 zijn lokaal verbonden, en net als een convolutionele laag, passen ze een filterbank toe waarbij elke locatie in de kenmerkkaart een unieke set filters leert. Aangezien verschillende regio’s in een gealigneerde afbeelding verschillende lokale statistieken hebben, kan het niet de ruimtelijke stationariteit aanname vasthouden. Bijvoorbeeld, het gebied tussen de wenkbrauwen en de ogen heeft een hogere discriminatievermogen in vergelijking met het gebied tussen de mond en de neus. Het gebruik van lokaal verbonden lagen beïnvloedt het aantal parameters dat onderhevig is aan training, maar het beïnvloedt de computationele last tijdens de kenmerkextractie niet.
Het DeepFace-model gebruikt drie lagen in de eerste plaats alleen omdat het een grote hoeveelheid goed gelabelde trainingsdata heeft. Het gebruik van lokaal verbonden lagen kan verder worden gerechtvaardigd omdat elke output-eenheid van een lokaal verbonden laag kan worden beïnvloed door een grote patch van invoerdata.
Ten slotte zijn de bovenste lagen volledig verbonden, met elke output-eenheid die verbonden is met alle invoeren. De twee lagen kunnen de correlaties tussen kenmerken vangen die in verschillende delen van de gezichtsafbeeldingen worden gevangen, zoals de positie en vorm van de mond, en de positie en vorm van de ogen. De output van de eerste volledig verbonden laag (F7) zal door het netwerk worden gebruikt als zijn ruwe gezichtsrepresentatie-kenmerkvector. Het model zal vervolgens de output van de laatste volledig verbonden laag (F8) voeden aan een K-weg softmax die een distributie over klasse-etiketten produceert.
Datasets
Het DeepFace-model gebruikt een combinatie van datasets, waarbij de Social Face Classification- of SFC-dataset de primaire is. Bovendien gebruikt het DeepFace-model ook de LFW-dataset en de YTF-dataset.
SFC-Dataset
De SFC-dataset is geleerd van een collectie van foto’s van Facebook (META ), en het bestaat uit 4,4 miljoen gelabelde afbeeldingen van 4.030 personen, waarbij elke persoon 800 tot 1200 gezichten heeft. De meest recente 5% van de SFC-dataset’s gezichtsafbeeldingen van elke identiteit worden voor testdoeleinden achtergelaten.
LFW-Dataset
De LFW-dataset bestaat uit 13.323 foto’s van meer dan vijfduizend beroemdheden die vervolgens worden onderverdeeld in 6.000 gezichtsparen over 10 splits.
YTF-Dataset
De YTF-dataset bestaat uit 3.425 video’s van 1.595 onderwerpen, en het is een subset van de beroemdheden in de LFW-dataset.
Resultaten
Zonder frontalisatie en wanneer alleen de 2D-alignering wordt gebruikt, bereikt het model een nauwkeurigheidsscore van slechts ongeveer 94,3%. Wanneer het model het centrale corp van gezichtsdetectie gebruikt, gebruikt het geen enkele alignering, en in dit geval retourneert het model een nauwkeurigheidsscore van 87,9% omdat sommige delen van de gezichtsregio buiten het centrale corp kunnen vallen. Om de discriminatieve capaciteit van de gezichtsrepresentatie in isolatie te evalueren, volgt het model de onbegeleide leerinstelling om de inner product van genormaliseerde kenmerken te vergelijken. Het verhoogt de gemiddelde nauwkeurigheid van het model tot 95,92%.

De bovenstaande model vergelijkt de prestaties van het DeepFace-model met andere state-of-the-art gezichtsherkenningmodellen.

De bovenstaande afbeelding toont de ROC-krommen op de dataset.
Conclusie
Ideaal gezien zal een gezichtsclassificator in staat zijn om gezichten te herkennen met de nauwkeurigheid van een mens, en het zal in staat zijn om hoge nauwkeurigheid te retourneren ongeacht de beeldkwaliteit, pose, expressie of verlichting. Bovendien zal een ideale gezichtsherkenningframework in staat zijn om op een breed scala aan toepassingen te worden toegepast met weinig of geen aanpassingen. Hoewel DeepFace een van de meest geavanceerde en efficiënte gezichtsherkenningframeworks is, is het niet perfect, en het kan niet in staat zijn om nauwkeurige resultaten te leveren in bepaalde situaties. Maar het DeepFace-framework is een belangrijke mijlpaal in de gezichtsherkenningindustrie, en het sluit het prestatiegap door gebruik te maken van een krachtige metriekleertechniek, en het zal in de loop der tijd steeds efficiënter worden.












