Reaalajas näoanimatsioon avataridele PlatoBlockchain Data Intelligence. Vertikaalne otsing. Ai.

Reaalajas näoanimatsioon avataridele

Näoilme on kriitiline samm Robloxi marssil, et muuta metaversum loomulike ja usutavate avatari suhtluste kaudu inimeste igapäevaelust osaks. Virtuaalsete 3D-tegelaste nägude animeerimine reaalajas on aga tohutu tehniline väljakutse. Vaatamata arvukatele läbimurretele uurimistöös on reaalajas näoanimatsiooni rakenduste kaubanduslikke näiteid vähe. See on eriti keeruline Robloxis, kus toetame peadpööritavat hulka kasutajaseadmeid, reaalseid tingimusi ja meie arendajate pööraselt loomingulisi kasutusjuhtumeid.

Reaalajas näoanimatsioon avataridele PlatoBlockchain Data Intelligence. Vertikaalne otsing. Ai.

Reaalajas näoanimatsioon avataridele PlatoBlockchain Data Intelligence. Vertikaalne otsing. Ai.

Selles postituses kirjeldame sügavat õpperaamistikku näoanimatsiooni juhtelementide taandamiseks videost, mis käsitleb neid väljakutseid ja avab meile mitmeid tulevikuvõimalusi. Selles blogipostituses kirjeldatud raamistik esitati ka kui a rääkima at SIGGRAPH 2021.

Näo animatsioon

3D näoseadme juhtimiseks ja animeerimiseks on erinevaid võimalusi. Seda, mida me kasutame, nimetatakse näotoimingute kodeerimissüsteemiks või FACS, mis määratleb juhtelementide komplekti (näolihaste paigutuse põhjal), et deformeerida näo 3D-võrku. Vaatamata sellele, et FACS on üle 40 aasta vana, on FACS endiselt de facto standard, kuna FACS-i juhtseadised on intuitiivsed ja hõlpsasti ülekantavad platvormide vahel. Näide FACS-seadmest, mida kasutatakse, on näha allpool.

Reaalajas näoanimatsioon avataridele PlatoBlockchain Data Intelligence. Vertikaalne otsing. Ai.

Meetod

Idee seisneb selles, et meie sügaval õppimisel põhinev meetod võtaks sisendiks video ja väljastaks iga kaadri jaoks FACS-i komplekti. Selle saavutamiseks kasutame kaheastmelist arhitektuuri: näotuvastust ja FACS-i regressiooni.

Reaalajas näoanimatsioon avataridele PlatoBlockchain Data Intelligence. Vertikaalne otsing. Ai.

Näotuvastus

Parima jõudluse saavutamiseks rakendame suhteliselt tuntud MTCNN-i näotuvastusalgoritmi kiiret varianti. Algne MTCNN-i algoritm on üsna täpne ja kiire, kuid mitte piisavalt kiire, et toetada reaalajas näotuvastust paljudes meie kasutajate kasutatavates seadmetes. Selle lahendamiseks kohandasime algoritmi meie konkreetse kasutusjuhtumi jaoks, kus pärast näo tuvastamist käivitab meie MTCNN-i rakendus ainult viimast O-Neti etappi järjestikustes kaadrites, mille tulemuseks on keskmine 10-kordne kiirus. Kasutame ka MTCNN-i ennustatud näo orientiire (silmade, nina ja suunurkade asukoht), et joondada näo piirdekasti enne järgnevat regressioonietappi. See joondus võimaldab sisendkujutisi tihedalt kärpida, vähendades FACS-i regressioonivõrgu arvutamist.

Reaalajas näoanimatsioon avataridele PlatoBlockchain Data Intelligence. Vertikaalne otsing. Ai.

FACS regressioon 

Meie FACS-i regressiooniarhitektuur kasutab mitme ülesandega seadistust, mis treenib koos maamärke ja FACS-i kaalu, kasutades funktsioonide eraldajana jagatud selgroogu (tuntud kui kodeerija).

See seadistus võimaldab meil sünteetilistest animatsioonijadadest õpitud FACS-i kaalu suurendada reaalsete piltidega, mis jäädvustavad näoilme peensusi. FACS-i regressiooni alamvõrk, mida koolitatakse koos maamärkide regressori kasutusviisidega põhjuslikud konvolutsioonid; need konvolutsioonid toimivad tunnustel aja jooksul, mitte aga konvolutsioonidel, mis töötavad ainult kodeerijast leitud ruumilistel tunnustel. See võimaldab mudelil õppida näoanimatsioonide ajalisi aspekte ja muudab selle vähem tundlikuks ebakõlade, näiteks värisemise suhtes.

Reaalajas näoanimatsioon avataridele PlatoBlockchain Data Intelligence. Vertikaalne otsing. Ai.

koolitus

Algselt koolitasime mudelit ainult maamärgi regressiooni jaoks, kasutades nii reaalseid kui ka sünteetilisi pilte. Pärast teatud arvu samme hakkame lisama sünteetilisi jadasid, et õppida ajalise FACS-i regressiooni alamvõrgu kaalusid. Sünteetilised animatsioonijärjestused lõi meie interdistsiplinaarne kunstnike ja inseneride meeskond. Meie kunstnik seadistas normaliseeritud seadme, mida kasutati kõigi erinevate identiteetide (näovõrkude) jaoks, mida kasutati ja renderdati automaatselt, kasutades FACS-i kaalu sisaldavaid animatsioonifaile. Need animatsioonifailid genereeriti klassikaliste arvutinägemisalgoritmide abil, mis töötavad näo-kalisteeniliste videoseeriatel ja mida täiendati käsitsi animeeritud jadadega äärmuslike näoilmete jaoks, mis kalisteenilistel videotel puudusid. 

Kahjud

Oma süvaõppevõrgustiku koolitamiseks ühendame maamärkide ja FACS-i kaalude regressiooniks lineaarselt mitu erinevat kahjuterminit: 

  • Positsioonilised kaotused. Maamärkide puhul on taandunud positsioonide RMSE (Llmks ) ja FACS-kaalude puhul MSE (Lfacs ). 
  • Ajalised kaotused. FACS-i kaalude puhul vähendame värinat, kasutades sünteetiliste animatsioonijadade ajalisi kadusid. Kiiruse kadu (Lv ) inspireeritud [Cudeiro jt. 2019] on siht- ja prognoositud kiiruste vaheline MSE. See soodustab dünaamiliste väljendite üldist sujuvust. Lisaks kiirenduse reguleerimise termin (Lacc ) lisatakse FACS-i raskuste värisemise vähendamiseks (selle kaal hoitakse reageerimisvõime säilitamiseks madalana). 
  • Järjepidevuse kaotus. Järelevalveta järjepidevuse kaotamiseks kasutame tõelisi pilte ilma märkusteta (Lc ), sarnane [Honari jt. 2018. aasta]. See julgustab maamärkide ennustusi olema erinevate kujutiste teisenduste korral samaväärsed, parandades maamärkide asukoha järjepidevust kaadrite vahel, ilma et oleks vaja õppepiltide alamhulga jaoks orientiiride silte.

jõudlus

Kodeerija jõudluse parandamiseks ilma täpsust vähendamata või värinat suurendamata kasutasime objektikaardi suuruse vähendamiseks valikuliselt polsterdamata keerdkäike. See andis meile suurema kontrolli objektikaardi suuruste üle kui samm-sammult keerdud. Jäägi säilitamiseks lõikame funktsioonikaardi enne polsterdamata konvolutsiooni väljundisse lisamist tükkideks. Lisaks määrasime funktsioonikaartide sügavuse 8-kordseks, et tõhusalt kasutada mälu vektorkäskude komplektidega, nagu AVX ja Neon FP16, ning tulemuseks on jõudluse 1.5-kordne tõuge.

Meie lõplikul mudelil on 1.1 miljonit parameetrit ja selle käivitamiseks on vaja 28.1 miljonit korrutamist. Võrdluseks vanill Mobilenet V2 (millel meie arhitektuur põhineb) nõuab täitmiseks 300 miljonit korrutamist. Me kasutame NCNN raamistik seadmesiseste mudelite järeldamiseks ja ühe keermestatud täitmisaeg (sh näotuvastus) videokaadri jaoks on loetletud allolevas tabelis. Pange tähele, et 16 ms täitmisaeg toetab 60 kaadrit sekundis (FPS) töötlemist. 

Reaalajas näoanimatsioon avataridele PlatoBlockchain Data Intelligence. Vertikaalne otsing. Ai.

Mis järgmiseks

Meie sünteetiline andmekonveier võimaldas meil iteratiivselt parandada koolitatud mudeli väljendusvõimet ja vastupidavust. Lisasime sünteetilised järjestused, et parandada reageerimist vastamata ilmetele, ning tasakaalustatud treeningut erinevate näoidentiteetide vahel. Tänu meie arhitektuuri ja kadude ajalisele sõnastusele, hoolikalt optimeeritud selgroole ja sünteetiliste andmete veavabale tõele saavutame kvaliteetse animatsiooni minimaalse arvutusega. FACS-i kaalude alamvõrgus läbiviidav ajaline filtreerimine võimaldab meil vähendada selgroo kihtide arvu ja suurust ilma värinat suurendamata. Järelevalveta järjepidevuse kadu võimaldab meil treenida suure hulga tegelike andmetega, parandades meie mudeli üldistust ja vastupidavust. Jätkame tööd oma mudelite edasise viimistlemise ja täiustamise nimel, et saada veelgi väljendusrikkamad, värinavabamad ja jõulisemad tulemused. 

Kui olete huvitatud sarnaste väljakutsetega töötamisest näo reaalajas jälgimise ja masinõppe esirinnas, vaadake mõnda meie avatud positsioonid meie meeskonnaga.

Postitus Reaalajas näoanimatsioon avataridele ilmus esmalt Robloxi ajaveeb.

Ajatempel:

Veel alates Roblox