POLITECNICO DI TORINO Studio e realizzazione di un - e-Lite

annuncio pubblicitario
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
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.
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
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.
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.
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.
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.
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
Indice
3.4 CONDIZIONI D'USO DI UN SISTEMA A PUNTAMENTO OCULARE DA PARTE
43
DI PERSONE AFFETTE DA DISABILITA' FISICHE
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:
74
LA CALIBRAZIONE
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
APPLICAZIONE DIMOSTRATIVA
DI UNA
83
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
6. VALUTAZIONI
99
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
6.4 VALUTAZIONI TECNICHE: FATTORI DI QUALITA'
7. DIREZIONI FUTURE DI RICERCA
110
113
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
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
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.
16
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.
17
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
18
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
19
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.
20
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.
22
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.
23
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
24
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.
25
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.
26
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
27
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).
28
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.
29
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à.
30
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
31
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
32
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
33
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".
34
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
36
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.);
37
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.
38
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.
39
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.
40
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”.
41
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.
42
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
43
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
44
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 eyetracking (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.
45
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.
46
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.
48
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.
49
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.
50
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 (altodestra, alto-centro, alto-sinistra, basso-sinistra, basso-centro, basso-destra).
51
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.
52
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
53
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.
54
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.
55
Capitolo 4: Descrizione della struttura del sistema progettato
Si osservino la figure 5 e 6.
Figura 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.
56
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.
57
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.
58
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
59
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
60
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.
461
415
369
323
277
231
185
93
139
1
120
100
80
60
40
20
0
47
num pixel neri
Andamento pixel neri per colonne
colonna
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.
61
Capitolo 4: Descrizione della struttura del sistema progettato
97
89
81
73
65
57
49
41
33
25
9
17
250
200
150
100
50
0
1
num pixel neri
Andamento pixel neri viso
riga
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.
An d am en to p ixel n eri - fascia
20
15
10
5
73
67
61
55
49
43
37
31
25
19
13
7
0
1
num pixel neri
25
c o lo n n e
Figura 14
62
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.
63
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.
64
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.
65
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.
66
Capitolo 4: Descrizione della struttura del sistema progettato
Si osservi la figura seguente.
R
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.
Figura 19
67
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
68
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.
69
Capitolo 4: Descrizione della struttura del sistema progettato
L'algoritmo appena descritto permette quindi di raccogliere una serie di punticampione, 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.
(y)
Spostamenti verticali
S p o s t a m e n t o g a z e ( 1 0 c a m p io n i)
85
84
83
82
81
80
79
78
82
84
86
88
90
92
S p o s ta m e n ti o riz z o n ta li (x )
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.
70
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.
71
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
72
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.
73
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.
74
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
75
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.
P1
P6
P2
P3
P5
P4
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
76
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.
CALIBRAZIONE
120
100
Y
80
60
40
20
0
0
50
100
150
X
Figura 25
CALIBRAZIONE
100
80
Y
60
40
20
0
0
50
100
150
X
Figura 26
77
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.
78
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.
80
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.
81
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.
82
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.
83
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.
84
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).
85
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.
86
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.
87
Capitolo 5: Realizzazione sperimentale dei singoli moduli del sistema
Inizializzazioni
VERO
fine
Fine?
FALSO
cattura
area occhio
area riferimento
(x_centrop,
y_centrop)
(x_rif,y_rif)
direzione sguardo
calcolo fissazione
VERO
fissazione
terminata?
predizione
FALSO
tabella a
video
88
Capitolo 5: Realizzazione sperimentale dei singoli moduli del sistema
5.3.2.2 DESCRIZIONE DEI DIVERSI MODULI DEL PROGETTO
Inizializzazioni
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.
non appartiene alla
fissazione
appartiene alla fissazione
Figura 1
89
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.
Cattura e salvataggio
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).
90
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.
definizione area occhio
e area riferimento
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.
91
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.
Posizione
riferimento
posizione
occhio
Figura 2
La posizione dell'occhio e del riferimento così ottenute vengono memorizzate in
un buffer.
92
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:
area occhio
area riferimento
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.
93
Capitolo 5: Realizzazione sperimentale dei singoli moduli del sistema
calcolo coordinate
del riferimento
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.
calcolo coordinate del
centro pupilla
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).
94
Capitolo 5: Realizzazione sperimentale dei singoli moduli del sistema
calcolo direzione dello
sguardo (gaze)
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.
calcolo fissazioni
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.
95
Capitolo 5: Realizzazione sperimentale dei singoli moduli del sistema
A questo punto può avere inizio la fase di predizione.
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.
Figura 4
96
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).
97
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.
Inizio
Fine
Chiudi
Figura 5
98
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.
99
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.
100
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.
101
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.
103
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
104
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.
105
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
106
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.
107
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
108
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.
109
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.
110
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
111
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).
112
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.
113
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
114
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
num. minimo di campioni
necessario per calcolare
una fissazione
num. di campioni che si
registra in media per
fissazione
num. campioni elaborati al
secondo
tempo di ritardo nella
predizione
tempo per la calibrazione
2 - 3 secondi
3 campioni
8 campioni
2,67 campioni al
secondo
1,12 secondi
19,12 secondi
115
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".
116
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.
118
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
119
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
120
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
121
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.
122
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
123
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.
124
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.
126
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 - HumanComputer 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)
128
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
129
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.
132
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.
133
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
134
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
135
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.
136
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.
137
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.
138
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.
139
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.
140
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.
141
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.
142
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
143
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,
144
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
145
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.
146
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
147
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
148
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),
149
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.
150
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.
151
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.
152
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.
153
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.
m
f(x,y)
n
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.
154
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.
155
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;
156
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
1
8
24
Colori
della
tabella
2
256
0
imgtype: se l'immagine è in bianco e nero allora questo bit è settato a 1, 0 nel caso
contrario.
157
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)
158
Scarica