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.