UNIVERSITÀ DEGLI STUDI DI MILANO BICOCCA

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "UNIVERSITÀ DEGLI STUDI DI MILANO BICOCCA"

Transcript

1 UNIVERSITÀ DEGLI STUDI DI MILANO BICOCCA FACOLTÀ DI SCIENZE MATEMATICHE FISICHE E NATURALI Dpartmento d Informatca Sstemstca e Comuncazone Corso d Laurea n Informatca ALGORITMI DI MORPHING FACCIALE PER IMMAGINI Relatore: Prof. Ramondo Schettn Correlatore: Dott. Claudo Cusano Tes d Laurea d: Bramblla Andrea Matrcola: Anno Accademco 2006 / 2007

2

3 Rngrazament Prma d nzare con la parte noosa, vorre spendere un pao d rghe per esprmere la ma grattudne verso tutte quelle persone che hanno, a loro modo, contrbuto alla realzzazone d questo elaborato. I me prm rngrazament sono rvolt al professor Ramondo Schettn, che m ha dato l opportuntà d applcarm n questo progetto, al dottor Claudo Cusano e al dottor Alessandro Colombo, che con la loro competenza e pazenza hanno saputo smuoverm dalle frequent stuazon d stallo, sopportando al contempo la ma enorme testardaggne. Volevo po rngrazare ma madre Stefana, mo padre Aurelo e ma sorella Clauda, per tutta la fduca che hanno rposto n me n quest ann e per l loro contnuo supporto morale, senza l quale avre probablmente perso gran parte della ma nzatva e della ma gà poca vogla d fare. Un enorme graze è dedcato nvece ad una sere d persone a me molto care, ovvero Chrs, Elle, Casta, Lau, Frank, Rno e Marta, che, anche ne perod d lavoro pù ntenso, s sono sempre preoccupate d non farm dmentcare come s fa a dvertrs. Infne rngrazo d cuore tutt me collegh unverstar per tutto l tempo trascorso n compagna durante quest ann d studo, dalle ore ntermnabl passate su lbr prma degl esam, a moment d svago davant a una brra o sulle pste da sc. Andrea III

4

5 Indce Introduzone... 1 Captolo 1: Il Morphng Morphng e deformazone delle mmagn Approcc not Approcco proposto... 7 Captolo 2: L Algortmo Morphng framework Warpng con Mnm Quadrat Mobl Blendng Transton Control Captolo 3: L Implementazone Struttura dell applcazone Algortmo d Warpng Ottmzzazon Temp d generazone Captolo 4: Anals de Rsultat Morphng tra due volt Morphng tra tre volt Verfca ottmzzazon Valutazone de temp Captolo 5: Concluson e Svlupp Futur Bblografa V

6

7 Introduzone Introduzone Crca trent ann fa uscvano nelle sale cnematografche due de flm che sarebbero po stat consderat prm capolavor della fantascenza: Star Wars e Blade Runner; tutt rmasero mpressonat dagl ncredbl effett specal e dalle dettaglate ambentazon futurstche, pensare che vennero grat quas esclusvamente con l utlzzo d semplc modelln sembra quas mpossble. Rspetto a quel perodo sono stat comput pass da ggante n ambto tecnologco, al gorno d ogg è possble generare nter mond vrtual tramte l utlzzo d un banale pc casalngo, lascando pupazz e mnature alla polvere de muse; n concomtanza con l contnuo svluppars d questo campo, assume sempre una maggore mportanza l elaborazone d metodologe apposte per creare e anmare ambent realstc, n partcolare quando c s trova a dover gestre soggett dalle sembanze umane. Lo stage, svolto presso l Imagng and Vson Laborator dell Unverstà d Mlano Bcocca, verte propro sullo studo d una delle pù note tecnche sfruttate n questo ambto: l morphng, pù noto anche come face morphng n quanto spesso applcato a mmagn d volt uman. Questo elaborato, che rassume l lavoro computo negl ultm mes, ha lo scopo d ntrodurre, a lvello ddattco, questa nteressante tecnca, elaborandone contemporaneamente un nnovatvo approcco basato su Mnm Quadrat Mobl; tutto cò è accompagnato dallo svluppo d una semplce applcazone che mplementa svarate funzonaltà d morphng, tutte basate sul metodo presentato. Per ntrodurre questa breve trattazone vene nnanztutto defnto n modo formale l concetto morphng (Par. 1.1), dandone una prma dea della struttura d fondo e delle sue component; seguono po una sntetca anals sugl approcc svluppat fno ad ora (Par. 1.2) ed una presentazone dell approcco proposto (Par. 1.3). Nel secondo captolo è possble trovare tutt dettagl teorc sulla struttura dell algortmo d morphng con la relatva applcazone del metodo de Mnm Quadrat Mobl, mentre quello successvo è dedcato alla realzzazone dell applcazone, vene percò computa un ulterore elaborazone dello studo fnora effettuato n modo da ottenerne una versone ottmzzata e adatta ad essere mplementata. Nel captolo 4 sono rportat una - 1 -

8 Introduzone sere test, con la relatva anals de rsultat, per mettere n evdenza preg e dfett del lavoro svolto; per fnre, nell ultmo captolo, s trovano una sere d consderazon conclusve e vengono fornt dvers spunt per eventual svlupp futur

9 Captolo 1 Il Morphng Captolo 1: Il Morphng Come d consueto, l prmo captolo è dedcato ad una breve ntroduzone dell argomento, verrà qund llustrato l morphng dal punto d vsta matematco, cercando d darne una defnzone formale e presentando una sere d lnee guda da rspettare per realzzarne una corretta mplementazone; prma d ntrodurre l approcco proposto verrà fatta una panoramca generale sugl algortm pù dffus n questo ambto, valutandone preg e dfett, ndcando n partcolare cosa ha fatto emergere la necesstà d elaborare un metodo alternatvo. A conclusone del captolo vene appunto data una prma descrzone del nuovo algortmo elaborato con suo vantagg e svantagg, noltre vene brevemente ntrodotto l concetto d polmorphng. 1.1 Morphng e deformazone delle mmagn La metamorfos (morphng) delle mmagn s è dmostrata essere uno strumento utle e versatle n molt camp, dall anmazone dgtale all elaborazone d mmagn medche. Gl esemp pù not s trovano certamente nell area cnematografca, con prm approcc utlzzat ne flm della sere Indana Jones o n Termnator 2 [01], n cu le trasformazon del T1000 sono state completamente realzzate con algortm d morphng; una varante d quest algortm (Vew Morphng [02]) è stata nvece utlzzata n The Matrx [03] dove vene smulata la rotazone della telecamera ntorno a determnat element (Flo-Mo), mentre, n realtà, la scena è stata flmata da tre dverse telecamere statche. Altre applcazon note sono le tpche trasformazon da un volto ad un altro, utl per la generazone d potetc volt - 3 -

10 Captolo 1 Il Morphng Fgura 1.1: Morphng come composzone d Warpng e Blendng. mancant su un albero genealogco o per valutare come s possa alterare l volto d una persona al varare dell età o dell espressone del vso (creazone d dentkt). Nella formulazone pù comune, la generazone d un morphng consste nel determnare un mmagne ntermeda tra due mmagn sorgent; l processo s dvde prncpalmente n due part, la deformazone (warpng) e l nterpolazone (blendng). Il warpng consste nel determnare una deformazone controllata dell mmagne sorgente: su d essa devono essere specfcat de punt d controllo (landmarks), la cu tpologa dpende dall approcco utlzzato (d norma sono punt sngol ma possono anche essere lnee o grgle); varando la poszone o l orentamento d quest punt, l mmagne deve deformars n modo coerente ed ntutvo. Dal punto d vsta matematco l warpng può 2 2 essere defnto come una funzone f : R R che mappa punt dell mmagne nzale n quell dell mmagne deformata: applcando f a ogn punto v dell mmagne sorgente s ottene l mmagne deformata. Sano ora S s, s, 2, l nseme de punt d controllo nella loro poszone nzale, e { 1 K s n } { d, d, 2 } D 1 K, d n rspettv punt nella loro poszone fnale, allora la funzone f deve sottostare a tre seguent vncol: - Interpolazone: ogn punto d controllo deve essere mappato nel relatvo punto d destnazone ( f ( s ) d per ogn tra 1 e n) - Contnutà: la deformazone ottenuta deve essere morbda e senza evdent dscontnutà - 4 -

11 Captolo 1 Il Morphng - Identtà: se la poszone fnale de landmark è dentca a quella nzale, allora l mmagne non deve essere deformata ( f (v) v per ogn punto v dell mmagne) Queste propretà sono molto sml a quelle utlzzate nell nterpolazone d dat spars, e questo spega per quale motvo molt metod d morphng sfruttano dverse tecnche nzalmente elaborate per l nterpolazone. Il blendng nvece è una semplce meda pesata de valor de punt che compongono le mmagn sorgent, tenendo ovvamente n consderazone che, dato un punto v dell mmagne d destnazone, suo corrspondent nelle sorgent non sono punt nella stessa poszone d v, ma bensì quell determnat tramte l warpng. Detto questo, è ovvamente pù vantaggoso applcare prma l warpng rspetto al blendng nella generazone d un morphng. 1.2 Approcc not Quello che s rtene essere l prmo vero e propro algortmo d morphng rsale al 1992, svluppato da Beer e Neel [04] e che prenderà po l nome d Feld Morphng ; questo metodo, basato sull nterpolante d Shepard [05], è molto semplce e rapdo, utlzza nfatt due sole lnee come punt d controllo, d altra parte la qualtà delle deformazon generate è puttosto bassa e capta spesso che l mmagne fnale sa nnaturale e present de dfett dett ghost effect (foldback). Come s può notare n Fgura 1.2, un foldback non è altro che una rpegatura dell mmagne su se stessa, dovuta all eccessvo spostamento d uno o pù landmark rspetto agl altr; quando s applca l blendng ad un mmagne n cu sano present de foldback, valor (texture) delle mmagn sorgent vengono sovrappost n modo nnaturale, e dfett generat prendono appunto l nome d ghost effect. Generalmente una deformazone molto controllata, coè con molt landmark e con spostament coerent e non eccessv, è meno soggetta a dfett d questo genere. Su questo prncpo s basa l approcco proposto da Tddeman, Duff e Rabe nel 2001 per l elmnazone de foldback [06]: la Fgura 1.2: Foldback causato dallo spostamento eccessvo de landmark deformazone complessva vene scomposta n una sere d deformazon consecutve n cu landmark vengono spostat poco alla volta, sotto l vncolo che mantengano tra loro lo stesso ordne, n - 5 -

12 Captolo 1 Il Morphng Fgura 1.3: Da snstra a destra, mmagne nzale, deformazone tramte mnmzzazone dell energa, deformazone tramte MFFD; notare l assenza d foldback. modo che l mmagne s deform senza rpegars su se stessa. In realtà, prma d questo approcco, era gà stato utlzzato un algortmo molto smle per elmnare foldback n morphng basat sulla mnmzzazone dell energa [07] e sulle Multlevel Free Form Deformaton (MFFD) [08][09][10]: quest due metod generano delle deformazon, rspettvamente C1-contnue e C2-contnue, modfcando la struttura d una grgla d controllo sovrapposta all mmagne; l morphng è ottenuto applcando pù volte la trasformazone a grgle d controllo sempre pù dettaglate, asscurandos ogn volta che nessun vertce della grgla s spost per pù d mezza cella, così da evtare sovrapposzon. Tornando all aspetto del morphng, nel prmo d quest due metod le deformazon della grgla sono determnate basandos su una mnmzzazone d energa delle splne che compongono la grgla stessa; nel secondo nvece, vene determnato, per ogn punto della grgla, lo spostamento che mnmzza l alterazone delle b-splne della grgla rspetto agl altr 16 punt d controllo adacent a quello n anals. Entramb quest metod generano delle deformazon flude (C1 e C2-contnue) precse e natural, esent da foldback, però hanno lo svantaggo d essere relatvamente lente, molto complesse da mplementare e rsulta lungo e laboroso anche per l utente fnale specfcare le trasformazon desderate. Un ultmo algortmo degno d nota nel campo del morphng d mmagn bdmensonal è l approcco basato sulle Radal Bass Functon (RBF) che utlzza questo partcolare tpo d funzon (tra cu quella forse pù usata è la Thn Plate Splne) per nterpolare var punt; questo metodo genera deformazon molto morbde e natural, noltre punt d controllo sono punt sngol, rendendo pù semplce sa l lavoro d mplementazone, sa l suo utlzzo. Questo metodo è stato molto utlzzato nell ambto del morphng faccale [11][12][13], però, anche n questo caso, sono present degl nconvenent: anche se raramente, è possble la comparsa d foldback, ma l problema maggore è dovuto al fatto che, nella generazone del morphng, è necessaro rsolvere un sstema lneare con tante equazon e tante ncognte - 6 -

13 Captolo 1 Il Morphng quant sono landmarks, lmtando effettvamente l numero d punt d controllo n un mmagne. Per completezza è gusto accennare all esstenza d metod d morphng per mmagn trdmensonal basate su mesh: generalmente quest approcc tendono a creare una relazone uno a uno tra trangol dell mmagne sorgente e quella d destnazone, alterando d conseguenza la forma e la texture d ogn elemento; l problema pù grosso n questa stuazone è dovuto al fatto che quas ma le mesh hanno lo stesso numero d trangol, d conseguenza è spesso necessaro scomporre un trangolo n pù sottotrangol. Alcun esemp d questo approcco s possono trovare su [14] e [15]. 1.3 Approcco proposto Il crtero fondamentale per la scelta del metodo da utlzzare è stata la partcolare tpologa d mmagn da deformare: l progetto svluppato verte nfatt sulla generazone d morphng tra mmagn trdmensonal d volt uman acqust tramte scanner laser, su qual sono present 83 landmark che dentfcano sopraccgla, occh, naso, bocca e contorno del vso; tutte le mmagn provengono dal BU-3DFE [16], un database contenente 100 soggett d dverso sesso, razza ed età, ognuno de qual n 25 espresson dfferent. Fgura 1.4: Volto con landmark e mmagne d profondtà d un volto - 7 -

14 Captolo 1 Il Morphng Prma d essere elaborat, tutt volt sono stat portat ad una rsoluzone d 500x500. Malgrado s tratt effettvamente d mmagn 3D, la forma del volto è memorzzata tramte una matrce d profondtà e non come mesh, questo esclude d fatto qualsas approcco basato sul matchng de trangol; al contraro è possble, e scuramente pù convenente rspetto a rcostrure la mesh, deformare la forma del volto utlzzando un metodo d morphng per mmagn bdmensonal. Dato che l obettvo fnale è trovare un metodo che da buon rsultat n temp ragonevol, non è possble utlzzare metod basat su Feld Morphng (rapd ma d bassa qualtà), ne metod basat sulle RBF, dato che l elevato numero d landmark rallenterebbe eccessvamente la generazone del warpng; le MFFD avrebbero potuto essere una buona scelta, ma l eccessva complesstà d realzzazone ha spnto a cercare metod alternatv. L approcco elaborato s basa fondamentalmente sul lavoro d Schaefer, McPhal e Warren [17], che nel 2006 hanno presentato un algortmo per la deformazone d mmagn basato su Mnm Quadrat Mobl (MLS) [18], applcato utlzzando come punt d controllo sa punt che lnee. Questa tecnca, che non è altro che un algortmo d nterpolazone, s basa sul determnare, per ogn punto dell mmagne, la funzone che mnmzz lo spostamento d ognuno de punt d controllo, tenendo conto del fatto che, pù un landmark è vcno al punto n anals, pù dovrà nflure sul calcolo della funzone. Sono comunque present pccol nconvenent, n partcolare anche questo approcco è stato elaborato per mmagn con poch landmark, è stato però possble radattarlo al caso n esame ntroducendo delle ottmzzazon per rdurre l tempo totale d calcolo; noltre, anche n questo caso, potrebbero presentars de foldback (anz, questo effetto era voluto dagl autor per lascare pù lbertà nelle deformazon), dato però che, nelle mmagn da trattare, la struttura de landmark è sempre fondamentalmente la stessa, non s avranno ma spostament tal da causare dfett evdent. Prma d passare all anals dettaglata dell algortmo, è bene dare una breve ntroduzone al polmorphng, ovvero al morphng tra pù volt; nel progetto svluppato è stata data nfatt la possbltà d generare morphng anche tra tre volt, oltre alla solta stuazone con due sole facce sorgent. Un anals dettaglata d questa tecnca è presente su [19], per l caso n esame nvece è stato utlzzato un approcco abbastanza semplce e rapdo, che consste nell applcare la meda pesata tra le tre sorgent durante la fase d blendng; dato che rsultat ottenut erano gà d buona qualtà non è stato rtenuto necessaro applcare algortm pù compless, che avrebbero certamente rallentato l tempo d esecuzone totale dell applcazone

15 Captolo 2 L algortmo Captolo 2: L Algortmo S passa ora ad un anals accurata dell algortmo d morphng: n prmo luogo verrà defnta una struttura (framework) generale dell approcco utlzzato, prendendo come esempo la semplce generazone d un volto ntermedo; durante questa anals non sarà posta alcuna restrzone su come debbano essere po svluppate le sngole part dell algortmo, argomento che sarà trattato poco dopo. I successv paragraf sono appunto dedcat ognuno ad una delle part fondamental del morphng: per prma cosa verrà llustrato nel dettaglo l metodo de Mnm Quadrat Mobl per l calcolo del Warpng, per po passare ad un approfondta anals del metodo d Blendng utlzzato, ponendo partcolare attenzone a come vadano approssmat dat ottenut dalla parte precedente; nfne sarà presentato l approcco elaborato per l Transton Control, anch esso basato su Mnm Quadrat Mobl, ma sul quale s sta ancora lavorando per renderlo pù user-frendl. 2.1 Morphng framework S consder l caso pù semplce, n cu s deve generare un volto ntermedo tra due mmagn sorgent d dmenson dentche: sano I1 e I 2 due volt d partenza, s ndca con I (p) l valore (colore, profondtà o valdtà) dell -esma mmagne nel punto p. Su ognuna delle mmagn è defnto un set d landmark, rspettvamente A { a1, a2, K, a n } e B { b1, b2, K, b n }, dove ovvamente, per ogn tra 1 e n, a e b ndcano punt corrspondent su due volt; s defnscono - 9 -

16 Captolo 2 L algortmo nfne due funzon T R 2 1,T2 : R, dette funzon d transzone, tal che, dato + un punto p del volto ntermedo I, T (p) ndca l peso che assume l relatvo punto nell mmagne I nel calcolo del valore I f (p). f Per prma cosa vene determnato l set d landmark D { d d,, } dell mmagne ntermeda f 1, 2 K I, tramte meda pesata de punt d controllo delle mmagn sorgent; n partcolare, per ogn tra 1 e n, s avrà d n d T1 ( d ) a + T T ( d ) + T ( d ( d ) b ) Matematcamente questa formula presenta l nconvenente che valor T j ( d ) non possono essere calcolat dato che non è ancora nota la poszone d d ; n realtà valor delle funzon d transzone ne landmark sono necessar propro per controllare la forma assunta dal morphng, d conseguenza è necessaro che quest dat sano specfcat dall utente per punt d controllo, mentre verranno calcolat tramte nterpolazone per restant punt dell mmagne (v. par. 2.4 Transton Control). Una volta che s ha a dsposzone l nseme D de landmark, coè s è a conoscenza della dslocazone de lneament sul volto fnale, è possble generare una coppa d warpng per determnare valor d tutt pxel dell mmagne cercata. 2 2 Il warpng s può rappresentare come una funzone W : R R cu valor dpendono ovvamente dalla dslocazone de landmarks nell mmagne d partenza e n quella d arrvo. L approcco pù ovvo sarebbe generare un warpng da ognuno de volt nzal I 1 e I 2verso l volto ntermedo I f (forward mappng) per determnare dove deve essere poszonato ognuno de pxel d partenza; questo approcco comporta però dvers problem, nfatt warpng sono delle funzon a valor real, mentre le mmagn su cu s va a lavorare sono composte da un numero fnto d pxel, ognuno de qual dentfcato da una coppa d coordnate ntere; rsulta qund necessara un adeguata approssmazone, e propro durante questo processo potrebbero comparre de dfett come pxel sovrappost o pxel mancant. Fgura 2.1: Forward e Backward Mappng; notare pxel sovrappost e l pxel vuoto nel caso d forward mappng

17 Captolo 2 L algortmo Com è evdente n Fgura 2.1, con un approcco d tpo backward mappng s ha la certezza che tutt pxel dell mmagne fnale abbano uno e un solo pxel d rfermento nell mmagne d partenza; resta sempre l problema dell approssmazone, ma n questo caso non comporta dfett e s possono applcare dvers algortm (nearest neghbour, blnear nterpolaton e sml) durante la fase d blendng per ottenere valor vald. Tornando qund alla generazone del morphng, s è decso d calcolare una coppa d warpng W 1 e W2 utlzzando come mmagne d partenza l volto ntermedo I f, e come destnazon rspettvamente I 1 e I 2 ; a questo punto è fnalmente possble determnare l valore de pxel dell mmagne fnale tramte nterpolazone. Per la precsone s avrà, per ogn punto p d I f : T1 ( p) I1( W1 ( p)) T I f ( p) T ( p) + T ( p) I ( p) 2 ( W 2 ( p)) Dove con s ndca l opportuna operazone d somma, a seconda che s sta lavorando con valor RGB, d profondtà o boolean; notare che, a seconda del tpo d dato convolto nell nterpolazone, è stato applcato un dverso metodo d approssmazone per warpng (v. par. 2.3 Blendng). Questo approcco è stato utlzzato n tutt tp d morphng analzzat, con qualche pccola eccezone: - nel caso d morphng sngolo tra tre volt è stato necessaro generare un terzo warpng da I f a I 3 e modfcare adeguatamente le mede pesate per comprendere valor della terza mmagne. - nel caso d sequenze d morphng tra due o tre volt, è stato suffcente rapplcare pù volte l procedmento appena llustrato, consderando però che valor delle funzon d transzone devono essere specfcat per ogn frame; n realtà questo argomento è stato affrontato solo a lvello teorco, nell applcazone presentata le sequenze d morphng hanno una transzone lneare predefnta per tutt punt d controllo, questo sa perché rsulta poco pratco da parte dell utente specfcare 83 funzon d transzone dverse, sa perché è stato rtenuto poco rlevante a fn d questo elaborato. Su [08] è presente un anals dettaglata d questo argomento, basata sulle MFFD, ma gl algortm presentat sono faclmente radattabl all approcco basato su MLS presentato nel paragrafo 2.4 Transton Control. S segnala nfne un altro framework d morphng notevole, presentato su [07]: senza entrare nel dettaglo, questo metodo dovrebbe essere pù rapdo nella generazone d sequenze d morphng, ma pù lento nel caso d volt sngol o d poch volt; noltre rsulta meno ntutvo rspetto a quello presentato, qund è stato per ora scartato, tenendolo comunque presente per eventual svlupp futur

18 Captolo 2 L algortmo 2.2 Warpng con Mnm Quadrat Mobl Come è facle nture, l punto crucale d un algortmo d morphng è la generazone del warpng: da questo dpendono sa la qualtà e l attendbltà dell mmagne ottenuta, sa gran parte del tempo totale d generazone, pertanto è fondamentale utlzzare un metodo che sa rapdo e che da buon rsultat. 2 2 La deformazone f : R R cercata, che deve soddsfare le tre propretà presentate nell ntroduzone, vene determnata tramte un metodo d nterpolazone per dat spars, Mnm Quadrat Mobl (MLS, dall nglese Movng Least Squares), che consste nel mnmzzare una seconda funzone dpendente sa da landmark che dalla poszone del punto n anals. 2 Sa dunque v R un punto dell mmagne, s va a cercare la mglor trasformazone affne h v (x) che mnmzz g w h ( a ) v b 2 dove a e b sono vettor rga che ndcano le poszon de landmark rspettvamente nell mmagne d partenza e n quella d destnazone, mentre w è un peso dpendente dalla dstanza d v dall -esmo landmark: w a 1 v 2α Il nome del metodo è dovuto appunto al fatto che pes present n questo problema d mnm quadrat dpendono dal punto consderato v; noltre, è evdente che s otterranno dverse funzon h v (x) al varare d v. A questo punto s defnsce la deformazone cercata come f ( v) h ( v) Così defnta, la funzone soddsfa le tre propretà rcheste, nfatt - se v tende a uno de punt d controllo, l peso d quel landmark tenderà all nfnto e qund s avrà f ( a ) b - se landmark nzal e fnal concdono s avrà h v ( x) x per ogn x, d conseguenza f ( v) v per ogn v dell mmagne - la funzone è contnua n qualsas punto, eccetto ne punt d controllo quando α 1, stuazone che non presenta problem dato che, nell applcazone, l parametro α è stato posto a 3. Ora, dato che la trasformazone h v (x) è stata defnta come trasformazone affne, essa avrà una forma del tpo h v ( x) xm + T dove M è una matrce 2x2 v

19 Captolo 2 L algortmo (trasformazone lneare) e T un vettore rga (traslazone); l vettore T può essere elmnato dalla formula, nfatt l mnmo cercato s avrà dove la dervata d g s annulla, qund, consderando appunto la dervata rspetto alle varabl n T e svolgendo calcol, s avrà wa b am con a w T e b wb w Sosttuendo s avrà h ( x) ( x a ) M b v + qund l problema d mnmzzazone può essere rscrtto come g w aˆ M bˆ 2 dove aˆ a a e bˆ b b. S not che, n questa forma, l problema non presenta vncol d alcun tpo sulla matrce M, anz, permette d spermentare dvers tp d matrc d trasformazone: su [17] l attenzone è posta soprattutto su trasformazon rgde, che non presentano dstorson, per l caso n esame è nvece suffcente una trasformazone affne, pù rapda e pù semplce da trattare, le eventual dstorson vengono comunque lmtate dell elevato numero d landmark present. S procede qund a determnare la matrce d trasformazone affne, semplcemente ponendo la dervata prma d g par a 0; svolgendo calcol s ottene M aˆ T waˆ 1 j aˆ T j wbˆ j j Questa soluzone rchede l nversone d una matrce, che d norma rsulta un operazone laborosa, n questo caso però la matrce ha dmensone costante d 2x2, qund l nversone è pressoché mmedata; a questo punto è possble scrvere l espressone completa della deformazone f cercata: 1 f ( v) b j T T ( v a ) aˆ waˆ aˆ wbˆ j j j + In Fgura 2.2 vene mostrato un esempo d deformazone ottenuta con questo metodo: come fatto notare precedentemente, sono present delle dstorson poco natural, questo perché le trasformazon affn comprendono anche

20 Captolo 2 L algortmo deformazon come shearng e scalng non unforme; quest dfett comunque tendono a dmnure con l aumento del numero de punt d controllo. Malgrado sa poco rlevante a fn dell anals n corso, è nteressante notare che gran parte d questa formula dpende solo da landmark a del volto d partenza, per cu n caso d deformazon multple con la stessa mmagne sorgente, gran parte dell espressone può essere precomputata: Fgura 2.2: Deformazone ottenuta tramte MLS e trasformazone affne; landmark sono ndcat n nero 1 Abˆ T T j j + con Aj ( v a ) aˆ waˆ ajwj j f ( v) b Dettagl sull mplementazone e ottmzzazon applcate al caso n anals verranno presentate nel captolo successvo. 2.3 Blendng Una volta ottenute le deformazon dal volto ntermedo verso volt sorgent, è possble calcolare valor dell mmagne cercata tramte nterpolazone; sebbene questa operazone non sa così complessa come l warpng, è necessaro applcare partcolar accorgment affnché l rsultato sa attendble. In questo caso specfco è stato necessaro esegure un nterpolazone per ognuna delle tre dverse matrc che compongono cascuna mmagne: - la matrce d valdtà V, composta da valor boolean, che ndca, per ognuno de pxel, se è da consderars valdo o meno per la costruzone dell mmagne; - la matrce d profondtà D, composta da vettor trdmensonal d real, che per ogn pxel ndca la sua poszone nello spazo rspetto ad un sstema d ass cartesan; - la matrce del colore C, composta da vettor d tre element che rappresentano l colore d ogn pxel n RGB

21 Captolo 2 L algortmo Fgura 2.3: Maschere d valdtà e relatv rsultat; l approcco basato su OR (a snstra) genera volt pù complet ma con evdent dfett su contorn. Per prma cosa s va ad analzzare la matrce d valdtà, dato che se un pxel rsultasse non valdo, sarebbe nutle calcolarne profondtà e colore; n partcolare, un pxel p del volto ntermedo è consderato valdo se sono vald rspettv pxel n ognuna delle mmagn sorgent: V f ( 2 p) V1 ( W1 ( p)) V2 ( W ( p)) In realtà è stato provato anche un approcco n cu era suffcente che uno solo de pxel sorgent fosse valdo per rendere valdo quello d destnazone (OR al posto d AND), questo però causava sgradevol dfett su contorn del volto, dovut al blendng con pxel non vald (v. Fgura 2.3). Come s accennava precedentemente, la formula proposta presenta un problema, dovuto al fatto che valor delle funzon d warpng sono real, è qund necessara un adeguata approssmazone: per evtare d esegure nterpolazon su pxel non vald, la precedente formula è stata corretta n modo da consderare tutt 4 pxel ntorno al punto calcolato dal warpng x, ) V ( x + 1, ) V ( x, + 1) V ( x + 1, 1) V ( W ( p)) V (( x, )) V ( + Se l punto n anals è rtenuto non valdo, suo valor d profondtà e colore vengono post a 0, altrment s procede al blendng anche su queste due matrc; per entrambe queste matrc è stata applcata la formula della meda pesata precedentemente llustrata T1 ( p) I1( W1 ( p)) + T2 ( p) I I f ( p) T ( p) + T ( p) ( W 2 ( p)) Pù correttamente, questa formula è stata applcata per ognuno de tre valor RGB (approssmando valor all ntero) e per ognuno de tre valor (x,, z) della

22 Captolo 2 L algortmo profondtà. Per quanto rguarda l approssmazone de warpng l prmo approcco è stato l nearest neghbour, venva coè consderato l pxel (poszone ntera) pù vcno al warpng calcolato: sebbene questo approcco non causasse problem sulla matrce del colore, presentava nvece evdent dfett su quella d profondtà, per l esattezza comparvano delle lnee concentrche ntorno a landmark, che, ovvamente, corrspondevano con l punto d passaggo tra la coordnata nferore e quella superore. È stato qund ndspensable optare per un approssmazone pù accurata, n questo caso l nterpolazone lneare: sano W ( p) ( x, ), α x x x e α, l valore del parametro è calcolato come I (( x, )) (1 + (1 α ) α I x ( αx )(1 α ) I ( x, ) + αx (1 α ) x, + 1) + αxαi ( x + 1, + 1) I ( x + 1, approssmando appunto all ntero pù vcno nel caso del colore. Con questo approcco non compare alcun dfetto e sa color che le poszon ottenut sono accettabl; s segnala solo un leggero effetto d smoothng dovuto al fatto che dettagl come cgla, pccol ne e così va non sono present n tutt volt sorgent, e comunque, non essendo ndcat da landmark, è dffcle che le loro poszon concdano alla perfezone. ) + Fgura 2.4: Blendng con Nearest Neghbour (snstra) e Blnear Interpolaton (destra) 2.4 Transton Control Con Transton Control c s rfersce a tutta quella parte che rguarda la gestone delle funzon d transzone T ntrodotte precedentemente: esse sono

23 Captolo 2 L algortmo Fgura 2.5: Esempo d pes calcolat durante una sequenza d morphng, l peso totale è sempre dato dal numero d frame ntermed pù 1 necessare per controllare, punto per punto, l apporto d ognuna delle mmagn d partenza nella generazone del volto ntermedo, devono qund essere trattate n modo pù o meno elaborato a seconda d quanto s vogla rendere personalzzable l morphng da parte dell utente. In un prmo momento s era decso d non trattare nel dettaglo questa parte, l valore delle funzon d transzone era dentco per tutt punt dell mmagne e venva determnato n mod dfferent a seconda del tpo d morphng: nel caso d sngolo volto ntermedo pes delle due o tre mmagn sorgent venvano specfcat dall utente, mentre, per sequenze d morphng, pes venvano calcolat come funzon lnear del numero del frame (c s lmta a rportare un esempo n Fgura 2.5 tralascando le formule). Successvamente l transton control è stato nvece analzzato pù approfondtamente e s è optato per dare anche la possbltà d specfcare morphng personalzzat, ma solo per la generazone d sngol frame sa con due che con tre volt sorgente. Dato che le funzon d transzone erano gà state prevste nel framework d morphng, non è stato necessaro apportare alcuna modfca all anals fn qu computa; l problema vero e propro è stato trovare un metodo semplce e rapdo per permettere all utente d specfcare valor desderat per ogn punto. Come emerge da dvers stud gà comput sull argomento (n partcolare su [07] e [08]) l approcco pù comune consste nello specfcare pes solo ne punt d controllo, restant valor vengono determnat tramte nterpolazone utlzzando lo stesso metodo usato per l warpng; nel caso n esame è comunque necessaro specfcare 83 valor dfferent, l che può rsultare poco pratco, ma suffcente a fn ddattc. Per ovvare a questo nconvenente, è gà n fase d svluppo (ma non ancora mplementato) un algortmo alternatvo che permetterà d specfcare valor su solo alcun de punt d controllo, mentre restant vengono determnat n base a raggruppament logc tra landmark stess

24 Captolo 2 L algortmo A questo punto resta solo da radattare l metodo de mnm quadrat 2 mobl per determnare pes cercat: sa v R un punto dell mmagne, l suo peso può essere defnto n funzone della poszone del pxel stesso, coè z :R 2 R + ; ora l problema s rduce a determnare la funzone h v (x) che mnmzz g w h ( a ) v k 2 dove w e a sono defnt come sopra, :R 2 R k è l peso assegnato all -esmo z( v) h ( v è facle landmark e h v + è una funzone lneare. Ponendo v ) verfcare che, anche n questo caso, sono soddsfatte le tre propretà specfcate nell ntroduzone. Sempre procedendo n analoga a quanto fatto n precedenza, s pone h v ( x) xc+ q e, cercando l mnmo rspetto a q, s ottene wa k ac con a e w q k wk w da cu h ( x) ( x a ) C k v + ; d conseguenza l problema d mnmzzazone dventa g w aˆ C kˆ 2 dove kˆ k k e aˆ a a. A questo punto s determna, con l solto approcco, l vettore colonna C che mnmzza g, e, sosttuendo, s ottene la forma chusa della funzone peso z (v) : C aˆ T waˆ 1 j 1 aˆ T j wkˆ z( v) k j T T ( v a ) aˆ waˆ aˆ w kˆ j j j + Come è evdente dall ultma formula, gran parte de calcol necessar devono gà essere esegut per determnare l warpng, qund un approcco d questo genere non va ad nflure molto su temp d generazone, fornendo comunque de buon rsultat. j j

25 Captolo 2 L algortmo Nell approcco presentato s è dato per scontato che le funzon d transzone fossero dentche sa per l colore che per la forma del vso, mentre potrebbe essere nteressante generare volt con l proflo d un soggetto e la texture d un altro; per gestre una funzonaltà smle sarebbe suffcente alterare leggermente le formule delle mede pesate e applcare due volte l algortmo presentato nell ultmo paragrafo, ma, propro perché non vene ntrodotto nulla d nuovo, s è preferto tralascare questo aspetto

26 Captolo 3 L Implementazone Captolo 3: L Implementazone L anals computa nel captolo precedente è prettamente teorca, prma d poter ottenere una versone funzonante dell algortmo è necessaro compere ancora dvers passagg; d seguto sono rportate tutte le consderazon e le scelte fatte dal punto d vsta mplementatv, nzando ovvamente con la scelta del lnguaggo d programmazone, subto seguta dalla defnzone della struttura dell applcazone. Successvamente vene presentata una sere d relaborazon e d ottmzzazon all algortmo d morphng, n modo da renderlo pù performante e meno dpendente dal numero d landmark specfcat sull mmagne; a chudere l captolo vene eseguta una rapda anals asntotca del tempo d esecuzone totale dell approcco utlzzato, tenendo come rfermento l numero d punt d controllo e la dmensone delle mmagn. 3.1 Struttura dell applcazone L applcazone è stata scrtta nteramente n C++, che, sebbene non sa uno de lnguagg pù semplc da utlzzare, è scuramente uno de pù dffus, l che permette d avere a dsposzone molte gude, lbrere o esemp sa n formato cartaceo che elettronco; noltre, dovendo esegure calcol puttosto compless su mmagn d consderevol dmenson, le performance dventano un punto crucale, e questo esclude d fatto l mpego d altr lnguagg object orented, come Java o C#, decsamente pù lent. Questa scelta va ovvamente a dscapto della portabltà, l ntero progetto è stato svluppato n ambente Wndows, ma le lbrere utlzzate sono comunque dsponbl per la maggor parte delle

27 Captolo 3 L Implementazone pattaforme pù comun e non sarebbe qund problematco rcomplare l tutto per funzonare sotto un altro sstema operatvo. La struttura del programma, n Fgura 3.1, è abbastanza semplce e rspeccha l anals fn qu fatta: l nucleo prncpale dell applcazone è la classe Morpher, che mette a dsposzone una sere d funzon, a scatola chusa, per esegure dvers tp d morphng tra due o tre volt; mentre per l blendng è utlzzata d default l nterpolazone blneare, questa classe presenta un template sul tpo d warpng, è qund possble rutlzzarla tranqullamente anche con altr approcc dvers da MLS. Procedendo n ordne d mportanza, s trova tutta la gerarcha d class dedcate al warpng: al prmo lvello della struttura s poszona la classe Warp che serve uncamente come modello per tutte le class sottostant, essa nfatt presenta la sola funzone vrtuale warp() che deve essere mplementata da qualsas classe eredt da Warp. Al lvello sottostante s trova la classe MlsWarp che mplementa la funzone warp() col metodo de MLS, oltre a tutte le vare ottmzzazon che verranno llustrate ne successv paragraf; nfne la classe TcMlsWarp, aggunta solo n un secondo momento, svolge esattamente le stesse funzon della classe precedente, ma aggunge l supporto per l transton control personalzzato. Notare le class dedcate al warpng presentano tutte un template sul tpo d mmagn trattate, n modo da poter essere faclmente rutlzzate per operare su dat dvers. Fgura 3.1: Dagramma delle class dell applcazone

28 Captolo 3 L Implementazone Le restant class sono solo d supporto e non mplementano algortm rlevant a fn del morphng: la classe Face serve a rappresentare volt su cu s andrà ad operare, presentando le tre matrc d colore, profondtà e valdtà, oltre ovvamente all elenco de landmark; sempre n questa classe sono state nserte delle brev funzon agguntve per rdmensonare, rcamponare, carcare o salvare su dsco volt. Per fnre, la classe Vewer, scrtta appoggandos alle lbrere GLUT e OpenGL, mplementa un semplce vewer per vsualzzare frame sngol o sequenze d morphng, dando la possbltà d osservare l volto da dverse angolazon e d vsualzzarlo con o senza texture, o come wreframe. Tutt parametr necessar per l esecuzone d un morphng vengono da fornt tramte rga d comando (per dettagl basta specfcare l opzone help), una sere d funzon s occupa d analzzare tal parametr e d effettuare le dovute chamate alla class appena llustrate; n fgura 3.2 è rportato, a scopo d esempo, la sequenza d operazon eseguta nella generazone d un volto ntermedo tra due volt, gl altr tp d morphng mess a dsposzone seguono, a grand lnee, lo stesso flo logco. Fgura 3.2: Dagramma d sequenza per la generazone d un volto ntermedo

29 Captolo 3 L Implementazone Pratcamente l ntera applcazone fa uso delle vllb, una sere d lbrere per la gestone e manpolazone delle mmagn, svluppate dall Imagng and Vson Laborator dell Unverstà d Mlano Bcocca. 3.2 Algortmo d Warpng Il warpng, oltre ad essere la parte crucale d tutto l algortmo d morphng, è anche la pù dspendosa n termn computazonal, pertanto un mplementazone superfcale può portare a notevol rallentament sul tempo totale d generazone; per prma cosa è convenente andare ad analzzare nuovamente la formula per l calcolo del warpng: per ogn punto v dell mmagne, s ha 1 f ( v) b j T T ( v a ) aˆ waˆ aˆ wbˆ j j j + Se la formula fosse mplementata drettamente n questo modo, l algortmo svluppato avrebbe pù o meno questa struttura: Per ogn vertce v Cclo su landmark per calcolare w Cclo su landmark per calcolare a e b Cclo su landmark per calcolare la matrce da nvertre Inversone della matrce 2x2 Cclo su landmark per calcolare la matrce esterna Moltplcazon e somme fnal I temp d esecuzone della quarta e della sesta operazone sono trascurabl, però sono present ben 4 ccl sugl 83 landmark, e, consderando che le mmagn n esame sono composte da ben punt (500x500), c s rende conto d quanto sa mportante elaborare un approcco ottmale. L operazone pù dspendosa tra quelle ndcate è l calcolo de pes, n quanto, nella formula, è presente la norma eucldea d un vettore, ed è qund necessaro rsolvere una radce quadrata: sa a v ( xa xv, a v ) ( xv, v ), s ha w a 1 v 1 2α 2α 2α ( x, ) 2 2 v v x + v v

30 Captolo 3 L Implementazone È evdente che, per poter elmnare l calcolo della radce, convene che l parametro α sa ntero e maggore d 1; dopo una sere d test su dvers volt, s è osservato che rsultat all apparenza mglor s hanno ponendo α 3. L elmnazone della radce rduce ndubbamente temp d calcolo, ma non permette d elmnare l prmo cclo dall algortmo; s not però che pes dpendono esclusvamente dalla dstanza tra pxel n esame, è qund possble generare a pror una collezone d pes, ognuno assocato alla rspettva dstanza. Per la precsone vene creata una matrce d dmensone doppa meno 1 rspetto alle mmagn n esame (999x999), dove ogn cella contene l peso assocato alla sua dstanza rspetto al pxel centrale; durante l esecuzone dell algortmo d warpng, per determnare l peso del landmark ( x l, l ) rspetto al punto ( x v, v ), è suffcente accedere alla cella ( 500+ ( xl xv ),500+ ( l v )). Inoltre, la matrce de pes è ndpendente anche dalle mmagn sorgent, qund la s può generare una volta sola all nzo dell algortmo e rutlzzarla per tutt warpng necessar, ottenendo così un ulterore rsparmo d tempo. Rassumendo, n pseudocodce, s avrà: Generazone matrce de pes Per ogn vertce v Cclo su landmark per calcolare a e b Cclo su landmark per calcolare la matrce da nvertre Inversone della matrce Cclo su landmark per calcolare la matrce esterna Moltplcazon e somme fnal S prendano ora n consderazone restant tre ccl: s not che le due matrc possono essere calcolate ndpendentemente l una dall altra, d conseguenza è possble determnarle nello stesso cclo; entrambe però dpendono da valor d a e b, qund, n questa forma, è mpossble runre tutt calcol all nterno d un unco cclo, nfatt quello de landmark med deve necessaramente essere eseguto prma del calcolo delle matrc. Eseguendo de semplc passagg matematc s può gungere però a degl nteressant rsultat: fssato un generco, s prenda n esame l -esma matrce nterna alla prma sommatora, coè M aˆt waˆ (l ndce non vene rportato per charezza d esposzone); s not che w è un sngolo scalare, per cu M può essere rscrtta come M T aˆ waˆ waˆ T aˆ Rcordando che â è un vettore rga d due element, è evdente che M sarà una matrce 2x2 data da:

31 Captolo 3 L Implementazone [ ] x x xx w x x w M ˆˆ ˆ ˆ ˆˆ ˆˆ ˆ ˆ ˆ ˆ e ancora, sapendo che ˆ a a a, analzzando sngolarmente gl element della matrce s avrà: ) )( ( ˆˆ ) )( ( ˆˆ ˆˆ ) )( ( ˆˆ w w w w w w m wx wx wx wx x x w wx wx m x wx x wx wxx wxx x x x x w wxx m Sa ora N la matrce fnale 2x2 ottenuta dalla sommatora n esame T m m m m x x xx w wa a N ˆˆ ˆ ˆ ˆˆ ˆˆ ˆ ˆ portando la sommatora all nterno della matrce e sosttuendo con rsultat ottenut n precedenza, ogn elemento d N può essere scrtto n forma chusa w w w w m n wx wx wx wx m n x wx x wx x wx x wx m n ) ( ) ( ) ( Per fnre è suffcente spezzare le sommatore ed estrarne termn ndpendent da w w w w w w w n w x w x wx wx wx wx wx wx n w x x wx x x wx x wx x wx x wx x wx n In questa ultma forma, le sommatore sono completamente ndpendent da landmark med a e b, non è qund necessaro che ess vengano calcolat a pror; tutt passagg matematc esegut sulla matrce da nvertre possono essere applcat anche alla matrce esterna, gungendo a rsultat molto sml,

32 Captolo 3 L Implementazone qund tutt calcol necessar possono essere svolt n un unco cclo per po determnare n forma chusa valor cercat. A questo punto, l algortmo defntvo può essere scrtto come Generazone matrce de pes Per ogn vertce v Cclo su landmark per calcolare le sommatore necessare Calcolo n forma chusa a e b Calcolo n forma chusa la matrce da nvertre Inversone della matrce Calcolo n forma chusa la matrce esterna Moltplcazon e somme fnal Non è possble rdurre ulterormente l algortmo, nfatt l valore d ogn punto dpende dalla poszone de landmark, è qund ndspensable che v sa almeno un cclo che l analzz tutt. Sano l l numero de punt d controllo, p l numero d pxel dell mmagne, la generazone d un warpng con l ultma versone dell algortmo, rchede un tempo t Ol ( p). 3.3 Ottmzzazon Una volta realzzata la versone ottmzzata dell algortmo d warpng llustrata nel paragrafo precedente, s è procedut ad una prma fase d testng: la qualtà delle mmagn generate è rsultata ottma fn da subto, temp d generazone nvece non erano del tutto soddsfacent; dopo una breve anals, è emerso che la parte pù dspendosa dell algortmo, malgrado le ottmzzazon presentate poco sopra, era ancora la generazone del warpng. Come s dceva prma, purtroppo non è possble rdurre ulterormente l algortmo utlzzato, a questo punto la soluzone pù ovva è ntervenre drettamente sugl element che nfluenzano l tempo d esecuzone, ovvero l numero d punt dell mmagne ed l numero d landmark su ogn volto, l tutto senza perdere n qualtà dell mmagne. L approcco pù semplce è certamente rdurre la dmensone delle matrc che compongono volt, ma ovvamente s ha una pesante perdta d qualtà come llustrato n Fgura 3.3, pertanto questo metodo è stato subto scartato; l unca operazone possble n questo senso è cercare d non elaborare pxel non necessar, qund sono state rmosse tutte le part non valde su bord de volt. Inoltre, prma della generazone d un warpng, s va ad ndvduare landmark dell mmagne sorgente, dato che non è necessaro che ess vengano elaborat: loro rferment sono dat da landmark del volto d destnazone

33 Captolo 3 L Implementazone Fgura 3.3: Morphng a rsoluzone 500x500 (snstra) e a 250x250 (destra), la perdta d qualtà è evdente Un altro approcco nteressante è stato presentato su [17]: l warpng vene generato solo per una grgla d dmensone fssa (100x100 punt) sovrapposta all mmagne, rferment per punt ntermed vengono determnat tramte nterpolazone; sebbene questo espedente rduca drastcamente temp d generazone, s ha, anche n questo caso, una dscreta perdta d qualtà, percò è stato scartato. Per quanto rguarda punt d controllo è nvece possble fare delle consderazon pù rlevant: per prma cosa, dato un generco punto v dell mmagne, s not che pes w sono nversamente proporzonal alla dstanza tra v e l -esmo landmark, qund, se due punt dovessero essere troppo lontan l uno dall altro, l peso del landmark n esame sarebbe trascurable. Come dretta conseguenza s ha che, pù un punto è vcno ad un landmark, meno punt d controllo sono rlevant per calcolarne correttamente l rfermento; al contraro, se la dstanza tra l punto n esame ed l landmark pù vcno è puttosto elevata, allora è necessaro l apporto d un maggor numero d punt d controllo. A questo punto s può pensare, per ogn vertc dell mmagne, d consderare solo gl n landmark pù vcn al punto n esame, dove n è determnato n funzone della dstanza dal landmark pù vcno; questo metodo però comporterebbe de ser problem n fase d mplementazone, dato che, per determnare le nformazon desderate, sarebbero necessar altr ccl su punt d controllo, ottenendo qund un

34 Captolo 3 L Implementazone pesante rallentamento nella generazone de warpng, che è l esatto contraro rspetto all obettvo cercato. S consderno però le operazon appena llustrate tenendo presente l partcolare tpo d mmagn su cu s sta lavorando: landmark sono dstrbut secondo una precsa struttura che va a coprre pù o meno unformemente l ntero volto, è qund possble determnare n modo approssmato le nformazon ndcate poco sopra. In prmo luogo, sa a l landmark medo, ovvero a l a data la partcolare dstrbuzone de landmark, al posto della dstanza tra v e l landmark pù vcno, è possble utlzzare come ndce l raggo r d( v, a), dove con d s ndca la dstanza eucldea; dato che a è ndpendente dal punto n esame, è possble determnarlo a pror senza ntrodurre altr ccl nell algortmo d warpng. È ora possble anche approssmare l elenco de landmark cercato, è suffcente nfatt prendere n consderazone tutt landmark a tal che d( v, a ) r : così facendo, pù un landmark è dstante dal centro, pù l suo raggo sarà ampo, e maggore sarà l numero d landmark pres n consderazone. Come è evdente n Fgura 3.4, questo metodo causa de problem per pxel vcn al landmark medo, nfatt può succedere che l raggo sa troppo pccolo e non vengano pres n consderazone un numero suffcente d landmark; per ovvare a questo nconvenente è stato suffcente porre un lmte nferore al raggo, n partcolare, se r< d( a, amid ) allora s pone r d( a, amid ), dove a è l MID landmark medano rspetto alla dstanza da a. Per fnre, anzché utlzzare la dstanza eucldea come rfermento, è possble radattare l ntero algortmo n funzone del Fgura 3.4: In nero landmark, n rosso l peso w, che può essere landmark medo, n gallo, blu e verde tre determnato n tempo costante punt d esempo col rspettvo raggo. graze alla matrce de pes gà

35 Captolo 3 L Implementazone calcolata n precedenza. Tramte questo approcco s è rusct a rdurre d crca l 40% l tempo d generazone d ogn warpng, e d crca l 30% l tempo totale d esecuzone del morphng, senza perdere n qualtà; comunque questo tpo d ottmzzazone è applcable solo ed esclusvamente se landmark hanno una dstrbuzone abbastanza unforme, per questo è stata data la possbltà d attvarla o dsattvarla tramte un opzone da specfcare nella rga d comando. 3.4 Temp d generazone A conclusone del captolo, vene presentata una breve anals su temp d esecuzone dell algortmo d morphng: per semplctà s consdera l caso pù banale, ovvero la generazone d una sngola mmagne ntermeda tra due volt sorgent (Fgura 3.2); l procedmento può essere sntetzzato tramte le seguent rghe d pseudocodce: 1. Lettura de parametr 2. Lettura prmo volto 3. Lettura landmark prmo volto 4. Lettura secondo volto 5. Lettura landmark secondo volto 6. Interpolazone de landmark 7. Generazone prmo warpng 8. Generazone secondo warpng 9. Blendng de pxel corrspondent 10. Scrttura volto ntermedo 11. Scrttura landmark volto ntermedo Sano l l numero de landmarks, p l numero d punt che compongono ognuna delle mmagn, s ha - la rga 1 è trascurable n quanto non fa strettamente parte dell algortmo d morphng, n ogn caso essa è eseguta n tempo costante O (1) - le rghe 2 e 4 devono andare a rempre le 3 matrc che compongono ogn volto, ed ognuna delle 3 matrc è composta da p pxel, qund l tempo necessaro è O ( 3p) O( p) - analogamente, per le rghe 3 e 5, è necessaro un tempo O (l) - l nterpolazone de landmark (rga 6) rchede un semplce cclo su tutt landmark, qund anche n questo caso s ha O (l) - l tempo d generazone de warpng sulle rghe 7 e 8 s è gà vsto essere O( l p) - la rga 9 serve per determnare ogn pxel dell mmagne fnale, è qund necessaro scorrere tutt punt delle matrc, coè O ( 3p) O( p)

36 Captolo 3 L Implementazone - per le rghe 10 e 11, come nella lettura, s ha rspettvamente O (p) e O (l) Rassumendo, l tempo totale d esecuzone sarà dato da O( l + p+ l p) O( l p) coè aumenta lnearmente all aumentare del numero d landmark e all aumentare della dmensone dell mmagne

37 Captolo 4 Anals de Rsultat Captolo 4: Anals de Rsultat In questo captolo vene presentata una sere d test effettuat per verfcare l effcaca del metodo svluppato. Ognuno de volt utlzzat è composto da tre matrc 500x500 con cu s rappresentano colore, poszone e valdtà d ogn pxel dell mmagne; lneament de soggett sono nvece dentfcat tramte un set d 83 landmark. S è cercato d esegure de test su una vasta gamma d soggett, n modo da poter verfcare l comportamento dell applcazone nelle stuazon pù dsparate, dalla semplce varazone d espressone d uno stesso ndvduo fno al cambo d genere o d razza. Sono noltre stat esegut de test per verfcare l effcaca delle ottmzzazon ntrodotte, valutando le dfferenze tra morphng ottmzzat e non ottmzzat; nfne sono state compute delle anals su mmagn a dversa rsoluzone e con dverso numero d landmark, per verfcare l loro legame con temp d generazone. 4.1 Morphng tra due volt Come d consueto, per prma cosa, è stato consderato l caso pù semplce, ovvero la generazone d un volto ntermedo tra due volt; dovendo elaborare un sngolo frame, s è preferto prendere n consderazone volt con evdent dfferenze, alterazon come l cambo d espressone o l nvecchamento sono pù sgnfcatve nell ambto della generazone d sequenze e verranno analzzate poco pù avant