ERK'2021, Portorož, 117-120 117 Animiranje obrazov v slikarskih delih Janez Justin 1 *, Katja Kunej 1 *, Katarina Pikec 1 *, Tajda Urankar 1 *, as. Blaˇ z Meden 1 , izr. prof. dr. Narvika Bovcon 1 1 Univerza v Ljubljani, Fakulteta za raˇ cunalniˇ svo in informatiko, Veˇ cna pot 113, 1000 Ljubljana E-poˇ sta: jj7084@student.uni-lj.si, kk9251@student.uni-lj.si, kp4446@student.uni-lj.si, tu5161@student.uni-lj.si, blaz.meden@fri.uni-lj.si, narvika.bovcon@fri.uni-lj.si * These authors contributed equally to this work. Animating faces on paintings Abstract. In this paper, we introduce our approach of an- imating faces on famous paintings. The most important part was face detection which helped us find the critical points of the face in our video and our chosen painting. There are a lot of approaches and algorithms available on the internet. Some of them we described in section 2. For our version we used Python libraries dlib and skim- age that were essential for face detection and affine trans- formation. Firstly we filmed a short video with our face expressing a certain emotion. With mentioned libraries we detected eyes, brows, lips, etc. Then we tracked all these points throughout the video and stored their posi- tions. With the affine transformation of the tracked points we were able to transform the movement from the video onto the painting. We paid special attention to defin- ing a safe border around the face on the painting where the movement is allowed. Otherwise we noticed some anomalies in the output video. Overall, we conclude that our algorithm is fast if the paintings are preprocessed, gives good results and is useful for some personal fun. 1 Uvod Kakˇ sna ˇ custva ali izraze na obrazu (ang. facial expressi- ons) lahko razberemo iz slikarskih del? To vpraˇ sanje nas je spodbudilo k raziskovanju ˇ ze uveljavljenih reˇ sitev in algoritmov, ki se ukvarjajo z zaznavanjem obrazov (ang. face detection), animacij in raznih transformacij. Naˇ sli smo precej ˇ ze obstojeˇ cih reˇ sitev; na primer algoritem, ki z umetno inteligenco animira obraze ali pa algoritem, ki je sestavljen iz vhodne slike in izvornega videa in vraˇ ca obrazne toˇ cke, ki se premikajo. Slednji algoritem je bil tudi osnova za naˇ so raziskavo, vendar vseeno na malen- kost drugaˇ cen naˇ cin. Raziskave smo se lotili precej mate- matiˇ cno, in sicer z afinimi transformacijami toˇ ck iz videa na slikarsko delo, tako se slikarsko delo premika glede na video. Video smo ˇ ze prej posneli, nato smo locirali kritiˇ cne toˇ cke na obrazu (oˇ ci, obrvi, usta, obris) in spre- mljali njihove pozicije skozi video. Na slikarskem delu je program prav tako zaznal obrazne toˇ cke in jih nato, glede na toˇ cke iz videa, spreminjal, da smo dobili gibanje. 2 Obstojeˇ ce reˇ sitve Obstaja veliko naˇ cinov za interaktivno modifikacijo slik, ena moˇ znost je uporaba umetne inteligence, druga pa npr. roˇ cna modifikacija slik. Ena izmed ˇ ze obstojeˇ cih reˇ sitev je projekt “Deep No- stalgia” [1]. Uporabnikom je na voljo kot spletna [2] ali mobilna aplikacija. Uporabnik si mora za uporabo sple- tnega vmesnika ustvariti raˇ cun. V spletni vmesnik naloˇ zi sliko in poˇ caka na animirane rezultate. Vsaka naloˇ zena slika se animira na enak naˇ cin. Reˇ sitev GANimation [3] na eni sliki predela izraz na obrazu z uporabo generativnih kontradiktornih omreˇ zij (GAN), ki so sestavljena iz dveh sistemov. Prvi sistem, generator, ustvari kopijo slike z uporabo novih podatkov, drugi sistem, diskriminator, pa doloˇ ca, ali podatki preha- jajo kot resniˇ cni ali laˇ zni. Sˇ casoma se bosta orodji nauˇ cili izdelovati ˇ cedalje bolj realistiˇ cne slike oz. animacije. Podobno uporabljajo GAN tudi druge reˇ sitve, kot je npr. “SC-FEGAN” [4], ki uporabnikom daje moˇ znost skiciranja na sliko in uporabe barv. Konˇ cna slika vse- buje, kar je uporabnik narisal (npr. oˇ cala, nasmeˇ sek). ˇ Se ena reˇ sitev “X2Face” [5] omogoˇ ca vnos dveh videov, po- tem pa se originalni video premika skladno s premiki v drugem videu. “First Order Motion Model for Image Animation” [6] je reˇ sitev, ki omogoˇ ca animacijo ne samo obrazov, temveˇ c deluje tudi npr. na telesu in likih. Model je potrebno naj- prej natrenirati na objektih iz iste kategorije, slabost pa je, da je ˇ casovno precej potraten. 3 Ideja Naˇ sa ideja je izhajala iz tega, da na izbranih slikarskih delih prikaˇ zemo razliˇ cne izraze na obrazu s pomoˇ cjo la- stnih video posnetkov. Ideja je bila, da spremembe mi- mike iz videa apliciramo na slikarsko delo in ga tako ani- miramo. Obrazne toˇ cke slikarskega dela in posamezne sliˇ cice videa smo zaznali z uporabo strojno nauˇ cenih mo- delov. Premikanje toˇ ck obraza iz videa smo aplicirali na slikarsko delo in dobili animacijo z ˇ zeljenimi spremem- bami. 4 Baza slik Slike, ki smo jih vkljuˇ cili v projekt, smo pridobili iz sple- tne enciklopedije vizualne umetnosti WikiArt [7]. Na 118 spletni strani smo najprej poiskali umetnike, ki so izde- lovali portrete. Preizkusili smo nekaj portretov, kjer je bil obraz obrnjen levo, desno ali naravnost. Ugotovili smo, da so popaˇ cenja veˇ cja, ˇ ce je obraz preveˇ c zasukan v eno smer, najbolje je bilo, ˇ ce je bil obraz obrnjen naravnost. Razlog za veˇ cje popaˇ cenje je tudi v tem, da so bile naˇ se glave pri snemanju izvornih videov usmerjene direktno v kamero. Prav tako smo ugotovili, da so mimike izraˇ zene na obrazu s slike manj popaˇ cene, ˇ ce je slika bolj ˇ cista. Za najboljˇ si rezultat smo izbrali portrete, kjer glava ni preveˇ c zasukana in slika deluje kar se da ˇ cisto. 5 Vhodni videi Pri snemanju vhodnih videov smo najprej poskusili z bolj izrazitimi premiki ustnic, ˇ cela ter tudi zapiranjem oˇ ci, vendar je pri animaciji priˇ slo do prevelikega popaˇ cenja obraza. Spreminjala se je oblika glave ali pa so se uˇ sesa neusklajeno premikala. ˇ Zeleli smo ˇ cim bolj naravne obra- zne premike, zato smo posneli videe z rahlimi spremem- bami v izrazih na obrazu. Obrazi na slikarskih delih so obrnjeni v razliˇ cne smeri, imajo razliˇ cne oblike obrazov, zato je bilo potrebno za vsako sliko posebej popraviti vse izraze. V nasprotnem primeru bi dobili preveˇ c popaˇ cene rezultate. Izkazalo se je, da manjˇ se spremembe obra- zne mimike delujejo bolj prepriˇ cljivo in fotorealistiˇ cno kot velike spremembe, ki delujejo groteskno oziroma kot pretiravanje v risankah, kjer se skladno s principi anima- cije mimiko in gibe pretirano poudarja. Ves ˇ cas snemanja je bilo potrebno paziti na mirujoˇ c poloˇ zaj glave, sicer je pri animaciji prihajalo do popaˇ cenj. 6 Implementacija Izvorna koda je dostopna na GitHubu [8], projekt pa na GitHub Pages [9]. Reˇ sitev je implementirana v jeziku Python, pri tem pa smo si pomagali s knjiˇ znicama: • dlib v kombinaciji z 68 toˇ ckovnim modelom za zaznavanje obraznih toˇ ck, dostopnim na dlib sple- tni strani [10], • skimage za izvedbo afinih transformacij [11]. Velja omeniti, da se slikarsko delo in video ne ujemata nujno v viˇ sini in ˇ sirini. 6.1 Doloˇ canje ˇ casovnih sprememb Pri doloˇ canju sprememb smo se osredotoˇ cili na posame- zne sliˇ cice v videu, rekli smo jij-ta sliˇ cica in se posveˇ cali procesiranju le-te. Za doloˇ canje sprememb smo uporabili prvo sliˇ cico iz videa; rekli smo ji sidro. Za vsako sliˇ cico smo poiskali spremembo vsake izmed obraznih toˇ ck; to je razlikai-te toˇ cke sliˇ cice ini-te toˇ cke sidra. Doloˇ cili smo ˇ se seznam v s =[(x 1 ;y 1 );:::;(x n ;y n )] . Oznaˇ cili smo k = ssize dsize , kjer s size predstavlja veli- kost obraza na sliˇ cici in d size velikost obraza na slikar- skem delu. v d := kv s je potem seznam, katerega i-ti element ob seˇ stevanju je popeljal i-to toˇ cko slikarskega dela na mesto, kjer smo to toˇ cko ˇ zeleli. To skaliranje smo izvedli loˇ ceno za osx in loˇ ceno za osy. Nato smo vzeli d = [(x 1 ;y 1 );:::;(x n ;y n )] obrazne toˇ cke slikarskega dela. d n =d+v d so obrazne toˇ cke, ki smo jih ˇ zeleli za trenutno sliˇ cico konˇ cne animacije. Za konec doloˇ canja sprememb smo ˇ zeleli transformi- rati obraz oznaˇ cen s toˇ ckamid na slikarskem delu v obraz oznaˇ cen z d n . Tako smo dobili j-to sliˇ cico naˇ se konˇ cne animacje. 6.2 Afina transformacija Z Delaunayevo triangulacijo [12] (slika 1) smo triangu- lirali seznam toˇ ckd n in potem posamezni trikotnik afino transformirali s premikom ogliˇ sˇ c vd. Seveda tako, da je i-ta toˇ cka izd pristala nai-ti toˇ cki izd n . Tej transforma- ciji smo rekliA. Potem je bila transformacijaA 1 ravno tista, ki smo jo ˇ zeleli, da je slikarsko delo transformirala vj-to sliˇ cico naˇ se animacije. Slika 1: Delaunayeva triangulacija prikazana na Mona Lisi. Akcije v razdelku 6.2 so v implementaciji izvedene z uporabo funkcij iz knjiˇ zniceskimage.transform. Za pridobitevA inwarp za izvedboA 1 smo uporabili PiecewiseAffineTransform.estimate. 7 Izboljˇ save implementacije Na tej toˇ cki implementacije je bil rezultat ˇ ze skoraj pre- priˇ cljiv. Problem se je pojavil v naslednjih primerih: • ˇ ce subjekt na videu ni ostajal centriran, se je rezul- tat pokvaril, • ob premikanju npr. brade, je afina transformacija “sploˇ sˇ cila” trikotnik pod brado, kar se je izrazilo v deformiranem trupu, • je ˇ sum pri zaznavanju obraza iz videa povzroˇ cil tresoˇ co sliko. 7.1 Normalizacija poravnanosti obraza Namesto, da bi gledali spremembe (t.j. seznamv s ) direk- tno med toˇ ckami na trenutni sliˇ cici in med sidrom, smo gledali, do kakˇ sne spremembe je priˇ slo med neko toˇ cko, ki smo jo izbrali za fiksno (v naˇ sem primeru je to toˇ cka med obrvema) na trenutni sliˇ cici in med to isto toˇ cko na sidru. Tako smo gledali samo spremembe na obrazu, ne pa tudi sprememb v prostoru. 119 7.2 Reˇ sitev deformacije trupa Ideja za reˇ sitev tega problema je bila, da okrog obraza postavimo kvadrat, ki je igral vlogo varnega okvirja (slika 2), zunaj katerega ni prihajalo do sprememb. Slika 2: Delaunayeva triangulacija z varnim okvirjem na Ge- orge Romneyevem delu Captain John Taubman III. Zopet smo si izbrali neko fiksno toˇ cko, od katere smo gledali odmike toˇ ck. Varni okvir smo doloˇ cili kot najveˇ cji moˇ zni odmik obraza gor, dol, levo in desno od fiksne toˇ cke na vhodnem videu. Ta odmik smo potem, podobno kot v s , skalirali, da smo dobili pozicije na slikarskem delu. 7.3 Predprocesiranje posnetkov Ker smo iste videoposnetke uporabili pri veˇ c slikarskih delih, je procesiranje posameznega posnetka izraˇ zenega ˇ custva vzelo precej ˇ casa - za vsako procesirano slikar- sko delo se je na videoposnetku izvedlo povsem enako zaznavanje toˇ ck. Zato smo se odloˇ cili, da vsak video- posnetek predprocesiramo in ustvarimo seznam obraznih toˇ ck, ki jih potem kot JSON datoteko posredujemo pro- gramu. Ta JSON datoteka vsebuje 68 znaˇ cilnih obraznih toˇ ck in toˇ cke pravokotnika pozicije obraza (ki se upora- blja za doloˇ canje faktorja skaliranja pri prevajanju toˇ ck iz videoposnetka v slikarsko delo) za vsako sliˇ cico v videu. S to metodo smo hitrost procesiranja posameznega slikarskega dela skoraj razpolovili. Tudi uvedba metode opisane v 7.4 je bila laˇ zje implementirana s predprocesi- ranimi videoposnetki. 7.4 Glajenje vhodnega videa ˇ Ceprav je bil subjekt na vhodnem videu pri miru, je priha- jalo do manjˇ sega ˇ suma pri zaznavanju toˇ ck obraza. To je pripeljalo do tresoˇ cega rezultata. Ta problem smo reˇ sevali s povpreˇ cenjem iste toˇ cke na zaporednih sliˇ cicah. Za vsako izmed 68 znaˇ cilnih toˇ ck (ang. facial land- marks) na poljubni sliˇ cici videa smo izraˇ cunali povpreˇ cno pozicijo v koordinatnem sistemu na podlagi n prejˇ snjih in naslednjih sliˇ cic. Opazili smo, da se metoda pri 30 sliˇ cicah na sekundo najbolje obnese pri n = 5. Ob iz- biri veˇ cjegan se pojavijo preveˇ c razvleˇ ceni premiki. Ob manjˇ semn-ju pa je slika ˇ se vedno tresoˇ ca. 8 Rezultati Za predstavitev rezultatov smo izbrali dve slikarski deli vidni na sliki 3. Na slikah 4 in 5 pa so predstavljena vsa izraˇ zena ˇ custva. Slika 3: Slikarsko delo Thomasa Gainsborougha, “Woman in Blue”, brez animacije (levo). Slikarsko delo Alekseya Antro- pova, avtoportret, brez animacije (desno). Slika 4: Izrazi na obrazu predstavljeni po vrsti od leve zgoraj do desne spodaj: zaspanost, posmehljivost, sumniˇ cavost, veselje, ˇ zalost, zaljubljenost. 9 Uporaba vmesnika Pripravili smo tudi vmesnik (slika 6) za laˇ zji pregled ge- neriranih videov, pri katerem smo uporabili HTML in Ja- vaScript. Vmesnik omogoˇ ca izbiro slikarskega dela in emotikona (ki prikazuje izraz na obrazu), potem pa pred- vaja video posnetek, ki smo ga generirali za ta par slike in izraza na obrazu. Uporabnik lahko po ˇ zelji izbere po- ljubno drugo slikarsko delo ali emotikon in animacija se bo avtomatsko posodobila. Video posnetek je mogoˇ ce ustaviti, ponovno predvajati ali pa predvajati ˇ cez celoten zaslon. Pod generiranim video posnetkom se izpiˇ sejo po- datki slikarskega dela – avtor, naslov, leto nastanka. S tem se uporabnik seznani z deli, ki jih prej ni poznal. Menimo, da je vmesnik uporabnikom prijazen, saj jih od zaˇ cetka vodi z navodili za uporabo. 10 Predlogi za izboljˇ save Ena izmed izboljˇ sav, ki bi jo lahko implementirali, bi bila tudi moˇ znost odpiranja ust likov, saj pri nas to ni mogoˇ ce. ˇ Ce so bila usta v vhodnem videu odprta, se je to na kon- ˇ cnem videu prikazalo kot ˇ crn prostor v ustih, torej ni bilo videti zob ali jezika. Prav tako bi lahko izboljˇ sali tudi zapiranje vek, saj trenutno, ˇ ce oseba na vhodnem videu preveˇ c zapre oˇ ci, pride pri animaciji do popaˇ cenja delov obraza okoli oˇ ci. ˇ Ce bi nam to uspelo, bi bila po naˇ sem mnenju uporabniˇ ska izkuˇ snja ˇ se boljˇ sa, rezultati pa ˇ se bolj realistiˇ cni. Dober primer zapiranja oˇ ci in odpiranja 120 Slika 5: Izrazi na obrazu predstavljeni po vrsti od leve zgoraj do desne spodaj: zaspanost, posmehljivost, sumniˇ cavost, veselje, ˇ zalost, zaljubljenost. Slika 6: Prikazan uporabniˇ ski vmesnik prikazuje predogled ani- miranega videa (levo), moˇ znost izbire razliˇ cnih slikarskih del (desno zgoraj) in izbiro upodobljenega izraza na obrazu preko emotikonov (desno spodaj). ust so dosegli z globokimi nevronskimi mreˇ zami [13], kar pa bi precej poveˇ calo ˇ casovno zahtevnost generiranja ani- macij. ˇ Se ena moˇ zna izboljˇ sava bi bila, da bi na slikarskem delu animirali veˇ c obrazov. Tako bi se lahko vsi obrazi na slikarskih delih premikali in bi lahko uporabili dela, na katerih se pojavi veˇ c oseb. Trenutna implementacija ˇ ze zazna vse obraze, dodatno bi morali na vsaki sliki videa animirati vse obraze namesto samo prvega zaznanega. ˇ Cas generiranja videov zan obrazov bi se tako podaljˇ sal za pribliˇ zno n-krat. ˇ Ce bi ˇ zeleli na obrazih uporabiti razliˇ cne izraze, bi bila izboljˇ sava ˇ se malce oteˇ zena. Za- radi razliˇ cnih dolˇ zin posnetkov izrazov bi se pojavil pro- blem, kaj storiti z obrazi, katerih animacija se je konˇ cala. Moˇ zna reˇ sitev bi bila, da animacijo, ki pride do konca, odvrtimo v vzvratno smer. Drug problem bi bil, kako iz- brati, katera ˇ custva ˇ zelimo na danih obrazih. To bi bilo reˇ sljivo z razˇ siritvijo uporabniˇ skega vmesnika. Tudi pri uporabniˇ skem vmesniku je ˇ se prostor za iz- boljˇ save. Uporabnik bi lahko posnel samega sebe za iz- vorni video, ki bi ga naˇ s algoritem nato sprocesiral, liki pa bi se premikali, tako kot bi uporabnik ˇ zelel. Sam po- stopek bi vzel veˇ c ˇ casa, kar bi po naˇ sem mnenju vodilo k slabˇ si uporabniˇ ski izkuˇ snji - zaradi tega smo v obstojeˇ ci verziji vmesnika to moˇ znost izkljuˇ cili. 11 Zakljuˇ cek Glede na to, da smo opisano raziskavo delali v okviru predmeta in smo zato bili ˇ casovno omejeni, smo precej zadovoljni z rezultati. Sama spletna aplikacija je zabavna za uporabo, je pa ˇ se ogromno moˇ znosti za izboljˇ savo (ne- kaj je omenjenih v prejˇ snjem poglavju), ki bi jih bilo po- trebno preizkusiti. Literatura [1] Deep Nostalgia, https://www.smithsonianmag. com/smart-news/ai-program-deep- nostalgia-revives-old-portraits- 180977173 [2] Uporabniˇ ski vmesnik Deep Nostaliga, https://www. myheritage.si/deep-nostalgia [3] GANimation: Anatomically-aware facial animation from a single image,https://openaccess.thecvf.com/ content_ECCV_2018/html/Albert_Pumarola_ Anatomically_Coherent_Facial_ECCV_2018_ paper.html [4] SC-FEGAN (Face Editing Generative Adversarial Ne- twork), https://openaccess.thecvf.com/ content_ICCV_2019/papers/Jo_SC-FEGAN_ Face_Editing_Generative_Adversarial_ Network_With_Users_Sketch_and_ICCV_ 2019_paper.pdf [5] X2Face, https://arxiv.org/pdf/1807.10550. pdf [6] First Order Motion Model for Image Animation, https://iris.unitn.it/retrieve/handle/ 11572/250831/300686/8935-first-order- motion-model-for-image-animation.pdf [7] enciklopedija vizualne umetnosti WikiArt (baza slikarskih del),https://www.wikiart.org/ [8] GitHub repozitorij, https://github.com/ jjustin/paintings-animator [9] projekt izdan na GitHub Pages, http://jjustin. github.io/paintings-animator [10] knjiˇ znica dlib,http://dlib.net/files [11] knjiˇ znica skimage, https://scikit-image.org/ docs/dev/api/skimage.html [12] skimage PiecewiseAffineTransform dokumentacija, https://scikit-image.org/docs/stable/ api/skimage.transform.html#skimage. transform.PiecewiseAffineTransform [13] Interactive facial animation with deep neural ne- tworks,https://ietresearch.onlinelibrary. wiley.com/doi/10.1049/iet-cvi.2019.0790