A 3D Facial Animation Framework



Documenti analoghi
e-dva - eni-depth Velocity Analysis

ELABORAZIONE DI DATI TRIDIMENSIONALI - RELAZIONE HOMEWORK 2

Siamo così arrivati all aritmetica modulare, ma anche a individuare alcuni aspetti di come funziona l aritmetica del calcolatore come vedremo.

9. Urti e conservazione della quantità di moto.

Dimensione di uno Spazio vettoriale

Database. Si ringrazia Marco Bertini per le slides

Sistema di diagnosi CAR TEST

Automazione Industriale (scheduling+mms) scheduling+mms.

Capitolo II. La forma del valore. 7. La duplice forma in cui si presenta la merce: naturale e di valore.

Capitolo 3. L applicazione Java Diagrammi ER. 3.1 La finestra iniziale, il menu e la barra pulsanti

Soluzione di equazioni quadratiche

FUNZIONI DI IMPAGINAZIONE DI WORD

Studente: SANTORO MC. Matricola : 528

Esercizio 1: trading on-line

Strutturazione logica dei dati: i file

Excel. A cura di Luigi Labonia. luigi.lab@libero.it

PROCEDURA OPERATIVA DI VALUTAZIONE DEI DIPENDENTI

SISTEMI MULTIAGENTE. Esercizio

V= R*I. LEGGE DI OHM Dopo aver illustrato le principali grandezze elettriche è necessario analizzare i legami che vi sono tra di loro.

MODULO 5 Appunti ACCESS - Basi di dati

Prestazioni CPU Corso di Calcolatori Elettronici A 2007/2008 Sito Web: Prof. G. Quarella prof@quarella.

Tecniche di Prototipazione. Introduzione

Corso di. Dott.ssa Donatella Cocca

SCENARIO. Personas ALICE Lucchin / BENITO Condemi de Felice. All rights reserved.

Generazione Automatica di Asserzioni da Modelli di Specifica

VALORE DELLE MERCI SEQUESTRATE

2. Leggi finanziarie di capitalizzazione

LEZIONI CON I PAD Docente scuola secondaria IC Moglia Carla Casareggio Classi seconde 2014/2015 Proprietà triangoli e quadrilateri con Sketchometry

Corso di Componenti e Impianti Termotecnici LE RETI DI DISTRIBUZIONE PERDITE DI CARICO LOCALIZZATE

Lezione 8. La macchina universale

Funzioni in C. Violetta Lonati

APPUNTI DI MATEMATICA LE FRAZIONI ALGEBRICHE ALESSANDRO BOCCONI

Banca dati Professioniste in rete per le P.A. Guida all uso per le Professioniste

Usando il pendolo reversibile di Kater

PROGRAMMA GESTIONE TURNI MANUALE UTENTE. Programma Gestione Turni Manuale Utente versione 1.1

Guida all uso di Java Diagrammi ER

Come creare il test di Yasso tramite l applicazione Training Center

Archivi e database. Prof. Michele Batocchi A.S. 2013/2014

Uso di base delle funzioni in Microsoft Excel

IL RISPARMIO ENERGETICO E GLI AZIONAMENTI A VELOCITA VARIABILE L utilizzo dell inverter negli impianti frigoriferi.

Indice di rischio globale

La forza. In movimento Marietti Scuola 2010 De Agostini Scuola S.p.A. Novara

GUIDA RAPIDA PER LA COMPILAZIONE DELLA SCHEDA CCNL GUIDA RAPIDA PER LA COMPILAZIONE DELLA SCHEDA CCNL

Capitolo 13: L offerta dell impresa e il surplus del produttore

MODELLO RELAZIONALE. Introduzione

della funzione obiettivo. Questo punto dovrebbe risultare chiaro se consideriamo una generica funzione:

Abilità Informatiche A.A. 2010/2011 Lezione 9: Query Maschere Report. Facoltà di Lingue e Letterature Straniere

Librerie digitali. Video. Gestione di video. Caratteristiche dei video. Video. Metadati associati ai video. Metadati associati ai video

Il Metodo Branch and Bound

Complemento al corso di Fondamenti di Informatica I corsi di laurea in ingegneria, settore dell informazione Università la Sapienza Consorzio Nettuno

Matematica e Statistica

Lezione 10: Il problema del consumatore: Preferenze e scelta ottimale

Capitolo V : Il colore nelle immagini digitali

FLASHINVESTOR Manuale dell Utente

Fasi di creazione di un programma

IDENTIFICAZIONE DEI BISOGNI DEL CLIENTE

Analisi sensitività. Strumenti per il supporto alle decisioni nel processo di Valutazione d azienda

Pro e contro delle RNA

lo PERSONALIZZARE LA FINESTRA DI WORD 2000

Università di L Aquila Facoltà di Biotecnologie Agro-alimentari

CONTROLLO IN TENSIONE DI LED

Sistema operativo: Gestione della memoria

Registratori di Cassa

Parimenti una gestione delle scorte in maniera non oculata può portare a serie ripercussioni sul rendimento sia dei mezzi propri che di terzi.

Mon Ami 3000 Varianti articolo Gestione di varianti articoli

Università degli Studi di Ferrara - A.A. 2014/15 Dott. Valerio Muzzioli ORDINAMENTO DEI DATI

RAPPRESENTAZIONE GRAFICA E ANALISI DEI DATI SPERIMENTALI CON EXCEL

Identificare le diverse parti di una finestra: barra del titolo, barra dei menu, barra degli strumenti, barra di stato, barra di scorrimento.

E possibile modificare la lingua dei testi dell interfaccia utente, se in inglese o in italiano, dal menu [Tools

SOLUZIONE DEL PROBLEMA 1 TEMA DI MATEMATICA ESAME DI STATO 2015

Protocollo di tracciamento e valutazione degli studenti dei corsi di italiano ICoNLingua A.A

Concetti di base di ingegneria del software

LE FUNZIONI A DUE VARIABILI

5.3 TABELLE RECORD Inserire, eliminare record in una tabella Aggiungere record Eliminare record

Indice. Introduzione...6. Capitolo 1: Realtà virtuale e computer vision..10. Capitolo 2: Riconoscimento facciale..34

Operazioni sui database

EXCEL PER WINDOWS95. sfruttare le potenzialità di calcolo dei personal computer. Essi si basano su un area di lavoro, detta foglio di lavoro,

TRASMISSIONE RAPPORTO ARBITRALE IN FORMATO PDF

1. Introduzione. 2. Simulazioni elettromagnetiche per la misura del SAR

Interesse, sconto, ratei e risconti

Ing. Simone Giovannetti

A intervalli regolari ogni router manda la sua tabella a tutti i vicini, e riceve quelle dei vicini.

Gli attributi di STUDENTE saranno: Matricola (chiave primaria), Cognome, Nome.

Anche nel caso che ci si muova e si regga una valigia il lavoro compiuto è nullo: la forza è verticale e lo spostamento orizzontale quindi F s =0 J.

Esempio. Approssimazione con il criterio dei minimi quadrati. Esempio. Esempio. Risultati sperimentali. Interpolazione con spline cubica.

( x) ( x) 0. Equazioni irrazionali

Guida Compilazione Piani di Studio on-line

Appunti sulla Macchina di Turing. Macchina di Turing

PROCEDURA INVENTARIO DI MAGAZZINO di FINE ESERCIZIO (dalla versione 3.2.0)

Luigi Piroddi

Gestione delle informazioni necessarie all attività di validazione degli studi di settore. Trasmissione degli esempi da valutare.

Sommario. Definizione di informatica. Definizione di un calcolatore come esecutore. Gli algoritmi.

4 3 4 = 4 x x x 10 0 aaa

I documenti di Gli ingredienti per l allenamento per la corsa LE RIPETUTE

Intelligenza Artificiale

Introduzione. Classificazione di Flynn... 2 Macchine a pipeline... 3 Macchine vettoriali e Array Processor... 4 Macchine MIMD... 6

BDX 3D-EDITOR (autore: Marco Bedulli) Scopo del software. Caratteristiche fondamentali. Linguaggi utilizzati. Navigazione 3D

5.2.1 RELAZIONI TRA TABELLE Creare una relazione uno-a-uno, uno-a-molti tra tabelle 9

Transcript:

A 3D Facial Animation Framework Andrea Brambilla 10 Dicembre 2009 1 Descrizione del progetto Il progetto sviluppato negli ultimi mesi presso il laboratorio IVL ha come obiettivo l animazione di volti virtuali tridimensionali; esistono già molte tecniche che si occupano dello stesso problema, ma la maggior parte di esse o sono computazionalmente molto onerose (simulatori fisici), o richiedono una frequente interazione da parte di un operatore umano (deformazioni), o, ancora, hanno bisogno di moltissimi dati preacquisiti (interpolazioni). L idea proposta è quella di combinare diversi approcci in modo da ottenere un sistema di animazione facciale che soddisfi i seguenti requisiti: qualsiasi espressione facciale deve poter esssere generata partendo da un volto neutro, cioè con tutti i muscoli rilassati; data l eccezionale sensibilità degli esseri umani ai più minimi cambiamenti di un espressione facciale, il sistema deve poter modellare anche i più piccoli movimenti percettibili; il sistema deve poter essere controllato in modo intuitivo e gli interventi esterni devono essere minimi; il sistema deve essere strutturato in modo tale che possa essere utilizzato come base per lo sviluppo di tool con un maggior livello di astrazione; una certa combinazione dei parametri di controllo deve generare approssimativamente la stessa animazione anche su volti diversi; Andrea Brambilla - matricola 063292 Tel. +393287091426 - mail andrea.bram@gmail.com Università degli Studi di Milano Bicocca Corso di Laurea Magistrale in Informatica Imaging & Vision Laboratory (www.ivl.disco.unimib.it) Relatore: Raimondo Schettini Correlatore: Alessandro Colombo i tempi di esecuzione devono essere almeno prossimi al real-time. Nel prossimo paragrafo verranno illustrati nel dettaglio i fondamenti teorici di tutte le tecniche impiegate (parametrizzazione MPEG-4, modellazione fisica dei tessuti elastici e 3D morphing); nel paragrafo 3 verrà invece descritto l approccio proposto con i relativi dettagli implementativi, mentre nel 4 verranno presentati i risultati ottenuti, il tutto seguito da delle brevi conclusioni. Si sottolinea che i modelli facciali di riferimento per lo sviluppo del sistema provengono dal database BU 3D-FE della Binghamton University [6], che contiene 100 diversi soggetti acquisiti tramite uno scanner 3D, ma l approccio sviluppato è tranquillamente utilizzabile su qualsiasi tipo di volto virtuale su cui sia possibile posizionare i feature points MPEG-4. 2 Fondamenti teorici Il sistema proposto è composto da tre componenti principali: un modello parametrico, per l esattezza quello definito dallo standard MPEG-4 [1], permette di definire sia un volto che le relative animazioni usando una serie di parametri, un simulatore fisico stabilisce come il volto in esame reagisca durante una certa animazione, ed infine un algoritmo di morphing deforma il soggetto iniziale per ottenere il risultato desiderato. La parametrizzazione MPEG-4 Lo specifiche MPEG-4 sono molto diffuse principalmente nell ambito della compressione e trasmissione di dati audio e video, ma in realtà lo standard è molto più ampio: in particolare l MPEG-4 Facial Animation standard definisce una serie di regole per la descrizione e l animazione di volti generici. 1

2 FONDAMENTI TEORICI 2 Lo standard definisce una serie di 84 Facial Description Parameters (FDP), detti anche Feature Points (FP), che identificano la posizione delle principali caratteristiche di un volto, come ad esempio la punta del naso (FP 9.3)o gli angoli della bocca (FP 8.3 e FP 8.4). Il volto di partenza di qualsiasi animazione deve trovarsi in uno stato neutro anch esso definito dalle specifiche MPEG-4. 68 Facial Animation Parameters (FAP) sono utilizzati per controllare le animazioni del volto: ognuno di essi è legato ad un preciso movimento di un dato FP, ad esempio il FAP 63 controlla gli spostamenti verticali del FP 9.3 (la punta del naso); fanno eccezione i FAP 1 e 2: essi sono considerati FAP high-level e, anzichè controllare direttamente dei singoli movimenti, essi sono usati per esprimere rispettivamente uno dei 14 possibili visemi (l equivalente grafico dei fonemi) e una tra le 6 espressioni facciali primarie (felicità, tristezza, rabbia, paura, sorpresa e disgusto). Alcuni FAP sono unidirezionali (come l apertura della mandibola, FAP 3) e altri sono bidirezionali (come i movimenti delle sopracciglia, FAP 31 38), inoltre ad ognuno di essi è legato un certo valore di intensità che sta ad indicare l ampiezza del movimento richiesto. Le intensità dei FAP non sono numeri puri, ma vengono indicate utlizzando come unità di misura le distanze tra alcune delle principali feature di una faccia; ad esempio il FAP 39 muove orizzontalmente la guancia sinistra (FP 5.1) e la sua intensità è misurata prendendo come riferimento 1/1024 della distanza tra i centri delle pupille. Questo garantisce che, applicando gli stessi FAP a volti diversi, il risultato ottenuto sia analogo. Il modello fisico Figura 1: Alcuni dei feature points definiti dallo standard MPEG-4 FA. I modelli fisici puntano alla precisa simulazione della struttura anatomica del volto umano, in modo da determinarne con precisione i movimenti causati dall azione di uno o più muscoli; per questo progetto è stato utilizzato il modello proposto da Terzopoulos e Waters nel 1990 [5], già largamente utilizzato in ambito di animazione facciale per via della sua forte scalabilità e per l alta qualità dei suoi risultati. La pelle del volto, ma in generale qualsiasi tessuto elastico, può essere vista come un reticolo deformabile formato da un insieme di nodi interconnessi da una serie di molle (figura 2); ogni nodo i ha una sua posizione x i (t) al tempo t e una sua massa m i, ogni molla k ha una certa lunghezza l k (t) al tempo t ed un suo coefficiente di elasticità c k : una molla che abbia come estremi i nodi i e j esercita sul nodo i una forza pari a s k (t) = c k (x j (t) x i (t)) lk(t) l k (0) l k (t) (1) Figura 2: L elemento base del modello di Terzopoulos e Waters; il tessuto epidermico è simulato affiancando diversi di questi elementi.

3 DETTAGLI IMPLEMENTATIVI 3 Banalmente la forza totale g i (t) esercitata sul nodo i si ottiene sommando le s k di tutte le molle k incidenti in i. A questo punto, utilizzando l equazione del moto di Lagrange, l intero reticolo si può modellare utilizzando un sistema di equazioni differenziali ordinarie del tipo passaggio matematico si avrà ( N ) 1 v = (v p v ) w viˆp T viˆp w vi vjˆp T vjˆq +q vj v i=1 j=1 (4) dove m i d 2 x i dt 2 +γ dx i i dt g (t) = f i i i = 1, 2,..., N (2) p v = i=1 w vip i i=1 w vi q v = i=1 w viq i i=1 w vi dove f i rappresenta una generica forza esterna esercitata sul nodo i (tipicamente l azione di un muscolo) e γ i (dx i /dt) rappresenta l attrito, dipendente dalla velocità. Il sistema può essere risolto utilizzando metodi iterativi come il metodo esplicito di Eulero o quello di Runge-Kutta, in ogni caso alla fine si ottengono le posizioni aggiornate dei nodi, cioè la deformazione subita dal tessuto epidermico. Il morphing Il morphing è una tecnica che permette di deformare un generico oggetto manipolando solo un insieme ridotto di punti di controllo posizionati su di esso (detti landmarks); più precisamente, nel caso di una mesh tridimensionale la deformazione viene specificata modificando la posizione di alcuni punti della mesh stessa, dopodichè la posizione dei restanti vertici viene determinata tramite interpolazione. Il fulcro di un algoritmo di morphing è proprio il tipo di interpolazione utilizzata: per questo progetto sono stati utilizzati i Moving Least Squares (MLS), proposti da Levin nel 1998 [3] e già utilizzati in diverse tecniche di deformazione. L algoritmo non è altro che una versione pesata dei classici Minimi Quadrati: la posizione finale di un generico vertice v della mesh è data dalla trasformazione lineare v = vm v + T v che minimizzi e v = N pi 2 w vi M v + T v q i i=1 (3) dove p i e q i sono rispettivamente le posizioni iniziali e finali dei landmarks, mentre w vi sono dei pesi dipendenti dalla distanza tra v e p i. Con qualche ˆp vi = p i p v ˆq vi = q i q v Come è abbastanza evidente dalla complessità dell ultima formula, la deformazione finale è abbastanza onerosa da calcolare, ma questo tipo di interpolazione simula abbastanza fedelmente il comportamento della pelle; inoltre più avanti si vedrà come, con alcuni accorgimenti, è possibile velocizzare l intero processo di morphing. 3 Dettagli Implementativi L approccio proposto consiste nell utilizzare i parametri dello standard MPEG-4 per specificare i movimenti da eseguire, dopodichè il simulatore fisico valuta gli spostamenti di tutti gli FP lavorando su una mesh elastica costruita ad-hoc, ed infine l animazione viene ottenuta deformando con gli MLS il volto iniziale in base alle nuove posizioni degli FP. Il primo problema è stato dover adattare i volti del database BU 3D-FE allo standard MPEG-4: dato che i landmark definiti sui volti a disposizione sono molto differenti rispetto agli FP cercati, i feature point MPEG-4 sono stati stimati secondo delle apposite euristiche; inoltre i volti BU 3D-FE non presentano tutte le feature richieste quindi alcuni FP sono stati tralasciati (come l attaccatura dei capelli, FP 11.1, o la lingua, FP 6.1 6.4) ed i FAP legati a tali FP non sono stati implementati (ad esempio i movimenti delle orecchie, FAP 65 68). Passando al livello sottostante, la mesh su cui lavora il simulatore fisico è stata costruita usando solo gli FP MPEG-4: per ottenere un maggiore realismo, viene stimato una sorta di cranio virtuale del volto in esame (semplicemente spostando gli FP lungo le loro normali), dopodichè la mesh elastica viene costruita inserendo per prima cosa delle molle tra ogni FP ed il relativo punto del cranio, e poi

4 RISULTATI OTTENUTI 4 Figura 3: In rosso le molle della mesh elastica a livello della pelle. posizionando delle molle tra gli FP stessi, secondo lo schema in figura 3. Allo stesso modo, seguendo l idea proposta in [2], viene aggiunto anche un secondo cranio esterno (figura 4), in modo che i punti della pelle si muovano tendenzialmente lungo le tangenti al volto, rendendo l intera animazione più naturale. I nodi sui due teschi, tranne quelli della mandibola, sono immobili, mentre quelli a livello della pelle possono spostarsi in seguito all applicazione di forze esterne; i movimenti sono quindi realizzati traducendo i FAP in forze da applicare ai rispettivi feature point, oppure, per i movimenti della mandibola, spostando direttamente i punti del cranio coinvolti. La simulazione viene portata a termine risolvendo sistema di equazioni della formula 2 tramite il metodo esplicito Eulero [4], ottenendo così le posizioni finali degli FP. La fase di morphing, ora che si hanno a disposizione le posizioni iniziali e finali degli FP, consiste banalmente nel calcolo della formula 4; l unica cosa che vale la pena sottolineare è che tutta la prima parte dell equazione viene in realtà precomputata: i coefficienti ( N ) 1 k vj = (v p v ) w viˆp T viˆp w vi vjˆp T vj i=1 sono indipendenti dalle posizioni finali dei landmarks, e quindi possono essere calcolati nel momento in cui il volto viene caricato. Di conseguenza tutte le varie deformazioni possono essere ottenute con la semplice formula v = N k vjˆq vj + q v j=1 molto meno onerosa rispetto alla 4. Infine, per dimostrare le potenzialità del framework, è stata aggiunta la possibilità di controllare le trasformazioni anche ad un livello di astrazione più alto, scegliendo tra alcune espressioni facciali predefinite e specificandone l intesità richiesta; al momento sono state inserite solo le sei espressioni facciali primarie (felicità, tristezza, disgusto, paura, sorpresa e rabbia) e alcune espressioni di medio livello (inarcamento delle sopracciglia, qualche tipo di sorrisi, ecc.), ma, dato che un espressione non è altro che una combinazione di FAP, crearne di nuove è un compito estremamente banale. Inoltre l utilizzo delle espressioni facciali non pone nessun tipo di limitazione, possono essere tranquillamente applicate ad un volto già deformato e possono essere ulteriormente ritoccate specificando dei singoli FAP. É bene sottolineare che le sei espressioni primarie non sono state implementate con l obiettivo di rappresentare correttamente uno stato d animo (la cui valutazione è del tutto soggettiva), ma solo per dare un idea delle capacità del sistema. 4 Risultati ottenuti Figura 4: Struttura del sistema con doppia scatola cranica: in rosso i nodi della pelle, in verde e in blu rispetivamente i nodi del teschio interno ed esterno. In figura 5 sono riportati alcuni dei volti ottenuti col metodo proposto: il primo volto sulla sinistra è quello originale nello stato neutro, mentre i successivi sono quelli ottenuti applicando le espressioni

4 RISULTATI OTTENUTI 5 Figura 5: Esempi di volti generati con l approccio proposto. facciali felice, arrabbiato e sorpreso ; sulla seconda riga sono riportati gli stessi volti senza texture, per poter meglio apprezzare la deformazione della mesh. Come si può osservare i modelli sono molto accurati e di qualità elevata, ma già in questo semplice esempio si presentano tre situazioni ben diverse: il volto felice è decisamente un buon risultato, è molto realistico e non presenta deformazioni innaturali. Il volto arrabiato è anch esso abbastanza realistico, ma gli occhi risultano deformati in modo innaturale: questo in realtà è del tutto normale dato che la gestione degli occhi non è tra gli obiettivi del progetto, inoltre è uso comune elaborare gli occhi tramite tool di modellazione grafica, ed aggiungerli al volto solo in un secondo tempo. L ultimo volto presenta invece dei difetti nella zona delle labbra, dovuti a due diversi problemi di fondo: per prima cosa le mesh dei volti utilizzati non prevedono che le labbra siano separate, vi sono effettivamente dei triangoli che uniscono il labbro superiore a quello inferiore. La seconda ragione è che, durante il morphing, i pesi sono calcolati in funzione della distanza euclidea, pertanto i landmark del labbro inferiore influenzano pesantemente anche alcuni punti del labbro superiore e viceversa. Il primo problema può essere risolto modificando la mesh, ma per il secondo è invece necessario rivedere l algoritmo di morphing in modo che tenga conto della topologia del volto. Su una macchina con un processore da 2 GHz e 2 Gb di RAM, il tempo necessario per generare una deformazione di un volto (composto da circa 50000 vertici), è mediamente di 0.41 secondi; il tempo necessario per la sola simulazione fisica è di circa 0.05 secondi, mentre circa 0.36 secondi vengono spesi

RIFERIMENTI BIBLIOGRAFICI 6 per l algoritmo di morphing. Sono tempi ancora un po troppo elevati per ottenere un animazione fluida in real-time, ma i margini di miglioramento dell algoritmo sono ampi, inoltre è importante notare che i tempi di esecuzione sono completamente indipendenti dal numero e dall intensità dei FAP applicati. Infine si sottolinea che la mesh elastica, il cranio e le azioni dei FAP sono completamente personalizzabili: per il momento sono stati implementati solo a scopo di test, ma lavorandoci sopra più approfonditamente è sicuramente possibile ottenere dei risultati ancora migliori. 5 Conclusioni Il sistema presentato è in grado di animare volti virtuali 3D con un buon grado di realismo e con tempi di esecuzione contenuti; lo standard MPEG-4 permette di deformare qualsiasi modello su cui siano stati definiti gli FP necessari, ed inoltre consente di controllare le animazioni in modo semplice ed intuitivo. Infine la possibilità di personalizzare le principali componenti coinvolte nell animazione rende l intero sistema estremamente versatile e scalabile. Per quanto riguarda gli sviluppi futuri, sicuramente verranno apportate delle modifiche all algoritmo di morphing, cercando di ridurre i tempi di esecuzione e tenendo conto della topologia del volto. Altre funzionalità interessanti da aggiungere potrebbero essere la creazione di una mesh elastica a risoluzione variabile, in modo da poter bilanciare a piacimento il rapporto realismo/prestazioni, oppure dare la possibilità di specificare delle espressioni facciali personalizzate. Se poi si volesse aumentare ulteriormente il realismo delle animazioni, sarebbe interessante cercare di definire mesh elastica, FAP ed espresisoni facciali utilizzando tecniche di machine learning su volti acquisiti tramite uno scanner 3D. [2] K. Kahler, J. Haber, and H.P. Seidel. Geometry-based muscle modeling for facial animation. In Graphics Interface, pages 37 46. Citeseer, 2001. [3] D. Levin. The approximation power of moving least-squares. Mathematics of Computation, 67(224):1517 1532, 1998. [4] W.H. Press, S.A. Teukolsky, W.T. Vetterling, and B.P. Flannery. Numerical recipes in C. Cambridge Univ. Press Cambridge MA, USA, 1992. [5] D. Terzopoulos and K. Waters. Physicallybased facial modeling, analysis, and animation. Journal of visualization and Computer Animation, 1(2):73 80, 1990. [6] L. Yin, X. Wei, Y. Sun, J. Wang, and M.J. Rosato. A 3D facial expression database for facial behavior research. In 7th International Conference on Automatic Face and Gesture Recognition (FGR06), pages 211 216. Citeseer, 2006. Riferimenti bibliografici [1] Moving Picture Experts Group. ISO/IEC 14496 MPEG-4 International Standard. ISO/IEC, 1998.