Analisi e valutazione di algoritmi per eye tracking operanti in luce visibile

Pagina creata da Simona Mazzola
 
CONTINUA A LEGGERE
Analisi e valutazione di algoritmi per eye tracking operanti in luce visibile
POLITECNICO DI TORINO

                III Facoltà di Ingegneria
            Corso di Laurea in Ingegneria Informatica

               Tesi di Laurea Magistrale

Analisi e valutazione di algoritmi
per eye tracking operanti in luce
              visibile

Relatore:
Prof. Fulvio Corno
                                               Candidato:
                                               Alessio Moscatello

                       Novembre 2007
Analisi e valutazione di algoritmi per eye tracking operanti in luce visibile
Indice

1 Introduzione                                                                                                              1

2 Eye  tracking                                                                                                              6
  2.1  Storia . . . . . . . . . . . . . . . . . . . .           .   .   .   .   .   .   .   .   .   .   .   .   .   .   .    6
  2.2  Utilizzi . . . . . . . . . . . . . . . . . . . .         .   .   .   .   .   .   .   .   .   .   .   .   .   .   .    7
  2.3  Classificazione . . . . . . . . . . . . . . . .          .   .   .   .   .   .   .   .   .   .   .   .   .   .   .    8
  2.4  Funzionamento . . . . . . . . . . . . . . .              .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   10
       2.4.1 Determinazione del punto osservato                 .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   13
       2.4.2 Calibrazione . . . . . . . . . . . . .             .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   15
   2.5 Sistemi commerciali . . . . . . . . . . . . .            .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   15
   2.6 Panoramica sugli algoritmi di eye tracking               .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   18
       2.6.1 Algoritmi in tempo reale . . . . . .               .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   18
       2.6.2 Algoritmi di analisi offline . . . . .             .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   20

3 Ambiente di test                                                                                                          23
  3.1 Introduzione . . . . . . . . . . . . .    .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   23
  3.2 Database dei filmati . . . . . . . .      .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   24
      3.2.1 Struttura XML . . . . . . .         .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   24
      3.2.2 DTD . . . . . . . . . . . . .       .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   27
  3.3 Tagger . . . . . . . . . . . . . . . .    .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   28
      3.3.1 Interfaccia dell’applicazione       .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   29
  3.4 Benchmark . . . . . . . . . . . . .       .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   30
      3.4.1 Interfaccia dell’applicazione       .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   30
      3.4.2 Struttura dell’applicazione .       .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   31
      3.4.3 Classe Algo . . . . . . . . .       .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   33
      3.4.4 Classe InfoFrame . . . . . .        .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   37

                                           1
Analisi e valutazione di algoritmi per eye tracking operanti in luce visibile
3.4.5   Classe Starbust . . . . . . . . . . . . . . . . . . . . . . . . . . 39
        3.4.6   Classe Sandra . . . . . . . . . . . . . . . . . . . . . . . . . . . 39

4 Algoritmi scelti e implementati                                                                                                         41
  4.1 Starbust . . . . . . . . . . . .            .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   42
      4.1.1 Adattamenti . . . . . .               .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   48
  4.2 Active Shape Model . . . . .                .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   51
      4.2.1 Adattamenti . . . . . .               .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   54

5 Test                                                                                                                                    57
  5.1 Introduzione . . . . . . . . . . . . . . . . . .                            .   .   .   .   .   .   .   .   .   .   .   .   .   .   57
       5.1.1 Parametri di riferimento . . . . . . .                               .   .   .   .   .   .   .   .   .   .   .   .   .   .   58
  5.2 Test effettuati su Starbust . . . . . . . . . .                             .   .   .   .   .   .   .   .   .   .   .   .   .   .   59
       5.2.1 Parametri ottimali . . . . . . . . . .                               .   .   .   .   .   .   .   .   .   .   .   .   .   .   59
       5.2.2 Prestazioni globali dell’algoritmo . .                               .   .   .   .   .   .   .   .   .   .   .   .   .   .   66
  5.3 Test effettuati su ASM . . . . . . . . . . . .                              .   .   .   .   .   .   .   .   .   .   .   .   .   .   68
       5.3.1 Effetti della variazione dei parametri                               .   .   .   .   .   .   .   .   .   .   .   .   .   .   68
       5.3.2 Effetti della variazione del modello .                               .   .   .   .   .   .   .   .   .   .   .   .   .   .   68
  5.4 Test comparativi . . . . . . . . . . . . . . .                              .   .   .   .   .   .   .   .   .   .   .   .   .   .   73
       5.4.1 Caso migliore . . . . . . . . . . . . .                              .   .   .   .   .   .   .   .   .   .   .   .   .   .   73
       5.4.2 Caso medio . . . . . . . . . . . . . .                               .   .   .   .   .   .   .   .   .   .   .   .   .   .   74

6 Conclusioni                                                                                                                             76
  6.1 Analisi dei risultati . . . . . . . . . . . . . . .                             .   .   .   .   .   .   .   .   .   .   .   .   .   76
  6.2 Miglioramenti relativi a Starbust . . . . . . .                                 .   .   .   .   .   .   .   .   .   .   .   .   .   77
  6.3 Miglioramenti relativi ad Active Shape Model                                    .   .   .   .   .   .   .   .   .   .   .   .   .   77
  6.4 Miglioramenti degli strumenti di cattura . . .                                  .   .   .   .   .   .   .   .   .   .   .   .   .   78
  6.5 Ulteriori analisi . . . . . . . . . . . . . . . . .                             .   .   .   .   .   .   .   .   .   .   .   .   .   79

A Appendici                                                                                                                               80
  A.1 Anatomia dell’occhio .      .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   80
      A.1.1 Termini medici        .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   83
  A.2 Libreria Qt . . . . . .     .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   84
  A.3 Libreria OpenCV . . .       .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   84
  A.4 Classificatore Haar . .     .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   84

                                                      2
Analisi e valutazione di algoritmi per eye tracking operanti in luce visibile
A.5 Filtri per immagini . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
    A.5.1 Filtro smooth . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
    A.5.2 Filtro sharpening . . . . . . . . . . . . . . . . . . . . . . . . . 86

                                      3
Analisi e valutazione di algoritmi per eye tracking operanti in luce visibile
Elenco delle tabelle

 5.1   Prestazioni globali di Starbust . . . . . . . . . . . . . . . .   .   .   .   .   .   .   66
 5.2   Effetti della variazione dei parametri di ASM . . . . . . . .     .   .   .   .   .   .   68
 5.3   Effetti della variazio del modello utilizzato da ASM . . . .      .   .   .   .   .   .   69
 5.4   Variazione della statistica al variare del modello utilizzato     .   .   .   .   .   .   69
 5.5   Prestazioni dei due algoritmi nel caso migliore . . . . . . .     .   .   .   .   .   .   74
 5.6   Prestazioni dei due algoritmi nel caso medio . . . . . . . .      .   .   .   .   .   .   74

                                         4
Analisi e valutazione di algoritmi per eye tracking operanti in luce visibile
Elenco delle figure

 2.1 Un esempio dell’utilizzo dell’eye tracking è l’analisi delle fissazioni che
     l’occhio effettua durante la lettura . . . . . . . . . . . . . . . . . . . .   7
 2.2 Videooculografia con pupilla e riflesso corneale . . . . . . . . . . . . . 11
 2.3 Sistema completo che utilizza la pupilla e il riflesso corneale . . . . . 12
 2.4 Sistema indossabile e schema della tastiera visibile sullo schermo . . . 13
 2.5 Sistema che si basa solo sulla pupilla utilizzando videocamera a basso
     costo e software di elaborazione immagini . . . . . . . . . . . . . . . . 13
 2.6 Un sistema di elettrooculografia . . . . . . . . . . . . . . . . . . . . . 14
 2.7 Esempio di calibrazione statica con un numero crescente di punti . . . 16
 2.8 Esempio di calibrazione dinamica: il punto si muove sullo schermo
     con un percorso casuale . . . . . . . . . . . . . . . . . . . . . . . . . . 16
 2.9 Immagine che rappresenta le differenze tra due fotogrammi successivi,
     i cerchi bianchi indicano le differenze attribuite al movimento delle
     palpebre . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
 2.10 Sequenza delle operazioni effettuate dall’algoritmo di Amarnag: (a)
      output dopo il pre-processamento (b) output dopo il classificatore
      Bayesiano (c) output dopo l’algoritmo di clustering (d) risultato finale 20
 2.11 Schema della rete neurale competitiva proposta da Marcone et al. . . 21
 2.12 Esempio di variazioni possibili di un modello deformabile dell’iride:
      1 traslazione, 2 scalamento, 3-5 combinazione di trasformazioni, 6-9
      trasformazioni complesse . . . . . . . . . . . . . . . . . . . . . . . . . 21
 2.13 Training set utilizzato per addestrare la rete neurale utilizzata nel-
      l’algoritmo descritto da Pedersen e Spivey . . . . . . . . . . . . . . . 22
 3.1 Il disegno raffigura la struttura dei tag che rappresentano occhi e pupille 26
 3.2 Un fotogramma in cui sono visibili i tag relativi a pupille, occhi e naso 29

                                        5
Analisi e valutazione di algoritmi per eye tracking operanti in luce visibile
3.3 Anteprima dell’analisi di un filmato: si nota il riferimento della pupilla
    (cerchio verde) e il centro della pupilla rilevata (croce gialla) . . . . . 31
3.4 Finestra di configurazione dell’algoritmo Starbust . . . . . . . . . . . 32
4.1 Posizionamento della webcam nel sistema openEyes . . . . . . . . . . 43
4.2 Immagine dell’occhio prima dell’eliminazione del riflesso corneale . . . 44
4.3 La stessa immagine di figura 4.2 dopo l’eliminazione del riflesso corneale 44
4.4 Ricerca punti caratteristici della pupilla utilizzando l’algoritmo Starbust 46
4.5 La figura mostra l’ellisse risultante dopo aver applicato all’immagine
    l’algoritmo Starbust . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
4.6 Un’immagine del training set (8 picchetti) utilizzato per riconoscere
    l’occhio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
4.7 Modello dell’occhio con 16 picchetti . . . . . . . . . . . . . . . . . . . 55
4.8 Modello con 16 picchetti: si può notare che il baricentro (in giallo)
    non corrisponde al centro della pupilla, perchè quest’ultima è spostata
    verso sinistra . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
4.9 Modello con 8 picchetti: in questo caso il baricentro dei picchetti (in
    giallo) corrisponde alla pupilla anche se non si trova al centro dell’occhio 56
5.1 Andamento della precisione e del tempo di elaborazione all’aumentare
    del numero di raggi utilizzati per analizzare un filmato che riprende
    l’intero volto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
5.2 Andamento della precisione e del tempo di elaborazione all’aumentare
    del numero di raggi utilizzati per analizzare un filmato che riprende
    solamente l’occhio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
5.3 Influenza della dimensione del riflesso corneale su un’immagine del
    volto intero . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
5.4 Influenza della dimensione del riflesso corneale su un’immagine del-
    l’occhio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
5.5 Influenza del numero di feature utilizzate per l’interpolazione dell’el-
    lisse nel caso di un filmato che riprende solamente l’occhio . . . . . . 62
5.6 Influenza del numero di feature utilizzate per l’interpolazione dell’el-
    lisse nel caso di un filmato del volto, in condizioni di scarsa luminosità 63
5.7 Influenza del numero di feature utilizzate per l’interpolazione dell’el-
    lisse nel caso di un filmato del volto, in condizioni di ottima luminosità 63

                                        6
Analisi e valutazione di algoritmi per eye tracking operanti in luce visibile
5.8 In condizioni di buona illuminazione e alta qualità del filmato, la
     variazione del livello di soglia causa una variazione dell’errore medio
     molto ridotta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .      . 64
5.9 Utilizzando un filmato con illuminazione ambientale più bassa, la
     variazione della soglia influisce sull’errore . . . . . . . . . . . . . . .    . 65
5.10 Utilizzando un filmato di bassa qualità e luminosità (webcam) la
     variazione della soglia influisce molto sull’errore . . . . . . . . . . .      . 65
5.11 Funzione di probabilità stimata nel caso di un modello poco accurato,
     sono separati i dati relativi all’errore in direzione orizzontale e l’errore
     in direzione verticale . . . . . . . . . . . . . . . . . . . . . . . . . .     . 70
5.12 Funzione di probabilità stimata nel caso di un modello accurato . .           . 71
5.13 Funzione di probabilità stimata nel caso di un modello errato (il gra-
     fico è stato espanso per evidenziare i picchi secondari), in questo ca-
     so sono stati accorpati gli errori relativi all’asse delle ascisse e delle
     ordinate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .     .   71
5.14 Funzione di probabilità stimata nel caso di un modello accurato . .           .   72
A.1 Anatomia dell’occhio . . . . . . . . . . . . . . . . . . . . . . . . . .        .   80
A.2 Sezione del bulbo oculare . . . . . . . . . . . . . . . . . . . . . . . .       .   81
A.3 Formazione dell’immagine sulla retina . . . . . . . . . . . . . . . . .         .   83

                                         7
Analisi e valutazione di algoritmi per eye tracking operanti in luce visibile
Capitolo 1

Introduzione

Un sistema di eye tracking è un dispositivo che permette di tracciare la posizione
della pupilla e di risalire al punto osservato dall’utente: è un sistema complesso
che permette di utilizzare lo sguardo per interagire con strumenti elettronici. Gli
utilizzi di un eye tracker possono essere molteplici (cap. 2.2), ma per questa tesi ci
si è concentrati sui sistemi di eye tracking che si integrano con i normali personal
computer: lo sguardo viene utilizzato per spostare il cursore sullo schermo senza
dover utilizzare un mouse.
    La nascita dell’eye tracking può essere fatta risalire ai primi studi sui movimenti
oculari dell’Ottocento (5), ma solamente negli ultimi vent’anni le tecnologie di eye
tracking si sono sviluppate al punto da rendere disponibili sistemi commerciali molto
precisi, anche se molto costosi. Con il progredire delle tecniche di Computer Vision
si sono sviluppati sistemi di eye tracking a basso costo; questi sistemi, a differenza
di quelli commerciali, utilizzano la luce visibile anziché l’infrarosso: utilizzando la
luce visibile per riprendere l’occhio i contorni della pupilla risultano meno definiti,
perciò gli eye tracker in luce visibile sono meno precisi di quelli commerciali, ma,
dato il costo ridotto, sono accessibili ad un maggior numero di utenti.
    Lo scopo di questa tesi è creare una piattaforma di benchmarking per effettuare
un’analisi oggettiva e dettagliata di algoritmi di eye tracking che utilizzino perife-
riche a basso costo. Il sistema di eye tracking che verrà analizzato in questa tesi
è costituito da una videocamera e un personal computer: la videocamera ripren-
de il volto dell’utente mentre il computer, analizzando i singoli fotogrammi, ricava
la posizione del punto osservato. Le videocamere utilizzate non verranno in alcun

                                           1
Analisi e valutazione di algoritmi per eye tracking operanti in luce visibile
1 – Introduzione

modo modificate e verranno posizionate in modo da non interferire con il normale
utilizzo del computer: in questo modo si vuole testare un sistema che sia facilmente
utilizzabile da qualsiasi utente.
    I motivi che hanno portato allo studio di questo sistema di valutazione sono
molteplici. Innanzi tutto esistono numerosi algoritmi in letteratura, ma è difficile
effettuarne un confronto utilizzando i dati presentati negli articoli che li descrivono.
Ogni ricercatore, infatti, utilizza parametri di valutazione diversi e diverse sono le
condizioni in cui gli algoritmi vengono testati: mancano, quindi, criteri oggettivi
per effettuare una comparazione. Inoltre si deve ricordare che non sempre sono
disponibili i mezzi per effettuare studi di usabilità e, qualora vi siano, è difficile
trovare utenti disponibili ad effettuare lunghi e, talvolta, ripetitivi test.
    Il sistema di test non opererà in tempo reale, perché per stabilire la precisione di
un algoritmo è necessario disporre di una serie di riferimenti con cui confrontare le
misure che fornisce: tipicamente un algoritmo di eye tracking fornisce come output
la posizione della pupilla, ma per calcolarne l’errore devono essere disponibili le
coordinate della pupilla relative al fotogramma esaminato. Sfortunatamente non
esistono database pubblici che memorizzino anche solo la posizione delle pupille,
perciò si è deciso di crearne uno ex novo.
    Il database di filmati è stato costruito utilizzando tre tipologie di periferiche vi-
deo: una webcam, una fotocamera digitale e una telecamera per videoconferenza.
Sono state utilizzate queste tre tipologie, perchè possono essere considerate a bas-
so costo: il prezzo di una normale webcam è di circa 20 e mentre la telecamera
per videoconferenza ha un costo di circa 800 e. I filmati sono stati realizzati non
solo in condizioni di luce ottimale, ma anche in condizioni di scarsa illuminazione:
infatti in una prospettiva di utilizzo realistica non è sempre possibile intervenire
sull’illuminazione ambientale.
    La struttura del database (cap. 3.2) è stata progettata per poter memorizzare
un numero variabile di dati relativi ai fotogrammi: per ogni fotogramma si possono
memorizzare dei riferimenti che permettono di stabilire l’esatta posizioni di pupille
e occhi, inoltre la struttura permette di inserire riferimenti non previsti inizialmen-
te come, ad esempio, la posizione delle sopracciglia. Nel caso specifico, oltre alla
posizione di occhi e pupille, si è scelto di memorizzare la posizione del naso, perché
alcuni algoritmi si basano sugli spostamenti del naso per tracciare il movimento del
viso dell’utente.

                                           2
1 – Introduzione

    La gestione del database viene effettuata con un’applicazione dedicata (cap. 3.3)
che permette di posizionare i riferimenti (o tag) un fotogramma alla volta. L’appli-
cazione è stata progettata per velocizzare il posizionamento dei riferimenti: infatti
il numero di fotogrammi da elaborare può essere molto elevato anche se si utilizzano
filmati con il modesto frame rate tipico delle fotocamere a basso costo (15 fotogram-
mi/s). I dati memorizzati dall’applicazione vengono descritti con il formalismo XML
che li rende indipendenti dall’ambiente in cui sono stati ricavati: il database, in que-
sto modo, potrà essere facilmente riutilizzato anche con applicazioni completamente
diverse da quelle sviluppate per questa tesi.
    La realizzazione dell’ambiente di test (cap. 3.4) ha richiesto un notevole sforzo
progettuale volto alla creazione di un’applicazione facilmente espandibile, ma che
fosse abbastanza generica da poter implementare un qualunque tipo di algoritmo
per eye tracker a basso costo. É stato utilizzato un approccio ad oggetti per avere
un alto livello di astrazione che permetta di elaborare efficacemente i dati ricavati
dai test e per facilitare l’utilizzo dell’ambiente agli altri componenti del gruppo di
ricerca presso cui è stata realizzata la tesi.
     La ricerca degli algoritmi da implementare e testare ha richiesto un’attenta ana-
lisi degli articoli riguardanti l’eye tracking a basso costo (cap. 2.6): gli approcci
possibili sono molti e spesso radicalmente differenti, perciò la scelta è stata effet-
tuata analizzando dettagliatamente i punti di forza e le debolezze di ogni tipo di
algoritmo. Le principali differenze rilevate riguardano la modalità di ricerca della
pupilla e il livello di generalità dell’algoritmo. La ricerca della pupilla può essere
effettuata sull’intera immagine o su una porzione limitata di essa: in questo secondo
caso l’algoritmo deve essere strutturato per cercare, anche approssimativamente, la
posizione dell’occhio e, successivamente, effettuare una ricerca più precisa della pu-
pilla. Alcuni algoritmi sono abbastanza generici da poter essere utilizzati in qualsiasi
situazione, altri hanno notevoli limitazioni e richiedono una fase di training. La fase
di addestramento di un algoritmo può essere molto semplice, ad esempio la selezione
dell’area in cui effettuare la ricerca, oppure può essere molto complessa, ad esempio
nel caso in cui l’occhio venga rappresentato da un modello che deve essere ricavato
per ogni utente. Si è ritenuto opportuno analizzare algoritmi di cui fosse disponi-
bile il codice sorgente: infatti implementare un algoritmo partendo solamente dallo
pseudocodice può essere causa di errori che portano a prestazioni molto differenti
da quelle dichiarate dall’autore dell’algoritmo. Inoltre si è scelto di testare algoritmi

                                           3
1 – Introduzione

il cui principio di funzionamento fosse radicalmente differente, per cercare di capire
quale fosse l’approccio migliore.
    La scelta è ricaduta sugli algoritmi Starbust e Active Shape Model (cap. 4).
Starbust utilizza tecniche peculiari di Computer Vision e non necessita di addestra-
mento: la posizione della pupilla viene rilevata partendo dalla ricerca del riflesso
corneale; successivamente, partendo dalla posizione del riflesso, vengono rilevati i
pixel che presentano il più alto contrasto ovvero i pixel che corrispondono al contor-
no della pupilla. ASM utilizza un modello dell’occhio e necessita di addestramento:
il modello dell’occhio, specifico per ogni utente, viene creato a mano e presenta al-
cuni parametri che consentono di deformarlo. La ricerca dell’occhio nell’immagine
avverrà traslando e deformando il modello in relazione alle caratteristiche dell’im-
magine. La struttura di questi due algoritmi è differente, perché si è scelto di testare
due approcci completamente diversi per stabilire quale dei due fosse il più adatto
per tracciare i movimenti della pupilla.
    I test effettuati sono stati divisi in due gruppi, in quanto si è voluto dapprima
analizzare gli algoritmi singolarmente e, solo successivamente, confrontarli (cap. 5).
Il primo gruppo di test era volto a stabilire quali fossero le condizioni di utilizzo ot-
timale del singolo algoritmo: perciò si è cercato di stabilire quali fossero i parametri
migliori con cui inizializzare l’algoritmo. Il numero di test effettuati in questa fase è
differente per i due algoritmi: a differenza di Starbust, per cui sono stati effettuati
numerosi test, ASM ha un numero di parametri molto ridotto, in quanto il com-
portamento è quasi completamente influenzato dal modello utilizzato. Nel secondo
gruppo di test si è cercato di stabilire quale dei due algoritmi avesse prestazioni
migliori rispetto ad alcuni indici di riferimento.
    Gli indici scelti per confrontare gli algoritmi sono: il tempo medio di elaborazione
di un fotogramma e l’errore medio di rilevamento della pupilla. Il tempo medio di
elaborazione permette di avere una stima della reattività del sistema; mentre l’errore
medio di rilevamento della pupilla permette di stimare la precisione del sistema, in
quanto incide direttamente sulla precisione con cui viene ricavato il punto osservato.
    Analizzando i risultati dei test effettuati si è potuto concludere che Starbust ha
un tempo di elaborazione estremamente ridotto e un errore medio inferiore ad ASM,
ma la misura della posizione della pupilla è soggetta ad una certa rumorosità; ASM,
d’altro canto, è più lento, ma la posizione rilevata ha una variazione minore. La
rumorosità delle misure è un parametro da analizzare attentamente, in quanto, se

                                            4
1 – Introduzione

troppo elevato, può rendere difficile il rilevamento delle fissazioni, ovvero le aree
dello schermo in cui lo sguardo rimane fisso per un certo periodo di tempo.
    L’approfondita analisi dei due algoritmi ha permesso di accertare che entrambi
hanno spazio per alcuni miglioramenti. Starbust può essere migliorato riducen-
done la rumorosità (cap. 6.2), mentre ASM può essere migliorato riducendone la
complessità computazionale(cap. 6.3).
    I test effettuati hanno permesso di stabilire una relazione tra la qualità della
periferica di acquisizione e l’errore di rilevamento della pupilla: l’errore minimo
si ottiene utilizzando la telecamera per videoconferenza, che presenta un’elevata
qualità dell’immagine, mentre l’errore massimo si ottiene utilizzando la webcam che
presenta immagini molto degradate. Il compromesso migliore tra costo e precisione
si ottiene però con la fotocamera digitale: presenta un errore medio maggiore, ma
ha un costo che è circa la metà rispetto alla telecamera per videoconferenza.
    I risultati ottenuti testando questi algoritmi confermano che la precisione ot-
tenibile da sistemi a luce visibile è inferiore a quella ottenibile da sistemi a luce
infrarossa, ma il miglioramento delle periferiche di acquisizione e il raffinamento de-
gli algoritmi può portare a sistemi a basso costo che potranno essere affiancati ai
normali canali di input.

                                          5
Capitolo 2

Eye tracking

Inizialmente l’utilizzo di sistemi di eye tracking era confinato agli studiosi di movi-
menti oculari, col progresso della tecnica, però l’utilizzo di eye tracker ha subito una
notevole diffusione: non solo come strumento per affiancare i normali canali di in-
put, ma anche come strumento sostitutivo ad essi. Infatti un’eye tracker può essere
utilizzato non solo per migliorare l’interazione uomo-macchina, ma anche per dare
una concreta possibilità di utilizzo degli strumenti elettronici a persone diversamente
abili.

2.1      Storia
I primi studi sui movimenti oculari risalgono all’Ottocento ed erano eseguiti con
osservazioni dirette. Nel 1898 Huey (5) costruı̀ un rudimentale eye tracker composto
da una sorta di lente a contatto collegata ad un puntatore in alluminio, che si
spostava in risposta ai movimenti oculari; con questo rudimentale strumento riuscı̀
a dimostrare che leggendo una frase non ci si concentra su ogni parola, ma solo su
quelle che il nostro cervello ritiene più “rilevanti“.
    Il primo eye tracker non intrusivo venne costruito da George Buswell: una fonte di
luce illuminava l’occhio e il riflesso veniva impressionato su pellicola; il movimento
dell’occhio provocava un corrispondente spostamento del tracciato impresso sulla
pellicola fotografica.
    Il progresso della tecnica ha permesso di sviluppare sistemi di eye tracking sempre
più performanti sino ad utilizzare videocamere per filmare l’occhio e un computer

                                           6
2 – Eye tracking

per elaborare queste immagini: in questo modo è possibile controllare un normale
computer con lo sguardo anzichè utilizzare mouse e tastiera.

2.2      Utilizzi
Inizialmente l’eye tracking è stato utilizzato in ambito accademico per meglio com-
prendere i meccanismi alla base della percezione visiva: si è scoperto che durante
la lettura non ci si concentra sulle singole lettere di una parola, ma solo su alcuni
gruppi di lettere e che, per il cervello, alcune parole di una frase sono più importanti
di altre: si noti ad esempio il tracciato seguito da un lettore in figura 2.1; i cerchi
rappresentano i punti in cui si è fissato lo sguardo, il diametro è proporzionale al
tempo di fissazione.

   Figura 2.1. Un esempio dell’utilizzo dell’eye tracking è l’analisi delle fissazioni che
   l’occhio effettua durante la lettura

     L’analisi delle fissazioni è stata anche utilizzata dagli psicologi per mostrare come
uomini e donne si concentrino su caratteristiche diverse osservando immagini di altre
persone e viene utilizzata dall’industria per localizzare gli “attrattori attenzionali”
all’interno dello stimolo visivo: in questo modo si possono realizzare pubblicità
che attirino di più l’attenzione, perché si posizonano i messaggi da trasmettere nei
punti di massima visibilità. Oppure si possono utilizzare queste informazioni per

                                             7
2 – Eye tracking

migliorare la disposizione di avvisi, come ad esempio i cartelli stradali, o segnalazioni
importanti, come le vie di fuga.
    In campo militare gli utilizzi sono i più disparati, in quanto gli studi sull’eye
tracking effettuati dall’esercito degli Stati Uniti risalgono addirittura agli anni ’50
(17): i primi utilizzi riguardarono studi sulle aree più osservate dai piloti durante
il volo; successivamente si è cercato di costruire strumentazioni che permettessero
di selezionare alcuni comandi solamente osservando opportune icone, in modo dal
distrarre il pilota il meno possibile.
    Solo ultimamente l’eye-tracking è stato utilizzato come alternativa ai classici
strumenti di input (mouse e tastiera) per creare un sistema “handless” diretto ad
utenti professionali (campo biomedico) o diversamente abili. In futuro si prevede un
utilizzo sempre più massiccio di sistemi di eye tracking, se non per sostituire, almeno
per affiancare i normali canali di input e per migliorare l’interazione con gli strumenti
elettronici. Si stanno effettuando studi anche sulla sicurezza degli automobilisti:
infatti un eye tracker potrebbe essere utilizzato per monitorare costantemente il
livello di attenzione del guidatore e prendere provvedimenti nel caso non risulti in
condizioni adatte alla guida.
    Secondo recenti analisi (6) gli ambiti di maggior utilizzo degli eye tracker sono i
seguenti:

   • test sulle aree di interesse

   • scienze cognitive

   • disabilità motoria

   • misurazione livello di attenzione degli automobilisti

   • domotica

   • medicina

2.3      Classificazione
I sistemi di eye tracking possono essere classificati in base al metodo utilizzato per
rilevare i movimenti della pupilla (sensore ottico o elettrodi) e in base al fatto che
siano indossabili o meno.

                                           8
2 – Eye tracking

    Gli eye tracker più diffusi utilizzano la tecnica della videooculografia (VOG): una
telecamera riprende l’occhio utilizzando un sensore sensibile all’infrarosso o alla luce
visibile.

    Infrarosso E’ una soluzione costosa1 , infatti, oltre ad un illuminatore infra-
rosso, si deve utilizzare un sensore sensibile alla radiazione infrarossa che fa levitare
il costo dell’apparato.

    Visibile E’ la tecnica più semplice, perché permette di tracciare i movimenti
oculari con una semplice videocamera o, addirittura, con una webcam. Il costo è
ridotto2 , ma la precisione di un eye tracker di questo tipo è molto inferiore ad un
eye tracker infrarosso.

     Vi è anche un ulteriore gruppo di eye tracker, ovvero gli eye tracker basati sul-
l’elettrooculogramma (EOG). Questa tecnica permette di rilevare i movimenti della
pupilla misurando, con alcuni elettrodi, il potenziale elettrico in un’area vicina al-
l’occhio; questo tipo di eye tracker è stato inizialmente utilizzato per rilevare i mo-
vimenti saccadici3 durante la fase REM4 del sonno, ma attualmente viene utilizzato
anche da alcuni modelli commerciali.
     Un ulteriore distinzione dei sistemi di eye tracking si basa sul fatto che siano
indossabili o meno. I sistemi non indossabili non sono invasivi, hanno, però, un
grande problema: l’utente deve mantenere l’occhio all’interno del campo visivo del
sensore. Naturalmente si può ovviare a questo problema utilizzando più telecamere
a raggi infrarossi permettendo, cosı̀, una grande libertà di movimento, ma il costo
del sistema levita ulteriormente. Un’altra soluzione soluzione al problema consiste
nell’inquadrare interamente il viso dell’utente e compensare in qualche modo i mo-
vimenti del capo: si deve perciò tracciare il movimento della testa dell’utente per
eliminare il movimento apparente dell’occhio.
     I sistemi indossabili non sono soggetti ad errori dovuti al movimento della testa,
infatti il sensore, essendo montato su occhiali, non cambia posizione rispetto all’oc-
chio; questi sistemi possono, però, intralciare i movimenti, perché normalmente vi
  1
    Il costo è dell’ordine di 10.000 e
  2
    Al di sotto dei 1000 e
  3
    Vedere appendice A.1
  4
    Vedere appendice A.1.1

                                                9
2 – Eye tracking

è un cavo di collegamento con il computer. Si deve anche notare che un utilizzo
prolungato potrebbe creare alcuni fastidi ad utenti che non hanno mai utilizzato
occhiali.

2.4      Funzionamento
Il funzionamento di un eye tracker è, in linea di principio, molto semplice: viene
ripreso un soggetto e ne vengono tracciati i movimenti della pupilla. I movimenti
verranno registrati (nel caso di analisi off-line) oppure verranno tradotti in sposta-
menti del cursore sullo schermo (nel caso l’eye tracker venga utilizzato per controllare
un computer).
    Per spiegare il funzionamento di un eye tracker si deve innanzitutto suddividere
l’analisi in base alle modalità di ricerca dello sguardo; di seguito viene riportata una
panoramica dei metodi di funzionamento tratta da una ricerca effettuata dalla rete
europea di eccellenza COGAIN (10):

   • videooculografia: utilizzando pupilla e riflesso corneale

   • videooculografia: utilizzando solamente la pupilla

   • videooculografia: utilizzando la doppia riflessione di Purkinje (se la fronte
     di illuminazione è frontale si hanno due riflessi da tracciare anzichè uno solo)

   • videooculografia: utilizzando il limbo (confine tra cornea e sclera)

   • elettrooculografia: utilizzando il potenziale elettrico generato dall’occhio

   • oculografia elettromagnetica: utilizzando una sonda posizionata sulla cor-
     nea (utilizzata per ricerche mediche, è una tecnica molto invasiva)

   • lenti a contatto: utilizzando lenti a contatto nell’occhio

     Analizzeremo in dettaglio le tecniche attualmente utilizzate dagli eye tracker
commerciali, ovvero la videooculografia e l’elettrooculografia. Sono le tecniche più
utilizzate in quanto danno i risultati migliori: la risoluzione media di questi siste-
mi è di circa 1◦ di campo visivo utilizzando la videooculografia e 2◦ utilizzando
l’elettrooculografia.

                                           10
2 – Eye tracking

Videooculografia basata su pupilla e riflesso corneale Questo metodo de-
termina la direzione dello sguardo comparando le posizioni relative della pupilla e
del riflesso corneale determinato da una luce incidente. Normalmente il sistema con-
siste in un emettitore infrarosso e in una singola fotocamera sensibile alla radiazione
infrarossa; la fotocamera è provvista di alcune lenti e di un sistema autofocus per
compensare i movimenti del capo. Se l’illuminatore non è posto in direzione della
pupilla, quest’ultima apparirà completamente nera (metodo dark pupil). Nell’imma-
gine risultante (fig. 2.2) si vedrà muoversi solo la pupilla, mentre il riflesso corneale
rimarrà pressochè costante e verrà utilizzato per compensare eventuali spostamenti
della testa. Un sistema completo di illuminatore e fotocamera sensibile all’infrarosso
è rappresentato in figura 2.3.

              Figura 2.2.   Videooculografia con pupilla e riflesso corneale

Videooculografia basata solo sulla pupilla La videooculografia che utilizza
solamente la pupilla è molto simile a quella che utilizza le informazioni ricavabili
da pupilla e riflesso corneale; l’utilizzo della sola pupilla rende il sistema sensibile
ai movimenti della testa. Tipicamente si risolve questo inconveniente montando la
telecamera su occhiali (fig. 2.4), si crea quindi un sistema indossabile; il sistema

                                           11
2 – Eye tracking

       Figura 2.3.   Sistema completo che utilizza la pupilla e il riflesso corneale

viene integrato con un piccolo schermo dedicato che visualizza una tastiera: l’utente
comporrà parole e frasi semplicemente fissando i tasti “virtuali”.
    Un secondo approccio nell’utilizzo della sola pupilla consiste nel riprendere l’im-
magine completa del volto (fig. 2.5): questa è una variante semplificata della vi-
deooculografia che utilizza la pupilla e il riflesso corneale. Viene utilizzata una
videocamera a basso costo (una webcam o una videocamera USB) in concomitanza
con l’utilizzo di un software avanzato di elaborazione immagini: verranno tracciati
non solo i movimenti della pupilla, ma anche la posizione dell’occhio per compensare
gli spostamenti della testa.

Elettrooculografia L’elettrooculografia si basa sulla misurazione della differenza
di potenziale tra la cornea e la retina (circa 1 mV). Questo potenziale crea un campo
elettrico difronte alla testa; questo campo cambia orientamento seguendo la direzio-
ne dello sguardo e può essere rilevato ponendo degli elettrodi attorno all’occhio.
Tipicamente il sistema consiste in un apparato contenente strumenti per amplifica-
re i segnali rilevati, strumenti di controllo e un piccolo computer per convertire la

                                           12
2 – Eye tracking

     Figura 2.4.   Sistema indossabile e schema della tastiera visibile sullo schermo

   Figura 2.5. Sistema che si basa solo sulla pupilla utilizzando videocamera a basso
   costo e software di elaborazione immagini

posizione rilevata in un segnale digitale. Un sistema di questo tipo è rappresentato
in figura 2.6.

2.4.1    Determinazione del punto osservato
La ricerca del punto osservato cambia a seconda del tipo di illuminazione e dalla
tipologia del sistema di eye tracking.
   Per determinare la direzione dello sguardo nei sistemi a luce infrarossa viene

                                           13
2 – Eye tracking

                       Figura 2.6.   Un sistema di elettrooculografia

utilizzata la differenza di posizione tra il riflesso sulla cornea e il riflesso della pupilla.
La rilevazione del riflesso della pupilla è effettuato con due tecniche: Bright Pupil
and Dark Pupil. La differenza principale sta nella posizione della fonte di luce: se
la fonte di luce è coassiale all’occhio, i raggi vengono riflessi dalla retina e la pupilla
rimane illuminata (Bright Pupil), altrimenti la pupilla rimane completamente scura
(Dark Pupil). La tecnica Bright Pupil crea un alto contrasto tra la pupilla e l’iride
permettendo un migliore tracciamento ed evitando l’interferenza causata dalle ciglia,
ma ha notevoli problemi di interferenza in un ambiente esterno in quanto il sole è
una sorgente IR molto potente.
    Nei sistemi che si basano sulla luce visibile si adottano varie tecniche di Computer
Vision per analizzare l’immagine: lo scopo è trovare la posizione della pupilla nello
spazio dell’immagine dell’occhio, per poi mapparla opportunamente nello spazio
dell’immagine osservata. In alcuni casi (ad esempio con webcam montata sugli
occhiali) si può ricorrere alla stessa tecnica usata per l’IR (differenza tra riflesso
corneale e pupilla).
    La tecnica di mappatura dallo spazio immagine occhio allo spazio immagine
osservata sono molto varie e dipendono molto dal tipo di algoritmo utilizzato, ma
nella maggioranza dei casi si adotta una semplice mappatura polinomiale.

                                             14
2 – Eye tracking

2.4.2     Calibrazione
La calibrazione di un sistema di eye tracking è importantissima, in quanto permette
di calcolare i coefficienti da utilizzare nella mappatura della posizione della pupilla
sullo spazio dello schermo; senza calibrazione il sistema potrebbe comunque funzio-
nare, ma il comportamento varierebbe moltissimo da utente ad utente e risentirebbe
del cambiamento delle condizioni di luminosità ambientale.
    Vi sono due metodi di calibrazione che sono gli standard di fatto dei sistemi
commerciali di eye tracking:

   • Calibrazione statica: vengono mostrati una serie di punti fissi sullo schermo
     del computer (fig. 2.7)

   • Calibrazione dinamica: viene mostrato un punto (o un bersaglio) che si
     muove apparendo e scomparendo sullo schermo (fig. 2.8)

    I punti (o il punto in movimento) sono disposti in modo tale da coprire un’ampia
area dello schermo per rendere molto efficiente la calibrazione; il numero di punti
può anche essere aumentato per migliorare la precisione di calibrazione, natural-
mente all’aumentare del numero di punti aumenterà anche il tempo necessario alla
calibrazione.
    Normalmente non è possibile scegliere la posizione dei punti sullo schermo: que-
sta può essere una limitazione per gli utenti che non sono in grado di utilizzare
lo schermo completo, perciò alcuni sistemi commerciali prevedono la possibilità
di scegliere manualmente non solo il numero, ma anche la posizione dei punti di
calibrazione.
    Dall’analisi effettuata da COGAIN la maggioranza dei sistemi commerciali uti-
lizza mediamente da 5 a 9 punti per la calibrazione (solo pochi utilizzano arrivano
sino a 17 punti) che vengono disposti ordinatamente per ottenere la massima co-
pertura dello schermo. Solo un sistema utilizza una calibrazione dinamica, ma gli
utenti sembrano trovare questo metodo piuttosto scomodo.

2.5      Sistemi commerciali
In commercio si trovano molti sistemi di eye tracking, quasi tutti, però, si basano
su un solo illuminatore infrarosso: ciò riduce il costo dell’apparato, ma l’utilizzo

                                          15
2 – Eye tracking

     Figura 2.7.   Esempio di calibrazione statica con un numero crescente di punti

      Figura 2.8. Esempio di calibrazione dinamica: il punto si muove sullo scher-
      mo con un percorso casuale

è limitato a persone che possono controllare pienamente i movimenti della testa.
Infatti l’angolo visuale di questi apparati è molto ridotto e il sensore infrarosso
deve essere centrato sull’occhio. Per l’utilizzo di eye tracker da parte di particolari
tipologie di utenti (ad es. affetti da spasmi muscolari) si deve passare a soluzioni
dotate di più illuminatori e più sensori infrarosso che permettono di compensare il
movimento del capo.

   Riportiamo alcuni esempi di apparati commerciali tratti da un’analisi del net-
work di eccellenza COGAIN (9):

                                           16
2 – Eye tracking

    Modello             Funzionamento          Risoluzione spaziale          Costo
    VisionKey           Una serie di           La tastiera ha 49 posizio-    5.000 $
                        fotodiodi. Una         ni, può esserne seleziona-
                        combinazione           ta una di un sottoinsieme
                        di        riflessio-   di 16
                        ne corneale e
                        retinale.
    ERICA               VOG                0.5◦ (0.5-1 cm sullo scher-       8.000 $
                                           mo)
    The    Eyegaze      Approccio basa- 0.45◦ (0.63 cm sullo                 13.500 $
    Communication       to su luce visibi- schermo)
    System              le. Centro del-
                        la pupilla e ri-
                        flessione cornea-
                        le
    VISIOBOARD          VOG                risoluzione 0.1◦ , accura-        28.000 $
                                           tezza 0.30◦

   Di questi eye tracker è stato possibile testare ERICA, perchè è utilizzato presso
i laboratori del Politecnico: è molto funzionale in quanto si integra perfettamente
con Windows, permettendo di utilizzare questo sistema operativo come se si stesse
utilizzando un mouse (si può emulare anche il click fissando il punto desiderato sullo
schermo, oppure battendo la palpebra). Prima di essere utilizzato, deve, però, essere
tarato: si effettua la taratura fissando una serie di punti sullo schermo (da 4 a 24,
in base alla precisione desiderata); il sistema ha una certa tolleranza ai movimenti
del capo, ma se l’occhio esce dall’area inquadrata dalla telecamera il sistema può
perdere il tracciamento dell’occhio.

   Gli altri eye tracker presentati nella tabella sono molto simili a ERICA, ma il
prezzo di questi apparati è superiore in quanto forniscono misurazioni con un errore
medio più basso.

                                          17
2 – Eye tracking

2.6      Panoramica sugli algoritmi di eye tracking
Sono numerosi gli algoritmi di eye tracking proposti per l’analisi di immagini in
spettro visibile o infrarosso, ma devono essere distinti sulla base del fatto che alcuni
permettono un’analisi delle immagini in tempo reale, mentre altri, di solito più
precisi, hanno un tempo di elaborazione molto elevato.

2.6.1     Algoritmi in tempo reale
Vi sono numerosi algoritmi per l’eye tracking in tempo reale, molti di questi, per
ridurre il tempo di elaborazione, si occupano di ricercare la posizione dell’occhio
piuttosto che la posizione della pupilla. Uno dei problemi fondamentali che deve
essere risolto in questo tipo di algoritmi è la compensazione dei movimenti della
testa, che, altrimenti, causerebbero errori grossolani.
    Kawato e Tetsutani (13) propongono di estrarre la posizione degli occhi e trac-
ciarla nei fotogrammi successivi utilizzando opportuni template. Il primo passo
dell’algoritmo è la ricerca degli occhi: per rilevare la posizione degli occhi vengono
analizzate le differenze tra fotogrammi successivi, se la testa è immobile le uniche
differenze saranno quelle causate battito delle palpebre; se la testa, però, non è im-
mobile nasce il problema di distinguere le differenze causata dal movimento delle
palpebre da quelle causate dal movimento della testa. Per ovviare a questo proble-
ma Kawato e Tetsutani hanno effettuato alcune considerazioni: ad esempio nel caso
di movimento rotatorio della testa le aree con le differenze maggiori saranno sicu-
ramente vicine ai bordi del volto (se la rotazione è verso sinistra l’orecchio sinistro
scomparirà), perciò le aree che presentano grandi differenze e sono vicine ai bordi
del viso verranno eliminate (fig. 2.9). Dopo aver individuato gli occhi, l’algoritmo
si occupa di tracciarli: una semplice ricerca per aree corrispondenti non sarebbe ef-
ficace, visto che l’orientamento potrebbe essere diverso a causa dei movimenti della
testa. Perciò è stata sviluppata una tecnica che utilizza un template fisso che viene
inizializzato ad ogni occlusione, e un template variabile che viene aggiornato sulla
base del posizione degli occhi nel frame precedente: in questo modo si ottiene un
metodo di tracciamento molto efficace.
    Un approccio alternativo può essere un approccio basato sull’utilizzo di classifi-
catori binari: Amarnag et al. (15) propongono di utilizzare un classificatore binario
che è basato su di un training set dinamico e un stadio di clustering (che è lasciato

                                          18
2 – Eye tracking

   Figura 2.9. Immagine che rappresenta le differenze tra due fotogrammi successivi,
   i cerchi bianchi indicano le differenze attribuite al movimento delle palpebre

libero di evolversi per tracciare efficientemente la pupilla in tempo reale). L’utilizzo
di una strategia che si basa su un training set dinamico rende l’algoritmo insensibile
alla variazione delle condizioni di luce ed lo rende indipendente dall’utente che sta
effettivamente utilizzando il sistema. La prima fase di questo algoritmo consiste
nella selezione della regione di ricerca: vengono ricercate le aree dell’immagine con
alta saturazione (è noto che la regione dell’occhio ha colori con alta saturazione). I
pixel selezionati vengono analizzati con un classificatore Bayesiano che determina,
analizzando le componenti HSV, quali appartengano all’occhio e quali no. L’algorit-
mo di clustering è utilizzato per trattare il problema dal punto di vista geometrico:
il classificatore Bayesiano no è preciso e può classificare come appartenenti all’occhio
anche pixel appartenenti a regioni ad alta saturazione come i capelli dell’utente; con
l’algoritmo di clustering si raggruppano i pixel in macroaree e vengono scartati quelli
isolati. Vi è, infine, una fase di post elaborazione per raggruppare i cluster erronea-
mente separati e per eliminare i cluster in cui la differenza tra altezza e larghezza
è troppo elevata (non possono sicuramente rappresentare un occhio). In figura 2.10
sono rappresentate le fasi dell’algoritmo proposto da Amarnag.
    Un esempio algoritmo per eye tracking che utilizza reti neurali si trova nell’arti-
colo di Marcone et al. (16): nell’articolo è proposto l’utilizzo di un filtro di Gabor
per l’analisi locale, che ha la proprietà di determinare efficientemente la posizione

                                           19
2 – Eye tracking

   Figura 2.10. Sequenza delle operazioni effettuate dall’algoritmo di Amarnag: (a)
   output dopo il pre-processamento (b) output dopo il classificatore Bayesiano (c)
   output dopo l’algoritmo di clustering (d) risultato finale

degli occhi in un’immagine; questo filtro è implementato utilizzando da una rete
neurale competitiva (fig. 2.11). Viene determinata grossolanamente l’area in cui si
trova l’occhio: successivamente quest’area viene divisa in 9 zone, ciascuna delle quali
è legata ad un neurone della rete neurale. Inizialmente le 9 regioni sono posizionate
al centro dell’area in cui si è previsto essere l’occhio; la regione che vince la com-
petizione diventa il nuovo centro: il processo viene iterato finchè il centro rimane
stabile.

2.6.2     Algoritmi di analisi offline
Un esempio di algoritmo per l’analisi offline si trova nell’articolo di Ivins e Porril
(12): descrive un modello deformabile dell’iride umana adatto a tracciare accurata-
mente i movimenti tridimensionali dell’occhio riprese con una telecamera sensibile
all’infrarosso. Il modello è controllabile mediante 5 parametri che controllano la
traslazione (orizzontale e verticale), la rotazione, scalamento radiale e uniforme (per
modellare cambiamenti dell’ampiezza della pupilla). La misura di torsione effettuata
con questo modello ha un’accuratezza di 0,1◦ , ma il carico computazionale è molto

                                          20
2 – Eye tracking

    Figura 2.11.   Schema della rete neurale competitiva proposta da Marcone et al.

elevato. In figura 2.12 sono mostrati i primi nove modi di variazione che può avere
un modello dell’iride utilizzando una trasformazione cubica.

      Figura 2.12. Esempio di variazioni possibili di un modello deformabile
      dell’iride: 1 traslazione, 2 scalamento, 3-5 combinazione di trasformazioni,
      6-9 trasformazioni complesse

   Un’altra tecnica molto utilizzata in analisi offline consiste nel costruire un insieme

                                          21
2 – Eye tracking

di addestramento (training set) per l’algoritmo: si selezionano numerose immagini
degli occhi dai primi fotogrammi del filmato da analizare (fig. 2.13); queste im-
magini saranno utilizzate per addestrare una rete neurale, che avrà il compito di
ricercare la posizione degli occhi nei successivi fotogrammi. La fase di addestramen-
to è, quindi, computazionalmente molto complessa, ma secondo le analisi effettuate
da Pedersen e Spivey (14) automatizzando la creazione del training set e avendo
computer con un’elevata potenza di calcolo questa tecnica potrebbe essere utilizzata
anche in tempo reale.

   Figura 2.13. Training set utilizzato per addestrare la rete neurale utilizzata nel-
   l’algoritmo descritto da Pedersen e Spivey

                                          22
Capitolo 3

Ambiente di test

3.1      Introduzione
L’ambiente di test che deve analizzare le prestazioni di algoritmi di eye tracking deve
essere composto da un database di filmati, un’applicazione per gestire il database e
un’applicazione che permetta di implementare e analizzare gli algoritmi.
    Il database deve prevedere la possibilità di memorizzare numerose informazioni
per ogni singolo frame, quindi deve essere strutturato per poter gestire adeguatamen-
te una notevole mole di dati. Deve, altresı̀, essere strutturato in modo tale da poter
essere facilmente riutilizzato, perché lo scopo secondario per cui è stato costruito
questo database è renderlo disponibile a chi ne ha bisogno: su Internet, infatti, sono
disponibili alcuni database di filmati come, ad esempio, il CUAVE. Questi database
sono formati da filmati che ritraggono persone che parlano e sono riprese su sfondi
neutri o in movimento; questi filmati vengono utilizzati per tracciare caratteristiche
del volto (sopracciglia, naso) oppure il movimento delle labbra, ma non contengono
informazioni relativamente alla posizione di queste caratteristiche, manca perciò un
sistema di riferimento con cui confrontare le misure ottenute dagli algoritmi.
    La prima applicazione sviluppata (Tagger ) è stata strutturata per velocizzare
l’operazione di posizionamento dei riferimenti (tag) sui singoli frame, mentre la se-
conda (Benchmark ) è stata progettata per essere facilmente espandibile. Entrambe
le applicazioni utilizzano le librerie Qt (cap. A.2) e OpenCV (cap. A.3) e sono state
scritte in linguaggio C++: pur essendo state scritte in ambiente Windows possono
essere facilmente adattate per sistemi Linux, in quanto sia Qt che OpenCV sono

                                          23
3 – Ambiente di test

librerie portabili. La libreria Qt è stata scelta perchè permette di realizzare comode
interfacce grafiche senza appesantire inutilmente l’applicazione, mentre OpenCV è
stata scelta perché è una potente libreria per l’elaborazione di immagini ed è molto
utilizzata da chi si occupa di Computer Vision.

3.2      Database dei filmati
Per memorizzare le informazioni relative ai filmati si è scelto di utilizzare XML: è
un meta linguaggio che viene utilizzato per definire nuovi linguaggi, atti a descrivere
documenti strutturati. A differenza dell’HTML, non ha un insieme ben definito e
ristretto di tag, ma è possibile definirne di nuovi a seconda delle proprie esigenze. Si
è scelto XML proprio per la sua potenza: è infatti possibile descrivere una qualsiasi
struttura dati; inoltre, se un file XML utilizza solo attributi di tipo testo, è possibile
visualizzarlo ed editarlo con un semplice word processor.
     Un’ulteriore caratteristica che aumenta la portabilità di un documento XML è
la possibilità di definire una grammatica (DTD) con cui è possibile verificare che il
documento sia formalmente corretto e strutturato come previsto.
     Il database deve essere facilmente riutilizzabile, perciò si è scelto di non memo-
rizzare le informazioni in un unico documento, ma viene creato un file XML per ogni
filmato utilizzato: perciò chi vorrà analizzare uno specifico filmato dovrà semplice-
mente copiarsi il file video e il relativo file di dati, senza doversi procurare l’intero
database.

3.2.1     Struttura XML
Il file XML che contiene i dati relativi ad un filmato è strutturato in questo modo:

   • elemento “Video”; attributi: File name,LastModifiedFrame

         – elemento “Frame” (pari al numero di fotogrammi); attributi: Number
             ∗ elemento “Tag”; attributi:width,x,y,rotation,height,ishidden,type

   Vi è un elemento radice chiamato Video che è unico (l’unicità dell’elemento
radice è richiesta per creare un documento Well Formed): questo elemento avrà
una serie di nodi figli (chiamati Frame) che contengono le informazioni relative al

                                           24
3 – Ambiente di test

singolo fotogramma. Ogni elemento Frame contiene uno o più elementi Tag che
rappresentano le informazioni relative ai riferimenti posizionati sul fotogramma.
    Questo tipo di struttura è indipendente dal numero di fotogrammi e permet-
te di aggiungere facilmente nuovi elementi di tipo Tag, permettendo di utilizzare
riferimenti non previsti inizialmente.
    Gli attributi fondamentali che un tag deve avere sono: larghezza, altezza, coor-
dinate cartesiane del centro, il tipo (che permette di specificare a quale elemento del
volto si riferisce il tag) e una variabile che specifica se il tag è visibile o meno. Vi è
poi un attributo che specifica la rotazione, ma, per ora, è utilizzato solamente per
il tag relativo al naso: si è scelto di non utilizzare la rotazione per gli altri tag per
due semplici motivi:

   • le pupille sono sferiche e per adattare l’ellisse alla forma degli occhi si modifi-
     cano semplicemente gli assi principali

   • lavorando al computer l’utente mantiene la testa in verticali, non la inclina,
     perciò gli occhi sono mantenuti orizzontali e non serve inclinare l’ellisse per
     adattarlo agli occhi

    Attualmente ogni fotogramma contiene cinque elementi di tipo “Tag”: infatti
vengono memorizzati i riferimenti per il naso, per le pupille e per gli occhi. Quindi
la struttura di un singolo file sarà la seguente:

   • elemento “Video”

         – elemento “Frame” (pari al numero di fotogrammi)
              ∗ elemento “Tag”;contenente:width,x,y,rotation,height,ishidden,
                type=Nose
              ∗ elemento “Tag”; contenente:width,x,y,height,ishidden,type=EyeSX
              ∗ elemento “Tag”; contenente:width,x,y,height,ishidden,type=PupilSX
              ∗ elemento “Tag”; contenente:width,x,y,height,ishidden,type=EyeDX
              ∗ elemento “Tag”; contenente:width,x,y,height,ishidden,type=PupilDX

    Il naso verrà rappresentato come una linea retta, perciò verranno utilizzate solo
le informazioni relative a posizione e rotazione; gli altri tag verranno rappresentati
da un’ellisse, come in figura 3.1.

                                            25
3 – Ambiente di test

 Figura 3.1.   Il disegno raffigura la struttura dei tag che rappresentano occhi e pupille

    Di seguito viene riportato un esempio di come si presenta il file XML associato
al filmato visibile in figura 3.2:

< !DOCTYPE Video SYSTEM ” TagVideoEyeTracking . dtd ”>

                                            26
3 – Ambiente di test

3.2.2    DTD
Il DTD (Data Type Definition) è un linguaggio che permette di specificare formal-
mente quali elementi e quali tipi di attributi devono essere contenuti in un determi-
nato tipo di file XML; utilizzando il DTD è possibile verificare che il file XML sia
un file ben formato, ovvero che sia scritto secondo le regole dello standard XML e
che segua le specifiche fornite dal DTD.
    I file XML utilizzati nel database saranno di tipo TagVideoEyeTracking e segui-
ranno la seguente grammatica DTD:

< !ELEMENT Video ( Frame+)>
< !ATTLIST Video F ile na me CDATA #REQUIRED
LastModifiedFrame CDATA #REQUIRED>

< !ELEMENT Frame ( Tag+)>
< !ATTLIST Frame Number CDATA #REQUIRED>

                                         27
3 – Ambiente di test

< !ELEMENT Tag EMPTY>
< !ATTLIST Tag width CDATA #REQUIRED
x CDATA #REQUIRED
y CDATA #REQUIRED
h e i g h t CDATA #REQUIRED
i s h i d d e n ( Yes | No) #REQUIRED
type CDATA #REQUIRED
r o t a t i o n CDATA #IMPLIED>

   Come si può notare tutti gli attributi sono semplice testo, infatti sono di tipo
CDATA; l’attributo rotazione non è obbligatorio (infatti è dichiarato IMPLIED), in
quanto è utilizzato solo per il tag relativo al naso.

3.3      Tagger
Questa applicazione è stata sviluppata per posizionare i riferimenti su un filmato
in modo molto semplice e veloce, ed è stata pensata anche per utilizzi futuri: in-
fatti è possibile aggiungere nuovi tipi di tag, come,ad esempio, la posizione delle
sopracciglia.
    Come si può vedere nella figura 3.2 i tag che rappresentano occhi e pupille sono
rappresentati da ellissi, mentre la posizione del naso è rappresentata da una retta:
per migliorare l’individuazione dei tag sono stati utilizzati cinque colori con elevata
saturazione; l’origine del sistema di riferimento è posta nell’angolo in alto a sinistra
del fotogramma.
    Per elaborare il file XML vengono utilizzate le funzioni della libreria Qt. Il docu-
mento viene caricato completamente in memoria e per la navigazione viene utilizzato
un modello dati DOM: si è scelto di caricare tutto il documento DOM in memoria,
perchè, altrimenti, si sarebbe dovuto leggere il file ad ogni richiesta dati per un frame
non ancora visualizzato. Le funzioni della libreria Qt si occupano, inoltre, di verifi-
care che il documento sia ben formato utilizzando la grammatica DTD specificata
nel file XML (o in un file esterno). Se il file XML viene generato da un’applicazio-
ne esterna può contenere elementi o attributi aggiuntivi, perciò il file XML dovrà

                                           28
3 – Ambiente di test

  Figura 3.2.   Un fotogramma in cui sono visibili i tag relativi a pupille, occhi e naso

fare riferimento ad una nuova grammatica DTD che li specifichi; se, però, questo
file manterrà gli elementi base del tipo di documento TagVideoEyeTracking potrà
ancora essere utilizzato dalle applicazioni Tagger e Benchmark: infatti utilizzando
la struttura DOM si naviga il documento come se fosse un albero e si estraggono
solamente gli attributi previsti.

3.3.1    Interfaccia dell’applicazione
L’interfaccia dell’applicazione è molto semplice: un menu permette la gestione dei
file; un’area raggruppa i pulsanti dedicati alla navigazione tra i frame, mentre in
un’altra sono raggruppate le regolazioni relative alla luminosità e al contrasto del-
l’immagine. É inoltre visibile una piccola guida che ha la funzione di promemoria
per i comandi da tastiera.
     I tag possono essere comodamente spostati utilizzando direttamente il mouse,

                                            29
Puoi anche leggere