Fusione di impronta digitale e impronta vocale per il controllo accessi

55
UNIVERSIT ` A DEGLI STUDI DI TRIESTE Facolt` a di Ingegneria Corso di Laurea in Ingegneria dell’Informazione Tesi Di Laurea Fusione di impronta digitale e impronta vocale per il controllo accessi Laureando Pietro Corona Matricola 83600039 Relatore Prof. Enzo Mumolo Anno Accademico 2010/2011

Transcript of Fusione di impronta digitale e impronta vocale per il controllo accessi

Page 1: Fusione di impronta digitale e impronta vocale per il controllo accessi

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

Page 2: Fusione di impronta digitale e impronta vocale per il controllo accessi

Ai miei genitori e a Greta

Page 3: Fusione di impronta digitale e impronta vocale per il controllo accessi

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

Page 4: Fusione di impronta digitale e impronta vocale per il controllo accessi

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

Page 5: Fusione di impronta digitale e impronta vocale per il controllo accessi

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.

Page 6: Fusione di impronta digitale e impronta vocale per il controllo accessi

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

Page 7: Fusione di impronta digitale e impronta vocale per il controllo accessi

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

Page 8: Fusione di impronta digitale e impronta vocale per il controllo accessi

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

Page 9: Fusione di impronta digitale e impronta vocale per il controllo accessi

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

Page 10: Fusione di impronta digitale e impronta vocale per il controllo accessi

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

Page 11: Fusione di impronta digitale e impronta vocale per il controllo accessi

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.

Page 12: Fusione di impronta digitale e impronta vocale per il controllo accessi

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).

Page 13: Fusione di impronta digitale e impronta vocale per il controllo accessi

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.

Page 14: Fusione di impronta digitale e impronta vocale per il controllo accessi

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

Page 15: Fusione di impronta digitale e impronta vocale per il controllo accessi

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.

Page 16: Fusione di impronta digitale e impronta vocale per il controllo accessi

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

Page 17: Fusione di impronta digitale e impronta vocale per il controllo accessi

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.

Page 18: Fusione di impronta digitale e impronta vocale per il controllo accessi

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

Page 19: Fusione di impronta digitale e impronta vocale per il controllo accessi

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

Page 20: Fusione di impronta digitale e impronta vocale per il controllo accessi

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.

Page 21: Fusione di impronta digitale e impronta vocale per il controllo accessi

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

Page 22: Fusione di impronta digitale e impronta vocale per il controllo accessi

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

Page 23: Fusione di impronta digitale e impronta vocale per il controllo accessi

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-

Page 24: Fusione di impronta digitale e impronta vocale per il controllo accessi

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-

Page 25: Fusione di impronta digitale e impronta vocale per il controllo accessi

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,

Page 26: Fusione di impronta digitale e impronta vocale per il controllo accessi

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.

Page 27: Fusione di impronta digitale e impronta vocale per il controllo accessi

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:

Page 28: Fusione di impronta digitale e impronta vocale per il controllo accessi

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

Page 29: Fusione di impronta digitale e impronta vocale per il controllo accessi

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.

Page 30: Fusione di impronta digitale e impronta vocale per il controllo accessi

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

Page 31: Fusione di impronta digitale e impronta vocale per il controllo accessi

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

Page 32: Fusione di impronta digitale e impronta vocale per il controllo accessi

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.

Page 33: Fusione di impronta digitale e impronta vocale per il controllo accessi

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

Page 34: Fusione di impronta digitale e impronta vocale per il controllo accessi

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.

Page 35: Fusione di impronta digitale e impronta vocale per il controllo accessi

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

Page 36: Fusione di impronta digitale e impronta vocale per il controllo accessi

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-

Page 37: Fusione di impronta digitale e impronta vocale per il controllo accessi

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.

Page 38: Fusione di impronta digitale e impronta vocale per il controllo accessi

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

Page 39: Fusione di impronta digitale e impronta vocale per il controllo accessi

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).

Page 40: Fusione di impronta digitale e impronta vocale per il controllo accessi

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.

Page 41: Fusione di impronta digitale e impronta vocale per il controllo accessi

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).

Page 42: Fusione di impronta digitale e impronta vocale per il controllo accessi

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

Page 43: Fusione di impronta digitale e impronta vocale per il controllo accessi

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.

Page 44: Fusione di impronta digitale e impronta vocale per il controllo accessi

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.

Page 45: Fusione di impronta digitale e impronta vocale per il controllo accessi

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.

Page 46: Fusione di impronta digitale e impronta vocale per il controllo accessi

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).

Page 47: Fusione di impronta digitale e impronta vocale per il controllo accessi

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

Page 48: Fusione di impronta digitale e impronta vocale per il controllo accessi

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

Page 49: Fusione di impronta digitale e impronta vocale per il controllo accessi

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

Page 50: Fusione di impronta digitale e impronta vocale per il controllo accessi

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

Page 51: Fusione di impronta digitale e impronta vocale per il controllo accessi

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:

Page 52: Fusione di impronta digitale e impronta vocale per il controllo accessi

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.

Page 53: Fusione di impronta digitale e impronta vocale per il controllo accessi

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

Page 54: Fusione di impronta digitale e impronta vocale per il controllo accessi

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

Page 55: Fusione di impronta digitale e impronta vocale per il controllo accessi

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.