Upload
sanpi89
View
1.355
Download
1
Embed Size (px)
Citation preview
UNIVERSITA DEGLI STUDI DI TRIESTE
Facolta di IngegneriaCorso di Laurea in Ingegneria dell’Informazione
Tesi Di Laurea
Fusione di impronta digitale e improntavocale per il controllo accessi
Laureando
Pietro Corona
Matricola 83600039
Relatore
Prof. Enzo Mumolo
Anno Accademico 2010/2011
Ai miei genitori e a Greta
Ringraziamenti
• La mia gratitudine va al prof. Mumolo per il suo preziosissimo aiuto e per la sua infinita
disponibilita.
• Ringrazio il prof. Nolich per i preziosi consigli dati in fase di sviluppo.
• Un grazie ai colleghi che hanno fornito impronte digitali e voce per gli esperimenti.
• Un sentito ringraziamento ad Enrico, con il quale ho collaborato strettamente per la
realizzazione delle nostre tesi.
• Grazie alla Upek per aver fornito le API dello scanner gratuitamente.
iii
Introduzione
In questa tesi si e affrontato il problema della biometria multimodale. Le informazioni biomet-
riche sono informazioni di origine biologica che appartengono solo ad una persona e non sono
condivise da altri. Potremmo dire che praticamente quasi tutte le caratteristiche biologiche di
una persona che si riescono a misurare con la tecniche disponibili attualmente caratterizzano
unicamente quella persona. Partendo dal DNA, l’iride, il volto, la pelle o la voce di una per-
sona sono alcune delle caratteristiche tipiche della identita di ogni persona e che, se acquisite e
confrontate, possono essere utilizzate per distinguere le persone stesse. Questa distinzione puo
essere utilizzata sia per identificare che per verificare l’identita di una persona. La differenza tra
identificazione e verifica sta nel fatto che nel primo caso il sistema riconosce a chi appartiene
quella biometria (tra un insieme di biometrie note) e nel secondo il sistema accerta o meno
che una persona sia chi dichiara di essere, confrontando l’impronta biometrica precedentemente
acquisita con quella prodotta in quel preciso istante. La biometria multimodale integra piu
informazioni biometriche usando un sistema di fusione dei dati. Compensando le inevitabili
lacune e imprecisioni di una biometria con le altre biometrie utilizzate, ci si aspetta che una
buona integrazione migliori i risultati globali.
Tralasciando le ovvie considerazioni legate alla maggiore o minore invasivita dell’acqusizione
delle informazioni biometriche, e al fatto che generalmente si vuole minimizzare il tasso di falsi
positivi, cioe la percentuale di volte che il sistema accetta impostori, osserviamo solo che vi sono
moltissimi casi in cui e necessario verificare l’identita di una persona, tipicamente per l’accesso
a risorse che non si vogliono condividere con altre persone. Ovviamente l’accesso puo essere
richiesto ad una informazione logica, ad un sistema hardware o ad un luogo protetto, che non si
vuole cioe sia vistato da altri. Un sistema di verifica multibiometrica ha uno o piu ingressi legati
alle diverse biometrie considerate, ed una risposta binaria: accetto/rifiuto l’identita conclamata.
Le biometrie considerate in questa tesi sono quelle della voce e dell’impronta vocale. La
biometria vocale e trattata in un’altra tesi [10]. In questa tesi ci si e occupati invece della
biometria dell’impronta digitale. Per l’acquisizione dell’impronta digitale e stato necessario
utilizzare un sensore specifico e risolvere i problemi della acquisizione del segnale. Acquisito
iv
INTRODUZIONE v
il segnale e stato poi necessario mettere a punto un programma per confrontare le impronte
acquisite. Per semplicita e stato modificato un programma pre-esistente basato sull’algoritmo
EHMM. Tutte queste queste operazioni sono state fatte preliminarmente in ambiente PC per un
migliore controllo dei programmi sviluppati. Un ulteriore obiettivo che ci siamo posti in questa
tesi e di utilizzare un processore tipico dei sistemi embedded, cioe l’ARM 9, che e un processore
che non necessita raffreddamento e che consente di arrivare a notevoli livelli di miniaturizzazione,
nel caso si voglia ingegnerizzare l’intero sistema.
Il piano di lavoro di questa tesi e quindi il seguente:
• una volta procurato un sensore di impronte digitali, mettere a punto un sistema per
acquisire e memorizzare le impronte in ambito PC.
• procedere ad una fase di acquisizioni di impronte digitali e impronte vocali per creare un
insieme di dati necessari per i test.
• mettere a punto un programma per confrontare le immagini delle impronte digitali
• ottenere risultati sperimentali in termini di tassi d’errore usando le sole impronte digitali
• sviluppare un metodo per fondere i dati ottenuti dalle diverse biometrie
• ottenere risultati sperimentali in termini di tassi d’errore usando il meccanismo di fusione
tra impronte digitali e impronte vocali
• mettere a punto il sistema di acquisizione delle impronte sul processore ARM
• implementare il metodo di confronto sul processore ARM: questo richiede di far funzionare
l’algoritmo EHMM sul processore ARM
La tesi e organizzata come segue:
nel Capitolo 1 si parla della biometria multimodale, delle prestazioni attese e delle possibili
strategie di fusione. Nel Capitolo 2 si descrive il sensore utilizzato e il sistema basato sul
processore ARM usato per l’implementazione in tempo reale. Nel Capitolo 3 si discute della
biometria delle impronte digitali descrivendo il relativo algoritmo di confronto. Il Capitolo 4
presenta un breve riassunto delle caratteristiche principali della biometria basata sulle impronte
vocali. Nel Capitolo 5 viene descritto l’algoritmo di fusione per integrare i dati provenienti dalle
due biometrie.
Nel Capitolo 6 si descrive l’implementazione in ambiente PC e nel Capitolo 7 l’implemen-
tazione sul processore ARM. Nel Capitolo 8 si riportano alcuni risultati sperimentali e nel
Capitolo Conclusioni e sviluppi futuri si riportano alcune considerazioni conlusive della tesi
indicando possibili lavori futuri.
Indice
Introduzione iv
Indice vi
Elenco delle figure ix
1 La biometria multimodale 1
1.1 Introduzione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.2 Prestazioni di un sistema biometrico multimodale . . . . . . . . . . . . . . . . . . 2
1.3 Strategie di fusione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.3.1 Architettura . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.3.2 Livello di fusione nelle architetture parallele . . . . . . . . . . . . . . . . . 4
1.3.3 Algoritmo di fusione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.3.4 Modo di addestramento . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.4 Quali informazioni integrare . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.5 Modulo di scelta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
2 Strumenti utilizzati 7
2.1 Introduzione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2.2 Fingerprint scanner . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2.2.1 Caratteristiche tecniche . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2.2.2 Collegamento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2.2.3 Interfacciamento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
2.3 SBC TS7800 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
2.3.1 Configurazione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
2.4 Software riconoscimento facciale hmmface . . . . . . . . . . . . . . . . . . . . . . 11
2.4.1 Funzionamento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
3 Biometria delle impronte digitali 12
vi
INTRODUZIONE vii
3.1 Introduzione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
3.2 Fingerprint dal punto di vista biometrico . . . . . . . . . . . . . . . . . . . . . . 12
3.3 Acquisizione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
3.4 Rappresentazione ed estrazione delle features . . . . . . . . . . . . . . . . . . . . 14
3.5 Confronto di fingerprint . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
3.6 L’algoritmo proposto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
3.6.1 Trasformata discreta in coseno . . . . . . . . . . . . . . . . . . . . . . . . 17
3.6.2 Hidden Markov Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
3.6.3 Enrollment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
3.6.4 Identification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
3.6.5 Verification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
4 Biometria delle impronte vocali 21
4.1 Introduzione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
4.2 L’impronta vocale dal punto di vista biometrico . . . . . . . . . . . . . . . . . . . 21
4.3 Acquisizione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
4.4 Rappresentazione ed estrazione delle features . . . . . . . . . . . . . . . . . . . . 22
4.5 Confronto di impronte vocali . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
4.6 Note conclusive . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
5 Algoritmo di fusione sensoriale 24
6 Implementazione in ambiente PC 26
6.1 Introduzione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
6.2 Implementazione del sistema di acquisizione . . . . . . . . . . . . . . . . . . . . . 26
6.2.1 Funzioni dello scanner . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
6.2.2 Formato dell’immagine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
6.2.3 Programma di acqusizione . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
6.3 Implementazione di enrollment-verification-identification . . . . . . . . . . . . . . 28
6.3.1 Modifiche apportate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
6.4 Manuale d’uso . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
6.4.1 Database . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
6.4.2 Utilizzo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
6.4.3 Esempi di utilizzo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
7 Implementazione in ambiente ARM 33
7.1 Introduzione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
INTRODUZIONE viii
7.2 Programma di acqusizione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
7.2.1 Primo tentativo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
7.2.2 Secondo tentativo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
7.2.3 Terzo tentativo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
7.2.4 Quarto tentativo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
7.2.5 Conclusione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
7.3 Implementazione di enrollment-verification-identification . . . . . . . . . . . . . . 35
7.3.1 Cross-compilazione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
7.3.2 Primo tentativo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
7.3.3 Secondo tentativo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
7.4 Implementazione del sistema automatizzato . . . . . . . . . . . . . . . . . . . . . 36
7.5 Manuale d’uso . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
8 Risultati sperimentali 38
8.1 Introduzione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
8.2 Dataset acquisito . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
8.3 Parametri valutati . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
8.4 Algoritmo Upek . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
8.5 Fingerprint identification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
8.6 Fingerprint Verification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
8.7 Fusione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
8.8 Commenti . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
Conclusioni e sviluppi futuri 44
Bibliografia 45
Elenco delle figure
1.1 Principali architetture. (a) Parallela. (b) In cascata (c) Gerarchica . . . . . . . . . . 3
1.2 Livelli di fusione in architetture parallele. (a) Livello di features. (b) Livello di
confidenza o rank (c) Livello astratto . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.3 Tecniche piu diffuse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
2.1 Fingerprint Scanner Upek TCEEA4. (a) Davanti. (b) Dietro. . . . . . . . . . . . . . 8
2.2 Cavetto di collegamento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
2.3 MiaKey . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
2.4 TS7800 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
3.1 Esempio di fingerprint . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
3.2 Features a livello globale. a) Anello a sinistra b) Anello a destra c) Spira d) Arco e)
Arco appuntito. I quadrati indicano le cuspidi mentre i cerchi indicano gli anelli . . 15
3.3 Features a livello locale (pallini neri) e molto fine (cerchietti vuoti) . . . . . . . . . . 16
3.4 Addestramento modello HMM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
3.5 Processo di enrollment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
3.6 Processo di identificazione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
3.7 Processo di verifica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
6.1 Schema a blocchi programma di enroll . . . . . . . . . . . . . . . . . . . . . . . . . . 29
6.2 Schema a blocchi programma di verifica . . . . . . . . . . . . . . . . . . . . . . . . . 29
8.1 Calcolo EER nel caso dell’identificazione con ritaglio dell’immagine . . . . . . . . . . 40
8.2 Prestazioni algoritmo identificazione ottenute con parametri diversi. (1) 4 4 4 4 4 4
1. (2) 12 32 3 3 12 32 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
8.3 Calcolo EER nel caso della verifica con ritaglio dell’immagine . . . . . . . . . . . . . 41
8.4 Prestazioni algoritmo verifica ottenute con parametri diversi. . . . . . . . . . . . . . 42
8.5 Prestazioni dei singoli sistemi e del sistema biometrico multimodale ottenuto . . . . 43
ix
Capitolo 1
La biometria multimodale
1.1 Introduzione
Un identificatore biometrico e un particolare tipo di misura biometrica. Una istanza e una
singola misurazione di un identificatore. Un sistema biometrico e un sistema (nel nostro
caso di sicurezza) il cui funzionamento e basato su uno o piu identificatori biometrici. I sistemi
biometrici possono essere classificati nelle seguenti categorie [8]:
• unibiometrici: utilizzano solo un singolo identificatore biometrico (e.g. una o piu
immagini della stessa fingerprint)
• unimodali: sono un sottoinsieme dei precedenti. Utilizzano una singola istanza dell‘identificatore.
• multibiometrici: usano piu di un identificatore biometrico di uno stesso individuo (e.g.
fingerprint e voce, fingerprint di due dita diverse)
• multimodali: sono una generalizzazione dei precedenti. Utilizzano piu di una istanza
per ogni identificatore.
In questo capitolo parleremo di sistemi biometrici multimodali Nelle applicazioni che
richiedono un alto livello di sicurezza spesso i sistemi basati sulla biometria unimodale non
garantiscono le performance richieste a causa della limitatezza delle informazioni contenute nel
singolo identificatore. Questo problema potrebbe essere risolto affiancando la biometria con
tecniche di autenticazione tradizionali basate sulla conoscenza di un segreto o al possesso di un
oggetto (password, smart card). Tuttavia si ripresentano i soliti problemi legati a questi metodi
ovvero la possibilita che il segreto o l’oggetto vengano rubati,indovinati,persi. La soluzione
a questi problemi sono i sistemi biometrici multimodali. Essi infatti sono difficili da eludere.
Presentano tuttavia alcuni svantaggi: essi generalmente sono piu costosi da implementare (sia
1
CAPITOLO 1. LA BIOMETRIA MULTIMODALE 2
economicamente sia come tempo di calcolo), l’utente perde piu tempo nelle fasi di enroll e
verifica e inoltre se la fusione tra i vari identificatori non e eseguita correttamente provoca un
degrado dell’accuratezza.
1.2 Prestazioni di un sistema biometrico multimodale
La verifica e l’identificazione sono tipici problemi di classificazione. Nel caso della verifica
l’utente dichiara la propria identita e il sistema deve verificare la verita della sua affermazione.
Gli algoritmi di verifica devono classificare l’identificatore biometrico fornito in input in due
classi: modello del soggetto corrispondente all’identita dichiarata, modello del mondo. Nel caso
dell’identificazione abbiamo N+1 classi (soggetto 1, ...,soggetto N,sconosciuto). Diversi metodi
di classificazione (detti anche classificatori),anche dello stesso identificatore biometrico, anche
avendo la medesima accuratezza, spesso commettono errori classificando diversi identificatori
(e.g. pronte digitali di soggetti diversi). Questo ci suggerisce che, combinando insieme due
o piu metodi di classificazione, possiamo ottenere risultati migliori di quelli ottenuti con il
singolo classificatore. Esistono molti articoli a supporto di questa teoria. Si veda ad esempio
[2]. Riassumendo, le motivazioni che spingono all’utilizzo di sistemi basati su identificatori
biometrici multipli sono:
1. diversi metodi di classificazione per uno stesso identificatore sono realizzati in contesti
diversi.
2. i metodi di classificazione sono addestrati con modelli costruiti solitamente su campioni
circoscritti (e.g. personale di un laboratorio) e potrebbero non essere adatti a condizioni
diverse (popolazione, ambiente ecc...)
3. diversi metodi addestrati sul medesimo campione possono differire nelle prestazioni
4. molti metodi forniscono risultati diversi con diversi parametri di inizializzazione.
5. rappresentazioni multiple della stessa caratteristica biometrica potrebbero portare a risul-
tati diversi.
6. utilizzando piu identificatori biometrici si risolvono alcuni problemi legati all’universalita
degli stessi (e.g. scarsa qualita delle creste nelle impronte digitali)
7. sistemi basati su diversi identificatori biometrici sono piu difficili da eludere.
In conclusione possiamo affermare che le prestazioni di un sistema biometrico multimodale
possono risultare superiori ad un sistema unimodale.
CAPITOLO 1. LA BIOMETRIA MULTIMODALE 3
Figura 1.1: Principali architetture. (a) Parallela. (b) In cascata (c) Gerarchica
1.3 Strategie di fusione
Esistono molti modi di combinare insieme gli identificatori biometrici. Questi metodi si distin-
guono sulla base dell’architettura del sistema, del livello in cui avviene la fusione,dell’algoritmo
di fusione e del modo di addestramento del sistema.
1.3.1 Architettura
Le principali architetture per combinare i metodi di classificazione sono: parallela Fig. 1.1 a),
in cascata o seriale Fig. 1.1 b), gerarchica o ad albero Fig. 1.1 c),
Nello schema parallelo tutti i classificatori lavorano indipendentemente e i risultati vengono
combinati successivamente attraverso il modulo di fusione. Nello schema in cascata i classifi-
catori eseguono uno dopo l’altro avendo a disposizione il risultato del precedente. Ad ogni passo
il numero di classi per il confronto viene progressivamente ridotto. Nello schema gerarchico i
classificatori vengono combinati in una struttura ad albero. Tipicamente i primi classificatori
sono poco accurati (ed economici) in quanto devono solamente individuare un certo numero di
classi possibili, mentre i successivi sono via via piu accurati (e costosi).
CAPITOLO 1. LA BIOMETRIA MULTIMODALE 4
Figura 1.2: Livelli di fusione in architetture parallele. (a) Livello di features. (b) Livello diconfidenza o rank (c) Livello astratto
1.3.2 Livello di fusione nelle architetture parallele
Focalizziamo l’attenzione sull’architettura parallela, quella oggi piu usata oggi, ed in particolare
sulla collocazione del modulo di fusione. Differenti strategie di combinazione richiedono diversi
tipi di dati presi da ogni classificatore del sistema. Questi dati possono essere divisi nelle
seguenti categorie: features o misure, valori di confidenza,rank o score, valori astratti
Fig. 1.2.
Al livello delle features, le features estratte dalle diverse modalita sono combinate insieme.
Il nuovo spazio delle features e piu grande e sperabilmente e piu discriminativo. Schemi di
integrazione come questo vengono detti anche tightly coupled. Al livello di confidenza, rank o
score ogni classificatore indica per ogni classe un valore che stima la probabilita che il mod-
ello in ingresso vi appartenga. Al livello astratto il classificatore fornisce una o piu etichette
(e.g. accettato, non accettato). I sistemi che si basano sui due metodi precedenti si dicono
a integrazione loosely coupled. I risultati migliori si ottengono combinando i risultati prima
possibile [8]. Tuttavia risulta piu difficoltoso combinare i dati a livello di features in quanto
le relazioni tra gli spazi delle features dei diversi classificatori potrebbero non essere note e le
rappresentazioni delle features potrebbero non essere compatibili.
CAPITOLO 1. LA BIOMETRIA MULTIMODALE 5
Figura 1.3: Tecniche piu diffuse
1.3.3 Algoritmo di fusione
Una algoritmo di fusione rappresenta la tecnica usata per combinare l’output di piu classificatori.
Le tecniche piu diffuse nei differenti livelli sono riportate in figura 1.3.
Nelle tecniche a livello di valori di confidenza bisogna tenere conto di possibili differenze nei
valori forniti dai vari classificatori. Risulta pertanto necessario normalizzare questi valori (e.g.
in modo lineare) nello stesso intervallo (e.g [0,1]). In conclusione non si puo dire a priori quale
sia la strategia migliore. La scelta viene effettuata in base a degli esperimenti fatti su un dato
campione. La strategia che offre una migliore accuratezza viene scelta.
1.3.4 Modo di addestramento
Alcuni algoritmi sono statici cioe una volta fissati i parametri trattano tutti gli input allo stesso
modo. Non richiedono nessun tipo di addestramento. Altri metodi invece richiedono di essere
CAPITOLO 1. LA BIOMETRIA MULTIMODALE 6
addestrati e possono portare a un miglioramento dell’accuratezza rispetto ai metodi statici.
Altri algoritmi di fusione sono adattativi nel senso che valutano o pesano le decisioni di ogni
classificatore in base all’input, basandosi sulla conoscenza delle condizioni ambientali.
1.4 Quali informazioni integrare
Adesso che sappiamo come effetture la fusione dei risultati dei classificatori concentriamoci
su quali informazioni combinare per migliorare le performance del nostro sistema. I sistemi
biometrici multimodali possono operare nei seguenti scenari:
1. sensori multipli : viene combinata l’informazione ottenuta da diversi sensori della stessa
misura biometrica. Ad esempio la stessa impronta digitale con due scanner diversi.
2. biometrie multiple: biometrie diverse,ad esempio fingerprint e voce, vengono fuse. Il
sistema necessita di sensori multipli e di un opportuno algoritmo di fusione.
3. unita multiple della stessa biometria: fingerprint di piu dita di una stessa persona
4. misure multiple della stessa biometria: piu immagini della stessa fingerprint
5. rappresentazioni e algoritmi di matching multipli della stessa biometria: utile quando si
usa uno schema di identificazione e verifica per l’autorizzazione oppure quando si usa uno
schema di identificazione per l’indicizzazione.
Gli scenari 4 e 5 combinano insieme misure fortemente correlate e quindi portano ad un’aumento
dell’accuratezza minore rispetto agli scenari 2 e 3 ma anche ad un vantaggio in termini di costo.
Nella tesi si e scelto di integrare riconoscimento di impronta digitale e di impronta vocale.
1.5 Modulo di scelta
Il modulo di scelta e un componente che, avendo in input lo score fornito dal classificatore o
dal modulo di fusione, opera la seguente scelta: se il punteggio (score) e superiore ad una certa
soglia, considera corretto il risultato della verifica e quindi autorizza il soggetto, altrimenti
la verifica ha avuto esito negativo e il soggetto non e autorizzato. La soglia, di solito, viene
fissata sperimentalmente. Variandone il valore si possono calcolare, per un dato campione, i
falsi positivi e i falsi negativi. Il valore che minimizza entrambi non e sempre la scelta piu
opportuna. Bisogna infatti valutare se l’applicazione richiede pochi falsi positivi o pochi falsi
negativi. Per una descrizione piu accurata di questi indicatori vedere 8.3.
Capitolo 2
Strumenti utilizzati
2.1 Introduzione
In questo capitolo vengono descritti gli strumenti e le apparecchiature usate per la realizzazione
del lavoro. Uno degli obiettivi del lavoro (vedi introduzione ) e quello di implementare su un
single board computer (sbc) ARM un algoritmo di fingerprint verification che permetta l’auten-
ticazione dei soggetti autorizzati. Per realizzare questo obiettivo abbiamo scelto di sviluppare
il lavoro su di una scheda TS7800 della Technological Systems [13] collegato ad uno scanner di
impronte digitali TCEEA4 della Upek [15]. Inoltre per la verifica viene utilizzato, come base
di partenza, un programma gia esistente, chiamato hmmface, opportunamente modificato
(vedere6.3.1).
2.2 Fingerprint scanner
Esistono generalmente due categorie di scanner: touch e sweep. Negli scanner touch l’utente
appoggia il dito su una superfice trasparente e il sensore si muove per ottenere l’immagine
completa. Hanno il vantaggio di essere molto semplici da usare. Tuttavia presentano il problema
delle impronte latenti che restano impresse sulla superfice di appoggio. A lungo andare portano
ad un degrado della qualita dell’immagine acqusita. Negli scanner sweep l’utente striscia il
dito contro il sensore. Questo permette di risolvere i problemi di pulizia che presentano gli
scanner touch ma al tempo stesso sono piu difficili da utilizzare. L’utente deve avere cura di
strisciare il dito centrandolo sul sensore, facendolo scorrere con velocita il piu possibile costante
e mantenendo sempre una pressione sufficiente. Abbiamo scelto uno scanner sweep perche
appunto fornisce una qualita maggiore.
7
CAPITOLO 2. STRUMENTI UTILIZZATI 8
(a) (b)
Figura 2.1: Fingerprint Scanner Upek TCEEA4. (a) Davanti. (b) Dietro.
2.2.1 Caratteristiche tecniche
Per maggiori informazioni si veda [1]. Riportiamo le caratteristiche dello scanner per noi piu
rilevanti:
• Sensore di tipo capacitivo
• Permette l’interfacciamento via USB 2.0
• Possiede un processore MIPS RISC (TCD50)
• Memoria interna 4Kb
• Sensore swipe Upek TouchStrip TCS4C
• Dimensione dell’array di scansione 192x4 pixel
• Risoluzione: 508 dpi
Nell’immagine 2.1 si puo vedere lo scanner.
2.2.2 Collegamento
Sullo scanner e presente un connettore Molex (2.54mm) (del tipo in figura 2.1 b) per un cavo
piatto a 4 pin mostrato in figura 2.2. Per collegare lo scanner all’host (PC o sbc) via USB
abbiamo sfruttato il connettore Molex (2.54 mm) presente su una chiavetta usb MiaKey della
SATA 2.3 che funge da semplice hub senza funzioni aggiuntive. Un altro modo per collegare lo
scanner ad un cavo USB sarebbe stato quello di crearsi un cavo USB ad-hoc tuttavia la prima
soluzione e apparsa piu semplice visto la disponibilita immediata dei componenti.
CAPITOLO 2. STRUMENTI UTILIZZATI 9
Figura 2.2: Cavetto di collegamento
Figura 2.3: MiaKey
2.2.3 Interfacciamento
Non utilizziamo nessun device driver per gestire lo scanner: per Linux esistono delle API basate
sulla libusb0.1. Sono a disposizione due diverse API per l’interfacciamento tra lo scanner e i
programmi utente: le BSAPI e le PTAPI. Le prime rendono disponibili funzioni ad alto livello
pero sono disponibili solo per ambiente PC mentre le seconde hanno un’interfaccia piu primitiva
ma si possono compilare in ambiente ARM[14]. Entrambe le librerie sono fornite con la relativa
documentazione.
2.3 SBC TS7800
La scheda TS7800 2.4e un single board computer della Technological Systems. Per informazioni
dettagliate vedere [11]. Qui riassumiamo le principali caratteristiche:
• 500Mhz ARM9 CPU
• Internal PCI bus, PC/104 connector
CAPITOLO 2. STRUMENTI UTILIZZATI 10
Figura 2.4: TS7800
• 128MB DDR-RAM
• 512MB NAND Flash (17MB/s)
• 12,000 LUT programmable FPGA
• 2 SD Card slots (1 micro-SD, 1 full-SD)
• Boot da SD e micro-SD
• 2 SATA ports
• 2 USB 2.0 480Mbit/s Host/Device
• Gigabit Ethernet, 10/100/1000 speeds
• 110 GPIO (86 as a PC/104 bus)
• S.O.: Debian Sarge con kernel 2.6.21 modificato
Di default viene caricata una versione minimale di Debian (il boot avviene in 0.69s!) la cui
console e accessibile tramite la porta seriale oppure tramite telnet all’indirizzo 192.168.0.50. E
possibile caricare i file nel dispositivo tramite ftp sempre allo stesso indirizzo.
2.3.1 Configurazione
Per avere un maggiore spazio di archiviazione e per non rischiare di compromettere il funziona-
mento della scheda durante gli esperimenti abbiamo deciso di installare il S.O. su scheda SD (a
questo proposito sono state seguite le istruzioni sul sito[12]). A questo punto (utilizzando un pc
CAPITOLO 2. STRUMENTI UTILIZZATI 11
come router) abbiamo aggiornato il sistema con i pacchetti piu recenti e installato il pacchetto
libusb0.1 necessario per utilizzare le API di Upek.
2.4 Software riconoscimento facciale hmmface
Il programma hmmface e scritto per Windows. Vengono sfruttate le funzioni implementate
dalla libreria libopencv1.0 disponibile per numerose piattaforme hardware e software. In parti-
colare sono utilizzate le chiamate alla libreria cvaux che contengono utili funzioni per quanto
riguarda l’estrazione della DCT e l’addestramento dei parametri dei modelli HMM.
2.4.1 Funzionamento
Il programma si presenta come un unico eseguibile che puo essere lanciato in varie modalita:
addestramento, identificazione da file e identificazione da webcam. Ogni persona ha una direc-
tory (che ha come nome l’identificativo della persona) contenente le proprie immagini. Il path
di queste directory e specificato all’interno del codice. Nel database di esempio di ogni soggetto
sono presenti 30 immagini. In modalita addestramento il programma inizia facendo un check
delle immagini presenti nel path specificato. In particolare inserisce i nomi delle directory scan-
sionate in un file chiamato face.db e crea per ogni directory un file <nome directory>.imobj che
contiene i nomi dei file trovati in ciascuna directory. In seguito per ogni directory trovata crea
un file <nome directory>.ehmm (che conterra il modello) e un file face.db con un indice dei file
precedentemente creati, il tutto in un percorso specificato sempre nel codice. A questo punto la
fase di addestramento vero e proprio modifica i file .ehmm creati in precedenza scrivendovi i dati
relativi al modello HMM creato mediante le funzioni della cvaux. In modalita identificazione
da file il programma estrae i coefficenti DCT dall’immagine data in input e, tramite l’algoritmo
di Viterbi, restituisce il nome del modello piu probabile e tutte le probabilita di somiglianza a
ciascun modello. La modalita di riconoscimento da webcam non e stata mai utilizzata.
Capitolo 3
Biometria delle impronte digitali
3.1 Introduzione
In questo capitolo vengono esposte le principali caratteristiche biometriche relative alle im-
pronte digitali. Tutto il materiale e tratto da [8]. Una impronta digitale 3.1 (piu brevemente
fingerprint) e un’impronta lasciata dai dermatoglifi dell’ultima falange delle dita delle mani. Un
dermatoglifo e il risultato dell’alternarsi di creste e valli. Dermatoglifi sono presenti sulle palme
delle mani, sulle piante dei piedi e sui polpastrelli delle dita. Le creste variano in ampiezza da
100 ai 300 micron, mentre il periodo cresta-valli corrisponde all’incirca a 500 micron. Esse sono
utilizzate da molto tempo ed estensivamente per l’identificazione degli esseri umani in generale,
e per poterne inoltre rilevare la presenza su oggetti collegati a eventi criminosi.
3.2 Fingerprint dal punto di vista biometrico
Esistono delle caratteristiche generali comuni a tutte le grandezze biometriche (dette anche
identificatori biometrici) misurabili:
• Universalita: grado di diffusione della grandezza biometrica nella popolazione. Le im-
pronte digitali hanno un grado di diffusione abbastanza buono. Alcuni individui (e.g
mutilazioni o malformazioni) ne sono sprovvisti.
• Individualita: a due persone diverse corrispondono misure diverse della stessa grandezza.
L’unicita di un’impronta digitale e un’ipotesi di lavoro che in senso matematico e difficile,
se non impossibile, da provare. La dimostrazione opposta e sicuramente piu facile da
ottenere in teoria, trovando nella pratica due impronte identiche di due dita diverse.
• Persistenza: la misura effettuata sulla stessa persona in tempi diversi e la stessa. Le
fingerprint si formano definitivamente nel feto al settimo mese di gravidanza e non cam-
12
CAPITOLO 3. BIOMETRIA DELLE IMPRONTE DIGITALI 13
Figura 3.1: Esempio di fingerprint
biano per tutta la vita. In caso di graffi o tagli, la pelle dei polpastrelli ricresce con le
stesse caratteristiche.
• Misurabilita: quanto facilmente possiamo dare una misura quantitativa della carat-
teristica biometrica. Nel nostro caso questo e mediamente facile. Le difficolta stanno
nell’estrazione delle features.
• Performance: accuratezza,velocita,robustezza, costo di un generico sistema biometrico
basato sulla grandezza in esame. I sistemi biometrici basati sulle fingerprint offrono ottime
performance in quanto si basano su sistemi di elaborazione elettronica delle immagini
(basta un pc) e su uno scanner. L’accuratezza, la velocita e la robustezza dipendono dagli
algoritmi di verifica.
• Accettabilita: quanto le tecnologie basate sulla grandezza in esame sono accettate dalla
popolazione. Spesso nell’immaginario collettivo le fingerprint sono associate a scene del
crimine e indagini della polizia. Non e facile trovare volontari per la raccolta di impronte
digitali a scopi scientifici!
• Facilita di elusione: quanto e facile modificare la grandezza biometrica in modo fraudo-
lento. Modificare le fingerprint chirurgicamente e quasi impossibile:un medico riconoscerebbe
CAPITOLO 3. BIOMETRIA DELLE IMPRONTE DIGITALI 14
a occhio nudo che la cresta originaria e stata sostituita da una cicatrice. Bisogna tener
presente che esistono altri metodi per eludere i sistemi basati sulle fingerprint.
3.3 Acquisizione
Le fingerprint vengono rilevate tramite immagini. Oggi le immagini vengono elaborate in
maniera digitale. Un immagine (digitale) di fingerprint puo essere ottenuta tramite scansione
on-line o off-line. Una scansione off-line e ottenuta tipicamente digitalizzando un foglio di carta
dove la fingerprint e stata impressa precedentemente con l’uso di inchiostro. Un particolare
tipo di immagini off-line, usato soprattutto in indagini forensi, sono le cosı dette impronte la-
tenti trovate sulla scena del crimine. Sono ottenute tramite tenche basate sulla chimica. Una
scansione on-line si basa su un metodo (ottico,capacitivo,termico,ultrasuoni ecc...) per rilevare
direttamente le creste e le valli che costituiscono la fingerprint.
Archiviare le immagini digitali grezze di fingerprint puo essere problematico. Si stima in-
fatti che per memorizzare l’archivio di fingerprint dell’FBI (cartaceo), che contiene 200 milioni
di cartelle, siano necessari circa 2000 terabyte. Sfortunatamente le tecniche di compressione
tradizionali non sono soddisfacenti. Una nuova tecnica di compressione chiamata Wavelet Scalar
Quantization (WSQ) viene attualmente usata dall’FBI.
3.4 Rappresentazione ed estrazione delle features
Una buona rappresentazione delle fingerprint deve avere due caratteristiche: deve essere saliente
e opportuna. Saliente significa che la rappresentazione deve contenere le informazioni discrim-
inatorie della fingerprint. Opportuna significa che la rappresentazione deve poter essere estratta
facilmente, memorizzata in modo compatto e utile per i confronti. Le rappresentazioni basate su
immagini sono prevalenti in sistemi basati su confronti ottici e sulla correlazione delle immagini.
Questi sistemi soffrono di problemi causati dalla variazione di luminosita, qualita dell’immagine
e distorsioni globali nell’immagine. Inoltre richiedono un considerevole spazio di archiviazione.
D’altro canto preservano la massima quantita di informazioni, hanno poche ipotesi alla base del
loro funzionamento e sono robuste per una grande varieta di immagini. La fingerprint analizzata
a diversi livelli mostra diversi tipo di features:
• a livello globale, le creste delineano modelli simili a quelli riportati in figura 3.2. Le
singolarita, chiamate anello e cuspide (rappresentati nella figura 3.2 con quadrati e trian-
goli) sono una specie di punto di controllo attorno al quale le creste sono avvolte. Queste
features sono molto importanti per la classificazione e l’indicizzazione, ma la loro individ-
CAPITOLO 3. BIOMETRIA DELLE IMPRONTE DIGITALI 15
Figura 3.2: Features a livello globale. a) Anello a sinistra b) Anello a destra c) Spira d) Arcoe) Arco appuntito. I quadrati indicano le cuspidi mentre i cerchi indicano gli anelli
ualita non e sufficiente per un confronto accurato. Altre features rilevabili a questo livello
sono la forma esterna del dito e l’orientazione dell’immagine.
• a livello locale, sono state identificate un totale di 150 caratteristiche diverse delle creste
dette dettagli minuti. Non sono equamente distribuiti. Infatti dipendono fortemente dalle
condizioni e dalla qualita con cui vengono acquisite le immagini. Le due piu importati
caratteristiche osservabili,chiamate minuzie, sono: le terminazioni e le biforcazioni
delle creste. Vedere fig. 3.3.Una terminazione e definita come il punto in cui la cresta
termina improvvisamente. Una biforcazione e definita come il punto in cui la cresta si
divide in piu rami. Le minuzie in genere sono indicatori robusti e stabili rispetto alle
condizioni di acquisizione.
• a livello molto fine sono considerate le caratteristiche di una cresta. Queste sono date
essenzialmente dalla posizione e dalla forma dei pori sudoriferi. Queste caratteristiche
sono molto discriminatorie ma necessitano di qualita elevata delle immagini non sempre
adatta per le applicazioni pratiche. Vedi figura 3.3.
3.5 Confronto di fingerprint
Il problema del confronto delle immagini di fingerprint e un problema difficile da risolvere.Tale
difficolta e principalmente dovuta alla grande variabilita della stessa impronta nelle diverse
immagini. I fattori che causano tale variabilita sono: spostamenti, rotazioni, sovrapposizioni
parziali, distorsioni non lineari, pressione variabile, cambiamento di condizioni della pelle, ru-
CAPITOLO 3. BIOMETRIA DELLE IMPRONTE DIGITALI 16
Figura 3.3: Features a livello locale (pallini neri) e molto fine (cerchietti vuoti)
more, errori nell’estrazione delle features. Comunque, ad un osservatore non esperto, impronte
della stessa persona possono sembrare diverse mentre impronte di persone diverse possono
assomigliarsi. Di seguito vengono elencati diversi metodi di confronto.
Il confronto manuale segue una serie di passi:
1. valutare se il modello globale corrisponde, ovvero le fingerprints devono essere dello stesso
tipo 3.2
2. quantitativamente (almeno 12 per gli standard forensi degli USA) un certo numero di
dettagli minuti devono corrispondere
3. qualitativamente i dettagli minuti corrispondenti sono identici
Nella pratica esistono protocolli molto dettagliati per eseguire questi passi.
Il confronto automatico non deve per forza seguire queste linee guida. Molti dei metodi pro-
posti negli ultimi 40 anni sono stati studiati appositamente per essere implementati a computer.
Possiamo dividere questi metodi in tre gruppi:
• confronto basato sulla correlazione: due immagini di fingerprint sono sovrapposte e la
correlazione tra i corrispondenti pixels e calcolata per diversi allinamenti (traslazioni,rotazioni)
• confronto basato sulle minuzie: le minuzie sono estratte dalle immagini e salvate
come un insieme di punti su un piano bidimensionale. Il metodo consiste nel trovare
l’allineamento tra i modelli presenti e il modello in input in modo che corrispondano il
massimo numero di minuzie.
• confronto basato sulle features delle creste: l’estrazione delle minuzie e difficoltosa in
presenza di immagini di bassa qualita mentre i modelli delle creste (orientamento locale,
CAPITOLO 3. BIOMETRIA DELLE IMPRONTE DIGITALI 17
Figura 3.4: Addestramento modello HMM
frequenza, forma, struttura) possono venire estratti in modo piu affidabile, sebbene la
discriminazione che portano e minore.
3.6 L’algoritmo proposto
Descriviamo ora l’algoritmo usato nella tesi per il confronto delle impronte digitali. Il nostro
algoritmo si basa (vedere 3.5 sulla correlazione delle immagini di fingerprint. In breve l’algoritmo
usa i coefficenti della trasformata discreta in coseno bidimensionale delle immagini di
fingerprint per ricavare i parametri di una catena di Markov nascosta (HMM hidden Markov
model). Questi parametri vengono salvati in un database (vedere fig. 3.4). La fase di confronto
consiste nel ricavare i coefficenti della dct dall’immagine in input e valutare quale dei modelli
disponibili produrrebbe una sequenza di uscite (appunto i coefficenti della dct) simile a quella
di input. Tale metodo e stato proposto in precedenza da Guo H. [7]. Il modo in cui una persona
striscia il dito sullo scanner (anche in modo non corretto) puo essere un elemento nella sua
identificazione in quanto esso si mantiene piu o meno costante. Pertanto non sara applicato
nessun pre-processing alle immagini utilizzate.
3.6.1 Trasformata discreta in coseno
La trasformata discreta del coseno o DCT (dall’inglese Discrete Cosine Transform), e la piu
diffusa funzione che provvede alla compressione spaziale, capace di rilevare le variazioni di infor-
mazione tra un’area e quella contigua trascurando le ripetizioni[16]. L’immagine di fingerprint
viene divisa in blocchi. Dimensione e distanza tra i vari blocchi sono parametri dell’algoritmo.
CAPITOLO 3. BIOMETRIA DELLE IMPRONTE DIGITALI 18
Figura 3.5: Processo di enrollment
Di ogni blocco viene calcolata la DCT bidimensionale estraendo solo un certo numero (dato in
input) di coefficenti.
3.6.2 Hidden Markov Model
I coefficenti estratti dalla fingerprint sono visti come l’output di un processo nascosto di Markov.
Un Modello di Markov nascosto (Hidden Markov Model - HMM) e una catena di Markov i cui
stati non sono osservabili direttamente. Piu precisamente:
• la catena ha un certo numero di stati
• gli stati evolvono secondo una catena di Markov
• ogni stato genera un evento con una certa distribuzione di probabilita che dipende solo
dallo stato
• l’evento e osservabile ma lo stato no
Non siamo a conoscenza del numero reale di stati. Possiamo dunque scegliere un numero
ragionevole di stati in modo da garantire una sufficente quantita di parametri che ricaveremo.
Data una o piu sequenze di uscita (avendo a disposizione piu immagini di una stessa impronta),
si puo trovare l’insieme piu probabile per il quale si possano dichiarare le probabilita dell’uscita
e di transizione. Questo significa addestrare i parametri dell’HMM dato mediante il gruppo
dei dati relativi alle sequenze. Questo problema e risolto dall’algoritmo di Baum-Welch.Per
approfondimenti vedere [4]
3.6.3 Enrollment
In generale con enrollment si intende la fase di cattura delle fingerprint ed estrazione delle
features. Per chiarezza vedere la figura 3.5
A questo punto:
CAPITOLO 3. BIOMETRIA DELLE IMPRONTE DIGITALI 19
Figura 3.6: Processo di identificazione
• abbiamo le immagini di fingerprint
• i coefficenti estratti dal calcolo della dct sono visti come l’output di un processo marko-
viano.
• siamo in grado di ricavare i parametri del nostro modello del processo.
E ragionevole, una volta fissato il numero di stati, creare un modello a catena di Markov per ogni
persona utilizzando, per una stima piu accurata dei parametri, un certo numero di immagini
della stessa fingerprint. In questa fase e molto importante la scelta dei parametri dell’algoritmo
(dimensione del blocchi ecc...) in quanto i risultati variano moltissimo in base a questi. Questa
fase e a tutti gli effetti una estrazione di features. I modelli cosı ottenuti sono memorizzati in
file dove oltre al valore del parametro (media dei parametri estratti dalla singola immagine)
viene salvata anche la varianza rilevata nello stimare quest’utlimo.
3.6.4 Identification
Data un’immagine di fingerprint in input, i modelli ottenuti dall’algoritmo di enrollment possono
essere usati per l’identificazione della persona oppure, data una fingerprint e un nome, per
verificare se la persona e veramente chi dice di essere. Il nostro algoritmo puo fare entrambe le
cose. La fase di identificazione (vedi figura 3.6) consiste nel ricavare la sequenza di coefficenti
e applicare l’algoritmo di Viterbi sull’insieme dei modelli per identificare quello piu probabile
e con quale probabilita. Questo metodo fornisce sempre una risposta ovvero viene comunque
identificato un soggetto dell’insieme dei modelli creati durante l’enrollment. E necessario dunque
creare un metodo per decidere se il soggetto non e nessuno di quelli in archivio.
3.6.5 Verification
La fase di verifica (vedi figura 3.7) si basa sullo stesso principio dell’ identificazione. Risulta
necessario modificare il database in modo che, di volta in volta, l’utente selezioni un solo mod-
ello e l’algoritmo confronti l’immagine di fingerprint acquisita solo con esso. In questo caso e
CAPITOLO 3. BIOMETRIA DELLE IMPRONTE DIGITALI 20
Figura 3.7: Processo di verifica
essenziale aggiungere un metodo per decidere se il confronto ha avuto esito positivo o negativo.
Per fare questo possiamo adottare diverse tecniche. Un primo metodo consiste nel confrontare
l’immagine in input con un modello di impronta generico (detto modello del mondo) e con
il modello corrispondente alla persona dichiarata. Se l’immagine non appartiene al soggetto
descritto dal modello con buona probabilita essa verra riconosciuta come modello generico. Un
secondo metodo consiste nel fissare un valore limite (detto soglia) alla probabilita data. Se
il risultato e inferiore, allora la verifica e negativa, altrimenti e positiva. Nel nostro algorit-
mo combiniamo le due tecniche, cioe facciamo il rapporto tra le due probabilita e a questo
applichiamo una soglia.
Capitolo 4
Biometria delle impronte vocali
4.1 Introduzione
Il riconoscimento vocale e considerato un ibrido tra biometria fisiologica e comportamentale in
quanto quanto l’emissione e determinata sia dalla conformazione della gola e delle corde vocali,
sia da aspetti psicologici e umorali dell’utente (molto variabili nel tempo).
4.2 L’impronta vocale dal punto di vista biometrico
L’impronta vocale e l’insieme delle caratteristiche della voce di un individuo che ne permetteno
l’identificazione. Sebbene non vi sia accordo su quale possa essere un insieme esaustivo di tali
caratteristiche, sono note alcune misurazioni in grado di caratterizzare ragionevolmente singoli
individui in gruppi sufficientemente limitati di individui (qualche centinaio). Queste misurazioni
vengono spesso utilizzate come misure biometriche per realizzare sistemi di verifica.[17]
• Universalita: l’impronta vocale e presente nella quasi totalita degli individui fatta
eccezzione per alcuni casi di disabilita.
• Individualita: due persone diverse potrebbero avere voci simili.
• Persistenza: la misura dell’impronta vocale dipende da vari fattori. Una stessa persona,
in tempi diversi, potrebbe avere caratteristiche differenti dell’impronta vocale. Si pensi ad
esempio alle alterazioni della voce nell’eta dello sviluppo o quando si contrae l’influenza.
• Misurabilita: l’impronta vocale e facilmente catturabile attraverso un comune micro-
fono. La difficolta consiste nell’estrazione delle features.
• Performance: lunghi tempi di enrollment e dimensioni del template elevate rendono
difficoltosa l’acquisizione di grandi campioni, inoltre rumori di fondo possono alterare
21
CAPITOLO 4. BIOMETRIA DELLE IMPRONTE VOCALI 22
l’acquisizione. Il software di riconoscimento e il costo principale del sistema mentre i
costi dei microfoni sono irrisori (poche decine di euro) e aumentano solo per dispositivi
professionali molto accurati.
• Accettabilita: i sistemi basati su riconoscimento vocale sono, in genere, piu tollerati
dalla popolazione rispetto a sistemi basati su altre biometrie (e.g fingerprint).
• Facilita di elusione: tutto sommato i sistemi basati su riconoscimento vocale sono
facili da eludere: basta procurarsi una registrazione della voce del soggetto che si vuole
impersonare.
4.3 Acquisizione
L’acquisizione del campione e del template avviene tramite un microfono sensibile in cui avviene
la registrazione, da parte dell’utente, di alcune parole predefinite, in modo che gli algoritmi
possano apprendere le caratteristiche frequenze vocali.
In fase di verifica i tempi possono essere ridotti e non e piu necessario che l’utente legga
sequenze prestabilite: il software e in grado di effettuare il riconoscimento indipendentemente
dalle parole pronunciate e persino dal tono. In campo investigativo cio e particolarmente inter-
essante perche l’acquisizione puo avvenire anche senza la collaborazione del soggetto. Inoltre
sarebbe sicuramente utile poter utilizzare i microfoni degli apparecchi telefonici (ad esempio per
delle intercettazioni automatizzate), sfortunatamente le linee telefoniche tradizionali dedicano
una banda molto limitata alla voce e questo causa una drastica perdita di informazione sul
segnale che rende il riconoscimento poco affidabile, specialmente nel caso di sovrapposzione di
piu voci e per la presenza di rumore di fondo.
4.4 Rappresentazione ed estrazione delle features
Il campione vocale acquisito viene memorizzato solitamente in forma di file wave PCM. Il
PCM provvede a salvare i dati audio senza nessun tipo di compressione, la forma d’onda viene
memorizzata direttamente. Quindi i file risultanti sono di elevate dimensioni ma non richiedono
elevata potenza di calcolo per essere riprodotti, ed essendo la codifica lossless preserva in buona
parte tutte le caratteristiche del campione analogico.
Il primo passo per l’estrazione delle features consiste nell’applicare al campione un filtraggio
Cepstal. Si calcola la DFT (Trasformata Discreta di Fourier) del segnale di ingresso. In seguito
si calcola il logaritmo dei coefficenti. Successivamente si antitrasforma (IDFT). Quello che
abbiamo ottenuto e una enfatizzazione delle frequenze caratteristiche, per mettere in evidenza
CAPITOLO 4. BIOMETRIA DELLE IMPRONTE VOCALI 23
le features della voce. I coefficenti che si ricavano vengono, dopo opportuna normalizzazione,
utilizzati per addestrare un modello Gaussiano a Mixtures (GMM).
4.5 Confronto di impronte vocali
Per brevita tratteremo solo il caso della verifica. Dato un campione in input vengono estratti
i coefficenti spettrali (Cepstral) caratteristici e vengono confrontati, con l’algoritmo di Viterbi,
con il modello da verificare e con il modello del mondo. Viene calcolato il rapporto tra le due
probabilita. Tale valore costituisce un punteggio che il modulo di decisione confronta con una
soglia data per decidere se la verifica ha avuto esito positivo o negativo.
4.6 Note conclusive
A causa della scarsa affidabilita, l’uso e consigliato solo per applicazioni di sicurezza medio/bassa
in ambito civile, eventualmente associandolo ad altre tecniche biometriche.
Buone prospettive si hanno invece nel campo del riconoscimento vocale per la dettatura
automatica di testi al computer, ed esistono gia diversi software commerciali dedicati, anche se
attualmente il giro d’affari e ancora limitato.
Capitolo 5
Algoritmo di fusione sensoriale
Lo scopo di ogni sistema di verifica e di accettare o rifiutare l’identita dichiarata da una persona
sulla base della corrispondenza di una biometria con il modello pre-acquisito della identita
personale. Usando le impronte vocali modellate con le HMM, gli ingredienti a disposizione
sono: Impronta digitale (Fingerptint) osservata OF , modello HMM della persona abilitata λFA,
modello HMM medio delle persone Non Abilitate, λFNA. Il problema e dunque di determinare
mediante una soglia se accettare o meno l’identita dichiarata. Ricordiamo che un modello HMM
puo essere usato per generare una osservazione. L’algoritmo HMM consente in vari modi di
determinare la probabilita che un modello λ possa generare una determinata osservazione O,
cioe la verosimiglianza P (O|λ). In definitiva, l’algoritmo di verifica e il seguente:
Se P (OF |λFA) ≥ θ, allora accetta l’identita. Altrimenti, se P (OF |λFA) < θ, rifiuta.
La verosimiglianza P (OF |λFA) puo essere normalizzata rispetto alle verosimiglianze dei non
autorizzati. Infatti, se la persona e effettivamente quella che dichiara di essere, allora P (OF |λFA) >>
P (OF |λFNA). Questo porta a introdurre la seguente quantita:
ΛF =P (OF |λFA)
P (OF |λFNA)
che, in termini logaritmici, diventa:
ΛF = log(P (OF |λFA))− log(P (OF |λFNA))
Questa grandezza normalizzata sara molto alta se l’osservazione OF e del proprietario del
modello λFA, mentre sara molto bassa se OF non e del propietario del modello λFA.
Per la biometria vocale, che riferiamo nel seguito con il simbolo S da Speech, si puo definire
un termine analogo:
ΛS = log(P (OS |λSA))− log(P (OS |λSNA))
24
CAPITOLO 5. ALGORITMO DI FUSIONE SENSORIALE 25
Le quantita normalizzate ΛF e ΛS possono essere integrate in molti modi. Noi abbiamo scelto
di integrarle usando una media pesata, per ottenere un indice x come risultato della fusione:
x = αΛF + (1− α)ΛS
Il valore cosı ottenutoviene poi sottoposto a soglia per accettare o rifiutare l’identita dichiara-
ta:
Se x ≥ θ, allora accetta l’identita. Altrimenti, se x < θ, rifiuta.
Nel seguito descriviamo un semplice modo per calcolare α e θ. In una fase di training, for-
niamo in ingresso al sistema una sequenza di osservazioni della persona abilitata, OF1 , OF2 ,
..., OFN . Avremo dunque una sequenza di valori ΛF1 , ΛF2 , ..., ΛFN e ΛS1 , ΛS2 , ..., ΛSN . Di
queste sequenze, calcoliamo media e varianza: µ(ΛF ), σ2(ΛF ) e µ(ΛS), σ2(ΛS). Prima di
tutto stabiliamo che un buon valore per la soglia e: θ = αµ(ΛF ) + (1 − α)µ(ΛS). Inoltre,
se una persona abilitata fornisce le sue osservazioni di impronta digitale e di impronta vo-
cale, i valori di λFA) e ΛS sono sı alti ma presentano una certa variabilita, come misurato
dalla relativa varianza. E importante tuttavia minimizzare la varianza di x per minimiz-
zare i falsi positivi e falsi negaivi della verifica. La minimizazione di σ2(x) e facilmente ot-
tenuta come segue: visto che σ2(x) = α2σ2(ΛF ) + (1 − α)2σ2(ΛS) + 2α(1 − α)Cov(ΛF ,ΛS)
e che le impronte digitali e le impronte vocali sono statisticamente indipendenti, abbiamo
σ2(x) = α2σ2(ΛF ) + (1 − α)2σ2(ΛS). Il valore di α si ottiene annullando la derivata di σ2(x)
rispetto ad α: dσ2(x)dα = 2ασ2(ΛF ) − 2(1 − α)σ2(ΛS) = 0, da cui: ασ2(ΛF ) = (1 − α)σ2(ΛS),
ovvero
α =σ2(ΛS)
σ2(ΛS) + σ2(ΛF )(5.1)
Si puo facilmente mostrare che σ2(x) raggiunge effettivamente un minimo per il valore di α
calcolato in 5.1.
In definitiva quindi l’algoritmo sviluppato per la multibiometria e il seguente:
Calcolo di ΛF e ΛS
Calcolo di µ(ΛF ), σ2(ΛF ) e µ(ΛS), σ2(ΛS).
Calcolo di x = αΛF + (1− α)ΛS e θ = αµ(ΛF ) + (1− α)µ(ΛS)
Decisione finale: Se x ≥ θ allora accetta altrimenti rifiuta.
Capitolo 6
Implementazione in ambiente PC
6.1 Introduzione
L’implementazione del sistema biometrico consiste nel porre in opera lo scanner 2.2 e l’algoritmo
3.6. In ambiente pc non ci sono stati particolari problemi per l’implementazione. In questo
capitolo vengono descritti in dettaglio i passi svolti per la realizzazione pratica del sistema
biometrico.
6.2 Implementazione del sistema di acquisizione
Abbiamo a disposizione (si veda 2.2.3 ) due diverse API per interagire con lo scanner. Entrambe
funzionano sia in ambiente Windows che in ambiente Linux. Per comodita (il S.O. del TS7800 e
Debian cfr. 2.3 ) e stato scelto di sviluppare tutti i programmi sotto Linux. Per quanto riguarda
la scelta tra le due API in un primo momento sono state utilizzate le BSAPI e in seguito le
PTAPI 7.1
6.2.1 Funzioni dello scanner
Delle numerose routine disponibili a noi interessano in particolare quelle che permettono di:
• inizializzare la libreria
• stabilire la connessione con il dispositivo
• ottenere l’immagine del fingerprint
• chiudere la connessione con il dispositivo
• deallocare la libreria
26
CAPITOLO 6. IMPLEMENTAZIONE IN AMBIENTE PC 27
Altre funzioni permettono di fare l’enroll, memorizzare i templates ottenuti nel dispositivo,
effettuare la verifica o l’identificazione di una fingerprint acquisita sulla base dei templates
acquisiti. Queste funzioni verranno utilizzate per ottenere un benchmark delle prestazioni del
nostro algoritmo.
6.2.2 Formato dell’immagine
Come discusso ampiamente nelle sezioni 3.3 e 3.4 salvare le immagini grezze ottenute dal dis-
positvo e un passo molto importante. A questo scopo bisogna tenere conto delle caratteristiche
dell’immagine che si riesce a ottenere dal dispositivo. Nel nostro caso l’immagine e descritta
dalla seguene struttura dati (simile nelle due API):
typedef struct pt_imgformat {
PT_WORD InXDpi; ///< Input X resolution.
PT_WORD InYDpi; ///< Input Y resolution.
PT_WORD OutXDpi; ///< Output X resolution.
PT_WORD OutYDpi; ///< Output Y resolution.
PT_BYTE InBpp; ///< Input color depth.
PT_BYTE OutBpp; ///< Output Color depth.
PT_WORD PowerMode; ///< Scanning power mode.
PT_WORD CompressMode; ///< Data compression mode.
PT_WORD Flags; ///< Additional flags (see PT_IMGFORMAT_FLAG_xxxx values).
} PT_IMGFORMAT;
dove le risoluzioni sono impostate in base al modello dello scanner utilizzato. Nel nostro
caso riusciamo a ottenere un’immagine in gradazioni di grigio (8bit) di 144x384 pixels con
una risoluzione di 501 dpi. La chiamata alla funzione di acquisizione PT GRAB ci restituisce
un array di byte che rappresentano i singoli pixels codificati. Il formato piu opportuno per
memorizzare l’immagine e il pgm (portable gray-map). E un formato non compresso composto
da uno header e dalla pixel map. Lo header, codificato in caratteri ASCII contenente i campi:
magic number (P5),larghezza,altezza,numero di colori. La pixel map e cositituita semplicemente
da una sequeza di byte che codificano i pixel con il primo byte che codifica il primo pixel in alto
a sinistra nell’immagine.
6.2.3 Programma di acqusizione
Il programma realizzato per l’acquisizione si basa in gran parte su un programma di esempio
disponibile nel pacchetto contenente le BSAPI. E stata mantenuta la parte relativa all’acqui-
CAPITOLO 6. IMPLEMENTAZIONE IN AMBIENTE PC 28
sizione dell’immagine, contenente numerose strutture dati, callbacks del dispositivo e infor-
mazioni sul formato dell’immagine per la scansione. La struttura puo essere schematizzata
come segue:
• inizializzazione della libreria
• apertura connessione con il dispositivo
• richiesta identificativo (e.g. pippo, persona1, giovanni ...)
• acquisizione immagine di fingerprint
• salvataggio in formato pgm
• questi ultimi due passi vengono ripetuti 10 volte
• chiusura connessione con il dispositivo
• deallocazione della libreria
In base all’id inserito viene creata una cartella che contiene le 10 immagini acquisite. Ne
vengono acquisite 10 in modo da avere una sufficente quantita di immagini da utilizzare per
l’enrollment e la verifica. In un’altra tesi[5] ne vengono usate 2 per l’enrollment e 4 per la verifica.
Da notare che un primo controllo sulla qualita dell’immagine viene effettuata direttamente del
software di libreria in quanto deve ricostruire l’immagine a partire dalle fette inviategli dallo
scanner. In questa fase vengono segnalati eventi come variazione di pressione, strisciamento in
obliquo o troppo veloce, errori dovuti alla distorsione e rumore.
6.3 Implementazione di enrollment-verification-identification
L’algoritmo prescelto (vedere 3.6) e stato implementato in precedenza in un programma, chiam-
ato hmmface, che effettua il riconoscimento facciale. Per maggiori dettagli vedere 2.4
6.3.1 Modifiche apportate
Elenchiamo qui in seguito le modifiche apportate al programma:
• essendo scritto per Windows e dovendo girare su Linux e stato necessario cambiare le
chiamate di sistema per scansione delle directory
• abbiamo preferito separare le due parti di interesse (enroll e verifica) in due programmi
separati. Vedere figg. 6.1 e 6.2.
CAPITOLO 6. IMPLEMENTAZIONE IN AMBIENTE PC 29
Figura 6.1: Schema a blocchi programma di enroll
Figura 6.2: Schema a blocchi programma di verifica
• abbiamo scelto di dare in input (ovvero non piu cablati nel codice) i parametri: dimesione
dei blocchi,numero di coefficenti, distanza dei blocchi, soppressione o meno del primo
coefficente (componente continua) nonche il path delle immagini.
• aggiunto il salvataggio dei risultati in un file di testo (ad ogni verifica il risultato viene
aggiunto in coda).
• Il programma e stato concepito per funzionare in modalita identificazione. Noi vogliamo
farlo funzionare in modalita verifica. Possiamo pensare di avere a che fare con due soli
soggetti: soggetto da verificare e mondo. Per motivi di privacy il modello del soggetto
verra conservato in un posto diverso rispetto al modello del mondo (ad esempio su una
chiavetta usb e verra aggiunto al volo in fase di verifica e poi eliminato). Il file di testo
che riporta i risultati ha la struttura seguente: <nome soggetto da verificare> <nome
immagine data in input> <soggetto identificato> <prob. modello soggetto> <prob.
modello mondo> <differenza dei due precedenti>
• creato un programma per trovare la minima e ia massima differenza dal file dei risultati
• creato un programma per normalizzare nell’intervallo [0,1] i risultati nel seguente modo:
i risultati negativi per come abbiamo costruito il file dei risultati corrispondono all’identi-
ficazione dell’input come mondo (ovvero non verificato) mentre quelli positivi sono quelli
CAPITOLO 6. IMPLEMENTAZIONE IN AMBIENTE PC 30
che corrispondono all’identificazione dell’input con il modello prescelto. Alcuni risul-
tati negativi sono molto distanti dal trend medio negativo. La normalizzazione normale
sarebbe stata (diff − a)/(b− a) mentre, data quest’ultima informazione, normalizziamo
con (diff + b)/2b avendo posto a = −b
• date le caratteristiche dello scanner abbiamo deciso di ritagliare dalle immagini il contorno
per 20 pixel in quanto affetto da disturbi notevoli.
6.4 Manuale d’uso
In questo paragrafo viene spiegato l’utilizzo del sistema biometrico implementato su Pc.
6.4.1 Database
Il corretto funzionamento del programma richiede la costruzione di un database (su file) con
le immagini di fingerprint. Tale database ha una struttura molto semplice ed e costituito da
una directory principale contenente tante sotto directory quanti sono i soggetti. Il loro nome e
l’identificativo del soggetto in questione. All’interno di ogni sotto directory ci sono le immagini
di fingerprint. Il programma e stato concepito per lavorare con tre database di immagini: il
database generale, il database corrente, il database degli autorizzati. Quello generale contiene
tutti i campioni raccolti. Quello degli autorizzati i soggetti autorizzati e quello corrente solo il
modello del mondo. Per la verifica sara sufficiente alterare tale database aggiungendo il modello
del soggetto di cui si vuole verificare l’identita.
6.4.2 Utilizzo
Il programma consiste in una serie di sottoprogrammi e di dati contenuti in un directory comune.
La struttura e la seguente:
• verify/: contiene l’eseguibile omonimo e una sottodirectory risultati che contiene i pro-
grammi normalizza e minmax, che, rispettivamente, normalizzano gli scores ottenuti
in base all’intervallo voluto6.3.1 ed estraggono il minimo e il massimo score. L’input del
programma minmax e un file chiamato risultati.txt le cui righe sono prodotte ad ogni
esecuzione di verify. Il programma normalizza prende in input il programma contenente
l’intervallo trovato e modifica il file risultati.txt sostituendo lo score con lo score normal-
izzato. Inoltre produce un file chiamto analisi.txt che contiene il rate di falsi positivi e
di falsi negativi. Viene fornito con lo script test.sh che permette di effettuare il test di
verifica su un certo numero di modelli autorizzati utilizzando un database di immagini di
fingerprint (specificando le rispettive directory nel file di configurazione).
CAPITOLO 6. IMPLEMENTAZIONE IN AMBIENTE PC 31
• identify/: la struttura e analoga al caso precedente sono che il file di risultati e in
un formato leggermente diverso: <modello corrente><id del database delle immagini in
uso><modello identificato><prob. modello identificato> <prob. modello successivo>
<differenza dei due precedenti>. Il file analisi.txt contiene solo il numero di identificazioni
errate. Analogamente al caso precedente il programma e accompagnato da uno script
test.sh per testare l’identificazione dei soggetti presenti nel database delle immagini.
• enroll/: contiene l’eseguibile enroll. Si specifica come parametro la cartella del database
delle immagini di cui si vuole creare il modello.
• scanFp/: contiene il programma di acquisizione scanFp. Nella cartella lib deve essere
presente la libreria libtfm.so compilata per il sistema in uso. Per l’esecuzione e necessario
copiare tale libreria in /usr/lib.
• hmmfinger.cfg: file di configurazione in cui impostare: la root del programma, percorso
della cartella delle immagini (solo per test), percorso del modello del mondo, percorso dei
modelli autorizzati (solo per test).
• verifica.sh: link a verify live.sh
Gli eseguibili verify, enroll, identify hanno i seguenti parametri:
• verify e identify: <immagine da verificare> <percorso database> [<larghezza blocco
DCT> <altezza blocco DCT> <coefficiente X> <coefficienti Y> <step X> <step Y>
<flag soppressione continua>]. I parametri tra parentesi non sono obbligatori e se non
specificati vengono utilizzati i valori di default (6 6 4 4 4 4 1 nell’ordine).
• enroll: <percorso database immagini> <larghezza blocco DCT> <altezza blocco DCT>
<coefficiente X> <coefficienti Y> <step X> <step Y> <flag soppressione continua>].
Il file di configurazione contiene 4 elementi:
• root:<path>. Root del programma
• immagini:<path>. Dove si trova il database delle immagini
• mondo:<path>. Dove si trova il database (e le immagini) che costituiscono il modello del
mondo
• autorizzati:<path>. Dove si trovano i modelli degli utenti autorizzati.
CAPITOLO 6. IMPLEMENTAZIONE IN AMBIENTE PC 32
6.4.3 Esempi di utilizzo
Nella root del programma abbiamo le seguenti directory: database, databaseAutorizzati, databaseDis-
tinto. La directory database contiene la sottodirectory unauthorized che contiene le immagini
di fingerprint per costruire il modello del mondo. La directory databaseDistinto contiene tutte
le directory dei campioni prelevati. La directory databaseAutorizzati contiene il database delle
immagini dei soggetti autorizzati. Il file hmmfinger.cfg relativo sara cosi composto:
• root:/root/del/programma
• immagini:/root/del/programma/databaseDistinto
• mondo:/root/del/programma/database
• autorizzati:/root/del/programma/databaseAutorizzati
L’esecuzione di /verify/test.sh porta il programma a verificare, utilizzando uno per volta i mod-
elli autorizzati, tutte le immagini di tutti i campioni (contenute in databaseDistinto). L’ese-
cuzione di /identify/test.sh porta il programma ad identificare, utilizzando tutti i modelli costru-
iti sul database databaseDistinto, tutte le immagini di fingerprint di tutti i campioni (sempre
contenute in databaseDistinto).
Capitolo 7
Implementazione in ambiente ARM
7.1 Introduzione
Implementare quanto descritto fino ad ora in ambiente embedded e una scelta strategica in
quanto, oltre a fattori legati al consumo energetico e scarso ingombro dei componenti, nell’ultimo
anno i processori ARM stanno guadagnando sempre piu mercato[9] In questo capitolo trattiamo
i problemi affrontati per implementare l’algoritmo sulla scheda TS7800. Le difficolta maggiorni
sono derivate da problemi di compatibilita tra le librerie per x86 e quelle per ARM. Lo scanner,
commercialmente provvisto solo delle API BSAPI 2.2 ha causato non pochi problemi di porting.
7.2 Programma di acqusizione
Come gia accennato, originariamete era a nostra disposizione solo la libreria BSAPI (non open
source) compilata per x86 e x64. Parallelamente abbiamo proceduto alla raccolta delle finger-
print utilizzando il programma basato su queste API e alla ricerca di una soluzione per perme-
ttere il funzionamento sul TS7800. Per risolvere il problema del porting sono state proposte le
seguenti soluzioni:
7.2.1 Primo tentativo
Come prima soluzione al problema si e pensato di usare unaa libreria opensource chiamata
libfprint [6] che allo stato attuale supporta circa 20 scanner di diversi produttori. Lo scanner
2.2 e supportato per le sole modalita di enroll e verification e non per l’invio dell’immagine
all’host (pc o arm). Lavorando sui sorgenti per un certo tempo si e deciso di abbandonare il
progetto data la struttura eccessivamente complicata. Quello che segue non e utile ai fini del
raggiungimento dell’obiettivo ma, date le parecchie ore spese in questo lavoro, sembra doveroso
33
CAPITOLO 7. IMPLEMENTAZIONE IN AMBIENTE ARM 34
riportare alcune considerazioni senza entrare troppo nei dettagli. Lo scheletro della libreria (le
chiamate di libreria o API) e distinto in due classi di chiamate: quelle dirette a periferiche
senza capacitdi imaging (ottenimento dell’immagine della fingerprint) e quelle per periferiche
che supportano tale caratteristica. Per ogni famiglia di dispositivi c’e un listato in c contenente
le informazioni di funzionamento, come parole di controllo codici di parita e quant’altro. Anche
questi ultimi file hanno struttura leggermente diversa per periferiche con imaging o senza.
Il file che supporta lo scanner e upeksonly.c dove viene descritto come una periferica senza
capacita di imaging. L’esperimento e stato quello di creare un file in grado di fare funzionare il
nostro scanner come periferica di imaging basandoci sul file descritto in precedenza. Lo scanner
viene modellato come una macchina a stati finiti in cui il passaggio da uno stato all’altro e
pilotato dalle risposte che la periferica manda in seguito ad un comando dell’host. I comandi
da mandare al dispositivo per metterlo nello stato di cattura immagine sono stati catturati
utilizzando il software Wireshark che permette la cattura dei pacchetti che transitano sul bus
USB. Nonostante questo il nostro esperimento non e andato a buon fine in quanto ad un certo
punto il dispositivo non funzionava secondo il modello esposto in precedenza.
7.2.2 Secondo tentativo
Visto il precedente fallimento e tenendo conto delle informazioni ricavate dalla cattura dei
pacchetti (ad esempio lo header che precede ciascun pacchetto e formato dai caratteri CIAO!)
si e pensato di costruire ex-novo il driver per pilotare il dispositivo. Questa via sembrava
promettere bene ma ad un certo punto ci siamo scontrati con un ulterirore problema: arrivati
ad un certo punto il dispositivo manda un pacchetto con dati non costanti (ovvero in due
sessioni diverse manda dati diversi). A prima vista sembrava un numero casuale per un qualche
tipo di CRC sui dati. Allora, copiando le parti relative alla gestione del CRC dai sorgenti della
libfprintf, si e visto che comunque non era possibile pilotare il dispositivo nel modo voluto.
Anche questo esperimento e fallito. Solo piu tardi, avendo a disposizione i codici sorgenti dei
driver proprietari si e osservato che i dati erano in realta crittografati con AES.
7.2.3 Terzo tentativo
Si e tentato di realizzare una versione minimale di Linux tale da permettere l’esecuzione del
software di acquisizione, basato sulle BSAPI, su una macchina virtuale (bochs). Le scarse
prestazioni ottenute sul TS7800 (10 min per il bootstrap e 30 secondi per ogni comando dato)
hanno determinato il fallimento di questo tentativo di soluzione.
CAPITOLO 7. IMPLEMENTAZIONE IN AMBIENTE ARM 35
7.2.4 Quarto tentativo
Dopo numerose mail e suppliche all’azienda (Upek) siamo riusciti ad ottenere i codici sorgenti
del driver proprietario. A questo punto e stato sufficiente compilarli sul TS7800 e utilizzare il
programma creato per PC ovviamente cambiando le chiamate alla liberia.
7.2.5 Conclusione
La struttura del programma di acqusizione viene leggermente modificata. E sufficiente infatti
acquisire una sola impronta alla volta per la verifica (non le 10 descritte nel programma per
pc).
7.3 Implementazione di enrollment-verification-identification
Sul TS7800 verra implementato soltanto il programma di verifica. L’enrollment risulta pesante
gia in ambiente pc. Il programma per la verifica si basa sulle librerie openCv. Esse sono
disponibili per Arm gia nelle repositories ufficiali di Debian. Provando ad installare le versioni
dev dei vari pacchetti ci rendiamo pero conto che manca un file di libreria chiamato libcxcore
che e un componente fondamentale della openCV. Seguono una serie di tentativi per risolvere
il problema.
7.3.1 Cross-compilazione
La compilazione dei vari programmi sul TS7800 richiede parecchio tempo. La Techological
Systems mette a disposizione alcune tool-chain per compilare i programmi in ambiente pc e
differiscono per il tipo di emulazione dell’unita floating point. L’algebra in virgola mobile viene
emulata dal Kernel. Esistono due varianti di questa emulazione: la piu vecchia chiamata oldAbi
e la piu recente detta gnueAbi. Viene utilizzata quest’ultima.
7.3.2 Primo tentativo
La versione del sistema operativo (3.1 Sarge) installata sul TS7800 e una versione di Debian
ormai obsoleta. Aggiorniamo il S.O. passando alla versione 5.0 Lenny. Questo ha risolto effetti-
vamente il problema delle librerie ma, per ragioni che ancora oggi risultano oscure, con questa
versione del S.O. lo scanner non funziona. Una prova effettuata con il debugger gdb ha messo
in luce che la libreria dello scanner entra in loop infinito in fase di inizializzione del dispositivo.
CAPITOLO 7. IMPLEMENTAZIONE IN AMBIENTE ARM 36
7.3.3 Secondo tentativo
Su S.O. Debian Sarge. Scarichiamo i sorgenti della libreria e proviamo a compilarla. La compi-
lazione va a buon fine ma quando utilizziamo il programma di verifica otteniamo un errore di
segmentation fault. Dopo numerose compilazioni con diversi parametri scopriamo che linkando
staticamente le librerie al nostro programma il problema viene risolto.
7.4 Implementazione del sistema automatizzato
L’idea alla basa e la seguente:
• il sistema attende che l’utente specifichi la propria identita. Questo viene realizzato sal-
vando il modello, creato con il programma di enrollment, in ambiente pc, su una chiavetta
USB. L’utente che inserisce la chiavetta usb nel sistema e come se stesse inserendo una
password o strisciando un badge. Ricordiamo che il possesso di un oggetto non e condizione
sufficiente all’autenticazione della persona.
• viene richiesta l’acquisizione di un’impronta
• viene eseguito il programma di verifica utilizzando il modello del mondo e il modello
presente sulla chiavetta usb
• viene presentato all’utente il risultato della verifica.
Avendo gia a disposizione sotto forma di programmi le due componenti fondamentali (pro-
gramma di verifica e acquisizione) l’implementazione proposta e basata su uno script in bash
che effettua le seguenti operazioni:
• informa l’utente che il sistema e pronto per cominciare la verifica
• attende l’inserimento della chiavetta usb
• verifica se nella chiavetta c’e effettivamente un modello
• modifica il database del programma di verifica (il motivo e scritto qui 2.4.1 ) aggiungendo
il modello presente sulla chivetta
• informa l’utente che il sistema e pronto per acquisire l’impronta digitale
• avvia il programma di verifica
• estrae il risultato della verifica e informa l’utente del successo/insuccesso.
CAPITOLO 7. IMPLEMENTAZIONE IN AMBIENTE ARM 37
L’utente viene informato attraverso due led (rosse e verde). Nei vari programmi di esempio
per il TS7800 abbiamo trovato quelli per pilotare i led e abbiamo creato quattro programmi
redOn, redOff, greenOn, greenOff che effettuano le operazioni di spegnimento e accesione dei
rispettivi led. Inoltre e stato creato un programma che accende e spegne alternativamente i led
a intervalli regolari (1s).
7.5 Manuale d’uso
In questo paragrafo viene spiegato l’utilizzo del sistema di verifica su TS7800. Il programma
consiste in una serie di sottoprogrammi e di dati contenuti in un directory comune. La struttura
e la seguente:
• verify/: contiene l’eseguibile omonimo e una sottodirectory risultati che contiene il
programma normalizza, il file intervallo.txt dov’e riportato l’intervallo per la normal-
izzazione. I risultati vengono prodotti qui su un file chiamato risultati.txt
• scanFp/: contiene il programma di acquisizione scanFp
• live/:contiene lo script per l’esecuzione del sistema di verifica automatica al boot
• hmmfinger.cfg: file di configurazione in cui impostare: la root del programma, percorso
della cartella delle immagini (solo per test), percorso del modello del mondo, percorso dei
modelli autorizzati (solo per test).
• verifica.sh: link a verify live.sh
Per l’utilizzo dei programmi descritti si veda 6.4.2 Un programma di autologin per accedere
al terminale come root viene eseguito al posto del normale login e lo script .bashrc esegue in
automatico lo script verifica.sh. Il programma esegue fino a che viene scollegato lo scanner.
Per il corretto funzionamento del sistema e necessario collegare lo scanner quando il TS7800
e spento. Attendere che si illuminino contemporaneamente il due led. Inserire la chiavetta
USB contenente il modello. Attendere che i led si accendano alternativamente. Strisciare
il dito. Se l’acquisizione non va a buon fine i led continuano a lampeggiare. Il risultato e
dato dall’accensione del led verde se la verifica ha avuto successo, rosso altrimenti. In caso
di verifica positiva il sistema attende che l’utente estragga la chiavetta USB e si riporta nello
stato di pronto. In caso di verifica negativa dopo tre secondi il sistema chiede che sia acquisita
nuovamente l’impronta (contro i falsi negativi).
Capitolo 8
Risultati sperimentali
8.1 Introduzione
In questo capitolo verranno presentati i risultati sperimentali ottenuti utilizzando i vari algoritmi
proposti lungo la trattazione. E evidente che l’utilizzo di tecniche biometriche multimodali
garantisce ottimi risultati in termini di errore commesso.
8.2 Dataset acquisito
I database a nostra disposizione:
• fingerprint: 16 soggetti in totale, 10 immagini di fingerprint ognuno tranne 4 soggetti che
ne hanno 20. Totale 200 immagini di fingerprint
• impronte vocali: 20 soggetti, 4 file di registrazioni contenenti 30 parole. Totale 2400
campioni vocali.
• soggetti in comune ai due database: 15 soggetti
Per le prove di identificazione il modello verra costruito con 5 immagini e validato con le altre
5. Per le prove di verifica i 4 modelli autorizzati saranno costruiti con 10 immagini e validati
con le altre 10 piu quelle degli altri soggetti.
8.3 Parametri valutati
Quando si ha a che fare con un sistema biometrico ci si puo trovare nelle seguenti situazioni:
• H0 : il soggetto e realmente chi dice di essere
38
CAPITOLO 8. RISULTATI SPERIMENTALI 39
• H1 : il soggetto e un impostore
• D0 : il sistema accetta il soggetto
• D1 : il sistema respinge il soggetto
Possiamo calcolare varie probabilita condizionate sulla base di questi eventi. Tipici indicatori
che descrivono la bonta di un sistema biometrico sono la FAR (False Acceptance Rate), per-
centuale di falsi positivi ovvero P (D0|H1), e la FRR (False Rejection Rate), percentuale di falsi
negativi ovvero P (D1|H0). Questi valori dipendono fortemente dal modulo di decisione tant’e
vero che possono essere diagrammati, ad esempio, in funzione della soglia di score T . Questi
grafici hanno, solitamente, un punto di intersezione chiamato EER (Equal Error Rate) ed e il
valore di soglia per il quale falsi positivi e falsi negativi si equivalgono. E un indicatore sintetico
della qualita del sistema. Tuttavia, nei casi reali si lavora con soglie che garantiscono, a seconda
dei casi, percetuali basse di FRR (scopi investigativi) o FAR (sicurezza e controllo accessi). Per
un confronto tra sistemi biometrici si usa molto un altro tipo di grafico,chiamato ROC (Re-
ceiver Operating Charatterisitcs), dove sulle ascisse troviamo i valori di FAR e sulle ordinate
i corrispondenti valori di FRR. L’EER e la retta di pendenza 1. Nella realta FRR e FAR si
ricavano attraverso degli esperimenti da cui si estraggono i loro stimatori: FMR (False Match
Rate), falsi positivi rilevati, e FNMR (False No Match Rate). Questi valori non tengono in
considerazione l’ FTA (Failure To Acquire Rate), la percentuale dei soggetti di cui e impossibile
acquisire le fingerprint, e l’ FTE (Failure To Enroll Rate), la percentuale dei soggetti acquisiti
ma di cui e impossibile costruire un modello (scarsa qualita della fingerprint). La relazione tra
FAR e FRR e FMR e FNMR e data da:
FAR(T ) = (1− FTA) · (1− FTE) · FMR(T )
FRR(T ) = FTA+ (1− FTA) · FTE + (1− FTA) · (1− FTE) · FNMR(T )
Nel corso del nostro esperimento abbiamo avuto FTA e FTE nulli. Quindi per noi sara vero
FAR(T ) = FMR(T )
FRR(T ) = FNMR(T )
Altri parametri da valutare sono, ad esempio, la velocita dell’algoritmo.
8.4 Algoritmo Upek
Le API dello scanner includono gli algoritmi per la verifica e l’identificazione delle fingerprint
basati su minuzie. Con il dataset acquisito, sia in modalita verifica sia in modalita acquisizione
CAPITOLO 8. RISULTATI SPERIMENTALI 40
Figura 8.1: Calcolo EER nel caso dell’identificazione con ritaglio dell’immagine
otteniamo un EER nullo. Tale fenomeno e dovuto alla limitatezza del campione a disposizione.
Dal sito [3] possiamo ricavare i seguenti dati relativi agli algoritmi implementati nelle API.
Risulta quindi un EER di circa lo 0,1%. Questo sistema tuttavia richiede parecchie risorse di
calcolo. Un enrollment richiede circa 5s. La verifica di tutti i 16 soggetti richiede una media di
60s.
8.5 Fingerprint identification
Presentiamo adesso i risultati ottenuti con l’algoritmo di identificazione sul database delle fin-
gerprint. I parametri impostati sono stati scelti eseguendo un numero sufficente di prove e
sono (4 4 4 4 4 4 1)6.4.2. L’algoritmo ritorna il soggetto che e stato identificato insieme con lo
score. Il modulo di decisione deve fissare una soglia sotto la quale i risultati ottenuti non sono
attendibili. Ricaviamo quindi i grafici di FRR e FAR (in figura 8.1) in funzione della soglia.
In figura 8.2 sono riportati i grafici ROC relativi all’identificazione utilizzando diversi parametri.
Dalle figure emerge chiaramente che l’EER stimato si aggira intorno al 4%. Tale valore in
realta e da ritenersi un limite inferiore dell’algoritmo di identificazione in quanto l’EER cresce
linearmente con il numero di soggetti in archivio[8].
8.6 Fingerprint Verification
Presentiamo adesso i risultati ottenuti con l’algoritmo di verifica su una versione ridotta a 4
soggetti (tutti e quattro autorizzati) del database. Viene introdotto in queste prove un quinto
CAPITOLO 8. RISULTATI SPERIMENTALI 41
Figura 8.2: Prestazioni algoritmo identificazione ottenute con parametri diversi. (1) 4 4 4 4 44 1. (2) 12 32 3 3 12 32 1
Figura 8.3: Calcolo EER nel caso della verifica con ritaglio dell’immagine
modello chiamato modello del mondo costruito con le restanti fingerprint del database. Il
modello del mondo serve per avere uno score relativo e non assoluto. Questo e un vantaggio in
quanto solo con il metodo a soglia non si tiene conto di problemi quali, ad esempio, la scarsa
qualita delle fingerprint di alcune persone, che altrimenti sarebbero sempre respinte. In figura
8.3 possiamo osservare i grafici FRR e FAR ottenuti con i parametri (4 4 4 4 4 4 1) e nella
figura 8.4 possiamo osservare la curva ROC ottenuta con vari parametri e modifiche. Abbiamo
ottenuto un EER del 2,5% circa nel migliore dei casi. In questo caso scegliamo come parametri
CAPITOLO 8. RISULTATI SPERIMENTALI 42
Figura 8.4: Prestazioni algoritmo verifica ottenute con parametri diversi.
4 4 4 4 4 4 1 e usiamo l’algoritmo che ritaglia le immagini in quanto la sua curva ROC si
mantiene al di sotto dei quella senza ritaglio delle immagini per quasi tutti i valori.
8.7 Fusione
Presentiamo i risultati ottenuti con il nostro algoritmo di fusione. Come ci aspettavamo si
ottiene un miglioramento sensibile dell’EER dovuto ad una riduzione della varianza dei valori
di score ottenuti con la fusione. Per un confronto tra le biometrie considerate singolarmente e
fuse insieme si veda la figura 8.5
Questa e la dimostrazione sperimentale che effettivamente la biometria multimodale porta
benefici sensibili per un sistema di verifica in termini di maggiore accuratezza. Questo non e
l’unico vantaggio della biometria multimodale, tuttavia e uno dei motivi principali per cui oggi
si utilizza la fusione delle informazioni in sistemi di verifica. In termini di costo computazionale
il nostro algoritmo di fusione e praticamente gratutito in quanto consiste in una media pesata
di due valori.
8.8 Commenti
I risultati ottenuti rispecchiano le nostre aspettative. Gli ottimi risultati (EER del 3% circa)
ottenuti con il nostro algoritmo di fingerprint verification non sono molto attendibili per i
seguenti motivi:
CAPITOLO 8. RISULTATI SPERIMENTALI 43
Figura 8.5: Prestazioni dei singoli sistemi e del sistema biometrico multimodale ottenuto
• il campione e troppo ristretto. Per avere una misura piu attendibile dell’effettivo tasso di
errore occorre raccogliere le biometrie di molti piu soggetti.
• la raccolta delle fingerprint per la costruzione dei modelli e per i test doveva essere ese-
guita in istanti di tempo piu lontani tra loro. Essendo un metodo basato sulle immagini,
in istanti diversi le immagini raccolte possono differire anche di molto. L’utilizzo dell’al-
goritmo implementato sul sistema embedded e affetto da un EER che non rispecchia i
risultati ottenuti.
Questi difetti portano, nel mondo industriale, ad utilizzare altri algoritmi per la fingerprint
verification, come quelli basati sulle minuzie.
Conclusioni e sviluppi futuri
In questa tesi e stato sviluppato un sistema di verifica della identita personale mediante la
biometria multimodale. E stato messo a punto un sistema di acquisizione delle impronte digitali
mentre in un’altra tesi e stato sviluppato un corrispondente sistema per le impronte vocali. Il
sistema sviluppato comprende anche un programma per il confronto delle impronte digitali e un
algoritmo per la fusione delle impronte digitali e delle impronte vocali. I risultati sperimentali
hanno dimostrato che utilizzando la fusione di due diverse biometrie il tasso d’errore viene
ridotto drasticamente. Infatti l’EER (equal error rate) ottenuto e intorno all’1%, mentre l’EER
della sola verifica con impronte digitali di aggira intorno al 3% e quello della sola impronta
vocale intorno al 5%. Il sistema di verifica basato sulle impronte digitali e stato implementato
anche su un processore ARM per dimostrare la possibilita di una futura ingegnerizzazione.
Da questo punto di vista, tutti gli obiettivi elencati nel piano di lavoro riportato nell’
Introduzione sono stati raggiunti da questa tesi con ampio successo .
A conclusione di questo lavoro, abbiamo dunque un sistema di verifica multibiometrica pron-
to per ulteriori miglioramenti. In particolare, attualmente abbiamo un sistema per acquisire
un data Set di impronte, un algoritmo per il confronto e un algoritmo per la fusione. Nell’im-
mediato, il sistema e pronto come base per sviluppare ulteriori sistemi di verifica con impronte
digitali e ulteriori algoritmi per la fusione dei dati. L’esperienza maturata con l’implemen-
tazione in tempo reale su processore ARM puo essere utilizzata per implementare un sistema
multibiometrico.
In definitiva, uno sviluppo puo essere quello di migliorare le prestazioni dei sistemi di verifica
monobiometrica o di migliorare le caratteristiche dell’algoritmo di fusione. Un altro sviluppo
interessante puo essere quello di includere una terza biometria, quella del volto, in un sistema che
utilizzi quindi tre biometrie. Ci si aspetta quindi di ottenere una ulteriore riduzione dell’EER.
44
Bibliografia
[1] Caratteristiche tecniche dello scanner. http://www.bromba.com/tdfsmu4e.htm.
[2] Anil Jain Arun Ross. Information fusion in biometrics. Pattern Recognition Letters,
(24):2115–2125, 2003.
[3] Bromba. Caratteristiche algoritmo matching api upek. http://www.bromba.com/
tdsdk20e.htm.
[4] Universita degli studi di Salerno. Approfondimento sull’algoritmo di baum-welch. http:
//www.dia.unisa.it/~ads/BIOINFORMATICA/HiddenMarkovModels/Arg14.htm.
[5] Carmine di Biase. programmazione dinamica bidimensionale per la verifca di impronte
digitali. 2007.
[6] Freedesktop.org. Libreria libfprint. http://www.freedesktop.org/wiki/Software/
fprint/libfprint.
[7] Guo H. A hidden markov model fingerprint matching approach. IEEE, 2005.
[8] Davide Maltoni. Handbook of Fingerprint Recognition. Springer-Verlang.
[9] Melablog.it. Arm: Entro il 2015 domineremo il merca-
to dei computer portatili. http://www.melablog.it/post/14121/
arm-entro-il-2015-domineremo-il-mercato-dei-computer-portatili.
[10] Enrico Pelizzon. Biometria multimodale per accesso sicuro alle informazioni sensibli. PhD
thesis, Universita degli studi di Trieste, 2011.
[11] Technological Systems. Caratteristiche tecniche del sbc. http://www.embeddedarm.com/
products/arm-sbc.php#ts-7800-500mhz-series.
[12] Technological Systems. Installare il s.o. su scheda sd. http://www.embeddedarm.com/
about/resource.php?item=393#section2.7.
45
Bibliografia 46
[13] Technological Systems. Sito dell’sbc ts7800. http://www.embeddedarm.com.
[14] Upek. Descrizione delle api dello scanner. http://www.upek.com/partner/upek_
partner_program.asp.
[15] Upek. Sito del produttore dello scanner. http://www.upek.com.
[16] Wikipedia. Discrete cosine transform — wikipedia, the free encyclopedia. http://en.
wikipedia.org/w/index.php?title=Discrete_cosine_transform&oldid=431189187.
[17] Wikipedia. Impronta vocale — wikipedia, l’enciclopedia libera. http://it.wikipedia.
org/w/index.php?title=Impronta_vocale&oldid=36341630.