Sintesi di volti virtuali da foto ortogonali



Documenti analoghi
3DE Modeling Color. E il modulo che si occupa della costruzione di modelli 3D con tessitura a colori.

Corrispondenze e funzioni

Indice generale. OOA Analisi Orientata agli Oggetti. Introduzione. Analisi

Processo di rendering

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

Capitolo V : Il colore nelle immagini digitali

Testo Esercizio. Un modello è ragionevole quando contiene queste tre caratteristiche.

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

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

3D e Realtà Virtuale

Informatica per la comunicazione" - lezione 7 -

Database. Si ringrazia Marco Bertini per le slides

Il concetto di valore medio in generale

Project Cycle Management

~ Copyright Ripetizionando - All rights reserved ~ STUDIO DI FUNZIONE

Dimensione di uno Spazio vettoriale

La distribuzione Normale. La distribuzione Normale

APPUNTI DI MATEMATICA LE FRAZIONI ALGEBRICHE ALESSANDRO BOCCONI

Appunti sulla Macchina di Turing. Macchina di Turing

4 Dispense di Matematica per il biennio dell Istituto I.S.I.S. Gaetano Filangieri di Frattamaggiore EQUAZIONI FRATTE E SISTEMI DI EQUAZIONI

Guida all uso di Java Diagrammi ER

3DE Modeling Professional

13. Campi vettoriali

Computer Graphics. La disciplina fornisce metodi per creare elaborare memorizzare visualizzare. immagini di oggetti o scene mediante un computer

f(x) = 1 x. Il dominio di questa funzione è il sottoinsieme proprio di R dato da

risulta (x) = 1 se x < 0.

SCHEDA M MOSAICI CLASSIFICARE CON LA SIMMETRIA

Automazione Industriale (scheduling+mms) scheduling+mms.

LEZIONE: Pensiero Computazionale. Tempo della lezione: Minuti. - Tempo di preparazione: 15 Minuti.

Raccomandazione del Parlamento europeo 18/12/2006 CLASSE PRIMA COMPETENZE ABILITÀ CONOSCENZE. Operare con i numeri

1. Distribuzioni campionarie

SPC e distribuzione normale con Access

LE FUNZIONI A DUE VARIABILI

ESTRAZIONE DI DATI 3D DA IMMAGINI DIGITALI. (Visione 3D)

Matematica generale CTF

Corso di. Dott.ssa Donatella Cocca

Altri metodi di indicizzazione

Decorazione Piastrelle

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

Massimi e minimi vincolati di funzioni in due variabili

Il controllo della visualizzazione

Strutturazione logica dei dati: i file

2 Argomenti introduttivi e generali

fit-up), cioè ai problemi che si verificano all atto dell assemblaggio quando non si riescono a montare i diversi componenti del prodotto o quando il

Vademecum studio funzione

Capitolo 2. Operazione di limite

HR - Sicurezza. Parma 17/12/2015

Rilevazione tramite Photoscan! Esempio applicativo

Slide Cerbara parte1 5. Le distribuzioni teoriche

GIOCHI MATEMATICI PER LA SCUOLA SECONDARIA DI I GRADO ANNO SCOLASTICO

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

FUNZIONE. Si scrive: A B f: A B x y=f(x) (si legge: f funzione da A in B) x f y= f(x)

Ottimizzazione Multi Obiettivo

Il campionamento. La digitalizzazione. Teoria e pratica. La rappresentazione digitale delle immagini. La rappresentazione digitale delle immagini

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

Anno 4 Grafico di funzione

CORSO ACCESS PARTE II. Esistono diversi tipi di aiuto forniti con Access, generalmente accessibili tramite la barra dei menu (?)

Come costruire una presentazione. PowerPoint 1. ! PowerPoint permette la realizzazione di presentazioni video ipertestuali, animate e multimediali

I casi d uso corrispondono ai compiti che l attore (che può essere una persona fisica e non) può svolgere.

Proposta di soluzione della prova di matematica Liceo scientifico di Ordinamento

e-dva - eni-depth Velocity Analysis

Novità di Access 2010

ISTITUTO COMPRENSIVO MONTEGROTTO TERME SCUOLA PRIMARIA DISCIPLINA: MATEMATICA - CLASSE PRIMA OBIETTIVI DI APPRENDIMENTO

DATABASE. A cura di Massimiliano Buschi

10 - CURVE DI LIVELLO

Al giorno d oggi, i sistemi per la gestione di database

Sistemi Informativi Territoriali. Map Algebra

ColorSplitter. La separazione automatica dei colori di Colibri.. Perché ColorSplitter? Come opera ColorSplitter?

IDENTIFICAZIONE DEI BISOGNI DEL CLIENTE

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

Organizzazione degli archivi

Per capire meglio l ambito di applicazione di un DWhouse consideriamo la piramide di Anthony, L. Direzionale. L. Manageriale. L.

Forze come grandezze vettoriali

Le strumentazioni laser scanning oriented per i processi di censimento anagrafico dei patrimoni

Animazioni 3D. Informatica Grafica I. Le basi dell'animazione 3D. Le basi dell'animazione 3D. Le basi dell'animazione 3D. Le basi dell'animazione 3D

Raggruppamenti Conti Movimenti

ARCHITETTURA. Rubrica Infografica

Un gioco con tre dadi

1 Serie di Taylor di una funzione

LE SUCCESSIONI 1. COS E UNA SUCCESSIONE

Prof.ssa Paola Vicard

SISTEMI INFORMATIVI AVANZATI -2010/ Introduzione

Fasi di creazione di un programma

Capitolo 25: Lo scambio nel mercato delle assicurazioni

LA GRAFICA E LA GEOMETRIA OPERATIVA

Informatica 3. Informatica 3. LEZIONE 10: Introduzione agli algoritmi e alle strutture dati. Lezione 10 - Modulo 1. Importanza delle strutture dati

ELABORAZIONE DI DATI TRIDIMENSIONALI - RELAZIONE HOMEWORK 2

Valutazione dei Ruoli

Un ripasso di aritmetica: Rappresentazione binaria - operazioni. riporti

Metodi Stocastici per la Finanza

Matematica 1 - Corso di Laurea in Ingegneria Meccanica

Strumenti e metodi per la redazione della carta del pericolo da fenomeni torrentizi

Equilibrio bayesiano perfetto. Giochi di segnalazione

Sistema di diagnosi CAR TEST

( x) ( x) 0. Equazioni irrazionali

Introduzione all analisi dei segnali digitali.

MANUALE MOODLE STUDENTI. Accesso al Materiale Didattico

Rappresentazione grafica di entità e attributi

Probabilità condizionata: p(a/b) che avvenga A, una volta accaduto B. Evento prodotto: Evento in cui si verifica sia A che B ; p(a&b) = p(a) x p(b/a)

Capitolo 4: Ottimizzazione non lineare non vincolata parte II. E. Amaldi DEIB, Politecnico di Milano

Transcript:

Università degli studi di Roma La Sapienza Facoltà di Informatica Tesi di Laurea in Informatica Sintesi di volti virtuali da foto ortogonali Relatore Prof. Paolo Bottoni Candidato Graziella Geremia Correlatore Ing. Marco Fratarcangeli Anno Accademico 2005/2006

Dedica

Indice 1 Introduzione 4 1.1 Contesto.............................. 4 1.2 Descrizione del problema..................... 5 1.3 Soluzione proposta........................ 6 1.4 Struttura della tesi........................ 8 2 Background 11 2.1 Modellazione di un volto..................... 11 2.2 Generazione di texture...................... 13 2.3 Modello generico di un volto umano............... 15 2.4 Standard MPEG-4........................ 17 3 Deformazione del volto 20 3.1 Acquisizione foto ortogonali................... 21 3.2 Specifica FDP sulle foto..................... 22 3.3 Morphing con le radial basis function.............. 25 3.4 Scelta della radial basis function................. 27 3.5 Algoritmo di deformazione.................... 40 4 Texturizzazione del volto 41 4.1 Texture mapping......................... 42 4.2 Cube Map............................. 44 4.3 Confronto tra cube map e tecniche tradizionali......... 46 4.4 Generazione texture....................... 47 2

4.5 Disegno Mesh........................... 55 4.6 Algoritmo............................. 55 5 Implementazione 61 5.1 Struttura dell applicazione.................... 61 5.2 Sottosistema Modellazione-Texturizzazione........... 62 5.3 Sottosistema Interfaccia grafica................. 66 5.4 Librerie utilizzate......................... 68 6 Risultati 69 6.1 Prove di rendering........................ 70 6.2 Analisi dei tempi di esecuzione.................. 78 6.3 Analisi qualitativa dei risultati.................. 80 7 Conclusioni 82 7.1 Possibili sviluppi......................... 83 A OpenGL e cubemap 89 B Risoluzione sistema tramite fattorizzazione LU 93 3

Capitolo 1 Introduzione 1.1 Contesto La generazione di modelli di volti umani 3D realistici ha attirato negli ultimi anni un crescente interesse nell ambito dell informatica grafica moderna, stimolato dallo sviluppo dei numerosi campi in cui trova applicazione e favorito dall evoluzione delle schede grafiche dalla potenza di calcolo sempre maggiore. La sintesi di volti realistici è il primo passo verso l animazione facciale; il suo dominio di applicazione è vasto ed include vari settori che spaziano dall ambito puramente ricreativo(film, videogiochi) ad attività di interesse generale(medicina, insegnamento a distanza). In particolare, con lo sviluppo di ambienti virtuali in cui le persone possono interagire tra loro attraverso personaggi virtuali chiamati avatar, è emersa la necessità di creare volti umani 3D che rispecchino l apparenza di ogni singola persona. Ciò consente di immergere un individuo in un mondo virtuale e trova applicazione, ad esempio, nelle videoconferenze o nei videgiochi dove viene data al giocatore la possibilità di assegnare al proprio personaggio un avatar personalizzato. La generazione di un modello 3D realistico non è un problema banale. Il fattore principale per descrivere una persona è rappresentato dal suo volto, 4

1.2. Descrizione del problema veicolatore di caratteristiche e dettagli somatici che lo rendono distinguibile. Particolare attenzione è quindi richesta nella creazione di personaggi virtuali. Se si considerano la complessità della struttura anatomica di un volto e la naturale propensione di un essere umano nel percepire anche piccoli dettagli e cambiamenti su qualcosa che gli è familiare, si può intuire come la modellazione facciale costituisca un problema aperto ed interessante nell ambito della computer graphics. 1.2 Descrizione del problema Un volto umano è una forma geometrica estremamente complessa e soggetta a vincoli di proporzionalità. Un modo per ottenere un buon grado di realismo consiste nel basare la sua modellazione su una persona reale. In tal senso, le immagini di uno stesso soggetto catturate da diverse angolazioni forniscono importanti informazioni inerenti la geometria, la forma e l apparenza di un volto. Il problema affrontato in questa tesi consiste nella ricostruzione tridimensionale di un volto umano attraverso l utilizzo di immagini ortogonali che lo ritraggono. L obiettivo è quello di ottenere un modello 3D in grado di riprodurre la forma e l apparenza del volto. In linea generale, due foto ortogonali, che catturano rispettivamente una vista frontale e una laterale del volto, sono sufficienti per la sua ricostruzione trimidensionale: sfruttando la simmetria del volto, è possibile dedurre approssivamente le informazioni del profilo non rappresentato nella foto laterale a partire dall immagine che ritrae il profilo opposto.un numero maggiore di immagini non può far altro che influire positivamente sul risultato finale incrementando il realismo ed il grado di dettaglio. Il processo di generazione di un modello di volto umano descritto in questa tesi può essere pensato come una traslazione da una rappresentazione bidimensionale del volto costituita da fotografie ad una rappresentazione tridimensionale, ossia un modello di volto 3D in congiunzione con le texture da 5

1.3. Soluzione proposta applicarvi. Le problematiche affrontate sono legate principalmente a: la deformazione di un volto generico in modo da adattarlo al volto presente nelle immagini la generazione delle texture da applicare al volto per ottenere un effetto realistico 1.3 Soluzione proposta Questo progetto di tesi mostra come sia possibile realizzare volti umani realistici a partire da un generico modello di volto tridimensionale e da una serie di immagini raffiguranti il volto di una persona. Si può pensare quindi ad un processo che, preso in input un modello di volto 3D generico e una serie di immagini raffiguranti il volto di un soggetto umano, restituisca in output il modello 3D rappresentante il volto presente nelle immagini. Nell ambito di questa tesi chiameremo il modello di volto generico source model, intendendo distinguerlo dal target model definito dal volto presente nelle foto. L approccio utilizzato prevede la suddivisione del problema in alcuni moduli, ciascuno dei quali rappresenta un unità logica separata dall intero sistema. Il primo modulo si occupa di adattare la geometria del source model a quella del target model. A tale scopo è necessario determinare una serie di corrispondenze tra i punti cruciali di ciascun modello. Si utilizzano, nel nostro caso, gli FDP(Facial Definition Points) dello standard MPEG4. Si tratta di un insieme di parametri che, essendo localizzati in parti caratteristiche del volto(pupilla dell occhio, angolo della bocca, ecc.), consentono di definire l apparenza di un volto. Si è sviluppata un interfaccia grafica che consente all utente di specificare gli FDP su ciascuna foto; la loro posizione nello spazio viene poi utilizzata nel processo di deformazione del source model guidato dalle radial basis function. La selezione degli FDP su ciascuna foto è l unico 6

1.3. Soluzione proposta passo dell intero processo in cui è richiesta l interazione dell utente. Il secondo modulo riguarda la texturizzazione del volto. Per ottenere modelli sintetici realistici di volti virtuali è fondamentale la creazione e la manipolazione della tessitura che crea l apparenza dei dettagli caratterizzanti la pelle umana e che sono assenti nella geometria del modello 3D.Il problema consiste nel riuscire a combinare le informazioni provenienti dalle varie foto in modo tale da creare una tessitura del volto uniforme e realistica. Particolare attenzione è stata dedicata a quest aspetto introducendo una nuova tecnica di texturizzazione basata sull utilizzo delle cube map. Generalmente le cube map vengono usate per l environment mapping al fine di creare effetti di riflessione molto realistici di un oggetto nella scena in cui si trova. In questo progetto esse vengono utilizzate come tecnica di texturizzazione di oggetti la cui forma può essere idealmente racchiusa in un cubo. A partire dalle fotografie in input si generano sei texture che andranno a ricoprire le sei facce di un cubo e verranno successivamente mappate sul volto in maniera opportuna. Questa tecnica, comparata con le tecniche tradizionali utilizzate, presenta alcuni vantaggi: è indipendente dal tipo di volto utilizzato, consente di evitare fenomeni di distorsione e il presentarsi delle cuciture, ossia linee che identificano il passaggio dal contributo di una texture all altra. Si è proposto un algoritmo adattivo volto a scongiurare la presenza di zone di discontinuità di colore. Durante la combinazione di più immagini, a causa di differenti condizioni di illuminazione, presenze di ombre ed errori di registrazione delle immagini, può accadere che zone del volto adiacenti presentino una discontinuità cromatica. Per ovviare a tale problema, si è proposto un algoritmo adattivo che elimina tali artefatti preservando gli attributi di colore. Durante lo sviluppo di questa tesi è stata considerata la complessità computazionale richiesta per eseguire le tecniche descritte cercando di eseguire il maggior numero di ottimizzazioni per alleviarne il carico. Il lavoro svolto in questa tesi risulta essere molto semplice e lineare dal punto di vista concettuale: esso si propone come una linea guida da seguire per 7

1.4. Struttura della tesi ottenere una ricostruzione tridimensionale con un buon grado di realismo. In questa trattazione vengono dichiarate le scelte effettuate, vengono descritte in maniera dettagliata le problematiche osservate e proposte delle soluzioni. La figura 1.1 mostra i passi che descrivono l intero processo di generazione di volti virtuali. 1.4 Struttura della tesi Capitolo 2 : introduce il tema della sintesi di volti virtuali realistici illustrandone le origine e lo stato dell arte. Presenta inoltre la descrizione di alcune informazioni richieste alla comprensione della tesi. Capitolo 3 : descrive la nostra tecnica di modellazione di un volto. A partire da un insieme di fotografie ortogonali che ritraggono il volto di una persona, un generico modello di volto tridimensionale viene deformato affinchè assuma la forma del volto presente nelle foto. Viene descritto il metodo di acquisizione degli FDP dalle varie foto e viene illustrato il processo di deformazione del volto guidato dalle radial basis function. La presenza nel capitolo di uno studio dettagliato sulle radial basis function è volta a giustificare la scelta della funzione di interpolazione più idonea al processo di deformazione del volto. Capitolo 4 : è inerente alla texturizzazione del volto. Si introduce la tecnica delle cube map mostrandone le caratteristiche e le differenze rispetto alle tecniche tradizionalmente adottate. L algoritmo utilizzato per la generazione delle texture a partire dalle immagini iniziali e la loro applicazione sul volto costituiscono il punto focale di questa tesi e vengono descritti in maniera dettagliata. Capitolo 5 : presenta un analisi descrittiva dell applicazione. Viene mostrata l organizzazione e le relazioni fra i vari moduli con l ausilio di diagrammi UML. 8

1.4. Struttura della tesi Capitolo 6 :descrive, visualizza ed analizza alcuni risultati ottenuti mettendo in evidenza le caratteristiche del sistema. Capitolo 7 : conclude questa tesi con un sommario del lavoro svolto ponendo l accento sui possibili sviluppi futuri. 9

1.4. Struttura della tesi Foto input Selezione FDP Modello generico Modello generico deformato Texture generate Risultato finale Fig. 1.1: Processo di generazione di volti virtuali 10

Capitolo 2 Background Questo capitolo introduce il tema della sintesi di volti virtuali realistici illustrandone le origine e lo stato dell arte. Descriveremo i vari approcci al problema presenti in letteratura distinguendo tra la parte di modellazione e deformazione del volto e quella relativa alla generazione di texture. Presenteremo inoltre la descrizione di alcune informazioni richieste alla comprensione della tesi. 2.1 Modellazione di un volto In relazione alla modellazione di volti umani, sono stati proposti e sviluppati molti metodi che possono essere ricondotti in due principali categorie: tecniche basate sull utilizzo di scanner laser e tecniche basate sulle immagini. Nel primo caso, la geometria e l apparenza di un volto può essere acquisita da scanner laser che evidenziano le posizioni tridimensionali dei punti sulla superficie. Questo approccio presenta aluni svantaggi. Lo scanner non può acquisire la geometria di aree complesse quali orecchie e capelli,produce texture di bassa risoluzione ed i modelli ottenuti sono sufficienti solo per rappresentazioni statiche del volto, in quanto non presentano le informazioni tali da consentire tecniche di animazione del volto. La nostra tecnica rientra nell altra categoria: le immagini di un volto ven- 11

2.1. Modellazione di un volto gono utilizzate per creare la geometria del volto. Rispetto ai metodi di modellazione che utilizzano lo scanner, il nostro metodo richiede una semplice attrezzatura rappresentata da una fotocamera e consente di estrarre texture ad alta risoluzione. Il prezzo da pagare per questi vantaggi è la necessità dell intervento dell utente nel processo di modellazione. La prima tecnica di modellazione del volto basata sulle foto fu sviluppata da Parke [1, 2] e prevedeva l utilizzo di griglie disegnate direttamente sul volto del soggetto. A causa della presenza di tali griglie, le immagini utilizzate per costruire il modello di volto non potevano essere usate come mappe di tessitura. Recentemente sono stati proposti molti metodi che permettono la ricostruzione del modello senza l utilizzo di griglie. In [3, 4, 5] viene utilizzato un database di volti neutrali costruito acquisendo, attraverso uno scanner, la geometria del volto da un centinaio di soggetti. Partendo da una sola fotografia, un algoritmo ricerca la forma del volto che si avvicina maggiormente alla geometria del volto della fotografia. Gli altri approcci prevedono essenzialmente due passi: l estrazione di alcuni punti del volto e la deformazione di quest ultimo. Nel primo passo un numero limitato di punti, corrispondenti a punti caratteristici del volto, vengono rilevati in maniera automatica o interattivamente dalle immagini. Kurihara and Arai [6] hanno utilizzato un metodo interattivo per determinare alcuni punti caratteristici. In [7] e [8] viene usato un approccio simile. Questi due approcci tentano di individuare automaticamente i feature points su due immagini ortogonali catturate dalle viste frontale e laterale usando un template dinamico per controllare i punti concavi e convessi sul profilo laterale di una faccia. Gli approcci sinora descritti sono simili ed hanno lo svantaggio di utilizzare un piccolo numero di punti caratteristici per deformare il volto generico. Ciò può condurre ad avere come risultato un volto la cui geometria presenta discostamenti dal reale. Nel lavoro [9] viene descritto un metodo per deformare un volto generico ed 12

2.2. Generazione di texture adattarlo al volto presente in cinque diverse fotografie catturate simultaneamente attraverso l utilizzo di cinque fotocamere. In ognuna di esse, viene marcato un insieme di punti caratteristici corrispondente ad un sottoinsieme dei vertici della mesh del volto generico. Una volta ottenute queste corrispondenze, viene ricostruita la posizione delle varie fotocamere e la posizione 3D dei punti caratteristici in base ai quali viene effettuata la deformazione. Questo approccio è concettualmente simile al nostro, noi utilizziamo però come punti caratteristici gli FDP dello standard MPEG-4, di cui parleremo ampliamente nel paragrafo 2.4. In [10] [11], viene descritto un metodo che utilizza in input due foto ortogonali (vista frontale e vista di profilo) per ricostruire un modello 3D del volto. Il metodo è basato sull estrazione degli FDP sulle foto tramite l utilizzo di un interfaccia con l utente e il modello viene poi deformato in base alle corrispondenze individuate. Per la parte di texturizzazione viene composta un unica immagine combinando le informazioni dalle immagini presenti. Il secondo passo è quello della deformazione: i punti estratti vengono utilizzati come punti di controllo per deformare un modello generico; gli altri punti del volto vengono modificati applicando una particolare funzione. Alcuni approcci [12] prevedono l uso della Dirichlet Free Form Deformation(FFD), noi proponiamo come altri [13, 14, 15], l utilizzo delle radial basis function che consentono di ottenere una deformazione piuttosto regolare. 2.2 Generazione di texture Una volta determinata la forma del modello di volto, è necessario creare la tessitura(texture) corrispondente. La pelle del volto umano presenta delle caratteristiche che la rendono difficile da riprodurre. L approccio più semplice [16] consiste nell utilizzo uno di scanner laser Cyberware in grado di acquisire la forma geometrica del volto e la texture creando una corrispondenza tra i punti 3D ed i pixel dell immagine texture [17, 18]. Questo metodo ha lo svantaggio di creare texture con bassa risoluzione. In 13

2.2. Generazione di texture [3] viene proposto un metodo per generare la geometria del volto e la texture attraverso l utilizzo di un database costruito utilizzando uno scanner. Nel lavoro [19] viene descritta una tecnica per acquisire la riflettività della pelle umana e per usare tale informazione per renderizzare il volto in condizioni di luci arbitrarie. La generazione di texture tramite la combinazione di informazioni provenienti da varie foto è un problema affrontato in letteratura da molti autori. In questo lavoro [20] si è proposto un approccio per ottenere la mappatura delle texture su un oggetto geometrico 3D. Partendo da un insieme di fotografie dell oggetto, le parti rilevanti di tali immagini vengono combinate in un unica texture atlas. Per fare ciò si partizionano i vertici dei triangoli che costituiscono la mesh del volto a seconda delle immagini da cui ogni vertice prende il suo colore. Ad ogni faccia della mesh che occupa una posizione di confine tra due immagini viene assegnato un pezzo di texture ottenuto come media pesata dei colori delle sezioni adiacenti corrispondenti. La risultante texture map ha però una struttura a patch che rende impossibile la generazione del mip-mapping. In generale, durante la combinazione di più immagini, a causa di differenti condizioni di illuminazioni, ombre o errori di registrazione delle immagini,può presentarsi il problema della presenza di zone di discontinuità di colore nelle zone di confine tra regioni assegnate a differenti foto. Per eliminare tale inconveniente, le informazioni provenienti dalle varie immagini vengono combinate applicando un filtro gaussiano o una funzione continua [21]. Un altra tecnica per eliminare il problema della discontinuità di colore è stata introdotta da Burt e Adelson [22] Essi propongono la tecnica spline multirisoluzione che consiste nel decomporre le immagini in bande di alta e bassa frequenza e nel combinare le informazioni delle immagini separatamente ad ogni livello. Il risultato è un unica grande immagine mosaico che combina le le informazioni provenienti dalle varie fotografie. In [9] si è proposto un sistema per generare volti tridimensionali a partire da fotografie descrivendo una tecnica di combinazione delle texture basata 14

2.3. Modello generico di un volto umano sull introduzione di una mappa di pesi. Essa verte su alcuni parametri: la visibilità(un peso zero viene assegnato ai vertici della mesh nascosti), la regolarità(i pesi devono variare in modo regolare per garantire continuità) ed infine la direzione della vista(i pesi dipendono dall angolo della direzione di vista). Cosi come in altri lavori [6, 18], essi combinano le informazioni provenienti dalle varie fotografie in un unica texture map che viene costruita su di un cilindro virtuale che circonda il modello mesh. Il mapping tra mesh e spazio tessitura viene definito tramite proiezione cilindrica. Un lavoro interessante sulla texturizzazione dei volti è quello presentato in [23]. Viene proposto un metodo per generare, a partire da alcune fotografie di un volto, texture ad alta risoluzione rappresentanti la pelle del volto ed alcune sue componenti quali denti ed occhi. Dopo aver parametrizzato nello spazio 2D la mesh 3D di input, utilizzano le tecniche di interpolazione di colore e di combinazione multirisoluzione per generare texture senza cuciture. 2.3 Modello generico di un volto umano Ogni volto umano presenta alcuni tratti essenziali quali occhi, bocca, naso. E la morfologia di tali elementi, unitamente all eventuale presenza di altri particolari, che consente di distinguere un volto da un altro. Un modello di volto generico deve possedere come caratteristica fondamentale la possibilità di essere modificato in modo tale da poter coprire una vasta gamma di volti differenti. Per rappresentare il volto viene utilizzata una mesh 3D. Il termine mesh viene usato per indicare un oggetto tridimensionale rappresentato mediante una superficie chiusa, mediante cioè un insieme di facce poste l una accanto all altra che definiscono la forma dell oggetto. Nel nostro lavoro utilizzeremo due modelli di volto differenti entrambi memorizzati in file formato VRML(Virtual Reality Modelling Language). Il linguaggio VRML permette di definire attraverso un insieme di comandi e di funzioni il comportamento e la forma 15

2.3. Modello generico di un volto umano di un insieme di oggetti che andranno a comporre la scena. Tutte le entità presenti all interno di un codice VRML sono rappresentabili come dei nodi in una struttura gerarchica che contiene il modello completo del mondo. Un nodo che rappresenta un oggetto a sua volta contiene diversi campi che permettono di specificarne ulteriori caratteristiche fra cui il colore, la forma, la dimensione, la traslazione o la texture utilizzata per renderlo maggiormente realistico. Il vantaggio di tale formato risiede nella possibilità di poter essere facilmente utilizzato dagli utenti di tutti i pacchetti commerciali che ne supportano l importazione e l esportazione. Il primo modello, beta, è costituito da 2196 vertici e 4118 triangoli mentre il secondo, reana, ha 991 vertici e 1601 facce. Entrambi sono composti da vari oggetti: occhio sinistro, occhio destro, denti e resto del volto, a ciascuno dei quali è associata una texture. Ad ognuno dei due modelli è associato inoltre l insieme degli FDP che rende possibile il processo di deformazione. (a) (b) Fig. 2.1: modelli utilizzati: beta(a), reana(b) 16

2.4. Standard MPEG-4 2.4 Standard MPEG-4 In questo progetto di tesi si è sviluppato un sistema di ricostruzione tridimensionale di un volto compatibile con le specifiche dello standard MPEG-4. Per la comprensione del metodo utilizzato è necessario introdurre i concetti fondamentali riguardanti le specifiche dello standard MPEG-4 [24]. MPEG- 4, presentato nel 1998, è il nome dato a un insieme di standard per la codifica dell audio e del video digitale sviluppati dall ISO/IEC Moving Picture Experts Group (MPEG). Lo standard definisce un sistema generico per poter creare e accedere interattivamente a contenuti multimediali di qualsiasi tipo. Essi possono essere testi, ipertesti, immagini, disegni, animazioni, filmati, suoni naturali, suoni sintetici ecc. MPEG-4 supporta tutte le caratteristiche degli standard MPEG-1 e MPEG-2 oltre a tutta una serie di nuove caratteristiche come la gestione tridimensionale degli oggetti (tramite un estensione del VRML). I flussi audio e video vengono trattati dallo standard MPEG-4 come oggetti che possono essere manipolati e modificati in tempo reale. L unità primitiva dello standard MPEG- 4 è l oggetto audiovisuale (AVO). Ogni sequenza MPEG risulta composta da più AVO, ognuno dei quali è costituito da informazioni sul contenuto dell oggetto (campioni audio e/o video) e da informazioni su come, quando e dove l oggetto vada riprodotto. Una parte interessante dello standard MPEG-4, che riguarda l argomento della nostra tesi, consiste nelle specifiche necessarie per una codifica efficiente della forma e dell animazione di volti e corpi umani.(face and Body Animation o FBA). MPEG-4 definisce un generico stato neutrale del volto unitamente a due insieme di parametri: 84 punti di definizione facciale (Facial Definition Points o FDP) e 68 punti di animazione facciale (Facial Animation Points o FAPS). Lo stato neutrale di un volto è la sua posizione prima che vi sia applicata un animazione; in questa posizione i muscoli facciali sono rilassati, la bocca è chiusa e gli occhi aperti. Gli FDP definiscono punti somatici rilevanti del volto e sono utilizzati per modificare l apparenza e la forma di un modello facciale. I FAP costituiti- 17

2.4. Standard MPEG-4 scono un insieme completo di azioni che il viso può compiere. Includono ad esempio il movimento degli occhi, della lingua e della bocca permettendo in tal modo la rappresentazione di molte delle naturali espressioni facciali. Il valore di un FAP indica l ampiezza della corrispondente azione; valori esagerati permettono di simulare azioni che normalmente non sono possibili per un volto umano ma possono caratterizzare, ad esempio, il volto di un cartone animato. In questa tesi siamo particolarmente interessati agli FDP chiamati anche punti caratteristici (Feature Point o FP). La nostra applicazione prevede un interfaccia grafica che consente all utente di specificare sulle varie immagini i vari Feature Points che costituiranno la base del processo di deformazione. MPEG-4 specifica 84 FDP, ciascuno dei quali è composto da: Numero: il numero che identifica l FDP ed il particolare gruppo a cui esso appartiene Posizione: La posizione memorizza le coordinate x,y,z relative al punto FDP. L origine è definita dal FDP 7.1. I punti giacciono in un sistema di coordinate con l asse delle x orientato verso destra, l asse delle y verso l alto e l asse delle z orientato verso l osservatore Coordinate Texture: Le coordinate texture memorizzano le coordinate nella texture map. La figura 2.2 mostra la posizione di tali punti, la tabella in appendice ne presenta una descrizione testuale. 18

2.4. Standard MPEG-4 Fig. 2.2: Gli FDP dello standard MPEG-4 19

Capitolo 3 Deformazione del volto In questo capitolo mostriamo come ottenere il modello di volto 3D corrispondente al volto rappresentato nelle foto. Poiché i volti umani sono simili in struttura ed in forma, la tecnica utilizzata consiste nel deformare un generico volto 3D in modo tale da adattarlo alla particolare geometria del volto presente nelle foto ortogonali utilizzando le informazioni che da esse vengono estratte. L input è quindi rappresentato da un generico modello 3D, nel nostro caso un modello VRML, e da fotografie ortogonali raffiguranti un volto umano visto dai vari profili. Chiameremo il generico volto 3D source model, mentre ci riferiremo al volto 3D presente nelle foto e quindi da rappresentare, come al target model. L approccio si basa sulla specifica di alcuni punti di riferimento definiti sul modello; cambiando la locazione di tali punti e la relazione fra di essi è possibile modificare la geometria e la forma del volto 3D. I punti di riferimento sono punti caratteristici del modello da deformare(occhi, naso,bocca, ecc), nel nostro caso essi coincidono con gli FDP dello standard MPEG-4 di cui abbiamo parlato nel paragrafo 2.4. Tramite una procedura interattiva l utente è in grado di specificare una serie di corrispondenze tra source model e target model; tali corrispondenze saranno alla base del processo di deformazione del source model al termine del quale i punti di riferimento del source model coincideranno con quelli del 20

3.1. Acquisizione foto ortogonali target model. E necessario quindi costruire una funzione di interpolazione che, preso l insieme dei punti di riferimento del source model e il corrispondente insieme del target model, esprima la deformazione dei punti generici del modello(non quelli di riferimento) in termini dei cambiamenti dei punti di riferimento. Questo problema di scattered data interpolation viene risolto tramite l utilizzo delle radial basis function (vedi paragrafo 3.3) ed in particolare del metodo di Hardy che presuppone la risoluzione di un sistema lineare. L intero processo può essere quindi sintetizzato in questi tre passi: acquisizione foto ortogonali specifica FDP sulle foto deformazione del volto con le radial basis function 3.1 Acquisizione foto ortogonali Il primo passo consiste nell acquisizione delle foto rappresentanti un volto umano da una semplice macchina fotografica. La posizione della macchina fotografica deve essere scelta in modo tale che le immagini risultanti riescano ad includere l intero volto. Durante l acquisizione non è richiesta alcuna speciale illuminazione; tuttavia la presenza di una illuminazione diffusa e uniforme si riflette positivamente sul risultato finale. E inoltre necessario che il soggetto assuma la stessa espressione in tutte le foto. La possibilità che le varie fotografie siano catturate a distanze o altezze diverse dal soggetto può costituire un ostacolo in fase di elaborazione delle immagini; l analisi e la risoluzione di tale problema è descritta dettagliatamente nel paragrafo successivo. Foto con risoluzioni diverse non rappresentano un problema nell elaborazione in quanto le coordinate delle immagini acquisite non fanno riferimento all unità di misura pixel ma vengono normalizzate tra 0 e 1 sia in altezza che in larghezza. Ciò consente, oltre ad utilizzare immagini con risoluzioni diverse, di avere un unico sistema di riferimento in tutte le foto. E possibile quindi 21

3.2. Specifica FDP sulle foto applicare fattori di scala all immagine senza che siano necessarie elaborazioni per il riposizionamento dei punti. L algoritmo utilizzato per normalizzare le coordinate di un punto in una foto consiste nella seguente formula: coordinate normalizzate = coordinate pixel/dimensione immagine (3.1) In altri termini se un punto viene posizionato a coordinate pixel 64x64 in una foto da 256x256 pixel, dividendo la posizione per la dimensione dell immagine si ottiene una grandezza (0,25x0,25) non più legata alla risoluzione dell immagine. Ridimensionando l immagine a 512x512 il punto (0,25x0,25) sarà collocato a 128x128, proprio come ci aspettavamo. 3.2 Specifica FDP sulle foto Come abbiamo visto nel paragrafo 2.4, lo standard MPEG-4 fornisce una parametrizzazione per l animazione facciale basata sulla fisionomia del volto in grado di definire e controllare la forma e i movimenti di un volto 3D. Esso individua due insiemi di parametri che descrivono ed animano un modello facciale 3D: i FAP (parametri di animazione facciale) e gli FDP (parametri di definizione facciale). Gli FDP sono punti caratteristici del volto 3D che permettono di localizzare le caratteristiche facciali più salienti e sono utilizzati per adattare un generico modello di volto 3D ad un modello particolare. Poiché desideriamo modificare la forma e l apparenza del generico volto 3D in modo da renderlo il più possibile somigliante a quello presente nelle foto, è necessaria una procedura interattiva di individuazione degli FDP sulle foto. Il posizionamento di uno specifico FDP nelle varie foto consente di recuperare la sua posizione 3D. Ciascuna foto ha un sistema di riferimento basato su due delle tre coordinate dello spazio del modello facciale ed ha in comune almeno un asse con almeno una delle altre foto. L insieme delle coordinate 2D proveniente dalle foto ci permette di dedurre la posizione 3D di ogni punto FDP. Ogni foto ha un sistema di riferimento con valori compresi tra 0 e 1 e un FDP 22

3.2. Specifica FDP sulle foto è composto da 3 valori che rappresentano le sue coordinate tridimensionali. Ciascuna foto fornisce solamente due di queste tre coordinate. Il fatto di dover utilizzare più foto per determinare la posizione di un punto FDP ha il seguente effetto collaterale: anche se tutte le foto condividono un sistema di riferimento compreso tra 0 e 1, questo non significa che, prese due foto che condividono uno stesso asse di riferimento, il valore assunto dall FDP in una foto corrisponda al valore dello stesso FDP nell altra foto. Come mostrato in figura 3.1, nella foto frontale abbiamo un FDP posizionato sul naso con coordinate (xa,ya). Al medesimo FDP sulla foto laterale corrisponde la coordinata (zb,yb). Qualora in fase di acquisizione delle foto non siano stati utilizzati accorgimenti tali che la distanza e la posizione della camera rispetto al soggetto rimanessero costanti, il valore ya è diverso da yb. Tutto questo comporta che la coordinata y dell FDP è indeterminata in quanto assume valori diversi; ciò è dovuto al fatto che tra le due foto è presente un errore di traslazione (la fotocamera presentava due altezze diverse rispetto al soggetto) oppure un errore di scala(la fotocamera aveva due distanze diverse rispetto al soggetto). E quindi necessario fornire alle foto che condividono uno stesso asse carte- Fig. 3.1: siano, un sistema di riferimento omogeneo che consenta di annullare l errore. A tale scopo vengono posizionati due punti di controllo su ogni foto nelle 23

3.2. Specifica FDP sulle foto medesime zone del volto. Riferendosi all esempio precedente, dati i punti di controllo a 1 e a 2 sulla foto frontale e b 1 e b 2 sulla foto laterale, tramite la seguente espressione ((ya a 1y a 2y + a 1y b 1y )/ b 1y b 2y = yb (3.2) esiste una corrispondenza biunivoca tra ya e yb. Avendo trovato una corrispondenza biunivoca, scegliamo di utilizzare uno dei due valori come componente y dell FDP. E una condizione necessaria dover poi utilizzare sempre i valori provenienti della medesima foto per dedurre i valori della coordinata y dei restanti FDP. Questo è generalizzabile su tutte e tre le coordinate e su un numero arbitrario di foto. Grazie alla corrispondenza biunivoca venutasi a creare tra le varie foto, modificando la posizione di un punto FDP in una foto, automaticamente in tutte le foto che condividono uno dei due assi cartesiani il corrispondente FDP subisce un alterazione che soddisfa l espressione 3.2. Non è richiesto in tal modo alcun riposizionamento dell FDP in ciascuna foto. Come approfondiremo nel paragrafo successivo, il processo di deformazione considera l insieme degli FDP presenti nel source model(fs) e l insieme degli FDP acquisiti dalle foto(ft) per determinare una funzione di interpolazione che sia in grado di mappare gli FS negli FT. Il preciso posizionamento degli FDP si riflette quindi positivamente sul risultato della deformazione. Poiché è difficile localizzare alcuni punti(soprattutto nel caso in cui non siano presenti alcune foto) ed il processo di inserimento potrebbe risultare lungo e noioso, si è implementata una procedura semplice ma efficace di estrazione degli FDP che faciliti ed agevoli l inserimento. L idea si basa su successive applicazioni del processo di deformazione che conducono a successivi raffinamenti della posizione degli FDP. Nel primo passo vengono acquisiti sono alcuni FDP di facile individuazione. A questo punto viene calcolata la funzione di interpolazione che permette la mappatura di tali punti. Tale funzione viene poi applicata ai restanti punti sul volto 3D per suggerire all utente la relativa posizione degli FDP(vedi figura xx). 24

3.3. Morphing con le radial basis function L intero processo può essere reiterato migliorando la precisione della funzione di interpolazione, sino a quando tutti gli FDP non assumeranno la posizione corretta. 3.3 Morphing con le radial basis function In questo paragrafo mostriamo come deformare il source model in modo da adattarlo alla forma del volto presente nelle foto. L idea consiste nel definire una funzione di interpolazione in grado di mappare gli FDP del source model negli FDP rappresentati dai punti acquisiti dalle foto e nell utilizzare tale funzione per deformare i restanti vertici del source model. Poiché gli FDP non sono regolarmente distribuiti sull intera superficie, si tratta di risolvere un problema standard di scattered data interpolation che può essere formalizzato cosi: Dato un insieme di punti P = p i con i = 1... n definito sul source model e il corrispondente insieme di punti Q = q i con i = 1... n nel target model, trovare una funzione tale che: F (p i ) = q i (3.3) Tale funzione, applicata ad un punto non landmark del source model, consente di ottenere il corrispondente punto nel target model. Ci sono vari metodi per l individuazione della funzione di interpolazione. La scelta è caduta sulle radial-basis-function (funzioni a base radiale) che risultano particolarmente efficaci quando i punti feature non sono distribuiti regolarmente [25]. Una radial basis function (RBF) è una funzione il cui valore dipende dalla distanza da un punto detto centro. Il metodo di interpolazione è semplicemente una combinazione lineare di tali funzioni: n F (x) = λ i φ( x p i ) (3.4) i=1 25

3.3. Morphing con le radial basis function dove λ i è il peso associato al punto p i e φ denota la radial basis function. In alcuni casi, per assicurare la precisione lineare della trasformazione, è necessario aggiungere un polinomio. Siano {π 1,... π d } le basi di un polinomio L di grado d e siano {v 1,... v d } i coefficienti che consentono di ottenere L in termini di queste basi. La funzione di interpolazione diviene cosi: n d F (x) = λ i φ( x p i ) + v c π c (p j ) (3.5) i=1 c=1 Per determinare i coefficienti λ i basta semplicemente sostituire la condizione F (p i ) = q i nell equazione precedente: n d F (x) = λ i φ( x p i ) + v c π c (p j ) = q i (3.6) i=1 c=1 Per la precisione lineare, richiediamo inoltre che: n λ i = 0, i=1 n λ i π c (p i ) = 0 (3.7) i=1 ottenendo il seguente sistema di equazioni: φ 11 φ 12 φ 1n π 1 (p 1 ) π 2 (p 1 ) π d (p 1 ) φ 21 φ 22 φ 2n............... φ n1 φ n2 φ nn π 1 (p n ) π 2 (p n ) π d (p n ) π 1 (p 1 ) π 2 (p 1 ) π d (p 1 ) 0 0 0 0... 0 0 0 0 π 1 (p n ) π 2 (p n ) π d (p n ) 0 0 0 0 λ 1 λ 2. λ n v 1. v d = q 1 q 2. q n 0. 0 Denotando con: A ij = φ( p i p j ) con i, j = 1... n Π ij = π j (p i ) con j = 1... d e i = 1... n λ = [λ 1,..., λ n ] T Q = [q 1,..., q n ] T 26

3.4. Scelta della radial basis function V = [v 1... v d ] T Il precedente sistema può essere scritto come: A Π Π T 0 λ V = Q 0 (3.8) Il sistema ottenuto può essere riscritto in maniera tale da evidenziare l influenza dei valori del dominio della funzione su λ e V. Sia C D la matrice inversa della matrice A Π ; moltiplicandola E F Π T 0 a sinistra nell equazione 3.8 otteniamo: λ V = C E D F Q 0 = C Q (3.9) E dove C è la matrice che rappresenta l influenza dei valori del dominio della funzione su λ e E è la matrice che esprime l influenza su v. La funzione di interpolazione nel dominio X, derivata dagli insiemi P e Q, può essere riscritta cosi: Φ(X, P 1 ) Π(X) F (X, P, Q) = Q CT. + ET. Φ(X, P n ) Π(X) (3.10) 3.4 Scelta della radial basis function Esistono varie radial basis function. Una classificazione può essere effettuata sulla base degli effetti locali o globali, che esse producono nel processo di deformazione. Una trasformazione è globale se è dipendente da tutti i punti di controllo:lo spostamento di uno di essi produce degli effetti sull intero volto; diversamente in una trasformazione locale gli effetti si localizzano in un area 27

3.4. Scelta della radial basis function ristretta in prossimità del punto. Nella scelta di quale radial basis function adottare per la deformazione del volto, si deve attribuire particolare importanza, quindi al comportamento che essa assume a fronte di un cambiamento di un punto di controllo. E da prediligere infatti una funzione che produca effetti locali mantenendo nel contempo un certo grado di regolarità. Per determinare quale sia l influenza di uno spostamento di un FDP target sull intera trasformazione utilizziamo la serie di Taylor che consente di esprimere la funzione interpolante in maniera approssimata. La serie di Taylor in una dimensione (x), è: con: dove: F (X, P, Q x + Q x ) = F (X, P, Q x ) + F (X, P, Q x) Q x Q x + O( Q x 2 ) Φ(X, P 1 ) Π(X) F (X) = Q x. + ET. Φ(X, P n ) Π(X) Q x è l insieme delle coordinate x dei punti target (3.11) O( Q x 2 ) = 0 poichè tutte le derivate parziali di ordine superiore sono uguali a zero C è la matrice che rappresenta l influenza dei valori del dominio della funzione su λ e E è la matrice che esprime l influenza su v. Supponiamo di avere come punti source l insieme P = {P 1 = 20, P 2 = 5, P 3 = 18, P 4 = 40} e come punti target l insieme Q = {Q 1 = 20, Q 2 = 0, Q 3 = 21, Q 4 = 40} 28

3.4. Scelta della radial basis function Qui di seguito analizzeremo le varie radial basis function mostrando per ciascuna di esse due grafici: il primo mostra l andamento della funzione considerata; il secondo presnta l influenza di ogni punto target sull insieme dei F (X) F (X) punti del dominio mostrando ( Q j = Q xj, j = 1,...4), il terzo mostra la derivata della funzione considerata. In tutti i casi ci limiteremo allo studio della sola dimensione x. Le radial basis function gaussiana e di hardy presentano un parametro σ che regola la rigidità della deformazione. Esso è arbitrario, ma per garantire che la deformazione sia morbida nell area in cui punti sono più sparsi e rigida nell area in cui i punti sono più fitti, viene calcolato come: min j=1,...n,i j p i p j (3.12) 29

3.4. Scelta della radial basis function 1 0,96 0,92 0,88 0,84 0,8 0,76 0,72 0 0,04 0,08 0,12 0,16 0,2 0,24 0,28 RBF Linear 0 0 0 0 0 0 0 0 0 0 0 φ(r) = 0 r 0 0 0 0-20 -19-18 -17-16 -15-14 -13 influenza 1 0,9 0,8 0,7 0,6 0,5 0,4 0,3 0,2 0,1 0-20 -15-10 -5 0 5 10 15 20 25 30 35 x influenza Q1 influenza Q2 influenza Q3 influenza Q4 F(x) F(x) F(x) Fig. 3.2: grafico influenza della funzione lineare 50-20 1 0 0 0-20 40-19 0,96 0,04 0 0-19,2-18 0,92 0,08 0 0-18,4 30 50-17 0,88 0,12 0 0-17,6 20 40-16 0,84 0,16 0 0-16,8 10-15 0,8 0,2 0 0-16 30 0-14 0,76 0,24 0 0-15,2 20-10-13-20 -15 0,72-10 -5 00,285 10 150 20 25 030 35-14,4 10-12 0,68 0,32 0 0-13,6-20 0-11 0,64 0,36 0 0-12,8-30-10 0,6 0,4 0 0-12 -10-20 -15-10 -5 0 5 10 15 20 25 30 35-9 0,56 0,44 x 0 0-11,2-20 -8 0,52 0,48 0 0-10,4-30 -7 0,48 0,52 0 0-9,6-6 0,44 0,56 x 0 0-8,8-5 0,4 0,6 0 0-8 -4 0,36 0,64 0 0-7,2-3 0,32 0,68 0 0-6,4-2 Fig. 3.3: 0,28 grafico0,72 andamento 0della funzione 0 lineare -5,6-1 0,24 0,76 0 0-4,8 0 0,2 0,8 0 0-4 1 0,16 0,84 0 0-3,2 50 2 0,12 0,88 0 0-2,4 40 3 0,08 0,92 0 0-1,6 30 4 0,04 0,96 0 0-0,8 20 5 0 1 0 0 0 30 10 6 0 0,923077 0,076923 0 1,615383 0 7 0 0,846154 0,153846 0 3,230766 8 0 0,769231 0,230769 0 4,846149-10 -20-15 -10-5 0 5 10 15 20 25 30 35 9 0 0,692308 0,307692 0 6,461532-20 10 0 0,615385 0,384615 0 8,076915-30 x lineare lineare lineare

33 0 0 0,318182 0,681818 33,954542 0,863626 34 0 0 0,272727 0,727273 34,818187 0,863645 35 0 0 0,227273 0,772727 35,681813 0,863626 36 0 0 0,181818 0,818182 36,545458 0,863645 37 0 0 0,136364 0,863636 37,409084 0,863626 38 0 0 0,090909 0,909091 38,272729 0,863645 39 0 0 0,045455 0,954545 39,136355 0,863626 40 3.4. Scelta della radial basis function f'(x) 1,8 1,6 1,4 1,2 1 0,8 0,6 0,4 0,2 0-19 -14-9 -4 1 6 11 16 21 26 31 36 x derivata lineare Fig. 3.4: grafico derivata della funzione lineare RBF Cubic φ(r) = r 3 2 1,5 influenza 1 0,5 0-20 -0,5-15 -10-5 0 5 10 15 20 25 30 35 influenza Q1 influenza Q2 influenza Q3 influenza Q4-1 x Fig. 3.5: grafico influenza della funzione cubica 31

3.4. Scelta della radial basis function F(x) F(x) 50 40 30 20 10 50 0 40-10 -20 30-15 -10-5 0 5 10 15 20 25 30 35-20 20-30 10 0 x -10-20 -15-10 -5 0 5 10 15 20 25 30 35-20 -30 Fig. 3.6: grafico andamento della funzione cubica x cubica cubica 2 derivata cubica 1,5 1 f'(x) f'(x) derivata cubica 0,5 2 0 1,5-19 -0,5 1-14 -9-4 1 6 11 16 21 26 31 36-1 0,5 x 0-19 -0,5-14 -9-4 1 6 11 16 21 26 31 36-1 x influenza influenza 1,4 1,2 1 0,8 Fig. 3.7: grafico derivata della funzione cubica 0,6 0,4 1,4 0,2 1,2 01-0,2 0,8-20 -15-10 -5 0 5 10 15 20 25 30 35 32-0,4 0,6 0,4 x 0,2 0-0,2-20 -15-10 -5 0 5 10 15 20 25 30 35-0,4 x influenza Q1 influenza Q2 influenza Q3 influenza Q4 influenza Q1 influenza Q2 influenza Q3 influenza Q4

1,5 1 f'(x) 0,5 0-19 -0,5-14 -9-4 1 6 11 16 21 26 31 36-1 RBF Thin-plate spline x 3.4. Scelta della radial basis function φ(r) = r 2 log(r) influenza 1,4 1,2 1 0,8 0,6 0,4 0,2 0-0,2-20 -15-10 -5 0 5 10 15 20 25 30 35-0,4 x influenza Q1 influenza Q2 influenza Q3 influenza Q4 Fig. 3.8: grafico influenza della funzione thin-splate F(x) 50 40 30 20 10 0-10 -20-15 -10-5 0 5 10 15 20 25 30 35-20 -30 x thin-plate f'(x) 1,8 1,6 1,4 1,2 1 0,8 0,6 0,4 0,2 0 Fig. 3.9: grafico andamento della funzione thin-splate -19-14 -9-4 1 6 11 16 21 26 31 36 x 33 derivata thin

F(x) F(x) f'(x) f'(x) influenza 20 10 0 50-10 -20 40-15 -10-5 0 5 10 15 20 25 30 35-20 30-30 20 10 x 3.4. Scelta della radial basis function -30 1,8 1,6 x 1,4 1,2 1 0,8 0,6 0,4 1,8 0,2 1,6 1,4 0 1,2-19 -14-9 -4 1 6 11 16 21 26 31 36 1 x 0,8 0,6 0,4 0,2 0 RBF Gaussian influenza 0-10 -20-15 -10-5 0 5 10 15 20 25 30 35-20 1,2 1 0,8 0,6 Fig. 3.10: grafico derivata della funzione thin-splate -19-14 -9-4 1 6 11 16 21 26 31 36 φ(r) = e ( r2 σ ) 0,4 1,2 0,2 1 0 0,8-20 -15-10 -5 0 5 10 15 20 25 30 35-0,2 0,6 x 0,4 0,2 0-20 -15-10 -5 0 5 10 15 20 25 30 35-0,2 x x thin-plate thin-plate derivata thin derivata thin influenza Q1 influenza Q2 influenza Q3 influenza Q4 influenza Q1 influenza Q2 influenza Q3 influenza Q4 Fig. 3.11: grafico influenza della funzione gaussiana 34

3.4. Scelta della radial basis function f'(x) F(x) F(x) 50 40 30 20 10 gaussiana 0 50-20 -10 40-15 -10-5 0 5 10 15 20 25 30 35-20 30-30 20 x gaussiana 10 0-20 -15-10 -5 0 5 10 15 20 25 30 35-10 Fig. 3.12: grafico andamento della funzione gaussiana -20-30 derivata gaussiana 2,5 x 2 1,5 1 f'(x) 0,5 2,5 0-19 -14-9 -4 1 6 11 16 21 26 31 36 2 x 1,5 1 derivata gaussiana influenza influenza 0,5 1,2 0-19 1-14 -9-4 1 6 11 16 21 26 31 36 0,8 x 0,6 0,4 0,2 1,2 0 Fig. 3.13: grafico derivata della funzione gaussiana -0,2 1-20 -15-10 -5 0 5 10 15 20 25 30 35-0,4 0,8 0,6 x 0,4 0,2 0 35-0,2-20 -15-10 -5 0 5 10 15 20 25 30 35-0,4 x influenza Q1 influenza Q2 influenza Q3 influenza Q4 influenza Q1 influenza Q2 influenza Q3 influenza Q4

derivata gaussiana 2,5 2 f'(x) 1,5 1 3.4. Scelta della radial basis function 0,5 RBF Hardy multiquadrics 0-19 -14-9 -4 1 6 11 16 21 26 31 36 φ(r) = r 2 + σ 2 x influenza 1,2 1 0,8 0,6 0,4 0,2 0-0,2-20 -15-10 -5 0 5 10 15 20 25 30 35-0,4 x influenza Q1 influenza Q2 influenza Q3 influenza Q4 Fig. 3.14: grafico influenza della funzione hardy F(x) 50 40 30 20 10 0-10 -20-15 -10-5 0 5 10 15 20 25 30 35-20 -30 x hardy Fig. 3.15: grafico andamento della funzione hardy 36 '(x) 2 1,8 1,6 1,4 1,2 1 derivata hardy

x 3.4. Scelta della radial basis function f'(x) 2 1,8 1,6 1,4 1,2 1 0,8 0,6 0,4 0,2 0-19 -14-9 -4 1 6 11 16 21 26 31 36 x derivata hardy Fig. 3.16: grafico derivata della funzione hardy Lo scopo di questi grafici è quello di mostrare quale tra le funzioni analizzate sia la più adatta a rivestire il ruolo di funzione di interpolazione nel nostro processo di deformazione del volto. In linea generale siamo alla ricerca di una radial basis function che abbia regioni di influenza limitata e presenti un andamento morbido e regolare. Guardando i grafici xx, poniamo l attenzione su quelle radial basis function la cui influenza in un punto Q i sia alta in prossimità di P i e tenda a decrescere in maniera rapido allontanandosi da esso. Il motivo per cui siamo interessati a ricercare una funzione RBF con tale andamento è dovuto al fatto che in tale circostanza la funzione RBF effettua la deformazione della mesh esclusivamente nella zona limitata e definita dalla posizione assunta dall FDP Q i. Tale approccio porta il vantaggio che l FDP Q i non ha influenza sulla deformazione nelle restanti zone della mesh. In conclusione quello che vogliamo avere è che modificando la posizione assunta dall FDP Q i abbiamo nella mesh una deformazione localizzata nell intorno dell FDP P i. Ad esempio la funzione RBF cubica presenta una deformazione non localizzata: ogni FDP Q i produce un influenza anche al di fuori dell area che circonda il corrispettivo FDP P i. Oltre alla tipologia di deformazione, locale o meno, abbiamo bisogno che la deformazione della mesh abbia un andamento regola- 37

3.4. Scelta della radial basis function re e morbido tra le varie zone localizzate dai vari FDP P i. Il rischio in cui si può incorrere è che la funzione RBF per passare da una zona localizzata dall FDP P i alla zona adiacente, localizzata dall FDP P j, introduca una brusca variazione sul profilo della mesh. Per studiare tale fenomeno si è pensato di calcolare la derivata delle varie funzioni RBF. Il grafico risultante permette facilmente di evidenziare l andamento che avrà la mesh e in quale zone presenterà delle brusche variazioni nel proprio profilo 3D. Questo perchè la mesh finale è il risultato dell applicazione della funzione RBF. Nel caso in cui la curva della RBF presenta delle irregolarità in alcune zone, evidenziate da una veloce variazione della pendenza dalla funzione derivata, anche la mesh finale presenterà irregolarità nelle medesime zone. Poniamo quindi l attenzione su quelle radial basis function in cui non siano presenti brusche variazioni che possono indurre la presenza di zone spigolose nella deformazione. Considerando i fattori di linearità della derivata e località della RBF, la radial basis function di Hardy sembra la più adatta ai nostri scopi. Non presenta variazioni improvvise nella funzione derivata, quindi la modellazione risulta essere regolare e morbida su tutta la mesh, e allo stesso tempo possiede una localizazzione nella deformazione della mesh. Questo studio analitico è stato verificato tramite uno studio pratico: partendo dalla medesima mesh e dallo stesso insieme FDP finale, abbiamo applicato separatamente le varie funzioni RBF e abbiamo quindi messo a confronto i vari modelli finali. Il risultato migliore si è intuitivamente ottenuto con l uso della multiquadrica di Hardy. In figura xx è mostrato come essa riesca ad adattare bene la mesh 3D al volto presente nelle foto. 38

3.4. Scelta della radial basis function Fig. 3.17: Fig. 3.18: 39

3.5. Algoritmo di deformazione 3.5 Algoritmo di deformazione L algoritmo utilizzato per il processo di deformazione del volto generico iniziale può essere concettualmente suddiviso in tre parti: costruzione del sistema di equazioni descritto nel paragrafo 3.3 risoluzione del sistema calcolo della funzione di interpolazione e applicazione ai vertici del modello La risoluzione del sistema avviene tramite la fattorizzazione LU che è descritta nell appendice B. Il costo computazionale per la risoluzione del sistema è O(n 3 ) dove n è il numero di FDP. Una volta determinati i coefficienti è necessario applicare la funzione di interpolazione su tutti i vertici del modello in modo tale da produrre la deformazione. Per determinare la nuova posizione di un vertice il costo è pari a O(n), per deformare l intera mesh il costo diventa quindi O(n m) dove m è il numero di vertici. Il costo complessivo dell intero processo di deformazione è quindi il massimo tra la fattorizzazione LU e la deformazione della mesh: max(o(n 3 ), O(n m)) in quanto n 2 può essere sia minore che maggiore di m a seconda del tipo di mesh da deformare. 40

Capitolo 4 Texturizzazione del volto Un volto umano può essere pensato come la combinazione di due elementi: una componente geometrica che ne definisce la forma e una componente texture che ne definisce l apparenza e aggiunge quel grado di dettaglio fondamentale per la caratterizzazione del volto. Nel processo di realizzazione del volto rappresentato nelle foto, la texturizzazione assume quindi un ruolo fondamentale: a differenza di ciò che accade per la deformazione, piccole imprecisioni, anche locali, possono influire negativamente sul grado di realismo finale. Nel precedente capitolo abbiamo visto come deformare la componente geometrica del source model affinché coincida con quella del volto presente nelle foto; in questo capitolo ci occuperemo invece di come ottenere la componente texture. Dato il modello 3D e dato un insieme di immagini prese da diversi punti di vista, il metodo che descriveremo si propone di costruire delle texture che integrino le informazioni di colore contenute nelle immagini d ingresso, ottimizzando la rappresentazione degli attributi di colore. Poiché in input si hanno varie foto del volto secondo diverse inquadrature, sorge il problema di come combinare le varie foto per generare le texture da mappare sul volto. Se le foto non presentano le medesime condizioni di illuminazione, il colore della pelle può differire notevolmente tra le varie immagini 41

4.1. Texture mapping e in tal caso si hanno sgradevoli effetti di discontinuità di colore sul volto finale laddove si è operata una combinazione tra le varie foto. E necessario quindi ideare un algoritmo adattivo che consenta di evitare il presentarsi di zone poco realistiche sul volto causate da differenti tonalità di colore tra le foto. La tecnica adottata a tale scopo è basata sul cube mapping; nei successivi paragrafi ne presenteremo le caratteristiche, i vantaggi rispetto alle tecniche tradizionali e mostreremo come il suo utilizza preveda una prima fase di generazione delle texture seguita da una fase di applicazione delle texture sul volto. 4.1 Texture mapping Il texture mapping è una delle tecniche più diffusa nella grafica 3D e trova grande applicazione in quei rami della computer graphics in cui il realismo è uno dei fattori predominanti. Esso permette di applicare un immagine sopra una superficie in modo da simulare un grado di dettaglio superiore a quello raggiungibile mediante la sola modellazione. Attraverso l utilizzo della texture si ottengono ottimi risultati in termini di realismo di una scena computerizzata, infatti l immagine applicatale ne varia le proprietà di superficie punto per punto, così da fornire un apparente livello di dettaglio che invece non è presente nella geometria della superficie. Ovviamente si tratta di una tecnica complessa che richiede una notevole potenza di elaborazione visto che le immagini vengono elaborate pixel per pixel. Il vantaggio del texture mapping è quello di elevare notevolmente il realismo della scena rappresentata, evitando di modellare e renderizzare tutti i dettagli tridimensionali di una superficie. Senza texture mapping la grafica risulta vuota e irrealistica. Il principio del Texture Mapping è poi alla base di tutta una serie di effetti come il Bump Mapping, il reflaction Mapping, le light map, le shadow map, nei quali la texture è usata per applicare proprietà alla 42

4.1. Texture mapping superficie e non banalmente colore. La sua applicazione prevede una prima fase di parametrizzazione della superficie: è necessario assegnare ad un punto P della superficie delle coordinate texture associate ai pixel (o texel) dell immagine rappresentante la texture. Il punto viene poi mappato dalla proiezione in un punto dello schermo (xs,ys). La figura 4.1 mostra l intero processo dal dominio texture allo spazio schermo. Una texture è un immagine che rappresenta la tessitura visiva della superficie Fig. 4.1: Processo di texturizzazione. e viene mappata sui poligoni che modellano gli oggetti della scena. Nel caso bidimensionale una texture è definita all interno del piano (u,v) chiamato spazio tessitura e le coordinate texture assumono generalmente valori tra 0 e 1; la posizione (0,0) indica l angolo in alto a destra nell immagine texture, la posizione (1,1) l angolo in basso a sinistra. Le coordinate texture sono usualmente specificate per ogni vertice di ogni poligono che compone l oggetto, definendo in tal modo un mapping tra il poligono della superficie e il poligono tessitura. Ad ogni vertice del poligono corrisponde un punto all interno dell immagine, per gli altri punti interni al poligono viene utilizzata l interpolazione lineare. La texture può essere applicata alla superficie dell oggetto con vari tipi di proiezione: planare, cubica, sferica e cilindrica. Il tipo più adatto viene scelto in base alla texture da proiettare ed alla forma dell oggetto su cui sarà proiettata. In tutti i casi il processo consiste nel definire la forma geometrica scelta( piano, cilindro, 43

4.2. Cube Map sfera o cubo) e nel proiettare su di essa i vertici dell oggetto, derivando le coordinate texture dalle coordinate del vertice. Ciascun tipo di mappatura produce diversi artefatti: la proiezione frontale è adatta nel caso in cui si voglia osservare la superficie da un particolare punto di vista; le proiezioni sferiche e cilindrica limitano la presenza di artefatti alle zone dei poli. Nel nostro lavoro di tesi focalizzeremo l attenzione sulla proiezione cubica di cui parleremo nel seguente paragrafo. 4.2 Cube Map La cube map è un particolare tipo di texture composta da sei immagini bidimensionali della stessa dimensione, rappresentanti le sei facce di un cubo centrato nell origine. Ogni texel del cubo rappresenta ciò che può essere visto dall origine verso quella direzione. Nella figura 4.2 è mostrato un esempio. Fig. 4.2: cube map Per determinare quale delle sei texture e quale texel associare ad ogni vertice, si utilizza una tripla di coordinate texture che rappresentano un vettore direzione 3D. Tale vettore può essere pensato come un raggio che viene emanato dal centro del cubo e raggiunge uno dei sei lati del cubo. La tecnica del cube mapping viene generalmente utilizzata per l environment mapping che permette effetti di riflessione molto realistici di un oggetto nella scena in cui si trova e consente quindi di dare l impressione che l oggetto 44