SlideShare uma empresa Scribd logo
1 de 55
Baixar para ler offline
`
        UNIVERSITA DEGLI STUDI DI TRIESTE

                  Facolt` di Ingegneria
                        a
       Corso di Laurea in Ingegneria dell’Informazione



                     Tesi Di Laurea



Fusione di impronta digitale e impronta
     vocale per il controllo accessi

                         Laureando
                      Pietro Corona
                     Matricola 83600039


                          Relatore
                   Prof. Enzo Mumolo




                 Anno Accademico 2010/2011
Ai miei genitori e a Greta
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
Introduzione

In questa tesi si ` affrontato il problema della biometria multimodale. Le informazioni biomet-
                  e
riche sono informazioni di origine biologica che appartengono solo ad una persona e non sono
condivise da altri. Potremmo dire che praticamente quasi tutte le caratteristiche biologiche di
una persona che si riescono a misurare con la tecniche disponibili attualmente caratterizzano
unicamente quella persona. Partendo dal DNA, l’iride, il volto, la pelle o la voce di una per-
sona sono alcune delle caratteristiche tipiche della identit` di ogni persona e che, se acquisite e
                                                            a
confrontate, possono essere utilizzate per distinguere le persone stesse. Questa distinzione pu`
                                                                                               o
essere utilizzata sia per identificare che per verificare l’identit` di una persona. La differenza tra
                                                                 a
identificazione e verifica sta nel fatto che nel primo caso il sistema riconosce a chi appartiene
quella biometria (tra un insieme di biometrie note) e nel secondo il sistema accerta o meno
che una persona sia chi dichiara di essere, confrontando l’impronta biometrica precedentemente
acquisita con quella prodotta in quel preciso istante. La biometria multimodale integra pi`
                                                                                          u
informazioni biometriche usando un sistema di fusione dei dati. Compensando le inevitabili
lacune e imprecisioni di una biometria con le altre biometrie utilizzate, ci si aspetta che una
buona integrazione migliori i risultati globali.
   Tralasciando le ovvie considerazioni legate alla maggiore o minore invasivit` dell’acqusizione
                                                                               a
delle informazioni biometriche, e al fatto che generalmente si vuole minimizzare il tasso di falsi
positivi, cio` la percentuale di volte che il sistema accetta impostori, osserviamo solo che vi sono
             e
moltissimi casi in cui ` necessario verificare l’identit` di una persona, tipicamente per l’accesso
                       e                               a
a risorse che non si vogliono condividere con altre persone. Ovviamente l’accesso pu` essere
                                                                                    o
richiesto ad una informazione logica, ad un sistema hardware o ad un luogo protetto, che non si
vuole cio` sia vistato da altri. Un sistema di verifica multibiometrica ha uno o pi` ingressi legati
         e                                                                        u
alle 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. La
biometria vocale ` trattata in un’altra tesi [10]. In questa tesi ci si ` occupati invece della
                 e                                                      e
biometria dell’impronta digitale. Per l’acquisizione dell’impronta digitale ` stato necessario
                                                                            e
utilizzare un sensore specifico e risolvere i problemi della acquisizione del segnale. Acquisito


                                                   iv
INTRODUZIONE                                                                                      v


il segnale ` stato poi necessario mettere a punto un programma per confrontare le impronte
           e
acquisite. Per semplicit` ` stato modificato un programma pre-esistente basato sull’algoritmo
                        ae
EHMM. Tutte queste queste operazioni sono state fatte preliminarmente in ambiente PC per un
migliore controllo dei programmi sviluppati. Un ulteriore obiettivo che ci siamo posti in questa
tesi ` di utilizzare un processore tipico dei sistemi embedded, cio` l’ARM 9, che ` un processore
     e                                                             e              e
che non necessita raffreddamento e che consente di arrivare a notevoli livelli di miniaturizzazione,
nel caso si voglia ingegnerizzare l’intero sistema.
   Il piano di lavoro di questa tesi ` 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 possibili
strategie di fusione. Nel Capitolo 2 si descrive il sensore utilizzato e il sistema basato sul
processore ARM usato per l’implementazione in tempo reale. Nel Capitolo 3 si discute della
biometria delle impronte digitali descrivendo il relativo algoritmo di confronto. Il Capitolo 4
presenta un breve riassunto delle caratteristiche principali della biometria basata sulle impronte
vocali. Nel Capitolo 5 viene descritto l’algoritmo di fusione per integrare i dati provenienti dalle
due biometrie.
   Nel Capitolo 6 si descrive l’implementazione in ambiente PC e nel Capitolo 7 l’implemen-
tazione sul processore ARM. Nel Capitolo 8 si riportano alcuni risultati sperimentali e nel
Capitolo Conclusioni e sviluppi futuri si riportano alcune considerazioni conlusive della tesi
indicando possibili lavori futuri.
Indice


Introduzione                                                                                           iv

Indice                                                                                                 vi

Elenco delle figure                                                                                     ix

1 La biometria multimodale                                                                             1
  1.1    Introduzione    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .    1
  1.2    Prestazioni di un sistema biometrico multimodale . . . . . . . . . . . . . . . . . .           2
  1.3    Strategie di fusione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .     3
         1.3.1   Architettura    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .    3
         1.3.2   Livello di fusione nelle architetture parallele . . . . . . . . . . . . . . . . .      4
         1.3.3   Algoritmo di fusione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .       5
         1.3.4   Modo di addestramento . . . . . . . . . . . . . . . . . . . . . . . . . . . .          5
  1.4    Quali informazioni integrare . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .       6
  1.5    Modulo di scelta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .       6

2 Strumenti utilizzati                                                                                  7
  2.1    Introduzione    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .    7
  2.2    Fingerprint scanner . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .      7
         2.2.1   Caratteristiche tecniche . . . . . . . . . . . . . . . . . . . . . . . . . . . .       8
         2.2.2   Collegamento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .       8
         2.2.3   Interfacciamento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .       9
  2.3    SBC TS7800 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .         9
         2.3.1   Configurazione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
  2.4    Software riconoscimento facciale hmmface . . . . . . . . . . . . . . . . . . . . . . 11
         2.4.1   Funzionamento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

3 Biometria delle impronte digitali                                                                    12

                                                  vi
INTRODUZIONE                                                                                      vii


  3.1   Introduzione    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
  3.2   Fingerprint dal punto di vista biometrico . . . . . . . . . . . . . . . . . . . . . . 12
  3.3   Acquisizione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
  3.4   Rappresentazione ed estrazione delle features . . . . . . . . . . . . . . . . . . . . 14
  3.5   Confronto di fingerprint . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
  3.6   L’algoritmo proposto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
        3.6.1   Trasformata discreta in coseno . . . . . . . . . . . . . . . . . . . . . . . . 17
        3.6.2   Hidden Markov Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
        3.6.3   Enrollment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
        3.6.4   Identification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
        3.6.5   Verification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

4 Biometria delle impronte vocali                                                                  21
  4.1   Introduzione    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
  4.2   L’impronta vocale dal punto di vista biometrico . . . . . . . . . . . . . . . . . . . 21
  4.3   Acquisizione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
  4.4   Rappresentazione ed estrazione delle features . . . . . . . . . . . . . . . . . . . . 22
  4.5   Confronto di impronte vocali . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
  4.6   Note conclusive . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

5 Algoritmo di fusione sensoriale                                                                  24

6 Implementazione in ambiente PC                                                                   26
  6.1   Introduzione    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
  6.2   Implementazione del sistema di acquisizione . . . . . . . . . . . . . . . . . . . . . 26
        6.2.1   Funzioni dello scanner . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
        6.2.2   Formato dell’immagine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
        6.2.3   Programma di acqusizione . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
  6.3   Implementazione di enrollment-verification-identification . . . . . . . . . . . . . . 28
        6.3.1   Modifiche apportate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
  6.4   Manuale d’uso . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
        6.4.1   Database . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
        6.4.2   Utilizzo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
        6.4.3   Esempi di utilizzo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32

7 Implementazione in ambiente ARM                                                                  33
  7.1   Introduzione    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
INTRODUZIONE                                                                                       viii


   7.2   Programma di acqusizione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
         7.2.1   Primo tentativo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
         7.2.2   Secondo tentativo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
         7.2.3   Terzo tentativo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
         7.2.4   Quarto tentativo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
         7.2.5   Conclusione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
   7.3   Implementazione di enrollment-verification-identification . . . . . . . . . . . . . . 35
         7.3.1   Cross-compilazione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
         7.3.2   Primo tentativo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
         7.3.3   Secondo tentativo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
   7.4   Implementazione del sistema automatizzato . . . . . . . . . . . . . . . . . . . . . 36
   7.5   Manuale d’uso . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37

8 Risultati sperimentali                                                                            38
   8.1   Introduzione    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
   8.2   Dataset acquisito . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
   8.3   Parametri valutati . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
   8.4   Algoritmo Upek . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
   8.5   Fingerprint identification    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
   8.6   Fingerprint Verification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
   8.7   Fusione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
   8.8   Commenti . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42

Conclusioni e sviluppi futuri                                                                       44

Bibliografia                                                                                         45
Elenco delle figure


1.1   Principali architetture. (a) Parallela. (b) In cascata (c) Gerarchica . . . . . . . . . .      3
1.2   Livelli di fusione in architetture parallele. (a) Livello di features. (b) Livello di
      confidenza o rank (c) Livello astratto . . . . . . . . . . . . . . . . . . . . . . . . . . .    4
1.3   Tecniche pi` diffuse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
                 u                                                                                   5

2.1   Fingerprint Scanner Upek TCEEA4. (a) Davanti. (b) Dietro. . . . . . . . . . . . . .            8
2.2   Cavetto di collegamento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .    9
2.3   MiaKey . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .   9
2.4   TS7800 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

3.1   Esempio di fingerprint . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
3.2   Features a livello globale. a) Anello a sinistra b) Anello a destra c) Spira d) Arco e)
      Arco appuntito. I quadrati indicano le cuspidi mentre i cerchi indicano gli anelli . . 15
3.3   Features a livello locale (pallini neri) e molto fine (cerchietti vuoti) . . . . . . . . . . 16
3.4   Addestramento modello HMM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
3.5   Processo di enrollment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
3.6   Processo di identificazione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
3.7   Processo di verifica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

6.1   Schema a blocchi programma di enroll . . . . . . . . . . . . . . . . . . . . . . . . . . 29
6.2   Schema a blocchi programma di verifica . . . . . . . . . . . . . . . . . . . . . . . . . 29

8.1   Calcolo EER nel caso dell’identificazione con ritaglio dell’immagine . . . . . . . . . . 40
8.2   Prestazioni algoritmo identificazione ottenute con parametri diversi. (1) 4 4 4 4 4 4
      1. (2) 12 32 3 3 12 32 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
8.3   Calcolo EER nel caso della verifica con ritaglio dell’immagine . . . . . . . . . . . . . 41
8.4   Prestazioni algoritmo verifica ottenute con parametri diversi. . . . . . . . . . . . . . 42
8.5   Prestazioni dei singoli sistemi e del sistema biometrico multimodale ottenuto . . . . 43


                                                  ix
Capitolo 1


La biometria multimodale

1.1    Introduzione

Un identificatore biometrico ` un particolare tipo di misura biometrica. Una istanza ` una
                            e                                                       e
singola misurazione di un identificatore. Un sistema biometrico ` un sistema (nel nostro
                                                               e
caso di sicurezza) il cui funzionamento ` basato su uno o pi` identificatori biometrici. I sistemi
                                        e                   u
biometrici 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 che
richiedono un alto livello di sicurezza spesso i sistemi basati sulla biometria unimodale non
garantiscono le performance richieste a causa della limitatezza delle informazioni contenute nel
singolo identificatore. Questo problema potrebbe essere risolto affiancando la biometria con
tecniche di autenticazione tradizionali basate sulla conoscenza di un segreto o al possesso di un
oggetto (password, smart card). Tuttavia si ripresentano i soliti problemi legati a questi metodi
ovvero la possibilit` che il segreto o l’oggetto vengano rubati,indovinati,persi. La soluzione
                    a
a 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
CAPITOLO 1. LA BIOMETRIA MULTIMODALE                                                            2


economicamente sia come tempo di calcolo), l’utente perde pi` tempo nelle fasi di enroll e
                                                            u
verifica e inoltre se la fusione tra i vari identificatori non ` eseguita correttamente provoca un
                                                             e
degrado dell’accuratezza.


1.2    Prestazioni di un sistema biometrico multimodale

La verifica e l’identificazione sono tipici problemi di classificazione. Nel caso della verifica
l’utente dichiara la propria identit` e il sistema deve verificare la verit` della sua affermazione.
                                    a                                     a
Gli algoritmi di verifica devono classificare l’identificatore biometrico fornito in input in due
classi: modello del soggetto corrispondente all’identit` dichiarata, modello del mondo. Nel caso
                                                       a
dell’identificazione abbiamo N+1 classi (soggetto 1, ...,soggetto N,sconosciuto). Diversi metodi
di classificazione (detti anche classificatori),anche dello stesso identificatore biometrico, anche
avendo la medesima accuratezza, spesso commettono errori classificando diversi identificatori
(e.g. pronte digitali di soggetti diversi). Questo ci suggerisce che, combinando insieme due
o pi` metodi di classificazione, possiamo ottenere risultati migliori di quelli ottenuti con il
    u
singolo classificatore. Esistono molti articoli a supporto di questa teoria. Si veda ad esempio
[2]. Riassumendo, le motivazioni che spingono all’utilizzo di sistemi basati su identificatori
biometrici multipli sono:

  1. diversi metodi di classificazione per uno stesso identificatore sono realizzati in contesti
      diversi.

  2. i metodi di classificazione sono addestrati con modelli costruiti solitamente su campioni
      circoscritti (e.g. personale di un laboratorio) e potrebbero non essere adatti a condizioni
      diverse (popolazione, ambiente ecc...)

  3. diversi metodi addestrati sul medesimo campione possono differire nelle prestazioni

  4. molti metodi forniscono risultati diversi con diversi parametri di inizializzazione.

  5. rappresentazioni multiple della stessa caratteristica biometrica potrebbero portare a risul-
      tati diversi.

  6. utilizzando 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.
                                                               u

In conclusione possiamo affermare che le prestazioni di un sistema biometrico multimodale
possono risultare superiori ad un sistema unimodale.
CAPITOLO 1. LA BIOMETRIA MULTIMODALE                                                              3




        Figura 1.1: Principali architetture. (a) Parallela. (b) In cascata (c) Gerarchica


1.3     Strategie di fusione

Esistono molti modi di combinare insieme gli identificatori biometrici. Questi metodi si distin-
guono sulla base dell’architettura del sistema, del livello in cui avviene la fusione,dell’algoritmo
di fusione e del modo di addestramento del sistema.


1.3.1    Architettura

Le principali architetture per combinare i metodi di classificazione sono: parallela Fig. 1.1 a),
in cascata o seriale Fig. 1.1 b), gerarchica o ad albero Fig. 1.1 c),
   Nello schema parallelo tutti i classificatori lavorano indipendentemente e i risultati vengono
combinati successivamente attraverso il modulo di fusione. Nello schema in cascata i classifi-
catori eseguono uno dopo l’altro avendo a disposizione il risultato del precedente. Ad ogni passo
il numero di classi per il confronto viene progressivamente ridotto. Nello schema gerarchico i
classificatori vengono combinati in una struttura ad albero. Tipicamente i primi classificatori
sono poco accurati (ed economici) in quanto devono solamente individuare un certo numero di
classi possibili, mentre i successivi sono via via pi` accurati (e costosi).
                                                     u
CAPITOLO 1. LA BIOMETRIA MULTIMODALE                                                              4




Figura 1.2: Livelli di fusione in architetture parallele. (a) Livello di features. (b) Livello di
confidenza o rank (c) Livello astratto


1.3.2       Livello di fusione nelle architetture parallele

Focalizziamo l’attenzione sull’architettura parallela, quella oggi pi` usata oggi, ed in particolare
                                                                     u
sulla collocazione del modulo di fusione. Differenti strategie di combinazione richiedono diversi
tipi di dati presi da ogni classificatore del sistema. Questi dati possono essere divisi nelle
seguenti categorie: features o misure, valori di confidenza,rank o score, valori astratti
Fig. 1.2.
   Al livello delle features, le features estratte dalle diverse modalit` sono combinate insieme.
                                                                        a
Il nuovo spazio delle features ` pi` grande e sperabilmente ` pi` discriminativo. Schemi di
                               e u                          e u
integrazione come questo vengono detti anche tightly coupled. Al livello di confidenza, rank o
score ogni classificatore indica per ogni classe un valore che stima la probabilit` che il mod-
                                                                                 a
ello 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 dicono
a integrazione loosely coupled. I risultati migliori si ottengono combinando i risultati prima
possibile [8]. Tuttavia risulta pi` difficoltoso combinare i dati a livello di features in quanto
                                  u
le relazioni tra gli spazi delle features dei diversi classificatori potrebbero non essere note e le
rappresentazioni delle features potrebbero non essere compatibili.
CAPITOLO 1. LA BIOMETRIA MULTIMODALE                                                              5




                                Figura 1.3: Tecniche pi` diffuse
                                                       u


1.3.3    Algoritmo di fusione

Una algoritmo di fusione rappresenta la tecnica usata per combinare l’output di pi` classificatori.
                                                                                  u
Le 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 nei
valori forniti dai vari classificatori. Risulta pertanto necessario normalizzare questi valori (e.g.
in modo lineare) nello stesso intervallo (e.g [0,1]). In conclusione non si pu` dire a priori quale
                                                                              o
sia la strategia migliore. La scelta viene effettuata in base a degli esperimenti fatti su un dato
campione. La strategia che offre una migliore accuratezza viene scelta.


1.3.4    Modo di addestramento

Alcuni algoritmi sono statici cio` una volta fissati i parametri trattano tutti gli input allo stesso
                                 e
modo. Non richiedono nessun tipo di addestramento. Altri metodi invece richiedono di essere
CAPITOLO 1. LA BIOMETRIA MULTIMODALE                                                            6


addestrati e possono portare a un miglioramento dell’accuratezza rispetto ai metodi statici.
Altri algoritmi di fusione sono adattativi nel senso che valutano o pesano le decisioni di ogni
classificatore in base all’input, basandosi sulla conoscenza delle condizioni ambientali.


1.4    Quali informazioni integrare

Adesso che sappiamo come effetture la fusione dei risultati dei classificatori concentriamoci
su quali informazioni combinare per migliorare le performance del nostro sistema. I sistemi
biometrici multimodali possono operare nei seguenti scenari:

  1. sensori multipli: viene combinata l’informazione ottenuta da diversi sensori della stessa
      misura biometrica. Ad esempio la stessa impronta digitale con due scanner diversi.

  2. biometrie multiple: biometrie diverse,ad esempio fingerprint e voce, vengono fuse. Il
      sistema necessita di sensori multipli e di un opportuno algoritmo di fusione.

  3. 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’aumento
dell’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.
              e


1.5    Modulo di scelta

Il modulo di scelta ` un componente che, avendo in input lo score fornito dal classificatore o
                    e
dal modulo di fusione, opera la seguente scelta: se il punteggio (score) ` superiore ad una certa
                                                                         e
soglia, considera corretto il risultato della verifica e quindi autorizza il soggetto, altrimenti
la verifica ha avuto esito negativo e il soggetto non ` autorizzato. La soglia, di solito, viene
                                                     e
fissata sperimentalmente. Variandone il valore si possono calcolare, per un dato campione, i
falsi positivi e i falsi negativi. Il valore che minimizza entrambi non ` sempre la scelta pi`
                                                                        e                    u
opportuna. Bisogna infatti valutare se l’applicazione richiede pochi falsi positivi o pochi falsi
negativi. Per una descrizione pi` accurata di questi indicatori vedere 8.3.
                                u
Capitolo 2


Strumenti utilizzati

2.1    Introduzione

In questo capitolo vengono descritti gli strumenti e le apparecchiature usate per la realizzazione
del lavoro. Uno degli obiettivi del lavoro (vedi introduzione ) ` quello di implementare su un
                                                                e
single board computer (sbc) ARM un algoritmo di fingerprint verification che permetta l’auten-
ticazione dei soggetti autorizzati. Per realizzare questo obiettivo abbiamo scelto di sviluppare
il lavoro su di una scheda TS7800 della Technological Systems [13] collegato ad uno scanner di
impronte digitali TCEEA4 della Upek [15]. Inoltre per la verifica viene utilizzato, come base
di partenza, un programma gi` esistente, chiamato hmmface, opportunamente modificato
                            a
(vedere6.3.1).


2.2    Fingerprint scanner

Esistono generalmente due categorie di scanner: touch e sweep. Negli scanner touch l’utente
appoggia il dito su una superfice trasparente e il sensore si muove per ottenere l’immagine
completa. Hanno il vantaggio di essere molto semplici da usare. Tuttavia presentano il problema
delle impronte latenti che restano impresse sulla superfice di appoggio. A lungo andare portano
ad un degrado della qualit` dell’immagine acqusita. Negli scanner sweep l’utente striscia il
                          a
dito contro il sensore. Questo permette di risolvere i problemi di pulizia che presentano gli
scanner touch ma al tempo stesso sono pi` difficili da utilizzare. L’utente deve avere cura di
                                        u
strisciare il dito centrandolo sul sensore, facendolo scorrere con velocit` il pi´ possibile costante
                                                                          a      u
e mantenendo sempre una pressione sufficiente. Abbiamo scelto uno scanner sweep perch`
                                                                                   e
appunto fornisce una qualit` maggiore.
                           a




                                                 7
CAPITOLO 2. STRUMENTI UTILIZZATI                                                            8




                              (a)                             (b)

             Figura 2.1: Fingerprint Scanner Upek TCEEA4. (a) Davanti. (b) Dietro.


2.2.1        Caratteristiche tecniche

Per maggiori informazioni si veda [1]. Riportiamo le caratteristiche dello scanner per noi pi`
                                                                                             u
rilevanti:

   • Sensore di tipo capacitivo

   • Permette l’interfacciamento via USB 2.0

   • Possiede un processore MIPS RISC (TCD50)

   • Memoria interna 4Kb

   • Sensore swipe Upek TouchStrip TCS4C

   • Dimensione dell’array di scansione 192x4 pixel

   • Risoluzione: 508 dpi

   Nell’immagine 2.1 si pu` vedere lo scanner.
                          o


2.2.2        Collegamento

Sullo scanner ` presente un connettore Molex (2.54mm) (del tipo in figura 2.1 b) per un cavo
              e
piatto a 4 pin mostrato in figura 2.2. Per collegare lo scanner all’host (PC o sbc) via USB
abbiamo sfruttato il connettore Molex (2.54 mm) presente su una chiavetta usb MiaKey della
SATA 2.3 che funge da semplice hub senza funzioni aggiuntive. Un altro modo per collegare lo
scanner ad un cavo USB sarebbe stato quello di crearsi un cavo USB ad-hoc tuttavia la prima
soluzione ` apparsa pi` semplice visto la disponibilit` immediata dei componenti.
          e           u                               a
CAPITOLO 2. STRUMENTI UTILIZZATI                                                              9




                             Figura 2.2: Cavetto di collegamento




                                     Figura 2.3: MiaKey


2.2.3    Interfacciamento

Non utilizziamo nessun device driver per gestire lo scanner: per Linux esistono delle API basate
sulla libusb0.1. Sono a disposizione due diverse API per l’interfacciamento tra lo scanner e i
programmi utente: le BSAPI e le PTAPI. Le prime rendono disponibili funzioni ad alto livello
per` sono disponibili solo per ambiente PC mentre le seconde hanno un’interfaccia pi` primitiva
   o                                                                                u
ma si possono compilare in ambiente ARM[14]. Entrambe le librerie sono fornite con la relativa
documentazione.


2.3     SBC TS7800

La scheda TS7800 2.4` un single board computer della Technological Systems. Per informazioni
                    e
dettagliate vedere [11]. Qui riassumiamo le principali caratteristiche:

   • 500Mhz ARM9 CPU

   • Internal PCI bus, PC/104 connector
CAPITOLO 2. STRUMENTI UTILIZZATI                                                               10




                                      Figura 2.4: TS7800


   • 128MB DDR-RAM

   • 512MB NAND Flash (17MB/s)

   • 12,000 LUT programmable FPGA

   • 2 SD Card slots (1 micro-SD, 1 full-SD)

   • Boot da SD e micro-SD

   • 2 SATA ports

   • 2 USB 2.0 480Mbit/s Host/Device

   • Gigabit Ethernet, 10/100/1000 speeds

   • 110 GPIO (86 as a PC/104 bus)

   • S.O.: Debian Sarge con kernel 2.6.21 modificato

   Di default viene caricata una versione minimale di Debian (il boot avviene in 0.69s!) la cui
                                                                                                 `
console ` accessibile tramite la porta seriale oppure tramite telnet all’indirizzo 192.168.0.50. E
        e
possibile caricare i file nel dispositivo tramite ftp sempre allo stesso indirizzo.


2.3.1    Configurazione

Per avere un maggiore spazio di archiviazione e per non rischiare di compromettere il funziona-
mento della scheda durante gli esperimenti abbiamo deciso di installare il S.O. su scheda SD (a
questo proposito sono state seguite le istruzioni sul sito[12]). A questo punto (utilizzando un pc
CAPITOLO 2. STRUMENTI UTILIZZATI                                                               11


come router) abbiamo aggiornato il sistema con i pacchetti pi` recenti e installato il pacchetto
                                                             u
libusb0.1 necessario per utilizzare le API di Upek.


2.4     Software riconoscimento facciale hmmface

Il programma hmmface ` scritto per Windows. Vengono sfruttate le funzioni implementate
                     e
dalla libreria libopencv1.0 disponibile per numerose piattaforme hardware e software. In parti-
colare sono utilizzate le chiamate alla libreria cvaux che contengono utili funzioni per quanto
riguarda l’estrazione della DCT e l’addestramento dei parametri dei modelli HMM.


2.4.1    Funzionamento

Il programma si presenta come un unico eseguibile che pu` essere lanciato in varie modalit`:
                                                        o                                 a
addestramento, identificazione da file e identificazione da webcam. Ogni persona ha una direc-
tory (che ha come nome l’identificativo della persona) contenente le proprie immagini. Il path
di queste directory ` specificato all’interno del codice. Nel database di esempio di ogni soggetto
                    e
sono presenti 30 immagini. In modalit` addestramento il programma inizia facendo un check
                                     a
delle immagini presenti nel path specificato. In particolare inserisce i nomi delle directory scan-
sionate in un file chiamato face.db e crea per ogni directory un file <nome directory>.imobj che
contiene i nomi dei file trovati in ciascuna directory. In seguito per ogni directory trovata crea
un file <nome directory>.ehmm (che conterr` il modello) e un file face.db con un indice dei file
                                         a
precedentemente creati, il tutto in un percorso specificato sempre nel codice. A questo punto la
fase di addestramento vero e proprio modifica i file .ehmm creati in precedenza scrivendovi i dati
relativi al modello HMM creato mediante le funzioni della cvaux. In modalit` identificazione
                                                                           a
da file il programma estrae i coefficenti DCT dall’immagine data in input e, tramite l’algoritmo
di Viterbi, restituisce il nome del modello pi´ probabile e tutte le probabilit` di somiglianza a
                                              u                                a
ciascun modello. La modalit` di riconoscimento da webcam non ` stata mai utilizzata.
                           a                                 e
Capitolo 3


Biometria delle impronte digitali

3.1    Introduzione

In questo capitolo vengono esposte le principali caratteristiche biometriche relative alle im-
pronte digitali. Tutto il materiale ` tratto da [8]. Una impronta digitale 3.1 (pi` brevemente
                                    e                                             u
fingerprint) ` un’impronta lasciata dai dermatoglifi dell’ultima falange delle dita delle mani. Un
            e
dermatoglifo ` il risultato dell’alternarsi di creste e valli. Dermatoglifi sono presenti sulle palme
             e
delle mani, sulle piante dei piedi e sui polpastrelli delle dita. Le creste variano in ampiezza da
100 ai 300 micron, mentre il periodo cresta-valli corrisponde all’incirca a 500 micron. Esse sono
utilizzate da molto tempo ed estensivamente per l’identificazione degli esseri umani in generale,
e per poterne inoltre rilevare la presenza su oggetti collegati a eventi criminosi.


3.2    Fingerprint dal punto di vista biometrico

Esistono delle caratteristiche generali comuni a tutte le grandezze biometriche (dette anche
identificatori biometrici) misurabili:

   • 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
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
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    Acquisizione

Le fingerprint vengono rilevate tramite immagini. Oggi le immagini vengono elaborate in
maniera digitale. Un immagine (digitale) di fingerprint pu` essere ottenuta tramite scansione
                                                         o
on-line o off-line. Una scansione off-line ` ottenuta tipicamente digitalizzando un foglio di carta
                                         e
dove la fingerprint ` stata impressa precedentemente con l’uso di inchiostro. Un particolare
                   e
tipo di immagini off-line, usato soprattutto in indagini forensi, sono le cos` dette impronte la-
                                                                            ı
tenti trovate sulla scena del crimine. Sono ottenute tramite tenche basate sulla chimica. Una
scansione on-line si basa su un metodo (ottico,capacitivo,termico,ultrasuoni ecc...) per rilevare
direttamente le creste e le valli che costituiscono la fingerprint.
   Archiviare le immagini digitali grezze di fingerprint pu` essere problematico. Si stima in-
                                                          o
fatti che per memorizzare l’archivio di fingerprint dell’FBI (cartaceo), che contiene 200 milioni
di cartelle, siano necessari circa 2000 terabyte. Sfortunatamente le tecniche di compressione
tradizionali non sono soddisfacenti. Una nuova tecnica di compressione chiamata Wavelet Scalar
Quantization (WSQ) viene attualmente usata dall’FBI.


3.4    Rappresentazione ed estrazione delle features

Una buona rappresentazione delle fingerprint deve avere due caratteristiche: deve essere saliente
e opportuna. Saliente significa che la rappresentazione deve contenere le informazioni discrim-
inatorie della fingerprint. Opportuna significa che la rappresentazione deve poter essere estratta
facilmente, memorizzata in modo compatto e utile per i confronti. Le rappresentazioni basate su
immagini sono prevalenti in sistemi basati su confronti ottici e sulla correlazione delle immagini.
Questi sistemi soffrono di problemi causati dalla variazione di luminosit`, qualit` dell’immagine
                                                                        a        a
e 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
                                           a
loro funzionamento e sono robuste per una grande variet` di immagini. La fingerprint analizzata
                                                       a
a 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-
CAPITOLO 3. BIOMETRIA DELLE IMPRONTE DIGITALI                                                   15




Figura 3.2: Features a livello globale. a) Anello a sinistra b) Anello a destra c) Spira d) Arco
e) 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 fingerprint

Il problema del confronto delle immagini di fingerprint ` un problema difficile da risolvere.Tale
                                                       e
difficolt` ` principalmente dovuta alla grande variabilit` della stessa impronta nelle diverse
       a e                                             a
immagini. I fattori che causano tale variabilit` sono: spostamenti, rotazioni, sovrapposizioni
                                               a
parziali, distorsioni non lineari, pressione variabile, cambiamento di condizioni della pelle, ru-
CAPITOLO 3. BIOMETRIA DELLE IMPRONTE DIGITALI                                                     16




       Figura 3.3: Features a livello locale (pallini neri) e molto fine (cerchietti vuoti)


more, errori nell’estrazione delle features. Comunque, ad un osservatore non esperto, impronte
della stessa persona possono sembrare diverse mentre impronte di persone diverse possono
assomigliarsi. Di seguito vengono elencati diversi metodi di confronto.
   Il confronto manuale segue una serie di passi:

  1. valutare se il modello globale corrisponde, ovvero le fingerprints devono essere dello stesso
     tipo 3.2

  2. quantitativamente (almeno 12 per gli standard forensi degli USA) un certo numero di
     dettagli minuti devono corrispondere

  3. qualitativamente i dettagli minuti corrispondenti sono identici

Nella pratica esistono protocolli molto dettagliati per eseguire questi passi.
   Il confronto automatico non deve per forza seguire queste linee guida. Molti dei metodi pro-
posti negli ultimi 40 anni sono stati studiati appositamente per essere implementati a computer.
Possiamo dividere questi metodi in tre gruppi:

   • confronto basato sulla correlazione: due immagini di fingerprint sono sovrapposte e la
     correlazione tra i corrispondenti pixels ` 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
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.
                                  e


3.6     L’algoritmo proposto

Descriviamo ora l’algoritmo usato nella tesi per il confronto delle impronte digitali. Il nostro
algoritmo si basa (vedere 3.5 sulla correlazione delle immagini di fingerprint. In breve l’algoritmo
usa i coefficenti della trasformata discreta in coseno bidimensionale delle immagini di
fingerprint per ricavare i parametri di una catena di Markov nascosta (HMM hidden Markov
model). Questi parametri vengono salvati in un database (vedere fig. 3.4). La fase di confronto
consiste nel ricavare i coefficenti della dct dall’immagine in input e valutare quale dei modelli
disponibili produrrebbe una sequenza di uscite (appunto i coefficenti della dct) simile a quella
di input. Tale metodo ` stato proposto in precedenza da Guo H. [7]. Il modo in cui una persona
                      e
striscia il dito sullo scanner (anche in modo non corretto) pu` essere un elemento nella sua
                                                              o
identificazione in quanto esso si mantiene pi` o meno costante. Pertanto non sar` applicato
                                            u                                  a
nessun pre-processing alle immagini utilizzate.


3.6.1    Trasformata discreta in coseno

La trasformata discreta del coseno o DCT (dall’inglese Discrete Cosine Transform), ` la pi`
                                                                                   e      u
diffusa funzione che provvede alla compressione spaziale, capace di rilevare le variazioni di infor-
mazione tra un’area e quella contigua trascurando le ripetizioni[16]. L’immagine di fingerprint
viene divisa in blocchi. Dimensione e distanza tra i vari blocchi sono parametri dell’algoritmo.
CAPITOLO 3. BIOMETRIA DELLE IMPRONTE DIGITALI                                                    18




                              Figura 3.5: Processo di enrollment


Di ogni blocco viene calcolata la DCT bidimensionale estraendo solo un certo numero (dato in
input) di coefficenti.


3.6.2    Hidden Markov Model

I coefficenti estratti dalla fingerprint sono visti come l’output di un processo nascosto di Markov.
Un Modello di Markov nascosto (Hidden Markov Model - HMM) ` una catena di Markov i cui
                                                          e
stati 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
              e

Non siamo a conoscenza del numero reale di stati. Possiamo dunque scegliere un numero
ragionevole di stati in modo da garantire una sufficente quantit` di parametri che ricaveremo.
                                                              a
Data una o pi` sequenze di uscita (avendo a disposizione pi` immagini di una stessa impronta),
             u                                             u
si pu` trovare l’insieme pi` probabile per il quale si possano dichiarare le probabilit` dell’uscita
     o                     u                                                           a
e di transizione. Questo significa addestrare i parametri dell’HMM dato mediante il gruppo
dei dati relativi alle sequenze. Questo problema ` risolto dall’algoritmo di Baum-Welch.Per
                                                 e
approfondimenti vedere [4]


3.6.3    Enrollment

In generale con enrollment si intende la fase di cattura delle fingerprint ed estrazione delle
features. Per chiarezza vedere la figura 3.5
   A questo punto:
CAPITOLO 3. BIOMETRIA DELLE IMPRONTE DIGITALI                                                 19




                            Figura 3.6: Processo di identificazione


   • abbiamo le immagini di fingerprint

   • i coefficenti estratti dal calcolo della dct sono visti come l’output di un processo marko-
     viano.

   • siamo in grado di ricavare i parametri del nostro modello del processo.

`
E ragionevole, una volta fissato il numero di stati, creare un modello a catena di Markov per ogni
persona utilizzando, per una stima pi` accurata dei parametri, un certo numero di immagini
                                     u
della 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. Questa
fase ` 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    Identification

Data un’immagine di fingerprint in input, i modelli ottenuti dall’algoritmo di enrollment possono
essere usati per l’identificazione della persona oppure, data una fingerprint e un nome, per
verificare se la persona ` veramente chi dice di essere. Il nostro algoritmo pu` fare entrambe le
                        e                                                     o
cose. La fase di identificazione (vedi figura 3.6) consiste nel ricavare la sequenza di coefficenti
e applicare l’algoritmo di Viterbi sull’insieme dei modelli per identificare quello pi` probabile
                                                                                     u
e 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 dunque
creare un metodo per decidere se il soggetto non ` nessuno di quelli in archivio.
                                                 e


3.6.5    Verification

La fase di verifica (vedi figura 3.7) si basa sullo stesso principio dell’ identificazione. Risulta
necessario modificare il database in modo che, di volta in volta, l’utente selezioni un solo mod-
ello e l’algoritmo confronti l’immagine di fingerprint acquisita solo con esso. In questo caso `
                                                                                              e
CAPITOLO 3. BIOMETRIA DELLE IMPRONTE DIGITALI                                                  20




                                Figura 3.7: Processo di verifica


essenziale aggiungere un metodo per decidere se il confronto ha avuto esito positivo o negativo.
Per fare questo possiamo adottare diverse tecniche. Un primo metodo consiste nel confrontare
l’immagine in input con un modello di impronta generico (detto modello del mondo) e con
il modello corrispondente alla persona dichiarata. Se l’immagine non appartiene al soggetto
descritto dal modello con buona probabilit` essa verr` riconosciuta come modello generico. Un
                                          a          a
secondo metodo consiste nel fissare un valore limite (detto soglia) alla probabilit` data. Se
                                                                                  a
il risultato ` inferiore, allora la verifica ` negativa, altrimenti ` positiva. Nel nostro algorit-
             e                              e                      e
mo combiniamo le due tecniche, cio` facciamo il rapporto tra le due probabilit´ e a questo
                                  e                                           a
applichiamo una soglia.
Capitolo 4


Biometria delle impronte vocali

4.1    Introduzione

Il riconoscimento vocale ` considerato un ibrido tra biometria fisiologica e comportamentale in
                         e
quanto quanto l’emissione ` determinata sia dalla conformazione della gola e delle corde vocali,
                          e
sia da aspetti psicologici e umorali dell’utente (molto variabili nel tempo).


4.2    L’impronta vocale dal punto di vista biometrico

L’impronta vocale ` l’insieme delle caratteristiche della voce di un individuo che ne permetteno
                  e
l’identificazione. Sebbene non vi sia accordo su quale possa essere un insieme esaustivo di tali
caratteristiche, sono note alcune misurazioni in grado di caratterizzare ragionevolmente singoli
individui in gruppi sufficientemente limitati di individui (qualche centinaio). Queste misurazioni
vengono spesso utilizzate come misure biometriche per realizzare sistemi di verifica.[17]

   • 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
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    Acquisizione

L’acquisizione del campione e del template avviene tramite un microfono sensibile in cui avviene
la registrazione, da parte dell’utente, di alcune parole predefinite, in modo che gli algoritmi
possano apprendere le caratteristiche frequenze vocali.
   In fase di verifica i tempi possono essere ridotti e non ` pi` necessario che l’utente legga
                                                           e u
sequenze prestabilite: il software ` in grado di effettuare il riconoscimento indipendentemente
                                   e
dalle parole pronunciate e persino dal tono. In campo investigativo ci` ` particolarmente inter-
                                                                      oe
essante perch´ l’acquisizione pu` avvenire anche senza la collaborazione del soggetto. Inoltre
             e                  o
sarebbe sicuramente utile poter utilizzare i microfoni degli apparecchi telefonici (ad esempio per
delle intercettazioni automatizzate), sfortunatamente le linee telefoniche tradizionali dedicano
una banda molto limitata alla voce e questo causa una drastica perdita di informazione sul
segnale che rende il riconoscimento poco affidabile, specialmente nel caso di sovrapposzione di
pi` voci e per la presenza di rumore di fondo.
  u


4.4    Rappresentazione ed estrazione delle features

Il campione vocale acquisito viene memorizzato solitamente in forma di file wave PCM. Il
PCM provvede a salvare i dati audio senza nessun tipo di compressione, la forma d’onda viene
memorizzata direttamente. Quindi i file risultanti sono di elevate dimensioni ma non richiedono
elevata potenza di calcolo per essere riprodotti, ed essendo la codifica lossless preserva in buona
parte tutte le caratteristiche del campione analogico.
   Il primo passo per l’estrazione delle features consiste nell’applicare al campione un filtraggio
Cepstal. Si calcola la DFT (Trasformata Discreta di Fourier) del segnale di ingresso. In seguito
si calcola il logaritmo dei coefficenti. Successivamente si antitrasforma (IDFT). Quello che
abbiamo ottenuto ` una enfatizzazione delle frequenze caratteristiche, per mettere in evidenza
                 e
CAPITOLO 4. BIOMETRIA DELLE IMPRONTE VOCALI                                                     23


le features della voce. I coefficenti che si ricavano vengono, dopo opportuna normalizzazione,
utilizzati per addestrare un modello Gaussiano a Mixtures (GMM).


4.5    Confronto di impronte vocali

Per brevit` tratteremo solo il caso della verifica. Dato un campione in input vengono estratti
          a
i coefficenti spettrali (Cepstral) caratteristici e vengono confrontati, con l’algoritmo di Viterbi,
con il modello da verificare e con il modello del mondo. Viene calcolato il rapporto tra le due
probabilit`. Tale valore costituisce un punteggio che il modulo di decisione confronta con una
          a
soglia data per decidere se la verifica ha avuto esito positivo o negativo.


4.6    Note conclusive

A causa della scarsa affidabilit`, l’uso ` consigliato solo per applicazioni di sicurezza medio/bassa
                              a        e
in ambito civile, eventualmente associandolo ad altre tecniche biometriche.
   Buone prospettive si hanno invece nel campo del riconoscimento vocale per la dettatura
automatica di testi al computer, ed esistono gi` diversi software commerciali dedicati, anche se
                                               a
attualmente il giro d’affari ` ancora limitato.
                            e
Capitolo 5


Algoritmo di fusione sensoriale

Lo scopo di ogni sistema di verifica ` di accettare o rifiutare l’identit` dichiarata da una persona
                                    e                                  a
sulla base della corrispondenza di una biometria con il modello pre-acquisito della identit`
                                                                                           a
personale. Usando le impronte vocali modellate con le HMM, gli ingredienti a disposizione
sono: Impronta digitale (Fingerptint) osservata OF , modello HMM della persona abilitata λF ,
                                                                                          A

modello HMM medio delle persone Non Abilitate, λF A . Il problema ` dunque di determinare
                                                N                 e
mediante una soglia se accettare o meno l’identit` dichiarata. Ricordiamo che un modello HMM
                                                 a
pu` essere usato per generare una osservazione. L’algoritmo HMM consente in vari modi di
  o
determinare la probabilit` che un modello λ possa generare una determinata osservazione O,
                         a
cio` 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     o
autorizzati. Infatti, se la persona ` effettivamente quella che dichiara di essere, allora P (OF |λF ) >>
                                    e                                                             A

P (OF |λF A ). Questo porta a introdurre la seguente quantit`:
        N                                                   a

                                                P (OF |λF )
                                        ΛF =            A
                                               P (OF |λF A )
                                                       N

che, in termini logaritmici, diventa:

                            ΛF = log(P (OF |λF )) − log(P (OF |λF A ))
                                             A                  N


Questa grandezza normalizzata sar` molto alta se l’osservazione OF ` del proprietario del
                                 a                                 e
modello λ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
                                                                                       o
un termine analogo:
                            ΛS = log(P (OS |λS )) − log(P (OS |λS A ))
                                             A                  N




                                                 24
CAPITOLO 5. ALGORITMO DI FUSIONE SENSORIALE                                                             25


Le quantit` normalizzate ΛF e ΛS possono essere integrate in molti modi. Noi abbiamo scelto
          a
di integrarle usando una media pesata, per ottenere un indice x come risultato della fusione:

                                             x = αΛF + (1 − α)ΛS

      Il valore cos` ottenutoviene poi sottoposto a soglia per accettare o rifiutare l’identit` dichiara-
                   ı                                                                         a
ta:
      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    F
niamo 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         N

queste sequenze, calcoliamo media e varianza: µ(ΛF ), σ 2 (ΛF ) e µ(ΛS ), σ 2 (ΛS ).             Prima di
tutto stabiliamo che un buon valore per la soglia `: θ = αµ(ΛF ) + (1 − α)µ(ΛS ). Inoltre,
                                                  e
se 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              ı                                        a
dalla relativa varianza. E` importante tuttavia minimizzare la varianza di x per minimiz-
zare i falsi positivi e falsi negaivi della verifica. La minimizazione di σ 2 (x) ` facilmente ot-
                                                                                 e
tenuta come segue: visto che σ 2 (x) = α2 σ 2 (ΛF ) + (1 − α)2 σ 2 (ΛS ) + 2α(1 − α)Cov(ΛF , ΛS )
e che le impronte digitali e le impronte vocali sono statisticamente indipendenti, abbiamo
σ 2 (x) = α2 σ 2 (ΛF ) + (1 − α)2 σ 2 (ΛS ). Il valore di α si ottiene annullando la derivata di σ 2 (x)
                   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 α
     o
calcolato 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.
Capitolo 6


Implementazione in ambiente PC

6.1     Introduzione

L’implementazione del sistema biometrico consiste nel porre in opera lo scanner 2.2 e l’algoritmo
3.6. In ambiente pc non ci sono stati particolari problemi per l’implementazione. In questo
capitolo vengono descritti in dettaglio i passi svolti per la realizzazione pratica del sistema
biometrico.


6.2     Implementazione del sistema di acquisizione

Abbiamo a disposizione (si veda 2.2.3 ) due diverse API per interagire con lo scanner. Entrambe
funzionano sia in ambiente Windows che in ambiente Linux. Per comodit` (il S.O. del TS7800 `
                                                                     a                     e
Debian cfr. 2.3 ) ` stato scelto di sviluppare tutti i programmi sotto Linux. Per quanto riguarda
                  e
la scelta tra le due API in un primo momento sono state utilizzate le BSAPI e in seguito le
PTAPI 7.1


6.2.1    Funzioni dello scanner

Delle numerose routine disponibili a noi interessano in particolare quelle che permettono di:

   • inizializzare la libreria

   • stabilire la connessione con il dispositivo

   • ottenere l’immagine del fingerprint

   • chiudere la connessione con il dispositivo

   • deallocare la libreria


                                               26
CAPITOLO 6. IMPLEMENTAZIONE IN AMBIENTE PC                                                    27


   Altre funzioni permettono di fare l’enroll, memorizzare i templates ottenuti nel dispositivo,
effettuare la verifica o l’identificazione di una fingerprint acquisita sulla base dei templates
acquisiti. Queste funzioni verranno utilizzate per ottenere un benchmark delle prestazioni del
nostro algoritmo.


6.2.2    Formato dell’immagine

Come discusso ampiamente nelle sezioni 3.3 e 3.4 salvare le immagini grezze ottenute dal dis-
positvo ` un passo molto importante. A questo scopo bisogna tenere conto delle caratteristiche
        e
dell’immagine che si riesce a ottenere dal dispositivo. Nel nostro caso l’immagine ` descritta
                                                                                   e
dalla seguene struttura dati (simile nelle due API):

typedef struct pt_imgformat {
  PT_WORD InXDpi;      ///< Input X resolution.
  PT_WORD InYDpi;      ///< Input Y resolution.
  PT_WORD OutXDpi;      ///< Output X resolution.
  PT_WORD OutYDpi;      ///< Output Y resolution.
  PT_BYTE InBpp;      ///< Input color depth.
  PT_BYTE OutBpp;      ///< Output Color depth.
  PT_WORD PowerMode;        ///< Scanning power mode.
  PT_WORD CompressMode;       ///< Data compression mode.
  PT_WORD Flags;      ///< Additional flags (see PT_IMGFORMAT_FLAG_xxxx values).
} PT_IMGFORMAT;

   dove le risoluzioni sono impostate in base al modello dello scanner utilizzato. Nel nostro
caso riusciamo a ottenere un’immagine in gradazioni di grigio (8bit) di 144x384 pixels con
una risoluzione di 501 dpi. La chiamata alla funzione di acquisizione PT GRAB ci restituisce
un array di byte che rappresentano i singoli pixels codificati. Il formato pi` opportuno per
                                                                            u
memorizzare l’immagine ` il pgm (portable gray-map). E
                       e                               ` un formato non compresso composto
da uno header e dalla pixel map. Lo header, codificato in caratteri ASCII contenente i campi:
magic number (P5),larghezza,altezza,numero di colori. La pixel map ` cositituita semplicemente
                                                                   e
da una sequeza di byte che codificano i pixel con il primo byte che codifica il primo pixel in alto
a sinistra nell’immagine.


6.2.3    Programma di acqusizione

Il programma realizzato per l’acquisizione si basa in gran parte su un programma di esempio
                                                 `
disponibile nel pacchetto contenente le BSAPI. E stata mantenuta la parte relativa all’acqui-
CAPITOLO 6. IMPLEMENTAZIONE IN AMBIENTE PC                                                         28


sizione dell’immagine, contenente numerose strutture dati, callbacks del dispositivo e infor-
mazioni sul formato dell’immagine per la scansione. La struttura pu` essere schematizzata
                                                                   o
come segue:

   • inizializzazione della libreria

   • apertura connessione con il dispositivo

   • richiesta identificativo (e.g. pippo, persona1, giovanni ...)

   • acquisizione immagine di fingerprint

   • salvataggio in formato pgm

   • questi ultimi due passi vengono ripetuti 10 volte

   • chiusura connessione con il dispositivo

   • deallocazione della libreria

   In base all’id inserito viene creata una cartella che contiene le 10 immagini acquisite. Ne
vengono acquisite 10 in modo da avere una sufficente quantit` di immagini da utilizzare per
                                                          a
l’enrollment e la verifica. In un’altra tesi[5] ne vengono usate 2 per l’enrollment e 4 per la verifica.
Da notare che un primo controllo sulla qualit` dell’immagine viene effettuata direttamente del
                                             a
software di libreria in quanto deve ricostruire l’immagine a partire dalle fette inviategli dallo
scanner. In questa fase vengono segnalati eventi come variazione di pressione, strisciamento in
obliquo o troppo veloce, errori dovuti alla distorsione e rumore.


6.3     Implementazione di enrollment-verification-identification

L’algoritmo prescelto (vedere 3.6) ` stato implementato in precedenza in un programma, chiam-
                                   e
ato hmmface, che effettua il riconoscimento facciale. Per maggiori dettagli vedere 2.4


6.3.1    Modifiche apportate

Elenchiamo qui in seguito le modifiche apportate al programma:

   • essendo scritto per Windows e dovendo girare su Linux ` 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.
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
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’uso

In questo paragrafo viene spiegato l’utilizzo del sistema biometrico implementato su Pc.


6.4.1    Database

Il corretto funzionamento del programma richiede la costruzione di un database (su file) con
le immagini di fingerprint. Tale database ha una struttura molto semplice ed ` costituito da
                                                                            e
una directory principale contenente tante sotto directory quanti sono i soggetti. Il loro nome `
                                                                                               e
l’identificativo del soggetto in questione. All’interno di ogni sotto directory ci sono le immagini
di fingerprint. Il programma ` stato concepito per lavorare con tre database di immagini: il
                            e
database generale, il database corrente, il database degli autorizzati. Quello generale contiene
tutti i campioni raccolti. Quello degli autorizzati i soggetti autorizzati e quello corrente solo il
modello del mondo. Per la verifica sar` sufficiente alterare tale database aggiungendo il modello
                                     a
del soggetto di cui si vuole verificare l’identit`.
                                                a


6.4.2    Utilizzo

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

Gli eseguibili verify, enroll, identify hanno i seguenti parametri:

   • verify e identify: <immagine da verificare> <percorso database> [<larghezza blocco
      DCT> <altezza blocco DCT> <coefficiente X> <coefficienti Y> <step X> <step Y>
      <flag soppressione continua>]. I parametri tra parentesi non sono obbligatori e se non
      specificati vengono utilizzati i valori di default (6 6 4 4 4 4 1 nell’ordine).

   • enroll: <percorso database immagini> <larghezza blocco DCT> <altezza blocco DCT>
      <coefficiente X> <coefficienti Y> <step X> <step Y> <flag soppressione continua>].

Il file di configurazione contiene 4 elementi:

   • root:<path>. Root del programma

   • immagini:<path>. Dove si trova il database delle immagini

   • mondo:<path>. Dove si trova il database (e le immagini) che costituiscono il modello del
      mondo

   • autorizzati:<path>. Dove si trovano i modelli degli utenti autorizzati.
CAPITOLO 6. IMPLEMENTAZIONE IN AMBIENTE PC                                                      32


6.4.3    Esempi di utilizzo

Nella root del programma abbiamo le seguenti directory: database, databaseAutorizzati, databaseDis-
tinto. La directory database contiene la sottodirectory unauthorized che contiene le immagini
di fingerprint per costruire il modello del mondo. La directory databaseDistinto contiene tutte
le directory dei campioni prelevati. La directory databaseAutorizzati contiene il database delle
immagini dei soggetti autorizzati. Il file hmmfinger.cfg relativo sar` cosi composto:
                                                                   a

   • root:/root/del/programma

   • immagini:/root/del/programma/databaseDistinto

   • mondo:/root/del/programma/database

   • autorizzati:/root/del/programma/databaseAutorizzati

L’esecuzione di /verify/test.sh porta il programma a verificare, utilizzando uno per volta i mod-
elli autorizzati, tutte le immagini di tutti i campioni (contenute in databaseDistinto). L’ese-
cuzione di /identify/test.sh porta il programma ad identificare, utilizzando tutti i modelli costru-
iti sul database databaseDistinto, tutte le immagini di fingerprint di tutti i campioni (sempre
contenute in databaseDistinto).
Capitolo 7


Implementazione in ambiente ARM

7.1     Introduzione

Implementare quanto descritto fino ad ora in ambiente embedded ` una scelta strategica in
                                                              e
quanto, oltre a fattori legati al consumo energetico e scarso ingombro dei componenti, nell’ultimo
anno i processori ARM stanno guadagnando sempre pi` mercato[9] In questo capitolo trattiamo
                                                  u
i problemi affrontati per implementare l’algoritmo sulla scheda TS7800. Le difficolt` maggiorni
                                                                                 a
sono derivate da problemi di compatibilit` tra le librerie per x86 e quelle per ARM. Lo scanner,
                                         a
commercialmente provvisto solo delle API BSAPI 2.2 ha causato non pochi problemi di porting.


7.2     Programma di acqusizione

Come gi` accennato, originariamete era a nostra disposizione solo la libreria BSAPI (non open
       a
source) compilata per x86 e x64. Parallelamente abbiamo proceduto alla raccolta delle finger-
print utilizzando il programma basato su queste API e alla ricerca di una soluzione per perme-
ttere il funzionamento sul TS7800. Per risolvere il problema del porting sono state proposte le
seguenti soluzioni:


7.2.1    Primo tentativo

Come prima soluzione al problema si ` pensato di usare unaa libreria opensource chiamata
                                    e
libfprint [6] che allo stato attuale supporta circa 20 scanner di diversi produttori. Lo scanner
2.2 ` supportato per le sole modalit` di enroll e verification e non per l’invio dell’immagine
    e                               a
all’host (pc o arm). Lavorando sui sorgenti per un certo tempo si ` deciso di abbandonare il
                                                                  e
progetto data la struttura eccessivamente complicata. Quello che segue non ` utile ai fini del
                                                                           e
raggiungimento dell’obiettivo ma, date le parecchie ore spese in questo lavoro, sembra doveroso


                                               33
CAPITOLO 7. IMPLEMENTAZIONE IN AMBIENTE ARM                                                     34


riportare alcune considerazioni senza entrare troppo nei dettagli. Lo scheletro della libreria (le
chiamate di libreria o API) ` distinto in due classi di chiamate: quelle dirette a periferiche
                            e
             ` imaging (ottenimento dell’immagine della fingerprint) e quelle per periferiche
senza capacitdi
che supportano tale caratteristica. Per ogni famiglia di dispositivi c’` un listato in c contenente
                                                                       e
le informazioni di funzionamento, come parole di controllo codici di parit` e quant’altro. Anche
                                                                          a
questi 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
                               e
capacit` di imaging. L’esperimento ` stato quello di creare un file in grado di fare funzionare il
       a                           e
nostro scanner come periferica di imaging basandoci sul file descritto in precedenza. Lo scanner
viene modellato come una macchina a stati finiti in cui il passaggio da uno stato all’altro `
                                                                                           e
pilotato dalle risposte che la periferica manda in seguito ad un comando dell’host. I comandi
da mandare al dispositivo per metterlo nello stato di cattura immagine sono stati catturati
utilizzando il software Wireshark che permette la cattura dei pacchetti che transitano sul bus
USB. Nonostante questo il nostro esperimento non ` andato a buon fine in quanto ad un certo
                                                 e
punto il dispositivo non funzionava secondo il modello esposto in precedenza.


7.2.2    Secondo tentativo

Visto il precedente fallimento e tenendo conto delle informazioni ricavate dalla cattura dei
pacchetti (ad esempio lo header che precede ciascun pacchetto ` formato dai caratteri CIAO!)
                                                              e
si ` pensato di costruire ex-novo il driver per pilotare il dispositivo. Questa via sembrava
   e
promettere bene ma ad un certo punto ci siamo scontrati con un ulterirore problema: arrivati
ad un certo punto il dispositivo manda un pacchetto con dati non costanti (ovvero in due
sessioni diverse manda dati diversi). A prima vista sembrava un numero casuale per un qualche
tipo di CRC sui dati. Allora, copiando le parti relative alla gestione del CRC dai sorgenti della
libfprintf, si ` visto che comunque non era possibile pilotare il dispositivo nel modo voluto.
               e
Anche questo esperimento ` fallito. Solo pi` tardi, avendo a disposizione i codici sorgenti dei
                         e                 u
driver proprietari si ` osservato che i dati erano in realt` crittografati con AES.
                      e                                    a


7.2.3    Terzo tentativo

Si ` tentato di realizzare una versione minimale di Linux tale da permettere l’esecuzione del
   e
software di acquisizione, basato sulle BSAPI, su una macchina virtuale (bochs). Le scarse
prestazioni ottenute sul TS7800 (10 min per il bootstrap e 30 secondi per ogni comando dato)
hanno determinato il fallimento di questo tentativo di soluzione.
CAPITOLO 7. IMPLEMENTAZIONE IN AMBIENTE ARM                                                        35


7.2.4    Quarto tentativo

Dopo numerose mail e suppliche all’azienda (Upek) siamo riusciti ad ottenere i codici sorgenti
del driver proprietario. A questo punto ` stato sufficiente compilarli sul TS7800 e utilizzare il
                                        e
programma creato per PC ovviamente cambiando le chiamate alla liberia.


7.2.5    Conclusione
                                                                       `
La struttura del programma di acqusizione viene leggermente modificata. E sufficiente infatti
acquisire una sola impronta alla volta per la verifica (non le 10 descritte nel programma per
pc).


7.3     Implementazione di enrollment-verification-identification

Sul TS7800 verr` implementato soltanto il programma di verifica. L’enrollment risulta pesante
               a
gi` in ambiente pc. Il programma per la verifica si basa sulle librerie openCv. Esse sono
  a
disponibili per Arm gi` nelle repositories ufficiali di Debian. Provando ad installare le versioni
                      a
dev dei vari pacchetti ci rendiamo per` conto che manca un file di libreria chiamato libcxcore
                                      o
che ` un componente fondamentale della openCV. Seguono una serie di tentativi per risolvere
    e
il problema.


7.3.1    Cross-compilazione

La compilazione dei vari programmi sul TS7800 richiede parecchio tempo. La Techological
Systems mette a disposizione alcune tool-chain per compilare i programmi in ambiente pc e
differiscono per il tipo di emulazione dell’unit` floating point. L’algebra in virgola mobile viene
                                               a
emulata dal Kernel. Esistono due varianti di questa emulazione: la pi` vecchia chiamata oldAbi
                                                                     u
e la pi` recente detta gnueAbi. Viene utilizzata quest’ultima.
       u


7.3.2    Primo tentativo

La versione del sistema operativo (3.1 Sarge) installata sul TS7800 ` una versione di Debian
                                                                    e
ormai obsoleta. Aggiorniamo il S.O. passando alla versione 5.0 Lenny. Questo ha risolto effetti-
vamente il problema delle librerie ma, per ragioni che ancora oggi risultano oscure, con questa
versione del S.O. lo scanner non funziona. Una prova effettuata con il debugger gdb ha messo
in luce che la libreria dello scanner entra in loop infinito in fase di inizializzione del dispositivo.
CAPITOLO 7. IMPLEMENTAZIONE IN AMBIENTE ARM                                                  36


7.3.3    Secondo tentativo

Su S.O. Debian Sarge. Scarichiamo i sorgenti della libreria e proviamo a compilarla. La compi-
lazione va a buon fine ma quando utilizziamo il programma di verifica otteniamo un errore di
segmentation fault. Dopo numerose compilazioni con diversi parametri scopriamo che linkando
staticamente le librerie al nostro programma il problema viene risolto.


7.4     Implementazione del sistema automatizzato

L’idea alla basa ` 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-
            a
gramma di verifica e acquisizione) l’implementazione proposta ` basata su uno script in bash
                                                             e
che 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.
Fusione di impronta digitale e impronta vocale per il controllo accessi
Fusione di impronta digitale e impronta vocale per il controllo accessi
Fusione di impronta digitale e impronta vocale per il controllo accessi
Fusione di impronta digitale e impronta vocale per il controllo accessi
Fusione di impronta digitale e impronta vocale per il controllo accessi
Fusione di impronta digitale e impronta vocale per il controllo accessi
Fusione di impronta digitale e impronta vocale per il controllo accessi
Fusione di impronta digitale e impronta vocale per il controllo accessi
Fusione di impronta digitale e impronta vocale per il controllo accessi
Fusione di impronta digitale e impronta vocale per il controllo accessi

Mais conteúdo relacionado

Destaque

Destaque (19)

Tenses
TensesTenses
Tenses
 
08 chapter 1
08 chapter 108 chapter 1
08 chapter 1
 
Articles
ArticlesArticles
Articles
 
Past
PastPast
Past
 
Blogging presentation
Blogging presentationBlogging presentation
Blogging presentation
 
I want to live forever!
I want to live forever!I want to live forever!
I want to live forever!
 
ODTUG The Necessary Knowledge and Tools You Need to Have for SOA Suite 11g
ODTUG The Necessary Knowledge and Tools You Need to Have for SOA Suite 11gODTUG The Necessary Knowledge and Tools You Need to Have for SOA Suite 11g
ODTUG The Necessary Knowledge and Tools You Need to Have for SOA Suite 11g
 
Beeman -linguistics and-anthropology_1_
Beeman -linguistics and-anthropology_1_Beeman -linguistics and-anthropology_1_
Beeman -linguistics and-anthropology_1_
 
烏鎮
烏鎮烏鎮
烏鎮
 
Para pessoas de bom gosto
Para pessoas de bom gostoPara pessoas de bom gosto
Para pessoas de bom gosto
 
Att tillgängliggöra kulturarv
Att tillgängliggöra kulturarvAtt tillgängliggöra kulturarv
Att tillgängliggöra kulturarv
 
Oliver twist
Oliver twistOliver twist
Oliver twist
 
Catalogue 2014 07
Catalogue 2014 07Catalogue 2014 07
Catalogue 2014 07
 
Finding neverland june 14 2011
Finding neverland june 14 2011Finding neverland june 14 2011
Finding neverland june 14 2011
 
A Marketing Case for Content
A Marketing Case for ContentA Marketing Case for Content
A Marketing Case for Content
 
ความรู้เบื้องต้นเกี่ยวกับผู้บริหาร
ความรู้เบื้องต้นเกี่ยวกับผู้บริหารความรู้เบื้องต้นเกี่ยวกับผู้บริหาร
ความรู้เบื้องต้นเกี่ยวกับผู้บริหาร
 
Blogging presentation
Blogging presentationBlogging presentation
Blogging presentation
 
08 chapter 1 (1)
08 chapter 1 (1)08 chapter 1 (1)
08 chapter 1 (1)
 
10 virus-mas-peligrosos-de-todo-el-tiempo
10 virus-mas-peligrosos-de-todo-el-tiempo10 virus-mas-peligrosos-de-todo-el-tiempo
10 virus-mas-peligrosos-de-todo-el-tiempo
 

Semelhante a Fusione di impronta digitale e impronta vocale per il controllo accessi

Autenticazione Continua Durante la Navigazione Web Basata sulla Dinamica del ...
Autenticazione Continua Durante la Navigazione Web Basata sulla Dinamica del ...Autenticazione Continua Durante la Navigazione Web Basata sulla Dinamica del ...
Autenticazione Continua Durante la Navigazione Web Basata sulla Dinamica del ...danieledegan
 
Estrazione automatica di informazioni da documenti cartacei: progetto e reali...
Estrazione automatica di informazioni da documenti cartacei: progetto e reali...Estrazione automatica di informazioni da documenti cartacei: progetto e reali...
Estrazione automatica di informazioni da documenti cartacei: progetto e reali...Luca Bressan
 
Sviluppo e analisi prestazionale di algoritmi di videoanalisi in tecnologie ...
Sviluppo e analisi prestazionale di algoritmi di videoanalisi in  tecnologie ...Sviluppo e analisi prestazionale di algoritmi di videoanalisi in  tecnologie ...
Sviluppo e analisi prestazionale di algoritmi di videoanalisi in tecnologie ...Andrea Montanari
 
PROGETTO E REALIZZAZIONE DI UN SISTEMA PER L’ANNOTAZIONE AUTOMATICA DI IMMAGI...
PROGETTO E REALIZZAZIONE DI UN SISTEMA PER L’ANNOTAZIONE AUTOMATICA DI IMMAGI...PROGETTO E REALIZZAZIONE DI UN SISTEMA PER L’ANNOTAZIONE AUTOMATICA DI IMMAGI...
PROGETTO E REALIZZAZIONE DI UN SISTEMA PER L’ANNOTAZIONE AUTOMATICA DI IMMAGI...guestfe85ba
 
Realizzazione di un workflow integrato per la rilevazione di domini phishing
Realizzazione di un workflow integrato per la rilevazione di domini phishingRealizzazione di un workflow integrato per la rilevazione di domini phishing
Realizzazione di un workflow integrato per la rilevazione di domini phishingGiuliaMilan4
 
Rilevamento di attacchi di rete tramite protocolli di monitoraggio per router...
Rilevamento di attacchi di rete tramite protocolli di monitoraggio per router...Rilevamento di attacchi di rete tramite protocolli di monitoraggio per router...
Rilevamento di attacchi di rete tramite protocolli di monitoraggio per router...Ce.Se.N.A. Security
 
Digitalizzazione di un processo industriale
Digitalizzazione di un processo industrialeDigitalizzazione di un processo industriale
Digitalizzazione di un processo industrialeGiulioDeBiasio2
 
Strategie ingestigative in ambito di criminalità informatica
Strategie ingestigative in ambito di criminalità informaticaStrategie ingestigative in ambito di criminalità informatica
Strategie ingestigative in ambito di criminalità informaticapeppespe
 
Realizzazione di una base di dati per la memorizzazione di dati provenienti d...
Realizzazione di una base di dati per la memorizzazione di dati provenienti d...Realizzazione di una base di dati per la memorizzazione di dati provenienti d...
Realizzazione di una base di dati per la memorizzazione di dati provenienti d...mfurlanetto
 
Realizzazione di un controllore basato su piattaforma robotica Thymio 2.
Realizzazione di un controllore basato su piattaforma robotica Thymio 2.Realizzazione di un controllore basato su piattaforma robotica Thymio 2.
Realizzazione di un controllore basato su piattaforma robotica Thymio 2.anwarNazik
 
Migrazione dei meccanismi di workflow di un sistema informativo assicurativo ...
Migrazione dei meccanismi di workflow di un sistema informativo assicurativo ...Migrazione dei meccanismi di workflow di un sistema informativo assicurativo ...
Migrazione dei meccanismi di workflow di un sistema informativo assicurativo ...Donato Clun
 
Compressione di insiemi di espressioni regolari tramite programmazione geneti...
Compressione di insiemi di espressioni regolari tramite programmazione geneti...Compressione di insiemi di espressioni regolari tramite programmazione geneti...
Compressione di insiemi di espressioni regolari tramite programmazione geneti...Simone Cumar
 
Profilazione utente in ambienti virtualizzati
Profilazione utente in ambienti virtualizzatiProfilazione utente in ambienti virtualizzati
Profilazione utente in ambienti virtualizzatiPietro Corona
 
Classificazione delle segnalazioni cliente in base alla rilevanza secondo tec...
Classificazione delle segnalazioni cliente in base alla rilevanza secondo tec...Classificazione delle segnalazioni cliente in base alla rilevanza secondo tec...
Classificazione delle segnalazioni cliente in base alla rilevanza secondo tec...Dario Crosera
 
Tesi Specialistica - L'ottimizzazione delle risorse della Grid di EGEE median...
Tesi Specialistica - L'ottimizzazione delle risorse della Grid di EGEE median...Tesi Specialistica - L'ottimizzazione delle risorse della Grid di EGEE median...
Tesi Specialistica - L'ottimizzazione delle risorse della Grid di EGEE median...Davide Ciambelli
 
Supsi dti abstract_informatica_2012
Supsi dti abstract_informatica_2012Supsi dti abstract_informatica_2012
Supsi dti abstract_informatica_2012L Dr
 
QUANTO È FACILE CONTROLLARE IL COMPUTER E I VIDEOGIOCHI CON IL PENSIERO? USAB...
QUANTO È FACILE CONTROLLARE IL COMPUTER E I VIDEOGIOCHI CON IL PENSIERO? USAB...QUANTO È FACILE CONTROLLARE IL COMPUTER E I VIDEOGIOCHI CON IL PENSIERO? USAB...
QUANTO È FACILE CONTROLLARE IL COMPUTER E I VIDEOGIOCHI CON IL PENSIERO? USAB...Michele Pierangeli
 
Multibiometric systems and pattern recognition with conv net
Multibiometric systems and pattern recognition with conv net Multibiometric systems and pattern recognition with conv net
Multibiometric systems and pattern recognition with conv net Marco Cipriano
 
Progettazione e Sviluppo di un Sistema per Migliorare il Codice Generato da u...
Progettazione e Sviluppo di un Sistema per Migliorare il Codice Generato da u...Progettazione e Sviluppo di un Sistema per Migliorare il Codice Generato da u...
Progettazione e Sviluppo di un Sistema per Migliorare il Codice Generato da u...DamianoRavalico
 

Semelhante a Fusione di impronta digitale e impronta vocale per il controllo accessi (20)

Autenticazione Continua Durante la Navigazione Web Basata sulla Dinamica del ...
Autenticazione Continua Durante la Navigazione Web Basata sulla Dinamica del ...Autenticazione Continua Durante la Navigazione Web Basata sulla Dinamica del ...
Autenticazione Continua Durante la Navigazione Web Basata sulla Dinamica del ...
 
Estrazione automatica di informazioni da documenti cartacei: progetto e reali...
Estrazione automatica di informazioni da documenti cartacei: progetto e reali...Estrazione automatica di informazioni da documenti cartacei: progetto e reali...
Estrazione automatica di informazioni da documenti cartacei: progetto e reali...
 
Sviluppo e analisi prestazionale di algoritmi di videoanalisi in tecnologie ...
Sviluppo e analisi prestazionale di algoritmi di videoanalisi in  tecnologie ...Sviluppo e analisi prestazionale di algoritmi di videoanalisi in  tecnologie ...
Sviluppo e analisi prestazionale di algoritmi di videoanalisi in tecnologie ...
 
PROGETTO E REALIZZAZIONE DI UN SISTEMA PER L’ANNOTAZIONE AUTOMATICA DI IMMAGI...
PROGETTO E REALIZZAZIONE DI UN SISTEMA PER L’ANNOTAZIONE AUTOMATICA DI IMMAGI...PROGETTO E REALIZZAZIONE DI UN SISTEMA PER L’ANNOTAZIONE AUTOMATICA DI IMMAGI...
PROGETTO E REALIZZAZIONE DI UN SISTEMA PER L’ANNOTAZIONE AUTOMATICA DI IMMAGI...
 
Realizzazione di un workflow integrato per la rilevazione di domini phishing
Realizzazione di un workflow integrato per la rilevazione di domini phishingRealizzazione di un workflow integrato per la rilevazione di domini phishing
Realizzazione di un workflow integrato per la rilevazione di domini phishing
 
Rilevamento di attacchi di rete tramite protocolli di monitoraggio per router...
Rilevamento di attacchi di rete tramite protocolli di monitoraggio per router...Rilevamento di attacchi di rete tramite protocolli di monitoraggio per router...
Rilevamento di attacchi di rete tramite protocolli di monitoraggio per router...
 
Digitalizzazione di un processo industriale
Digitalizzazione di un processo industrialeDigitalizzazione di un processo industriale
Digitalizzazione di un processo industriale
 
Strategie ingestigative in ambito di criminalità informatica
Strategie ingestigative in ambito di criminalità informaticaStrategie ingestigative in ambito di criminalità informatica
Strategie ingestigative in ambito di criminalità informatica
 
Realizzazione di una base di dati per la memorizzazione di dati provenienti d...
Realizzazione di una base di dati per la memorizzazione di dati provenienti d...Realizzazione di una base di dati per la memorizzazione di dati provenienti d...
Realizzazione di una base di dati per la memorizzazione di dati provenienti d...
 
Realizzazione di un controllore basato su piattaforma robotica Thymio 2.
Realizzazione di un controllore basato su piattaforma robotica Thymio 2.Realizzazione di un controllore basato su piattaforma robotica Thymio 2.
Realizzazione di un controllore basato su piattaforma robotica Thymio 2.
 
Migrazione dei meccanismi di workflow di un sistema informativo assicurativo ...
Migrazione dei meccanismi di workflow di un sistema informativo assicurativo ...Migrazione dei meccanismi di workflow di un sistema informativo assicurativo ...
Migrazione dei meccanismi di workflow di un sistema informativo assicurativo ...
 
Compressione di insiemi di espressioni regolari tramite programmazione geneti...
Compressione di insiemi di espressioni regolari tramite programmazione geneti...Compressione di insiemi di espressioni regolari tramite programmazione geneti...
Compressione di insiemi di espressioni regolari tramite programmazione geneti...
 
Profilazione utente in ambienti virtualizzati
Profilazione utente in ambienti virtualizzatiProfilazione utente in ambienti virtualizzati
Profilazione utente in ambienti virtualizzati
 
Classificazione delle segnalazioni cliente in base alla rilevanza secondo tec...
Classificazione delle segnalazioni cliente in base alla rilevanza secondo tec...Classificazione delle segnalazioni cliente in base alla rilevanza secondo tec...
Classificazione delle segnalazioni cliente in base alla rilevanza secondo tec...
 
Tesi Specialistica - L'ottimizzazione delle risorse della Grid di EGEE median...
Tesi Specialistica - L'ottimizzazione delle risorse della Grid di EGEE median...Tesi Specialistica - L'ottimizzazione delle risorse della Grid di EGEE median...
Tesi Specialistica - L'ottimizzazione delle risorse della Grid di EGEE median...
 
Supsi dti abstract_informatica_2012
Supsi dti abstract_informatica_2012Supsi dti abstract_informatica_2012
Supsi dti abstract_informatica_2012
 
RIAP
RIAPRIAP
RIAP
 
QUANTO È FACILE CONTROLLARE IL COMPUTER E I VIDEOGIOCHI CON IL PENSIERO? USAB...
QUANTO È FACILE CONTROLLARE IL COMPUTER E I VIDEOGIOCHI CON IL PENSIERO? USAB...QUANTO È FACILE CONTROLLARE IL COMPUTER E I VIDEOGIOCHI CON IL PENSIERO? USAB...
QUANTO È FACILE CONTROLLARE IL COMPUTER E I VIDEOGIOCHI CON IL PENSIERO? USAB...
 
Multibiometric systems and pattern recognition with conv net
Multibiometric systems and pattern recognition with conv net Multibiometric systems and pattern recognition with conv net
Multibiometric systems and pattern recognition with conv net
 
Progettazione e Sviluppo di un Sistema per Migliorare il Codice Generato da u...
Progettazione e Sviluppo di un Sistema per Migliorare il Codice Generato da u...Progettazione e Sviluppo di un Sistema per Migliorare il Codice Generato da u...
Progettazione e Sviluppo di un Sistema per Migliorare il Codice Generato da u...
 

Fusione di impronta digitale e impronta vocale per il controllo accessi

  • 1. ` UNIVERSITA DEGLI STUDI DI TRIESTE Facolt` di Ingegneria a Corso di Laurea in Ingegneria dell’Informazione Tesi Di Laurea Fusione di impronta digitale e impronta vocale per il controllo accessi Laureando Pietro Corona Matricola 83600039 Relatore Prof. Enzo Mumolo Anno Accademico 2010/2011
  • 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. Introduzione In questa tesi si ` affrontato il problema della biometria multimodale. Le informazioni biomet- e riche sono informazioni di origine biologica che appartengono solo ad una persona e non sono condivise da altri. Potremmo dire che praticamente quasi tutte le caratteristiche biologiche di una persona che si riescono a misurare con la tecniche disponibili attualmente caratterizzano unicamente quella persona. Partendo dal DNA, l’iride, il volto, la pelle o la voce di una per- sona sono alcune delle caratteristiche tipiche della identit` di ogni persona e che, se acquisite e a confrontate, possono essere utilizzate per distinguere le persone stesse. Questa distinzione pu` o essere utilizzata sia per identificare che per verificare l’identit` di una persona. La differenza tra a identificazione e verifica sta nel fatto che nel primo caso il sistema riconosce a chi appartiene quella biometria (tra un insieme di biometrie note) e nel secondo il sistema accerta o meno che una persona sia chi dichiara di essere, confrontando l’impronta biometrica precedentemente acquisita con quella prodotta in quel preciso istante. La biometria multimodale integra pi` u informazioni biometriche usando un sistema di fusione dei dati. Compensando le inevitabili lacune e imprecisioni di una biometria con le altre biometrie utilizzate, ci si aspetta che una buona integrazione migliori i risultati globali. Tralasciando le ovvie considerazioni legate alla maggiore o minore invasivit` dell’acqusizione a delle informazioni biometriche, e al fatto che generalmente si vuole minimizzare il tasso di falsi positivi, cio` la percentuale di volte che il sistema accetta impostori, osserviamo solo che vi sono e moltissimi casi in cui ` necessario verificare l’identit` di una persona, tipicamente per l’accesso e a a risorse che non si vogliono condividere con altre persone. Ovviamente l’accesso pu` essere o richiesto ad una informazione logica, ad un sistema hardware o ad un luogo protetto, che non si vuole cio` sia vistato da altri. Un sistema di verifica multibiometrica ha uno o pi` ingressi legati e u alle 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. La biometria vocale ` trattata in un’altra tesi [10]. In questa tesi ci si ` occupati invece della e e biometria dell’impronta digitale. Per l’acquisizione dell’impronta digitale ` stato necessario e utilizzare un sensore specifico e risolvere i problemi della acquisizione del segnale. Acquisito iv
  • 5. INTRODUZIONE v il segnale ` stato poi necessario mettere a punto un programma per confrontare le impronte e acquisite. Per semplicit` ` stato modificato un programma pre-esistente basato sull’algoritmo ae EHMM. Tutte queste queste operazioni sono state fatte preliminarmente in ambiente PC per un migliore controllo dei programmi sviluppati. Un ulteriore obiettivo che ci siamo posti in questa tesi ` di utilizzare un processore tipico dei sistemi embedded, cio` l’ARM 9, che ` un processore e e e che non necessita raffreddamento e che consente di arrivare a notevoli livelli di miniaturizzazione, nel caso si voglia ingegnerizzare l’intero sistema. Il piano di lavoro di questa tesi ` 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 possibili strategie di fusione. Nel Capitolo 2 si descrive il sensore utilizzato e il sistema basato sul processore ARM usato per l’implementazione in tempo reale. Nel Capitolo 3 si discute della biometria delle impronte digitali descrivendo il relativo algoritmo di confronto. Il Capitolo 4 presenta un breve riassunto delle caratteristiche principali della biometria basata sulle impronte vocali. Nel Capitolo 5 viene descritto l’algoritmo di fusione per integrare i dati provenienti dalle due biometrie. Nel Capitolo 6 si descrive l’implementazione in ambiente PC e nel Capitolo 7 l’implemen- tazione sul processore ARM. Nel Capitolo 8 si riportano alcuni risultati sperimentali e nel Capitolo Conclusioni e sviluppi futuri si riportano alcune considerazioni conlusive della tesi indicando possibili lavori futuri.
  • 6. Indice Introduzione iv Indice vi Elenco delle figure ix 1 La biometria multimodale 1 1.1 Introduzione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 1.2 Prestazioni di un sistema biometrico multimodale . . . . . . . . . . . . . . . . . . 2 1.3 Strategie di fusione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 1.3.1 Architettura . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 1.3.2 Livello di fusione nelle architetture parallele . . . . . . . . . . . . . . . . . 4 1.3.3 Algoritmo di fusione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 1.3.4 Modo di addestramento . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 1.4 Quali informazioni integrare . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 1.5 Modulo di scelta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 2 Strumenti utilizzati 7 2.1 Introduzione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 2.2 Fingerprint scanner . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 2.2.1 Caratteristiche tecniche . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 2.2.2 Collegamento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 2.2.3 Interfacciamento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 2.3 SBC TS7800 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 2.3.1 Configurazione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 2.4 Software riconoscimento facciale hmmface . . . . . . . . . . . . . . . . . . . . . . 11 2.4.1 Funzionamento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 3 Biometria delle impronte digitali 12 vi
  • 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 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 4 Biometria delle impronte vocali 21 4.1 Introduzione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 4.2 L’impronta vocale dal punto di vista biometrico . . . . . . . . . . . . . . . . . . . 21 4.3 Acquisizione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 4.4 Rappresentazione ed estrazione delle features . . . . . . . . . . . . . . . . . . . . 22 4.5 Confronto di impronte vocali . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 4.6 Note conclusive . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 5 Algoritmo di fusione sensoriale 24 6 Implementazione in ambiente PC 26 6.1 Introduzione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 6.2 Implementazione del sistema di acquisizione . . . . . . . . . . . . . . . . . . . . . 26 6.2.1 Funzioni dello scanner . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 6.2.2 Formato dell’immagine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 6.2.3 Programma di acqusizione . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 6.3 Implementazione di enrollment-verification-identification . . . . . . . . . . . . . . 28 6.3.1 Modifiche apportate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 6.4 Manuale d’uso . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 6.4.1 Database . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 6.4.2 Utilizzo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 6.4.3 Esempi di utilizzo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 7 Implementazione in ambiente ARM 33 7.1 Introduzione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
  • 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 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 8 Risultati sperimentali 38 8.1 Introduzione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 8.2 Dataset acquisito . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 8.3 Parametri valutati . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 8.4 Algoritmo Upek . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 8.5 Fingerprint identification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 8.6 Fingerprint Verification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 8.7 Fusione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 8.8 Commenti . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 Conclusioni e sviluppi futuri 44 Bibliografia 45
  • 9. Elenco delle figure 1.1 Principali architetture. (a) Parallela. (b) In cascata (c) Gerarchica . . . . . . . . . . 3 1.2 Livelli di fusione in architetture parallele. (a) Livello di features. (b) Livello di confidenza o rank (c) Livello astratto . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 1.3 Tecniche pi` diffuse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . u 5 2.1 Fingerprint Scanner Upek TCEEA4. (a) Davanti. (b) Dietro. . . . . . . . . . . . . . 8 2.2 Cavetto di collegamento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 2.3 MiaKey . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 2.4 TS7800 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 3.1 Esempio di fingerprint . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 3.2 Features a livello globale. a) Anello a sinistra b) Anello a destra c) Spira d) Arco e) Arco appuntito. I quadrati indicano le cuspidi mentre i cerchi indicano gli anelli . . 15 3.3 Features a livello locale (pallini neri) e molto fine (cerchietti vuoti) . . . . . . . . . . 16 3.4 Addestramento modello HMM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 3.5 Processo di enrollment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 3.6 Processo di identificazione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 3.7 Processo di verifica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 6.1 Schema a blocchi programma di enroll . . . . . . . . . . . . . . . . . . . . . . . . . . 29 6.2 Schema a blocchi programma di verifica . . . . . . . . . . . . . . . . . . . . . . . . . 29 8.1 Calcolo EER nel caso dell’identificazione con ritaglio dell’immagine . . . . . . . . . . 40 8.2 Prestazioni algoritmo identificazione ottenute con parametri diversi. (1) 4 4 4 4 4 4 1. (2) 12 32 3 3 12 32 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 8.3 Calcolo EER nel caso della verifica con ritaglio dell’immagine . . . . . . . . . . . . . 41 8.4 Prestazioni algoritmo verifica ottenute con parametri diversi. . . . . . . . . . . . . . 42 8.5 Prestazioni dei singoli sistemi e del sistema biometrico multimodale ottenuto . . . . 43 ix
  • 10. Capitolo 1 La biometria multimodale 1.1 Introduzione Un identificatore biometrico ` un particolare tipo di misura biometrica. Una istanza ` una e e singola misurazione di un identificatore. Un sistema biometrico ` un sistema (nel nostro e caso di sicurezza) il cui funzionamento ` basato su uno o pi` identificatori biometrici. I sistemi e u biometrici 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 che richiedono un alto livello di sicurezza spesso i sistemi basati sulla biometria unimodale non garantiscono le performance richieste a causa della limitatezza delle informazioni contenute nel singolo identificatore. Questo problema potrebbe essere risolto affiancando la biometria con tecniche di autenticazione tradizionali basate sulla conoscenza di un segreto o al possesso di un oggetto (password, smart card). Tuttavia si ripresentano i soliti problemi legati a questi metodi ovvero la possibilit` che il segreto o l’oggetto vengano rubati,indovinati,persi. La soluzione a a 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 2 economicamente sia come tempo di calcolo), l’utente perde pi` tempo nelle fasi di enroll e u verifica e inoltre se la fusione tra i vari identificatori non ` eseguita correttamente provoca un e degrado dell’accuratezza. 1.2 Prestazioni di un sistema biometrico multimodale La verifica e l’identificazione sono tipici problemi di classificazione. Nel caso della verifica l’utente dichiara la propria identit` e il sistema deve verificare la verit` della sua affermazione. a a Gli algoritmi di verifica devono classificare l’identificatore biometrico fornito in input in due classi: modello del soggetto corrispondente all’identit` dichiarata, modello del mondo. Nel caso a dell’identificazione abbiamo N+1 classi (soggetto 1, ...,soggetto N,sconosciuto). Diversi metodi di classificazione (detti anche classificatori),anche dello stesso identificatore biometrico, anche avendo la medesima accuratezza, spesso commettono errori classificando diversi identificatori (e.g. pronte digitali di soggetti diversi). Questo ci suggerisce che, combinando insieme due o pi` metodi di classificazione, possiamo ottenere risultati migliori di quelli ottenuti con il u singolo classificatore. Esistono molti articoli a supporto di questa teoria. Si veda ad esempio [2]. Riassumendo, le motivazioni che spingono all’utilizzo di sistemi basati su identificatori biometrici multipli sono: 1. diversi metodi di classificazione per uno stesso identificatore sono realizzati in contesti diversi. 2. i metodi di classificazione sono addestrati con modelli costruiti solitamente su campioni circoscritti (e.g. personale di un laboratorio) e potrebbero non essere adatti a condizioni diverse (popolazione, ambiente ecc...) 3. diversi metodi addestrati sul medesimo campione possono differire nelle prestazioni 4. molti metodi forniscono risultati diversi con diversi parametri di inizializzazione. 5. rappresentazioni multiple della stessa caratteristica biometrica potrebbero portare a risul- tati diversi. 6. utilizzando 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. u In conclusione possiamo affermare che le prestazioni di un sistema biometrico multimodale possono risultare superiori ad un sistema unimodale.
  • 12. CAPITOLO 1. LA BIOMETRIA MULTIMODALE 3 Figura 1.1: Principali architetture. (a) Parallela. (b) In cascata (c) Gerarchica 1.3 Strategie di fusione Esistono molti modi di combinare insieme gli identificatori biometrici. Questi metodi si distin- guono sulla base dell’architettura del sistema, del livello in cui avviene la fusione,dell’algoritmo di fusione e del modo di addestramento del sistema. 1.3.1 Architettura Le principali architetture per combinare i metodi di classificazione sono: parallela Fig. 1.1 a), in cascata o seriale Fig. 1.1 b), gerarchica o ad albero Fig. 1.1 c), Nello schema parallelo tutti i classificatori lavorano indipendentemente e i risultati vengono combinati successivamente attraverso il modulo di fusione. Nello schema in cascata i classifi- catori eseguono uno dopo l’altro avendo a disposizione il risultato del precedente. Ad ogni passo il numero di classi per il confronto viene progressivamente ridotto. Nello schema gerarchico i classificatori vengono combinati in una struttura ad albero. Tipicamente i primi classificatori sono poco accurati (ed economici) in quanto devono solamente individuare un certo numero di classi possibili, mentre i successivi sono via via pi` accurati (e costosi). u
  • 13. CAPITOLO 1. LA BIOMETRIA MULTIMODALE 4 Figura 1.2: Livelli di fusione in architetture parallele. (a) Livello di features. (b) Livello di confidenza o rank (c) Livello astratto 1.3.2 Livello di fusione nelle architetture parallele Focalizziamo l’attenzione sull’architettura parallela, quella oggi pi` usata oggi, ed in particolare u sulla collocazione del modulo di fusione. Differenti strategie di combinazione richiedono diversi tipi di dati presi da ogni classificatore del sistema. Questi dati possono essere divisi nelle seguenti categorie: features o misure, valori di confidenza,rank o score, valori astratti Fig. 1.2. Al livello delle features, le features estratte dalle diverse modalit` sono combinate insieme. a Il nuovo spazio delle features ` pi` grande e sperabilmente ` pi` discriminativo. Schemi di e u e u integrazione come questo vengono detti anche tightly coupled. Al livello di confidenza, rank o score ogni classificatore indica per ogni classe un valore che stima la probabilit` che il mod- a ello 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 dicono a integrazione loosely coupled. I risultati migliori si ottengono combinando i risultati prima possibile [8]. Tuttavia risulta pi` difficoltoso combinare i dati a livello di features in quanto u le relazioni tra gli spazi delle features dei diversi classificatori potrebbero non essere note e le rappresentazioni delle features potrebbero non essere compatibili.
  • 14. CAPITOLO 1. LA BIOMETRIA MULTIMODALE 5 Figura 1.3: Tecniche pi` diffuse u 1.3.3 Algoritmo di fusione Una algoritmo di fusione rappresenta la tecnica usata per combinare l’output di pi` classificatori. u Le 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 nei valori forniti dai vari classificatori. Risulta pertanto necessario normalizzare questi valori (e.g. in modo lineare) nello stesso intervallo (e.g [0,1]). In conclusione non si pu` dire a priori quale o sia la strategia migliore. La scelta viene effettuata in base a degli esperimenti fatti su un dato campione. La strategia che offre una migliore accuratezza viene scelta. 1.3.4 Modo di addestramento Alcuni algoritmi sono statici cio` una volta fissati i parametri trattano tutti gli input allo stesso e modo. Non richiedono nessun tipo di addestramento. Altri metodi invece richiedono di essere
  • 15. CAPITOLO 1. LA BIOMETRIA MULTIMODALE 6 addestrati e possono portare a un miglioramento dell’accuratezza rispetto ai metodi statici. Altri algoritmi di fusione sono adattativi nel senso che valutano o pesano le decisioni di ogni classificatore in base all’input, basandosi sulla conoscenza delle condizioni ambientali. 1.4 Quali informazioni integrare Adesso che sappiamo come effetture la fusione dei risultati dei classificatori concentriamoci su quali informazioni combinare per migliorare le performance del nostro sistema. I sistemi biometrici multimodali possono operare nei seguenti scenari: 1. sensori multipli: viene combinata l’informazione ottenuta da diversi sensori della stessa misura biometrica. Ad esempio la stessa impronta digitale con due scanner diversi. 2. biometrie multiple: biometrie diverse,ad esempio fingerprint e voce, vengono fuse. Il sistema necessita di sensori multipli e di un opportuno algoritmo di fusione. 3. 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’aumento dell’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. e 1.5 Modulo di scelta Il modulo di scelta ` un componente che, avendo in input lo score fornito dal classificatore o e dal modulo di fusione, opera la seguente scelta: se il punteggio (score) ` superiore ad una certa e soglia, considera corretto il risultato della verifica e quindi autorizza il soggetto, altrimenti la verifica ha avuto esito negativo e il soggetto non ` autorizzato. La soglia, di solito, viene e fissata sperimentalmente. Variandone il valore si possono calcolare, per un dato campione, i falsi positivi e i falsi negativi. Il valore che minimizza entrambi non ` sempre la scelta pi` e u opportuna. Bisogna infatti valutare se l’applicazione richiede pochi falsi positivi o pochi falsi negativi. Per una descrizione pi` accurata di questi indicatori vedere 8.3. u
  • 16. Capitolo 2 Strumenti utilizzati 2.1 Introduzione In questo capitolo vengono descritti gli strumenti e le apparecchiature usate per la realizzazione del lavoro. Uno degli obiettivi del lavoro (vedi introduzione ) ` quello di implementare su un e single board computer (sbc) ARM un algoritmo di fingerprint verification che permetta l’auten- ticazione dei soggetti autorizzati. Per realizzare questo obiettivo abbiamo scelto di sviluppare il lavoro su di una scheda TS7800 della Technological Systems [13] collegato ad uno scanner di impronte digitali TCEEA4 della Upek [15]. Inoltre per la verifica viene utilizzato, come base di partenza, un programma gi` esistente, chiamato hmmface, opportunamente modificato a (vedere6.3.1). 2.2 Fingerprint scanner Esistono generalmente due categorie di scanner: touch e sweep. Negli scanner touch l’utente appoggia il dito su una superfice trasparente e il sensore si muove per ottenere l’immagine completa. Hanno il vantaggio di essere molto semplici da usare. Tuttavia presentano il problema delle impronte latenti che restano impresse sulla superfice di appoggio. A lungo andare portano ad un degrado della qualit` dell’immagine acqusita. Negli scanner sweep l’utente striscia il a dito contro il sensore. Questo permette di risolvere i problemi di pulizia che presentano gli scanner touch ma al tempo stesso sono pi` difficili da utilizzare. L’utente deve avere cura di u strisciare il dito centrandolo sul sensore, facendolo scorrere con velocit` il pi´ possibile costante a u e mantenendo sempre una pressione sufficiente. Abbiamo scelto uno scanner sweep perch` e appunto 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 tecniche Per maggiori informazioni si veda [1]. Riportiamo le caratteristiche dello scanner per noi pi` u rilevanti: • Sensore di tipo capacitivo • Permette l’interfacciamento via USB 2.0 • Possiede un processore MIPS RISC (TCD50) • Memoria interna 4Kb • Sensore swipe Upek TouchStrip TCS4C • Dimensione dell’array di scansione 192x4 pixel • Risoluzione: 508 dpi Nell’immagine 2.1 si pu` vedere lo scanner. o 2.2.2 Collegamento Sullo scanner ` presente un connettore Molex (2.54mm) (del tipo in figura 2.1 b) per un cavo e piatto a 4 pin mostrato in figura 2.2. Per collegare lo scanner all’host (PC o sbc) via USB abbiamo sfruttato il connettore Molex (2.54 mm) presente su una chiavetta usb MiaKey della SATA 2.3 che funge da semplice hub senza funzioni aggiuntive. Un altro modo per collegare lo scanner ad un cavo USB sarebbe stato quello di crearsi un cavo USB ad-hoc tuttavia la prima soluzione ` 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: MiaKey 2.2.3 Interfacciamento Non utilizziamo nessun device driver per gestire lo scanner: per Linux esistono delle API basate sulla libusb0.1. Sono a disposizione due diverse API per l’interfacciamento tra lo scanner e i programmi utente: le BSAPI e le PTAPI. Le prime rendono disponibili funzioni ad alto livello per` sono disponibili solo per ambiente PC mentre le seconde hanno un’interfaccia pi` primitiva o u ma si possono compilare in ambiente ARM[14]. Entrambe le librerie sono fornite con la relativa documentazione. 2.3 SBC TS7800 La scheda TS7800 2.4` un single board computer della Technological Systems. Per informazioni e dettagliate 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 e possibile caricare i file nel dispositivo tramite ftp sempre allo stesso indirizzo. 2.3.1 Configurazione Per avere un maggiore spazio di archiviazione e per non rischiare di compromettere il funziona- mento della scheda durante gli esperimenti abbiamo deciso di installare il S.O. su scheda SD (a questo proposito sono state seguite le istruzioni sul sito[12]). A questo punto (utilizzando un pc
  • 20. CAPITOLO 2. STRUMENTI UTILIZZATI 11 come router) abbiamo aggiornato il sistema con i pacchetti pi` recenti e installato il pacchetto u libusb0.1 necessario per utilizzare le API di Upek. 2.4 Software riconoscimento facciale hmmface Il programma hmmface ` scritto per Windows. Vengono sfruttate le funzioni implementate e dalla libreria libopencv1.0 disponibile per numerose piattaforme hardware e software. In parti- colare sono utilizzate le chiamate alla libreria cvaux che contengono utili funzioni per quanto riguarda l’estrazione della DCT e l’addestramento dei parametri dei modelli HMM. 2.4.1 Funzionamento Il programma si presenta come un unico eseguibile che pu` essere lanciato in varie modalit`: o a addestramento, identificazione da file e identificazione da webcam. Ogni persona ha una direc- tory (che ha come nome l’identificativo della persona) contenente le proprie immagini. Il path di queste directory ` specificato all’interno del codice. Nel database di esempio di ogni soggetto e sono presenti 30 immagini. In modalit` addestramento il programma inizia facendo un check a delle immagini presenti nel path specificato. In particolare inserisce i nomi delle directory scan- sionate in un file chiamato face.db e crea per ogni directory un file <nome directory>.imobj che contiene i nomi dei file trovati in ciascuna directory. In seguito per ogni directory trovata crea un file <nome directory>.ehmm (che conterr` il modello) e un file face.db con un indice dei file a precedentemente creati, il tutto in un percorso specificato sempre nel codice. A questo punto la fase di addestramento vero e proprio modifica i file .ehmm creati in precedenza scrivendovi i dati relativi al modello HMM creato mediante le funzioni della cvaux. In modalit` identificazione a da file il programma estrae i coefficenti DCT dall’immagine data in input e, tramite l’algoritmo di Viterbi, restituisce il nome del modello pi´ probabile e tutte le probabilit` di somiglianza a u a ciascun modello. La modalit` di riconoscimento da webcam non ` stata mai utilizzata. a e
  • 21. Capitolo 3 Biometria delle impronte digitali 3.1 Introduzione In questo capitolo vengono esposte le principali caratteristiche biometriche relative alle im- pronte digitali. Tutto il materiale ` tratto da [8]. Una impronta digitale 3.1 (pi` brevemente e u fingerprint) ` un’impronta lasciata dai dermatoglifi dell’ultima falange delle dita delle mani. Un e dermatoglifo ` il risultato dell’alternarsi di creste e valli. Dermatoglifi sono presenti sulle palme e delle mani, sulle piante dei piedi e sui polpastrelli delle dita. Le creste variano in ampiezza da 100 ai 300 micron, mentre il periodo cresta-valli corrisponde all’incirca a 500 micron. Esse sono utilizzate da molto tempo ed estensivamente per l’identificazione degli esseri umani in generale, e per poterne inoltre rilevare la presenza su oggetti collegati a eventi criminosi. 3.2 Fingerprint dal punto di vista biometrico Esistono delle caratteristiche generali comuni a tutte le grandezze biometriche (dette anche identificatori biometrici) misurabili: • 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 Acquisizione Le fingerprint vengono rilevate tramite immagini. Oggi le immagini vengono elaborate in maniera digitale. Un immagine (digitale) di fingerprint pu` essere ottenuta tramite scansione o on-line o off-line. Una scansione off-line ` ottenuta tipicamente digitalizzando un foglio di carta e dove la fingerprint ` stata impressa precedentemente con l’uso di inchiostro. Un particolare e tipo di immagini off-line, usato soprattutto in indagini forensi, sono le cos` dette impronte la- ı tenti trovate sulla scena del crimine. Sono ottenute tramite tenche basate sulla chimica. Una scansione on-line si basa su un metodo (ottico,capacitivo,termico,ultrasuoni ecc...) per rilevare direttamente le creste e le valli che costituiscono la fingerprint. Archiviare le immagini digitali grezze di fingerprint pu` essere problematico. Si stima in- o fatti che per memorizzare l’archivio di fingerprint dell’FBI (cartaceo), che contiene 200 milioni di cartelle, siano necessari circa 2000 terabyte. Sfortunatamente le tecniche di compressione tradizionali non sono soddisfacenti. Una nuova tecnica di compressione chiamata Wavelet Scalar Quantization (WSQ) viene attualmente usata dall’FBI. 3.4 Rappresentazione ed estrazione delle features Una buona rappresentazione delle fingerprint deve avere due caratteristiche: deve essere saliente e opportuna. Saliente significa che la rappresentazione deve contenere le informazioni discrim- inatorie della fingerprint. Opportuna significa che la rappresentazione deve poter essere estratta facilmente, memorizzata in modo compatto e utile per i confronti. Le rappresentazioni basate su immagini sono prevalenti in sistemi basati su confronti ottici e sulla correlazione delle immagini. Questi sistemi soffrono di problemi causati dalla variazione di luminosit`, qualit` dell’immagine a a e 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 a loro funzionamento e sono robuste per una grande variet` di immagini. La fingerprint analizzata a a 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 15 Figura 3.2: Features a livello globale. a) Anello a sinistra b) Anello a destra c) Spira d) Arco e) Arco appuntito. I quadrati indicano le cuspidi mentre i cerchi indicano gli anelli 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 fingerprint Il problema del confronto delle immagini di fingerprint ` un problema difficile da risolvere.Tale e difficolt` ` principalmente dovuta alla grande variabilit` della stessa impronta nelle diverse a e a immagini. I fattori che causano tale variabilit` sono: spostamenti, rotazioni, sovrapposizioni a parziali, 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, impronte della stessa persona possono sembrare diverse mentre impronte di persone diverse possono assomigliarsi. Di seguito vengono elencati diversi metodi di confronto. Il confronto manuale segue una serie di passi: 1. valutare se il modello globale corrisponde, ovvero le fingerprints devono essere dello stesso tipo 3.2 2. quantitativamente (almeno 12 per gli standard forensi degli USA) un certo numero di dettagli minuti devono corrispondere 3. qualitativamente i dettagli minuti corrispondenti sono identici Nella pratica esistono protocolli molto dettagliati per eseguire questi passi. Il confronto automatico non deve per forza seguire queste linee guida. Molti dei metodi pro- posti negli ultimi 40 anni sono stati studiati appositamente per essere implementati a computer. Possiamo dividere questi metodi in tre gruppi: • confronto basato sulla correlazione: due immagini di fingerprint sono sovrapposte e la correlazione tra i corrispondenti pixels ` 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. e 3.6 L’algoritmo proposto Descriviamo ora l’algoritmo usato nella tesi per il confronto delle impronte digitali. Il nostro algoritmo si basa (vedere 3.5 sulla correlazione delle immagini di fingerprint. In breve l’algoritmo usa i coefficenti della trasformata discreta in coseno bidimensionale delle immagini di fingerprint per ricavare i parametri di una catena di Markov nascosta (HMM hidden Markov model). Questi parametri vengono salvati in un database (vedere fig. 3.4). La fase di confronto consiste nel ricavare i coefficenti della dct dall’immagine in input e valutare quale dei modelli disponibili produrrebbe una sequenza di uscite (appunto i coefficenti della dct) simile a quella di input. Tale metodo ` stato proposto in precedenza da Guo H. [7]. Il modo in cui una persona e striscia il dito sullo scanner (anche in modo non corretto) pu` essere un elemento nella sua o identificazione in quanto esso si mantiene pi` o meno costante. Pertanto non sar` applicato u a nessun pre-processing alle immagini utilizzate. 3.6.1 Trasformata discreta in coseno La trasformata discreta del coseno o DCT (dall’inglese Discrete Cosine Transform), ` la pi` e u diffusa funzione che provvede alla compressione spaziale, capace di rilevare le variazioni di infor- mazione tra un’area e quella contigua trascurando le ripetizioni[16]. L’immagine di fingerprint viene divisa in blocchi. Dimensione e distanza tra i vari blocchi sono parametri dell’algoritmo.
  • 27. CAPITOLO 3. BIOMETRIA DELLE IMPRONTE DIGITALI 18 Figura 3.5: Processo di enrollment Di ogni blocco viene calcolata la DCT bidimensionale estraendo solo un certo numero (dato in input) di coefficenti. 3.6.2 Hidden Markov Model I coefficenti estratti dalla fingerprint sono visti come l’output di un processo nascosto di Markov. Un Modello di Markov nascosto (Hidden Markov Model - HMM) ` una catena di Markov i cui e stati 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 e Non siamo a conoscenza del numero reale di stati. Possiamo dunque scegliere un numero ragionevole di stati in modo da garantire una sufficente quantit` di parametri che ricaveremo. a Data una o pi` sequenze di uscita (avendo a disposizione pi` immagini di una stessa impronta), u u si pu` trovare l’insieme pi` probabile per il quale si possano dichiarare le probabilit` dell’uscita o u a e di transizione. Questo significa addestrare i parametri dell’HMM dato mediante il gruppo dei dati relativi alle sequenze. Questo problema ` risolto dall’algoritmo di Baum-Welch.Per e approfondimenti vedere [4] 3.6.3 Enrollment In generale con enrollment si intende la fase di cattura delle fingerprint ed estrazione delle features. Per chiarezza vedere la figura 3.5 A questo punto:
  • 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 ogni persona utilizzando, per una stima pi` accurata dei parametri, un certo numero di immagini u della 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. Questa fase ` 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 Identification Data un’immagine di fingerprint in input, i modelli ottenuti dall’algoritmo di enrollment possono essere usati per l’identificazione della persona oppure, data una fingerprint e un nome, per verificare se la persona ` veramente chi dice di essere. Il nostro algoritmo pu` fare entrambe le e o cose. La fase di identificazione (vedi figura 3.6) consiste nel ricavare la sequenza di coefficenti e applicare l’algoritmo di Viterbi sull’insieme dei modelli per identificare quello pi` probabile u e 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 dunque creare un metodo per decidere se il soggetto non ` nessuno di quelli in archivio. e 3.6.5 Verification La fase di verifica (vedi figura 3.7) si basa sullo stesso principio dell’ identificazione. Risulta necessario modificare il database in modo che, di volta in volta, l’utente selezioni un solo mod- ello e l’algoritmo confronti l’immagine di fingerprint acquisita solo con esso. In questo caso ` e
  • 29. CAPITOLO 3. BIOMETRIA DELLE IMPRONTE DIGITALI 20 Figura 3.7: Processo di verifica essenziale aggiungere un metodo per decidere se il confronto ha avuto esito positivo o negativo. Per fare questo possiamo adottare diverse tecniche. Un primo metodo consiste nel confrontare l’immagine in input con un modello di impronta generico (detto modello del mondo) e con il modello corrispondente alla persona dichiarata. Se l’immagine non appartiene al soggetto descritto dal modello con buona probabilit` essa verr` riconosciuta come modello generico. Un a a secondo metodo consiste nel fissare un valore limite (detto soglia) alla probabilit` data. Se a il risultato ` inferiore, allora la verifica ` negativa, altrimenti ` positiva. Nel nostro algorit- e e e mo combiniamo le due tecniche, cio` facciamo il rapporto tra le due probabilit´ e a questo e a applichiamo una soglia.
  • 30. Capitolo 4 Biometria delle impronte vocali 4.1 Introduzione Il riconoscimento vocale ` considerato un ibrido tra biometria fisiologica e comportamentale in e quanto quanto l’emissione ` determinata sia dalla conformazione della gola e delle corde vocali, e sia da aspetti psicologici e umorali dell’utente (molto variabili nel tempo). 4.2 L’impronta vocale dal punto di vista biometrico L’impronta vocale ` l’insieme delle caratteristiche della voce di un individuo che ne permetteno e l’identificazione. Sebbene non vi sia accordo su quale possa essere un insieme esaustivo di tali caratteristiche, sono note alcune misurazioni in grado di caratterizzare ragionevolmente singoli individui in gruppi sufficientemente limitati di individui (qualche centinaio). Queste misurazioni vengono spesso utilizzate come misure biometriche per realizzare sistemi di verifica.[17] • 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 Acquisizione L’acquisizione del campione e del template avviene tramite un microfono sensibile in cui avviene la registrazione, da parte dell’utente, di alcune parole predefinite, in modo che gli algoritmi possano apprendere le caratteristiche frequenze vocali. In fase di verifica i tempi possono essere ridotti e non ` pi` necessario che l’utente legga e u sequenze prestabilite: il software ` in grado di effettuare il riconoscimento indipendentemente e dalle parole pronunciate e persino dal tono. In campo investigativo ci` ` particolarmente inter- oe essante perch´ l’acquisizione pu` avvenire anche senza la collaborazione del soggetto. Inoltre e o sarebbe sicuramente utile poter utilizzare i microfoni degli apparecchi telefonici (ad esempio per delle intercettazioni automatizzate), sfortunatamente le linee telefoniche tradizionali dedicano una banda molto limitata alla voce e questo causa una drastica perdita di informazione sul segnale che rende il riconoscimento poco affidabile, specialmente nel caso di sovrapposzione di pi` voci e per la presenza di rumore di fondo. u 4.4 Rappresentazione ed estrazione delle features Il campione vocale acquisito viene memorizzato solitamente in forma di file wave PCM. Il PCM provvede a salvare i dati audio senza nessun tipo di compressione, la forma d’onda viene memorizzata direttamente. Quindi i file risultanti sono di elevate dimensioni ma non richiedono elevata potenza di calcolo per essere riprodotti, ed essendo la codifica lossless preserva in buona parte tutte le caratteristiche del campione analogico. Il primo passo per l’estrazione delle features consiste nell’applicare al campione un filtraggio Cepstal. Si calcola la DFT (Trasformata Discreta di Fourier) del segnale di ingresso. In seguito si calcola il logaritmo dei coefficenti. Successivamente si antitrasforma (IDFT). Quello che abbiamo ottenuto ` una enfatizzazione delle frequenze caratteristiche, per mettere in evidenza e
  • 32. CAPITOLO 4. BIOMETRIA DELLE IMPRONTE VOCALI 23 le features della voce. I coefficenti che si ricavano vengono, dopo opportuna normalizzazione, utilizzati per addestrare un modello Gaussiano a Mixtures (GMM). 4.5 Confronto di impronte vocali Per brevit` tratteremo solo il caso della verifica. Dato un campione in input vengono estratti a i coefficenti spettrali (Cepstral) caratteristici e vengono confrontati, con l’algoritmo di Viterbi, con il modello da verificare e con il modello del mondo. Viene calcolato il rapporto tra le due probabilit`. Tale valore costituisce un punteggio che il modulo di decisione confronta con una a soglia data per decidere se la verifica ha avuto esito positivo o negativo. 4.6 Note conclusive A causa della scarsa affidabilit`, l’uso ` consigliato solo per applicazioni di sicurezza medio/bassa a e in ambito civile, eventualmente associandolo ad altre tecniche biometriche. Buone prospettive si hanno invece nel campo del riconoscimento vocale per la dettatura automatica di testi al computer, ed esistono gi` diversi software commerciali dedicati, anche se a attualmente il giro d’affari ` ancora limitato. e
  • 33. Capitolo 5 Algoritmo di fusione sensoriale Lo scopo di ogni sistema di verifica ` di accettare o rifiutare l’identit` dichiarata da una persona e a sulla base della corrispondenza di una biometria con il modello pre-acquisito della identit` a personale. Usando le impronte vocali modellate con le HMM, gli ingredienti a disposizione sono: Impronta digitale (Fingerptint) osservata OF , modello HMM della persona abilitata λF , A modello HMM medio delle persone Non Abilitate, λF A . Il problema ` dunque di determinare N e mediante una soglia se accettare o meno l’identit` dichiarata. Ricordiamo che un modello HMM a pu` essere usato per generare una osservazione. L’algoritmo HMM consente in vari modi di o determinare la probabilit` che un modello λ possa generare una determinata osservazione O, a cio` 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 o autorizzati. Infatti, se la persona ` effettivamente quella che dichiara di essere, allora P (OF |λF ) >> e A P (OF |λF A ). Questo porta a introdurre la seguente quantit`: N a P (OF |λF ) ΛF = A P (OF |λF A ) N che, in termini logaritmici, diventa: ΛF = log(P (OF |λF )) − log(P (OF |λF A )) A N Questa grandezza normalizzata sar` molto alta se l’osservazione OF ` del proprietario del a e modello λ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 o un termine analogo: ΛS = log(P (OS |λS )) − log(P (OS |λS A )) A N 24
  • 34. CAPITOLO 5. ALGORITMO DI FUSIONE SENSORIALE 25 Le quantit` normalizzate ΛF e ΛS possono essere integrate in molti modi. Noi abbiamo scelto a di integrarle usando una media pesata, per ottenere un indice x come risultato della fusione: x = αΛF + (1 − α)ΛS Il valore cos` ottenutoviene poi sottoposto a soglia per accettare o rifiutare l’identit` dichiara- ı a ta: 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 F niamo 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 N queste sequenze, calcoliamo media e varianza: µ(ΛF ), σ 2 (ΛF ) e µ(ΛS ), σ 2 (ΛS ). Prima di tutto stabiliamo che un buon valore per la soglia `: θ = αµ(ΛF ) + (1 − α)µ(ΛS ). Inoltre, e se 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 ı a dalla relativa varianza. E` importante tuttavia minimizzare la varianza di x per minimiz- zare i falsi positivi e falsi negaivi della verifica. La minimizazione di σ 2 (x) ` facilmente ot- e tenuta come segue: visto che σ 2 (x) = α2 σ 2 (ΛF ) + (1 − α)2 σ 2 (ΛS ) + 2α(1 − α)Cov(ΛF , ΛS ) e che le impronte digitali e le impronte vocali sono statisticamente indipendenti, abbiamo σ 2 (x) = α2 σ 2 (ΛF ) + (1 − α)2 σ 2 (ΛS ). Il valore di α si ottiene annullando la derivata di σ 2 (x) 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 α o calcolato 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 6 Implementazione in ambiente PC 6.1 Introduzione L’implementazione del sistema biometrico consiste nel porre in opera lo scanner 2.2 e l’algoritmo 3.6. In ambiente pc non ci sono stati particolari problemi per l’implementazione. In questo capitolo vengono descritti in dettaglio i passi svolti per la realizzazione pratica del sistema biometrico. 6.2 Implementazione del sistema di acquisizione Abbiamo a disposizione (si veda 2.2.3 ) due diverse API per interagire con lo scanner. Entrambe funzionano sia in ambiente Windows che in ambiente Linux. Per comodit` (il S.O. del TS7800 ` a e Debian cfr. 2.3 ) ` stato scelto di sviluppare tutti i programmi sotto Linux. Per quanto riguarda e la scelta tra le due API in un primo momento sono state utilizzate le BSAPI e in seguito le PTAPI 7.1 6.2.1 Funzioni dello scanner Delle numerose routine disponibili a noi interessano in particolare quelle che permettono di: • inizializzare la libreria • stabilire la connessione con il dispositivo • ottenere l’immagine del fingerprint • chiudere la connessione con il dispositivo • deallocare la libreria 26
  • 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 templates acquisiti. Queste funzioni verranno utilizzate per ottenere un benchmark delle prestazioni del nostro algoritmo. 6.2.2 Formato dell’immagine Come discusso ampiamente nelle sezioni 3.3 e 3.4 salvare le immagini grezze ottenute dal dis- positvo ` un passo molto importante. A questo scopo bisogna tenere conto delle caratteristiche e dell’immagine che si riesce a ottenere dal dispositivo. Nel nostro caso l’immagine ` descritta e dalla seguene struttura dati (simile nelle due API): typedef struct pt_imgformat { PT_WORD InXDpi; ///< Input X resolution. PT_WORD InYDpi; ///< Input Y resolution. PT_WORD OutXDpi; ///< Output X resolution. PT_WORD OutYDpi; ///< Output Y resolution. PT_BYTE InBpp; ///< Input color depth. PT_BYTE OutBpp; ///< Output Color depth. PT_WORD PowerMode; ///< Scanning power mode. PT_WORD CompressMode; ///< Data compression mode. PT_WORD Flags; ///< Additional flags (see PT_IMGFORMAT_FLAG_xxxx values). } PT_IMGFORMAT; dove le risoluzioni sono impostate in base al modello dello scanner utilizzato. Nel nostro caso riusciamo a ottenere un’immagine in gradazioni di grigio (8bit) di 144x384 pixels con una risoluzione di 501 dpi. La chiamata alla funzione di acquisizione PT GRAB ci restituisce un array di byte che rappresentano i singoli pixels codificati. Il formato pi` opportuno per u memorizzare l’immagine ` il pgm (portable gray-map). E e ` un formato non compresso composto da uno header e dalla pixel map. Lo header, codificato in caratteri ASCII contenente i campi: magic number (P5),larghezza,altezza,numero di colori. La pixel map ` cositituita semplicemente e da una sequeza di byte che codificano i pixel con il primo byte che codifica il primo pixel in alto a sinistra nell’immagine. 6.2.3 Programma di acqusizione Il programma realizzato per l’acquisizione si basa in gran parte su un programma di esempio ` disponibile nel pacchetto contenente le BSAPI. E stata mantenuta la parte relativa all’acqui-
  • 37. CAPITOLO 6. IMPLEMENTAZIONE IN AMBIENTE PC 28 sizione dell’immagine, contenente numerose strutture dati, callbacks del dispositivo e infor- mazioni sul formato dell’immagine per la scansione. La struttura pu` essere schematizzata o come segue: • inizializzazione della libreria • apertura connessione con il dispositivo • richiesta identificativo (e.g. pippo, persona1, giovanni ...) • acquisizione immagine di fingerprint • salvataggio in formato pgm • questi ultimi due passi vengono ripetuti 10 volte • chiusura connessione con il dispositivo • deallocazione della libreria In base all’id inserito viene creata una cartella che contiene le 10 immagini acquisite. Ne vengono acquisite 10 in modo da avere una sufficente quantit` di immagini da utilizzare per a l’enrollment e la verifica. In un’altra tesi[5] ne vengono usate 2 per l’enrollment e 4 per la verifica. Da notare che un primo controllo sulla qualit` dell’immagine viene effettuata direttamente del a software di libreria in quanto deve ricostruire l’immagine a partire dalle fette inviategli dallo scanner. In questa fase vengono segnalati eventi come variazione di pressione, strisciamento in obliquo o troppo veloce, errori dovuti alla distorsione e rumore. 6.3 Implementazione di enrollment-verification-identification L’algoritmo prescelto (vedere 3.6) ` stato implementato in precedenza in un programma, chiam- e ato hmmface, che effettua il riconoscimento facciale. Per maggiori dettagli vedere 2.4 6.3.1 Modifiche apportate Elenchiamo qui in seguito le modifiche apportate al programma: • essendo scritto per Windows e dovendo girare su Linux ` 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’uso In questo paragrafo viene spiegato l’utilizzo del sistema biometrico implementato su Pc. 6.4.1 Database Il corretto funzionamento del programma richiede la costruzione di un database (su file) con le immagini di fingerprint. Tale database ha una struttura molto semplice ed ` costituito da e una directory principale contenente tante sotto directory quanti sono i soggetti. Il loro nome ` e l’identificativo del soggetto in questione. All’interno di ogni sotto directory ci sono le immagini di fingerprint. Il programma ` stato concepito per lavorare con tre database di immagini: il e database generale, il database corrente, il database degli autorizzati. Quello generale contiene tutti i campioni raccolti. Quello degli autorizzati i soggetti autorizzati e quello corrente solo il modello del mondo. Per la verifica sar` sufficiente alterare tale database aggiungendo il modello a del soggetto di cui si vuole verificare l’identit`. a 6.4.2 Utilizzo Il 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.sh Gli eseguibili verify, enroll, identify hanno i seguenti parametri: • verify e identify: <immagine da verificare> <percorso database> [<larghezza blocco DCT> <altezza blocco DCT> <coefficiente X> <coefficienti Y> <step X> <step Y> <flag soppressione continua>]. I parametri tra parentesi non sono obbligatori e se non specificati vengono utilizzati i valori di default (6 6 4 4 4 4 1 nell’ordine). • enroll: <percorso database immagini> <larghezza blocco DCT> <altezza blocco DCT> <coefficiente X> <coefficienti Y> <step X> <step Y> <flag soppressione continua>]. Il file di configurazione contiene 4 elementi: • root:<path>. Root del programma • immagini:<path>. Dove si trova il database delle immagini • mondo:<path>. Dove si trova il database (e le immagini) che costituiscono il modello del mondo • autorizzati:<path>. Dove si trovano i modelli degli utenti autorizzati.
  • 41. CAPITOLO 6. IMPLEMENTAZIONE IN AMBIENTE PC 32 6.4.3 Esempi di utilizzo Nella root del programma abbiamo le seguenti directory: database, databaseAutorizzati, databaseDis- tinto. La directory database contiene la sottodirectory unauthorized che contiene le immagini di fingerprint per costruire il modello del mondo. La directory databaseDistinto contiene tutte le directory dei campioni prelevati. La directory databaseAutorizzati contiene il database delle immagini dei soggetti autorizzati. Il file hmmfinger.cfg relativo sar` cosi composto: a • root:/root/del/programma • immagini:/root/del/programma/databaseDistinto • mondo:/root/del/programma/database • autorizzati:/root/del/programma/databaseAutorizzati L’esecuzione di /verify/test.sh porta il programma a verificare, utilizzando uno per volta i mod- elli autorizzati, tutte le immagini di tutti i campioni (contenute in databaseDistinto). L’ese- cuzione di /identify/test.sh porta il programma ad identificare, utilizzando tutti i modelli costru- iti sul database databaseDistinto, tutte le immagini di fingerprint di tutti i campioni (sempre contenute in databaseDistinto).
  • 42. Capitolo 7 Implementazione in ambiente ARM 7.1 Introduzione Implementare quanto descritto fino ad ora in ambiente embedded ` una scelta strategica in e quanto, oltre a fattori legati al consumo energetico e scarso ingombro dei componenti, nell’ultimo anno i processori ARM stanno guadagnando sempre pi` mercato[9] In questo capitolo trattiamo u i problemi affrontati per implementare l’algoritmo sulla scheda TS7800. Le difficolt` maggiorni a sono derivate da problemi di compatibilit` tra le librerie per x86 e quelle per ARM. Lo scanner, a commercialmente provvisto solo delle API BSAPI 2.2 ha causato non pochi problemi di porting. 7.2 Programma di acqusizione Come gi` accennato, originariamete era a nostra disposizione solo la libreria BSAPI (non open a source) compilata per x86 e x64. Parallelamente abbiamo proceduto alla raccolta delle finger- print utilizzando il programma basato su queste API e alla ricerca di una soluzione per perme- ttere il funzionamento sul TS7800. Per risolvere il problema del porting sono state proposte le seguenti soluzioni: 7.2.1 Primo tentativo Come prima soluzione al problema si ` pensato di usare unaa libreria opensource chiamata e libfprint [6] che allo stato attuale supporta circa 20 scanner di diversi produttori. Lo scanner 2.2 ` supportato per le sole modalit` di enroll e verification e non per l’invio dell’immagine e a all’host (pc o arm). Lavorando sui sorgenti per un certo tempo si ` deciso di abbandonare il e progetto data la struttura eccessivamente complicata. Quello che segue non ` utile ai fini del e raggiungimento dell’obiettivo ma, date le parecchie ore spese in questo lavoro, sembra doveroso 33
  • 43. CAPITOLO 7. IMPLEMENTAZIONE IN AMBIENTE ARM 34 riportare alcune considerazioni senza entrare troppo nei dettagli. Lo scheletro della libreria (le chiamate di libreria o API) ` distinto in due classi di chiamate: quelle dirette a periferiche e ` imaging (ottenimento dell’immagine della fingerprint) e quelle per periferiche senza capacitdi che supportano tale caratteristica. Per ogni famiglia di dispositivi c’` un listato in c contenente e le informazioni di funzionamento, come parole di controllo codici di parit` e quant’altro. Anche a questi 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 e capacit` di imaging. L’esperimento ` stato quello di creare un file in grado di fare funzionare il a e nostro scanner come periferica di imaging basandoci sul file descritto in precedenza. Lo scanner viene modellato come una macchina a stati finiti in cui il passaggio da uno stato all’altro ` e pilotato dalle risposte che la periferica manda in seguito ad un comando dell’host. I comandi da mandare al dispositivo per metterlo nello stato di cattura immagine sono stati catturati utilizzando il software Wireshark che permette la cattura dei pacchetti che transitano sul bus USB. Nonostante questo il nostro esperimento non ` andato a buon fine in quanto ad un certo e punto il dispositivo non funzionava secondo il modello esposto in precedenza. 7.2.2 Secondo tentativo Visto il precedente fallimento e tenendo conto delle informazioni ricavate dalla cattura dei pacchetti (ad esempio lo header che precede ciascun pacchetto ` formato dai caratteri CIAO!) e si ` pensato di costruire ex-novo il driver per pilotare il dispositivo. Questa via sembrava e promettere bene ma ad un certo punto ci siamo scontrati con un ulterirore problema: arrivati ad un certo punto il dispositivo manda un pacchetto con dati non costanti (ovvero in due sessioni diverse manda dati diversi). A prima vista sembrava un numero casuale per un qualche tipo di CRC sui dati. Allora, copiando le parti relative alla gestione del CRC dai sorgenti della libfprintf, si ` visto che comunque non era possibile pilotare il dispositivo nel modo voluto. e Anche questo esperimento ` fallito. Solo pi` tardi, avendo a disposizione i codici sorgenti dei e u driver proprietari si ` osservato che i dati erano in realt` crittografati con AES. e a 7.2.3 Terzo tentativo Si ` tentato di realizzare una versione minimale di Linux tale da permettere l’esecuzione del e software di acquisizione, basato sulle BSAPI, su una macchina virtuale (bochs). Le scarse prestazioni ottenute sul TS7800 (10 min per il bootstrap e 30 secondi per ogni comando dato) hanno determinato il fallimento di questo tentativo di soluzione.
  • 44. CAPITOLO 7. IMPLEMENTAZIONE IN AMBIENTE ARM 35 7.2.4 Quarto tentativo Dopo numerose mail e suppliche all’azienda (Upek) siamo riusciti ad ottenere i codici sorgenti del driver proprietario. A questo punto ` stato sufficiente compilarli sul TS7800 e utilizzare il e programma creato per PC ovviamente cambiando le chiamate alla liberia. 7.2.5 Conclusione ` La struttura del programma di acqusizione viene leggermente modificata. E sufficiente infatti acquisire una sola impronta alla volta per la verifica (non le 10 descritte nel programma per pc). 7.3 Implementazione di enrollment-verification-identification Sul TS7800 verr` implementato soltanto il programma di verifica. L’enrollment risulta pesante a gi` in ambiente pc. Il programma per la verifica si basa sulle librerie openCv. Esse sono a disponibili per Arm gi` nelle repositories ufficiali di Debian. Provando ad installare le versioni a dev dei vari pacchetti ci rendiamo per` conto che manca un file di libreria chiamato libcxcore o che ` un componente fondamentale della openCV. Seguono una serie di tentativi per risolvere e il problema. 7.3.1 Cross-compilazione La compilazione dei vari programmi sul TS7800 richiede parecchio tempo. La Techological Systems mette a disposizione alcune tool-chain per compilare i programmi in ambiente pc e differiscono per il tipo di emulazione dell’unit` floating point. L’algebra in virgola mobile viene a emulata dal Kernel. Esistono due varianti di questa emulazione: la pi` vecchia chiamata oldAbi u e la pi` recente detta gnueAbi. Viene utilizzata quest’ultima. u 7.3.2 Primo tentativo La versione del sistema operativo (3.1 Sarge) installata sul TS7800 ` una versione di Debian e ormai obsoleta. Aggiorniamo il S.O. passando alla versione 5.0 Lenny. Questo ha risolto effetti- vamente il problema delle librerie ma, per ragioni che ancora oggi risultano oscure, con questa versione del S.O. lo scanner non funziona. Una prova effettuata con il debugger gdb ha messo in luce che la libreria dello scanner entra in loop infinito in fase di inizializzione del dispositivo.
  • 45. CAPITOLO 7. IMPLEMENTAZIONE IN AMBIENTE ARM 36 7.3.3 Secondo tentativo Su S.O. Debian Sarge. Scarichiamo i sorgenti della libreria e proviamo a compilarla. La compi- lazione va a buon fine ma quando utilizziamo il programma di verifica otteniamo un errore di segmentation fault. Dopo numerose compilazioni con diversi parametri scopriamo che linkando staticamente le librerie al nostro programma il problema viene risolto. 7.4 Implementazione del sistema automatizzato L’idea alla basa ` 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- a gramma di verifica e acquisizione) l’implementazione proposta ` basata su uno script in bash e che 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.