Fusione di impronta digitale e impronta vocale per il controllo accessi
Upcoming SlideShare
Loading in...5
×
 

Like this? Share it with your network

Share

Fusione di impronta digitale e impronta vocale per il controllo accessi

on

  • 1,577 views

 

Statistics

Views

Total Views
1,577
Views on SlideShare
1,576
Embed Views
1

Actions

Likes
0
Downloads
16
Comments
0

1 Embed 1

http://www.slideshare.net 1

Accessibility

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

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

  • 1. ` UNIVERSITA DEGLI STUDI DI TRIESTE Facolt` di Ingegneria a Corso di Laurea in Ingegneria dell’Informazione Tesi Di LaureaFusione di impronta digitale e impronta vocale per il controllo accessi Laureando Pietro Corona Matricola 83600039 Relatore Prof. Enzo Mumolo Anno Accademico 2010/2011
  • 2. Ai miei genitori e a Greta
  • 3. Ringraziamenti • La mia gratitudine va al prof. Mumolo per il suo preziosissimo aiuto e per la sua infinita disponibilit`. a • 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
  • 4. IntroduzioneIn questa tesi si ` affrontato il problema della biometria multimodale. Le informazioni biomet- eriche sono informazioni di origine biologica che appartengono solo ad una persona e non sonocondivise da altri. Potremmo dire che praticamente quasi tutte le caratteristiche biologiche diuna persona che si riescono a misurare con la tecniche disponibili attualmente caratterizzanounicamente quella persona. Partendo dal DNA, l’iride, il volto, la pelle o la voce di una per-sona sono alcune delle caratteristiche tipiche della identit` di ogni persona e che, se acquisite e aconfrontate, possono essere utilizzate per distinguere le persone stesse. Questa distinzione pu` oessere utilizzata sia per identificare che per verificare l’identit` di una persona. La differenza tra aidentificazione e verifica sta nel fatto che nel primo caso il sistema riconosce a chi appartienequella biometria (tra un insieme di biometrie note) e nel secondo il sistema accerta o menoche una persona sia chi dichiara di essere, confrontando l’impronta biometrica precedentementeacquisita con quella prodotta in quel preciso istante. La biometria multimodale integra pi` uinformazioni biometriche usando un sistema di fusione dei dati. Compensando le inevitabililacune e imprecisioni di una biometria con le altre biometrie utilizzate, ci si aspetta che unabuona integrazione migliori i risultati globali. Tralasciando le ovvie considerazioni legate alla maggiore o minore invasivit` dell’acqusizione adelle informazioni biometriche, e al fatto che generalmente si vuole minimizzare il tasso di falsipositivi, cio` la percentuale di volte che il sistema accetta impostori, osserviamo solo che vi sono emoltissimi casi in cui ` necessario verificare l’identit` di una persona, tipicamente per l’accesso e aa risorse che non si vogliono condividere con altre persone. Ovviamente l’accesso pu` essere orichiesto ad una informazione logica, ad un sistema hardware o ad un luogo protetto, che non sivuole cio` sia vistato da altri. Un sistema di verifica multibiometrica ha uno o pi` ingressi legati e ualle diverse biometrie considerate, ed una risposta binaria: accetto/rifiuto l’identit` conclamata. a Le biometrie considerate in questa tesi sono quelle della voce e dell’impronta vocale. Labiometria vocale ` trattata in un’altra tesi [10]. In questa tesi ci si ` occupati invece della e ebiometria dell’impronta digitale. Per l’acquisizione dell’impronta digitale ` stato necessario eutilizzare un sensore specifico e risolvere i problemi della acquisizione del segnale. Acquisito iv
  • 5. INTRODUZIONE vil segnale ` stato poi necessario mettere a punto un programma per confrontare le impronte eacquisite. Per semplicit` ` stato modificato un programma pre-esistente basato sull’algoritmo aeEHMM. Tutte queste queste operazioni sono state fatte preliminarmente in ambiente PC per unmigliore controllo dei programmi sviluppati. Un ulteriore obiettivo che ci siamo posti in questatesi ` di utilizzare un processore tipico dei sistemi embedded, cio` l’ARM 9, che ` un processore e e eche 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 ` quindi il seguente: e • 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 ` organizzata come segue: e nel Capitolo 1 si parla della biometria multimodale, delle prestazioni attese e delle possibilistrategie di fusione. Nel Capitolo 2 si descrive il sensore utilizzato e il sistema basato sulprocessore ARM usato per l’implementazione in tempo reale. Nel Capitolo 3 si discute dellabiometria delle impronte digitali descrivendo il relativo algoritmo di confronto. Il Capitolo 4presenta un breve riassunto delle caratteristiche principali della biometria basata sulle improntevocali. Nel Capitolo 5 viene descritto l’algoritmo di fusione per integrare i dati provenienti dalledue 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 nelCapitolo Conclusioni e sviluppi futuri si riportano alcune considerazioni conlusive della tesiindicando possibili lavori futuri.
  • 6. IndiceIntroduzione ivIndice viElenco delle figure ix1 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 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62 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 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113 Biometria delle impronte digitali 12 vi
  • 7. 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 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194 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 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 235 Algoritmo di fusione sensoriale 246 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 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 327 Implementazione in ambiente ARM 33 7.1 Introduzione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
  • 8. 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 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 378 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 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42Conclusioni e sviluppi futuri 44Bibliografia 45
  • 9. Elenco delle figure1.1 Principali architetture. (a) Parallela. (b) In cascata (c) Gerarchica . . . . . . . . . . 31.2 Livelli di fusione in architetture parallele. (a) Livello di features. (b) Livello di confidenza o rank (c) Livello astratto . . . . . . . . . . . . . . . . . . . . . . . . . . . 41.3 Tecniche pi` diffuse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . u 52.1 Fingerprint Scanner Upek TCEEA4. (a) Davanti. (b) Dietro. . . . . . . . . . . . . . 82.2 Cavetto di collegamento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92.3 MiaKey . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92.4 TS7800 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103.1 Esempio di fingerprint . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133.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 . . 153.3 Features a livello locale (pallini neri) e molto fine (cerchietti vuoti) . . . . . . . . . . 163.4 Addestramento modello HMM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173.5 Processo di enrollment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183.6 Processo di identificazione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193.7 Processo di verifica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 206.1 Schema a blocchi programma di enroll . . . . . . . . . . . . . . . . . . . . . . . . . . 296.2 Schema a blocchi programma di verifica . . . . . . . . . . . . . . . . . . . . . . . . . 298.1 Calcolo EER nel caso dell’identificazione con ritaglio dell’immagine . . . . . . . . . . 408.2 Prestazioni algoritmo identificazione ottenute con parametri diversi. (1) 4 4 4 4 4 4 1. (2) 12 32 3 3 12 32 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 418.3 Calcolo EER nel caso della verifica con ritaglio dell’immagine . . . . . . . . . . . . . 418.4 Prestazioni algoritmo verifica ottenute con parametri diversi. . . . . . . . . . . . . . 428.5 Prestazioni dei singoli sistemi e del sistema biometrico multimodale ottenuto . . . . 43 ix
  • 10. Capitolo 1La biometria multimodale1.1 IntroduzioneUn identificatore biometrico ` un particolare tipo di misura biometrica. Una istanza ` una e esingola misurazione di un identificatore. Un sistema biometrico ` un sistema (nel nostro ecaso di sicurezza) il cui funzionamento ` basato su uno o pi` identificatori biometrici. I sistemi e ubiometrici possono essere classificati nelle seguenti categorie [8]: • unibiometrici: utilizzano solo un singolo identificatore biometrico (e.g. una o pi` u immagini della stessa fingerprint) • unimodali: sono un sottoinsieme dei precedenti. Utilizzano una singola istanza dell‘identificatore. • multibiometrici: usano pi` di un identificatore biometrico di uno stesso individuo (e.g. u fingerprint e voce, fingerprint di due dita diverse) • multimodali: sono una generalizzazione dei precedenti. Utilizzano pi` di una istanza u per ogni identificatore.In questo capitolo parleremo di sistemi biometrici multimodali Nelle applicazioni cherichiedono un alto livello di sicurezza spesso i sistemi basati sulla biometria unimodale nongarantiscono le performance richieste a causa della limitatezza delle informazioni contenute nelsingolo identificatore. Questo problema potrebbe essere risolto affiancando la biometria contecniche di autenticazione tradizionali basate sulla conoscenza di un segreto o al possesso di unoggetto (password, smart card). Tuttavia si ripresentano i soliti problemi legati a questi metodiovvero la possibilit` che il segreto o l’oggetto vengano rubati,indovinati,persi. La soluzione aa questi problemi sono i sistemi biometrici multimodali. Essi infatti sono difficili da eludere.Presentano tuttavia alcuni svantaggi: essi generalmente sono pi` costosi da implementare (sia u 1
  • 11. CAPITOLO 1. LA BIOMETRIA MULTIMODALE 2economicamente sia come tempo di calcolo), l’utente perde pi` tempo nelle fasi di enroll e uverifica e inoltre se la fusione tra i vari identificatori non ` eseguita correttamente provoca un edegrado dell’accuratezza.1.2 Prestazioni di un sistema biometrico multimodaleLa verifica e l’identificazione sono tipici problemi di classificazione. Nel caso della verifical’utente dichiara la propria identit` e il sistema deve verificare la verit` della sua affermazione. a aGli algoritmi di verifica devono classificare l’identificatore biometrico fornito in input in dueclassi: modello del soggetto corrispondente all’identit` dichiarata, modello del mondo. Nel caso adell’identificazione abbiamo N+1 classi (soggetto 1, ...,soggetto N,sconosciuto). Diversi metodidi classificazione (detti anche classificatori),anche dello stesso identificatore biometrico, ancheavendo la medesima accuratezza, spesso commettono errori classificando diversi identificatori(e.g. pronte digitali di soggetti diversi). Questo ci suggerisce che, combinando insieme dueo pi` metodi di classificazione, possiamo ottenere risultati migliori di quelli ottenuti con il usingolo 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 identificatoribiometrici 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 pi` identificatori biometrici si risolvono alcuni problemi legati all’universalit` u a degli stessi (e.g. scarsa qualit` delle creste nelle impronte digitali) a 7. sistemi basati su diversi identificatori biometrici sono pi` difficili da eludere. uIn conclusione possiamo affermare che le prestazioni di un sistema biometrico multimodalepossono risultare superiori ad un sistema unimodale.
  • 12. CAPITOLO 1. LA BIOMETRIA MULTIMODALE 3 Figura 1.1: Principali architetture. (a) Parallela. (b) In cascata (c) Gerarchica1.3 Strategie di fusioneEsistono 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’algoritmodi fusione e del modo di addestramento del sistema.1.3.1 ArchitetturaLe 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 vengonocombinati 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 passoil numero di classi per il confronto viene progressivamente ridotto. Nello schema gerarchico iclassificatori vengono combinati in una struttura ad albero. Tipicamente i primi classificatorisono poco accurati (ed economici) in quanto devono solamente individuare un certo numero diclassi possibili, mentre i successivi sono via via pi` accurati (e costosi). u
  • 13. CAPITOLO 1. LA BIOMETRIA MULTIMODALE 4Figura 1.2: Livelli di fusione in architetture parallele. (a) Livello di features. (b) Livello diconfidenza o rank (c) Livello astratto1.3.2 Livello di fusione nelle architetture paralleleFocalizziamo l’attenzione sull’architettura parallela, quella oggi pi` usata oggi, ed in particolare usulla collocazione del modulo di fusione. Differenti strategie di combinazione richiedono diversitipi di dati presi da ogni classificatore del sistema. Questi dati possono essere divisi nelleseguenti categorie: features o misure, valori di confidenza,rank o score, valori astrattiFig. 1.2. Al livello delle features, le features estratte dalle diverse modalit` sono combinate insieme. aIl nuovo spazio delle features ` pi` grande e sperabilmente ` pi` discriminativo. Schemi di e u e uintegrazione come questo vengono detti anche tightly coupled. Al livello di confidenza, rank oscore ogni classificatore indica per ogni classe un valore che stima la probabilit` che il mod- aello in ingresso vi appartenga. Al livello astratto il classificatore fornisce una o pi` etichette u(e.g. accettato, non accettato). I sistemi che si basano sui due metodi precedenti si diconoa integrazione loosely coupled. I risultati migliori si ottengono combinando i risultati primapossibile [8]. Tuttavia risulta pi` difficoltoso combinare i dati a livello di features in quanto ule relazioni tra gli spazi delle features dei diversi classificatori potrebbero non essere note e lerappresentazioni delle features potrebbero non essere compatibili.
  • 14. CAPITOLO 1. LA BIOMETRIA MULTIMODALE 5 Figura 1.3: Tecniche pi` diffuse u1.3.3 Algoritmo di fusioneUna algoritmo di fusione rappresenta la tecnica usata per combinare l’output di pi` classificatori. uLe tecniche pi` diffuse nei differenti livelli sono riportate in figura 1.3. u Nelle tecniche a livello di valori di confidenza bisogna tenere conto di possibili differenze neivalori 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 pu` dire a priori quale osia la strategia migliore. La scelta viene effettuata in base a degli esperimenti fatti su un datocampione. La strategia che offre una migliore accuratezza viene scelta.1.3.4 Modo di addestramentoAlcuni algoritmi sono statici cio` una volta fissati i parametri trattano tutti gli input allo stesso emodo. Non richiedono nessun tipo di addestramento. Altri metodi invece richiedono di essere
  • 15. CAPITOLO 1. LA BIOMETRIA MULTIMODALE 6addestrati 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 ogniclassificatore in base all’input, basandosi sulla conoscenza delle condizioni ambientali.1.4 Quali informazioni integrareAdesso che sappiamo come effetture la fusione dei risultati dei classificatori concentriamocisu quali informazioni combinare per migliorare le performance del nostro sistema. I sistemibiometrici 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. unit` multiple della stessa biometria: fingerprint di pi` dita di una stessa persona a u 4. misure multiple della stessa biometria: pi` immagini della stessa fingerprint u 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’aumentodell’accuratezza minore rispetto agli scenari 2 e 3 ma anche ad un vantaggio in termini di costo.Nella tesi si ` scelto di integrare riconoscimento di impronta digitale e di impronta vocale. e1.5 Modulo di sceltaIl modulo di scelta ` un componente che, avendo in input lo score fornito dal classificatore o edal modulo di fusione, opera la seguente scelta: se il punteggio (score) ` superiore ad una certa esoglia, considera corretto il risultato della verifica e quindi autorizza il soggetto, altrimentila verifica ha avuto esito negativo e il soggetto non ` autorizzato. La soglia, di solito, viene efissata sperimentalmente. Variandone il valore si possono calcolare, per un dato campione, ifalsi positivi e i falsi negativi. Il valore che minimizza entrambi non ` sempre la scelta pi` e uopportuna. Bisogna infatti valutare se l’applicazione richiede pochi falsi positivi o pochi falsinegativi. Per una descrizione pi` accurata di questi indicatori vedere 8.3. u
  • 16. Capitolo 2Strumenti utilizzati2.1 IntroduzioneIn questo capitolo vengono descritti gli strumenti e le apparecchiature usate per la realizzazionedel lavoro. Uno degli obiettivi del lavoro (vedi introduzione ) ` quello di implementare su un esingle board computer (sbc) ARM un algoritmo di fingerprint verification che permetta l’auten-ticazione dei soggetti autorizzati. Per realizzare questo obiettivo abbiamo scelto di sviluppareil lavoro su di una scheda TS7800 della Technological Systems [13] collegato ad uno scanner diimpronte digitali TCEEA4 della Upek [15]. Inoltre per la verifica viene utilizzato, come basedi partenza, un programma gi` esistente, chiamato hmmface, opportunamente modificato a(vedere6.3.1).2.2 Fingerprint scannerEsistono generalmente due categorie di scanner: touch e sweep. Negli scanner touch l’utenteappoggia il dito su una superfice trasparente e il sensore si muove per ottenere l’immaginecompleta. Hanno il vantaggio di essere molto semplici da usare. Tuttavia presentano il problemadelle impronte latenti che restano impresse sulla superfice di appoggio. A lungo andare portanoad un degrado della qualit` dell’immagine acqusita. Negli scanner sweep l’utente striscia il adito contro il sensore. Questo permette di risolvere i problemi di pulizia che presentano gliscanner touch ma al tempo stesso sono pi` difficili da utilizzare. L’utente deve avere cura di ustrisciare il dito centrandolo sul sensore, facendolo scorrere con velocit` il pi´ possibile costante a ue mantenendo sempre una pressione sufficiente. Abbiamo scelto uno scanner sweep perch` eappunto fornisce una qualit` maggiore. a 7
  • 17. CAPITOLO 2. STRUMENTI UTILIZZATI 8 (a) (b) Figura 2.1: Fingerprint Scanner Upek TCEEA4. (a) Davanti. (b) Dietro.2.2.1 Caratteristiche tecnichePer maggiori informazioni si veda [1]. Riportiamo le caratteristiche dello scanner per noi pi` urilevanti: • 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 pu` vedere lo scanner. o2.2.2 CollegamentoSullo scanner ` presente un connettore Molex (2.54mm) (del tipo in figura 2.1 b) per un cavo epiatto a 4 pin mostrato in figura 2.2. Per collegare lo scanner all’host (PC o sbc) via USBabbiamo sfruttato il connettore Molex (2.54 mm) presente su una chiavetta usb MiaKey dellaSATA 2.3 che funge da semplice hub senza funzioni aggiuntive. Un altro modo per collegare loscanner ad un cavo USB sarebbe stato quello di crearsi un cavo USB ad-hoc tuttavia la primasoluzione ` apparsa pi` semplice visto la disponibilit` immediata dei componenti. e u a
  • 18. CAPITOLO 2. STRUMENTI UTILIZZATI 9 Figura 2.2: Cavetto di collegamento Figura 2.3: MiaKey2.2.3 InterfacciamentoNon utilizziamo nessun device driver per gestire lo scanner: per Linux esistono delle API basatesulla libusb0.1. Sono a disposizione due diverse API per l’interfacciamento tra lo scanner e iprogrammi utente: le BSAPI e le PTAPI. Le prime rendono disponibili funzioni ad alto livelloper` sono disponibili solo per ambiente PC mentre le seconde hanno un’interfaccia pi` primitiva o uma si possono compilare in ambiente ARM[14]. Entrambe le librerie sono fornite con la relativadocumentazione.2.3 SBC TS7800La scheda TS7800 2.4` un single board computer della Technological Systems. Per informazioni edettagliate vedere [11]. Qui riassumiamo le principali caratteristiche: • 500Mhz ARM9 CPU • Internal PCI bus, PC/104 connector
  • 19. 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 ` accessibile tramite la porta seriale oppure tramite telnet all’indirizzo 192.168.0.50. E epossibile caricare i file nel dispositivo tramite ftp sempre allo stesso indirizzo.2.3.1 ConfigurazionePer 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 (aquesto proposito sono state seguite le istruzioni sul sito[12]). A questo punto (utilizzando un pc
  • 20. CAPITOLO 2. STRUMENTI UTILIZZATI 11come router) abbiamo aggiornato il sistema con i pacchetti pi` recenti e installato il pacchetto ulibusb0.1 necessario per utilizzare le API di Upek.2.4 Software riconoscimento facciale hmmfaceIl programma hmmface ` scritto per Windows. Vengono sfruttate le funzioni implementate edalla 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 quantoriguarda l’estrazione della DCT e l’addestramento dei parametri dei modelli HMM.2.4.1 FunzionamentoIl programma si presenta come un unico eseguibile che pu` essere lanciato in varie modalit`: o aaddestramento, 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 pathdi queste directory ` specificato all’interno del codice. Nel database di esempio di ogni soggetto esono presenti 30 immagini. In modalit` addestramento il programma inizia facendo un check adelle 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 checontiene i nomi dei file trovati in ciascuna directory. In seguito per ogni directory trovata creaun file <nome directory>.ehmm (che conterr` il modello) e un file face.db con un indice dei file aprecedentemente creati, il tutto in un percorso specificato sempre nel codice. A questo punto lafase di addestramento vero e proprio modifica i file .ehmm creati in precedenza scrivendovi i datirelativi al modello HMM creato mediante le funzioni della cvaux. In modalit` identificazione ada file il programma estrae i coefficenti DCT dall’immagine data in input e, tramite l’algoritmodi Viterbi, restituisce il nome del modello pi´ probabile e tutte le probabilit` di somiglianza a u aciascun modello. La modalit` di riconoscimento da webcam non ` stata mai utilizzata. a e
  • 21. Capitolo 3Biometria delle impronte digitali3.1 IntroduzioneIn questo capitolo vengono esposte le principali caratteristiche biometriche relative alle im-pronte digitali. Tutto il materiale ` tratto da [8]. Una impronta digitale 3.1 (pi` brevemente e ufingerprint) ` un’impronta lasciata dai dermatoglifi dell’ultima falange delle dita delle mani. Un edermatoglifo ` il risultato dell’alternarsi di creste e valli. Dermatoglifi sono presenti sulle palme edelle mani, sulle piante dei piedi e sui polpastrelli delle dita. Le creste variano in ampiezza da100 ai 300 micron, mentre il periodo cresta-valli corrisponde all’incirca a 500 micron. Esse sonoutilizzate 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 biometricoEsistono delle caratteristiche generali comuni a tutte le grandezze biometriche (dette ancheidentificatori biometrici) misurabili: • Universalit`: grado di diffusione della grandezza biometrica nella popolazione. Le im- a pronte digitali hanno un grado di diffusione abbastanza buono. Alcuni individui (e.g mutilazioni o malformazioni) ne sono sprovvisti. • Individualit`: a due persone diverse corrispondono misure diverse della stessa grandezza. a L’unicit` di un’impronta digitale ` un’ipotesi di lavoro che in senso matematico ` difficile, a e e se non impossibile, da provare. La dimostrazione opposta ` sicuramente pi` facile da e u ottenere in teoria, trovando nella pratica due impronte identiche di due dita diverse. • Persistenza: la misura effettuata sulla stessa persona in tempi diversi ` la stessa. Le e fingerprint si formano definitivamente nel feto al settimo mese di gravidanza e non cam- 12
  • 22. 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. • Misurabilit`: quanto facilmente possiamo dare una misura quantitativa della carat- a teristica biometrica. Nel nostro caso questo ` mediamente facile. Le difficolt` stanno e a nell’estrazione delle features. • Performance: accuratezza,velocit`,robustezza, costo di un generico sistema biometrico a 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 velocit` e la robustezza dipendono dagli a algoritmi di verifica. • Accettabilit`: quanto le tecnologie basate sulla grandezza in esame sono accettate dalla a popolazione. Spesso nell’immaginario collettivo le fingerprint sono associate a scene del crimine e indagini della polizia. Non ` facile trovare volontari per la raccolta di impronte e digitali a scopi scientifici! • Facilit` di elusione: quanto ` facile modificare la grandezza biometrica in modo fraudo- a e lento. Modificare le fingerprint chirurgicamente ` quasi impossibile:un medico riconoscerebbe e
  • 23. CAPITOLO 3. BIOMETRIA DELLE IMPRONTE DIGITALI 14 a occhio nudo che la cresta originaria ` stata sostituita da una cicatrice. Bisogna tener e presente che esistono altri metodi per eludere i sistemi basati sulle fingerprint.3.3 AcquisizioneLe fingerprint vengono rilevate tramite immagini. Oggi le immagini vengono elaborate inmaniera digitale. Un immagine (digitale) di fingerprint pu` essere ottenuta tramite scansione oon-line o off-line. Una scansione off-line ` ottenuta tipicamente digitalizzando un foglio di carta edove la fingerprint ` stata impressa precedentemente con l’uso di inchiostro. Un particolare etipo 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. Unascansione on-line si basa su un metodo (ottico,capacitivo,termico,ultrasuoni ecc...) per rilevaredirettamente le creste e le valli che costituiscono la fingerprint. Archiviare le immagini digitali grezze di fingerprint pu` essere problematico. Si stima in- ofatti che per memorizzare l’archivio di fingerprint dell’FBI (cartaceo), che contiene 200 milionidi cartelle, siano necessari circa 2000 terabyte. Sfortunatamente le tecniche di compressionetradizionali non sono soddisfacenti. Una nuova tecnica di compressione chiamata Wavelet ScalarQuantization (WSQ) viene attualmente usata dall’FBI.3.4 Rappresentazione ed estrazione delle featuresUna buona rappresentazione delle fingerprint deve avere due caratteristiche: deve essere salientee opportuna. Saliente significa che la rappresentazione deve contenere le informazioni discrim-inatorie della fingerprint. Opportuna significa che la rappresentazione deve poter essere estrattafacilmente, memorizzata in modo compatto e utile per i confronti. Le rappresentazioni basate suimmagini sono prevalenti in sistemi basati su confronti ottici e sulla correlazione delle immagini.Questi sistemi soffrono di problemi causati dalla variazione di luminosit`, qualit` dell’immagine a ae distorsioni globali nell’immagine. Inoltre richiedono un considerevole spazio di archiviazione.D’altro canto preservano la massima quantit` di informazioni, hanno poche ipotesi alla base del aloro funzionamento e sono robuste per una grande variet` di immagini. La fingerprint analizzata aa diversi livelli mostra diversi tipo di features: • a livello globale, le creste delineano modelli simili a quelli riportati in figura 3.2. Le singolarit`, chiamate anello e cuspide (rappresentati nella figura 3.2 con quadrati e trian- a 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-
  • 24. CAPITOLO 3. BIOMETRIA DELLE IMPRONTE DIGITALI 15Figura 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 ualit` non ` sufficiente per un confronto accurato. Altre features rilevabili a questo livello a e 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 qualit` con cui vengono acquisite le immagini. Le due pi` importati a u caratteristiche osservabili,chiamate minuzie, sono: le terminazioni e le biforcazioni delle creste. Vedere fig. 3.3.Una terminazione ` definita come il punto in cui la cresta e termina improvvisamente. Una biforcazione ` definita come il punto in cui la cresta si e divide in pi` rami. Le minuzie in genere sono indicatori robusti e stabili rispetto alle u 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 qualit` elevata delle immagini non sempre a adatta per le applicazioni pratiche. Vedi figura 3.3.3.5 Confronto di fingerprintIl problema del confronto delle immagini di fingerprint ` un problema difficile da risolvere.Tale edifficolt` ` principalmente dovuta alla grande variabilit` della stessa impronta nelle diverse a e aimmagini. I fattori che causano tale variabilit` sono: spostamenti, rotazioni, sovrapposizioni aparziali, distorsioni non lineari, pressione variabile, cambiamento di condizioni della pelle, ru-
  • 25. 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, improntedella stessa persona possono sembrare diverse mentre impronte di persone diverse possonoassomigliarsi. 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 identiciNella 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 ` calcolata per diversi allinamenti (traslazioni,rotazioni) e • 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 ` difficoltosa in e presenza di immagini di bassa qualit` mentre i modelli delle creste (orientamento locale, a
  • 26. CAPITOLO 3. BIOMETRIA DELLE IMPRONTE DIGITALI 17 Figura 3.4: Addestramento modello HMM frequenza, forma, struttura) possono venire estratti in modo pi` affidabile, sebbene la u discriminazione che portano ` minore. e3.6 L’algoritmo propostoDescriviamo ora l’algoritmo usato nella tesi per il confronto delle impronte digitali. Il nostroalgoritmo si basa (vedere 3.5 sulla correlazione delle immagini di fingerprint. In breve l’algoritmousa i coefficenti della trasformata discreta in coseno bidimensionale delle immagini difingerprint per ricavare i parametri di una catena di Markov nascosta (HMM hidden Markovmodel). Questi parametri vengono salvati in un database (vedere fig. 3.4). La fase di confrontoconsiste nel ricavare i coefficenti della dct dall’immagine in input e valutare quale dei modellidisponibili produrrebbe una sequenza di uscite (appunto i coefficenti della dct) simile a quelladi input. Tale metodo ` stato proposto in precedenza da Guo H. [7]. Il modo in cui una persona estriscia il dito sullo scanner (anche in modo non corretto) pu` essere un elemento nella sua oidentificazione in quanto esso si mantiene pi` o meno costante. Pertanto non sar` applicato u anessun pre-processing alle immagini utilizzate.3.6.1 Trasformata discreta in cosenoLa trasformata discreta del coseno o DCT (dall’inglese Discrete Cosine Transform), ` la pi` e udiffusa 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 fingerprintviene divisa in blocchi. Dimensione e distanza tra i vari blocchi sono parametri dell’algoritmo.
  • 27. CAPITOLO 3. BIOMETRIA DELLE IMPRONTE DIGITALI 18 Figura 3.5: Processo di enrollmentDi ogni blocco viene calcolata la DCT bidimensionale estraendo solo un certo numero (dato ininput) di coefficenti.3.6.2 Hidden Markov ModelI coefficenti estratti dalla fingerprint sono visti come l’output di un processo nascosto di Markov.Un Modello di Markov nascosto (Hidden Markov Model - HMM) ` una catena di Markov i cui estati non sono osservabili direttamente. Pi` precisamente: u • 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 probabilit` che dipende solo a dallo stato • l’evento ` osservabile ma lo stato no eNon siamo a conoscenza del numero reale di stati. Possiamo dunque scegliere un numeroragionevole di stati in modo da garantire una sufficente quantit` di parametri che ricaveremo. aData una o pi` sequenze di uscita (avendo a disposizione pi` immagini di una stessa impronta), u usi pu` trovare l’insieme pi` probabile per il quale si possano dichiarare le probabilit` dell’uscita o u ae di transizione. Questo significa addestrare i parametri dell’HMM dato mediante il gruppodei dati relativi alle sequenze. Questo problema ` risolto dall’algoritmo di Baum-Welch.Per eapprofondimenti vedere [4]3.6.3 EnrollmentIn generale con enrollment si intende la fase di cattura delle fingerprint ed estrazione dellefeatures. Per chiarezza vedere la figura 3.5 A questo punto:
  • 28. 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 ognipersona utilizzando, per una stima pi` accurata dei parametri, un certo numero di immagini udella stessa fingerprint. In questa fase ` molto importante la scelta dei parametri dell’algoritmo e(dimensione del blocchi ecc...) in quanto i risultati variano moltissimo in base a questi. Questafase ` a tutti gli effetti una estrazione di features. I modelli cos` ottenuti sono memorizzati in e ı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 IdentificationData un’immagine di fingerprint in input, i modelli ottenuti dall’algoritmo di enrollment possonoessere usati per l’identificazione della persona oppure, data una fingerprint e un nome, perverificare se la persona ` veramente chi dice di essere. Il nostro algoritmo pu` fare entrambe le e ocose. La fase di identificazione (vedi figura 3.6) consiste nel ricavare la sequenza di coefficentie applicare l’algoritmo di Viterbi sull’insieme dei modelli per identificare quello pi` probabile ue con quale probabilit`. Questo metodo fornisce sempre una risposta ovvero viene comunque a `identificato un soggetto dell’insieme dei modelli creati durante l’enrollment. E necessario dunquecreare un metodo per decidere se il soggetto non ` nessuno di quelli in archivio. e3.6.5 VerificationLa fase di verifica (vedi figura 3.7) si basa sullo stesso principio dell’ identificazione. Risultanecessario 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
  • 29. CAPITOLO 3. BIOMETRIA DELLE IMPRONTE DIGITALI 20 Figura 3.7: Processo di verificaessenziale 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 confrontarel’immagine in input con un modello di impronta generico (detto modello del mondo) e conil modello corrispondente alla persona dichiarata. Se l’immagine non appartiene al soggettodescritto dal modello con buona probabilit` essa verr` riconosciuta come modello generico. Un a asecondo metodo consiste nel fissare un valore limite (detto soglia) alla probabilit` data. Se ail risultato ` inferiore, allora la verifica ` negativa, altrimenti ` positiva. Nel nostro algorit- e e emo combiniamo le due tecniche, cio` facciamo il rapporto tra le due probabilit´ e a questo e aapplichiamo una soglia.
  • 30. Capitolo 4Biometria delle impronte vocali4.1 IntroduzioneIl riconoscimento vocale ` considerato un ibrido tra biometria fisiologica e comportamentale in equanto quanto l’emissione ` determinata sia dalla conformazione della gola e delle corde vocali, esia da aspetti psicologici e umorali dell’utente (molto variabili nel tempo).4.2 L’impronta vocale dal punto di vista biometricoL’impronta vocale ` l’insieme delle caratteristiche della voce di un individuo che ne permetteno el’identificazione. Sebbene non vi sia accordo su quale possa essere un insieme esaustivo di talicaratteristiche, sono note alcune misurazioni in grado di caratterizzare ragionevolmente singoliindividui in gruppi sufficientemente limitati di individui (qualche centinaio). Queste misurazionivengono spesso utilizzate come misure biometriche per realizzare sistemi di verifica.[17] • Universalit`: l’impronta vocale ` presente nella quasi totalit` degli individui fatta a e a eccezzione per alcuni casi di disabilit`. a • Individualit`: due persone diverse potrebbero avere voci simili. a • 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’et` dello sviluppo o quando si contrae l’influenza. a • Misurabilit`: l’impronta vocale ` facilmente catturabile attraverso un comune micro- a e fono. La difficolt` consiste nell’estrazione delle features. a • Performance: lunghi tempi di enrollment e dimensioni del template elevate rendono difficoltosa l’acquisizione di grandi campioni, inoltre rumori di fondo possono alterare 21
  • 31. CAPITOLO 4. BIOMETRIA DELLE IMPRONTE VOCALI 22 l’acquisizione. Il software di riconoscimento ` il costo principale del sistema mentre i e costi dei microfoni sono irrisori (poche decine di euro) e aumentano solo per dispositivi professionali molto accurati. • Accettabilit`: i sistemi basati su riconoscimento vocale sono, in genere, pi` tollerati a u dalla popolazione rispetto a sistemi basati su altre biometrie (e.g fingerprint). • Facilit` di elusione: tutto sommato i sistemi basati su riconoscimento vocale sono a facili da eludere: basta procurarsi una registrazione della voce del soggetto che si vuole impersonare.4.3 AcquisizioneL’acquisizione del campione e del template avviene tramite un microfono sensibile in cui avvienela registrazione, da parte dell’utente, di alcune parole predefinite, in modo che gli algoritmipossano apprendere le caratteristiche frequenze vocali. In fase di verifica i tempi possono essere ridotti e non ` pi` necessario che l’utente legga e usequenze prestabilite: il software ` in grado di effettuare il riconoscimento indipendentemente edalle parole pronunciate e persino dal tono. In campo investigativo ci` ` particolarmente inter- oeessante perch´ l’acquisizione pu` avvenire anche senza la collaborazione del soggetto. Inoltre e osarebbe sicuramente utile poter utilizzare i microfoni degli apparecchi telefonici (ad esempio perdelle intercettazioni automatizzate), sfortunatamente le linee telefoniche tradizionali dedicanouna banda molto limitata alla voce e questo causa una drastica perdita di informazione sulsegnale che rende il riconoscimento poco affidabile, specialmente nel caso di sovrapposzione dipi` voci e per la presenza di rumore di fondo. u4.4 Rappresentazione ed estrazione delle featuresIl campione vocale acquisito viene memorizzato solitamente in forma di file wave PCM. IlPCM provvede a salvare i dati audio senza nessun tipo di compressione, la forma d’onda vienememorizzata direttamente. Quindi i file risultanti sono di elevate dimensioni ma non richiedonoelevata potenza di calcolo per essere riprodotti, ed essendo la codifica lossless preserva in buonaparte tutte le caratteristiche del campione analogico. Il primo passo per l’estrazione delle features consiste nell’applicare al campione un filtraggioCepstal. Si calcola la DFT (Trasformata Discreta di Fourier) del segnale di ingresso. In seguitosi calcola il logaritmo dei coefficenti. Successivamente si antitrasforma (IDFT). Quello cheabbiamo ottenuto ` una enfatizzazione delle frequenze caratteristiche, per mettere in evidenza e
  • 32. CAPITOLO 4. BIOMETRIA DELLE IMPRONTE VOCALI 23le 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 vocaliPer brevit` tratteremo solo il caso della verifica. Dato un campione in input vengono estratti ai 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 dueprobabilit`. Tale valore costituisce un punteggio che il modulo di decisione confronta con una asoglia data per decidere se la verifica ha avuto esito positivo o negativo.4.6 Note conclusiveA causa della scarsa affidabilit`, l’uso ` consigliato solo per applicazioni di sicurezza medio/bassa a ein ambito civile, eventualmente associandolo ad altre tecniche biometriche. Buone prospettive si hanno invece nel campo del riconoscimento vocale per la dettaturaautomatica di testi al computer, ed esistono gi` diversi software commerciali dedicati, anche se aattualmente il giro d’affari ` ancora limitato. e
  • 33. Capitolo 5Algoritmo di fusione sensorialeLo scopo di ogni sistema di verifica ` di accettare o rifiutare l’identit` dichiarata da una persona e asulla base della corrispondenza di una biometria con il modello pre-acquisito della identit` apersonale. Usando le impronte vocali modellate con le HMM, gli ingredienti a disposizionesono: Impronta digitale (Fingerptint) osservata OF , modello HMM della persona abilitata λF , Amodello HMM medio delle persone Non Abilitate, λF A . Il problema ` dunque di determinare N emediante una soglia se accettare o meno l’identit` dichiarata. Ricordiamo che un modello HMM apu` essere usato per generare una osservazione. L’algoritmo HMM consente in vari modi di odeterminare la probabilit` che un modello λ possa generare una determinata osservazione O, acio` la verosimiglianza P (O|λ). In definitiva, l’algoritmo di verifica ` il seguente: e e Se P (OF |λF ) ≥ θ, allora accetta l’identit`. Altrimenti, se P (OF |λF ) < θ, rifiuta. A a A La verosimiglianza P (OF |λF ) pu` essere normalizzata rispetto alle verosimiglianze dei non A oautorizzati. Infatti, se la persona ` effettivamente quella che dichiara di essere, allora P (OF |λF ) >> e AP (OF |λF A ). Questo porta a introdurre la seguente quantit`: N a P (OF |λF ) ΛF = A P (OF |λF A ) Nche, in termini logaritmici, diventa: ΛF = log(P (OF |λF )) − log(P (OF |λF A )) A NQuesta grandezza normalizzata sar` molto alta se l’osservazione OF ` del proprietario del a emodello λF , mentre sar` molto bassa se OF non ` del propietario del modello λF . A a e A Per la biometria vocale, che riferiamo nel seguito con il simbolo S da Speech, si pu` definire oun termine analogo: ΛS = log(P (OS |λS )) − log(P (OS |λS A )) A N 24
  • 34. CAPITOLO 5. ALGORITMO DI FUSIONE SENSORIALE 25Le quantit` normalizzate ΛF e ΛS possono essere integrate in molti modi. Noi abbiamo scelto adi 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’identit` dichiara- ı ata: Se x ≥ θ, allora accetta l’identit`. Altrimenti, se x < θ, rifiuta. a Nel seguito descriviamo un semplice modo per calcolare α e θ. In una fase di training, for- F Fniamo in ingresso al sistema una sequenza di osservazioni della persona abilitata, O1 , O2 ,..., ON . Avremo dunque una sequenza di valori ΛF , ΛF , ..., ΛF e ΛS , ΛS , ..., ΛS . Di F 1 2 N 1 2 Nqueste sequenze, calcoliamo media e varianza: µ(ΛF ), σ 2 (ΛF ) e µ(ΛS ), σ 2 (ΛS ). Prima ditutto stabiliamo che un buon valore per la soglia `: θ = αµ(ΛF ) + (1 − α)µ(ΛS ). Inoltre, ese una persona abilitata fornisce le sue osservazioni di impronta digitale e di impronta vo-cale, i valori di λF ) e ΛS sono s` alti ma presentano una certa variabilit`, come misurato A ı adalla 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) ` facilmente ot- etenuta 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) dσ 2 (x)rispetto ad α: dα = 2ασ 2 (ΛF ) − 2(1 − α)σ 2 (ΛS ) = 0, da cui: ασ 2 (ΛF ) = (1 − α)σ 2 (ΛS ),ovvero σ 2 (ΛS ) α= (5.1) σ 2 (ΛS ) + σ 2 (ΛF )Si pu` facilmente mostrare che σ 2 (x) raggiunge effettivamente un minimo per il valore di α ocalcolato in 5.1. In definitiva quindi l’algoritmo sviluppato per la multibiometria ` il seguente: e 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.
  • 35. Capitolo 6Implementazione in ambiente PC6.1 IntroduzioneL’implementazione del sistema biometrico consiste nel porre in opera lo scanner 2.2 e l’algoritmo3.6. In ambiente pc non ci sono stati particolari problemi per l’implementazione. In questocapitolo vengono descritti in dettaglio i passi svolti per la realizzazione pratica del sistemabiometrico.6.2 Implementazione del sistema di acquisizioneAbbiamo a disposizione (si veda 2.2.3 ) due diverse API per interagire con lo scanner. Entrambefunzionano sia in ambiente Windows che in ambiente Linux. Per comodit` (il S.O. del TS7800 ` a eDebian cfr. 2.3 ) ` stato scelto di sviluppare tutti i programmi sotto Linux. Per quanto riguarda ela scelta tra le due API in un primo momento sono state utilizzate le BSAPI e in seguito lePTAPI 7.16.2.1 Funzioni dello scannerDelle 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
  • 36. 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 templatesacquisiti. Queste funzioni verranno utilizzate per ottenere un benchmark delle prestazioni delnostro algoritmo.6.2.2 Formato dell’immagineCome discusso ampiamente nelle sezioni 3.3 e 3.4 salvare le immagini grezze ottenute dal dis-positvo ` un passo molto importante. A questo scopo bisogna tenere conto delle caratteristiche edell’immagine che si riesce a ottenere dal dispositivo. Nel nostro caso l’immagine ` descritta edalla 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 nostrocaso riusciamo a ottenere un’immagine in gradazioni di grigio (8bit) di 144x384 pixels conuna risoluzione di 501 dpi. La chiamata alla funzione di acquisizione PT GRAB ci restituisceun array di byte che rappresentano i singoli pixels codificati. Il formato pi` opportuno per umemorizzare l’immagine ` il pgm (portable gray-map). E e ` un formato non compresso compostoda 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 ` cositituita semplicemente eda una sequeza di byte che codificano i pixel con il primo byte che codifica il primo pixel in altoa sinistra nell’immagine.6.2.3 Programma di acqusizioneIl 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-
  • 37. CAPITOLO 6. IMPLEMENTAZIONE IN AMBIENTE PC 28sizione dell’immagine, contenente numerose strutture dati, callbacks del dispositivo e infor-mazioni sul formato dell’immagine per la scansione. La struttura pu` essere schematizzata ocome 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. Nevengono acquisite 10 in modo da avere una sufficente quantit` di immagini da utilizzare per al’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 qualit` dell’immagine viene effettuata direttamente del asoftware di libreria in quanto deve ricostruire l’immagine a partire dalle fette inviategli dalloscanner. In questa fase vengono segnalati eventi come variazione di pressione, strisciamento inobliquo o troppo veloce, errori dovuti alla distorsione e rumore.6.3 Implementazione di enrollment-verification-identificationL’algoritmo prescelto (vedere 3.6) ` stato implementato in precedenza in un programma, chiam- eato hmmface, che effettua il riconoscimento facciale. Per maggiori dettagli vedere 2.46.3.1 Modifiche apportateElenchiamo qui in seguito le modifiche apportate al programma: • essendo scritto per Windows e dovendo girare su Linux ` stato necessario cambiare le e 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.
  • 38. 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 pi` cablati nel codice) i parametri: dimesione u dei blocchi,numero di coefficenti, distanza dei blocchi, soppressione o meno del primo coefficente (componente continua) nonch´ il path delle immagini. e • aggiunto il salvataggio dei risultati in un file di testo (ad ogni verifica il risultato viene aggiunto in coda). • Il programma ` stato concepito per funzionare in modalit` identificazione. Noi vogliamo e a farlo funzionare in modalit` verifica. Possiamo pensare di avere a che fare con due soli a soggetti: soggetto da verificare e mondo. Per motivi di privacy il modello del soggetto verr` conservato in un posto diverso rispetto al modello del mondo (ad esempio su una a chiavetta usb e verr` aggiunto al volo in fase di verifica e poi eliminato). Il file di testo a 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
  • 39. 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 (dif f − a)/(b − a) mentre, data quest’ultima informazione, normalizziamo con (dif f + 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’usoIn questo paragrafo viene spiegato l’utilizzo del sistema biometrico implementato su Pc.6.4.1 DatabaseIl corretto funzionamento del programma richiede la costruzione di un database (su file) conle immagini di fingerprint. Tale database ha una struttura molto semplice ed ` costituito da euna directory principale contenente tante sotto directory quanti sono i soggetti. Il loro nome ` el’identificativo del soggetto in questione. All’interno di ogni sotto directory ci sono le immaginidi fingerprint. Il programma ` stato concepito per lavorare con tre database di immagini: il edatabase generale, il database corrente, il database degli autorizzati. Quello generale contienetutti i campioni raccolti. Quello degli autorizzati i soggetti autorizzati e quello corrente solo ilmodello del mondo. Per la verifica sar` sufficiente alterare tale database aggiungendo il modello adel soggetto di cui si vuole verificare l’identit`. a6.4.2 UtilizzoIl programma consiste in una serie di sottoprogrammi e di dati contenuti in un directory comune.La struttura ` la seguente: e • 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 ` un file chiamato risultati.txt le cui righe sono prodotte ad ogni e 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).
  • 40. CAPITOLO 6. IMPLEMENTAZIONE IN AMBIENTE PC 31 • identify/: la struttura ` analoga al caso precedente sono che il file di risultati ` in e e 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 ` accompagnato da uno script e 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 ` necessario e 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.shGli 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.
  • 41. CAPITOLO 6. IMPLEMENTAZIONE IN AMBIENTE PC 326.4.3 Esempi di utilizzoNella root del programma abbiamo le seguenti directory: database, databaseAutorizzati, databaseDis-tinto. La directory database contiene la sottodirectory unauthorized che contiene le immaginidi fingerprint per costruire il modello del mondo. La directory databaseDistinto contiene tuttele directory dei campioni prelevati. La directory databaseAutorizzati contiene il database delleimmagini dei soggetti autorizzati. Il file hmmfinger.cfg relativo sar` cosi composto: a • root:/root/del/programma • immagini:/root/del/programma/databaseDistinto • mondo:/root/del/programma/database • autorizzati:/root/del/programma/databaseAutorizzatiL’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 (semprecontenute in databaseDistinto).
  • 42. Capitolo 7Implementazione in ambiente ARM7.1 IntroduzioneImplementare quanto descritto fino ad ora in ambiente embedded ` una scelta strategica in equanto, oltre a fattori legati al consumo energetico e scarso ingombro dei componenti, nell’ultimoanno i processori ARM stanno guadagnando sempre pi` mercato[9] In questo capitolo trattiamo ui problemi affrontati per implementare l’algoritmo sulla scheda TS7800. Le difficolt` maggiorni asono derivate da problemi di compatibilit` tra le librerie per x86 e quelle per ARM. Lo scanner, acommercialmente provvisto solo delle API BSAPI 2.2 ha causato non pochi problemi di porting.7.2 Programma di acqusizioneCome gi` accennato, originariamete era a nostra disposizione solo la libreria BSAPI (non open asource) 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 leseguenti soluzioni:7.2.1 Primo tentativoCome prima soluzione al problema si ` pensato di usare unaa libreria opensource chiamata elibfprint [6] che allo stato attuale supporta circa 20 scanner di diversi produttori. Lo scanner2.2 ` supportato per le sole modalit` di enroll e verification e non per l’invio dell’immagine e aall’host (pc o arm). Lavorando sui sorgenti per un certo tempo si ` deciso di abbandonare il eprogetto data la struttura eccessivamente complicata. Quello che segue non ` utile ai fini del eraggiungimento dell’obiettivo ma, date le parecchie ore spese in questo lavoro, sembra doveroso 33
  • 43. CAPITOLO 7. IMPLEMENTAZIONE IN AMBIENTE ARM 34riportare alcune considerazioni senza entrare troppo nei dettagli. Lo scheletro della libreria (lechiamate di libreria o API) ` distinto in due classi di chiamate: quelle dirette a periferiche e ` imaging (ottenimento dell’immagine della fingerprint) e quelle per periferichesenza capacitdiche supportano tale caratteristica. Per ogni famiglia di dispositivi c’` un listato in c contenente ele informazioni di funzionamento, come parole di controllo codici di parit` e quant’altro. Anche aquesti ultimi file hanno struttura leggermente diversa per periferiche con imaging o senza.Il file che supporta lo scanner ` upeksonly.c dove viene descritto come una periferica senza ecapacit` di imaging. L’esperimento ` stato quello di creare un file in grado di fare funzionare il a enostro scanner come periferica di imaging basandoci sul file descritto in precedenza. Lo scannerviene modellato come una macchina a stati finiti in cui il passaggio da uno stato all’altro ` epilotato dalle risposte che la periferica manda in seguito ad un comando dell’host. I comandida mandare al dispositivo per metterlo nello stato di cattura immagine sono stati catturatiutilizzando il software Wireshark che permette la cattura dei pacchetti che transitano sul busUSB. Nonostante questo il nostro esperimento non ` andato a buon fine in quanto ad un certo epunto il dispositivo non funzionava secondo il modello esposto in precedenza.7.2.2 Secondo tentativoVisto il precedente fallimento e tenendo conto delle informazioni ricavate dalla cattura deipacchetti (ad esempio lo header che precede ciascun pacchetto ` formato dai caratteri CIAO!) esi ` pensato di costruire ex-novo il driver per pilotare il dispositivo. Questa via sembrava epromettere bene ma ad un certo punto ci siamo scontrati con un ulterirore problema: arrivatiad un certo punto il dispositivo manda un pacchetto con dati non costanti (ovvero in duesessioni diverse manda dati diversi). A prima vista sembrava un numero casuale per un qualchetipo di CRC sui dati. Allora, copiando le parti relative alla gestione del CRC dai sorgenti dellalibfprintf, si ` visto che comunque non era possibile pilotare il dispositivo nel modo voluto. eAnche questo esperimento ` fallito. Solo pi` tardi, avendo a disposizione i codici sorgenti dei e udriver proprietari si ` osservato che i dati erano in realt` crittografati con AES. e a7.2.3 Terzo tentativoSi ` tentato di realizzare una versione minimale di Linux tale da permettere l’esecuzione del esoftware di acquisizione, basato sulle BSAPI, su una macchina virtuale (bochs). Le scarseprestazioni ottenute sul TS7800 (10 min per il bootstrap e 30 secondi per ogni comando dato)hanno determinato il fallimento di questo tentativo di soluzione.
  • 44. CAPITOLO 7. IMPLEMENTAZIONE IN AMBIENTE ARM 357.2.4 Quarto tentativoDopo numerose mail e suppliche all’azienda (Upek) siamo riusciti ad ottenere i codici sorgentidel driver proprietario. A questo punto ` stato sufficiente compilarli sul TS7800 e utilizzare il eprogramma creato per PC ovviamente cambiando le chiamate alla liberia.7.2.5 Conclusione `La struttura del programma di acqusizione viene leggermente modificata. E sufficiente infattiacquisire una sola impronta alla volta per la verifica (non le 10 descritte nel programma perpc).7.3 Implementazione di enrollment-verification-identificationSul TS7800 verr` implementato soltanto il programma di verifica. L’enrollment risulta pesante agi` in ambiente pc. Il programma per la verifica si basa sulle librerie openCv. Esse sono adisponibili per Arm gi` nelle repositories ufficiali di Debian. Provando ad installare le versioni adev dei vari pacchetti ci rendiamo per` conto che manca un file di libreria chiamato libcxcore oche ` un componente fondamentale della openCV. Seguono una serie di tentativi per risolvere eil problema.7.3.1 Cross-compilazioneLa compilazione dei vari programmi sul TS7800 richiede parecchio tempo. La TechologicalSystems mette a disposizione alcune tool-chain per compilare i programmi in ambiente pc edifferiscono per il tipo di emulazione dell’unit` floating point. L’algebra in virgola mobile viene aemulata dal Kernel. Esistono due varianti di questa emulazione: la pi` vecchia chiamata oldAbi ue la pi` recente detta gnueAbi. Viene utilizzata quest’ultima. u7.3.2 Primo tentativoLa versione del sistema operativo (3.1 Sarge) installata sul TS7800 ` una versione di Debian eormai 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 questaversione del S.O. lo scanner non funziona. Una prova effettuata con il debugger gdb ha messoin luce che la libreria dello scanner entra in loop infinito in fase di inizializzione del dispositivo.
  • 45. CAPITOLO 7. IMPLEMENTAZIONE IN AMBIENTE ARM 367.3.3 Secondo tentativoSu 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 disegmentation fault. Dopo numerose compilazioni con diversi parametri scopriamo che linkandostaticamente le librerie al nostro programma il problema viene risolto.7.4 Implementazione del sistema automatizzatoL’idea alla basa ` la seguente: e • il sistema attende che l’utente specifichi la propria identit`. Questo viene realizzato sal- a 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 ` come se stesse inserendo una e password o strisciando un badge. Ricordiamo che il possesso di un oggetto non ` condizione e 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 gi` a disposizione sotto forma di programmi le due componenti fondamentali (pro- agramma di verifica e acquisizione) l’implementazione proposta ` basata su uno script in bash eche effettua le seguenti operazioni: • informa l’utente che il sistema ` pronto per cominciare la verifica e • attende l’inserimento della chiavetta usb • verifica se nella chiavetta c’` effettivamente un modello e • modifica il database del programma di verifica (il motivo ` scritto qui 2.4.1 ) aggiungendo e il modello presente sulla chivetta • informa l’utente che il sistema ` pronto per acquisire l’impronta digitale e • avvia il programma di verifica • estrae il risultato della verifica e informa l’utente del successo/insuccesso.
  • 46. CAPITOLO 7. IMPLEMENTAZIONE IN AMBIENTE ARM 37L’utente viene informato attraverso due led (rosse e verde). Nei vari programmi di esempioper il TS7800 abbiamo trovato quelli per pilotare i led e abbiamo creato quattro programmiredOn, redOff, greenOn, greenOff che effettuano le operazioni di spegnimento e accesione deirispettivi led. Inoltre ` stato creato un programma che accende e spegne alternativamente i led ea intervalli regolari (1s).7.5 Manuale d’usoIn questo paragrafo viene spiegato l’utilizzo del sistema di verifica su TS7800. Il programmaconsiste in una serie di sottoprogrammi e di dati contenuti in un directory comune. La struttura` la seguente:e • verify/: contiene l’eseguibile omonimo e una sottodirectory risultati che contiene il programma normalizza, il file intervallo.txt dov’` riportato l’intervallo per la normal- e 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.shPer l’utilizzo dei programmi descritti si veda 6.4.2 Un programma di autologin per accedereal terminale come root viene eseguito al posto del normale login e lo script .bashrc esegue inautomatico lo script verifica.sh. Il programma esegue fino a che viene scollegato lo scanner.Per il corretto funzionamento del sistema ` necessario collegare lo scanner quando il TS7800 e` spento. Attendere che si illuminino contemporaneamente il due led. Inserire la chiavettaeUSB contenente il modello. Attendere che i led si accendano alternativamente. Strisciareil dito. Se l’acquisizione non va a buon fine i led continuano a lampeggiare. Il risultato ` edato dall’accensione del led verde se la verifica ha avuto successo, rosso altrimenti. In casodi verifica positiva il sistema attende che l’utente estragga la chiavetta USB e si riporta nellostato di pronto. In caso di verifica negativa dopo tre secondi il sistema chiede che sia acquisitanuovamente l’impronta (contro i falsi negativi).
  • 47. Capitolo 8Risultati sperimentali8.1 IntroduzioneIn questo capitolo verranno presentati i risultati sperimentali ottenuti utilizzando i vari algoritmi `proposti lungo la trattazione. E evidente che l’utilizzo di tecniche biometriche multimodaligarantisce ottimi risultati in termini di errore commesso.8.2 Dataset acquisitoI 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 soggettiPer le prove di identificazione il modello verr` costruito con 5 immagini e validato con le altre a5. Per le prove di verifica i 4 modelli autorizzati saranno costruiti con 10 immagini e validaticon le altre 10 pi` quelle degli altri soggetti. u8.3 Parametri valutatiQuando si ha a che fare con un sistema biometrico ci si pu` trovare nelle seguenti situazioni: o • H0 : il soggetto ` realmente chi dice di essere e 38
  • 48. CAPITOLO 8. RISULTATI SPERIMENTALI 39 • H1 : il soggetto ` un impostore e • D0 : il sistema accetta il soggetto • D1 : il sistema respinge il soggettoPossiamo calcolare varie probabilit` condizionate sulla base di questi eventi. Tipici indicatori ache descrivono la bont` di un sistema biometrico sono la FAR (False Acceptance Rate), per- acentuale di falsi positivi ovvero P (D0 |H1 ), e la FRR (False Rejection Rate), percentuale di falsinegativi ovvero P (D1 |H0 ). Questi valori dipendono fortemente dal modulo di decisione tant’` evero che possono essere diagrammati, ad esempio, in funzione della soglia di score T . Questigrafici hanno, solitamente, un punto di intersezione chiamato EER (Equal Error Rate) ed ` il e `valore di soglia per il quale falsi positivi e falsi negativi si equivalgono. E un indicatore sinteticodella qualit` del sistema. Tuttavia, nei casi reali si lavora con soglie che garantiscono, a seconda adei casi, percetuali basse di FRR (scopi investigativi) o FAR (sicurezza e controllo accessi). Perun 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 ordinatei corrispondenti valori di FRR. L’EER ` la retta di pendenza 1. Nella realt` FRR e FAR si e aricavano attraverso degli esperimenti da cui si estraggono i loro stimatori: FMR (False MatchRate), falsi positivi rilevati, e FNMR (False No Match Rate). Questi valori non tengono inconsiderazione l’ FTA (Failure To Acquire Rate), la percentuale dei soggetti di cui ` impossibile eacquisire le fingerprint, e l’ FTE (Failure To Enroll Rate), la percentuale dei soggetti acquisitima di cui ` impossibile costruire un modello (scarsa qualit` della fingerprint). La relazione tra e aFAR e FRR e FMR e FNMR ` data da: e F AR(T ) = (1 − F T A) · (1 − F T E) · F M R(T ) F RR(T ) = F T A + (1 − F T A) · F T E + (1 − F T A) · (1 − F T E) · F N M R(T )Nel corso del nostro esperimento abbiamo avuto FTA e FTE nulli. Quindi per noi sar` vero a F AR(T ) = F M R(T ) F RR(T ) = F N M R(T ) Altri parametri da valutare sono, ad esempio, la velocit` dell’algoritmo. a8.4 Algoritmo UpekLe API dello scanner includono gli algoritmi per la verifica e l’identificazione delle fingerprintbasati su minuzie. Con il dataset acquisito, sia in modalit` verifica sia in modalit` acquisizione a a
  • 49. CAPITOLO 8. RISULTATI SPERIMENTALI 40 Figura 8.1: Calcolo EER nel caso dell’identificazione con ritaglio dell’immagineotteniamo un EER nullo. Tale fenomeno ` dovuto alla limitatezza del campione a disposizione. eDal 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 dicalcolo. Un enrollment richiede circa 5s. La verifica di tutti i 16 soggetti richiede una media di60s.8.5 Fingerprint identificationPresentiamo 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 esono (4 4 4 4 4 4 1)6.4.2. L’algoritmo ritorna il soggetto che ` stato identificato insieme con lo escore. Il modulo di decisione deve fissare una soglia sotto la quale i risultati ottenuti non sonoattendibili. 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 inrealt` ` da ritenersi un limite inferiore dell’algoritmo di identificazione in quanto l’EER cresce aelinearmente con il numero di soggetti in archivio[8].8.6 Fingerprint VerificationPresentiamo adesso i risultati ottenuti con l’algoritmo di verifica su una versione ridotta a 4soggetti (tutti e quattro autorizzati) del database. Viene introdotto in queste prove un quinto
  • 50. CAPITOLO 8. RISULTATI SPERIMENTALI 41Figura 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’immaginemodello chiamato modello del mondo costruito con le restanti fingerprint del database. Ilmodello del mondo serve per avere uno score relativo e non assoluto. Questo ` un vantaggio in equanto solo con il metodo a soglia non si tiene conto di problemi quali, ad esempio, la scarsaqualit` delle fingerprint di alcune persone, che altrimenti sarebbero sempre respinte. In figura a8.3 possiamo osservare i grafici FRR e FAR ottenuti con i parametri (4 4 4 4 4 4 1) e nellafigura 8.4 possiamo osservare la curva ROC ottenuta con vari parametri e modifiche. Abbiamoottenuto un EER del 2,5% circa nel migliore dei casi. In questo caso scegliamo come parametri
  • 51. 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 simantiene al di sotto dei quella senza ritaglio delle immagini per quasi tutti i valori.8.7 FusionePresentiamo i risultati ottenuti con il nostro algoritmo di fusione. Come ci aspettavamo siottiene un miglioramento sensibile dell’EER dovuto ad una riduzione della varianza dei valoridi score ottenuti con la fusione. Per un confronto tra le biometrie considerate singolarmente efuse insieme si veda la figura 8.5 Questa ` la dimostrazione sperimentale che effettivamente la biometria multimodale porta ebenefici sensibili per un sistema di verifica in termini di maggiore accuratezza. Questo non ` el’unico vantaggio della biometria multimodale, tuttavia ` uno dei motivi principali per cui oggi esi utilizza la fusione delle informazioni in sistemi di verifica. In termini di costo computazionaleil nostro algoritmo di fusione ` praticamente gratutito in quanto consiste in una media pesata edi due valori.8.8 CommentiI 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 iseguenti motivi:
  • 52. CAPITOLO 8. RISULTATI SPERIMENTALI 43 Figura 8.5: Prestazioni dei singoli sistemi e del sistema biometrico multimodale ottenuto • il campione ` troppo ristretto. Per avere una misura pi` attendibile dell’effettivo tasso di e u errore occorre raccogliere le biometrie di molti pi` soggetti. u • la raccolta delle fingerprint per la costruzione dei modelli e per i test doveva essere ese- guita in istanti di tempo pi` lontani tra loro. Essendo un metodo basato sulle immagini, u in istanti diversi le immagini raccolte possono differire anche di molto. L’utilizzo dell’al- goritmo implementato sul sistema embedded ` affetto da un EER che non rispecchia i e risultati ottenuti.Questi difetti portano, nel mondo industriale, ad utilizzare altri algoritmi per la fingerprintverification, come quelli basati sulle minuzie.
  • 53. Conclusioni e sviluppi futuriIn questa tesi ` stato sviluppato un sistema di verifica della identit` personale mediante la e a `biometria multimodale. E stato messo a punto un sistema di acquisizione delle impronte digitalimentre in un’altra tesi ` stato sviluppato un corrispondente sistema per le impronte vocali. Il esistema sviluppato comprende anche un programma per il confronto delle impronte digitali e unalgoritmo per la fusione delle impronte digitali e delle impronte vocali. I risultati sperimentalihanno dimostrato che utilizzando la fusione di due diverse biometrie il tasso d’errore vieneridotto drasticamente. Infatti l’EER (equal error rate) ottenuto ` intorno all’1%, mentre l’EER edella sola verifica con impronte digitali di aggira intorno al 3% e quello della sola improntavocale intorno al 5%. Il sistema di verifica basato sulle impronte digitali ` stato implementato eanche su un processore ARM per dimostrare la possibilit` di una futura ingegnerizzazione. a 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 acquisireun data Set di impronte, un algoritmo per il confronto e un algoritmo per la fusione. Nell’im-mediato, il sistema ` pronto come base per sviluppare ulteriori sistemi di verifica con impronte edigitali e ulteriori algoritmi per la fusione dei dati. L’esperienza maturata con l’implemen-tazione in tempo reale su processore ARM pu` essere utilizzata per implementare un sistema omultibiometrico. In definitiva, uno sviluppo pu` essere quello di migliorare le prestazioni dei sistemi di verifica omonobiometrica o di migliorare le caratteristiche dell’algoritmo di fusione. Un altro sviluppointeressante pu` essere quello di includere una terza biometria, quella del volto, in un sistema che outilizzi quindi tre biometrie. Ci si aspetta quindi di ottenere una ulteriore riduzione dell’EER. 44
  • 54. 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] Universit` degli studi di Salerno. Approfondimento sull’algoritmo di baum-welch. http: a //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, Universit` degli studi di Trieste, 2011. a[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
  • 55. 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.