Studio e realizzazione di un sistema di puntamento oculare...

144
POLITECNICO DI TORINO Facoltà di Ingegneria Corso di Laurea in Ingegneria Informatica Dipartimento di Automatica e Informatica Studio e realizzazione di un sistema di puntamento oculare per l'accesso al computer da parte di disabili motori gravi Relatore: Ing. Fulvio CORNO Tesi di Laurea di: Isabella SIGNORILE Anno Accademico 2001/2002

Transcript of Studio e realizzazione di un sistema di puntamento oculare...

Page 1: Studio e realizzazione di un sistema di puntamento oculare ...elite.polito.it/files/thesis/fulltext/signorile.pdf · ... ovvero le cellule nervose del cervello e del ... nel giro

POLITECNICO DI TORINO

Facoltà di Ingegneria

Corso di Laurea in Ingegneria Informatica

Dipartimento di Automatica e Informatica

Studio e realizzazione di un sistema di

puntamento oculare

per l'accesso al computer

da parte di disabili motori gravi

Relatore: Ing. Fulvio CORNO

Tesi di Laurea di:

Isabella SIGNORILE

Anno Accademico 2001/2002

Page 2: Studio e realizzazione di un sistema di puntamento oculare ...elite.polito.it/files/thesis/fulltext/signorile.pdf · ... ovvero le cellule nervose del cervello e del ... nel giro

Sommario

Molte persone danno per scontato azioni come il parlare e il comunicare. Capacità

molto importanti nella vita di ogni giorno e in molti aspetti della vita di relazione, che

particolari tipi di disabilità possono influenzare, comportando graduali cambiamenti:

pertanto è importante essere consapevoli di come si possa mantenere una

comunicazione efficace.

A questo proposito il computer è una preziosa risorsa per creare ausili di

comunicazione potentissimi e personalizzati alle esigenze individuali, soprattutto per

le persone disabili, per le quali esso offre spazi di integrazione scolastica, lavorativa

e sociale.

Sembra doveroso prima di proseguire dare una definizione del termine ausilio

informatico: per ausilio informatico si intende un ambiente informatico utilizzato da

una persona disabile per prevenire, alleviare o eliminare una menomazione, disabilità o

handicap. Un adeguato ausilio di comunicazione è la porta d'accesso all'integrazione e

offre la possibilità di instaurare con chiunque un'interazione comunicativa.

Le difficoltà che una persona disabile si trova a dover affrontare variano in relazione

alle sue esigenze di vita e alle sue capacità residue. Ad esempio la persona può

sentirsi esclusa ed incompresa a causa della sua impossibilità ad instaurare delle

relazioni con il mondo esterno (la famiglia, gli amici, i colleghi, i compagni di scuola,

etc.) , tale condizione è, nella maggior parte dei casi, causata da una comunicazione

carente o assente.

Il computer è uno strumento di comunicazione, non solo per la persona disabile.

Le tecnologie nell'ambito dei supporti per disabili stanno assumendo sempre maggiore

importanza.

All'interno di questo settore, la presente tesi si colloca nella sottoarea specifica dei

supporti informatici per disabili motori gravi.

Page 3: Studio e realizzazione di un sistema di puntamento oculare ...elite.polito.it/files/thesis/fulltext/signorile.pdf · ... ovvero le cellule nervose del cervello e del ... nel giro

A questo proposito si accenna ad una particolare categoria di disabili : le persone

affette da Sclerosi Laterale Amiotrofica (SLA).

La SLA è una malattia neurologica, la più grave tra quelle che colpiscono i

motoneuroni, ovvero le cellule nervose del cervello e del midollo spinale che

controllano i muscoli. La malattia è caratterizzata dal fatto che i motoneuroni vanno

incontro a degenerazione e muoiono, la morte di queste cellule avviene gradualmente,

nel giro di mesi o anche di anni ed ha come conseguenza un progressivo indebolimento

muscolare ed infine la paralisi.

Con il progredire della malattia vengono a mancare capacità come il movimento ed il

parlare, che conducono il malato all'immobilità e all'impossibilità di comunicare.

La SLA colpisce solamente il sistema motorio e risparmia tutte le altre funzioni

neurologiche, inoltre sono raramente toccati i muscoli che controllano i movimenti

oculari.

Un malato di SLA, giunto ad un certo stadio della malattia, potrebbe quindi essere in

grado di esprimersi solamente più attraverso il movimento degli occhi. Da qui nasce

l'idea di utilizzare un ausilio di comunicazione che utilizzi il movimento oculare.

Un sistema di puntamento oculare è appunto un ausilio di questo genere.

I dispositivi standard di puntamento, come ad esempio il mouse o il joystick, sono

spesso difficilmente accessibili ad un disabile motorio per la difficoltà nel compiere

e coordinare i propri movimenti. Una possibile soluzione a questo problema è

rappresentata da un dispositivo che utilizzi lo sguardo come canale di comunicazione.

I primi sistemi basati sull'uso congiunto dell'elaboratore e dello sguardo come "fonte

di decisione" sono nati negli Stati Uniti.

La categoria di sistemi, di questo tipo, su cui si è concentrata la propria attenzione

nell'ambito dello sviluppo della tesi sono stati i sistemi ottici. I sistemi ottici si

basano sull'elaborazione dell'immagine dell'occhio dell'utente ripresa da una

telecamera posta sopra oppure sotto il monitor.

Come funziona un sistema ad inseguimento dell'occhio? Scopo del sistema è quello di

individuare su quale punto del video, del computer, è fissato lo sguardo dell'utente. Il

click del mouse è realizzato tramite una pausa di fissazione dell'occhio sul punto

desiderato. Dietro questo sistema di predizione dello sguardo dell'utente sta

Page 4: Studio e realizzazione di un sistema di puntamento oculare ...elite.polito.it/files/thesis/fulltext/signorile.pdf · ... ovvero le cellule nervose del cervello e del ... nel giro

ovviamente un software apposito che si occupa dell'acquisizione, dell'elaborazione

delle immagini e del calcolo della direzione dello sguardo.

Il lavoro di tesi svolto ha avuto infatti lo scopo di realizzare un software che fosse

in grado di predire la direzione dello sguardo dell'utente, limitatamente ad una

tabella di sei celle. La tabella in questione, che rimane visualizzata sullo schermo

durante tutto il tempo d'utilizzo del sistema, ha come unica finalità quella di

mostrare come funziona il sistema progettato, infatti ogni cella su cui l'utente fissa

il proprio sguardo si colora di rosso.

Viene presentato uno schema che mostra la struttura pensata e successivamente

ideata per il progetto:

Il punto di partenza è ovviamente l'acquisizione delle immagini con una webcam, per

realizzare questa operazione si sono utilizzate le funzioni di VFW (Video For

Windows). Ogni immagine acquisita viene trasformata in un'immagine binaria (dove

compaiono cioè solo i colori bianco e nero), dopodiché viene scandita e la

concentrazione di pixel neri viene analizzata in modo da individuare delle aree

specifiche all'interno dell'immagine.

Le due aree più importanti individuate dagli algoritmi sono quella contenente l'occhio

destro (si lavora solo sul movimento di un occhio) e quella contenente l'iride

dell'occhio. Il centro dell'iride coincide col centro della pupilla.

Page 5: Studio e realizzazione di un sistema di puntamento oculare ...elite.polito.it/files/thesis/fulltext/signorile.pdf · ... ovvero le cellule nervose del cervello e del ... nel giro

Gli algoritmi di rilevazione dell'occhio destro e del centro pupilla forniscono le

coordinate che identificano la posizione dell'occhio e del centro pupilla nell'immagine

catturata. L'algoritmo di rilevazione del riferimento fornisce invece le coordinate di

un punto di riferimento posto sulla fronte dell'utente (uno stampino nero) che

rappresenta l'origine di un sistema di riferimento comune a tutti i punti man mano

calcolati che vengono espressi in questo sistema di riferimento solidale col viso

dell'utente.

Ad ogni immagine acquisita corrisponderà quindi un punto indicante la direzione dello

sguardo (gaze) e ad una sequenza di immagini corrisponderà una sequenza di punti

(campioni) da cui l'algoritmo di calcolo della fissazione estrarrà le coordinate del

punto fissato. Tali coordinate vengono restituite dall'algoritmo solamente quando la

fissazione in questione risulta terminata e ne ha avuto inizio una nuova.

A questo punto l'algoritmo di predizione individuerà la cella della tabella da colorare

di rosso, cioè la cella fissata dall'utente, in base alle coordinate del punto di

fissazione calcolato dall'algoritmo precedente e in base anche ai risultati ottenuti da

una procedura di calibrazione.

Infatti ogni volta che l'utente intende utilizzare il sistema deve prima inizializzarlo

eseguendo questa procedura, in cui gli è richiesto di fissare il proprio sguardo su sei

differenti punti, ognuno dei quali corrispondente ad una cella della tabella.

Al termine della procedura il sistema è riuscito a memorizzare le coordinate dei sei

punti fissati dall'utente, che rappresentano una sorta di "mappa" del video a cui

l'algoritmo di predizione si riferisce per riuscire ad determinare su quale delle sei

celle fosse indirizzato lo sguardo dell'utente.

La durata della pausa di fissazione richiesta, affinché gli algoritmi riescano a

calcolare il punto fissato, è paria a 2 - 3 secondi, quindi se l'utente sceglie di "far

colorare" una cella della tabella deve mantenere il suo sguardo fisso su di essa per

almeno 2 - 3 secondi.

Il numero di campioni elaborati al secondo dal sistema è 2,67 campioni al secondo.

Sicuramente le modifiche e i miglioramenti da apportare al lavoro sono ancora molti e

questo al fine di renderlo un sistema realmente ed utilmente utilizzabile da un

disabile motorio grave, come può essere un malato di SLA.

Page 6: Studio e realizzazione di un sistema di puntamento oculare ...elite.polito.it/files/thesis/fulltext/signorile.pdf · ... ovvero le cellule nervose del cervello e del ... nel giro

Lo sviluppo di questo progetto mi ha permesso di avvicinarmi ad un mondo che spesso,

per distrazione o superficialità, si è portati a trascurare. Senza conoscerlo è

difficile capire quali siano gli ostacoli che un disabile motorio grave incontra.

Più ci si addentra in questo mondo è più nascono idee su come poter in futuro

ampliare il sistema per fornire un controllo dell'elaboratore, e non solo, sempre

maggiore.

La speranza è quella di poter integrare il software realizzato con un software di

comunicazione che permetta di creare le condizioni affinché il disabile abbia

l'opportunità di comunicare in modo efficace ovvero di tradurre il proprio pensiero in

una serie di segni intelligibili per l'interlocutore.

Molto è stato fatto nel campo della disabilità motoria, ma purtroppo i risultati

maggiori si sono avuti prevalentemente all'estero. Non sempre è immediata la

possibilità di utilizzare materiale proveniente da altri paesi, questo a causa di

incompatibilità di simboli, lingua e abitudini.

E' per questo motivo che si rende sempre più urgente la necessità di sviluppare

materiale accessibile anche in Italia dove purtroppo le realizzazioni proposte sono

ancora insufficienti.

Questa tesi ha la speranza di porre delle basi su cui sviluppare ampliamenti futuri in

questo senso.

Page 7: Studio e realizzazione di un sistema di puntamento oculare ...elite.polito.it/files/thesis/fulltext/signorile.pdf · ... ovvero le cellule nervose del cervello e del ... nel giro

Ringraziamenti

Devo un doveroso ringraziamento a tutti coloro che hanno reso possibile la

realizzazione di questo progetto.

In primo luogo ai miei genitori per il sostegno e l'incoraggiamento che hanno saputo

darmi in questi cinque anni di studio.

Ringrazio Lorenzo DeFilippis per avermi aiutato nel reperimento della necessaria

bibliografia e per avermi permesso di addentrarmi in questo particolare ambito

sociale, al fine del completamento dei miei studi.

Ringrazio inoltre Luca Federzoni (tecnico informatico) per la sua disponibilità e

l'assistenza tecnica fornitami durante la progettazione del software.

Ringrazio il mio relatore, il professor Fulvio Corno per la disponibilità e la pazienza

con cui mi ha seguito durante lo svolgimento di questa tesi.

Infine un grazie a tutte le persone che mi hanno dimostrato la loro fiducia e il loro

appoggio.

Page 8: Studio e realizzazione di un sistema di puntamento oculare ...elite.polito.it/files/thesis/fulltext/signorile.pdf · ... ovvero le cellule nervose del cervello e del ... nel giro

Indice

SOMMARIO 3

RINGRAZIAMENTI 9

INDICE 11

1. INTRODUZIONE 16

2. STATO DELL'ARTE 22

2.1 INTRODUZIONE 22

2.2 BREVE STORIA DEL SOFTWARE ACCESSIBILE 23

2.3 SOFTWARE ACCESSIBILE 30

2.3.1 AUSILI INFORMATICI 30

2.3.2 CONVEGNI 34

3.INTRODUZIONE AI SISTEMI EYE-TRACKING 36

3.1 INTRODUZIONE 36

3.2 COMUNICAZIONE AUMENTATIVA ED ALTERNATIVA 37

3.3 SCELTA DELLO SGUARDO COME CANALE DI COMUNICAZIONE 40

Page 9: Studio e realizzazione di un sistema di puntamento oculare ...elite.polito.it/files/thesis/fulltext/signorile.pdf · ... ovvero le cellule nervose del cervello e del ... nel giro

Indice

3.4 CONDIZIONI D'USO DI UN SISTEMA A PUNTAMENTO OCULARE DA PARTE

DI PERSONE AFFETTE DA DISABILITA' FISICHE 43

3.5 SOMMARIO 46

4. DESCRIZIONE DELLA STRUTTURA DEL SISTEMA PROGETTATO 48

4.1 INTRODUZIONE 48

4.2 ANALISI E SPECIFICA DEI REQUISITI 49

4.3 SOLUZIONE DEL PROBLEMA 50

4.4 PROGETTO LOGICO 51

4.4.1 ACQUISIZIONE PERIODICA DELLE IMMAGINI DALLA WEBCAM 54

4.4.2 RILEVZIONE POSIZIONE DELL'OCCHIO E DELLA PUPILLA 58

4.4.3 INDIVIDUAZIONE DEL RIFERIMENTO E DETERMINAZIONE DELLA

DIREZIONE DELLO SGUARDO 65

4.4.4 CALCOLO PUNTO DI FISSAZIONE 70

4.4.5 INDIVIDUAZIONE DELL'AREA FISSATA 73

4.5 LA PROCEDURA DI INIZIALIZZAZIONE DEL SISTEMA:

LA CALIBRAZIONE 74

5. REALIZZAZIONE SPERIMENTALE DEI SINGOLI MODULI

DEL SISTEMA 80

5.1 INTRODUZIONE 80

5.2 LINGUAGGIO DI PROGRAMMAZIONE E LIBRERIE 81

5.3 REALIZZAZIONE DEL SOFTWARE 82

5.3.1 SUPPORTI ALL'IMPLEMENTAZIONE DI UNA

APPLICAZIONE DIMOSTRATIVA 83

Page 10: Studio e realizzazione di un sistema di puntamento oculare ...elite.polito.it/files/thesis/fulltext/signorile.pdf · ... ovvero le cellule nervose del cervello e del ... nel giro

Indice

5.3.2 IMPLEMENTAZIONE DEL SOFTWARE 85

5.3.2.1 RAPPRESENTAZIONE SCHEMATICA DEI MODULI

DEL PROGETTO 87

5.3.2.2 DESCRIZIONE DEI DIVERSI MODULI DEL

PROGETTO 89

5.3.2.3 BREVE DESCRIZIONE DEI FILE

D'INTESTAZIONE DEL SISTEMA 99

6. VALUTAZIONI 103

6.1 INTRODUZIONE 103

6.2 INDIVIDUAZIONE DI CATEGORIE DI DISABILITA' 104

6.3 UTILIZZO DEL SISTEMA 106

6.3.1 PRESENTAZIONE DEL SISTEMA 106

6.3.2 ANALISI DEI DATI OTTENUTI DA UNA PROVA DI

UTILIZZO DEL SISTEMA 110

6.4 VALUTAZIONI TECNICHE: FATTORI DI QUALITA' 113

7. DIREZIONI FUTURE DI RICERCA 118

7.1 INTRODUZIONE 118

7.2 POSSIBILITA' DI APPLICAZIONE PER NORMODOTATI 119

7.3 MIGLIORAMENTI FUTURI PREVISTI 121

7.4 POSSIBILITA' DI APPLICAZIONE DA PARTE DI MALATI DI SLA 123

8. CONCLUSIONI 126

Page 11: Studio e realizzazione di un sistema di puntamento oculare ...elite.polito.it/files/thesis/fulltext/signorile.pdf · ... ovvero le cellule nervose del cervello e del ... nel giro

Indice

9. BIBLIOGRAFIA 128

APPENDICI

APPENDICE A. AUSILI INFORMATICI E TECNOLOGIE PER DISABILI 132

APPENDICE B. SISTEMI DI PUNTAMENTO OCULARE 139

APPENDICE C. ANATOMIA E FISIOLOGIA DELL'OCCHIO UMANO, MOVIMENTI

OCULARI 147

APPENDICE D. ELABORAZIONE ED ANALISI DELL'IMMAGINE 153

APPENDICE E. CODICE SORGENTE DEI MODULI DEL SISTEMA 159

Page 12: Studio e realizzazione di un sistema di puntamento oculare ...elite.polito.it/files/thesis/fulltext/signorile.pdf · ... ovvero le cellule nervose del cervello e del ... nel giro

16

1 Introduzione

Il problema dell’integrazione dei disabili e dei portatori di handicap in generale, è

oggi di grande attualità.

Spesso una persona disabile soffre per la sua impossibilità ad instaurare delle

relazioni con il mondo esterno (la famiglia, gli amici, i colleghi, i compagni di scuola,

etc.) , tale condizione è, nella maggior parte dei casi, causata da una comunicazione

carente o assente.

Infatti comunicare è sinonimo di relazione, una relazione è sempre comunicativa.

Il computer è uno strumento di comunicazione, non solo per la persona disabile.

Oggigiorno l'utilizzo dell'elaboratore è molto diffuso nei centri di assistenza per

disabili di ogni genere, mentali e motori. Le tecnologie nell'ambito dei supporti per

disabili stanno assumendo sempre maggiore importanza.

All'interno di questo settore, la presente tesi si colloca nella sottoarea specifica dei

supporti informatici per disabili motori gravi.

Lo scopo della presente tesi è quello di fornire un sistema software che funzioni da

emulatore di mouse, (la parte hardware non richiede nient'altro che una webcam e

ovviamente un computer) e che permetta all'utente disabile di controllare con il

proprio sguardo ciò che avviene sul video.

L'utilizzo di tale sistema andrà poi affiancato a quello di un software di

comunicazione appropriato.

Si fa infatti riferimento alla comunicazione alternativa, cioè a quell'insieme di

strategie di comunicazione alternative alla comunicazione verbale e grafica.

Per quando riguarda le informazioni raccolte nel campo dei supporti informatici per

disabili motori gravi e in particolare sui sistemi di puntamento oculare, si è fatto per

la maggior parte ricorso a documenti reperiti in Internet.

Page 13: Studio e realizzazione di un sistema di puntamento oculare ...elite.polito.it/files/thesis/fulltext/signorile.pdf · ... ovvero le cellule nervose del cervello e del ... nel giro

17

Capitolo 1: Introduzione

Testi scritti, riguardanti ausili informatici e tecnologie per disabili e trattanti il

problema di disabilita' ed accessibilità, sono invece stati forniti dall'EasyLabs di

Torino.

Come già spiegato sopra, lo scopo della tesi è quello di fornire il prototipo di un

sistema a puntamento oculare, che permetta ad un disabile motore grave l'accesso

all'elaboratore senza utilizzare i dispositivi standard di selezione (mouse e tastiera),

che spesso richiedono una fermezza nei movimenti non presente nel disabile.

Per raggiungere questo obiettivo è stato realizzato un sistema capace di individuare,

quale, tra diverse aree, sia quella fissata dall'utente sul video.

La scelta dello sguardo come canale di comunicazione non è casuale: in passato e

anche tuttora uno dei sistemi utilizzati per comunicare con persone che non sono in

grado, a causa delle loro disabilità, di usufruire di altri strumenti comunicativi (la

parola, la scrittura, sistemi di accesso all computer che prevedono l'uso degli arti, sia

inferiori che superiori), è l'écran. Questo è un sistema che si basa appunto

sull'utilizzo di una lastra di plexiglass trasparente su cui sono riportate le lettere

dell'alfabeto. La lastra viene posta tra il

disabile e l'interlocutore, il quale deve capire su quale lettere si posa lo sguardo

dell'altra persona.

Con l'esperienza si raggiunge una buona velocità di composizione delle parole:

sfruttando la

rapidità dell'occhio si possono scambiare notevoli quantità di informazioni.

Un tale sistema ha però molti limiti, fra cui quello di poter comunicare soltanto con

interlocutori esperti ed "allenati" ed inoltre l'impossibilità di poter parlare a più di

una persona per volta.

I sistemi ad inseguimenti dell'occhio che si basano sull'elaborazione delle immagini

sono di gran lunga più accurati ed affidabili.

Esistono in commercio due categorie di prodotti: dispositivi da fissare al capo

dell'utente oppure dispositivi "remoti", come ad esempio telecamere montate sopra o

sotto il monitor del computer.

Page 14: Studio e realizzazione di un sistema di puntamento oculare ...elite.polito.it/files/thesis/fulltext/signorile.pdf · ... ovvero le cellule nervose del cervello e del ... nel giro

18

Capitolo 1: Introduzione

Quest'ultima possibilità è forse preferibile, in quanto nulla è fisicamente collegato

all'utente, che, in questo modo, si sente più a suo agio.

Il sistema sviluppato durante la tesi funziona da emulatore di mouse, dove il "clik"

(selezione di una determinata area) è realizzato tramite una pausa di fissazione dello

sguardo sul punto dello schermo che l'utente desidera attivare.

Il prototipo realizzato come progetto di tesi prevede la possibilità di distinguere in

quale zona del video sia indirizzato lo sguardo della persona.

E' previsto che sul video venga mostrata, all'utente del sistema, una tabella

composta da sei elementi (zone), questo significa che l'algoritmo di rilevazione delle

fissazioni individuerà non il punto fissato dall'utente, ma l'area entro cui cade il suo

sguardo .

Tutti gli algoritmi realizzati per il progetto del sistema sono stati scritti in

linguaggio C.

Avendo finora illustrato come è realizzato il sistema e quale sia il suo scopo, c'è da

aggiungere che esso è destinato ad una particolare categoria di disabili: le persone

affette da Sclerosi Laterale Amiotrofica (SLA).

La SLA è una malattia fatale, degenerativa, che colpisce i motoneuroni, cioè le cellule

nervose del cervello e del midollo spinale che controllano i muscoli.

Questa malattia comporta l'indurimento (Sclerosi) della porzione laterale (Laterale)

del midollo spinale e dimagrimento (Amiotrofica) muscolare.

In Francia è detta Malattia di Charcot, dal nome del neurologo che la identificò per

primo nel 1869. Nei paesi i lingua inglese si chiama ALS (Amyotrophic Lateral

Sclerosis) oppure MND (Moto Neuron Disease). Negli USA è anche nota come

malattia di Lou Gehring, famoso giocatore di baseball che contrasse la malattia nel

1939, all'apice della sua carriera agonistica.

In Italia è una malattia neurologica poco conosciuta.

A causa della SLA i motoneuroni muoiono prima del tempo, provocando alla persona

colpita un progressivo indebolimento muscolare e conducendola alla paralisi, ma i

Page 15: Studio e realizzazione di un sistema di puntamento oculare ...elite.polito.it/files/thesis/fulltext/signorile.pdf · ... ovvero le cellule nervose del cervello e del ... nel giro

19

Capitolo 1: Introduzione

primi segni della malattia compaiono solo quando la perdita progressiva dei

motoneuroni supera la capacità di compenso dei motoneuroni superstiti.

Generalmente la SLA colpisce persone adulte di entrambi i sessi, in un'età compresa

fra i 40 e i 70 anni.

Le cause della malattia sono ancora sconosciute, sicuramente è determinata da più

circostanze: si ipotizza che una certa predisposizione genetica e più fattori

ambientali debbano interagire. In ogni caso non può essere considerata ereditaria.

Il primo sintomo della SLA è una progressiva perdita di forza, che può riguardare

tutti i movimenti dei muscoli volontari. Oltre alla debolezza si possono avvertire

rigidità (spasticità), contrazioni muscolari involontarie, a volte anche dolorose

(crampi).

La SLA può alterare il controllo muscolare delle strutture che intervengono nella

parola, comportando varie difficoltà nella comunicazione.

La malattia colpisce solo il sistema nervoso e risparmia tutte le altre funzioni

neurologiche: le funzioni mentali, sensoriali, sessuali, il controllo di vescica ed

intestino sono preservati.

Quando la mobilità agli arti superiori , l'abilità di scrittura e la parole vengono

gravemente compromesse, è necessario utilizzare strumenti alternativi di

comunicazione.

In genere le persone colpite da SLA sono comunque in grado di controllare il

movimento degli occhi, che, ad un certo stadio della malattia, può rappresentare

l'unica modalità che permette al paziente di interagire ancora con gli altri e con il

computer. Il computer può

rappresentare maggiore libertà di espressione, tramite esso si possono esprimere

opinioni, domande, risposte, richieste, affermazioni e sentimenti.

E' necessario tenere presente che qualora si usi un metodo di comunicazione

alternativa,

questo sarà lento. Tuttavia non vi sono limiti a ciò che si può comunicare: Stephen

Hawking, un noto fisico affetto da SLA, grazie ad uno strumento di comunicazione

Page 16: Studio e realizzazione di un sistema di puntamento oculare ...elite.polito.it/files/thesis/fulltext/signorile.pdf · ... ovvero le cellule nervose del cervello e del ... nel giro

20

Capitolo 1: Introduzione

alternativa è in grado di tenere conferenze ed ha inoltre scritto molti testi

diffusamente letti.

La tesi è strutturata nel modo seguente.

Nel capitolo due si mostra lo stato dell'arte evidenziando quale sia stato il punto di

partenza di questo lavoro e quali siano state le motivazioni che hanno portato allo

sviluppo di tale sistema.

Nel capitolo tre si illustra come è stato impostato il problema di ricerca, aprendo

anche una finestra sul mondo della disabilità fisica e sulle difficoltà che un disabile

motore grave incontra nell'utilizzo di un elaboratore.

Nel capitolo quattro si mostra come è stato affrontato concettualmente il problema,

giungendo, mediante una scomposizione in sottoinsiemi più semplici, alla

rappresentazione dell'architettura del sistema.

Nel capitolo cinque si illustra il progetto sotto un punto di vista tecnicamente più

specifico, discutendo su ciò che si è realizzato materialmente.

Nella sezione sei si descrivono le attività sperimentali svolte che hanno permesso una

valutazione critica del sistema.

Nella sezione sette vengono approfondite le prospettive future di ricerca.

Nelle conclusioni si riassumono gli scopi, le valutazioni di questi e le prospettive

future.

Page 17: Studio e realizzazione di un sistema di puntamento oculare ...elite.polito.it/files/thesis/fulltext/signorile.pdf · ... ovvero le cellule nervose del cervello e del ... nel giro

22

2 Stato dell'arte

2.1 INTRODUZIONE

Fare la storia della legislazione in favore dei disabili significa anche fare la storia

della condizione delle persone handicappate e capire meglio come, quando e quanto

sono cambiate nel nostro Paese la concezione dell’handicap e soprattutto la

condizione di quanti ne sono portatori.

In questo sguardo retrospettivo non occorre tornare molto indietro: basta fermarsi

alla fine del secolo scorso e agli inizi del ‘900.

E’ soltanto a partire da questo periodo che si comincia a delineare un quadro

evolutivo della normativa in questo settore.

Come si vedrà in seguito si tratta di un’evoluzione lenta, complessa, frammentaria, a

volte contraddittoria e che soltanto con adeguate forzature possiamo

completamente considerare a favore dei portatori di handicap.

Page 18: Studio e realizzazione di un sistema di puntamento oculare ...elite.polito.it/files/thesis/fulltext/signorile.pdf · ... ovvero le cellule nervose del cervello e del ... nel giro

23

Capitolo 2: Stato dell'arte

2.2 BREVE STORIA DEL SOFTWARE ACCESSIBILE

Nel 1984 l'Ufficio del Servizio di Educazione Speciale e Riabilitazione del

dipartimento dell'Educazione Statunitense insieme alla Casa Bianca prese l'iniziativa

di condurre un processo che portasse i produttori degli elaboratori e del software e

gli utilizzatori a riflettere sulla questione riguardante l'accesso e l'uso

dell'elaboratore e del software da parte di persone con disabilità.

Il primo incontro di tale iniziativa si tenne nel Febbraio del 1984 presso la Casa

Bianca.

Il risultato ottenuto fu il riconoscimento del problema dell'accessibilità ad un

ambiente informatico di comune utilizzo e la richiesta, da parte dei produttori, di

ulteriori informazioni inerenti ai tipi di disabilità, alle limitazioni che incontra una

persona disabile nell'utilizzare un elaboratore tradizionale, alle strategie che

avrebbero potuto incrementare l'usabilità dell'elaboratore stesso.

L'accesso al computer e ai programmi software deve garantire a chiunque, incluse le

persone disabili, la possibilità di usare vantaggiosamente la tecnologia in ambito

lavorativo, educativo e ricreativo.

In seguito all'incontro di febbraio, fu stesa la prima versione della White Paper che

venne distribuita come preparazione per un secondo incontro tenutosi il 24-25

ottobre 1985.

Risultato di questo secondo incontro fu la formazione di un gruppo di lavoro volto ad

identificare e documentare idee e considerazioni aventi lo scopo di incrementare

l'accessibilità degli elaboratori standard da parte sia di persone disabili, che

normodotate.

A grandi linee il problema generale può essere suddiviso in una serie di questioni più

semplici:

� Una porzione importante della popolazione presenta delle disabilità (acquisite

alla nascita, o in seguito ad un incidente, a causa di una malattia o semplicemente

dovute alla vecchiaia) che impediscono loro di utilizzare i computer standard e i

software tradizionali.

Page 19: Studio e realizzazione di un sistema di puntamento oculare ...elite.polito.it/files/thesis/fulltext/signorile.pdf · ... ovvero le cellule nervose del cervello e del ... nel giro

24

Capitolo 2: Stato dell'arte

� I costi per le modifiche necessarie da apportare agli elaboratori, per venire

incontro alle esigenze delle persone disabili, sarebbero non eccessivi o

addirittura irrisori ed incrementerebbero il numero di possibili utenti.

� La caratteristica di accessibilità di un prodotto ne rende anche più semplice

l'utilizzo da parte delle persone non disabili, in quanto queste possono usufruire

di benefici quali minor fatica, maggiore velocità e minor probabilità d'errore.

� La maggior parte delle modifiche al design dovrebbero realizzarsi gratuitamente

oppure ad un prezzo contenuto, per ottenere un beneficio diretto sul mercato di

massa.

� La maggior parte dei cambiamenti necessari a rendere un prodotto accessibile

dovrebbero già essere inclusi direttamente nel prodotto stesso.

La White Paper rappresenta il primo passo compiuto dalle industrie del software per

andare incontro alle esigenze dei disabili.

Lo scopo di questo documento è triplice.

In primo luogo si propone di informare le persone che operano nel campo della

riabilitazione.

In secondo luogo di documentare l'importanza e le ragioni del software accessibile.

Infine di riuscire a sensibilizzare i produttori stimolandoli a lavorare, al fine di

garantire alle persone disabili la possibilità di usufruire di tutte le prestazioni in

condizioni di adeguata affidabilità ed autonomia.

Ma che cosa si intende per accessibilità?

L'accessibilità si riferisce alla progettazione dell'ambiente costruito, dei prodotti e

dei servizi di uso generale in modo che questi possano essere utilizzati agevolmente

dalla più ampia percentuale di popolazione, incluse le persone disabili od anziane.

Più specificatamente per accessibilità informatica si intende la possibilità, anche da

parte di persone con impedita capacità motoria, di accedere ad un ambiente

Page 20: Studio e realizzazione di un sistema di puntamento oculare ...elite.polito.it/files/thesis/fulltext/signorile.pdf · ... ovvero le cellule nervose del cervello e del ... nel giro

25

Capitolo 2: Stato dell'arte

informatico di comune utilizzo e di fruire di tutte le prestazioni in condizioni di

adeguata affidabilità ed autonomia.

Il 26 luglio 1990 di fronte a tremila persone il Presidente Bush firmò la legge ADA

(the Americans with Disabilities Act), la prima legge al mondo riguardante i diritti

civili delle persone disabili.

La frase pronunciata dal Presidente in quell'occasione - "Let the shamful walls of

exclusion finally come tumbling down" - sintetizza il messaggio della legge ADA:

milioni di Americani disabili avevano trovato una protezione legale che assicurava loro

uguali opportunità ed accesso alla vita pubblica americana.

Oggi in Europa 37 milioni di cittadini soffrono varie forme di handicap.

L'Italia, in base ad una stima della Divisione della popolazione dell'ONU, è fra i paesi

a elevato tasso di invecchiamento per la più alta percentuale di ultrasessantenni

(24%) e per la più bassa percentuale (14%) di giovani di età inferiore ai 15 anni. In

base alle previsioni dell'Istituto di ricerche sulla popolazione del CNR in futuro nel

nostro paese ci saranno 17 milioni di anziani e 8-9 milioni di giovani.

E' evidente l'importanza crescente del tema della disabilità negli anni a venire. Il

progressivo invecchiamento della popolazione italiana, infatti, rende necessari

interventi, anche attraverso tecnologie innovative, per migliorare le condizioni di vita

delle persone che, a causa dell'età, soffrono di disabilità di varia natura.

La continua innovazione tecnologica è riuscita a raggiungere risultati di rilievo,

garantendo a molti disabili una vita uguale a quella delle persone normodotate:

studiano, lavorano, viaggiano e praticano sport perfino a livello agonistico.

In futuro la società si dovrà porre l'obiettivo di ricercare una sempre migliore

integrazione dei disabili.

Page 21: Studio e realizzazione di un sistema di puntamento oculare ...elite.polito.it/files/thesis/fulltext/signorile.pdf · ... ovvero le cellule nervose del cervello e del ... nel giro

26

Capitolo 2: Stato dell'arte

CLASSIFICAZIONE DELLE DISABILITA'

Finora si è parlato di disabilità senza specificare cosa si intendesse con questo

termine.

Disabilita' è la limitazione, più o meno grave, della capacità di assolvere compiti e

soddisfare bisogni in modo adeguato, a causa di menomazioni (qualsiasi perdita o

anomalia a carico di strutture o funzioni psicologiche, fisiologiche o anatomiche) o

danni, singoli e multipli.

Si riporta di seguito una suddivisione per tipo di handicap, al fine di chiarire il

conteso specifico.

� Disabilità fisica: un individuo che presenta tale disabilità incontra diverse

limitazioni nell'uso dei dispositivi standard di input dell'elaboratore. La causa di

tali problemi è dovuta ad un basso controllo muscolare, alla debolezza e alla

fatica, alla difficoltà a provare sensazioni tattili, ad afferrare oggetti ed in

genere a compiere operazioni complesse (ad esempio premere e ruotare). Per una

persona affetta ad esempio da paralisi celebrale o sclerosi multipla o distrofia

muscolare, i movimenti rotatori possono risultare molto difficili od impossibili.

Queste persone devono quindi poter utilizzare ausili che sfruttino le loro abilità

residue. La possibilità di collegare dispositivi di input alternativi permette

l'accesso ad un elaboratore anche a persone con disabilita' motorie più gravi. Le

cause più comuni di questo tipo di disabilità sono:

danni alla spina dorsale (paraplegia, tetraplegia), traumi celebrali, ictus celebrali,

mancanza di arti o dita (per amputazioni o difetti di nascita), morbo di Parkinson,

sclerosi multipla, sclerosi laterale amiotrofica (SLA), distrofia muscolare.

� Disabilità visiva: in questa categoria di disabilità rientrano persone aventi una

vista molto debole, quelle colpite da istagmo ed infine quelle cieche. I problemi

più comuni sono: vista offuscata, presbiopia, miopia, mancanza di visione

periferica, sensibilità anormale alla luce, diminuzione di vista notturna, etc.

Page 22: Studio e realizzazione di un sistema di puntamento oculare ...elite.polito.it/files/thesis/fulltext/signorile.pdf · ... ovvero le cellule nervose del cervello e del ... nel giro

27

Capitolo 2: Stato dell'arte

Secondo il trend demografico, che indica un aumento della popolazione anziana, i

problemi legati a questo tipo di disabilita' aumenteranno certamente nei prossimi

anni. I problemi principali che questa categoria di disabili presenta, nell'utilizzo

di un elaboratore, sono legati alla loro difficoltà nel visualizzare testi ed

immagini sullo schermo o nell'utilizzare strumenti in cui le operazioni da compiere

sono dipendenti dalla capacità visiva dell'utente (ad esempio il mouse) oppure il

cui sistema di input sia basto sul video (ad esempio touschscreen). Per le persone

che presentano ancora capacità visive residue, un aiuto può essere rappresentato

da caratteri molto grandi e elevati contrasti di colore.

Se invece i problemi di vista sono più seri si può ricorrere all'utilizzo del braille

oppure agli screen reader , che sono programmi aventi la funzione di lettore

vocale. Questi programmi utilizzano cioè un sintetizzatore vocale che legge il

testo scritto sul video ed emette una serie di messaggi vocali interattivi, che

facilitano l'organizzazione dei percorsi e permettono all'utente non vedente di

muoversi con sicurezza all'interno dei dati contenuti nel computer.

� Disabilità uditiva: in questa categoria di disabilita' sono compresi ogni tipo e

grado di disturbo uditivo. Problemi di udito si riscontrano in persone di ogni età,

ma sono comunque una delle principali conseguenze del processo 'invecchiamento.

L'individuo colpito da tale disabilita' incontra poche difficoltà nell'utilizzo di un

elaboratore, in quanto gli output sonori possono essere sostituiti con immagini

grafiche, ovviamente c'è da tenere in considerazione i problemi di linguaggio che

una persona sordomuta può dover affrontare.

� Disabilità cognitiva: la persona colpita da tale disabilità può presentate diversi

problemi: incapacità a ricordare, assenza o danneggiamento di specifiche funzioni

cognitive (soprattutto il linguaggio). I problemi cognitivi possono interessare la

memoria, la percezione, la capacità a risolvere problemi di vario genere e

difficoltà concettuali. Le cause di tale disabilita' possono essere: ritardi mentali

(nella maggior parte dei casi la causa è sconosciuta, sebbene infezioni, sindrome

di Down nascita prematura, trauma alla nascita o mancanza di ossigeno possono

Page 23: Studio e realizzazione di un sistema di puntamento oculare ...elite.polito.it/files/thesis/fulltext/signorile.pdf · ... ovvero le cellule nervose del cervello e del ... nel giro

28

Capitolo 2: Stato dell'arte

provocare un ritardo mentale) , amnesie di breve o lungo termine, processo di

invecchiamento. La persona disabile che presenta problemi cognitivi incontra le

difficoltà maggiori nell'uso dei software standard. Strategie di soluzione in

quest'area sono molto generali e possono rivolgersi a problemi di linguaggio, di

astrazione o altro.

� Disabilità multiple: spesso si verifica che la causa di un danno singolo ne induca

anche altri. In particolare ciò può succedere quando il danno o il trauma è molto

grave o se la persona è in età avanzata. Alcune persone possono presentare sia

disabilità mentali che fisiche, con la conseguente limitazione funzionale in più

aree della loro attività quotidiana. La paralisi celebrale spesso è accompagnata da

problemi visivi, uditivi e disordini linguistici o problemi cognitivi.

IL PASSAGGIO IN EUROPA

Le ripercussioni dell'avvenimento del luglio 1990 si sono fatte sentire anche in

Europa.

Nel marzo del 1992 iniziò un progetto di elaborazione delle "Nordic Guidelines for

Computer Accessibility" da parte della NNH (Nordic Committee on Disability).

La NNH è una cooperazione, sotto il Nordic Council of Ministers, comprendente i

governi danese, finlandese, norvegese e svedese.

Lo scopo della NNH è la realizzazione di obbiettivi nazionali di piena partecipazione

nella società e di uguaglianza per le persone disabili.

Il Nordic Guidelines for Computer Accessibility è il risultato di un progetto

riguardante l'informazione tecnologica (IT). L'IT è una parte delle infrastrutture

della società moderna.

Gli elaboratori sono ormai parte integrante nell'educazione e nel lavoro. E' stato

stimato che il 70% del lavoro d'ufficio in Europa è svolto in posti di lavoro

informatizzati (stima della IDC Svezia).

Page 24: Studio e realizzazione di un sistema di puntamento oculare ...elite.polito.it/files/thesis/fulltext/signorile.pdf · ... ovvero le cellule nervose del cervello e del ... nel giro

29

Capitolo 2: Stato dell'arte

La Cooperazione Internordica di Standardizzazione delle informazioni Tecnologiche

(INSTAT/IT) ha supportato questo progetto con la seguente dichiarazione:

"ISTAT/IT crede che si debba provvedere affinché le persone disabili abbiano la

possibilità di usare attrezzature IT. INSTAT/IT accoglie favorevolmente il

progetto e lo considera un buon inizio in questo settore. Stiamo attendendo i

risultati, sotto forma di guida, e ci aspettiamo di poterli usare per un lavoro di

standardizzazione regionale, nazionale ed internazionale".

Alla base di questa pubblicazione ci sono due documenti: il primo è la White Paper

citata in precedenza, mentre l'altro è una specifica di requisiti prodotta in

collaborazione dall'Agenzia Svedese per lo Sviluppo Amministrativo e dall'Istituto

Svedese di Handicap.

L'Organizzazione Mondiale della Sanità stima la percentuale di popolazione disabile

almeno nel 10%. Queste persone non costituiscono un gruppo omogeneo e statico,

anche il tipo di disabilità può essere temporaneo o permanente e variare d'intensità.

Nei paesi industrializzati si vive di più, ma le nascite diminuiscono. Le persone hanno

acquisito le abitudini introdotte dalle attuali tecnologie, ma per alcuni l'accesso ad

esse può essere progressivamente ridotto a causa di limitazioni dovute all'età

avanzata.

Queste riflessioni devono sicuramente aiutare a riflettere sull'importanza della

questione dell'accessibilità all'elaboratore.

Con l'avvento e la diffusione della telematica, nuove possibilità di integrazione

economica e sociale si aprono per la popolazione disabile ed anziana. Tuttavia a

quest'interessante prospettiva si contrappongono problematiche che, se non

opportunamente considerate, possono aumentare l'isolamento di queste categorie di

persone.

Rendere un terminale/servizio di facile uso per una persona disabile è garanzia di

alta usabilità per ogni utente.

Page 25: Studio e realizzazione di un sistema di puntamento oculare ...elite.polito.it/files/thesis/fulltext/signorile.pdf · ... ovvero le cellule nervose del cervello e del ... nel giro

30

Capitolo 2: Stato dell'arte

Per fare ciò è però necessario lo sviluppo di nuove aree di conoscenza, che includano i

tipi e il grado di disabilità, le conseguenze e le limitazioni che deve affrontare una

persona disabile, gli aspetti psicologici ed economici ed infine le strategie per

incrementare l'usabilità del prodotto.

2.3 SOFTWARE ACCESSIBILE

2.3.1 AUSILI INFORMATICI

Viene proposta una descrizione di alcuni ausili informatici suddivisi per tipo di

disabilità.

Particolare importanza sarà data ai supporti informatici per disabili motori.

Cerchiamo prima di tutto di dare una definizione del termine ausilio.

L'ausilio è un oggetto che permette a chi lo utilizza di instaurare delle relazioni con

le persone che lo circondano.

In questo sta la vera utilità dell'ausilio: dare alla persona disabile la possibilità di

entrare in relazione con gli altri, a casa, a scuola, al lavoro, etc.

Questa possibilità fa sì che la persona disabile abbia un'immagine di sé migliore,

perché si sente parte attiva nei suoi rapporti con gli altri e non un emarginato o un

diverso.

Anche l'ausilio informatico è un oggetto, che serve a creare relazioni comunicative,

che determinano apprendimenti cognitivi che possono aumentare e facilitare contesti

relazionali e sociali: tutto ciò contribuisce al rafforzamento dell'identità della

persona.

Volendo dare una definizione più tecnica, l'ausilio è uno strumento che consente al

disabile di fare ciò che altrimenti non riuscirebbe a fare, oppure di farlo in maniera

più sicura, veloce, meno faticosa, più accettabile psicologicamente, o infine per

prevenire l'instaurarsi o l'aggravarsi di una disabilità.

Page 26: Studio e realizzazione di un sistema di puntamento oculare ...elite.polito.it/files/thesis/fulltext/signorile.pdf · ... ovvero le cellule nervose del cervello e del ... nel giro

31

Capitolo 2: Stato dell'arte

Disabilità visiva

Negli Atti della IV Conferenza Internazionale del Computer per Persone portatrici di

Handicap (1994) viene esposto un metodo che permette agli utenti ciechi di "vedere",

attraverso le proprie mani, il funzionamento di Windows: le finestre vengono

percepite tramite una simulazione fisica di oggetti che si sovrappongono.

Un altro metodo sfrutta invece l'udito, senso che generalmente una persona cieca

possiede ben sviluppato. Si parte dal presupposto che si possa determinare se un

suono proveniente da un'orchestra sia generato da uno strumento in prima, seconda o

terza fila.

Con un ragionamento analogo i suoni prodotti dalle singole finestre di Windows

avranno una tonalità diversa in modo che l'utente cieco possa percepire le

disposizioni delle finestre sul video.

Disabilità uditiva

Dal momento che tale disturbo non comporta un grave disagio nell'utilizzo

dell'elaboratore, pochi sono gli sviluppi. Del resto è sufficiente, per facilitare

l'utente affetto da questa disabilità, l'introduzione di immagini che sostituiscano i

messaggi sonori.

Disabilità cognitiva

Per quanto riguarda questo campo della disabilità viene particolarmente sviluppato il

discorso inerente ad informatica e didattica. A tal fine in Italia si tiene

regolarmente un Convegno Nazionale dal titolo Informatica, Didattica e Disabilità.

L'elaboratore può essere sfruttato per stimolare, tramite immagini e suoni, i ragazzi

sia normodotati che afflitti da disabilità mentali.

Per quanto riguarda la disabilità verbale grave si ricordano i metodi per la

comunicazione aumentativa ed alternativa, tra cui ad esempio il linguaggio Bliss: si

tratta di un linguaggio simbolico in cui ad ogni simbolo è associato un termine, sia

Page 27: Studio e realizzazione di un sistema di puntamento oculare ...elite.polito.it/files/thesis/fulltext/signorile.pdf · ... ovvero le cellule nervose del cervello e del ... nel giro

32

Capitolo 2: Stato dell'arte

questo un sostantivo, un verbo o un aggettivo. Ogni categoria di simboli è

rappresentata da un colore diverso in modo da facilitare l'individuazione delle parole.

La storia di questo linguaggio è singolare: fu ideato per facilitare la comunicazione

tra i vari paesi della Cina dal momento che il grande numero dei dialetti impediva alle

persone di comunicare tra loro.

Il termine Comunicazione Aumentativa ed Alternativa (AAC) si riferisce a tutte le

strategie di comunicazione che sono alternative o incrementano la comunicazione

verbale e grafica.

Esistono sia prodotti hardware che software per la AAC.

I prodotti software godono delle potenzialità sempre crescenti dell'informatica e

della enorme capacità di memorizzazione ed elaborazione dei dati del computer, e al

tempo stesso permettono l'uso del computer anche per attività diverse dalla AAC.

Disabilità fisica

Non esiste una separazione netta tra i supporti rivolti a questo tipo di disabilita' e

quelli analizzati precedentemente per disabilità cognitive, in quanto spesso i due

problemi sono strettamente collegati.

La società EasyLabs di Torino ha permesso di inquadrare il problema

dell'accessibilità all'elaboratore grazie all'elevato numero di ausili informatici di cui

dispone.

Si ricordano: tastiere speciali, riprogrammabili (in cui è possibile ridefinire a piacere

il significato dei tasti), tastiere a video, mouse speciali, sistemi per il controllo del

computer

e per la comunicazione attivabili attraverso sensori esterni, accessibili anche con

ridottissime capacità motorie.

L'utilizzo di una comune tastiera può essere critico a causa di problemi nel controllo

degli arti superiori. Per superare tale difficoltà è, a volte, sufficiente adottare delle

modifiche alle impostazioni software del computer che si sta utilizzando, in altri casi

è possibile identificare delle soluzioni alternative. Ad esempio si può utilizzare una

Page 28: Studio e realizzazione di un sistema di puntamento oculare ...elite.polito.it/files/thesis/fulltext/signorile.pdf · ... ovvero le cellule nervose del cervello e del ... nel giro

33

Capitolo 2: Stato dell'arte

tastiera ridotta (caratterizzata da dimensioni ridotte e tasti piccoli, ravvicinati e

molto sensibili), oppure una tastiera espansa (tastiera di grandi dimensioni, con tasti

ingranditi).

Esistono inoltre tastiere a video con cui l'iterazione avviene tramite un dispositivo di

puntamento oppure tastiere con display indipendenti dal computer.

I mouse speciali sono una valida alternativa al mouse standard per coloro che

presentano difficoltà nel controllare il movimento del puntatore e le funzioni dei

tasti.

In questa categoria rientrano gli emulatori di mouse: dispositivi che permettono di

controllare, attraverso sistemi diversi, il movimenti del puntatore e di svolgere tutte

le funzioni, o quasi, del mouse. Ad esempio il progetto sviluppato nell'ambito delle

presente tesi è relativo proprio ad un emulatore di mouse, che sfrutta il movimento

oculare.

In alcuni casi è possibile utilizzare per il movimento del puntatore un mouse standard

e per la selezione fare ricorso a sistemi che consentano di realizzare il clik con

l'ausilio di uno o

più sensori esterni tramite dispositivi d'interfaccia. In altri casi è invece possibile

ricorrere a soluzioni software per l'esecuzione del comandi del mouse.

Vi sono comunque vari aspetti da considerare riguardo all'utilizzo di un ausilio che

favorisca l'utente nell'accesso all'elaboratore:

� L'ausilio deve garantire la massima autonomia all'utente

� L'uso dell'ausilio dev'essere il più semplice possibile

� Dev'essere garantito il comfort dell'utente nell'utilizzo dell'ausilio

� Va considerato anche l'aspetto economico, inteso non solo come costo d'acquisto

dell'ausilio, ma anche come costo dell'apprendimento all'uso dell'ausilio

� Caratteristiche fondamentali dell'ausilio devono essere: semplicità e praticità

d'uso

Page 29: Studio e realizzazione di un sistema di puntamento oculare ...elite.polito.it/files/thesis/fulltext/signorile.pdf · ... ovvero le cellule nervose del cervello e del ... nel giro

34

Capitolo 2: Stato dell'arte

� Dovrebbe essere garantita un certa durata d'uso dell'ausilio � L'ausilio si deve adattare alle esigenze dell'utente

Particolare importanza dev'essere infine data alla valutazione, cioè l'insieme delle

attività necessarie per individuare le risorse tecnologiche appropriate per il

superamento di difficoltà fisiche che inibiscono la possibilità di comunicare ed agire

in modo autonomo.

Per questo è necessario sia un esame delle capacità residue della persona disabile, sia

delle esigenze a cui si vuole dare risposta, per definire quale sia l'ausilio più indicato.

Alcuni ausili e software di particolare interesse vengono recensiti nell'appendice A.

2.3.2 CONVEGNI

Nell'ambito degli sviluppi di ausili informatici per disabili si è avuta una progressiva

crescita d'interesse che ha portato negli ultimi anni ad organizzare convegni

nazionali ed internazionali. A livello nazionale si ricorda il già citato Informatica,

Didattica e Disabilità che lo scorso anno si è tenuto a Roma, e anche HANDIMatica,

convegno nazionale per l'integrazione del disabile che si occupa di tecnologie

avanzate, informatiche e telematica per favorire l'integrazione delle persone

disabili.

A livello internazionale citiamo Closing in the Gap, convegno che si tiene a

Minneapolis.

Quella dell'ottobre del 2001 è stata la diciannovesima edizione.

Il titolo del convegno è "Microcomputer Technologies in Rehabilitation and Special

Education".

Page 30: Studio e realizzazione di un sistema di puntamento oculare ...elite.polito.it/files/thesis/fulltext/signorile.pdf · ... ovvero le cellule nervose del cervello e del ... nel giro

36

3 Introduzione ai sistemi eye-tracking

3.1 INTRODUZIONE

Il problema affrontato in questo capitolo punta allo studio del superamento di quelle

"barriere" che il disabile motorio grave (come ad esempio un malato di sclerosi

laterale amiotrofica ad un certo stadio della malattia) incontra nell'utilizzo di un

elaboratore.

Aprendo una piccola finestra sul mondo della disabilità fisica, è immediato

riconoscere quanti problemi completamente diversi si propongono all'osservatore.

Risulta quindi difficile un tentativo di generalizzazione.

Il problema dell'impostazione della ricerca è stato svolto seguendo sostanzialmente

un'unica strada, rivolta a persone che hanno difficoltà di tipo meccanico relative

all'utilizzo dei dispositivi standard di input. Queste persone possono essere affette

da sclerosi multipla, distrofia muscolare, paralisi celebrale. Le conseguenze di tali

malattie e quindi le cause delle difficoltà accennate sopra sono: debolezza,

intorpidimento, paralisi, tremori.

Un riguardo particolare si è avuto nei confronti dei malati di sclerosi laterale

amiotrofica (SLA). Il progredire della malattia provoca un progressivo indebolimento

muscolare ed infine conduce alla paralisi, ma la persona colpita da questa malattia

resta comunque in grado di controllare il movimento oculare.

Nel capitolo seguente si accenna inoltre ai linguaggi simbolici utilizzati in campi

diversi: la comunicazione aumentativa ed alternativa (AAC) si occupa di tutte le

strategie di comunicazione che sono alternative o che incrementano la comunicazione

verbale e grafica. Queste strategie hanno lo scopo di fornire un ausilio di

comunicazione che incoraggi la comunicazione e favorisca l'integrazione del disabile.

Il riferimento alla AAC, nell'ambito dello sviluppo della presente tesi, è legato alla

potenzialità che un sistema di accesso all'elaboratore, quale può essere un

Page 31: Studio e realizzazione di un sistema di puntamento oculare ...elite.polito.it/files/thesis/fulltext/signorile.pdf · ... ovvero le cellule nervose del cervello e del ... nel giro

37

Capitolo 3: Introduzione ai sistemi eye-tracking

sistema di puntamento oculare, unito ad un software di comunicazione, può offrire ad

un disabile motore.

3.2 COMUNICAZIONE AUMENTATIVA ED ALTERNATIVA

Non è facile scavalcare il muro che si erge tra le persone che non sono capaci di

esprimersi verbalmente e il mondo, che le circonda, in cui la parola costituisce il

mezzo di comunicazione per eccellenza.

Le difficoltà aumentano quando la patologia risulta complessa e comporta, oltre

all'assenza della parola, deficit fisici e psichici. In queste situazioni diventa difficile

stabilire un canale di comunicazione, o per lo meno una comunicazione che vada oltre

lo stretto necessario. Esiste il rischio reale di scambiare l'impossibilità di esprimersi

con l'incapacità di comprendere e di apprendere, con la conseguenza che il soggetto

disabile viene di fatto privato della possibilità di gestire, anche in minima parte, la

propria vita.

Dietro le apparenze ci sono spesso abilità nascoste e potenzialità inimmaginabili.

Scoprirle, rinforzarle e sfruttarle nella vita quotidiana è una sfida difficile che

richiede talvolta strumenti particolari. La Comunicazione Aumentativa Alternativa è

uno di essi. Conosciuta e applicata in Canada e negli Stati Uniti da quasi 40 anni,

diffusa in molti paesi europei, in Italia comincia ora timidamente a farsi la strada tra

dubbi, incertezze e ostilità.

Come già detto in precedenza l'espressione Comunicazione Aumentativa ed

Alternativa (Augmentative and Alternative Communication, AAC) si riferisce a tutte

le strategie di comunicazione che sono alternative o incrementano (augmentative in

inglese) la comunicazione verbale e grafica.

Attualmente interventi di AAC vengono effettuati nelle seguenti condizioni di

disabilità:

� condizioni congenite (sindromi genetiche, ecc.);

� condizioni acquisite (esiti di trauma cranico, ictus, ecc.);

Page 32: Studio e realizzazione di un sistema di puntamento oculare ...elite.polito.it/files/thesis/fulltext/signorile.pdf · ... ovvero le cellule nervose del cervello e del ... nel giro

38

Capitolo 3: Introduzione ai sistemi eye-tracking

� condizioni neurologiche evolutive (Sclerosi Laterale Amiotrofica, AIDS

cerebrale, Sclerosi Multipla, Morbo di Parkinson, ecc.);

� condizioni temporanee.

La AAC si pone come obiettivo la compensazione di una disabilità (temporanea o

permanente) del linguaggio espressivo; vengono infatti create le condizioni affinché il

disabile abbia l’opportunità di comunicare in modo efficace, ovvero di tradurre il proprio

pensiero in una serie di segni intelligibili per l’interlocutore.

Esistono sia prodotti software che hardware per la AAC, essi mirano a fornire al

disabile strumenti di comunicazione, alternativi al linguaggio verbale, che possono

essere suddivisi nelle seguenti categorie:

� le tabelle di comunicazione

� VOCA (Voice Output Communication Aids)

� software di comunicazione

I prodotti hardware normalmente sono dedicati alla funzione di comunicatori,

rientrano in questa categoria i sistemi AAC con uscita in voce (Voice Output

Communication Aid, VOCA) o senza uscita in voce. I VOCA sono sistemi dedicati alla

comunicazione, che non necessitano di essere collegati ad un PC . Tramite questi

strumenti il disabile ha la possibilità di comunicare non solo indicando un simbolo, ma

anche associando ad esso un messaggio verbale che viene udito dagli altri.

I VOCA si differenziano fra loro per numero di messaggi, tempo totale di

registrazione, modalità d'accesso (selezione diretta dal dispositivo o tramite sensori

esterni, selezione indiretta con scansione manuale o automatica con sensori esterni).

Esistono prodotti pensati e studiati per la AAC sia a tecnologia povera che sistemi ad

alta tecnologia.

Page 33: Studio e realizzazione di un sistema di puntamento oculare ...elite.polito.it/files/thesis/fulltext/signorile.pdf · ... ovvero le cellule nervose del cervello e del ... nel giro

39

Capitolo 3: Introduzione ai sistemi eye-tracking

Di norma per ogni singola persona è necessaria un'integrazione di prodotti a

tecnologia sia povera e che ricca.

Spesso un software pensato per la AAC va ad affiancarsi a sistemi poveri quali

tabelle cartacee (con selezione diretta per mezzo dell'indicazione attraverso l'uso di

un arto o similari - ad esempio un caschetto con un bastoncino - o selezione indiretta

per mezzo di una doppia codifica, spesso indispensabile per coloro che non riescono

ad usare né gli arti, né lo sguardo per indicare) o écran per la selezione di simboli

codificati attraverso lo sguardo.

I prodotti software godono delle potenzialità sempre crescenti dell'informatica e

della enorme capacità di memorizzazione ed elaborazione dei dati di un computer.

Essi permettono di riprodurre sullo schermo le tabelle di comunicazione, ad ogni cella

della tabella è possibile associare un simbolo e l’uscita in voce.

I prodotti software con uscita in voce sono quindi in tutto assimilabili alla famiglia

dei comunicatori, ma non hanno di norma limitazioni nel numero di simboli/messaggi

utilizzabili, né limitazioni per quanto riguarda il tempo di registrazione a

disposizione, possono consentire l'accesso attraverso modalità diverse (tastiere,

dispositivi di puntamento, sensori esterni sia in selezione diretta che indiretta), sono

molto flessibili nella creazione e personalizzazione delle tabelle di comunicazione che

spesso sono collegabili e richiamabili fra loro aumentando così il numero di simboli a

disposizione dell'utente.

L'idea del comunicatore propone un meccanismo che, funzionando per associazione di

idee oppure dal generale al particolare, permetta ad un disabile motore, non in grado

di parlare (la SLA ad esempio porta alla paralisi anche dei muscoli deputati alla

parola) , di indicare quello che vuole e farsi capire.

Questo vuol dire che la prima tabella conterrà delle immagini. Ad un'immagine

possono essere associate altre immagini a cui si potrà accedere nel caso venga

selezionata la prima immagine.

Questo sistema può essere raffigurato come un albero.

Page 34: Studio e realizzazione di un sistema di puntamento oculare ...elite.polito.it/files/thesis/fulltext/signorile.pdf · ... ovvero le cellule nervose del cervello e del ... nel giro

40

Capitolo 3: Introduzione ai sistemi eye-tracking

I diversi messaggi contenuti nella tabella possono essere rappresentati in modi

diversi: oggetti concreti, miniature di oggetti, simboli grafici (foto, disegni), lettere

o parole.

Il contenuto delle immagini è strettamente personale ed il compito della loro

compilazione va lasciato all'educatore insieme all'interessato.

Le tabelle di comunicazione infatti vanno costruite valutando un insieme di aspetti

contemporaneamente: selezione del vocabolario (in funzione dei bisogni dell'utente e

del contesto in cui verrà utilizzata), gli aspetti fisici e sensoriali del disabile

(mobilità, postura, vista, etc.), il fattore intellettivo.

Un software di comunicazione aumentativa ed un sistema di accesso che sfrutta il

movimento oculare rappresentano sicuramente un utile strumento di comunicazione

per una persona affetta da SLA, che la malattia ha privato della possibilità di

movimento e di parola.

Alcuni prodotti hardware e software di Comunicazione Aumentativa ad Alternativa

sono presentati nell'appendice A.

3.3 SCELTA DELLO SGUARDO COME CANALE DI COMUNICAZIONE

Il problema dell’integrazione dei disabili e dei portatori di handicap in generale è oggi

di grande attualità, anche se rispetto ad alcuni decenni fa sono stati compiuti

notevoli passi avanti: si ricordi ad esempio negli anni ’60 la nascita delle “scuole

speciali” per disabili, in cui di fatto queste persone erano relegate per buona parte

della loro vita.

Tra le funzioni che più spesso sono precluse a una persona disabile, la più importante

è senz’altro quella della comunicazione: chi non può parlare o utilizzare le mani per

esprimersi ben difficilmente potrà scambiare le proprie idee con il mondo esterno.

Page 35: Studio e realizzazione di un sistema di puntamento oculare ...elite.polito.it/files/thesis/fulltext/signorile.pdf · ... ovvero le cellule nervose del cervello e del ... nel giro

41

Capitolo 3: Introduzione ai sistemi eye-tracking

Il sistema sviluppato nell’ambito di questa tesi permette di impartire comandi ad un

elaboratore tramite lo sguardo.

La scelta dello sguardo come canale di comunicazione non è casuale: in passato e

anche tuttora uno dei sistemi più usati per comunicare con i disabili è l’écran, un

sistema che si basa sull’utilizzo di una lastra di plexiglass trasparente su cui sono

disegnate le lettere dell’alfabeto. Tale lastra viene posta tra il disabile e

l’interlocutore. Quest’ultimo deve capire su quale lettera si posa lo sguardo

dell’altro. Con l’esperienza si raggiunge una buona velocità di composizione delle

parole: sfruttando la rapidità dell’occhio si possono scambiare notevoli quantità di

informazioni.

Tale sistema ha molti limiti, fra cui il poter comunicare soltanto con interlocutori

esperti ed “allenati” e l’impossibilità di parlare a più di una persona per volta. Il limite

più evidente è comunque quello di richiedere la presenza costante di un’altra persona,

precludendo di fatto la possibilità di produrre in modo indipendente documenti

scritti.

Per ovviare a questo limite si possono utilizzare i cosiddetti sistemi a scansione. Tali

sistemi si basano sulla capacità del disabile di riuscire a coordinare almeno un arto

del proprio corpo. Spesso questa capacità può essere limitata, è necessario un certo

tempo per il training e lo scambio di informazioni è piuttosto lento.

Tali sistemi si basano sull’uso del calcolatore: un cursore scandisce automaticamente

il video (scansione elemento per elemento oppure riga-colonna, quest'ultima è più

veloce) su cui sono visualizzate le lettere dell'alfabeto, il disabile sceglie la lettera

che desidera scrivere e la conferma con un impulso sul sensore (ad esempio premendo

un pulsante di dimensioni più o meno grandi, con una qualunque parte del corpo: la

mano, il gomito, la testa, ecc.). Per scrivere una parola sono necessari diversi minuti,

per scrivere una pagina occorre una giornata intera, non considerando gli errori di

battitura.

Sono nati pochi anni fa negli Stati Uniti i primi sistemi basati sull’uso congiunto del

calcolatore e dello sguardo come “fonte di decisione”.

Page 36: Studio e realizzazione di un sistema di puntamento oculare ...elite.polito.it/files/thesis/fulltext/signorile.pdf · ... ovvero le cellule nervose del cervello e del ... nel giro

42

Capitolo 3: Introduzione ai sistemi eye-tracking

Possiamo suddividere tali sistemi in due categorie:

� sistemi ottici: i quali tipicamente utilizzano la riflessione infrarossa

� sistemi elettrici: i quali sfruttano la registrazione elettrooculografica EOG

Per quanto riguarda i sistemi del primo tipo, questi hanno normalmente costi molto

elevati, ma sono sicuramente migliori per precisione ed affidabilità.

Il secondi non hanno l'ergonomicità sufficiente a renderli sistemi commerciali alla

portata di tutti, a causa della presenza dei fili elettrici che devono essere collegati

all'utente e che ne limitano la libertà di movimento.

I sistemi ottici si basano per la maggior parte sul metodo PCCR (Pupil Center -

Corneal Reflection) che sfrutta la riflessione della cornea per determinare il

movimento dello sguardo.

Un diodo (LED) emette raggi infrarossi a bassa potenza ed illumina l’occhio.

Il raggio di luce infrarossa genera una riflessione luminosa sulla superficie della

cornea dell'occhio e provoca il cosiddetto effetto "occhi rossi", quest'effetto

migliora l'immagine della pupilla alla telecamera e rende più facile alle funzioni di

elaborazione dell'immagine localizzare il centro pupilla.

L'elaboratore calcola il punto fissato dall'occhio, interpolando le coordinate del

punto sullo schermo, basandosi sulla posizione relativa del centro pupilla e sulla

riflessione della cornea nell'immagine dell'occhio.

Ma non tutti i sistemi ottici si basano su questo metodo, vi sono anche sistemi ottici

che sfruttando algoritmi di elaborazione dell'immagine, riescono a determinare le

coordinate del centro pupilla e in seguito a opportune considerazioni geometriche a

determinare il punto fissato sullo schermo dall'utente.

Il progetto argomento della presente tesi utilizza proprio questa modalità, come

verrà ampiamente descritto in seguito.

Page 37: Studio e realizzazione di un sistema di puntamento oculare ...elite.polito.it/files/thesis/fulltext/signorile.pdf · ... ovvero le cellule nervose del cervello e del ... nel giro

43

Capitolo 3: Introduzione ai sistemi eye-tracking

Una panoramica su alcuni dei sistemi di puntamento oculare attualmente in

commercio, che fanno riferimento ai diversi metodi descritti sopra viene illustrata

nell'appendice B.

3.4 CONIDIZIONI D'USO DI UN SISTEMA A PUNTAMENTO OCULARE DA

PARTE DI PERSONE AFFETTE DA DISABILITA' FISICHE

Viene presentata una breve panoramica su alcune delle malattie più frequenti a cui un

sistema di input alternativo, com'è appunto il progetto sviluppato nell'ambito di

questa tesi, può essere rivolto:

� SCLEROSI MULTIPLA: la sclerosi multipla implica un processo autoimmunitario,

cioè una risposta immunitaria anomala diretta contro il sistema nervoso centrale

dell’individuo stesso. I sintomi iniziali sono difficoltà nei movimenti e sensazioni

d'intorpidimento. Raramente i sintomi iniziali comprendono incoordinazione dei

movimenti, alterazioni dell'articolazione della parola e difficoltà nel movimento di

uno o più arti. Dolore o perdita della vista dovuta ad un'infiammazione del nervo

ottico è un altro dei sintomi più comuni, che però spesso è reversibile.

� DISTROFIA MUSCOLARE: è una malattia muscolare, le forme più comuni sono

quella di Duchenne e quella di Becker. La prima evolve verso una paralisi totale

dei muscoli, mentre la seconda ha un andamento più lieve e meno debilitante. Non

in tutte le forme di distrofia il livello intellettivo rimane del tutto normale, ad

esempio la distrofia miotonica di Steinert colpisce anche il sistema nervoso

centrale, oltre alla muscolatura scheletrica e gli occhi (cataratta).

� SCLEROSI LATERALE AMIOTROFICA: come già spiegato in precedenza, la SLA

è una malattia fatale degenerativa che porta ad una paralisi progressiva dei

quattro arti e dei muscoli deputati alla deglutizione e alla parola. Le persone

colpite da questa patologia sono comunque ancora in grado, anche nella fase finale

Page 38: Studio e realizzazione di un sistema di puntamento oculare ...elite.polito.it/files/thesis/fulltext/signorile.pdf · ... ovvero le cellule nervose del cervello e del ... nel giro

44

Capitolo 3: Introduzione ai sistemi eye-tracking

della malattia, di controllare il movimento degli occhi, inoltre le capacità

cognitive non vengono assolutamente intaccate.

Affinché un utente disabile sia effettivamente in grado di utilizzare un sistema a

puntamento oculare, deve soddisfare una serie di condizioni, necessarie al corretto

utilizzo del sistema stesso.

Le condizioni d'uso richieste vengono di seguito elencate:

� Buon controllo di almeno un occhio: l'utente dev'essere in grado di spostare lo

sguardo in alto, in basso, a destra e a sinistra entro l'area dello schermo. Deve

essere inoltre in grado di focalizzare lo sguardo su un punto per il tempo

richiesto dal sistema. Diversi problemi relativi al movimento oculare possono

interferire con il buon uso di un sistema eye-tracking: istagmo (costante ed

involontario movimento dell'occhio), strabismo alternato, ecc.

� Visione adeguata: l'utente deve poter vedere chiaramente ciò che è visualizzato

sullo schermo. I sistemi di inseguimento in genere lavorano anche in presenza di

lenti a contatto e occhiali. In particolare il progetto sviluppato nell'ambito di

questa tesi è stato testato su persone che portavano occhiali da vista con lenti

antiriflesso. Anche la diblopia (visione doppia) e problemi di visione offuscata

possono rendere difficile all'utente fissare il proprio sguardo su di un punto. In

caso di cecità il sistema non potrà essere utilizzato.

� Buon controllo del capo: l'utente deve essere capace di mantenere una posizione

di fronte allo schermo dell'elaboratore. In particolare il viso dell'utente deve

restare entro l'inquadratura della telecamera. Movimenti incontrollati del capo

rendono impossibile l'uso di un sistema di questo tipo. Una soluzione potrebbe

essere quella di utilizzare un opportuno sistema di supporto del capo.

� Effetti collaterali delle medicine: gli anticonvulsioni possono causare istagmo,

visione offuscata, diblopia, mal di testa e confusione. Alcuni antidepressivi

possono provocare visione offuscata e dilatazione anormale della pupilla. Il

Baclofen, un comune farmaco per ridurre gli spasmi muscolari, può causare

Page 39: Studio e realizzazione di un sistema di puntamento oculare ...elite.polito.it/files/thesis/fulltext/signorile.pdf · ... ovvero le cellule nervose del cervello e del ... nel giro

45

Capitolo 3: Introduzione ai sistemi eye-tracking

disorientamento, mal di testa, visione offuscata e dilatazione della pupilla.

L'utilizzo contemporaneo di alcuni tipi di medicine e di un sistema a puntamento

oculare resta quindi piuttosto difficile.

In base alle considerazioni appena fatte, possiamo quindi valutare se una persona

affetta da una delle patologie descritte sopra possa essere in grado o meno di

utilizzare un sistema a puntamento oculare.

Per quanto riguarda le condizioni cognitive dell'utente di un sistema di questo tipo è

chiaro che dev'essere in grado di comprendere il funzionamento del sistema di input

al fine di poter operare, tramite questo, le scelte che il software di comunicazione gli

propone (ad esempio un software di comunicazione aumentativa).

Altre considerazioni, sempre inerenti alle condizioni d'uso di un sistema eye-

tracking (ad inseguimento dell'occhio), si riferiscono questa volta all'ambiente in cui

il dispositivo viene utilizzato.

Un fattore molto importante da tenere in conto è infatti l'illuminazione

dell'ambiente di lavoro.

Nell'ambito dello sviluppo della presente tesi si è condotto uno studio su quali

fossero le condizioni di luce migliori affinché il sistema potesse operare

correttamente.

Si è potuto appurare che questo lavora bene al buio con una o due sorgenti luminose

(semplici lampade) che illuminino il viso dell'utente.

Questa problematica è comunque stata ampiamente affrontata nei capitoli successivi.

Page 40: Studio e realizzazione di un sistema di puntamento oculare ...elite.polito.it/files/thesis/fulltext/signorile.pdf · ... ovvero le cellule nervose del cervello e del ... nel giro

46

Capitolo 3: Introduzione ai sistemi eye-tracking

3.5 SOMMARIO

E' difficile mostrare le proprie potenzialità ed abilità in mancanza di un canale

comunicativo.

Chi non può parlare o utilizzare le mani per esprimersi ben difficilmente potrà

scambiare le proprie idee con il mondo esterno.

La funzione comunicativa aumenta e facilita contesti relazionali e sociali, che

contribuiscono a loro volta a rafforzare l'identità di una persona.

Il progetto sviluppato nella presente tesi vuole fornire un sistema di input

alternativo per disabili motori gravi, in modo che essi possano accedere

all'elaboratore e ai programmi software, che garantiscono loro la possibilità di usare

vantaggiosamente la tecnologia per instaurare delle relazioni comunicative col mondo

esterno.

Page 41: Studio e realizzazione di un sistema di puntamento oculare ...elite.polito.it/files/thesis/fulltext/signorile.pdf · ... ovvero le cellule nervose del cervello e del ... nel giro

48

4 Descrizione della struttura

del sistema progettato

4.1 INTRODUZIONE

Questo capitolo spiega com'è stato affrontato concettualmente il problema e la

soluzione logica che ne è seguita.

Punto di partenza sono le conclusioni della sezione precedente che costituiscono le

specifiche informali preliminari.

Verrà in principio affrontato il problema dell'Analisi e Specifica dei Requisiti, che

permette di definire gli obbiettivi che ci si è posti.

Seguirà una descrizione concettuale della strategia utilizzata cercando di dare il più

possibile delle risposte ai requisiti sopra esposti ed infine verrà posta particolare

attenzione alla struttura del progetto che porterà ad una suddivisione modulare del

sistema.

Page 42: Studio e realizzazione di un sistema di puntamento oculare ...elite.polito.it/files/thesis/fulltext/signorile.pdf · ... ovvero le cellule nervose del cervello e del ... nel giro

49

Capitolo 4: Descrizione della struttura del sistema progettato

4.2 ANALISI E SPECIFICA DEI REQUISITI

Viene fornita in questo contesto una prima descrizione di tipo informale.

Analisi dei requisiti:

� Scopo del sistema è fornire uno strumento capace di consentire l'utilizzo

dell'elaboratore da parte di disabili motori gravi che non sono in grado di

adoperare mouse e tastiera. L'accesso al computer è importante in quanto esso

rappresenta uno strumento comunicativo potente e personalizzabile che può

aiutare il disabile ad instaurare delle relazioni con il mondo esterno (famiglia,

amici, colleghi, etc.).

Figura 1

� Il progetto di un tale sistema interessa solamente il livello software e riguarda

l'ideazione di una serie di algoritmi, che permettono di tradurre il movimento

dello sguardo in un comando per l'elaboratore.

� L'hardware necessario è rappresentato unicamente da una webcam collegata alla

porta USB dell'elaboratore.

� L'uso di tastiera e del mouse non è interdetto, anzi concorre allo stesso

risultato.

Page 43: Studio e realizzazione di un sistema di puntamento oculare ...elite.polito.it/files/thesis/fulltext/signorile.pdf · ... ovvero le cellule nervose del cervello e del ... nel giro

50

Capitolo 4: Descrizione della struttura del sistema progettato

� Il sistema deve permettere all'utente il controllo dell'elaboratore utilizzando

esclusivamente lo sguardo come mezzo di interazione.

� Il sistema non deve essere chiuso, ma deve permettere ampliamenti futuri e

forti personalizzazioni.

4.3 SOLUZIONE DEL PROBLEMA

Come prima cosa si cercherà di dare delle risposte ad ognuno dei requisiti presentati

nel paragrafo precedente.

� Quale soluzione alternativa all'utilizzo del mouse e della tastiera si è scelto di

usare lo sguardo come canale di comunicazione tra l'utente e il proprio

elaboratore. Pensando al tipo di patologie a cui un sistema del genere può essere

rivolto, si è inoltre pensato di poter associare l'uso del sistema di puntamento

oculare realizzato, con quello di un software di comunicazione aumentativa ed

alternativa. Questa potrebbe rivelarsi un'ottima combinazione per un malato di

SLA .

� Gli algoritmi realizzati si basano su elementi geometrici e di elaborazione delle

immagini. Essendo questo progetto un primo prototipo l'accuratezza del sistema

è tale da poter individuare non il punto esatto, ma l'area sul video in cui cade lo

sguardo dell'utente.

� Il movimento degli occhi è rilevato da una webcam, posta sotto il monitor del PC.

Le immagini catturate dalla webcam vengono elaborate da diversi algoritmi e sulla

base di un certo numero di campioni acquisiti il sistema riesce a determinare

dove sia diretto lo sguardo dell'utente. Non sono richiesti alla webcam requisiti

particolari, in quanto le condizioni su cui si basa il buon funzionamento del

sistema sono legate soprattutto alle condizioni di luce dell'ambiente in cui questo

si trova ad operare.

Page 44: Studio e realizzazione di un sistema di puntamento oculare ...elite.polito.it/files/thesis/fulltext/signorile.pdf · ... ovvero le cellule nervose del cervello e del ... nel giro

51

Capitolo 4: Descrizione della struttura del sistema progettato

� Anche se l'utente del sistema non è in grado di adoperare mouse e tastiera, deve

essere comunque data la possibilità ad altre persone, che possono assisterlo

nell'uso del sistema stesso, di interagire con l'elaboratore tramite i sistemi di

input standard (mouse e tastiera).

� E' fondamentale che l'utente possa in ogni momento comunicare, tramite il

proprio elaboratore. Durante il tempo di utilizzo del sistema la webcam è

connessa al computer e le immagini acquisite vengono di volta in volta elaborate al

fine di tradurre lo spostamento dello sguardo dell'utente in un determinato

comando. Questo comando dipenderà dal tipo di software di comunicazione che si

sta utilizzando insieme al sistema di puntamento oculare.

� Vi saranno una serie di parametri che dovranno essere modificati in funzione

dell'utente che utilizza il sistema. Questo significa che, prima di poter essere

utilizzato, il sistema dovrà essere sottoposto ad una procedura di calibrazione.

4.4 PROGETTO LOGICO

Si descrive come il progetto è stato suddiviso dal punto di vista logico, fino ad

arrivare ad un'architettura del sistema.

Il cuore del sistema è rappresentato da una serie di algoritmi che provvedono alla

gestione della webcam, all'elaborazione delle immagini acquisite e alla rilevazione di

una serie di campioni da cui è poi possibile ricavare le coordinate di un unico punto di

fissazione, in base al quale si riesce a prevedere quale sia l'area che l'utente stava

fissando.

Si parte dall'ipotesi che sul video dell'elaboratore sia visualizzata una tabella

suddivisa in celle. Data l'accuratezza attuale del sistema progettato, si assume che

le celle siano in tutto sei e che individuino quindi altrettante posizioni sul video (alto-

destra, alto-centro, alto-sinistra, basso-sinistra, basso-centro, basso-destra).

Page 45: Studio e realizzazione di un sistema di puntamento oculare ...elite.polito.it/files/thesis/fulltext/signorile.pdf · ... ovvero le cellule nervose del cervello e del ... nel giro

52

Capitolo 4: Descrizione della struttura del sistema progettato

Durante la procedura di calibrazione si chiede all'utente di fissare sei punti sullo

schermo: da ogni fissazione si ottiene un punto di coordinate x,y, che verranno di

volta in volta memorizzate.

La procedura di calibrazione ha lo scopo di inizializzare il sistema.

Si riporta nella figura a fianco la tabella

utilizzata per la calibrazione.

Figura 2

La figura 2 mostra la suddivisone dello schermo dell'elaboratore in sei aree

rettangolari. I punti segnati in ognuna di esse rappresentano i punti fissati

dall'utente durante la procedura di calibrazione.

Ogni volta che il sistema calcola un punto di fissazione, questo viene confrontato con

i punti della calibrazione e da tale confronto si può determinare su quale, tra le sei

aree, sia diretto lo sguardo dell'utente.

Un punto di fissazione viene calcolato sulla base di un numero minimo di campioni,

operando su di essi una media, escludendo però quei punti che, non rispettando una

determinata soglia, non possono essere considerati parte della fissazione in corso.

Le coordinate di ogni punto-campione vengono calcolate in base ad una serie di

considerazioni geometriche. Le coordinate del centro pupilla, delle immagini

analizzate, vengono riportate nello stesso riferimento, per poterne valutare le

variazioni.

Il riferimento comune viene individuato da un segno nero posto sulla fronte

dell'utente.

Per alcuni cenni relativi all'anatomia e fisiologia dell'occhio umano e ai movimenti

oculari, si rimanda all'appendice C.

Page 46: Studio e realizzazione di un sistema di puntamento oculare ...elite.polito.it/files/thesis/fulltext/signorile.pdf · ... ovvero le cellule nervose del cervello e del ... nel giro

53

Capitolo 4: Descrizione della struttura del sistema progettato

Schematicamente le fasi che fanno parte dell'architettura del sistema in esame

sono:

� Acquisizione periodica delle immagine dalla webcam

� Rilevazione posizione dell'occhio, della pupilla e del riferimento sul viso

� Determinazione della direzione dello sguardo (calcolo gaze, in inglese gaze

significa sguardo)

� Calcolo punto di fissazione

� Individuazione area fissata dall'utente

Le fasi elencate sopra sono riportate nel diagramma di figura 3.

Figura 3

Page 47: Studio e realizzazione di un sistema di puntamento oculare ...elite.polito.it/files/thesis/fulltext/signorile.pdf · ... ovvero le cellule nervose del cervello e del ... nel giro

54

Capitolo 4: Descrizione della struttura del sistema progettato

Vengono di seguito descritti, dettagliatamente, i singoli blocchi che compongono il

diagramma.

4.4.1 ACQUISIONE PERIODICA DELLE IMMAGINI DALLA WEBCAM

La procedura di acquisizione delle immagini riguarda la cattura delle immagini tramite

webcam.

La gestione delle webcam è stata realizzata tramite le funzioni della AviCap window

class, facente parte delle funzioni VFW (Video For Window) e che permette di

incorporare procedure di cattura video in una qualunque applicazione.

Lo studio delle condizioni migliori che permettessero di ottenere delle immagini su

cui i vari algoritmi potessero poi essere applicati con successo ha riguardato

principalmente tre fattori: posizione della webcam, posizione dell'utente rispetto al

video e alla webcam e condizioni d'illuminazione dell'ambiente.

Prima di tutto la webcam viene posta sotto e non sopra il monitor del PC. Il motivo di

questa scelta è dovuto al problema che si verifica quando l'utente rivolge lo sguardo

in basso.

Con la webcam sopra il monitor, si ottiene infatti un'immagine in cui l'iride

dell'occhio é in parte coperto dalle palpebre, risulta quindi difficile, in alcuni casi

impossibile, rilevare l'iride e quindi il centro pupilla.

L'utente non deve essere troppo distante dal video e dalla webcam. L'importante è

che l'immagine riporti una buona inquadratura del viso. A questo proposito non è solo

da considerare la distanza utente-webcam, ma anche l'inclinazione della webcam

rispetto al viso dell'utente.

Page 48: Studio e realizzazione di un sistema di puntamento oculare ...elite.polito.it/files/thesis/fulltext/signorile.pdf · ... ovvero le cellule nervose del cervello e del ... nel giro

55

Capitolo 4: Descrizione della struttura del sistema progettato

Osserviamo la figura 4.

Figura 4

I problemi affrontati nella valutazione delle due grandezze indicate in figura,

distanza dal video e angolo di inclinazione, vengono di seguito analizzati.

L'utente non deve essere troppo distante dalla webcam e quindi dal video, essendo

quest'ultima posizionata sotto di esso. Se la distanza utente-video è eccessiva

l'immagine catturata conterrà molti altri particolari, oltre al viso della persona, e

questo renderà più difficile agli algoritmi del sistema rilevare l'occhio. Inoltre la

risoluzione utile dell'immagine sarà inferiore.

Una serie di prove ha permesso di stabilire mediamente quale sia la distanza

massima che l'utente deve mantenere rispetto alla webcam, questo valore si aggira

intorno ai 30 cm.

Gli algoritmi di rilevazione (del viso, dell'occhio, dell'iride) del sistema si basano su

una procedura di scansione di un'immagine binaria, che permette di valutare la

concentrazione di pixel neri. Anche l'algoritmo che dall'immagine originale rileva

l'area in cui è contenuto il viso opera seguendo questo metodo. E facile intuire che

quanti più particolari, oltre al viso, conterrà l'immagine, tanto più l'algoritmo sarà

lento.

Page 49: Studio e realizzazione di un sistema di puntamento oculare ...elite.polito.it/files/thesis/fulltext/signorile.pdf · ... ovvero le cellule nervose del cervello e del ... nel giro

56

Capitolo 4: Descrizione della struttura del sistema progettato

Si osservino la figure 5 e 6.

Figura 5

Mentre la distanza utente-video sembra essere corretta, l'inclinazione della webcam

va assolutamente modificata. Infatti da queste immagini è impossibile per gli

algoritmi riuscire a distinguere l'iride dell'occhio.

Figura 7

L'inquadratura dell'immagine di figura 7 offre agli algoritmi condizioni di lavoro

adeguate, in quanto i particolari al di fuori del viso della persona sono pochi.

In questo caso si è riusciti a posizionare la webcam più vicino al viso, rispetto a

quanto fosse stato fatto per le immagini precedenti.

Figura 6

Page 50: Studio e realizzazione di un sistema di puntamento oculare ...elite.polito.it/files/thesis/fulltext/signorile.pdf · ... ovvero le cellule nervose del cervello e del ... nel giro

57

Capitolo 4: Descrizione della struttura del sistema progettato

E' sufficiente correggere l'inclinazione della webcam e la sua distanza dal viso

dell'utente per ottenere delle immagini su cui gli algoritmi possano operare più

facilmente.

Non è stato determinato, in seguito alle differenti prove, una misura dell'angolo di

d'inclinazione della webcam, ma questo verrà definito in base alla posizione che

l'utente adotterà di fronte al proprio elaboratore. Una volta stabilita tale posizione

si potrà poi fissare la webcam seconda l'esatta angolazione.

L'altro problema da affrontare in questo contesto è l'illuminazione dell'ambiente. E'

possibile intuire che un ambiente scuro comporta meno problemi rispetto ad uno ben

illuminato.

Come già spiegato precedentemente, gli algoritmi di rilevazione lavorano su immagini

binarie, dove gli occhi possono essere definiti delle "macchie scure" sul viso (bianco).

Ma anche un'eventuale ombra può essere definita nello stesso modo e venire

erroneamente interpretata, dall'algoritmo di rilevazione, come un occhio!

E' quindi molto importante che il viso dell'utente sia ben illuminato, al fine di

eliminare le ombre.

Dopo una serie di prove la soluzione adottata è stata quella di porre due semplici

lampade ai lati dello schermo dell'elaboratore, in modo che entrambi i lati del viso

dell'utente fossero adeguatamente illuminati.

Il termine "adeguatamente" lascia intendere che bisogna trovare un giusto

compromesso, infatti se la presenza di ombre crea problemi nella rilevazione degli

occhi, un'eccessiva illuminazione può causarne altri, in questo caso l'immagine

dell'iride perde di consistenza e l'algoritmo fatica ad individuarla.

Quindi ciò di cui si ha bisogno è una sorgente di luce diffusa.

Page 51: Studio e realizzazione di un sistema di puntamento oculare ...elite.polito.it/files/thesis/fulltext/signorile.pdf · ... ovvero le cellule nervose del cervello e del ... nel giro

58

Capitolo 4: Descrizione della struttura del sistema progettato

Si riportano di seguito due immagini.

Figura 8 Figura 9

Si possono facilmente individuare, nelle immagini presentate, i problemi sopra

descritti. Nella prima, l'illuminazione del viso era troppo scarsa e ha causato la

presenza di molte ombre, nella seconda, l'illuminazione era troppo forte e ha causato

una perdita di consistenza dell'iride, che diventa quindi più difficile da individuare.

E' necessario, prima di poter utilizzare il sistema, trovare delle buone condizioni di

illuminazione. Tali condizioni sono la base per un suo corretto funzionamento.

In conclusione, una volta stabilita la posizione più corretta e anche la più comoda per

l'utente, la giusta inclinazione della webcam e un'illuminazione soddisfacente, può

avere inizio l'acquisizione delle immagini, su cui verranno applicati gli algoritmi a cui si

accenna in seguito.

4.4.2 RILEVAZIONE POSIZIONE DELL'OCCHIO E DELLA PUPILLA

Gli algoritmi realizzati a tale scopo, lavorano tutti su di un'immagine binaria. Questo

significa che ogni pixel dell'immagine potrà assumere solo due valori: bianco (255)

oppure nero (0).

Le procedure di rilevazione del viso, dell'occhio e dell'iride si basano tutte sullo

studio della concentrazione di pixel neri nell'immagine binaria.

Page 52: Studio e realizzazione di un sistema di puntamento oculare ...elite.polito.it/files/thesis/fulltext/signorile.pdf · ... ovvero le cellule nervose del cervello e del ... nel giro

59

Capitolo 4: Descrizione della struttura del sistema progettato

Per velocizzare i tempi di esecuzione del sistema, si adottano due procedure

differenti per la prima immagini acquisita e per quelle successive.

Alla prima immagine catturata viene applicato un algoritmo di rilevazione del viso,

questo perché, non potendo disporre di una webcam munita di uno zoom, sarà compito

dell'algoritmo "ritagliare" dall'immagine il viso della persona ripresa (il risultato

ottenuto è lo stesso che si sarebbe ottenuto se fosse stato possibile fare un zoom

sul viso dell'utente).

A questo punto, sarà compito di un secondo algoritmo individuare la posizione

dell'occhio destro. E' infatti sufficiente lavorare sul movimento di un solo occhio,

tuttavia se l'utente presentasse problemi di strabismo, il sistema non funzionerebbe

più correttamente.

Dall'immagine del viso viene estratta una nuova immagine (sempre binaria)

contenente l'occhio destro, da essa un terzo algoritmo rileva le coordinate del

centro pupilla.

Vediamo nel dettaglio tutti gli algoritmi interessati in questa seconda fase.

ALGORITMO CHE INDIVIDUA, ALL'INTERNO DELL'IMMAGINE, L'AREA DEL

VISO

Algoritmo trasforma l'immagine in una binaria e ne realizza uno zoom del viso:

l'immagine catturata dalla webcam viene sottoposta a due elaborazioni, la prima la

trasforma in un'immagine in scala di grigi, la seconda in un'immagine posterizzata.

Un'immagine in scala di grigi è un'immagine a 8 bit la cui tavolozza contiene 256

sfumature di grigio. La trasformazione in scala di grigi rimuove i colori da

un'immagine e sostituisce ciascun colore con un grigio che corrisponde al relativo

valore di luminosità. L'effetto è simile a quello di una fotografica in bianco e nero. La

posterizzazione riduce il numero di colori e i livelli di luminosità nell'immagine,

generando un'immagine più piatta, con bande di colore anziché con gradienti sfumati.

Si deve definire il livello di posterizzazione, che rappresenta il numero di livelli di

tonalità per ogni canale di un'immagine. Con la posterizzazione i pixel vengono

mappati al livello corrispondente più vicino. Ad esempio scegliendo tre livelli di

Page 53: Studio e realizzazione di un sistema di puntamento oculare ...elite.polito.it/files/thesis/fulltext/signorile.pdf · ... ovvero le cellule nervose del cervello e del ... nel giro

60

Capitolo 4: Descrizione della struttura del sistema progettato

tonalità in RGB, otterremo nove colori: tre per il rosso, tre per il verde e tre per il

blu. Posterizzando un'immagine in scala di grigi, su due livelli, il risultato sarà proprio

un'immagine binaria.

Alcune semplici nozioni di elaborazione dell'immagine sono esposte nell'appendice D,

insieme ad una breve descrizione delle funzioni utilizzate per realizzare le operazioni

appena descritte. Tali funzioni fanno parte di una libreria di funzioni appositamente

create dalla Catenary Inc. per l'elaborazione e l'analisi delle immagini.

Non disponendo di una webcam munita di zoom, o comunque di uno zoom

sufficientemente potente, l'algoritmo di rilevazione del viso, permette di ottenere

un risultato analogo, "ritagliando" dall'immagine originale una seconda immagine,

contenente solo il viso della persona.

Si mostra di seguito un possibile risultato ottenibile applicando l'algoritmo su di

un'immagine.

Figura 10

L'algoritmo esegue una scansione dell'immagine, prima per righe e poi per colonne, e

rileva gli estremi superiore, sinistro e destro del viso. Usa poi questi valori per

"ritagliare" l'area interessata dall'immagine analizzata.

Se lo sfondo dell'immagine è completamente nero (a questo scopo è sufficiente porre

dietro l'utente una tenda scura) il viso può essere interpretato come una "macchia

Page 54: Studio e realizzazione di un sistema di puntamento oculare ...elite.polito.it/files/thesis/fulltext/signorile.pdf · ... ovvero le cellule nervose del cervello e del ... nel giro

61

Capitolo 4: Descrizione della struttura del sistema progettato

bianca". Gli estremi del viso vengono rilevati quindi in corrispondenza di una

diminuzione dei pixel neri.

Si osservi, per comprendere meglio, il grafico sottostante, che riporta la

concentrazione dei pixel neri nell'immagine mostrata sopra.

Figura 11

E' facile rilevare in questo modo gli estremi sinistro e destro del viso.

ALGORITMO DI RILEVAZIONE DELL'OCCHIO DESTRO

Data l'immagine fornita dal precedente algoritmo, questo secondo algoritmo è in

grado di rilevare la posizione dell'occhio destro al suo interno e di restituire una

nuova immagine che lo contiene. I passi compiuti durante questa procedura sono due:

prima l'immagine è scandita per righe e viene individuata una fascia orizzontale in cui

sono contenuti entrambi gli occhi, poi la fascia viene scandita per colonne e

finalmente viene individuato l'occhio. Per comprendere meglio si osservino i grafici e

le figure riportati di seguito.

Andamento pixel neri per colonne

020406080100120

1 47 93 139

185

231

277

323

369

415

461

colonna

num

pix

el n

eri

Page 55: Studio e realizzazione di un sistema di puntamento oculare ...elite.polito.it/files/thesis/fulltext/signorile.pdf · ... ovvero le cellule nervose del cervello e del ... nel giro

62

Capitolo 4: Descrizione della struttura del sistema progettato

Figura 12

Si nota chiaramente nel grafico una zona in cui è presente una maggiore

concentrazione di pixel neri, tale zona corrisponde proprio alla fascia del viso in cui

sono contenuti gli occhi. L'algoritmo analizza il grafico e determina gli estremi

inferiore e superiore della fascia, che verrà quindi estratta dall'immagine.

Figura 13

La nuova immagine, cioè la fascia degli occhi, viene nuovamente analizzata per

individuare l'occhio destro.

Figura 14

Andamento pixel neri viso

050100150200250

1 9 17 25 33 41 49 57 65 73 81 89 97

riganu

m p

ixel

ner

i

Andamento pixel neri - fascia

0

5

10

15

20

25

1 7 13 19 25 31 37 43 49 55 61 67 73

colonne

num

pix

el n

eri

Page 56: Studio e realizzazione di un sistema di puntamento oculare ...elite.polito.it/files/thesis/fulltext/signorile.pdf · ... ovvero le cellule nervose del cervello e del ... nel giro

63

Capitolo 4: Descrizione della struttura del sistema progettato

E' facile notare che l'area in cui sarà posizionato l'occhio destro è quella

caratterizzata da una maggiore concentrazione di pixel neri. L'algoritmo individua

quindi, dall'analisi del grafico, gli estremi sinistro e destro dell'occhio e ne estrae

l'immagine.

Figura 15

A questo punto sarà compito del successivo algoritmo, di rilevazione della pupilla,

individuare il centro della pupilla.

Va fatta ancora una considerazione riguardo la parte di rilevazione della fascia degli

occhi. Se l'utente presenta delle sopracciglia molto folte, questo può causare un

problema in quanto l'algoritmo può erroneamente interpretare le sopracciglia come

occhi. In seguito ad una serie di modifiche ed accorgimenti, aggiunti all 'algoritmo, il

rischio del verificarsi di questo errore è stato molto ridotto, anche se si è potuto

appurare che, a volte, la rilevazione della fascia può fallire.

La procedura fin qui descritta viene utilizzata solamente per la prima immagine della

sequenza di immagini catturate. I dati relativi alla posizione dell'occhio vengono

memorizzati in un buffer ed utilizzati per individuare la posizione dell'occhio destro

nelle immagini successive, ammesso che l'utente non compia movimenti eccessivi del

capo.

In ogni caso viene applicato un certo margine, per avere maggiore sicurezza di

racchiudere, completamente, all'interno dell'area definita, l'immagine dell'occhio.

All'immagine così ottenuta, che risulta di dimensioni molto minori rispetto all'intera

immagine catturata (640 x 480), viene applicato un primo algoritmo che permette di

racchiudere l'occhio in un'area di dimensioni ancora minori, successivamente si

applica l'algoritmo di rilevazione del centro pupilla descritto di seguito.

Page 57: Studio e realizzazione di un sistema di puntamento oculare ...elite.polito.it/files/thesis/fulltext/signorile.pdf · ... ovvero le cellule nervose del cervello e del ... nel giro

64

Capitolo 4: Descrizione della struttura del sistema progettato

Il motivo dell'esistenza di due procedure di rilevazione dell'occhio diverse per la

prima immagine acquisita e per quelle successive sta nel voler rendere più veloce il

sistema. Infatti i tempi di elaborazione dell'immagine intera sono maggiori rispetto

a quelli richiesti per l'elaborazione solamente di una parte dell'immagine.

ALGORITMO DI RILEVAZIONE DEL CENTRO PUPILLA

Scopo dell'algoritmo è rilevare l'iride all'interno dell'occhio e calcolarne poi il

centro. Infatti, trovandosi la pupilla al centro dell'iride, il centro iride coincide col

centro pupilla. La procedura di individuazione dell'iride adotta lo stesso metodo

utilizzato dall'algoritmo precedente per individuare la fascia e poi l'occhio. In realtà

questa operazione permette di ottenere solo gli estremi sinistro e destro dell'iride.

E' facile intuire che l'individuazione degli estremi superiore ed inferiore risulta più

complicata a causa della presenza delle palpebre.

Noti gli estremi sinistro e destro, possiamo individuare una fascia, questa volta

verticale, entro cui è posizionata l'iride.

Figura 16

Assumendo che l'iride abbia la forma di un cerchio (in realtà la sua immagine è

ellittica), possiamo pensare di inscrivere questo cerchio in un quadrato. Per iscrivere

perfettamente un cerchio in un quadrato, il quadrato deve avere il lato di lunghezza

pari al diametro del cerchio. Il diametro dell'iride si può facilmente calcolare, avendo

a disposizione l'estremo sinistro e destro. A questo punto si costruisce il quadrato,

che verrà fatto scorrere lungo la fascia verticale precedentemente individuata.

Scopo di tale operazione è individuare l'area della fascia a maggiore concentrazione

di pixel neri, cioè individuare l'iride. Tra tutte le aree analizzate, si sceglie quindi

quella in cui il numero di pixel neri contati è maggiore. L'area scelta ha la forma di un

quadrato, che, secondo i ragionamenti finora fatti, iscrive l'iride. Il centro del

quadrato corrisponderà quindi anche al centro dell'iride.

Page 58: Studio e realizzazione di un sistema di puntamento oculare ...elite.polito.it/files/thesis/fulltext/signorile.pdf · ... ovvero le cellule nervose del cervello e del ... nel giro

65

Capitolo 4: Descrizione della struttura del sistema progettato

In questo modo l'algoritmo riesce ad individuare il centro della pupilla dell'occhio

destro e a produrre, come risultato, le coordinate del punto.

Prima di dare inizio alla procedura di rilevazione, gli algoritmi di rilevazione occhio e

centro pupilla, eseguono ancora un'operazione di "smussamento" sui grafici, di cui si è

parlato finora.

Eventuali zone d'ombra presenti sul viso, potrebbero costituire un problema per il

corretto funzionamento degli algoritmi. Queste ombre infatti compaiono nel grafico

come dei "picchi", che possono ingannare o comunque mettere in difficoltà, gli

algoritmi di rilevazione. La soluzione è stata quella di costruire un filtro per

"smussare" il grafico ed eliminare questi "picchi".

L'operazione di "smussamento" non consiste nient'altro che in una media e produce il

seguente risultato.

Figura 17

4.4.3 INDIVIDUAZIONE DEL RIFERIMENTO E DETERMINAZIONE DELLA

DIREZIONE DELLO SGUARDO

Per poter determinare la direzione dello sguardo, gaze in inglese, della persona, ci si

è basati su una serie di considerazioni geometriche. Per poter capire cosa stia

fissando l'utente, sul video, è necessario raccogliere un certo numero di punti

(campioni). Al fine di confrontare questi punti e individuare il punto di fissazione è

necessario che essi siano rappresentati nel medesimo riferimento.

Page 59: Studio e realizzazione di un sistema di puntamento oculare ...elite.polito.it/files/thesis/fulltext/signorile.pdf · ... ovvero le cellule nervose del cervello e del ... nel giro

66

Capitolo 4: Descrizione della struttura del sistema progettato

Questo sistema di riferimento comune è individuato da un segno nero, rettangolare

che si pone sulla fronte dell'utente.

Quindi le operazioni da eseguire in questa fase sono: rilevazione del segno sul viso,

rappresentazione delle coordinate del centro pupilla rispetto a tale riferimento e

quindi calcolo del gaze finale. Ognuna delle operazioni elencate è eseguita da un

algoritmo specifico.

ALGORITMO DI RILEVAZIONE DEL RIFERIMENTO

Questo algoritmo rileva un punto particolare, nell'immagine, che corrisponde

all'origine di un sistema di riferimento, che viene indicato con R. Il punto in questione

corrisponde all'angolo alto sinistro del segno rettangolare nero posto sulla fronte

dell'utente. La procedura di rilevazione del riferimento è molto semplice, l'algoritmo

scandisce l'immagine alla ricerca di un punto nero. L'immagine oggetto della

scansione in realtà è solo una piccola area dell'immagine originale, che rappresenta

una porzione della fronte entro cui è posizionato il segno.

Per le immagini successive alla prima, questa "porzione" è determinata in base alle

coordinate del riferimento della prima immagine, costruendo intorno a questo punto

un'area a cui viene applicato l'algoritmo di rilevazione del riferimento.

Bisogna comunque tenere conto, che a causa delle variazioni delle condizioni di luce,

tra un'immagine e l'altra, la posizione di R non sarà sempre esattamente la stessa.

In conclusione, all'utente che usa il sistema, dev'essere applicato un segno sul viso

che permette di individuare un riferimento, rispetto a cui vengono rappresentati

tutti i punti calcolati, necessari per determinare il punto di fissazione.

Page 60: Studio e realizzazione di un sistema di puntamento oculare ...elite.polito.it/files/thesis/fulltext/signorile.pdf · ... ovvero le cellule nervose del cervello e del ... nel giro

67

Capitolo 4: Descrizione della struttura del sistema progettato

Si osservi la figura seguente.

Figura 18

Il sistema di riferimento R è un sistema di riferimento solidale col viso, il centro

pupilla calcolato dev'essere espresso in questo sistema di riferimento.

ALGORITMO PER LA RAPPRESENTZIONE DEL PUNTO CENTRO PUPILLA NEL

SISTEMA DI RIFERIMENTO R

Avendo a disposizione le coordinate del centro pupilla, la posizione dell'occhio e le

coordinate dell'origine del sistema di riferimento, è sufficiente applicare una serie

di considerazioni geometriche per disporre delle coordinate del centro pupilla nel

sistema di riferimento-viso (R). Si osservi la figura 18.

R

Figura 19

Page 61: Studio e realizzazione di un sistema di puntamento oculare ...elite.polito.it/files/thesis/fulltext/signorile.pdf · ... ovvero le cellule nervose del cervello e del ... nel giro

68

Capitolo 4: Descrizione della struttura del sistema progettato

Il sistema di riferimento di un'immagine è un sistema di riferimento x,y, la cui

origine coincide con l'angolo in alto a sinistra dell'immagine stessa, ad esempio

l'origine del riferimento dell'immagine originale è il punto indicato con la lettera O in

figura 18.

Le coordinate del centro pupilla fornite dall'algoritmo di rilevazione, sono espresse

nel sistema di riferimento dell'occhio, ma a sua volta la posizione dell'occhio è

espressa nel sistema di riferimento della fascia, i cui estremi sono espressi nel

sistema di riferimento del viso. Gli unici dati espressi nel sistema di riferimento

dell'immagine originale sono: le coordinate del riferimento R e gli estremi superiore,

sinistro e destro del viso.

Tutte le informazioni fin qui elencate sono contenute in un buffer in cui sono state

via via memorizzate.

Come prima cosa riportiamo la posizione dell'occhio nel sistema di riferimento

dell'immagine originale. In particolare solo le coordinate (x1,y1) dell'angolo alto,

sinistro del rettangolo vengono modificate, nel modo seguente:

x1O = x1 + estremo sinistro viso

y1O = y1 + estremo superiore viso

Le variabile x1 e y1 sono espresse nel sistema di riferimento dell'immagine fascia,

mentre le variabili estremo sinistro viso e estremo superiore viso sono espresse nel

sistema di riferimento dell'immagine originale.

Come secondo passo calcoliamo anche le coordinate del centro pupilla

(x_centro_p,y_centro_p) nello stesso sistema di riferimento (immagine originale):

x_centro_pO = x_centro_p + x1

y_centro_pO = y_centro_p + y1

Page 62: Studio e realizzazione di un sistema di puntamento oculare ...elite.polito.it/files/thesis/fulltext/signorile.pdf · ... ovvero le cellule nervose del cervello e del ... nel giro

69

Capitolo 4: Descrizione della struttura del sistema progettato

A questo punto si hanno a disposizione i seguenti dati: coordinate del centro pupilla

espresse nel sistema di riferimento dell'immagine originale, origine di un secondo

sistema di riferimento (R) espressa anch'essa nel sistema di riferimento

dell'immagine originale.

Ciò che si vuole ottenere sono le coordinate del centro pupilla, espresse nel secondo

sistema di riferimento (R).

La situazione descritta è rappresentata in figura 20.

Figura 20

Da qui è possibile intuire che le trasformazioni finali da applicare alle coordinate del

centro pupilla, per poterle esprimere nel sistema R, sono:

x_centro_pR = x_rif - x_centro_pO

y_centro_pR = y_centro_pO - y_rif

Le coordinate così calcolate rappresentano proprio il gaze finale ed esprimono la

posizione del centro pupilla rispetto al segno di riferimento posto sul viso.

Page 63: Studio e realizzazione di un sistema di puntamento oculare ...elite.polito.it/files/thesis/fulltext/signorile.pdf · ... ovvero le cellule nervose del cervello e del ... nel giro

70

Capitolo 4: Descrizione della struttura del sistema progettato

L'algoritmo appena descritto permette quindi di raccogliere una serie di punti-

campione, che verranno passati di volta in volta all'algoritmo successivo che li

utilizzerà per calcolare il punto di fissazione.

4.4.4 CALCOLO PUNTO DI FISSAZIONE

Di questa fase si occupa un algoritmo che, sulla base di un dato numero di campioni

(un numero minimo necessario per individuare una fissazione), calcola le coordinate

del punto di fissazione. Tale punto permetterà di individuare quale fosse l'area del

video che l'utente stava fissando.

L'algoritmo di rilevazione delle fissazioni si basa sullo studio della concentrazione dei

gaze campionati.

Si osservi il grafico di figura 21, che riporta la posizione di una serie di campioni

rilevati da immagini successive.

Figura 21

I campioni esaminati in questo caso sono solamente 10, si nota facilmente che i punti

sono concentrati, per la maggior parte, nella medesima zona (quella cerchiata).

Le coordinate del punto di fissazione sono determinate in base ad una semplice media

fra i punti contenuti nella stessa area. Man mano che viene esaminato un nuovo gaze,

l'algoritmo verifica che il punto sia incluso nella stessa area dei punti

precedentemente considerati e a questo punto calcola un nuovo punto di fissazione.

S p o s ta m e n to g a z e (1 0 c a m p io n i)

7 87 98 08 18 28 38 48 5

8 2 8 4 8 6 8 8 9 0 9 2

S p o s ta m e n ti o riz z o n ta li (x )

Spos

tam

enti

vert

ical

i (y

)

Page 64: Studio e realizzazione di un sistema di puntamento oculare ...elite.polito.it/files/thesis/fulltext/signorile.pdf · ... ovvero le cellule nervose del cervello e del ... nel giro

71

Capitolo 4: Descrizione della struttura del sistema progettato

La logica di funzionamento dell'algoritmo è la seguente:

si assume che l'utente stia fissando il suo sguardo su un particolare punto dello

schermo, si può quindi facilmente intuire che tutti i punti di fissazione, rilevati entro

l'intervallo di tempo in cui l'utente mantiene lo sguardo fisso su quel punto, cadranno

più o meno nella stessa area.

I punti che cadono nella stessa regione (definita da una soglia) si considerano facenti

parte della medesima fissazione.

Può accadere, ad un certo punto, che un campione risulti esterno alla regione fino a

quel momento considerata, questo può voler dire due cose: l'utente ha rivolto il suo

sguardo altrove perché si è distratto oppure perché ha modificato la sua scelta e ha

deciso di fissare un altro punto, un'altra possibile spiegazione va ricercata in

eventuali errori di misurazione delle coordinate dei punti, a carico degli algoritmi

precedentemente descritti.

I campioni che "cadono" al di fuori della regione saranno comunque riammessi a far

parte della fissazione se i punti successivi ritornano a stare in tale regione. Questo

per tenere in considerazione i momenti di distrazione o di indecisione in cui può

incappare l'utente e per compensare gli errori a cui si accennava prima.

I punti che rientrano nella stessa regione si considerano appartenenti ad una

medesima fissazione: la fissazione presente.

Appena si rileva un campione estraneo a questa fissazione, si fa l'ipotesi di una nuova

fissazione.

Una fissazione si considera terminata quando le è stato attribuito un numero di

campioni sufficiente per poter calcolare, con buona approssimazione, le coordinate

del punto di fissazione.

Per poter comprendere meglio e più facilmente la logica con cui opera l'algoritmo di

calcolo delle fissazioni viene riportato di seguito il suo pseudo codice.

Page 65: Studio e realizzazione di un sistema di puntamento oculare ...elite.polito.it/files/thesis/fulltext/signorile.pdf · ... ovvero le cellule nervose del cervello e del ... nel giro

72

Capitolo 4: Descrizione della struttura del sistema progettato

PSEUDO CODICE DELL'ALGORITMO PER IL CALCOLO DELLE FISSAZIONI

L'algoritmo riceve come dati di input le seguenti variabili:

� Coordinate x_gaze, y_gaze del punto calcolato

� Soglia che definisce le dimensioni dell'area a cui i punti devono appartenere per

essere considerati parte della fissazione

� Numero minimo di campioni necessario a calcolare una fissazione (N)

Se c'è una fissazione in corso

Calcolare la deviazione del punto (x_gaze,y_gaze) dalla fissazione presente

Se la deviazione è inferiore alla soglia (punto appartenente alla fissazione

presente)

I punti scartati in precedenza vengono riammessi nella fissazione

La fissazione presente viene aggiornata

Altrimenti (punto non appartenente alla fissazione presente)

Incrementa il numero di punti scartati dalla fissazione presente

Se la fissazione presente è terminata

Si dichiara terminata la fissazione presente

La fissazione presente diventa la precedente

La fissazione nuova diventa la presente

Calcolare la deviazione del punto (x_gaze,y_gaze) dalla fissazione

presente

Se la deviazione è inferiore alla soglia

La fissazione presente viene aggiornata

Altrimenti:

Inizia una nuova fissazione

Altrimenti (fissazione presente non ancora terminata):

Se esiste l'ipotesi di una nuova fissazione

Calcolare la deviazione del punto (x_gaze,y_gaze) dalla nuova

fissazione

Page 66: Studio e realizzazione di un sistema di puntamento oculare ...elite.polito.it/files/thesis/fulltext/signorile.pdf · ... ovvero le cellule nervose del cervello e del ... nel giro

73

Capitolo 4: Descrizione della struttura del sistema progettato

Se la deviazione è inferiore alla soglia (punto appartenente

alla nuova fissazione)

La fissazione nuova viene aggiornata

Se alla nuova fissazione appartengono N punti

La nuova fissazione diventa quella presente

Altrimenti (punto non appartenente alla nuova fissazione):

Inizia una nuova fissazione

Altrimenti (non esiste una nuova fissazione):

Inizia una nuova fissazione

Altrimenti (non esiste una fissazione presente):

Inizia un fissazione presente

4.4.5 INDIVIDUAZIONE DELL'AREA FISSATA

Gli unici dati che sono rimasti a disposizione, per riuscire a capire quale area l'utente

stava fissando, sono: le coordinate del punto di fissazione, fornite dall'algoritmo

precedentemente descritto, e ovviamente i risultati della procedura di calibrazione.

Vediamo nel dettaglio in cosa consiste e quali risultati produce questa procedura:

lo scopo della calibrazione è quella di ottenere una sorta di "mappa" del video

contenente le coordinate dei punti che si è chiesto all'utente di fissare, durante

l'esecuzione della procedura di calibrazione.

Ogni punto di fissazione calcolato verrà confrontato con questa "mappa" ed in base

ad essa un algoritmo determinerà in quale area cade il punto considerato.

Page 67: Studio e realizzazione di un sistema di puntamento oculare ...elite.polito.it/files/thesis/fulltext/signorile.pdf · ... ovvero le cellule nervose del cervello e del ... nel giro

74

Capitolo 4: Descrizione della struttura del sistema progettato

Proviamo a osservare l'esempio seguente per comprendere meglio il procedimento

descritto.

Figura 22

Il punto scuro è il punto di fissazione calcolato, i punti chiari sono i risultati della

calibrazione e rappresentano la "mappa" a cui si accennava prima. Si osserva

chiaramente dalla figura che il punto di fissazione appartiene all'intorno del punto

chiaro che individua l'area centrale in basso e che quindi l'area fissata dall'utente è

quella evidenziata.

Questo semplice algoritmo ha il compito di eseguire un confronto tra le coordinate

del punto calcolato e i punti appartenenti alla calibrazione, calcolare la

distanza del punto in esame dai diversi punti memorizzati, individuare il punto la cui

distanza è minore e produrre come output l'informazione su quale sia l'area fissata

dall'utente.

4.5 LA PROCEDURA DI INIZIALIZZAZIONE DEL SISTEMA:

LA CALIBRAZIONE

Prima di poter utilizzare il sistema l'utente deve inizializzarlo eseguendo una

procedura di calibrazione.

Sul video viene mostrata all'utente una tabella composta da sei celle, ognuna di esse

contrassegnata da un punto rosso, che è il punto da fissare.

Page 68: Studio e realizzazione di un sistema di puntamento oculare ...elite.polito.it/files/thesis/fulltext/signorile.pdf · ... ovvero le cellule nervose del cervello e del ... nel giro

75

Capitolo 4: Descrizione della struttura del sistema progettato

In tutto l'utente deve fissare sei punti diversi, partendo dall'angolo in alto a destra

e procedendo in senso antiorario fino ad arrivare all'angolo in basso a destra.

Durante l'esecuzione della procedura si ottiene una sequenza di punti che viene

utilizzata dall'algoritmo per il calcolo delle fissazioni per calcolare appunto le

coordinate dei diversi punti fissati. I sei punti calcolati vengono memorizzati in un

buffer, dopodiché un altro algoritmo provvede a verificare la correttezza

dell'esecuzione della procedura appena terminata.

I sei punti calcolati e memorizzati dovranno grosso modo formare un rettangolo e

dovranno soddisfare determinati vincoli sulle coordinate. In caso contrario

l'algoritmo produce un messaggio di output in cui avverte l'utente che la procedura di

calibrazione deve essere ripetuta.

Vengono mostrate una serie di immagini che possono aiutare a comprendere meglio

quanto appena descritto.

L'utente deve fissare i sei punti segnalati sullo schermo, seguendo l'ordine delle

frecce.

Figura 23

Page 69: Studio e realizzazione di un sistema di puntamento oculare ...elite.polito.it/files/thesis/fulltext/signorile.pdf · ... ovvero le cellule nervose del cervello e del ... nel giro

76

Capitolo 4: Descrizione della struttura del sistema progettato

Ad ogni punto corrisponderà un punto (x,y) nel sistema di riferimento comune,

solidale col viso dell'utente.

Figura 24

L'algoritmo che verifica la correttezza dei risultati della calibrazione controlla che

le coordinate dei sei punti rispettino determinate condizioni, facilmente intuibili:

� per i punti P1, P2, P3 la coordinata dell'ascissa deve rispettare il vincolo

seguente:

x3 < x2 < x1

� per i punti P4, P5, P6 la coordinata dell'ascissa deve rispettare il vincolo

seguente:

x4 < x5 < x6

� infine la coordinata dell'ordinata dev'essere tale da distinguere i punti inferiori

da quelli superiori, in questo modo:

y1 < y4, y1 < y5, y1 < y6

y2 < y4, y2 < y5, y2 < y6

y3 < y4, y2 < y5, y2 < y6

P1 P2 P3

P6 P5 P4

Page 70: Studio e realizzazione di un sistema di puntamento oculare ...elite.polito.it/files/thesis/fulltext/signorile.pdf · ... ovvero le cellule nervose del cervello e del ... nel giro

77

Capitolo 4: Descrizione della struttura del sistema progettato

Se le condizioni appena descritte sono soddisfatte dai punti calcolati con la

procedura di calibrazione, la procedura termina, in caso contrario dev'essere

ripetuta fino a quando non si ottiene il soddisfacimento di tutti i vincoli.

Si mostrano alcuni esempi di risultati ottenuti da diverse procedure di calibrazione.

Figura 25

Figura 26

CALIBRAZIONE

0

20

40

60

80

100

120

0 50 100 150

X

Y

CALIBRAZIONE

0

20

40

60

80

100

0 50 100 150

X

Y

Page 71: Studio e realizzazione di un sistema di puntamento oculare ...elite.polito.it/files/thesis/fulltext/signorile.pdf · ... ovvero le cellule nervose del cervello e del ... nel giro

78

Capitolo 4: Descrizione della struttura del sistema progettato

Come si può facilmente notare dai grafici mostrati la calibrazione dà origine ad una

sorta di "mappa" pseudo rettangolare in cui sono memorizzate le coordinate dei punti

di fissazione calcolati durante la procedura.

Tale "mappa" viene utilizzata dall'algoritmo di predizione dell'area fissata per

determinare quale tra le sei celle della tabella mostrata all'utente è quella fissata.

Page 72: Studio e realizzazione di un sistema di puntamento oculare ...elite.polito.it/files/thesis/fulltext/signorile.pdf · ... ovvero le cellule nervose del cervello e del ... nel giro

80

5 Realizzazione sperimentale

dei singoli moduli del sistema

5.1 INTRODUZIONE

Nel presente capitolo viene esposto ciò che si è realizzato a partire dalle decisioni

operative di progetto.

Nella prima parte verrà svolta un'analisi sul linguaggio di programmazione utilizzato e

sulle librerie che si è deciso di includere per sviluppare il software.

Nella seconda parte viene presentata la realizzazione software con le relative

strategie utilizzate.

Page 73: Studio e realizzazione di un sistema di puntamento oculare ...elite.polito.it/files/thesis/fulltext/signorile.pdf · ... ovvero le cellule nervose del cervello e del ... nel giro

81

Capitolo 5: Realizzazione sperimentale dei singoli moduli del sistema

5.2 LINGUAGGIO DI PROGRAMMAZIONE E LIBRERIE

Il codice di tutti gli algoritmi è stato implementato utilizzando il linguaggio C.

La scelta del linguaggio C, come linguaggio di programmazione, per la scrittura degli

algoritmi facenti parte del progetto di tesi non ha alcun fondamento particolare.

Il motivo principale per cui si è optato per il linguaggio C, piuttosto che per un altro

tipo di linguaggio, è legato unicamente al fatto che le conoscenze di programmazione

in C, di cui si disponeva, erano maggiori rispetto a quelle su tecniche di

programmazione con altri linguaggi.

La stesura del codice scritto in linguaggio C è stata realizzata utilizzando il Visual

C++ 6.0, in quanto in alcuni casi si è fatto ricorso alle potenzialità offerte dalla

programmazione C++, in particolare per la creazione di finestre di dialogo.

L'ideazione dei vari algoritmi, che verranno presentati di seguito, è stata affiancata

anche dall'utilizzo di alcune librerie particolari.

La prima libreria è quella che ha permesso di utilizzare tutta una serie di funzioni di

elaborazione ed analisi dell'immagine. Questa libreria è parte di un prodotto

software, Victor image processing, realizzato dalla Catenary Systems.

Victor è una collezione di funzioni che permette alla propria applicazione di

manipolare delle immagini, tramite operazioni di elaborazione, modifica dei colori,

settaggio di alcuni parametri, etc.

La libreria Victor è una DLL che può essere utilizzata con diversi linguaggi di

programmazione, tra cui C e C++, Visual Basic e Java.

Il secondo gruppo di funzioni utilizzate sono quelle della AviCap Window Class,

definite nel file d'intestazione di Windows VFW.h, che sta appunto per Video For

Windows.

Queste funzioni permettono di utilizzare, all'interno della propria applicazione, delle

funzionalità di cattura video. AviCap fa sì che l'applicazione possa accedere, con un

semplice sistema di interfaccia basato su messaggi, ad un sistema hardware di

acquisizione video o audio e possa controllare il processo di cattura.

Page 74: Studio e realizzazione di un sistema di puntamento oculare ...elite.polito.it/files/thesis/fulltext/signorile.pdf · ... ovvero le cellule nervose del cervello e del ... nel giro

82

Capitolo 5: Realizzazione sperimentale dei singoli moduli del sistema

Con AviCap è possibile sia acquisire un frame per volta sia operare un'acquisizione in

tempo reale. Inoltre permette di controllare la risorsa video, è infatti possibile dare

inizio alla procedura di cattura, interromperla per un periodo oppure terminarla.

Usando AviCap Windows Class è possibile eseguire le seguenti operazioni:

- catturare audio e video;

- connettere e disconnettere il dispositivo di input (ad esempio una webcam);

- specificare il file in cui si vuole andare a salvare l'immagine catturata;

- settare la frequenza di cattura;

- visualizzare una finestra di dialogo da cui controllare la risorsa video o audio

- creare, salvare e caricare tabelle (tavolozze) dei colori;

- catturare e salvare un singolo frame come bmp

5.3 REALIZZAZIONE DEL SOFTWARE

La finalità primaria per lo sviluppo del software è la capacità di far fronte a

modifiche che per vari motivi devono essere effettuate senza che per questo

l'intera struttura dell'applicazione già costruita debba essere messa nuovamente in

discussione ed elaborata.

A tal fine è stata utile la suddivisione del sistema in più sottoinsiemi non correlati, in

modo da poterne dominare la complessità più facilmente e, nel caso in cui debba

essere apportato un cambiamento, questo sia il più locale possibile e interessi il minor

numero di sottoinsiemi e delle loro interrelazioni.

Col termine "modulo" viene designato ciascuno dei sottoinsiemi in cui il sistema

complessivo è stato suddiviso.

Al fine di chiarire l'architettura del sistema, è necessario fornire, oltre alla

definizione dei moduli, la definizione dei loro collegamenti. Questa verrà riportata in

seguito.

Page 75: Studio e realizzazione di un sistema di puntamento oculare ...elite.polito.it/files/thesis/fulltext/signorile.pdf · ... ovvero le cellule nervose del cervello e del ... nel giro

83

Capitolo 5: Realizzazione sperimentale dei singoli moduli del sistema

5.3.1 SUPPORTI ALL'IMPLEMENTAZIONE DI UN'APPLICAZIONE

DIMOSTRATIVA

Nell'architettura presentata nella sezione precedente non si è accennato all'ipotesi

di utilizzare delle librerie, come elemento di supporto.

L'utilizzo di tali librerie è legato esclusivamente alla necessità di voler creare

un'applicazione del sistema che mostri come opera quest'ultimo.

Si era infatti inizialmente pensato di realizzare una libreria di immagini che

racchiudesse immagini in formato "bitmap" (estensione .bmp) che, opportunamente

richiamate, venivano visualizzate sullo schermo dell'elaboratore.

Ognuna di queste immagini avrebbe dovuto rappresentare una tabella suddivisa in sei

elementi, tanti quante sono le scelte possibili che l'utente del sistema ha la

possibilità di selezionare sul video con lo sguardo.

Una delle tabelle della libreria sarebbe stata utilizzata solamente durante la fase

della calibrazione del sistema e avrebbe dovuto mostrare una tabella di sei elementi,

in cui erano segnalati con dei punti rossi, i punti che l'utente doveva fissare al fine di

fornire al sistema i dati necessari per poter poi predire la direzione dello sguardo.

L'algoritmo per la calibrazione avrebbe dovuto occuparsi di richiamare questa

particolare tabella.

Una seconda immagine avrebbe dovuto rappresentare invece la tabella che viene

visualizzata all'utente quando utilizza il sistema. L'utente ha la possibilità di

selezionare uno dei sei elementi della tabella semplicemente fissandolo per un

determinato periodo.

Quando il sistema fosse riuscito ad interpretare la scelta dell'utente e avesse quindi

individuato quale tra i sei elementi fosse quello scelto da lui, avrebbe dovuto

richiamare una fra le sei restanti immagini. Si era pensato di associare ad ognuna di

esse una tabella in cui un elemento fosse evidenziato (colorato) rispetto agli altri.

A seconda dell'area predetta, il sistema avrebbe dovuto richiamare la tabella

appropriata.

Page 76: Studio e realizzazione di un sistema di puntamento oculare ...elite.polito.it/files/thesis/fulltext/signorile.pdf · ... ovvero le cellule nervose del cervello e del ... nel giro

84

Capitolo 5: Realizzazione sperimentale dei singoli moduli del sistema

La difficoltà nella realizzazione di questa ipotesi stava nell'implementare la

possibilità di richiamare e visualizzare a video delle bitmap, man mano che si

verificavano determinate condizioni durante l'esecuzione dell'applicazione.

Lo studio fatto, al fine di risolvere questo problema, ha portato ad accantonare

l'idea di creare una libreria di immagini a favore invece dell'utilizzo di un particolare

tipo di controllo messo a disposizione dal Visual C++: il controllo Microsoft FlexGrid

(MSFlexGrid).

Questo controllo permette di visualizzare ed eseguire operazioni su di una tabella,

inoltre fornisce una completa flessibilità per unire, dividere e formattare tabelle,

che possono anche contenere immagini o testo.

E' possibile accedere ad ogni singola cella della tabella creata sia facendo

riferimento ad essa all'interno del proprio codice, utilizzando gli indici di riga e

colonna, oppure col mouse, mentre l'applicazione è in fase d'esecuzione.

Per quando concerne l'applicazione sviluppata per il progetto di tesi, le uniche

operazioni eseguite sulla tabella sono state il dimensionamento delle celle (altezza

delle righe e larghezza delle colonne), in modo che la tabella visualizzata occupasse

tutto lo schermo, l'accesso alle singole celle tramite gli indice di riga e colonna e

l'attribuzione ad una singola cella di un colore (ad esempio il rosso).

Grazie a queste semplici operazioni è stato possibile far sì che, durante tutto il

tempo dell'esecuzione dell'applicazione, un tabella fosse visualizzata sullo schermo e

che la cella fissata dall'utente venisse di volta in volta illuminata (colorata di rosso).

Sicuramente una gestione del genere è molto meno pesante rispetto al dover ogni

volta caricare una bitmap per visualizzarla.

E' comunque da ricordare che prima di poter utilizzare MSFlexGrid bisogna

includere nel proprio progetto in Visual C++ il file MsFlexGrid.ocx, quest'ultimo è un

particolare tipo di file che contiene il codice eseguibile per implementare un

controllo ActiveX.

Un controllo ActiveX è un oggetto che è possibile inserire in una finestra di dialogo,

al fine di permettere o aumentare l'iterazione dell'utente con l'applicazione.

Page 77: Studio e realizzazione di un sistema di puntamento oculare ...elite.polito.it/files/thesis/fulltext/signorile.pdf · ... ovvero le cellule nervose del cervello e del ... nel giro

85

Capitolo 5: Realizzazione sperimentale dei singoli moduli del sistema

Il termine ActiveX è un termine nuovo, precedentemente conosciuto come OLE

(Object Linking Embedding), che veniva in origine utilizzato per descrivere la

capacità di inserire oggetti di vario tipo in documenti di un altro, come l'inserimento

di fogli di Excel in un documento Word. Oggi quest'espressione ha un significato più

ampio.

5.3.2 IMPLEMENTAZIONE DEL SOFTWARE

L'applicazione sviluppata è un'applicazione con finestra di dialogo (dialog based),

all'avvio quindi viene mostrata all'utente una finestra all'interno della quale è

visualizzata una tabella di sei celle (due righe e tre colonne). Sono anche disponibili

tre tasti:

- un tasto Inizio per avviare l'esecuzione delle funzioni di inseguimento oculare e

di predizione dello sguardo;

- un tasto Fine per interrompere momentaneamente l'esecuzione;

- un tasto Chiudi per terminare l'applicazione.

Il progetto del sistema è basato su una serie di funzioni, appartenenti a categorie

diverse, dichiarate e definite all'interno di file d'intestazione (.h).

Le diverse funzioni vengono richiamate all'interno di una funzione Esecuzione() che

viene automaticamente richiamata nel momento in cui viene premuto il tasto Inizio.

Il corpo base di Esecuzione() è strutturato nel modo seguente e rappresenta

l'implementazione dell'intero sistema di puntamento oculare:

Esecuzione:

� INIZIALIZZAZIONI VARIE

1) Definizione del numero minimo di campioni necessari per definire una

fissazione e della distanza massima di un punto dal punto di fissazione (soglia,

in pixel).

Page 78: Studio e realizzazione di un sistema di puntamento oculare ...elite.polito.it/files/thesis/fulltext/signorile.pdf · ... ovvero le cellule nervose del cervello e del ... nel giro

86

Capitolo 5: Realizzazione sperimentale dei singoli moduli del sistema

2) Finché i risultati della procedura di calibrazione non sono corretti ripetere la

procedura di calibrazione.

3) Inizializzare il buffer per la memorizzazione dei campioni per il calcolo delle

fissazioni.

� CORPO PRINCIPALE DELLA FUNZIONE

Finché il bottone Fine non viene premuto:

1) Cattura e salvataggio di un'immagine.

2) Definizione delle due aree contenenti il segno di riferimento e l'occhio destro

a partire dall'immagine catturata.

3) Calcolo delle coordinate x,y del punto origine del sistema di riferimento

comune a tutti i campioni raccolti.

4) Calcolo coordinate del centro pupilla a partire dall'immagine (binaria)

dell'occhio destro.

5) Determinazione direzione dello sguardo, cioè espressione delle coordinate

calcolate al punto 4) nel sistema di riferimento comune.

6) Calcolo punto di fissazione.

Nel caso la fissazione risulti terminata allora viene fatta una predizione per

determinare quale fosse l'area fissata dall'utente e la corrispondente cella

della tabella viene colorata di rosso.

Page 79: Studio e realizzazione di un sistema di puntamento oculare ...elite.polito.it/files/thesis/fulltext/signorile.pdf · ... ovvero le cellule nervose del cervello e del ... nel giro

87

Capitolo 5: Realizzazione sperimentale dei singoli moduli del sistema

5.3.2.1 RAPPRESENTAZIONE SCHEMATICA DEI MODULI DEL PROGETTO

L'ordine con cui sono stati presentati i vari file d'intestazione che contengono il

codice degli algoritmi su cui è basato il funzionamento del sistema e il loro contenuto

fa esattamente riferimento alla struttura del progetto.

Ogni file .h è associato ad un particolare modulo e l'ordine è quello che è stato

definito per i vari moduli in cui il progetto è suddiviso.

Per meglio comprendere questa suddivisione si riporta di seguito uno schema, che

rappresenta la disposizione dei moduli e i collegamenti tra essi, all'interno del

progetto.

Page 80: Studio e realizzazione di un sistema di puntamento oculare ...elite.polito.it/files/thesis/fulltext/signorile.pdf · ... ovvero le cellule nervose del cervello e del ... nel giro

88

Capitolo 5: Realizzazione sperimentale dei singoli moduli del sistema

Inizializzazioni

cattura

area occhio area riferimento

(x_centrop,y_centrop)

(x_rif,y_rif)

direzione sguardo

calcolo fissazione

Fine?

fissazione terminata? predizione

fine

tabella a video

FALSO

VERO

FALSO

VERO

Page 81: Studio e realizzazione di un sistema di puntamento oculare ...elite.polito.it/files/thesis/fulltext/signorile.pdf · ... ovvero le cellule nervose del cervello e del ... nel giro

89

Capitolo 5: Realizzazione sperimentale dei singoli moduli del sistema

5.3.2.2 DESCRIZIONE DEI DIVERSI MODULI DEL PROGETTO

La prima parte di inizializzazione consiste nel settare alcuni parametri che saranno

utilizzati nella parte di calcolo delle fissazioni.

Questi parametri sono il numero minimo di campioni necessario a definire una fissazione e

la distanza minima che un punto deve avere dal punto di fissazione per poter essere

considerato parte della fissazione in corso.

E' facile comprendere che, nell'intervallo di tempo in cui l'utente sta fissando un certo

punto sul video, tutti i campioni raccolti in tale intervallo cadranno grosso modo nella stessa

regione.

Non resta quindi che stabilire di quanti campioni è necessario disporre perché il calcolo del

punto di fissazione sia abbastanza affidabile e la misura della dimensione della regione in

cui i punti di una stessa fissazione si addensano.

La determinazione del numero minimo di campioni sarà influenzata anche dalla velocità con

cui opera il sistema, se il sistema è lento meno campioni sono necessari e più veloce sarà la

predizione dell'area fissata. Attualmente questo parametro è stato settato a tre campioni.

La misura della regione a cui si accennava sopra non è nient'altro che la definizione del

raggio di un'area circolare con centro proprio il punto di fissazione calcolato.

Se un punto sta ad una distanza dal centro maggiore del raggio allora non appartiene a

quella fissazione perché cade al di fuori della regione, in caso contrario significa che fa

parte della fissazione.

Figura 1

Inizializzazioni

non appartiene alla fissazione

appartiene alla fissazione

Page 82: Studio e realizzazione di un sistema di puntamento oculare ...elite.polito.it/files/thesis/fulltext/signorile.pdf · ... ovvero le cellule nervose del cervello e del ... nel giro

90

Capitolo 5: Realizzazione sperimentale dei singoli moduli del sistema

Attualmente il valore attribuito a questo parametro è di cinque pixel. Infatti l'unità

di misura per il calcolo della distanza tra due punti è il pixel.

Sempre all'interno della fase di inizializzazione troviamo la procedura di calibrazione

che ha appunto lo scopo di inizializzare il sistema prima che l'utente lo possa

utilizzare.

L'utente deve fissare sei differenti punti sul video che verranno memorizzati in un

buffer in modo da avere una sorta di mappa a cui riferirsi durante lo studio dello

spostamento dello sguardo dell'utente, nella fase di utilizzo del sistema.

Fin tanto che la procedura di calibrazione non risulta essere conclusa correttamente

è richiesto all'utente di ripeterla.

La funzione definizione_area_sguardo (calibrazione_sistema.h) controlla che l'ordine

dei punti memorizzati sia corretto, cioè identifichi grosso modo un rettangolo e che

quindi lo spostamento dello sguardo dell'utente (dall'angolo in alto a destra all'angolo

in basso a destra, in senso antiorario) sia stato registrato correttamente.

L'ultima operazione di inizializzazione da fare è sul buffer che raccoglie di volta in

volta i punti-campione utilizzati dalla funzione calcola_fissazione

(rileva_fissazione.h) per fornire le coordinate del punto di fissazione. Tutti i campi

del buffer vengono settati a zero.

A questo punto può avere inizio l'utilizzo vero e proprio del sistema da parte

dell'utente.

Non c'è una vera e propria procedura che si occupa di questa parte, ma si richiamano

direttamente due funzioni appartenenti all'AVICap window class: una per la cattura

di un singolo frame (capGrabFrame) ed una per il salvataggio su disco dell'immagine

catturata (capSaveFileDIB).

Cattura e salvataggio

Page 83: Studio e realizzazione di un sistema di puntamento oculare ...elite.polito.it/files/thesis/fulltext/signorile.pdf · ... ovvero le cellule nervose del cervello e del ... nel giro

91

Capitolo 5: Realizzazione sperimentale dei singoli moduli del sistema

Ogni immagine catturata viene salvata su I: col nome di viso.bmp.

La lettera I identifica un driver virtuale che è stato creato con un software

apposito, RAMDisk della Cenatek.

La scelta dell'utilizzo di un software del genere è legata all'esigenza di dare

maggiore velocità all'applicazione, in quanto una RAM è più veloce rispetto al disco

fisso nelle operazioni di salvataggio e recupero dei dati.

In questo caso i dati di cui si parla sono le immagini su cui operano i vari algoritmi.

Bisogna a questo punto precisare che questa fase è gestita in maniera differente a

seconda che si tratti della prima immagine acquisita oppure delle immagini successive.

La prima immagine catturata dalla webcam, durante la procedura di calibrazione,

serve unicamente per rilevare la posizione dell'occhio destro e del segno di

riferimento all'interno dell'immagine 640 x 480.

Le coordinate che identificano queste due posizioni sono salvate in un buffer ed

utilizzate per identificare, nelle immagini successive, la posizione dell'occhio e del

riferimento.

In questo modo si guadagna in velocità perché non è più necessaria la scansione

dell'immagine intera, per ricercare l'occhio e il riferimento, ma si determina

automaticamente dove sono posizionati l'occhio e il riferimento all'interno delle

immagini successivamente acquisite. E' chiaro che questo discorso funziona solo se i

movimenti della testa dell'utente sono lievi.

definizione area occhio e area riferimento

Page 84: Studio e realizzazione di un sistema di puntamento oculare ...elite.polito.it/files/thesis/fulltext/signorile.pdf · ... ovvero le cellule nervose del cervello e del ... nel giro

92

Capitolo 5: Realizzazione sperimentale dei singoli moduli del sistema

� Prima immagine:

le operazioni eseguite sulla prima immagine catturata sono:

identificazione della zona del viso all'interno dell'immagine intera

individuazione del segno di riferimento e calcolo delle coordinate

rilevamento posizione dell'occhio

Con la prima operazione si ricavano le coordinate degli estremi del viso, quindi

margine superiore, sinistro e destro.

Con la seconda operazione si delimita una zona della fronte, in base ai risultati

dell'operazione precedente, in cui andare ad applicare l'algoritmo di ricerca del

segno di riferimento.

Con la terza operazione si va a ricercare prima la fascia contenente gli occhi e poi

in questa la posizione dell'occhio destro.

Una volta che si hanno a disposizione tutti questi dati è semplice calcolare, nel

sistema di riferimento dell'immagine stessa (l'origine coincide con l'angolo in alto

a sinistra), la posizione dell'occhio e del riferimento.

Figura 2

La posizione dell'occhio e del riferimento così ottenute vengono memorizzate in

un buffer.

posizione occhio

Posizione riferimento

Page 85: Studio e realizzazione di un sistema di puntamento oculare ...elite.polito.it/files/thesis/fulltext/signorile.pdf · ... ovvero le cellule nervose del cervello e del ... nel giro

93

Capitolo 5: Realizzazione sperimentale dei singoli moduli del sistema

� Immagini successive:

utilizzando la funzione taglia_aree (definisce_aree.h) si isolano dall'immagine

catturata due sezioni: una che dovrebbe contenere l'occhio destro e l'altra che

dovrebbe contenere il segno di riferimento.

L'identificazione di queste due aree è fatta sulla base dei dati ottenuti dalla

prima immagine, andandoli a leggere dal buffer in cui sono stati precedentemente

memorizzati.

Rispetto a questi dati vengono però utilizzati in più dei margini di sicurezza, per

avere la certezza che le due aree selezionate contengano effettivamente gli

elementi che interessano, tenendo quindi conto di eventuali movimenti del capo

dell'utente.

immagine i-esima:

Figura 3

Con questo sistema gli algoritmi si trovano a dover operare su immagini di

dimensioni di gran lunga inferiori rispetto a quelle dell'immagine originale (640 x

480).

In media l'immagine contenente l'occhio destro (area occhio) presenta dimensione

100 x 100 pixel, mentre l'immagine contenente il riferimento (area riferimento)

presenta dimensione 40 x 80 pixel.

area occhio

area riferimento

Page 86: Studio e realizzazione di un sistema di puntamento oculare ...elite.polito.it/files/thesis/fulltext/signorile.pdf · ... ovvero le cellule nervose del cervello e del ... nel giro

94

Capitolo 5: Realizzazione sperimentale dei singoli moduli del sistema

Una volta che, con la fase precedente, è stata definita un'area in cui si presume

debba trovarsi il segno di riferimento, posto sulla fronte dell'utente, si applica un

algoritmo per identificare esattamente la posizione del riferimento. In particolare si

cerca di individuare l'angolo alto sinistro del segno rettangolare: questo punto

rappresenta l'origine del sistema di riferimento comune ed avrà coordinate

(x_rif,y_rif).

L'algoritmo in questione non opera nient'altro che una scansione dell'area del

riferimento con lo scopo di individuare un punto le cui componenti di colore sono

proprie del segno scuro ricercato.

In questa fase si dispone di un'immagine contenente solamente l'occhio destro.

Per prima cosa l'immagine è trasformata in un'immagine binaria, in modo da potervi

effettuare sopra una serie di analisi che permettono di circoscrivere maggiormente

l'area entro cui è posizionato l'occhio, eliminando ad esempio eventuali sopracciglia.

L'immagine è scandita per righe, la fascia a maggiore concentrazione di pixel neri

sarà ovviamente scelta come nuova area su cui andare ad applicare l'algoritmo per la

rilevazione del centro pupilla.

Questo algoritmo individua prima l'iride dell'occhio e in un secondo tempo calcola il

centro pupilla (che coincide col centro dell'iride), che avrà coordinate

(x_centrop,y_centrop).

calcolo coordinate del riferimento

calcolo coordinate del centro pupilla

Page 87: Studio e realizzazione di un sistema di puntamento oculare ...elite.polito.it/files/thesis/fulltext/signorile.pdf · ... ovvero le cellule nervose del cervello e del ... nel giro

95

Capitolo 5: Realizzazione sperimentale dei singoli moduli del sistema

In base alla posizione dell'occhio all'interno dell'immagine originale e alla posizione

del centro pupilla all'interno dell'immagine dell'occhio, si procede al calcolo delle

coordinate x_centrop e y_centrop nel sistema di riferimento dell'immagine 640 x

480.

Anche le coordinate del riferimento sono espresse nel medesimo sistema.

A questo punto l'algoritmo per il calcolo del gaze (sguardo in inglese) procede ad una

trasformazione di coordinate da un riferimento all'altro, cioè dal sistema di

riferimento dell'immagine a quello individuato dal segno sul viso.

Con questo procedimento tutti i punti raccolti sono rappresentati nel medesimo

sistema di riferimento ed è quindi possibile operare dei confronti fra essi.

Durante questa fase i diversi punti calcolati vengono memorizzati in un buffer

apposito, quando il numero di punti memorizzati è pari al numero minimo di campioni

necessario per calcolare una fissazione, viene eseguita una media sulle coordinate dei

punti a disposizione per un primo calcolo del punto di fissazione. Se i punti

successivamente raccolti misurano una distanza, dal punto così calcolato, inferiore

alla distanza minima richiesta allora vengono considerati parte della fissazione in

corso, che verrà aggiornata di conseguenza, in caso contrario viene dato inizio ad una

nuova fissazione.

Nel momento in cui alla nuova fissazione viene attribuito un numero di elementi pari

al numero minimo di campioni richiesto per calcolare una fissazione, la fissazione

precedente si può considerare conclusa.

calcolo direzione dello sguardo (gaze)

calcolo fissazioni

Page 88: Studio e realizzazione di un sistema di puntamento oculare ...elite.polito.it/files/thesis/fulltext/signorile.pdf · ... ovvero le cellule nervose del cervello e del ... nel giro

96

Capitolo 5: Realizzazione sperimentale dei singoli moduli del sistema

A questo punto può avere inizio la fase di predizione.

Nella parte di predizione viene fatto nient'altro che un confronto fra i punti ottenuti

dalla procedura di calibrazione e il punto di fissazione calcolato nella parte

precedente, sulla base dei punti raccolti in un certo periodo di tempo.

La procedura di predizione calcola la distanza del punto di fissazione da ognuno dei

sei punti memorizzati durante la calibrazione, utilizzando semplicemente la solita

formula di Pitagora.

Tra i sei punti, viene scelto quello da cui il punto di fissazione ha una distanza

inferiore, presumendo che l'utente abbia di nuovo fissato il suo sguardo proprio in

quella direzione.

Ognuno dei sei punti individua una cella della tabella visualizzata a video per l'utente.

Ad esempio il primo punto (x1,y1) individua la cella in alto a destra, il secondo punto

(x2,y2) individua la cella in alto ma in centro e così via.

A seconda della cella che la procedura ha predetto l'utente stesse fissando, la

funzione predizione_area6 (predizione.h) restituisce un valore intero, che va da uno a

sei, cioè tante quante sono le celle della tabella.

Così se la funzione restituisce uno significa che l'utente ha fissato la cella in alto a

destra, mentre se restituisce quattro significa che l'utente ha fissato la cella in

basso a sinistra e via di seguito.

predizione

Figura 4

Page 89: Studio e realizzazione di un sistema di puntamento oculare ...elite.polito.it/files/thesis/fulltext/signorile.pdf · ... ovvero le cellule nervose del cervello e del ... nel giro

97

Capitolo 5: Realizzazione sperimentale dei singoli moduli del sistema

Perché l'utente possa avere un riscontro visivo della scelta operata, la cella fissata si

colora di rosso, non appena il sistema è riuscito a portare a termine la predizione.

Per colorare una delle sei celle della tabella è stata creata una funzione apposita

SetColor.

E' sufficiente passare alla funzione in questione il numero della cella che si vuole

venga colorata (da 1 a 6 ovviamente).

La possibilità di accedere ad una qualunque delle celle della tabella è una delle

caratteristiche del controllo MSFlexGrid: basta indicare gli indici di riga e di colonna

e il colore che si vuole attribuire alla cella perché l'operazione venga eseguita.

Tutti i vari moduli appena presentati vengono eseguiti all'interno di un ciclo, come si

può vedere dallo schema del paragrafo 3.3.2.1.

Il ciclo viene interrotto nel momento in cui si preme il tasto Fine che compare nella

finestra di dialogo, insieme agli altri due tasti Inizio e Chiudi.

Per riprendere il ciclo è necessario invece premere nuovamente il tasto Inizio, in

questo caso l'utente dovrà rifare una nuova procedura di calibrazione. Infatti ogni

volta che l'utente desidera utilizzare il sistema, quest'ultimo deve essere prima

inizializzato, anche se il suo uso era stato interrotto solo temporaneamente

(premendo il tasto Fine).

Come già specificato la pressione del tasto Chiudi comporta la chiusura dell'intera

applicazione, per un nuovo utilizzo del sistema l'applicazione deve essere riavviata

(bisogna lanciare quindi il file .exe).

Page 90: Studio e realizzazione di un sistema di puntamento oculare ...elite.polito.it/files/thesis/fulltext/signorile.pdf · ... ovvero le cellule nervose del cervello e del ... nel giro

98

Capitolo 5: Realizzazione sperimentale dei singoli moduli del sistema

Viene di seguito presentata la videata che è visualizzata a video per l'utente,

durante il tempo di utilizzo sistema di puntamento oculare progettato.

Figura 5

Chiudi

Inizio Fine

Page 91: Studio e realizzazione di un sistema di puntamento oculare ...elite.polito.it/files/thesis/fulltext/signorile.pdf · ... ovvero le cellule nervose del cervello e del ... nel giro

99

Capitolo 5: Realizzazione sperimentale dei singoli moduli del sistema

5.3.2.3 BREVE DESCRIZIONE DEI FILE D'INTESTAZIONE DEL SISTEMA

La divisione delle diverse funzioni sviluppate nei diversi file d'intestazione rispecchia

la suddivisione del sistema in moduli.

� calibrazione_sistema.h

Contiene la definizione delle funzioni necessarie per lo sviluppo della procedura di

calibrazione:

la funzione calibrazione provvede alla raccolta dei punti durante la

fase di inizializzazione del sistema e alla memorizzazione in un buffer

dei sei punti corrispondenti alle fissazioni delle sei celle della tabella;

la funzione definizione_area_sguardo verifica la correttezza dei

risultati ottenuti con la precedente procedura. Restituisce 0 se la

procedura è andata a buon fine, 1 in caso contrario.

� trova_riferimenti.h

Contiene la definizione di tre funzioni che permettono di ricavare una serie di

coordinate importanti per l'applicazione degli algoritmi successivi:

la funzione zoom_viso "ritaglia" dalla prima immagine catturata un'area

contenente solamente il viso della persona, cioè fornisce lo stesso

risultato che si otterrebbe se la webcam utilizzata fosse munita di uno

zoom;

la funzione rileva_riferimento definisce un'area, all'interno della

prima immagine catturata, che si presume debba contenere il segno di

riferimento;

la funzione cerca_segno cerca invece, all'interno di una piccola area

(circa 80 x 60, in pixel) definita nell'immagine originale (quella catturata

dalla webcam), il segno di riferimento e ne memorizza in un buffer

apposito le coordinate x,y.

Page 92: Studio e realizzazione di un sistema di puntamento oculare ...elite.polito.it/files/thesis/fulltext/signorile.pdf · ... ovvero le cellule nervose del cervello e del ... nel giro

100

Capitolo 5: Realizzazione sperimentale dei singoli moduli del sistema

� definisce_aree.h

Contiene la definizione di un'unica funzione taglia_aree che, dall'immagine acquisita

avente dimensione 640 x 480, "ritaglia" due immagini di dimensioni molto ridotte, che

dovrebbero contenere, in base alle considerazioni derivanti dalla prima immagine

catturata, una l'occhio destro e l'altra il segno di riferimento. Questo modo di

procedere velocizza l'esecuzione dell'intera procedura per la ricerca dell'occhio e

del riferimento, in quando gli algoritmi si trovano a dover lavorare con immagini di

dimensioni fino a 10 volte inferiori a quelle dell'immagine acquisita dalla webcam.

� rilevazioni_occhio.h

Contiene la definizione di quelle funzioni necessarie per la fase di rilevazione

dell'occhio destro, della zona dell'iride e del calcolo del centro pupilla:

la funzione rileva_occhio ricava la posizione dell'occhio destro

all'interno della prima immagine acquisita. Le coordinate che

identificano tale posizione vengono memorizzate in un buffer ed

utilizzate per individuare l'area dell'occhio destro nelle immagini

successive alla prima;

la funzione rileva_centro_pupilla ricerca prima la posizione

dell'iride all'interno dell'immagine dell'occhio destro e poi calcola

le coordinate del centro pupilla salvandole in un buffer;

la funzione rileva_centro_pupilla_img_successive viene applicata

solamente a quell'area ritagliata dalla funzione taglia_aree

dall'immagine originale e che dovrebbe contenere l'occhio destro

della persona. La funzione prima riduce ulteriormente l'area

interessata e poi richiama su questa la funzione precedente

rileva_centro_pupilla.

Page 93: Studio e realizzazione di un sistema di puntamento oculare ...elite.polito.it/files/thesis/fulltext/signorile.pdf · ... ovvero le cellule nervose del cervello e del ... nel giro

101

Capitolo 5: Realizzazione sperimentale dei singoli moduli del sistema

� rileva_sguardo.h

Contiene la definizione di una funzione calcolo_gaze che, in base alle coordinate

indicanti la posizione dell'occhio, del centro pupilla e l'origine del sistema di

riferimento comune, ricalcola le coordinate del centro pupilla rispetto proprio a

questo sistema di riferimento.

� rileva_fissazione.h

Contiene la definizione di due funzioni, una di inizializzazione ed una per il calcolo

delle fissazioni in base ai campioni raccolti:

la funzione inizializza_fix esegue l'inizializzazione del buffer, che

contiene tutta una serie di dati sui punti via via memorizzati durante

l'esecuzione dell'applicazione. Tutti questi dati vengono posti uguali a

zero;

la funzione calcola_fissazione opera tutta una serie di considerazioni che

portano a ipotizzare quale sia lo stato dell'occhio: in movimento, in

fissazione, fissazione terminata. Raggiunto il numero minimo di campioni

necessari calcola le coordinate del punto di fissazione.

� predizione.h

Contiene la definizione della funzione predizione_area6 che, in base alle coordinate

del punto di fissazione e ai risultati della calibrazione, determina quale cella della

tabella sia individuata da quelle coordinate, cioè sia stata fissata dall'utente.

Restituisce un valore intero da 1 a 6, che è un indice identificativo di una

determinata cella.

Il codice sorgente di tutti i moduli descritti è presentano nell'appendice E.

Page 94: Studio e realizzazione di un sistema di puntamento oculare ...elite.polito.it/files/thesis/fulltext/signorile.pdf · ... ovvero le cellule nervose del cervello e del ... nel giro

103

6 Valutazioni

6.1 INTRODUZIONE

In questo capitolo si mostrano le attività sperimentali svolte, facendo particolare

riferimento al funzionamento del sistema per arrivare ad una valutazione critica dei

risultati ottenuti.

Innanzitutto, dal momento che una valutazione del sistema non può essere condotta

escludendo l'effettivo beneficio che un disabile motore grave ne può trarre, vengono

identificate patologie che, sebbene di natura diversa (traumatica o progressiva),

presentano una matrice comune che può essere sfruttata con questo supporto

informatizzato.

Page 95: Studio e realizzazione di un sistema di puntamento oculare ...elite.polito.it/files/thesis/fulltext/signorile.pdf · ... ovvero le cellule nervose del cervello e del ... nel giro

104

Capitolo 6: Valutazioni

6.2 INIDIVIDUAZIONE DI CATEGORIE DI DISABILITA'

Viene proposto un quadro generale sulle disabilità che, non consentendo il totale

controllo del movimento delle mani, impediscono l'accesso all'elaboratore tramite

tastiera e mouse. A questo proposito si ricorda che il tipo di disabilità considerato è

di natura fisica, così come è stato descritto nel capitolo 2 della presente tesi.

In questa categoria vi è una grande varietà di disabilità che include la paralisi

(completa o parziale), estrema debolezza, disturbi neurovegetativi, perdita di arti.

Tra le cause è inclusa la paralisi cerebrale, lesioni alla colonna vertebrale, lesioni

traumatiche alla testa (compreso l'ictus), traumi o malattie che portano ad

amputazioni o disturbi quali l'artrite, la SLA, la sclerosi multipla o la distrofia

muscolare.

Paralisi cerebrale: è definita come un danno alle aree motrici del cervello che si

verifica prima che questo raggiunga la sua maturità (in molti casi ciò avviene prima,

durante o immediatamente dopo la nascita). La paralisi può essere di tipo spastico, in

questo caso i muscoli sono tesi e contratti e i movimenti volontari risultano molto

difficoltosi o sconnessi ed involontari, ma costanti.

Lesioni alla colonna vertebrale: possono portare alla paralisi. L'estensione della

paralisi e le parti del corpo colpite sono determinate dall'altezza del danno sulla

spina dorsale e dal tipo di lesione subita. La tetraplegia colpisce tutti e quattro gli

arti ed è causata da una lesione alla zona cervicale della colonna vertebrale; la

paraplegia colpisce solamente le estremità inferiori.

Lesioni cerebrali e ictus: il termine lesione cerebrale è usato per descrivere un

esteso insieme di traumi, incluse la commozione celebrale, lesioni al cervelletto,

emorragie celebrali, fratture del cranio, infezioni post-operatorie e occlusioni

Page 96: Studio e realizzazione di un sistema di puntamento oculare ...elite.polito.it/files/thesis/fulltext/signorile.pdf · ... ovvero le cellule nervose del cervello e del ... nel giro

105

Capitolo 6: Valutazioni

celebrali. Le lesioni spinali, così come quelle cerebrali e gli ictus portano spesso a

paralisi, ma può esserci una grande varietà nel loro modo di manifestarsi.

Artrite: è definita come dolore alla giunture, di solito porta ad una riduzione della

possibilità di movimento e causa rigidità. L'artrite reumatica è una sindrome cronica.

L'osteo-artrite è una malattia degenerativa delle giunture.

SLA (Sclerosi Laterale Amiotrofica): è una malattia degenerativa e fatale del

sistema nervoso centrale caratterizzata da una lenta paralisi progressiva dei muscoli

volontari. Il sintomo più evidente è una progressiva rigidità dei muscoli degli arti, di

quelli del tronco e della respirazione, della gola e della lingua, portando ad una paralisi

parziale e a gravi difficoltà di parola. In Italia si contano sei ammalati ogni 100.000

abitanti.

La malattia colpisce maggiormente le persone comprese in una fascia di età che va

dai 40 ai 70 anni, mentre il rapporto uomini-donne è di 2 a 1.

Sclerosi multipla: è definita come una malattia progressiva del sistema nervoso

centrale caratterizzata dalla distruzione del materiale isolante che ricopre le fibre

nervose. Il problema delle persone colpite da questa malattia è legato al basso

controllo muscolare, rigidità e affaticamento, difficoltà a camminare, a parlare, ad

afferrare oggetti.

Distrofia muscolare: è una malattia ereditaria e progressiva. Si manifesta con

rigidità dei muscoli e perdita del loro controllo, con contrazioni e difficoltà a

camminare e a respirare.

Page 97: Studio e realizzazione di un sistema di puntamento oculare ...elite.polito.it/files/thesis/fulltext/signorile.pdf · ... ovvero le cellule nervose del cervello e del ... nel giro

106

Capitolo 6: Valutazioni

6.3 UTILIZZO DEL SISTEMA

Al momento l'utilizzo del sistema è stato proposto solamente a persone normodotate,

al fine di eseguire una serie di test che portassero alla determinazione dei principali

fattori di qualità che vengono descritti nei paragrafi successivi.

6.3.1 PRESENTAZIONE DEL SISTEMA

Si riporta di seguito la videata che viene mostrata all'utente al momento dell'avvio

dell'applicazione.

Figura 1

La finestra contiene una tabella in cui sono indicati sei punti rossi (uno per ogni cella

della tabella), a cui l'utente dovrà fare riferimento durante la fase di calibrazione.

Perché il sistema di predizione dello sguardo inizi a lavorare dev'essere premuto il

tasto Inizio, solo a questo punto viene effettuato il collegamento con la webcam.

Se il collegamento è avvenuto senza problemi compare a video una finestra

contenente un messaggio: "Connessione OK", in caso contrario il messaggio

Page 98: Studio e realizzazione di un sistema di puntamento oculare ...elite.polito.it/files/thesis/fulltext/signorile.pdf · ... ovvero le cellule nervose del cervello e del ... nel giro

107

Capitolo 6: Valutazioni

visualizzato sarà "Problemi con la connessione", a questo punto l'utente deve

riprovare a far partire il sistema, premendo nuovamente il bottone Inizio.

Figura 2 Figura 3

Se l'operazione di connessione con la webcam è riuscita, può avere inizio la procedura

di calibrazione e all'utente verrà visualizzato il seguente messaggio: "Inizio

calibrazione - fissare il punto in alto a destra".

Figura 4

L'utente inizia quindi a spostare il suo sguardo sui punti indicati (2 - 3 secondi per

ognuno), partendo dal primo in alto a destra e procedendo in senso antiorario.

Se la procedura di calibrazione si è conclusa correttamente allora compariranno a

video due messaggi: prima "Calibrazione terminata" e poi "Sistema pronto per l'uso" e

la finestra mostrerà una nuova tabella. In caso contrario un altro messaggio avvertirà

l'utente che la calibrazione dev'essere ripetuta.

Page 99: Studio e realizzazione di un sistema di puntamento oculare ...elite.polito.it/files/thesis/fulltext/signorile.pdf · ... ovvero le cellule nervose del cervello e del ... nel giro

108

Capitolo 6: Valutazioni

Calibrazione terminata con successo:

Figura 6 Figura 7

Calibrazione da rifare:

Figura 8

Nel momento in cui la calibrazione termina con successo, l'utente viene avvertito del

fatto che il sistema è pronto per essere utilizzato.

A questo punto l'utente decide quale tra le sei celle a disposizione scegliere, fissa su

di essa il suo sguardo (per 2 - 3 secondi) e la cella dovrebbe colorarsi di rosso.

Figura 9

Page 100: Studio e realizzazione di un sistema di puntamento oculare ...elite.polito.it/files/thesis/fulltext/signorile.pdf · ... ovvero le cellule nervose del cervello e del ... nel giro

109

Capitolo 6: Valutazioni

L'utente può continuare ad utilizzare il sistema fintanto che preme il bottone Fine

oppure il bottone Chiudi, in quest'ultima ipotesi si esce dall'applicazione.

Per quanto riguarda la predizione dello sguardo dell'utente e "l'illuminazione" della

cella corrispondente, va detto che il sistema opera con un certo ritardo e che quindi

"l'illuminazione" della cella fissata non è immediata.

Il ritardo in questione è pari al tempo utilizzato dal sistema per memorizzare un

numero di campioni uguale al numero minimo di campioni necessario per determinare

una fissazione.

Se il numero di campioni necessario al calcolo di una fissazione è tre, significa che,

dopo aver memorizzato tre differenti punti, il sistema è in grado di calcolare le

coordinate del punto di fissazione. Se i punti successivamente memorizzati

continuano a rientrare nella stessa area relativa alla fissazione in corso, quest'ultima

non può essere dichiarata terminata. Nel momento in cui viene ipotizzata una nuova

fissazione e vengono ad essa attribuita tre punti, significa che la precedente

fissazione è terminata e quindi si può illuminare la cella della tabella corrispondente.

Page 101: Studio e realizzazione di un sistema di puntamento oculare ...elite.polito.it/files/thesis/fulltext/signorile.pdf · ... ovvero le cellule nervose del cervello e del ... nel giro

110

Capitolo 6: Valutazioni

6.3.2 ANALISI DEI DATI OTTENUTI DA UNA PROVA DI UTILIZZO DEL

SISTEMA

E' stato richiesto ad un utente di eseguire la procedura di calibrazione del sistema.

Tutti i punti memorizzati durante tale procedura sono stati salvati in un file con lo

scopo di analizzarli successivamente. Viene riportato di seguito il contenuto del file.

In ogni colonna sono riportate due coordinate x e y, espresse nel sistema di

riferimento la cui origine corrisponde all'angolo alto, sinistro del segno nero,

rettangolare posto sulla fronte dell'utente. Ogni coppia di coordinate rappresenta un

punto che individua la direzione dello sguardo dell'utente.

Dalla procedura di calibrazione si devono ottenere sei diversi punti di fissazione. Nel

file sopra sono stati separati, con una linea, i punti appartenenti a fissazioni

differenti, in tutto ne sono state individuate esattamente sei.

Page 102: Studio e realizzazione di un sistema di puntamento oculare ...elite.polito.it/files/thesis/fulltext/signorile.pdf · ... ovvero le cellule nervose del cervello e del ... nel giro

111

Capitolo 6: Valutazioni

Poiché l'algoritmo per il calcolo delle fissazioni determina il punto di fissazione

operando una semplice media, i sei punti risultanti dalla calibrazione eseguita

saranno:

in alto a destra: 101.2 82.2

in alto al centro: 93.6 81.8

in alto a sinistra: 84.5 81.3

in basso a sinistra: 86.0 91.2

in basso al centro: 93.5 94.0

in basso a destra: 110.2 92.9

Figura 10

Page 103: Studio e realizzazione di un sistema di puntamento oculare ...elite.polito.it/files/thesis/fulltext/signorile.pdf · ... ovvero le cellule nervose del cervello e del ... nel giro

112

Capitolo 6: Valutazioni

Terminata la calibrazione l'utente ha provato a spostare il suo sguardo indirizzandolo

sulle diverse celle della tabella, che si coloravano di rosso di volta in volta.

I diversi punti di fissazione calcolati dal sistema, durante questa prova, vengono

riportati sullo stesso grafico mostrato nella pagina precedente.

Figura 11

Dalla figura possiamo capire che l'utente ha fissato due volte la cella in alto a

sinistra (fissazioni 4 e 8), due volte la cella in alto al centro (fissazioni 5 e 9), una

volta la cella in alto a destra (fissazione 2), due volte la cella in basso a destra

(fissazioni 6 e 10), una volta la cella in basso al centro (fissazione 1) e due volte la

cella in basso a sinistra (fissazioni 3 e 7).

Page 104: Studio e realizzazione di un sistema di puntamento oculare ...elite.polito.it/files/thesis/fulltext/signorile.pdf · ... ovvero le cellule nervose del cervello e del ... nel giro

113

Capitolo 6: Valutazioni

6.4 VALUTAZIONI TECNICHE: FATTORI DI QUALITA'

In questo paragrafo viene valutato il software prodotto da un punto di vista tecnico,

osservando come i principali fattori di qualità vengono soddisfatti.

Per ogni fattore di qualità verrà prima analizzato il significato che gli viene

attribuito in questo contesto.

Affidabilità: è una caratteristica del software del quale è "possibile fidarsi", nel

senso che le funzionalità offerte corrispondono ai requisiti o portano in ogni caso a

disturbi tollerabili. Per quanto riguarda l'affidabilità del sistema progettato bisogna

precisare che questa fattore è influenzato soprattutto dalla qualità delle immagini

catturate, nel senso che ad una cattiva illuminazione del viso dell'utente corrisponde

un'immagine binaria su cui gli algoritmi di rilevazione dell'occhio non operano

correttamente. Questo problema è stato affrontano e descritto nel capitolo 4

"Progetto logico e soluzione del problema".

Se i requisiti di base, richiesti per utilizzare il sistema (buon controllo del capo,

illuminazione adeguata dell'ambiente, capacità di fissare lo sguardo su di un punto),

vengono rispettati il sistema risponde in maniera abbastanza soddisfacente durante

l'utilizzo da parte dell'utente.

Robustezza: è una caratteristica del software che si comporta in maniera accettabile

anche in corrispondenza di situazioni non specificate nei requisiti.

Questo fattore è purtroppo un punto critico del sistema, in quanto, se i requisiti

richiesti per poter utilizzare efficacemente il sistema (buon controllo del capo,

illuminazione adeguata dell'ambiente, capacità di fissare lo sguardo su di un punto)

non sono rispettati, il sistema non funziona correttamente o peggio l'applicazione

viene interrotta.

Page 105: Studio e realizzazione di un sistema di puntamento oculare ...elite.polito.it/files/thesis/fulltext/signorile.pdf · ... ovvero le cellule nervose del cervello e del ... nel giro

114

Capitolo 6: Valutazioni

Prestazioni: indica il modo in cui si utilizzano importanti risorse come il tempo di

esecuzione.

1. tempo di esecuzione: non si può affermare che il sistema progettato sia

un'applicazione real-time, in quanto, come spiegato nel paragrafo precedente, la

predizione dell'area fissata avviene con un certo ritardo, pari al tempo

necessario perché sia memorizzato un numero di punti pari al numero minimo di

campioni necessario a determinare una fissazione.

Al momento questo numero di campioni è fissato a tre, cioè il calcolo della

fissazione può essere eseguito solamente quando si hanno a disposizione almeno

tre campioni.

Per poter quantificare questo ritardo, bisogna prima determinare quanto tempo

serve al sistema per elaborare i dati di input (immagine catturata dalla webcam)

e fornire le coordinate finali x, y che determinano la direzione dello sguardo.

I valori che abbiamo a disposizione per effettuare questo calcolo sono i seguenti:

• per permettere al sistema di calcolare una fissazione l'utente fissa l'area

desiderata per un tempo che va dai 2 ai 3 secondi (questo è il tempo che si è

utilizzato finora nelle prove eseguite);

• durante questa pausa di fissazione in media i punti attribuiti ad una singola

fissazione sono 8.

A questo punto per calcolare il numero di campioni elaborati al secondo dal

sistema è sufficiente calcolare

n. campioni per una fissazione/tempo di fissazione

che nel nostro caso fornisce il risultato di 2,67 campioni al secondo.

Ritornando al problema sopra, cioè come quantificare il ritardo di predizione, si

intuisce facilmente che, per poter elaborare tre campioni, il sistema necessita di

poco più di un secondo. Ciò significa che, una volta che l'utente sposta il suo

sguardo su una nuova cella, quella fissata precedentemente si "illumina" con circa

un secondo di ritardo. Questa modo di procedere dipende da come è struttura la

funzione per il calcolo delle fissazioni. La funzione infatti considerata terminata

Page 106: Studio e realizzazione di un sistema di puntamento oculare ...elite.polito.it/files/thesis/fulltext/signorile.pdf · ... ovvero le cellule nervose del cervello e del ... nel giro

115

Capitolo 6: Valutazioni

una fissazione solamente quando si ne è ipotizzata una nuova. Solo quando si ha la

sicurezza che la fissazione sia terminata può avere inizio la predizione dell'area e

la cella corrispondente può essere illuminata.

In realtà questo è risultato un metodo non molto intuitivo per l'utente che

utilizza il sistema. Infatti è più semplice che la cella fissata si illumini non appena

è stato memorizzato il numero minimo di campioni necessario a calcolare una

fissazione (in questo caso 3) e non dopo che si è spostato lo sguardo su di

un'altra cella.

Sempre facendo riferimento ai valori appena utilizzati si può anche calcolare il

tempo necessario per concludere la procedura di calibrazione. Poiché è richiesto

all'utente di fissare sei differenti punti, soffermandosi su ognuno circa 3

secondi, il tempo totale richiesto dalla procedura è di 18 secondi, più un secondo

circa perché il sistema consideri terminata l'ultima fissazione (quella sul punto in

basso a destra), per il problema del ritardo appena discusso.

Riassumendo quanto appena descritto, si riporta la seguente tabella.

pausa di fissazione di cui il sistema ha per poter effettuare la predizione

2 - 3 secondi

num. minimo di campioni necessario per calcolare una fissazione

3 campioni

num. di campioni che si registra in media per fissazione

8 campioni

num. campioni elaborati al secondo

2,67 campioni al

secondo

tempo di ritardo nella predizione

1,12 secondi

tempo per la calibrazione 19,12 secondi

Page 107: Studio e realizzazione di un sistema di puntamento oculare ...elite.polito.it/files/thesis/fulltext/signorile.pdf · ... ovvero le cellule nervose del cervello e del ... nel giro

116

Capitolo 6: Valutazioni

Usabilità: qualità esterna (cioè percepibile da un osservatore esterno al sistema)

indicante quanto l'utente si trovi a suo agio nell'utilizzare il software.

Avendo proposto l'uso del sistema solamente a persone normodotate, non è facile

verificare se questo fattore sia soddisfatto o meno, in quanto il sistema è stato

pensato per utenti disabili motori gravi.

Il problema sta' principalmente nell'acquisire una certa dimestichezza nell'utilizzo

dello sguardo come canale di input per l'elaboratore.

Una volta superato questo primo ostacolo e dopo aver studiato un buon supporto per

il capo, che permetta all'utente di mantenere una posizione comoda mentre utilizza il

software in questione, il fattore di usabilità dovrebbe essere soddisfatto in maniera

accettabile.

Comprensibilità: è fondamentale che il software prodotto sia comprensibile ai fini di

poterne garantire la correttezza, di potervi apportare facilmente modifiche e di

poterlo riusare.

Al fine di rendere questo software comprensibile sono stati utilizzati degli

accorgimenti atti a favorirne la modularità. Il primo è stato quello di inserire

un'elevata quantità di commenti nel codice, il secondo è stato quello di suddividere il

sistema in diversi moduli ad ognuno dei quali è stata attribuita una funzionalità

specifica, come descritto nel capitolo 5 "Realizzazione sperimentale dei singoli

moduli del sistema".

Page 108: Studio e realizzazione di un sistema di puntamento oculare ...elite.polito.it/files/thesis/fulltext/signorile.pdf · ... ovvero le cellule nervose del cervello e del ... nel giro

118

7 Direzioni future di ricerca

7.1 INTRODUZIONE

In questa sezione vengono presentati possibili ampliamenti e miglioramenti futuri del

sistema, nonché applicazioni di carattere generale in un ambito che rimane quello

considerato in questo studio: quello della disabilità motoria grave.

Si cerca principalmente di identificare alcune tra le applicazioni che mi sono

sembrate più interessanti in modo da fornire una visuale completa di una possibile

evoluzione del sistema.

In particolare ci si soffermerà sui contenuti implementativi o realizzativi delle

applicazioni proposte.

Page 109: Studio e realizzazione di un sistema di puntamento oculare ...elite.polito.it/files/thesis/fulltext/signorile.pdf · ... ovvero le cellule nervose del cervello e del ... nel giro

119

Capitolo 7: Direzioni future di ricerca

7.2 POSSIBILITA' DI APPLICAZIONE PER NORMODATATI

In pratica si può utilizzare il sistema per normodotati permettendo una più rapida

esecuzione delle operazioni normalmente eseguite con altri strumenti (ad esempio il

mouse).

La selezione di un oggetto con il mouse è di solito eseguita tramite un'operazione di

puntamento sull'oggetto desiderato e un'operazione di pressione su di un bottone.

La selezione può essere fatta operando una scelta tra le diverse icone che sono

visualizzate sul desktop del computer.

Confrontiamo due diverse possibilità di operare una selezione: da una parte con il

mouse l'utente individua l'oggetto che lo interessa, sposta il puntatore su di esso e

preme il bottone del mouse per selezionarlo; dall'altra l'utente fissa il proprio

sguardo sull'oggetto per un certo tempo (pausa di fissazione).

L'approccio che utilizza la pausa di fissazione, come metodo di selezione, potrebbe

essere molto più conveniente se si riuscisse a rendere sufficientemente breve il

tempo richiesto per la selezione. C'è comunque da considerare che una pausa di

fissazione più lunga garantisce che l'utente non abbia operato inavvertitamente una

selezione semplicemente muovendo il suo sguardo sul video.

Sempre per porre in evidenza il fatto che l'uso dello sguardo come metodo di

selezione, rispetto ai metodi tradizionali, può comportare una maggiore velocità,

viene proposta una breve e semplice dimostrazione.

Indichiamo con Tesecuzione il tempo necessario per selezionare un oggetto e

individuiamo cinque differenti operatori:

- S: spostamento della mano per posizionarla sul mouse;

- P: movimento per posizionare il puntatore sull'oggetto desiderato;

- K: pressione del tasto del mouse;

- M: operatore mentale, l'utente prima pensa all'operazione da compiere;

- R: risposta del sistema

Page 110: Studio e realizzazione di un sistema di puntamento oculare ...elite.polito.it/files/thesis/fulltext/signorile.pdf · ... ovvero le cellule nervose del cervello e del ... nel giro

120

Capitolo 7: Direzioni future di ricerca

L'ultimo operatore, R, dipende dal sistema che si utilizza, mentre gli altri operatori

dipendono dall'utente e dalle caratteristiche del dispositivo di input.

A questo punto si può scrivere:

Tesecuzione = T(S) + T(P) + T(K) + T(M) + T(R)

L'operatore P descrive l'operazione di movimento del puntatore del mouse nella

posizione corretta, sembra quindi ragionevole suddividere questo operatore in un

operatore che descrive il movimento dell'occhio per cercare l'oggetto desiderato,

Pocchio, e un operatore che descrive invece il movimento del puntatore sull'oggetto

desiderato, Pmovimento, quindi:

P = Pocchio + Pmovimento

Nel caso di un sistema a puntamento oculare il tempo di esecuzione può essere

calcolato nel modo seguente:

Tesecuzione = T(M) + T(Pocchio) + T(Reye-tracking)

Confrontiamolo col tempo richiesto per effettuare la medesima operazione di

selezione col mouse:

Tesecuzione = T(M) + T(Pocchio) + T(Pmovimento) + T(S) + T(K) + T(Rclick-mouse)

E' chiaro che il primo metodo conviene quando

T(Reye-tracking) < T(Pmovimento) + T(S) + T(K) + T(Rclick-mouse)

cioè quando occorre più tempo per muovere il mouse e premere il tasto piuttosto che

fissare semplicemente l'oggetto da selezionare.

Normalmente una persona prima fissa l'oggetto e poi muove il mouse nella posizione

desiderata, quindi il ragionamento appena esposto ha un suo fondamento. Il problema

sta nel fatto che una pausa di fissazione non è un movimento naturale, cioè una

persona di solito non fissa un oggetto o un punto per lungo tempo.

E' chiaro che se l'utente presenta problemi di movimento e ha difficoltà

nell'utilizzare i dispositivi standard di input avrà come unica possibilità quella di

usare un sistema di puntamento oculare, ma se l'utente non presenta disabilità di

questo tipo opterà per un sistema del genere solamente se esso comporta dei

Page 111: Studio e realizzazione di un sistema di puntamento oculare ...elite.polito.it/files/thesis/fulltext/signorile.pdf · ... ovvero le cellule nervose del cervello e del ... nel giro

121

Capitolo 7: Direzioni future di ricerca

vantaggi rispetto all'utilizzo dei dispositivi standard. Questi vantaggi potrebbero

essere tutti concentrati in una maggiore velocità e semplicità di esecuzione.

Bisogna comunque considerare anche gli svantaggi derivanti dall'utilizzo di un tale

sistema. Come già accennato sopra, una pausa di fissazione non è un movimento

naturale dell'occhio e quindi utilizzare lo sguardo come canale di input può richiedere

una maggiore attenzione e concentrazione, almeno le prime volte.

7.3 MIGLIORAMENTI FUTURI PREVISTI

Al termine del lavoro svolto rimane sicuramente la speranza di poter ampliare

ulteriormente il sistema progettato, con lo scopo di fornire una possibilità concreta

di utilizzo da parte di utenti disabili motori gravi.

I due punti principali su cui sicuramente c'è ancora da lavorare sono:

1. il tempo di esecuzione: al momento è richiesta una pausa di fissazione pari a 2 - 3

secondi per selezionare una cella della tabella. Sarebbe un miglioramento

notevole si riuscisse a ridurre questo tempo fino a 0,5 - 1 secondi, in quanto non

solo la risposta del sistema sarebbe più veloce, ma il sistema stesso sarebbe più

semplice da utilizzare. Infatti come è stato detto nel paragrafo precedente una

pausa di fissazione non è un movimento naturale dell'occhio e quindi più tempo

l'utente deve mantenere lo sguardo fisso su di un punto e maggiori difficoltà

incontrerà nell'utilizzare il sistema.

2. numero di scelte a disposizione dell'utente: al momento l'utente ha la possibilità

di selezionare una fra le sei celle della tabella che gli viene proposta a video,

quindi il numero di scelte che ha a disposizione è piuttosto limitato. Questo è

dovuto principalmente ad un problema di risoluzione della telecamera. Al

momento l'area di variazione dello sguardo di un utente ha dimensioni di 25 x 17

pixel. Proprio le dimensioni limitate di quest'area rendono difficile riuscire e

distinguere più di sei zone differenti. Il miglioramento futuro su cui si vorrebbe

lavorare è quello di cercare di aumentare questo numero almeno fino a nove o

meglio dodici scelte diverse. A questo punto si potrebbe anche seriamente

Page 112: Studio e realizzazione di un sistema di puntamento oculare ...elite.polito.it/files/thesis/fulltext/signorile.pdf · ... ovvero le cellule nervose del cervello e del ... nel giro

122

Capitolo 7: Direzioni future di ricerca

pensare di utilizzare il sistema insieme ad un software di comunicazione

aumentativa ed alternativa.

Durante i mesi di lavoro per lo sviluppo della tesi si è lavorato soprattutto sul primo

punto. Infatti, inizialmente, perché l'area selezionata venisse illuminata era

necessaria una pausa di fissazione di circa 10 secondi, dopo aver apportato alcune

modifiche ed accorgimenti agli algoritmi la pausa di fissazione è stata ridotta a 2 - 3

secondi, cinque volte di meno.

Continuando nello studio di nuove modifiche da apportare agli algoritmi scritti, per

velocizzarne le operazioni, si spera di ridurre questo tempo ulteriormente.

Per quanto riguarda invece il secondo punto, il problema è rappresentato dal fatto

che l'area di variazione dello sguardo dell'utente non è molto ampia e risulta

difficile distinguere più di sei zone diverse.

Probabilmente la situazione migliorerebbe se le immagini catturate avessero una

risoluzione maggiore, in quanto più è grande la risoluzione e più è grande il numero di

punti che compone l'immagine.

Di conseguenza anche l'area di variazione dello sguardo risulterebbe ingrandita.

La soluzione a questo problema potrebbe essere rappresentata dall'utilizzo di una

webcam a prestazioni migliori di quella finora utilizzata durante lo svolgimento di

questo lavoro. La qualità delle fotocamere digitali si sta avvicinando velocemente alla

qualità ottenuta da quelle di tipo tradizionale. Si pensa che questa crescita porterà

quanto prima ad una eguale qualità degli apparati, ed annullerà le differenze che

tuttavia al momento sono evidenti.

Poiché la webcam è un componente hardware indispensabile al sistema progettato

sembra logico pensare di impegnare parte del lavoro futuro nella ricerca di un

dispositivo che sappia offrire prestazioni migliori, ovviamente sempre tenendo in

considerazione il fattore economico.

Page 113: Studio e realizzazione di un sistema di puntamento oculare ...elite.polito.it/files/thesis/fulltext/signorile.pdf · ... ovvero le cellule nervose del cervello e del ... nel giro

123

Capitolo 7: Direzioni future di ricerca

Riassumendo i punti su cui si intende continuare a lavorare allo scopo di migliorare il

software realizzato finora sono:

• raggiungimento di una velocità di risposta dell'applicazione maggiore

• aumento del numero di possibili scelte a disposizione dell'utente

Sicuramente uno dei mezzi da utilizzare per raggiungere questi obbiettivi è lo studio

delle prestazioni di diverse webcam al fine di scegliere la più adatta ad essere

utilizzata in base alle esigenze degli algoritmi del sistema.

7.4 POSSIBILITA' DI APPLICAZIONE DA PARTE DI MALATI DI SLA

Molte persone danno per scontato capacità come mangiare o parlare. Capacità molto

importanti nella vita di ogni giorno e in molti aspetti della vita di relazione, che la

SLA (Sclerosi Laterale Amiotrofica) può influenzare, comportando graduali

cambiamenti: pertanto è importante essere consapevoli di come si possa mantenere

una comunicazione efficace.

Oggi i personal computer offrono grandi possibilità per la comunicazione. Se, insieme

al computer, viene fornito un opportuno software di comunicazione e un dispositivo di

input che anche l'utente con problemi motori possa usare, i bisogni di espressione e

di comunicazione della persona disabile possono essere soddisfatti.

Una possibile direzione futura di ricerca è orientata all'integrazione del sistema di

puntamento oculare realizzato con un software di comunicazione aumentativa ed

alternativa. Questa combinazione potrebbe rappresentare per un malato di SLA

ridotto alla completa immobilità, ad eccezione del movimento oculare, un metodo

efficace per aumentare e soprattutto per mantenere una relazione comunicativa col

mondo che lo circonda.

Una volta realizzato questo primo obbiettivo, cioè fornire un valido strumento di

comunicazione per una persona disabile, sarebbe bello cercare di sviluppare il sistema

Page 114: Studio e realizzazione di un sistema di puntamento oculare ...elite.polito.it/files/thesis/fulltext/signorile.pdf · ... ovvero le cellule nervose del cervello e del ... nel giro

124

Capitolo 7: Direzioni future di ricerca

in modo da trasformarlo in uno strumento di supporto per la gestione di un casa

integrata con servizi e sistemi telematici.

Questo progetto prevederebbe quindi l'utilizzo dello sguardo per impartire

all'elaboratore comandi che vanno ad agire sullo spegnimento/accensione delle luci,

apertura/chiusura delle tapparelle, aumento/diminuzione della temperatura, etc.

Tutto questo lavoro permetterebbe ad un malato di SLA di mantenere una buona

qualità di vita e di vivere in maniera accettabile nonostante la malattia.

Page 115: Studio e realizzazione di un sistema di puntamento oculare ...elite.polito.it/files/thesis/fulltext/signorile.pdf · ... ovvero le cellule nervose del cervello e del ... nel giro

126

8 Conclusioni

Giunti al termine di questo lavoro, ci si rende conto facilmente come le questioni

trattate non siano pronte per essere archiviate e dimenticate, ma possano essere

ulteriormente approfondite per giungere a soluzioni sempre migliori.

Questo lavoro mi ha permesso di avvicinarmi ad un mondo che spesso, per distrazione

o superficialità, si è portati a trascurare. Senza conoscerlo è dunque difficile poter

capire le vere difficoltà che vengono incontrate quotidianamente da un disabile

motorio grave.

Più ci si addentra in questo mondo, più scaturiscono idee su come ampliare il sistema

per fornire all'utente un controllo dell'elaboratore, e non solo, sempre maggiore.

Da quanto è stato esposto nella presente tesi e in particolare nel capitolo 2, Stato

dell'arte, è immediato riconoscere che molto è stato fatto nel campo della disabilità

motoria, ma purtroppo i risultati maggiori si sono avuti prevalentemente all'estero.

Non sempre è immediata la possibilità di utilizzare materiale proveniente da altri

paesi, questo proprio a causa di incompatibilità di simboli, lingua e abitudini.

E' per questo motivo che si rende sempre più urgente la necessità di sviluppare

materiale accessibile anche in Italia dove purtroppo le realizzazioni proposte sono

ancora insufficienti.

E' auspicabile che in futuro possa essere sviluppata anche nel nostro Paese un

rapporto di collaborazione delle case produttrici di software in modo da giungere a

delle linee guida di comportamento come è avvenuto nella maggior parte dei paesi

industrializzati.

Questo lavoro ha la speranza di porre delle basi solide su cui sviluppare ampliamenti

futuri, come è stato descritto nel capitolo 7, Direzioni future di ricerca.

Page 116: Studio e realizzazione di un sistema di puntamento oculare ...elite.polito.it/files/thesis/fulltext/signorile.pdf · ... ovvero le cellule nervose del cervello e del ... nel giro

128

9 Bibliografia "White Paper on the Design of Software Application Programs to Increase Their

Accessibility for People with Disabilities" - Trace R&D Center, Novembre 1991

"Assistive technologies for Persons with disabilities" - Mann e William C. - American

Occupational Therapy Association (Bethesda), 1995

"Electronic Devices for Rehabilitation" - Webster J., Cook A., Tompkins W.,

Vanderheiden G. - Chapman & Hall Medical (London), 1985

"Ausili per l'autonomia" - Renzo Andrich - Pro Juventute (Milano), 1998

"Augmentative and Alternative Communication: An Introduction" - Blackstone S. -

American Speech Language Hearing Association (Rockville), 1986

"Eye Tracking in Advanced Interface Design" - Robert J. K. Jacob - Human-

Computer Interaction Lab, Naval Research Laboratory (Washington)

"Eye tracking" - Tesi di Laurea di Tamara Miller - University of Wisnconsin

(Madison), 2000Tamara

"Vision-Based Eye-Gaze Tracking" - Kyung-Nam Kim e R.S. Ramakrishna -

Dipartimento di Informatica e Comunicazione dell'Istituto di Scienza e Tecnologia di

Kwangju (Corea)

Page 117: Studio e realizzazione di un sistema di puntamento oculare ...elite.polito.it/files/thesis/fulltext/signorile.pdf · ... ovvero le cellule nervose del cervello e del ... nel giro

129

Capitolo 9: Bibliografia

Dalla collana Vivere con la SLA:

"Volume 1, LA MALATTIA - Cause, sintomi, diagnosi e possibili cure" a cura di AISLA

"Volume 4, L'ALIMENTAZIONE E LA COMUNICAZIOE" a cura di AISLA

"A BRIEF INTRODUCTION TO DISABILITIES - A brief introduction to the major

disability groups and some specific barriers to accessibility they encounter" - Trace

R&D Center, 1991

"Visual C++ 6" - Jon Bates e Tim Tompkins - McGrawHill, 1998

Page 118: Studio e realizzazione di un sistema di puntamento oculare ...elite.polito.it/files/thesis/fulltext/signorile.pdf · ... ovvero le cellule nervose del cervello e del ... nel giro

132

Appendice A Ausili informatici e tecnologie per disabili

Viene presentata nelle seguente appendice, una panoramica su alcuni ausili

informatici e software di comunicazione di particolare interesse.

I vari prodotti vengono descritti divisi per categorie.

Le categorie a cui si fa riferimento sono: tastiere, dispositivi di puntamento,

prodotti hardware e software di comunicazione aumentativa ed alternativa (AAC) e

sensori.

TASTIERE

L'utilizzo della comune tastiera può essere complicato a causa di problemi nel

controllo degli arti superiori.

A volte è sufficiente adottare delle modifiche alle impostazioni software

dell'elaboratore che si sta utilizzando, altre volte è possibile identificare delle

soluzioni alternative.

A tale scopo esistono tastiere ridotte o espanse, tastiere a membrana e/o tastiere

riconfigurabili, tastiere a video su cui l'interazione avviene tramite un dispositivo di

puntamento, o tastiere con display, indipendenti dal computer.

Un'altra soluzione consiste nel ricorrere ai sistemi di controllo del computer a

scansione, tramite l'uso di sensori esterni.

� Tastiere ridotte ed espanse: le prime sono tastiere speciali caratterizzate da

dimensioni ridotte e tasti piccoli, ravvicinati e molto sensibili, le seconde sono

tastiere di grandi dimensioni, con tasti ingranditi. Un esempio di tastiera espansa è la Big Keys Colour Plus della Greystone Inc., in

cui i tasti sono grandi il quadruplo di quelli di una tastiera normale.

Page 119: Studio e realizzazione di un sistema di puntamento oculare ...elite.polito.it/files/thesis/fulltext/signorile.pdf · ... ovvero le cellule nervose del cervello e del ... nel giro

133

Appendice A: Ausili informatici e tecnologie per disabili

Un esempio di tastiera ridotta è la WinMini della Tash Inc., in cui i tasti hanno

un'area di 1.3 cm quadrati e sono molto ravvicinati tra loro.

� Tastiere a membrana e/o riconfigurabili: la tastiera Discover Board della Don

Johnston Inc. è una tastiera espansa riconfigurabile. Si presenta come una

tavoletta su cui è possibile inserire delle membrane plastificate e delle

membrane cartacee personalizzate. Anche la tastiera espansa dell'IntelliKeys,

avente un'area maggiore rispetto a quella delle tastiere standard, è

riprogrammabile.

� Tastiere video: SoftType è una tastiera a video, che permette alle persone con

difficoltà motorie, di inviare comandi a qualsiasi applicazione di Windows.

SoftType contiene un sistema di predizione di parola che permette di ridurre il

numero di tasti da premere.

I click del mouse possono essere ottenuti usando la tecnica dell'AutoClick: il

click del tasto sinistro del mouse è "realizzato" dopo che il puntatore è rimasto

immobile, per un intervallo di tempo programmabile, sul punto desiderato.

Si può avere accesso a qualsiasi applicazione o utilità Windows con l'uso esclusivo

di un sensore, di SoftType e di un sistema di puntamento col capo (HeadMouse).

� Tastiere con display: l'AlphaSmart è una tastiera, indipendente dal computer,

con un display a quattro righe, facilmente trasportabile ed ideale per chi ha

problemi di scrittura.

� Sistemi a scansione: Discover Switch della Don Johnston Inc. è un sistema

integrato hardware e software per PC per l'utilizzo ed il pieno controllo del

computer attraverso la scansione. E possibile dare qualsiasi comando

all'elaboratore azionando un sensore (scansione automatica - selezione indiretta)

o due (scansione manuale - selezione diretta). Discover Switch consiste in un

grosso sensore e in un software di gestione. Una volta installato, il software

riproduce, sul monitor, delle tabelle su cui verrà attivata la scansione. Le tabelle

sono personalizzabili.

Page 120: Studio e realizzazione di un sistema di puntamento oculare ...elite.polito.it/files/thesis/fulltext/signorile.pdf · ... ovvero le cellule nervose del cervello e del ... nel giro

134

Appendice A: Ausili informatici e tecnologie per disabili

DISPOSITIVI DI PUNTAMENTO

Esistono mouse speciali in alternativa al mouse standard per coloro che hanno

difficoltà nel controllare il movimento del puntatore e le funzioni dei tasti.

Gli emulatori di mouse sono dispositivi che permettono di controllare, attraverso

sistemi diversi, il movimento del puntatore e di svolgere tutte le funzioni del mouse.

In alcuni casi si utilizza, per il movimento del puntatore, un mouse standard e per la

selezione si fa ricorso a sistemi che consentano di realizzare il click con l'ausilio di

uno o più sensori esterni, tramite dispositivi d'interfaccia.

In altri casi ancora è possibile ricorrere a soluzioni software per l'esecuzione dei

comandi del mouse.

� Emulatore di mouse: Dragger per Windows permette l'emulazione con un singolo

click delle funzioni del mouse. Dragger può essere utilizzato insieme alla tecnica

descritta precedentemente definita AutoClick. Chi presenta disabilità motorie

può avere facilmente accesso al mouse e alla maggior parte delle applicazioni

Windows grazie a Dragger e un qualsiasi dispositivo di puntamento.

L'Accesso Facilitato per Windows consente l'attivazione di un'opzione che

permette di utilizzare il tastierino numerico come emulatore di mouse.

Magic Touch è un pannello sensibile e trasparente che viene montato sullo

schermo dell'elaboratore. Per spostare il puntatore del mouse è sufficiente

toccare la superficie sensibile del pannello, in corrispondenza della posizione

desiderata.

� Altri mouse speciali: viene presentata una breve descrizione di alcuni prodotti

rientranti in questa categoria.

Il Palm Mouse della Fujitsu è un mouse molto piccolo, che consente di spostare il

puntatore sul monitor utilizzando un minimo movimento delle dita. E' indicato

soprattutto per distrofici e persone con sclerosi.

I mouse della Kensington, Expert Mouse e Orbit Mouse, sono mouse di tipo

trackball, in cui ruotando la sfera posta sulla base è possibile spostare il

Page 121: Studio e realizzazione di un sistema di puntamento oculare ...elite.polito.it/files/thesis/fulltext/signorile.pdf · ... ovvero le cellule nervose del cervello e del ... nel giro

135

Appendice A: Ausili informatici e tecnologie per disabili

puntatore sul monitor. Ai tasti funzione (quattro nel primo e due nel secondo) è

permesso associare funzioni specifiche.

I mouse speciali della Penny&Giles sono sia mouse a leva, sia Joystick, che

Trackball. Sono muniti di uno scudo che consente di appoggiare il polso e la mano

sul piano del mouse, impedendo di premere inavvertitamente i pulsanti abbinati

alle funzioni del mouse.

NoHandsMouse della Hunter Digital consente di spostare il puntatore del mouse

sul monitor utilizzando il movimento dei piedi. Con un piede si controlla il

movimento del puntatore, con l'altro si esegue il click.

HeadMouse della Origin Instruments consente di effettuare tutte le operazioni

di un normale mouse attraverso i movimenti del capo. È il mouse standard per

persone che non possono usare le mani, è infatti indicato per persone

tetraplegiche e per chiunque sia in grado di usare solo i movimenti del capo.

AUSILI PER LA COMUNICAZIONE AUMENTATIVA ED ALTERNATIVA

Esistono sia prodotti hardware che software per la comunicazione aumentativa.

Si parla si sistemi per la AAC con uscita in voce oppure senza uscita in voce.

� Prodotti hardware (comunicatori): Big Mack è un ausilio per la AAC con uscita in

voce, molto semplice. Attraverso la pressione di un grosso tasto si ottiene la

riproduzione di un messaggio precedentemente registrato. Al messaggio può

essere associata un'immagine o un simbolo.

SpeakEasy è di nuovo un ausilio per la AAC con uscita in voce, che permette di

registrare e riprodurre dodici messaggi di durata variabile. Ad ogni messaggio

corrisponde un'area della tastiera sulla quale viene fissato il disegno associato

al messaggio registrato.

� Prodotti software: Comunica è un software di comunicazione con uscita in voce,

ideato e sviluppato dalla EasyLabs. Con Comunica è possibile costruire tabelle con

celle di testo e/o di immagine, cui è possibile associare file audio personalizzati e

Page 122: Studio e realizzazione di un sistema di puntamento oculare ...elite.polito.it/files/thesis/fulltext/signorile.pdf · ... ovvero le cellule nervose del cervello e del ... nel giro

136

Appendice A: Ausili informatici e tecnologie per disabili

l'integrazione nel programma della libreria completa dei simboli PCS (Picture

Communication Symbols).

Comunica è un valido programma di comunicazione per persone che necessitano

dell'uscita in voce.

I metodi d'accesso vanno da quelli standard, quali mouse e tastiera, a quelli

speciali come dispositivi di puntamento col capo, tastiere alternative, trackball,

sensori insieme alle modalità di scansione previste, touschscreen.

L'uso combinato di Comunica e di un dispositivo di puntamento con lo sguardo

fornirebbe un efficiente strumento di comunicazione per malati di SLA in stadio

avanzato.

Un rapido accenno ai simboli PCS, prodotti dalla Mayer-Johnson. Sono simboli

pensati e disegnati per creare un ausilio dall'aspetto professionale, economico e

veloce.

Sono semplici immagini, estremamente utili per svariate tipologie di tabelle.

SENSORI

Un sensore (o pulsante, o switch) è un dispositivo che serve per trasformare una

grandezza fisica (pressione, spostamento, suono, soffio …) in una grandezza elettrica

che viene utilizzata per comandare dei dispositivi (giocattoli, computer …).

In sostanza un sensore è un dispositivo capace di inviare un comando (acceso/spento)

ad un altro strumento.

E' di grande utilità nei casi in cui l'utente non sia in grado di azionare un dispositivo

utilizzando i normali interruttori.

I sensori si dividono in due grandi categorie: i sensori singoli e i sensori multipli.

� Sensori singoli: sono sensori con un'unica funzione: acceso/spento. Esistono

sensori con modalità di attivazione a testa, a tocco, pneumatici. Ci sono sensori

per chi è in grado di muovere un solo dito, sensori che richiedono solo un

movimento di pochi millimetri o sensori che richiedono invece movimenti più ampi.

Page 123: Studio e realizzazione di un sistema di puntamento oculare ...elite.polito.it/files/thesis/fulltext/signorile.pdf · ... ovvero le cellule nervose del cervello e del ... nel giro

137

Appendice A: Ausili informatici e tecnologie per disabili

I sensori singoli della AbleNet sono dei pulsanti di diverse dimensioni azionabili

premendo la superficie superiore. Il Big Red è un pulsante di grandi dimensioni,

attivabile tramite gli arti superiori ed inferiori, il Jelly Bean di media

dimensione, attivabile anche col capo, ed infine lo Specs è un pulsante di piccole

dimensioni, attivabile anche col movimento delle labbra o del mento.

Il sensore Joggle della Penny&Giles è caratterizzato dal fatto che la sua

superficie può ruotare in senso orario/antiorario facendo variare la resistenza

del dispositivo (da un massimo di 1,5 Kg fino ad un minimo di 200g) con quindici

diverse posizioni.

Altri sensori singoli sono quelli della Tash: Micro Light è un piccolo sensore molto

sensibile e facilmente posizionabile. Left è un sensore a stelo costituito da

un'asta metallica ed un'estremità rigida ricoperta con un disco in spugna.

Quando si esercita la forza, per l'attivazione del sensore, l'estremità si flette

leggermente. E' indicato per essere utilizzato con il capo da parte di chi abbia un

buon controllo fine del movimento del capo.

� Sensori multipli: sono sensori con più funzioni raggruppate in un unico strumento.

Si rilevano spesso ottime soluzioni perché in poco spazio racchiudono molte

funzioni.

Vediamo per primi i sensori multipli 2/1 (2 sensori in 1): Pneumatic Switch è un

sensore a pressione attiva/passiva (inspirazione/espirazione). Per attivare uno

switch si soffia, per attivare l'altro si inspira.

Rocker Switch sono due sensori, uno per ogni lato, che vengono attivati

premendo ora sull'una ora sull'altra parte.

Passiamo ora ai sensori 5/1 (5 sensori in 1): Wafer è costituito da cinque sensori

a membrana disposti in sequenza.

Penta è formato da cinque piccoli sensori disposti a croce, per persone con un

buon controllo motorio fine.

Mini Joystick with Push : quattro sensori vengono attivati col movimento della

leva nelle quattro direzioni, il quinto è attivato premendo la leva del Joystick.

Page 124: Studio e realizzazione di un sistema di puntamento oculare ...elite.polito.it/files/thesis/fulltext/signorile.pdf · ... ovvero le cellule nervose del cervello e del ... nel giro

138

Appendice A: Ausili informatici e tecnologie per disabili

Tutte le informazioni presentate nella seguente appendice relative agli ausili

informatici e alle tecnologie per disabili sono state fornite dalla EasyLabs di Torino.

Page 125: Studio e realizzazione di un sistema di puntamento oculare ...elite.polito.it/files/thesis/fulltext/signorile.pdf · ... ovvero le cellule nervose del cervello e del ... nel giro

139

Appendice B Sistemi di puntamento oculare

I dispositivi di puntamento rappresentano diversi modi di controllare il puntatore sul

monitor al fine di eseguire le azioni che desideriamo; i più noti sono il mouse e il

joystick.

Spesso il mouse è difficilmente accessibile a disabili motori per la difficoltà di

coordinare e compiere due azioni distinte: lo spostamento sul piano e la pressione del

tasto di selezione.

Una tipologia di dispositivi è basata sui movimenti dello sguardo per direzionare il

puntatore sullo schermo.

Questi dispositivi possono essere costituiti da una fascia o un caschetto che l'utente

deve indossare, oppure possono essere dispositivi da fissare sulla montatura di un

paio di occhiali. La soluzione migliore è però rappresenta da quei sistemi che non

necessitano di alcun dispositivo collegato all'utente, che quindi rimane più libero nei

movimenti. Nella seguente appendice sarà rivolta particolare attenzione proprio a

quest'ultima categoria di sistemi di puntamento oculare.

Il loro funzionamento si basa sulla presenza di una telecamera e in alcuni casi di un

LED (emettitore di luce infrarossa), a seconda del metodo utilizzato nella predizione

del punto di fissazione.

Page 126: Studio e realizzazione di un sistema di puntamento oculare ...elite.polito.it/files/thesis/fulltext/signorile.pdf · ... ovvero le cellule nervose del cervello e del ... nel giro

140

Appendice B: Sistemi di puntamento oculare

Prima di presentare alcuni dei dispositivi esistenti in commercio oppure dispositivi

che sono stati e sono oggetto di studio da parte di ricercatori od Università

straniere, si descrive brevemente uno dei metodi più frequenti su cui si basa il loro

funzionamento.

Metodo centro pupilla/riflessione della cornea (PCCR)

Il "cuore" di un sistema ad inseguimento dell'occhio è un monitor, sotto cui (oppure

sopra cui) è montata una telecamera ed un LED ad infrarossi.

Il LED emette dei raggi infrarossi a bassa potenza, che illuminano l'occhio. La

superficie della cornea riflette questi raggi.

La riflessione genera il cosiddetto effetto "occhi rossi" (lo stesso che si ha quando si

fa una fotografia e la lampadina del flash è troppo vicina alla lente dell'obbiettivo).

Questo effetto migliora l'immagine della pupilla alla telecamera e rende più facile

alle funzioni di elaborazione delle immagini localizzare il centro pupilla.

Il sistema calcola il punto fissato dall'occhio basandosi sulla posizione relativa del

centro pupilla e sulla riflessione della cornea nell'immagine dell'occhio.

Vediamo, per primi, sistemi di puntamento oculare che sfruttano il metodo appena

descritto.

� EyeGaze System della LC Technologies Inc. è un sistema progettato per

individuare su quale punto dello schermo è fissato lo sguardo dell'utente. Il click

del mouse è realizzato tramite una pausa

di fissazione dell'occhio sul punto

desiderato.

Le operazioni di elaborazione delle

immagini e di calcolo del punto fissato

vengono eseguite da un software

apposito che viene installato

nell'elaboratore dell'utente.

Le rilevazioni vengono effettuate ad una velocità di campionamento di 60 Hertz.

Page 127: Studio e realizzazione di un sistema di puntamento oculare ...elite.polito.it/files/thesis/fulltext/signorile.pdf · ... ovvero le cellule nervose del cervello e del ... nel giro

141

Appendice B: Sistemi di puntamento oculare

Ad ogni campione di immagine prelevato dalla telecamera, EyeGaze produce una

serie di informazioni: le coordinate del punto fissato, un flag che indica se

l'operazione di rilevazione dell'occhio ha avuto successo o meno, il diametro della

pupilla, la posizione del bulbo oculare e un'analisi delle saccadi e fissazioni.

Gli errori di inseguimento sono dell'ordine di 0,25 pollici (0,63 cm circa).

La testa è libera di muoversi entro un range di 1,5 pollici (3,8 cm circa).

L'algoritmo per il processamento delle immagini si occupa anche della

compensazione di diverse fonti d'errore: movimenti del capo, variazione del

diametro della pupilla, riflessione che cade proprio sul bordo della pupilla.

L'utilizzo di questo sistema richiede un buon controllo del capo, l'utente deve

essere in grado di mantenere lo sguardo fisso su di un punto per almeno mezzo

secondo, deve avere una buona vista e possedere adeguate capacità mentali

(cognizione, memoria, capacità di lettura).

EyeGaze dev'essere utilizzato lontano dalle finestre e in presenza di un numero

limitato di sorgenti di luce infrarossa.

In base ad una serie di calcoli trigonometrici EyeGaze definisce il punto in cui è

indirizzato lo sguardo della persona e rileva un certo numero di dati "grezzi", che

vengono posti in un'opportuna struttura dati. Tale struttura verrà utilizzare

dalla funzione per la rilevazione delle fissazioni, che ne determina non solo la

posizione, ma anche la durata.

Prima di utilizzare il sistema, è necessario conoscere alcune caratteristiche

dell'occhio dell'utente, in modo che la predizione dello sguardo sia

sufficientemente accurata. Ciò si ottiene con una procedura di calibrazione, in

cui, per 15 secondi circa, l'utente è invitato a fissare una serie di punti sullo

schermo.

Sembra sia stato testato che EyeGaze System riesca ad inseguire il movimento

dell'occhio nel 90-95% dei casi.

Page 128: Studio e realizzazione di un sistema di puntamento oculare ...elite.polito.it/files/thesis/fulltext/signorile.pdf · ... ovvero le cellule nervose del cervello e del ... nel giro

142

Appendice B: Sistemi di puntamento oculare

� Quick Glance Eye-tracking System della EyeTech Digital Sistems è un dispositivo

che emula il comportamento del mouse utilizzando il movimento degli occhi.

Una telecamera montata sotto il monitor del PC si focalizza sull'occhio

dell'utente.

Due LED a bassa potenza sono montati ai lati del monitor.

Quick Glance (Glance significa occhiata) determina dove l'utente stia guardando

sul video, cioè il punto fissato, analizzando la posizione della riflessione della

cornea e il centro della pupilla. Il cursore viene posizionato proprio sul punto

calcolato in questo modo.

Il click del mouse è realizzato o con un battito di ciglia oppure con una pausa

dell'occhio o ancora tramite un sensore esterno.

L'inseguimento dell'occhio avviene ad una velocità di 30 campioni al secondo.

QuickGlance determina sia la posizione che la durata della fissazione.

� ERIKA System della ERICA Inc. permette di inseguire e memorizzare il

movimento degli occhi e la dilatazione della

pupilla di una persona, sullo schermo di un

computer.

ERIKA sta infatti per Eyegaze Response

Interface Computer Aid System.

Inseguendo il movimento degli occhi di una

persona il sistema permette alla persona

stessa di controllare il proprio elaboratore

utilizzando lo sguardo.

Come i due prodotti descritti sopra, anche ERIKA non è un dispositivo intrusivo

per l'utente, infatti abbiamo di nuovo una telecamera e un LED, questa volta posti

in una "scatola" sotto il monitor.

La tecnica utilizzata è ancora quella descritta inizialmente (metodo PCCR), che si

basa sulla posizione del centro della pupilla e della riflessione della cornea.

Page 129: Studio e realizzazione di un sistema di puntamento oculare ...elite.polito.it/files/thesis/fulltext/signorile.pdf · ... ovvero le cellule nervose del cervello e del ... nel giro

143

Appendice B: Sistemi di puntamento oculare

Durante la procedura di calibrazione l'utente deve fissare sei diversi punti sullo

schermo.

Il sistema lavora ad una velocità di 60 Hertz.

� Sistema d'interfaccia al PC che utilizza il movimento oculare, progetto di un

ricercatore dell'Istituto di Scienza e

Tecnologia di Kwangju - Corea, Kyungnam

Kim.

Il sistema si compone di quattro moduli:

il primo riguarda l'inizializzazione del

sistema, tramite una procedura di

calibrazione, il secondo l'individuazione

degli occhi all'interno del viso, il terzo la rilevazione della pupilla e infine l'ultimo

riguarda il calcolo del punto fissato sullo schermo.

Il concetto su cui si basa il suo funzionamento è la consapevolezza che, se si

registrano diverse fissazioni, vicine tra loro, collegate da brevi saccadi, allora

esse individuano un unico punto (gaze point).

L'operazione di elaborazione dei dati sul movimento degli occhi è composta, da

una parte dal filtraggio del rumore introdotto, dal riconoscimento del punto di

Page 130: Studio e realizzazione di un sistema di puntamento oculare ...elite.polito.it/files/thesis/fulltext/signorile.pdf · ... ovvero le cellule nervose del cervello e del ... nel giro

144

Appendice B: Sistemi di puntamento oculare

fissazione e dalla compensazione di errori introdotti ad esempio durante la fase

di calibrazione, dall'altra dalla gestione dell'iterazione col PC.

La calibrazione dà origine ad una sorta di "mappa" dello schermo, che verrà

utilizzata per individuare il punto fissato dall'utente.

Le immagini ottenute dalla telecamera possono introdurre degli errori, dovuti sia

a cause naturali (movimento della testa) oppure artificiali (immagine video non

adeguata).

Il sistema cerca di rilevare il centro dell'iride e quindi della pupilla. A tal fine si

utilizzano due diversi tipi di algoritmi: il primo, meno affidabile e preciso, si

chiama LLS (Longest Line Scanning), il secondo, più affidabile, OCEM (Occluded

Circular Edge Matching).

Il primo passo per la loro applicazione è la rilevazione dei bordi dell'iride.

Il metodo LLS si basa sul fatto che l'immagine dell'iride, circolare, in realtà

risulta essere un'ellisse. Esiste un teorema che afferma che il centro di un ellisse

si trova a metà della linea orizzontale, di lunghezza maggiore, compresa tra i due

estremi dell'ellisse. L'algoritmo opera una scansione dell'immagine dell'occhio,

proprio alla ricerca di questa linea.

Il metodo OCEM si basa sulla definizione di tre punti, candidati ad essere il

centro dell'iride: uno corrisponde al punto centrale dei pixel che fanno parte del

bordo dell'iride, uno corrisponde al punto centrale della proiezione orizzontale e

uno è il punto calcolato col metodo LLS. Ad ognuno dei punti è associato un

cerchio, le cui dimensioni vengono calcolate in base ad un particolare formula. Il

contorno di tutti e tre i cerchi viene confrontato con quello dell'iride rilevato

dall'immagine, il cerchio che meglio combacia viene scelto e il punto candidato ad

esso associato diventa il centro dell'iride.

Per la direzione dello sguardo vengono proposti due metodi: uno prevede di

fissare sulla fronte dell'utente un segno, che fornisce informazioni sulla

posizione del viso della persona e sul sistema di riferimento del centro dell'iride.

Il secondo metodo utilizza una serie di informazioni geometriche (posizione viso,

Page 131: Studio e realizzazione di un sistema di puntamento oculare ...elite.polito.it/files/thesis/fulltext/signorile.pdf · ... ovvero le cellule nervose del cervello e del ... nel giro

145

Appendice B: Sistemi di puntamento oculare

raggio dell'iride, distanza riferimento-centro dell'iride) e le proiezioni

ortogonali: lo spostamento del centro dell'iride, nella proiezione rappresenta lo

spostamento dello sguardo.

Il punto fissato sul monitor viene individuato tramite interpolazione lineare in

base ai punti ottenuti dalla calibrazione.

� Sistema eye-tracking progettato da una studentessa dell'Università del

Wisconsin - Madison, Tamara Miller. Il sistema insegue lo spostamento della

pupilla di una persona e interpreta in quale direzione sia rivolto lo sguardo di

quest'ultima. Una delle applicazioni principali di tutto questo è l'iterazione con un

elaboratore, in quanto il sistema può essere utilizzato come un emulatore di

mouse, in modo da liberare dall'uso delle mani le persone disabili che vogliono

utilizzare un computer. Caratteristica importante del sistema è quella di non

essere un dispositivo intrusivo per l'utente.

I passi principali dell'algoritmo ideato sono: uno zoom del viso dell'utente, a

questo punto si tenta di individuare gli occhi, cercando le due regioni più estese

interamente circondate dalla pelle (applicando un filtro speciale).

Può capitare che vengano incluse anche le sopracciglia, allora viene applicata una

procedura per eliminare le sopracciglia dalla regione contenente gli occhi.

Si rilevano i bordi dell'occhio (con un filtro apposito) e si cerca di determinarne

approssimativamente la dimensione, che si confronta con la dimensione degli occhi

facenti parte di una sorta di libreria di immagini di riferimento (circa 3 immagini).

Da questo confronto si può ricavare la misura del raggio della pupilla dell'occhio,

seppure con una data incertezza.

Il passo successivo consiste nel rilevare i pixel bianchi e quelli neri nell'immagine

dell'occhio. Una volta che quest'informazione è disponibile, è sufficiente cercare

l'area in cui il numero di pixel neri è massimizzato: l'area individuata è la pupilla.

I problemi riscontrati durante l'applicazione dell'algoritmo sono rappresentati

principalmente da condizioni di luce inadeguate o dal fatto che, se le sopracciglia

Page 132: Studio e realizzazione di un sistema di puntamento oculare ...elite.polito.it/files/thesis/fulltext/signorile.pdf · ... ovvero le cellule nervose del cervello e del ... nel giro

146

Appendice B: Sistemi di puntamento oculare

sono molto vicine all'occhio, l'immagine dell'occhio rilevata contiene anche le

sopracciglia.

Tutte le informazioni raccolte nelle seguente appendice sono state reperite in

Internet e sono servite sia come spunto che come base nell'ideazione del progetto

presentato.

Page 133: Studio e realizzazione di un sistema di puntamento oculare ...elite.polito.it/files/thesis/fulltext/signorile.pdf · ... ovvero le cellule nervose del cervello e del ... nel giro

147

Appendice C Anatomia e fisiologia dell'occhio umano,

movimenti oculari CENNI DI ANATOMIA E FISIOLOGIA DELL'OCCHIO UMANO

Il bulbo oculare è approssimativamente una sfera del diametro di 25 mm.

L'occhio è costituito essenzialmente da tre rivestimenti o membrane, che

racchiudono mezzi gelatinosi, rifrangenti e trasparenti.

La membrana più esterna è formata dalla sclera nella parte posteriore dell'occhio, e

dalla cornea nella parte anteriore. La cornea, a differenza della sclera è

completamente trasparente.

La parte intermedia è formata dalla coroide, dal corpo ciliare e dall'iride.

Il rivestimento più interno è la retina, che contiene gli elementi nervosi responsabili

della trasformazione della luce in impulsi elettrici, ovvero i coni e i bastoncelli.

La coroide è una struttura prevalentemente vascolare, deputata al nutrimento di

alcuni degli strati retinici.

La sclera è l'involucro bianco che costituisce i 5/6 del globo oculare, ha funzioni di

sostegno, protezione, mantenimento della forma.

L'apparato diottrico è formato da:

� la cornea

� la camera anteriore contenente l'umore acqueo

� l'iride col foro centrale della pupilla

� il cristallino, che è una lente biconvessa

� la cavità principale contenente il corpo vitreo

� la retina

Page 134: Studio e realizzazione di un sistema di puntamento oculare ...elite.polito.it/files/thesis/fulltext/signorile.pdf · ... ovvero le cellule nervose del cervello e del ... nel giro

148

Appendice C: Anatomia e fisiologia dell'occhio umano, movimenti oculari

La cornea e il cristallino sono lenti naturali, in mezzo alle quali si trova l’iride,

colorata diversamente a seconda del soggetto.

La cornea è una membrana trasparente priva di vasi ma ricchissima di fibre nervose.

Il cristallino è una lente convergente di forma biconvessa che focalizza i raggi

luminosi sulla retina. Quando l’occhio guarda un oggetto in lontananza il cristallino si

appiattisce e diminuisce la sua curvatura, al contrario quando guarda un oggetto

vicino diventa più convesso ed aumenta la sua curvatura.

Al centro dell’iride la pupilla si comporta come un diaframma che, chiudendosi e

aprendosi, regola la quantità di luce che entra nell’occhio.

La funzione del cristallino è quella di far convergere i raggi luminosi sulla retina, una

sottile membrana posta nella parte posteriore dell’occhio: si generano così gli stimoli

visivi che, trasformati in impulsi elettrici, giungono al cervello attraverso il nervo

ottico.

La retina è una struttura complessa formata da milioni di cellule (fotoricettori)

sensibili alla luce che trasformano gli stimoli luminosi in impulsi elettrici.

Queste cellule sono di due tipi: i coni e i bastoncelli. I coni (6 milioni) si trovano al

centro della retina e sono specializzati per la visione diurna (permettono di adattarsi

Page 135: Studio e realizzazione di un sistema di puntamento oculare ...elite.polito.it/files/thesis/fulltext/signorile.pdf · ... ovvero le cellule nervose del cervello e del ... nel giro

149

Appendice C: Anatomia e fisiologia dell'occhio umano, movimenti oculari

alla luce, percepire i colori, distinguere i dettagli fini), mentre i bastoncelli sono alla

periferia della retina e sono specializzati per la visone notturna (sono molto più

sensibili alla luce rispetto ai coni, ma non permettono di distinguere bene i colori e i

particolari).

La parte centrale (macula) della retina permette di distinguere i particolari più fini

delle immagini e di riconoscere i colori.

Al centro della macula la fovea è responsabile dell’acutezza visiva, cioè della

percezione dei dettagli più piccoli, questo è dovuto all’altissima concentrazione di

coni.

Le parti esterne della retina sono invece caratterizzate da un’alta concentrazione di

bastoncelli e sono responsabili della visione laterale, permettono cioè di vedere tutto

ciò che si trova attorno al punto che si sta fissando.

L’umore acqueo è prodotto dal corpo ciliare, una struttura posta dietro l’iride. Circola

continuamente all’interno dell’occhio dando consistenza al bulbo oculare.

Sia l’umore acqueo che il corpo vitreo sono fluidi trasparenti che permettono una

buona propagazione della luce.

MOVIMENTI OCULARI

L’occhio generalmente non compie movimenti “lisci”, ma si muove con una serie di

“salti” improvvisi.

La funzione visiva consiste nel fissare gli occhi su di un oggetto, nell’inseguire con gli

occhi un oggetto che si muove, nel muovere liberamente gli occhi per cercare un

oggetto.

Il movimento saccadico è utilizzato per orientare l’occhio in modo che la parte del

campo visivo che interessa alla persona cada esattamente sulla fovea. Questo è un

rapido ed improvviso movimento (ha una velocità intorno agli 800 gradi al secondo),

Page 136: Studio e realizzazione di un sistema di puntamento oculare ...elite.polito.it/files/thesis/fulltext/signorile.pdf · ... ovvero le cellule nervose del cervello e del ... nel giro

150

Appendice C: Anatomia e fisiologia dell'occhio umano, movimenti oculari

caratterizzato da un’alta accelerazione e decelerazione. Una volta che una saccade

ha inizio, non è più possibile cambiare la sua destinazione o il suo percorso.

La definizione moderna di saccade è: movimento a scatti (saccadico significa appunto

a scatti) dello sguardo, caratterizzato da alta velocità, che compare durante i

cambiamenti di fissazione visiva da un oggetto all’altro.

I movimenti saccadici sono movimenti coniugati (di entrambi gli occhi).

Durante il movimento saccadico il sistema visivo è praticamente non funzionante,

l’assenza di visione durante il moto ad alta velocità consente di alterare la posizione

della mira oculare senza che la persona “se ne accorga”.

Poiché la qualità della visione risulta degradata da uno slittamento dell’immagine

retinica superiore ad appena qualche grado al secondo, il sistema oculomotore deve

intervenire affinché il movimento saccadico, che viene eseguito ad altissima velocità,

termini bruscamente evitando derive verso la posizione finale e quindi lunghi periodi

di visione incerta. Durante la fase rapida del moto la visione è quindi soppressa.

Le saccadi sono caratterizzate da un basso tempo di latenza (da quando un oggetto

appare nella visione periferica a quando inizia la saccade passano dai 150 ai 200

millisecondi). Il tempo tra la fine di una saccade e l'inizio di un'altra varia tra i 100 e

200 millisecondi.

Più frequentemente una saccade è seguita da una fissazione, un periodo di relativa

stabilità durante il quale un oggetto può essere guardato, in tale periodo infatti si

cerca di mantenere la fovea sull’oggetto interessato.

Durante la fissazione l’occhio non rimane mai completamente fermo, ma compie dei

piccoli movimenti.

Questi ultimi sono corretti da un altro minuscolo movimento simile alla saccade

(microsaccade).

Sempre durante la fissazione ci sono delle vibrazioni ad alta frequenza che

impediscono all’occhio di mantenere una posizione fissa.

Page 137: Studio e realizzazione di un sistema di puntamento oculare ...elite.polito.it/files/thesis/fulltext/signorile.pdf · ... ovvero le cellule nervose del cervello e del ... nel giro

151

Appendice C: Anatomia e fisiologia dell'occhio umano, movimenti oculari

Tipicamente la fissazione dura dai 200 ai 600 millisecondi, dopodiché inizia un’altra

saccade.

Movimenti lisci dell’occhio avvengono solo in risposta al movimento di un oggetto nel

campo visivo. Il loro scopo è far sì che la proiezione dell’immagine del bersaglio reale

venga mantenuta nella fovea e che lo scivolamento dell’immagine sulla retina risulti

inferiore ad un certo parametro; lo scivolamento rappresenta l’errore di velocità tra

il movimento degli occhi e la mira.

Va sottolineato che il movimento liscio è un movimento volontario e di conseguenza

esso risulta fortemente influenzato da fattori quali: l’attenzione, l’età, l’allenamento,

la prevedibilità e l’apprendimento del moto del bersaglio.

La latenza del movimento è di circa 100-150 millisecondi, mentre la velocità può

arrivare fino a 100°/s , quindi è un movimento lento.

I movimenti lisci non compaiono quando la persona ha di fronte una scena statica (ad

esempio lo schermo di un computer): per essere attivati necessitano sempre di uno

stimolo di movimento.

Un altro, più specializzato, movimento dell’occhio è il nistagmo. Si attiva in risposta al

movimento della testa (soprattutto di rotazione), ha lo scopo di mantenere

“agganciato” il movimento degli occhi a quello del mondo relativo della testa.

L’ingresso sensoriale che stimola tale movimento è la differenza fra la velocità degli

occhi e della scena visiva (rispetto ad un riferimento comune).

Ovviamente al buio tali movimenti non si verificano.

I movimenti finora descritti sono compiuti da tutti e due gli occhi insieme, ma gli

occhi possono anche muoversi ognuno in direzioni diverse, compiendo quelli che si

chiamano movimenti di vergenza, che portano poi comunque i due occhi a convergere

su di uno stesso oggetto.

Page 138: Studio e realizzazione di un sistema di puntamento oculare ...elite.polito.it/files/thesis/fulltext/signorile.pdf · ... ovvero le cellule nervose del cervello e del ... nel giro

152

Appendice C: Anatomia e fisiologia dell'occhio umano, movimenti oculari

Lo scopo di tali movimenti è di estrarre informazioni sulla profondità degli oggetti

dalla composizione delle immagini.

Il sistema di vergenza può entrare in funzione anche in seguito a problemi di

accomodazione (messa a fuoco).

I tempi di latenza dei movimenti di vergenza si aggirano intorno ai 160 millisecondi,

anche se talvolta si possono ridurre a 85 millisecondi.

Infine vi sono dei movimenti rotatori di torsione attorno ad un asse, che parte dalla

fovea e arriva fino alla pupilla. Sembra che dipendano dall’angolo del collo e da altri

fattori.

Fanno parte di quei movimenti preposti alla stabilizzazione dell’immagine del mondo

esterno sulla retina durante i movimenti della testa.

La velocità di tali movimenti può arrivare a 100°/s.

Avendo la testa tre gradi di libertà, nel movimento degli occhi, è pure presente una

componente torsionale.

L’occhio raramente è stazionario, ma si muove frequentemente fissando differenti

porzioni del campo visivo; anche durante una fissazione compie piccoli movimenti e

raramente rimane fermo su un punto per lungo tempo.

Il caso di una persona seduta davanti allo schermo di un computer è simile a quello di

una persona che fissa una scena statica: possiamo aspettarci di avere pause costanti

di fissazioni (in cui comunque l’occhio compie piccolissimi movimenti), collegate tra

loro da rapide saccadi.

Non dobbiamo generalmente aspettarci periodi stazionari più lunghi di 600

millisecondi, nemmeno movimenti lisci, a meno che un oggetto in movimento appaia

sullo schermo.

Sarà anche improbabile osservare nistagmo, vergenza o movimenti torsionali.

Page 139: Studio e realizzazione di un sistema di puntamento oculare ...elite.polito.it/files/thesis/fulltext/signorile.pdf · ... ovvero le cellule nervose del cervello e del ... nel giro

153

Appendice D Elaborazione ed analisi dell'immagine

INTRODUZIONE

Da un punto di vista matematico un'immagine può essere vista come una funzione

f(x,y), dove f rappresenta il livello di luminosità associato al punto di coordinate x,y.

Generalmente per indicare un punto dell'immagine si usa il termine pixel, quindi

un'immagine è formata da pixel, ad ognuno di essi è associato un livello di luminosità.

In un'immagine in bianco e nero f rappresenta il livello di grigio associato al punto.

In un'immagine a colori f rappresenta invece i livelli di rosso, verde e blu che

costituiscono il colore associato al punto.

La versione digitalizzata di un'immagine, ad esempio quella acquisita da uno scanner o

da una webcam, cioè quella che effettivamente vediamo sul monitor del PC,

interpretata nello stesso modo, appare come una funzione f a gradini, dove l'altezza

di ogni gradino corrisponde all'intensità di grigio o di verde, rosso e blu, a seconda

che l'immagine sia in bianco e nero oppure a colori.

L'immagine originale viene suddivisa in tanti "quadratini" e si individua il livello di

luminosità nel punto centrale di ogni quadratino.

Page 140: Studio e realizzazione di un sistema di puntamento oculare ...elite.polito.it/files/thesis/fulltext/signorile.pdf · ... ovvero le cellule nervose del cervello e del ... nel giro

154

Appendice D: Elaborazione ed analisi dell'immagine

L'immagine digitalizzata corrisponde quindi ad una matrice nxm, se l'immagine ha

dimensione nxm, dove i coefficienti corrispondono ai livelli di luminosità rilevati nei

rispettivi quadratini dell'immagine originale.

Quando l'immagine viene mostrata sullo schermo, essa viene ricostruita appunto

come funzione a gradini dando ad ogni quadratino il corrispondente livello di

luminosità.

Appare evidente che molte informazioni sull'immagine andranno perse. Tanto più è

fine la "quadrettatura " dell'immagine, tante più informazioni si acquisiscono, il

problema sta nel scegliere il numero di campioni della funzione da acquisire, in modo

da ottenere una buona rappresentazione.

Indichiamo con L il numero di differenti livelli di luminosità che si possono attribuire

ai punti di un'immagine, mentre indichiamo con B il numero di bit necessari per avere

questa rappresentazione, si ha che:

L=2B

In un immagine binaria (0/1, cioè bianco/nero) si usa solamente un bit per

rappresentare l'informazione, quindi L sarà pari a 2.

m

n f(x,y)

Page 141: Studio e realizzazione di un sistema di puntamento oculare ...elite.polito.it/files/thesis/fulltext/signorile.pdf · ... ovvero le cellule nervose del cervello e del ... nel giro

155

Appendice D: Elaborazione ed analisi dell'immagine

In un'immagine a colori invece si usano 8 bit per rappresentare il livello di luminosità,

per cui L=256.

ELABORAZIONE ED ANALISI DELLE IMMAGINI

Una volta che si ha a disposizione l'immagine digitalizzata, è possibile accedere ad

essa per testare o settare i valori di luminosità dei suoi pixel, tramite funzioni di

elaborazione ed analisi dell'immagine.

Le funzioni di elaborazione possono alterare i livelli di luminosità in un'immagine o in

una parte di essa. Un esempio potrebbe essere una funzione che trasforma

un'immagine a colori in un'immagine in bianco e nero.

Le funzioni di analisi servono invece per verificare i valori di luminosità nell'immagine,

ad esempio per cercare un'area dell'immagine i cui pixel hanno un livello di luminosità

inferiore o superiore ad una certa soglia.

Nello svolgimento della seguente tesi si sono utilizzate sia funzioni di elaborazione

che di analisi dell'immagine.

Le funzioni utilizzate fanno parte di una libreria chiamata Victor Image Processing Library,

un prodotto della Catenary Systems.

La struttura dati principale, in Victor, è il descrittore di immagine. Tutte le informazioni

necessarie alle funzioni della libreria, per operare su di un'immagine, sono contenute in

questa struttura.

Il descrittore di immagine è definito nel file d'intestazione VICDEFS.H col nome imgdes

ed è uno degli argomenti richiesti dalle funzioni di Victor.

Page 142: Studio e realizzazione di un sistema di puntamento oculare ...elite.polito.it/files/thesis/fulltext/signorile.pdf · ... ovvero le cellule nervose del cervello e del ... nel giro

156

Appendice D: Elaborazione ed analisi dell'immagine

Il descrittore di immagine è definito nel modo seguente:

typedef struct { unsigned char huge *ibuff; //Image buffer address unsigned stx, sty, endx, endy; //Image area of interest unsigned buffwidth; //Image buffer width in bytes RGBQUAD far *palette; //Palette address int colors; //Number of palette colors int imgtype; //Image type: bit 0 = 1 if image is grayscale BITMAPINFOHEADER far *bmh; // BITMAPINFOHEADER address HBITMAP hBitmap; //Device Independent Bitmap handle } imgdes;

Si descrivono ora i singoli elementi della struttura:

� ibuff: è l'indirizzo dell'immagine in memoria. L'immagine è organizzata in righe e

colonne, il pixel di coordinate (0,0) coincide con l'angolo in alto a sinistra.

Il formato dell'immagine dipende dal numero di bits per pixel, informazione che si

trova nel campo biBitCount della struttura BITMAPINFOHEADER, associata ad ogni

immagine bitmap.

Il numero di bits per pixel indica quanti bits sono necessari a rappresentare il valore di

un singolo elemento dell'immagine. Le funzioni di Victor supportano i formati a 1, 8 e

24 bits per pixel.

Un'immagine ad 1 bit contiene due colori, tipicamente bianco e nero.

Un'immagine a 8 bit contiene fino a 256 colori. Ogni pixel è rappresentato da un byte e

il cui valore può variare da 0 a 255. Questo valore ha la funzione di indice alla tabella

dei colori (palette). Per accedere ad esempio alle componenti (rosso, blu, verde) di un

determinato colore:

rosso = image.palette[colore].rgbRed;

verde = image.palette[colore].rgbGreen;

blu = image.palette[colore].rgbBlue;

Page 143: Studio e realizzazione di un sistema di puntamento oculare ...elite.polito.it/files/thesis/fulltext/signorile.pdf · ... ovvero le cellule nervose del cervello e del ... nel giro

157

Appendice D: Elaborazione ed analisi dell'immagine

Un'immagine a 24 bit contiene fino a 16 milioni di colori. Ogni pixel è rappresentato

con tre byte, uno per il rosso, uno per il verde ed uno per il blu. Questo tipo di

immagine non ha bisogno di una tabella dei colori.

� stx, sty, endx, endy: rappresentano rispettivamente l'angolo in alto a sinistra (stx,sty)

e l'angolo in basso a destra (endx,endy) dell'immagine.

Da qui si possono facilmente ricavare le dimensioni dell'immagine:

larghezza = endx - stx + 1

altezza = endy - sty + 1

� buffwidth: larghezza del buffer contenente l'immagine, in bytes.

� palette: contiene l'indirizzo della tabella dei colori, che è una vettore di elementi di

tipo RGBQUAD. Il tipo RGBQUAD è descritto nel file WINDOWS.H:

typedef struct tagRGBQUAD {

BYTE rgbBlue;

BYTE rgbGreen;

BYTE rgbRed;

BYTE rgbReserved;

} RGBQUAD;

� colors: numero di colori nella tabella dei colori, dipende dal numero di bits per pixel:

Bits per pixel

Colori della tabella

1 2 8 256 24 0

� imgtype: se l'immagine è in bianco e nero allora questo bit è settato a 1, 0 nel caso

contrario.

Page 144: Studio e realizzazione di un sistema di puntamento oculare ...elite.polito.it/files/thesis/fulltext/signorile.pdf · ... ovvero le cellule nervose del cervello e del ... nel giro

158

Appendice D: Elaborazione ed analisi dell'immagine

� bmh: indirizzo delle strutture BITMAPINFO e BITMAPINFOHEADER definite in

WINDOWS.H. Queste due strutture insieme definiscono le dimensioni, i colori e i pixel

di un'immagine bitmap.

� hBitmap: contiene l'handle alla bitmap.

Si elencano ora le funzioni di Victor utilizzate negli algoritmi ideati, divise per categorie.

FUNZIONI DI GESTIONE DELLA MEMORIA

allocimage permette di allocare lo spazio necessario per un'immagine

freeimage libera la memoria allocata

FUNZIONE DI MANIPOLAZIONE DEI FILE

Riguardano le operazioni di salvataggio e di caricamento dei dati di un'immagine su disco.

loadbmp per il caricamento di un'immagine bmp nell'area allocata precedentemente

savebmp salva un'immagine come bmp

FUNZIONI DI ELABORAZIONE DELL'IMMAGINE

Permettono di alterare i livelli di luminosità in un'immagine a 8 e 24 bits.

usetable setta il valore dei pixels in base ad una tabella precedentemente costruita.

Questa particolare funzione viene utilizzata per eseguire la posterizzazione dell'immagine.

FUNZIONI DI RIDUZIONE DEL COLORE E DI CONVERSIONE DELL'IMMAGINE

Le immagini e le tabelle dei colori possono essere convertite da un formato all'altro.

colortogray trasforma un'immagine a colori in un'immagine in bianco e nero (da 24 bit a 8

bit)

FUNZIONI DI ANALISI DELL'IMMAGINE

getpixelcolor legge il valore del pixel dell'immagine di coordinate (x,y)