Kui sügav õppimine võltsib videoid (Deepfake) ja kuidas seda tuvastada?

Kuulsuste pornopiltide valmistamine pole midagi uut. Kuid 2017. aasta lõpus hakkas Redditi kasutaja Deepfakes nimega kuulsuste võltsvideote valmistamiseks kasutama sügavat õpet. See käivitab veebis uue võltsvideote laine. DARPA rahastab USA sõjaväe osana ka võltsvideote tuvastamise uuringuid. Tegelikult hakkas AI rakendamine videote loomiseks toimuma juba enne Deepfakesit. Face2Face ja UW “sünteesivad Obamat (õpivad huulte sünkroonimist helist)” loovad võltsvideoid, mida on veelgi raskem tuvastada. Tegelikult on need nii tõelised, et Jordan Peele lõi avalikkuse hoiatamiseks allpool ühe.

Selles artiklis selgitame Deepfakesi mõistet. Selgitame välja mõned raskused ja selgitame võimalusi võltsvideote tuvastamiseks. Samuti uurime Washingtoni ülikoolis uurimistööd videote loomisel, mis võimaliku võltsheliga sünkroonivad.

Põhikontseptsioon

Deepfakesi kontseptsioon on väga lihtne. Ütleme nii, et tahame kanda inimese A näo inimese B videole.

Esiteks kogume mõlema inimese kohta sadu või tuhandeid pilte. Ehitame kooder kõigi nende piltide kodeerimiseks, kasutades sügavuti õppivat CNN-võrku. Seejärel kasutame pildi rekonstrueerimiseks dekoodrit. Sellel autokodeeril (kooderil ja dekoodril) on üle miljoni parameetri, kuid see pole isegi piisavalt lähedal, et kõiki pilte meelde jätta. Seega peab kodeerija algse sisendi taasloomiseks välja võtma kõige olulisemad omadused. Mõelge sellele kui kuriteo visandile. Funktsioonideks on tunnistaja (kodeerija) kirjeldused ja liitvisandite autor (dekoder) kasutab neid kahtlustatava pildi rekonstrueerimiseks.

Funktsioonide dekodeerimiseks kasutame inimese A ja inimese B. jaoks eraldi dekoodereid. Nüüd koolitame kooderit ja dekoodereid (kasutades tagasipropagatsiooni) nii, et sisend sobiks täpselt väljundiga. See protsess on aeganõudev. GPU graafikakaardi korralike tulemuste saamiseks kulub umbes 3 päeva. (pärast piltide korduvat töötlemist umbes 10+ miljonit korda)

Pärast koolitust töötleme video kaadrist kaadrisse, et vahetada inimese nägu teisega. Näotuvastust kasutades eraldame inimese A näo ja söödame selle kooderisse. Selle asemel, et sisestada originaalsele dekoodrile, kasutame pildi rekonstrueerimiseks inimese B dekooderit. st joonistame inimesele B originaalses videos A tunnused. Seejärel liidame uue loodud näo algsesse pilti.

Intuitiivselt tuvastab kodeerija näo nurga, nahatooni, näoilme, valgustuse ja muu teabe, mis on oluline inimese A rekonstrueerimiseks. Kui kasutame pildi rekonstrueerimiseks teist kooderit, joonistame inimest B, kuid kontekstis A Alloleval pildil on rekonstrueeritud pildil Trumpi näo tegelased, säilitades samal ajal sihtvideo näoilme.

Allikas: Derpfakes ja wikipedia

Pilt

Enne koolitust peame mõlema inimese jaoks ette valmistama tuhandeid pilte. Saame teha otsetee ja kasutada näotuvastuse teeki, et nende videolt näopilte kraapida. Näopiltide kvaliteedi parandamiseks kulutage palju aega. See mõjutab teie lõpptulemust märkimisväärselt.

  • Eemaldage pildiraamid, mis sisaldavad rohkem kui ühte inimest.
  • Veenduge, et teil oleks arvukalt videomaterjale. Väljavõte näopiltidest sisaldab erinevaid poose, näonurka ja näoilmeid.
  • Eemaldage kõik halva kvaliteediga, toonitud, väikesed, halva valgustusega või ummistunud näopildid.
  • Abiks võivad olla mõlemast inimesest sarnased näo kuju.

Me ei taha, et meie automaatkooder mäletaks lihtsalt treeningu sisendit ja kopeeriks väljundit otse. Pidage meeles, et kõik võimalused pole teostatavad. Tutvustame denoisingut, et tutvustada andmevariante ja koolitada automaatkooderit nutikaks õppimiseks. Mõiste denoising võib olla eksitav. Põhikontseptsioon on osa teabe moonutamine, kuid eeldame, et automaatkooder ignoreerib seda väikest kõrvalekallet nutikalt ja loob originaali. s.t jätame meelde, mis on oluline, ja jätame tähelepanuta mittevajalikud variandid. Treeningut mitu korda korrates tühistab infomüra üksteise ja lõpuks ununeb. Järele on jäänud tõelised mustrid, millest hoolime.

Näopildil valime 5 × 5 ruudupunkti ja nihutame neid pisut algsest asendist eemale. Kujutise väändumiseks vastavalt nende nihutatud ruudupunktidele kasutame lihtsat algoritmi. Isegi väändunud pilt ei pruugi täpselt õige välja näha, kuid see on müra, mida tahame tutvustada. Seejärel kasutame sihtpildi konstrueerimiseks keerukamat algoritmi, kasutades nihutatud ruudupunkte. Soovime, et meie loodud pildid näeksid välja sama lähedased kui sihtpildid.

2 × 2 ruudukujulise punkti näide.

See tundub veider, kuid see sunnib autokoderit õppima kõige olulisemaid funktsioone.

Erinevate poseerimise, näonurkade ja asukohtade paremaks käsitlemiseks rakendame treeningandmete rikastamiseks ka pildi suurendamist. Treeningu ajal pöörame, suumime, tõlgime ja libistame näokujutist juhuslikult kindlas vahemikus.

Sügava võrgu mudel

Teeme lühikese pausi, et illustreerida, kuidas automaatne kooder välja näeb. (Siin on vaja mõnda CNN-i põhiteadmist.) Kodeerija koosneb 5 konvolutsioonikihist, et eraldada omadused, millele järgneb 2 tihedat kihti. Seejärel kasutab see pildi ülevalimiseks konvolutsioonikihti. Dekooder jätkab ülesvalimist veel 4 konvolutsioonikihiga, kuni rekonstrueerib 64 × 64 pildi tagasi.

Ruumilise mõõtme, näiteks 16 × 16 kuni 32 × 32, valimiseks kasutame konvolutsioonifiltrit (3 × 3 × 256 × 512 filter) (16, 16, 256) kihi kaardistamiseks (16, 16, 512) . Siis kujundame selle ümber (32, 32, 128).

Probleemid

Ära ole liiga elevil. Kui kasutate halba teostust, halba konfiguratsiooni või kui teie mudelit pole korralikult koolitatud, saate selle asemel järgmise video tulemuse. (Vaadake esimesi sekundeid. Video on mul juba 3:37 paiku tähistatud.)

Näopiirkond virvendab, hägustub veritseva värviga. Ja näo ümber on ilmsed karbid. Paistab, et inimesed kleepivad tema näole pilte jõhkra jõu abil. Need probleemid on kergesti mõistetavad, kui selgitame, kuidas nägu käsitsi vahetada.

Alustame kahe pildi (1 ja 2) 2 naisega. Pildil 4 proovime kleepida näo 1 peale 2. Mõistame, et nende nägu on väga erinev ja näo väljalõige (punane ristkülik) on liiga suur. Paistab lihtsalt, et keegi pani talle paberimaski. Proovime nüüd kleepida näo 2 asemel 1. Pildil 3 kasutame väiksemat väljalõiget. Loome maski, mis eemaldab mõned nurgaalad, nii et väljalõige saaks paremini sulanduda. See pole suurepärane, kuid kindlasti parem kui 4. Kuid piiriala ümber on nahatoon järsult muutunud. Pildil 5 vähendame maski läbipaistmatust piiri ümber, et loodud nägu saaks paremini sulanduda. Kuid värvitoon ja väljalõike heledus ei vasta ikkagi eesmärgile. Nii et pildil 6 kohandame värvitooni ja väljalõike heledust vastavalt meie eesmärgile. See pole veel piisavalt hea, kuid mitte halb ka meie pisikese pingutuse jaoks.

Rakenduses Deepfakes loob see loodud näole maski, nii et see saab sulanduda sihtvideoga. Artefaktide edasiseks kõrvaldamiseks saame

  • maski piiriala edasiseks hajutamiseks rakendage Gaussi filtrit,
  • konfigureerige rakendus maski edasiseks laiendamiseks või vähendamiseks või
  • kontrolli maski kuju.

Kui vaatate võltsvideot lähemale, võite märgata näo ümber kahekordseid lõugusid või kummitusservi. See on 2 pildi maski abil ühendamise kõrvalmõju. Isegi mask parandab kvaliteeti, selle eest tuleb maksta. Täpsemalt, enamiku võltsvideote puhul, mida ma näen, on nägu pildi teiste osadega võrreldes pisut mattunud. Selle tasakaalustamiseks saame konfigureerida Deepfakes rakendama teravustatavat filtrit loodud nägu enne segamist. See on katse-eksituse protsess, et leida õige tasakaal esemete ja teravuse vahel. Ilmselt peame enamasti märgatavate esemete eemaldamiseks looma pisut häguseid pilte.

Isegi automaatkooder peaks looma näod, et need vastaksid soovitud värvitoonile, mõnikord vajab see abi. Deepfakes pakub järeltöötlust, et kohandada loodud näo värvitooni, kontrasti ja heledust vastavalt soovitud videole. Saame kasutada ka cv2 sujuvat kloonimist, et sulandada loodud pilt sihtpildiga, kasutades automaatset toonide reguleerimist. Kuid mõned neist jõupingutustest võivad olla kahjulikud. Saame teha konkreetse raami tundub hea. Kuid kui me sellega üle pingutame, võib see kahjustada kaadrite ajalist sujuvust. Tõepoolest, Deepfakesi õmblusteta kloon on väntamise peamine võimalik põhjus. Nii lülituvad inimesed sageli tõrgeteta välja, et näha, kas värelust saab vähendada.

Teine peamine virvendamise allikas on see, et automaatkooder ei suuda korralikke nägusid luua. Selleks peame mudeli paremaks koolitamiseks või andmete suurendamise suurendamiseks lisama mitmekesisemaid pilte. Lõpuks peame võib-olla mudelit kauem koolitama. Juhtudel, kui me ei suuda mõne videoraami jaoks õiget nägu luua, jätame probleemraamid vahele ja kustutatud kaadrite taastamiseks kasutame interpoleerimist.

Maamärgid

Samuti võime oma loodud nägu väänata vastavalt näo orientiiridele algses sihtraamis.

Nii väänab Rogue One noorema printsess Leia teise näitlejanna poole.

Allikas

Parem mask

Meie eelneva pingutuse korral on meie mask eelkonfigureeritud. Saame palju paremat tööd teha, kui meie mask on seotud sisendpildi ja loodud näoga.

Tutvustame generatiivseid vastanduvaid võrke (GAN).

GAN

GAN-is tutvustame sügava võrguga diskrimineerijat (CNN-klassifikaator), et eristada, kas näopildid on originaalsed või arvuti loodud. Kui toome sellele diskrimineerijale reaalseid pilte, koolitame diskrimineerijat ise tõelisi pilte paremini tundma. Kui sisestame loodud pildid diskrimineerijasse, kasutame seda oma automaatkodeerija koolitamiseks realistlikumate piltide loomiseks. Me muudame selle rassiks, kus lõpuks loodud pildid pole tegelikest eristatavad.

Lisaks genereerib meie dekooder nii pilte kui ka maske. Kuna neid maske õpitakse treeningandmetest, võib see pilti paremini maskeerida ja luua sujuvama ülemineku sihtpildile. Samuti haldab see osaliselt takistatud nägu paremini. Kui võltsvideod on osaliselt käega blokeeritud, võib video võltsida või matta. Parema maski abil saame maskeerida takistatud ala loodud näost välja ja kasutada selle osa sihtpildil.

Ehkki GAN on võimas, kulub selle koolitamiseks väga kaua aega ja selle paremaks muutmiseks on vaja kõrgemat asjatundlikkust. Seetõttu pole see nii populaarne kui peaks.

Kaotuse funktsioon

Lisaks rekonstrueerimise maksumusele lisab GAN mudeli koolitamiseks generaatori ja diskrimineeriva kulu. Tõepoolest, oma mudeli täiustamiseks saame lisada ka kadude funktsioone. Üks levinum on servahind, mis mõõdab, kas sihtpildil ja loodud pildil on ühes ja samas servas sama asukoht. Mõni inimene uurib ka tajutavat kaotust. Rekonstrueerimise maksumus mõõdab pikslite erinevust sihtpildi ja loodud pildi vahel. See ei pruugi aga olla hea mõõdik mõõta, kuidas meie ajud objekte tajuvad. Seetõttu võivad mõned inimesed kasutada tajukaotust esialgse rekonstrueerimise kadu asendamiseks. See on üsna edusamm, nii et ma lasen neil harrastajatel selle asemel referaatosas paberit lugeda. Võite täiendavalt analüüsida, kus teie võltsvideod halvasti toimivad, ja tutvustama probleemi lahendamiseks uut kulufunktsiooni.

Demonstratsioon

Lubage mul valida mõned head Deepfakes'i videod ja uurida, kas saate neid nüüd tuvastada. Esitage seda aegluubis ja pöörake erilist tähelepanu:

  • Kas see on video muude kui näo piirkondadega võrreldes hägusem?
  • Kas see lehvitab?
  • Kas sellel on nahatooni muutus näo serva lähedal?
  • Kas sellel on topelt lõug, topelt kulmud, topelt servad näol?
  • Kui nägu on osaliselt käte või muude asjade poolt blokeeritud, kas see libiseb või muutub uduseks?

Võltsvideote tegemisel rakendame visuaalselt meeldivate videote tegemiseks erinevaid kadumisfunktsioone. Nagu nähtub Trumpi võltspiltidest, näevad tema näojooned reaalsele sarnanevat, kuid lähemal vaatlemisel see muutub. Seega, kui sisestame sihtvideo tuvastamiseks klassifikaatorisse, on minu arvates suur tõenäosus, et see ebaõnnestub. Lisaks võime ajaliste sujuvuse kontrollimiseks kirjutada programme. Kuna loome nägusid kaadrite kaudu iseseisvalt, peaksime eeldama, et üleminek on vähem tõeline kui tõelise video puhul.

Huulte sünkroonimine heli kaudu

Jordan Peele tehtud video on üks karmimaid, mida tuleb võltsiks nimetada. Kuid kui lähemale vaadata, on Obama alahuul teiste näoosadega võrreldes hägune. Seetõttu kahtlen näo vahetamise asemel, et see on tõeline Obama video, kuid suu on valmistatud huulte sünkroonimiseks võltsheliga.

Selle osa järelejäänud osas käsitleme Washingtoni ülikoolis (UW) tehtud huulte sünkroonimise tehnoloogiat. Allpool on toodud huule sünkroonimispaberi töövoog. See asendab nädalase presidendikõne heli teise heliga (sisendheli). Selle käigus sünteesime suu ja lõua piirkonda uuesti, nii et selle liikumine on sünkroonis võltsheliga.

Allikas

Esiteks muudetakse LSTM-võrku kasutades heli x järjestuseks 18 orientiiripunkti y huules. See LSTM väljastab hõreda suu kuju iga väljundvideo kaadri jaoks.

Muudetud allikast

Suu kuju y korral sünteesib see suu ja lõua piirkonna tekstuuri. Need suu tekstuurid komponeeritakse seejärel koos sihtvideoga, et luua sihtraam:

Allikas

Kuidas me siis suu tekstuuri loome? Soovime, et see näeks välja tõeline, kuid oleks ka ajaliselt sujuv. Nii et rakendus vaatab sihtvideod üle, et otsida kandidaate kaadritelt, millel on sama arvutatud suu kuju, mida me tahame. Seejärel liidame kandidaadid kokku, kasutades mediaanfunktsiooni. Nagu allpool näidatud, kui keskmistamisel kasutame rohkem kandidaadiraame, muutub pilt häguseks, samal ajal kui ajaline sujuvus paraneb (virvendamist ei toimu). Teisest küljest võib pilt olla vähem maetud, kuid ühest kaadrist teise liikudes võime näha vilkumist.

Allikas

Hägususe kompenseerimiseks tehakse hammaste parandamist ja teritamist. Kuid ilmselgelt ei saa teravust alahuule jaoks täielikult taastada.

Allikas

Lõpuks peame raami ümber kujundama, et teaksime, kuhu sisestada võlts suu tekstuur. See aitab meil pea liikumisega sünkroonida. Eelkõige peatub Obama pea liikumise tavaliselt siis, kui ta oma kõne peatab.

Ülemine rida allpool on meie kasutatud sisendheli originaalsed videokaadrid. Sisestame selle sisendheli oma sihtvideole (teine ​​rida). Kõrvuti kõrvutades mõistame, et suu algsest videost pärit suu liikumine on väga tihedalt sarnane valmistatud suulaeliigutusega.

Allikas

UW kasutab suu tekstuuri loomiseks olemasolevaid raame. Selle asemel võime kasutada Deepfakes'i kontseptsiooni, et genereerida suu tekstuur otse automaatkooderist. Peame koguma tuhat kaadrit ja kasutama LSTM-i funktsioonide eraldamiseks nii videost kui ka helist. Siis saame suu tekstuuri genereerimiseks dekooderi treenida.

Veel mõtteid

Eriti huvitav on näha, kuidas rakendame AI kontseptsioone uute ideede ja toodete loomiseks, kuid mitte ilma hoiatuseta! Sotsiaalne mõju võib olla tohutu. Tegelikult ärge avaldage nalja pärast ühtegi võltsvideot! See võib teid viia juriidilistesse probleemidesse ja kahjustada teie veebimaine. Uurin seda teemat, kuna olen huvitatud metaõppest ja vastaste tuvastamisest. Parem kasutage oma energiat innovaatilisemate asjade jaoks. Teisest küljest jääb võltsvideo alles ja seda täiustatakse. Paremate võltsvideote tegemine pole minu eesmärk. Selle protsessi kaudu loodan, et teame, kuidas GAN-i paremini pildi rekonstrueerimiseks kasutada. Võib-olla ühel päeval võib sellest olla abi kasvajate avastamisel.

Teise ettevaatusabinõuna olge allalaaditud rakenduste puhul Deepfakes'i videote loomiseks ettevaatlik. On teateid, et mõned rakendused kaaperdavad arvutid krüptovaluuta kaevandamiseks. Lihtsalt ole ettevaatlik.

Muude artiklite loetelu

Viide

Obama süntees: huulte sünkroonimise õppimine heli abil

Õmblusteta kloonimine

Tajutavad kaotused

Autorid

Fotokrediidid (pea sall, naine)