Co jsou Deepfakes a jak je vytvořit?

Komplexní průvodce světem deepfakes a jejich tvorbou pomocí nástroje Faceswap.

Umělá inteligence se stává stále méně „umělou“. Vývoj v této oblasti se nás, lidí, dotýká čím dál tím více.

Dnes už dokáže nejen navrhovat a psát, ale i vytvářet umělecká díla a dokonce napodobovat lidský vzhled i řeč.

Jedná se o jeden z nejnovějších pokroků v tomto oboru, který bychom měli umět využít, ale zároveň si musíme dát pozor.

Co jsou to deepfakes?

Slovo „deepfake“ vzniklo spojením slov „deep learning“ (hluboké učení) a „fake“ (falešný). Zjednodušeně řečeno, jedná se o mediální obsah, který byl sofistikovaně zmanipulován.

Podle definice z Wikipedie se také nazývají syntetická média, kde existující obrázek, zvuk či video jsou upraveny tak, aby zobrazovaly někoho úplně jiného.

Deepfakes často vytvářejí dojem, že známé osobnosti říkají něco, co by ve skutečnosti nikdy neřekly.

Díky pokročilým schopnostem jejich tvůrců může být velmi obtížné poznat, zda je daný obsah pravý, nebo falešný.

Jak deepfakes fungují?

Zjednodušeně řečeno, část původního videa, například obličej, je nahrazena podobně vypadajícím padělkem. V takovém případě se tomu říká také „faceswap“, jak je to vidět například ve videu s ‚Obamou‘.

Tato technologie se ale neomezuje jen na video. Existují také deepfake obrázky a zvuky. A kdo ví, možná se v brzké budoucnosti dočkáme i deepfake VR avatarů.

Zdroj: Disney

Techniky, na kterých jsou tyto triky založeny, se liší v závislosti na aplikaci a použitém algoritmu.

Podle výzkumné práce společnosti Disney se používají různé metody, například kodéry-dekodéry, generativní adversariální sítě (GAN) nebo deepfakes založené na geometrii.

Následující popis se zaměří na to, jak funguje proces s nástrojem Faceswap, což je volně dostupný open-source software pro tvorbu deepfakes, který nabízí několik algoritmů pro dosažení požadovaného výsledku.

Proces tvorby deepfakes se skládá ze tří hlavních fází: extrakce, trénink a konverze.

#1. Extrakce

V této fázi dochází k detekci a vyjmutí klíčové oblasti ze vzorků médií, a to jak z originálu, tak z média určeného k výměně.

Pro efektivní detekci lze využít různé algoritmy v závislosti na možnostech hardware.

Například Faceswap nabízí několik variant pro extrakci, zarovnání a maskování, které se liší v náročnosti na CPU nebo GPU.

Extrakce jednoduše identifikuje obličej ve videu. Zarovnání zaznamená klíčové rysy obličeje (oči, nos, brada atd.) a maskování zablokuje ostatní části obrazu kromě oblasti zájmu.

Při výběru metody je důležitá celková doba potřebná ke zpracování, protože volba náročných algoritmů na průměrném hardware může vést k selhání nebo k velmi dlouhému čekání na přijatelné výsledky.

Kromě hardware závisí výběr také na tom, zda vstupní video obsahuje překážky v obličeji, jako jsou například pohyby rukou nebo brýle.

Nakonec je nezbytné vyčištění výstupu, protože extrakce může obsahovat i falešné detekce.

Extrakce se opakuje jak pro originální, tak pro falešné video (které se použije pro výměnu).

#2. Trénink

Trénink je jádrem celého procesu tvorby deepfakes.

Zahrnuje neuronovou síť složenou z kodéru a dekodéru. Do této sítě jsou vkládána extrahovaná data, aby se vytvořil model pro pozdější konverzi.

Kodér převádí vstup na vektorovou reprezentaci, aby trénoval algoritmus pro obnovení tváře zpět z vektorů, což je úkolem dekodéru.

Neuronová síť vyhodnocuje své iterace a porovnává je s originálem, přičemž přiřazuje skóre ztráty. Tato hodnota ztráty se postupem času snižuje, jak se algoritmus neustále opakuje, dokud náhledy nejsou přijatelné.

Trénink je časově náročný proces a výsledky se obvykle zlepšují s počtem iterací a kvalitou vstupních dat.

Například Faceswap doporučuje alespoň 500 obrázků každého, originálu i cílového obličeje. Dále by se snímky měly výrazně lišit a pokrývat všechny možné úhly pohledu a různé světelné podmínky, aby byl výsledek co nejlepší.

Vzhledem k délce tréninku umožňují některé aplikace (jako Faceswap) trénink přerušit a pokračovat v něm později.

Je důležité si uvědomit, že fotorealističnost výsledku závisí také na efektivitě algoritmu a kvalitě vstupu, přičemž hardware opět hraje svou roli.

#3. Konverze

Toto je závěrečná fáze procesu vytváření deepfake. Konverzní algoritmy potřebují zdrojové video, natrénovaný model a soubor zarovnání.

Následně lze upravit několik parametrů, například korekce barev, typ masky nebo požadovaný výstupní formát.

Po konfiguraci těchto parametrů už jen čekáte na finální render.

Jak již bylo zmíněno, Faceswap pracuje s mnoha algoritmy a můžete s nimi experimentovat, abyste dosáhli požadovaného výsledku.

Je to všechno?

Ne!

Zatím jsme se bavili jen o výměně obličejů, což je jen podmnožina technologie deepfake. Výměna obličeje, jak název napovídá, nahrazuje pouze část obličeje a dává tak jen slabou představu o tom, co deepfakes dokážou.

Pro vytvoření přesvědčivé výměny obličeje možná budete muset napodobit i zvuk (tzv. klonování hlasu) a celou postavu, včetně všeho, co se vejde do záběru, a to takto:

Takže, o co tady jde?

Autor deepfake mohl například natočit video sám (jak bylo uvedeno v posledních několika sekundách), synchronizovat dialog se syntetickým hlasem Morgana Freemana a nahradit hlavu.

V konečném důsledku nejde jen o výměnu obličejů, ale o celý snímek včetně zvuku.

Na YouTube můžete najít spoustu deepfaků. Je to až děsivé, čemu všemu se dá věřit. A jediné, co k tomu potřebujete, je výkonný počítač s dobrou grafickou kartou.

Dosažení dokonalosti však není snadné a u deepfakes to platí obzvlášť.

Pro vytvoření přesvědčivého deepfake, který diváky oklame nebo ohromí, jsou potřeba dovednosti a několik dní až týdnů zpracovávání jedné nebo dvou minut videa.

Je fascinující, jak moc toho tyto algoritmy dokážou. Nicméně budoucnost a otázka, jak efektivní budou tyto aplikace na slabším hardware, znepokojuje vlády po celém světě.

Nyní se ale nebudeme zabývat budoucími dopady. Místo toho se podíváme, jak si to můžeme sami vyzkoušet.

Vytváření (základních) Deepfake videí

Existuje mnoho aplikací pro tvorbu deepfake videí a meme, a jejich seznam najdete na internetu.

Jednou z nich je Faceswap, kterou budeme používat my.

Než budeme pokračovat, musíme zajistit několik věcí. Zaprvé bychom měli mít kvalitní video s cílovým obličejem, který vyjadřuje různé emoce. Dále budeme potřebovat zdrojové video, jehož obličej vyměníme s cílovým.

Kromě toho zavřete všechny aplikace, které využívají grafickou kartu, například prohlížeče nebo hry, než začnete pracovat s Faceswap. To platí zejména v případě, že máte méně než 2 GB VRAM (video RAM).

Krok 1: Extrakce obličejů

Prvním krokem je extrakce obličejů z videa. Vybereme cílové video ve vstupním adresáři a určíme výstupní adresář pro extrakci.

Dále je zde několik možností pro detektor, zarovnávač, maskovač atd. Detailní vysvětlení naleznete v často kladených dotazech (FAQ) Faceswap a nemá smysl je zde znovu rozebírat.

Zdroj: Faceswap FAQ

Obecně platí, že je dobré si přečíst dokumentaci pro lepší pochopení a dosažení kvalitního výstupu. Nicméně v rámci Faceswapu existují užitečné texty, které se zobrazí při najetí myší na konkrétní možnost.

Jednoduše řečeno, neexistuje univerzální postup. Měli byste začít s nejlepšími algoritmy a postupně je ladit, abyste vytvořili přesvědčivý deepfake.

V mém případě jsem použil Mtcnn (detektor), Fan (zarovnávač) a Bisenet-Fp (masker) a ostatní možnosti jsem ponechal beze změny.

Původně jsem to zkoušel s S3Fd (nejlepší detektor) a několika dalšími maskami, ale moje 2 GB Nvidia GeForce GTX 750Ti to nezvládla a proces opakovaně selhal.

Nakonec jsem snížil svá očekávání a nastavení, abych viděl, jak to funguje.

Kromě výběru vhodného detektoru a maskéru, atd., existuje v Nastavení > Konfigurovat nastavení několik dalších možností, které pomáhají dále ladit jednotlivá nastavení s ohledem na hardware.

Zjednodušeně řečeno, vyberte nejnižší možné hodnoty pro velikost dávky, vstupní a výstupní velikost a zaškrtněte možnost LowMem. Tyto možnosti nejsou dostupné univerzálně a závisí na konkrétní sekci. Navíc texty nápovědy pomohou při výběru nejlepších možností.

I když tento nástroj odvádí skvělou práci při extrahování ploch, výstupní snímky mohou obsahovat více, než je potřeba pro trénování modelu (o tom později). Například to mohou být všechny obličeje (pokud je ve videu více než jeden) a některé nesprávné detekce, které ve skutečnosti nejsou cílovým obličejem.

Proto je potřeba datové sady vyčistit. Můžete buď zkontrolovat výstupní složku a ručně je smazat, nebo použít třídění Faceswap.

Pomocí výše uvedeného nástroje uspořádáte různé obličeje v pořadí, z kterého můžete potřebné sloučit do jedné složky a ostatní smazat.

Nezapomeňte, že budete chtít extrakci zopakovat i pro zdrojové video.

Krok 2: Trénování modelu

Toto je nejdelší fáze procesu vytváření deepfake. Zde vstup A odkazuje na cílový obličej a vstup B se týká zdrojového obličeje. Tréninkové soubory se ukládají do Model Dir.

Nejdůležitější volbou je Trainer. Existuje spousta možností pro individuální úpravy. V mém případě se mi pro můj hardware osvědčily tréninkové modely Dfl-H128 a Lightweight s nejnižším nastavením konfigurace.

Další volbou je velikost dávky. Vyšší hodnota zkracuje dobu trénování, ale spotřebovává více VRAM. Počet iterací nemá pevný vliv na výstup. Měli byste nastavit dostatečně vysokou hodnotu a trénování zastavit, až budou náhledy přijatelné.

K dispozici je několik dalších nastavení, včetně vytvoření časosběrného videa s přednastavenými intervaly. Nicméně já jsem trénoval model s úplným minimem.

Krok 3: Výměna v originálním videu

Toto je poslední krok při vytváření deepfake.

Obvykle to netrvá dlouho a můžete si pohrát s mnoha možnostmi, abyste rychle dosáhli požadovaného výsledku.

Jak je uvedeno na obrázku výše, musíte zvolit několik možností, abyste mohli zahájit konverzi.

Většina možností už byla popsána, jako například vstupní a výstupní adresář, adresář modelu, atd. Důležitá je možnost Alignments, která odkazuje na soubor zarovnání (.fsa) cílového videa. Během extrakce se vytvoří ve vstupním adresáři.

Pole Zarovnání lze ponechat prázdné, pokud soubor nebyl přesunut. V opačném případě můžete soubor vybrat a přejít k dalším možnostem. Nezapomeňte však vyčistit soubor zarovnání, pokud jste dříve vyčistili extrakce.

K tomu slouží mini nástroj v nabídce Nástroje > Zarovnání.

Začněte výběrem možnosti Odebrat tváře v sekci Úloha, vyberte původní soubor zarovnání a složku vyčištěných cílových obličejů a klikněte na Zarovnání v pravém dolním rohu.

Tím se vytvoří upravený soubor zarovnání, který odpovídá složce optimalizovaných obličejů. Pamatujte, že to potřebujeme pro cílové video, do kterého chceme obličej vyměnit.

Další konfigurace zahrnují úpravu barev a typ masky. Úprava barev určuje způsob prolínání masky a můžete vyzkoušet několik možností, podívat se na náhled a vybrat optimální volbu.

Důležitější je typ masky. Opět to závisí na vašich očekáváních a dostupném hardware. Obvykle je třeba brát v úvahu i vstupní charakteristiky videa. Například Vgg-Clear funguje dobře s čelními záběry obličeje bez překážek, zatímco Vgg-Obstructed si poradí i s překážkami, jako jsou gesta rukou, brýle, atd.

Dále Writer nabídne několik možností na základě požadovaného výstupu. Například pro renderování videa vyberte Ffmpeg.

Celkově je klíčem k úspěšnému deepfake náhled několika výstupů a optimalizace v závislosti na časových možnostech a výkonu hardware.

Využití Deepfakes

Existují dobré, špatné a nebezpečné aplikace deepfakes.

Mezi dobré patří například oživení historických událostí pomocí autentických postav, které tak mohou více zaujmout diváky.

Kromě toho je využívají online vzdělávací platformy k vytváření videí z textu.

Jedním z největších příjemců bude filmový průmysl. Bude snadné si představit, že hlavní herec provádí kaskadérské kousky, i když to ve skutečnosti dělá kaskadér, který riskuje svůj život. Kromě toho bude vytváření vícejazyčných filmů snazší než kdy předtím.

Bohužel existuje i mnoho špatných využití. Největším problémem deepfakes je v současné době 96% (dle této zprávy Deeptrace) jejich využití v pornoprůmyslu pro výměnu obličejů celebrit za pornoherce.

Kromě toho jsou deepfakes používány i proti „běžným“ ženám bez celebrity. Oběti tohoto zneužití mají obvykle na svých profilech na sociálních sítích kvalitní fotografie nebo videa, která se používají k vytváření deepfakes.

Další děsivou aplikací je vishing, neboli hlasový phishing. V jednom takovém případě převedla generální ředitelka britské firmy 243 000 dolarů na příkaz „CEO“ její německé mateřské společnosti, aby později zjistila, že šlo o falešný telefonát.

Ale co je ještě nebezpečnější, jsou deepfakes, které vyvolávají války nebo žádají o kapitulaci. Například v jednom případě ukrajinský prezident Volodymyr Zelenskyj vyzval své síly a lid, aby se vzdali v probíhající válce. Nakonec se však ukázalo, že šlo o podprůměrné video.

Závěrem lze říci, že existuje mnoho aplikací deepfakes a jejich využití je teprve na začátku.

Tím se dostáváme k otázce za milion…

Jsou Deepfakes legální?

To závisí především na místní legislativě. I když dobře definované zákony, včetně toho, co je přípustné a co ne, se teprve vyvíjejí.

Je jasné, že záleží na tom, k čemu deepfakes používáte, tedy na vašem záměru. Není na tom nic špatného, pokud se snažíte někoho pobavit nebo poučit, aniž byste narušili cíl výměny.

Na druhou stranu by škodlivé aplikace měly být trestné podle zákona, bez ohledu na jurisdikci. Další šedou zónou je porušování autorských práv, které je třeba důkladně zvážit.

Opakuji, měli byste si ověřit u místních úřadů legálnost používání deepfakes.

Dávejte pozor!

Deepfakes využívají umělou inteligenci k tomu, aby někdo řekl něco, co ve skutečnosti neřekl.

První pravidlo je nevěřit ničemu, co vidíte na internetu. Dezinformací je spousta a jejich účinnost se neustále zvyšuje.

A protože bude stále snazší deepfakes vytvářet, je nejvyšší čas se naučit je odhalovat.