Upload
matteo-ratini
View
534
Download
0
Embed Size (px)
DESCRIPTION
Biometrics authentication system based on hand-tracking
Citation preview
Università degli Studi di Roma Tre
Facoltà di Ingegneria
Corso di Laurea Magistrale in
Ingegneria delle Tecnologie della Comunicazione e dell’Informazione
Sicurezza delle Telecomunicazioni
Sistema di autenticazione basato sull’Hand Tracking
Flavio Otello Pierangeli Matteo Ratini
Anno Accademico 2008-2009
Outline
• Introduzione alla biometria
• Keystroke
– Componenti e caratteristiche
– Algoritmo
• Hand Tracking
– Fondamenti
– Algoritmo
– Optical Flow
• Conclusioni
Outline
• Introduzione alla biometria
• Keystroke
– Componenti e caratteristiche
– Algoritmo
• Hand Tracking
– Fondamenti
– Algoritmo
– Optical Flow
• Conclusioni
Introduzione alla biometria (1)
• Biometria: identificazione della persona sulla base delle caratteristiche fisiologiche e comportamentali.
• Tipi di autenticazione:
– Password: qualcosa che l’utente conosce
– Oggetti fisici: qualcosa che l’utente possiede
– Biometria: qualcosa che l’utente È
Introduzione alla biometria (2)
Un sistema biometrico deve garantire: • Universalità: le caratteristiche devono appartenere
solo a una persona
• Unicità: due persone diverse devono avere caratteristiche diverse
• Permanenza: le caratteristiche devono essere invarianti in un certo periodo di tempo
• Collectability: le caratteristiche devono essere misurabili quantitativamente
• Prestazioni: l’uso delle caratteristiche deve garantire buone prestazioni
• Circonvenzione: le caratteristiche devono essere robuste agli attacchi
Introduzione alla biometria (3)
Un sistema di autenticazione biometrico è composto da due sottosistemi:
1. Sistema di Enrollment: si occupa dell’acquisizione e della memorizzazione dei template dell’utente
2. Sistema di Autenticazione, il quale comprende le fasi di:
• Verifica (ricerca uno a molti)
• Identificazione (ricerca uno a uno)
Outline
• Introduzione alla biometria
• Keystroke
– Componenti e caratteristiche
– Algoritmo
• Hand Tracking
– Fondamenti
– Algoritmo
– Optical Flow
• Conclusioni
Keystroke: componenti
• Il Keystroke-scan è una tecnologia puramente software che impiega la tradizionale tastiera per pc per eseguire misurazioni e autenticazione.
• I componenti sono così individuabili: – Data Sampler
– Estrattore di caratteristiche
– Costruttore del template
– Autenticatore
Keystroke: caratteristiche
• Per garantire l’autenticazione, e formare quindi il pattern con le features, sono necessari almeno due tipi di elementi:
1. Latenza: intervallo temporale tra il rilascio di un
tasto e la pressione del successivo
2. Key-down time: durata della pressione del tasto
• Il keystroke pattern è un vettore di un numero variabile di elementi in cui compaiono sempre il latency-time e il key-down time
Outline
• Introduzione alla biometria
• Keystroke
– Componenti e caratteristiche
– Algoritmo
• Hand Tracking
– Fondamenti
– Algoritmo
– Optical Flow
• Conclusioni
Keystroke: algoritmo (1)
• È stato implementato un algoritmo che si occupa di trovare i tasti premuti e i loro istanti di pressione Keydown e Latency time
• Caratteristiche video:
– 320 x 240 pixel
– 30 fps
– Formato .avi non compresso
• Uso di maschere di colore e di forma per identificare i tasti
Keystroke: algoritmo (2)
• Setup sperimentale:
– Tastierino numerico: tasti con bordo bianco
– Webcam fissa
• Maschere di colore e di forma:
– Trovare bordi e identificare i singoli tasti
Keystroke: algoritmo (3)
• Griglia di riconoscimento basata sul criterio “scomparsa del bordo inferiore”
• Iterazione su tutti i frame e salvataggio dei templates nella forma:
(N1 N2 N3 N4 T1 T2 T3 T4 L1 L2 L3)
Outline
• Introduzione alla biometria
• Keystroke
– Componenti e caratteristiche
– Algoritmo
• Hand Tracking
– Fondamenti
– Algoritmo
– Optical Flow
• Conclusioni
Hand Tracking – Fondamenti (1)
• Accresce la quantità di informazione associata all’utente
• Migliora le prestazioni dei sistemi basati su keystroke
• Analisi delle caratteristiche della mano – Forma
– Dimensioni del palmo
– Lunghezza delle dita
– Posizione delle dita
– Velocità di digitazione
• Basso costo computazionale
• Caratteristica fortemente variabile (crescita, incidenti..)
• Scarsa individualità
Hand Tracking – Fondamenti (2)
• Il movimento della mano possiede circa 27 gradi di libertà: 21 per gli angoli di giunzione e 6 per l’orientamento e la posizione
• Self – Occlusion
• Discontinuità del movimento
• Inizializzazione automatica dell’algoritmo
• Soglie
• Luminosità variabile
• Skin detection
Outline
• Introduzione alla biometria
• Keystroke – Componenti
– Algoritmo
• Hand Tracking – Fondamenti
– Algoritmo
– Optical Flow
• Conclusioni
Hand Tracking - Algoritmo
• Tracciamento della posizione delle dita nell’istante di digitazione
• Creazione della maschera
• Indicizzazione degli oggetti nel frame
• Riconoscimento dell’oggetto mano e suo isolamento sulla base del criterio “Area Maggiore”
• Scansione iterativa dell’immagine della mano partendo dal basso
• Per ogni dito trovato viene creata una nuova immagine della mano in cui il dito non è più presente e si riesegue la scansione
Hand Tracking – Risultati (1)
(1) Creazione della maschera (2) Indicizzazione degli oggetti
(3) Isolamento della mano
Hand Tracking – Risultati (2)
(4) Iterazione dell’algoritmo di ricerca
(5) Posizione delle dita
Outline
• Introduzione alla biometria
• Keystroke – Componenti
– Algoritmo
• Hand Tracking – Fondamenti
– Algoritmo
– Optical Flow
• Conclusioni
Hand Tracking – Optical Flow (1)
• Rappresentazione delle velocità apparente degli elementi di un’immagine
• Campo bidimensionale di velocità generato da una sequenza temporale di immagini dovuto al moto degli oggetti presenti nella scena, dell’osservatore e alle fonti luminose.
• Si consideri ora il punto u=[ux uy]T del primo frame. Lo
scopo dell’algoritmo è quello di trovare la posizione v = u+d = =[ux+dx uy+dy]
T nel secondo quadro tale che I(u) e J(v) sono simili.
• Il vettore d=[dx dy]T rappresenta la velocità del punto x,
ovvero l’Optical Flow di x.
I(x)=I(x,y) e J(x)=J(x,y)
Hand Tracking – Optical Flow (2)
• Minimizzazione della funzione ε
• d vettore di velocità
• L’Optical Flow è stato calcolato con il metodo PyrLK basato sull’algoritmo iterativo di Lucas- Kanade
• Permette di aggiungere al template dell’utente le informazioni sulla velocità della mano
Hand Tracking – Optical Flow (3)
(1) Rappresentazione grafica del campo scalare di velocità
(2) Rappresentazione grafica del campo scalare di velocità della sola area in movimento
Outline
• Introduzione alla biometria
• Keystroke – Componenti
– Algoritmo
• Hand Tracking – Fondamenti
– Algoritmo
– Optical Flow
• Risultati e Conclusioni
Conclusioni – PCA (1)
• Template con troppi dati : ridondanza
• I dati dello stesso utente hanno variabilità ridotta entro un certo limite
• Il metodo del Principal Component Analysis è basato sull’errore quadratico medio ed esprime un dato segnale come somma di componenti ortonormali e scorrelate
• Generazione di un nuovo template con i soli valori principali
Conclusioni – PCA (2)
• Nella matrice degli autovalori le prime componenti principali avranno peso maggiore
• Si determina quali autovalori costituiscono il 95% dell’informazione
• Sommare il resto degli autovalori per avere una misura della variabilità delle caratteristiche
Risultati 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
1 0,7 0,1 0,1 1 1 1 0,8 0 0 0 1 0,7 1 1 1 0,9 0,2 0 0,9 0,1 0,9 0,3 1 0 0,1 1 1 1 1
2 1 0,2 0,9 1 1 1 0 0 0 0 0,9 1 1 1 1 1 0,6 0,1 1 0,1 1 1 1 0 0,8 1 1 1 1
3 1 0,1 1 1 0,1 0,9 0 0 0 0 1 0,9 1 1 1 1 0,6 1 0,2 0,1 1 1 1 1 0,3 1 1 1 1
4 1 0,1 0,3 1 0,8 1 0 0 0 0 1 0,5 1 1 1 1 0,3 0,2 0,1 0,1 0,9 1 1 1 0,1 1 0,2 1 1
5 1 0 0,4 1 1 0,1 0 0 0 0 1 0 1 1 1 1 0,1 0,4 0 0,1 0,9 1 1 1 0,1 0,9 0,8 1 1
6 1 0,1 0,1 1 0 1 0 0 0 0 1 0,1 1 1 1 1 0,1 0,2 0,1 0,1 1 1 1 1 0,1 1 0,1 1 1
7 1 0,1 0,9 1 0,9 0,8 0,8 0 0 0 1 0,1 1 1 1 1 0,2 1 0 0,1 1 1 1 1 0,1 0,9 1 1 1
8 1 0,3 1 1 1 1 0,9 1 0,9 0,1 1 1 1 1 1 1 0,9 1 0,9 0,2 1 1 1 1 0,9 1 1 1 1
9 1 0,2 0,9 1 1 1 0,1 0 0 0 0,9 0,9 1 1 1 1 0,8 0 0,9 0,1 0,9 1 1 0 0,8 1 1 1 1
10 1 0,2 0,9 1 1 1 0,9 0,6 0 0 1 1 1 1 1 1 0,9 0,9 0,9 0,1 1 1 1 1 0,9 1 1 1 1
11 1 0,2 0,6 1 1 1 0 0 0 0 1 0,8 1 1 1 1 0,5 0 0,2 0,1 0,9 1 1 0 0,1 1 1 1 1
12 1 0,2 0,9 1 1 1 0 0 0 0 1 1 1 1 1 1 0,9 1 1 0,1 1 1 1 1 0,9 1 1 1 1
13 1 0,2 0,9 1 1 1 0,2 0 0 0 1 0,9 1 1 1 1 0,7 0 0,4 0,1 0,9 1 1 0 0,1 1 1 1 1
14 1 0,1 0,2 1 0 0,7 0 0 0 0 1 0,9 1 1 1 1 0,1 0,2 0,4 0,1 0,9 1 1 1 0,1 1 0,1 1 1
15 1 0,1 0,2 1 0 0,9 0 0 0 0 1 1 1 1 1 1 0,2 0,1 0,9 0,1 0,9 1 1 1 0,7 1 0,1 1 1
16 1 0,2 0,9 1 1 1 0,1 0 0 0 0,9 1 1 1 1 1 0,7 0 1 0,1 0,9 1 1 0 0,8 1 1 1 1
17 1 0,1 0,2 1 0 1 0 0 0 0 1 0,4 1 1 1 1 0,2 0,2 0,2 0,1 0,9 1 1 1 0,1 1 0,4 1 1
18 0,8 0,2 0,9 1 1 1 1 0,6 0 0 1 1 1 1 1 1 0,9 0,1 1 0,1 1 1 1 0 0,9 1 1 1 1
19 1 0,2 0,9 1 1 1 0 0 0 0 0,9 1 1 1 1 1 0,9 0,1 1 0,1 0,9 1 1 1 0,9 1 1 1 1
20 1 0,2 0,9 1 1 1 0,1 0 0 0 0,9 0,9 1 1 1 1 0,9 0 0,9 0,1 0,9 1 1 0 0,7 1 1 1 1
21 1 0,2 0,9 1 1 1 0,2 0,2 0 0 1 1 1 1 1 1 0,9 0,2 0,9 0,1 1 1 1 0 0,9 1 1 1 1
22 1 0,2 0,9 1 1 1 0,1 0 0 0 0,9 1 1 1 1 1 0,9 0,1 1 0,1 0,9 1 1 0,9 0,9 1 1 1 1
23 1 0,1 0,1 1 0,1 1 0 0 0 0 1 0,5 1 1 1 1 0,2 0 0,9 0,1 0,9 1 1 0,1 0,1 1 0,3 1 1
24 0,7 0,2 0,9 1 1 1 0,8 0,1 0 0 0,9 1 1 1 1 1 0,9 0 1 0,1 0,9 1 1 0 0,8 1 1 1 1
25 1 0,2 0,9 1 1 1 0,1 0,1 0 0 1 1 1 1 1 1 0,9 0,7 1 0,1 1 1 1 1 0,9 1 1 1 1
26 1 0,1 0,9 1 0 1 0 0 0 0 1 1 1 1 1 1 0,9 0,2 1 0,1 0,9 1 1 1 0,9 1 1 1 1
27 1 0 0 0,8 0 0 0 0 0 0 0,9 0 0,9 1 0,9 1 0 1 0 0,1 1 1 1 1 0 0,3 0,1 0,9 1
28 1 0,2 0,9 1 1 1 0,2 0 0 0 1 0,9 1 1 1 1 0,7 0 0,4 0,1 0,9 1 1 0 0,1 1 1 1 1
29 1 0 0,1 1 1 1 0 0 0 0 0,9 0,3 1 1 1 0,9 0,2 0 0,1 0,1 0,9 0,9 1 0 0,1 1 0,9 1 1
(1) Tabella di riconoscimento per “data di nascita”
Risultati 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
1 0,9 0 0 0 1 1 1 0,9 0 1 0,9 0,8 1 1 1 1 0 0,6 1 0 0 1 0,9 0 0 0,9 0,1 1 1
2 0,7 0,3 0 0 1 1 1 0,9 0,8 1 0,8 0,9 1 1 1 1 0 1 1 0 0 1 1 0,2 0 1 0,2 1 1
3 1 0,1 0 0,1 0,8 1 1 0,8 0,1 1 0,9 0,1 1 1 0 1 0 0,2 1 1 0 0,9 1 1 1 0,1 0,2 1 1
4 0,9 0 0 0 0,3 1 0,6 0,7 0 1 0,9 0,2 1 1 0,8 1 0 0,2 1 1 0 1 0,8 0,3 0,1 0,9 0,1 1 1
5 1 1 0 0,1 0,1 1 0 0,9 1 1 0,9 0,5 1 1 0 1 0 1 1 1 0,1 1 0,6 1 1 1 0,1 1 1
6 1 1 0 0,4 0,1 1 0 0,9 1 1 0,9 0,5 1 1 0,1 1 0 1 1 1 0,2 1 0,4 1 1 1 0,1 1 1
7 1 1 0 1 0 1 0,9 1 1 1 1 0,9 1 1 0 1 0 1 1 1 1 1 0,8 1 1 1 0,2 1 1
8 1 0,1 0 0 0,1 1 0 1 0 1 0,9 0,8 1 1 1 1 0 0,9 1 1 0 1 0,5 1 0,9 0,9 0,1 1 1
9 0,7 0,5 0 0 1 1 1 0,8 0,9 1 0,3 0,9 1 1 1 1 0 1 1 0,9 0 1 1 0,9 0,2 1 0,2 1 1
10 1 0,2 0 0 0,1 1 0 0,9 0 1 0,9 0,9 1 1 1 1 0 0,9 1 0 0 1 0,6 0,9 0 1 0,1 1 1
11 0,9 0 0 0 0,4 1 0 0,8 0 1 0,9 0,2 1 1 1 1 0 0,2 1 1 0 1 0,6 0,3 0,1 0,9 0,1 1 1
12 1 0,9 0 0 0 0,9 0 1 1 1 0,9 0,9 1 1 1 1 0 1 1 1 0 1 0,6 1 1 1 0,1 1 1
13 0,9 0 0 0 0,3 1 0 0,8 0 1 0,9 0,2 1 1 1 1 0 0,2 1 0 0 1 0,6 0,1 0 0,9 0,1 1 1
14 1 1 0 0,1 0 0,9 0 1 1 1 0,9 0,9 1 1 1 1 0 1 1 1 0 1 0,1 1 1 1 0,1 1 1
15 1 0,9 0 0 0 0,3 0 0,9 1 1 0,9 0,9 1 1 1 1 0 1 1 1 0 1 0,3 1 1 1 0,1 1 1
16 0,9 0,3 0 0 0,3 1 0 0,9 0 1 0,9 0,9 1 1 1 1 0 0,9 1 0,9 0 1 0,6 0,9 0,2 0,9 0,1 1 1
17 1 1 0 0,4 0,9 1 1 0,9 1 1 1 0,2 1 1 0,1 1 0 1 1 1 0,3 1 1 1 1 0,4 0,7 1 1
18 0,7 0,4 0 0 1 1 1 0,8 0,9 1 0,3 0,9 1 1 1 1 0 1 1 0 0 1 1 0,6 0,1 1 0,2 1 1
19 1 1 0 0 0 0 0 1 1 1 0,9 0,9 1 1 1 1 0 1 1 1 0 1 0 1 1 1 0,1 1 1
20 0,8 0,2 0 0 1 1 1 0,9 1 1 0,9 0,9 1 1 1 1 0 1 1 0 0,1 1 1 0,1 0 1 0,1 1 1
21 0,9 0 0 0 0,3 1 0,1 0,8 0 1 0,9 0,2 1 1 1 1 0 0,4 1 1 0 1 0,6 1 0,4 0,9 0,1 1 1
22 0,9 0,3 0 0 0 1 0 0,8 0 1 0,9 0,9 1 1 1 1 0 1 1 1 0 1 0,6 1 0,6 1 0,1 1 1
23 1 1 0 1 0 1 0 1 1 1 1 0,9 1 1 0,6 1 0 1 1 1 1 1 0,8 1 1 1 0,1 1 1
24 0,7 0 0 0 1 1 1 0,9 1 1 0,9 0,9 1 1 1 1 0 1 1 0 0 1 1 0,5 0 1 0,1 1 1
25 0,7 0,1 0 0 1 1 1 0,9 0,9 1 0,4 0,9 1 1 1 1 0 1 1 0 0,1 1 1 0,2 0 1 0,2 1 1
26 0,9 0,8 0 0 0 0,9 0 0,8 1 1 0,9 0,9 1 1 1 1 0 1 1 1 0 1 0,6 1 0,9 1 0,1 1 1
27 1 1 0 0,1 0 1 0 1 1 1 0,9 0,8 1 1 0,7 1 0 1 1 1 0,1 1 0,1 1 1 1 0,1 1 1
28 0,9 0 0 0 0,3 1 0 0,8 0 1 0,9 0,2 1 1 1 1 0 0,2 1 0 0 1 0,6 0,1 0 0,9 0,1 1 1
29 1 0 0 0 0 1 0 0,7 0 1 0,9 0,4 1 1 1 1 0 0,9 1 1 0 1 0,3 1 0,9 0,9 0,1 1 1
(2) Tabella di riconoscimento per “codice”
Conclusioni
• L’algoritmo implementato permette la rilevazione delle caratteristiche tipiche dei sistemi basati su keystroke
• L’algoritmo di Hand Tracking aggiunge delle informazioni fisiologiche migliorando le prestazioni del sistema
• Si è giunti all’individuazione di una statistica per il FAR e per il FRR
Conclusioni
• I risultati possono essere migliorati usando un setup sperimentale quanto più costante nel tempo : • Luminanza • Posizione della tastiera • Posizione relativa tastiera-webcam
• Altri aspetti migliorabili • risoluzione del video • frequenza di aggiornamento • Impiego di più webcam
Grazie dell’attenzione