2 
“faccia a faccia” [P. Ciaccia, 2002]. Le applicazioni pratiche del riconoscimento 
facciale, e più in generale di quello biometrico, tese al miglioramento della qua lità della 
vita sono innumerevoli. Un elenco non esaustivo, in ordine sparso d‟importanza, delle 
numerose applicazioni pratiche potrebbe essere il seguente: 
1. riconoscimento facciale da usare, in parallelo ad altre caratteristiche biometriche 
come l‟impronta digitale e quella dell‟iride, per il riconoscimento sicuro di un 
individuo, come una sorta di “DNA”; 
2. progressiva scomparsa delle schede bancomat o delle smart-card, da usare nelle 
transazioni sicure on- line (come nell‟home banking), a favore dell‟uso di piccoli 
ed economici apparati di identificazione tramite parametri biometrici;  
3. eliminazione quasi totale di qualsiasi tipo di password. Non sarà più necessaria la 
loro memorizzazione se non nel caso in cui serva abilitare temporaneamente terze 
persone a servizi disponibili ad altri utenti mediante riconoscimento biometrico. 
Chiaramente le password rimarrebbero per motivi di sicurezza anche nel caso in 
cui gli apparati di riconoscimento non fossero più perfettamente funzionanti per 
permettere comunque anche in questi casi un accesso al servizio richiesto; 
4. eliminazione quasi completa di qualsiasi tipo di chiave, sia di casa sia della 
propria autovettura, aumentando anche il livello di sicurezza. Per avere più 
sicurezza, oltre al riconoscimento facciale, può essere usata l‟impronta digitale per 
accedere alla propria abitazione/autovettura. Chiaramente anche in questo caso le 
chiavi non sarebbero eliminate completamente ma rimarrebbero per essere usate 
in casi eccezionali come al punto precedente; 
5. uso del riconoscimento biometrico agli ingressi di edifici governativi, per la 
sicurezza nelle aziende, nelle banche o più in generale in strutture che necessitano 
un accesso controllato e sicuro; 
6. uso del riconoscimento facciale mediante telecamere, non invasive come gli altri 
sistemi di riconoscimento biometrico, per l‟individuazione di criminali e terroristi 
e per la sicurezza nei luoghi pubblici come gli aeroporti e le stazioni. Il sistema è 
già stato usato negli U.S.A. al Super Bowl con degli ottimi risultati; 
7. uso nel campo delle investigazioni scientifiche per il riconoscimento di malviventi 
schedati, sia tramite impronte digitali sia mediante riconoscimento facciale da una 
fotografia o da un filmato di una telecamera di sorveglianza; 
8. uso in auto per il riconoscimento di particolari situazioni di stress o distrazione da 
parte del guidatore o per avvertirlo in anticipo nel caso in cui si stia per 
addormentare. Il sistema è già stato impiegato in dei prototipi della Toyota; 
 3 
9. eliminazione della possibilità di votare più di una volta a qualsiasi tipo di elezione 
o votazione. Questo metodo sarà utilizzato molto probabilmente alle prossime 
elezioni presidenziali messicane; 
10. uso di apparati più generali di riconoscimento di oggetti e dell‟ambiente da poter 
utilizzare nei futuri robot domestici. 
Per comprendere bene l‟importanza che il riconoscimento facciale riveste nella 
comunità scientifica e non solo, basta menzionare il Face Recognition Grand Challenge  
(FRGC), una sorta di grande gara fra ricercatori accademici e di compagnie private 
volta allo sviluppo di nuovi algoritmi o di nuove tecnologie per il riconoscimento 
automatico di volti umani. Lo scopo principale del FRGC era quello di promuovere e 
far sviluppare la tecnologia del riconoscimento facciale, a supporto degli sforzi già 
messi in atto dal governo U.S.A. La gara, disputata fra Maggio 2004 e Marzo 2006, 
consisteva in due problemi di difficoltà crescente, ognuno ben definito tramite una serie 
di immagini di test e una sequenza di esperimenti da completare. Le tecniche pr incipali 
usate nel challenge possono essere suddivise in tre categorie: quella che utilizza 
immagini in alta risoluzione, quella che prevede un riconoscimento 3D e, infine, quella 
denominata “nuove tecniche”.  
La tesi riguarda quindi un‟applicazione tipica di Intelligenza Artificiale (IA) che si 
inquadra nel settore denominato Pattern recognition, che a sua volta è affrontato per 
mezzo di tecniche di Machine learning, ossia l‟addestramento di macchine finalizzato a 
eseguire azioni fino a poco tempo fa di sola competenza umana. Benché i problemi 
legati alla computer vision siano da anni oggetto di ricerca, nonostante si siano fatti 
molti passi in avanti, l‟interpretazione del contenuto delle immagini da parte delle 
macchine è ancora molto lontana dall‟essere paragonabile a quella umana, se non in 
certi specifici task. Compiti che sono considerati banali per un essere umano, come 
riconoscere una particolare forma o individuare il contorno di un oggetto, diventano 
problemi complessi se affidati ad un computer. Un elaboratore non ha infatti la 
percezione del contenuto informativo di una scena,  la sua “visione” è limitata ad un 
insieme di valori numerici che rappresentano le tonalità dei pixel dell‟immagine e che di 
per sé non hanno alcun significato [I. Castelli, 2008]. 
L‟apprendimento della macchina può essere di due tipi: supervisionato o non 
supervisionato. Nel primo caso, la macchina apprende, o meglio estrapola, una nuova 
legge data una coppia di dati ingresso-uscita definiti da un supervisore, mentre nel 
secondo caso auto-apprende una qualche legge solamente dai dati in ingresso senza 
l‟intervento esterno di un supervisore. In verità, esiste anche un terzo tipo di 
 4 
apprendimento, generalmente poco utilizzato, che rappresenta un po‟ una via di mezzo 
fra quelli sopra citati: per la maggior parte del tempo viene eseguito un addestramento 
non supervisionato e, contemporaneamente. vengono assegnati dei “premi” quando 
l‟apprendimento procede bene o delle “penalità“ nei casi opposti. In questo lavoro il 
tipo di apprendimento usato è stato quello supervisionato, infatti nella fase di 
addestramento in ingresso all‟algoritmo vengono date le immagini dei volti da 
riconoscere mentre in uscita vengono elaborate le classi, già conosciute a priori, degli 
individui da identificare. 
L‟aspetto più problematico e delicato del riconoscimento facciale risulta quello 
dell‟estrazione delle cosiddette features, ovvero gli attributi necessari ad eseguire una 
classificazione abbastanza buona. I dati in input su cui lavorare sono i pixel che 
compongono l‟immagine, ma, visto il loro numero troppo elevato, non è possibile usarli 
direttamente, pena l‟aumento della complessità computazionale e la conseguente non 
usabilità di tale metodo in una applicazione reale. Per evitare ciò i dati devono essere in 
qualche modo “compressi”, alleggerendo così il carico computazionale. Va altresì 
evitata una compressione troppo elevata in quanto porterebbe, insieme ad una drastica 
diminuzione del tempo di calcolo, anche ad un degrado eccessivo delle prestazioni del 
classificatore. La compressione dei dati pertanto deve essere scelta in modo da 
equilibrare i due aspetti fin qui menzionati. Le metodologie più usate per la riduzione 
della dimensionalità di un problema si dividono in due categorie: lineari e non lineari. 
Appartengono alla prima classe: Indipendent Component Analysis (ICA), Principal 
Component Analysis (PCA), Linear Discriminant Analysis o di Fisher (LDA), Singular 
Value Decomposition (SVD) ed infine Factor Analysis. Fra i metodi non lineari invece 
si possono menzionare:  Kernel PCA, Principal Curves and Manifolds, Gaussian 
process Latent Variable Models (GPLVM), Swiss roll, Isomap, Maximum Variance 
Unfolding, Radial Basis Function (RBF), Self-Organizing Map o Mappe di Kohonen  
(SOM) ed infine Generative Topographic Mapping (GTM). 
L‟obiettivo di questo lavoro è stato quello di cercare di implementare più algoritmi di 
riconoscimento per poi valutarne l‟accuratezza ed infine eseguire dei confronti 
valutandone i vantaggi e gli svantaggi.  Questo lavoro si è dedicato al vero e proprio 
riconoscimento facciale (face recognition) e non alla cosiddetta face detection, cioè la 
ricerca di volti umani in qualsiasi tipo di immagine. Per addestrare la macchina al 
riconoscimento è stato usato un dataset di immagini contenenti volti umani, nella 
fattispecie è stato usato il set di foto XM2VTSDB [XM2VTSDB, 2008][M. Maggini, S. 
Melacci, L. Sarti, 2008]. Il dataset, composto da 295 individui, ognuno preso in 8 
 5 
differenti posizioni ed espressioni, è stato suddiviso in due insiemi disgiunti: 6 foto per 
ogni individuo (il 75 %) è stato usato per il training-set (cioè per l‟addestramento) 
mentre le restanti 2 immagini (il 25 %) sono state usate per il test-set (cioè per verificare 
la capacità di generalizzazione del modello utilizzato). Per verificare e confrontare 
l‟accuratezza della classificazione è stato usato il cosiddetto Error rate che non è altro 
che il rapporto fra il numero di errori di classificazione commesso rispetto al numero 
totale di prove eseguite. In pratica l‟Error rate è una stima della probabilità d‟errore 
commessa dal classificatore in esame. 
Le metodologie messe a confronto in questo lavoro per l‟addestramento e per 
l‟estrazione delle features sono essenzialmente di tre tipi: 
1. Active Shape Model (ASM): sfrutta solamente i parametri di “forma” del volto, 
cioè i lineamenti facciali: ovale, bocca, naso, occhi e sopraccigli; 
2. Active Appearance Model (AAM): sfrutta solamente la texture dell‟immagine, 
cioè l‟intera informazione presente sull‟immagine mediante i pixel, calcolando  
media e covarianza della sola ellisse contenente l‟intero volto di ogni individuo 
(per scoprire eventuali correlazioni fra pixel di immagini dello stesso soggetto); 
3. Eigenfaces: il metodo trasforma le immagini dei volti in un piccolo set di features 
caratteristiche delle immagini chiamato eigenfaces. Queste eigenfaces sono usate 
come componenti principali per il training-set. Il riconoscimento vero e proprio 
viene eseguito proiettando il nuovo volto dentro il sotto-spazio degli eigenfaces 
(denominato face-space) e la classificazione invece viene compiuta comparando 
la posizione della nuova faccia nel face-space con la posizione degli individui 
conosciuti nel training-set. 
Per quanto riguarda invece le tecniche impiegate per la classificazione vera e propria 
una volta definite e calcolate le features si possono elencare: 
1. classificazione bayesiana, con assunzione gaussiana o con mistura di gaussiane; 
2. classificazione K-Nearest Neighbor (K-NN), con distanza euclidea o auto-appresa 
mediante reti neurali di similarità (SNN). 
I risultati migliori, impiegando un metodo singolo, s i sono ottenuti mediante  l‟uso degli 
AAM arrivando ad un errore del 7 %. I parametri estratti dai pixel dell‟ellisse del volto 
sembrano essere i migliori attributi estraibili per caratterizzare e distinguere il volto di 
un individuo rispetto a quello di un altro. 
Nel Capitolo 2 viene esposta una breve rassegna sui progressi compiuti nel campo della 
classificazione dei volti, sia in 2D sia in 3D, dagli anni „60 fino ad oggi. In seguito 
viene fatta una panoramica generale sugli applicativi in commercio in grado di offrire 
 6 
una buona affidabilità di riconoscimento. Nel Capitolo 3 vengono trattate in maniera 
approfondita tutte le metodologie usate per il riconoscimento facciale e gli aspetti 
matematici che ne stanno alla base. Inizialmente viene presentato il modello di 
apprendimento di tipo supervisionato e la suddivisione del dataset che è stata realizzata. 
Per quanto riguarda i classificatori vengono esposti quelli bayesiani e quelli di tipo K-
Nearest Neighbor (K-NN). Nel Capitolo 4 viene illustrata nel dettaglio la teoria dietro ai 
metodi di estrazione delle features, cioè agli algoritmi per estrarre e compattare le 
informazioni contenute nelle immagini per renderle più trattabili nell‟apprendimento 
automatico. L‟argomento trattato fa parte di alcuni particolari aspetti della computer 
vision e dell‟image processing finalizzati al riconoscimento di forme ed alla 
classificazione. I tre sistemi di estrazione analizzati nel presente lavoro sono: Active 
Shape Model (ASM), Active Appearance Model (AAM) ed Eigenfaces. Nel Capitolo 5 
sono stati sintetizzati i test eseguiti e le valutazioni che ne sono scaturite, permettendo 
un‟analisi più oggettiva sulle metodologie usate. A conclusione del capitolo è stato 
inserito anche il metodo che ha dato i risultati migliori, cioè una mistura di esperti che 
sfrutta sia gli Eigenfaces sui tre canali di colore dell‟immagine sia gli AAM sui livelli di grigio, 
mediante il quale si è raggiunto un errore dell‟ordine del 3 %. I risultati ottenuti con il nuovo 
metodo sono stati infine comparati con gli altri metodi di riferimento, valutandone i 
vantaggi e gli svantaggi. Per concludere, nel Capitolo 6, vengono indicate alcune 
possibili linee future di sviluppo del progetto, volte sia al miglioramento dell‟errore 
commesso (come ad esempio usando nel classificatore K-NN distanze diverse da quella 
euclidea), sia all‟aumento di ve locità degli algoritmi trattati, usando ad esempio 
un‟implementazione parallela. 
  
 7 
Capitolo II 
 
Sistemi per il riconoscimento di volti 
 
 
In questo capitolo viene esposta una breve rassegna sui progressi compiuti nel campo 
della classificazione dei volti, sia in 2D sia in 3D, dagli anni „60 fino ad oggi. In seguito 
viene fatta una panoramica generale sugli applicativi in commercio in grado di offrire 
una buona affidabilità di riconoscimento. 
 
2.1 Excursus storico 
 
Da più di 40 anni la ricerca si è concentrata nello studio della visione artificiale, ma 
ancora oggi è un campo in rapida evoluzione. Il lento avanzamento di questi studi 
dipende dal fatto che i processi di estrazione di informazioni di un ambiente in tre 
dimensioni da immagini bidimensionali sono molto più complessi del processo inverso 
che è conosciuto con il nome di computer graphics. Ad un computer, infatti, riesce 
meglio trasportare informazioni in tre dimensioni all‟interno di immagini a due 
dimensioni. Le difficoltà intrinseche del riconoscimento facciale risiedono nell‟estrema 
variabilità delle caratteristiche facciali e dell‟ambiente in cui viene eseguita 
l‟acquisizione dell‟immagine. Anche in un singolo individuo il volto può cambiare 
molto a causa di numerosi fattori: 
 ξ variazione della posa: angolazione e distanza rispetto alla videocamera;  
 ξ  variazione dell‟intensità e della distribuzione dell‟illuminazione (uno degli aspetti 
più critici anche nei sistemi di riconoscimento più evoluti);  
 ξ cambiamenti intrinseci del volto: occhi chiusi o aperti, presenza di occhiali, 
variazioni nella capigliatura, invecchiamento, uso di trucco e soprattutto 
mutamenti nelle espressioni; 
 ξ occlusioni parziali del volto. 
A fine anni cinquanta è nata la computer vision: in questo periodo venivano eseguiti dei 
test semi-automatici sui pixel dell‟immagine, usando delle tecniche primitive di 
smoothing e di rilevazione dei contorni. In molti casi venivano marcati a mano alcuni 
punti caratteristici di un volto. In seguito, a cavallo fra gli anni sessanta e settanta, sono 
venute in aiuto altre tecniche, come quelle proprie della statistica e del‟algebra lineare, 
per migliorare le prestazioni delle prime tecniche e per cercare di automatizzare il 
 8 
sistema di rilevazione dei punti caratteristici di un volto (A. Goldstein, L. Harmon e A. 
Lesk). Pochi anni dopo R. Fisher e L. Elschlagerb svilupparono un sistema più evoluto 
del precedente, ma ancora insufficiente a rappresentare la variabilità di un volto umano. 
Solo a fine anni ottanta sono iniziati ufficialmente i primi studi sul riconoscimento 
facciale. Sempre in questo periodo ha fatto la sua comparsa l‟algoritmo di riferimento 
degli Eigenfaces per merito di L. Kirby e M. Sirovich, in seguito rivisto ed ampliato da 
M. Turk e A. Pentland del MIT. Questi ultimi sono riusciti a dimostrare la possibilità 
del riconoscimento usando solamente circa 100 parametri estrapolati dall‟immagine di 
un volto. Negli anni novanta sono stati lanciati sul mercato alcuni prodotti commerciali 
di riconoscimento caratteri (Optical Character Recognition o OCR), a corredo di 
applicazioni di scanning e di invio fax. Nello stesso periodo sono iniziati anche degli 
studi per elaborare le immagini mediante reti neurali o più in generale dei sistemi 
esperti. L‟esempio più famoso dell‟uso di reti neurali è dovuto a T. Kohonen il quale ha 
studiato il riconoscimento di volti allineati e normalizzati mediante le reti neurali di 
Kohonen. Quest‟ultimo metodo però ha avuto poco successo in quanto necessitava di un 
allineamento e una normalizzazione dei volti troppo precisi da ottenere. Dal 1993 al 
1997 il DARPA (la commissione americana per le ricerche avanzate del dipartimento 
della difesa) insieme all‟Army Research Laboratory ha inaugurato il programma 
FERET (Face Recognition Technology) con l‟intento di incoraggiare la ricerca e lo 
sviluppo di nuove tecniche di riconoscimento a prestazioni più elevate (per arrivare ad 
accuratezze di riconoscimento dell‟ordine del 95 %). A fine ricerca solamente tre 
algoritmi si sono dimostrati all‟altezza delle aspettative ed hanno dimostrato la più alta 
accuratezza di riconoscimento in presenza di dataset di individui molto grandi: il primo 
dell‟università della California, il secondo dell‟università del Maryland e l‟ultimo quello 
del MIT Media Lab (poi diventato la base di alcuni sistemi commerciali) . Dal 2000 in 
poi, a causa della richiesta del settore della sicurezza e dell‟aumento vertiginoso delle 
prestazioni dei personal computer, c‟è stato un grande sviluppo nel settore della 
computer vision. Infatti nel 2004 T.F. Cootes e C.J. Taylor hanno sviluppato i primi 
modelli statistici dell‟aspetto, chiamati anche statistical model of appearance, che 
hanno migliorato le prestazioni, già buone, dell‟algoritmo degli Eigenfaces. I due 
metodi presentati sono gli Active Shape Models (ASM), più semplice, e gli Active 
Appearance Models (AAM), più efficiente. Sviluppi più recenti sono stati raggiunti 
usando catene di Markov nascoste, tecniche di Bunch graph e di Dynamic link ed anche 
mediante gli algoritmi genetici.