Objavljeno: 27.2.2018 | Avtor: Matej Huš | Monitor Marec 2018

Putin ali Pahor?

Orodja, s katerimi lahko pripravljamo lažne videoposnetke ljudi, so se razvila v visokotehnoloških podjetjih in raziskovalnih laboratorijih, a niso ostala zgolj tam. V internetu so dandanes dostopna že vsakomur, ki lahko z zelo malo znanja in truda v neprijetne in nespodobne situacije zmontira soseda ali predsednika.

Rezultat urjenja nevronske mreže po 12 urah

Nevronske mreže so v zadnjih letih doživele silovit razvoj, izdaten pospešek pa sta jim dala Google in Nvidia. Prvi je leta 2015 pod licenco Apache 2.0 izdal TensorFlow, kot so poimenovali lastno programsko knjižnico za strojno učenje pri programiranju in uporabi nevronskih mrež. Moderne Nvdiine grafične kartice pa podpirajo CUDA, torej njihovo uporabo za povsem splošne probleme, ki niso povezani z izrisom slike na zaslonu. Nekaj podobnega znajo tudi AMDjeve, a se v skupnosti nikdar niso tako zelo uveljavile kot Nvidiine. Vse skupaj pa je širšim ljudskim množicam zdaj približala aplikacija FaceApp.

To zmore vsak

Povejmo - v resnici bi bil moral ta članek pisati avtor s precej več izkušnjami, pa je moral v zadnjem trenutku odpovedati. A nič ne de, glede na številčnost zmontiranih videoposnetkov z zamenjanimi obrazi, ki so se v zadnjem času znašli v internetu, bi moralo biti to opravilo zelo preprosto. Lahko v enem koncu tedna na osebnem računalniku s procesorjem Intel Core i7-4790, grafično kartico Nvidia GTX 970, zgolj z gradivom in orodjem, ki ga lahko brezplačno in legalno najdemo v internetu, in brez predznanja zmontiramo »fake« posnetek? Odgovor je – brez težav. Še najtežji del je iskanje visokoločljivih fotografij ali videoposnetkov obeh oseb.

Rezultati so se razširili kot požar. V internetu mrgoli pornografskih posnetkov, v katere so bolj ali manj prepričljivo vdelali zvezdnice (Angelina Jolie, Daisy Ridley, Maisie Williams, Emma Watson, Katty Perry, Natalie Portman in druge). Na Redditu so te fakeapp in deepfakes kmalu blokirali zaradi neskladnosti s pravili rabe. Toda sredi februarja je FakeApp 2.1 postopek že skoraj avtomatiziral, prihajajoči FakeApp 2.2 pa obljublja še enostavnejšo montažo.

Kako deluje

Podrobnosti algoritma niso znane, ker FakeApp ni odprtokodna aplikacija, je pa brezplačna. Tudi avtor programa javno ni znan, zato je za namestitev treba imeti nekoliko pustolovske žilice. FakeApp ustvari in izuri nevronsko mrežo, ki se nauči prepoznavati obraz lika in ga nadomesti z obrazom tarče. Tem pravilom in ustroju nevronske mreže, ki nastane po vadbi, pravimo model. Ko ga enkrat imamo, lahko v videoposnetku enostavno zamenjamo tarčo z žrtvijo. Čim bolje smo izurili nevronsko mrežo, tem boljši bo rezultat. Za to potrebujemo dvoje – dobre vhodne podatke (fotografije ali videoposnetke) in čas.

Poglejmo, kako to poteka v praksi. Najprej moramo namestiti programsko podporo za CUDA, ki bo aplikaciji omogočil neposredno pogovarjanje z Nvidiino grafično kartico. AMD-jevih grafičnih kartic zaenkrat ne podpira, zato v takem primeru deluje na procesorju, kar je bistveno počasnejše. Naslednji korak je samo še namestitev FakeApp 2.1 in iskanje gradiva. Vsa druga podporna orodja, ki jih potrebujemo za delo, lahko nadomestimo celo z brezplačnimi vtičniki na spletnih straneh. Seveda bomo za (pol)profesionalne izdelke posegli po namenskih programih, niso pa nujni.

Pa pojdimo!

Odločili smo se, da bomo poizkusili našega predsednika zmontirati v kak videoposnetek, kjer ruski predsednik ribari po Sibiriji ali daje intervjuje.

Na YouTubu smo poiskali pet Pahorjevih videoposnetkov in jih prenesli na disk. Mimogrede, v ta namen lahko uporabimo stran y2mate.com. Enako smo storili še s Putinovimi posnetki. Potem smo posnetke porezali tako, da smo dobili le kadre, kjer je oseba sama. Za urejanje videoposnetkov je na voljo kopica programov, primitivno rezanje kadrov pa lahko opravimo kar na spletni strani ezgif.com.

Odločili smo se, da bomo poizkusili našega predsednika zmontirati v kak videoposnetek, kjer ruski predsednik ribari po Sibiriji ali daje intervjuje.

Za dober rezultat potrebujemo čim več fotografij obeh oseb, ki morajo biti zadostne kakovosti in posnete iz različnih zornih kotov ter z različno obrazno mimiko človeka. Lahko bi vzeli stotine fotografij z Instagrama ali uradne predsednikove strani ali pa jih izrežemo iz videoposnetkov. FakeApp 2.1 zaenkrat omogoča zgolj uporabo videoposnetkov. Aplikacija ima tri zavihke in prvi, z imenom Get Dataset, stori prav to. Predloženi videoposnetek razkosa na posamezne sličice, potem pa na njih prepozna obraz in pripravi izrezke, ki vsebujejo le obraz. To ponovimo na vseh videoposnetkih, potem pa iz pripravljene mape ročno pobrišemo fotografije, kjer je osvetlitev slaba, fotografija neostra, deloma prekrita itd. Za najboljše rezultate potrebujemo zgolj dobre posnetke.

FakeApp 2.1 ne zna tako obdelati posamičnih fotografij (recimo z Instagrama), prinaša pa to naslednja različica. Kljub temu se lahko znajdemo. Da ne bi ročno obrezovali vseh fotografij s Twitterja, jih lahko preprosto spremenimo v enako ločljivost (Lightning Image Resizer je zgolj eden izmed brezplačnih programov, ki to zna). Potem jih s ffmpeg ali kako drugače zložimo v »videoposnetek« in ga uvozimo v FakeApp 2.1. Tako poskrbimo, da so tudi te fotografije obdelane enako.

Če ima človek v kadru kakšno pokrivalo, je rezultat zelo dober.

Časovno najpotratnejši del je trening ali urjenje nevronske mreže, ki ga sprožimo na zavihku Train. Najprej določimo mapo, kamor se bo model shranjeval, nato pa podatke A (oseba, ki ji želimo zamenjati obraz, v našem primeru Putin), podatke B (obraz, ki ga želimo vstaviti, v našem primeru Pahor). Nastavimo lahko še število vozlišč in globino nevronske mreže, nato pa sistem pustimo trenirati. Napredek je asimptotičen. Model postane pogojno uporaben po 12 urah, kasneje pa se izboljšuje čedalje počasneje. Pri našem testiranju rezultati modelov po 18, 24 in 48 urah na oko niso bili bistveno drugačni. Pretiravanje pa lahko postane kontraproduktivno, ker pride do pretreniranja nevronske mreže.

Ko ocenimo, da je treninga dovolj, kar lahko spremljamo v prikaznem oknu, aplikacijo zapremo. Treninga ni mogoče nadaljevati; če smo bili neučakani, moramo naslednjič od začetka. Nato se napotimo v tretji zavihek, Create. Tu izberemo mapo z modelom z vadbe, osnovni videoposnetek in izvedemo zamenjavo, ki je za krajše izseke končana v kakšni minuti ali dveh. Rezultat je videoposnetek, na katerem ima človek zamenjan obraz.

Ozadje

Nevronska mreža se mora naučiti analize obraza A in risanja obraza B. Poenostavljeno povedano, mreža pri videomontaži skuša razvozlati, s kakšno grimaso, pod kakšnim kotom in ob kakšni osvetlitvi nastopa obraz A. Potem na podlagi teh informacij nariše obraz B, ki mora ustrezati istim parametrom. Nato pri izdelavi končnega videoposnetka na vsaki sličici analizira parametre obraza A in nariše obraz B z enakimi parametri ter ga vstavi.

Algoritem ne zamenja pričeske in čela, zato je končni izdelek manj prepričljiv.

Pri vadbi imamo na voljo tudi posnetke obraza B, ki rabijo kot nadzor. Nevronska mreža analizira njegove parametre, potem pa na podlagi naučenega znanja poizkuša z enakimi parametri narisati obraz še sama. Čim bolj je narisani obraz podoben dejanski fotografiji, tem bolje se je nevronska mreža naučila svojega opravila. Ker trening poteka na velikem številu različnih fotografij, je končni rezultat robusten model, ki zmore narisati obraz za vsak parameter.

Za najboljše rezultate

Pustimo legalnost vnemar in se posvetimo vprašanju, kako dobiti čim boljše rezultate. Čim več fotografij imamo na voljo, tem boljši so rezultati. Uporaba videoposnetkov za ekstrakcijo fotografij človeka ima slabe in dobre strani. Načeloma so videoposnetki slabše kakovosti in ponujajo le fotografije, ki so podobno osvetljene in posnete iz podobnih zornih kotov. Po drugi strani pa že v kratkem videoposnetku človek med govorjenjem naredi zelo veliko različnih obraznih potez, kar je dobro. Za idealen rezultat je treba imeti kombinacijo obojega – veliko kakovostnih fotografij (naš predsednik jih na Instagramu ponuja pravo zakladnico) in dobre videoposnetke.

S to metodo lahko zamenjamo zgolj obraz. Čelo, lasje in drugi deli telesa ostanejo, zato deluje najbolje, kadar človeka vstavljamo na posnetke, kjer original nosi klobuk, lasuljo ali kaj podobnega. Za prepričljive posnetke je seveda treba najti nekoga, ki ima tudi podobno konstitucijo. Pri uporabi FakeApp za izdelavo pornografskih posnetkov zvezdnic so zato oblikovalci najprej potrebovali pornografski film podobne pornoigralke.

Pri našem poizkušanju, ki je bilo resda časovno omejeno, se lepo vidi, da je Pahor najprepričljivejši pri ribolovu, ko je imel originalni Putin na glavi klobuk. Pri montaži v intervju je rezultat slabši, ker ima naš predsednik pač veliko bolj košate lase od ruskega. Priznati moramo, da je naš končni rezultat še vedno neoster in pušča zelo veliko prostora za izboljšave (glej videoposnetke). Veliko boljši rezultat bi dosegli, če bi imeli na voljo več fotografij in predvsem več časa za urjenje nevronske mreže. Toda že v dveh dneh je mogoče iz petih kratkih videoposnetkov iztisniti presenetljivo veliko. Pomislite, kaj bi zmogli profesionalci, ki imajo na razpolago tisoče fotografij in grafičnih kartic!

Pahor je najprepričljivejši pri ribolovu, ko je imel originalni Putin na glavi klobuk. Pri montaži v intervju je rezultat slabši, ker ima naš predsednik pač veliko bolj košate lase od ruskega.

Kako naprej

FakeApp je pomemben zato, ker je to prva aplikacija, ki je uporabo nevronskih mrež za videomontažo približala vsakomur. Tehnologija zares spremeni svet šele, ko se njene moči zave prav vsakdo in ko za rabo ne potrebujemo doktorata. V resnici so rezultati FakeAppa precej primitivni – ni zvoka, vsebujejo grd vodni žig ipd. Toda to ni pomembno, gre za smer.

V resnici je FakeApp znanilec prihodnosti. Tik pred koncem redakcije se je pojavila aplikacija MyFakeApp drugega pisca, ki načeloma počne isto. In v prihodnosti jih bo zagotovo še več. Le ugibamo pa lahko, kaj vse že znajo v Googlu ali Dreamworksu in Pixarju. Pandorina skrinjica je odprta, videoposnetkom kmalu ne bomo več smeli zaupati.

Izdelana video posnetka:

Intervju: www.monitor.si /fakeapp_intervju

Ribolov: www.monitor.si/fakeapp_ribolov

Naroči se na redna tedenska ali mesečna obvestila o novih prispevkih na naši spletni strani!

Komentirajo lahko le prijavljeni uporabniki

 
  • Polja označena z * je potrebno obvezno izpolniti
  • Pošlji