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.