Politecnico di Torino - elite.polito.itelite.polito.it/files/thesis/fulltext/dettori.pdf · Si...

98
Politecnico di Torino Facoltà di Ingegneria Corso di laurea in Ingegneria Informatica Dipartimento di Automatica e Informatica L'Active Shape Model applicato all'Eye Tracking: analisi di immagini Tesi di Laurea di Giovanni Dettori Relatori: Prof. Fulvio Corno Prof. Laura Farinetti Anno accademico 2005/2006

Transcript of Politecnico di Torino - elite.polito.itelite.polito.it/files/thesis/fulltext/dettori.pdf · Si...

Politecnico di Torino

Facoltà di Ingegneria

Corso di laurea in Ingegneria Informatica

Dipartimento di Automatica e Informatica

L'Active Shape Model applicato all'Eye Tracking: analisi di immagini

Tesi di Laurea di Giovanni Dettori Relatori: Prof. Fulvio Corno

Prof. Laura Farinetti

Anno accademico 2005/2006

L'Active Shape Model applicato all'Eye Tracking: analisi di immagini

Ai miei genitori, a Olimpia

2

L'Active Shape Model applicato all'Eye Tracking: analisi di immagini

Sommario

La percezione visiva attraverso l'analisi di immagini bidimensionali acquisite da comuni

telecamere è l'obiettivo principale perseguito dalla computer vision: il riconoscimento

delle forme presenti aiuta a comprendere la scena ripresa e, di conseguenza, permette di

operare delle scelte. Risulta evidente che il raggiungimento di questo risultato espanderà

notevolmente i campi di utilizzo delle tecnologie informatiche.

In un'immagine la ricerca di pattern avviene attraverso l'individuazione di forme e di li­

nee al suo interno. Un semplice oggetto, ripreso per più frame consecutivi, presenta delle

differenze anche tra un frame e l'altro e, con il variare della posizione, della forma e

dell'ambiente, il riconoscimento è reso ancora più difficoltoso.

Si cerca di ovviare a questa variabilità ricorrendo a informazioni ulteriori, acquisite a

priori, che possono maggiormente discriminare e migliorare la percentuale di riconosci­

mento.

Scopo di questo lavoro è l'implementazione di un algoritmo di analisi di immagini che,

integrato con un modello di forme variabili prestabilite, possa essere utilizzato nel rico­

noscimento della forma dell'occhio. Questa informazione permette di rilevare la direzio­

ne verso cui guarda l'operatore e, pertanto, l'ausilio offerto all'utente nell'interfacciamen­

to con l'elaboratore si potenzia notevolmente, attraverso l'utilizzo di queste tecniche,

aprendo nuovi scenari nell'interazione uomo-computer.

L'Active Shape Model è una tecnica di riconoscimento locale basata su un modello ma­

tematico della forma da riconoscere e su un algoritmo di analisi delle immagini. L'algo­

ritmo di gestione della forma (Shape) riceve ad ogni iterazione i risultati dell'algoritmo

analizzante e, in base a questi risultati, decide in quale direzione il modello debba muo­

3

L'Active Shape Model applicato all'Eye Tracking: analisi di immagini

versi nello spazio dei suoi autovettori, per avvicinarsi ai risultati dell'analisi.

Il risultato di questo adattamento è l'input dell'algoritmo di analisi per la successiva ite­

razione. Il ciclo si interrompe, sia al raggiungimento di una soglia minima, sia al supera­

mento di un certo numero di iterazioni.

La tesi svolta ha cercato di elaborare un algoritmo in grado di implementare la parte di

analisi di immagini statiche a colori, nel rispetto di vincoli temporali e ambientali, per

l'individuazione dei punti che permettono la rilevazione della forma dell'occhio.

Dall'analisi della letteratura esistente è stato determinato l'algoritmo da implementare: la

semplice immagine RGB è stata elaborata con tecniche derivative e di normalizzazione,

finalizzate a filtrare la variabilità del mondo reale.

L'algoritmo è stato integrato nell'applicazione di Eye Tracking esistente, per verificarne

e ottimizzarne la funzionalità.

I risultati ottenuti dimostrano la validità della teoria e, quindi, una convergenza del mo­

dello alla posizione dell'occhio in immagini reali. Si sono riscontrate delle difficoltà con

posizioni e con situazioni di luce non previste nel training-set, ma con l'utilizzo di ele­

menti del training-set che meglio si adattavano alla situazione e l'introduzione di una

sorgente di luce costante, si è cercato di limitare l'influenza della variabilità ambientale.

4

L'Active Shape Model applicato all'Eye Tracking: analisi di immagini

Indice generale

1 Introduzione................................................................................................................................ 3

1.1 Struttura della tesi................................................................................................................5

2 Eye Tracking................................................................................................................................7

2.1 Potenzialità dell'Eye Tracking............................................................................................. 8

3 Computer Vision e approcci al riconoscimento di forme.........................................................12

3.1 Modello matematico per punti (PDM=Point Distribution Model)................................... 20

3.1.1 Analisi delle componenti principali (PCA)...............................................................22

3.2 Tecniche di Shape Learning.............................................................................................. 24

3.2.1 Applicazione dell'ASM: metodo di ricerca locale.................................................... 28

3.3 Conclusioni........................................................................................................................32

4 Studio del sistema Eye Tracking esistente e requisiti del progetto........................................... 33

4.1 Analisi del problema e dei requisiti...................................................................................33

4.2 Struttura generale del sistema............................................................................................38

4.2.1 Studio dell'applicazione “Training” ......................................................................... 40

4.2.1.1 Metodo per la creazione del training-set...........................................................41

5 Verifica...................................................................................................................................... 45

5.1 Algoritmi implementati .................................................................................................... 45

5.1.1 Metodo di creazione dei greylevel............................................................................ 45

5.1.2 Lunghezza e larghezza dei greylevel.........................................................................48

5.1.3 Greylevel derivato e normato.................................................................................... 50

5.1.4 Metodo di ricerca globale..........................................................................................51

5.1.4.1 Algoritmo di ricerca della forma.......................................................................51

5.1.4.2 Suddivisione della ricerca in due fasi............................................................... 53

5.1.4.3 Fase 1: ricerca della forma nell'immagine........................................................ 54

5.1.4.4 Fase2: affinamento della forma.........................................................................56

1

L'Active Shape Model applicato all'Eye Tracking: analisi di immagini

5.1.5 Metodo di ricerca locale: determinazione della forma..............................................61

5.1.6 Strutture dati per la ricerca del greylevel di confronto............................................. 66

5.1.6.1 Struttura ad albero............................................................................................. 66

5.1.6.2 Memoria associativa.........................................................................................70

5.1.7 Sviluppo del codice critico in Assembler..................................................................73

5.1.7.1 Set di istruzioni MMX e SSE............................................................................73

5.2 Valutazioni sperimentali e possibili sviluppi.................................................................... 79

5.2.1 Valutazione dell'efficacia del riconoscimento: distanza euclidea.............................79

5.2.2 Valutazione del funzionamento.................................................................................81

6 Conclusioni................................................................................................................................ 91

7 Bibliografia................................................................................................................................ 94

2

L'Active Shape Model applicato all'Eye Tracking: analisi di immagini

1 Introduzione

Riuscire a comunicare in modo naturale con i computer è un obiettivo perseguito dal­

l'Information Tecnology per le grandi potenzialità che questo comporterebbe.

Chiunque sia il nostro interlocutore, per interagire correttamente, ha bisogno di com­

prendere come è fatto il mondo che lo circonda: per i computer è necessaria l'implemen­

tazione di una tecnologia finalizzata al riconoscimento delle immagini in modo che l'ela­

boratore, analogamente a quanto facciamo noi esseri umani, riesca a capire il contesto e

la situazione in cui si trova.

Gli esseri umani agiscono e determinano i loro comportamenti anche in base alla valuta­

zione della situazione, attraverso il riconoscimento di pattern, ossia di entità che posso­

no essere suoni, sensazioni tattili, o attraverso la vista individuando le forme percepite.

Il canale visivo è senz'altro un canale prioritario, ricco di informazioni e molto variabile

nei suoi contenuti.

Interpretare le immagini per un computer diventa, quindi, un traguardo molto comples­

so: una strada percorribile è la realizzazione, almeno all'inizio, di software che assolvano

parzialmente a questo compito.

La nostra strategia sarà quella di interpretare le immagini individuando forme al loro in­

terno, e pertanto, visto il numero elevato di forme esistenti, è evidente quanto sia com­

plesso questo traguardo.

In tale contesto il progetto generale, in cui si colloca il lavoro svolto con questa tesi, fo­

calizza l'attenzione sulla ricerca di un sistema di puntamento basato sullo sguardo dell'u­

tente. Una tappa obbligata per il raggiungimento di questo obiettivo consiste nell'indivi­

duazione dei tratti significativi del volto e degli occhi.

3

L'Active Shape Model applicato all'Eye Tracking: analisi di immagini

Questa finalità associata agli ausili che si possono realizzare nella sfera dell'handicap ri­

guarda l'implementazione di sistemi in grado di rendere più autosufficienti i disabili mo­

tori gravi nelle loro attività espressive e di comunicazione. Le tecnologie possono ri­

spondere ai bisogni specifici delle persone disabili con la realizzazione di software e

hardware che permettano l'accessibilità al computer per svolgere funzioni altrimenti pre­

cluse.

La complessità di un sistema che favorisca l'interazione uomo-computer comporta una

suddivisione del problema, per concentrare le risorse su aspetti più specifici.

Quindi il lavoro ha come punto di partenza gli algoritmi e i programmi già sviluppati nel

progetto generale. Queste basi permettono una maggiore attenzione al problema specifi­

co relativo allo sviluppo di un algoritmo che possa analizzare le immagini statiche, fina­

lizzato alla ricerca dei contorni dell'occhio. Successivamente la soluzione sarà integrata

nel programma di Eye Tracking esistente per seguire i movimenti dell'occhio e dell'iride,

dai quali si possa estrapolare la direzione verso cui guarda l'operatore.

Poiché si intende minimizzare l'utilizzo di strumentazioni hardware sofisticate e, al tem­

po stesso, si vuole ricercare una soluzione economica ma efficace, verranno studiate tec­

niche inerenti alla computer vision.

Per quanto riguarda la soluzione da ricercare verranno valutate due tecniche di analisi di

immagini esistenti, l'Active Shape Model (ASM) e l'Active Appareance Model (AAM)

e, in base alle informazioni raccolte, si procederà con la più promettente, prevedendo

ulteriori approfondimenti in caso di un risultato non soddisfacente.

Si vuole dimostrare l'applicabilità del metodo anche al riconoscimento di forme molto

variabili, come quella dell'occhio, e si studieranno adattamenti e modifiche agli studi in­

dicati, come per esempio attraverso l'introduzione di immagini a colori.

4

L'Active Shape Model applicato all'Eye Tracking: analisi di immagini

Poiché le due tecniche da studiare prevedono un modello della forma da riconoscere ge­

nerato da un training-set, si proverà ad utilizzare singolarmente tutti gli elementi appar­

tenenti ad esso per la ricerca della forma, in modo da massimizzare la percentuale di ri­

conoscimento e adattamento alla shape reale.

Il problema della scelta dell'ambiente di sviluppo non si pone, in quanto il progetto è

stato sviluppato con l'ambiente Microsoft Visual Studio utilizzando il linguaggio C++ .

I programmi “Training”, per la creazione del training-set, ed “Eye Tracking”, per la ri­

cerca della forma in real-time, sono il punto di partenza del lavoro e verranno studiati

per poter correttamente integrare la procedura di analisi da sviluppare.

L'uso di immagini a colori e la ricerca di una soluzione con tempistiche compatibili con

una applicazione reale impongono, per quanto possibile, un'attenzione particolare all'ot­

timizzazione del codice: durante lo sviluppo si adotteranno algoritmi e strutture dati

idonee allo scopo.

1.1 Struttura della tesi

Il testo si articola in cinque capitoli i cui argomenti sono sviluppati seguendo un proce­

dimento top-down. Dopo il capitolo introduttivo, il secondo espone brevemente le po­

tenzialità delle attuali tecniche di Eye Tracking con qualche riferimento alle implemen­

tazioni presenti sul mercato.

Nel terzo capitolo, dopo una panoramica delle tecniche di computer vision esistenti fi­

nalizzate all'interpretazione di forme in immagini acquisite, viene affrontata la teoria

dell'Active Shape Model su cui si basa questa tesi.

Nel quarto capitolo si analizza il problema dell'Eye Tracking mettendo in evidenza i re­

5

L'Active Shape Model applicato all'Eye Tracking: analisi di immagini

quisiti che l'algoritmo analizzante deve soddisfare per dimensionare correttamente il si­

stema. Viene, inoltre, descritto il programma di Eye Tracking su cui è stato integrato

l'algoritmo di analisi sviluppato.

Il quinto capitolo descrive la realizzazione finale raggiunta in base ai requisiti preceden­

temente definiti e riporta alcuni risultati sperimentali a dimostrazione degli obiettivi

conseguiti. Vengono descritte nel dettaglio le strutture dati utilizzate e i loro limiti ripor­

tando il codice significativo che implementa le idee espresse. Inoltre, è stata effettuata

una valutazione delle potenzialità dell'algoritmo attraverso diversi test, per determinarne

le condizioni di massima efficacia.

Nel sesto capitolo vengono esposte le conclusioni a cui ha condotto questo lavoro, ri­

prendendo sia gli obiettivi e le ipotesi qui introdotte, sia le considerazioni e gli eventuali

miglioramenti del programma.

6

L'Active Shape Model applicato all'Eye Tracking: analisi di immagini

2 Eye Tracking

Vista la centralità dell'informazione nelle attività umane si possono comprendere le

grandi potenzialità dell'Informatica: qualunque aspetto della nostra vita comporta un

processo di trattamento di informazioni costituito da una fase di acquisizione, una di ela­

borazione ed un'eventuale fase di attuazione. Potenzialmente queste elaborazioni posso­

no essere simulate dall'Informatica attraverso degli algoritmi più o meno complessi che,

in molte situazioni, producono risultati migliori di quanto non riesca a fare l'essere uma­

no.

Esistono, però, ancora molte attività umane in cui l'Informatica non è competitiva per­

ché, anche se in costante evoluzione, non dispone di quelle infrastrutture necessarie ad

implementare algoritmi capaci di simulare le attività più complesse dell'uomo.

L'evoluzione tecnologica include non solo il miglioramento dell'hardware, che si vuole

sempre più potente in termini di elaborazione e capacità di memorizzazione, ma com­

prende anche l'aspetto gestionale di problemi complessi; basti pensare che per la realiz­

zazione di un Sistema Operativo contemporaneo, necessario alla gestione fondamentale

del computer, debba lavorare un team composto da centinaia se non migliaia di persone.

L'orientamento dell'Informatica verso lo sviluppo di algoritmi in grado di simulare i pro­

cessi cognitivi dell'essere umano ha come obiettivo principale il miglioramento della

qualità della vita dell'uomo, semplificando tutti quegli aspetti ripetitivi che lo distolgono

da attività più creative.

In questo senso l'Informatica può contribuire al nostro processo di evoluzione e, in mol­

ti aspetti, può aiutare e accelerare lo sviluppo delle società. Ad esempio le forze dell'or­

dine adottano frequentemente tecnologie informatiche, come nella catalogazione di im­

7

L'Active Shape Model applicato all'Eye Tracking: analisi di immagini

pronte digitali per individuare gli autori di un crimine, o nell'uso di algoritmi in grado di

riconoscere i volti umani per individuare le persone al loro passaggio.

Questi obiettivi primari possono essere perseguiti per gradi e, certamente, uno di essi

consiste nel potenziamento delle modalità di interfacciamento con l'elaboratore.

La scienza che studia l'interazione tra uomo e computer è la Human Computer Interac­

tion, il cui fine è l'incremento della produttività creativa dell'uomo attraverso un comple­

to utilizzo delle potenzialità dei computer. Essa cerca soluzioni hardware e software che

possano migliorare l'interazione con il computer, sia negli aspetti strettamente ergonomi­

ci, sia in quelli orientati all'organizzazione dei contenuti. Innanzitutto bisogna considera­

re cosa rende più efficace e naturale un'interfaccia rispetto ad un'altra. Purtroppo non esi­

ste una risposta univoca, visto che molti fattori socio-culturali possono influire nella so­

luzione: l'intuitività di un'interfaccia grafica dipende dall'interpretazione individuale data

agli oggetti in essa contenuti.

Un canale prioritario nell'interazione uomo-computer è senza dubbio quello visivo, e in

questo contesto si colloca l'Eye Tracking che mira a interagire più efficacemente con il

computer e, al tempo stesso, ad acquisire molte informazioni utili in vari ambiti di se­

guito accennati.

L'Eye Tracking è una tecnica che ha l'obiettivo di inseguire la posizione dell'occhio per

l'individuazione della direzione in cui l'utente guarda.

2.1 Potenzialità dell'Eye Tracking

L'Eye Tracking viene usata in molte attività di ricerca, come la Human Computer Inte­

raction, la medicina, la pubblicità, l'aeronautica, la psicologia e nello studio di ausili per

8

L'Active Shape Model applicato all'Eye Tracking: analisi di immagini

persone con handicap motori gravi.

I movimenti oculari rilevanti si distinguono in tre categorie: la fissazione, vale a dire la

capacità di mantenere ferma la direzione verso cui guarda l'occhio, i movimenti di pur­

suit (inseguimento), cioè la capacità dell'occhio di seguire un oggetto in movimento, e,

infine, i movimenti saccadici, ovvero movimenti volontari o involontari dell'occhio at­

tuati per spostare l'attenzione da un punto a un altro.

Si comprende che si ottiene la maggior quantità di informazione in fase di fissazione,

nella quale l'occhio punta una zona ritenuta interessante.

Esistono diversi modi per catturare lo sguardo: il più usato e testato prevede l'utilizzo di

un emettitore ad infrarossi, le cui riflessioni sulle pupille degli occhi vengono rilevate

facilmente da una telecamera. L'analisi di queste immagini permette la localizzazione

dell'occhio, e una successiva triangolazione dei punti individuati consente di calcolare la

direzione verso cui guarda l'utente.

Un'altra tecnica di Eye Tracking consiste nell'analizzare con algoritmi di computer vi­

sion l'immagine ripresa da una normale telecamera ed interpretarne il contenuto, per rile­

vare la posizione e la forma dell'occhio e, al suo interno, la posizione della pupilla.

La maggior parte dei prodotti esistenti oggigiorno sul mercato si basa sulla tecnologia ad

infrarossi, anche se risulta relativamente costosa e si differenzia solo per il grado di in­

vasività dei sistemi utilizzati nel rilevare la riflessione. La loro limitata sensibilità e pre­

cisione di rilevamento comporta la necessità di ravvicinare il sensore al soggetto da con­

trollare.

Alcuni prodotti invasivi usano un casco analogo a quello dei ciclisti su cui viene monta­

ta la telecamera; altri addirittura impongono l'immobilità della testa in una struttura, in

modo da limitarne i movimenti e permettere al sistema di essere più preciso e stabile; al­

9

L'Active Shape Model applicato all'Eye Tracking: analisi di immagini

tri ancora utilizzano degli occhiali su cui vengono fissati una mini-telecamera ed un

emettitore ad infrarossi.

I metodi non invasivi, anche se utilizzano sempre emettitori ad infrarossi, collocano la

telecamera in prossimità del monitor, rendendo di conseguenza i movimenti dell'utente

più naturali.

Questa spontaneità rende più significativa l'analisi dei comportamenti dell'operatore, dai

quali si può dedurre una serie di informazioni utili.

In medicina, per esempio, diventerà possibile la consultazione dei referti indicandoli con

lo sguardo e specificando verbalmente l'azione che si vuole fare: questo consentirà ai

medici di eseguire un'attività diretta sul paziente e, allo stesso tempo, di visionare i do­

10

Illustrazione 2.1

Illustrazione 2.2

L'Active Shape Model applicato all'Eye Tracking: analisi di immagini

cumenti digitalizzati.

In campo pubblicitario, l'Eye Tracking permette di capire se una pubblicità suscita inte­

resse e, in particolar modo, quali immagini al suo interno risultano più efficaci. Questa

analisi viene applicata anche nello studio delle interfacce di siti web, per comprendere

come si dovrebbero organizzare le pagine: vengono utilizzate le registrazioni di tutti i

movimenti oculari durante la navigazione, i cosiddetti scanpath, dai quali si deducono i

comportamenti collettivi relativi al modo di visitare il sito, individuando gli elementi di

maggior interesse. Inoltre, con queste informazioni, si riesce a capire come utilizzare le

aree della pagina web per stimolare più efficacemente gli utenti.

Le applicazioni di Eye Tracking nel campo delle interfacce uomo-computer iniziano ad

essere presenti con la funzione di sostituire il mouse come dispositivo di puntamento; ne

sono esempi la navigazione virtuale 3D, i video-games e la gestione di una casa domoti­

ca, in cui è possibile effettuare le normali attività attraverso l'uso congiunto di voce e

sguardo. Nel contesto aeronautico-militare questa tecnologia è integrata nei caschi in

dotazione ad alcuni reparti e consente una velocità di azione maggiore, determinante ai

fini delle stesse missioni.

Si stanno sviluppando nuove applicazioni che permettono l'accessibilità alle tecnologie

anche a coloro che hanno bisogno di strumenti specifici per sopperire ad un deficit.

L'accesso alle tecnologie può contribuire a favorire l' autonomia dei disabili, per ridurre

in parte le loro difficoltà; ad esempio negli handicap motori gravi è possibile controllare

il mouse o la tastiera con le potenzialità del sistema visivo: l'Eye Tracking è inserita in

alcuni dispositivi per persone che non possono usare queste periferiche, consentendo

loro di utilizzare il computer per comunicare, lavorare e migliorare la qualità della loro

vita.

11

L'Active Shape Model applicato all'Eye Tracking: analisi di immagini

3 Computer Vision e approcci al riconoscimento di for­

me

Lo sviluppo di tecnologie che consentono di interpretare le immagini acquisite da una

webcam proietta il computer in nuovi campi applicativi. Gli sforzi del mondo scientifico

nella computer vision sono imponenti e si iniziano a vedere i primi risultati, grazie an­

che alle crescenti potenzialità dei computer utilizzati.

Per capire la funzione della Computer Vision può essere utile evidenziare un aspetto che

la differenzia dall'elaborazione di immagini digitali (Digital Image Processing). L'elabo­

razione di immagini digitali ha come obiettivo la trasformazione di un'immagine, per

evidenziare qualche aspetto in essa contenuto e, quindi, il prodotto finale continua ad es­

sere un'immagine digitale. Un esempio di trasformazione può produrre un'immagine con

un rumore ridotto, o con i contrasti accentuati, oppure può separare meglio gli oggetti

dallo sfondo.

La computer vision, invece, ha lo scopo di ricavare informazioni qualitativamente più

elevate con l'obiettivo di comprendere l'immagine per individuare, ad esempio, qualche

pattern in essa contenuto. L'output di questa elaborazione non è, quindi, un'immagine,

ma un'informazione contenuta, rendendo l'elaborazione simile ai processi cognitivi del­

l'essere umano nella percezione visiva.

Una modalità di elaborazione inclusa nelle tecniche di computer vision è la Pattern Re­

cognition che ha come obiettivo il riconoscimento di forme all'interno delle immagini

analizzate.

Nell'ambito del Pattern Recognition, per effettuare un riconoscimento, si deve anteporre

una fase di definizione della “classe” che, in qualche modo, distingue i pattern ad essa

12

L'Active Shape Model applicato all'Eye Tracking: analisi di immagini

appartenenti dal resto degli altri possibili.

Un altro aspetto da sottolineare è la difficoltà di assegnare questi pattern a classi distinte.

Il problema nella categorizzazione è dovuto a diversi fattori:

– l'interpretazione del contesto che determina molte volte il significato della stessa

forma. Per esempio nel riconoscimento di una bottiglia su un tavolo o di una botti­

glia raffigurata in un quadro, la presenza della cornice nell'immagine rende il si­

gnificato della stessa forma diverso;

– le differenze che due immagini dello stesso oggetto possono avere tra loro;

– le differenze di forma, posizione che l'oggetto può avere;

– il rumore generato dal contesto.

Queste problematiche determinano la difficoltà di associare un pattern ad una classe e,

di solito, si usa una o più soglie con le quali deciderne l'appartenenza o meno. Esiste

anche il problema dei falsi riconoscimenti e del non riconoscimento di pattern corretti

che, ovviamente, devono essere di numero esiguo.

In molte situazioni la complessità computazionale porta al compromesso, limitando le

forme da riconoscere, la risoluzione delle forme o le percentuali di falsi riconoscimenti.

La classificazione di pattern si può realizzare in vari campi, con il solo vincolo dettato

dai computer di trasformare in digitale l'entità da riconoscere. Per esempio possono esse­

re dei pattern i suoni, i volti delle persone, degli oggetti in ambito industriale, delle lastre

ospedaliere o i segnali provenienti da sensori di movimento dislocati in un ambiente.

Esistono diverse metodologie per affrontare la complessità insita nel riconoscimento di

pattern. Questi metodi più o meno complessi si prestano a situazioni specifiche, quindi è

necessario valutare correttamente quale sia il metodo migliore per affrontare il problema

da risolvere.

13

L'Active Shape Model applicato all'Eye Tracking: analisi di immagini

Gli approcci al riconoscimento di forme sono quattro: Approccio Statistico, Approccio

Strutturale, Reti Neurali, Template Matching.

La tecnica dell'approccio statistico consiste nell'estrarre delle caratteristiche dagli oggetti

presenti nell'immagine, come il baricentro dell'oggetto, e con esse si decide se l'oggetto

da valutare appartiene o meno alla classe da ricercare. Per esempio, in immagini mono­

cromatiche, dopo aver calcolato il baricentro, si misura l'estensione dell'oggetto in tutte

le direzioni e, in base a questo valore, si può discriminare tra oggetti lunghi e corti.

Queste tecniche vengono usate in contesti industriali in cui gli oggetti sono relativamen­

te semplici, conosciuti nelle loro forme e facilmente osservabili.

L'approccio strutturale mira in una prima fase ad estrarre delle informazioni sulla morfo­

logia dell'immagine da analizzare (componenti primitive); queste informazioni vengono

comparate con quelle presenti in un database. Un esempio di una possibile applicazione

di questa metodologia è il riconoscimento delle impronte digitali. Nell'analisi si valuta la

direzione delle linee appartenenti all'impronta e, in base al loro andamento, vengono in­

dividuate delle aree accomunate da analoghi andamenti. I baricentri di queste aree for­

mano un grafo strettamente associato all'impronta digitale: le comparazioni di queste

strutture individuano la compatibilità o meno con quelle presenti nel database.

14

Illustrazione 3.1

L'Active Shape Model applicato all'Eye Tracking: analisi di immagini

Le reti neurali sono un'implementazione in scala ridotta delle funzionalità possedute dal­

le reti neuronali del cervello. Esistono diversi tipi di implementazioni, ma la maggior

differenza risiede nel tipo di apprendimento che può essere guidato da un training-set,

oppure ad autoapprendimento. Le connessioni sono simulate da un numero chiamato

“peso” che varia a seconda che si debba rafforzare o meno quella specifica connessione.

Le reti neurali trovano applicazioni in quelle situazioni in cui non si riesca a formalizza­

re il problema con un idoneo algoritmo che normalmente ha tempi di risposta migliori e

determinati.

L'ultimo approccio è quello del Template Matching che si basa nella ricerca di una corri­

spondenza tra immagini o forme (template) di riferimento, presenti in un database, e im­

magini all'interno delle quali ricercare questi template.

L'appartenenza o meno di un template alla categoria ricercata avviene attraverso una

funzione di valutazione.

15

Illustrazione 3.2

L'Active Shape Model applicato all'Eye Tracking: analisi di immagini

La tecnica Template Matching si suddivide in due grandi categorie:

• Rigid Template Matching

• Deformable Template Matching

L'approccio rigido consiste nel ricercare una forma o un'immagine senza modificarla, ef­

fettuando al massimo delle rotazioni e dei rapporti di scala. La ricerca viene fatta con

una misura di correlazione o con la trasformata di Hough.

La correlazione consiste, in termini matematici, nella Somma dei Quadrati delle Diffe­

renze ed, operativamente, comporta un posizionamento ed una successiva comparazione

pixel per pixel tra l'immagine campione I e l'immagine da controllare C.

Formula 3-1

Esistono anche funzioni di correlazione che tengono conto della variabilità energetica

che possono avere le due immagini da correlare:

Formula 3-2

.

Esempi di applicazioni reali in cui è possibile attuare il confronto attraverso la correla­

zione è il riconoscimento delle targhe automobilistiche che non sono soggette a defor­

mazioni dei caratteri delle stesse, né a loro rotazioni. Con qualche difficoltà in più è pos­

sibile riconoscere forme più variabili, come componenti elettronici che si possono pre­

sentare anche ruotati rispetto all'immagine campione da ricercare. In questo caso prima

della ricerca con il metodo della correlazione è necessario ruotare matematicamente i pi­

16

∥I−T∥2

∥I−T∥2/∥I∥∥T∥

L'Active Shape Model applicato all'Eye Tracking: analisi di immagini

xel dell'immagine campione.

Un'altra strada percorribile si basa sulla proprietà che fa equivalere la correlazione nel

dominio del tempo o dello spazio (x,y) ad una semplice moltiplicazione nel dominio

delle frequenze (u,v). Si deve comunque tener conto della complessità computazionale

dei due algoritmi e del fatto che la moltiplicazione nel dominio delle frequenze compor­

ta una trasformata di Fourier, un calcolo in floating point ed un'antitrasformata di Fou­

rier.

Formula 3-3

La trasformata di Hough è una tecnica di matching esatto e, quindi, idonea al riconosci­

mento di pattern identici al modello e, prestandosi bene al riconoscimento di forme geo­

metriche, risulta stabile ad occlusioni parziali, al rumore e a sfondi non uniformi.

Si parte dalla forma parametrica di un pattern da ricercare ( per esempio una circonfe­

renza r2=x2−xc2y2−yc2 ) e dall'individuazione dei contorni (edge detection)

presenti nell'immagine. Ogni punto di questo contorno si assume potenzialmente appar­

tenente alla forma da ricercare, e per ciascuno di essi si calcola con quanta probabilità

appartiene al pattern da ricercare. Nello spazio dei parametri n-dimensionale (nell'esem­

pio r,xc,yc) discretizzato, a cui ogni punto corrisponde una forma, si determina a quali

punti può appartenere il pixel considerato: al termine il punto nello spazio dei parametri

(r,xc,yc) con il maggior numero di pixel associati, individua il pattern ricercato nell'im­

magine. Il riconoscimento può essere affetto da errore e, quindi, si deve sempre stabilire

una soglia per decidere se il matching è attendibile.

17

corr f , gx , y=F−1{F u , v∗Gconiugata u , v}

L'Active Shape Model applicato all'Eye Tracking: analisi di immagini

Un altro approccio al riconoscimento di pattern impiega i template deformabili. Questo

metodo è necessario in quelle situazioni in cui i pattern da ricercare hanno una qualche

variabilità che deve essere ricercata o inseguita. Per questo motivo i template sono più

complessi e necessitano di un maggiore sforzo per essere implementati.

Schematicamente le tecniche con template deformabili si distinguono in:

– free form

– parametric

– analitic form

– shape learning

I template free-form sono dei modelli deformabili che possono evolvere liberamente in

base a certe regole.

Una di queste tecniche è L'Active Contour Model , il risultato del lavoro introdotto da

Kass et al. nel 1987 [rif 7].

Le curve utilizzate sono delle spline ( v(s)=[x(s),y(s)] ) che vengono inizialmente

posizionate sull'immagine e ad esse viene associata un'energia calcolata rispetto

all'immagine da analizzare: E(snake)=E(interna)+E(esterna)+E(forze di vincolo). La

forma si adatta all'immagine minimizzando l'energia totale.

• E(interna)=Somma di energia elastica e di energia di piegatura, che dipende dai para­

metri della spline.

• E(esterna)=energia associata all'immagine di solito calcolata in base al suo gradiente

in un intorno della spline.

• E(forze esterne di vincolo)= energia associata ad altre eventuali componenti esterne.

18

L'Active Shape Model applicato all'Eye Tracking: analisi di immagini

Le tecniche parametriche

L'Analitic-Form based è un metodo basato su tecniche parametriche di controllo della

forma. Si descrive la forma e la sua deformabilità in modo matematico attraverso l'uso

di curve, linee, spline e loro combinazioni. Alcuni parametri ne permettono la modifica

e, quindi, l'adattamento di queste linee alla forma presente nell'immagine. [ A.L. Yuille,

P.W. Hallinan, and D.S. Cohen ].

L'ultima classificazione da valutare è quella relativa alle tecniche basate sull'acquisizio­

ne della forma da riconoscere. Esistono almeno due tecniche che si basano sull'apprendi­

mento della forma e sulla sua traduzione in un modello controllato da pochi parametri

che tiene conto della sua variabilità:

• Metodo per individuare oggetti 2d Region Based

• Active Appearance Model (AAM) [rif.4]

• Metodi per individuare oggetti 2d Contour Based

• Active shape models (Metodo di ricerca locale) [rif. 1]

Entrambe queste tecniche si basano sulla creazione di un modello matematico per punti

rappresentativo della forma. Il modello viene creato attraverso una fase di training, nella

quale vengono elaborate una serie di immagini contenenti la forma e la sua variabilità.

Questa dipendenza dalle immagini del training-set limita la deformabilità del modello,

rendendolo più stabile e specializzato, ma al contempo ne limita l'adattabilità alle situa­

zioni non previste nel training-set.

19

L'Active Shape Model applicato all'Eye Tracking: analisi di immagini

3.1 Modello matematico per punti (PDM=Point Distribution Mo­

del)

Cootes et al. (1991) [1] elaborano un modello idoneo a descrivere forme bidimensionali

e variabili, attraverso la definizione di alcuni punti che individuano il contorno della for­

ma da modellare.

Questo modello vincola la deformabilità della shape da ricercare ma, non essendo rigi­

do, permette una variabilità all'interno delle forme definite nel training-set, riuscendo a

prevedere anche forme intermedie.

Il modello che verrà definito ha origine da un set di immagini relativamente elevato e

varia a seconda della complessità del modello e delle variazioni che s'intende far rappre­

sentare.

La forma viene evidenziata tracciando un contorno per punti su ogni immagine: queste

coordinate costituiscono la base di partenza per la definizione del modello. A questo

punto sorge il problema della metodologia di scelta dei punti.

Vengono individuati tre tipologie di punti:

1. tipo di punto che marca una parte dell'oggetto di significativa importanza, come

un estremo o un angolo;

2. tipo di punto indipendente dall'oggetto che delimita e che individua caratteristi­

che generali, come per esempio il punto più in alto nell'immagine appartenente

alla forma;

3. tipo di punto ricavato come interpolazione di punti di tipo 1 o 2

Una volta definiti i punti fondamentali che caratterizzano la forma dell'oggetto si devono

picchettare gli stessi nelle varie immagini incluse nel training-set.

20

L'Active Shape Model applicato all'Eye Tracking: analisi di immagini

Questo passaggio permette di ricavare un vettore di coordinate bidimensionali per ogni

immagine. Evidentemente queste coordinate, relative alla posizione dei pixel nelle im­

magini campionate, devono essere allineate per avere i punti della shape, relativi ad un

punto del modello, il più possibile vicini.

L'allineamento si realizza con roto-traslazioni e rapporti di scala, ottenendo una forma

media e una matrice degli scarti che indica la variazione di un punto del modello rispetto

agli altri.

L'algoritmo descritto segue i seguenti passi:

• ruota, scala e trasla ogni shape per allinearla alla prima shape del training-set

presa casualmente come shape media;

• ripete fino a convergere i seguenti punti

• calcolo della shape media relativa all'ultimo allineamento effettuato

• normalizzazione sull'orientamento, sulla scala o origine della shape

media ad un valore deciso di default (utile a far convergere l'algoritmo)

• riallineamento delle shape rispetto alla shape media appena calcolata.

• Ripeti il ciclo.

21

Disegno 3.1: tipologia dei punti di un modello

Illustrazione 3.3

L'Active Shape Model applicato all'Eye Tracking: analisi di immagini

La normalizzazione è necessaria per far convergere l'algoritmo avendo 4*(N-1) vincoli

con 4*N variabili (N= numero delle shape e i 4 parametri sono relativi alla rotazione θ,

scala s, e traslazione t x , t y ).

Dalle shape del training-set allineate si ottiene la shape media x , e la matrice di cova­

rianza campionaria

dove dx i=xi−x . Quindi il modello si può rappresentare con la formula

x=xS xv dove x è il vettore medio del modello e xv è il vettore dei parametri

che permette di discostarsi dalla forma media e ottenere la shape desiderata x .

Questa rappresentazione ha lo svantaggio di dover agire su tutte le componenti del vetto­

re xv per ottenere la deformazione desiderata dovuta all'intrinseca correlazione tra le

variabili del modello. Quindi, si procede ad un'analisi delle componenti principali (PCA)

perché permette di scorrelare le variabili del modello, ottenendo così alcuni vantaggi di

seguito descritti.

3.1.1 Analisi delle componenti principali (PCA)

Poiché la matrice di covarianza è simmetrica di dimensioni NxN con elementi reali

Amn=Anm si dimostra l'esistenza di una matrice diagonale Λ ed una ortogonale U tali

22

Formula 3-4

S= 1N∑

i=1

N

d xi d xiT

L'Active Shape Model applicato all'Eye Tracking: analisi di immagini

che

A=U ΛU T

Le colonne di U = ( u1 , ......., uN ) sono gli autovettori di A e i valori nella diago­

nale di Λ, ( λ1 , ......., λN ) sono gli autovalori e valgono le relazioni

Auk=λkuk

e gli autovettori uk sono ortonormali rispetto al prodotto scalare, per cui il loro pro­

dotto vale 1 solo quando un autovettore è moltiplicato per se stesso.

Questa trasformazione permette di raggiungere diversi obiettivi:

• rende indipendenti i movimenti dei punti del modello nel senso che le variabili

della nuova base rappresentano comportamenti complessivi dei punti: se il mo­

dello nella sua variabilità ha un naturale spostamento lungo una certa direzione,

nella base di partenza per ottenerne uno spostamento lungo questa direzione si

deve agire su tutte le variabili della base, mentre nella nuova base è probabile

che il movimento sia ottenuto agendo solo su alcune variabili.

Questa è la principale caratteristica dell'analisi (PCA) poiché permette di indivi­

23

Disegno 3.2

L'Active Shape Model applicato all'Eye Tracking: analisi di immagini

duare tipologie di comportamenti e di concentrarne il controllo su singole varia­

bili;

• le variabili della nuova base hanno un peso decrescente nel definire gli sposta­

menti dei punti e, quindi, considerando le principali componenti si riesce di soli­

to a ottenere quasi tutta la rappresentatività del modello. In termini matematici si

può dire che la varianza espressa da ogni autovettore è proporzionale al valore

del suo autovalore. Questa caratteristica può essere usata per ridurre il numero di

parametri da controllare nella gestione della variazione del modello, anche se in­

troduce un'approssimazione del modello inferiore ad un certo valore stabilito a

priori;

• in uno spazio bidimensionale, la matrice di covarianza ha dimensioni pari a 4

volte il quadrato del numero di punti n utilizzati nel modello e questo comporta

delle matrici di grosse dimensioni che aggravano il calcolo computazionale.

Come diretta conseguenza della proprietà esposta precedentemente, diminuendo

il numero di variabili nella nuova base, si ottiene una matrice degli scarti dimen­

sionalmente ridotta portando notevoli benefici in termini di prestazioni.

3.2 Tecniche di Shape Learning

La prima tecnica di Shape learning, che si basa su un modello matematico dei punti, è

l'Active Appearance Model (AAM) che consiste in una classificazione della forma de­

scritta nelle immagini del training-set, dei contorni e dei valori dei colori in essa conte­

nuti. Considerando i vettori dei punti che definiscono i contorni indicati nelle immagini

del training-set xi e la loro media x si calcola dx i=xi−x . Quindi, con l'analisi

24

L'Active Shape Model applicato all'Eye Tracking: analisi di immagini

delle componenti principali (PCA) applicata alla matrice di covarianza campionaria

Formula 3-5

si costruisce un modello statistico dei contorni

Formula 3-6

dove x è il vettore medio del modello che descrive i contorni, P s è la matrice che

descrive le variazioni del modello nella nuova base calcolata dalle immagini del trai­

ning-set e bs è il vettore dei parametri che permette di discostarsi dalla forma media e

ottenere la shape desiderata x .

Si procede allo stesso modo per creare un modello dei livelli di grigio contenuti nella

forma, ottenendo il modello lineare

Formula 3-7

A questo punto la forma e i greylevel interni possono essere rappresentati dai vettori pa­

rametrici bs e bg , che possono essere concatenati per rappresentare il modello nel

suo complesso. Poiché si suppone vi sia una correlazione tra i punti della shape e i grey­

level in essa contenuti, si ripete il metodo PCA sul vettore bsb g per i valori che assu­

mono nel rappresentare tutte le forma appartenenti al training-set. Il risultato è un mo­

dello lineare

25

S= 1N∑

i=1

N

d xi d xiT

x=xP sb s

g=gP gb g

L'Active Shape Model applicato all'Eye Tracking: analisi di immagini

Formula 3-8

che descrive tutti gli aspetti della forma attraverso il vettore parametrico c .

Una volta in possesso del modello si procede nella fase di ricostruzione e/o riconosci­

mento di nuove shape. L'obiettivo è la ricostruzione di una forma mai vista dello stesso

tipo di quelle appartenenti al training-set. Agendo sui parametri del vettore c si ottie­

ne una immagine Im e si calcola la differenza con l'immagine da riconoscere I i .

Formula 3-9

Il problema consiste nel minimizzare il valore della distanza tra i vettori, cioè

Δ=∣δ I∣2 al variare dei parametri del vettore δc . Questa relazione viene acquisita

empiricamente, alterando con minime roto-traslazioni le shape generate dal modello e

calcolando come debba variare il vettore c per minimizzarne la distanza.

Questo procedimento permette di calcolare la relazione tra δc e δI e precisamente

la matrice A tale che δc=AδI .

In questo modo, durante una fase di riconoscimento, dopo aver calcolato δI si può ri­

salire alla variazione da apportare al vettore c per minimizzare le distanze tra le due

immagini.

Un'altra tecnica di Shape Learning che prenderemo in considerazione è l'Active Shape

Model. L'ASM è un metodo di ricerca locale di una forma variabile, come per esempio

una mano , un occhio o organi del corpo umano, e come l'AAM si basa su un modello

26

b=b sbg=Qc

δ I=I i−Im

L'Active Shape Model applicato all'Eye Tracking: analisi di immagini

della forma da ricercare.

Considerando i vettori dei punti che definiscono i contorni indicati nelle immagini del

training-set xi e la loro media x si calcola dx i=xi−x .

Quindi con l'analisi delle componenti principali (PCA) applicata alla matrice di cova­

rianza campionaria

Formula 3-10

si costruisce un modello statistico dei contorni

Formula 3-11

dove x è il vettore medio del modello che descrive i contorni, P è la matrice diago­

nale che descrive le variazioni del modello nella nuova base calcolata dalle immagini del

training-set, e b è il vettore dei parametri che permette di discostarsi dalla forma me­

dia e ottenere la shape desiderata x .

Tutte le forme indicate nelle immagini del training-set vengono memorizzate in questo

modello e sono ricostruite per precisi valori dei pesi associati alle varie componenti del

vettore b : valori intermedi dei pesi permettono di ottenere anche forme intermedie,

non presenti direttamente in quelle indicate dal training-set.

Sulle immagini del training-set, oltre alle coordinate dei punti, vengono campionati i re­

27

S= 1N∑

i=1

N

d xi d xiT

x=xP b

L'Active Shape Model applicato all'Eye Tracking: analisi di immagini

lativi valori dei pixel nella perpendicolare della tangente alla curva del modello. Questi

vettori di pixel, la cui lunghezza np è stabilita a priori, sono necessari per la fase di ri­

cerca in nuove immagini e vengono chiamati greylevel, perché le immagini prese in con­

siderazione sono monocromatiche.

I greylevel vengono anche derivati e normalizzati per essere invarianti a fattori di scala o

ad aggiunte di costanti.

Questa operazione limita gli errori in fase di riconoscimento e introduce una maggiore

robustezza a variazioni di luminosità ambientali.

Il modello ricavato dalle immagini del training-set viene modificato durante la fase di ri­

cerca della forma da un algoritmo analizzante, per adattarsi alla forma presente nell'im­

magine.

3.2.1 Applicazione dell'ASM: metodo di ricerca locale

Il modello di ricerca locale si applica nell'area dell'immagine che contiene la forma da ri­

cercare e a grandi linee procede ad approssimazioni successive, partendo dal modello

posizionato sulla forma media, cioè quando il vettore dei parametri b vale 0.

L'algoritmo è stato ideato per riconoscere forme variabili monocromatiche su sfondo

uniforme, con la conseguenza di avere dei greylevel più semplici da trattare. La sempli­

ficazione è dovuta ai campi applicativi prevalentemente medici in cui questa tecnica vie­

ne applicata con immagini costituite da livelli di grigio.

Il metodo svolge una ricerca nell'immagine monocromatica e, determina lo spostamento

necessario per allineare il modello alla forma individuata. Le direzioni prese in conside­

razione per i dx sono le perpendicolari alla tangente passanti per i punti del modello,

28

L'Active Shape Model applicato all'Eye Tracking: analisi di immagini

cioè le stesse considerate per la creazione dei greylevel dalle immagini del training-set

(Disegno 3.3).

Il metodo con il quale si effettua il confronto prevede una fase di pre-elaborazione nella

quale viene calcolato il greylevel derivato per ogni immagine e per ogni punto del mo­

dello,

Formula 3-12

dove j indica l'immagine j-esima, i indica l'i-esimo punto del modello e k indica la posi­

zione del pixel k-esimo del greylevel campionato nell'immagine lungo la retta perpendi­

colare alla tangente nel punto i-esimo, y i indica il vettore del greylevel del punto i-

esimo e y ik indica lo specifico valore del pixel k-esimo del vettore.

Successivamente il greylevel viene normalizzato per risultare invariante a costanti intro­

dotte da fattori ambientali, come una maggiore luminosità o un colore diverso della pel­

29

Disegno 3.3

gijk=I j y ik1−I j yi k−1

L'Active Shape Model applicato all'Eye Tracking: analisi di immagini

le.

Formula 3-13

Con questi greylevel normalizzati di lunghezza np si calcolano le relative matrici

np∗n p degli scarti quadratici medi Sgi per ogni punto i del modello. Il calcolo di

queste matrici permette di descrivere statisticamente la variabilità dei greylevel del mo­

dello.

Poiché durante l'analisi di nuove immagini si deve operare un confronto con valori trat­

tati allo stesso modo, si devono derivare e normalizzare anche i greylevel campionati

nell'immagine da analizzare.

Per ogni punto del modello viene calcolata la distanza di Mahalanobis: si campionano

l pixel e ne vengono considerati np alla volta (lunghezza greylevel) con npl e

su di essi, dopo essere stati derivati e normati, viene calcolata la distanza.

Formula 3-14

dove hd è il greylevel calcolato sull'immagine centrato in d, g è il greylevel me­

dio calcolato da tutti i greylevel del training-set relativi ad un punto del modello ed

S g−1 è l'inversa della matrice di covarianza dei greylevel del punto.

Il dx rispetto al punto di partenza che ottiene la migliore distanza viene segnalato come

spostamento da effettuare per quel punto. La formula indica la necessità di calcolare l'in­

30

gij'=

gij

∑k=1

n p

∣gijk' ∣

f prof d=h d−gT Sg

−1h d−g

L'Active Shape Model applicato all'Eye Tracking: analisi di immagini

versa della matrice di covarianza e in contesti di real-time questo limita le dimensioni

che può avere un greylevel, visto l'onerosità computazionale che comporta sia il calcolo

ripetuto n volte per ogni frame di f prof d , sia il calcolo di S g−1 , anche se effet­

tuata solo una volta in fase di pre-elaborazione.

Per aumentare la stabilità dell'algoritmo, si limita il valore di dx ricavato dall'analisi, im­

pedendo che vada oltre un certo valore Dmax e dimezzandolo per valori compresi tra 0 e

Dmax.

L'ultimo problema consiste nel traslare la variazione dx sul nuovo spazio dei para­

metri db in cui il modello è stato descritto.

Si deve premettere che il modello x=xP b porta con sé un'approssimazione dovuta

al numero limitato di parametri t<n utilizzati per semplificare la gestione e la complessi­

tà computazionale.

Questa approssimazione analiticamente si può riassumere scrivendo

Formula 3-15

e considerando che PT=P−1 si ricava la relazione

Formula 3-16

Ne consegue che entro una certa approssimazione la variazione del modello si può otte­

nere dai dx ricavati dall'algoritmo analizzante moltiplicati per la trasposta della matrice

31

xd x≈xP bdb ⇒ dx≈P d b

db≈P T dx

L'Active Shape Model applicato all'Eye Tracking: analisi di immagini

contenente i primi t autovettori.

I nuovi pesi forniscono una nuova forma, diversa da quella media iniziale, ma più vicina

alla forma da ricercare nell'immagine. La nuova shape viene inviata come parametro al­

l'algoritmo analizzante, che la usa come punto di partenza per una ricerca più precisa. Il

ciclo termina quando si ha una valutazione della somiglianza inferiore ad una certa so­

glia; tale somiglianza viene valutata attraverso la distanza di Mahalanobis applicata al

modello generale, e si impone un valore minore di Dmax .

Formula 3-17

3.3 Conclusioni

Tutte le tecniche elencate sono efficaci in analisi specifiche e, quindi, devono essere uti­

lizzate o adattate alla risoluzione di problemi compatibili con esse.

Una valida scelta delle tecniche da usare per la risoluzione di problemi di computer vi­

sion presuppone uno studio delle specifiche del problema. Nel prossimo capitolo verrà

fatta l'analisi che ci ha condotto a ritenere l'Active Shape Model la tecnica più idonea ad

implementare un algoritmo di Eye Tracking.

32

Dm=b−0 P−1 b−0=∑k=1

t

bk

2

λk Dmax

L'Active Shape Model applicato all'Eye Tracking: analisi di immagini

4 Studio del sistema Eye Tracking esistente e requisiti

del progetto

Il lavoro di questa tesi ha lo scopo di definire un algoritmo di analisi delle immagini sta­

tiche campionate per l'individuazione dei punti del modello precedentemente definito.

Questo algoritmo, una volta sviluppato in base ai requisiti di seguito esposti, verrà inte­

grato nell'applicazione Eye Tracking.

4.1 Analisi del problema e dei requisiti

L'Eye Tracking è una tecnica che permette l'inseguimento dei movimenti dell'occhio at­

traverso il riconoscimento dei suoi contorni e consente di determinare la direzione verso

cui guarda l'operatore.

A tal fine si ritengono efficaci gli strumenti offerti dalla computer-vision nel riconosci­

mento della posizione dell'occhio, riducendo di conseguenza l'hardware specifico relati­

vo agli infrarossi delle soluzioni attualmente disponibili. Dal monitoraggio dei movi­

menti dell'occhio si cerca di dedurre la zona osservata dall'utente, fornendo così una tec­

nica alternativa di Eye Tracking rispetto a quelle accennate nel secondo capitolo.

Il problema dell'invasività degli strumenti di rilevazione, riscontrato in alcune tecniche

attuali, alimenta la ricerca di nuovi sistemi privi di contatti diretti con l'utente, in modo

da preservarne la libertà e la naturalezza dei movimenti.

Anche la dipendenza da ambienti studiati per ottenere una rilevazione più precisa da par­

te del sensore è una forzatura che, seppur permetta nell'immediato di conseguire alcuni

33

L'Active Shape Model applicato all'Eye Tracking: analisi di immagini

risultati, non può essere la soluzione definitiva, dovendo questa risultare indipendente

dalle variabili ambientali che circondano l'operatore.

Le caratteristiche ideali di un Eye-Tracker dovrebbero essere l' economicità, la non inva­

sività e l'indipendenza dal contesto: questo lavoro ha dato la priorità ad una soluzione

economica, garantendo la libertà di movimento dell'utente.

Innanzi tutto l'economicità del sistema prevede l'uso di personal computer che, oltre

a facilitare la fase implementativa, consentirebbe in futuro una diffusione maggiore del­

le possibili applicazioni, in quanto si tratta di comuni strumenti utilizzati dagli utenti.

Inoltre, si prevede l'utilizzo di webcam con sensori CMOS e risoluzione VGA

(640x480), poiché facilmente reperibili sul mercato ad un costo contenuto. Tuttavia

esistono sensori con risoluzioni maggiori, usati prevalentemente in campi di ricerca me­

dica o astronomica, ma in questo lavoro non sono stati presi in considerazione a causa

del loro costo elevato.

La soluzione potrebbe anche prevedere l'uso di due punti di acquisizione che, da un lato

porterebbero ad un maggior flusso di informazioni da elaborare, ma dall'altro, permette­

rebbero una maggiore probabilità di rilevare correttamente la forma dell'occhio e la dire­

zione verso cui guarda l'utente. La posizione che queste webcam possono assumere non

è un vincolo, ma è evidente la necessità di posizionarle il più possibile frontalmente e in

prossimità dell'occhio.

“Indipendenza dal contesto” significa ottenere analoghi risultati al variare di luminosità,

distanza dall'obiettivo, colore della pelle, degli occhi o altro ancora. Risulta evidente

come siano molti gli aspetti che influenzano il contesto, quindi una totale indipendenza

da esso appare un obiettivo difficile da realizzare pienamente. Si intende comunque

adottare qualche accorgimento o tecnica che possa ridurre al minimo gli effetti più rile­

34

L'Active Shape Model applicato all'Eye Tracking: analisi di immagini

vanti evidenziati in questa analisi, quali l'indipendenza dalla luminosità e dal colore del­

la pelle o degli occhi.

Un altro aspetto da considerare, dovuto alla necessità di implementare un sistema meno

invasivo, riguarda la dimensione che la forma dell'occhio occupa nell'immagine cam­

pionata. Con le attuali webcam, che forniscono immagini con una dimensione di

640x480 pixel, un occhio può occupare dal 5% al 30% di questa superficie, a seconda di

quanto sia ravvicinata la ripresa. Quindi, gran parte dell'immagine non contiene informa­

zioni significative, e l'algoritmo deve estrapolare la forma da un numero ridotto di pixel.

Si potrebbe pensare, in alternativa, ad un sistema di due webcam, di cui una dotata di

zoom e motorizzata, in modo da ottenere un'immagine dettagliata dell'occhio, senza ri­

nunciare alla non invasività della soluzione.

Attraverso i valori assegnati ad alcuni parametri, l'algoritmo deve permettere una buona

flessibilità per valutare quali siano quelli ottimali.

Considerando oltretutto la natura dei dispositivi sui quali può avere applicazione questo

algoritmo come ausilio d'interfacciamento, una volta individuata la soluzione ottimale e

verificato il funzionamento, si dovrà trovare il giusto compromesso per non monopoliz­

zare le risorse del personal computer.

Inoltre, l'applicazione dell'algoritmo in un flusso video a colori di almeno 5-10 frame al

secondo impone una velocità di elaborazione elevata e, vista la necessità di non poter

occupare eccessivamente il processore per i motivi suindicati, si ritiene opportuno svi­

luppare le parti critiche del sistema con procedure in assembler, sfruttando maggiormen­

te le potenzialità degli attuali processori. Questa specifica resta, comunque, subordinata

all'effettiva realizzazione di un sistema che soddisfi le restanti caratteristiche.

La variabilità della forma presa in esame e le specifiche indicate rendono necessario l'u­

35

L'Active Shape Model applicato all'Eye Tracking: analisi di immagini

so della teoria utilizzata nelle tecniche di analisi dell'immagine del tipo “shape

learning”.

Vista l'onerosità computazionale maggiore nell'uso di immagini a colori rispetto a quelle

mocromatiche, tra le due teorie descritte nel capitolo precedente, l'Active Appareance

Model (AAM) e l'active Shape Model (ASM), la scelta ricade su quest'ultima, in quanto

permette un conseguimento dell'obiettivo con un minore consumo di risorse della CPU.

Questa tecnica, anche se applicata in immagini monocromatiche relativamente più sem­

plici, risulta più promettente per la robustezza al rumore, alle occlusioni parziali e al fa­

cile controllo del modello.

Si deve trovare una soluzione che adotti il principio contenuto nella tecnica dell'Active

Shape Model, ma che possa al tempo stesso utilizzare le informazioni di un'immagine a

colori.

Inoltre, poiché l'iride ha un'elevata motilità, si deve pensare ad una funzione che tenga

conto di questi repentini movimenti, prevedendo eventualmente l'uso di greylevel speci­

fici alla particolare posizione assunta dall'occhio in un determinato momento.

Nell'algoritmo esposto da Cootes et al. vengono usati greylevel monocromatici monodi­

mensionali, con lunghezza prefissata e relativamente limitata, ma in questo lavoro si in­

tende valutare l'effetto di greylevel bidimensionali variabili a colori, in modo da valutare

l'efficacia dell'algoritmo alla loro variazione.

L'Eye Tracking in alcuni contesti, come l'impiego in campi militari per il puntamento di

obiettivi, deve possedere un alto grado di affidabilità, poiché da esso può dipendere la

vita di alcune persone. Da questa considerazione si deduce quanto sia importante una

valutazione oculata della scelta dei metodi e degli strumenti idonei a garantire il funzio­

namento entro limiti predefiniti. Questo lavoro, non essendo destinato a campi specifici,

36

L'Active Shape Model applicato all'Eye Tracking: analisi di immagini

verrà valutato misurando la corrispondenza tra la shape ricavata dal modello al variare

del numero di iterazioni e la shape individuata manualmente, utilizzando, sia immagini

appartenenti al training-set sulle quali le forme sono già definite, sia immagini nuove

campionate sul momento. Successivamente, dai risultati ottenuti, si potranno individuare

le potenzialità dell'algoritmo e del sistema nel suo complesso.

37

L'Active Shape Model applicato all'Eye Tracking: analisi di immagini

4.2 Struttura generale del sistema

Il sistema fisicamente è costituito da una webcam e un personal computer. L'acquisizio­

ne delle immagini a colori viene messa a disposizione del programma, senza subire par­

ticolari pre-elaborazioni.

La webcam scelta, anche se di tipo economico, permette una buona visibilità in scarse

condizioni di luminosità e ha funzioni di auto-adattamento alla luminosità esterna, in

modo da fornire un'immagine ottimale. Questo adattamento fatto automaticamente dal­

l'hardware rende il sistema più tollerante a variazioni luminose, facilitando al contempo

il processo di elaborazione. Quasi tutte le webcam in commercio, essendo studiate per

attività di videoconferenza, riescono con i loro driver ad autoregolare la luminosità e il

contrasto.

Durante la fase di acquisizione delle immagini è opportuno non introdurre errori siste­

matici nel training-set, con la presenza di una luminosità scarsa o eccessiva: un'imma­

gine molto luminosa introdurrà un offset nei valori dei pixel che può comportare una di­

38

Illustrazione 4.1

L'Active Shape Model applicato all'Eye Tracking: analisi di immagini

minuzione dell'informazione in essa contenuta; con immagini RGB e una profondità di

24 bit, i valori ottenuti sarebbero tutti prossimi al loro valore massimo, ovvero 255, e ci

sarebbe un margine minore di valutazione e memorizzazione delle caratteristiche dei

greylevel.

Nella realtà, anche usando webcam con il bilanciamento automatico del bianco e intro­

ducendo, come vedremo, algoritmi per diminuire il rumore causato da variazioni lumi­

nose, si rende necessario adottare qualche accorgimento per migliorare la percentuale di

funzionamento del sistema; per esempio la luminosità ambientale con una sorgente di

luce indiretta.

Un altro aspetto da considerare è la relativa staticità dell'operatore durante l'acquisizione

delle immagini del training-set da cui verrà elaborato un modello dell'occhio. A tal fine è

necessario limitare la mobilità del viso per completare correttamente questa fase; se si

prevede una parziale mobilità della testa, allora è opportuno aggiungere una serie di im­

magini nel training-set con queste posizioni, in modo da rendere il modello predisposto

ad esse in fase di utilizzo.

Lo studio di un algoritmo, che possa implementare una valida soluzione per la variazio­

ne dei parametri di controllo dell'Active Shape Model, verrà sviluppato basandosi a due

applicazioni esistenti: la prima “Training”, utilizzata per creare il modello per punti dal

training-set e con la quale si sono ricavati i greylevel necessari, e la seconda “Eye Trac­

king”, per elaborare e testare l'algoritmo di ricerca e valutarlo in nuove immagini acqui­

site in tempo reale.

39

L'Active Shape Model applicato all'Eye Tracking: analisi di immagini

4.2.1 Studio dell'applicazione “Training”

L'applicazione Training, preesistente allo sviluppo di questo lavoro, è stata ideata per

acquisire le immagini e picchettare le forme dell'occhio in esse presenti.

Le shape acquisite costituiscono il training-set e permettono al programma di generare il

modello relativo.

Questa versione del programma utilizza le funzioni per l'acquisizione delle immagini da

webcam implementate nella libreria VFW32.lib (Video For Windows). La soluzione

adottata prevede una ram-disk su cui vengono salvate le immagini campionate e poi ca­

ricate per le analisi successive. In questa fase di sviluppo, dovendo ricercare metodi di

analisi delle immagini con cui individuare la forma dell'occhio, si lavora su singoli fra­

me, quindi non sono richieste particolari velocità di riconoscimento, poiché già l'analisi

presuppone un tempo di elaborazione non trascurabile.

Il programma è strutturato da un thread, che smista i messaggi generati dalla finestra

40

Disegno 4.1: diagramma a blocchi del sistema

L'Active Shape Model applicato all'Eye Tracking: analisi di immagini

principale, e da un thread “Supervisore”, che gestisce tutte le attività dell'applicazione:

attivazione e impostazione webcam, creazione picchettamenti e visualizzazione dei

greylevel finalizzati alla creazione del modello.

Per comprendere l'origine del modello si riporta la figura generata dal riallineamento e

dalla successiva sovrapposizione di un intero training-set. Si distinguono chiaramente le

zone dei punti del modello su cui si concentrano i vari picchettamenti effettuati su ogni

immagine del training-set.

4.2.1.1 Metodo per la creazione del training-set

Questa applicazione, oltre a generare un training-set e il modello relativo, integra una

nuova procedura sviluppata in questa tesi per la la creazione e il salvataggio dei greyle­

vel.

Il primo passo consiste nel definire progettualmente il numero di punti e la posizione in

41

Illustrazione 4.2

L'Active Shape Model applicato all'Eye Tracking: analisi di immagini

cui collocarli nella sagoma dell'occhio. La rappresentazione grafica nel disegno 4.2 in

realtà è la media di un training-set reale, in cui sono evidenziate le posizioni e la tipolo­

gia dei punti secondo quanto specificato nel capitolo 3.

La scelta dei punti, in totale 37, ha la funzione di definire tutti gli estremi del contorno

dell'occhio, dell'iride e della pupilla. Come esposto nel terzo capitolo i tratti principali

della forma dell'occhio sono punti di tipo 1 e i rimanenti, avendo funzione di completa­

mento, sono di tipo 3 (disegno 4.2).

Prima di iniziare i campionamenti si deve stabilire:

1. dove fissare la webcam e l'eventuale sorgente luminosa;

2. la posizione della testa;

3. i punti di osservazione nelle immagini del training-set.

42

Disegno 4.2

L'Active Shape Model applicato all'Eye Tracking: analisi di immagini

La webcam si può posizionare su qualunque lato del monitor o del portatile, cercando,

però, di riprendere l'occhio completamente e in modo ravvicinato per non perdere troppi

particolari.

La sorgente luminosa, se usata, deve essere indiretta, per illuminare in modo uniforme

l'ambiente; con un livello luminoso inferiore si riesce a sfruttare tutta la sensibilità del­

l'hardware, ottenendo dei greylevel con una profondità maggiore.

In fase di test l'utente, di conseguenza, dovrà assumere una postura simile a quella del

training-set.

Rimangono da definire i punti da osservare all'interno del monitor durante le fasi di ac­

quisizione: con una griglia sovrapposta alla superficie dello schermo si ottiene un'equa

distribuzione spaziale dei punti. In fase sperimentale si è riscontrato un miglior funzio­

namento con l'introduzione nel training-set di punti di osservazione esterni alla superfi­

cie del monitor (illustrazione 4.3).

In tal modo si riesce a tollerare piccole variazioni della posizione del capo quando si os­

servano delle parti periferiche dello schermo.

Per ogni posizione stabilita dalla griglia viene acquisita un'immagine e, successivamen­

43

Illustrazione 4.3: griglia di riferimento

durante l'acquisizione del training-set

L'Active Shape Model applicato all'Eye Tracking: analisi di immagini

te, si procede al picchettamento di tutti i 37 punti presenti al suo interno. Questa fase ri­

sulta molto delicata, poiché si possono commettere errori che potrebbero in un secondo

momento inficiare il modello generale.

Una volta acquisita la forma vengono generati i greylevel per tutti punti di ogni immagi­

ne.

Tutti i gruppi dei vari punti del modello vengono normalizzati, scalati, traslati e ruotati,

per confrontarli e calcolare il modello statistico della forma.

Al termine di questa procedura si ottiene una serie di file che verranno elaborati sia dalla

applicazione Training per la generazione del modello, sia dall'applicazione Eye Tracking

per le fase di valutazione dell'algoritmo di analisi.

44

Diagramma 4.1

L'Active Shape Model applicato all'Eye Tracking: analisi di immagini

5 Verifica

5.1 Algoritmi implementati

Il lavoro svolto ha cercato un algoritmo che, dati i pesi relativi ad una forma assunta dal

modello, riesca ad individuare i migliori greylevel del training-set da utilizzare nel rico­

noscimento.

La ricerca di questa soluzione parte da una limitazione della teoria esposta da Cootes et

al. [1] che non prevede casi di elevata variabilità del greylevel: la funzione di valutazio­

ne, poiché considera per ogni punto un greylevel medio e la sua matrice di covarianza,

non discrimina tra le varie differenze che i greylevel del training-set possono avere per

ogni punto del modello.

5.1.1 Metodo di creazione dei greylevel

Il greylevel è la parte dell'immagine presa in considerazione per effettuare la classifica­

zione dei punti del modello e viene usato per riconoscere aree simili in nuove immagini.

Le relative informazioni su tutti i punti del modello permettono il riconoscimento della

forma nel suo complesso.

Il greylevel (livelli di grigio) prende il nome dal fatto che in letteratura sono state usate

prevalentemente delle immagini in bianco e nero. Nel nostro caso, trattando immagini a

colori, per greylevel si intendono i valori delle tre componenti RGB dei pixel presenti in

un intorno del punto della shape.

45

L'Active Shape Model applicato all'Eye Tracking: analisi di immagini

Per contrastare parzialmente la variabilità ambientale sono state introdotte immagini a

colori che, con una maggiore quantità di informazioni, permettono minori margini di er­

rore nel riconoscimento.

Per ogni immagine si genera un file di greylevel, in base alla lunghezza e larghezza im­

postate, campionando sulle normali relative alle rette passanti per i due punti della forma

che precedono e seguono il punto considerato (disegno 3.2). Per alcuni punti della sha­

pe, come per esempio il centro della pupilla, si stabilisce in modo arbitrario la relativa

perpendicolare, ma una volta fissata è necessario usare sempre la stessa.

46

Illustrazione 5.1

Illustrazione 5.2

L'Active Shape Model applicato all'Eye Tracking: analisi di immagini

Una volta stabilita la lunghezza dei greylevel, si procede al campionamento nell'immagi­

ne del training-set, attraverso l'introduzione di una funzione analitica di una retta passan­

te per un punto x p , y p con un determinato coefficiente angolare a0 :

Formula 5-1

si parte dal punto della shape x p , y p e si ricavano le coordinate al crescere e al de­

crescere della x.

Il problema del campionamento non è un aspetto di secondaria importanza, in quanto è

soggetto a possibili errori nel calcolo delle coordinate generate dall'algoritmo. E' impor­

tante campionare pixel consecutivi con almeno un valore delle coordinate incrementato

rispetto al pixel precedente, per evitare la presenza di tre pixel adiacenti in una regione

47

Diagramma 5.1

y=a0∗x−xpy p

L'Active Shape Model applicato all'Eye Tracking: analisi di immagini

2x2. In questo modo il greylevel è più allungato permettendo, a parità di pixel, la coper­

tura di una porzione maggiore della retta perpendicolare.

Per ottimizzare la ricerca di queste coordinate e ottenere il risultato voluto, si incrementa

la variabile indipendente x con valori inversamente proporzionali al coefficiente della

retta perpendicolare. Inoltre, si evita un possibile salto di coordinate moltiplicando per

una costante di poco inferiore a 1.

Formula 5-2

5.1.2 Lunghezza e larghezza dei greylevel

Due costanti GREY_I e GREY_E indicano quanto il greylevel debba essere lungo all'e­

sterno e all'interno rispetto alla forma globale dell'occhio. La lunghezza totale del vettore

sarà di Grey_I+GREY_E+1 pixel.

L'algoritmo permette, in questo modo, di formulare dei greylevel asimmetrici rispetto

48

Illustrazione 5.3: Esempio di campionamento corretto ed errato

X=X0,995∗1a

L'Active Shape Model applicato all'Eye Tracking: analisi di immagini

alla shape dell'occhio, indicando un valore di GREY_I diverso da GREY_E. Questa

proprietà va considerata nel caso venga cambiata la forma da riconoscere: si deve modi­

ficare la classificazione dei punti per stabilire quali generano un greylevel interno al

crescere della x, e quali ne generano uno esterno.

Lo spessore del greylevel si sviluppa nella direzione perpendicolare alla retta in cui gia­

ce il greylevel, ma per limitare la complessità computazionale si decide di considerare i

pixel adiacenti in una delle due direzioni dell'immagine. Vengono, quindi, considerati i

pixel orizzontali se il coefficiente della perpendicolare è maggiore di 1, e viceversa quel­

li verticali se il coefficiente è minore o uguale a 1.

Dalla quantità maggiore di dati considerata ci si attende un aumento della stabilità nel ri­

conoscimento del punto, ma anche un aumento del tempo computazionale complessivo.

49

Illustrazione 5.4

L'Active Shape Model applicato all'Eye Tracking: analisi di immagini

5.1.3 Greylevel derivato e normato

Durante le prime fasi di sviluppo si è formulato un algoritmo che effettuava la ricerca at­

traverso una semplice comparazione dei valori dei pixel, ma la grande variabilità delle

immagini comportava un riconoscimento più instabile e approssimativo. Si è, quindi,

implementata la procedura descritta nel terzo capitolo relativa all'ASM per la generazio­

ne dei greylevel.

Una volta campionato il greylevel si calcola il gradiente nella direzione della retta, attra­

verso la differenza fra il valore precedente e quello successivo dei pixel. Il delta ricavato

viene assegnato al pixel centrale.

Formula 5-3

In questo modo il greylevel calcolato su n pixel genera n-1 valori, ma permette all'algo­

ritmo di essere invariante a valori costanti presenti nell'immagine da analizzare, per

esempio a causa di una luce diversa nell'ambiente o per un diverso colore della pelle.

Il greylevel viene quindi normalizzato, dividendo per la somma totale di tutti i suoi valo­

ri, in modo da ottenere la forma da riconoscere invariante a fattori di scala. Questa nor­

malizzazione, però, comporta la gestione di un vettore floating-point e incrementa i tem­

pi di elaborazione.

Formula 5-4

50

gijk=I j y ik1−I j yi k−1

gij'=

gij

∑k=1

n p

∣gijk' ∣

L'Active Shape Model applicato all'Eye Tracking: analisi di immagini

Una comparazione tra i greylevel del training-set gijk'

e quelli ricavati nei frames du­

rante la fase di riconoscimento Gik'

viene svolta con l'utilizzo della distanza euclidea

Formula 5-5

dove j indica l'immagine j-esima del training-set , i indica l'i-esimo punto del modello, k

indica il pixel k-esimo del greylevel campionato nell'immagine lungo la retta perpendi­

colare alla tangente nel punto i-esimo, e np indica il totale dei valori contenuti in un

greylevel.

La funzione di valutazione complessiva risulta essere la somma delle distanze di tutti i

punti del modello N.

Formula 5-6: Funzione di valutazione Totale

5.1.4 Metodo di ricerca globale

5.1.4.1 Algoritmo di ricerca della forma

L'algoritmo di analisi riceve come parametri le coordinate dei punti che individuano la

forma definita dal modello. In una prima fase queste coordinate vengono solidalmente

traslate per la ricerca dell'area in cui si trova l'occhio; in seguito si modificano per per­

51

D=∑i=1

N

Disti .

Disti=∑k=1

n p

g ijk' −Gik

' 2

L'Active Shape Model applicato all'Eye Tracking: analisi di immagini

mettere ai punti del modello di assumere la forma specifica presente nell'immagine.

Ad ogni iterazione si campionano i greylevel sulle coordinate di questi punti.

Il calcolo del greylevel in real-time è un'operazione onerosa e dipende, sia dalle dimen­

sioni dell'area, sia dal numero di punti che definiscono la shape.

Ognuno di questi greylevel, oltre ad essere estrapolato dall'immagine, viene anche deri­

vato e normalizzato per essere comparato con i grelevel del training-set.

Queste problematiche vanno prese in considerazione al momento della realizzazione

pratica: per avere un flusso di elaborazione pari ad almeno 5-10 frame/s, si deve svilup­

pare una versione dell'algoritmo in assembler, utilizzando le istruzioni SIMD dei proces­

sori Pentium.

La procedura di comparazione utilizzata da Cootes et al.[2] crea un greylevel monocro­

matico ed unico ricavato da tutti quelli delle immagini del training-set e, con la distanza

di Mahalanobis, valuta la somiglianza con il greylevel campionato.

Questo metodo, attraverso un greylevel che tiene conto solo del valore medio per pixel e

della distribuzione normale di questi nell'insieme del training-set, risulta poco efficiente

per quei punti del modello che hanno una grande variabilità, sia in termini di posizione,

sia in termini di greylevel associati. Quindi, è necessario determinare un metodo in gra­

do di individuare un greylevel di comparazione mirato e specifico, per effettuare un rico­

noscimento più preciso della forma e della posizione dell'occhio.

La soluzione individuata utilizza al massimo l'informazione contenuta nei greylevel del

training-set, rendendoli tutti potenziali termini di paragone. La scelta del greylevel di

confronto ritenuto più idoneo avviene durante il processo di riconoscimento, in base al­

l'evoluzione della forma determinata dai parametri associati alle componenti princi­

pali: per ogni forma del training-set, si associano i parametri del modello che la descri­

52

L'Active Shape Model applicato all'Eye Tracking: analisi di immagini

vono ai relativi greylevel.

Sono state testate due strutture per realizzare questa associazione, che verranno esposte

in seguito.

5.1.4.2 Suddivisione della ricerca in due fasi

Non è stato possibile procedere nella ricerca in modo esaustivo per tutti i pixel dell'im­

magine per l'elevato onere computazionale che comporterebbe. Per ridurre questo carico

senza penalizzare eccessivamente le potenzialità dell'algoritmo si è deciso di suddividere

la ricerca in due fasi:

• la prima ha il compito di individuare la forma dell'occhio in una grande area dell'im­

magine e di determinarne in modo approssimativo la forma particolare;

• la seconda ha il compito di concentrare l'elaborazione nella ricerca più precisa della

forma.

I parametri (disegno 5.1) su cui agire per affinare la ricerca sono “x” e “y” che indicano

gli offset da aggiungere alle coordinate di tutti i punti della shape, “k” permette una ri­

cerca del singolo greylevel nell'immagine spostando la posizione di un singolo punto del

modello di qualche pixel orizzontalmente o verticalmente, “z” indica di quanto può tra­

slare il greylevel nella direzione perpendicolare alla forma per individuare la posizione

migliore e “q”, nella seconda fase dell'analisi, permette la scansione di un sottoinsieme

di greylevel tra quelli del training-set.

53

L'Active Shape Model applicato all'Eye Tracking: analisi di immagini

5.1.4.3 Fase 1: ricerca della forma nell'immagine

Come anticipato, la limitata capacità dei processori non permette la ricerca della forma

in tutta l'area dell'immagine e si è obbligati a limitarla in qualche modo.

Il problema è affrontato con l'adozione di due criteri: il primo consiste nel procedere a

passi prestabiliti nelle due direzioni dell'immagine agendo sui parametri “x” e “y” (fig.

5.1), in modo da coprire un'area maggiore senza aumentare il numero di iterazioni del­

l'algoritmo; il secondo è più un limite che un criterio, poiché si stabilisce di non esami­

nare tutta l'immagine, ma solo una zona circoscritta rispetto ad un punto indicato dall'o­

peratore.

Questa ricerca avviene per un numero determinato di iterazioni, nelle quali si riduce gra­

dualmente sia l'area presa in considerazione, sia il passo prestabilito delle variabili “x” e

“y”. Attraverso la funzione di valutazione definita in precedenza, che fornisce l'indica­

zione della somiglianza tra i greylevel del training-set e le aree dell'immagine analizzate,

si individua la zona su cui concentrare l'analisi nella successiva iterazione (disegno 5.3).

54

Disegno 5.1

L'Active Shape Model applicato all'Eye Tracking: analisi di immagini

Mentre si modifica la posizione su cui effettuare la ricerca, si determina la forma dell'oc­

chio attraverso l'utilizzo dei dati ricavati dall'analisi: per quanto non si valuti un insieme

di greylevel articolato, come nella seconda fase, l'applicazione dell'algoritmo, con il

greylevel a distanza minima, riesce in modo approssimativo ad adattarsi verso la forma

finale.

In questa prima fase sono disattivati i cicli che permettono la ricerca in un intorno dei

singoli punti del modello attraverso i parametri “k” e “z”, per non appesantire l'analisi

iniziale con delle variazioni utili solo quando si è sicuri di essere nell'area corretta.

Il numero di iterazioni da dedicare a questa ricerca viene determinato operativamente e

55

Disegno 5.3: affinamento della ricerca in una zona più ristretta

Disegno 5.2: Area coperta dall'analisi per un ciclo 3x3 e forma

parzialmente sovrapposta

L'Active Shape Model applicato all'Eye Tracking: analisi di immagini

stabilito in modo da ottenere un buon risultato parziale, senza rallentare troppo il tempo

di elaborazione totale di un frame.

5.1.4.4 Fase2: affinamento della forma

La seconda fase ha il compito di avvicinare il più possibile il modello alla forma presen­

te nell'immagine. Pertanto si ipotizza che l'area di ricerca sia sovrapposta all'area del­

l'immagine che contiene l'occhio. In questo modo i cicli associati ai parametri “x” e “y”

sono sostituiti con quelli gestiti dai parametri “k” e “q”, che permettono la variazione di

ogni coordinata dei punti del modello.

Il parametro “k” consente una ricerca locale del punto traslando il greylevel in orizzonta­

le, se il modulo del coefficiente angolare dello stesso è minore di 1, o verticale in caso

contrario.

Ora, a differenza della prima fase di ricerca, il confronto con i greylevel campionati non

avviene con un singolo elemento del training-set, ma con un insieme determinato dalle

migliori distanze che i pesi relativi hanno rispetto a quelli assunti dal modello.

Durante la fase di sviluppo si è provato a variare i coefficienti angolari delle rette su cui

effettuare i campionamenti dei greylevel, ma non ottenendo nessun beneficio in termini

di riconoscimento, si è deciso di disattivare questa parte dell'algoritmo di analisi.

Si riporta la procedura che scansiona l'immagine e restituisce la predizione della shape:

PUNTO_DOUBLE * Analisi::trovashape6bis(PUNTO_DOUBLE * vet_in, double *Pesi)// questa proc cerca i best per ogni pto e li restituisce{// definizione delle variabili locali.........................

56

L'Active Shape Model applicato all'Eye Tracking: analisi di immagini

switch(Iterazione){

Modulazione della zona da analizzare ad ogni iterazione: in funzione della variabi­le “Iterazione” si assegnano i valori per i cicli dell'analisi

case 0:xin=-32; xfin=32; dx=32; yin=-32; yfin=32; dy=32;kin=0; kfin=0; stepk=2; z1=12; z2=6;break;

case 1:.....................

case 6:yin=-1; yfin=-1; dy=1; xin=-1; xfin=-1; dx=1;kin=0; kfin=0; stepk=2; z1=12; z2=6;break;

default:xin=0; xfin=0; dx=1; yin=0; yfin=0; dy=1;kin=0; kfin=0; stepk=1; z1=6; z2=3;

break;}

Controllo che la Shape no esca dall'immaginebest1.dist=DBL_MAX;

best1.X=INT_MAX; best1.Y=INT_MAX;nXSpot =(short)Bitmap->bmiHeader.biWidth;nYSpot =(short)Bitmap->bmiHeader.biHeight;

......................................for(i=0;i<DIMENSIONE;i++){

if(vet_in_int[i].X<minx)minx=vet_in_int[i].X;if(vet_in_int[i].X>maxx)maxx=vet_in_int[i].X;if(vet_in_int[i].Y<miny)miny=vet_in_int[i].Y;if(vet_in_int[i].Y>maxy)maxy=vet_in_int[i].Y;

}recx=maxx-minx;recy=maxy-miny;

// imposto il greylevel in funzione dei Pesi associati al modelloset_greylevel2(Pesi);if(Iterazione>STEP2){// Seconda fase: disattivo i cili su X e Y e attivo quelli su K e Z

xin=0; xfin=0; dx=1; yin=0; yfin=0; dy=1;kin=-1; kfin=1; stepk=1; z1=1; z2=1;qiniz=0; qfin=NUM_FILA_BEST; stepq=1;// attivo il for per ricercare con un gruppo di greylevel

}else{// prima fase: considero solo un greylevel.

qiniz=0; qfin=1; stepq=1;}

Imposto i vari cicli per l'iterazione corrente: q per i greylevel da usare, x e y per la

57

L'Active Shape Model applicato all'Eye Tracking: analisi di immagini

traslazione di tutta la shape e k per la traslazione di ogni punto del modello nella direzione della tangente alla shapefor(q=qiniz;q<qfin;q+=stepq){

for(x=xin;x<=xfin;x+=dx){for(y=yin;y<=yfin;y+=dy){

tot_tmp.dist=0.0;for(i=0;i<DIMENSIONE;i++){tmp.dist=DBL_MAX;// per ogni pto individua il best al variare di k

L'if seguente distingue la seconda fase dalla prima: se Iterazione > STEP2 imposto il q-esimo greylevel per l'analisi altrimenti considero un solo greylevel.

if(Iterazione>STEP2){// Seconda fase: imposto il q-esimo greylevel per l'analisigrey_c= &(associa[fila_best[q]].Cella[i]);

}else{// Prima fase: imposto il q-esimo greylevel per l'analisi

grey_c= &(associa[foglia].Cella[i]);}

// se il coefficiente del greylevel è >1 la larghezza del greylevel è sulle X altrimenti sulle Y

if(fabs(grey_c->coef)>1.0){

for(k=kin;k<=kfin;k+=stepk){// per i pti della pupilla considero z1 pixel (maggiore di z2) nella direzione del grey­level altrimenti z2 pixel

if(i>23){// pti della pupillaasm_analizzaDgreyNorm3(vet_in_int[i].X+k+x,vet_in_int[i].Y+y, z1, z1, cff, &(res[i]), grey_c);

}else{// gli altri punti del modello

asm_analizzaDgreyNorm3(vet_in_int[i].X+k+x,vet_in_int[i].Y+y, z2, z2, cff, &(res[i]), grey_c);}

// se ottengo un risultato migliore memorizzo la posizione relativaif(res[i].dist<tmp.dist){

tmp.dist=res[i].dist;best_res[i].dist=res[i].dist;best_res[i].X=res[i].X;best_res[i].Y=res[i].Y;

}}// fine for(k=kin;y<=kfin;k++)

}else{

// il coefficiente del greylevel è <=1 e la larghezza del greylevel è sulle Yfor(k=kin;k<=kfin;k+=stepk){

if(i>23){// pti della pupilla asm_analizzaDgreyNorm3(vet_in_int[i].X+x,vet_in_int[i].Y+k+y, z1, z1, cff, &(res[i]), grey_c);

}else{// gli altri punti del modello

58

L'Active Shape Model applicato all'Eye Tracking: analisi di immagini

asm_analizzaDgreyNorm3(vet_in_int[i].X+x, vet_in_int[i].Y+k+y, z2, z2, cff, &(res[i]), grey_c);}if(res[i].dist<tmp.dist){

tmp.dist=res[i].dist;// la uso per entrare quando ho un nuovo minimobest_res[i].dist=res[i].dist;best_res[i].X=res[i].X;best_res[i].Y=res[i].Y;

}}// fine for(k=kin;y<=kfin;k++)

}tot_tmp.dist+=best_res[i].dist;}// fine for(i=0;i<DIMENSIONE;i++)

Dopo ogni ricerca sull'immagine, se si trova una soluzione più soddisfacente, si me­morizzano i risultati ottenuti

if(tot_tmp.dist<best1.dist){best1.X=x;//memorizzo il dx e dy del bestbest1.Y=y;best1.dist=tot_tmp.dist;dist=tot_tmp.dist;for(i=0;i<DIMENSIONE;i++){

Shape_out[i].X=best_res[i].X;Shape_out[i].Y=best_res[i].Y;

}if(Iterazione>STEP2){

foglia=fila_best[q];}

}}// fine for(y=-1;y<1;y++)

}// fine for(x=-1;x<1;x++)}//for(q=qiniz;q<NUM_FILA_BEST;q++)Iterazione++;// incremento il contatore relativo all'immagine settatareturn Shape_out;}

Come si deduce dal diagramma di flusso seguente, ad ogni iterazione si ordinano i mi­

gliori elementi del training-set che, successivamente, vengono usati nella fase di calcolo

del best-match. L'utilizzo di un maggior numero di elementi del training-set aumenta la

coerenza del riconoscimento, rendendolo quasi indipendente dal punto iniziale dell'ana­

lisi.

Di seguito si riporta uno schema esemplificativo della procedura che determina il vettore

59

L'Active Shape Model applicato all'Eye Tracking: analisi di immagini

dei migliori elementi del training-set da utilizzare nella fase di analisi dell'immagine,

mentre si rimanda al § 5.1.6.2 per la versione integrale.

60

Disegno 5.4: scelta del/dei greylevel per la successiva iterazione

L'Active Shape Model applicato all'Eye Tracking: analisi di immagini

5.1.5 Metodo di ricerca locale: determinazione della forma

Una volta indicata, tramite il mouse, la zona dell'immagine che contiene la forma da ri­

cercare, si procede al suo riconoscimento impostando il modello al valore medio, e l'ele­

mento di confronto del training-set in base ai valori dei pesi associati.

Nelle successive iterazioni la scelta del greylevel avviene come descritto nel paragrafo

5.1.4.4 e si procede nella modifica dei parametri di controllo del modello in base ai valo­

ri restituiti dalla procedura di analisi. Questi valori, ovvero le coordinate del modello in­

dividuate nella nuova immagine, non sono direttamente utilizzabili per il calcolo dei

nuovi pesi, ma vengono dapprima allineati alla shape media del modello e, in un secon­

do momento, vengono usati per calcolare il vettore degli scarti dalla shape iniziale.

Per rendere più graduale l'avvicinamento alla forma finale, minimizzando gli effetti di

eventuali riconoscimenti errati, gli scarti dx ottenuti si limitano superiormente se

maggiori di una “soglia1”, si dimezzano se minori di “soglia1” e maggiori di “soglia2”,

e si lasciano inalterati se minori di “soglia2”.

Attraverso il vettore dx si ricavano gli incrementi da applicare ai pesi del modello

con la formula

db=P T dx

e in seguito si determinano i nuovi pesi calcolando

bnuovi=b precdb

Diverse iterazioni con parziali modifiche dei parametri di controllo permettono di avvi­

61

L'Active Shape Model applicato all'Eye Tracking: analisi di immagini

cinare il modello alla posizione reale.

Questa convergenza è limitata, sia dalla variabilità ambientale delle immagini acquisite,

sia dalla difficoltà di poter rappresentare una nuova forma presente nell'immagine che

non rientra in quelle possibili previste dal training-set.

Di seguito viene riportata la procedura per il calcolo di una nuova shape da quella di par­

tenza in base alla predizione dell'algoritmo analizzante. Questa procedura è il punto in

cui si è integrato il lavoro svolto nell'applicazione Eye Tracking esistente.

Il flusso dell'algoritmo svolge le seguenti operazioni:

62

Diagramma 5.2

L'Active Shape Model applicato all'Eye Tracking: analisi di immagini

Dal diagramma di flusso si nota una caratteristica importante dell'algoritmo: l'aggiorna­

mento del modello avviene in modo incrementale, attraverso la variazione dei suoi pesi.

Il vantaggio di questa metodo rende l'algoritmo molto veloce per piccole variazioni tra

una shape e l'altra, poiché non deve adattarsi partendo dalla shape media. Questo vantag­

gio si vanifica se la differenza tra una shape e la successiva è elevata.

Viene riportato il codice della procedura che realizza quanto descritto:

void Active::Step()

{PUNTO_DOUBLE gio_baricentro;int i,j,k;double Acc,Temp;

if(gio.Iterazione==0) // preparazione per le iterazioni di ricerca{vai=true;

// trovo il baricentro della forma mediaBaricentro.X = Baricentro.Y = 0;for(i=0;i<DIMENSIONE;i++){

Baricentro.X = Baricentro.X + Media[i].X;Baricentro.Y = Baricentro.Y + Media[i].Y;

}Baricentro.X = Baricentro.X / DIMENSIONE;Baricentro.Y = Baricentro.Y / DIMENSIONE;Copy(Shape,Media);for(i=0;i<DIMENSIONE;i++){

Shape[i].X = Posizione.X - (Baricentro.X - Shape[i].X);Shape[i].Y = Posizione.Y - (Baricentro.Y - Shape[i].Y);

}gio.best1.dist=DBL_MAX;// DEBUG:gio_baricentro.X=Posizione.X;gio_baricentro.Y=Posizione.Y;gio.set_immagine(pbmfh);for(i=0;i<NUMEROAUTOVALORI;i++){

Pesitot[i]=0;}

}else // non è la prima iterazione{

// trovo il baricentro della forma ShapeBaricentro.X = Baricentro.Y = 0;

63

L'Active Shape Model applicato all'Eye Tracking: analisi di immagini

for(i=0;i<DIMENSIONE;i++){

Baricentro.X = Baricentro.X + Shape[i].X;Baricentro.Y = Baricentro.Y + Shape[i].Y;

}Baricentro.X = Baricentro.X / DIMENSIONE;Baricentro.Y = Baricentro.Y / DIMENSIONE;for(i=0;i<DIMENSIONE;i++){

Shape[i].X = Posizione.X - (Baricentro.X - Shape[i].X);Shape[i].Y = Posizione.Y - (Baricentro.Y - Shape[i].Y);

}}

// calcolo i nuovi pesi come P=P(iterazione precedente)+dpfor(i=0;i<NUMEROAUTOVALORI;i++){

Pesitot[i]+=Pesi[i];}Copy(Predizione,Shape);

//Chiamata alla procedura ANALIZZANTECopy(Predizione,gio.trovashape6bis(Shape,Pesitot));

//allineo la shape alla predizione così mantengo la roto-traslazione della predizione e calcolo gli scarti per avere i pesi. Traslo la forma media sulla predizione

Copy(Base,Predizione);// Predizione e` la forma allineanteCopy(Sorg,Shape);// Shape e` la forma da allineareAllinea();Copy(Shape,Dest);for(i=0;i<DIMENSIONE;i++) // calcolo gli scarti dx{

Scarti[i].X = Predizione[i].X - Shape[i].X;Scarti[i].Y = Predizione[i].Y - Shape[i].Y;

// Attenuo l'effetto dell'algoritmo analizzante sul calcolo del nuovo modelloif(fabs(Scarti[i].X)<8){

Scarti[i].X/=2;}else{

Scarti[i].X=4;}if(fabs(Scarti[i].Y)<8){

Scarti[i].Y/=2;}else{

Scarti[i].Y=4;}

}// calcolo i nuovi pesi dp=trasposta(P)*dx

64

L'Active Shape Model applicato all'Eye Tracking: analisi di immagini

i = 0;Acc = 0;for(j=0;j<NUMEROAUTOVALORI;j++){

i = 0;Acc = 0;for(k=0;k<DIMENSIONE;k++){

Acc = Acc + Scarti[k].X*AutoVettori[i][j];i++;Acc = Acc + Scarti[k].Y*AutoVettori[i][j];i++;

}Pesi[j] = Acc;

}// deformo il modello con i nuovi pesi dp: si calcola in un primo tempo la variazione e poi si somma alla forma di partenza

for(i=0;i<DIMENSIONE;i++)Deviazione[i].X = Deviazione[i].Y = 0;

i = 0;for(k=0;k<DIMENSIONE;k++){

Temp = 0;for(j=0;j<NUMEROAUTOVALORI;j++)

Temp = Temp + AutoVettori[i][j]*Pesi[j];Deviazione[k].X = Temp;i++;Temp = 0;for(j=0;j<NUMEROAUTOVALORI;j++)

Temp = Temp + AutoVettori[i][j]*Pesi[j];Deviazione[k].Y = Temp;i++;

}Baricentro.X = Baricentro.Y = 0;for(i=0;i<DIMENSIONE;i++){

Baricentro.X = Baricentro.X + Shape[i].X;Baricentro.Y = Baricentro.Y + Shape[i].Y;

}Baricentro.X = Baricentro.X / DIMENSIONE;Baricentro.Y = Baricentro.Y / DIMENSIONE;

// Si aggiorna la shape sommando la variazione calcolatafor(i=0;i<DIMENSIONE;i++){

Shape[i].X = Shape[i].X + Deviazione[i].X;Shape[i].Y = Shape[i].Y + Deviazione[i].Y;

65

L'Active Shape Model applicato all'Eye Tracking: analisi di immagini

}// aggiorno la pos iniziale in base alla traslazione dx e dy avuta dalla shape com­plessivamente

Posizione.X+=gio.best1.X;Posizione.Y+=gio.best1.Y;

}

5.1.6 Strutture dati per la ricerca del greylevel di confronto

La prima struttura implementata è quella ad albero con la chiave di ricerca ricavata dai

valori dei pesi del modello, nelle cui foglie sono memorizzati i greylevel relativi.

La seconda implementazione è una semplice memoria associativa, introdotta per far

fronte ai limiti e alle difficoltà di selezione del greylevel evidenziate dalla struttura ad al­

bero.

L 'obiettivo consiste nell'individuare il miglior greylevel per ogni iterazione dell'algorit­

mo, in modo da far convergere il modello alla forma presente nell'immagine.

Di seguito verranno esposti i particolari implementativi delle due strutture riportando al­

cune considerazioni sul loro funzionamento.

5.1.6.1 Struttura ad albero

Una struttura ad albero viene implementata attraverso dei nodi intermedi che determina­

no quale ramo dell'albero debba essere percorso per arrivare alla foglia desiderata. Per

motivi di efficienza, la struttura è stata implementata da un vettore i cui elementi sono le

foglie dell'albero; si decide quale foglia debba essere considerata attraverso una funzione

che dipende dai valori assunti dai pesi del modello. Quindi, concettualmente è una strut­

66

L'Active Shape Model applicato all'Eye Tracking: analisi di immagini

tura ad albero, ma l'accesso viene calcolato con una funzione che ricorda quella di una

tabella hash. Questa struttura si differenzia da una tabella hash, in quanto per il calcolo

del valore della funzione non vengono usati i greylevel stessi, ma altri dati ad essi asso­

ciati; inoltre, se due greylevel del training-set ricadono nella stessa foglia, non si crea

una lista per contenerli tutti, ma viene semplicemente calcolato il loro valore medio.

Il vettore totale è diviso in un certo numero di sotto-vettori ( ramip0 ) a cui si associa un

intervallo (passo0=2*Range[0]/ramiP0) dei valori possibili assunti dal peso0; quindi il

primo sotto-vettore è associato ai valori del Peso0 nell'intervallo (-Range[0], -Range

[0]+passo0), il secondo nell'intervallo (-Range[0]+passo0, -Range[0]+2*passo0) e così

via.

In questo modo durante la fase di riconoscimento si considera sempre il sotto-vettore as­

sociato in base al valore del peso0 .

Ogni sotto-vettore è suddiviso, a sua volta, in sotto-vettori in base al valore del peso1 e

del Range[1] relativo. Questo procedimento è ripetuto per tutti i pesi considerati nel mo­

dello.

L'albero è stato implementato con 3 livelli di sotto-vettori, per ognuno è stata associata

una componente principale (Illustrazione 5.5).

L'inizializzazione della struttura avviene con l'inserimento dei greylevel appartenenti al

training-set e, poiché non sempre si ha un training-set capace di coprire tutte le foglie

dell'albero, si ricorre ad una assegnazione dei valori in base agli elementi vicini.

Durante il riconoscimento i pesi del modello, ottenuti dall'algoritmo che gestisce la sha­

pe, vengono utilizzati per ricavare la posizione della foglia nell'albero.

67

L'Active Shape Model applicato all'Eye Tracking: analisi di immagini

Di seguito si riporta la procedura che ricava la foglia a partire dai pesi del modello:

inline int Analisi::trovafoglia( double *Pesi, unsigned long int E){

int i,j,k;/* il valore delle costanti definisce il numero di possibili ramificazioni dell'albero dei greylevel#define ramiP0 7 //=livelli del peso P1 del modello#define ramiP1 7 //=livelli del peso P2 del modello

68

Illustrazione 5.5

L'Active Shape Model applicato all'Eye Tracking: analisi di immagini

#define ramiP2 7 //=livelli del peso P2 del modello#define ramiENERGIA 7 //#define FOGLIE 349//=ramiP0*ramiP1*ramiP2#define FATTORE_L1 49//ramiP1*(ramiP2)#define FATTORE_L2 7//(ramiP2)*/temp_d=*(Pesi);temp_d+=Range[0];// per essere sempre positivo si aggiunge il fondoscalatemp_d/=passo0;// così varia tra 0 e 2*Range[0]i=(int)(temp_d);i*=FATTORE_L1;temp_d=*(Pesi+1);// prende il successivo doubletemp_d+=Range[1];// per essere sempre positivo si aggiunge il fondoscalatemp_d/=passo1;// così varia tra 0 e 2*Range[1]j=(int)(temp_d);i+=j*FATTORE_L2;temp_d=*(Pesi+2);// prende il successivo doubletemp_d+=Range[2];// per essere smpre positivo si aggiunge il fondoscalatemp_d/=passo2;// così varia tra 0 e 2*Range[2]k=(int)(temp_d);i+=k;foglia=i;if(i<0)

i=0;if(i>=FOGLIE)

i=FOGLIE-1;return i;}

Nell'applicazione di questo metodo si rileva un'instabilità nel riconoscimento e, di con­

seguenza, una variabilità della forma individuata dal modello. Questo è da attribuirsi in

parte alla variabilità ambientale e in parte ad un limite dell'algoritmo: il risultato dipende

soprattutto dal punto iniziale della ricerca della shape.

Nel corso delle iterazioni l'algoritmo non riesce ad individuare sempre il miglior greyle­

vel soffermandosi su uno di quelli intermedi. Infatti, ad ogni iterazione l'algoritmo indi­

vidua la nuova forma da cui ricavare i valori dei pesi necessari alla determinazione del

greylevel da usare nella iterazione successiva.

Il programma Training è stato fondamentale per comprendere questo comportamento, in

quanto si può seguire l'evolvere del modello ad ogni iterazione.

Inoltre, l'impossibilità di iterare la ricerca per tutti i punti dell'immagine, per ovvi motivi

69

L'Active Shape Model applicato all'Eye Tracking: analisi di immagini

computazionali, ha prodotto dei risultati non soddisfacenti; pertanto è stato necessario

individuare un metodo alternativo di scansione e valutazione dell'immagine.

5.1.6.2 Memoria associativa

La memoria associativa è una struttura più semplice con una velocità di accesso ai dati

inferiore rispetto a quella della struttura ad albero descritta nel paragrafo precedente;

essa, però, permette l'individuazione dei dati inseriti al suo interno in modo arbitrario.

Purtroppo, la struttura ad albero non si è rivelata idonea per risolvere questo problema,

quindi è stata adottata la seguente procedura:

1) nelle prime iterazioni si considera solo il migliore greylevel determinato dai pesi as­

sociati alla forma individuata nell'iterazione precedente;

2) nelle successive iterazioni si considerano i primi greylevel in base alla distanza che i

pesi del modello hanno rispetto a quelli del training-set: tra tutte le distanze calcolate

vengono prese le migliori N e i relativi greylevel sono utilizzati per la ricerca della

forma.

Di seguito si riporta la procedura integrale che determina il vettore dei migliori elementi

del training-set da utilizzare per la fase di analisi dell'immagine.

bool Analisi::set_greylevel2( double *Pesi_a){int i,j;// trovo l'elemento della memoria associativa con distanza minore rispetto ai pesi ricevutifloat temp,dist, bestdist;int best_elem,k,esci,z;if(Iterazione>STEP2){// FASE 2 per le iterazioni successive si cerca il best al veriare del greylevel for(k=0;k<NUM_FILA_BEST;k++){

70

L'Active Shape Model applicato all'Eye Tracking: analisi di immagini

fila_best_dist[k]=FLT_MAX; }// calcolo la distanza tra i pesi del modello e i pesi degli elementi del training-set for(i=0;i<NumeroFileGreylevel;i++){ dist=0; for(j=0;j<NUMEROAUTOVALORI;j++){ temp=(float)(associa[i].Pesi[j]-Pesi_a[j]); temp*=temp; dist+=temp; } esci=0; for(z=0;((z<NUM_FILA_BEST)&&(!esci));z++){ if(dist<fila_best_dist[z]) {// ho trovato un greylevel con una distanza dai pesi del modello valida quindi scalo di uno i best successivi

for(k=NUM_FILA_BEST-1;k>z;k--){ fila_best[k]=fila_best[k-1];

fila_best_dist[k]=fila_best_dist[k-1];}fila_best[z]=i; // memorizzo l'indice relativo al greylevel nel vettore dei migliori qfila_best_dist[z]=dist;esci=1;// interrompo la scansione del “for z” perché l'elemento i-esimo è stato inserito

} } } bestdist=fila_best_dist[0]; best_elem=fila_best[0];// è il miglior elemento della matrice.........}else // Fase =1 e quindi si individua solo il migliore dei greylevel del training-set{ bestdist=FLT_MAX; for(i=0;i<NumeroFileGreylevel;i++){ dist=0; for(j=0;j<NUMEROAUTOVALORI;j++){ temp=(float)(associa[i].Pesi[j]-Pesi_a[j]); temp*=temp; dist+=temp; } if(dist<bestdist){ bestdist=dist; best_elem=i;// è il miglior elemento della matrice } } foglia=best_elem;// var gloale per debug e visione del numero in esecuzione

71

L'Active Shape Model applicato all'Eye Tracking: analisi di immagini

}return true;}

Con N greylevel la ricerca non si sofferma su una zona dell'immagine o su una forma del

modello errata, riuscendo a convergere costantemente alla posizione e forma corretta.

La grande variabilità a cui è soggetto il riconoscimento di un pattern nell'immagine ha

reso necessario l'utilizzo di un insieme più ampio di elementi del training-set.

Questo metodo ha permesso una diminuzione della distanza finale ricavata dalla funzio­

ne di valutazione fino al 75%, ma ha aumentato il tempo totale di elaborazione in modo

proporzionale al numero di elementi del training-set presi in considerazione.

Risulta evidente come questo parametro sarà oggetto di compromesso tra la precisione

del riconoscimento e la velocità di elaborazione desiderata.

La funzionalità è stata verificata con il programma Training che ha permesso di valutare

il risultato dell'analisi passo passo: sono stati svolti dei test con immagini del training-set

per verificare se l'algoritmo sia in grado di utilizzare il corretto greylevel e, in seguito, su

nuove immagini per verificare la capacità reale di riconoscimento.

72

L'Active Shape Model applicato all'Eye Tracking: analisi di immagini

Attraverso l'uso di immagini del training-set si è stata valutata la capacità di individuare

correttamente il greylevel da utilizzare per il riconoscimento dei contorni della forma.

Nel caso più sfavorevole, ossia quando l'algoritmo non riesce ad utilizzare il greylevel

associato all'immagine da analizzare, la procedura adotta comunque il greylevel di una

shape “vicina”, in basa alla griglia usata nella creazione del training-set.

5.1.7 Sviluppo del codice critico in Assembler

Durante la fase di sviluppo, l'imponente mole di dati da elaborare ha reso necessario po­

tenziare la velocità di elaborazione, ricorrendo ad una implementazione di queste proce­

dure in assembler. Inoltre, la disponibilità negli attuali processori di istruzioni specializ­

zate per operazioni semplici e ripetute su grandi quantità di dati ha favorito la ricerca di

questa soluzione.

Il linguaggio di programmazione C++ permette di integrare facilmente queste istruzioni

attraverso l'uso della macro _asm{.........}. Nella fase iniziale è stato necessario un up­

grade del compilatore integrato nel Visual Studio al fine di supportare “l'assembler inli­

ne”.

5.1.7.1 Set di istruzioni MMX e SSE

I processori dei personal computer nel corso degli anni si sono evoluti aumentando il

grado di parallelismo per eseguire maggiori elaborazioni nell'unità di tempo. Oggigiorno

sono integrati due “core” all'interno dello stesso package, rendendo di fatto i personal

computer degli elaboratori multiprocessore.

73

L'Active Shape Model applicato all'Eye Tracking: analisi di immagini

Nel corso di questa evoluzione, quando i processori elaboravano un'istruzione alla volta

attraverso un upgrade dell'Aritmetic Logic Unit (ALU), sono state introdotte delle istru­

zioni particolari che permettono di svolgere la stessa operazione su un gruppo di dati

contemporaneamente. Questo set di istruzioni rientra in un gruppo denominato con l'a­

cronimo S.I.M.D. , cioè Single Intruction Multiple Data: grazie ad esse si possono elabo­

rare grandi quantità di dati, sia nel formato intero, sia in quello floating-point.

L'utilizzo di queste istruzioni comporta la conoscenza dettagliata della struttura interna

del processore, pertanto sono stati consultati i databook della Intel sulle potenzialità e i

limiti di queste istruzioni. Per esempio un aspetto da considerare, quando si vuole imple­

mentare una procedura in assembler, è la sovrapposizione fisica dei registri utilizzati

dalla Floating Point Unit (st0 – st7) con quelli usati dalle istruzioni SIMD sugli interi

(mmx0 – mmx7). Questa sovrapposizione non impedisce l'uso contemporaneo di en­

trambi i set di istruzioni, ma comporta un tempo di ritardo necessario per lo switching

tra i due gruppi di registri. Quindi, l'utilizzo simultaneo di queste istruzioni potrebbe ri­

durre i vantaggi ricercati.

I codici mnemonici impiegati per indicare uno degli otto registri delle istruzioni SIMD

intere sono mmx0 – mmx7, e i 64 bit che li compongono riescono ad elaborare fino ad 8

byte alla volta o, se raggruppati diversamente, 4 interi a 16 bit.

74

L'Active Shape Model applicato all'Eye Tracking: analisi di immagini

Con questi registri è possibile effettuare operazioni aritmetiche e logiche su gruppi di 8

byte, oppure 4 word o 2 doubleword a seconda delle istruzioni usate. In modo analogo

alle elaborazioni eseguite dalla Floating Point Unit, questi registri sono indirizzabili

come in uno stack e, quindi, quello in cima (mmx0) è interessato nella maggior parte

delle operazioni previste dal set di istruzioni. Questa struttura comporta il caricamento

preventivo nei registri degli operandi necessari per eseguire i calcoli.

ESEMPIO:

label3_p: fild X ;carica st0

fld st(2) ;metto st(2) in st(0)

frndint ; arrotondo st(0)

-

L'impiego del set di istruzioni STREAMING SIMD EXTENSIONS (SSE) comporta

l'introduzione di otto registri a 128 bit ( xmm0 – xmm7 ) con i quali si riescono a gestire

4 numeri in floating point nella notazione a 32 bit, oppure un floating point a 64 bit nella

parte meno significativa del registro.

Un'altra caratteristica importante di questi registri è la loro totale indipendenza da quelli

della FPU e da quelli “general-purpose”, consentendo un indirizzamento diretto con i

codici mnemonici XMM0 – XMM7.

75

L'Active Shape Model applicato all'Eye Tracking: analisi di immagini

Le operazioni in parallelo che si possono compiere su numeri reali floating point miglio­

rano il processore come strumento di elaborazione per grandi quantità di dati scientifici.

Questa tesi ha utilizzato le istruzioni SSE per calcolare in real time dei greylevel derivati

e normalizzati, confrontandoli con i corrispondenti greylevel del training-set.

Per l'impiego delle istruzioni SSE si è proceduto per gradi e, in alcuni passaggi, è stato

necessario rivedere il flusso di elaborazione per adattarlo alle caratteristiche della pro­

grammazione assembler: questo ha comportato uno studio del codice scritto in linguag­

gio C++ relativo all'analisi dell'immagine. All'interno del codice sono state individuate

le parti critiche da ottimizzare, di conseguenza l'algoritmo è stato modificato nel seguen­

te modo:

76

L'Active Shape Model applicato all'Eye Tracking: analisi di immagini

1. raggruppamento di tutto il codice che in qualche modo svolgeva elaborazioni

dell'immagine (pre-elaborazione, confronto, post-elaborazione);

2. riscrittura del codice per ottenere un'unica procedura generalizzata in grado di

elaborare i greylevel per tutti i punti del modello e trasformare in assembler una

sola funzione;

3. riorganizzazione delle operazioni svolte nell'algoritmo per favorire l'uso delle

istruzioni SSE sui dati.

Una volta riorganizzato il codice di alto livello, si è cercato di impiegare il più possibile

i registri interni, per limitare l'accesso alla memoria esterna e rendere, quindi, perfor­

mante la procedura: i loop interni e le variabili più usate sono state assegnate ai registri

general-purpose liberi.

Al fine di disporre del numero massimo di registri ed evitare conflitti con il compilatore

C++ la procedura in assembler, come prima operazione, effettua un salvataggio dello

stato della macchina nello stack:

pushad

fnstcw control_word //{Save Current Control Word}

finit ;The FPU control word is set to 037FH (round to nearest, all exceptions ma­

sked, 64-bit precision).

I registri vengono poi ricaricati al termine della procedura:

finit ; serve per azzerare lo stack della fpu e riportare le condizioni iniziali

fldcw control_word //{Restore Original Control Word}

popad

77

L'Active Shape Model applicato all'Eye Tracking: analisi di immagini

5.2 Valutazioni sperimentali e possibili sviluppi

Prima di riportare le modalità di valutazione dell'algoritmo è necessario descrivere il

metodo che esso impiega per valutare la presenza della shape nell'area dell'immagine

analizzata.

5.2.1 Valutazione dell'efficacia del riconoscimento: distanza eu­

clidea

La teoria di Cootes et al.[1] utilizza nel confronto dei greylevel la distanza di Mahalano­

bis, ipotizzando una distribuzione normale dei dati; essa, per ogni punto del modello,

misura la probabilità di avere il greylevel, ricavato dall'immagine reale, equivalente a

quello medio calcolato dal training-set.

Nel nostro caso il PDM ha una variabilità intrinseca rispetto alla forma media dovuta al

movimento della pupilla. Di conseguenza i greylevel del modello avrebbero, in quei

punti, una distribuzione normale con una varianza elevata in quanto ricavata da valori

molto variabili.

La funzione di valutazione deve riconoscere corretto un greylevel diverso rispetto alla

media, a causa della pupilla a destra o sinistra.

Quindi, la “mahalanobis distance”, applicata al riconoscimento dell'occhio, fornisce una

stima meno precisa di quella calcolata con un greylevel che tiene conto della posizione

della pupilla e delle palpebre.

Occorre una funzione più generica non vincolata al valore medio, che possa essere uti­

lizzata in modo più specifico sui vari valori del training-set.

78

L'Active Shape Model applicato all'Eye Tracking: analisi di immagini

La distanza euclidea considera i singoli greylevel del training-set e li confronta con quel­

li ricavati dall'immagine.

Nella seconda fase dell'analisi si effettua il confronto con un numero maggiore di greyle­

vel del training-set, selezionati attraverso il calcolo della distanza tra i corrispondenti

pesi e quelli del modello.

79

Illustrazione 5.6 stesso punto del modello: variazione

del greylevel al variare della posizione dell'iride

L'Active Shape Model applicato all'Eye Tracking: analisi di immagini

5.2.2 Valutazione del funzionamento

Nella valutazione dell'algoritmo sviluppato è opportuno considerare tutti i fattori che in­

cidono sulle prestazioni, come per esempio la robustezza del training-set, testando il ri­

conoscimento su individui diversi o variando le condizioni ambientali.

Le principali limitazioni introdotte nell'algoritmo, per renderlo compatibile con i vincoli

temporali, determinano il numero di iterazioni possibili, il punto di partenza dell'analisi

e il numero di greylevel da considerare.

Vista la fase iniziale di sviluppo di questa ricerca, ci limiteremo ad una verifica dell'al­

goritmo al variare dei fattori interni e non ci soffermeremo su altri fattori che sarebbe

prematuro considerare in questa fase.

La valutazione dell'algoritmo consisterà nel misurare la distanza tra i punti della shape,

indicati manualmente nell'immagine, e quelli che l'algoritmo individua al variare dell'ite­

razione e del numero di greylevel considerati.

Nel corso dello sviluppo dell'algoritmo è stata rilevata una dipendenza del risultato dal

punto di partenza dell'analisi, quindi, si è ritenuto opportuno eseguire diversi test per

quantificare questa dipendenza.

Le due tabelle seguenti riportano i valori assegnati ai parametri più significativi dell'al­

goritmo: sono stati svolti 8 test, ciascuno di essi ha valutato l'algoritmo con sei posizioni

di partenza casuali fissate in un intorno dell'occhio da individuare.

I cinque test iniziali hanno in comune una prima fase di ricerca con una griglia di scan­

sione della zona da analizzare più fitta. Questo tipo di scansione comporta un tempo di

ricerca maggiore, ma aumenta la precisione di posizionamento della shape.

80

L'Active Shape Model applicato all'Eye Tracking: analisi di immagini

Gli altri test 6-7-8, ricercano l'occhio con una griglia di scansione meno fitta (-32, +32,

passo 32).

A loro volta, i test appartenenti ai due gruppi si differenziano per il numero di greylevel

del training-set da utilizzare nella seconda fase, 20 o 50, e per il loro spessore, 1 o 3.

La valutazione dell'efficacia dell'algoritmo in generale sarà misurata dalla capacità di

convergenza della shape del modello con quella reale nell'immagine, calcolando la som­

ma delle distanze tra i corrispondenti punti.

Di seguito sono riportate le immagini iniziali e finali relative ad una delle sei prove ef­

fettuate per ognuno degli 8 test svolti.

81

Test 1

Test 2

L'Active Shape Model applicato all'Eye Tracking: analisi di immagini

82

Test 3

Test 4

Test 5

L'Active Shape Model applicato all'Eye Tracking: analisi di immagini

83

Test 6

Test 7

Test 8

L'Active Shape Model applicato all'Eye Tracking: analisi di immagini

Vengono riportate le tabelle con il dettaglio dei test effettuati e i valori assegnati alle va­

riabili dell'algoritmo. Per chiarezza la seconda riga delle tabelle indica i valori dei cicli

for per le traslazioni dx e dy nella fase1 impiegata per le prime 3 iterazioni (iter0-2); la

terza riga indica i valori per le variabili q e z nelle iterazioni 3-13.

Variabili \ test test1 test2 test3 test4 test5

Fase1 iter0-2 for x e y (+dv,-dv,step)=(-30,+30,10),(-5,5,5),(-2,2,2) Fase2 iter3-13 for q e z (+dv,-dv,step)=(-2,2,2) z1=6 z2=5spessore greylevel 1 1 1 3 3

lunghezza greylevel 41 41 41 41 41

numero shape 2a fase(fase2 dopo 3 iterazioni)

50 20 20 20 50

for su x e y 2a fase no no si no noUso Proc. ASM si si si si sinumero prove

(pto iniziale diverso)6 6 6 6 6

shape test 53 53 53 53 53numero iterazioni 13 13 13 13 13Dist. media finale 71,12 117.55 107,39 119,73 87,64

T per 13 iterazioni (sec) 3,495 1,552 12,048 3,785 8,903

84

L'Active Shape Model applicato all'Eye Tracking: analisi di immagini

Variabili \ test test6 test7 test8

Fase1 iter0-2 for x e y (+dv,-dv,step)=(-32,+32,32),(-16,16,16),(-8,8,8),(-4,4,4) Fase2 iter3-13 for k e z (+dv,-dv,step)=(-2,2,2) z1=6 z2=5spessore greylevel 3 1 1

lunghezza greylevel 41 41 41numero shape 2a fase

(fase2 dopo 4 iterazioni)=q50 50 50

for su x e y 2a fase no no noUso Proc. ASM si si nonumero prove

(pto iniziale diverso)6 6 6

shape test 53 53 53numero iterazioni 13 13 13Dist. media finale 129,41 494,17 126,2

T per 13 iterazioni (sec.) 8,032 3,105 3,185

Le condizioni che hanno dato il miglior risultato sono relative al test1, ma per compren­

derne le ragioni è opportuno considerare i due test migliori, test1 e test5, perché hanno

in comune una fitta rete iniziale di ricerca e l'uso di un maggior numero (50) di greylevel

del training-set nella seconda fase. I test 6-7-8, pur avendo anch'essi 50 greylevel del

training-set per la fase2 , non hanno dato buoni risultati per la minore precisione della

griglia utilizzata nella ricerca della shape iniziale.

Da queste considerazioni si può concludere che per ottenere un buon risultato è necessa­

ria una prima fase di ricerca, che posizioni correttamente la shape nell'immagine, e una

seconda fase di adattamento, che utilizzi un numero sufficiente di elementi del training-

set. Inoltre, i tempi di ricerca della prima fase possono essere annullati grazie all'adatta­

mento incrementale della shape utilizzando quella ricavata nell'iterazione precedente. In

tal modo è possibile individuare la forma dell'occhio direttamente con la seconda fase

dell'algoritmo.

85

L'Active Shape Model applicato all'Eye Tracking: analisi di immagini

I grafici riportati descrivono l'andamento delle distanze tra la shape del modello e quella

reale al variare del numero di iterazioni. Poiché sono state effettuate sei prove per cia­

scun test, si riportano nel grafico le medie dei loro valori.

Come si nota il test7 ha un valore medio a regime anomalo, ma non corrisponde ad un

valore rappresentativo. Infatti, analizzando le sei prove del test7 singolarmente, si osser­

va una discreta convergenza per alcuni, mentre per gli altri una forte divergenza: la posi­

zione di partenza è la causa del problema, in quanto è l'unica differenza esistente tra le

sei prove svolte.

Di seguito viene riportata la tabella dettagliata delle prove e la relativa media.

86

Disegno 5.5: grafico delle medie delle sei prove per gli 8 test effettuati

1 2 3 4 5 6 7 8 9 10 11 12 130

50100150200250300350400450500550600650700750800850900

Confronto

test1test2test3test4test5test6test7test8

iterazioni

dist

sha

pe

L'Active Shape Model applicato all'Eye Tracking: analisi di immagini

Per visualizzare meglio graficamente la differenza tra i vari test, si escludono i valori

medi relativi all'iterazione iniziale e tutti i valori del test7 che risultano anomali rispetto

agli altri.

87

Disegno 5.6: test7 - le sei prove e la loro media

posiz1 posiz2 posiz3 posiz4 posiz5 posiz6 Media0 1441,81 1037,25 1043,33 960,67 1492,66 973,76 1158,251 340,36 798,26 1043,81 2094,18 416,86 491,93 864,232 339,81 236,84 958,74 1474,4 420,29 371,27 633,563 259,07 173,62 1251,18 1182,43 111,66 234,73 535,454 165,03 175,87 1241,76 1020,97 196,55 243,69 507,315 149,06 167,08 1241,15 1022,88 178,69 226,54 497,566 144,3 165,01 1241,27 1023,35 172,22 216,99 493,867 139,21 164,71 1241,43 1024,01 170,58 216,78 492,798 138,73 164,1 1242,12 1024,83 170,41 211,02 491,879 138,66 163,42 1242,98 1026,6 171,53 211,19 492,410 138,65 163,19 1243,56 1026,66 173,56 211,81 492,9111 138,57 163,13 1243,98 1028,23 174,21 212,8 493,4912 138,39 163,1 1244,44 1028,45 174,83 214,06 493,8813 138,85 163,1 1244,81 1029,46 175,34 213,48 494,17

1 2 3 4 5 6 7 8 9 10 11 12 130

50

100

150

200

250

300

350

400

450

500

550

600

Confronto 1-2-3-4-5-6-8

test1test2test3test4test5test6test8

iterazione

dist

sha

pe

L'Active Shape Model applicato all'Eye Tracking: analisi di immagini

Dall'analisi dei grafici delle medie delle sei prove effettuate per ogni test, si rileva la ra-

pida convergenza della shape a quella reale: è possibile interrompere il processo di adat­

tamento della forma dell'occhio alla quinta o sesta iterazione, poiché non si rilevano va­

riazioni apprezzabili in quelle successive.

Inoltre, si evince che il primo e il quinto sono i due test migliori e si differenziano sol­

tanto per lo spessore del greylevel. Diversamente da quanto previsto in fase di analisi del

problema, si nota che ad un aumento del numero di pixel considerati diminuiscono le

prestazioni in termini di riconoscimento finale della forma.

Per evidenziare il buon funzionamento visualizzato graficamente nei test 1 e 5 si riporta­

no i dati raccolti in ognuna delle sei prove effettuate e la loro media.

88

Disegno 5.7: test1 - le sei prove e la loro media

posiz1 posiz2 posiz3 posiz4 posiz5 posiz6 Media0 1364,89 1117,26 1062,23 1340,35 933,45 911,41 1121,61 208,12 270,69 91,79 340,61 142,63 198,87 208,782 83,7 103,15 85,89 120,11 105,64 68,21 94,453 85,61 84,45 81,34 109,06 95,83 83,69 904 68,65 75,05 70,69 89,66 81,01 73,16 76,375 63,01 71,51 67,65 81,5 75,15 72,19 71,836 60,61 69,21 67,56 77,11 72,38 72,27 69,867 59,5 70,98 68,02 75,39 73,43 74,11 70,248 59,11 72,36 67,66 74,17 73,57 75,05 70,329 59,03 73,03 67,55 74,08 73,96 75,11 70,4610 58,88 73,55 67,5 74,79 74,2 75,41 70,7211 58,82 73,83 68,02 75,2 74,33 75,72 70,9912 58,8 74,03 67,73 75,48 74,4 75,89 71,0613 58,8 74,09 67,58 75,85 74,43 75,99 71,12

L'Active Shape Model applicato all'Eye Tracking: analisi di immagini

89

Disegno 5.8: test5 - le sei prove e la loro media

posiz1 posiz2 posiz3 posiz4 posiz5 posiz6 Media0 1463,42 1063,07 1060,34 1503,79 1011,06 1052,76 1192,411 462,56 106,02 76,82 412,8 89,67 265,28 235,522 206,6 117,67 70,21 262 93,28 100,5 141,713 144,24 111,35 87,41 172,62 89,75 90,48 115,974 120,45 89,73 73,98 176,14 72,19 68,63 100,195 113,49 75,7 71,58 164,89 65,62 62,91 92,376 112,01 66,84 71,58 169,33 64,71 63,22 91,287 111,33 64,38 72,68 156,05 65,13 63,44 88,838 111,71 63,65 74,1 152,42 65,67 63,93 88,589 110,36 63,76 74,63 149,08 66,04 63,95 87,9710 111,82 64,44 75,05 148,13 66,25 64,23 88,3211 110,58 64,9 75,28 146,32 66,35 64,15 87,9312 111,63 65,35 75,4 143,73 66,41 64,11 87,7713 111,37 65,55 75,47 142,9 66,44 64,09 87,64

L'Active Shape Model applicato all'Eye Tracking: analisi di immagini

6 Conclusioni

Questa tesi ha realizzato un algoritmo di analisi per immagini statiche a colori finalizza­

to alla ricerca dei contorni dell'occhio, successivamente integrato nel programma di Eye

Tracking esistente per seguirne i movimenti.

Partendo dall'Active Shape Model di Cootes et al., è stata dimostrata la convergenza del­

l'algoritmo verso la forma da riconoscere rispetto ai limiti stabiliti nella fase di valuta­

zione. Tuttavia, la soluzione individuata considera tutti i greylevel del training-set per

la scelta del sottoinsieme da utilizzare nell'analisi dell'immagine.

Sono state testate due strutture dati per la memorizzazione della relazione tra i coeffi­

cienti delle componenti principali del modello ( PCA ) e i valori dei greylevel relativi a

ciascun punto della forma.

La teoria di Cootes et al. si applica su immagini monocromatiche con forme variabili

che hanno dei greylevel relativamente uniformi nei contorni della shape al variare della

forma stessa. Con questo lavoro si è dimostrata l'applicabilità del metodo anche al rico­

noscimento di forme con greylevel molto variabili, come quelli dell'occhio, attraverso

l'uso di immagini a colori. La soluzione individuata si è quindi differenziata dalla teoria

di base per l'uso di greylevel specifici, soprattutto per la grande variabilità degli stessi.

La determinazione del miglior insieme di elementi del training-set, da usare per ricono­

scere correttamente i punti della forma, è il problema principale della fase di riconosci­

mento. L'applicazione Training ha reso possibile non soltanto la valutazione del funzio­

namento dell'algoritmo sviluppato, ma soprattutto ha permesso di ottenere la soluzione

finale corretta.

I risultati dei test di valutazione hanno dimostrato un miglioramento delle prestazioni

90

L'Active Shape Model applicato all'Eye Tracking: analisi di immagini

aumentando il numero di elementi del training-set impiegati: usando N elementi, al pas­

sare del numero di iterazioni, il modello può evolvere in N diverse direzioni, compresa

quella della forma dell'occhio in esame.

Lo spessore dei greylevel durante l'analisi è un parametro da cui ci si aspettava un mi­

glioramento delle prestazioni all'aumentare dello stesso, invece, l'algoritmo è meno pre­

ciso nell'individuazione dei contorni dell'occhio utilizzando elementi del training-set

con greylevel più larghi.

Esistono molte variabili esterne non considerate che probabilmente riducono lo spazio di

applicabilità di questo algoritmo, come il variare dell'utente o del contesto in cui si cam­

piona l'immagine e, in questa direzione, si potranno sviluppare versioni migliori dell'al­

goritmo.

Un altro aspetto su cui è possibile introdurre dei miglioramenti riguarda la determinazio­

ne della posizione dell'occhio: attualmente è necessario indicare con il mouse la zona in

cui è presente l'occhio e, come dimostrato dai test di verifica, il risultato finale dipende

molto dall'individuazione corretta dell'area in cui si trova. La ricerca di un algoritmo ge­

netico può essere una valida soluzione al problema, peraltro già sperimentata in altri stu­

di associati all'Eye Tracking.

Per definizione il training-set deve essere rappresentativo di tutta la popolazione dei pos­

sibili pattern riconoscibili, quindi l'adattamento a nuovi pattern non rappresentati dal

training-set non può che essere parziale. Questo ostacolo in realtà è solo apparente, in

quanto è sufficiente aumentare il numero di pattern del training-set per rendere il model­

lo più rappresentativo delle forme possibili.

Secondo il principio delle memorie associative si richiamano informazioni attraverso al­

tre informazioni e, nel nostro caso, i pesi del modello sono i dati in ingresso e i greylevel

91

L'Active Shape Model applicato all'Eye Tracking: analisi di immagini

ad essi associati sono i dati in uscita. Ne consegue che un possibile miglioramento del­

l'algoritmo sviluppato può realizzarsi attraverso l'applicazione di reti neurali per la deter­

minazione del sottoinsieme di greylevel da utilizzare nella fase2 dell'algoritmo.

Attualmente, la scelta degli elementi del training-set avviene in base alle distanze che i

relativi pesi hanno da quelli del modello, ma si potrebbe ottenere un sottoinsieme otti­

mizzato attraverso una rete neurale che abbia come input i pesi del modello, il numero di

iterazione o altri fattori da cui può dipendere questa scelta.

Infine questo programma, basato su un algoritmo di analisi e uno di gestione del model­

lo della forma, può essere utilizzato più in generale per il riconoscimento di un'ampia

classe di forme. Tuttavia non può essere utilizzato in quelle situazioni in cui sia neces­

sario un riconoscimento di forme a priori non conosciute, poiché non è possibile creare

il training-set relativo.

Il lavoro svolto si è inserito in un percorso più ampio che mira alla realizzazione di

software per favorire l' interazione uomo-computer; le potenzialità di questo progetto

hanno reso lo studio stimolante e gratificante.

92

L'Active Shape Model applicato all'Eye Tracking: analisi di immagini

7 Bibliografia

1. T.F. Cootes, C.J. Taylor, D.H. Cooper, and J. Graham: Active Shape Model –

Their Training and Application, Computer Vision and Image Understanding

Vol. 61, No.1, January, pp.38-59, 1995.

2. T.F. Cootes, A. Hill, C.J. Taylor and J. Haslam: The use of Active Shape Model

For Locating Structure in medical Images, Image and Vision Computing,

Vol.12, No.6, July 1994, pp.335-366.

3. T.F. Cootes, C.J. Taylor: Active Shape Model Search using Local Grey-Level

Models : A Quantitative Evaluation, Proc. British Machine Vision Conference

1993. BMVA Press, 1993, pp.639-648.

4. T. F. Cootes, G. J. Edwards and C. J. Taylor, Active appearance models, In Proc.

European Conf. on Computer Vision, volume 2, pages 484–498. Springer,

1998.

5. Davide Maltoni, Appunti del Corso di “Pattern Recognition”, 2000-2001 –

Università Bologna

6. A. A. Nielsen.

Analysis of Regularly and Irregularly Sampled Spatial, Multivariate, and Multi-

temporal Data, PhD thesis, Institute of Mathematical Modelling, Technical Uni­

versity of Denmark, Lyngby, 1994.

7. M. Kass, A. Witkin, and D. Terzopoulos, Snakes: Active contour models, Inter­

national Journal of Computer Vision. v. 1, n. 4, pp. 321-331, 1987.

8. A.L. Yuille, P.W. Hallinan, and D.S. Cohen. Feature Extraction from Faces

Using Deformable Templates. International Journal of Computer Vision, 99-111,

93

L'Active Shape Model applicato all'Eye Tracking: analisi di immagini

1992.

9. U. Grenander and D. M. Keenan, Towards Automated Image understanding, J.

Appl. Stat., 16 (1989).

10. Wikipedia.org per le definizioni di Eye Tracking, Human Computer Interaction,

Computer Vision e Pattern recognition

11. IA-32 Intel® Architecture Software Developer's Manual, Volumi 1-2A-2B: Basic Ar­

chitecture-Instruction Set Reference

94