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



Documenti analoghi
Come costruire una presentazione. PowerPoint 1. ! PowerPoint permette la realizzazione di presentazioni video ipertestuali, animate e multimediali

Sistema di diagnosi CAR TEST

Sistema di ripresa con fotocamera digitale fissa Calibrazione

BIPLAB Biometric and Image Processing Laboratory. Eye Tracking Analisys

SOFTWARE PER LA RILEVAZIONE DEI TEMPI PER CENTRI DI COSTO

lo PERSONALIZZARE LA FINESTRA DI WORD 2000

Analisi e diagramma di Pareto

POLIAGE GUIDA RAPIDA

Capitolo 3. L applicazione Java Diagrammi ER. 3.1 La finestra iniziale, il menu e la barra pulsanti

Guida all uso di Java Diagrammi ER

5.2. Pipetta. 2: Lo strumento di luce/ombra

Manuale Amministratore Legalmail Enterprise. Manuale ad uso degli Amministratori del Servizio Legalmail Enterprise

Registratori di Cassa

Assistive Technologies. Tecnologie assistive

ControlloCosti. Cubi OLAP. Controllo Costi Manuale Cubi

Capitolo 13: L offerta dell impresa e il surplus del produttore

Domande a scelta multipla 1

SISTEMI MULTIAGENTE. Esercizio

CHIUSURE di MAGAZZINO di FINE ANNO


Capitolo V : Il colore nelle immagini digitali

EasyPrint v4.15. Gadget e calendari. Manuale Utente

Il controllo della visualizzazione

ELABORAZIONE DI DATI TRIDIMENSIONALI - RELAZIONE HOMEWORK 2

Librerie digitali. Video. Gestione di video. Caratteristiche dei video. Video. Metadati associati ai video. Metadati associati ai video

GUIDA RAPIDA PER LA COMPILAZIONE DELLA SCHEDA CCNL GUIDA RAPIDA PER LA COMPILAZIONE DELLA SCHEDA CCNL

La Videosorveglianza Criteri per il dimensionamento dello storage

. A primi passi con microsoft a.ccepss SommarIo: i S 1. aprire e chiudere microsoft access Start (o avvio) l i b tutti i pro- grammi

Modulo 3 - Elaborazione Testi 3.6 Preparazione stampa

Progettazione del robot

Agli operatori degli Uffici Passaporto

Lunghezza ocale. Donato Di Bello

FIRESHOP.NET. Gestione del taglia e colore.

Gestione Rapporti (Calcolo Aree)

Introduzione all analisi dei segnali digitali.

Mon Ami 3000 Varianti articolo Gestione di varianti articoli

SymCAD/C.A.T.S. modulo Canali Schema

Indice. Introduzione...6. Capitolo 1: Realtà virtuale e computer vision..10. Capitolo 2: Riconoscimento facciale..34

Gestione delle formazione

PowerPoint 2007 Le funzioni

GHPPEditor è un software realizzato per produrre in modo rapido e guidato un part program per controlli numerici Heidenhain.

Il sofware è inoltre completato da una funzione di calendario che consente di impostare in modo semplice ed intuitivo i vari appuntamenti.

Approccio stratificato

Nuovi oggetti grafici per la Visualizzazione del Tracker

Indice. pagina 2 di 10

e-dva - eni-depth Velocity Analysis

Sensori a effetto Hall bipolari con ritenuta stabilizzati e non stabilizzati con circuito chopper

Identificare le diverse parti di una finestra: barra del titolo, barra dei menu, barra degli strumenti, barra di stato, barra di scorrimento.

Laboratorio di Fisica 3 Ottica 2. Studenti: Buoni - Giambastiani - Leidi Gruppo: G09

Sistema operativo: Gestione della memoria

Animazioni 3D. Informatica Grafica I. Le basi dell'animazione 3D. Le basi dell'animazione 3D. Le basi dell'animazione 3D. Le basi dell'animazione 3D

Test percettivi per la valutazione del contrasto di immagini digitali

PROGETTO ESCAVATORE VIRTUALE

la restituzione prospettica da singolo fotogramma

MOCA. Modulo Candidatura. [Manuale versione 1.0 marzo 2013]

E possibile modificare la lingua dei testi dell interfaccia utente, se in inglese o in italiano, dal menu [Tools

2.0 Gli archivi. 2.1 Inserire gli archivi. 2.2 Archivio Clienti, Fornitori, Materiali, Noleggi ed Altri Costi. Impresa Edile Guida all uso

4. Fondamenti per la produttività informatica

Word è un elaboratore di testi in grado di combinare il testo con immagini, fogli di lavoro e

FPf per Windows 3.1. Guida all uso

Dispositivo di conversione di energia elettrica per aerogeneratori composto da componenti commerciali.

Con SIGNUM è possibile intervenire con diversi livelli di personalizzazione e controllo sui dati letti. In particolare SIGNUM può essere usato:

Calcolo Focale. Ing. Vincenzo Falanga

MANUALE D USO DELLA PIATTAFORMA ITCMS

7. Layer e proprietà degli oggetti

Sistema operativo. Sommario. Sistema operativo...1 Browser...1. Convenzioni adottate

GestVetrine 1.1 versione novembre 2014

Cosa è un foglio elettronico

3DE Modeling Color. E il modulo che si occupa della costruzione di modelli 3D con tessitura a colori.

MODULO STAMPA BOLLETTINO PDF

SPC e distribuzione normale con Access

La Visione Artificiale. La vis ione delle macchine La vis ione umana Acquis izione di immag ine

2.7 La cartella Preparazioni e CD Quiz Casa

Come creare il test di Yasso tramite l applicazione Training Center

gestione e modifica di immagini fotografiche digitali

Istruzioni per l installazione del software per gli esami ICoNExam (Aggiornate al 15/01/2014)

Database. Si ringrazia Marco Bertini per le slides

STRUMENTI PER L ACCESSIBILITÀ DEL COMPUTER.

AURORA LUCA MARTINA GIANLUCA

I MODULI Q.A.T. PANORAMICA. La soluzione modulare di gestione del Sistema Qualità Aziendale

APPLICATION SHEET Luglio

ANALISI SOSPENSIONI Modalità Base

PHOTOSHOP BREVE TUTORIAL

Plate Locator Riconoscimento Automatico di Targhe

Codifiche a lunghezza variabile

Guida. Macchina Scratch

Progetto Casa Mielli

[FINANZAECOMUNICAZIONE / VADEMECUM]

1. Introduzione. 2. Simulazioni elettromagnetiche per la misura del SAR

Manuale NetSupport v Liceo G. Cotta Marco Bolzon

Siamo così arrivati all aritmetica modulare, ma anche a individuare alcuni aspetti di come funziona l aritmetica del calcolatore come vedremo.

I COLORI DEL CIELO: COME SI FORMANO LE IMMAGINI ASTRONOMICHE

Cos è ND Rifiuti 2008?

ISTRUZIONI PER LA GESTIONE BUDGET

FUNZIONI DI IMPAGINAZIONE DI WORD

IMMAGINE BITMAP E VETTORIALI

TECNICHE DI SIMULAZIONE

Capitolo 9. Figura 104. Tabella grafico. Si evidenzia l intera tabella A1-D4 e dal menù Inserisci si seleziona Grafico. Si apre la seguente finestra:

Gestione dei segnali analogici nei sistemi di automazione industriale con PLC.

Rilievo morfologico del manto stradale

Transcript:

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

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

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

A.5 Filtri per immagini............................ 85 A.5.1 Filtro smooth........................... 85 A.5.2 Filtro sharpening......................... 86 3

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

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 nell 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

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 dell occhio................................... 62 5.5 Influenza del numero di feature utilizzate per l interpolazione dell ellisse nel caso di un filmato che riprende solamente l occhio...... 62 5.6 Influenza del numero di feature utilizzate per l interpolazione dell ellisse 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 ellisse nel caso di un filmato del volto, in condizioni di ottima luminosità 63 6

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 grafico è stato espanso per evidenziare i picchi secondari), in questo caso 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

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 periferiche a basso costo. Il sistema di eye tracking che verrà analizzato in questa tesi è costituito da una videocamera e un personal computer: la videocamera riprende 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

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 video: una webcam, una fotocamera digitale e una telecamera per videoconferenza. Sono state utilizzate queste tre tipologie, perchè possono essere considerate a basso costo: il prezzo di una normale webcam è di circa 20e mentre la telecamera per videoconferenza ha un costo di circa 800e. 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 inizialmente 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 applicazione è 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 fotogrammi/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 questo 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 analisi 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 effettuata 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 pupilla. 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 disponibile 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 addestramento: 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 contorno 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 alcuni parametri che consentono di deformarlo. La ricerca dell occhio nell immagine avverrà traslando e deformando il modello in relazione alle caratteristiche dell immagine. 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 ottimale 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 comportamento è 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 riducendone 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 ottenibile da sistemi a luce visibile è inferiore a quella ottenibile da sistemi a luce infrarossa, ma il miglioramento delle periferiche di acquisizione e il raffinamento degli 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 movimenti 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 input, 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 comprendere 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 costosa 1, infatti, oltre ad un illuminatore infrarosso, 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 è ridotto 2, 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 sull elettrooculogramma (EOG). Questa tecnica permette di rilevare i movimenti della pupilla misurando, con alcuni elettrodi, il potenziale elettrico in un area vicina all occhio; questo tipo di eye tracker è stato inizialmente utilizzato per rilevare i movimenti saccadici 3 durante la fase REM 4 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 movimenti 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 occhio; questi sistemi possono, però, intralciare i movimenti, perché normalmente vi 1 Il costo è dell ordine di 10.000e 2 Al di sotto dei 1000e 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 spostamenti 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 cornea (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 sistemi è 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 determina la direzione dello sguardo comparando le posizioni relative della pupilla e del riflesso corneale determinato da una luce incidente. Normalmente il sistema consiste 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 immagine 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 immagine completa del volto (fig. 2.5): questa è una variante semplificata della videooculografia 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 direzione dello sguardo e può essere rilevato ponendo degli elettrodi attorno all occhio. Tipicamente il sistema consiste in un apparato contenente strumenti per amplificare 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 funzionare, 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, naturalmente all aumentare del numero di punti aumenterà anche il tempo necessario alla calibrazione. Normalmente non è possibile scegliere la posizione dei punti sullo schermo: questa 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 utilizza 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 copertura 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 schermo 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 network di eccellenza COGAIN (9): 16

2 Eye tracking Modello Funzionamento Risoluzione spaziale Costo VisionKey Una serie di fotodiodi. combinazione di Una riflessione corneale e retinale. La tastiera ha 49 posizioni, può esserne selezionata una di un sottoinsieme di 16 The Eyegaze Communication System Approccio basato su luce visibile. Centro della pupilla e riflessione corneale ERICA VOG 0.5 (0.5-1 cm sullo schermo) 0.45 (0.63 cm sullo schermo) 5.000 $ 8.000 $ 13.500 $ VISIOBOARD VOG risoluzione 0.1, accuratezza 0.30 28.000 $ 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 tracciarla 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 è immobile nasce il problema di distinguere le differenze causata dal movimento delle palpebre da quelle causate dal movimento della testa. Per ovviare a questo problema Kawato e Tetsutani hanno effettuato alcune considerazioni: ad esempio nel caso di movimento rotatorio della testa le aree con le differenze maggiori saranno sicuramente 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 efficace, 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 classificatori 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 algoritmo 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 erroneamente 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 articolo 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 competizione 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 accuratamente 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 immagini saranno utilizzate per addestrare una rete neurale, che avrà il compito di ricercare la posizione degli occhi nei successivi fotogrammi. La fase di addestramento è, 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 nell 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 adeguatamente 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 seconda (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 memorizzare le informazioni in un unico documento, ma viene creato un file XML per ogni filmato utilizzato: perciò chi vorrà analizzare uno specifico filmato dovrà semplicemente 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 permette 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, coordinate 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 modificano 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