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.