Relatore: Prof. G.Haus

Studente: Stefano Pagnoncelli

Correlatore: Dott. I.Pighi

 

 

Riassunto di tesi di laurea in Scienze dell'Informazione
Anno Accademico 1994/95

 

Un interprete di caratteristiche visuali per la sincronizzazione di processi sonori.

 

 

Il presente lavoro di tesi, svolto presso il Laboratorio di Informatica Musicale del Dipartimento di Scienze dell'Informazione dell'Università degli Studi di Milano, é stato rivolto alla progettazione e alla realizzazione di un interprete di caratteristiche visuali per la generazione ed il controllo di processi sonori.
Lo scopo del progetto é stato quello di estrarre, da un filmato di un viso, le caratteristiche e i parametri relativi agli occhi e al loro movimento da poter utilizzare come input di controllo per la gestione di altri processi, siano essi sonori o di altra natura.
Durante la fase di documentazione si é riscontrato che gli algoritmi di riconoscimento applicati a volti presenti in letteratura utilizzano generalmente tecniche statistiche basate su modelli predefiniti, oppure prevedono l'interazione da parte dell'utente tramite il posizionamento di marker sulle strutture da riconoscere.
Visto che le specifiche del progetto consistevano nella determinazione automatica delle caratteristiche visuali di filmati reali, caratterizzati da una notevole presenza di rumore e assoluta generalità in termini di dimensioni dell'immagine e delle strutture presenti, non sono state prese in considerazione le tecniche sopra indicate.
E' stato quindi realizzato un algoritmo ad hoc utilizzando la teoria dei sistemi di riscrittura, in particolare gli L-Sistemi bidimensionali.
La sua implementazione su piattaforma Macintosh ha portato alla creazione dell'applicazione denominata GLIMPSE, sviluppata in linguaggio C, la quale opera sessioni di riconoscimento automatico su filmati digitalizzati in formato Movie QuickTime ed elaborandone frame per frame restituisce un file contenente i dati relativi ai parametri estratti.
L'elaborazione é strutturata in più fasi, ognuna delle quali genera o modifica la struttura dati in input alla fase successiva.
La prima fase consiste nella conversione del frame attualmente in elaborazione, da 256 colori a 16 livelli di grigio e nella memorizzazione di tali valori in un buffer che diventerà la struttura dati di base per le successive elaborazioni.
Le fasi successive si suddividono principalmente in:

1) Procedura di clustering.
Questa fase realizza la suddivisione dei valori dei pixel dell'immagine a 16 livelli di grigio in 5 classi.

2) Applicazione L-Sistemi.
All'immagine ottenuta dalla fase di clustering precedente viene applicata la teoria dei Sistemi di Lindenmayer relativa agli L-Sistemi bidimensionali. Questa fase permette il riconoscimento di strutture significative, al termine della quale viene applicato un algoritmo di binarizzazione dell'immagine.

3) Procedure di filtro.
L'immagine binaria ottenuta dopo l'applicazione degli L-Sistemi, viene sottoposta ad una procedura di filtro che permette di ottenere un immagine binaria priva di pixel "isolati" o "filosi".

4) Procedure di estrazione di regioni.
E' la fase che permette di passare da una matrice binaria rappresentante l' immagine ad una lista di regioni significative.
Questo viene realizzato tramite:
a - Rilevamento dei contorni nell'immagine binaria.
b - Determinazione delle regioni dal contorno.
c - Parametrizzazione delle regioni ottenute.
d - Eliminazione delle regioni non significative.

 

5) Algoritmo di decisione.
L'applicazione di regole di decisione alla lista delle regioni significative permette di selezionare le due regioni che rappresentano gli occhi.
Questa procedura riceve in input la lista contenente le regioni candidate ottenuta al passo precedente.
Seleziona, tramite regole di decisione, le due regioni che rappresentano gli occhi.

6) Parametrizzazione delle caratteristiche.
In questa fase vengono calcolati i parametri relativi agli occhi del frame elaborato.
I parametri ottenuti si possono classificare in 2 classi:
a - Statici
b - Dinamici
I parametri statici sono indipendenti dal frame precedente e rappresentano i valori relativi a:
- grado di apertura degli occhi.
- inclinazione.
- rotazione.
I parametri dinamici invece sono fortemente dipendenti dai valori relativi al frame precedente e rappresentano:
- velocità di apertura/chiusura degli occhi.
- velocità di inclinazione.
- velocità di rotazione.

I parametri estratti sono infine disponibili in notazione numerica in un file il quale costituisce il canale di comunicazione virtuale tra GLIMPSE e future applicazioni atte alla gestione di sincronizzazione di processi o dispositivi hardware.
Sarebbe interessante ad esempio gestire eventi MIDI oltre che oggetti multimediali in genere in sincrono con la visualizzazione del filmato in ingresso elaborato dall'applicazione.
Inoltre un'estensione plausibile del sistema potrebbe riguardare l'implementazione dell'algoritmo utilizzando chip dedicati al fine di ottenere l'elaborazione e l'estrazione dei parametri in tempo reale.
In generale, la filosofia di GLIMPSE, potrebbe essere utilizzata per elaborare una classe maggiore di filmati dalla quale estrarre parametri relativi ad ulteriori strutture agendo sull'algoritmo di decisione e ampliando o modificando l'insieme delle regole di base degli L-Sistemi utilizzati.