Hvor dyb læring forfalsker videoer (Deepfake), og hvordan finder man det?

Fremstilling af berømthedeporno-billeder er ikke noget nyt. I slutningen af ​​2017 begyndte en bruger på Reddit ved navn Deepfakes imidlertid at anvende dyb læring til at fremstille falske videoer af berømtheder. Det starter en ny bølge af falske videoer online. DARPA finansierer også som en del af det amerikanske militær forskning til opdagelse af falske videoer. Faktisk at anvende AI til at oprette videoer startet længe før Deepfakes. Face2face og UW's "syntese af Obama (læring af læbsynkronisering fra lyd)" skaber falske videoer, der er endnu sværere at registrere. Faktisk er de så reelle, at Jordan Peele oprettede en nedenunder for at advare offentligheden.

I denne artikel forklarer vi begrebet Deepfakes. Vi finder nogle af vanskelighederne og forklarer måder at identificere de falske videoer på. Vi undersøger også en forskning på University of Washington med at skabe videoer, der kan læbe synkroniseres med en potentiel falsk lyd.

Grundlæggende koncept

Begrebet Deepfakes er meget enkelt. Lad os sige, at vi vil overføre ansigtet til en person A til en video af person B.

Først indsamler vi hundreder eller tusinder af billeder til begge personer. Vi bygger en indkoder til at kode alle disse billeder ved hjælp af et dybt lærende CNN-netværk. Derefter bruger vi en dekoder til at rekonstruere billedet. Denne autoencoder (koderen og dekoderen) har over millioner parametre, men er ikke engang tæt nok til at huske alle billederne. Så koderen er nødt til at udtrække de vigtigste funktioner for at genskabe det originale input. Tænk på det som en kriminel skitse. Funktionerne er beskrivelserne fra et vidne (indkoder), og en sammensat skitskunstner (dekoder) bruger dem til at rekonstruere et billede af den mistænkte.

For at afkode funktionerne bruger vi separate dekodere til person A og person B. Nu træner vi koderen og dekoderne (ved hjælp af backpropagation), således at inputen matcher tæt med output. Denne proces er tidskrævende. Med et GPU-grafikkort tager det omkring 3 dage at generere anstændige resultater. (efter gentagen behandling af billeder i ca. 10+ millioner gange)

Efter træningen behandler vi videoen ramme for ramme for at bytte en persons ansigt med en anden. Ved hjælp af ansigtsregistrering udtrækker vi ansigtet til person A ud og føres det ind i koderen. I stedet for at føde til den originale dekoder, bruger vi dekoderen for personen B til at rekonstruere billedet. dvs. vi tegner person B med funktionerne i A i den originale video. Derefter fletter vi det nye oprettede ansigt ind i det originale billede.

Intuitivt registrerer koderen ansigtsvinkel, hudfarve, ansigtsudtryk, belysning og anden information, der er vigtig for at rekonstruere personen A. Når vi bruger den anden kode til at rekonstruere billedet, tegner vi person B, men med A På billedet herunder har det rekonstruerede billede ansigtsfigurer af Trump, mens man fastholder ansigtsudtrykket for målvideoen.

Kilde: Derpfakes og wikipedia

Billede

Før træningen skal vi forberede tusinder af billeder til begge personer. Vi kan tage en genvej og bruge ansigtsregistreringsbibliotek til at skrabe ansigtsbilleder fra deres videoer. Brug betydelig tid på at forbedre kvaliteten af ​​dine ansigtsbilleder. Det påvirker dit slutresultat væsentligt.

  • Fjern alle billedrammer, der indeholder mere end én person.
  • Sørg for, at du har en overflod af videooptagelser. Uddrag af ansigtsbilleder indeholder forskellige positurer, ansigtsvinkler og ansigtsudtryk.
  • Fjern eventuel dårlig kvalitet, tonet, lille, dårlig belysning eller tilsluttede ansigtsbilleder.
  • Nogle der ligner begge personer kan hjælpe, som lignende ansigtsform.

Vi ønsker ikke, at vores autoencoder blot skal huske træningsindgangen og replikere output direkte. Husk, at alle muligheder ikke er gennemførlige. Vi introducerer denoising for at introducere datavarianter og for at uddanne autoencoder til at lære smart. Udtrykket denoising kan være vildledende. Hovedkonceptet er at fordreje nogle oplysninger, men vi forventer, at autoencoderen smart ignorerer denne mindre abnormitet og genskaber originalen. lad os huske, hvad der er vigtigt og ignorere de ikke-nødvendige varianter. Ved at gentage træningen mange gange annullerer informationsstøjet hinanden og til sidst glemmes. Hvad der er tilbage er de virkelige mønstre, som vi bryder os om.

I vores ansigtsbillede vælger vi 5 × 5 gitterpunkter og flytter dem lidt væk fra deres oprindelige position. Vi bruger en simpel algoritme til at fordreje billedet i henhold til disse skiftede gitterpunkter. Selv det skæve billede ser måske ikke helt rigtigt ud, men det er den støj, vi vil introducere. Derefter bruger vi en mere kompleks algoritme til at konstruere et målbillede ved hjælp af de skiftede gitterpunkter. Vi ønsker, at vores oprettede billeder skal se så tæt ud som målbillederne.

Et eksempel på 2 x 2 gitterpunkt.

Det virker underligt, men det tvinger autoencoderen til at lære de vigtigste funktioner.

For at håndtere forskellige positioner, ansigtsvinkler og placeringer bedre anvender vi også billedforstørrelse for at berige træningsdataene. Under træning roterer, zoom, oversættes og vendes vores ansigtsbillede tilfældigt inden for et specifikt område.

Dyb netværksmodel

Lad os tage en kort pause for at illustrere, hvordan autokoderen kan se ud. (Der kræves en vis grundlæggende viden om CNN.) Koderen består af 5 konvolutionslag for at udtrække funktioner efterfulgt af 2 tætte lag. Derefter bruger det et konvolveringslag til at opsample billedet. Dekoderen fortsætter opsamplingen med 4 flere konvolutionslag, indtil den rekonstruerer 64 × 64-billedet tilbage.

For at upample den rumlige dimension, sige fra 16 × 16 til 32 × 32, bruger vi et konvolutionsfilter (et 3 × 3 × 256 × 512 filter) til at kortlægge (16, 16, 256) laget i (16, 16, 512) . Derefter omformer vi det til (32, 32, 128).

Problemer

Bliv ikke for ophidset. Hvis du bruger en dårlig implementering, en dårlig konfiguration eller din model ikke er uddannet korrekt, får du i stedet resultatet af følgende video. (Tjek de første par sekunder. Jeg har allerede markeret videoen omkring 3:37.)

Ansigtsområdet flimrer og sløres med blødende farve. Og der er åbenlyse kasser rundt om ansigtet. Det ser ud som folk, der sætter billeder på hans ansigt med brute force. Disse problemer forstås let, hvis vi forklarer, hvordan man manuelt kan skifte ansigt.

Vi starter med to billeder (1 og 2) til 2 kvinder. På billede 4 forsøger vi at indsætte ansigtet 1 på 2. Vi er klar over, at deres ansigt er meget anderledes, og ansigtsudskæringen (det røde rektangel) er alt for stort. Det ser ud til, at nogen lægger en papirmaske på hende. Lad os prøve at indsætte ansigt 2 på 1 i stedet. På billede 3 bruger vi en mindre udskæring. Vi opretter en maske, der fjerner nogle af hjørnearealerne, så udskæringen kan smelte bedre sammen. Det er ikke godt, men bestemt bedre end 4. Men der er en pludselig ændring i hudfarve omkring grænseområdet. På billede 5 reducerer vi opaciteten af ​​masken omkring grænsen, så det skabte ansigt kan smelte bedre sammen. Men farvetonen og lysstyrken i udskæringen stemmer stadig ikke overens med målet. Så på billede 6 justerer vi farvetonen og lysstyrken på udskæringen for at matche vores mål. Det er ikke godt nok endnu, men ikke dårligt for vores lille indsats.

I Deepfakes opretter det en maske på det oprettede ansigt, så det kan smelte ind med målvideoen. For yderligere at fjerne artefakterne kan vi

  • anvende et gaussisk filter for yderligere at diffundere maskegrænseområdet,
  • konfigurere applikationen til at udvide eller kontrahere masken yderligere, eller
  • styr maskens form.

Hvis du ser nærmere på en falsk video, kan du bemærke dobbelt chin eller spøgelseskanter rundt om ansigtet. Det er bivirkningen ved at flette 2 billeder sammen ved hjælp af en maske. Selv masken forbedrer kvaliteten, der er en pris at betale. Især de fleste falske videoer, jeg ser, er ansigtet lidt begravet sammenlignet med andre dele af billedet. For at opveje det kan vi konfigurere Deepfakes til at anvende skærpefilter på det oprettede ansigt inden blandingen. Dette er en prøve- og fejlproces for at finde den rigtige balance mellem artefakter og skarphed. Det er klart, det meste af tiden er vi nødt til at oprette lidt uskarpe billeder for at fjerne mærkbare artefakter.

Selv autokoderen skal oprette ansigter, der matcher den målte farvetone, nogle gange har den brug for hjælp. Deepfakes giver efterbehandling for at justere farvetonen, kontrasten og lysstyrken på det oprettede ansigt, så det passer til målvideoen. Vi kan også anvende cv2 sømløs kloning for at blande det oprettede billede med målbilledet ved hjælp af automatisk tonejustering. Nogle af disse bestræbelser kan imidlertid være imod produktivitet. Vi kan få en bestemt ramme til at se godt ud. Men hvis vi overdrives, kan det skade den tidsmæssige glatthed på tværs af rammer. Faktisk er den sømløse klon i Deepfakes en vigtig mulig årsag til flimning. Så folk slukker ofte sømløst for at se, om flimmeren kan reduceres.

En anden vigtig kilde til flimring er, at autoencoderen ikke skaber rigtige ansigter. Til det er vi nødt til at tilføje mere diversificerede billeder for at træne modellen bedre eller øge dataforøgelsen. Til sidst bliver vi muligvis nødt til at træne modellen længere. I tilfælde, hvor vi ikke kan oprette det rigtige ansigt til nogle videorammer, springer vi over problemrammerne og bruger interpolering til at genskabe de slettede rammer.

vartegn

Vi kan også fordreje vores oprettede ansigt i henhold til ansigtets vartegn i den oprindelige målramme.

Sådan snyder Rogue One den yngre prinsesse Leia på en anden skuespillerinde.

Kilde

Bedre maske

I vores tidligere indsats er vores maske forudkonfigureret. Vi kan gøre et meget bedre stykke arbejde, hvis vores maske er relateret til input-billedet og det oprettede ansigt.

Lad os introducere Generative Adversary Networks (GAN).

GAN

I GAN introducerer vi en dyb netværksdiskriminator (en CNN-klassificering) for at skelne, om ansigtsbilleder er originale eller oprettet af computeren. Når vi fodrer rigtige billeder til denne diskriminator, træner vi selv diskriminereren til at genkende reelle billeder bedre. Når vi fodrer oprettede billeder til diskrimineringen, bruger vi det til at træne vores autoencoder til at skabe mere realistiske billeder. Vi forvandler dette til et løb, hvor de skabte billeder til sidst ikke kan skelnes fra de rigtige.

Derudover genererer vores dekoder både billeder og masker. Da disse masker læres af træningsdataene, kan det maske billedet bedre og skabe en jævnere overgang til målbilledet. Det håndterer også delvist forhindret ansigt bedre. I kan falske videoer, når ansigtet delvist er blokeret af en hånd, kan videoen flick eller blive begravet. Med en bedre maske kan vi maskere det forhindrede område i det oprettede ansigt og bruge delen i målbilledet i stedet.

Selvom GAN er magtfuld, tager det meget lang tid at træne og kræver større ekspertise til at gøre det rigtigt. Derfor er det ikke så populært, som det burde være.

Tabsfunktion

Udover genopbygningsomkostningerne tilføjer GAN generator- og diskrimineringsomkostninger for at uddanne modellen. Faktisk kan vi tilføje funktioner til tilføjelsestab for at gøre vores model perfekt. En almindelig en er kantomkostningerne, der måler, om målbilledet og det oprettede billede har den samme kant på samme sted. Nogle mennesker undersøger også det perceptuelle tab. Genopbygningsomkostningerne måler pixeldifferencen mellem målbilledet og det oprettede billede. Imidlertid er dette muligvis ikke en god måling til måling af, hvordan vores hjerner opfatter genstande. Derfor kan nogle mennesker bruge opfattelsestab til at erstatte det oprindelige tab af genopbygning. Dette er temmelig fremskridt, så jeg vil lade disse entusiaster læse papiret i referencesektionen i stedet. Du kan yderligere analysere, hvor dine falske videoer fungerer dårligt, og introducere en ny omkostningsfunktion til at løse problemet.

Demonstration

Lad mig vælge nogle af de gode Deepfakes-videoer og se, om du kan registrere dem nu. Spil det i langsom bevægelse, og vær særlig opmærksom på:

  • Gør det for uskarp sammenligning med andre ikke-ansigtsområder i videoen?
  • Flick det?
  • Har det ændret hudfarve nær kanten af ​​ansigtet?
  • Har den dobbelt hage, dobbelt øjenbryn, dobbelt kanter i ansigtet?
  • Når ansigtet delvist er blokeret af hænder eller andre ting, flikker det eller bliver sløret?

Når vi fremstiller falske videoer, anvender vi forskellige tabsfunktioner for at gøre mere visuelt behagelige videoer. Som det vises i Trump's falske billeder, ser hans ansigts funktioner tæt på det rigtige, men det ændrer sig, hvis du ser nærmere på. Derfor, efter min mening, hvis vi indfører målvideoen i en klassificering til identifikation, er der en god chance for, at den mislykkes. Derudover kan vi skrive programmer til at verificere den tidsmæssige glathed. Da vi skaber ansigter uafhængigt på tværs af rammer, bør vi forvente, at overgangen bliver mindre glat sammenlignet med en rigtig video.

Lip sync fra lyd

Videoen lavet af Jordan Peele er en af ​​de hårdeste der identificeres som falske. Men når du ser nærmere på, er Obamas underlæbe mere uskarp sammenlignet med andre dele af ansigtet. Derfor, i stedet for at skifte ansigt ud, formoder jeg, at dette er en rigtig Obama-video, men munden er fremstillet til læbesynkronisering med en falsk lyd.

I den resterende del af dette afsnit vil vi diskutere lip sync-teknologien, der er gjort på University of Washington (UW). Nedenfor er arbejdsgangen til læbesynkroniseringspapiret. Det erstatter lyden i en ugentlig præsidentadresse med en anden lyd (input-lyd). I processen syntetiserer vi munden og hakeområdet, så dens bevægelse synkroniseres med den falske lyd.

Kilde

Først ved hjælp af et LSTM-netværk transformeres lyden x til en sekvens på 18 landemærkepunkter y i læben. Denne LSTM udsender en sparsom mundform for hver outputvideoramme.

Ændret fra kilden

I betragtning af mundformen y syntetiserer den mundtekstur for munden og hakeområdet. Disse mundteksturer komponeres derefter med målvideoen for at genskabe målrammen:

Kilde

Så hvordan skaber vi mundtekstur? Vi ønsker, at det skal se ægte ud, men også have en tidsmæssig glathed. Så applikationen kigger over målvideoerne for at søge efter kandidatrammer, der har den samme beregnede mundform som hvad vi ønsker. Derefter fletter vi kandidaterne sammen ved hjælp af en medianfunktion. Som vist nedenfor, hvis vi bruger flere kandidatrammer til at gennemføre gennemsnittet, bliver billedet sløret, mens den tidsmæssige glatthed forbedres (ingen flimring). På den anden side kan billedet være mindre begravet, men vi ser muligvis flimrende, når vi transiterer fra en ramme til en anden.

Kilde

For at kompensere for det uskarpe udføres tænderne og skærpes. Men skarpheden kan naturligvis ikke gendannes helt for underlæben.

Kilde

Endelig er vi nødt til at genoptage rammen, så vi ved, hvor vi skal indsætte den falske mundtekstur. Dette hjælper os med at synkronisere med hovedbevægelsen. Især stopper Obama-hovedet normalt med at bevæge sig, når han sætter sin tale på pause.

Den øverste række nedenfor er de originale videorammer til den input-lyd, vi brugte. Vi indsætter denne input-lyd til vores målvideo (den anden række). Når vi sammenligner det side om side, indser vi, at mundbevægelsen fra den originale video er meget tæt på den fabrikerede mundbevægelse.

Kilde

UW bruger eksisterende rammer til at skabe mundtekstur. I stedet kan vi bruge Deepfakes-konceptet til at generere mundtekstur direkte fra autoencoderen. Vi er nødt til at samle tusind rammer og bruge LSTM til at udtrække funktionerne fra både videoen og lyden. Derefter kan vi træne en dekoder til at generere mundtekstur.

Flere tanker

Det er især interessant at se, hvordan vi anvender AI-koncepter til at skabe nye ideer og nye produkter, men ikke uden en advarsel! De sociale virkninger kan være enorme. Faktisk ikke offentliggøre nogen falske videoer for sjov! Det kan få dig i juridiske problemer og skade dit online omdømme. Jeg ser på dette emne på grund af min interesse i metallæring og modstander påvisning. Brug bedre din energi til ting, der er mere innovative. På den anden side vil den falske video forblive og blive forbedret. Det er ikke mit formål at lave bedre falske videoer. Gennem denne proces håber jeg, at vi ved, hvordan vi anvender GAN bedre til at rekonstruere image. Måske en dag kan dette til sidst hjælpe med at opdage tumorer.

Som en anden forholdsregel skal du være forsigtig med de apps, du downloader, for at oprette Deepfakes-videoer. Der er rapporter om, at nogle Apps kaprer computere til at miner cryptocurrency. Bare vær forsigtig.

Liste over andre artikler

Reference

Syntese af Obama: Læring af lip sync fra lyd

Sømløs kloning

Perseptuelle tab

credits

Fotokreditter (Hovedtørklæde, Kvinde)