Iris Recognition

Transcript

Iris Recognition
Università degli Studi di Milano
Facoltà di Scienze Matematiche, Fisiche e Naturali
Corso di Laurea in Informatica (Crema)
Estrazione adattativa di
caratteristiche iridee da filmati
Relatore:
Prof. Fabio Scotti
Tesi di laurea di:
Jacopo Paggi
Matricola 643696
Anno Accademico 2006-2007
Alla mia famiglia, la mia ragazza e i miei amici
I
Ringraziamenti
Ringrazio i miei genitori per avermi dato la possibilità di affrontare il corso
di laurea in informatica e per avermi sostenuto economicamente durante la
durata degli studi.
Desidero ringraziare inoltre i miei compagni di università che in questi
anni sono stati per me veri amici più che semplici compagni, in particolare
Dino, Gabriele, Marcello e Mario per la loro compagnia e per la collaborazione
durante la preparazione di alcuni progetti d’esame.
Un ringraziamento particolare alla mia ragazza Silvia che mi ha sostenuto
moralmente per tutta la mia attività di studente universitario.
Jacopo Paggi
II
Indice
1 Introduzione
1
1.1 La biometria . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1
1.2 Fisiologia dell’occhio . . . . . . . . . . . . . . . . . . . . . . .
3
1.3 Estrazione delle caratteristiche biometriche da immagini d’iridi
4
1.4 Descrizione e campi di applicazione dell’Iris Recognition
. . .
6
1.5 Scopo della tesi . . . . . . . . . . . . . . . . . . . . . . . . . .
8
1.6 Struttura della tesi . . . . . . . . . . . . . . . . . . . . . . . .
9
2 Stato dell’arte
11
2.1 Iris Recognition . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2.1.1
Acquisizione dell’iride
. . . . . . . . . . . . . . . . . . 12
2.1.2
Segmentazione dell’iride . . . . . . . . . . . . . . . . . 13
2.1.3
Normalizzazione . . . . . . . . . . . . . . . . . . . . . . 15
2.1.4
Codifica . . . . . . . . . . . . . . . . . . . . . . . . . . 16
2.1.5
Confronto tra codifiche di iridi . . . . . . . . . . . . . . 18
2.2 Applicazione dell’Iris Recognition . . . . . . . . . . . . . . . . 20
2.2.1
Iris Recognition e le immagini del database Casia . . . 20
2.2.2
Applicazione Proof Positive e il suo sviluppo commerciale 23
3 Estrazione adattativa di caratteristiche iridee da filmati
III
26
3.1 Dispositivi utilizzati
. . . . . . . . . . . . . . . . . . . . . . . 27
3.1.1
Webcam . . . . . . . . . . . . . . . . . . . . . . . . . . 27
3.1.2
Fotocamera digitale . . . . . . . . . . . . . . . . . . . . 28
3.1.3
Telecamera domestica . . . . . . . . . . . . . . . . . . 28
3.2 Supporti per periferiche . . . . . . . . . . . . . . . . . . . . . 28
3.2.1
Supporto per la webcam e la telecamera domestica . . 29
3.2.2
Supporto per la fotocamera digitale . . . . . . . . . . . 30
3.3 Illuminazione . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
3.3.1
Luce al neon . . . . . . . . . . . . . . . . . . . . . . . . 31
3.3.2
Lampada alogena . . . . . . . . . . . . . . . . . . . . . 32
3.3.3
Lampada rossa . . . . . . . . . . . . . . . . . . . . . . 33
3.3.4
Illuminazione a LED . . . . . . . . . . . . . . . . . . . 33
3.3.5
Illuminatore a LED rossi e LED infrarossi . . . . . . . 35
3.4 Biofeedback . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
3.5 Prevenzione d’errori nelle immagini acquisite . . . . . . . . . . 40
3.6 Miglioramento delle immagini . . . . . . . . . . . . . . . . . . 41
3.6.1
Individuazione e rimozione dei disturbi . . . . . . . . . 42
3.6.2
Miglioramento dei rilievi dell’iride . . . . . . . . . . . . 45
3.7 Confronto tra le immagini prese in successione . . . . . . . . . 52
3.8 Ricerca della migliore immagine acquisita . . . . . . . . . . . . 54
3.9 Ricerca del confronto con uguaglianza più elevata . . . . . . . 57
4 Risultati sperimentali
60
4.1 Utilizzo dell’illuminatore a LED rossi e LED infrarossi . . . . 61
4.2 Prove effettuate con dataset acquisito da webcam . . . . . . . 63
4.2.1
Webcam con luce rossa e LED bianchi . . . . . . . . . 64
4.2.2
Webcam con luce alogena e LED bianchi . . . . . . . . 67
4.2.3
Webcam con luce rossa e LED bianchi centrali . . . . . 69
IV
4.2.4
Webcam con luce alogena e LED bianchi centrali . . . 72
4.3 Prova effettuata con dataset acquisito da fotocamera digitale . 76
4.4 Prova effettuate con dataset acquisito da telecamera domestica 77
4.5 Prove effettuate su dataset del Casia . . . . . . . . . . . . . . 80
4.5.1
Immagini della stessa persona . . . . . . . . . . . . . . 81
4.5.2
Immagini di differenti persone . . . . . . . . . . . . . . 83
4.6 Prove effettuate su immagini non iridee . . . . . . . . . . . . . 86
4.6.1
Immagini statiche . . . . . . . . . . . . . . . . . . . . . 87
4.6.2
Immagini dinamiche . . . . . . . . . . . . . . . . . . . 89
4.7 Applicazione di filtri per il miglioramento delle caratteristiche
iridee . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
4.7.1
Filtri nel dominio spaziale . . . . . . . . . . . . . . . . 92
4.7.2
Filtri nel dominio della frequenza . . . . . . . . . . . . 94
5 Conclusioni e sviluppi futuri
98
Bibliografia
102
V
Elenco delle figure
1.1 Suddivisione della biometria. . . . . . . . . . . . . . . . . . . .
2
1.2 Parti che compongono un occhio. . . . . . . . . . . . . . . . .
4
1.3 Schema a blocchi di un sistema di Iris Recognition. . . . . . .
5
1.4 Utilizzo delle diverse tecniche biometriche. . . . . . . . . . . .
7
2.1 Due acquisizioni con illuminazione infrarossa ottenute dal Casia. 13
2.2 Segmentazione dell’iride e la sua relativa codifica. . . . . . . . 14
2.3 Operazione di mascheratura. . . . . . . . . . . . . . . . . . . . 15
2.4 Conversione da coordinate cartesiane a polari. . . . . . . . . . 16
2.5 Normalizzazione della regione dell’iride. . . . . . . . . . . . . . 16
2.6 Demodulazione della fase in quattro livelli. . . . . . . . . . . . 17
2.7 Esempio di shift-bits tra due template. . . . . . . . . . . . . . 19
2.8 Esempio di acquisizione effettuata dal Casia. . . . . . . . . . . 21
2.9 Segmentazione di un’immagine del Casia. . . . . . . . . . . . . 21
2.10 Mascheratura di un’immagine del Casia. . . . . . . . . . . . . 22
2.11 Maschera di rumore generata. . . . . . . . . . . . . . . . . . . 22
2.12 Normalizzazione della porzione di iride in coordinate polari. . 22
2.13 Codifica generata utilizzando la porzione d’iride normalizzata.
22
2.14 Architettura Proof Positive della Iridian Technologies Inc. . . 24
3.1 Supporto costruito per la webcam. . . . . . . . . . . . . . . . 29
VI
3.2 Supporto costruito per la fotocamera con relativo sistema di
illuminazione. . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
3.3 Lampada alogena utilizzata durante le prove. . . . . . . . . . . 32
3.4 Lampadina utilizzata che emette luce di colore rosso. . . . . . 33
3.5 Struttura di un LED. . . . . . . . . . . . . . . . . . . . . . . . 34
3.6 Posizionamento dei LED intorno all’obiettivo della webcam. . 35
3.7 Scheda del sistema di illuminazione a LED rosso - infrarosso. . 36
3.8 Esempio di biofeedback in fase di anteprima. . . . . . . . . . . 38
3.9 Esempio di biofeedback in fase di acquisizione. . . . . . . . . . 39
3.10 Schema a blocchi della funzione biofeedback. . . . . . . . . . . 39
3.11 Schema a blocchi dell’algoritmo di prevenzione errori. . . . . . 40
3.12 Esempio di template generato casualmente. . . . . . . . . . . . 41
3.13 Esempio di confronti tra 20 frame contenenti errori di calcolo.
42
3.14 Applicazione dell’algoritmo Fast-Radial. . . . . . . . . . . . . 45
3.15 Filtro ideale passa alto in frequenza con D0 = 0.5. . . . . . . . 50
3.16 Filtro in frequenza passa alto Butterworth con D0 = 1 e n = 1. 51
3.17 Filtro in frequenza passa alto Gaussiano con D0 = 1. . . . . . 52
3.18 Esempio di Grafico di comparazione tra 7 immagini. . . . . . . 53
3.19 Schema a blocchi per ottenere il grafico di comparazione. . . . 54
3.20 Schema a blocchi della funzione di ricerca della migliore codifica. 55
3.21 Esempio di migliore frame trovato in un dataset di immagini
del Casia. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
3.22 Esempio della matrice dei confronti generata con 10 frame. . . 58
3.23 Schema a blocchi della funzione di ricerca del confronto con
percentuale di uguaglianza più elevata. . . . . . . . . . . . . . 58
3.24 Esempio di risultato ottenuto dall’algoritmo. . . . . . . . . . . 59
4.1 Illuminatore rosso-infrarosso con webcam. . . . . . . . . . . . 62
VII
4.2 Illuminatore rosso-infrarosso con telecamera CMOS. . . . . . . 62
4.3 Test 1 - Dataset acquisito con la webcam. . . . . . . . . . . . 64
4.4 Test 1 - Grafico di uguaglianza codifiche prese in successione. . 65
4.5 Test 1 - Migliore codifica trovata tra quelle presenti nel dataset. 65
4.6 Test 1 - Massima uguaglianza trovata tra tutte le codifiche. . . 66
4.7 Test 1 - Esempio di centro trovato. . . . . . . . . . . . . . . . 66
4.8 Test 2 - Dataset acquisito con la webcam. . . . . . . . . . . . 67
4.9 Test 2 - Grafico di uguaglianza codifiche prese in successione. . 68
4.10 Test 2 - Migliore codifica trovata tra quelle presenti nel dataset. 68
4.11 Test 2 - Massima uguaglianza trovata tra tutte le codifiche. . . 68
4.12 Test 2 - Esempio di centro trovato. . . . . . . . . . . . . . . . 69
4.13 Test 3 - Dataset acquisito con la webcam. . . . . . . . . . . . 70
4.14 Test 3 - Grafico di uguaglianza codifiche prese in successione. . 70
4.15 Test 3 - Migliore codifica trovata tra quelle presenti nel dataset. 71
4.16 Test 3 - Massima uguaglianza trovata tra tutte le codifiche. . . 71
4.17 Test 3 - Esempio di centro calcolato in modo errato. . . . . . . 72
4.18 Test 3 - Applicazione del filtro di rimozione dei disturbi. . . . 72
4.19 Test 4 - Dataset acquisito con la webcam. . . . . . . . . . . . 73
4.20 Test 4 - Grafico di uguaglianza codifiche prese in successione. . 74
4.21 Test 4 - Migliore codifica trovata tra quelle presenti nel dataset. 74
4.22 Test 4 - Massima uguaglianza trovata tra tutte le codifiche. . . 74
4.23 Test 4 - Esempio di centro calcolato in modo errato. . . . . . . 75
4.24 Test 4 - Applicazione del filtro di rimozione dei disturbi. . . . 75
4.25 Test 5 - Dataset acquisito con la fotocamera digitale. . . . . . 77
4.26 Test 6 - Dataset acquisito con la telecamera domestica. . . . . 78
4.27 Test 6 - Grafico di uguaglianza codifiche prese in successione. . 78
4.28 Test 6 - Migliore codifica trovata tra quelle presenti nel dataset. 79
VIII
4.29 Test 6 - Massima uguaglianza tra tutte le codifiche. . . . . . . 79
4.30 Test 6 - Esempio di centro trovato. . . . . . . . . . . . . . . . 80
4.31 Test 7 - Dataset di immagini Casia utilizzate. . . . . . . . . . 81
4.32 Test 7 - Grafico di uguaglianza codifiche prese in successione. . 82
4.33 Test 7 - Migliore codifica trovata tra quelle presenti nel dataset. 82
4.34 Test 7 - Massima uguaglianza tra tutte le codifiche. . . . . . . 83
4.35 Test 7 - Esempio di centro trovato. . . . . . . . . . . . . . . . 83
4.36 Test 8 - Dataset di immagini Casia utilizzate. . . . . . . . . . 84
4.37 Test 8 - Grafico di uguaglianza codifiche prese in successione. . 85
4.38 Test 8 - Massima uguaglianza tra tutte le codifiche. . . . . . . 85
4.39 Test 8 - Esempio di centro trovato. . . . . . . . . . . . . . . . 86
4.40 Test 9 - Esempio di frame acquisito. . . . . . . . . . . . . . . . 87
4.41 Test 9 - Esempio di centro trovato. . . . . . . . . . . . . . . . 88
4.42 Test 9 - Grafico di uguaglianza codifiche prese in successione. . 88
4.43 Test 9 - Migliore codifica trovata tra quelle presenti nel dataset. 89
4.44 Test 9 - Massima uguaglianza tra tutte le codifiche. . . . . . . 89
4.45 Test 10 - Dataset acquisito con webcam dalla televisione. . . . 90
4.46 Test 10 - Grafico di uguaglianza codifiche prese in successione.
90
4.47 Test 10 - Massima uguaglianza tra tutte le codifiche. . . . . . 91
4.48 Test 10 - Esempio di centro trovato. . . . . . . . . . . . . . . . 91
4.49 Test 11 - Filtro di Sharpening. . . . . . . . . . . . . . . . . . . 93
4.50 Test 11 - Filtro Unsharp. . . . . . . . . . . . . . . . . . . . . . 93
4.51 Test 11 - Filtro derivativo Laplaciano. . . . . . . . . . . . . . . 93
4.52 Test 11 - Grafico di comparazione filtri nel dominio spaziale. . 94
4.53 Test 12 - Filtro in frequenza Gaussiano passa-alto. . . . . . . . 95
4.54 Test 12 - Filtro in frequenza ideale passa-alto. . . . . . . . . . 95
4.55 Test 12 - Filtro in frequenza di Butterworth passa-alto. . . . . 95
IX
4.56 Test 12 - Grafico di comparazione filtri nel dominio della frequenza.
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
X
Capitolo 1
Introduzione
1.1
La biometria
La biometria è l’insieme di tecniche per l’individuazione automatica degli
individui attraverso le loro caratteristiche fisiologiche (iride, retina, impronte
digitali, morfologia dell’orecchio, geometria della mano o del volto) o comportamentali (timbro o tonalità della voce, firma). Le tecniche biometriche
presentano alcuni vantaggi rispetto ai sistemi tradizionali di identificazione. Alcuni di essi riconoscono un individuo attraverso l’identificazione di
un oggetto o di un’informazione che l’individuo possiede o conosce (badge,
password, pin). Questi sistemi tuttavia, più che accertare l’identità, si limitano a verificare un’entità che in quel momento l’individuo possiede. Invece
se l’identificazione avviene attraverso la digitazione di un codice e/o di una
password, il sistema verifica ”ciò che l’utente conosce”. Nel classico caso
del Bancomat, infine, il riconoscimento riguarda ”ciò che l’utente detiene e
conosce” ossia la tessera ed il PIN. Le tecniche biometriche di identificazione [1] sono infatti finalizzate a identificare un individuo sulla base delle sue
peculiari caratteristiche fisiologiche o comportamentali, difficili da alterare o
1
simulare. Tra le variabili più frequentemente prese in esame: impronte digitali, geometria della mano e del volto, conformazione della retina o dell’iride,
timbro e tonalità di voce. La figura 1.1 indica come può essere suddivisa la
biometria in base alla fisiologia e lo stato comportamentale di un individuo.
Attualmente i metodi d’identificazione tradizionali sono basati o sulla cono-
Figura 1.1: Suddivisione della biometria.
scenza d’informazioni (ad esempio codice pin o password ) o sul possesso di
un oggetto (ad esempio smartcard e tessera magnetica). Questi metodi non
hanno un livello di sicurezza elevato in quanto un pin potrebbe essere scoperto facilmente da un malintenzionato oppure una tessera potrebbe essere
smarrita. La biometria vuole cercare di garantire un livello di sicurezza molto
più elevato di queste soluzioni, infatti all’interno dei sistemi di autenticazione
basati sulla biometria, vengono inizialmente estratte una o più caratteristiche
biometriche dall’individuo che vuole accedere al sistema, dopo di che queste
vengono confrontate con quelle presenti e registrate in un archivio. Tali caratteristiche biometriche possono essere inserite in carte d’identità digitali
o in passaporti digitali al fine di aumentare il livello di sicurezza in fase di
controllo dell’identità di un individuo.
2
1.2
Fisiologia dell’occhio
In questa tesi ci si è occupati dell’estrazione delle caratteristiche biometriche dell’iride da immagini acquisite tramite apparecchiature video di qualità
inferiore rispetto a quelle utilizzate dai veri sistemi di identificazione. Le
immagini acquisite contengono l’occhio e diversi elementi vicini come le palpebre e le ciglia. La figura 1.2 rappresenta le parti che compongono un occhio
umano. E’ presente una superficie bianca, la sclera, che corrisponde alla superficie anteriore del bulbo oculare che rimane scoperta e delimita al centro
un’area circolare pigmentata detta iride, che a sua volta delimita un’ulteriore area circolare, la pupilla, che solitamente si presenta nera. L’iride è una
membrana muscolare dell’occhio di colore variabile, a forma e con funzione di diaframma, pigmentata, situata posteriormente alla cornea e davanti
al cristallino, perforata dalla pupilla. Le caratteristiche strutturali dell’iride
umano sono molto complesse e comprendono uno strato epiteliale, non trasparente alla luce, alcuni muscoli, che controllano l’apertura della pupilla,
vasi sanguigni ed uno strato di cellule pigmentali dette cromatofori, disposte
in modo discontinuo secondo schemi diversi da persona a persona, e diversi
tra un occhio e l’altro anche per lo stesso individuo. L’iride può assumere
colorazioni diverse: le più comuni vanno dal marrone scuro al marrone chiaro (carattere dominante), abbastanza diffuse sono le tonalità del verde scuro
tendente al castano, vi sono poi le tonalità del grigio, del blu, dell’azzurro
e del verde chiaro (caratteri recessivi ). La pupilla è il foro situato al centro dell’iride, di diametro variabile, che permette l’entrata dei raggi luminosi
all’interno del bulbo oculare. Le sue dimensioni sono regolate, in base all’intesità luminosa ambientale, da un sistema di muscoli che dipendono dal
sistema neurovegetativo: quando il muscolo la dilata (midriasi ) è per ricevere
maggior quantità di luce, viceversa la restringe (miosi) in presenza di molta
3
Figura 1.2: Parti che compongono un occhio.
luce. Quindi, due immagini dello stesso occhio scattate in momenti differenti, possono avere delle differenze per quanto riguarda la struttura dell’iride
e della pupilla, oltre che per tutti i fattori ambientali quali le variazioni di
luminosità e le variazioni del sistema di ripresa (ad esempio rumore elettronico e invecchiamento). La caratteristica dell’occhio che interessa a questo
lavoro di tesi riguarda l’iride, ovvero tutta la superficie che parte dalla fine
della pupilla fino all’inizio della sclera.
1.3
Estrazione delle caratteristiche biometriche da immagini d’iridi
In letteratura sono presenti diverse tecniche che permettono di estrarre le
caratteristiche biometriche dell’iride da immagini di occhi scattati con sensori
CCD nel visibile e nell’infrarosso. L’algoritmo analizzato per estrarre tali
caratteristiche è l’Iris Recognition sviluppato da John Daugman [3]. Esso si
4
suddivide in diverse fasi: acquisizione di un’immagine contenente un occhio,
segmentazione dell’iride, normalizzazione della porzione segmentata, codifica
del modello trovato e confronto tra codifiche generate come è rappresentato
in figura 1.3.
Figura 1.3: Schema a blocchi di un sistema di Iris Recognition.
La fase di acquisizione di un’immagine contenente un’iride, avviene mediante una videocamera che riprende l’occhio da una distanza che può variare
da 10 a 60 centimetri in funzione del tipo di sensore usato. L’uso di occhiali
da vista o di lenti a contatto può rendere la fase di registrazione più complessa, ma questi stessi possono essere usati per l’autenticazione biometrica senza
causare troppe difficoltà [2]. La fase di segmentazione dell’iride consiste nell’individuare e selezionare, all’interno dell’immagine di un occhio, l’iride e la
pupilla. La normalizzazione consiste nel convertire ogni punto presente nella
regione dell’iride, selezionata nella fase precedente, da coordinate cartesiane
a coordinate polari. Nella fase di codifica, vengono elaborati in coppie di
bit i pixel normalizzati, ottenendo il modello dell’iride codificato. Esso viene
quindi utilizzato per essere confrontato con altri modelli d’iride, che possono essere presenti in un database e se il risultato sarà positivo l’utente sarà
autenticato. A causa di diversi fattori come l’intensità di luce, il movimento
delle persone durante la fase d’acquisizione dell’iride e la chiusura delle palpebre, un’immagine può essere molto differente da un’altra anche se appartiene
alla stessa persona. Questo fatto crea delle differenze nella fase di codifica del
5
modello dell’iride, restituendo dei risultati non perfettamente uguali su iridi
appartenenti allo stesso individuo. Quindi è necessario utilizzare un range
per valutare se due codifiche elaborate appartengono alla stessa persona, ed
in genere lo si fa con una percentuale di circa 69% di uguaglianza tra le due
codifiche in quanto la soglia tipica di errore è stimata intorno al 31%.
1.4
Descrizione e campi di applicazione dell’Iris Recognition
L’iride è considerato il tratto biometrico più accurato in assoluto dopo il DNA
in quanto inizia a crearsi dal terzo mese del feto e completa il suo processo
al settimo mese di gestazione. Molti studi hanno garantito la stabilità dal
secondo anno di vita e le sue numerosissime caratteristiche di identificazione,
il cui numero è 6 volte più alto delle impronte digitali, rimangono inalterate
nel tempo. Uno svantaggio può essere che durante l’invecchiamento possono comparire delle pigmentazioni non presenti in precedenza, tuttavia non
esistono due persone che possiedono iridi uguali, infatti anche i gemelli monozigoti hanno iridi diversi, questo perché durante la formazione si hanno
delle componenti casuali che producono un pattern di righe, tagli, pieghe
assolutamente unico e distinguibile. Secondo il modello presentato in [3] la
probabilità che due iridi possano produrre esattamente la stessa codifica è
circa 1 su 1078 e sapendo che la popolazione terrestre è formata da circa 1010
persone rende questo tipo di tratto biometrico estremamente sicuro e con alta difficoltà di frode in quanto è molto difficile alterare l’iride con operazioni
o abrasioni come è possibile con le impronte digitali. A livello di utilizzo, la
tecnica biometrica basata sul riconoscimento dell’iride non è ancora molto
sviluppata in quanto le apparecchiature risultano molto più costose rispetto
6
ad altri tipi di tecniche biometriche. Il riconoscimento dell’iride può considerarsi una tecnologia biometrica emergente che, per le sue caratteristiche di
sicurezza, si propone quale valida soluzione per gestire in modo sicuro l’identificazione di individui e la verifica di identità, in situazioni che necessitano
di un grado di sicurezza molto elevato. La Figura 1.4 indica l’utilizzo delle
Figura 1.4: Utilizzo delle diverse tecniche biometriche.
tecniche biometriche [2] fino all’anno 2004 e come si può notare, la scansione dell’iride risulta essere molto in ritardo rispetto, ad esempio, le impronte
digitali che possiedono quasi il 50% d’utilizzo. Questo è causato soprattutto
dal problema dei costi elevati dei dispositivi per il rilevamento dell’iride, in
quanto le apparecchiature utilizzate per gestire un sistema basato sul riconoscimento di una persona tramite le impronte digitali è sicuramente molto più
economico. Tuttavia in Europa alcuni aeroporti, come Heathrow a Londra
e Schiphol ad Amsterdam, hanno già applicato questa tecnica per il riconoscimento dei passeggeri tramite l’iride, mentre in America sono circa 50
gli aeroporti che la utilizzano. Altri campi d’utilizzo riguardano l’accesso ad
aree ristrette come sale server, ambienti ospedalieri, banche, ambito militare
e trasporti navali. Questi dati possono fare sicuramente capire quanto può
7
essere importante utilizzare questo sistema al fine di aumentare la sicurezza
in determinati luoghi in cui questa deve essere elevata, a discapito di spese
per acquistare scanner di lettura dell’iride molto costosi. I prezzi di questi
dispositivi possono variare da alcune centinaia di euro fino ad alcune migliaia di euro, in base al tipo di sensore utilizzato, che garantisce la qualità
d’accuratezza.
1.5
Scopo della tesi
Il processo d’identificazione di una persona, tramite la sua iride, ha lo svantaggio di non essere molto diffuso a causa degli alti costi dei dispositivi d’acquisizione. Lo scopo di questa tesi è quello dello studio, implementazione e
verifica di soluzioni che permettano di acquisire, nel modo più corretto possibile, l’iride di una persona utilizzando dispositivi video di basso costo come
webcam, fotocamere digitali e telecamere domestiche. Sono stati studiati
diversi metodi di illuminazione al fine di raggiungere il risultato più corretto nella fase d’acquisizione e implementati algoritmi adattativi in grado di
valutare la migliore acquisizione effettuata. Sono stati creati supporti per i
dispositivi utilizzati e algoritmi di biofeedback per rendere la fase d’acquisizione dell’iride più comoda e meno invasiva possibile per l’utente. Si sono
inoltre studiati ed applicati filtri per eliminare il rumore creato dall’illuminazione e filtri per migliorare la qualità delle caratteristiche dell’iride. Infine
sono stati valutati i risultati ottenuti per capire quale soluzione, tra quelle
prese in esame, risulta essere la migliore.
8
1.6
Struttura della tesi
La tesi è costituita, oltre che dal capitolo introduttivo, da quattro capitoli: Stato dell’arte, Estrazione adattativa di caratteristiche iridee da filmati,
Risultati ottenuti, Conclusioni e Sviluppi futuri.
Nel secondo capitolo, riguardante lo stato dell’arte, si è analizzato l’algoritmo presentato in letteratura, in [3] denominato Iris Recognition, descrivendone le sue fasi principali: acquisizione, segmentazione, normalizzazione,
codifica e confronto. Nella sezione successiva è stato esposto un esempio di
risultato prodotto, dall’algoritmo di Iris Recognition, con immagini di alta
qualità come quelle presenti nel database pubblico Casia [5], ottenute mediante sistemi basati su sensori CCD e luce infrarossa. Dopo di che, si è fatta
una breve panoramica su un’applicazione che utilizza questo tipo di algoritmo, prodotta dalla Iridian Technologies Inc. [7] una delle più importanti
aziende mondiali che lavora nel campo della biometria dell’occhio.
Il terzo capitolo riguarda lo studio e l’implementazione di algoritmi che,
partendo dall’acquisizione d’immagini riguardanti l’occhio di un individuo, da
una sorgente video riescono ad individuare l’iride, eliminare eventuali riflessi
e creare una codifica dell’iride, chiamata anche IrisCode, che identifica quella
determinata persona. Inoltre vengono descritti altri algoritmi sviluppati al
fine di trovare tra tutte le codifiche generate, in una determinata acquisizione,
quella che potrebbe essere la migliore scartando eventuali immagini fuori
fuoco o con calcoli del centro dell’iride errati. Infine sono stati implementati
ed applicati alcuni filtri al fine di rimuovere i riflessi delle luci utilizzate
e anche di migliorare i dettagli delle caratteristiche dell’iride acquisito per
cercare di avere una migliore qualità a livello di risultati.
Nel quarto capitolo sono descritti dettagliatamente i risultati ottenuti
dall’esecuzione in ambiente Matlab [9] degli algoritmi descritti nel terzo ca9
pitolo utilizzando diverse configurazioni a livello di illuminazione. Essi sono
stati applicati a immagini acquisite tramite webcam, fotocamere digitali, telecamera domestica e in alcune prove utilizzando immagini iridee presenti
nel database del Casia [5]. Sono state effettuate alcune prove su immagini
non riguardanti l’occhio di una persona al fine di verificare il comportamento dell’algoritmo e di valutarne i risultati ottenuti. Infine vengono esposti i
risultati prodotti dai filtri per il miglioramento delle caratteristiche dell’iride.
Nell’ultimo capitolo vengono proposti alcuni sviluppi futuri basati su questo tipo di algoritmo e una breve valutazione sul lavoro svolto e dei risultati
ottenuti.
10
Capitolo 2
Stato dell’arte
Nella prima sezione di questo capitolo sono descritte, in modo dettagliato,
le fasi dell’Iris Recognition per estrarre le caratteristiche di un’iride. Nella
sezione successiva è stato esposto un esempio di risultato prodotto, dall’algoritmo di Iris Recognition, con un’immagine di alta qualità presente nel
database pubblico Casia [5], ottenuta mediante un sistema basato su sensori
CCD e luce infrarossa. Infine viene esposto un esempio di applicativo, studiato e implementato dall’azienda Iridian Technologies Inc. [7] basato anche
sull’algoritmo di Iris Recognition, e i suoi principali campi di utilizzo.
2.1
Iris Recognition
Un possibile metodo in letteratura per estrarre le informazioni dalle caratteristiche di un’iride umano è l’Iris Recognition, sviluppato da John Daugman
[3]. Una implementazione di questo metodo è disponibile in letteratura come
libreria di funzioni in ambiente Matlab [9] creata da Libor Masek [4]. Effettuare l’analisi di un’iride utilizzando questo metodo garantisce dei risultati
11
con un grado di accuratezza discreto se le immagini in ingresso sono di ottima
qualità. L’Iris Recognition è composto principalmente da cinque fasi:
• acquisizione dell’occhio di una persona;
• segmentazione dell’iride acquisito;
• normalizzazione del modello dell’iride;
• codifica delle informazioni normalizzate;
• confronto tra codifiche di iridi diversi.
In questa sezione vengono descritte accuratamente queste cinque fasi al fine
di comprendere il funzionamento dell’algoritmo successivamente utilizzato
nel lavoro di tesi.
2.1.1
Acquisizione dell’iride
In questa prima fase si cerca di acquisire immagini, inerenti all’occhio di
una persona, con la massima qualità in modo non invasivo per il soggetto,
essendo l’occhio un’organo molto delicato. Bisogna apportare alcuni accorgimenti in quanto si deve acquisire l’immagine con una buona risoluzione senza
utilizzare un livello di illuminazione tale da infastidire il soggetto e senza forzarlo a particolari posizioni. Sono molto diffusi sotto questo tipo d’aspetto
soluzioni basate su sensori CCD e un’illuminazione di tipo infrarosso. La
distanza che un utente deve mantenere dalla videocamera, che si utilizza per
l’acquisizione, è in funzione del tipo di sensore utilizzato ed in genere varia
da 5cm a 60cm. Un database pubblico che rende disponibili in rete immagini iridee di alta qualità ottenute mediante sensori CCD ed un’illuminazione
infrarossa è quello Casia [5]. La figura 2.1 rappresenta 2 immagini ottenute
12
da Casia con due sistemi di illuminazione differenti, la prima con un’illuminazione infrarossa il cui riflesso è posizionato sulle palpebre dell’occhio e la
seconda utilizzando 8 LED infrarossi il cui riflesso è all’interno della pupilla.
Un aspetto molto importante che bisogna tenere in considerazione duran-
Figura 2.1: Due acquisizioni con illuminazione infrarossa ottenute dal Casia.
te questa fase è il riflesso, creato dall’illuminazione utilizzata, che si forma
sull’occhio dell’individuo. L’occhio ha una superficie lucida ed un comportamento simile a quello di uno specchio, quindi è molto importante evitare che
i riflessi del sistema di illuminazione non si creino all’interno dell’iride, ma
possibilmente o all’interno della pupilla o vicino alle palpebre, dove non sono
presenti informazioni iridee. Il costo dei dispositivi di acquisizione varia in
base al sensore utilizzato ed alla qualità di immagini che si possono ottenere
ed in genere si trovano con un prezzo minimo di qualche centinaia di euro fino
ad un massimo di qualche migliaia di euro. Una volta acquisita l’immagine
viene eseguita la fase di segmentazione.
2.1.2
Segmentazione dell’iride
La fase di segmentazione ha la funzione di individuare il confine tra pupilla
e iride e il confine tra iride e sclera. Questa fase è la più importante di tutto
13
il processo dell’Iris Recognition in quanto tutti i calcoli successivi avvengono
all’interno dei confini calcolati durante la segmentazione. Per effettuare il
calcolo dei confini viene utilizzato il seguente operatore integro-differenziale:
¯
¯
¯
∂ I
I(x, y) ¯¯
¯
max(r,x0 ,y0 ) ¯Gσ (r) ∗
ds¯
¯
¯
∂r r,x0 ,y0 2πr
Dove I(x, y) è l’immagine contenente l’occhio, r è il raggio da cercare, Gσ (r)
è il filtro Gaussiano e s è il contorno del cerchio dato da r, x0 , y0 . Questo tipo di operatore cerca il percorso circolare dove è presente la massima
variazione basata sul valore dei pixel, modificando il raggio e le coordinate
(x, y) del centro ed è applicato iterativamente riducendo progressivamente il
parametro σ del filtro Gaussiano fino ad ottenere il cerchio corrispondente
all’iride. Inoltre, questo operatore integro-differenziale viene utilizzato per
individuare i confini superiori e inferiori tra iride e palpebra, modificando
il percorso d’integrazione del contorno da cerchio ad arco in modo tale da
riuscire a seguire la zona della palpebra come si può vedere in figura 2.2.
Figura 2.2: Segmentazione dell’iride e la sua relativa codifica.
Questo metodo potrebbe fallire in presenza di disturbi, come ad esempio i
14
Figura 2.3: Operazione di mascheratura.
riflessi creati da fonti luminose oppure da una quantità eccessiva di ciglia.
Infine viene eseguita un’operazione di mascheratura, ovvero viene creata una
maschera binaria, composta solo da valori di 0 e 1 al fine di individuare l’iride
rispetto a porzioni che non contengono informazioni biometriche utili come i
disturbi creati dai riflessi, le palpebre o le ciglia come è raffigurato in figura
2.3.
2.1.3
Normalizzazione
La fase successiva alla segmentazione dell’iride riguarda la normalizzazione,
che consiste nel convertire ogni punto della regione dell’iride trovata da coordinate cartesiane a coordinate polari (r, θ), dove r ∈ [0, 1] e θ è un angolo
[0, 2π]. La figura 2.4 rappresenta la modalità di questo tipo di conversione
e la figura 2.5 contiene il risultato prodotto della normalizzazione dell’iride.
Tramite questo tipo di conversione si ottiene un modello della regione dell’iride sempre a dimensioni costanti, dove la mappatura viene ottenuta mediante
15
le seguenti formule:
I(x(r, θ), y(r, θ)) −→ I(r, θ)
con
x(r, θ) = (1 − r)xp (θ) + rxl (θ)
y(r, θ) = (1 − r)yp (θ) + ryl (θ)
Dove I(x, y) è la regione dell’iride trovata nella fase di segmentazione, (x, y)
le coordinate cartesiane originali, (r, θ) le corrispondenti coordinate polari
calcolate, xp , yp e xl , yl sono le coordinate dei bordi dell’iride e della pupilla
lungo la direzione θ utilizzata.
Figura 2.4: Conversione da coordinate cartesiane a polari.
Figura 2.5: Normalizzazione della regione dell’iride.
2.1.4
Codifica
Dopo avere effettuato le fasi di segmentazione e normalizzazione viene eseguita la fase di codifica delle informazioni dell’iride normalizzate. Questo passo
16
viene eseguito mediante filtri a 2 dimensioni di Gabor, dove l’uscita di questo
filtraggio viene elaborata tramite un processo di demodulazione, quantizzando l’informazione di fase in quattro livelli, ognuno per ogni quadrante nel
piano complesso, come quello in figura 2.6. In questo modo si codificano
Figura 2.6: Demodulazione della fase in quattro livelli.
solo le informazioni inerenti all’iride perché si prende in considerazione solo
la fase e quindi non vengono codificate informazioni come i riflessi contenute
nella componente in ampiezza. I quattro livelli ottenuti sono successivamente rappresentati utilizzando 2 bit, in questo modo, un pixel del modello
normalizzato corrisponde a 2 bit della sua rispettiva codifica. Un modello di
codifica standard per l’Iris Recognition è composto da un totale di 2048bit
ovvero 256byte e viene chiamato template o anche IrisCode. Un esempio
di codifica è visibile all’interno della figura 2.2. La fase di demodulazione e
quantizzazione viene ottenuta con la seguente formula:
Z Z
h{Re,Im} = sgn{Re,Im}
ρ
2 /α2
φ
I(ρ, φ)e−iω(θ0 −φ) e−(r0 −ρ)
17
2 /β 2
e−(θ0 −φ)
ρdρdφ
Dove h{Re,Im} può essere considerato come la coppia di bit in cui la parte
reale e la parte immaginaria può assumere valori di 1 o di 0 in base al segno
dell’integrale a 2 dimensioni. I(ρ, φ) è l’immagine normalizzata in un sistema a coordinate polari. α e β sono i parametri della scala wavelet, ω è la
frequenza wavelet e (r0 , θ0 ) rappresentano le coordinate polari della regione
dell’iride per cui deve essere calcolato h{Re,Im} .
2.1.5
Confronto tra codifiche di iridi
In ultima fase vi è il confronto, chiamato anche matching, del modello d’iride
codificato in bit con altri modelli precedentemente codificati, in modo tale da
individuare quello appartenente allo stesso occhio e quindi alla stessa persona.
Questo tipo di confronto viene effettuato tramite il calcolo della distanza di
Hamming tra i due modelli d’iride codificati, utilizzando la seguente formula:
HD =
N
X
1
Xj ⊗ Yj ∩ Xn0j ∩ Y n0j
PN
N − k=1 Xnk ∪ Y nk j=1
Dove HD è il risultato che si vuole cercare, ovvero la Hamming Distance, X
e Y sono i due modelli d’iride codificati sottoposti al confronto, Xj e Y j sono
due bit da confrontare appartenenti ai rispettivi modelli, Xnj e Y nj sono
le maschere di rumore (noise mask ) dei corrispondenti modelli codificati e
N è il numero totale di bit di ogni singolo modello. Gli operatori ⊗, ∩ e
∪ indicano rispettivamente l’OR esclusivo, l’AND logico e l’OR logico. Una
volta calcolata la distanza di Hamming tra due template, un template viene traslato a sinistra e a destra ricalcolando a ogni spostamento la distanza
di Hamming mentre l’altro viene lasciato in posizione fissa. Questo spostamento orizzontale, chiamato anche shift-bits, corrisponde alla rotazione della
regione originale dell’iride per la risoluzione angolare usata. Se il valore di
risoluzione angolare è di 180, ogni spostamento corrisponderà ad una rota18
zione di 2 gradi nella regione dell’iride. Questo metodo è suggerito da John
Daugman [3,4] per correggere gli allineamenti errati nel modello normalizzato
dell’iride causato dalle differenze di rotazione durante la fase di acquisizione
dell’immagine. Dai valori calcolati della distanza di Hamming, viene considerato solo il valore più basso, poiché questo corrisponde al migliore confronto
tra due template. La figura 2.7 rappresenta un esempio di shift-bits tra due
template dove il valore HD = 0.0 è considerato il migliore confronto (best
matching). Se il risultato prodotto dal confronto tra due modelli d’iride co-
Figura 2.7: Esempio di shift-bits tra due template.
dificati è superiore ad un valore di 0.4, i due modelli appartengono, molto
probabilmente, a occhi diversi in quanto avranno un’uguaglianza inferiore al
60%. La percentuale di uguaglianza viene calcolata nel modo seguente:
P M = (1 − HD) ∗ 100
dove P M è la percentuale di uguaglianza tra i due template (percentuale di
matching) e HD è la distanza di Hamming trovata tra due template. Se
19
invece la distanza di Hamming è inferiore ad un valore di 0.4, i due modelli
d’iride confrontati possono essere considerati appartenenti alla stessa persona
perchè la percentuale di uguaglianza tra i due iridi risulterà superiore al 60%.
In teoria il confronto tra due codifiche dello stesso iride dovrebbe dare come
risultato del calcolo della distanza di Hamming un valore di 0.0, questo però
è altamente improbabile in quanto la fase di normalizzazione non è perfetta e
i disturbi, presenti nelle due immagini da confrontare appartenenti allo stesso
iride, possono variare causando quindi codifiche diverse.
2.2
Applicazione dell’Iris Recognition
In questa sezione viene illustrato un esempio di applicazione dell’algoritmo
di Iris Recognition proposto da John Daugman [3] e implementato in Matlab [9] da Libor Masek [4] su un’immagine presa dal database del Casia [5]
ottenuta mediante sensori CCD e illuminazione infrarossa. Successivamente
viene descritta un’applicazione commerciale sviluppata dalla Iridian Technologies Inc. [7], un’azienda leader nel settore della biometria, che utilizza
anche l’algoritmo proposto e studiato.
2.2.1
Iris Recognition e le immagini del database Casia
Di seguto vengono illustrati i risultati dell’esecuzione dell’algoritmo di Iris
Recognition [3] implementato in linguaggio Matlab [9] e messo a disposizione
da Libor Masek [4] in una libreria pubblica che viene successivamente utilizzata durante il lavoro di tesi. La prima fase, ovvero quella d’acquisizione
dell’immagine contenente l’occhio, è stata saltata perché non implementata
in tale libreria. Quindi si è utilizzata un’immagine presente nel database
pubblico Casia [5] ottenuta con tecniche di acquisizione basate su sensori
20
CCD e luce infrarossa, come si può vedere in figura 2.8. Nelle figure 2.9 e
Figura 2.8: Esempio di acquisizione effettuata dal Casia.
2.10 sono visualizzati i risultati della fase di selezione dell’iride e della pupilla
(segmentazione) e della rimozione dei disturbi (mascheratura). Invece, nelle
Figura 2.9: Segmentazione di un’immagine del Casia.
figure 2.11 e 2.12, sono presenti la maschera generata dopo l’operazione di
mascheratura (noise mask) dove in bianco (1) sono selezionati i punti appartenenti all’iride ed in nero (0) i restanti e la normalizzazione dell’iride in
coordinate polari. Infine, nella figura 2.13 è presente la codifica in bit della
porzione normalizzata dell’iride (chiamata anche template o IrisCode).
21
Figura 2.10: Mascheratura di un’immagine del Casia.
Figura 2.11: Maschera di rumore generata.
Figura 2.12: Normalizzazione della porzione di iride in coordinate polari.
Figura 2.13: Codifica generata utilizzando la porzione d’iride normalizzata.
22
2.2.2
Applicazione Proof Positive e il suo sviluppo commerciale
Una delle aziende più importanti promotrice dell’Iris Recognition è l’Iridian
Technologies Inc. [7] nata nell’Ottobre del 2000 in New Jersey, detentrice
anche dei brevetti sugli algoritmi proposti da John Daugman [3]. L’Iridian
Technologies propone un’architettura Proof Positive, rappresentata in figura
2.14, per il riconoscimento di un individuo tramite la propria iride. Questa
tecnologia è basata su due prodotti:
• il protocollo PrivateID;
• il sistema KnoWho Authentication Server.
PrivateID è un protocollo per l’elaborazione delle immagini e uno standard
dati che permette ad una o più videocamere certificate col programma Proof
Positive di acquisire immagini, processarle e prepararle ad un trasporto con
un’elevata sicurezza. Questo protocollo permette ad un utente di registrarsi con una videocamera e utilizzarne un’altra, della stessa architettura per
autenticarsi, anche con applicazioni diverse. Ogni telecamera PrivateIDenabled può interoperare con altre, sempre certificate, anche se appartengono a
costruttori diversi. Esse vengono suddivise in 3 gruppi principali:
• Desktop: utilizzate da alcune applicazioni per la sicurezza delle informazioni;
• Pubblic-use: utilizzate per effettuare l’accesso ad aree ristrette ad un
determinato numero di persone;
• Walk-up: utilizzate per un’autenticazione su larga scala;
23
Figura 2.14: Architettura Proof Positive della Iridian Technologies Inc.
• Handheld : utilizzate per effettuare l’autenticazione su dispositivi portatili come palmari o notebook.
Il KnoWho Authentication Server aggiunge scalabilità di rete e velocità di
elaborazione. Questo prevede due funzioni di matching, una per l’autenticazione (confronto 1 : 1) e una per l’identificazione (confronto 1 : N ). Il
software del server ha due elementi principali:
• Database: luogo dove vengono memorizzate le codifiche delle iridi (IrisCode);
• Processing Engine: genera e salva gli IrisCode ed esegue i confronti tra
di essi in tempo reale.
Le 2 principali aziende partner per la realizzazione dei dispositivi di acquisizione sono la Panasonic [12] e la OKI [13] mentre alcune organizzazioni
24
che utilizzano tuttora questo tipo di tecnologia sono gli aeroporti di Heathrow, Frankfurt, Tokyo Narita Airport, New York JFK, le banche di Bank
United of Texas, Dresdner Bank, Brussels Bank, Takefuji Bank e alcuni
building security come Nuclear power stations (Union Electric / Calloway
Nuclear), Brookhaven National Laboratory (USA), US Congressional Offices
(Legislative Counsel) e US Vice President Cheney’s offices (US Dept. of the
Treasury).
25
Capitolo 3
Estrazione adattativa di
caratteristiche iridee da filmati
Per ottenere l’IrisCode dall’immagine di un occhio completo, occorre eseguire
diversi passi illustrati nel capitolo 2. In questo capitolo sono descritti alcuni
metodi, successivamente utilizzati e implementati in linguaggio Matlab [9],
per ottenere un’IrisCode corretto partendo da immagini acquisite con periferiche di basso costo. L’algoritmo di Iris Recognition trova molte difficoltà di
funzionamento con immagini di qualità inferiore rispetto a quelle presenti nel
database pubblico Casia [5], quindi sono stati studiati dei metodi di illuminazione e alcuni algoritmi in modo tale da ottenere una buona acquisizione
video di un occhio e scartare le immagini, non adatte per essere elaborate
dell’algoritmo di Iris Recognition.
Inizialmente nella sezione 3.1 vengono descritti i dispositivi di acquisizione video utilizzati per ottenere le immagini da elaborare con l’algoritmo di
Iris Recognition. Nella sezione 3.2 vengono illustrati i supporti costruiti per
i dispositivi di acquisizione video utilizzati al fine di mantenerli in posizione
fissa e comoda per l’utente utilizzatore. La sezione 3.3 è composta dai tipi di
26
illuminazione utilizzati per rendere l’iride dell’occhio il più visibile possibile
in fase di acquisizione. Successivamente si è descritto in sezione 3.4 l’algoritmo implementato in Matlab (sistema di Biofeedback) per l’acquisizione
delle immagini dell’occhio di una persona. Nella sezione 3.5 viene descritto il metodo utilizzato per la prevenzione di errori nelle immagini acquisite
mentre la sezione successiva, la 3.6, contiene i metodi utilizzati per il miglioramento delle immagini acquisite sia per la rimozione dei disturbi sia per il
miglioramento delle caratteristiche dell’iride. Infine nelle sezione 3.7, 3.8 e
3.9 vengono descritti gli algoritmi studiati ed implementati al fine di effettuare i confronti tra le codifiche generate, ricercare il migliore risultato tra
tutte le immagini acquisite e trovare la massima percentuale di uguaglianza
tra tutte le codifiche elaborate all’interno del dataset acquisito.
3.1
Dispositivi utilizzati
L’algoritmo di Iris Recognition produce dei risultati molto buoni con immagini ottenute tramite sensori CCD di alto costo. L’obiettivo di questa
tesi è quello di adattare il suo funzionamento con l’utilizzo di apparecchiature di basso costo e di qualità inferiore. In questa sezione vengono descritti
i dispositivi video utilizzati per effettuare le prove e i relativi hardware di
acquisizione. La sezione 3.1.1 descrive le caratteristiche della webcam utilizzata, la sezione 3.1.2 le caratteristiche della fotocamera digitale e la sezione
3.1.3 quelle della telecamera domestica.
3.1.1
Webcam
R QuickCam°
R for Notebooks con sensore
E’ stata utilizzata una Logitech°
CMOS VGA, un’intensità colore di 16, 8 milioni di colori (24 bit), con ghiera
27
di messa a fuoco regolabile manualmente, e una risoluzione di 640 × 480
(VGA) massima. Questa webcam è situata in una fascia medio bassa tra le
webcam presenti sul mercato odierno.
3.1.2
Fotocamera digitale
E’ stata utilizzata una Sony DSC-S75 con sensore ottico CCD SuperHAD
da 3, 14 MegaPixel, obiettivo 35mm (34, 0 − 102, 0 mm), zoom ottico 3x e
digitale 2x. Per interfacciare la fotocamera con il computer è stata utilizzata
una scheda di acquisizione video Pinnacle Studio 700-PCI impostata ad una
risoluzione di 720 × 576. Questa fotocamera digitale è situata in una fascia
bassa tra le fotocamere presenti sul mercato odierno mentre la scheda di
acquisizione video offre una qualità molto elevata.
3.1.3
Telecamera domestica
E’ stata utilizzata una telecamera con sensore CMOS, con ghiera di messa a
fuoco regolabile manualmente. Per interfacciarla al computer è stata utilizzata una scheda d’acquisizione video Terratec Cinergy 600-TV impostata ad
una risoluzione di 720 × 576. La telecamera è situata in una fascia molto bassa tra le telecamere presenti sul mercato odierno mentre la scheda utilizzata
per l’acquisizione delle immagini è di fascia media.
3.2
Supporti per periferiche
Per poter eseguire una scansione dell’iride è necessario creare una configurazione, a livello di posizione ed illuminazione, del sistema di acquisizione
video che si vuole utilizzare. In questa sezione vengono descritte delle soluzioni provate per ottenere una corretta acquisizione dell’occhio utilizzando
28
dei supporti appositamente studiati e costruiti. Inizialmente in sezione 3.2.1
viene descritto il supporto per la webcam e la telecamera domestica, successivamente in sezione 3.2.2 viene descritto quello utilizzato per la fotocamera
digitale.
3.2.1
Supporto per la webcam e la telecamera domestica
Questo tipo di supporto è stato costruito e utilizzato al fine di sostenere la
webcam e la telecamera domestica, mantenendole in posizione fissa durante il
loro utilizzo. La sua particolarità sta nel fatto che, tale supporto, deve essere
posizionato di fronte al monitor in cui si utilizza l’applicazione, in questo
modo la fase di centratura dell’occhio, da parte dell’utente, risulta essere
molto semplice e intuitiva in quanto è possibile visualizzare con l’occhio, che
non deve effettuare l’acquisizione, lo schermo del computer in modo da capire
come vengono acquisite le immagini che successivamente verranno elaborate.
La figura 3.1 rappresenta un’immagine di questo supporto. Per questo tipo
Figura 3.1: Supporto costruito per la webcam.
29
di appoggio per la webcam e la telecamera domestica sono stati utilizzati
diversi tipi di illuminazione descritti nella sezione 3.3.
3.2.2
Supporto per la fotocamera digitale
Questo supporto ha la particolarità di sorreggere, ad un altezza di circa
15cm da una superficie di appoggio, la fotocamera digitale descritta in sezione 3.1.2. Inoltre la mantiene in una posizione inclinata in modo che la fase di
lettura dell’iride risulti più comoda da parte dell’utente utilizzatore come si
può vedere in figura 3.2. Il suo posizionamento non prevede la visione dello
schermo come avviene con il supporto per la webcam e la telecamera, quindi
non è possibile capire se l’occhio è centrato in modo corretto rispetto all’obiettivo. Per questo tipo di supporto è stato costruito un apposito sistema
Figura 3.2: Supporto costruito per la fotocamera con relativo sistema di
illuminazione.
di illuminazione descritto in sezione 3.3.1 e raffigurato sempre in figura 3.2.
30
3.3
Illuminazione
Per avere un risultato corretto applicando l’algoritmo di Iris Recognition
bisogna acquisire un’immagine, di un occhio, molto nitida e possibilmente
senza la presenza di dettagli inutili come ad esempio le sopracciglia e le palpebre. Un aspetto molto importante per avere una corretta illuminazione è
dato dal fatto che l’iride deve essere illuminato nel modo più omogeneo possibile, in modo da eliminare le zone d’ombra ed eventualmente i riflessi delle
ciglia. Oltre a questo bisogna però tenere in considerazione i riflessi ottenuti
sull’occhio da parte delle fonti di luce utilizzate, infatti i riflessi non devono
trovarsi nella zona dell’iride in quanto si avrebbe una perdita d’informazioni.
Per questo motivo è necessario cercare di fare posizionare i riflessi o all’interno della pupilla (dove non sono presenti informazioni riguardanti l’iride)
oppure sul bordo dell’occhio (dove anche in questo caso non ci sono informazioni iridee). In questa sezione vengono descritte le sorgenti luminose che
sono state utilizzate per effettuare le prove ovvero la luce al neon descritta
in sezione 3.3.1, lampada alogena descritta in sezione 3.3.2, luce di tipo rosso
descritta in sezione 3.3.3, illuminazione a LED descritta in sezione 3.3.4 ed
infine illuminazione a LED rossi-infrarossi descritta in sezione 3.3.5.
3.3.1
Luce al neon
Il neon è il secondo per leggerezza tra i gas nobili, emette un’incandescenza
rosso-arancio dentro ad un tubo a scarica.
E’ stato costruito quindi un sistema di illuminazione per la fotocamera
digitale e il supporto descritto in sezione 3.2.2 in modo da ottenere un’illuminazione basata sulla luce a neon. Sono state effettuate delle prove utilizzando
quattro lampade fluorescenti al neon, due posizionate lateralmente rispetto
31
all’occhio e due posizionate sopra l’obiettivo della fotocamera come è visibile
in figura 3.2.
3.3.2
Lampada alogena
La lampadina alogena è una particolare lampada ad incandescenza in cui l’efficienza luminosa risulta più elevata rispetto a fonti di luce standard. Questo
è dovuto al fatto che al gas contenuto nel bulbo viene aggiunto iodio, kripton, e a volte, xeno per permettere il riscaldamento del filamento fino a oltre
3000K in modo tale da aumentare la temperatura del colore. Poiché il bulbo,
per permettere la reazione chimica tra iodio e tungsteno, deve avere una temperatura non inferiore a 250◦ C , viene utilizzato un vetro speciale (quarzo) ad
alta resistenza. La figura 3.3 rappresenta la lampadina alogena, con potenza
di 50W, utilizzata in alcune prove in fase di acquisizione. Questa lampadina
è stata posizionata lateralmente rispetto all’occhio ad una distanza di circa
100cm, è importante che la lampada non sia troppo vicina all’occhio perché
la luce alogena lo può danneggiare in quanto emette delle radiazioni nocive al
sistema visivo umano. Esistono in commercio lampade alogene con schermo
incorporato anti UV. In questo caso l’intensità luminosa incidente sull’occhio
deve essere regolata in modo tale da non danneggiare la retina del soggetto.
Figura 3.3: Lampada alogena utilizzata durante le prove.
32
3.3.3
Lampada rossa
In alcune prove, in fase di acquisizione, è stata utilizzata una lampadina di
colore rosso posizionata lateralmente rispetto all’occhio ad una distanza di
circa 30cm al fine di fare risaltare i dettagli dell’iride. Questa lampadina è
di tipo normale, ha solamente la parte superiore verniciata di colore rosso
ed una potenza di 40W. La figura 3.4 rappresenta la lampadina utilizzata.
Questo colore è stato scelto in quanto nella parte rossa e infrarossa dello
spettro le caratteristiche dell’iride sono meglio evidenziate.
Figura 3.4: Lampadina utilizzata che emette luce di colore rosso.
3.3.4
Illuminazione a LED
LED è l’acronimo di Light Emitting Diode (diodo ad emissione di luce). I
LED sono sempre più utilizzati in ambito illuminotecnico in sostituzione di
alcune sorgenti di luce tradizionali. Fondamentalmente il limite dei LED
per questo tipo di applicazione è la quantità di luce emessa (flusso luminoso
espresso in lumen) che nei modelli di ultima generazione per uso professionale
si attesta intorno ai 120lumen ma che nei modelli più economici raggiunge
solo i 20lumen. Una lampadina ad incandescenza da 60W emette un flusso
luminoso di circa 550lumen. Inoltre i LED più luminosi sono ancora quelli
33
a luce fredda con resa cromatica relativamente bassa. Come si può vedere
Figura 3.5: Struttura di un LED.
dalla Figura 3.5 il terminale più lungo di un diodo LED è chiamato anodo
(polo positivo) e il terminale più corto catodo (polo negativo). In molti casi i
LED sono alimentati in continua con una resistenza in serie Rs per limitare
la corrente diretta al valore di lavoro, il quale può variare da 5 − 6mA fino
a 20mA quando è richiesta molta luce. Tale valore dipende anche dalla
lunghezza d’onda della luce emessa dal LED. Il valore della resistenza in
serie Rs è calcolato mediante la legge di Ohm conoscendo la corrente di lavoro
richiesta If , la tensione di alimentazione V s e la differenza di potenziale del
LED alla corrente di lavoro data, V f :
Rs =
Vs−Vf
If
dove l’unità di misura è:
ohm =
volt
ampere
Inoltre, la caduta di tensione dei LED è relazionata al colore della luce emessa, per esempio i LED bianchi hanno una caduta di 3V mentre quelli rossi
di 1, 8V. Nei sistemi di illuminazione creati per le simulazioni effettuate sono stati presi in esame quattro LED di tipo bianco e quattro LED di tipo
34
rosso, tutti ad alta luminosità, collegati al computer tramite un cavo USB
(V s = 5V). Inoltre è stato collegato anche un trimmer al fine di controllare
e modificare la luminosità emessa dai LED stessi. Il loro posizionamento è
stato variabile in base alle prove effettuate, una soluzione è stata quella del
posizionamento dei LED intorno all’obiettivo della webcam come è visibile
in figura 3.6, oppure farli puntare dalla zona bassa del viso verso l’occhio
cercando di lasciare il riflesso sulla parte bassa dell’iride.
Figura 3.6: Posizionamento dei LED intorno all’obiettivo della webcam.
3.3.5
Illuminatore a LED rossi e LED infrarossi
Questo tipo di illuminatore è stato costruito al fine di ottenere un tipo di illuminazione omogenea su tutto l’iride utilizzando solo dei LED di tipo rosso,
non ad alta intensità luminosa, e alcuni LED ad infrarossi. Questo sistema
viene alimentato tramite un adattatore AC/DC collegato a una presa di corrente a 220V che restituisce all’illuminatore una tensione di 7, 5V. Il sistema
è composto da 10 LED di tipo infrarosso e 20 LED di tipo rosso collegati su
una basetta millefori dalle dimensioni di 10 × 5cm. I LED sono posizionati
intorno ad un foro in modo circolare dove i LED più all’interno sono di colore
rosso e quelli più all’esterno di tipo infrarosso, come si può vedere dalla figura
3.7. Dietro al foro creato sulla basetta millefori va posizionato l’obiettivo del
35
dispositivo video di acquisizione, tuttavia non tutti i dispositivi riescono a
visualizzare la luce emessa dai LED infrarossi, in genere questo tipo di illuminazione viene utilizzata quando la luce ambientale è scarsa o addirittura
assente come nel caso della visione notturna. I sensori CCD riescono a vedere
le radiazioni emesse dal LED infrarosso però la loro intensità luminosa può
variare in base al tipo del dispositivo utilizzato. Per questo tipo di illuminatore sono stati scelti i LED rossi perché il rosso è il colore con la lunghezza
d’onda maggiore ed i LED ad infrarosso la cui radiazione infrarossa ha una
lunghezza d’onda compresa tra 700nm e 1mm, quindi in assenza di poca luce
garantisce una buona luminosità.
Figura 3.7: Scheda del sistema di illuminazione a LED rosso - infrarosso.
3.4
Biofeedback
Una volta impostato correttamente il sistema di illuminazione e il dispositivo
di acquisizione video, l’utente è pronto per eseguire l’acquisizione del proprio
occhio e la relativa elaborazione tramite l’algoritmo di Iris Recognition [3].
Questa parte è stata implementata tramite una funzione Matlab che gestisce
il processo di salvataggio delle immagini dell’occhio che vengono successi36
vamente elaborate. Si è scelto di salvare le immagini (frame) ed elaborarle
successivamente in quanto l’algoritmo di Iris Recognition per effettuare il
processo di codifica dell’iride di un singolo frame acquisito impiega un tempo variabile dai 3 ai 10 secondi. Quindi se viene effettuata un’elaborazione
in real-time l’utente utilizzatore dovrebbe rimanere di fronte al dispositivo
d’acquisizione per un tempo di circa 1 minuto per l’elaborazione di circa 20
frame, inoltre se vengono anche applicati filtri per la riduzione del rumore e
miglioramento delle immagini questo tempo potrebbe incrementarsi di molto. Mentre se il processo di elaborazione viene eseguito successivamente sulle
immagini acquisite e salvate in precedenza l’utente deve rimanere di fronte
al dispositivo d’acquisizione solo per il tempo necessario al salvataggio delle
immagini, quindi un tempo molto inferiore rispetto al caso del real-time. Si
è studiato un metodo per rendere la fase di acquisizione, delle immagini di
occhi degli utenti, il più semplice ed intuitiva possibile cercando di trovare
anche una soluzione poco invasiva. Questa funzione richiede 2 parametri di
ingresso che sono rispettivamente:
• numero di frame con il quale eseguire la preview (anteprima);
• numero di frame che verranno salvati per le successive elaborazioni.
Si è scelto di effettuare una fase di preview per garantire, all’utente utilizzatore, il tempo necessario per un corretto posizionamento ed allineamento,
dell’occhio, davanti all’obiettivo in modo tale che una volta iniziata la fase di
acquisizione e salvataggio dei frame, le immagini siano il più possibile centrate rispetto allo schermo e quindi all’obiettivo del dispositivo utilizzato. Per
semplificare ulteriormente questa fase molto importante è stato inserito un
cerchio, con un mirino, molto utile per cercare di centrare il proprio occhio
al centro dello schermo. Infatti è molto importante, per l’algoritmo di Iris
37
Recognition, avere un’immagine di un occhio con almeno 70pixel di raggio
dell’iride. Questo mirino ha anche la funzione di fare capire all’utente se è in
fase di preview o in fase di acquisizione, infatti se il mirino risulterà di colore
verde l’utente saprà che è in fase di preview, mentre se di colore rosso sarà
in fase di acquisizione e quindi deve rimanere il più fermo possibile. Nella
funzione sviluppata si è assunto un raggio del cerchio di biofeedback pari a
180pixel. Nell’immagine 3.8 è visibile un esempio di centratura con il mirino
Figura 3.8: Esempio di biofeedback in fase di anteprima.
del biofeedback in fase di preview e nell’immagine 3.9 un esempio in fase di
acquisizione. Lo schema in figura 3.10 rappresenta la sequenza logica.
38
Figura 3.9: Esempio di biofeedback in fase di acquisizione.
Figura 3.10: Schema a blocchi della funzione biofeedback.
39
3.5
Prevenzione d’errori nelle immagini acquisite
A volte è possibile che alcune immagini risultino non buone a causa di troppe
ciglia, una sfocatura eccessiva o la palpebra dell’occhio troppo socchiusa.
In questi casi è possibile che l’algoritmo di Iris Recognition presenti errori
evidenti durante la fase di calcolo del centro della pupilla e dell’occhio e
interrompa la sua esecuzione. Per evitare questo tipo di errore e quindi
il blocco dell’esecuzione si è implementata una funzione Matlab al fine di
segnalare l’errore ad una determinata immagine e di generare una codifica
dell’iride casuale ed una maschera del rumore tutta nera. Con questo tipo
di soluzione si impedisce che l’algoritmo termini la sua esecuzione, facendolo
procedere forzatamente creando dei risultati casuali. Questo è un sistema
Figura 3.11: Schema a blocchi dell’algoritmo di prevenzione errori.
sicuro in quanto la codifica utilizzata durante le simulazioni è formata da
9600bit, che possono assumere solo valori di 0 oppure 1, in questo modo
40
anche inserendo dei valori casualmente si ha il 50% di probabilità di avere un
bit uguale. Lo schema a blocchi in figura 3.11 rappresenta il funzionamento di
questo algoritmo implementato e la figura 3.12 indica un esempio di immagine
acquisita in modo errato, in questo caso l’occhio risulta non perfettamente
illuminato e il template è stato generato casualmente perché si è creato un
errore nel calcolo del centro della pupilla e dell’iride. Il grafico in figura
Figura 3.12: Esempio di template generato casualmente.
3.13, dove in ascissa sono presenti 20 frame acquisiti tutti in modo errato,
ed in ordinata la percentuale di uguaglianza tra un frame e il suo successivo,
indica appunto che il valore di uguaglianza della codifica tra i frame si assesta
intorno al 50% quindi a una distanza di Hamming con valore di circa 0.5.
Questo grafico quindi indica che i 20 frame potrebbero appartenere a 20
differenti persone in quanto in nessun caso si è superata una percentuale di
uguaglianza di almeno 75%.
3.6
Miglioramento delle immagini
In questa sezione vengono descritte le tecniche studiate e utilizzate al fine
di migliorare le immagini che successivamente elaborate generano la codifica
41
Figura 3.13: Esempio di confronti tra 20 frame contenenti errori di calcolo.
dell’iride. Sono stati applicati filtri per rimozione dei riflessi, creati dall’ illuminazione applicata in fase d’acquisizione, oltre che a filtri per migliorare i
dettagli dell’iride. Nella sezione 3.6.1 viene descritto il procedimento utilizzato per la rimozione dei disturbi causati dall’illuminazione tramite il metodo
Fast-Radial mentre nella sezione 3.6.2 vengono descritti alcuni filtraggi nel
dominio dello spazio e nel dominio della frequenza al fine di migliorare e
risaltare le caratteristiche iridee di un’immagine.
3.6.1
Individuazione e rimozione dei disturbi
Utilizzando il metodo Fast-Radial, per calcolare la simmetria radiale, è possibile individuare ed eliminare i riflessi presenti in un’immagine con occhio
completo in scala di grigi. Questo algoritmo è stato realizzato da Diego Vicoletti [15], proposto da Loy e Zelinsky [10] ed implementato da Kovesi [14]
permette di assegnare in ingresso uno o più valori di raggio n ∈ N , dove
N è l’insieme dei valori di raggio degli elementi ad alta simmetria radiale
che devono essere individuati. Il valore della simmetria al raggio n indica il
42
contributo alla simmetria radiale dei gradienti a una distanza n a partire da
ogni punto. Per ogni singolo raggio n vengono prodotte una matrice di proiezione dell’orientamento On e una matrice di proiezione della magnitudo Mn .
Queste matrici sono generate esaminando il gradiente g a ogni punto p, da
cui sono determinati un corrispondente pixel p+ve (p) mappato positivamente
e un altro mappato negativamente p−ve (p). Le coordinate dei pixel p+ve (p) e
p−ve (p) sono calcolate utilizzando le seguenti formule:
Ã
!
Ã
!
g(p)
p+ve (p) = p + round
n ,
kg(p)k
g(p)
p−ve (p) = p − round
n ,
kg(p)k
dove round indica ogni elemento del vettore arrotondato all’intero più vicino.
Le immagini di proiezione dell’orientamento e della magnitudo sono inizialmente impostate a 0. Per ogni pixel, il corrispondente p+ve in On e in Mn è
incrementato rispettivamente di 1 e di kg(p)k. Mentre il corrispondente p−ve
in On e in Mn è decrementato delle stesse quantità, utilizzando le seguenti
formule:
On (p+ve (p)) = On (p+ve (p)) + 1,
On (p−ve (p)) = On (p−ve (p)) − 1,
Mn (p+ve (p)) = Mn (p+ve (p)) + kg(p)k,
Mn (p−ve (p)) = Mn (p−ve (p)) + −kg(p)k.
La simmetria radiale al raggio n è data dalla seguente convoluzione:
Sn = Fn ∗ An ,
dove:
Mn (p)
Fn (p) =
kn
43
Ã
|Õn (p)|
kn
!α
,
e
Õn (p) =


 On (p) se On (p) < kn


kn altrimenti.
An è il kernel Gaussiano, α è il parametro di accuratezza radiale e kn è il
fattore di scala che normalizza On e Mn attraverso raggi differenti, impostato
come segue:



8 se n = 1
kn (p) = 
 9.9 altrimenti.
Il valore finale della simmetria è definito come la media delle simmetrie dei
raggi considerati,
S=
1 X
Sn .
N n∈N
La funzione utilizzata per determinare i disturbi creati dai riflessi luminosi
richiede alcuni parametri d’ingresso:
• N = {3,5,7} pixel;
• α = 6;
• Deviazione standard a 0.25 * n.
Dove N è l’insieme dei valori di raggio degli elementi ad alta simmetria
radiale che devono essere individuati e quindi n ∈ N . Una volta assegnati
i parametri d’ingresso, viene eseguita in ambiente MatLab la funzione FastRadial. La figura 3.14 è composta da 4 immagini la prima è l’immagine
in ingresso ottenuta con la webcam e con la presenza di riflessi dei 4 LED
utilizzati, la seconda è la matrice relativa ai valori di simmetria radiale, la
terza corrisponde alla maschera dei riflessi e l’ultima è l’immagine finale priva
dei riflessi. Si può notare che nella matrice dei valori di simmetria radiale
le parti bianche, con alti valori di simmetria, corrispondono esattamente alle
riflessioni speculari. Quindi sono stati selezionati i pixel nell’immagine in
44
Figura 3.14: Applicazione dell’algoritmo Fast-Radial.
ingresso che corrispondono ai pixel dell’immagine di simmetria radiale con
valore maggiore di 1. I valori di grigio dei pixel selezionati sono stati sostituiti
col valore medio dei pixel appartenenti all’intorno a distanza 10 da essi.
L’immagine finale ottenuta è priva dei riflessi creati, dai 4 LED posizionati
sulla webcam, intorno alla pupilla. Questa funzione è stata utilizzata dopo la
fase di segmentazione dell’iride, quindi una volta ottenuti il centro dell’iride
e della pupilla solo per le simulazioni in cui si è utilizzato i LED posizionati
intorno all’obiettivo della webcam.
3.6.2
Miglioramento dei rilievi dell’iride
Al fine di migliorare i dettagli dell’iride presente in un’immagine contenente
un occhio (image enhancement [8,16]) si sono studiati ed implementati in
ambiente Matlab alcuni filtri, sia nel dominio spaziale sia nel dominio della
45
frequenza, in modo da rendere l’immagine dell’iride da codificare più nitida
e quindi cercare di avere un miglioramento nei risultati e nell’accuratezza
della simulazione. La differenza del dominio tra spaziale e della frequenza
è dato dal fatto che per i filtri nel dominio dello spazio l’algoritmo lavora
sulla manipolazione dei pixel, mentre per quelli nel dominio della frequenza
l’algoritmo lavora sulla manipolazione della trasformata di Fourier.
I filtri nel dominio spaziale calcolano il nuovo valore del pixel preso in
esame non in base al solo livello di grigio del pixel stesso, ma anche in base al
valore dei pixel che stanno nel suo intorno [16]. L’intorno è rappresentato con
una matrice quadrata dalla dimensione variabile in base al tipo di risultato
che si vuole ottenere. Questa matrice è chiamata anche maschera spaziale
o anche filtro spaziale perché è formata da pesi che hanno la funzione di
calcolare il nuovo valore di un determinato pixel a partire dall’intorno del
pixel stesso. Le elaborazioni nel dominio dello spazio quindi possono essere
espresse come:
g(x, y) = T [f (x, y)].
dove f è l’immagine di ingresso, T un operatore su f definito in un intorno (x, y) ed infine g è l’immagine finale restituita. Si è implementata una
maschera di affilatura chiamata anche sharpening [8] in cui il valore centrale
è positivo e tutti i valori restanti negativi in cui la somma di tutti i valori
restituisce 0, come si può vedere in tabella 3.1. Questo filtro ha lo scopo di
-1
-1 -1
-1
8
-1
-1 -1
-1
Tabella 3.1: Filtro di sharpening.
evidenziare i dettagli di un’immagine ed è anche chiamato passa alto perché
46
aumenta i valori dei componenti di bassa frequenza spaziale presenti. Un
ulteriore metodo utilizzato è il filtro unsharp masking [8] che ottiene un’immagine con risultato uguale ad un passa alto effettuando la differenza tra
l’immagine originale e l’immagine filtrata con filtro passa basso. Il filtro passa alto con somma dei pesi pari a 0 ha un effetto derivativo sull’immagine
applicata infatti l’applicazione di operazioni di differenza al fine di aumentare la nitidezza di un’immagine digitale è analoga alla differenziazione di
una funzione continua. Quindi si è implementato un filtro derivativo [8] che
permetta di studiare le variazioni pixel a pixel presenti in un’immagine. Lo
scopo di questo filtro è quello di determinare i contorni dell’iride presente nell’immagine. Il filtro derivativo scelto è quello Laplaciano presente in tabella
3.2.
0
0
-1
0
0
0
-1
-2
-1
0
-1
-2 16
-2 -1
0
-1
-2
-1
0
0
0
-1
0
0
Tabella 3.2: Filtro derivativo Laplaciano.
Per un filtro derivativo il gradiente è dato da:


∇f = 

∂f
∂x
∂f
∂y


e il filtro Laplaciano utilizzato si comporta nel modo seguente:
∇2 f =
∂2f
∂ 2f
+
∂x2
∂y 2
Per i filtri applicati al dominio della frequenza il procedimento di elaborazione
è il seguente:
47
• viene calcolata la trasformata di Fourier dell’immagine;
• viene moltiplicato il risultato per il filtro che si vuole utilizzare;
• viene effettuata la trasformata inversa per tornare nel dominio spaziale.
Un’immagine può essere vista come una funzione discreta in 2 dimensioni i
cui valori rappresentano il livello di grigio di un determinato pixel. La funzione immagine può essere vista come un segnale, cioè una funzione variabile in
un dominio con una propria frequenza (costante o variabile). Nel caso unidimensionale data una funzione variabile nel tempo f (t), questa funzione può
essere rappresentata come somma di infiniti termini sinusoidali (armoniche
elementari ), attraverso la serie di Fourier.
f (t) = a0 +
∞
X
(ak cos kx + bk sin kx).
k=1
Dove per le proprietà delle funzioni trigonometriche:
µ
sin x = cos x +
π
2
¶
µ
¶
= cos x −
π
,
2
cos2 x + sin2 x = 1.
è possibile scrivere la funzione seno come un coseno avente un certo angolo
di sfasamento. In forma esponenziale ciò equivale a dire che si prende solo la
parte reale della sommatoria delle infinite sinusoidi.
f (t) = a0 +
∞
X
ak cos(2πkv0 t + ϕk ),
k=1
che equivale:
x0 + Re
(∞
X
)
xk e
j2πrv0 t
k=1
allora:
xk = Ak + ejvk
48
,
Quindi dato un segnale, l’analisi consiste nel capire come le diverse frequenze partecipano alla costruzione del segnale stesso. Per far ciò occorre
determinare i coefficienti xk :
2 Z T0
−j 2πkt
xk =
f (t)e T0 dt,
T0 0
dove la componente continua è data da:
1 Z T0
x0 =
f (t)dt.
T0 0
Definita la serie di Fourier, è possibile prendere un segnale e scriverlo come
somma di infinite sinusoidi (analisi ) o, viceversa, date le infinite sinusoidi,
ricostruire il segnale originale (sintesi ). La trasformata di Fourier ad una
dimensione per effettuare lo studio dei segnali nel dominio della frequenza è
data da:
F (u) =
Z ∞
−∞
f (x)e−j2πux dx,
mentre l’antitrasformata di Fourier è data da:
f (x) =
Z ∞
−∞
F (u)ej2πux du,
dove f (x) deve essere continua ed interagibile ed F (u) interagibile. Essendo
una funzione complessa la F (u) può anche essere scritta nel modo seguente:
F (u) = R(u) + jI(u) = |F (u)|ejϕ(u)
dove lo spettro della trasformata è dato da:
q
|F (u)| =
R2 (u) + I 2 (u),
l’angolo di fase è dato da:
Ã
!
I(u)
ϕ(u) = arctan
,
R(u)
49
ed infine lo spettro di potenza è dato da:
P (u) = |F (u)|2 .
Quindi si è realizzato un filtro ideale passa alto [8], rappresentato in figura
3.15, poiché i bordi e i bruschi cambiamenti in un’immagine sono rappresentati dalla presenza di alte frequenze e si è cercato di preservare queste
frequenze e di accentuarle al fine di ottenere una maggiore nitidezza globale
nelle caratteristiche dell’iride. In modo da eliminare le basse frequenze si è
Figura 3.15: Filtro ideale passa alto in frequenza con D0 = 0.5.
trovato H(u, v) che è dato da:


 0 se D(u, v) ≤ D0 ,
H(u, v) = 
 1 se D(u, v) > D .
0
dove
q
(u2 + v 2 )
d(u, v) =
D0 è sempre positiva ed è chiamata cutoff frequency o anche frequenza di
taglio. Come si può vedere dall’immagine 3.15 tutte le frequenze all’interno
di un cerchio di raggio D0 sono completamente attenuate, mentre tutte quelle
superiori passano senza attenuazione. Il problema principale dei filtri ideali è
dato dalle oscillazioni indesiderate della frequenza che crea un effetto ringing
50
o anche Gibbs effect che tuttavia per un filtro passa alto non risulta molto
visibile. Nelle prove effettuate la frequenza di taglio D0 è stata impostata ad
un valore di 100. Si è inoltre implementato un filtro di Butterworth [8] passa
alto rappresentato in figura 3.16 dove:
H(u, v) =
1
1+
( D(u,v)
)2n
D0
in cui n è l’ordine e deve essere un intero positivo e D0 è la frequenza di taglio.
Nelle prove effettuate l’ordine n è stato impostato a 2 mentre la frequenza
di taglio D0 ad un valore di 100. Infine si è sviluppato un filtro in frequenza
Figura 3.16: Filtro in frequenza passa alto Butterworth con D0 = 1 e n = 1.
Gaussiano [8] passa alto rappresentato in figura 3.17 dove:
H(u, v) = 1 − e
−D 2 (u,v)
2D 2
0
Nelle prove effettuate la frequenza di taglio D0 è stata impostata ad un valore
di 200.
51
Figura 3.17: Filtro in frequenza passa alto Gaussiano con D0 = 1.
3.7
Confronto tra le immagini prese in successione
Quando tutte le immagini acquisite sono state elaborate, si ha un numero
di codifiche e di maschere, ovvero di IrisCode e noise-mask, pari al numero
stesso delle immagini. Un’analisi che si è voluta effettuare è stata quella di
confrontare la percentuale di uguaglianza, della codifica dell’iride, tra un’immagine e la sua successiva. In questo modo si ottiene un grafico, a linea,
con un andamento variabile in base a diversi fattori come la sfocatura di
un’immagine o l’errato calcolo del centro della pupilla e dell’iride. La figura
3.18 rappresenta un esempio di grafico ottenuto con questa funzione, dove
in ascissa sono presenti gli indici delle immagini acquisite e in ordinata la
percentuale di uguaglianza tra la codifica di un’iride e la sua successiva la
cui scala varia dal 45% al 90%. La funzione è stata sviluppata in ambiente
Matlab e richiede tre parametri di ingresso:
• numero di frame da analizzare;
• matrice contenente tutti i template;
• matrice contenente tutte le maschere.
52
Figura 3.18: Esempio di Grafico di comparazione tra 7 immagini.
Per effettuare il confronto tra due immagini è stata utilizzata la funzione
proposta da John Daugman [3] e implementata da Libor Masek [4], che confronta i template e le maschere di due immagini ottenendo come risultato
la distanza di Hamming. Per ottenere la percentuale di uguaglianza è stata
utilizzata la formula:
P M = (1 − HD) ∗ 100
Dove P M è la percentuale di matching (percentuale di uguaglianza) tra due
frame e HD è la distanza di Hamming ottenuta dal confronto di due codifiche.
HD può assumere valori che variano da 0 a 1, più questo numero è piccolo più
risulta alta l’uguaglianza tra le due immagini però è altamente improbabile
che HD superi un valore dello 0.5 perchè il template utilizzato è composto
da 9600bit che, ognuno di essi, può assumere valori di 0 o di 1. Quindi la
probabilità di avare un valore uguale nello stesso bit è del 50%. Lo schema
in figura 3.19 indica il procedimento d’esecuzione per arrivare ad ottenere il
grafico di comparazione delle immagini prese in successione.
53
Figura 3.19: Schema a blocchi per ottenere il grafico di comparazione.
3.8
Ricerca della migliore immagine acquisita
Per effettuare la ricerca, tra tutti i frame elaborati, della migliore immagine
e codifica è stata sviluppata una funzione in ambiente Matlab che effettua
vari controlli, tra tutte le immagini prese in esame, al fine di restituire un
frame che potrebbe essere il migliore tra quelli acquisiti dal dispositivo video
utilizzato. Questa funzione richiede 4 parametri di ingresso che sono:
• numero di frame da analizzare;
• matrice contenente tutti i template;
• matrice contenente tutte le maschere;
• soglia minima di uguaglianza.
Il numero di frame e le due matrici di template e maschere di rumore servono
per poter effettuare il calcolo della distanza di Hamming, implementata da
Libor Masek [4], tra ogni singolo frame e tutti gli altri presenti nel dataset
acquisito, effettuando cosı̀ un controllo totale per ogni codifica. Tutte le volte
che in un confronto tra due codifiche dell’iride viene superata la soglia minima
di uguaglianza, che viene impostata all’interno della chiamata a funzione,
54
Figura 3.20: Schema a blocchi della funzione di ricerca della migliore codifica.
viene incrementato di un’unità un contatore riferito al relativo frame. Quindi
si ottengono un numero di contatori pari al numero dei frame che si sta
analizzando, e ogni contatore rappresenta il numero di volte in cui un frame
ha superato la soglia minima di uguaglianza in un confronto con tutti gli
altri frame acquisiti. Tutti questi contatori nella funzione sono stati salvati
all’interno di un array dove la lunghezza è pari al numero di frame. Infine
si analizza questo array e viene trovato il frame il cui contatore ha il valore
più elevato ovvero la codifica che risulta avere il numero di confronti più alto
rispetto alla soglia minima di uguaglianza. Se due o più frame dovessero avere
55
il medesimo valore, viene eseguito per ognuno di essi una media tra tutte le
percentuali trovate sopra la soglia minima al fine di confrontarle e restituire
la codifica con la media più elevata. Lo schema a blocchi rappresentato in
figura 3.20 rappresenta il funzionamento di questa funzione, nel caso in cui
non viene trovata una migliore codifica la funzione restituisce un messaggio
di testo in cui viene indicato che non è stato trovato un migliore frame per
quel valore di soglia minima di uguaglianza impostata. Questa funzione è
utile per scegliere un template che potrebbe essere il più comune tra tutti, in
questo caso scartando anche eventuali template generati con errori causati
dalla sfocatura o di calcoli del centro della pupilla e dell’iride sbagliati. La
figura 3.21 rappresenta un esempio di risultato di questa funzione, applicato
ad un dataset di immagini iridee presenti nel database del Casia [5].
Figura 3.21: Esempio di migliore frame trovato in un dataset di immagini
del Casia.
56
3.9
Ricerca del confronto con uguaglianza più
elevata
Un’ulteriore funzione sviluppata in Matlab è basata sulla ricerca, tra le codifiche dell’iride delle immagini acquisite dal dispositivo video utilizzato, del
confronto con la percentuale di uguaglianza più elevata. Questa funzione
richiede tre parametri di ingresso che sono:
• numero di frame da analizzare;
• matrice contenente tutti i template;
• matrice contenente tutte le maschere.
Questi dati servono alla funzione per poter effettuare il calcolo della distanza
di Hamming utilizzando l’algoritmo proposto da John Daugman [3] e implementato da Libor Masek [4]. Per ogni codifica viene calcolata la distanza
di Hamming rispetto a tutte le altre prese in esame, ed il risultato viene
salvato in una matrice dalle dimensioni pari al numero di immagini acquisite
ed elaborate. La matrice creata, una volta effettuati tutti i calcoli, risulta
essere di tipo simmetrico e la sua diagonale è composta sempre da valori
di 100 perché una codifica viene confrontata con se stessa e quindi la percentuale di uguaglianza risulta essere al livello massimo con una distanza di
Hamming del valore di 0.0. Un esempio della matrice che si può creare con
una simulazione di 10 frame è visibile in figura 3.22, dove la diagonale non
viene considerata e viene trovato il valore evidenziato in verde associato a 2
immagini acquisite. La simmetria che si crea all’interno della matrice indica
una particolare robustezza dell’algoritmo implementato da Libor Masek per
il calcolo della distanza di Hamming. Successivamente viene cercato all’interno della matrice salvata il valore più alto, escludendo il valore 100 che
57
-
1
2
3
4
5
6
7
8
52.3319
52.0693
56.9785
65.2976
55.4117
58.8717
56.3556
52.3319
100
67.1793
62.3994
58.5017
57.5472
49.9778
66.5582
52.1262
69.3813
52.0693
67.1793
100
60.2462
49.7219
50.2504
56.4782
64.3025
50.791
70.4795
4
56.9785
62.3994
60.2462
100
60.9198
55.0221
55.9102
60.8961
56.6941
54.1945
5
65.2976
58.5017
49.7219
60.9198
100
58.553
57.6584
58.0423
60.0554
57.0198
6
55.4117
57.5472
50.2504
55.0221
58.553
100
54.4086
51.1471
55.5011
53.6955
7
58.8717
49.9778
56.4782
55.9102
57.6584
54.4086
100
55.2804
57.4318
55.3004
8
56.3556
66.5582
64.3025
60.8961
58.0423
51.1471
55.2804
100
55.5262
70.5014
9
67.049
52.1262
50.791
56.6941
60.0554
55.5011
57.4318
55.5262
100
56.6467
54.8826
69.3813
70.4795
54.1945
57.0198
53.6955
55.3004
70.5014
56.6467
100
1
100
2
3
10
9
67.049
10
54.8826
Figura 3.22: Esempio della matrice dei confronti generata con 10 frame.
appunto è il risultato del confronto di una codifica con se stessa. Il valore
trovato è la percentuale più alta di uguaglianza tra 2 codifiche di immagini
differenti, e l’indice della colonna e della righa sono i relativi frame che hanno
ottenuto questo confronto. Lo schema in figura 3.23 indica il funzionamento
di tale funzione. Quindi il risultato che si ottiene è quello visibile in figura
Figura 3.23: Schema a blocchi della funzione di ricerca del confronto con
percentuale di uguaglianza più elevata.
3.24. In generale è molto probabile che le 2 immagini con cui si è ottenuta la
percentuale di confronto più elevata siano una successiva all’altra in quanto
58
Figura 3.24: Esempio di risultato ottenuto dall’algoritmo.
è possibile che l’occhio acquisito dal dispositivo di acquisizione, in 2 frame
in successione, vari di pochissimo la sua posizione e quindi anche eventuali
riflessi luminosi siano situati nelle medesime zone e le immagini risultino molto simili tra loro. Tuttavia è possibile che questa funzione restituisca come
massima percentuale di uguaglianza due frame in cui il calcolo del centro dell’occhio e della pupilla siano errati. Questo perchè se due frame sono molto
simili tra loro e il centro trovato, anche se calcolato in modo errato, si trova
nella medesima zona o in punti molto vicini tra loro e le codifiche generate
risulteranno essere quasi identiche.
59
Capitolo 4
Risultati sperimentali
In questo capitolo sono riportati i risultati ottenuti dall’esecuzione, in ambiente Matlab [9], degli algoritmi descritti nel capitolo precedente, con differenti soluzioni a livello di illuminazione. Le immagini utilizzate, sono state
acquisite con webcam, fotocamera digitale e telecamera domestica, la loro
risoluzione è da un minimo di 640 × 480 fino a 720 × 576. Per la fase di acquisizione video analogico è stato utilizzato il sistema Pinnacle Studio PCI-700 e
Cinergy PCI-600TV collegati alla fotocamera digitale e alla telecamera domestica. Per quanto riguarda la webcam invece il segnale video è stato acquisito
mediante la porta USB del computer senza bisogno di utilizzare dispositivi di
acquisizione video. Inoltre sono anche state utilizzate 20 immagini di occhi
di persone diverse e 7 immagini dell’occhio della stessa persona appartenenti
al database del Casia [5], scattate con i sistemi di acquisizione video ad infrarossi e sensori CCD, su cui l’Iris Recognition [3,4], descritto nel capitolo
2, produce risultati corretti.
Nella sezione 4.1 sono riportati i risultati ottenuti dall’utilizzo dell’illuminatore costruito con LED rossi e LED infrarossi, descritto nel capitolo 3. La
sezione 4.2 descrive i risultati ottenuti dall’algoritmo di Iris Recognition tra60
mite l’utilizzo di una webcam con diversi metodi di illuminazione e nel caso
dei LED posizionati sull’obiettivo della webcam vengono esposti i risultati
ottenuti dal filtro di rimozione dei disturbi creati dai riflessi. Nella sezione 4.3
e la sezione 4.4 vengono descritti i risultati ottenuti dall’algoritmo di Iris Recognition tramite l’utilizzo di fotocamera digitale e di telecamera domestica.
Nella sezione successiva, la 4.5, vengono descritte le prove effettuate, sempre
tramite il medesimo algoritmo, con immagini del database del Casia, prima
con iridi appartenenti alla stessa persona e poi con iridi di persone diverse.
La sezione 4.6 elenca i risultati ottenuti dall’algoritmo studiato su immagini
non iridee, prima statiche e poi dinamiche, ottenute tramite l’acquisizione da
webcam. Infine la sezione 4.7 raccoglie i risultati ottenuti dall’applicazione
di filtri per il miglioramento dei dettagli dell’iride, sia nel dominio spaziale
sia nel dominio della frequenza, descritti nel capitolo 3.
4.1
Utilizzo dell’illuminatore a LED rossi e
LED infrarossi
In questa sezione sono esposti i risultati ottenuti con l’utilizzo dell’illuminatore costruito con LED rossi e LED infrarossi descritto nel capitolo 3. In questo
caso non è stato applicato nessun tipo di algoritmo in quanto il sistema di
illuminazione crea una serie di riflessi all’interno dell’occhio che producono la
perdita di moltissime informazioni iridee. Un esempio dei risultati ottenuti
da questo sistema di illuminazione è visibile nella figura 4.1 e nella figura
4.2. La prima è stata ottenuta utilizzando la webcam, e la seconda ottenuta
mediante la videocamera domestica di tipo CMOS collegata al sistema di
acquisizione video Cinergy PCI-600TV. Non sono riportati i risultati ottenuti con la fotocamera digitale, in quanto il foro creato nell’illuminatore è di
61
dimensioni minori dell’obiettivo e quindi l’immagine ottenuta risulta essere
poco significativa. Si è comunque notato che l’illuminazione creata è molto
Figura 4.1: Illuminatore rosso-infrarosso con webcam.
Figura 4.2: Illuminatore rosso-infrarosso con telecamera CMOS.
buona in quanto, nelle prove eseguite, la luce ambientale era assente e che i
rilievi dell’iride sono ben visibili e marcati nelle zone in cui i riflessi dei LED
62
non sono presenti. Inoltre si è potuto constatare che l’intensità luminosa,
emessa dai LED all’infrarosso, varia moltissimo in base al tipo di dispositivo
usato. Infatti come si può vedere nella figura 4.1, il sensore della webcam
presa in esame, risulta più sensibile alla luce infrarossa rispetto a quello della
telecamera domestica CMOS visibile in figura 4.2.
4.2
Prove effettuate con dataset acquisito da
webcam
In questa sezione vengono descritti i risultati, ottenuti dall’algoritmo, con
R con
l’acquisizione delle immagini da elaborare tramite webcam Logitech°
ghiera di messa a fuoco regolabile manualmente ed una risoluzione di 640 ×
480 pixel. La webcam viene collegata al computer tramite porta USB e
l’ambiente Matlab la riconosce utilizzando i driver del prodotto in questione.
In sezione 4.2.1 sono descritti i risultati ottenuti con l’utilizzo di un’illuminazione formata da LED bianchi e una luce di tipo rosso, in sezione 4.2.2
i risultati ottenuti con LED bianchi e una luce di tipo alogeno. Nella sezione successiva, la 4.2.3, sono riportati i risultati ottenuti con i LED bianchi
posizionati intorno all’obiettivo della webcam e una luce rossa posizionata
lateralmente rispetto l’occhio ed in sezione successiva, la 4.2.4, sono riportati
i risultati ottenuti con i LED bianchi posizionati intorno all’obiettivo della
webcam e una luce alogena posizionata lateralmente rispetto l’occhio.
63
4.2.1
Webcam con luce rossa e LED bianchi
Questa simulazione è stata eseguita mediante l’utilizzo della webcam posizionata sul supporto descritto nel capitolo 3.2.1. L’illuminazione applicata è
composta da una lampadina che emette una luce di colore rosso, posizionata
lateralmente rispetto l’occhio ad una distanza di circa 30cm e 4 LED bianchi
posizionati sotto l’occhio in modo tale da eliminare i riflessi delle ciglia e non
avere ombre e che la luminosità risulti omogenea su tutto l’iride. Il dataset
salvato in fase di acquisizione è quello rappresentato in figura 4.3 ed è composto da 20 frame. Il grafico ottenuto dal confronto della codifica dell’iride
Figura 4.3: Test 1 - Dataset acquisito con la webcam.
di un frame e la sua successiva è raffigurato in figura 4.4. Il frame trovato
dall’algoritmo che ha ottenuto il numero più alto di confronti, con valore superiore al 76%, tra tutti i frame del dataset è il numero 20 ed è visualizzato
in figura 4.5. La più alta percentuale di uguaglianza, trovata confrontando
un frame con tutti gli altri, è dell’ 88% ottenuta tra il frame 16 e 17, tale
risultato è visualizzato in figura 4.6. Con questo tipo di illuminazione l’algo-
64
Figura 4.4: Test 1 - Grafico di uguaglianza codifiche prese in successione.
Figura 4.5: Test 1 - Migliore codifica trovata tra quelle presenti nel dataset.
ritmo calcola tutti i centri dell’iride e della pupilla in modo molto corretto
senza presentare nessun tipo d’errore in tutti i 20 frame presi in esame. Un
esempio di calcolo del centro dell’iride e della pupilla è visibile in figura 4.7.
65
Figura 4.6: Test 1 - Massima uguaglianza trovata tra tutte le codifiche.
Figura 4.7: Test 1 - Esempio di centro trovato.
66
4.2.2
Webcam con luce alogena e LED bianchi
Questa simulazione è stata eseguita mediante l’utilizzo della webcam posizionata sul supporto descritto nel capitolo 3.2.1. L’illuminazione applicata
è composta da una lampadina alogena, posizionata lateralmente ad una distanza di circa 100cm rispetto l’occhio e 4 LED bianchi posizionati sotto
l’occhio in modo tale da eliminare i riflessi delle ciglia e che la luminosità
risulti omogenea su tutto l’iride. Il dataset salvato in fase di acquisizione è
quello rappresentato in figura 4.8 ed è composto da 20 frame. Il grafico otte-
Figura 4.8: Test 2 - Dataset acquisito con la webcam.
nuto dal confronto della codifica di un frame e la sua successiva è raffigurato
in figura 4.9. Il frame trovato dall’algoritmo che ha ottenuto il numero più
alto di confronti, con valore superiore al 76%, tra tutti i frame del dataset
è il numero 13 ed è visualizzato in figura 4.10. La più alta percentuale di
uguaglianza, trovata confrontando un frame con tutti gli altri, è dell’ 87%
ottenuta tra il frame 5 e 13, tale risultato è visualizzato in figura 4.11. Con
questo tipo di illuminazione l’algoritmo calcola tutti i centri dell’iride e della
67
Figura 4.9: Test 2 - Grafico di uguaglianza codifiche prese in successione.
Figura 4.10: Test 2 - Migliore codifica trovata tra quelle presenti nel dataset.
Figura 4.11: Test 2 - Massima uguaglianza trovata tra tutte le codifiche.
68
pupilla in modo corretto senza presentare nessun errore in tutti i 20 frame
presi in esame. Un esempio di calcolo del centro dell’iride e della pupilla è
visibile in figura 4.12.
Figura 4.12: Test 2 - Esempio di centro trovato.
4.2.3
Webcam con luce rossa e LED bianchi centrali
Questa simulazione è stata eseguita mediante l’utilizzo della webcam posizionata sul supporto descritto nel capitolo 3.2.1. L’illuminazione applicata
è composta da una lampadina che emette una luce di colore rosso, posizionata lateralmente rispetto l’occhio ad una distanza di circa 30cm e 4 LED
bianchi posizionati di fronte l’occhio intorno all’obiettivo della webcam in
modo tale che i riflessi di questi LED si creino all’interno della pupilla e da
non avere ombre sulla superficie dell’iride e la luminosità risulti omogenea su
tutto l’iride. Il dataset salvato in fase di acquisizione è quello rappresentato
in figura 4.13 ed è composto da 20 frame. Il grafico ottenuto dal confronto
della codifica di un frame e la sua successiva è raffigurato in figura 4.14. Il
frame trovato dall’algoritmo che ha ottenuto il numero più alto di confronti,
69
Figura 4.13: Test 3 - Dataset acquisito con la webcam.
Figura 4.14: Test 3 - Grafico di uguaglianza codifiche prese in successione.
con valore superiore al 76%, tra tutti i frame del dataset è il numero 5 ed è
visualizzato in figura 4.15. La più alta percentuale di uguaglianza, trovata
confrontando un frame con tutti gli altri, è dell’ 78% ottenuta tra il frame 5
e 20, tale risultato è visualizzato in figura 4.16. Con questo tipo di illuminazione l’algoritmo calcola quasi tutti i centri dell’iride e della pupilla in modo
70
Figura 4.15: Test 3 - Migliore codifica trovata tra quelle presenti nel dataset.
Figura 4.16: Test 3 - Massima uguaglianza trovata tra tutte le codifiche.
errato, questo problema è causato dai 4 LED posizionati intorno all’obiettivo
della webcam in quanto il loro riflesso si crea proprio sul confine tra pupilla e
iride creando problemi all’algoritmo per il calcolo dei centri. Un esempio di
calcolo errato del centro dell’iride e della pupilla è visibile in figura 4.17. Si è
quindi applicato il filtro per l’eliminazione dei disturbi, descritto nel capitolo
3.6.1, creati soprattutto dai riflessi dei 4 LED posizionati intorno all’obiettivo
della webcam. Il filtro è stato applicato prima del calcolo del centro dell’iride
e della pupilla ed elimina correttamente i disturbi dei riflessi dei LED, come
si può vedere in figura 4.18, però nel calcolo successivo dei centri si creano
anche in questo caso molti errori che causano una simulazione errata.
71
Figura 4.17: Test 3 - Esempio di centro calcolato in modo errato.
Figura 4.18: Test 3 - Applicazione del filtro di rimozione dei disturbi.
4.2.4
Webcam con luce alogena e LED bianchi centrali
Questa simulazione è stata eseguita mediante l’utilizzo della webcam posizionata sul supporto descritto nel capitolo 3.2.1. L’illuminazione applicata è
composta da una lampadina alogena, posizionata lateralmente rispetto l’occhio ad una distanza di circa 100cm e 4 LED bianchi posizionati di fronte
72
l’occhio intorno all’obiettivo della webcam in modo tale che i riflessi di questi
LED si creino all’interno della pupilla e da non avere ombre sulla superficie
dell’iride e la luminosità risulti omogenea su tutto l’iride. Il dataset salvato
in fase di acquisizione è quello rappresentato in figura 4.19 ed è composto
da 20 frame.
Il grafico ottenuto dal confronto della codifica di un frame e
Figura 4.19: Test 4 - Dataset acquisito con la webcam.
la sua successiva è raffigurato in figura 4.20. Il frame trovato dall’algoritmo
che ha ottenuto il numero più alto di confronti, con valore superiore al 76%,
tra tutti i frame del dataset è il numero 5 ed è visualizzato in figura 4.21.
La più alta percentuale di uguaglianza, trovata confrontando un frame con
tutti gli altri, è dell’ 87% ottenuta tra il frame 5 e 8, tale risultato è visualizzato in figura 4.22. Con questo tipo di illuminazione l’algoritmo calcola
quasi tutti i centri dell’iride e della pupilla in modo errato, questo problema
è causato dai 4 LED posizionati intorno all’obiettivo della webcam in quanto
il loro riflesso si crea proprio sul confine tra pupilla e iride creando problemi
all’algoritmo per il calcolo dei centri. Un esempio di calcolo errato del centro
dell’iride e della pupilla è visibile in figura 4.23. Si è quindi applicato il filtro
73
Figura 4.20: Test 4 - Grafico di uguaglianza codifiche prese in successione.
Figura 4.21: Test 4 - Migliore codifica trovata tra quelle presenti nel dataset.
Figura 4.22: Test 4 - Massima uguaglianza trovata tra tutte le codifiche.
74
Figura 4.23: Test 4 - Esempio di centro calcolato in modo errato.
per l’eliminazione dei disturbi, descritto nel capitolo 3.6.1, creati soprattutto
dai riflessi dei 4 LED posizionati intorno all’obiettivo della webcam. Il filtro
è stato applicato prima del calcolo del centro dell’iride e della pupilla ed elimina correttamente i disturbi dei riflessi dei LED e nel calcolo successivo dei
centri alcuni ottengono un netto miglioramento come si può vedere in figura
4.24 ma comunque la si creano ancora diversi errori durante questa fase per
molte immagini.
Figura 4.24: Test 4 - Applicazione del filtro di rimozione dei disturbi.
75
4.3
Prova effettuata con dataset acquisito da
fotocamera digitale
Utilizzando la fotocamera digitale Sony Cyber-Shot 3.3MegaPixel, collegata al computer tramite un dispositivo di acquisizione video Pinnacle Studio
PCI-700, con un’illuminazione basata su un tipo di luce e di LED di colore
rosso, in quanto il rosso è il colore con la lunghezza d’onda più lunga e quindi
i rilievi dell’iride risultano più visibili, si è provato ad acquisire le immagini da utilizzare con l’algoritmo di Iris Recognition. Il problema principale
è dato dal fatto che la fotocamera è provvista di un sistema di autofocus,
ovvero di una messa a fuoco automatica, che si attiva quando viene premuto
il pulsante di scatto. Nella simulazione non vengono analizzate le fotografie
scattate, ma i frame acquisiti da un flusso video quindi in questo caso non
si riescono ad ottenere dei risultati accettabili, anche attivando la funzione
macro disponibile per la fotocamera in questione. La figura 4.25 rappresenta
un dataset di 10 frame, acquisito con la fotocamera presa in esame, ad una
distanza molto ravvicinata rispetto all’obiettivo. Come si può notare nelle
immagini acquisite il colore rosso emesso dalla lampadina posizionata lateralmente risulta essere più visibile rispetto alle prove effettuate con la medesima
luce ma utilizzando la webcam. Questo è dato dal fatto che il sensore della
fotocamera risulta essere più sensibile rispetto a quello della webcam. Tuttavia i risultati ottenuti da questa acquisizione non sono buoni in quanto l’iride
risulta di dimensioni molto piccole e l’algoritmo non è in grado di ottenere i
risultati cercati. Inoltre molte immagini sono sfocate e si è riscontrata una
grande difficoltà per effettuare la fase di centratura dell’occhio con l’obiettivo della fotocamera digitale. Inoltre il sistema di illuminazione basato sulla
luce al neon ha prodotto una scarsa luminosità sulla superficie dell’iride ed
76
Figura 4.25: Test 5 - Dataset acquisito con la fotocamera digitale.
ha creato due riflessi molto estesi con la conseguente perdita di informazioni.
4.4
Prova effettuate con dataset acquisito da
telecamera domestica
Utilizzando una telecamera domestica analogica di basso costo, con un sensore di tipo CMOS e ghiera di messa a fuoco manuale, collegata al computer
tramite un dispositivo di acquisizione video Terratec Cinergy 600TV è stato
possibile verificare i risultati prodotti dall’algoritmo. L’illuminazione creata
è stata effettuata con una lampadina di colore rosso, posizionata lateralmente
rispetto l’occhio ad una distanza di circa 30cm e da 4 LED di colore rosso posizionati sotto l’occhio in modo da illuminare l’iride. Il dataset di immagini
acquisite è visibile in figura 4.26. Durante l’esecuzione dell’algoritmo si sono
verificati errori causati dall’errato calcolo del centro della pupilla e dell’iride
per il frame 2 e il frame 16. Per questi due casi sono stati generati delle codi-
77
Figura 4.26: Test 6 - Dataset acquisito con la telecamera domestica.
fiche dell’iride casuali tramite la funzione di prevenzione degli errori descritta
nel capitolo 3. Il grafico ottenuto dal confronto della codifica di un frame e
il suo successivo è raffigurato in figura 4.27. Il frame trovato dall’algoritmo
Figura 4.27: Test 6 - Grafico di uguaglianza codifiche prese in successione.
che ha ottenuto il numero più alto di confronti, con valore superiore al 76%,
78
tra tutti i frame del dataset è il numero 3 ed è visualizzato in figura 4.28. La
Figura 4.28: Test 6 - Migliore codifica trovata tra quelle presenti nel dataset.
più alta percentuale di uguaglianza, trovata confrontando un frame con tutti
gli altri, è dell’ 81% ottenuta tra il frame 3 e 7, tale risultato è visualizzato
in figura 4.29. Con questo tipo di soluzione l’algoritmo calcola tutti i centri
Figura 4.29: Test 6 - Massima uguaglianza tra tutte le codifiche.
dell’iride e della pupilla in modo errato, come si può vedere in figura 4.30. Il
risultato ottenuto da questa prova non è quello aspettato, molti frame hanno
una percentuale alta di uguaglianza anche se il centro dell’iride e della pupilla non risulta essere calcolato in modo corretto. Questa percentuale risulta
essere molto alta nei casi in cui i centri calcolati sono stati trovati in prossimità della stessa zona e quindi le informazioni codificate risultano essere
79
Figura 4.30: Test 6 - Esempio di centro trovato.
molto simili tra i due frame. Inoltre l’illuminazione creata dalla lampadina
rossa risulta essere più visibile rispetto al sensore utilizzato dalla webcam.
4.5
Prove effettuate su dataset del Casia
In questa sezione sono esposti i risultati che l’algoritmo proposto ha ottenuto
su un dataset di immagini presenti nel database del Casia [5]. In questo
caso non è stata effettuata la fase di acquisizione da un dispositivo video,
ma è stato applicato l’algoritmo direttamente alle immagini che si è voluto
prendere in esame. Nella sezione 4.5.1 è presente una prova effettuata su
un dataset di 8 immagini iridee appartenenti ad un unico individuo, mentre
nella sezione successiva, la 4.5.2, è stata effettuata una prova su un dataset
di 20 immagini iridee di persone differenti.
80
4.5.1
Immagini della stessa persona
L’algoritmo è stato applicato ad un dataset di 8 immagini dell’occhio di una
sola persona. Queste immagini sono state ottenute con un sistema di illuminazione proposto da Casia [5] basato solo sul tipo di luce infrarossa e tutte
le immagini ottenute risultano prive di sfocatura. La figura 4.31 rappresenta
il dataset di immagini, successivamente elaborate, della persona classificata
con ID 003 del database Casia. La figura 4.32 indica il grafico di uguaglianza
tra la codifica di un’immagine e la sua successiva dove sull’asse delle ascisse
troviamo i frame e sull’asse delle ordinate la percentuale di uguaglianza tra
la codifica di un frame con la sua successiva. Nella figura 4.33 viene rappre-
Figura 4.31: Test 7 - Dataset di immagini Casia utilizzate.
sentato il frame, la cui codifica è stata confrontata con tutte quelle degli altri
frame, ottenendo il numero più alto di volte che tale confronto ha superato la
81
Figura 4.32: Test 7 - Grafico di uguaglianza codifiche prese in successione.
soglia del 76% e quindi ritenuto il migliore tra le 8 immagini prese in esame.
La figura 4.34 rappresenta la massima percentuale di uguaglianza trovata tra
Figura 4.33: Test 7 - Migliore codifica trovata tra quelle presenti nel dataset.
due frame del dataset preso in esame, con il risultato di 88% tra l’immagine
1 e l’immagine 3.
I risultati di questa simulazione hanno dimostrato che,
l’algoritmo utilizzato, produce dei risultati soddisfacenti su immagini di alta
qualità ottenute da dispositivi di acquisizione video di costo elevato. Inoltre
tutti i calcoli per ottenere il centro della pupilla e dell’iride risultano essere
corretti come si può vedere in figura 4.35. Infine i risultati del confronto
82
Figura 4.34: Test 7 - Massima uguaglianza tra tutte le codifiche.
Figura 4.35: Test 7 - Esempio di centro trovato.
delle distanze di Hamming, tra le codifiche delle immagini, hanno ottenuto
dei valori inferiori a 0.4 ovvero superiori al 60% di uguaglianza che in questo
caso indicano che le immagini appartengono alla stessa persona.
4.5.2
Immagini di differenti persone
L’algoritmo è stato applicato ad un dataset di 20 immagini di occhi di persone tutte diverse, ottenute mediante un sistema di illuminazione proposto dal
Casia [5] basato solo sul tipo di luce infrarossa. Tutte le immagini risultano
83
prive di sfocatura con una risoluzione di 320 × 280 salvate in formato bmp.
La figura 4.36 rappresenta il dataset di immagini utilizzate, successivamente
elaborate mentre la figura 4.37 indica il grafico di uguaglianza tra la codifica
dell’iride di un’immagine e la sua successiva dove sull’asse delle ascisse troviamo i frame e sull’asse delle ordinate la percentuale di uguaglianza tra le
due codifiche. Come si può notare dal grafico in figura 4.37 la percentuale di
Figura 4.36: Test 8 - Dataset di immagini Casia utilizzate.
uguaglianza tra due codifiche si assesta tra il 50% e il 60%, questo indica che
effettivamente all’interno del dataset non sono presenti due iridi appartenenti
alla stessa persona. La figura 4.38 indica il valore di uguaglianza massima
tra due codifiche ottenuto eseguendo i confronti tra ogni immagine e tutte
le altre, con risultato del 57% ottenuto tra l’immagine 2 e l’immagine 16. In
questa simulazione non è stata trovata una codifica che può essere ritenuta la
migliore in quanto l’algoritmo non ha trovato nessuna coppia di immagini in
cui il confronto tra le loro rispettive codifiche ha superato la soglia del 76%
84
Figura 4.37: Test 8 - Grafico di uguaglianza codifiche prese in successione.
Figura 4.38: Test 8 - Massima uguaglianza tra tutte le codifiche.
di uguaglianza. Anche in questo caso i calcoli dei centri di tutte le pupille
e di tutti gli iridi sono risultati corretti come si può vedere in figura 4.39. I
risultati di questa simulazione hanno dimostrato che, l’algoritmo utilizzato,
produce dei risultati soddisfacenti su immagini di alta qualità ottenute da
dispositivi di acquisizione video di costo più elevato. Inoltre l’algoritmo applicato soddisfa le nostre aspettative in quanto tra tutti i confronti effettuati,
85
Figura 4.39: Test 8 - Esempio di centro trovato.
la distanza di Hamming tra le codifiche non è mai inferiore a 0.4, ovvero mai
superiore al 60% di uguaglianza. Questo dato indica che effettivamente tutte
le immagini utilizzate appartengono a persone differenti.
4.6
Prove effettuate su immagini non iridee
In questa sezione vengono riportati i risultati di alcune prove in cui vengono
effettuate delle simulazioni su immagini non riguardanti l’occhio e l’iride di
una persona, al fine di valutare i risultati che l’algoritmo può generare. La
sezione 4.6.1 raccoglie i risultati prodotti dall’algoritmo di Iris Recognition
utilizzando, come sistema di acquisizione video, una webcam il cui obiettivo
è posizionato di fronte ad un muro, in modo tale da acquisire un dataset di
immagini statiche. La sezione successiva, la 4.6.2, raccoglie i risultati prodotti dall’algoritmo di Iris Recognition utilizzando, come sistema di acquisizione
video, una webcam il cui obiettivo è posizionato di fronte ad una televisione accesa, in modo tale da acquisire un dataset composto da una serie di
immagini dinamiche.
86
4.6.1
Immagini statiche
In questa simulazione, come dispositivo di acquisizione video è stata utilizzata la webcam, posizionata in modo fisso a circa 5cm di distanza da un muro.
Questa simulazione è stata effettuata allo scopo di valutare i risultati che
può generare l’algoritmo su 20 immagini di tipo statico. La figura 4.40 rappresenta un frame acquisito dalla webcam, i restanti frame risultano molto
simili a questo ma con delle piccole variazioni di luminosità probabilmente
generate dal software di gestione video della periferica. L’algoritmo quando
Figura 4.40: Test 9 - Esempio di frame acquisito.
deve effettuare il calcolo del centro dell’iride e della pupilla, non genera errori
ma trova dei valori sbagliati dove i risultati sono molto simili tra tutti i frame, come viene rappresentato in figura 4.41. Successivamente viene creato
un grafico di uguaglianza per tutte le immagini del dataset, dove la codifica
di un frame è confrontata con quella del frame successivo come si può vedere
in figura 4.42.
L’algoritmo trova un possibile miglior frame e restituisce
un valore del 85% di uguaglianza tra il frame 3 e il frame 6 come migliore
confronto tra due codifiche, rappresentati in figura 4.43 e in figura 4.44. In
questo esperimento l’algoritmo genera una serie di risultati sbagliati, l’errore
87
Figura 4.41: Test 9 - Esempio di centro trovato.
Figura 4.42: Test 9 - Grafico di uguaglianza codifiche prese in successione.
più rilevante è causato dall’errato calcolo del centro dell’iride e della pupilla
in quanto vengono prodotti dei risultati che in realtà non dovrebbero essere
generati. La percentuale di uguaglianza tra i frame presi in esame risulta
essere molto elevata, quasi sempre superiore al 60%, questo è dovuto al fatto
che in quasi tutti i frame il punto di centro dell’occhio calcolato dall’algoritmo risulta essere sempre il medesimo e quindi le codifiche successivamente
generate risultano spesso essere molto simili.
88
Figura 4.43: Test 9 - Migliore codifica trovata tra quelle presenti nel dataset.
Figura 4.44: Test 9 - Massima uguaglianza tra tutte le codifiche.
4.6.2
Immagini dinamiche
In questa simulazione, come dispositivo di acquisizione video è stata utilizzata
la webcam, posizionata in modo fisso a circa 20cm di distanza dallo schermo
di una televisione accesa. Questa simulazione è stata effettuata allo scopo di
valutare i risultati che può generare l’algoritmo su un dataset di 20 immagini
di tipo dinamico. La figura 4.45 rappresenta il dataset di immagini che la
webcam ha salvato durante la fase di acquisizione. L’algoritmo genera alcuni
errori nel calcolo del centro dell’iride e della pupilla per i frame 4, 8 e 17,
generando quindi delle codifiche casuali tramite la funzione di prevenzione
degli errori descritta nel capitolo 3. Nei restanti frame non si creano errori
per tale calcolo e il grafico generato tra i confronti di uguaglianza tra le
89
Figura 4.45: Test 10 - Dataset acquisito con webcam dalla televisione.
codifiche di un frame e del suo successivo sono visibili in figura 4.46. In
Figura 4.46: Test 10 - Grafico di uguaglianza codifiche prese in successione.
questa simulazione non è stato superato in nessun controllo la soglia minima
di uguaglianza tra due frame del 76% e quindi non è stato trovato un frame
considerato migliore. Il confronto che ha ottenuto il valore di uguaglianza
più elevato tra due frame è stato quello tra il frame 16 e il frame 19 con
90
una percentuale di uguaglianza pari al 65% visibile in figura 4.47. I risultati
Figura 4.47: Test 10 - Massima uguaglianza tra tutte le codifiche.
ottenuti in questo tipo di simulazione indicano che solo in 3 occasioni sulle
20 possibili è capitato un errore durante il calcolo del centro dell’iride e della
pupilla, nelle restanti immagini il centro trovato è stato situato in posizioni
variabili in base al tipo d’immagine, come è possibile visualizzare un esempio
in figura 4.48. Inoltre il grafico ottenuto ha confermato che i pattern generati
sono abbastanza diversi l’uno dall’altro.
Figura 4.48: Test 10 - Esempio di centro trovato.
91
4.7
Applicazione di filtri per il miglioramento
delle caratteristiche iridee
In questa sezione vengono esposti i risultati prodotti dai filtri studiati e implementati in ambiente Matlab descritti nel capitolo 3. Nella sezione 4.7.1
vengono descritti i risultati prodotti dall’applicazione di filtri nel dominio dello spazio all’algoritmo di Iris Recognition, mentre nella sezione 4.7.2 quelli
nel dominio della frequenza.
4.7.1
Filtri nel dominio spaziale
I filtri nel dominio dello spazio utilizzati sono:
• Filtro di Sharpening;
• Filtro Unsharp;
• Filtro derivativo Laplaciano.
Questi 3 filtri sono stati applicati dopo il calcolo del centro dell’iride e della
pupilla all’algoritmo di Iris Recognition utilizzando un dataset di immagini
che ha prodotto ottimi risultati come quello acquisito con una luce rossa posizionata lateralmente rispetto all’occhio ad una distanza di circa 30cm e 4
LED bianchi posizionati sotto l’occhio il cui riflesso si crea in prossimità della
palpebra inferiore. Questo dataset è raffigurato in figura 4.3. Le figure 4.49,
4.50 e 4.51 contengono ognuna due immagini in cui la prima è un frame preso
in esame all’interno del dataset e la seconda è il risultato dell’applicazione del
filtro di Sharpening, del filtro Unsharp e del filtro derivativo Laplaciano. Per
verificare i risultati di questi filtri si è creato il grafico di uguaglianza tra la codifica dell’iride di un’immagine e la sua successiva dove sull’asse delle ascisse
92
Figura 4.49: Test 11 - Filtro di Sharpening.
Figura 4.50: Test 11 - Filtro Unsharp.
Figura 4.51: Test 11 - Filtro derivativo Laplaciano.
troviamo i frame e sull’asse delle ordinate la percentuale di uguaglianza tra le
due codifiche. La figura 4.52 rappresenta tale grafico, applicato al dataset in
questione, dove vengono confrontati i risultati dei filtri utilizzati nel dominio
dello spazio rispetto al risultato prodotto dall’algoritmo senza l’applicazione
di filtri. Come si può notare da questo grafico, con l’applicazione di questi
filtri si hanno delle diminuzioni di valori di percentuale tra l’uguaglianza di
due iridi. Quindi a livello visivo i filtraggi producono i risultati cercati, ovvero aumentano la nitidezza delle caratteristiche dell’iride, tuttavia i risultati
93
Figura 4.52: Test 11 - Grafico di comparazione filtri nel dominio spaziale.
prodotti dai grafici non indicano alcun tipo di miglioramento dell’algoritmo
ed inoltre incidono sul tempo computazionale dell’algoritmo.
4.7.2
Filtri nel dominio della frequenza
I filtri nel dominio della frequenza utilizzati sono:
• Filtro Gaussiano passa-alto;
• Filtro ideale passa-alto;
• Filtro di Butterworth passa-alto.
Questi 3 filtri sono stati applicati dopo il calcolo del centro dell’iride e della
pupilla all’algoritmo di Iris Recognition utilizzando un dataset di immagini che ha prodotto ottimi risultati come quello acquisito con una luce rossa
posizionata lateralmente rispetto all’occhio ad una distanza di circa 30cm e
94
4 LED bianchi posizionati sotto l’occhio il cui riflesso si crea in prossimità
della palpebra inferiore. Questo dataset è raffigurato in figura 4.3. Le figure
Figura 4.53: Test 12 - Filtro in frequenza Gaussiano passa-alto.
Figura 4.54: Test 12 - Filtro in frequenza ideale passa-alto.
Figura 4.55: Test 12 - Filtro in frequenza di Butterworth passa-alto.
4.53, 4.54 e 4.55 contengono ognuna due immagini in cui la prima è un frame
preso in esame all’interno del dataset e la seconda è il risultato dell’applicazione del filtro Gaussiano passa-alto, del filtro passa-alto ideale e del filtro
di Butterworth. Per verificare i risultati di questi filtri si è creato il grafico
di uguaglianza tra la codifica dell’iride di un’immagine e la sua successiva
95
dove sull’asse delle ascisse troviamo i frame e sull’asse delle ordinate la percentuale di uguaglianza tra le due codifiche. La figura 4.56 rappresenta tale
Figura 4.56: Test 12 - Grafico di comparazione filtri nel dominio della
frequenza.
grafico, applicato al dataset in questione, dove vengono confrontati i risultati
dei filtri utilizzati nel dominio della frequenza rispetto al risultato prodotto
dall’algoritmo senza l’applicazione di filtri. Le frequenze di taglio utilizzate
sono state impostate a 100 per il filtro di Butterworth (con il valore dell’ordine impostato a 2) e il filtro Ideale, mentre per il filtro Gaussiano ad un
valore di 200. Come si può notare da questo grafico, con l’applicazione di
questi filtri si hanno dei valori di percentuale tra l’uguaglianza di due iridi
molto simili rispetto all’applicazione dell’algoritmo di Iris Recognition standard. Per alcune immagini risulta migliore il filtro di Butterworth mentre
per altre il filtro Gaussiano o quello Ideale in quanto hanno incrementato
lievemente il valore di uguaglianza. In questo caso si è scelto di effettuare
96
uno studio più approfondito a livello globale e si è valutata la percentuale
media di uguaglianza tra tutte le 20 immagini del dataset in questione. I
risultati prodotti da questo studio vengono riportati in tabella 4.1 dove tutti
i filtri utilizzati hanno prodotto un valore di uguaglianza media tra tutte le
immagini superiore al risultato prodotto senza il loro utilizzo. Il filtro che
ha prodotto la media più elevata è stato quello Gaussiano passa alto con
frequenza di taglio impostata ad un valore di 200.
Tipo di simulazione
Frequenza Cut-off
Valore medio
Filtro di Butterworth
100
78.02%
Filtro Gaussiano
200
78.14%
Filtro Ideale HP
100
78.04%
Senza l’uso di filtro
-
77.98%
Tabella 4.1: Test 12 - Medie globali di percentuale di uguaglianza.
Quindi a livello visivo i filtraggi producono i risultati cercati, ovvero aumentano la nitidezza delle caratteristiche dell’iride, tuttavia i risultati prodotti dai grafici aumentano in modo poco significativo i valori di percentuale
di uguaglianza. Sicuramente i filtri nel dominio della frequenza sono risultati
migliori rispetto a quelli nel dominio dello spazio.
97
Capitolo 5
Conclusioni e sviluppi futuri
Questo lavoro di tesi ha riguardato lo studio, l’implementazione e la verifica di
algoritmi che permettono di estrarre le caratteristiche biometriche dell’iride
dopo avere acquisito delle immagini da apparecchiature di acquisizione video di basso costo come webcam, fotocamere digitali, telecamere domestiche
rispetto a quelle utilizzate attualmente nello stato dell’arte.
L’Iris Recognition è stato testato su immagini di occhi, fornite da Casia
[5], scattate con sensori CCD ed un’illuminazione a luce infrarossa. Da tale
verifica è emerso che l’algoritmo estrae in maniera corretta le caratteristiche
biometriche anche da immagini acquisite con apparecchiature di basso costo
come webcam. In particolare, i possibili errori che si possono verificare con
apparecchiature domestiche sono per lo più basati sul fatto che a volte l’algoritmo proposto non riesce a trovare il centro dell’iride e della pupilla in modo
corretto. Per cercare di evitare questo problema sono state studiate diverse
soluzioni di illuminazione fino a trovarne una che riesce a garantire un risultato ottimale. Sono state provate luci di diverso tipo e in posizioni diverse, come
ad esempio LED bianchi, LED rossi, LED all’infrarosso, luci rosse, lampade
alogene e neon bianchi. Sono state studiate e costruite delle configurazioni di
98
ripresa video, con i dispositivi utilizzati, al fine di avere un’immagine nitida
e corretta e rendere il più agevole possibile all’utente utilizzatore la fase di
acquisizione dell’iride. Sono stati studiati e applicati algoritmi per la rimozione dei riflessi della luce, con filtro Fast Radial [10] e hanno prodotto dei
buoni risultati nell’eliminazione dei riflessi luminosi creati sull’iride da parte
dei LED. Di conseguenza, si è proceduto con lo studio e l’implementazione di
algoritmi che permettono d’individuare dato un numero di immagini iridee
di partenza, appartenenti alla stessa persona, quella che risulta essere la più
simile a tutte le altre in modo da scartare eventuali immagini con errori o
sfocature. Un primo algoritmo implementato confronta ogni immagine con
tutte le altre salvando i risultati di uguaglianza, al fine di ricavare le due
immagini più simili tra loro. Un ulteriore algoritmo implementato confronta
tutte le immagini tra di loro e restituisce quella con il numero più alto di
volte il cui confronto risultata essere simile con le altre immagini prese in
esame. Questa soluzione è risultata molto utile per poter eliminare eventuali
immagini errate, infatti se su 20 immagini 3 sono sfocate, l’algoritmo molto
probabilmente non restituirà come miglior immagine una di quelle sfocate,
ma una di quelle 17 restanti che ha il numero più alto di uguaglianza tra di
loro. Infine si sono studiati ed implementati anche alcuni filtri per cercare di
migliorare le immagini acquisite. I filtri provati sono tutti di tipo passa-alto,
sia nel dominio spaziale sia nel dominio della frequenza. I risultati di questi
filtri non sono però stati soddisfacenti in quanto solo i filtri nel dominio della
frequenza hanno aumentato lievemente la percentuale di uguaglianza tra due
iridi, a discapito dell’aumento del tempo computazionale dell’algoritmo. Gli
algoritmi studiati sono stati eseguiti tutti in ambiente MatLab [9] utilizzando
in ingresso le immagini ottenute da dispositivi di acquisizione video, del volto
centrate sull’occhio, di dimensione piuttosto omogenea per tutto il dataset.
99
I risultati ottenuti indicano che è possibile applicare l’algoritmo di Iris
Recognition proposto da John Daugman [3] anche utilizzando dispositivi di
basso costo. Il problema principale è quello di avere una corretta illuminazione dell’occhio in modo che l’algoritmo riesca a ottenere le coordinate
del centro dell’iride e della pupilla in modo corretto. Inoltre il dispositivo
che si utilizza deve avere una messa a fuoco di tipo manuale al fine di avere un’immagine molto nitida, infatti con l’utilizzo della fotocamera digitale
provvista di messa a fuoco automatica non è stato possibile arrivare al risultato ottenuto con la webcam. L’illuminazione con 4 LED, posizionati intorno all’obiettivo della webcam, ha prodotto dei risultati non soddisfacenti in
quanto i riflessi ottenuti dalle luci si formano sulla circonferenza della pupilla
e l’algoritmo molte volte non riesce a capire dove si trova il centro e quindi i
risultati risultano errati. La configurazione che ha portato a buoni risultati,
a livello di illuminazione, è stata quella di posizionare una luce con grande
intensità luminosa lateralmente rispetto all’occhio ad una distanza di circa
30cm e eventualmente altre luci (o meglio dei LED) sotto l’occhio in modo
tale da illuminare bene tutta la superficie dell’iride e di fare creare il riflesso
sulla zona della palpebra. L’illuminazione con una luce di colore rosso ha
prodotto dei risultati interessanti in quanto i rilievi dell’iride risultano essere
molto più visibili rispetto ad altri tipi di luci. Il sistema costruito, formato
da LED all’infrarosso e LED rossi, non è stato utilizzato con l’algoritmo in
quanto i riflessi creati dai LED si creano su quasi tutta l’iride e quindi si ha
una grande perdita di informazioni. Però ha dimostrato che la qualità della
luce infrarossa e della luce rossa è superiore rispetto a quella bianca, infatti
i rilievi risultano essere molto marcati e ben visibili.
I risultati dell’applicazione dell’algoritmo con immagini non iridee sono
stati corretti su immagini di tipo dinamico mentre per quelle di tipo statico in
100
alcuni casi si sono verificati dei valori di uguaglianza troppo elevati. Al fine
di rendere questo algoritmo più sicuro propongo di effettuare un controllo
sulla deviazione dell’immagine acquisita in modo tale da scartarla nel caso il
risultato sia un’immagine troppo omogenea con poche variazioni.
Si propone infine di sviluppare un algoritmo che, una volta acquisita la
miglior immagine, salvi la codifica in un database associandola all’identità
della persona a cui appartiene in modo da avere una sorta di registrazione
al database. Una volta che un utente vuole autenticarsi verrà confrontata la miglior immagine rilasciata in quel momento con tutte quelle presenti
nel database e se il controllo sarà positivo con una delle registrazioni verrà
segnalato il nome della persona che si è autenticata. Inoltre si propone di
sviluppare un algoritmo che effettui un controllo del calcolo del centro dell’iride e della pupilla, al fine di verificare se può ritenersi corretto oppure
errato. Infatti la fase di segmentazione dell’iride è quella che ha avuto maggiori problemi durante tutti i test effettuati. Un’ultima proposta potrebbe
essere quella della costruzione di un illuminatore formato solo da una luce di
tipo infrarosso e quindi di valutare se il risultato prodotto è migliore rispetto
a quello ottenuto con una luce di tipo rosso e LED bianchi.
101
Bibliografia
[1] Uludag U., Pankanti S., Prabhakar S., Jain, A.K., ”Biometric
cryptosystems: issues and challenges”, Volume 92, Issue 6, June 2004
Page(s):948 - 960
[2] C.N.I.P.A.,
Centro Nazionale per l’Informatica nella Pubblica
Amministrazione, http://www.cnipa.gov.it/.
[3] J. Daugman, ”How Iris Recognition Works”, Proceedings of 2002
Internetional Conference on Image Processing, vol. 1, 2002.
[4] L. Masek, ”Recognition of Human Iris Patterns for Biometric
Identification”, School of Computer Science and Software Engineering,
The University of Western Australia, 2003
[5] Chinese Academy of Sciences - Institute of Automation,
”Database of Greyscale Eye Images”, http://www.sinobiometrics.com
Version 1.0, Version 2.0, Version 3.0, 2003.
[6] L. Masek e P. Kovesi, MATLAB Source Code for a Biometric
Identification System Based on Iris Patterns, The School of Computer
Science and Software Engineering, The University of Western Australia,
2003.
[7] Iridian Technologies Inc. , http://www.iridiantech.com/.
102
[8] Rafael C. Gonzalez Richard E. Woods, ”Digital Image Processing”,
Addison-Wesley Publishing Company, Reprinted with
corrections September, 1993.
[9] The
MathWorks,
”Documentation
of
Matlab
R2007B”,
http://www.mathworks.com/access/helpdesk/help/techdoc/matlab.shtml/.
[10] G. Loy e A. Zelinsky, ”Fast Radial Symmetry for Detecting Points of Interest”, IEEE Transaction on Pattern Analisys and Machine Intelligence,
vol. 25, no. 8, pp. 959-973, August 2003.
[11] Peter Kovesi, ”Phase Congruency Detects Corners and Edges”, School
of Computer Science e Software Engineering, The University of Western
Autralia Crawley, W.A. 2003 Delft University of Technology, 2004
[12] Panasonic Security,
http://www.panasonic.com/business/security/biometrics.asp/.
[13] OKI, http://www.oki.com/jp/FSC/iris/en/.
[14] MATLAB and Octave Functions for Computer
Vision and Image Analysis, P. Kovesi,
http://www.csse.uwa.edu.au/pk/Research/MatlabFns/index.html.
[15] Diego Vicoletti, ”Algoritmi per il miglioramento e l’estrazione
delle caratteristiche da immagini di iridi per sistemi biometrici”,
Università degli Studi di Milano Facoltà di Scienze Matematiche, Fisiche
e Naturali Dipartimento di Tecnologie dell’Informazione, 2005/2006.
[16] Munteanu C., Rosa A., ”Gray-scale image enhancement as an
automatic process driven by evolution”, Volume 34, Issue 2, April 2004
Page(s):1292 - 1298.
103