Intelligenza artificiale
DeepFace per il riconoscimento facciale avanzato

Il riconoscimento facciale è stato un campo in tendenza nell’IA e nel ML per diversi anni, e le ampie implicazioni culturali e sociali del riconoscimento facciale sono molto diffuse. Tuttavia, esiste un divario di prestazioni tra i sistemi visivi umani e le macchine che attualmente limita le applicazioni del riconoscimento facciale.
Per superare il buffer creato dal divario di prestazioni e fornire un’accuratezza al livello umano, Meta ha introdotto DeepFace, un framework di riconoscimento facciale. Il modello DeepFace è stato addestrato su un grande set di dati facciali che differisce notevolmente dai set di dati utilizzati per costruire le benchmark di valutazione, e ha il potenziale per superare i framework esistenti con minimi adattamenti. Inoltre, il framework DeepFace produce rappresentazioni facciali compatte rispetto ad altri sistemi che producono migliaia di caratteristiche di aspetto facciale.
Il framework DeepFace proposto utilizza Deep Learning per addestrarsi su un grande set di dati costituito da diverse forme di dati, tra cui immagini, video e grafica. L’architettura della rete DeepFace assume che, una volta completata l’allineamento, la posizione di ogni regione facciale sia fissa a livello di pixel. Pertanto, è possibile utilizzare i valori RGB dei pixel grezzi senza utilizzare多pli strati convoluzionali come negli altri framework.
La pipeline convenzionale dei moderni framework di riconoscimento facciale comprende quattro fasi: rilevamento, allineamento, rappresentazione e classificazione. Il framework DeepFace impiega la modellazione facciale 3D esplicita per applicare una trasformazione a pezzi e utilizza una rete neurale profonda a nove strati per derivare una rappresentazione facciale. Il framework DeepFace tenta di apportare i seguenti contributi
- Sviluppare un’architettura di rete neurale profonda (DNN) efficace che possa sfruttare un grande set di dati per creare una rappresentazione facciale che possa essere generalizzata ad altri set di dati.
- Utilizzare la modellazione 3D esplicita per sviluppare un sistema di allineamento facciale efficace.
Comprensione del funzionamento del modello DeepFace
Allineamento del viso
L’allineamento del viso è una tecnica che ruota l’immagine di una persona in base all’angolo degli occhi. L’allineamento del viso è una pratica popolare utilizzata per pre-elaborare i dati per il riconoscimento facciale, e i set di dati allineati faccialmente aiutano a migliorare l’accuratezza degli algoritmi di riconoscimento fornendo un input normalizzato. Tuttavia, allineare i visi in modo non vincolato può essere un compito difficile a causa dei molti fattori coinvolti, come espressioni non rigide, pose del corpo e altro. Molte tecniche di allineamento sofisticate, come l’utilizzo di un modello 3D analitico del viso o la ricerca di punti di riferimento da un set di dati esterno, possono consentire agli sviluppatori di superare le sfide.
Sebbene l’allineamento sia il metodo più popolare per affrontare la verifica e il riconoscimento del viso non vincolati, non esiste attualmente una soluzione perfetta. I modelli 3D sono anche utilizzati, ma la loro popolarità è diminuita notevolmente negli ultimi anni, specialmente quando si lavora in un ambiente non vincolato. Tuttavia, poiché i visi umani sono oggetti 3D, potrebbe essere l’approccio giusto se utilizzato correttamente. Il modello DeepFace utilizza un sistema che utilizza punti di riferimento per creare una modellazione 3D analitica del viso. Questa modellazione 3D viene quindi utilizzata per deformare una crop facciale in un modello frontale 3D.
Inoltre, proprio come la maggior parte delle pratiche di allineamento, l’allineamento DeepFace utilizza anche rilevatori di punti di riferimento per dirigere il processo di allineamento. Sebbene il modello DeepFace utilizzi un rilevatore di punti semplice, lo applica in diverse iterazioni per raffinare l’output. Un regressore vettoriale di supporto (SVR) addestrato per pregiudicare le configurazioni dei punti estrae i punti di riferimento da un descrittore di immagine a ogni iterazione. Il descrittore di immagine DeepFace si basa sugli istogrammi LBP, anche se considera anche altre caratteristiche.
2D Allineamento
Il modello DeepFace inizia il processo di allineamento rilevando sei punti di riferimento all’interno della crop di rilevamento, centrata nel mezzo degli occhi, delle posizioni della bocca e della punta del naso. Vengono utilizzati per ruotare, scalare e traslare l’immagine in sei posizioni di ancoraggio e iterare sull’immagine deformata fino a quando non si verifica alcun cambiamento visibile. La trasformazione aggregata genera quindi una crop allineata 2D. Il metodo di allineamento è abbastanza simile a quello utilizzato in LFW-a ed è stato utilizzato nel corso degli anni nel tentativo di aumentare l’accuratezza del modello.
3D Allineamento
Per allineare i visi con rotazioni fuori piano, il framework DeepFace utilizza un modello di forma 3D generico e registra una telecamera 3D che può essere utilizzata per avvolgere la crop allineata 2D nella forma 3D nel suo piano di immagine. Di conseguenza, il modello genera la versione allineata 3D della crop e viene raggiunta localizzando ulteriori 67 punti di riferimento nella crop allineata 2D utilizzando un secondo SVR.
Il modello colloca quindi manualmente i 67 punti di ancoraggio sulla forma 3D e riesce così a raggiungere la piena corrispondenza tra riferimenti 3D e punti di riferimento corrispondenti. Nel passaggio successivo, viene aggiunta una telecamera affina 3D-2D utilizzando una soluzione di minimi quadrati generalizzata ai sistemi lineari con una matrice di covarianza nota che minimizza alcune perdite.
Frontalizzazione
Poiché le deformazioni non rigide e le proiezioni di prospettiva complete non sono modellate, la telecamera 3D-2D adattata serve solo come approssimazione. Nel tentativo di ridurre la corruzione dei fattori di identità portanti importanti per la deformazione finale, il modello DeepFace aggiunge i residui corrispondenti ai componenti x-y di ogni punto di riferimento di riferimento. Una tale rilassazione per lo scopo di deformare l’immagine 2D con meno distorsioni all’identità è plausibile e senza di essa i visi sarebbero stati deformati nella stessa forma in 3D, perdendo importanti fattori discriminatori nel processo.
Infine, il modello raggiunge la frontalizzazione utilizzando una trasformazione affine a pezzi diretta dalla triangolazione di Delaunay derivata da 67 punti di riferimento.

- Viso rilevato con 6 punti di riferimento.
- Crop allineata 2D indotta.
- 67 punti di riferimento sulla crop allineata 2D.
- Forma di riferimento 3D trasformata nella crop allineata 2D.
- Visibilità del triangolo rispetto alla telecamera 3D-2D.
- 67 punti di riferimento indotti dal modello 3D.
- Versione allineata 3D della crop finale.
- Nuova vista generata dal modello 3D.
Rappresentazione
Con l’aumento della quantità di dati di addestramento, i metodi basati sull’apprendimento hanno dimostrato di essere più efficienti e precisi rispetto alle caratteristiche ingegnerizzate, principalmente perché i metodi basati sull’apprendimento possono scoprire e ottimizzare le caratteristiche per un compito specifico.
Architettura DNN e addestramento
La DNN DeepFace è addestrata su un compito di riconoscimento facciale multiclasse che classifica l’identità di un’immagine del viso.
La figura sopra rappresenta l’architettura generale del modello DeepFace. Il modello ha uno strato convoluzionale (C1) con 32 filtri di dimensione 11x11x3 che viene alimentato con un’immagine RGB 3D allineata di dimensione 152×152 pixel, e ciò risulta in 32 mappe di caratteristiche. Queste mappe di caratteristiche vengono quindi alimentate in uno strato di pooling di massima (M2) che prende il massimo su 3×3 vicinati spaziali, e ha una lunghezza di passo di 2, separatamente per ogni canale. Segue un altro strato convoluzionale (C3) che comprende 16 filtri di dimensione 9x9x16. Lo scopo principale di questi strati è estrarre caratteristiche di basso livello come texture ed bordi semplici. Il vantaggio dell’utilizzo di strati di pooling di massima è che rende l’output generato dagli strati convoluzionali più robusto alle traduzioni locali, e quando applicato alle immagini del viso allineate, rende la rete molto più robusta agli errori di registrazione su piccola scala.
Molti livelli di pooling possono rendere la rete più robusta a determinate situazioni, ma possono anche far perdere informazioni sulla posizione precisa delle microtexture e delle strutture facciali dettagliate. Per evitare che la rete perda queste informazioni, il modello DeepFace utilizza uno strato di pooling di massima solo con il primo strato convoluzionale. Questi strati vengono interpretati dal modello come un passo di pre-elaborazione adattivo front-end. Sebbene facciano la maggior parte dei calcoli, hanno pochi parametri di per sé e semplicemente espandono l’input in un set di caratteristiche locali.
Gli strati successivi L4, L5 e L6 sono connessi localmente, e proprio come uno strato convoluzionale, applicano una banca di filtri in cui ogni posizione nella mappa di caratteristiche apprende un insieme univoco di filtri. Poiché diverse regioni in un’immagine allineata hanno statistiche locali diverse, non può essere mantenuta l’ipotesi di stazionarietà spaziale. Ad esempio, l’area tra le sopracciglia e gli occhi ha una maggiore capacità di discriminazione rispetto all’area tra la bocca e il naso. L’utilizzo di strati leali influisce sul numero di parametri soggetti all’addestramento, ma non influenza il carico computazionale durante l’estrazione delle caratteristiche.
Il modello DeepFace utilizza tre strati solo perché ha una grande quantità di dati di addestramento etichettati. L’utilizzo di strati connessi localmente può essere ulteriormente giustificato poiché ogni unità di output di uno strato connesso localmente può essere influenzata da un grande patch di dati di input.
Infine, gli strati superiori sono connessi completamente con ogni unità di output connessa a tutti gli input. I due strati possono catturare le correlazioni tra caratteristiche catturate in diverse parti delle immagini del viso, come posizione e forma della bocca e posizione e forma degli occhi. L’output del primo strato completamente connesso (F7) verrà utilizzato dalla rete come vettore di caratteristiche grezzo della rappresentazione del viso. Il modello alimenta quindi l’output dell’ultimo strato completamente connesso (F8) a un softmax K-vie che produce una distribuzione su etichette di classe.
Set di dati
Il modello DeepFace utilizza una combinazione di set di dati con il set di dati di classificazione del viso sociale (SFC) come principale. Inoltre, il modello DeepFace utilizza anche il set di dati LFW e il set di dati YTF.
Set di dati SFC
Il set di dati SFC è stato appreso da una raccolta di immagini da Facebook e consiste in 4,4 milioni di immagini etichettate di 4.030 persone, con ciascuna di esse avente 800-1.200 visi. Le ultime 5% delle immagini del viso del set di dati SFC di ciascuna identità vengono lasciate fuori per scopi di test.
Set di dati LFW
Il set di dati LFW consiste in 13.323 foto di oltre cinquemila celebrità che vengono quindi divise in 6.000 coppie di visi su 10 split.
Set di dati YTF
Il set di dati YTF consiste in 3.425 video di 1.595 soggetti e rappresenta un subset delle celebrità nel set di dati LFW.
Risultati
Senza frontalizzazione e utilizzando solo l’allineamento 2D, il modello raggiunge un punteggio di accuratezza di solo il 94,3%. Quando il modello utilizza la crop centrale della rilevazione del viso, non utilizza l’allineamento e in questo caso il modello restituisce un punteggio di accuratezza dell’87,9% perché alcune parti della regione del viso possono cadere fuori dalla crop centrale. Per valutare la capacità discriminatoria della rappresentazione del viso in isolamento, il modello segue l’impostazione di apprendimento non supervisionato per confrontare il prodotto interno delle caratteristiche normalizzate. Ciò aumenta l’accuratezza media del modello al 95,92%.

Il modello sopra confronta le prestazioni del modello DeepFace rispetto ad altri modelli di riconoscimento facciale all’avanguardia.

La figura sopra rappresenta le curve ROC nel set di dati.
Conclusione
Idealmente, un classificatore del viso dovrebbe essere in grado di riconoscere i visi con l’accuratezza di un essere umano e dovrebbe essere in grado di restituire un’alta accuratezza indipendentemente dalla qualità dell’immagine, dalla posa, dall’espressione o dall’illuminazione. Inoltre, un framework di riconoscimento facciale ideale dovrebbe essere in grado di essere applicato a una varietà di applicazioni con poche o nessuna modifica. Sebbene DeepFace sia uno dei framework di riconoscimento facciale più avanzati e efficienti attualmente, non è perfetto e potrebbe non essere in grado di fornire risultati accurati in determinate situazioni. Tuttavia, il framework DeepFace è un importante traguardo nell’industria del riconoscimento facciale e chiude il divario di prestazioni utilizzando una potente tecnica di apprendimento metrico e continuerà a diventare più efficiente nel tempo.












