Progetto e ottimizzazione di algoritmi di riconoscimento...

160
POLITECNICO DI TORINO III Facoltà di Ingegneria Corso di laurea in Ingegneria Informatica Tesi di Laurea Progetto e ottimizzazione di algoritmi di riconoscimento di forme per il gaze tracking Relatori: Ing. Fulvio Corno Ing. Laura Farinetti Candidato: Emiliano Castellina Luglio 2005

Transcript of Progetto e ottimizzazione di algoritmi di riconoscimento...

Page 1: Progetto e ottimizzazione di algoritmi di riconoscimento ...elite.polito.it/files/thesis/fulltext/castellina.pdf · APPENDICE A Anatomia e movimenti dell'occhio 125 Anatomia dell'occhio

POLITECNICO DI TORINO

III Facoltà di Ingegneria Corso di laurea in Ingegneria Informatica

Tesi di Laurea

Progetto e ottimizzazione

di algoritmi di riconoscimento

di forme per il gaze tracking

Relatori:

Ing. Fulvio Corno

Ing. Laura Farinetti

Candidato:

Emiliano Castellina

Luglio 2005

Page 2: Progetto e ottimizzazione di algoritmi di riconoscimento ...elite.polito.it/files/thesis/fulltext/castellina.pdf · APPENDICE A Anatomia e movimenti dell'occhio 125 Anatomia dell'occhio

Indice generale

Indice delle Figure 5

Indice delle Tabelle 8

Introduzione 10

CAPITOLO 1 Gaze tracking 12

1.1 Introduzione 12

1.2 Cos'è l'eye tracking ? 13

1.3 Storia dell'eye tracking 14

1.4 Possibili applicazioni dell’eye-tracking 16

1.4.1 Ergonomia 16

1.4.2 Studio sulla percezione visiva 17

1.4.3 Utilizzo del computer in ambienti di lavoro 18

1.4.4 Disabili motori gravi 18

1.5 Head tracking 20

1.6 Obbiettivo e struttura della tesi 21

CAPITOLO 2 Sistemi di Gaze tracking 23

2.1 Introduzione 23

2.2 Cattura delle immagini 24

2.2.1 API per l'acquisizione di immagini 26

2.3 Riconoscimento della forma 26

2.4 Determinazione del punto fissato (gaze detection) 29

2.5 Alcuni sistemi di eye-tracking esistenti 35

2.5.1 Mytobii 35

2.5.2 Eyegaze System 36

2.5.3 Quick Gaze II 37

2.5.4 EagleEyes 38

CAPITOLO 3 Active shape model 40

3.1 Introduzione 40

3.2 Modello di distribuzione dei punti 42

3.2.1 Picchettatura del training set 42

3.2.2 Allineamento del training set 43

3.2.3 Cattura delle statistiche di un insieme di forme allineate 45

3.3 Ricerca delle forme nelle immagini 47

3.3.1 Calcolo dello spostamento indicato per ogni punto del modello 48

3.3.2 Calcolo dei cambiamenti nella posizione e nei parametri della forma 48

3.3.3 Aggiornamento della posizione e dei parametri della forma 50

Page 3: Progetto e ottimizzazione di algoritmi di riconoscimento ...elite.polito.it/files/thesis/fulltext/castellina.pdf · APPENDICE A Anatomia e movimenti dell'occhio 125 Anatomia dell'occhio

3.4 Implementazione dell'algoritmo 50

CAPITOLO 4 Analisi di fattibilità 52

4.1 Introduzione 52

4.2 Cattura delle immagini 53

4.3 Problematiche nell’utilizzo di ASM 54

4.3.1 Difficoltà nel produrre un modello 55

4.3.2 Calcolo della complessità computazionale 57

4.4 Determinazione punto fissato (Gaze detection) 59

4.4.1 Fase di addestramento 59

4.4.2 Utilizzo dei pesi del modello 60

4.4.3 Utilizzo dell'indice delle immagini 67

4.4.4 Classificatore senza addestramento 73

CAPITOLO 5 Progettazione del sistema 79

5.1 Struttura generale del sistema 79

5.2 Programma di Training 82

5.2.1 Cattura di una collezione di immagini 82

5.2.2 Picchettatura delle forme 83

5.2.3 Generazione del modello e delle matrici associative 86

5.2.4 Funzionalità aggiuntive 89

5.3 Programma di gaze tracking 90

5.3.1 Scelta dell'utente 90

5.3.2 Scelta del modello e della matrice associativa 91

5.3.3 Gaze tracking 92

5.3.3.AGestione dispositivo di input 93

5.3.3.BRicerca della forma 94

5.3.4 Determinazione del punto fissato 95

5.3.4.ADeterminazione del punto fissato (eye tracking) 95

5.3.4.BDeterminazione del punto fissato (head tracking) 97

5.3.5 Applicazioni 100

5.3.5.AApplicazione - Impostazione 101

5.3.5.BApplicazione – Rettangoli 102

5.3.5.CApplicazione – Editor di testi 102

5.4 Database 103

5.4.1 Scelta del Database 103

5.4.2 Struttura del database 104

CAPITOLO 6 Verifiche sperimentali 112

6.1 Introduzione 112

6.2 Parametri ottimali di funzionamento 113

Page 4: Progetto e ottimizzazione di algoritmi di riconoscimento ...elite.polito.it/files/thesis/fulltext/castellina.pdf · APPENDICE A Anatomia e movimenti dell'occhio 125 Anatomia dell'occhio

6.2.1 Numero immagini del training set 113

6.3 Prestazioni del sistema 117

6.3.1 Memoria occupata sul disco fisso 117

6.3.2 Utilizzo della memoria RAM 118

6.3.3 Utilizzo del processore 118

CAPITOLO 7 Conclusione e sviluppi futuri 120

7.1 Possibili sviluppi futuri 122

7.1.1 Modifiche al programma di training 123

7.1.2 Database centralizzato 123

7.1.3 Utilizzo di due webcam 123

BIBLIOGRAFIA 124

APPENDICE A Anatomia e movimenti dell'occhio 125

Anatomia dell'occhio umano 125

Movimenti oculari 125

APPENDICE B Guida al programma di training 127

Creare un nuovo Training set e catturare una collezione di immagini 127

Creare un nuovo Training Set 127

Catturare un collezione di immagini 127

Creare un nuovo path 127

Eseguire la cattura 128

Caricare una collezione di immagini 128

Catturare una singola immagine da webcam 129

Posizionare i picchetti 129

Occhio 131

Testa 131

Generare il modello matematico e matrici associative 132

Gestire i Training Set 132

Caricare Training set 132

Inserire nuove forme 133

Visualizzare/Eliminare le forme inserite 133

Visualizzare modello 133

Gestione Database 134

Compattare Database 134

Esportare TrainingSet 134

Importare TrainingSet 134

APPENDICE C Guida al programma di gaze tracking 135

Considerazioni sulla webcam 135

Gestione utenti 135

Scelta del Training e Modello 135

Page 5: Progetto e ottimizzazione di algoritmi di riconoscimento ...elite.polito.it/files/thesis/fulltext/castellina.pdf · APPENDICE A Anatomia e movimenti dell'occhio 125 Anatomia dell'occhio

Provare il modello 136

Eye-tracking 137

Finestra "Touch Image" 137

Come utilizzare le Applicazioni con l'eye-tracking 137

Impostazioni - Options 137

Applicazioni 138

Mouse Move 138

APPENDICE D Esempio di codice 139

Page 6: Progetto e ottimizzazione di algoritmi di riconoscimento ...elite.polito.it/files/thesis/fulltext/castellina.pdf · APPENDICE A Anatomia e movimenti dell'occhio 125 Anatomia dell'occhio

Indice delle Figure

Figura 1.1: esempio di eye tracking 13

Figura 1.2: esempio di eye tracker indossabile 15

Figura 1.3: esempio delle zone osservate con maggior frequenza in una pagina web 17

Figura 2.1: ausilio informatico 24

Figura 2.2: schema sistema gaze-tracking 24

Figura 2.3: Cattura delle immagini 25

Figura 2.4: Riconoscimento della forma 27

Figura 2.5: filtro di Sobel 28

Figura 2.6 : determinazione punto fissato 30

Figura 2.7: immagine di Tobii 36

Figura 2.8: immagine di eyegaze 37

Figura 2.9: Quick Glace in configurazione portatile 38

Figura 3.1: immagini di occhio catturate da webcam 43

Figura 3.2: Picchetti occhi 43

Figura 3.3: Memorizzazione matrice colori 52

Figura 4.1: disposizione webcam Eye tracking 55

Figura 4.2: disposizione webcam Head tracking 55

Figura 4.3: immagine dell'occhio 57

Figura 4.4: posizione picchetti sull'occhio 57

Figura 4.5: immagine del volto 57

Figura 4.6: posizione dei picchetti sulla testa 57

Figura 4.7: fase di addestramento 61

Figura 4.8: variazione della forma del modello in relazione ai pesi 62

Figura 4.9: Verifica 1 e 2, griglia 64

Figura 4.10: Verifica 3 e 4, griglia 3x3 65

Figura 4.11: Verifica 5 e 6, griglia 2x3 65

Figura 4.12: Relazione tra pesi delle forme e zone osservate. Griglia 2x3 66

Figura 4.13: Relazione tra pesi delle forme e zone osservate. Griglia 3x3 66

Figura 4.14: andamento tasso di errore verifiche 5 e 6 67

Figura 4.15: andamento del tempo di classificazione nelle verifiche 5 e 6 68

Figura 4.16 : andamento tasso di errore Griglia 3x4 71

Figura 4.17 : andamento tasso di errore Griglia 3x3 71

Figura 4.18 : andamento tasso di errore Griglia 2x3 72

Figura 4.19: andamento del tempo di addestramento in funzione del numero di forme catturate per ogni

zona 72

5

Page 7: Progetto e ottimizzazione di algoritmi di riconoscimento ...elite.polito.it/files/thesis/fulltext/castellina.pdf · APPENDICE A Anatomia e movimenti dell'occhio 125 Anatomia dell'occhio

Figura 4.20: tasso di errori in funzione del parametro 73

Figura 4.22: andamento del tasso d'errore in funzione della differenza di posizione. Griglia 3x4 76

Figura 4.23 andamento del tasso d'errore in funzione della differenza di posizione. Griglia 3x3 77

Figura 4.24 andamento del tasso d'errore in funzione della differenza di posizione. Griglia 4x4 77

Figura 4.25:andamento del tasso d'errore in funzione di F , Griglia 3x4, Differenza di posizione 0,5 cm

78

Figura 4.26:andamento del tasso d'errore in funzione di F , Griglia 3x3, Differenza di posizione 0,5 cm

78

Figura 4.27:andamento del tasso d'errore in funzione di F , Griglia 2x3, Differenza di posizione 0,5 cm

79

Figura 5.1: applicazione di training 81

Figura 5.2: Applicazione di Gaze tracking 82

Figura 5.3: schema del funzionamento del programma di training 83

Figura 5.4: esempio di punti che costituiscono un PATH 84

Figura 5.5: zona intorno intorno all'occhio da selezionare 85

Figura 5.6: zona della testa da selezionare 85

Figura 5.7: ordine di posizionamento dei picchetti sull'occhio 86

Figura 5.8: ordine di posizionamento dei picchetti sulla testa 86

Figura 5.9: rappresentazione coordinate PUNTO 87

Figura 5.10 : esempio di variazione delle forme del modello della testa 88

Figura 5.11 : esempio di variazione delle forme del modello dell'occhio 88

Figura 5.12: intorno dei picchetti nelle differenti matrici associative 90

Figura 5.13: funzionalità applicativo di gaze tracking 91

Figura 5.14 : finestra di Scelta del modello 92

Figura 5.15 : schema componenti comuni tra head tracking e eya tracking 94

Figura 5.16: indicazione posizione occhio 96

Figura 5.17 indicazione posizione modello della testa 96

Figura 5.18: scambio messaggi eye tracking 97

Figura 5.19: finestra di confronto immagine (eye tracking) 97

Figura 5.21: picchetti utilizzati per il calcolo del punto medio 99

Figura 5.22: dominio di variabilità della posizione del punto medio 99

Figura 5.24: controllo movimento del mouse 100

Figura 5.25 scambio di messaggi tra sistema e applicazioni 102

Figura 5.26: layout applicazione - impostazione 103

Figura 5.27: Applicazione Editor di testo 104

Figura 5.28: schema delle relazioni tra le tabelle del database 106

Figura 6.1: numero forme riconosciute su numero di forme del training set 115

Figura 6.2: percentuale forme riconosciute su forme del training set 115

Figura 6.3: tempi di costruzione dei modelli in funzione del numero di immagini del training set 116

6

Page 8: Progetto e ottimizzazione di algoritmi di riconoscimento ...elite.polito.it/files/thesis/fulltext/castellina.pdf · APPENDICE A Anatomia e movimenti dell'occhio 125 Anatomia dell'occhio

Figura 6.4: percorso di cattura A 117

Figura 6.5: percorso di cattura B 117

Figura 7.1 Tempi per l'utilizzo del sistema di gaze tracking 122

Figura A: morfologia dell'occhio 126

7

Page 9: Progetto e ottimizzazione di algoritmi di riconoscimento ...elite.polito.it/files/thesis/fulltext/castellina.pdf · APPENDICE A Anatomia e movimenti dell'occhio 125 Anatomia dell'occhio

Indice delle Tabelle

Tab. 2.1 CARATTERISTICHE TECNICHE Mytobii 36

Tab. 2.2: Caratteristiche tencniche Eyegaze System 37

Tab. 2.3: Caratteristiche tecniche Quick Glace II 38

Tab 2.4: Caratteristiche tecniche Eagle Eyes 39

Tab. 4.1: Verifica sperimentale 1 63

Tab. 4.2: Verifica sperimentale 2 63

Tab. 4.3: Verifica sperimentale 3 63

Tab. 4.4: Verifica sperimentale 4 63

Tab. 4.5: Verifica sperimentale 5 64

Tab. 4.6: Verifica sperimentale 6 64

Tab 4.7: Verifica sperimentale 7 69

Tab 4.8: Verifica sperimentale 8 70

Tab 4.9: Verifica sperimentale 9 70

Tab 4.10: Verifica sperimentale 10 70

Tab 4.11: Verifica sperimentale 11 70

Tab 4.12: Verifica sperimentale 12 70

Tab. 4.13: Verifica sperimentale 13 75

Tab. 4.14: Verifica sperimentale 14 75

Tab. 4.15: Verifica sperimentale 15 75

Tab. 4.16: Verifica sperimentale 16 75

Tab. 4.17: Verifica sperimentale 17 75

Tab. 4.18: Verifica sperimentale 18 76

Tab. 5.1: Caratteristiche nell'intorno dei picchetti nelle differenti matrici associative 90

Tab. 5.2 : Tabella Archive 106

Tab. 5.3 : Tabella TrainingSet 107

Tab. 5.4 : Tabella SpotsInfo 108

Tab. 5.5 : Tabella Spots 108

Tab. 5.6 : Shapets 109

Tab. 5.7 : Tabella Matrix 109

Tab. 5.8: Tabella ImagesTs 110

Tab. 5.9: Tabella Collection 111

Tab. 5.10: Tabella ImaColl 111

Tab. 5.11: Tabella PathList 112

Tab. 6.1: Specifiche computer 114

Tab. 6.2: Specifiche webcam 114

8

Page 10: Progetto e ottimizzazione di algoritmi di riconoscimento ...elite.polito.it/files/thesis/fulltext/castellina.pdf · APPENDICE A Anatomia e movimenti dell'occhio 125 Anatomia dell'occhio

Tab. 6.3: Caratteristiche dei TEST 117

Tab. 6.5: Utilizzo della Ram programma di training 118

Tab. 6.6: Utilizzo della Ram programma di training 119

Tab. 6.7: Utilizzo CPU programma di training 119

Tab. 6.8: Utilizzo CPU programma di gaze tracking 119

9

Page 11: Progetto e ottimizzazione di algoritmi di riconoscimento ...elite.polito.it/files/thesis/fulltext/castellina.pdf · APPENDICE A Anatomia e movimenti dell'occhio 125 Anatomia dell'occhio

Introduzione

Tutti i cittadini hanno pari dignità sociale e sono eguali davanti

alla legge senza distinzione di sesso, di razza, di lingua, di reli-

gione, di opinioni politiche, di condizioni personali e sociali

(art. 3 Costituzione della Repubblica Italiana)

Il numero di disabili in Italia secondo le stime di un’indagine dell’ISTAT sulle salute del

1999-2000 è di 2.165.000 pari a circa il 5% della popolazione. La percentuale di popola-

zione invalida è in costante aumento nei paesi industrializzati essenzialmente per l'occor-

renza di tre circostanze:

� l'aumento della vita media : incrementano le persone di età avanzata che sono mag-

giormente soggette a difficoltà sensoriali,motorie e psichiche;

� la diminuzione della mortalità infantile: grazie all'efficacia delle terapie mediche è

possibile tenere in vita neonati con gravi malformazioni;

� l'aumento di incidenti non mortali della strada, lavorativi e domestici.

10

Page 12: Progetto e ottimizzazione di algoritmi di riconoscimento ...elite.polito.it/files/thesis/fulltext/castellina.pdf · APPENDICE A Anatomia e movimenti dell'occhio 125 Anatomia dell'occhio

In questo contesto sono sempre più necessarie nuove tecnologie che permettano di fornire

una vita più dignitosa e agevole alle persone disabili.

L’utilizzo del computer può essere d’ausilio alle persone disabili permettendo di comuni-

care e interagire con l’ambiente circostante.

Sovente le periferiche di input come mouse e tastiera non sono utilizzabili da utenti disabi-

li, per questo si è reso necessario lo studio di sistemi alternativi per l’interazione tra uomo e

computer.

Il gaze tracking o tracciamento del punto fissato è una tecnica utilizzata per poter controlla-

re il computer tramite la stima del punto osservato sullo schermo dall’utente. Esso può ba-

sarsi sull’analisi e l’elaborazione dei movimenti della testa (head tracking) o degli occhi

(eye tracking).

Nel 2004 il politecnico di Torino è entrato a far parte di COGAIN, una rete di eccellenza

per lo sviluppo e la ricerca di tecnologie per l'interazione fra utenti disabili e computer.

COGAIN è un consorzio finanziato dall’unione europea, costituito da ricercatori, imprese

e associazioni di utenti ,che ha come scopo il miglioramento della qualità della vita per le

persone afflitte da disordini nel controllo motorio.

L’efficienza, il comfort e l'ergonomia delle tecnologie prodotte è garantita dal forte coin-

volgimento delle comunità di utenti nel progetto.

Nell’ambito di questo consorzio il Politecnico di Torino ha progettato e sviluppato un pro-

prio sistema di gaze tracking finalizzato all’ausilio per le persone disabili.

11

Page 13: Progetto e ottimizzazione di algoritmi di riconoscimento ...elite.polito.it/files/thesis/fulltext/castellina.pdf · APPENDICE A Anatomia e movimenti dell'occhio 125 Anatomia dell'occhio

CAPITOLO 1

Gaze tracking

1.1 Introduzione

Per gaze tracking si intende l’insieme delle tecnologie hardware e software atte a permette-

re l’interazione tra utente e computer attraverso la cattura e l’elaborazione del punto dello

schermo osservato.

Il gaze tracking si può ulteriormente distinguere in eye tracking ed head tracking a seconda

che per il riconoscimento si analizzino gli occhi o la testa dell’utente.

Le tecniche di eye tracking hanno una diffusione maggiore sia per quanto riguarda il nume-

ro di sistemi commerciali esistenti sia per il numero di articoli pubblicati su algoritmi e stu-

di teorici.

Questo capitolo tratterà un’introduzione all’eye tracking di cui si illustreranno la storia e gli

ambiti di utilizzo.

Un breve paragrafo sarà dedicato all’head tracking e ai suo campi di applicazione.

12

Page 14: Progetto e ottimizzazione di algoritmi di riconoscimento ...elite.polito.it/files/thesis/fulltext/castellina.pdf · APPENDICE A Anatomia e movimenti dell'occhio 125 Anatomia dell'occhio

CAPITOLO 1 Gaze tracking

Una volta introdotti i sistemi e le metodologie di gaze tracking verranno descritti gli ob-

biettivi e la struttura della presente tesi.

1.2 Cos'è l'eye tracking ?

Per eye tracking o tracciamento oculare si intende la tecnica utilizzata nelle scienze cogni-

tive, in psicologia, nell'interazione fra uomo e computer e in numerosi altri campi per cattu-

rare e registrare i movimenti degli occhi.

Figura 1.1: esempio di eye tracking

Nell'osservazione del contenuto di una schermata di computer gli occhi presentano due

comportamenti tipici fondamentali: delle saccadi e delle fissazioni.

Le saccadi sono i movimenti che sono volti a posizionare il contenuto dello schermo nella

zona di maggior risoluzione dell'occhio. Sono i movimenti più rapidi che il corpo umano

possa eseguire: possono superare i 400 gradi al secondo e hanno una durata che si aggira

tra i 20 e 50 millisecondi.

Le fissazioni sono soste del movimento oculare su singoli elementi interessanti. Questa

pause( della durata media di un quarto di secondo) sono volte al recupero e all'analisi del

contenuto fissato, il che permette di leggere un testo, interpretare un'immagine,ecc.

I movimenti saccadici e le fissazioni si alternano in modo che l'occhio si muova da un pun-

to all'altro dello schermo. La registrazione dell'alternanza tra movimenti saccadici e fissa-

zioni è denominata scanpath.

Attualmente sono disponibili quattro tecniche che permettono di registrare i dati relativi ai

movimenti oculari:

1. l'elettrooculografia: per mezzo di elettrodi posti vicino agli occhi registra l'attività elet-

trica prodotta dalla loro rotazione. Le informazioni hanno un buon data-rate (elevati

13

Page 15: Progetto e ottimizzazione di algoritmi di riconoscimento ...elite.polito.it/files/thesis/fulltext/castellina.pdf · APPENDICE A Anatomia e movimenti dell'occhio 125 Anatomia dell'occhio

CAPITOLO 1 Gaze tracking

dati al secondo) ma sono poco precise sulla posizione dello sguardo.

2. La tecnica galvanometrica o della “bobina sclerale”: i movimenti oculari sono dedotti

dalle variazioni del campo magnetico in cui il soggetto è immerso. Le variazioni sono

dovute al fatto che sull'occhio del soggetto è posta una speciale lente a contatto conte-

nente un filamento elettrico. La precisione dei dati è elevata ma questa tecnica è molto

invasiva, quindi scarsamente usata.

3. La tecnica del riflesso corneale: inviando un piccolo fascio luminoso infrarosso al cen-

tro della pupilla, è possibile dedurre i movimenti dell'occhio dalle variazioni del rifles-

so rinviato. Maggiori dettagli su questa tecnica saranno esposti nella descrizione di al-

cuni sistemi commerciali di eye-tracking nel paragrafo 2.5.

4. Le tecniche di analisi dell'immagine: le immagini catturate in tempo reale vengono

processate ed elaborate per stabilire il punto osservato. La precisione e le prestazioni

sono dipendenti dalla risoluzione del dispositivo di cattura utilizzato e dalla capacità di

elaborazione del computer sui cui è in funzione il sistema. Il sistema, oggetto di questa

tesi, utilizza queste tecniche.

1.3 Storia dell'eye tracking

Lo studio del movimento degli occhi precede la diffusione del computer di almeno 100

anni, un esempio di tali ricerche è “Physiologie de la lecture et de l'écriture”,scritto dal-

l’oftalmico francese Emile Javal nel 1878.

I primi metodi per tracciare la posizione fissata dagli occhi erano piuttosto invasivi, richie-

devano un contatto meccanico diretto con la cornea.

Dodge e Cline nel 1901 svilupparono la prima tecnica precisa e non invasiva di traccia-

mento oculare usando la luce riflessa dalla cornea. Il loro sistema registrava su una lastra

fotografica solamente la posizione orizzontale dell’occhio e richiedeva che la testa del par-

tecipante fosse senza movimento.

Poco dopo, nel 1905 Judd,McAllister e Steel applicarono la tecnica cinematografica per

registrare l’aspetto temporale del movimento degli occhi in due dimensioni. La loro tecnica

registrava il movimento di una piccola particella bianca inserita negli occhi dei partecipanti

invece della luce riflessa direttamente dalla cornea.

Queste e altre ricerche inerenti lo studio del movimento degli occhi fecero ulteriori pro-

gressi durante la prima metà del ventesimo secolo con la combinazione della tecnica cine-

14

Page 16: Progetto e ottimizzazione di algoritmi di riconoscimento ...elite.polito.it/files/thesis/fulltext/castellina.pdf · APPENDICE A Anatomia e movimenti dell'occhio 125 Anatomia dell'occhio

CAPITOLO 1 Gaze tracking

matografica e della riflessione della luce dalla cornea in diversi modi.

Negli anni trenta, Miles Tinker e i suoi colleghi iniziarono ad applicare tecniche fotografi-

che allo studio del movimento degli occhi durante la lettura. Studiarono gli effetti sulla ve-

locità di lettura e i differenti modelli di movimento oculare risultanti dalla variazione di ca-

rattere, dimensione di stampa e layout di un testo.

Nel 1947 Paul Fitts e i suoi collaboratori iniziarono ad utilizzare la tecnica cinematografica

per studiare il movimento degli occhi dei piloti al fine di comprendere come venivano os-

servati i controlli e gli strumenti nella cabina di pilotaggio durante la fase di atterraggio.

Gli studi di Fitts rappresentano la prima applicazione di eye tracking per l’ergonomia, ossia

uno studio sistematico delle interazioni tra utenti e prodotto per migliorare la progettazione

del prodotto.

Nel 1948 Hartridge e Thompson inventarono il primo eye tracker che si posizionava sulla

testa.

Rozzo per gli attuali standard, questa innovazione servì a liberare i partecipanti agli studi

dai costrittivi vincoli al movimento della testa.

Negli anni sessanta Shackel, Mackworth & Thomas migliorarono il sistema di eye-tracking

posizionato sulla testa rendendolo meno fastidioso e riducendo ulteriormente le restrizioni

al movimento della testa.

Figura 1.2: esempio di eye tracker indossabile

La ricerca sul movimento oculare e sull’eye tracking rifiorì negli anni settanta, con grandi

progressi sia nella tecnologia di eye-tracking , sia nella teoria psicologica del legame tra i

processi cognitivi e i modelli di movimento oculare.

Molto del lavoro fu focalizzato sulla ricerca in psicologia e fisiologia nel comprendere

come l’occhio umano funzionasse e cosa potesse rivelare sui processi percettivi e cogniti-

15

Page 17: Progetto e ottimizzazione di algoritmi di riconoscimento ...elite.polito.it/files/thesis/fulltext/castellina.pdf · APPENDICE A Anatomia e movimenti dell'occhio 125 Anatomia dell'occhio

CAPITOLO 1 Gaze tracking

vi.

Le pubblicazioni degli anni settanta riportano una stasi nell’utilizzo dell’eye-tracking per

l’ergonomia, probabilmente cioè fu dovuto alla difficoltà nelle raccolta e soprattutto nel-

l’analisi dei dati.

Molti dei rilevanti lavori degli anni settanta riguardavano il miglioramento tecnico per au-

mentare l’accuratezza e la precisione dei tracker. La scoperta che la riflessione multipla

dall’occhio potesse essere usata per dissociare la rotazione oculare dal movimento della te-

sta incrementò la precisione del tracciamento e aprì la strada allo sviluppo di sistemi senza

vincoli di movimento per i partecipanti.

Nel 1974 due imprese belliche statunitensi in collaborazione con l’esercito e la marina svi-

lupparono ognuna un sistema automatico di eye tracking in tempo reale, utilizzando un mi-

nicomputer,

Questi sistemi furono i precursori nell’utilizzo di sistemi di eye tracking per l’interazione

uomo macchina in tempo reale.

Negli anni ottanta con il diffondersi dei personal computer, i ricercatori iniziarono a studia-

re come l’eye tracking potesse essere applicato alla interazione uomo computer. Dapprima

fu utilizzato per lo studio dell’ergonomia delle applicazione, in seguito per permettere l’uti-

lizzo del computer ad utenti disabili.

1.4 Possibili applicazioni dell’eye-tracking

In periodi recenti con l’evoluzione della capacità elaborativi dei personal computer e il mi-

glioramento continuo della tecnologia hardware relative all’acquisizione di immagini l’uti-

lizzo dell’eye-tracking si è potuto diffondere oltre l’ambito accademico di ricerca in cui è

stato sviluppato.

1.4.1 Ergonomia

Uno dei campi di maggior utilizzo dei sistemi di eye-tracking è lo studio dell’ergonomia

dei prodotti per migliorarne la progettazione.

Vengono condotti test statistici di osservazione su campioni rappresentativi di individui e

grazie ai dati raccolti si ottimizza il layout del prodotto.

16

Page 18: Progetto e ottimizzazione di algoritmi di riconoscimento ...elite.polito.it/files/thesis/fulltext/castellina.pdf · APPENDICE A Anatomia e movimenti dell'occhio 125 Anatomia dell'occhio

CAPITOLO 1 Gaze tracking

Esempi di prodotti interessati da un’analisi dell'ergonomia condotta con tracciamento ocu-

lare sono:

• applicativi informatici e siti web : si può ottenere un miglioramento dell’inter-

faccia per agevolare l’utilizzo dell’applicativo sia da parte di utenti normodotati

che da disabili. Grazie a questi studi è stato possibile determinare delle linee

guida da rispettare per permettere l’accessibilità di siti web per persone ipove-

denti, come tipologia e dimensione dei caratteri da utilizzare e abbinamenti cro-

matici adatti. Un esempio di questo campo di applicazione è rappresentato in fi-

gura 1.3, in cui le zone più fissate di una pagina web sono evidenziate da una

maggiore altezza in modalità tridimensionale.

Figura 1.3: esempio delle zone osservate con maggior frequenza in una pagina web

• mezzi di trasporto: la posizioni dei controlli e dei comandi vengono progettate

per minimizzare errori di lettura e migliorare la funzionalità. Questa tipologia di

analisi è diffusa soprattutto in ambito aeronautico.

• Pubblicità: i marchi dei prodotti vengono posizionati per essere maggiormente

visibili nei punti che dagli studi sono risultati più frequentemente fissati. In

questo ambito si ha il più diffuso utilizzo dell’eye-tracking.

1.4.2 Studio sulla percezione visiva

I sistemi di tracciamento del movimento oculare vengono utilizzati, in ambito di ricerca in

psicologia, per creare modelli che relazionano la posizione fissata da un soggetto alle facol-

tà di lettura, apprendimento e comprensione.

Studi recenti dello psicologo inglese Richard Wiseman hanno dimostrato che una persona

17

Page 19: Progetto e ottimizzazione di algoritmi di riconoscimento ...elite.polito.it/files/thesis/fulltext/castellina.pdf · APPENDICE A Anatomia e movimenti dell'occhio 125 Anatomia dell'occhio

CAPITOLO 1 Gaze tracking

non vede in realtà l’immagine fissata dagli occhi, ma una rielaborazione che il cervello fa

di essa.

In questa rielaborazione si ha una modifica dell’immagine reale con l’omissione di partico-

lari “superflui” ed in attesi.

Un esempio di tale rielaborazione selettiva del cervello si è risultato da un esperimento

svolto su 10 piloti di aviazione civile. Il test consisteva nel far provare ai piloti con un si-

mulatore di volo un atterraggio e di registrare i tramite tecniche di eye tracking la zona os-

servata in ogni momento. Durante il test il simulatore visualizzava improvvisamente sulla

pista di atterraggio un aereo. Quattro dei dieci piloti, partecipanti al test, non si sono accorti

di nulla e hanno proseguito la manovra di atterraggio. Le registrazioni effettuate dall'eye

tracker hanno evidenziato che i piloti hanno fissato la zona in cui è apparso l'aereo, ma il

cervello ha omesso tale informazione perché inattesa e non ritenuta possibile.

1.4.3 Utilizzo del computer in ambienti di lavoro

Data l’elevato costo dei dispositivi di eye-tracking il loro utilizzo è limitato al momento al-

l’ambiente militare. Un sistema di tracciamento oculare è utilizzato all’interno dei caschi

dei piloti di aviazione per interagire col computer di bordo e visualizzare informazioni.

Esistono anche visori speciali utilizzati dall’esercito collegati a computer indossabili, in

questo caso l’eye tracking è utilizzato come strumento di puntamento per selezionare le

funzionalità del computer.

In linea di massima un’interfaccia di eye tracking è utilizzabile in tutti gli ambienti lavora-

tivi in cui l’operatore non ha la possibilità di utilizzare le mani per gestire e controllare un

computer.

1.4.4 Disabili motori gravi

Una delle applicazioni più utili dell’eye tracking è dare la possibilità a persone affette da

inabilità motorie gravi di utilizzare un personal computer . Il personal computer può ese-

guire programmi ad hoc che consentono all’utente di comunicare e di interagire con l’am-

biente circostante.

Esempi di patologie e disturbi in cui i sistemi di eye tracking possono essere strumenti effi-

caci sono:

18

Page 20: Progetto e ottimizzazione di algoritmi di riconoscimento ...elite.polito.it/files/thesis/fulltext/castellina.pdf · APPENDICE A Anatomia e movimenti dell'occhio 125 Anatomia dell'occhio

CAPITOLO 1 Gaze tracking

• Sclerosi laterale amiotrofica (SLA): una malattia degenerativa che interessa un

gruppo specifico di cellule del midollo spinale (il primo e il secondo motoneurone).

Queste cellule nervose svolgono la funzione fondamentale di trasmettere ai muscoli

i comandi per il movimento. La scomparsa dei motoneuroni causa una progressiva

atrofia muscolare: i muscoli volontari non ricevono più i comandi provenienti del

cervello e, nel tempo, si atrofizzano, portando a una paralisi progressiva dei quattro

arti e dei muscoli deputati alla deglutizione e alla parola. Purtroppo non è stata an-

cora individuata una terapia in grado di sconfiggere questa patologia. Solo in una

piccola percentuale di casi sono state riscontrate possibili cause di origine genetica,

mentre perlopiù la causa scatenante della SLA è ignota. Il decorso medio è di circa

tre anni; la morte è provocata quasi sempre per insufficienza respiratoria.. E’ cono-

sciuta come morbo di Lou Gehrig, dal nome di un famoso giocatore di baseball a

cui per primo fu diagnosticata.

• Lesioni del midollo spinale.

• Paralisi cerebrale.

• Sclerosi multipla: è una malattia autoimmunitaria provocata da una risposta anoma-

la del sistema immunitario contro il sistema nervoso centrale. I sintomi della malat-

tia dipendono dalla zona del sistema nervoso colpita, i più frequenti sono annebbia-

mento della vista, difficoltà di coordinazione dei movimenti, tremore , paralisi e

spasticità muscolari. In alcuni pazienti la malattia alterna periodi di miglioramento

con assenza dei sintomi e fasi acute di remissione. In altri pazienti la malattia pro-

gredisce portando a disabilità permanenti.

• Lesioni cerebrali.

• Distrofia muscolare: la malattia è dovuta alla mancanza di distrofina, una proteina

che protegge i muscoli dai traumi durante la contrazione. E’ una malattia di origine

genetica , dovuta ad un difetto del cromosoma X per questo colpisce praticamente

solo maschi (infatti le donne hanno due cromosomi X ed è improbabile che entram-

bi siano danneggiati).

Le forme più comuni sono quelle di Duchenne e quella di Becker, la prima evolve

in una paralisi totale dei muscoli, mentre la seconda ha un andamento meno debili-

tante.

19

Page 21: Progetto e ottimizzazione di algoritmi di riconoscimento ...elite.polito.it/files/thesis/fulltext/castellina.pdf · APPENDICE A Anatomia e movimenti dell'occhio 125 Anatomia dell'occhio

CAPITOLO 1 Gaze tracking

Sono numerose le applicazioni progettate appositamente per facilitare la comunicazione

delle persone disabili: si va dalla semplice rappresentazione di una tastiera su schermo col-

legata ad un sistema di sintesi vocali, all’utilizzo di un complesso linguaggio simbolico per

esprimere le necessità .

Un’altra interessante applicazione è l’interazione tra sistemi di eye-tracking e casa domoti-

ca.

Per casa domotica si intende un’abitazione progettata o “riadattata” per essere controllabile

tramite computer. Un’utente disabile può quindi avere una notevole autonomia ed effettua-

re semplici azioni come accendere una luce,accendere il forno o aprire una porta senza l’as-

sistenza di altre persone.

Nel computer che controlla l’abitazione può essere implementato un sistema di gaze-trac-

king.

1.5 Head tracking

Per head-tracking si intende un processo di analisi e di riconoscimento della testa dell’uten-

te al fine di effettuare un’interazione con un sistema informatico.

Esistono diversi sistemi di head-tracking ,presenti in letteratura e in commercio, che posso-

no essere raggruppati in base alla funzione svolta. Possiamo distinguere essenzialmente tre

funzioni:

ΧΧΧΧ Il riconoscimento della posizione della testa: può avvenire come per l’eye tracking sia

attraverso dispositivi indossati dall’utente (caschi e occhiali) sia tramite analisi dell’im-

magine acquisite da dispositivi di cattura video.

La determinazione della posizione della testa può essere utilizzata per la stima della

zona o del punto dello schermo osservato dall’utente.

I campi di utilizzo di questi sistemi sono:

���� Ludico: esistono in commercio molti dispositivi hardware(caschi e occhiali) che

permettono di sostituire ai joystick il movimento della testa.

���� Professionale: vi sono applicazioni e dispositivi che attraverso i movimenti del-

la testa permettono il movimento in ambienti di realtà virtuale. Questi sistemi

sono pochi e utilizzati soprattutto nelle progettazione o vendita di edifici.

���� Ausilio per disabili: tipicamente le tecniche di head-tracking sono utilizzate dai

20

Page 22: Progetto e ottimizzazione di algoritmi di riconoscimento ...elite.polito.it/files/thesis/fulltext/castellina.pdf · APPENDICE A Anatomia e movimenti dell'occhio 125 Anatomia dell'occhio

CAPITOLO 1 Gaze tracking

sistemi di eye-tracking per il controllo degli errori o per migliorare l’accuratezza

della stima del punto osservato.

ΧΧΧΧ Il riconoscimento del volto: avviene tramite riconoscimento dell’immagine acquisite da

dispositivi di cattura. Questi strumenti sono utilizzati per l’identificazione e l’autentica-

zione degli utenti per l’accesso a sistemi ad elevata sicurezza o per la ricerca di indivi-

dui all’interno di un database da parte delle forze dell’ordine .

ΧΧΧΧ Il riconoscimento dell’espressione del volto: questi sistemi sono utilizzati al momento

sono in ambito di ricerca , hanno l’intento di riconoscere lo stato d’animo dell’utente

(allegria,tristezza,attenzione,noia,…) a partire dall’analisi dell’immagine del volto degli

utenti.

1.6 Obbiettivo e struttura della tesi

Lo scopo di questa tesi è l’analisi e lo sviluppo di un sistema di gaze tracking per l’ausilio

alle persone con problemi motori gravi .

Per realizzare questo progetto si è partiti da un sistema già esistente sviluppato nel corso di

tesi precedenti.

Un ostacolo alla diffusione dei dispositivi di gaze tracking commerciali descritti nei para-

grafi precedenti è l’elevato costo che non permette alla maggior parte delle persone di po-

terli utilizzare; solitamente i sistemi più accurati e all’avanguardia sono acquistati da asso-

ciazione e da ospedali e l’utente per poterne usufruire deve essere portato in questi luoghi.

Per dare la possibilità alla maggior parte degli utenti di accedere ad un ausilio

informatico,indipendentemente dalle condizioni economiche, si è scelto di sviluppare un

sistema che utilizzi dispositivi di cattura immagini a basso costo come semplici webcam.

Mantenendo come principale vincolo progettuale il basso costo si sono dovute accettare

delle limitazioni per quanto riguarda le prestazioni e l’accuratezza del sistema.

Si è progettata e ottimizzata l'integrazione nel sistema di gaze tracking di un particolare al-

goritmo di ricerca forme denominato active shape model.

Il sistema sviluppato permette tramite head tracking di utilizzare i movimenti della testa

per muovere il puntatore del mouse. Dopo un breve periodo di apprendimento l'utente è in

grado di controllare con elevata precisione il puntatore, tanto da consentire di utilizzare

senza alcuna modifica le normali applicazioni del sistema operativo.

21

Page 23: Progetto e ottimizzazione di algoritmi di riconoscimento ...elite.polito.it/files/thesis/fulltext/castellina.pdf · APPENDICE A Anatomia e movimenti dell'occhio 125 Anatomia dell'occhio

CAPITOLO 1 Gaze tracking

Per quanto riguarda l'eye tracking ,a seconda delle condizioni di luce e del posizionamento

dell'utente, il sistema riesce a determinare la zona fissata tra un minimo di quattro ad una

massimo di sedici zone in cui può essere diviso lo schermo.

Sono state sviluppate applicazioni specifiche per essere in grado di interagire con il siste-

ma di eye tracking. Una particolarità di tali applicazione è la possibilità di modificare l'in-

terfaccia in base alla precisione del sistema.

La struttura della tesi rispecchia i diversi passi effettuati per realizzare il progetto; di segui-

to sono brevemente descritti i capitoli in cui è suddiviso il presente elaborato.

• Nel CAPITOLO DUE “Sistemi di gaze tracking” vengono descritte i diversi com-

ponenti che costituiscono un generico sistema di gaze tracking. Sono illustrati alcu-

ni algoritmi e tecniche presenti in letteratura adatti a realizzare le funzioni di cattura

immagine,riconoscimento forme e determinazione del punto fissato.

• Nel CAPITOLO TRE “Active shape model” viene descritto dettagliatamente l’al-

goritmo di riconoscimento forme scelto per essere implementato all’interno del si-

stema.

• Nel CAPITOLO QUATTRO “Analisi di fattibilità” viene proposta un’analisi delle

problematiche incontrate per la realizzazione del sistemo sia a livello teorico che a

livello implementativo.

• Nel CAPITOLO CINQUE “Progettazione del sistema” vengono spiegate le solu-

zioni adottate per ovviare ai problemi riscontrati durante la fase di analisi.

• Nel CAPITOLO SEI “Verifiche sperimentali” vengono riportati i risultati delle ve-

rifiche sperimentali effettuate per la misurazione delle prestazioni e il controllo del-

l’accuratezza del sistema.

• Nel CAPITOLO SETTE “Conclusione e sviluppi futuri” vengono elencati alcuni

possibili sviluppi futuri che il progetto descritto in questa tesi potrà avere.

22

Page 24: Progetto e ottimizzazione di algoritmi di riconoscimento ...elite.polito.it/files/thesis/fulltext/castellina.pdf · APPENDICE A Anatomia e movimenti dell'occhio 125 Anatomia dell'occhio

CAPITOLO 2

Sistemi di Gaze tracking

2.1 Introduzione

Un ausilio informatico che utilizzi le tecniche di gaze tracking è caratterizzato da tre com-

ponenti:

Χ Un sistema di elaborazione delle informazioni di input che fornisce le coordinate del

punto o della zona fissati.

Χ Uno strato applicativo che utilizza i dati sul punto fissato per svolgere una determinata

funzione (sintesi vocale, azionare un dispositivo,...)

Χ Uno stadio di uscita che è il risultato dell'esecuzione delle applicazioni.

Uno schema della strutturazione di un ausilio informatico che utilizzi il gaze tracking è il-

lustrato in figura 2.1.

In questo capitolo sarà analizzato il principio di funzionamento del primo componente di

dell'ausilio informatico descritto sopra, ossia un sistema di gaze tracking.

23

Page 25: Progetto e ottimizzazione di algoritmi di riconoscimento ...elite.polito.it/files/thesis/fulltext/castellina.pdf · APPENDICE A Anatomia e movimenti dell'occhio 125 Anatomia dell'occhio

CAPITOLO 2 Sistemi di Gaze tracking

Gaze tracking

Applicazioni Output

Applicazioni

di sistema

Figura 2.1: ausilio informatico

Sarà descritto un generico sistema di riconoscimento del punto fissato basato su algoritmi

di riconoscimento forme.

Per ogni componente del sistema saranno descritte le diverse implementazioni presenti in

letteratura.

Ogni sistema complesso per poter essere efficientemente sviluppato, modificato e aggior-

nato deve avere un elevata modularità, ossia deve essere strutturato in modo tale da com-

prendere componenti il più possibile indipendenti.

Ogni modulo può essere modificato e migliorato indipendentemente dagli altri, con l'accor-

tezza però di mantenere invariate le interfacce di input e output con gli altri moduli.

Una struttura esemplificativa di un sistema di tracciamento oculare è rappresentato dallo

schema in figura 2.2.

Figura 2.2: schema sistema gaze-tracking

2.2 Cattura delle immagini

Lo scopo del primo blocco del sistema (fig. 2.3) è quello di acquisire immagini da un di-

spositivo di cattura video, come ad esempio una webcam, e fornirle in un formato specifico

al blocco successivo.

24

Page 26: Progetto e ottimizzazione di algoritmi di riconoscimento ...elite.polito.it/files/thesis/fulltext/castellina.pdf · APPENDICE A Anatomia e movimenti dell'occhio 125 Anatomia dell'occhio

CAPITOLO 2 Sistemi di Gaze tracking

Figura 2.3: Cattura delle immagini

Per permettere la comunicazione fra un sistema informatico e un dispositivo di cattura im-

magini sono possibili diverse alternative:

• L'implementazione di un driver a partire dalle specifiche tecniche che svolge solo

le funzioni necessarie agli altri moduli del sistema. Il termine driver indica un'inter-

faccia di comunicazione fra periferico di acquisizione e sistema. Questa alternativa

è la più complessa da attuare sia per la difficoltà nella programmazione a basso li-

vello sia perché poche case produttrici forniscono le specifiche dettagliate dei pro-

pri dispositivi. Inoltre il funzionamento è indissolubilmente legato all'hardware

quindi se si cambia il dispositivo si deve modificare quasi integralmente il codice

del modulo. Per contro si ha un notevole aumento dell'efficienza del sistema, poi-

ché si possono sviluppare solo le funzioni necessarie.

• Utilizzo dei driver forniti dalla casa produttrice del dispositivo di acquisizione: in

questo caso si utilizzano le funzioni elementari fornite per costruire il modulo di ac-

quisizione. Utilizzando questo metodo si ha una media complessità di progettazione

ed implementazione poiché i driver forniti tipicamente svolgono funzioni elementa-

ri che non garantisco un livello di astrazione del dispositivo elevato, quindi si è an-

cora molto legati alla struttura dell'hardware utilizzato.

• Utilizzo di librerie per l'acquisizione di immagini: si utilizzano API (application

programming interface) già sviluppate che astraggono totalmente il dispositivo di

cattura e si occupano di interfacciarsi con l'hardware rendendo semplice lo sviluppo

di applicazioni. Il vantaggio dell'utilizzo di librerie già sviluppate è senza dubbio la

semplicità di sviluppo che consentono, d'altro canto però non forniscono un totale

controllo del dispositivo e garantiscono prestazioni inferiori ai metodi precedente-

mente descritti.

25

Page 27: Progetto e ottimizzazione di algoritmi di riconoscimento ...elite.polito.it/files/thesis/fulltext/castellina.pdf · APPENDICE A Anatomia e movimenti dell'occhio 125 Anatomia dell'occhio

CAPITOLO 2 Sistemi di Gaze tracking

2.2.1 API per l'acquisizione di immagini

Sono innumerevoli le librerie presenti in commercio per l'elaborazione e acquisizione di

immagini, di seguito saranno brevemente descritte le librerie più utilizzate.

� Microsoft Video for Windows: è un API per la cattura ed elaborazione di video già in-

trodotto nei sistemi Windows a 16 bit. Il numero di funzioni esportate è limitato e no-

nostante i parecchi anni passati dalla progettazione risulta di facile utilizzo. Questa API

è già presente nei più diffusi ambienti di sviluppo, quindi non è necessario il pagamen-

to di royalties aggiuntive per integrarlo nelle proprie applicazioni.

� Victor Image Processing: è un API prodotta dalla Catenary System che svolge funzioni

di cattura,memorizzazione ed elaborazione di immagini. Ha il pregio di essere efficien-

te e veloce, ma ha il grave difetto di non permettere il passaggio dell'immagine acquisi-

ta direttamente in memoria. I precedenti lavori di tesi che utilizzano tale libreria per ov-

viare a questo hanno dovuto utilizzare una ram disk. Il costo per l'utilizzo della libreri-

ra è di circa 500 dollari.

� Intel Image Processing Library: è una API opensource che offre numerosissime funzio-

ni di elaborazione e analisi dell'immagine. Esempi di alcune funzioni esportate sono:

� Conversione di formato.

� Applicazione di filtri.

� Trasformazioni: rotazioni,ridimensionamenti.

� Ricerca dei contorni.

2.3 Riconoscimento della forma

Questo modulo ha come dati di ingresso l'immagine catturata e fornisce come output la for-

ma trovata dopo l'analisi effettuata (figura 2.4).

Figura 2.4: Riconoscimento della forma

La maggior parte degli algoritmi di riconoscimento forme effettua come prima operazione

sull'immagine l'applicazione di un filtro con lo scopo di enfatizzare i contorni delle imma-

26

Page 28: Progetto e ottimizzazione di algoritmi di riconoscimento ...elite.polito.it/files/thesis/fulltext/castellina.pdf · APPENDICE A Anatomia e movimenti dell'occhio 125 Anatomia dell'occhio

CAPITOLO 2 Sistemi di Gaze tracking

gini e ridurre i dati da analizzare.

I contorni di un’immagine sono determinati da zone ad elevata differenza d’intensità, per

rilevarli si analizzano i punti di discontinuità del gradiente.

I principali algoritmi di rilevazione dei contorni presenti in letteratura sono i seguenti:

• Gradienti discreti e trasformata di Laplace (Roberts 1965, Prewitt 1970, Sobel

1970, Kirsh 1971): sono basati sulla ricerca degli zeri della trasformata di Laplace

del gradiente dell’immagine. Il gradiente è calcolato in due direzioni effettuando il

prodotto di convoluzione fra l’immagine e matrici diverse per ogni implementazio-

ne.

• Trasformata di Laplace della Gaussiana: sviluppato da Marr e Hildreth nel 1980

consiste nella ricerca degli zeri della trasformata di Laplace dell’immagine a cui è

applicata precedentemente una maschera Gaussiana. Il filtro gaussiano ha lo scopo

di sfumare i contorni meno marcati dall’immagine ,così da evitare molti zeri della

funzione trasformata dovuti ha piccole discontinuità di intensità.

• Canny Edge Detector: sviluppato da John Canny nel 1983, questo algoritmo dappri-

ma massimizza il rapporto segnale rumore dell’immagine poi minimizza le risposte

dei singoli contorni evitando così falsi riconoscimenti. Dopo i suoi studi Canny ha

trovato una funzione costituita dalla somma di quattro esponenziali che se applicata

all’immagine effettua le operazioni sopra descritte.

Un esempio è rappresentato in figura 2.5 in cui è applicato il filtro di Sobel .

Figura 2.5: filtro di Sobel

Il passo successivo all'applicazione (o meno) di filtri è la ricerca vera e propria della forma

che può essere basata su modelli statistici o funzioni matematiche predeterminati, oppure

calcolati durante una fase di addestramento del sistema.

Di seguito sono sinteticamente descritti alcuni algoritmi per la costruzioni di modelli per il

27

Page 29: Progetto e ottimizzazione di algoritmi di riconoscimento ...elite.polito.it/files/thesis/fulltext/castellina.pdf · APPENDICE A Anatomia e movimenti dell'occhio 125 Anatomia dell'occhio

CAPITOLO 2 Sistemi di Gaze tracking

riconoscimento forme .

1. Modelli “artigianali”: sono modelli flessibili costruiti dall’unione di semplici sotto-

componenti, come circonferenze, linee o archi che hanno determinati gradi di libertà

nel posizionamento relativo e possibile di variazioni di scala e di orientamento. Quando

si ricerca una forma nell’immagine, si attiene prima una forma approssimata del model-

lo che viene rifinita cambiando i diversi sottocomponenti uno alla volta. Questi modelli

sono tipicamente utilizzate nella ricerca di forme in ambito medico come valvole car-

diache e vertebre.

2. Modelli di serie di Fourier di forme: questi modelli utilizzano espansioni di funzioni

trigonometriche. Le forme prodotte sono funzioni parametriche, alla variazione dei pa-

rametri si originano forme differenti. I modelli così generati sono quasi infinitamente

deformabili , e non contengono informazioni a priori sulla forma.

3. Active shape model (ASM): utilizza un modello statistico deformabile dell’oggetto da

ricercare. Il modello è generato da un insieme di immagini campione in cui vengono

identificati i punti significativi della forma dell’oggetto, denominati picchetti.

Nel modello viene anche memorizzato il valore del livello di grigio nell’intorno di

ogni picchetto.

La ricerca della forma avviene iterando il processo di deformazione del modello fino ad

ottenere una differenza minima fra i livelli di grigio memorizzati e quelli dell’immagi-

ne analizzata.

Maggiori dettagli su questo algoritmo verranno esposti nei capitoli successivi.

4. Active appearence model (AAM): anch’esso utilizza un modello statistico deforma-

bile dell’oggetto da ricercare, ma si differenzia dall’ASM nella memorizzazione dei li-

velli di grigio. In questo algoritmo viene generato sia un modello per la forma dell’og-

getto sia un modello per il livello di grigi (texture dell’immagine).

La ricerca della forma avviene tramite confronto tra l’immagine analizzata e le imma-

gini sintetizzate dalla deformazione del modello.

Verifiche sperimentali hanno dimostrato che l’active shape model è più veloce nella ri-

cerca della forma, mentre l’active appearence model ha una precisione maggiore e ri-

chiede un numero minore di punti per la costruzione del modello.

5. Snakes o contorni attivi: i contorni attivi sono curve definite all’interno del dominio

di un’immagine, che possono essere modificate in base a vincoli interni alla curva stes-

28

Page 30: Progetto e ottimizzazione di algoritmi di riconoscimento ...elite.polito.it/files/thesis/fulltext/castellina.pdf · APPENDICE A Anatomia e movimenti dell'occhio 125 Anatomia dell'occhio

CAPITOLO 2 Sistemi di Gaze tracking

sa e vincoli esterni dovuti all’immagine su cui sono applicate. I vincoli interni ed ester-

ni sono definiti in modo tale da conformare la curva al contorno della forma da ricerca-

re.

Vi sono due tipi di algoritmo per “contorni attivi” presenti in letteratura:

5.1. Contorni attivi parametrici: l’immagine è utilizzata per definire funzioni potenzia-

li i cui minimi sono utilizzati come vincoli su cui far spostare le curve che defini-

scono i contorni.

5.2. Contorni attivi geometrici: basati sulla teoria dell’evoluzione delle curve sui flussi

geometrici, questi modelli definiscono un contorno attivo come un insieme di li-

vello di una funzione scalare in un dominio spaziale.

E’ stato dimostrato che i metodi sopra riportati ottengo risultati equivalenti, con la

differenza sostanziale che i contorni attivi geometrici nell’analisi delle immagini

con più oggetti riescono ad adattarsi automaticamente, mentre quelli parametrici ne-

cessitano ulteriori modifiche per poter distinguere diverse forme.

2.4 Determinazione del punto fissato (gaze detection)

Lo scopo di questo modulo è stabilire il punto o la zona dello schermo fissato basandosi

sulle forme di occhio o testa riconosciute(figura 2.6).

Figura 2.6 : determinazione punto fissato

Per effettuare questa funzione si deve stabilire una distinzione in classi delle forme in in-

gresso, in modo da porre in relazione ogni forma in ingresso con l’indicazione della zona

fissata in uscita.

Il processo di classificazione può essere distinto in tre fasi:

29

Page 31: Progetto e ottimizzazione di algoritmi di riconoscimento ...elite.polito.it/files/thesis/fulltext/castellina.pdf · APPENDICE A Anatomia e movimenti dell'occhio 125 Anatomia dell'occhio

CAPITOLO 2 Sistemi di Gaze tracking

1 Addestramento: si produce un modello da un insieme di addestramento.

L’addestramento è definito supervisionato quando viene indicata per ogni oggetto

dell’insieme di addestramento la classe a cui appartiene, mentre esistono anche tecni-

che di addestramento non supervisionato in cui vengono distinte e generate automati-

camente le classi.

Il risultato può essere presentato in varie forme: alberi di decisione,regole,formule

matematica,ecc..

2 Stima dell’accuratezza: si stima la precisione del modello un insieme di test. Si mi-

sura la percentuale di errori commessi sull’insieme di test, che non deve coincidere

con l’insieme di addestramento per non avere stime troppo ottimistiche dell’accura-

tezza.

3 Utilizzo del modello: si classificano oggetti di classe non conosciuta a priori.

Per costruire un modello efficiente si deve effettuare una preparazione dei dati:

• Data Cleaning: molti algoritmi di classificazione effettuano come primo passo una

rielaborazione in modo da:

1. eliminare rumore: solitamente tramite smoothing.

2. eliminare eventuali outlier : per outlier si intendono dati con caratteristiche comple-

tamente diverse dagli altri.

3. trattare gli attributi mancanti: solitamente si sostituisce la media dei valori per l’attri-

buto.

•••• Analisi di rilevanza degli attributi: denominata anche feature selection, ha lo scopo

di ottimizzare le prestazioni e migliorare il modello. Si base sul presupposto che il

tempo impiegato a scegliere gli attributi rilevanti di un oggetto sia minore del tem-

po per eseguire un addestramento su tutti gli attributi dell’oggetto.

•••• Trasformazione dei dati: solitamente si effettua una normalizzazione dei dati, op-

pure si assegna una gerarchia di priorità ai diversi attributi dell’oggetto da classifi-

care.

Criteri di valutazione e confronto per metodologie di classificazione sono:

• Accuratezza nella predizione.

• Velocità: tempo per costruire il modello e tempo per utilizzarlo.

30

Page 32: Progetto e ottimizzazione di algoritmi di riconoscimento ...elite.polito.it/files/thesis/fulltext/castellina.pdf · APPENDICE A Anatomia e movimenti dell'occhio 125 Anatomia dell'occhio

CAPITOLO 2 Sistemi di Gaze tracking

• Robustezza: misura l’abilità del modello nel fare previsioni in condizione di dati er-

rati o mancanti.

• Scalabilità: indica se l’efficienza è mantenuta anche aumentando la quantità di dati

del modello.

• Interpretabilità: possibilità di assegnare un significato intuitivo al modello generato.

Di seguito sono riportati alcuni sistemi e algoritmi che possono essere utilizzati per svol-

gere le funzione sopra descritte.

• Classificazione con Alberi di Decisione: il modello è rappresentato da un albero in

cui:

Χ I nodi interni rappresentano test sugli attributi.

Χ I rami rappresentano i risultati del test al nodo padre.

Χ Le foglie rappresentano una classe o una distribuzione di probabilità di una

classe

Χ L’apprendimento consiste nella costruzione dell’albero di decisione e

nello sfoltimento (o pruning) per eliminate rumori nei dati o outlier.

Il modello viene utilizzato controllando i valori degli attributi del dato in

ingresso e confrontandolo a partire dal nodo radice fino ad arrivare ad un

nodo foglia.

• Regole di Classificazione: una regola di classificazione è una formula logica del

tipo:

IF <antecedente> THEN <conseguente>

L’antecedente è rappresentato da una serie di test, come i nodi dell’albero di deci-

sione, oppure da una formula logica.

Il conseguente dà la classe da assegnare agli oggetti che soddisfano l’antecedente.

Per generare un insieme di regole si può utilizzare un albero di decisione, oppure

utilizzare algoritmi di copertura, che vengono così definiti perché ad ogni passo co-

prono un sottoinsieme degli oggetti della classe. Un esempio di algoritmo di coper-

tura è PRISM che opera nel seguente modo:

o Si parte da una regola di base senza condizioni.

o Si migliora la regola aggiungendo dei test che migliorano l’accuratezza, os-

sia il rapporto tra gli oggetti che soddisfano sia la premessa che la conclu-

31

Page 33: Progetto e ottimizzazione di algoritmi di riconoscimento ...elite.polito.it/files/thesis/fulltext/castellina.pdf · APPENDICE A Anatomia e movimenti dell'occhio 125 Anatomia dell'occhio

CAPITOLO 2 Sistemi di Gaze tracking

sione e il numero di oggetti che soddisfano la premessa.

o Ogni nuovo test riduce la copertura della regola.

o Ci si ferma quando l’accuratezza è 1 o la regola non si può dividere.

• Classificatore Bayessiano: è un metodo statistico di classificazione, predice la

probabilità che un dato oggetto appartenga ad una determinata classe.

Ogni istanza dell’insieme di addestramento modifica in maniera incrementale la

probabilità che un’ipotesi sia giusta.

Sia X un oggetto da classificare, e C1,….Cn le possibili classi. I classificatori

Bayessiani calcolano la probabilità che un oggetto X appartenga ad una classe Ci

come:

Si scegli la classe Ci che massimizza tale probabilità.

Χ P �C i � è la probabilità di rilevare la classe Ci, si calcola dall’insieme di adde-

stramento facendo un rapporto fra la frequenza in cui appare la classe Ci e il nu-

mero totale di elementi.

Χ P(X) è la probabilità di avere come dato l’oggetto X, solitamente si considera

uguale per ogni elemento.

Χ P �X �Ci � è la probabilità di avere l’oggetto X nella classe Ci. Se si considerano

oggetti con molti attributi per poter rendere possibili i calcoli, essi vengono as-

sunti come indipendenti.

• Reti Bayessiane: sono costituite da un grafo diretto aciclico e da una tabella di

probabilità condizionata. Nel grafo ogni nodo è una variabile casuale ed ogni

arco rappresenta una dipendenza probabilistica. Queste reti superano il limite

del semplice classificatore Bayessiano permettendo di esplicitare le relazioni

che esistano fra i vari attributi di uno stesso oggetto.

• Metodi basati sulle istanze: memorizzano gli oggetti che fanno parte dell’in-

sieme di addestramento e rimandano ogni calcolo al momento in cui un nuovo

oggetto deve essere classificato. Questo tipo di valutazione viene anche definita

lazy evaluation (valutazione pigra) e si contrappone agli altri metodi definiti di

eager evaluation.

32

P �C i�X ��P �X �C i �P �C i�

P � X �

Page 34: Progetto e ottimizzazione di algoritmi di riconoscimento ...elite.polito.it/files/thesis/fulltext/castellina.pdf · APPENDICE A Anatomia e movimenti dell'occhio 125 Anatomia dell'occhio

CAPITOLO 2 Sistemi di Gaze tracking

Fanno parte di questa categoria gli algoritmi k-nearest neighbor e case-based

reasoning.

Questi algoritmi hanno il vantaggio di essere più accurati, avendo uno spazio

delle ipostesi maggiore, ma sono computazionalmente molto pesanti.

• Reti neurali: sono un modello matematico di processamento delle informazio-

ni, che cercano di simulare il funzionamento dei neuroni all'interno di un siste-

ma informatico. Possono essere composte sia da programmi che da hardware

dedicato. Le reti neurali si basano principalmente sulla simulazioni di neuroni

artificiali opportunamente collegati.

I suddetti neuroni ricevono in ingresso degli stimoli e li elaborano. L'elaborazio-

ne può essere anche molto sofisticata ma in un caso semplice si può pensare che

i singoli ingressi vengano moltiplicati per un opportuno valore detto peso, il ri-

sultato delle moltiplicazioni viene sommato e se la somma supera una certa so-

glia il neurone si attiva attivando la sua uscita. Il peso serve a quantificare l'im-

portanza dell'ingresso, un ingresso molto importante avrà un peso elevato, men-

tre un ingresso poco utile all'elaborazione avrà un peso inferiore. I singoli neu-

roni vengono collegati alla schiera di neuroni successivi, in modo da formare

una rete di neuroni. Normalmente una rete è formata da tre strati. Nel primo ab-

biamo gli ingressi(I), questo strato si preoccupa di trattare gli ingressi in modo

da adeguarli alle richieste dei neuroni. Se i segnali in ingresso sono già trattati

può anche non esserci. Il secondo strato è quello nascosto (H, hidden), si preoc-

cupa dell'elaborazione vera e propria e può essere composto anche da più colon-

ne di neuroni. Il terzo strato è quello di uscita (O) e si preoccupa di raccogliere i

risultati ed adattarli alle richieste del blocco successivo della rete neurale. Que-

ste reti possono essere anche molto complesse e coinvolgere migliaia di neuroni

e decine di migliaia di connessioni. La fase più importante dell’implementazio-

ne di una rete neurale è l’apprendimento che consiste nella determinazione dei

pesi dei singoli neuroni che compongono la rete. L’apprendimento può essere

effettuato secondo tre modalità:

Χ Supervisionato ( supervised learning) : è basato su un insieme di dati per

l’addestramento (training set) che comprende esempi di ingressi con rela-

tive uscite loro corrispondenti. La rete tramite un opportuno algoritmo

33

Page 35: Progetto e ottimizzazione di algoritmi di riconoscimento ...elite.polito.it/files/thesis/fulltext/castellina.pdf · APPENDICE A Anatomia e movimenti dell'occhio 125 Anatomia dell'occhio

CAPITOLO 2 Sistemi di Gaze tracking

cerca di riconoscere la relazione incognita che lega le variabili di ingresso

a quella di uscita, con lo scopo di poter fare previsioni anche laddove l’u-

scita non è nota a priori.

Χ non supervisionato ( unsupervised learning ), basato su algoritmi d’adde-

stramento che modificano i pesi della rete facendo esclusivamente riferi-

mento ad un insieme di dati che include le sole variabili d’ingresso. Tali

algoritmi tentano di raggruppare i dati d’ingresso e di individuare pertan-

to degli opportuni cluster rappresentativi dei dati stessi, facendo uso tipi-

camente di metodi topologici o probabilistici. L’apprendimento non su-

pervisionato è anche impiegato per sviluppare tecniche di compressione

dei dati.

Χ con rafforzamento ( reinforcement learning ) , nel quale un opportuno al-

goritmo si prefigge lo scopo di individuare un certo modus operandi, a

partire da un processo d’osservazione dell’ambiente esterno; ogni azione

ha un impatto sull’ambiente, e l’ambiente produce una retroazione che

guida l’algoritmo stesso nel processo d’apprendimento. Tale classe di

problemi postula un agente, dotato di capacità di percezione, che esplora

un ambiente nel quale intraprende una serie di azioni. L’ambiente stesso

fornisce in risposta un incentivo o un disincentivo, secondo i casi. Gli al-

goritmi per il reinforcement learning tentano in definitiva di determinare

una politica tesa a massimizzare gli incentivi cumulati ricevuti dall’agen-

te nel corso della sua esplorazione del problema. L’apprendimento con

rafforzamento differisce da quello supervisionato poiché non sono mai

presentate delle coppie input-output di esempi noti, né si procede alla

correzione esplicita di azioni subottimali. Inoltre, l’algoritmo è focalizza-

to sulla prestazione in linea, la quale implica un bilanciamento tra esplo-

razione di situazioni ignote e sfruttamento della conoscenza corrente.

Le reti neurali hanno il vantaggio di effettuare predizione molto precise e robuste,

ma hanno lo svantaggio di richiedere un lungo periodo di apprendimento.

34

Page 36: Progetto e ottimizzazione di algoritmi di riconoscimento ...elite.polito.it/files/thesis/fulltext/castellina.pdf · APPENDICE A Anatomia e movimenti dell'occhio 125 Anatomia dell'occhio

CAPITOLO 2 Sistemi di Gaze tracking

2.5 Alcuni sistemi di eye-tracking esistenti

Esistono sul mercato diversi sistemi di tracciamento oculare, si distinguono essenzialmente

in due categorie:

• Sistemi a postazione fissa : i dispositivi vengono posizioni su un supporto distante

dall’utente (scrivania,carrozzina,letto).

• Sistemi indossabili : i dispositivi devono essere posizioni a diretto contatto con l’u-

tente, di solito sono costituiti da visori da indossare come occhiali.

Di seguito è riportata la descrizione di alcuni sistemi commerciali con una breve descrizio-

ne del principio di funzionamento e delle caratteristiche tecniche.

2.5.1 Mytobii

Prodotto dalla società svedese Mytobii technology,questo dispositivo è costituito da un mo-

nitor che integra due emettitori di raggi infrarossi e una telecamera ad alta definizione sen-

sibile agli infrarossi. Il sistema cattura ed analizza i raggi riflessi dalla cornea e stabilisce il

punto dello schermo osservato.

Figura 2.7: immagine di Tobii

Tab. 2.1 CARATTERISTICHE TECNICHE Mytobii

Display 17’’ TFT (1280x1024 px.)

Requisiti di sistema Windows XP, porta firewire

Peso 9 Kg

Distanza di lavoro 50-70 cm

Libertà dei movimenti della testa 30x15x20 cm

Massima velocità movimento della

testa10 cm/s

35

Page 37: Progetto e ottimizzazione di algoritmi di riconoscimento ...elite.polito.it/files/thesis/fulltext/castellina.pdf · APPENDICE A Anatomia e movimenti dell'occhio 125 Anatomia dell'occhio

CAPITOLO 2 Sistemi di Gaze tracking

Tab. 2.1 CARATTERISTICHE TECNICHE Mytobii

Riconoscimento punti osservati 40 punti/s

Precisione di stima del punto os-

servatoCirca 0,5 cm

Tolleranza alla luce ambientale/so-

lare

Funziona bene in diverse condizioni di illumi-

nazione

Tolleranza agli occhiali e lenti a

contattoFunziona nella maggioranza dei casi

PosizionamentoUtilizzando un supporto per monitor può essere

posizionato su una scrivania o su un letto.

Compensazione dell’errore nel mo-

vimento della testaCirca 1 grado.

Applicazioni incluse

• Sostituto della tastiera

• Sostituto del mouse

• Internet browser

• Client e-mail

• Controllo ambientale

Tempo di posizionamento del-

l’hardwareMeno di 30 minuti

Tempo di calibrazione Pochi secondi

Prezzo 17900 …

2.5.2 Eyegaze System

Prodotto dalla LC Technologies inc. questo sistema ha lo stesso principio di funzionamento

descritto prima con la differenza che la telecamera e l’emettitore di raggi infrarossi sono

posizionati al disotto del monitor.

Una limitazione di Eyegaze è la scarsa tolleranza ai movimenti della testa e la necessità che

nella prossimità della telecamera non ci siano fonti di interferenza infrarosse come luci di

elevata intensità.

Eyegaze esiste in due versioni:

•••• eyegaze analysis: dedicata agli sviluppatori in cui sono incluse le librerie per poter

36

Page 38: Progetto e ottimizzazione di algoritmi di riconoscimento ...elite.polito.it/files/thesis/fulltext/castellina.pdf · APPENDICE A Anatomia e movimenti dell'occhio 125 Anatomia dell'occhio

CAPITOLO 2 Sistemi di Gaze tracking

sviluppare programmi che utilizzino questo dispositivo.

•••• eyegaze comunication: integra programmi di comunicazione dedicati ad utenti con

difficoltà motorie. Una possibile configurazione è rappresentata in figura 2.

Figura 2.8: immagine di eyegaze

Tab. 2.2: Caratteristiche tencniche Eyegaze System

Peso 2,7 Kg

Precisione di stima del punto osservato 0,45÷0,70 gradi (0,38÷0,63 cm)

Tolleranza alla luce ambientale/solare Poco tollerante a forti fonti di luce infrarossa

Libertà dei movimenti della testa 3,8 x 3,0 x 3,8 cm

Frequenza di campionamento 60 Hz

Utilizzo CPU 50-60 %

Utilizzo Memoria 6 MB

Tempo di Calibrazione 15 s

Applicazioni incluse

• Sostituto della tastiera

• Sostituto del mouse

• Internet browser

• Client e-mail

• Supporto per la lettura libri elettroni-

ci

• Controllo ambientale

2.5.3 Quick Gaze II

Prodotto dall’Eyetech Digital System, come i precedenti dispositivi è costituito da una vi-

deocamera sensibile agli infrarossi e da due emettitori. La caratteristica che lo differenzia e

lo rende degno di nota è la possibilità data le ridotte dimensione dei dispositivi di essere

applicato con facilità ad un computer portatile (come mostrato in figura 2.9).

37

Page 39: Progetto e ottimizzazione di algoritmi di riconoscimento ...elite.polito.it/files/thesis/fulltext/castellina.pdf · APPENDICE A Anatomia e movimenti dell'occhio 125 Anatomia dell'occhio

CAPITOLO 2 Sistemi di Gaze tracking

Figura 2.9: Quick Glace in configurazione portatile

Tab. 2.3: Caratteristiche tecniche Quick Glace II

Requisiti di sistema Microsoft Windows 98/XP (800 MHz o superiore)

Precisione di stima del punto

osservato

1 grado

Libertà dei movimenti della te-

sta

Dipende dal modello, da 4 x 4 cm a 10 x 10 cm

Tolleranza alla luce

ambientale/solare

Dipende dal modello, la tolleranza varia da discreta a

buona

Tolleranza agli occhiali e lenti a

contattoFunziona nella maggioranza dei casi

Riconoscimento punti osservati 15÷30 punti/s

Tempo di calibrazione Decine di secondi.

Applicazioni incluse

• Sostituto della tastiera

• Sostituto del mouse

• Internet browser

• Client e-mail

• Sintesi Vocale

• Giochi

Numero di sistemi in uso 500÷1000

2.5.4 EagleEyes

Sviluppato da Opportunity foundation of America, per il tracciamento della posizione ocu-

lare utilizza la tecnica dell’elettro-oculografia che consiste nella misurazione del potenziale

elettrico prodotto dal movimento oculare tramite cinque elettrodi posti sulla testa dell’uten-

te. Questo sistema è disponibile gratuitamente per utenti selezionati dalla fondazione.

38

Page 40: Progetto e ottimizzazione di algoritmi di riconoscimento ...elite.polito.it/files/thesis/fulltext/castellina.pdf · APPENDICE A Anatomia e movimenti dell'occhio 125 Anatomia dell'occhio

CAPITOLO 2 Sistemi di Gaze tracking

In tabella 6.4 sono riportate alcune caratteristiche tecniche di EagleEyes, tra cui emergono

l’ampia libertà dei movimenti della testa e l’indipendenza dalle condizioni ambientali di il-

luminazione.

Tab 2.4: Caratteristiche tecniche Eagle Eyes

Requisiti di sistema Microsoft Windows 98/XP , porta USB

Peso meno di 500 g

Tolleranza alla luce ambien-

tale/solareFunziona in tutte le condizioni di luce.

Tolleranza agli occhiali e

lenti a contatto

Funziona bene nella maggioranza dei

casi

Libertà dei movimenti della

testa

Consente ampia libertà (superiore a 20

cm)

Frequenza di campionamento 15 Hz

Tempo di posizionamento

dell’hardware10 minuti

Tempo di Calibrazione variabile

Applicazioni incluse

• Sostituto della tastiera

• Sostituto del mouse

• Internet browser

• Client e-mail

• Supporto per la lettura libri

elettronici

• Controllo ambientale

Numero di sistemi in uso 10÷50

39

Page 41: Progetto e ottimizzazione di algoritmi di riconoscimento ...elite.polito.it/files/thesis/fulltext/castellina.pdf · APPENDICE A Anatomia e movimenti dell'occhio 125 Anatomia dell'occhio

CAPITOLO 3

Active shape model

3.1 Introduzione

Per sviluppare il sistema di gaze tracking oggetto di questa tesi, si è partiti da un sistema

esistente che utilizza l'active shape model (ASM) come algoritmo di ricerca forme.

Nel corso del progetto si è analizzata e ottimizzata l'integrazione di questa tecnica all'inter-

no del sistema.

In questo capitolo è illustrato il principio di funzionamento dell'active shape model e del

modello matematico su cui è basato.

L’algoritmo di active shape model fu descritto per la prima volta in un articolo del 1992

intitolato “active shape models their training and aplication”, scritto da un gruppo di ricer-

catori formato da T.F. Cootes, C.J. Taylor ,D.H Cooper,e J.Graham.

L’obbiettivo di questo algoritmo è la ricerca di forme di oggetti conosciuti all’interno di

immagini. Questo metodo si differenzia dai predecessori per l’utilizzo di modelli flessibili

e deformabili per rappresentare le forme degli oggetti , ciò lo rende adatto all’utilizzo in

40

Page 42: Progetto e ottimizzazione di algoritmi di riconoscimento ...elite.polito.it/files/thesis/fulltext/castellina.pdf · APPENDICE A Anatomia e movimenti dell'occhio 125 Anatomia dell'occhio

CAPITOLO 3 Active shape model

tutti i casi in cui si debbano ricercare oggetti il cui aspetto può variare (es. organi, compo-

nenti elettronici,ecc.).

Il modello della forma di un oggetto è costruito a partire da un insieme di immagini deno-

minato training set.

In questa tecnica ogni oggetto è rappresentato da un’insieme di punti.

I punti possono caratterizzare il contorno, caratteristiche interne e particolarità esterne del-

l’oggetto come il centro della sezione concava di un bordo.

I punti vengo posizionati nello stesso modo per ogni immagine del training set.

Il posizionamento dei punti avviene in modo manuale. Ci riferiremo al singolo punto con

il termine picchetto ,mentre a questa procedura con il termine di picchettatura.

L’insieme dei punti viene allineato automaticamente per minimizzare la varianza nella di-

stanza fra punti equivalenti nelle diverse immagini.

Dall’analisi della statistica della posizione dei punti viene ricavato un “modello della distri-

buzione dei punti” che fornisce la posizione media dei punti e comprende un numero di

parametri che controllano le principali modalità di variazione riscontrate nel training set.

Dato il modello appena descritto e un'immagine contenente un esemplare dell'oggetto mo-

dellato, l'interpretazione dell'immagine consiste nella scelta del valore di ogni parametro in

modo tale da avere la migliore corrispondenza tra la forma del modello e l'oggetto nell'im-

magine.

L'active shape model è una tecnica che funziona a partire da un modello non molto preciso

per quanto riguarda forma,posizione,scala e orientamento, che viene raffinato iterativa-

mente confrontandolo con l'immagine in cui si ricerca l'oggetto; si utilizzano le differenze

fra modello e immagine per modificare i parametri del modello deformando la forma.

Nell'articolo sopracitato venivano illustrati esempi di ricerca di forme di resistori su un cir-

cuito stampato, per contestualizzare tali esempi all'oggetto di questa tesi si sono modificati

con campioni di forme d'occhio.

41

Page 43: Progetto e ottimizzazione di algoritmi di riconoscimento ...elite.polito.it/files/thesis/fulltext/castellina.pdf · APPENDICE A Anatomia e movimenti dell'occhio 125 Anatomia dell'occhio

CAPITOLO 3 Active shape model

3.2 Modello di distribuzione dei punti

Il nostro scopo è creare un modello per rappresentare le forme di occhio come appaiono in

immagini catturate da webcam come mostrato in figura 3.1 .

Figura 3.1: immagini di occhio catturate da webcam

Le immagini di occhi che fissano differenti punti dello schermo sono rappresentate da for-

me molto differenti tra loro, quindi rendono inadatto l'utilizzo di un modello rigido di rap-

presentazione.

L'obbiettivo che si prefigge il modello di distribuzione dei punti è la descrizione sia della

forma tipica dell'oggetto sia della tipica variazione tra una forma e l'altra a partire da un in-

sieme di immagini che costituisce il training set.

Si ottiene ciò rappresentando ogni campione come un insieme di punti etichettati, denomi-

nati “picchetti”.

3.2.1 Picchettatura del training set

Ogni forma per essere modellata è rappresentata da un'insieme di punti. Per la forma del-

l'occhio abbiamo scelto di posizionare 37 picchetti seguendo sia il contorno dell'occhio sia

il contorno della pupilla come mostrato in figura 3.2.

Figura 3.2: Picchetti occhi

42

Page 44: Progetto e ottimizzazione di algoritmi di riconoscimento ...elite.polito.it/files/thesis/fulltext/castellina.pdf · APPENDICE A Anatomia e movimenti dell'occhio 125 Anatomia dell'occhio

CAPITOLO 3 Active shape model

Ogni picchetto rappresenta un particolare punto dell'oggetto o del suo contorno: per esem-

pio il picchetto 1 e il picchetto 3 rappresentano gli estremi sinistro e destro dell'occhio,

mentre i picchetti 2 e 4 indicano gli estremi superiore e inferiore.

Il metodo funziona modellando come i diversi picchetti tendono a muoversi insieme al va-

riare delle forme. Se la picchettatura non è corretta, con un particolare picchetto posiziona-

to malamente, questo metodo non riesce a catturare la variabilità della forma con precisio-

ne.

Possiamo ricondurre i picchetti a tre tipologie:

1. posizionati in punti con particolare significato per l'applicazione che usa il model-

lo: come ad esempio il centro della pupilla.

2. posizionati in punti senza particolare significato per le applicazioni: come il punto

più elevato della forma, una curvatura estrema o un caratteristico orientamento

3. punti di interpolazione fra picchetti di tipo 1 e picchetti di tipo 2

E' da notare che i picchetti possono essere utilizzati per descrivere singoli oggetti o diversi

oggetti che hanno correlazione spaziale, come ad esempio diverse parti di una struttura.

3.2.2 Allineamento del training set

Questo metodo di costruzione del modello funziona analizzando le statistiche delle coordi-

nate delle posizioni dei picchetti nel training set. Per confrontare punti equivalenti di im-

magini diverse, i picchetti devono essere allineati rispetto a un insieme di assi.

Si ottiene l'allineamento voluto attraverso variazioni di scala, rotazioni e traslazioni delle

forme del training set in modo che corrispondano il più possibile. Lo scopo è minimizzare

la somma pesata dei quadrati delle distanze fra punti equivalenti di forme differenti.

Consideriamo prima l'allineamento di una coppia di forme, sia x i un vettore che descri-

ve le n posizioni della forma i-esima del training set.

x i��xi0 , yi0 , xi1 , yi1 , ... , xik , yik , ... , xi n#1 , yi n#1

Sia M �s ,�� x � una rotazione di θ e uno scalamento di s. Date due forme simili x i e

x j possiamo scegliere j , s j e una traslazione t j��t x j , t y j� che mappano x i su

M �s ,�� x j � t j in modo da minimizzare la somma pesata:

E j��x i#M �s ,�� x j �#t j�T

W �x i#M �s ,�� x j �#t j�

43

Page 45: Progetto e ottimizzazione di algoritmi di riconoscimento ...elite.polito.it/files/thesis/fulltext/castellina.pdf · APPENDICE A Anatomia e movimenti dell'occhio 125 Anatomia dell'occhio

CAPITOLO 3 Active shape model

dove M �s ,�� x j k

y j k����s cos� x j k#�s sin� y j k

�s sin� x j k �s cos� y j k�

W è una matrice diagonale di pesi per ogni punto.

Se poniamo

a x�s cos a y�s sin

un approccio ai minimi quadrati (differenza rispetto ognuna delle variabili a x , a y , t x , t y )

porta ad un insieme di quattro equazioni lineari.

�X 2 #Y 2 W 0

Y 2 X 2 0 W

Z 0 X 2 Y 2

0 Z #Y 2 X 2

��a x

a y

t x

t y

���X 1

Y 1

C1

C 2

�dove

X i��k�0

n#1

wk xik Y i��k�0

n#1

wk yik

Z��k�0

n#1

wk �x2 k

2 y2 k

2 � W��k�0

n#1

wk

C 1��k�0

n#1

wk �x1 k x2 k y1 k y2 k �

C 2��k�0

n#1

wk � y1 k x2 k#x1 k y2 k �

I pesi possono essere scelti in modo tale da dare più importanza ai punti che tendono ad es-

sere maggiormente “stabili” nell'insieme: ossia quei punti che si discostano poco dai corri-

spettivi altri punto delle altre forme.

La matrice dei pesi utilizzata è calcolata come segue:

sia Rk l la distanza tra i punti k e l in una forma: sia V Rk lla varianza della di questa di-

stanza nell'insieme delle forme. Si è scelto un peso wk per il punto k-esimo usando

wk���l�0

n#1

V Rk l�#1

Se un punto si muove notevolmente rispetto agli altri punti della forma la somma delle va-

rianze sarà alta e sarà assegnato un peso di basso valore, mentre se un punto tende a rima-

nere fisso rispetto agli altri avrà una somma delle varianze bassa e gli sarà assegnato un

44

Page 46: Progetto e ottimizzazione di algoritmi di riconoscimento ...elite.polito.it/files/thesis/fulltext/castellina.pdf · APPENDICE A Anatomia e movimenti dell'occhio 125 Anatomia dell'occhio

CAPITOLO 3 Active shape model

peso elevato e riscontrare tali punti nelle altre forme sarà una priorità.

Si è utilizzato il seguente algoritmo per allineare un'insieme di N forme.

Χ Si ruota, si scala e si trasla ogni forma del training set per allinearla con la prima .

Χ Finché il processo non converge

Χ Si calcola la forma media dalle forme allineate.

Χ Si normalizza l'orientamento, la scala e l'origine della forma media calcolata prece-

dentemente per riportarla a caratteristiche predefinite.

Χ Si riallinea ogni forma dell'insieme con la forma media corrente.

La normalizzazione della forma media, con una scala e una posizione predefinita, è neces-

saria in ogni interazione per garantire la convergenza dell'algoritmo.

Senza normalizzazione vi sarebbero 4�N#1� vincoli su 4 N variabili ( , s , t x , t y

per ognuna delle N forme) e l'algoritmo sarebbe divergente, la forma media sarebbe, con-

tratta, ruotata e traslata all'infinito. I vincoli sulla posizione e la scala della forma media

permettono di avere un'unica soluzione all'equazione.

3.2.3 Cattura delle statistiche di un insieme di forme allineate

In figura X le coordinate di alcuni dei vertici delle forme di occhio allineate sono rappre-

sentate sovrapposte alla forma media. Si può notare che alcuni vertici mostrano una piccola

variabilità nel training set, mentre altri formano “nuvole” di punti più diffuse.

Ogni campione del training set, quando allineato, può essere rappresentato da un singolo

punto in uno spazio 2 n dimensionale. Perciò un insieme di N campioni di forme co-

stituisce una nuvola di N punti in uno spazio 2 n dimensionale.

Si assume che questi punti si trovino all'interno di una regione dello spazio che chiamiamo

“dominio delle forme possibile”, e che diano un indicazione sulla forma e sulla dimensione

di questa regione. Muovendosi all'interno del “dominio delle forma possibile” si possono

generare nuove forme in maniera sistematica. L'approccio descritto di seguito, cerca di mo-

dellare la forma della nuvola di distribuzione dei punti in un spazio ad elevata dimensione,

perciò cerca di stabilire la relazione tra le posizioni dei singoli picchetti.

Si assume che la nuvola sia approssimativamente ellissoidale e si procede a calcolarne il

centro (ottenendo una forma media) e i suo assi maggiori, che danno un modo per muover-

si all'interno di essa.

Dato un insieme di N forme allineate, la forma media, ����x (il centro del dominio ellis-

45

Page 47: Progetto e ottimizzazione di algoritmi di riconoscimento ...elite.polito.it/files/thesis/fulltext/castellina.pdf · APPENDICE A Anatomia e movimenti dell'occhio 125 Anatomia dell'occhio

CAPITOLO 3 Active shape model

soidale della forma possibile), è calcolato usando

����x�1

N�i�1

N

x i

Ogni asse dell'ellissoide dà una modalità di variazione, un modo col quale i picchetti tendo

a muoversi insieme al variare della forma. Per ogni campione nel training set si calcola la

sua deviazione dalla forme media, d x i dove

d x i�x i#����x

Si può calcolare la matrice di covarianza S di dimensioni 2 n)2 n , usando

S�1

N�i�1

N

d x i d x i

T

Gli assi principali dell'ellissoide, sono descritti da pk �k�1,.... ,2 n� l'insieme di autova-

lori di S tali che

Spk��k pk

(dove �k è il k-esimo autovalore di S , con �k��k 1 )

pk

Tpk�1

Può essere dimostrato che gli autovettori della matrice di covarianza corrispondono ai mag-

giori autovalori che descrivono gli assi più lunghi dell'ellissoide, e perciò le più significanti

modalità di variazione delle variabili sono usate per ottenere la matrice di covarianza. La

varianza determinata da ogni autovettore è uguale al corrispondente autovalore. La maggior

parte della variazione può essere determinata in un piccolo numero di modi, t . Questo

significa che l'ellissoide di dimensione 2 n è approssimato da un ellissoide di dimensio-

ne t , dove t è scelto in modo tale che l'ellissoide originale abbia abbia un relativa-

mente piccola larghezza lungo gli assi t 1 e superiori.

Un metodo per calcolare t è scegliere il più piccolo numero di modi tali che la somma

delle loro varianze determini una sufficientemente larga proporzione di �T , la varianza

totale di tutte le variabili, dove

�T��k�1

2 n

�k

Ogni punto del dominio della forma possibile può essere ottenuto a partire dal punto medio

e sommando una combinazione lineare di autovettori. Il k-esimo autovettore incide nel mo-

dello sul movimento del punto l lungo un vettore parallelo a �d xk l , d yk l � , che è ot-

tenuto da l-esima coppia di elementi in pk :

46

Page 48: Progetto e ottimizzazione di algoritmi di riconoscimento ...elite.polito.it/files/thesis/fulltext/castellina.pdf · APPENDICE A Anatomia e movimenti dell'occhio 125 Anatomia dell'occhio

CAPITOLO 3 Active shape model

pk

T��d xk 0 , d yk 0 , ...... , d xk l , d yk l , ...... , d xk n#1 , d xyk n#1�

Una forma nel training set può essere approssimata usando la forma media e la somma pe-

sata delle suo deviazioni ottenuta dalla prime t mode:

x�����x Pb (1),

dove

P�� p1 , p1 , . . . , pt �T

è la matrice dei primi t autovettori,

e b��b1 b2 .... bt�T

è un vettore di pesi.

Le equazioni sopra descritte permettono di generare nuovi campioni di forme variando i

parametri �bk � all'interno di appropriati limiti, in modo tale che la nuova forma sia simi-

le a quelle del training set. I parametri sono linearmente indipendenti, anche ci potrebbe es-

sere una dipendenza non lineare ancora presente.

I limiti per bk sono calcolati esaminando la distribuzione dei valori dei parametri richie-

sti per generare il training set. Dato che la varianza di bk nel training set può essere mo-

strata da �k , limiti idonei sono tipicamente dell'ordine di

#3��k�bk�3��k (2)

poiché la maggior parte dei punti è localizzata entro tre volte la deviazione standard dal

punto medio.

3.3 Ricerca delle forme nelle immagini

Dove aver generato un modello flessibile , esso verrà utilizzato per trovare nuovi campioni

di oggetti modellati nelle immagini. Questo coinvolge la ricerca della forma e la scelta dei

parametri in modo tale da far coincidere il modello con le strutture dell'immagine interessa-

ta. Un 'istanza del modello è data da

X�M �s ,�� x � X c , dove

X c��X c ,Y c , X c ,Y c , ..... , X c ,Y c�T

M �s ,�� � è una rotazione di e uno scalamento di s, e

�X c ,Y c� è la posizione del centro del modello nell'immagine.

In questo paragrafo sarà descritto un metodo iterativo per trovare un X appropriato data

un'approssimazione iniziale molto poco accurata.

L'idea dello schema iterativo è posizionare la stima corrente di X nell'immagine ed esa-

47

Page 49: Progetto e ottimizzazione di algoritmi di riconoscimento ...elite.polito.it/files/thesis/fulltext/castellina.pdf · APPENDICE A Anatomia e movimenti dell'occhio 125 Anatomia dell'occhio

CAPITOLO 3 Active shape model

minare la regione dell'immagine attorno ad ogni punto del modello per determinare sposta-

mento in una posizione migliore. Queste deformazioni locali sono trasformate in cambia-

menti di posa,scala e parametri della forma dei modello di distribuzione dei punti.

I vincoli sui parametri del modello possono essere applicati per fare in modo che la forma

generata sia simile a quelle presenti nel training set.

La procedura di deformazione viene ripetuta Finché non si ottengono significanti cambia-

menti.

3.3.1 Calcolo dello spostamento indicato per ogni punto del modello

Data una stima iniziale delle posizioni dell'insieme dei punti del modello che si sta cercan-

do di adattare ad un oggetto nell'immagine, si ha necessità di trovare un insieme di aggiu-

stamenti che spostino ogni punto in una posizione migliore. Quando i punti del modello

rappresentano i contorni dell'oggetto questa procedura comporta lo spostamento lungo i

bordi dell'immagine. Denotiamo l'insieme degli aggiustamenti come un vettore d X ,

dove

d X��d X 0 , d Y 0 , ........ , d X n#1 , d Y n#1�

3.3.2 Calcolo dei cambiamenti nella posizione e nei parametri della for-

ma

L'obbiettivo e modificare la posizione e i parametri della forma del modello per muovere i

punti dalla loro attuale posizione nell'immagine, X , per essere il più vicini possibile

alle nuove posizioni indicate �X d X � , rispettando i vincoli del modello.

Se la stima corrente del modello è centrata in �X c ,Y c� con orientamento e scala

s , dapprima si deve calcolare come modificare questi parametri per avere un migliore

adattamento all'immagine. Ciò è ottenuto trovando la traslazione �d X c , d Y c� la rotazio-

ne d e il fattore di scala �1 d s� che meglio mappa l'insieme corrente di punti,

X , nell'insieme di punti dato da �X d X � .

Dopo aver modificato le variabili che controllano la posizione del modello, rimangono da

cambiare i parametri che permettono di deformare la forma del modello.

Si calcolano gli aggiustamenti, d x , nelle coordinate locali dell'immagine, richiesti per

lo spostamento dei punti X di d X quando si combinano con gli effetti dei parametri

della nuova scala, rotazione e traslazione.

48

Page 50: Progetto e ottimizzazione di algoritmi di riconoscimento ...elite.polito.it/files/thesis/fulltext/castellina.pdf · APPENDICE A Anatomia e movimenti dell'occhio 125 Anatomia dell'occhio

CAPITOLO 3 Active shape model

La posizione iniziali dei punti nell'immagine è data da

X�M �s ,�� x � X c

Si calcolano un insieme di aggiustamenti residui d x nelle coordinate locali del modello

in modo che:

M �s �1 d s� ,� d ��� x d x � �X c d X c���X d X �

perciò

M �s �1 d s� , d �� x d x ���M �s ,�� x � d X �#�X c d X c�

e poiché

M#1�s ,�� ��M �s#1

,#�� �

si ottiene

d x�M ��s �1 d s��#1,#� d ��� y �#x (3)

, dove y�M �s ,�� x � d X#d X c

L'equazione (3) fornisce un metodo di calcolare i movimenti indicati nei punti x nelle

coordinate locali del modello. Questi movimenti in genere non sono consistenti con il mo-

dello della forme.

Con lo scopo di applicare i vincoli della forma, si trasforma n d x nello spazio dei para-

metri del modello. Sia d b , i cambiamenti ai parametri del modello richiesti per adattare

i punti del modello a d x secondo i vincoli.

Si vuole calcolare d b in modo che

x d x��x P �b d b� (4)

Dato che ci sono solo t � �2 n� modi di variazioni sono possibili e d x

può muovere i punti in 2 n differenti gradi di libertà, si può ottenere un'approssimazione

della deformazione richiesta.

Sottraendo la (1) dalla (20) si ottiene

d x�P �b�

e

d b�PT

d x (5)

dato che PT�P

####1 , poiché le colonne di P sono mutuamente ortogonali.

Può essere dimostrato che l'equazione (5) è equivalente ad utilizzare l'approssimazione del

minimo quadrato per calcolare i parametri modificati della forma , d b .

49

Page 51: Progetto e ottimizzazione di algoritmi di riconoscimento ...elite.polito.it/files/thesis/fulltext/castellina.pdf · APPENDICE A Anatomia e movimenti dell'occhio 125 Anatomia dell'occhio

CAPITOLO 3 Active shape model

3.3.3 Aggiornamento della posizione e dei parametri della forma

Le equazioni precedenti permettono di calcolare i cambiamenti alla variabili di posiziona-

mento e gli aggiustamenti d X C , d Y C , d , d s ai parametri della forma d b

richiesti per migliorare la corrispondenza tra modello e immagine.

L'aggiornamento dei parametri si applica in uno schema iterativo

X c� X c wt d X c

Y c�Y c w t d Y c

� wd

s� s �1 w s d s�

b����b W b d b

dove wt , w s , w sono pesi scalari e W b è una matrice diagonale di pesi, uno per ogni

moda. Questa può essere la matrice identità, o ogni peso può essere proporzionale alla de-

viazione del corrispondente parametro della forma nel training set. Si assicura che il mo-

dello venga deformato solamente in forme consistenti col training set ponendo dei limiti al

valore di bk . Una forma può essere considerata accettabile se la distanza di Mahalano-

bis Dm è minore di una costante opportuna , Dmax . Questo limite è calcolato in modo

tale che pressoché tutti i campioni presenti nel training set soddisfino l'equazione 16.

3.4 Implementazione dell'algoritmo

E' stato appena descritto nei paragrafi precedenti un metodo generico per ricercare una for-

ma di un oggetto a partire da un modello di distribuzione dei punti.

Non è stato sinora spiegato come implementare lo spostamento e la deformazione della for-

ma del modello sull'oggetto dell'immagine. Questo passo dell'algoritmo non è descritto

specificatamente nell'articolo citato in precedenza, ma viene lasciata libertà di scelta.

Verrà ora descritta l'implementazione adottata nel sistema di gaze tracking esistente.

Per ogni punto di ogni forma presente nel training set viene memorizzata una matrice di

gradienti di colori W)H riempita considerando un rettangolo centrato nel picchetto e

con orientamento normale all'andamento del contorno dell'oggetto come mostrato in figura

3.3.

50

Page 52: Progetto e ottimizzazione di algoritmi di riconoscimento ...elite.polito.it/files/thesis/fulltext/castellina.pdf · APPENDICE A Anatomia e movimenti dell'occhio 125 Anatomia dell'occhio

CAPITOLO 3 Active shape model

Figura 3.3: Memorizzazione matrice colori

Viene in seguito elaborata una “matrice associativa” che contiene tutti le matrici dei gra-

dienti dei colori di ogni picchetto di ogni forma relazionata al valore dei pesi dei parametri

che deformano il modello. L'aggiornamento delle variabili che determinano la posizione e

dei parametri che deformano il modello avviene minimizzando la differenza fra l'intorno

dei punti in cui è applicato il modello sull'immagine e le matrici dei gradienti di colori me-

morizzate all'interno della matrice associativa . L'aggiornamento avviene iterativamente

finché non si raggiunge una soglia di precisione voluta.

51

Page 53: Progetto e ottimizzazione di algoritmi di riconoscimento ...elite.polito.it/files/thesis/fulltext/castellina.pdf · APPENDICE A Anatomia e movimenti dell'occhio 125 Anatomia dell'occhio

CAPITOLO 4

Analisi di fattibilità

4.1 Introduzione

Prima di procedere all'implementazione del sistema è necessaria una fase di analisi di fatti-

bilità sui diversi componenti di cui è costituito.

In questo capitolo vengono riportati i risultati della fase di analisi effettuata prima e durante

la fase iniziale della progettazione del sistema di gaze tracking.

Le scelte progettuali illustrate nel capitolo successivo sono in gran parte giustificate dalle

problematiche e dalle difficoltà incontrante durante la fase di studio della possibilità tecni-

ca di realizzazione del sistema.

Per verificare le ipotesi teoriche emerse durante la fase di analisi sono stati realizzati appli-

cativi specifici per effettuare test sull'efficienza e la potenzialità di algoritmi e tecniche uti-

lizzate.

Questa sperimentazione ha permesso di selezionare in fase di realizzazione solo le alterna-

52

Page 54: Progetto e ottimizzazione di algoritmi di riconoscimento ...elite.polito.it/files/thesis/fulltext/castellina.pdf · APPENDICE A Anatomia e movimenti dell'occhio 125 Anatomia dell'occhio

CAPITOLO 4 Analisi di fattibilità

tive più efficienti e funzionali.

La struttura di questo capitolo ricalca la divisione in moduli di un generico sistema di gaze-

tracking descritta nel capitolo 2.

4.2 Cattura delle immagini

La fase di cattura delle immagini è la base su cui si appoggia il resto del sistema, quindi

deve essere robusta, veloce e utilizzare poche risorse.

Un vincolo progettuale è l'utilizzo di dispositivi di cattura a basso costo per rendere acces-

sibile al maggior numero di persone possibile il sistema di gaze-tracking.

Una webcam comune,attualmente in commercio, è in grado di catturare circa venti imma-

gini al secondo con una risoluzione di 640x480 pixel.

Con un frame rate così basso è impossibile tracciare i movimenti degli occhi perché troppo

rapidi, quindi per determinare la posizione fissata ci si dovrà basare solo sulla forma del-

l'occhio durante la fase di fissazione e non durante i movimenti saccadici1.

Data la ridotta risoluzione di acquisizione diventa rilevante il posizionamento della web-

cam: maggiore è la vicinanza della webcam all'occhio maggiore sarà la porzione dell'im-

magine occupata dall'occhio.

Per poter identificare le forme di occhio quando la fissazione avviene nella parte inferiore

dello schermo è necessario che la webcam sia localizzata al di sotto del monitor (figura

4.1), poiché se fosse posizionata al di sopra la forma dell'occhio sarebbe mascherata dalle

palpebre.

Per quanto riguarda il tracciamento dei movimenti della testa risulta più utile posizionare la

webcam al disopra del monitor, poiché sono utilizzate la forma delle sopracciglia e la dire-

zione del naso per effettuare il riconoscimento del punto fissato (figura 4.2).

Il diverso posizionamento delle webcam in caso di eye-tracking ed head-tracking lascia

aperta la possibilità di utilizzare il sistema con due webcam in contemporanea.

1 Vedere capitolo 1.2

53

Page 55: Progetto e ottimizzazione di algoritmi di riconoscimento ...elite.polito.it/files/thesis/fulltext/castellina.pdf · APPENDICE A Anatomia e movimenti dell'occhio 125 Anatomia dell'occhio

CAPITOLO 4 Analisi di fattibilità

Figura 4.1: disposizione webcam Eye tracking Figura 4.2: disposizione webcam Head tracking

In fase di progettazione sono emerse due possibili architetture d'implementazione del mo-

dulo di acquisizione delle immagini.

• Cattura continua delle immagini della webcam.

• Cattura delle nuove immagini quando sono necessarie al sistema per eseguire il ri-

conoscimento.

La cattura continua delle immagini della webcam ha il vantaggio di evitare l'implementa-

zione di un protocollo di comunicazione tra modulo di cattura immagini e modulo di rico-

noscimento forme con il risparmio delle relative tempistiche di funzionamento, ma ha lo

svantaggio di utilizzare risorse del sistema anche quando non strettamente necessarie all'e-

laborazione e riconoscimento del punto fissato. Il modulo di riconoscimento forme recupe-

ra l'immagine da una zona di memoria condivisa con il modulo di acquisizione video.

L'utilizzo della seconda tecnica permette una maggiore indipendenza del modulo di acqui-

sizione video dal resto del sistema.

Quando richiesta l’immagine viene inviata direttamente dal modulo di acquisizione video

al modulo di riconoscimento forme.

4.3 Problematiche nell’utilizzo di ASM

In questo paragrafo sono trattate tutte le difficoltà riscontrante nello studio della possibilità

di implementazione dell'algoritmo di active shape model all'interno del sistema di gaze-

tracking.

54

Page 56: Progetto e ottimizzazione di algoritmi di riconoscimento ...elite.polito.it/files/thesis/fulltext/castellina.pdf · APPENDICE A Anatomia e movimenti dell'occhio 125 Anatomia dell'occhio

CAPITOLO 4 Analisi di fattibilità

4.3.1 Difficoltà nel produrre un modello

Come è stato illustrato nel capitolo precedente ASM necessita della costruzione di un mo-

dello dell'oggetto da ricercare all'interno delle immagini.

Sono svariate le possibilità di scelta per la costruzione di un modello, di seguito sono ripor-

tati i principali quesiti che ci siamo posti prima della sua strutturazione .

• Cosa modellare esattamente?

• Quanti picchetti posizionare?

• Come determinare i punti caratteristici della forma?

• Quanto deve essere la matrice di colori da memorizzare nell’intorno del picchetto?

• Quante immagini sono necessarie per produrre il modello?

Un requisito del sistema è la possibilità di funzionare sia in modalità di eye tracker che di

head-tracker quindi si dovranno gestire due modelli diversi.

Per quanto riguarda il tracciamento oculare vi è la possibilità di modellare la forma di un

singolo occhio oppure di entrambi.

Noi abbiamo scelto di concentrarci sulla modellazione di un singolo occhio , essenzialmen-

te per due motivi:

• Analizzando la variazione della forme degli occhi in relazione al punto osservato si

è notato che le informazioni ottenute da entrambi gli occhi sono ridondanti. Si è

evidenziata inoltre la presenza di un occhio “dominante”: la cui forma ha una diffe-

renziazione maggiore rispetto all’altro occhio in relazione ai punti osservati.

• A parità di numero di picchetti utilizzati per delimitare la forma, concentrare l’at-

tenzione su un unico occhio permette di migliorare la definizione del modello.

Utilizzando la forma di un solo occhio abbiamo però lo svantaggio di avere un ridotto con-

trollo sull’errore durante la fase di riconoscimento, infatti la ridondanza, vista come aspetto

negativo durante la modellazione, permette l’individuazione e il parziale recupero delle

imprecisioni.

Un’importante scelta progettuale è stata la definizione del posizionamento dei picchetti per

la determinazione dei punti caratteristici dei modelli dell’occhio e della testa.

Data l’immagine di occhio in figura 4.3 si possono evidenziare come punti caratteristici

per determinarne la forma: il contorno esterno, la pupilla e il centro della pupilla.

55

Page 57: Progetto e ottimizzazione di algoritmi di riconoscimento ...elite.polito.it/files/thesis/fulltext/castellina.pdf · APPENDICE A Anatomia e movimenti dell'occhio 125 Anatomia dell'occhio

CAPITOLO 4 Analisi di fattibilità

Basandoci sugli esempi di modellazione incontrati in letteratura abbiamo ritenuto che per

avere una buona definizione del modello il numero di picchetti ideali da posizionare fosse

37 (figura 4.4).

Figura 4.3: immagine dell'occhio Figura 4.4: posizione picchetti sull'occhio

Per quanto riguarda la modellazione della posizione della testa (figura 4.5) si possono evi-

denziare come punti caratteristici: le sopracciglia,il naso, e la zona di intersezione tra le so-

pracciglia e la sommità del naso.

Per semplificare il progetto del sistema che utilizza il modello, si è deciso di mantenere lo

stesso numero di picchetti sia per la forma dell’occhio sia per quella della testa.

Figura 4.5: immagine del voltoFigura 4.6: posizione dei picchetti sulla testa

In figura 4.6 è rappresentato un esempio di posizionamento dei picchetti sulla testa.

L’unico punto non ancora analizzato per la costruzione del modello è la scelta della dimen-

sione della matrice di colori da memorizzare nell’intorno di ogni picchetto.

Le dimensioni delle matrici di colori incidono notevolmente sulla precisione e sui tempi

della ricerca delle forme: maggiori sono le dimensioni, migliore sarà la precisione e più

lunghi saranno i tempi per trovare la forma all’interno dell’immagine.

E’ difficile stabilire in fase di studio quali siano le dimensioni ideali per cui la scelta è stato

56

Page 58: Progetto e ottimizzazione di algoritmi di riconoscimento ...elite.polito.it/files/thesis/fulltext/castellina.pdf · APPENDICE A Anatomia e movimenti dell'occhio 125 Anatomia dell'occhio

CAPITOLO 4 Analisi di fattibilità

posticipata nella fase successiva del progetto.

Per costruire il modello sono necessarie immagini dell’ occhio (o testa) che osserva punti

diversi dello schermo.

Maggiore è il numero di immagini che costituiscono il training set maggiore sarà la preci-

sione del modello.

Il numero di immagini del training set determina anche la complessità computazionale del-

la ricerca per cui è impossibile ipotizzare la costruzione di un unico modello per tutte le ti-

pologie di forme d’occhio.

Il sistema di gaze-tracking quindi gestirà modelli specifici di testa e di occhio per ogni sin-

gola persona che l’utilizzi.

4.3.2 Calcolo della complessità computazionale

L’analisi della complessità dell’algoritmo è utile per determinare scelte ottimali dei para-

metri in fase di costruzione del modello.

Nel capitolo precedente è stata descritta a grandi linee l’implementazione dell’active shape

model utilizzata nel sistema di gaze-tracking.

Per poter effettuare un’analisi di complessità si deve dettagliare maggiormente il funziona-

mento dell’implementazione adottata.

• si determina un punto iniziale dell’immagine in cui posizionare la forma “media”

dell’oggetto.

• Per M volte si trasla,ruota e scala il modello della forma media per minimizzare la

differenza tra i gradienti di colore nell’intorno dei punti dell’immagine corrente e

quelli memorizzati nella matrice associativa.

• Si seleziona la posizione che la cui distanza della matrici di colori risulta minima

• Finché la differenza tra i gradienti di colore dell’immagine corrente e i gradienti

contenuti nella matrice associativa non è inferiore ad una determinata soglia, oppu-

re al massimo per K volte si procede nel seguente modo :

1. si ricerca all’interno del training set la forma con minore differenza di colore ri-

spetto all’immagine in cui si sta ricercando la forma

2. si utilizzano i pesi della forma trovata nel training set per calcolare i nuovi pesi

per deformare il modello della forma media

57

Page 59: Progetto e ottimizzazione di algoritmi di riconoscimento ...elite.polito.it/files/thesis/fulltext/castellina.pdf · APPENDICE A Anatomia e movimenti dell'occhio 125 Anatomia dell'occhio

CAPITOLO 4 Analisi di fattibilità

3. si allinea la forma ottenuta con la posizione calcolata nel passo 2 dell’algoritmo

I calcoli esposti di seguito sono il risultato di un'estrema semplificazione del problema del

calcolo della complessità, ma riescono comunque a dare l'idea di come i parametri di pro-

getto influiscano sul funzionamento dell'algoritmo.

Per rendere agevoli e più chiara l'analisi sono state considerate tutte le operazioni sia arit-

metiche che di confronto con costo computazionale uguale.

Siano H e W rispettivamente le colonne e le righe della matrice dei gradienti di colore.

Ogni colore è rappresenta a sua volta da tre componenti memorizzati in un byte ciascuno.

Per verificare la differenze tra due forme si devono calcolare ndis�37)H)W distanze tra

punti delle matrice. In questa implementazione è considerata la distanza euclidea; siano

Σ � e Σ � due punti delle matrici di colore e �5 � �∗ � �% � , �5 � �∗ � �% � le ri-

spettive componenti di colore, definiamo la distanza tra questi punti come

Γ �Σ � � Σ �����5 �#5 ��� �∗ �#∗ ��

� �% �#% ���

Per calcolare una distanza quindi occorrono 9 operazioni matematiche.

Il numero totali di operazioni per confrontare due forme è ΘΡΣ ΓΛς� )ΘΓΛς .

Ipotizzando il caso peggiore, in cui l'algoritmo non trovi una differenza tra le forme al di-

sotto della soglia predeterminata, il punto 4 dell'algoritmo si ripete per K volte. Per ricerca-

re una forma in un'immagine il numero di operazioni è dato da

ΘΡΣ ΥΛΦΗΥΦ∆�ΘΡΣ ΓΛς)�0 . )�1 �� . )�

dove

N è il numero di immagini del training set.

� rappresenta il numero di operazioni necessarie alla deformazione del modello, è fun-

zione del numero di picchetti della forma.

In conclusione, i parametri che influenzano la complessità dell'algoritmo di riconoscimento

sono:

Χ W e H : numero di righe e colonne della matrice dei colori.

Χ N: numero di immagini che costituiscono il training set.

Χ M: numero di interazioni per il posizionamento della forma media del modello.

Χ K: numero massimo di deformazioni del modello per la ricerca della forma.

58

Page 60: Progetto e ottimizzazione di algoritmi di riconoscimento ...elite.polito.it/files/thesis/fulltext/castellina.pdf · APPENDICE A Anatomia e movimenti dell'occhio 125 Anatomia dell'occhio

CAPITOLO 4 Analisi di fattibilità

4.4 Determinazione punto fissato (Gaze detection)

La determinazione del punto fissato è riconducibile ad un generico problema di classifica-

zione in cui i dati di ingresso,rappresentati dalle forme riconosciute, devono essere distinti

in classi che sono rappresentate dalle zone dello schermo fissate.

In questo contesto utilizzeremo il termine classificazione come sinonimo di Gaze detec-

tion.

Come è stato illustrato nel capitolo 3 esistono svariate tecniche di classificazione degli og-

getti. Per verificare quale tecnica si adatti meglio alla Gaze detection si è sviluppata un'ap-

plicazione esterna al sistema per la ricerca delle forme tramite active shape model.

Le considerazioni riportate in questo paragrafo sono inerenti all'eye tracking, in quando per

l'head tracking non si è ricorsi all'utilizzo di un classificatore come verrà spiegato nel ca-

pitolo 5.

L'applicazione sviluppata fornisce i seguenti dati in ingresso al classificatore:

Χ le coordinate dei punti della forma trovata

Χ il vettore degli autovalori utilizzati per modificare il modello

Χ il numero di interazioni effettuate

Χ l'indice dell'immagine del training set che ha la forma più simile a quella trovata

Χ la minima differenza tra forma trovata e le forme del training set

Sono state analizzate tre possibili implementazioni di classificatore:

Χ un classificatore con fase di addestramento che utilizza i pesi del modello

Χ un classificatore con fase di addestramento che utilizza l'indice delle immagini

Χ un classificatore senza fase di addestramento

4.4.1 Fase di addestramento

La fase di addestramento è il processo in cui si raccolgono informazioni per poter stabilire

all'interno del classificatore una relazione tra ingressi e uscite desiderate. Nel sistema svi-

luppato questa fase consiste nell'osservazione da parte dell'utente di una forma circolare

che si muove all'interno dello schermo mentre è in esecuzione l'algoritmo di riconoscimen-

to forme.

La posizione del cerchio è considerata l'uscita desiderata, poiché indica il punto fissato,

mentre i parametri della forma riconosciuta rappresentano i dati in ingresso.

In figura 4.7 è schematizzata la fase di addestramento descritta.

59

Page 61: Progetto e ottimizzazione di algoritmi di riconoscimento ...elite.polito.it/files/thesis/fulltext/castellina.pdf · APPENDICE A Anatomia e movimenti dell'occhio 125 Anatomia dell'occhio

CAPITOLO 4 Analisi di fattibilità

Figura 4.7: fase di addestramento

Ogni fase di addestramento sperimentata è contraddistinta dai seguenti parametri:

Χ numero di forme in ingresso

Χ percorso effettuato dalla forma circolare

Χ tempo impiegato

Per ogni sistema di classificazione analizzato sono state provate diverse tipologie di fasi

d'addestramento per stabilire le più appropriate.

4.4.2 Utilizzo dei pesi del modello

Il modello della forma dell'occhio ricavato dal posizionamento di 37 picchetti sulle imma-

gini del training set risulta modificabile da 7 pesi.

Le modifiche più evidenti nella forma del modello sono prodotte dalla variazione dei primi

tre pesi. In figura 4.8 è evidenziata la variazione della forma in relazione al cambiamento

del valore dei pesi �P0 , P1 , P2� . Il campo di variazione di ogni peso è calcolato utiliz-

zando la formula (2).

Nel modello da cui sono ricavate le illustrazioni i pesi hanno il seguente dominio:

P0ζ�#24, 24 � P1ζ�#14,14� P2ζ�#9,9�

60

Page 62: Progetto e ottimizzazione di algoritmi di riconoscimento ...elite.polito.it/files/thesis/fulltext/castellina.pdf · APPENDICE A Anatomia e movimenti dell'occhio 125 Anatomia dell'occhio

CAPITOLO 4 Analisi di fattibilità

Figura 4.8: variazione della forma del modello in relazione ai pesi

L'algoritmo per porre in relazione i pesi del modello con la posizione fissata opera nel se-

guente modo:

Χ si divide lo schermo in una griglia di m righe n colonne determinando

m)n zone.

Χ durante la fase di addestramento per ogni zona in cui è diviso lo schermo si me-

morizzano i valori assunti dai pesi P0 e P1

Χ finito l'addestramento si calcolano per ogni zona valore massimo e minimo di

ogni peso. Per escludere possibili valori errati non si considerano i valori che dif-

feriscono dalla media di più di due volte della varianza.

Χ Per ogni zona il massimo e il minimo di P0 e P1 determinano un' interval-

lo specifico del dominio di variabilità dei pesi.

Χ La classificazione di una nuova forma avviene controllando a che intervallo di

pesi essa appartiene.

Χ Per migliorare l'accuratezza della classificazione si è deciso di considerare i va-

lori dei pesi su F forme riconosciute.

Le verifiche sperimentali effettuate su questa tipologia di classificatore non sono risultate

soddisfacenti. Nelle tabelle dalla 4.1 alla 4.6 sono riportati alcuni risultati della sperimenta-

61

Page 63: Progetto e ottimizzazione di algoritmi di riconoscimento ...elite.polito.it/files/thesis/fulltext/castellina.pdf · APPENDICE A Anatomia e movimenti dell'occhio 125 Anatomia dell'occhio

CAPITOLO 4 Analisi di fattibilità

zioni svolte. I risultati riportati nelle tabelle seguenti sono una media delle prove svolte uti-

lizzando uno stesso modello e variando le condizioni di luce e la posizione dell'utente. Per

ogni verifica sono state effettuata da un minimo di 5 ad un massimo di 10 misurazioni.

Il tasso di errore globale è stato calcolato per mezzo di un apposito software che illumina in

modo casuale delle zone dello schermo che l'utente deve osservare e verifica la correttezza

della classificazione.

Tab. 4.1: Verifica sperimentale 1

Numero forme del modello 60

Dimensioni griglia 3x4

Numero forme catturate per ogni zonadello schermo

10

Durata fase di addestramento 60 s

Tasso di errore globale 58%

Tab. 4.2: Verifica sperimentale 2

Numero forme del modello 30

Dimensioni griglia 3x4

Numero forme catturate per ogni zonadello schermo

10

Durata fase di addestramento 50 s

Tasso di errore globale 55%

Tab. 4.3: Verifica sperimentale 3

Numero forme del modello 60

Dimensioni griglia 3x3

Numero forme catturate per ogni zonadello schermo

10

Durata fase di addestramento 45 s

Tasso di errore globale 52%

Tab. 4.4: Verifica sperimentale 4

Numero forme del modello 30

Dimensioni griglia 3x3

Numero forme catturate per ogni zonadello schermo

10

Durata fase di addestramento 40 s

Tasso di errore globale 48%

62

Page 64: Progetto e ottimizzazione di algoritmi di riconoscimento ...elite.polito.it/files/thesis/fulltext/castellina.pdf · APPENDICE A Anatomia e movimenti dell'occhio 125 Anatomia dell'occhio

CAPITOLO 4 Analisi di fattibilità

Tab. 4.5: Verifica sperimentale 5

Numero forme del modello 60

Dimensioni griglia 2x3

Numero forme catturate per ogni zonadello schermo

10

Durata fase di addestramento 40 s

Tasso di errore globale 50,00%

Tab. 4.6: Verifica sperimentale 6

Numero forme del modello 30

Dimensioni griglia 2x3

Numero forme catturate per ogni zonadello schermo

10

Durata fase di addestramento 38 s

Tasso di errore globale 47%

Di seguito sono riportati i grafici che illustrano l'andamento del tasso di errore in funzione

del numero di forme utilizzate durante l'addestramento.

Figura 4.9: Verifica 1 e 2, griglia 3)4

63

Page 65: Progetto e ottimizzazione di algoritmi di riconoscimento ...elite.polito.it/files/thesis/fulltext/castellina.pdf · APPENDICE A Anatomia e movimenti dell'occhio 125 Anatomia dell'occhio

CAPITOLO 4 Analisi di fattibilità

Figura 4.10: Verifica 3 e 4, griglia 3x3

Figura 4.11: Verifica 5 e 6, griglia 2x3

Come si nota dai grafici (figure 4.9, 4.10 e 4.11)e dalle tabelle le verifiche sperimentali

hanno dimostrato che nessuna fra le configurazioni provate ha fornito risultati accettabili.

Emerge dai grafici un abbassamento del tasso di errore in funzione della diminuzione del

numero di zone in cui è suddiviso lo schermo. Tale andamento è da pesare con l'aumento

della probabilità di effettuare un riconoscimento esatto in maniera casuale, infatti si passa

da 8% per una griglia 3)4 al 17 % per una griglia 2)3 .

Per avere una spiegazione di questi risultati si possono osservare i grafici nelle figure 4.12

e 4.13 in cui sono rappresentate le relazioni tra pesi e zone osservate.

Ogni forma è rappresentata da un punto del piano determinato considerando il peso P0

come ascissa e P1 come ordinata. Le zone in cui è suddiviso lo schermo sono rappre-

sentate da aree del piano di forma rettangolare. Le aree tratteggiate indicano la sovrapposi-

64

Page 66: Progetto e ottimizzazione di algoritmi di riconoscimento ...elite.polito.it/files/thesis/fulltext/castellina.pdf · APPENDICE A Anatomia e movimenti dell'occhio 125 Anatomia dell'occhio

CAPITOLO 4 Analisi di fattibilità

zione tra due o più zone.

Figura 4.12: Relazione tra pesi delle forme e zone osservate. Griglia 2x3

Figura 4.13: Relazione tra pesi delle forme e zone osservate. Griglia 3x3

Il tasso di errore così elevato è dovuto all'assenza di una netta divisione tra le varie zone,

esistono valori dei pesi per cui il classificatore indica più zone possibili.

Si sono sperimentate diverse tecniche per migliorare i risultati:

Χ quando la forma appartiene a più zone osservate la si attribuisce alla zona che ha

il baricentro più vicino al punto del piano che la rappresenta.

65

Page 67: Progetto e ottimizzazione di algoritmi di riconoscimento ...elite.polito.it/files/thesis/fulltext/castellina.pdf · APPENDICE A Anatomia e movimenti dell'occhio 125 Anatomia dell'occhio

CAPITOLO 4 Analisi di fattibilità

Χ Si attendono F forme e si sceglie come zona osservata quella che risulta indi-

cata dalla maggioranza delle forme. L'utilizzo di questa tecniche riduce la possi-

bilità di conflitto tra le diverse zone, ma aumenta notevolmente le tempistiche di

funzionamento del classificatore.

Nel grafico in figura 4.14 è mostrato l'andamento del tasso di errore per le verifiche 5 e 6 al

variare del parametro F.

Figura 4.14: andamento tasso di errore verifiche 5 e 6

Nel grafico in figura 4.15 è illustrato l'andamento del tempo di classificazione in funzione

parametro F. Tale tempo indica i secondi necessari al classificatore per indicare la zona

dello schermo selezionata dall'utente.

66

Page 68: Progetto e ottimizzazione di algoritmi di riconoscimento ...elite.polito.it/files/thesis/fulltext/castellina.pdf · APPENDICE A Anatomia e movimenti dell'occhio 125 Anatomia dell'occhio

CAPITOLO 4 Analisi di fattibilità

Figura 4.15: andamento del tempo di classificazione nelle verifiche 5 e 6

Dalle verifiche effettuate è emerso che l'utilizzo di questo algoritmo di classificazione pro-

duce risultati inaccettabili sia per quanto riguarda il tasso di errore nel riconoscimento sia

per le tempistiche della fase di adattamento.

Il funzionamento teorico dell'algoritmo è stato confutato dalla fase sperimentale.

Questi pessimi risultati sono dovuti agli errori introdotti dall'active shape model nella ricer-

ca della forma.

4.4.3 Utilizzo dell'indice delle immagini

L'algoritmo di ricerca forme implementato fornisce come dato in uscita l'indice dell'imma-

gine del training set con forma più simile a quella trovata.

Si è sviluppata e testata una tecnica di classificazione che utilizza tale indice per stabilire la

zona dello schermo fissata.

L'algoritmo opera nel seguente modo:

Χ si divide lo schermo in una griglia di m righe n colonne determinando

m)n zone.

Χ durante la fase di addestramento per ogni zona in cui è diviso lo schermo si me-

morizzano gli indici delle immagini del training set rilevati.

Χ finito l'addestramento si calcolano per ogni indice memorizzato due probabilità:

Χ Probabilità relativa alla zona:

67

Page 69: Progetto e ottimizzazione di algoritmi di riconoscimento ...elite.polito.it/files/thesis/fulltext/castellina.pdf · APPENDICE A Anatomia e movimenti dell'occhio 125 Anatomia dell'occhio

CAPITOLO 4 Analisi di fattibilità

P R , Z �i ��numero forme di indice i nella zona Z

numero forme nella zona Z

Χ Probabilità totale:

PT �i��numero forme di indice i

numero forme TOTALI

Χ La classificazione di una nuova forma avviene determinando quale zona dello

schermo ha maggiore probabilità di essere indicata dall'indice della forma del

training set.

Χ Per migliorare l'accuratezza della classificazione si è deciso di calcolare la pro-

babilità della zona osservata considerando F indici.

Χ Dato un indice i per ogni zona Z si calcola:

PZ , f �PR , Z �i�∝PT con f ζ�0, F#1�

Χ Dopo f indici si calcola per ogni zona la probabilità di essere fissata:

P Z�1

F∝�

f �0

F#1

PZ , f

Χ La zona prescelta sarà quella con probabilità maggiore:

max�Zζ�1 , M )N ��

�P Z

Nelle tabelle dalla 4.7 alla 4.12 sono riportati alcuni risultati della sperimentazioni svolte. I

risultati riportati nelle tabelle seguenti sono una media delle prove svolte utilizzando uno

stesso modello e variando le condizioni di luce e la posizione dell'utente.

Per avere la possibilità di effettuare un confronto con le verifiche elaborate per l'algoritmo

descritto in precedenza sono stati mantenuti gli stessi parametri di sperimentazione.

Tab 4.7: Verifica sperimentale 7

Numero forme del modello 60

Dimensioni griglia 3x4

Numero forme catturate per ogni zonadello schermo

10

Durata fase di addestramento 60 s

Tasso di errore globale 44%

68

Page 70: Progetto e ottimizzazione di algoritmi di riconoscimento ...elite.polito.it/files/thesis/fulltext/castellina.pdf · APPENDICE A Anatomia e movimenti dell'occhio 125 Anatomia dell'occhio

CAPITOLO 4 Analisi di fattibilità

Tab 4.8: Verifica sperimentale 8

Numero forme del modello 30

Dimensioni griglia 3x4

Numero forme catturate per ogni zonadello schermo

10

Durata fase di addestramento 50 s

Tasso di errore globale 41%

Tab 4.9: Verifica sperimentale 9

Numero forme del modello 60

Dimensioni griglia 3x3

Numero forme catturate per ogni zonadello schermo

10

Durata fase di addestramento 45 s

Tasso di errore globale 40%

Tab 4.10: Verifica sperimentale 10

Numero forme del modello 30

Dimensioni griglia 3x3

Numero forme catturate per ogni zonadello schermo

10

Durata fase di addestramento 40 s

Tasso di errore globale 36%

Tab 4.11: Verifica sperimentale 11

Numero forme del modello 60

Dimensioni griglia 2x3

Numero forme catturate per ogni zonadello schermo

10

Durata fase di addestramento 40 s

Tasso di errore globale 37%

Tab 4.12: Verifica sperimentale 12

Numero forme del modello 30

Dimensioni griglia 2x3

Numero forme catturate per ogni zonadello schermo

10

Durata fase di addestramento 38 s

69

Page 71: Progetto e ottimizzazione di algoritmi di riconoscimento ...elite.polito.it/files/thesis/fulltext/castellina.pdf · APPENDICE A Anatomia e movimenti dell'occhio 125 Anatomia dell'occhio

CAPITOLO 4 Analisi di fattibilità

Tab 4.12: Verifica sperimentale 12

Tasso di errore globale 33%

Nelle figure 4.16, 4.17 e 4.18 è illustrato l'andamento del tasso di errore in funzione del

numero delle forme utilizzate durante la fase di addestramento.

Figura 4.16 : andamento tasso di errore Griglia 3x4

Figura 4.17 : andamento tasso di errore Griglia 3x3

70

Page 72: Progetto e ottimizzazione di algoritmi di riconoscimento ...elite.polito.it/files/thesis/fulltext/castellina.pdf · APPENDICE A Anatomia e movimenti dell'occhio 125 Anatomia dell'occhio

CAPITOLO 4 Analisi di fattibilità

Figura 4.18 : andamento tasso di errore Griglia 2x3

Dai grafici sopra riportati emerge che all'aumentare del numero di forme utilizzate durante

la fase di addestramento si ha un aumento dell'accuratezza della classificazione.

Perchè il sistema sia facilmente utilizzabile la fase di addestramento deve durare il minor

tempo possibile. Si deve cercare quindi il miglior compromesso tra durata dell'addestra-

mento e precisione voluta. Nel grafico in figura 4.19 è riportato, in riferimento alle verifi-

che 11 e 12, l'andamento della durata della fase di addestramento in funzione del numero di

immagini catturate per ogni zona.

Figura 4.19: andamento del tempo di addestramento in funzione del numero di forme catturate per ogni

zona

71

Page 73: Progetto e ottimizzazione di algoritmi di riconoscimento ...elite.polito.it/files/thesis/fulltext/castellina.pdf · APPENDICE A Anatomia e movimenti dell'occhio 125 Anatomia dell'occhio

CAPITOLO 4 Analisi di fattibilità

Tutti i grafici finora riportati sono stati elaborati considerando il parametro F�1 .

Interessante è verificare , come per l'algoritmo precedente, l'andamento del tasso d'errore e

dei tempi di classificazione all'aumento del parametro F . Tali andamenti sono illustrati

rispettivamente nei grafici in figura 4.20 e 4.21.

Figura 4.20: tasso di errori in funzione del parametro F

Figura 4.21: tempo di classificazione in funzione del parametro F

Dalla combinazione della scelta del valore di F e del numero di forme catturate si è rilevato

che per una griglia 2)3 si hanno risultati ottimali conderando i seguenti intervalli:

Χ Fζ�5,10�

Χ Numero forme catturate ζ�15, 25�

72

Page 74: Progetto e ottimizzazione di algoritmi di riconoscimento ...elite.polito.it/files/thesis/fulltext/castellina.pdf · APPENDICE A Anatomia e movimenti dell'occhio 125 Anatomia dell'occhio

CAPITOLO 4 Analisi di fattibilità

Il tasso di errore, considerando i parametri all'interno tali intervalli, varia dal 14% al 22%.

Con questa tecnica si ha un evidente miglioramento della precisione della classificazione;

la percentuale d'errore resta però elevata. Nonostante l'elevata probabilità d'errore il sistema

di eye tracking con l'utilizzo di questa tecnica ha prestazioni sufficienti.

Questo comportamento è dovuto al fatto che l'errore globale non è distribuito uniforme-

mente su tutte le zone in cui è suddiviso lo schermo; esso è concentrato quasi totalmente su

una o due fra le M )N zone.

Le zone la cui classificazione è soggetta ad elevato tasso di errore sono difficilmente rico-

noscibili, ma la determinazione delle altre zone presenta buoni risultati.

I test svolti hanno rilevato che la diversa distribuzione del tasso di errore è dovuta alla pre-

senza di un numero non omogeneo di forme relative ad ogni zona.

Per migliorare l'accuratezza della classificazione è possibile utilizzare i risultati sul tasso

di errore per bilanciare il modello, così facendo si arriva ad un tasso d'errore che va dal

12% al 21%.

Nonostante le correzioni che si possono apportare la probabilità di errore mantiene una di-

stribuzione non uniforme.

Dall'analisi dei risultati delle sperimentazioni svolte è emerso che le zone più soggette a er-

rore sono l'area inferiore destra dello schermo per i modelli costruiti sulla forma dell'occhio

sinistro e l'area inferiore sinistra per i modelli costruiti sulla forma dell'occhio destro.

Da i risultati sopra riportati si rileva che questa tecnica produce risultati accettabili, consi-

derando una suddivisione dello schermo in una griglia 2)3 , purchè le applicazioni sia-

no in grado di recuperare gli errori e funzionare senza il riconoscimento di una zona.

4.4.4 Classificatore senza addestramento

Un classificatore per funzionare necessita di riconoscere la relazione tra dati di ingresso e

uscite desiderati per far questo è necessaria solitamente una fase di addestramento per

istruire il sistema.

Per poter evitare la fase di addestramento il classificatore deve poter conoscere la relazione

tra ingresso e uscita in un altro modo.

L'algoritmo sviluppato opera nel seguente modo:

Χ durante la costruzione del modello per ogni immagine appartenente al training

73

Page 75: Progetto e ottimizzazione di algoritmi di riconoscimento ...elite.polito.it/files/thesis/fulltext/castellina.pdf · APPENDICE A Anatomia e movimenti dell'occhio 125 Anatomia dell'occhio

CAPITOLO 4 Analisi di fattibilità

set si stabilisce la zona dello schermo osservata.

Χ Durante il processo di eye tracking il classificatore utilizza un buffer FIFO di di-

mensione F per memorizzare l'indicazione della zona osservata stabilita tramite

le informazioni contenute all'interno del modello.

Χ Dopo le prime F immagini il classificatore funziona a regime e dopo la ricezione

di ogni immagine determina la zona fissata scegliendo quella maggiormente pre-

sente all'interno del buffer.

Per correttezza nelle tabelle dalla 4.13 alla 4.18 sono stati riportati i risultati delle verifiche

svolte mantenendo gli stessi parametri di sperimentazione degli algoritmi precedenti.

Tab. 4.13: Verifica sperimentale 13

Numero forme del modello 60

Dimensioni griglia 3x4

Tasso di errore globale 65%

Tab. 4.14: Verifica sperimentale 14

Numero forme del modello 60

Dimensioni griglia 3x4

Tasso di errore globale 61%

Tab. 4.15: Verifica sperimentale 15

Numero forme del modello 60

Dimensioni griglia 3x3

Tasso di errore globale 60%

Tab. 4.16: Verifica sperimentale 16

Numero forme del modello 60

Dimensioni griglia 3x3

Tasso di errore globale 56%

Tab. 4.17: Verifica sperimentale 17

Numero forme del modello 60

Dimensioni griglia 2x3

74

Page 76: Progetto e ottimizzazione di algoritmi di riconoscimento ...elite.polito.it/files/thesis/fulltext/castellina.pdf · APPENDICE A Anatomia e movimenti dell'occhio 125 Anatomia dell'occhio

CAPITOLO 4 Analisi di fattibilità

Tab. 4.17: Verifica sperimentale 17

Tasso di errore globale 55%

Tab. 4.18: Verifica sperimentale 18

Numero forme del modello 60

Dimensioni griglia 2x3

Tasso di errore globale 50%

Risulta evidente che i risultati ottenuti sono pessimi, essi rappresentano una media dei va-

lori ottenuti variando la posizione dell'utente e le condizioni di luce.

Nel corso dei test si è notato che il tasso di errore è fortemente dipendente dal posiziona-

mento dell'utente rispetto alla posizione assunta durante la costruzione del modello.

Per misurare la dipendenza del tasso di errore dalla posizione è stato sviluppato un applica-

tivo in grado di evidenziare la differenza tra la posizione dell'utente durante la costruzione

del modello e la posizione durante la sperimentazione. La differenza è calcolata attraverso

un semplice confronto di immagini. Per semplificazione si sono considerati come sposta-

menti solo le traslazioni orizzontali e verticali della testa e non eventuali rotazioni.

Nei grafici nelle figure 4.22, 4.23 e 4.24 è evidenziato l'andamento del tasso di errore in

funzione della differenza di posizione. Con la linea tratteggiata è rappresentata il valore

medio dell'errore.

0 1 2 3 4 5 6

0,00%

10,00%

20,00%

30,00%

40,00%

50,00%

60,00%

70,00%

80,00%

90,00%

Verifica 13

Verifica 14

Differenza di posizione (cm)

Ta

sso

d'e

rro

re

Figura 4.22: andamento del tasso d'errore in funzione della differenza di posizione. Griglia 3x4

75

Page 77: Progetto e ottimizzazione di algoritmi di riconoscimento ...elite.polito.it/files/thesis/fulltext/castellina.pdf · APPENDICE A Anatomia e movimenti dell'occhio 125 Anatomia dell'occhio

CAPITOLO 4 Analisi di fattibilità

0 1 2 3 4 5 6

0,00%

5,00%

10,00%

15,00%

20,00%

25,00%

30,00%

35,00%

40,00%

45,00%

50,00%

55,00%

60,00%

65,00%

70,00%

75,00%

80,00%

85,00%

Verifica 15

Verifica 16

Differenza di posizione (cm)

Ta

sso

d'e

rro

re

Figura 4.23 andamento del tasso d'errore in funzione della differenza di posizione. Griglia 3x3

0 1 2 3 4 5 6

0,00%

5,00%

10,00%

15,00%

20,00%

25,00%

30,00%

35,00%

40,00%

45,00%

50,00%

55,00%

60,00%

65,00%

70,00%

75,00%

80,00%

85,00%

Verifica 18

Verifica 17

Differenza di posizione (cm)

Ta

sso

d'e

rrore

Figura 4.24 andamento del tasso d'errore in funzione della differenza di posizione. Griglia 4x4

Analogamente alle tecniche di classificazione precedenti, sono state calcolate le variazioni

dei tassi d'errore e delle tempistiche di riconoscimento in funzione del parametro F, che in

questo caso rappresenta la dimensione del buffer utilizzato per memorizzare le indicazioni

delle zone fissate. Contrariamente alla comune pratica ingegneristica non è stata effettuata

un'analisi di caso peggiore, bensì sono state considerate le condizione ottimali di funziona-

76

Page 78: Progetto e ottimizzazione di algoritmi di riconoscimento ...elite.polito.it/files/thesis/fulltext/castellina.pdf · APPENDICE A Anatomia e movimenti dell'occhio 125 Anatomia dell'occhio

CAPITOLO 4 Analisi di fattibilità

mento. Questa scelta è stata effettuata perché nell'utilizzo reale del sistema di eye tracking

si cercherò sempre di lavorare con differenze di posizioni minime rispetto alla costruzione

del modello.

Nei grafici in figura 4.25, 4.26 e 4.27 è riportato l'andamento del tasso di errore in funzione

di F, considerando una differenza di posizionamento di 0,5 cm.

1 2 5 10 20

10,00%

12,50%

15,00%

17,50%

20,00%

22,50%

25,00%

27,50%

30,00%

32,50%

35,00%

37,50%

40,00%

42,50%

45,00%

47,50%

50,00%

Verifica 13

Verifica 14

F

Ta

sso

di e

rrore

Figura 4.25:andamento del tasso d'errore in funzione di F , Griglia 3x4, Differenza di posizione 0,5 cm

1 2 5 10 20

0,00%

2,50%

5,00%

7,50%

10,00%

12,50%

15,00%

17,50%

20,00%

22,50%

25,00%

27,50%

30,00%

32,50%

35,00%

37,50%

40,00%

Verifica 15

Verifica 16

F

Ta

sso

di e

rro

re

Figura 4.26:andamento del tasso d'errore in funzione di F , Griglia 3x3, Differenza di posizione 0,5 cm

77

Page 79: Progetto e ottimizzazione di algoritmi di riconoscimento ...elite.polito.it/files/thesis/fulltext/castellina.pdf · APPENDICE A Anatomia e movimenti dell'occhio 125 Anatomia dell'occhio

CAPITOLO 4 Analisi di fattibilità

1 2 5 10 20

0,00%

2,50%

5,00%

7,50%

10,00%

12,50%

15,00%

17,50%

20,00%

22,50%

25,00%

27,50%

30,00%

32,50%

35,00%

37,50%

40,00%

Verifica 17

Verifica 18

F

Ta

sso d

i e

rro

re

Figura 4.27:andamento del tasso d'errore in funzione di F , Griglia 2x3, Differenza di posizione 0,5 cm

Nei grafici che riportano l'andamento del tasso di errore in funzione del parametro F, si

nota che si ha un minimo nell'intorno del valore F = 10 .

Dall'analisi sperimentale si rilevato che questa tecnica ha i seguenti pregi:

Χ basso tasso di errore se la differenza di posizionamento dell'utente è minima

Χ dopo un transitorio iniziale, si ha un tempo costante per la determinazione del

punto fissato

Χ non richiede una fase di addestramento per funzionare

Esistono però anche i seguenti svantaggi nell'utilizzo di questo algoritmo:

Χ Elevata sensibilità ai movimenti della testa: risulta difficilmente utilizzabile da

un utente normodotato che abitualmente tende a seguire il punto fissato con leg-

geri movimenti del capo.

Χ Forte dipendenza tra il modello e la griglia in cui è suddiviso lo schermo; infatti

rispetto agli algoritmi precedenti le informazioni su punti osservati e forme del

training set sono inserite al momento della costruzione del modello. Questo fatto

parta alla necessità di avere modelli specifici per utente, condizione ambiente e

per numero di zone in cui suddividere lo schermo.

78

Page 80: Progetto e ottimizzazione di algoritmi di riconoscimento ...elite.polito.it/files/thesis/fulltext/castellina.pdf · APPENDICE A Anatomia e movimenti dell'occhio 125 Anatomia dell'occhio

CAPITOLO 5

Progettazione del sistema

5.1 Struttura generale del sistema

Dopo aver analizzato la possibilità d’implementazione del sistema, in questo capitolo ne

verrà descritta la progettazione e l’implementazione.

Nello stadio di analisi dei requisiti del sistema è emersa la netta distinzione tra la fase di

costruzione del modello della testa o dell’occhio e la fase di gaze-tracking; per questo mo-

tivo il sistema di gaze-tracking è stato diviso in due applicativi distinti:

∩ Un programma di Training: progettato per la costruzione di modelli dell'occhio e della

testa

∩ Un programma di Gaze tracking: utilizza i modelli creati dal programma di training per

determinare la zona dello schermo fissata.

Entrambi gli applicativi condividono un database in cui sono memorizzati i modelli co-

struiti e le informazioni necessarie al funzionamento del sistema.

79

Page 81: Progetto e ottimizzazione di algoritmi di riconoscimento ...elite.polito.it/files/thesis/fulltext/castellina.pdf · APPENDICE A Anatomia e movimenti dell'occhio 125 Anatomia dell'occhio

CAPITOLO 5 Progettazione del sistema

Come è evidenziato negli schemi in figura 5.1 e in figura 5.2 i programmi hanno una strut-

tura modulare.

Vi è una struttura di controllo denominata “supervisore” che ha il compito di coordinare e

gestire lo scambio di informazioni tra le diverse componenti del sistema.

Ogni modulo può interagire solo con il supervisore e non conosce il resto del sistema.

La gestione degli utenti e la cattura delle immagini è presente sia nell’applicazione per la

costruzione del modello sia nel programma di gaze-tracking quindi è stata possibile un im-

plementazione unica di tali funzioni.

Figura 5.1: applicazione di training

Il programma di training è composto dai seguenti componenti:

• Gestione modelli: è un componente che si interfaccia con database e permette di

scegliere un modello specifico fra tutti quelli creati col programma di training.

• Gestione immagini: permette di archiviare le immagini che costituiscono il trai-

ning set.

• Cattura delle immagini: è un modulo di comunicazione con il dispositivo di cat-

tura video.

• Inserimento delle forme: permette il picchettamento delle immagini archiviate.

80

Page 82: Progetto e ottimizzazione di algoritmi di riconoscimento ...elite.polito.it/files/thesis/fulltext/castellina.pdf · APPENDICE A Anatomia e movimenti dell'occhio 125 Anatomia dell'occhio

CAPITOLO 5 Progettazione del sistema

• Costruzione del modello: crea un modello in base alle forme e ai parametri im-

postati.

Figura 5.2: Applicazione di Gaze tracking

Il programma di gaze-tracking è composto dai seguenti componenti:

• Gestione utenti: permette di memorizzare le impostazione scelte da ogni utente,

permette di velocizzare l’utilizzo del sistema.

• Gestione modelli: è un componente che si interfaccia con database e permette di

scegliere un modello specifico fra tutti quelli creati col programma di training.

• Cattura delle immagini: è un modulo di comunicazione con il dispositivo di cat-

tura video.

• Ricerca della forma: è il componente che implementa l’active shape model.

• Gaze Detection: stabilisce il punto osservato.

• Gestione delle applicazioni: è il componente che si occupa della coordinazione

e del controllo della comunicazione tra sistema e applicativi che lo utilizzano.

81

Page 83: Progetto e ottimizzazione di algoritmi di riconoscimento ...elite.polito.it/files/thesis/fulltext/castellina.pdf · APPENDICE A Anatomia e movimenti dell'occhio 125 Anatomia dell'occhio

CAPITOLO 5 Progettazione del sistema

Nei paragrafi seguenti verrà descritto il funzionamento di ogni modulo che compone il si-

stema, mentre i dettagli sul codice sono allegati in appendice D.

5.2 Programma di Training

Lo scopo del programma di training è la creazione , la gestione e la modifica dei modelli delle for-

me di occhio e di testa. Le fasi per la costruzione di un modello sono descritte dallo schema in fi-

gura 5.3.

Figura 5.3: schema del funzionamento del programma di training

5.2.1 Cattura di una collezione di immagini

Per costruire un modello occorre un insieme di immagini che rappresentino le diverse forme di oc-

chio e della testa durante la fissazione di diversi punti dello schermo.

E’ stata distinta una fase di cattura delle immagini dalla fase di definizione delle forme tramite pic-

chetti per evitare all’utente inutile attesi e per migliorare le tempistiche di costruzione del modello.

Come illustrato nel capitolo 4, durante la fase di analisi non è stato possibile stabilire il numero di

immagine necessarie per costruire un modello efficiente. Per questo motivo è stata lasciata la pos-

82

Page 84: Progetto e ottimizzazione di algoritmi di riconoscimento ...elite.polito.it/files/thesis/fulltext/castellina.pdf · APPENDICE A Anatomia e movimenti dell'occhio 125 Anatomia dell'occhio

CAPITOLO 5 Progettazione del sistema

sibilità di decidere sia il numero di immagini da includere nel training set, sia la posizione dei pun-

ti osservati durante la cattura.

La successione dei punti da fissare durante la raccolta delle immagini del training set è denominata

PATH.

L’analisi dell’influsso della definizione di tali punti sulle prestazioni dell’algoritmo di ricerca è

trattata nel capitolo 6.

Prima di eseguire la cattura delle immagini è necessario stabilire la precisione del training set in-

dicata dal numero zone in cui sarà suddiviso lo schermo.

La raccolta delle immagini avviane tramite una procedura guidata, in cui l’utente deve fissare una

forma circolare che si muove nello schermo.

Il movimento della forma circolare è coordinato con l’acquisizione delle immagini dalla webcam

in modo tale che quando essa raggiunge le posizione definite nel PATH avviene un cambiamento

di colore e l’effettiva memorizzazione all’interno del database.

In figura 5.4 è rappresentato un esempio del posizionamento di 12 punti che costituiscono un

PATH, con una risoluzione di 6 zone.

Figura 5.4: esempio di punti che costituiscono un PATH

5.2.2 Picchettatura delle forme

Il posizionamento dei picchetti sulle immagini del training set è un procedimento fonda-

mentale per la costruzione del modello.

Le immagini catturate nella fase precedente ritraggono l’intero volto dell’utente, quindi pri-

ma di procedere alla collocazione dei picchetti si deve selezionare solo la zona dell’imma-

gine interessata dal procedimento.

Nelle figure 5.5 e 5.6 sono rappresentate come rettangoli le zone selezionate, per eseguire

83

Page 85: Progetto e ottimizzazione di algoritmi di riconoscimento ...elite.polito.it/files/thesis/fulltext/castellina.pdf · APPENDICE A Anatomia e movimenti dell'occhio 125 Anatomia dell'occhio

CAPITOLO 5 Progettazione del sistema

la disposizione dei picchetti, rispettivamente nel caso dell’eye-tracking e dell’head-tracking

.

Figura 5.5: zona intorno intorno all'occhio da sele-

zionareFigura 5.6: zona della testa da selezionare

Le zone delle immagini selezionate vengono memorizzate nel database all’interno della ta-

bella ImagesTS (tab. x +) per essere utilizzate per il calcolo della matrici di colori nell’in-

torno dei picchetti.

Come spiegato nei capitoli precedenti sia per la modellazione della forma dell’occhio che

per quella della testa si è deciso di posizionare 37 picchetti.

Per rendere più agevole i posizionamento dei picchetti si è scelto di differenziare l’ordine

di inserimento dall’ordine dei punti all’interno della forma. Nelle figure 5.7 per l’occhio e

5.8 per la testa è illustrato l’ordine di inserimento dei picchetti. Come si nota da tali figure

l’ordine di inserimento è studiato in modo tale da delineare dapprima gli estremi delle for-

me e successivamente i punti di unione tra tali punti. Le differenze di colorazione dei pic-

chetti hanno lo scopo di aiutarne il posizionamento, non c’è alcuna differenza nel momento

della costruzione del modello nella trattazione dei picchetti di colore più scuro rispetto a

quelli più chiari.

Alcune implementazioni dell’active shape model presenti in letteratura diversificano la ge-

stione dei picchetti in base alla funzione che rivestono nell’applicazione.

Per dare la possibilità futura di implementare tale opzioni, all’interno del database viene

memorizzata anche l’informazione del tipo di picchetto posizionato.

84

Page 86: Progetto e ottimizzazione di algoritmi di riconoscimento ...elite.polito.it/files/thesis/fulltext/castellina.pdf · APPENDICE A Anatomia e movimenti dell'occhio 125 Anatomia dell'occhio

CAPITOLO 5 Progettazione del sistema

Figura 5.7: ordine di posizionamento dei picchetti sull'occhio

Figura 5.8: ordine di posizionamento dei picchetti sulla testa

La struttura dati utilizzata per la memorizzazione di una forma è un vettore allocato dina-

micamente che contiene strutture di tipo PUNTO.

Un PUNTO è rappresentato da due numeri interi che indicano le coordinate della posizio-

ne del picchetto considerando come riferimento gli assi in figura 5.9.

Per agevolare la disposizione dei picchetti viene visualizzato all’interno della finestra di

posizionamento la descrizione della localizzazione del prossimo punto da inserire.

85

Page 87: Progetto e ottimizzazione di algoritmi di riconoscimento ...elite.polito.it/files/thesis/fulltext/castellina.pdf · APPENDICE A Anatomia e movimenti dell'occhio 125 Anatomia dell'occhio

CAPITOLO 5 Progettazione del sistema

Una volta terminato il picchettamento la forma viene memorizzata nel database all’interno

della tabella ShapeTS (tab. X+4).

Figura 5.9: rappresentazione coordinate PUNTO

5.2.3 Generazione del modello e delle matrici associative

La fase successiva al posizionamento dei picchetti sulle immagini del training set è la gene-

razione del modello dell’occhio o della testa.

Il modello è costruito applicando l’algoritmo esposto nel capitolo 3.? . Maggiori dettagli

sul codice dell’implementazione sono rimandati all’appendice D?.

La struttura dati,denominata MATRIX_MODEL, per la memorizzazione del modello con-

tiene le seguenti informazioni:

• Numero di forme del modello.

• Forma media dell’oggetto modellato.

• Una matrice contenente gli autovettori del modello.

• Un vettore contenente il valore del peso per ogni picchetto.

• Un vettore contenente la massima variazione possibile di ogni autovalore in modo

tale da rispettare i vincoli del modello.

Questa struttura viene memorizzata all’interno del database nel campo “statistics” della ta-

bella TrainingSet (tab.x+).

Il programma di training permette di visualizzare il modello ottenuto e di verificare la ri-

sposta del modello alla variazione del valore dei pesi applicati.

Questa possibilità è utile per appurare che la fase di posizionamento dei picchetti sia avve-

nuta correttamente.

Nelle figure 5.10 e 5.11 sono rappresentate le deformazioni al modello provocate dalla

modifica dei pesi.

86

Page 88: Progetto e ottimizzazione di algoritmi di riconoscimento ...elite.polito.it/files/thesis/fulltext/castellina.pdf · APPENDICE A Anatomia e movimenti dell'occhio 125 Anatomia dell'occhio

CAPITOLO 5 Progettazione del sistema

Figura 5.10 : esempio di variazione delle forme del modello della testa

Figura 5.11 : esempio di variazione delle forme del modello dell'occhio

87

Page 89: Progetto e ottimizzazione di algoritmi di riconoscimento ...elite.polito.it/files/thesis/fulltext/castellina.pdf · APPENDICE A Anatomia e movimenti dell'occhio 125 Anatomia dell'occhio

CAPITOLO 5 Progettazione del sistema

Dopo la costruzione del modello vengono elaborate anche delle matrici associative che

hanno la funzione di memorizzare la derivata della matrice di colore nell’intorno dei pic-

chetti e di porla in relazione con i valori dei pesi del modello.

Per ogni immagine presente nel training set si genera una struttura denominata MAT_ASSO-

CIATIVA_GREYLEVEL_2D.

La matrice associativa è un vettore che contiene tutte queste strutture calcolate all’interno

di un training set.

MAT_ASSOCIATIVA_GREYLEVEL_2D è costituita da un vettore con i pesi della forma pic-

chettata sull’immagine a cui si riferisce e un vettore che contiene una struttura di tipo CEL-

LA_GREYLEVEL_2D per ogni picchetto.

La struttura CELLA_GREYLEVEL_2D contiene le seguente informazioni:

• Indice del picchetto

• Coordinate del punto in cui è posizionato il picchetto

• Una matrice con le coordinate dei punti considerati nell’intorno del picchetto.

• Una matrice in cui sono memorizzati i colori nell’intorno del picchetto

• Una matrice contenente la derivata della matrice descritta sopra.

• La pendenza della retta passante per il picchetto e normale al contorno della forma.

Per ogni modello si è deciso di elaborare tre matrici associative con differente dimensione

delle zone utilizzate nell’intorno dei picchetti. Si è deciso di elaborare più matrici per non

determinare a priori la precisione e la complessità della ricerca della forma, e per dare al-

l’utente la possibilità di scegliere il miglior compromesso tra velocità e accuratezza del si-

stema.

In figura 5.12 sono rappresentate in scala le differenti zone considerate nell’intorno del pic-

chetto. Per semplicità chiameremo le differenti aree nell’intorno dei picchetti con le lettere

indicate nella figura.

88

Page 90: Progetto e ottimizzazione di algoritmi di riconoscimento ...elite.polito.it/files/thesis/fulltext/castellina.pdf · APPENDICE A Anatomia e movimenti dell'occhio 125 Anatomia dell'occhio

CAPITOLO 5 Progettazione del sistema

Figura 5.12: intorno dei picchetti nelle differenti matrici associative

In tabella 5.1 sono riportate le dimensioni delle differenti zone .

Tab. 5.1: Caratteristiche nell'intorno dei picchetti nelle differenti matrici associative

Zona Larghezza(W) Altezza (H)

A 5 pixel 30 pixel

B 3 pixel 20 pixel

C 1 pixel 10 pixel

5.2.4 Funzionalità aggiuntive

Il programma di training oltre alla costruzione dei modelli deve provvedere alla loro gestio-

ne e memorizzazione. Sono state implementate diverse funzioni che permettono di svol-

gere questi compiti:

• Cattura di immagini personalizzabile: è possibile definire PATH di cattura diffe-

renti da quelli standard e specifici per l’applicazione che utilizzerà il modello.

• Visualizzazione dei modelli: permette di verificare la corretta picchettatura delle

forme e fornisce indicazioni sulla variabilità di posizione di ogni picchetto all’inter-

no del training set.

•Modifica del training set: è possibili aggiungere o rimuovere forme per riscontrare

i cambiamenti apportati al modello.

•Esportazione e Importazione dei modelli: questa funzione dà la possibilità di tra-

sportare training set tra sistemi differenti. Il processo d’esportazione genera un file

compresso contenente tutte le informazioni necessarie a ricostruire il modello.

89

Page 91: Progetto e ottimizzazione di algoritmi di riconoscimento ...elite.polito.it/files/thesis/fulltext/castellina.pdf · APPENDICE A Anatomia e movimenti dell'occhio 125 Anatomia dell'occhio

CAPITOLO 5 Progettazione del sistema

5.3 Programma di gaze tracking

Il programma di gaze tracking utilizza i modelli prodotti dall'applicativo di training per ef-

fettuare una ricerca in tempo reale delle forme della testa o dell'occhio e determinare la

zona dello schermo fissata. Nello schema in figura 5.13 è rappresentato l'insieme delle

funzionalità che caratterizzano l'applicativo.

Figura 5.13: funzionalità applicativo di gaze tracking

5.3.1 Scelta dell'utente

Per evitare la ripetuta scelta del modello , delle matrici associative e delle impostazioni al-

l'utente abituale si è scelto di memorizzare tali informazioni all'interno del database.

Il programma è di tipo multiutente: si avvia caricando il profilo relativo all'ultimo utente

che l'ha utilizzato. C'è la possibilità di caricare le informazioni relative ai profili esistenti o

di crearne di nuovi.

Per ogni utente vengono memorizzate le seguenti informazioni:

Χ nome identificativo.

Χ Ultimo modello utilizzato.

Χ Ultima matrice associativa utilizzata.

Χ Tipo di utilizzo: eye tracking o head tracking.

90

Page 92: Progetto e ottimizzazione di algoritmi di riconoscimento ...elite.polito.it/files/thesis/fulltext/castellina.pdf · APPENDICE A Anatomia e movimenti dell'occhio 125 Anatomia dell'occhio

CAPITOLO 5 Progettazione del sistema

Χ Impostazioni di funzionamento: verranno descritte in seguito.

5.3.2 Scelta del modello e della matrice associativa

La scelta del modello e della relativa matrice associativa è molto importante in quanto in-

fluisce notevolmente sull'accuratezza e selle prestazioni del sistema di gaze tracking.

Un utente può utilizzare l'applicazione anche senza la costruzione di un modello personale,

ma può scegliere all'interno del database il modello della forma dell'occhio (o della testa)

che più si avvicina alla sua.

Un utente su cui sono stati costruiti dei modelli personali, invece , può scegliere quello che

più si adatta alle condizioni di luce e di posizionamento al momento dell'utilizzo.

La scelta del modello e delle matrici associative è effettuata tramite la finestra in figura

5.14. Nella parte destra della finestra è rappresenta un'immagine identificativa del training

set e un'elaborazione grafica della forma risultante dalla costruzione del modello. Da que-

sta finestra è possibile visionare, selezionare e provare tutti i modelli costruiti in preceden-

za con il programma di training.

Oltre alla scelta del modello è stata concessa la possibilità di decidere il tipo di matrice as-

sociativa da utilizzare per permettere di determinare il compromesso tra accuratezza e velo-

cità di riconoscimento voluto.

Figura 5.14 : finestra di Scelta del modello

91

Page 93: Progetto e ottimizzazione di algoritmi di riconoscimento ...elite.polito.it/files/thesis/fulltext/castellina.pdf · APPENDICE A Anatomia e movimenti dell'occhio 125 Anatomia dell'occhio

CAPITOLO 5 Progettazione del sistema

Le caratteristiche delle diverse matrici associative sono riportate in tabella 5.1, di seguito

sono descritti i tipici ambiti di utilizzo.

Χ Matrici di tipo A: l’utilizzo di questo tipo di matrici è opportuno quando le condizioni

ambientali del sistema sono molto differenti dalla condizioni in cui si è generato il mo-

dello; sono impiegate tipicamente per l'eye tracking data l'elevata sensibilità ai movi-

menti e alla posizione della testa di tale algoritmo.

Χ Matrici di tipo B: l’utilizzo di questo tipo di matrici permette un buon compromesso tra

accuratezza e velocità di riconoscimento delle forme. Solitamente sono impiegate nel-

l'ambito dell'head tracking quando si utilizza un modello non specifico per l'utente.

Χ Matrici di tipo C: questa tipologia di matrici permette la migliore velocità di funziona-

mento del sistema a scapito dell'accuratezza. Esse sono utilizzate nell'ambito dell'head

tracking quando si utilizza un modello specifico per l'utente.

Maggiori dettagli sulla relazione tra matrici associative e velocità e accuratezza del sistema

sono riportate nel capitolo successivo.

5.3.3 Gaze tracking

Nel secondo capitolo si sono descritti generici sistemi di gaze tracking, elencando per ogni

componente del sistema le implementazioni possibili presenti in letteratura.

Nel quarto capitolo, invece, sono stati riportati i risultati delle verifiche sperimentali effet-

tuate per determinare la possibilità d'implementazione del sistema.

In questo paragrafo sono illustrate le scelte progettuali adottate ,in base alle sperimentazio-

ni svolte, tra quelle descritte in precedenza.

In figura 5.15 è rappresentato lo schema di funzionamento dei componenti in condivisi dal-

l'eye tracking e dall'head tracking.

92

Page 94: Progetto e ottimizzazione di algoritmi di riconoscimento ...elite.polito.it/files/thesis/fulltext/castellina.pdf · APPENDICE A Anatomia e movimenti dell'occhio 125 Anatomia dell'occhio

CAPITOLO 5 Progettazione del sistema

Figura 5.15 : schema componenti comuni tra head tracking e eya tracking

5.3.3.AGestione dispositivo di input

Per la gestione del dispositivo di acquisizione video sono state utilizzate le librerie micro-

soft video for windows (VFW). Per consentire un livello di astrazione maggiore di quello

concesso da VFW è stata implementa una classe per la gestione delle comunicazioni con

la webcam denominata MYCAVICAP.

L'implementazione della classe sopraccitata si è resa necessaria per una notevole lacuna

delle VFW: non è possibile copiare l'immagine catturata in una zona di memoria senza

passare prima da un file su disco.

La libreria MYCAVICAP consente, invece ,di scegliere di copiare le immagini catturate in

una zona di memoria indicata, oppure su un file su disco.

I vantaggi dati dalla possibilità di copiare i dati direttamente in memoria senza passare dal

disco fisso sono :

Χ maggiore velocità di cattura

93

Page 95: Progetto e ottimizzazione di algoritmi di riconoscimento ...elite.polito.it/files/thesis/fulltext/castellina.pdf · APPENDICE A Anatomia e movimenti dell'occhio 125 Anatomia dell'occhio

CAPITOLO 5 Progettazione del sistema

Χ maggiore velocità di accesso all'immagine

Χ minore utilizzo del processore

La maggiore velocità di cattura e di accesso all'immagine non costituiscono nella realtà un

fattore critico di scelta poiché in ogni caso il processo di acquisizione delle immagini è più

veloce del processo di ricnoscimento forme e si ritrova quidi, ad attendere che quest'ultimo

finisca l'elaborazione.

La possibilità della cattura delle immagini su disco è stata implementa in MYCAVICAP per

motivi di compatibilità con webcam vecchie che non supportano la cattura direttamente in

memoria.

Tra le tecniche di cattura delle immagini trattate nel capitolo 4 si è scelto di utilizzare la

cattura a richiesta come si può notare dallo schema in figura X.

All'avvio dell'applicazione il SUPERVISORE richiede l'attivazione delle webcam al modulo

di “Gestione del dispositivo”. Se non la webcam non è presente o è occupata da un'altra

applicazione, dopo un messaggio di errore, si avvia una versione limitata del programma

che permette solo la gestione degli utenti e la visione dei modelli presenti nel database.

Dopo che l'utente avvia la ricerca della forma il SUPERVISORE inoltra le richieste prove-

nienti dal modulo “Ricerca Forme” e il modulo di “Gestione del dispositivo” esegue la cat-

tura. Alla chiusura del programma il modulo “Gestione dispositivo” invia il segnale di di-

sconnessione alla webcam.

5.3.3.BRicerca della forma

La ricerca della forma all'interno delle immagini è effettuata tramite l'implementazione del-

l'algoritmo descritto nel capitolo 3.

All'avvio dell'applicazione di gaze tracking il SUPERVISORE si occupa di inviare al modulo

di “Ricerca della forma” il modello e la matrice associativa selezionata dall'utente corrente.

Il processo di ricerca delle forma una volta avviato tramite un segnale del SUPERVISORE

esegue ciclicamente i seguenti passaggi:

Χ Richiesta nuova immagine

Χ Riceve nuova immagine

Χ ricerca della forma all'interno dell'immagine

Χ invia parametri della forma trovata al SUPERVISORE

Χ attende un tempo wt

94

Page 96: Progetto e ottimizzazione di algoritmi di riconoscimento ...elite.polito.it/files/thesis/fulltext/castellina.pdf · APPENDICE A Anatomia e movimenti dell'occhio 125 Anatomia dell'occhio

CAPITOLO 5 Progettazione del sistema

Tramite il parametro wt il SUPERVISORE può controllare la velocità di ricerca delle forme.

Un indicazione importante per il modulo di ricerca forme è il posizionamento iniziale del

modello. Questo parametro viene acquisito dal SUPERVISORE, tramite l'indicazione da parte

dell'utente (o chi per esso) della posizione sull'immagine, e successivamente viene inviato

al modulo di ricerca delle forme. In figura 5.16 e 5.17 è rappresentata la finestra utilizzata

dal SUPERVISORE per raccogliere l'indicazione rispettivamente per l'eye tracking e head

tracking .

Figura 5.16: indicazione posizione occhio

Figura 5.17 indicazione posizione modello della te-

sta

5.3.4 Determinazione del punto fissato

Il supervisore posiziona inizialmente i modelli in zone predeterminate:

Χ il centro del modello dell'occhio è posizonato nella zona centrale destra dell'im-

magine.

Χ Il centro del modello della testa è posizionato al centro dell'immagine.

Per la maggior parte dei casi tali disposizione consento un corretto avvio dell'algoritmo di

riconoscimento forme. La possibilità di indicare la posizione iniziale ha la funzione di con-

trollo della correttezza della collocazione predefinita.

5.3.4.ADeterminazione del punto fissato (eye tracking)

La tecnica utilizzata dall'eye tracker per la determinazione del punto fissato è stata presen-

tata nel capitolo 4 col nome di classificazione senza addestramento.

95

Page 97: Progetto e ottimizzazione di algoritmi di riconoscimento ...elite.polito.it/files/thesis/fulltext/castellina.pdf · APPENDICE A Anatomia e movimenti dell'occhio 125 Anatomia dell'occhio

CAPITOLO 5 Progettazione del sistema

In figura 5.18 è riportato lo schema dei messaggi scambiati tra classificatore e sistema.

Figura 5.18: scambio messaggi eye tracking

Dalle analisi condotte, i cui risultati sono stati riportati precedentemente, è emerso che la

tecnica utilizzata per determinare la zona dello schermo fissata è fortemente influenzata

dalla differenza tra la posizione assunta dall'utente durante la costruzione del modello e la

posizione durante l'utilizzo del sistema. Per cercare di minimizzare tale differenza il SU-

PERVISORE mostra una finestra (figura 5.19) in cui è possibile confrontare la posizione

corrente con quella tenuta durante la costruzione del modello.

Figura 5.19: finestra di confronto immagine (eye tracking)

Le impostazioni che il supervisore comunica al classificatore sono le seguenti:

96

Page 98: Progetto e ottimizzazione di algoritmi di riconoscimento ...elite.polito.it/files/thesis/fulltext/castellina.pdf · APPENDICE A Anatomia e movimenti dell'occhio 125 Anatomia dell'occhio

CAPITOLO 5 Progettazione del sistema

Χ dimensione griglia in cui è diviso lo schermo

Χ grandezza del buffer F

Χ numero di riconoscimenti necessari per effettuare una selezione di una zona.

Il classificatore dopo un transitorio iniziale per ogni forma che riceve determina una zona

fissata indicata dal numero di riga e di colonna della griglia in cui è suddiviso lo schermo.

Il classificatore comunica al supervisore anche il valore della percentuale di selezione, cal-

colato come il numero di riconoscimenti consecutivi della stessa zona in rapporto al nume-

ro di riconoscimento necessari indicato nelle impostazioni.

Il valore della percentuale di selezione e la posizione fissata sono inviate dal supervisore al

modulo di gestione delle applicazioni che a sua volte li inoltra alle applicazioni in esecu-

zione.

5.3.4.BDeterminazione del punto fissato (head tracking)

La tecnica di head tracking implementata ha due modalità di funzionamento:

Χ Determinazione del punto fissato: dalla posizione della testa viene rilevata la

zona dello schermo osservata.

Χ Controllo del mouse: lo spostamento della testa permette di muovere il cursore

del mouse.

In figura 5.20 è riportato lo schema delle modalità di funzionamento dell'head tracker.

Figura 5.20: funzionamento head tracking

L'algoritmo di head tracking opera nel seguente modo:

97

Page 99: Progetto e ottimizzazione di algoritmi di riconoscimento ...elite.polito.it/files/thesis/fulltext/castellina.pdf · APPENDICE A Anatomia e movimenti dell'occhio 125 Anatomia dell'occhio

CAPITOLO 5 Progettazione del sistema

Χ viene considerato , per ogni forma trovata, il punto risultante della media delle

posizioni dei picchetti numero 29,33,35,36 come mostrato in figura 5.21.

Χ Si effettua una fase di calibrazione, in cui viene chiesto all'utente di ruotare la te-

sta nelle quattro direzione in modo da fissare i margini destro, sinistro,superiore

e inferiore.

Χ Durante la fase di calibrazione si utilizzano le informazioni ricavate dalla posi-

zione del punto medio per determinare il dominio di variabilità della posizione

(figura 5.22).

Dopo la calibrazione è possibile selezionare la modalità di funzionamento dell'head trac-

ker.

Figura 5.21: picchetti utilizzati per il calcolo del

punto medio

Figura 5.22: dominio di variabilità della posizione

del punto medio

Il dominio di variabilità viene utilizzato per stabilire una relazione tra posizione del punto

medio e punto dello schermo fissato, come illustrato in figura 5.23.

Il classificatore, come nel caso dell'eye tracking, utilizza un buffer di dimensione F per la

memorizzazione delle indicazioni delle zone fissate. Ogni F forme riconosciute viene in-

viato al SUPERVISORE la segnalazione della zona maggiormente indicata all'interno del buf-

fer.

98

Page 100: Progetto e ottimizzazione di algoritmi di riconoscimento ...elite.polito.it/files/thesis/fulltext/castellina.pdf · APPENDICE A Anatomia e movimenti dell'occhio 125 Anatomia dell'occhio

CAPITOLO 5 Progettazione del sistema

Figura 5.23: relazione tra posizione punto medio e zona osservata

Per controllare il movimento del mouse il dominio di variabilità viene diviso in zone ret-

tangolari concentriche. La direzione dello spostamento è determinata dalla posizione del

punto medio corrente rispetto al centro del dominio. La velocità di spostamento è determi-

nata dalla zona in cui si trova il punto medio: più la zona è distante dal centro del dominio

maggiore è la velocità. In figura 5.24 è rappresenta la divisione del dominio per il controllo

della velocità e della direzioni di spostamento del cursore del mouse. Se il punto medio

della forma trovata si trova all'interno della zona indicata con lo 0 il puntatore del mouse

rimane fermo.

Se il mouse non viene mosso per un determinato periodo si esegue un click.

Il messaggio di click viene inviato direttamente al sistema operativo senza prima essere

processato dal supervisore, questo permette di utilizzare le comuni applicazioni già presen-

ti sul sistema.

Figura 5.24: controllo movimento del mouse

99

Page 101: Progetto e ottimizzazione di algoritmi di riconoscimento ...elite.polito.it/files/thesis/fulltext/castellina.pdf · APPENDICE A Anatomia e movimenti dell'occhio 125 Anatomia dell'occhio

CAPITOLO 5 Progettazione del sistema

Quando l'utente mantiene la testa ferma, affianco al cursore del mouse viene visualizzata

una barra di progresso per permettere di osservare il periodo mancante per effettuare un

click.

Posizionando il cursore sul margine sinistro dello schermo si apre una finestra che permette

all'utente di modificare le impostazioni del controllo del mouse, come la tipologia di click

(singolo, doppio, tasto destro) e l'attesa necessaria per effettuare un click.

5.3.5 Applicazioni

All'interno del sistema di gaze tracking è stato inserito un modulo per la gestione delle

applicazioni esterne che lo utilizzano. Il “gestore delle applicazione” funziona da interme-

diario per lo scambio di messaggi tra il supervisore e le applicazioni.

L'interfaccia di comunicazione tra applicazioni e sistema è costituita dallo scambio di 4

messaggi (figura 5.25):

Χ Messaggio di Registrazione: un'applicazione per poter servirsi del sistema di

eye tracking deve inviare una richiesta richiesta di registrazione al modulo di ge-

stione .

Χ Messaggio di Impostazione: questo messaggio viene inviato alle applicazioni

quando effettuano la registrazione o quando c'è una modifica dei parametri di

funzionamento da parte dell'utente. Nel messaggio di impostazione sono conte-

nute le informazioni relative alle dimensioni della griglia in cui è suddiviso lo

schermo.

Χ Messaggio di Posizione: viene indicata all'applicazione la zona dello schermo

fissata e la sua percentuale di fissazione. Tale percentuale indica il periodo di

tempo mancante per effettuare la selezione della zona fissata. E' compito dell'ap-

plicazione visualizzare tale informazione tramite una barra di progresso o altri

espedienti grafici.

Quando il valore della percentuale di fissazione è uguale al 100 %, l'applicazione

deve gestire la selezione della zona fissata.

Χ Messaggio di Terminazione: è un messaggio di tipo bidirezionale, mandato dal-

l'applicazione al sistema quando è terminata oppure dal sistema all'applicazione

quando si è verificate una condizione di errore irrecuperabile.

100

Page 102: Progetto e ottimizzazione di algoritmi di riconoscimento ...elite.polito.it/files/thesis/fulltext/castellina.pdf · APPENDICE A Anatomia e movimenti dell'occhio 125 Anatomia dell'occhio

CAPITOLO 5 Progettazione del sistema

Figura 5.25 scambio di messaggi tra sistema e applicazioni

Sono state sviluppate tre applicazioni che utilizzano il sistema di gaze tracking, due di esse

utilizzano l'eye tracking, mentre la rimanente utilizza l'head tracking.

5.3.5.AApplicazione - Impostazione

E' stata sviluppata all'interno del sistema un'applicazione per il controllo dei parametri di

funzionamento attraverso l'utilizzo dell'eye tracking.

Questa applicazione non rispetta pienamente il protocollo di scambio messaggi illustrato

precedentemente, poiché è necessario per l'applicazione comunicare al sistema le imposta-

zioni selezionate dall'utente.

Il programma è studiato in modo da adattarsi a dimensioni variabili della griglia in cui sono

distinte le zone dello schermo. Il layout è stato ottimizzato per l'utilizzo di una griglia 2x3.

La finestra dell'applicazione risulta divisa in zone rettangolari, contraddistinte da una linea

di testo che descrive l'azione che si effettuerà selezionando quella determinata zona.

Quando un utente fissa una zona in cui è divisa l'applicazione, una barra di progresso indi-

ca l'avanzamento della selezione; quando raggiunge il 100% la zona assume una colorazio-

ne diversa. Per confermare o annullare la scelta l'utente deve fissare rispettivamente le zone

caratterizzate dal comando OK o CANCEL.

In figura 5.26 è presentato il layout dell'applicazione.

101

Page 103: Progetto e ottimizzazione di algoritmi di riconoscimento ...elite.polito.it/files/thesis/fulltext/castellina.pdf · APPENDICE A Anatomia e movimenti dell'occhio 125 Anatomia dell'occhio

CAPITOLO 5 Progettazione del sistema

Figura 5.26: layout applicazione - impostazione

L'applicazione permette di impostare la dimensione del buffer F del classificatore e il nu-

mero di immagini necessarie per effettuare la selezione.

5.3.5.BApplicazione – Rettangoli

E' una semplice applicazione di test, per verificare il funzionamento del sistema di eye trac-

king. Il programma evidenzia la zona fissata con un rettangolo che aumenta di dimensioni

in proporzione alla durata dell'osservazione. Una versione più evoluta di questa applicazio-

ne è stata utilizzata per effettuare i test sul tasso di errore riportati nel capitolo 4.

5.3.5.CApplicazione – Editor di testi

Questa applicazione integrata nel sistema è un semplice esempio di tastiera virtuale su

schermo. Essa è utilizzabile tramite head tracking ed ha la particolarità di avere un layout

riconfigurabile in relazione alla precisione del sistema. In figura 5.27 è rappresentato l'edi-

tor con 24 tasti su schermo.

102

Page 104: Progetto e ottimizzazione di algoritmi di riconoscimento ...elite.polito.it/files/thesis/fulltext/castellina.pdf · APPENDICE A Anatomia e movimenti dell'occhio 125 Anatomia dell'occhio

CAPITOLO 5 Progettazione del sistema

Figura 5.27: Applicazione Editor di testo

5.4 Database

5.4.1 Scelta del Database

Costruire un modello efficace per diversi individui porterebbe ad una complessità di ricerca

della forma troppo elevata, per cui si è deciso di costruire modelli specifici per ogni utente.

L’elevata quantità di dati da memorizzare per la costruzione di diversi modelli ha portato

alla decisione di utilizzare un database relazionale per la loro gestione e archiviazione.

Per effettuare una scelta sono stati esaminati alcuni Database Management System

(DBMS) non commerciali.

• PostgreSQL: è un DBMS open source sviluppato dal dipartimento di informatica

di Berkeley dell’università della California. Ha un’architettura client server e sup-

porta gli standard SQL92 e SQL99.

Comprende diverse caratteristiche tipiche dei più blasonati programmi commercia-

li:

Χ Query annidate

Χ Chiavi esterne

Χ Trigger

Χ Integrità della transazione

Χ Controllo dell’accesso concorrente

Χ Presenta interfacce native per ODBC, JDBC, C, C++, PHP, Perl, TCL,

103

Page 105: Progetto e ottimizzazione di algoritmi di riconoscimento ...elite.polito.it/files/thesis/fulltext/castellina.pdf · APPENDICE A Anatomia e movimenti dell'occhio 125 Anatomia dell'occhio

CAPITOLO 5 Progettazione del sistema

ECPG, Python, e Ruby.

• MySQL : è il DMBS open source più diffuso al mondo. Ha anch’esso un’architettu-

ra client server. Presenta interfacce per Java, ODBC e .NET.

Ha come punto di forza l’affidabilità e le elevate prestazioni.

• SQLite : è una piccola libreria scritta in C che implementa un DBMS con le se-

guenti caratteristiche:

Χ Implementa in gran parte lo standard SQL92

Χ Non ha bisogno di alcuna configurazione del sistema per essere utilizzato.

Χ Un database è completamente memorizzato in un unico file su disco.

Χ Supporta database di dimensioni fino a 2 terabyte (241 byte).

Χ E’ mediamente più veloce dei sopraccitati DBMS per le operazioni più comuni.

Χ E’ completamente open source e libero da royalties.

Si è scelto di utilizzare SQLite per la facilità di configurazione e per le modeste dimensioni

delle librerie da integrare nel progetto.

Sebbene MySQL e PostgreSQL abbiano un’affidabilità e robustezza maggiore richiedono

una complessa configurazione e sono di maggiori dimensioni.

L’architettura client server, inoltre non è necessaria al nostro sistema per risulterebbe inuti-

le utilizzare i DMBS che la implementano.

In appendice D? è riportata la descrizione delle tecniche di integrazione delle librerie SQ-

Lite all’interno del codice del sistema.

5.4.2 Struttura del database

Per descrivere la struttura di un database relazionare è necessario illustrare nel dettaglio le

tabelle che lo compongono e le relazioni che intercorrono tra esse.

In figura 5.28 è riportato lo schema delle relazioni tra le tabelle del database utilizzato.

Nelle tabelle dalla n alla k sono illustrati tutti gli attributi delle tabelle del database.

104

Page 106: Progetto e ottimizzazione di algoritmi di riconoscimento ...elite.polito.it/files/thesis/fulltext/castellina.pdf · APPENDICE A Anatomia e movimenti dell'occhio 125 Anatomia dell'occhio

CAPITOLO 5 Progettazione del sistema

Figura 5.28: schema delle relazioni tra le tabelle del database

Tab. 5.2 : Tabella Archive

Questa tabella è utilizzata per memorizzare informazioni utili all’avvio del sistema

Campi Descrizioni

LASTUSER

Indica l’ID2 dell’ultimo utente che ha utilizzato il sistema.

VERSION

E’ il numero di versione del database, è utilizzato dall’applicazione di

training per controllare che non vi siano inconsistenze tra la versione

implementata e la struttura del database. In caso di diversità tra le ver-

sioni la struttura del database può essere aggiornata.

2 Abbreviazione di “identifier”. Indica un valore univoco che identifica la tupla all’interno della tabella.

105

Page 107: Progetto e ottimizzazione di algoritmi di riconoscimento ...elite.polito.it/files/thesis/fulltext/castellina.pdf · APPENDICE A Anatomia e movimenti dell'occhio 125 Anatomia dell'occhio

CAPITOLO 5 Progettazione del sistema

Tab. 5.3 : Tabella TrainingSet

E’ la tabella principale del database, in essa sono contenute tutte le informazioni relative

ai singoli Training Set.

Campi Descrizioni

IDTSE’ l’identificatore unico di ogni training set. E’ referenziato come

chiave esterna da diverse tabelle.

NAME Indica il nome del Training Set

DESCRIPTION

E’ una breve descrizione del training set: permette di annotare il luogo

in cui è stato realizzato, particolari condizione di luce o posizione e

ulteriori note.

COMPLETE

E’ un valore booleano che indica se è già stato creato un modello per

il training set. Nel programma di gaze-tracking, sarà possibile la scel-

ta solo dei training che hanno questo valore posto a TRUE.

NSHAPE E’ il numero di forme che compongono il training set.

IDSPOTSINFOE’ un riferimento alla tabella SPOTSINFO che indica la tipologia di

modello che si sta costruendo (eye o head).

dataCreation E’ la data di creazione del training set

dataModified E’ la data dell’ultima modifica al training set

rowGrid , col-

Grid

Indicano il numero di righe e di colonne in cui viene suddiviso lo

schermo per creare un modello di occhio. (Questa informazione non è

rilevante per il modello della testa)

NCollection

Indica il numero di collezioni di immagini associate al training set,E’

un’informazione ridondante in quanto si potrebbe ricavare con una

query apposita, è qui riportata per ottimizzare le prestazioni.

106

Page 108: Progetto e ottimizzazione di algoritmi di riconoscimento ...elite.polito.it/files/thesis/fulltext/castellina.pdf · APPENDICE A Anatomia e movimenti dell'occhio 125 Anatomia dell'occhio

CAPITOLO 5 Progettazione del sistema

Tab. 5.3 : Tabella TrainingSet

STATISTIC,

dimstatistic

E’ un campo di tipo BLOB3 in cui è memorizzato il modello della for-

ma creato. Contiene un valore nullo se il modello non è ancora stato

prodotto. Per poter accedere alle informazioni contenute in questo

campo è necessario conoscerne la dimensione (dimstatistic)

binWHERE

Se è presenta un modello di occhio, questo campo contiene una strut-

tura WHERE_EYE, descritta nei paragrafi successivi, che relaziona le

singole immagini del training set con i punti fissati dello schermo.

binIma,dimIma

E’ un campo di tipo BLOB contenente un’immagine rappresentativa

del modello. Questa immagine è utilizzata dal programma di gaze-

tracking per selezionare i diversi modelli.

Tab. 5.4 : Tabella SpotsInfo

In questa tabella sono memorizzati le tipologie di modelli possibili. Attualmente sono

inseriti solo la forma della testa e dell’occhio, ma è aperta la possibilità all’inserimento

di ulteriori forme.

Campi Descrizioni

IDSPOTSINFO

Indica l’ID del tipo di modello.

Description Descrizione del tipo di modello.

Image, binImaE’ l’immagine utilizzata per rappresentare il modello all’interno dei

menù dell’applicazione

NumerSpots Indica il numero di punti che costituiscono la forma

Tab. 5.5 : Tabella Spots

3 Acronimo di Binary Large Object, indica un campo all’interno di un database in cui è possibile memoriz-

zare dei dati di tipo binario come immagini , strutture o classi serializzate.

107

Page 109: Progetto e ottimizzazione di algoritmi di riconoscimento ...elite.polito.it/files/thesis/fulltext/castellina.pdf · APPENDICE A Anatomia e movimenti dell'occhio 125 Anatomia dell'occhio

CAPITOLO 5 Progettazione del sistema

In questa tabella sono memorizzati informazioni relative ai picchetti che costituiscono

una forma.

Campi Descrizioni

IDSPOTS

Indica l’ID del picchetto

IDSPOTSINFO E’ il riferimento all’identificatore della forma a cui appartiene

IndexOrder Indica la posizione del picchetto nell’ordine di inserimento

IndexShapeRappresenta l’indice con cui viene memorizzato all’interno della for-

ma. Maggiori dettagli saranno illustrati nei paragrafi seguenti

Text E’ la descrizione della posizione del picchetto.

Tab. 5.6 : Shapets

In questa tabella sono le diverse forme che appartengono ai training set.

Campi Descrizioni

IDSHAPE Indica l’ID della forma

IDTSE’ il riferimento all’identificatore del training set a cui appartiene la

forma

binShape, sizeE’ un campo BLOB che contiene in formato binario la disposizione

dei picchetti

IDIMATS

E’ il riferimento all’identificatore dell’immagine su cui è stata pic-

chettata la forma. Questo indice viene utilizzato in fase di costruzione

del modello per risalire alle matrici di colori nell’intorno dei picchetti.

108

Page 110: Progetto e ottimizzazione di algoritmi di riconoscimento ...elite.polito.it/files/thesis/fulltext/castellina.pdf · APPENDICE A Anatomia e movimenti dell'occhio 125 Anatomia dell'occhio

CAPITOLO 5 Progettazione del sistema

Tab. 5.7 : Tabella Matrix

In questa tabella sono memorizzate le matrici associative relative ai training set.

Campi Descrizioni

IDMATRIX

Indica l’ID della matrice.

IDTSE’ il riferimento all’identificatore del training set a cui appartiene la

forma

GrayLIndica la larghezza della zona rettangolare nell’intorno di ogni pic-

chetto da cui sono memorizzate le matrici di colori.

GreyE,GreyI

Indicano la lunghezza della zona rettangolare nell’intorno di ogni pic-

chetto da cui sono memorizzate le matrici di colori. GrayE indica la

lunghezza in pixel della zona inferiore del picchetto mentre GrayI del-

la zona superiore. Questa distinzione dà la possibilità di considerare

un intorno asimmetrico del picchetto.

BinMatrix E’ memorizzata in formato binario la matrice associativa.

TSsize

Indica il numero di immagini che costituiscono il trainin gset. Questa

informazione è ridondante, è mantenuta in questa tabella per motivi di

efficienza.

Tab. 5.8: Tabella ImagesTs

In questa tabella sono memorizzati le immagini contenute nei training set.

Campi Descrizioni

IDIMATS Indica l’ID dell’immagine

109

Page 111: Progetto e ottimizzazione di algoritmi di riconoscimento ...elite.polito.it/files/thesis/fulltext/castellina.pdf · APPENDICE A Anatomia e movimenti dell'occhio 125 Anatomia dell'occhio

CAPITOLO 5 Progettazione del sistema

IDTSE’ il riferimento all’identificatore del training set a cui appartiene

l’immagine.

binIMA, size Contiene l’immagine in formato binario.

binWHERE_EYE Campo che contiene una struttura WHERE_EYE.

Tab. 5.9: Tabella Collection

In questa tabella sono memorizzate delle liste di immagini catturate da webcam ancora

da picchettare.

Campi Descrizioni

IDCOLL

Indica l’ID della collezione di immagini

IDTSE’ il riferimento all’identificatore del training set a cui appartiene la

collezione.

Name Rappresenta il nome o la descrizione della collezione di immagini.

NumImaTot Indica il numero totale di immagini della collezione.

NumImaDo E’ l’indice della prima immagine non picchettata.

Tab. 5.10: Tabella ImaColl

In questa tabella sono memorizzati le immagini appartenenti alle collezioni presenti in

tabella X+7

Campi Descrizioni

ID_IMACOL

Indica l’ID dell’immagine

110

Page 112: Progetto e ottimizzazione di algoritmi di riconoscimento ...elite.polito.it/files/thesis/fulltext/castellina.pdf · APPENDICE A Anatomia e movimenti dell'occhio 125 Anatomia dell'occhio

CAPITOLO 5 Progettazione del sistema

IDCOLLE’ il riferimento all’identificatore della collezione di immagini a cui

appartiene.

binIMA, size Contiene l’immagine in formato binario.

spotted E’ un valore booleano che indica se l’immagine è già stata picchettata.

binWHERE_EY

ECampo che contiene una struttura WHERE_EYE.

Tab. 5.11: Tabella PathList

In questa tabella sono memorizzate strutture particolari denominati PATH.

I PATH contengono la descrizione della disposizione dei punti da osservare sullo scher-

mo, durante la fase di cattura delle immagini che costituiranno il training set.

Campi Descrizioni

IDPATH

Indica l’ID del PATH.

numRow Indica il numero di righe in cui è suddiviso lo schermo.

numCol Indica il numero di colonne in cui è suddiviso lo schermo.

subMatIndica che precisione adottare per identificare un punto all’interno di

una zona dello schermo.

pointlistE’ la presentazione in formato binario dell’elenco di punto che costi-

tuiscono il PATH

111

Page 113: Progetto e ottimizzazione di algoritmi di riconoscimento ...elite.polito.it/files/thesis/fulltext/castellina.pdf · APPENDICE A Anatomia e movimenti dell'occhio 125 Anatomia dell'occhio

CAPITOLO 6

Verifiche sperimentali

6.1 Introduzione

Al termine dell'implementazione del sistema di gaze tracking sono state condotte delle ve-

rifiche sperimentali con un duplice finalità:

Χ Stabilire i parametri ottimali di funzionamento.

Χ Misurare le prestazioni e l'accuratezza del sistema.

Per effettuare tali verifiche si sono appositamente sviluppate delle applicazioni come per i

test descritti nel capitolo 4.

I risultati dei test sono fortemente dipendenti dalla macchina su cui sono eseguiti, per cui è

opportuno descrivere le caratteristiche tecniche dell'hardware utilizzato.

In tabella 6.1 sono riportate le specifiche del computer utilizzato e tabella 6.2 le specifiche

delle webcam testate.

112

Page 114: Progetto e ottimizzazione di algoritmi di riconoscimento ...elite.polito.it/files/thesis/fulltext/castellina.pdf · APPENDICE A Anatomia e movimenti dell'occhio 125 Anatomia dell'occhio

CAPITOLO 6 Verifiche sperimentali

Tab. 6.1: Specifiche computer

CPU AMD Athlon XP 2600+ (2000 Mhz)

RAM 512 MB

S.O. Windows XP Home

Tab. 6.2: Specifiche webcam

Modello Creative Webcam Live! Creative Webcam Live! Pro

Risoluzione massima 640x480 (interpolata)320x240 (reale)

640x480 (reale)

Frame Rate 20 frame/s 25 frame/s

Costo Circa 30… Circa 70 …

6.2 Parametri ottimali di funzionamento

I parametri del sistema di gaze tracking che possono essere modificati sono:

9 numero immagini del training set

9 posizione dei punti osservati durante la cattura

9 scelta del modello

9 scelta della matrice associativa

Le scelte del modello e della matrice associativa sono modificabili dall'utente durante il

funzionamento del sistema. E ' difficile condurre test sulla relazione tra scelta del modello

e prestazioni del sistema, in linea di massima valgono le considerazioni esposte nel capito-

lo 5.

Risulta interessante, invece, capire l'influsso sulle prestazioni e sull'accuratezza del sistema

del numero di immagini del training set e della posizione dei punti osservati durante la fase

di cattura delle immagini del training set.

6.2.1 Numero immagini del training set

Una osservazione soggettiva consente di affermare che maggiore è il numero di immagini

113

Page 115: Progetto e ottimizzazione di algoritmi di riconoscimento ...elite.polito.it/files/thesis/fulltext/castellina.pdf · APPENDICE A Anatomia e movimenti dell'occhio 125 Anatomia dell'occhio

CAPITOLO 6 Verifiche sperimentali

che costituiscono un training set, più dettagliato e preciso risulta il modello.

Paradossalmente l'eccessiva precisione del modello risulta essere un fattore critico per l'al-

goritmo di ricerca forma, infatti, come illustrato nel capitolo 4, essa avviene tramite un

confronto dell'immagine da analizzare con le forme memorizzate all'interno del training

set.

Nel grafico in figura 6.1 è illustrato il rapporto tra il numero di forme riconosciute e il nu-

mero di forme che compone il training set. Il test svolto è riferito al riconoscimento di 1000

forme ( 4 minuti circa di test).

Nel grafico in figura 6.2, invece, è riportato l'andamento della percentuale di riconoscimen-

to sui vari training set.

TS 1 TS 2 TS 3 TS 4 TS 5 TS 6

0

10

20

30

40

50

60

70

80

90

Forme TS

Forme Riconosciute

Num

ero

fo

rme

Figura 6.1: numero forme riconosciute su numero di forme del training set

TS 1

TS 2

TS 3

TS 4

TS 5

TS 6

0,00%

20,00%

40,00%

60,00%

80,00%

100,00%

Percentuale

Figura 6.2: percentuale forme riconosciute su forme del training set

Come si nota dai grafici sopra riportati, utilizzando un modello costruito con un training set

di 90 immagini, ben 50 immagini non vengono riconosciute.

114

Page 116: Progetto e ottimizzazione di algoritmi di riconoscimento ...elite.polito.it/files/thesis/fulltext/castellina.pdf · APPENDICE A Anatomia e movimenti dell'occhio 125 Anatomia dell'occhio

CAPITOLO 6 Verifiche sperimentali

Tali immagini, però, contribuiscono comunque alla complessità della ricerca delle forme e

concorrono, inoltre, ad aumentare i tempi della costruzione del modello .

In figura 6.3 è mostrato un grafico con una stima approssimativa della relazione fra numero

di immagini del training set e tempi di costruzione del modello.

89 60 30 12 6

0

10

20

30

40

50

60

70

Tempo

Numero immagini Training Set

Te

mp

i d

i co

str

uzio

ne

mo

de

llo (

min

.)

Figura 6.3: tempi di costruzione dei modelli in funzione del numero di immagini del training set

Dai dati appena riportati è evidente che risulta inutile utilizzare modelli costruiti su training

set formati da numerose immagini.

L'algoritmo di ricerca forma produce buoni risultati anche con modelli poco accurati come

quelli costruiti su training set composti di solo 4 o 6 immagini.

6.1.2 Posizione dei punti osservati durante la cattura

Il programma di training permette di scegliere la posizione dei punti da osservare durante

la cattura delle immagini che costituiscono il training set. Risulta utile stabilire come tale

scelta possa incidere sulle prestazioni dell'algoritmo.

In figura 6.4 e figura 6.5 sono riportati due esempi di percorsi di cattura differenti.

115

Page 117: Progetto e ottimizzazione di algoritmi di riconoscimento ...elite.polito.it/files/thesis/fulltext/castellina.pdf · APPENDICE A Anatomia e movimenti dell'occhio 125 Anatomia dell'occhio

CAPITOLO 6 Verifiche sperimentali

Figura 6.4: percorso di cattura A Figura 6.5: percorso di cattura B

Il percorso di cattura di tipo A ha il vantaggio di determinare un modello con forme molto

differenziate, ciò facilita il compito del classificatore, infatti i modelli costruiti da training

set con immagini catturate con tale percorso hanno tassi di errore inferiori rispetto al per-

corso di tipo B. D'altro canto, il percorso di tipo B, consente all'utente una maggiore facili-

tà di utilizzo, poiché risulta più naturale, durante l'impiego delle applicazioni, fissare i pun-

ti centrali di ogni zona rispetto ai punti estremi. In figura 6.6 è rappresentato il grafico del

confronto tra le due tipologie di cattura. In tabella 6.3 sono riportate le condizioni in cui

sono state eseguite le misurazioni.

Tab. 6.3: Caratteristiche dei TEST

TEST Numero forme TS Tipo matrice Condizioni particolari

1 12 C -

2 12 A Utente diverso da quello su cui è stato fatto il modello

3 30 A Utente diverso da quello su cui è stato fatto il modello

4 12 A -

5 6 A -

6 6 A Luce differente: modello costruito con la normale luceambientale e testato con illuminazione artificiale

7 12 A Luce differente: modello costruito con la normale luceambientale e testato con illuminazione artificiale

8 18 A -

9 24 A -

10 30 A -

116

Page 118: Progetto e ottimizzazione di algoritmi di riconoscimento ...elite.polito.it/files/thesis/fulltext/castellina.pdf · APPENDICE A Anatomia e movimenti dell'occhio 125 Anatomia dell'occhio

CAPITOLO 6 Verifiche sperimentali

6.3 Prestazioni del sistema

Sono stati effettuati diversi test sperimentali per verificare l'utilizzo delle risorse del com-

puter da parte del sistema di gaze.

Si è osservato l'utilizzo delle seguenti risorse:

Χ memoria occupata sul disco fisso;

Χ utilizzo della memoria RAM;

Χ utilizzo del processore;

6.3.1 Memoria occupata sul disco fisso

Il sistema di gaze tracking utilizza, per il suo funzionamento, un database che può contene-

re un numero elevato di modelli. Si è ritenuto necessario verificare la relazione che inter-

corre tra il numero immagini del training set su cui è basato il modello e la dimensione fisi-

ca del modello stesso.

Nel grafico in figura 6.9 è rappresentata tale relazione.

6 12 20 40 60 90

0

2000

4000

6000

8000

10000

12000

14000

Dimensione (KB)

Numero forme del training set

Dim

ensio

ne (

KB

)

Figura 6.9: relazione tra dimensione occupata su disco e numero immagini del training set.

117

Page 119: Progetto e ottimizzazione di algoritmi di riconoscimento ...elite.polito.it/files/thesis/fulltext/castellina.pdf · APPENDICE A Anatomia e movimenti dell'occhio 125 Anatomia dell'occhio

CAPITOLO 6 Verifiche sperimentali

6.3.2 Utilizzo della memoria RAM

I risultati proposti in questo paragrafo sono stati ottenuti dalla media di 10 misurazioni ef-

fettuate in momenti diversi.

In tabella 6.4 sono riportati i dati relativi alle misurazioni sul programmi di training, mentre

in tabella 6.5 quelli relativi al programma di gaze tracking.

Tab. 6.5: Utilizzo della Ram programma di training

Condizione Utilizzo (KB)

Avvio del programma 4300

Caricamento collezione di immagini 14500

Creazione modello e matrici associative 21200

Compattazione database4 Memoria occupata dadatabase su disco

Tab. 6.6: Utilizzo della Ram programma di training

Condizione Utilizzo (KB)

Avvio del programma 5100

Caricamento modello e matrici 14300

Utilizzo del sistema 14300

6.3.3 Utilizzo del processore

La percentuale di utilizzo del processore è un dato importante da rilevare per capire l'effi-

cienza del programma. Nelle tabelle 6.7 e 6.8 sono riportati i valori dei tempi e delle per-

centuali di utilizzo del processore riferite rispettivamente ai programmi di training e di

gaze tracking.

Tab. 6.7: Utilizzo CPU programma di training

Condizione Durata (ms) Utilizzo %

Avvio del programma 170 30

Caricamento collezione di immagini 400 60

Creazione modello e matriciassociative

5300 80

Compattazione database (Alcuni minuti) 95

Cattura nuova collezione 15400 21

Importazione/ Esportazione modello 3500 80

4 Questa procedura è illustrata in appendice D

118

Page 120: Progetto e ottimizzazione di algoritmi di riconoscimento ...elite.polito.it/files/thesis/fulltext/castellina.pdf · APPENDICE A Anatomia e movimenti dell'occhio 125 Anatomia dell'occhio

CAPITOLO 6 Verifiche sperimentali

Tab. 6.7: Utilizzo CPU programma di training

Operazioni comuni, come :- inserimento nuova forma- picchettatura immagine

(variabile) < 6

Tab. 6.8: Utilizzo CPU programma di gaze tracking

Condizione Durata (ms) Utilizzo %

Avvio del programma e caricamentomodello e matrici associative

430 90

Cattura immagini 20 31

Calibrazione head tracking 4500 75

Ricerca Forma matrice di tipo A 370 100

Ricerca Forma matrice di tipo B 290 100

Ricerca Forma matrice di tipo C 170 96

Determinazione punto fissato 60 12

119

Page 121: Progetto e ottimizzazione di algoritmi di riconoscimento ...elite.polito.it/files/thesis/fulltext/castellina.pdf · APPENDICE A Anatomia e movimenti dell'occhio 125 Anatomia dell'occhio

CAPITOLO 7

Conclusione e sviluppi futuri

Il sistema di gaze tracking progettato ha le potenzialità per diventare una buona piattaforma

di sviluppo per applicazioni dedicate all’interazione tra disabili e computer, per il momen-

to, l’algoritmo di head tracking permette di ottenere risultati paragonabili ai più costosi si-

stemi commerciali, mentre ulteriori studi e approfondimenti devono essere svolti per il mi-

glioramento della tecnica di eye tracking.

Per utilizzare efficacemente il sistema deve essere costruito per ogni utente un modello

specifico. La realizzazione del modello coinvolge l'utente per un periodo limitato di tempo

( massimo 30 secondi) per la cattura delle immagini necessarie, mentre un operatore deve

procedere ad segnalare i punti caratteristici della forma su ogni immagine. L'operatore tipi-

camente impiega un tempo variabile dai 5 ai 30 minuti per costruire il modello. La fase

appena descritta è svolta utilizzando il programma di training, essa è effettuata un'unica

volta per ogni utente.

Per avviare il sistema di gaze tracking è necessaria la presenza di un operatore che scelga

il modello opportuno e stabilisca la posizione corretta dell'utente, questa fase può durare da

120

Page 122: Progetto e ottimizzazione di algoritmi di riconoscimento ...elite.polito.it/files/thesis/fulltext/castellina.pdf · APPENDICE A Anatomia e movimenti dell'occhio 125 Anatomia dell'occhio

CAPITOLO 7 Conclusione e sviluppi futuri

1 a 5 minuti in relazione al fatto che un utente abbia o meno un proprio modello specifico:

se l'utente non ha un proprio modello la scelta di quale utilizzare non è banale.

Dopo la scelta del modello nel caso dell'head tracking è necessaria una fase di calibrazione

del sistema, assistita dall'operatore , della durata tra i 5 e i 30 secondi.

Dopo l'eventuale fase di calibrazione l'utente è in grado di utilizzare il sistema di gaze trac-

king in autonomia.

La scelta del modello, il posizionamento dell'utente e la calibrazione (per l'head tracking)

sono procedure che vanno ripetute per ogni sessione di utilizzo del sistema.

In figura 7.1 sono illustrate le tempistiche delle fasi appena descritte.

Figura 7.1 Tempi per l'utilizzo del sistema di gaze tracking

Con l’utilizzo dell’head tracking è possibile per l’utente controllare con i movimenti della

testa il cursore del mouse, dopo un breve periodo di apprendimento si riesce ad ottenere

un’elevata precisione, tanto da permettere l’utilizzo delle normali applicazioni del sistema

operativo. Il click del mouse è effettuato mantenendo la stessa posizione della testa per un

determinato numero di secondi; mentre si è fermi, affianco al cursore del mouse, viene vi-

sualizzata una barra di progressione che indica quanto manca al click. Spostando il cursore

all’estremo sinistro dello schermo sarà visualizzata una finestra che dà la possibilità all’u-

tente di modificare le impostazioni di funzionamento, come il tipo di click da effettuare

(singolo, doppio, con il tasto destro) e la durata dell’attesa necessaria per il click. Il sistema

è in grado di stabilire se c’è una perdita di tracciamento della posizione e dopo circa 5 se-

condi, riposiziona il modello all’interno della zona definita durante la fase di calibrazione

permettendo di riprendere l’utilizzo del sistema.

Con l’utilizzo dell’eye tracking,invece, si riesce a dividere lo schermo da un minimo di 4

121

Page 123: Progetto e ottimizzazione di algoritmi di riconoscimento ...elite.polito.it/files/thesis/fulltext/castellina.pdf · APPENDICE A Anatomia e movimenti dell'occhio 125 Anatomia dell'occhio

CAPITOLO 7 Conclusione e sviluppi futuri

ad un massimo di 16 zone. I risultati migliori per accuratezza e prestazioni si sono ottenuto

considerando una suddivisione dello schermo in 6 zone (griglia 2 x 3).

L’algoritmo implementato è fortemente sensibile al movimento della testa e alla differenza

tra il posizionamento dell’utente durante l’utilizzo del sistema e la posizione assunta duran-

te la costruzione del modello. Dai test condotti è emerso, data l’elevata sensibilità ai movi-

menti della testa, che la tecnica di eye tracking sviluppata è difficilmente utilizzabile da

utenti normodotati, che tendono a seguire con i movimenti della testa il punto osservato.

7.1 Possibili sviluppi futuri

Il sistema di gaze tracking attuale è già in grado di supportare lo sviluppo di applicazioni

esterne che lo utilizzano, una prosecuzione possibile del lavoro svolto è l'implementazione

di applicazioni specifiche per l'ausilio all'interazione tra utente disabile e computer.

In quest'ambito sono possibili diverse applicazioni, di seguito ne sono riportati alcuni

esempi:

Χ applicazione di sintesi vocale: il testo editato tramite le fissazioni dell'utente è

sintetizzato come voce;

Χ utilizzo un linguaggio simbolico: la comunicazione della necessità dell'utente av-

viene selezionando con lo sguardo determinati simboli che rappresentano azioni,

bisogni e desideri dell'utente.

Χ Integrazione con una casa domotica: il sistema di gaze tracking può essere inte-

grato con gli applicativi che gestiscono una casa completamente automatizzata.

Questa applicazione consentirebbe all'utente di controllare luci, porte e finestra

solamente attraverso lo sguardo.

Un'ulteriore prosecuzione del progetto potrebbe riguardare il miglioramento del sistema

stesso.

Nel capitolo 2 sono state illustrate diverse possibilità di implementazione di un sistema di

gaze tracking, per motivi di tempo e di opportunità non sono state sviluppate e verificate

tutte. La modularità con cui è stato progettato il sistema consente di migliorare e aggiornare

un singolo componente senza dover modificare la struttura del sistema stesso. Ciò permette

di verificare l'accuratezza e le prestazioni di algoritmi di gaze tracking diversi da quelli

implementati attualmente.

Di seguito sono elencate alcune possibili modifiche che potranno essere attuate per il mi-

122

Page 124: Progetto e ottimizzazione di algoritmi di riconoscimento ...elite.polito.it/files/thesis/fulltext/castellina.pdf · APPENDICE A Anatomia e movimenti dell'occhio 125 Anatomia dell'occhio

CAPITOLO 7 Conclusione e sviluppi futuri

glioramento del sistema, esse sono rappresentate dalle idee emerse durante la progettazione

e che per motivi di tempo non sono state implementate.

7.1.1 Modifiche al programma di training

Il programma di training attualmente consente di creare modelli di forme costituiti da esat-

tamente 37 punti, un'interessante estensione dell'applicazione sarebbe implementare la pos-

sibilità di modellare forme costituiti da un punto arbitrario di punti.

Un'applicazione così strutturate permetterebbe di sviluppare sistemi di riconoscimento og-

getti che esulano dal gaze tracking: ad esempio si potrebbe progettare un sistema per il ri-

conoscimento del linguaggio dei segni dei sordi, oppure per il riconoscimento di determi-

nate presenza di eventuali patologie dall'analisi di una lastra.

7.1.2 Database centralizzato

Per dare la possibilità anche agli utenti su cui non è costruito un modello di utilizzare effi-

cacemente il sistema sarebbe opportuno avere a disposizione diversi modelli tra cui sce-

gliere quello che meglio si adatta alle caratteristiche dell'utente.

Per ampliare la possibilità di scelta risulterebbe d'aiuto progettare un database remoto che

dia la possibilità di condividere il maggior numero di modelli possibili tra tutti gli utenti

che utilizzano il sistema.

7.1.3 Utilizzo di due webcam

Per quanto riguarda il gaze tracking risulterebbe interessante implementare la possibilità di

utilizzo congiunto di due webcam per poter effettuare head tracking ed eye tracking con-

temporaneamente. Questa configurazione permette, in linea teorica, di limitare la forte

sensibilità dell'eye tracking dalla posizione e dal movimento della testa dell'utente.

123

Page 125: Progetto e ottimizzazione di algoritmi di riconoscimento ...elite.polito.it/files/thesis/fulltext/castellina.pdf · APPENDICE A Anatomia e movimenti dell'occhio 125 Anatomia dell'occhio

BIBLIOGRAFIA

[1] Active Shape Models – Their training and application ; T.F. Cootes , C. J. Taylor , D.

H. Cooper, J, Graham

[2] REAL TIME EYE TRACKING FOR HUMAN COMPUTER INTERFACES ;Subrama-

nya Amarnag, Raghunandan S. Kumaran and John N. Gowdy.

[3] www.cogain.org

[4] Data mining with decision trees and decision rules. C. Apte and S. Weiss. Future

Generation Computer Systems, 13, 1997.

[5] Classification and Regression Trees. L. Breiman, J. Friedman, R. Olshen, C. Stone.

Wadsworth International Group, 1984.

124

Page 126: Progetto e ottimizzazione di algoritmi di riconoscimento ...elite.polito.it/files/thesis/fulltext/castellina.pdf · APPENDICE A Anatomia e movimenti dell'occhio 125 Anatomia dell'occhio

APPENDICE A Anatomia e movimenti dell'occhio

Anatomia dell'occhio umano

L'organo della vista è costituito dal bulbo oculare di forma sferica del diametro che va dai

24 ai 24 mm. Anteriormente è ricoperto dalla congiuntiva, una membrana trasparente, men-

tre nel suo complesso è avvolto da tre membrane:la sclerotica, la più esterna, che davanti a

iride e pupilla forma la cornea, la coroide e la retina, di cui si dipartono le fibre del nervo

ottico.

Figura A: morfologia dell'occhio

La cornea, l'umore acqueo contenuto nella camera anteriore (fra cornea e iride) e in quella

posteriore (fra iride e cristallino), il cristallino e il corpo vitreo che costituisce l'interno del

bulbo oculare sono i mezzi trasparenti (mezzi diottrici) che consentono il passaggio dei

raggi luminosi. Questi ultimi entrano attraverso la pupilla, subiscono una serie di rifrazioni

opera dei mezzi diottrici, che hanno densità diversa e cadono sulla retina; affinché su que-

sta l'immagine si formi esattamente, il cristallino può cambiare la sua curvatura.

L' immagine retinica ha una persistenza di 1 / 16 di secondo per consentire la visione del

movimento. Sulla retina l'immagine si forma rovesciata, ma si vede dritta perché viene

esteriorizzata a livello celebrale.

Movimenti oculari

I movimenti oculari possono essere distinti sommariamente in due categorie: coniugati e

disconiugati, sotto il controllo rispettivamente dei sistemi di versione e di vergenza.

Il sistema di versione è diviso in quattro sottosistemi: il sottosistema per i movimenti ocu-

lari rapidi genera le saccadi; quello per i movimenti oculari lenti lo smooth pursuit o inse-

guimento lento; il sottosistema vestibolo-oculare il riflesso vestibolo-oculare e quello otti-

125

Page 127: Progetto e ottimizzazione di algoritmi di riconoscimento ...elite.polito.it/files/thesis/fulltext/castellina.pdf · APPENDICE A Anatomia e movimenti dell'occhio 125 Anatomia dell'occhio

co-cinetico genera il riflesso otticocinetico.

Il movimento saccadico è un movimento oculare rapido volontario. Il suo scopo è di por-

tare sulla fovea l'immagine di oggetti di interesse che compaiono sulla periferia della reti-

na. Esso è caratterizzato da tre parametri che sono: ampiezza, durata e velocità di picco. La

durata aumenta in proporzione con l'aumentare dell'ampiezza del movimento, mentre la ve-

locità di picco raggiunge un massimo per ampiezze superiori ai 20°. Altri parametri che de-

scrivono la saccade sono la latenza, la metrica, la traiettoria e la strategia. La latenza è il

tempo che separa la comparsa dello stimolo dall'inizio del movimento, dipende sia dall'ec-

centricità del target sia dal paradigma di stimolazione. La metrica descrive l'accuratezza del

movimento, vale a dire il rapporto fra posizione finale dell'occhio e posizione del target: un

movimento accurato è definito ortometrico, un movimento che termina oltre il bersaglio si

dice ipermetrico mentre uno che si arresta prima del target si dice ipometrico. Le saccadi

dismetriche sono seguite da una seconda saccade correttiva con una latenza di circa 100

msec. La traiettoria descrive il modo nel quale la saccade viene eseguita. La strategia indica

il modo nel quale una saccade viene programmata e in condizioni fisiologiche è costituita

da un unico movimento ortometrico o da due movimenti, il secondo sempre correttivo.

Il movimento di inseguimento lento ha la funzione di mantenere sulla fovea l'immagine di

un oggetto in movimento.

Il riflesso vestibolo-oculare conserva costante la posizione dello sguardo durante i movi-

menti del capo.

Il riflesso ottico-cinetico è evocato dallo scorrere dell'immagine sulla retina causato dal

movimento della scena visiva o dalla testa. Per compensare, l'occhio esegue un movimento

lento nella direzione del movimento della scena, seguito da una saccade di ricentramento in

direzione opposta.

I movimenti di vergenza sono movimenti disconiugati. I due tipi di movimenti di vergen-

za sono quello di fusione, evocato quando l'immagine di un oggetto cade nei due occhi in

posizioni retiniche differenti, e quello di accomodazione, indotto da una riduzione di niti-

dezza dell'immagine.

126

Page 128: Progetto e ottimizzazione di algoritmi di riconoscimento ...elite.polito.it/files/thesis/fulltext/castellina.pdf · APPENDICE A Anatomia e movimenti dell'occhio 125 Anatomia dell'occhio

APPENDICE B Guida al programma di training

Creare un nuovo Training set e catturare una collezione di immagini

Creare un nuovo Training Set

Premere il bottene "new ts" per aprire la finestra di dialogo con le impostazionidel trainingset

TS NameSpecificare un nome per il trainingset(obbligatorio)

Descrizione Descrizione del trainingset (faooltativo)

Type Si può scegliere fra due tipologie di trainingset

Χ Eye Ts crea un modello per eye-

tracking

Χ Head Ts crea un modello per head-

tracking

GridSe si è scelto come tipo Eye Ts si deve specificareil numero di righe e il numero di colonne in cuidelimitare lo schermo. Tipici valori utilizzabili sono 2x3,3x3,3x4

Catturare un collezione di immagini

Premere il bottone "New Cs" per aprire finestra di dialogo con le impostazione per lacattura di una collezione di immagini, chiamata Capture Set

Per path intendiamo l'insieme dei punti daosservare durante la cattura della collezione diimmagini.

Choose PathE' possibile scegliere tra i path già creati, alcentro sono visualizzate informazioni come ilnumero di righe , il numero di colonne e ilnumero di immagini che verrano catturate.Mentre a destra c'è un'anteprima della griglia dicattura in cui i cerchi blu indicano i punti in cuisi deve osservare.

New PathPer generare nuovi path personalizzati

Delete PathPer eliminare il path selezionato

STARTPer avviare la cattura delle immagini

Creare un nuovo path

127

Page 129: Progetto e ottimizzazione di algoritmi di riconoscimento ...elite.polito.it/files/thesis/fulltext/castellina.pdf · APPENDICE A Anatomia e movimenti dell'occhio 125 Anatomia dell'occhio

Premere il bottone "new Path" per aprire la finestra di dialogo per la creazione di unnuovo PATH

Selezionare il numero di righe e di colonne della griglia.SG è l'abbreviazione di subgrid e indica il numero di righe e colonnein cui sarà divisa ulteriormente la griglia.(Nell'esempio le impostazioni sono R:2,C:3,SG:5)

Premere il bottone "Build" per generare la griglia.

Intendiamo con punto di cattura una zona di schermo da osservaredurante la cattura di immagini.E' rappresentato sulla griglia da un numero che indica il numero diimmagini catturate per ogni punto.

click sinistro sulla griglia aggiunge punto di cattura al pathper catturare più immagini sullo stesso punto basta cliccareulteriormente

click destro sulla griglia rimuove punto di cattura dal path

Premere OK per salvare il nuovo PATH

Eseguire la cattura

Dopo aver scelto ( o creato un path) premere il bottone START per avviare la cattura della collezionedi immagini

Premere il pulsante "Center Head" e posizionare la testa in modo che risulti al centro delloschermo.

Premere il pulsante "Stop Center" quando la posizione della testa è quella desiderataL'ultima immagine catturata dalla webcam viene memorizzata nel database

Premere il pulsante "Capture Set" per avviare la cattura delle immagini

Un cerchio si sposta per lo schermo.

Χ Nel caso si stia facendo un training set per l'eye-tracking bisogna

tenere la testa immobile e seguire il cerchio con lo sguardo.

Χ Nel caso di head-tracking si deve seguire il cerchio muovendo la

testa.

Quando il cerchio diventa verde indica che è stata catturata un'immagine.

Caricare una collezione di immagini

Dopo aver effettua la cattura di un nuovo Capture Set (2.1 B-B2), si può caricare

nell'applicazione premendo il pulsante "New Cset"

128

Page 130: Progetto e ottimizzazione di algoritmi di riconoscimento ...elite.polito.it/files/thesis/fulltext/castellina.pdf · APPENDICE A Anatomia e movimenti dell'occhio 125 Anatomia dell'occhio

Selezionare il capture Set desiderato e premere il pulsante

LOAD

Sulla parte destra della finestra viene caricate la prima immagine delcapture set

utilizzare i tasti freccia per visualizzarele altre immagini delle collezione

Sulle sinistra viene visualizzata una griglia incui con una X è indicato il punto osservatodurante la cattura.Se la posizione non è corretta si puòmodificare clicclando nella posizione esatta

Catturare una singola immagine da webcam

E' possibile catturare una singola immagine da picchettare dalla webcam, per integrare osostituire immagini del capture set.Si deve agganciare la webcam premendo il bottone in figura a destra in alto, chediventerà come in figura a destra in basso.

Verrano visualizzate in basso a destra, informazioni sulla webcam, come statodi connessione e risoluzione.

Assicurarsi che la compressione RGB 24 , premendo il pulsante "Format"

Cliccare sul pulsante in figura a destra per catturare un'immagine dalla webcam.

Posizionare i picchetti

Dopo aver caricato un Capture Set (2.1 B3) occorre posizionare i picchetti per ogni immagine dellacollezione.I picchetti vengono utilizzati per costruire un modello probabilistico della forma dell'occhio o dellaposizione della testa.

129

Page 131: Progetto e ottimizzazione di algoritmi di riconoscimento ...elite.polito.it/files/thesis/fulltext/castellina.pdf · APPENDICE A Anatomia e movimenti dell'occhio 125 Anatomia dell'occhio

Sull'immagine del Capure Set selezionare una zona rettangolare cheracchiuda l'occhio (o la testa) tenendo premuto il tasto sinistro del mouse.

Sulla sinistra verrà visualizzata la zona selezionataprecedentemente.

Permette di ingrandire l'immagine selezionata

Permette di rimpicciolire l'immagine selezionata

Avvia il posizionamento dei Picchetti

130

Page 132: Progetto e ottimizzazione di algoritmi di riconoscimento ...elite.polito.it/files/thesis/fulltext/castellina.pdf · APPENDICE A Anatomia e movimenti dell'occhio 125 Anatomia dell'occhio

Occhio

Per posizionare i picchetti, basta cliccare col tasto sinistro del mousesull'immagine selezionata.Se si è sbagliato a posizionare un picchetto si può eliminare facendoclick col tasto destro del mouse.

Vi sono 37 picchetti che vanno posizionati su punti specificidell'occhio, nell'ordine mostrato nella figure sulla destra.

Una volta posizionati i 37 picchetti, cliccare sul pulsante

"OK" per aggiungere la forma al Training Set

Questi passi vanno ripetuti per ogni immagine che si

desidera aggiungere al trainingset

Testa

Per posizionare i picchetti, basta cliccare col tasto sinistro del mouse sull'immagine selezionata.Se si è sbagliato a posizionare un picchetto si può eliminare facendo click col tasto destro del mouse.

Vi sono 37 picchetti che vanno posizionati su punti specifici della testa, nell'ordine mostrato nella figuresulla destra.

Una volta posizionati i 37 picchetti, cliccare sul pulsante "OK" peraggiungere la forma al Training Set

Questi passi vanno ripetuti per ogni immagine che si desidera aggiungere al trainingset

131

Page 133: Progetto e ottimizzazione di algoritmi di riconoscimento ...elite.polito.it/files/thesis/fulltext/castellina.pdf · APPENDICE A Anatomia e movimenti dell'occhio 125 Anatomia dell'occhio

Generare il modello matematico e matrici associative

Dopo che si sono picchettate le immagini, premento ilpulsante"Generate Model Matrix"

La durate del processo di generazione del modello e dellematrici associative dipende dal numero di immagini deltraining set.

Dopo aver generato il modello e le matrici associative è possibile utilizzarli con Sandra per eye-tracking

o head-tracking

Gestire i Training Set

Le seguenti informazioni illustrano le principali funzioni per gestire la raccolta dei training set

Caricare Training set

Nella finestra principale "Choose Training Set", cliccando sul nomedi un training set si visualizzeranno sulla destra informazioni

TypeEye TS o Head Ts

DescriptionLa descrizione del traing set immessa nella creazione, può anchemancare

Creation Date and Last modified DateLa funzione che imposta la data dell'ultima modifica non èfunzionante!!

ShapeNumero di immagini picchettate

Statistic GeneratedIndica se sono già stati generati modello e matrici associative

CollectionIndica il numero di capture set associati al training set

Premere il pulsante "LOAD" per caricare un training set precedentemente creato.

132

Page 134: Progetto e ottimizzazione di algoritmi di riconoscimento ...elite.polito.it/files/thesis/fulltext/castellina.pdf · APPENDICE A Anatomia e movimenti dell'occhio 125 Anatomia dell'occhio

Inserire nuove forme

Dopo aver caricato un Training Set (2.4 A) premere il pulsante "Insert NewShape"

Ora è possibile creare un nuovo capture set (2.1 B),caricarne uno già creato (2.1 B3) oppure acquisire unasingola immagine da catturare (2.1 B4)

Visualizzare/Eliminare le forme inserite

Dopo aver caricato un training set(2.3 A), si avrà unafinestra come quella sulla destra

Per visualizzare leforme precedenti esuccessive a quelleattuali.

Aumenta / Diminuiscelo zoom.

Per elimanare una forma/immagine premere il

pulsante "Delete"

E' possibile modificare il punto osservato, indicato con una X sulla griglia, facendoclick col tasto sinistro sulla posizione corrette.

Cliccare poi sul bottone "Update point saw".

Visualizzare modello

Dopo aver caricato un training set(2.3 A), è possibile visualizzare il modello generato

cliccando sul pulsante "View Model"

Verrà visualizzato un modello dinamico che puòassumere tutte le forme di occhio/testa inserite durante ilpicchettamento.Per modificare il modello, spostare le diverse trackbar adestra o a sinistra.

133

Page 135: Progetto e ottimizzazione di algoritmi di riconoscimento ...elite.polito.it/files/thesis/fulltext/castellina.pdf · APPENDICE A Anatomia e movimenti dell'occhio 125 Anatomia dell'occhio

Gestione Database

Compattare Database

Quando si eliminano CaptureSet, Shape e TrainingSet le dimensioni su disco del database che li continenenon diminuiscono, ma rimangono occupate per rendere più veloci ulteriori inserimenti.

Se si vuole liberare questo spazio dal menù Archive avviare il comando COMPACT DB.

L'operazione può richiedere diversi minuti!!!

Esportare TrainingSet

Esportare un training set è una funzione utile quando si vuole trasferire da un computer adun'altro, o quando vi è un aggiornamento del programma, per evitare di perdere i modelli giàfatti.

Nella finestra principale "Choose Training set" cliccare su "Export"

Si deve selezionare la cartella in cui salvareil trainingset, cliccare sul bottone, in figuraa destra.

Si può scegliere se salvare il training set informato Zip o in una cartella noncompressa.

Importare TrainingSet

Per importare un Training Set nella finestra principale "Choose Training set" cliccare

su "Import"

Si aprirà una finestra di dialogo simile a quella dellacreazione di un nuovo training sey, per completare icampi riferirisi a 2.1 APremere il bottone in figura a destra per selezionare ilfile da importare.Se si è decisono di non comprimero il training set, sidovrà selezionare il file "info.txt".

Una volta selezionato il file, si aprirà una finestra diinformazione, simile a quella in figura a destra.

Cliccare sul bottone "import" per importare il training set selezionato.

134

Page 136: Progetto e ottimizzazione di algoritmi di riconoscimento ...elite.polito.it/files/thesis/fulltext/castellina.pdf · APPENDICE A Anatomia e movimenti dell'occhio 125 Anatomia dell'occhio

APPENDICE C Guida al programma di gaze tracking

Considerazioni sulla webcam

Se la webcam non è connessa al computer all'avvio del programma, le funzioni di eye-tracking ed head-tracking non saranno dispobili.

Dopo aver connesso la webcam , cliccare su "connect webcam now" per abilitare tutte le funzioni.

Assicurarsi che sia selezionata la modalità RGB, andando nel menù WebCam->Format.

Gestione utenti

Sandra memorizza le scelte di training set effettuate dagliutenti , per evitare ogni volta la ripetizione dei passi 3.3.Si può creare un nuovo profilo utente, selezionando la voce di

menù User->New Uset Profile...Verrà aperta una finestra come quella in figura affianco in cuiinserire un nome identificativo del profilo

Per selezionare un profilo, selezionare la voce di menù

User->Choose user profile...

DeleteServe per eliminare il profilo selezionato

SelectSeleziona il profilo e carica le impostazioni.

Non è necessario eseguire queste operazioni ogni volta, per default l'applicazione si avvierà caricandol'ultimo profilo utilizzato in precedenza.

135

Page 137: Progetto e ottimizzazione di algoritmi di riconoscimento ...elite.polito.it/files/thesis/fulltext/castellina.pdf · APPENDICE A Anatomia e movimenti dell'occhio 125 Anatomia dell'occhio

Scelta del Training e Modello

Per visualizzare la finestra di scelta dei training set, selezionare

la voce di menù User->Choose Model Matrix

Scelta del tipo Eye oHead.

Scelta della matriceassociativa. Quandoviene generato ilmodello, vengonogenerate tre matriciassociativi checontengonoinformazioni per ilriconoscimento delleforme.Maggiore è il numero

della metrice minore

sarà la precisione, ma

si avrà più velocità di

elaborazione.

Scelta del modello,

utilizzare i bottoni >< per visualizzare i

modelli disponibili.

Provare il modello

Premere il bottone Try per provare il modello.

Verranno visualizzate le immagini catturati dalla webcam, per posizionare ilmodello clicclare col tasto sinistro

Χ nel caso di eye-tracking sull'occhio su cui si è fatto il trainingset

Χ nel caso di head-tracking il punto centrale della testa alla sommità

del naso

Cliccare sul bottone Stop try per interrompere la prova.

Per selezionare il modello, premere il bottone "Select"

136

Page 138: Progetto e ottimizzazione di algoritmi di riconoscimento ...elite.polito.it/files/thesis/fulltext/castellina.pdf · APPENDICE A Anatomia e movimenti dell'occhio 125 Anatomia dell'occhio

Eye-tracking

Finestra "Touch Image"

Per avviare l'eye-tracking selezionare la voce del menù Eye->StartSi aprirà una finestra nella cui parte sinistra vengono visualizzate leimmagini della webcam, mentre sulla destra un'immagine catturata duranteill trainingset per fare in modo che il posizionamento della testa sia simile.

Click col tasto sinistro del mouse sull'occhio per posizionare il modello.

Ora si può chiudere o ridurre ad icona questa finestra, per visualizzarla di

nuovo, selezionare la voce di menù Eye->Touch Image

Come utilizzare le Applicazioni con l'eye-tracking

Una volta avviato l'eye-tracking si attiva la finestradi selezione tra programmi e opzioni.

Per effetture una scelta guardare nel riquadro

Options o Programs, una barra di scorrimentoindica quanto manca per la selezione.Quando una casella diviene di colore blu. E'selezionata.

Per confermare la scelta guardare su OK.

Per deselezionare una casella guardare su Cancel.

Impostazioni - Options

Queste impostazioni sono selezionabili comespiegato in 3.4 B.

Buffer SizeAumentando tale valore si ha un miglioramento dellaprecisione, ma un rallentamento del riconoscimento.

Images for clickE' il numero di step necessarri per selezionare unquadrande.

Mouse MovementIl numero di pixel di cui si sposta il mousenell'applicazione mouse move.

BackwardRitorna alla finestra precedente.

137

Page 139: Progetto e ottimizzazione di algoritmi di riconoscimento ...elite.polito.it/files/thesis/fulltext/castellina.pdf · APPENDICE A Anatomia e movimenti dell'occhio 125 Anatomia dell'occhio

Applicazioni

Per illustrare il funzionamento dell'eye-tracking abbiamo realizzato due semplici applicazioni a puro scopodimostrativo.

Mouse Move

Selezionando questa applicazione, si ridurrà ad icona Sandra esarà possibile usare il mouse con lo sguardo.Si deve immaginare lo schermo diviso come se ci fosse la grigliae guardare nei riquadri come illustrato a destra

Sinistra Alto

Click BassoDest

ra

138

Page 140: Progetto e ottimizzazione di algoritmi di riconoscimento ...elite.polito.it/files/thesis/fulltext/castellina.pdf · APPENDICE A Anatomia e movimenti dell'occhio 125 Anatomia dell'occhio

APPENDICE D Esempio di codice

Data la vastità del codice dell'applicazione risulta improponibile riportare integralmente il

codice. Lo scopo questa Appendice è mostrare una il codice di due classi che rappresentano

il classificatore per l'head tracking e l' eye tracking.

#ifndef _AdattamentoHead_h_

#define _AdattamentoHead_h_

#define STATO_INIZIO 001

#define STATO_UNLOOK 002

#define STATO_LOOK 003

const short MARGINE = 10;

const short FILTRO = 4;

const short SELEZIONE = 4;

const short MARGINE_CLICK = 5;

#define IMACLICK 20

#define TOLLERANZA 10

class HeadAdattamento : public Nirvana

{

public:

inline HeadAdattamento() {

puntiFUORI=0;

emiConta=0;

Attiva = DominioAttivo = false;

Stato = STATO_INIZIO;

bMouseMove=true;

imaClick=IMACLICK;

tipoClick=C_LEFTCLICK;

};

void SetThreadAdattamentoHead(CWinThread *ThreadAdattamentoHead);

void SetMouseMove(bool bM){bMouseMove=bM;};

int GetImaClick(){return imaClick;};

void SetImaClick(int iMA){imaClick=iMA;};

void SetTipoClick(short tipo){tipoClick=tipo;};

short GetTipoClick(){return tipoClick;};

139

Page 141: Progetto e ottimizzazione di algoritmi di riconoscimento ...elite.polito.it/files/thesis/fulltext/castellina.pdf · APPENDICE A Anatomia e movimenti dell'occhio 125 Anatomia dell'occhio

public:

PUNTO_DOUBLE Centro,Previsione,Punto; // Punto è una specie di

accumulatore usato nei conti

UINT Stato;

bool Attiva;

bool DominioAttivo;

RECT Dominio;

short Contatore,ContatoreClick;

PUNTO_DOUBLE Sequenza[FILTRO],Click[SELEZIONE];

bool OkClick;

short emiConta;

public:

void Unlook();

void Look();

short puntiFUORI;

PUNTO_DOUBLE Shape[DIMENSIONE];

private:

PA_RICO *parRico;

bool bMouseMove;

int imaClick;

short tipoClick;

friend UINT ThreadProcAdattamentoHead(VOID *AdattamentoHead);

};

void HeadAdattamento::SetThreadAdattamentoHead(CWinThread *ThreadAdatta-

mentoHead)

{

this->ThreadAdattamentoHead = ThreadAdattamentoHead;

ThreadAdattamentoHead->m_bAutoDelete = false;

}

void HeadAdattamento::Unlook()

{

DominioAttivo = true;

Dominio.left = Dominio.right = (int)Centro.X;

Dominio.bottom = Dominio.top = (int)Centro.Y;

Stato = STATO_UNLOOK;

}

void HeadAdattamento::Look()

{

Stato = STATO_LOOK;

140

Page 142: Progetto e ottimizzazione di algoritmi di riconoscimento ...elite.polito.it/files/thesis/fulltext/castellina.pdf · APPENDICE A Anatomia e movimenti dell'occhio 125 Anatomia dell'occhio

Contatore = ContatoreClick = 0;

ThreadSupervisore->PostThreadMessage(AG_MOSTRA_APPLICAZIONE,0,0);

threadMessaggi->PostThreadMessage(TM_INIT_HEAD,(long)

&Previsione,0);

}

static UINT ThreadProcAdattamentoHead(VOID *pAdattamentoHead)

{

HeadAdattamento *Merry = (HeadAdattamento *) pAdattamentoHead;

UINT Ret = 0;

int i;

MSG Msg;

while(GetMessage(&Msg,NULL,0,0))

{

TranslateMessage(&Msg);

DispatchMessage(&Msg);

switch(Msg.message)

{

case AG_INIT:

for (i=0;i<DIMENSIONE;i++)

{

Merry->Shape[i] = ((PUNTO_DOUBLE*) Msg.wParam)

[i];

}

Merry->Centro.X = (Merry->Shape[33].X+Merry->Shape[34].

X+

Merry->Shape[35].X+Merry-

>Shape[36].X)/4;

Merry->Centro.Y = (Merry->Shape[33].Y+Merry->Shape[34].

Y+

Merry->Shape[35].Y+Merry-

>Shape[36].Y)/4;

Merry->Attiva = true;

break;

case TM_FORMA_RICONOSCIUTA:

if(Merry->Attiva)

{

Merry->parRico = (PA_RICO*) Msg.wParam;

// trovo il punto medio fisso nella fronte

Merry->Centro.X = (Merry->parRico->Shape[33].

X+Merry->parRico->Shape[34].X+

141

Page 143: Progetto e ottimizzazione di algoritmi di riconoscimento ...elite.polito.it/files/thesis/fulltext/castellina.pdf · APPENDICE A Anatomia e movimenti dell'occhio 125 Anatomia dell'occhio

Merry->parRico->Sha-

pe[35].X+Merry->parRico->Shape[36].X)/4;

Merry->Centro.Y = (Merry->parRico->Shape[33].

Y+Merry->parRico->Shape[34].Y+

Merry->parRico->Sha-

pe[35].Y+Merry->parRico->Shape[36].Y)/4;

switch(Merry->Stato)

{

case STATO_UNLOOK:

if(Merry->Centro.X < Merry->Dominio.left)

Merry->Dominio.left = (int)Merry-

>Centro.X;

if(Merry->Centro.X > Merry->Dominio.right)

Merry->Dominio.right = (int)Merry-

>Centro.X;

if(Merry->Centro.Y < Merry->Dominio.bottom)

Merry->Dominio.bottom = (int)Merry-

>Centro.Y;

if(Merry->Centro.Y > Merry->Dominio.top)

Merry->Dominio.top = (int)Merry->Cen-

tro.Y;

break;

case STATO_LOOK:

// Decisore

// Riduco il punto nel sistema di riferi-

mento Dominio

Merry->Punto = Merry->Centro;

if((Merry->Punto.X > (Merry->Dominio.left-

MARGINE)) &&

(Merry->Punto.X < Merry->Dominio.-

left))

Merry->Punto.X = Merry->Dominio.left;

if((Merry->Punto.X < (Merry-

>Dominio.right+MARGINE)) &&

(Merry->Punto.X > Merry->Dominio.-

right))

Merry->Punto.X = Merry->Dominio.-

right;

if((Merry->Punto.Y > (Merry->Dominio.bot-

tom-MARGINE)) &&

(Merry->Punto.Y < Merry->Dominio.bot-

tom))

142

Page 144: Progetto e ottimizzazione di algoritmi di riconoscimento ...elite.polito.it/files/thesis/fulltext/castellina.pdf · APPENDICE A Anatomia e movimenti dell'occhio 125 Anatomia dell'occhio

Merry->Punto.X = Merry->Dominio.bot-

tom;

if((Merry->Punto.Y < (Merry-

>Dominio.top+MARGINE)) &&

(Merry->Punto.Y > Merry-

>Dominio.top))

Merry->Punto.X = Merry->Dominio.top;

if((Merry->Punto.Y > Merry->Dominio.top+MARGINE)||

(Merry->Punto.Y < Merry->Dominio.bottom-MARGINE)||

(Merry->Punto.X > Merry->Dominio.right+MARGINE)||

(Merry->Punto.X < Merry->Dominio.left-MARGINE)){

Merry->puntiFUORI++;

if ( Merry->puntiFUORI>=TOLLERANZA){

PUNTO pCentroDom;

pCentroDom.Y= ( Merry->Dominio.top-Merry->Dominio.bot-

tom)/2;

pCentroDom.X=(Merry->Dominio.right - Merry->Dominio.-

left)/2;

//Merry->Pipino->Tocco(pCentroDom.X+Merry->Dominio.-

left,pCentroDom.Y+Merry->Dominio.bottom);

Merry->puntiFUORI=0;

MessageBeep(900);

//Merry->Pipino->oldTocco();

SendMessage(Merry->GetFinestre(AG_HEAD),WM_CUR,0,0);

}

}else Merry->puntiFUORI=0;

Merry->Punto.X = Merry->Punto.X - Merry-

>Dominio.left;

Merry->Punto.Y = Merry->Punto.Y - Merry-

>Dominio.bottom;

// Filtro

if(!Merry->bMouseMove){

Merry->Sequenza[Merry->Contatore] = Merry->Punto;

Merry->Contatore++;

if(Merry->Contatore == FILTRO)

{

Merry->Punto.X = Merry->Punto.Y =

0;

143

Page 145: Progetto e ottimizzazione di algoritmi di riconoscimento ...elite.polito.it/files/thesis/fulltext/castellina.pdf · APPENDICE A Anatomia e movimenti dell'occhio 125 Anatomia dell'occhio

for(i=0;i<FILTRO;i++)

{

Merry->Punto.X = Merry->Pun-

to.X + Merry->Sequenza[i].X;

Merry->Punto.Y = Merry->Pun-

to.Y + Merry->Sequenza[i].Y;

}

Merry->Punto.X = Merry->Punto.X/4;

Merry->Punto.Y = Merry->Punto.Y/4;

// Riduco il punto in percentuale a

specchio

Merry->Previsione.X = 1 - (Merry-

>Punto.X/(Merry->Dominio.right-Merry->Dominio.left));

Merry->Previsione.Y = Merry->Pun-

to.Y/(Merry->Dominio.top-Merry->Dominio.bottom);

Merry->threadMessaggi->PostThread-

Message(TM_PUNTO_HEAD,0,0);

Merry->Contatore = 0;

// Click

Merry->Click[Merry->ContatoreClick]

= Merry->Punto;

Merry->ContatoreClick++;

if(Merry->ContatoreClick == SELE-

ZIONE)

{

Merry->Punto.X = Merry->Pun-

to.Y = 0;

for(i=0;i<SELEZIONE;i++)

{

Merry->Punto.X = Merry-

>Punto.X + Merry->Click[i].X;

Merry->Punto.Y = Merry-

>Punto.Y + Merry->Click[i].Y;

}

Merry->Punto.X = Merry->Pun-

to.X/4;

Merry->Punto.Y = Merry->Pun-

to.Y/4;

Merry->OkClick = true;

for(i=0;i<SELEZIONE;i++)

{

144

Page 146: Progetto e ottimizzazione di algoritmi di riconoscimento ...elite.polito.it/files/thesis/fulltext/castellina.pdf · APPENDICE A Anatomia e movimenti dell'occhio 125 Anatomia dell'occhio

if((Merry->Click[i].X <

(Merry->Punto.X - MARGINE_CLICK)) ||

(Merry->Click[i].X >

(Merry->Punto.X + MARGINE_CLICK)) ||

(Merry->Click[i].Y <

(Merry->Punto.Y - MARGINE_CLICK)) ||

(Merry->Click[i].Y >

(Merry->Punto.Y + MARGINE_CLICK)))

Merry->OkClick =

false;

}

if(Merry->OkClick)

Merry->threadMessaggi-

>PostThreadMessage(TM_CLICK_HEAD,0,0);

Merry->ContatoreClick = 0;

}

}

}

else //

{

POINT puntoMouse;

GetCursorPos(&puntoMouse);

bool bMove=false;

PUNTO pCentroDom;

int iHoffset=(Merry->Dominio.top-Merry-

>Dominio.bottom )/20;

int iWoffset=(Merry->Dominio.right - Merry->Dominio.-

left)/20;

pCentroDom.Y= ( Merry->Dominio.top-Merry->Dominio.bot-

tom)/2;

pCentroDom.X=(Merry->Dominio.right - Merry->Dominio.-

left)/2;

if(Merry->Punto.X> pCentroDom.X+3*iWoffset){

puntoMouse.x-=5;

bMove=true;

}

if(Merry->Punto.X> pCentroDom.X+6*iWoffset){

puntoMouse.x-=5;

145

Page 147: Progetto e ottimizzazione di algoritmi di riconoscimento ...elite.polito.it/files/thesis/fulltext/castellina.pdf · APPENDICE A Anatomia e movimenti dell'occhio 125 Anatomia dell'occhio

}

if(Merry->Punto.X> pCentroDom.X+9*iWoffset){

puntoMouse.x-=5;

}

if(Merry->Punto.X< pCentroDom.X-3*iWoffset){

puntoMouse.x+=5;

bMove=true;

}

if(Merry->Punto.X< pCentroDom.X-6*iWoffset){

puntoMouse.x+=5;

}

if(Merry->Punto.X< pCentroDom.X-9*iWoffset){

puntoMouse.x+=5;

}

if(Merry->Punto.Y> pCentroDom.Y+3*iHoffset){

puntoMouse.y-=5;

bMove=true;

}

if(Merry->Punto.Y> pCentroDom.Y+6*iHoffset){

puntoMouse.y-=5;

}

if(Merry->Punto.Y> pCentroDom.Y+9*iHoffset){

puntoMouse.y-=5;

}

if(Merry->Punto.Y< pCentroDom.Y-3*iHoffset){

puntoMouse.y+=5;

bMove=true;

}

if(Merry->Punto.Y< pCentroDom.Y-6*iHoffset){

puntoMouse.y+=5;

}

if(Merry->Punto.Y< pCentroDom.Y-9*iHoffset){

puntoMouse.y+=5;

}

146

Page 148: Progetto e ottimizzazione di algoritmi di riconoscimento ...elite.polito.it/files/thesis/fulltext/castellina.pdf · APPENDICE A Anatomia e movimenti dell'occhio 125 Anatomia dell'occhio

if (bMove) {

SetCursorPos(puntoMouse.x,puntoMouse.y);

Merry->emiConta=0;

}

else{

Merry->emiConta++;

int iTot=Merry->GetImaClick();

if (Merry->emiConta==iTot/10)

SendMessage(Merry->GetFinestre(AG_PRINCIPALE),

WM_CUR,IDC_CU1,0);

if (Merry->emiConta==iTot/6)

SendMessage(Merry->GetFinestre(AG_PRINCIPALE),

WM_CUR,IDC_CU2,0);

if(Merry->emiConta==iTot/3)

SendMessage(Merry->GetFinestre(AG_PRINCIPALE),

WM_CUR,IDC_CU3,0);

if(Merry->emiConta==iTot/2)

SendMessage(Merry->GetFinestre(AG_PRINCIPALE),

WM_CUR,IDC_CU4,0);

if(Merry->emiConta==(2*iTot/3))

SendMessage(Merry->GetFinestre(AG_PRINCIPALE),

WM_CUR,IDC_CU5,0);

if(Merry->emiConta==(iTot-iTot/10))

SendMessage(Merry->GetFinestre(AG_PRINCIPALE),

WM_CUR,IDC_CU6,0);

if(Merry->emiConta==iTot){

if(puntoMouse.x==0){

ShowWindow(Merry->GetFinestre(AG_MOUSEHEAD),SW_SHOW);

SetActiveWindow(Merry->GetFinestre(AG_MOUSEHEAD));

}

switch(Merry->GetTipoClick()){

case C_LEFTCLICK:{

INPUT mouseClick[2];

MOUSEINPUT mouseIn;

mouseIn.dx=puntoMouse.x;

mouseIn.dy=puntoMouse.y;

mouseIn.mouseData=0;

mouseIn.dwFlags=MOUSEEVENTF_LEFTDOWN;

mouseIn.time=0;

147

Page 149: Progetto e ottimizzazione di algoritmi di riconoscimento ...elite.polito.it/files/thesis/fulltext/castellina.pdf · APPENDICE A Anatomia e movimenti dell'occhio 125 Anatomia dell'occhio

mouseIn.dwExtraInfo=NULL;

mouseClick[0].type=INPUT_MOUSE;

mouseClick[0].mi=mouseIn;

mouseIn.dwFlags=MOUSEEVENTF_LEFTUP;

mouseClick[1].type=INPUT_MOUSE;

mouseClick[1].mi=mouseIn;

SendInput(2,mouseClick,sizeof(INPUT));

}

break;

case C_RIGHTCLICK:

{

INPUT mouseClick[2];

MOUSEINPUT mouseIn;

mouseIn.dx=puntoMouse.x;

mouseIn.dy=puntoMouse.y;

mouseIn.mouseData=0;

mouseIn.dwFlags=MOUSEEVENTF_RIGHTDOWN;

mouseIn.time=0;

mouseIn.dwExtraInfo=NULL;

mouseClick[0].type=INPUT_MOUSE;

mouseClick[0].mi=mouseIn;

mouseIn.dwFlags=MOUSEEVENTF_RIGHTUP;

mouseClick[1].type=INPUT_MOUSE;

mouseClick[1].mi=mouseIn;

SendInput(2,mouseClick,sizeof(INPUT));

}

break;

case C_DOUBLECLICK:

{

INPUT mouseClick[2];

MOUSEINPUT mouseIn;

mouseIn.dx=puntoMouse.x;

mouseIn.dy=puntoMouse.y;

mouseIn.mouseData=0;

mouseIn.dwFlags=MOUSEEVENTF_LEFTDOWN;

mouseIn.time=0;

mouseIn.dwExtraInfo=NULL;

mouseClick[0].type=INPUT_MOUSE;

mouseClick[0].mi=mouseIn;

mouseIn.dwFlags=MOUSEEVENTF_LEFTUP;

mouseClick[1].type=INPUT_MOUSE;

148

Page 150: Progetto e ottimizzazione di algoritmi di riconoscimento ...elite.polito.it/files/thesis/fulltext/castellina.pdf · APPENDICE A Anatomia e movimenti dell'occhio 125 Anatomia dell'occhio

mouseClick[1].mi=mouseIn;

SendInput(2,mouseClick,sizeof(INPUT));

Sleep(150);

SendInput(2,mouseClick,sizeof(INPUT));

}

break;

}

}

}

}

break;

}

}

break;

case AG_QUIT:

PostQuitMessage(0);

return 0;

break;

case AG_EMOUSE:

Merry->SetMouseMove((bool) Msg.wParam);

break;

}

}

Ret = Msg.wParam;

return Ret;

}

#endif

149

Page 151: Progetto e ottimizzazione di algoritmi di riconoscimento ...elite.polito.it/files/thesis/fulltext/castellina.pdf · APPENDICE A Anatomia e movimenti dell'occhio 125 Anatomia dell'occhio

#ifndef Adatta_EMI_3

#define Adatta_EMI_3

#include "Dichiarazioni.h"

#define RIGHERET 2 // # righe in cui dividere lo

schermo

#define COLONNERET 3 // # colonne in cui dividere lo

schermo

#define QUADRATINI 5 //

#define IMMAGINIXPUNTO 1 // da cambiare in funzione della lunghezza del

GL;

#define DIMBUFFER 3

#define NUMIMA 5

#define WAITCLICK 300 //ms waited after click

#define MOUSEMOVE 10 //pixel

#define TUTTO_DIVERSO -1

#define NOT_INIT -2

static short puntoBuffer(PUNTO *buffer,int dim){

int i,j,max=0,indice,uguali=0;

int *occorrenze=new int[dim];

for (i=0;i<dim;i++) occorrenze[i]=0;

for (i=0;i<dim;i++){

for(j=i+1;j<dim;j++){

if((buffer[i].X==buffer[j].X)&&(buffer[i].Y==buffer[j].Y)){

occorrenze[i]++;

}

}

if(occorrenze[i]>max){

max=occorrenze[i];

indice=i;

}

150

Page 152: Progetto e ottimizzazione di algoritmi di riconoscimento ...elite.polito.it/files/thesis/fulltext/castellina.pdf · APPENDICE A Anatomia e movimenti dell'occhio 125 Anatomia dell'occhio

else if (occorrenze[i]==max) uguali++;

}

delete [] occorrenze;

if (uguali==dim) return TUTTO_DIVERSO;

if(buffer[indice].X==-1)return NOT_INIT;

return indice;

}

#define szNameAdattamento TEXT("adaCLASS") //nome classe adattamen-

to

//CLASSE ADATTAMENTO//

class Adattamento

{

public:

Adattamento(); //costruttore

~Adattamento();

public: //metodi pubblici

int setAdattamento(S_PARAMETRI_GRIGLIA pG,Active *supervi-

sor); //non usato come costruttore per non modificare altri file

void setImpostazioni(int numFiltro); //imposta numero imma-

gini del filtro

void stabilisciPUNTO(PA_RICO *pa_rico);

void enableMouse(BOOL bM);

public: //accesso alla variabili private

int getBufferDim(); // restituisce dimensione del buffer

void setBufferDim(int numB); //imposta dimensione del buffer

int getNumFiltro(); //restituisce numero filtro

void setNumFiltro(int numF);

short getMouseMove();

void setMouseMove(short numM);

int getWaitClick();

void setWaitClick(int numW);

//cerca il massimo della matrice

private:

151

Page 153: Progetto e ottimizzazione di algoritmi di riconoscimento ...elite.polito.it/files/thesis/fulltext/castellina.pdf · APPENDICE A Anatomia e movimenti dell'occhio 125 Anatomia dell'occhio

int numFiltro;

int numPuntiCorretti;

S_PARAMETRI_GRIGLIA parametriGriglia; //contiene le informazioni

sulla griglia di Adattamento

// IMPOSTA_MAP impostazioneAlgo;

Active *supervisor;

int contaFiltro;

long contaTotale;

PUNTO puntoGuardato;

int icontaOccorrenze;

PUNTO puPrecedente;

PUNTO puPPrecedente;

PUNTO pPallino;

BOOL bMoveMouse;

PUNTO *BufferPUNTI;

int iScorriBuffer,iDimBuffer;

short mouseMove;

int waitClick;

HANDLE Mutex;

};

//costruttore di classe

Adattamento::Adattamento(){

supervisor=NULL;

icontaOccorrenze=0;

puPrecedente.X=puPrecedente.Y=-1;

puPPrecedente.X=puPPrecedente.Y=-1;

bMoveMouse=false;

iScorriBuffer=0;

numFiltro=NUMIMA; contaFiltro=0; //impostazioni iniziali filtro

iDimBuffer=DIMBUFFER;

mouseMove=MOUSEMOVE;

waitClick=WAITCLICK;

152

Page 154: Progetto e ottimizzazione di algoritmi di riconoscimento ...elite.polito.it/files/thesis/fulltext/castellina.pdf · APPENDICE A Anatomia e movimenti dell'occhio 125 Anatomia dell'occhio

BufferPUNTI=new PUNTO[iDimBuffer];

Mutex=CreateMutex(NULL,false,"MAda");

for (int i=0;i<iDimBuffer;i++) BufferPUNTI[i].X=BufferPUNTI[i].Y=0;

}

//distruttore di classe

Adattamento::~Adattamento(){

//pulizia memoria

delete[] BufferPUNTI;

supervisor=NULL;

CloseHandle(Mutex);

}

/*============================================================*\

Author :E.Castellina Date : 30/03/2005

version 1.0

============================================================

Function : Adattamento::getBufferDim

Description :

Return : int - dimensione Buffer

Parameters :

Note :

\*============================================================*/

int Adattamento::getBufferDim(){

return iDimBuffer;

}

/*============================================================*\

Author :E.Castellina Date : 30/03/2005

version 1.0

============================================================

Function : Adattamento::getNumFiltro

Description :

Return : int - numero immagini per click

Parameters :

Note :

\*============================================================*/

int Adattamento::getNumFiltro(){

153

Page 155: Progetto e ottimizzazione di algoritmi di riconoscimento ...elite.polito.it/files/thesis/fulltext/castellina.pdf · APPENDICE A Anatomia e movimenti dell'occhio 125 Anatomia dell'occhio

return numFiltro;

}

/*============================================================*\

Author :E.Castellina Date : 30/03/2005

version 1.0

============================================================

Function : Adattamento::getMouseMove

Description :

Return : short - offset di spostamento del mouse

Parameters :

Note :

\*============================================================*/

short Adattamento::getMouseMove(){

return mouseMove;

}

/*============================================================*\

Author :E.Castellina Date : 30/03/2005

version 1.0

============================================================

Function : Adattamento::getWaitClick

Description :

Return : int - ms di tempo da attendere dopo un

click

Parameters :

Note :

\*============================================================*/

int Adattamento::getWaitClick(){

return waitClick;

}

/*============================================================*\

Author :E.Castellina Date : 30/03/2005

version 1.0

============================================================

Function : Adattamento::setMouseMove

Description : imposta lo spostamento del mouse

Return : void -

Parameters :

154

Page 156: Progetto e ottimizzazione di algoritmi di riconoscimento ...elite.polito.it/files/thesis/fulltext/castellina.pdf · APPENDICE A Anatomia e movimenti dell'occhio 125 Anatomia dell'occhio

short numM -offset mouse

Note :

\*============================================================*/

void Adattamento::setMouseMove(short numM) {

WaitForSingleObject(Mutex,INFINITE);

mouseMove=numM;

ReleaseMutex(Mutex);

}

/*============================================================*\

Author :E.Castellina Date : 30/03/2005

version 1.0

============================================================

Function : Adattamento::setWaitClick

Description :

Return : void -

Parameters :

int numW - tempo ms da attendere dopo il click

Note :

\*============================================================*/

void Adattamento::setWaitClick(int numW) {

WaitForSingleObject(Mutex,INFINITE);

waitClick=numW;

ReleaseMutex(Mutex);

}

/*============================================================*\

Author :E.Castellina Date : 30/03/2005

version 1.0

============================================================

Function : Adattamento::setBufferDim

Description : imposta le nuove dimensioni del buffer

Return : void -

Parameters :

int numB - dimensione buffer

Note :

\*============================================================*/

void Adattamento::setBufferDim(int numB){

int dim,i;

155

Page 157: Progetto e ottimizzazione di algoritmi di riconoscimento ...elite.polito.it/files/thesis/fulltext/castellina.pdf · APPENDICE A Anatomia e movimenti dell'occhio 125 Anatomia dell'occhio

WaitForSingleObject(Mutex,INFINITE);

PUNTO *bufferTmp=new PUNTO[numB];

dim=iDimBuffer<numB?iDimBuffer:numB;

for (i=0;i<dim;i++) bufferTmp[i]=BufferPUNTI[i];

if (iScorriBuffer>dim) iScorriBuffer=dim;

iDimBuffer=numB;

delete[] BufferPUNTI;

BufferPUNTI=bufferTmp;

bufferTmp=NULL;

ReleaseMutex(Mutex);

}

/*============================================================*\

Author :E.Castellina Date : 30/03/2005

version 1.0

============================================================

Function : Adattamento::setNumFiltro

Description :

Return : void - imposta il numero immagini per

click

Parameters :

int numF - numero immagini

Note :

\*============================================================*/

void Adattamento::setNumFiltro(int numF){

WaitForSingleObject(Mutex,INFINITE);

numFiltro=numF;

if(icontaOccorrenze>=numFiltro) icontaOccorrenze=numFiltro-1;

ReleaseMutex(Mutex);

}

void Adattamento::enableMouse(BOOL bM){

bMoveMouse=bM;

}

int Adattamento::setAdattamento(

S_PARAMETRI_GRIGLIA pG, //parametri

griglia

Active *supervisor

156

Page 158: Progetto e ottimizzazione di algoritmi di riconoscimento ...elite.polito.it/files/thesis/fulltext/castellina.pdf · APPENDICE A Anatomia e movimenti dell'occhio 125 Anatomia dell'occhio

)

{

parametriGriglia=pG;

this->supervisor=supervisor;

return TUTTO_OK;

}

void Adattamento::stabilisciPUNTO(PA_RICO *pa_rico)

{

int iPerc,indice;

WaitForSingleObject(Mutex,INFINITE);

BufferPUNTI[iScorriBuffer]=pa_rico->pPallino;

iScorriBuffer++;

if (iScorriBuffer>=iDimBuffer) iScorriBuffer=0;

indice=puntoBuffer(BufferPUNTI,iDimBuffer);

if (indice!=NOT_INIT && indice!=TUTTO_DIVERSO){

pPallino=BufferPUNTI[indice];

if (puPrecedente.X==-1) puPrecedente=pPallino;

else if ((puPrecedente.X==pPallino.X)&&(puPrecedente.Y==pPalli-

no.Y)){

icontaOccorrenze++;

iPerc=100*icontaOccorrenze/numFiltro;

if (iPerc==100) icontaOccorrenze=0;

}

else {

icontaOccorrenze=0;

puPrecedente=pPallino;

iPerc=0;

}

if (!bMoveMouse){

supervisor->threadMessaggi->PostThreadMessage(TM_EYE_POS,(WPARAM)

&pPallino,iPerc);

}else {

157

Page 159: Progetto e ottimizzazione di algoritmi di riconoscimento ...elite.polito.it/files/thesis/fulltext/castellina.pdf · APPENDICE A Anatomia e movimenti dell'occhio 125 Anatomia dell'occhio

POINT puntoMouse;

GetCursorPos(&puntoMouse);

//GRID 2x3

if(parametriGriglia.numeroRighe==2 && parametriGriglia.numeroColon-

ne==3) {

if(pPallino.X==0 && pPallino.Y==0)

SetCursorPos(puntoMouse.x-mouseMove,puntoMouse.y);

else if(pPallino.X==0 && pPallino.Y==1)

SetCursorPos(puntoMouse.x,puntoMouse.y-mouseMove);

else if(pPallino.X==0 && pPallino.Y==2)

SetCursorPos(puntoMouse.x+mouseMove,puntoMouse.y);

else if(pPallino.X==1 && pPallino.Y==1)

SetCursorPos(puntoMouse.x,puntoMouse.y+mouseMove);

else if (pPallino.X==1 && pPallino.Y==0){

if(iPerc==100){

GetCursorPos(&puntoMouse);

INPUT mouseClick[2];

MOUSEINPUT mouseIn;

mouseIn.dx=puntoMouse.x;

mouseIn.dy=puntoMouse.y;

mouseIn.mouseData=0;

mouseIn.dwFlags=MOUSEEVENTF_LEFTDOWN;

mouseIn.time=0;

mouseIn.dwExtraInfo=NULL;

mouseClick[0].type=INPUT_MOUSE;

mouseClick[0].mi=mouseIn;

mouseIn.dwFlags=MOUSEEVENTF_LEFTUP;

mouseClick[1].type=INPUT_MOUSE;

mouseClick[1].mi=mouseIn;

SendInput(2,mouseClick,sizeof(INPUT));

}

158

Page 160: Progetto e ottimizzazione di algoritmi di riconoscimento ...elite.polito.it/files/thesis/fulltext/castellina.pdf · APPENDICE A Anatomia e movimenti dell'occhio 125 Anatomia dell'occhio

}

} // endif GRID 2x3

}

}

ReleaseMutex(Mutex);

}

#endif

159