mozzicone DeepFace per il riconoscimento facciale avanzato - Unite.AI
Seguici sui social

Intelligenza Artificiale

DeepFace per il riconoscimento facciale avanzato

mm
aggiornato on

Il riconoscimento facciale è un campo di tendenza nell’intelligenza artificiale e nel machine learning ormai da diversi anni e le diffuse implicazioni culturali e sociali del riconoscimento facciale sono di vasta portata. Tuttavia, esiste un divario prestazionale tra i sistemi visivi umani e le macchine che attualmente limita le applicazioni del riconoscimento facciale. 

Per superare il buffer creato dal divario prestazionale e fornire una precisione a livello umano, Meta ha introdotto Faccia Profonda, un quadro di riconoscimento facciale. Il modello DeepFace è addestrato su un ampio set di dati facciali che differisce in modo significativo dai set di dati utilizzati per costruire i parametri di valutazione e ha il potenziale per superare i quadri esistenti con adattamenti minimi. Inoltre, il framework DeepFace produce rappresentazioni facciali compatte rispetto ad altri sistemi che producono migliaia di caratteristiche dell'aspetto facciale. 

Il framework DeepFace proposto utilizza Deep Learning per eseguire l'addestramento su un set di dati di grandi dimensioni costituito da diverse forme di dati, tra cui immagini, video e grafica. L'architettura di rete DeepFace presuppone che una volta completato l'allineamento, la posizione di ogni regione del viso sia fissata a livello di pixel. Pertanto, è possibile utilizzare i valori RGB dei pixel grezzi senza utilizzare più livelli convoluzionali come avviene in altri framework. 

La pipeline convenzionale dei moderni sistemi di riconoscimento facciale comprende quattro fasi: rilevamento, allineamento, rappresentazione e classificazione. Il framework DeepFace utilizza una modellazione facciale 3D esplicita per applicare una trasformazione a tratti e utilizza una rete neurale profonda a nove strati per ricavare una rappresentazione facciale. Il framework DeepFace tenta di apportare i seguenti contributi

  1. Sviluppare un'architettura DNN o Deep Neural Network efficace in grado di sfruttare un set di dati di grandi dimensioni per creare una rappresentazione facciale che possa essere generalizzata ad altri set di dati. 
  2. Utilizza la modellazione 3D esplicita per sviluppare un sistema di allineamento facciale efficace. 

Comprendere il funzionamento del modello DeepFace

Allineamento del viso

Il Face Alignment è una tecnica che ruota l'immagine di una persona in base all'angolo degli occhi. L'allineamento del volto è una pratica popolare utilizzata per preelaborare i dati riconoscimento faccialee i set di dati allineati sul viso aiutano a migliorare l'accuratezza degli algoritmi di riconoscimento fornendo un input normalizzato. Tuttavia, allineare i volti in modo non vincolato può essere un compito impegnativo a causa dei molteplici fattori coinvolti come espressioni non rigide, pose del corpo e altro ancora. Diverse tecniche di allineamento sofisticate, come l’utilizzo di un modello 3D analitico del volto o la ricerca di punti fiduciali da set di dati esterni, potrebbero consentire agli sviluppatori di superare le sfide. 

Sebbene l’allineamento sia il metodo più popolare per gestire la verifica e il riconoscimento dei volti senza vincoli, al momento non esiste una soluzione perfetta. Vengono utilizzati anche modelli 3D, ma la loro popolarità è diminuita notevolmente negli ultimi anni, soprattutto quando si lavora in un ambiente senza vincoli. Tuttavia, poiché i volti umani sono oggetti 3D, potrebbe essere l’approccio giusto se utilizzato correttamente. Il modello DeepFace utilizza un sistema che utilizza punti fiduciali per creare una modellazione 3D analitica del volto. Questa modellazione 3D viene quindi utilizzata per deformare un ritaglio facciale in modalità frontale 3D. 

Inoltre, proprio come la maggior parte delle pratiche di allineamento, anche l'allineamento DeepFace utilizza rilevatori di punti fiduciali per dirigere il processo di allineamento. Sebbene il modello DeepFace utilizzi un semplice rilevatore puntiforme, lo applica in diverse iterazioni per perfezionare l'output. Un Support Vector Regressor o SVR addestrato a pregiudicare le configurazioni dei punti estrae i punti fiduciali da un descrittore di immagine ad ogni iterazione. Il descrittore dell'immagine di DeepFace si basa sugli istogrammi LBP sebbene consideri anche altre funzionalità. 

Allineamento 2D

Il Faccia Profonda il modello avvia il processo di allineamento rilevando sei punti fiduciali all'interno del ritaglio di rilevamento, centrati al centro degli occhi, nelle posizioni della bocca e sulla punta del naso. Vengono utilizzati per ruotare, ridimensionare e tradurre l'immagine in sei posizioni di ancoraggio e scorrere l'immagine deformata fino a quando non vi è alcun cambiamento visibile. La trasformazione aggregata genera quindi un corpo allineato 2D. Il metodo di allineamento è abbastanza simile a quello utilizzato in LFW-a ed è stato utilizzato nel corso degli anni nel tentativo di aumentare la precisione del modello. 

Allineamento 3D

Per allineare i volti 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 il corpo allineato 2D nella forma 3D nel suo piano dell'immagine. Di conseguenza, il modello genera la versione allineata in 3D del corpo e si ottiene localizzando altri 67 punti fiduciali nel corpo allineato in 2D utilizzando un secondo SVR o Support Vector Regressor. 

Il modello posiziona quindi manualmente i 67 punti di ancoraggio sulla forma 3D ed è così in grado di ottenere la piena corrispondenza tra i riferimenti 3D e i corrispondenti punti fiduciali. Nella fase successiva, viene aggiunta una fotocamera affine da 3D a 2D utilizzando una soluzione generalizzata dei minimi quadrati ai sistemi lineari con una matrice di covarianza nota che minimizza determinate perdite. 

Frontalizzazione

Poiché le deformazioni non rigide e le proiezioni prospettiche complete non vengono modellate, la fotocamera da 3D a 2D montata serve solo come approssimazione. Nel tentativo di ridurre la corruzione di importanti fattori portatori di identità fino alla deformazione finale, il modello DeepFace aggiunge i residui corrispondenti alle componenti xy di ciascun punto fiduciale di riferimento. Tale rilassamento allo scopo di deformare l'immagine 2D con meno distorsioni dell'identità è plausibile e, senza di esso, i volti sarebbero stati deformati nella stessa forma in 3D, perdendo importanti fattori discriminanti nel processo. 

Infine, il modello ottiene la frontalizzazione utilizzando una trasformazione affine a tratti diretta dalla triangolazione di Delaunay derivata da 67 punti fiduciali. 

  1. Volto rilevato con 6 punti fiduciali. 
  2. Corp. allineato 2D indotto. 
  3. 67 punti fiduciali sulla società allineata in 2D. 
  4. Forma 3D di riferimento trasformata in immagine aziendale allineata in 2D. 
  5. Visibilità del triangolo rispetto alla telecamera 3D-2D. 
  6. 67 punti fiduciali indotti dal modello 3D. 
  7. Versione allineata in 3D del corpo finale. 
  8. Nuova vista generata dal modello 3D. 

sul Mercato

Con l'aumento della quantità di dati di addestramento, i metodi basati sull'apprendimento si sono rivelati più efficienti e accurati rispetto alle funzionalità progettate principalmente perché i metodi basati sull'apprendimento possono scoprire e ottimizzare le funzionalità per un'attività specifica. 

Architettura e formazione DNN

Il DNN DeepFace è addestrato su un'attività di riconoscimento facciale multiclasse che classifica l'identità di un'immagine del volto. 

La figura sopra rappresenta l'architettura complessiva del modello DeepFace. Il modello ha uno strato convoluzionale (C1) con 32 filtri di dimensione 11x11x3 a cui viene alimentata un'immagine RGB a 3 canali allineata in 3D di dimensione 152×152 pixel e risulta in 32 mappe di caratteristiche. Queste mappe delle caratteristiche vengono quindi inviate a un livello Max Pooling o M2 che prende il massimo su quartieri spaziali 3×3 e ha un passo di 2, separatamente per ciascun canale. Segue un altro strato convoluzionale (C3) che comprende 16 filtri ciascuno di dimensioni 9x9x16. Lo scopo principale di questi livelli è estrarre caratteristiche di basso livello come texture e bordi semplici. Il vantaggio dell'utilizzo dei livelli Max Pooling è che rende l'output generato dai livelli convoluzionali più robusto per le traduzioni locali e, quando applicati a immagini di volti allineati, rendono la rete molto più resistente agli errori di registrazione su piccola scala. 

Livelli multipli di pooling rendono la rete più robusta in determinate situazioni, ma causano anche la perdita di informazioni sulla posizione precisa delle microtrame e delle strutture facciali dettagliate. Per evitare che la rete perda le informazioni, il modello DeepFace utilizza un livello di pooling massimo solo con il primo livello convoluzionale. Questi livelli vengono quindi interpretati dal modello come una fase di pre-elaborazione adattiva front-end. Sebbene eseguano la maggior parte del calcolo, hanno parametri limitati e si limitano a espandere l'input in un insieme di caratteristiche locali. 

I seguenti livelli L4, L5 e L6 sono collegati localmente e, proprio come un livello convoluzionale, applicano un banco di filtri in cui ogni posizione nella mappa delle caratteristiche apprende un set unico di filtri. Poiché diverse regioni in un'immagine allineata hanno statistiche locali diverse, non è possibile sostenere il presupposto di stazionarietà spaziale. Ad esempio, l’area tra le sopracciglia e gli occhi ha una capacità di discriminazione maggiore rispetto all’area tra la bocca e il naso. L'uso di layer fedeli influisce sul numero di parametri soggetti ad addestramento ma non influisce sull'onere computazionale durante l'estrazione delle feature. 

Il modello DeepFace utilizza tre livelli in primo luogo solo perché dispone di una grande quantità di dati di addestramento ben etichettati. L'uso di strati connessi localmente può essere ulteriormente giustificato poiché ciascuna unità di output di uno strato connesso localmente può essere influenzata da una grande porzione di dati di input. 

Infine, gli strati superiori sono completamente collegati con ciascuna unità di uscita collegata a tutti gli ingressi. I due livelli possono catturare le correlazioni tra le caratteristiche catturate in diverse parti delle immagini del viso come la posizione e la forma della bocca e la posizione e la forma degli occhi. L'output del primo livello completamente connesso (F7) verrà utilizzato dalla rete come vettore di caratteristiche di rappresentazione della faccia grezza. Il modello alimenterà quindi l'output dell'ultimo livello completamente connesso (F8) a un softmax K-way che produce una distribuzione sulle etichette di classe. 

Dataset

Il modello DeepFace utilizza una combinazione di set di dati con il set di dati Social Face Classification o SFC come quello 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 viene appreso da una raccolta di immagini da Facebook e consiste di 4.4 milioni di immagini etichettate di 4,030 persone, ciascuna con da 800 a 1200 volti. Il 5% più recente delle immagini dei volti di ciascuna identità del set di dati SFC viene escluso a scopo di test.

Set di dati LFW

Il set di dati LFW è composto da 13,323 foto di oltre cinquemila celebrità che vengono poi divise in 6,000 coppie di volti in 10 suddivisioni. 

Set di dati YTF

Il set di dati YTF è composto da 3,425 video di 1,595 soggetti ed è un sottoinsieme delle celebrità nel set di dati LFW. 

Risultati

Senza frontalizzazione e utilizzando solo l'allineamento 2D, il modello raggiunge un punteggio di precisione solo del 94.3% circa. Quando il modello utilizza il corpo centrale del rilevamento del volto, non utilizza alcun allineamento e, in questo caso, il modello restituisce un punteggio di precisione dell'87.9% poiché alcune parti della regione del viso potrebbero fuoriuscire dal corpo centrale. Per valutare la capacità discriminativa della rappresentazione del volto isolatamente, il modello segue l'impostazione di apprendimento non supervisionato per confrontare il prodotto interno delle caratteristiche normalizzate. Aumenta la precisione media del modello al 95.92% 

Il modello sopra mette a confronto le prestazioni del modello DeepFace rispetto ad altri modelli di riconoscimento facciale all'avanguardia. 

L'immagine sopra mostra le curve ROC sul set di dati. 

Conclusione

Idealmente, un classificatore di volti sarà in grado di riconoscere i volti con la precisione di un essere umano e sarà in grado di restituire un'elevata precisione indipendentemente dalla qualità dell'immagine, dalla posa, dall'espressione o dall'illuminazione. Inoltre, una struttura ideale per il riconoscimento facciale potrà essere applicata a una varietà di applicazioni con poche o nessuna modifica. Sebbene DeepFace sia attualmente uno dei framework di riconoscimento facciale più avanzati ed efficienti, non è perfetto e potrebbe non essere in grado di fornire risultati accurati in determinate situazioni. Ma il Faccia Profonda Il framework rappresenta una pietra miliare significativa nel settore del riconoscimento facciale e colma il divario prestazionale facendo uso di una potente tecnica di apprendimento metrico e continuerà a diventare più efficiente nel tempo. 

"Un ingegnere di professione, uno scrittore a memoria". Kunal è uno scrittore tecnico con un profondo amore e comprensione di AI e ML, dedito a semplificare concetti complessi in questi campi attraverso la sua documentazione coinvolgente e informativa.