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