Kuidas me tahtsime Jüri Ratast täiskasvanute filmi panna ja mis sellest kõigest välja tuli

Pane tähele! Artikkel on ilmunud enam kui 5 aastat tagasi ning kuulub Geeniuse digitaalsesse arhiivi.

Veebruari alguses kirjutasime, et avalikult on kättesaadavaks tehtud tarkvara FakeApp, millega saad videotes inimeste nägusid ära vahetada. Seepeale otsustasime ise veenduda, kui lihtne on reaalsust võltsida ja teha petuvideo, kus näiteks peaminister Jüri Ratase nägu panna pornofilmi peaossa.

Miks just peaminister? Tegime seda soovist avalikkusele näidata, kui tõenäoline selliste nägudevahetamisega võltsitud videote levik on. Järgmiste Riigikogu valimisteni on jäänud natukene rohkem kui aasta ja selline tööriist on kindlasti kiusatus, millega oleks võimalik enda vastaseid kompromiteerida.

Isegi siis kui need võltsingud on läbinähtavad, oleksid need ikkagi naljakad või piinlikud. Jüri Ratas kui peaminister võiks olla sellise video loogiline sihtmärk. Lisapõhjus just tema isiku valimiseks oli see, et katseisiku kohta on palju olemasolevat avalikult kättesaadavat videomaterjali, mida kasutatad sisendandmetena.

Üks mugav programm nägude vahetamiseks

FakeApp kasutab Google’i TensorFlow masinõppealgoritme, et videotes nägusid vahetada. 4. veebruaril lasti FakeAppist välja uus versioon 2.1, mis oluliselt lihtsustab nn deepfakes näovahetusvideote tegemist ja sellesse on kõik tööriistad, mida tuli varem eraldi tõmmata ja käsurealt kamandada, sisse ehitatud.

FakeApp 2.1 kasutajaliides on paljulubavalt sõbralik ja lihtne.

Kui raske see ikka olla saab? Eriti arvestades seda, kui veenvaid võltsvideoid juba on internetis olemas.

Reaalsus? Kuigi videote tegemine on tehniliselt tehtud ülilihtsaks, siis kvaliteetse ja usutavalt realistliku video saamine ei ole siiski lihtne.

Kõige keerulisem on hea algmaterjali leidmine. Meil oli plaan poetada Jüri Ratase nägu sellesse suurepärasesse filmiklippi, millest on pärit järgnev kaader.

Suvaline internetist leitud lühifilm, kuhu me tahtsime Jüri Ratast peaossa saada.

Algmaterjal ei pea olema hea kvaliteediga, sobib ka 720p video, sest FakeAppist väljatulev video on alati 720p kvaliteedis kuni 30 kaadrit sekundis (kaadrisagedust saab ise määrata).

Valmisime sellise klipi välja seetõttu, et meespeaosalise nägu on mitmel korral otsevaates näha. Kui vaadata kõiki FakeAppiga tehtud videoid, siis peaaegu alati on vahetatud nägu kaadris otse. See on hea tulemuse jaoks ülioluline.

FakeApp võtab ise algmaterjali kaadriteks lahti ja leiab sellest sellest näod ning teeb neist 256 x 256 pikslit pildifailid. Järgmiseks oli vaja leida leida pilte Jüri Ratasest ja selleks sobis peaministri uusaastatervituskõne. Jüri Ratas räägib seal pikalt otse kaamerasse, palju on erinevat näomiimikat, nii et materjal on ideaalne.

Kui videotest on pildid olemas, siis tuleb käsitsi nende pisipiltide kallale minna. FakeApp tunneb küll hästi näod ära, aga tulemuste sekka sattus ka lihtsalt suvalisi faile või olid mõned näod moonutatud või fail tagurpidi pööratud. Kõik ebaõnnestunud failid tuleb üles leida ja käsitsi kustutada.

Arvutis peab olema just õige riistvara

Nüüd oli mul olemas umbes sada näokaadrit nimetust meesstaarist ja 700 näopilti Jüri Ratasest. Järgnevaks sammuks on algoritmi treenimine, kus FakeAppile tuleb ette sööta vahetatavad näod ning arvutis olev graafikakaart hakkab maagiat tegema. Mul oli arvutis selleks Nvidia keskklassi GTX1060 kaart valmis.

Pärast umbes tööpäevapikkust katsetamist sai selgeks, et see kaart pole nõus neid andmeid töötlema, kuigi kõik vajalikud sammud selleks on tehtud (näiteks on vaja Nvidia CUDA arvutusplatvormi paigaldamine, paikamine ning õigete pathide määramine).

Internetist selgub, et väga paljudel FakeAppiga videovõltsijatel on just see probleem, et graafikakaart pole nõus koostööd tegema ja FakeApp ei hakka algoritmi treenima.

Kuigi FakeAppi puhul räägitakse, et vaja on just Nvidia graafikakaarti, siis tegelikult on võimalik kõike seda teha ka arvuti Inteli protsessoriga, aga see võtab lihtsalt kauem aega. Lõingi graafikakaardile käega ja kasutasin treenimiseks eelmise põlvkonna Inteli i5 protsessorit.

Ja tulemus on käes

FakeAppi algoritm arvestab treenimise ajal piltide kadu, mida kuvatakse kummagi näo kohta kujul 0,12345. Tavaliselt on see algoritmi treenima pannes suurusjärgus umbes 0,2525, mis peaks jõudma näitajani 0,02 mõlema näo puhul. Tüüpiliselt võtab see kaheksa tundi treenimist, tavalist protsessorit kasutades võib selle aja kahekordistada.

Kas me saime siis Jüri Ratase näo sellesse siivutusse filmi? Ei saanud. Tulemuseks oli videoklipp, kus meespeaosalisel oli hägune nägu ja kõik. Ebaõnnestumise põhjus? Tõenäoliselt see, et meespeaosalisest ei olnud piisavalt palju pilte, mistõttu polnud algoritmil vajalikult palju andmeid, et enda maagiat teha.

Täiesti võimatu oli ka sellest nimetust kangelasest rohkem pildimaterjali leida ja kuigi see video oli originaalis üle viie minuti pikk, siis meespeaosalise nägu oli seal kokku vähem kui 400 kaadris. Ilmselt selle filmižanri eripära.

Miksime kokku Savisaare, Pevkuri, Ratase

Järelikult läheb vaja rohkem andmeid ja proovisin leida ka paremaid nägusid, kui väikses plaanis voodil lösutav mees pakkus. Võtaks Edgar Savisaare keha ja paneks sellele Jüri Ratase näo?

Seda ei saa teha, sest FakeApp tegeleb ainult näolapiga ja kui üheks vahetatavaks on prillikandja, siis jäävad prillisangad näha.

Võtsime siis suurima opositsioonipartei liidri Hanno Pevkuri, sest ka temaga on hulgaliselt häid valimisreklaame, kus ta nägu on selgelt näha. Võtsime ühe Hanno Pevkuriga valimisreklaami ja üritasime panna talle ette Jüri Ratase näo.

Tulemus on siin:

Ilmselt oli mul ikkagi liiga vähe andmeid. Algmaterjali puhul on oluline, et oleks võimalikult palju näomiimikat ja seda erineva valgustusega.

Nüüd võtsin mitu videot nii Hanno Pevkurist kui ka Jüri Ratasest, valisin alusvideoks ühe teise Refermierakonna valimisreklaami, sain kokku 3600 pilti Pevkurit ja 5100 pilti Rataset ning panin algoritmi 20 tunniks treenima.

Pärast seda oli algoritmi ennustatav kadu juba peaaegu soovitud 0,02 lähedal ning tulemus tuli ilmselgelt kõige parem, aga kindlasti mitte hea. Isegi mitte rahuldav, sest ära ei peta sellega kedagi.

Mõnel hetkel pole algoritm Hanno Pavkuri näoga midagi teinud, aga mingitel hetkedel on Jüri Ratase nägu ähmaselt aimatav. Vähemalt see ähmane Jüri Ratase nägu liigutab huuli täpselt nagu Hanno Pevkur originaalvideos.

Või siis selline näide, mis on veel kehvem.

Kokkuvõte: see ei ole lihtne

Ma kulutasin FakeAppi uurimise, selle kohta õpetuste lugemise, videote vaatamise ja katsetamise peale üle kolme täistööpäeva ja sellega sain sellise tulemuse.

Tõenäoliselt saaksin parema tulemuse, kui veel hoolikamalt valiksin algmaterjali ja sellega päevade kaupa lihtsalt tuimalt katsetaksin ja algoritmi kümnete tundide kaupa treeniksin.

Internetis on küll hulgaliselt õnnestunud klippe, kuid need kõik on lühikesed ja kus kõik glitch’id ja ebaõnnestumised on väljalõigatud. FakeAppiga seotud foorumeid lugedes jääb silma, et enamasti saadakse tulemuseks mingi elukaga nägu õudusunenäost, mitte soovitud tulemus, milleks on tavaliselt lemmiknäitleja nägu ilma riieteta filmis.

Üks aga on selge. FakeApp ei ole rakendus, millega igaüks lihtsalt ja kiirelt suudaks igas videos nägusid vahetada ja Jüri Ratasest pornofilmi kangelase teha.

Populaarsed lood mujal Geeniuses

Igal argipäeval

Ära jää ilma päeva põnevamatest lugudest

Saadame sulle igal argipäeval ülevaate tehnoloogia-, auto-, raha- ja meelelahutusportaali olulisematest lugudest.