Come fanno i computer a riconoscere i volti umani?

In questo post del blog, esamineremo in modo semplice e diretto i principi e i processi alla base del riconoscimento dei volti umani da parte dei computer.

 

Quali sono i principi alla base del riconoscimento facciale?

Probabilmente da bambini avrete giocato almeno una volta a un gioco in cui bisognava comporre un volto umano. In questo gioco, si sceglieva prima la forma del viso, poi si selezionavano, uno alla volta, l'acconciatura, gli occhi, il naso e la bocca, posizionandoli sul viso. Alternando acconciature, occhi, nasi e bocche, si poteva creare il volto desiderato. Il modo in cui i computer riconoscono e confrontano i volti non è molto diverso. I computer identificano e memorizzano i tratti del viso; quando viene inserita una nuova foto di un volto, la confrontano con i tratti memorizzati per determinare chi è la persona.
Un esempio recente di tecnologia di riconoscimento facciale facilmente accessibile è rappresentato dalle applicazioni di riconoscimento facciale (App). Queste app pre-estraggono e memorizzano le caratteristiche principali, come i contorni del viso, gli occhi, il naso e la bocca, dalle foto di celebrità. Successivamente, quando il volto di una persona viene ripreso dalla fotocamera, l'app estrae le caratteristiche facciali allo stesso modo e le confronta con le caratteristiche facciali memorizzate delle celebrità per identificare e mostrare la persona che più corrisponde.

 

Come fa un computer a riconoscere un volto?

Ora esaminiamo il processo di riconoscimento facciale del computer. Il riconoscimento facciale si compone di quattro fasi principali: immissione dei dati, rilevamento del volto, estrazione delle caratteristiche e confronto.
Nella fase di input, un singolo fotogramma di una foto o di un video viene trasmesso al computer tramite un dispositivo di input. In genere, maggiore è la risoluzione del dispositivo di input e maggiore è il numero di fotogrammi al secondo (FPS), maggiore è la precisione con cui è possibile riconoscere i volti. Questo principio è simile a quello che permette a una persona con una buona vista di riconoscere con maggiore precisione il volto di qualcuno che si trova lontano.
Nella fase di rilevamento del volto, il sistema verifica innanzitutto se un volto è presente nella foto o nel video in ingresso. A tal fine, identifica il contorno del volto e le caratteristiche principali come occhi, naso e bocca. Sebbene siano attualmente in uso diverse tecniche di rilevamento del volto, in questa sede ci concentreremo sul metodo di rilevamento di tipo Haar, che rappresenta un esempio rappresentativo.
Il metodo di rilevamento di tipo Haar utilizza le wavelet di Haar. Una wavelet è un semplice pattern rettangolare composto da regioni bianche e nere. Queste regioni bianche e nere vengono utilizzate per identificare le aree di un'immagine in cui si verificano differenze di luminosità. Applicando wavelet di varie dimensioni e forme all'intera immagine o video di input e conservando solo le posizioni in cui la differenza di luminosità tra le regioni bianche e nere è significativa, il sistema può rilevare efficacemente il contorno del viso e le caratteristiche facciali principali come occhi, naso, bocca e sopracciglia. Inoltre, questo processo consente anche di estrarre informazioni posizionali relative alle caratteristiche del viso.
Ad esempio, quando si estraggono informazioni sugli occhi, le regioni nere dell'onda wavelet sono posizionate in modo da corrispondere ad aree relativamente scure, come la pupilla, mentre le regioni bianche corrispondono ad aree chiare, come la pelle. Sfruttando queste differenze di luminosità, è possibile rilevare efficacemente la posizione e la forma degli occhi.

 

Come vengono estratti i tratti del viso?

Una volta completata la fase di rilevamento del volto, il sistema determina se procedere alla fase di estrazione delle caratteristiche.
Nella fase di estrazione delle caratteristiche, i tratti del viso vengono estratti per sfruttare appieno i componenti facciali identificati durante la fase di rilevamento del volto. A differenza della fase di rilevamento del volto, questo processo prevede una fase di pre-elaborazione. Poiché l'angolo di rotazione, le dimensioni e l'intensità luminosa dei volti variano da una fotografia all'altra o da un video all'altro, viene eseguito un processo di normalizzazione per standardizzarli il più possibile. Inoltre, le fotografie o i video a colori possono essere convertiti in immagini in bianco e nero, se necessario.
Ad esempio, la foto originale viene convertita in scala di grigi, quindi viene ritagliata e ridimensionata a una dimensione uniforme solo la regione del viso, e viene eseguita l'equalizzazione dell'istogramma per correggere la luminosità. Utilizzando le informazioni sulla posizione dei componenti del viso ottenute durante la fase di rilevamento del volto, i tratti del viso vengono estratti dalle foto o dai video che sono stati sottoposti a questa preelaborazione.

 

Come vengono utilizzate le caratteristiche facciali estratte?

Durante la fase di confronto, le informazioni relative a questi componenti facciali estratti vengono memorizzate in un database (DB) oppure confrontate con dati facciali esistenti per identificare la corrispondenza migliore.
Abbiamo esaminato il processo di riconoscimento facciale basato su computer. Solo pochi decenni fa, l'idea di un computer in grado di distinguere le persone sembrava una tecnologia lontana dalla realtà. Tuttavia, grazie al rapido progresso dell'hardware, del software e dell'intelligenza artificiale, il riconoscimento facciale è ora ampiamente utilizzato in diversi settori, tra cui smartphone e laptop, nonché nel controllo degli accessi, nei servizi finanziari e nella sicurezza aeroportuale. Oggi, la tecnologia che permette ai computer di riconoscere i volti umani non è più una storia del futuro, ma è diventata una tecnologia naturalmente integrata nella nostra vita quotidiana.

 

Circa l'autore