Reaaliaikainen kasvoanimaatio avatareille PlatoBlockchain Data Intelligence. Pystysuuntainen haku. Ai.

Reaaliaikainen kasvoanimaatio avatareille

Kasvojen ilme on kriittinen askel Robloxin marssissa kohti metaversumien tekemistä osaksi ihmisten jokapäiväistä elämää luonnollisten ja uskottavien avatar-vuorovaikutusten kautta. Virtuaalisten 3D-hahmojen kasvojen animointi reaaliajassa on kuitenkin valtava tekninen haaste. Lukuisista tutkimusläpimurroista huolimatta kaupallisia esimerkkejä reaaliaikaisista kasvojen animaatiosovelluksista on vain vähän. Tämä on erityisen haastavaa Robloxilla, jossa tuemme huimaavaa valikoimaa käyttäjälaitteita, todellisia olosuhteita ja hurjan luovia käyttötapauksia kehittäjiltämme.

Reaaliaikainen kasvoanimaatio avatareille PlatoBlockchain Data Intelligence. Pystysuuntainen haku. Ai.

Reaaliaikainen kasvoanimaatio avatareille PlatoBlockchain Data Intelligence. Pystysuuntainen haku. Ai.

Tässä viestissä kuvailemme syvällistä oppimiskehystä kasvojen animaatioohjaimien poistamiseksi videosta, joka sekä vastaa näihin haasteisiin että avaa meille monia tulevaisuuden mahdollisuuksia. Tässä blogikirjoituksessa kuvattu viitekehys esitettiin myös a puhua at SIGGRAPH 2021.

Kasvojen animaatio

3D-kasvojen ohjaamiseen ja animointiin on useita vaihtoehtoja. Käyttämämme järjestelmä on nimeltään Facial Action Coding System tai FACS, joka määrittää joukon säätimiä (kasvolihasten sijoittelun perusteella) 3D-kasvoverkon muodon muuttamiseksi. Vaikka FACS on yli 40 vuotta vanha, se on edelleen de facto standardi, koska FACS-ohjaimet ovat intuitiivisia ja helposti siirrettävissä laitteiden välillä. Alla on esimerkki FACS-laitteistosta, jota käytetään.

Reaaliaikainen kasvoanimaatio avatareille PlatoBlockchain Data Intelligence. Pystysuuntainen haku. Ai.

Menetelmä

Ideana on, että syvään oppimiseen perustuva menetelmämme ottaa videon syötteenä ja tulostaa joukon FACS-tiedostoja jokaiselle kehykselle. Tämän saavuttamiseksi käytämme kaksivaiheista arkkitehtuuria: kasvojentunnistusta ja FACS-regressiota.

Reaaliaikainen kasvoanimaatio avatareille PlatoBlockchain Data Intelligence. Pystysuuntainen haku. Ai.

Kasvontunnistus

Parhaan suorituskyvyn saavuttamiseksi otamme käyttöön nopean muunnelman suhteellisen hyvin tunnetusta MTCNN-kasvojentunnistusalgoritmista. Alkuperäinen MTCNN-algoritmi on melko tarkka ja nopea, mutta ei tarpeeksi nopea tukemaan reaaliaikaista kasvojentunnistusta monissa käyttäjiemme käyttämissä laitteissa. Tämän ratkaisemiseksi tarkistimme algoritmia erityiseen käyttötapaukseemme, jossa kun kasvot havaitaan, MTCNN-toteutusmme suorittaa vain viimeisen O-Net-vaiheen peräkkäisissä kehyksissä, mikä johtaa keskimäärin 10-kertaiseen nopeuttamiseen. Käytämme myös MTCNN:n ennustamia kasvojen maamerkkejä (silmien, nenän ja suun kulmien sijainti) kasvojen rajauslaatikon kohdistamiseen ennen seuraavaa regressiovaihetta. Tämä kohdistus mahdollistaa syöttökuvien tiukan rajauksen, mikä vähentää FACS-regressioverkon laskentaa.

Reaaliaikainen kasvoanimaatio avatareille PlatoBlockchain Data Intelligence. Pystysuuntainen haku. Ai.

FACS-regressio 

FACS-regressioarkkitehtuurimme käyttää monitehtäväkokoonpanoa, joka harjoittelee maamerkkejä ja FACS-painotuksia käyttämällä jaettua runkoverkkoa (tunnetaan nimellä enkooderi) ominaisuuspoimijana.

Tämän asennuksen avulla voimme lisätä synteettisistä animaatiosarjoista opittuja FACS-painotuksia todellisilla kuvilla, jotka vangitsevat kasvojen ilmeen hienovaraisuudet. FACS-regression aliverkko, joka on koulutettu maamerkkien regressoreiden kanssa kausaalisia konvoluutioita; nämä konvoluutiot toimivat ominaisuuksilla ajan kuluessa, toisin kuin konvoluutiot, jotka toimivat vain tilaominaisuuksilla, joita voidaan löytää kooderista. Tämä antaa mallille mahdollisuuden oppia kasvojen animaatioiden ajallisia näkökohtia ja tekee siitä vähemmän herkän epäjohdonmukaisuuksille, kuten tärinälle.

Reaaliaikainen kasvoanimaatio avatareille PlatoBlockchain Data Intelligence. Pystysuuntainen haku. Ai.

koulutus

Koulutamme mallin aluksi vain maamerkkiregressioon käyttämällä sekä todellisia että synteettisiä kuvia. Tietyn määrän vaiheita jälkeen alamme lisätä synteettisiä sekvenssejä oppiaksemme painot temporaalista FACS-regressioaliverkkoa varten. Synteettiset animaatiojaksot on luonut monitieteinen taiteilijoiden ja insinöörien tiimimme. Taiteilijamme perusti normalisoidun laitteiston, jota käytettiin kaikille eri identiteeteille (kasvoverkot), joka harjoitettiin ja renderöitiin automaattisesti käyttämällä FACS-painoja sisältäviä animaatiotiedostoja. Nämä animaatiotiedostot luotiin klassisilla tietokonenäköalgoritmeilla, jotka käytettiin kasvojen kalenteniikkavideosekvensseissä, ja niitä on täydennetty käsin animoiduilla sekvensseillä äärimmäisiä kasvojen ilmeitä varten, jotka puuttuivat kalistenisista videoista. 

Tappiot

Kouluttaaksemme syväoppimisverkostoamme yhdistämme lineaarisesti useita erilaisia ​​häviötermejä regressimaan maamerkit ja FACS-painot: 

  • Paikalliset tappiot. Maamerkkien osalta regressioituneiden paikkojen RMSE (Llmks ) ja FACS-painoille MSE (Lkasvot ). 
  • Ajalliset tappiot. FACS-painotuksissa vähennämme värinää käyttämällä synteettisten animaatiojaksojen ajallisia häviöitä. Nopeushäviö (Lv ) innoittamana [Cudeiro et ai. 2019] on tavoite- ja ennustetun nopeuden välinen MSE. Se edistää dynaamisten ilmaisujen yleistä sujuvuutta. Lisäksi tasaustermi kiihtyvyydelle (Lacc ) lisätään vähentämään FACS-painojen tärinää (sen paino pidetään alhaisena vastekyvyn säilyttämiseksi). 
  • Johdonmukaisuuden menetys. Käytämme oikeita kuvia ilman huomautuksia valvomattomassa johdonmukaisuuden menetyksessä (Lc ), samanlainen kuin [Honari et ai. 2018]. Tämä rohkaisee maamerkkien ennusteita olemaan samanarvoisia eri kuvamuunnoksissa, mikä parantaa maamerkkien sijainnin johdonmukaisuutta kehysten välillä ilman, että koulutuskuvien osajoukolle tarvitaan maamerkkimerkintöjä.

Suorituskyky

Parantaaksemme kooderin suorituskykyä tarkkuutta heikentämättä tai värinää lisäämättä, käytimme valikoivasti pehmustettuja konvoluutioita ominaisuuskartan koon pienentämiseksi. Tämä antoi meille enemmän hallintaa karttakohdekarttojen kokoihin kuin askeleisiin konvoluutioihin. Residuaalin säilyttämiseksi viipaloimme piirrekartan ennen kuin lisäämme sen pehmustettoman konvoluution tulosteeseen. Lisäksi asetimme ominaisuuskarttojen syvyyden 8:n kerrannaiseksi, jotta muistia voidaan käyttää tehokkaasti vektorikäskysarjoilla, kuten AVX ja Neon FP16, ja tuloksena on 1.5-kertainen suorituskyvyn lisäys.

Lopullisessa mallissamme on 1.1 miljoonaa parametria, ja sen suorittaminen vaatii 28.1 miljoonaa kertaa. Viitteeksi vanilja Mobiiliverkko V2 (johon arkkitehtuurimme perustuu) vaatii 300 miljoonan kerrannaiskertymän suorittamiseen. Käytämme NCNN Laitteen sisäisen mallin päättelyn puitteet ja yksisäikeinen suoritusaika (mukaan lukien kasvojentunnistus) videoruudulle on lueteltu alla olevassa taulukossa. Huomaa, että 16 ms:n suoritusaika tukee 60 kehyksen sekunnissa (FPS) käsittelyä. 

Reaaliaikainen kasvoanimaatio avatareille PlatoBlockchain Data Intelligence. Pystysuuntainen haku. Ai.

Mitä seuraavaksi

Synteettinen dataputkistomme antoi meille mahdollisuuden parantaa opetetun mallin ilmeisyyttä ja kestävyyttä iteratiivisesti. Lisäsimme synteettisiä sekvenssejä parantaaksemme reagointikykyä puuttuviin ilmeisiin ja tasapainotimme harjoittelua eri kasvojen identiteeteille. Saavutamme korkealaatuisen animaation minimaalisella laskutoimituksella, koska arkkitehtuurimme ja häviömme ajallinen muotoilu, huolellisesti optimoitu runkorakenne ja synteettisistä tiedoista peräisin oleva virheetön totuus ovat johtaneet. FACS-painojen aliverkossa suoritetun ajallisen suodatuksen avulla voimme vähentää rungon kerrosten määrää ja kokoa ilman, että värinää lisätään. Valvomaton johdonmukaisuuden menetys antaa meille mahdollisuuden harjoitella suurella joukolla todellista dataa, mikä parantaa mallimme yleistävyyttä ja kestävyyttä. Jatkamme työskentelyä malliemme edelleen jalostamiseksi ja parantamiseksi saadaksemme entistä ilmeikkäämpiä, värinäättömämpiä ja vankempia tuloksia. 

Jos olet kiinnostunut työskentelemään vastaavien haasteiden parissa reaaliaikaisen kasvojen seurannan ja koneoppimisen eturintamassa, tutustu joihinkin avoimet asemat tiimimme kanssa.

Viesti Reaaliaikainen kasvoanimaatio avatareille ilmestyi ensin Roblox-blogi.

Aikaleima:

Lisää aiheesta Roblox