Inside the Tech – Reševanje obraznih izrazov Avatar – Roblox Blog

Inside the Tech – Reševanje obraznih izrazov Avatar – Blog Roblox

Izvorno vozlišče: 3039939

Inside the Tech je serija blogov, ki spremlja našo Podcast Tech Talks. V 20. epizodi podcasta Avatars & Self-Expression je generalni direktor Robloxa David Baszucki govoril z višjim direktorjem za inženiring Kiran Bhat, višjim direktorjem za izdelke Maheshem Ramasubramanianom in glavno produktno vodjo Effie Goenawan o prihodnosti poglobljene komunikacije prek avatarjev in tehnične izzive, ki jih rešujemo, da bi to omogočili. V tej izdaji oddaje Inside the Tech smo se pogovarjali z vodjo inženiringa Ianom Sachsom, da bi izvedeli več o enem od teh tehničnih izzivov – omogočanju obrazne mimike za naše avatarje – in o tem, kako delo ekipe Avatar Creation (pod skupino Engine) pomaga uporabnikom, da se izrazijo. na Robloxu.

Kateri so največji tehnični izzivi, ki se jih loteva vaša ekipa?

Ko razmišljamo o tem, kako avatar predstavlja nekoga na Robloxu, običajno upoštevamo dve stvari: kako se obnaša in kako izgleda. Torej je ena glavnih usmeritev moje ekipe omogočiti, da avatarji zrcalijo izraze osebe. Na primer, ko se nekdo nasmehne, se njegov avatar nasmehne sinhronizirano z njim. 

Ena od težkih stvari pri sledenju obraznih izrazov je prilagajanje učinkovitosti našega modela, tako da lahko te izraze zajamemo neposredno na napravi osebe v realnem času. Zavezani smo k temu, da bo ta funkcija dostopna čim večjemu številu ljudi na Robloxu, zato moramo podpirati ogromno naprav. Pomemben dejavnik pri tem je količina računalniške moči, ki jo naprava zmore. Želimo, da se lahko izrazijo vsi, ne le ljudje z zmogljivimi napravami. Zato uvajamo enega naših prvih modelov globokega učenja, da bi to omogočili. 

Drugi ključni tehnični izziv, s katerim se spopadamo, je poenostavitev postopka, ki ga ustvarjalci uporabljajo za razvoj dinamičnih avatarjev, ki jih lahko ljudje prilagodijo. Ustvarjanje takšnih avatarjev je precej zapleteno, ker morate modelirati glavo in če želite, da je animirana, morate narediti zelo specifične stvari, da opremite model, kot je namestitev spojev in uteži za linearno mešano kožo. Ustvarjalcem želimo olajšati ta postopek, zato razvijamo tehnologijo za poenostavitev. Osredotočiti se morajo le na izgradnjo statičnega modela. Ko to storijo, ga lahko samodejno opremimo in zapremo v kletko. Potem bi moralo sledenje obraza in večplastna oblačila delovati takoj. 

Kateri so nekateri inovativni pristopi in rešitve, ki jih uporabljamo za reševanje teh tehničnih izzivov?

Naredili smo nekaj pomembnih stvari, da zagotovimo, da dobimo prave informacije za izraze obraza. To se začne z uporabo industrijskega standarda FACS (sistem za nadzor obrazne animacije). Ti so ključ do vsega, ker jih uporabljamo za usmerjanje obrazne mimike avatarja – kako široka so usta, katere oči so odprte in koliko, itd. Za opis želenega obraznega izraza lahko uporabimo približno 50 različnih kontrol FACS. 

Ko gradite algoritem strojnega učenja za ocenjevanje obrazne mimike iz slik ali videoposnetkov, urite model tako, da mu pokažete vzorčne slike z znanimi osnovnimi izrazi resnice (opisano s FACS). Ko modelu pokaže veliko različnih slik z različnimi izrazi, se model nauči oceniti obrazne izraze predhodno nevidenih obrazov.

Običajno, ko delate na sledenju obrazu, te izraze označijo ljudje, najpreprostejša metoda pa je uporaba orientacijskih točk – na primer s pikami na sliko označite lokacije slikovnih pik obraznih potez, kot so kotički oči. 

Toda uteži FACS so drugačne, ker ne morete pogledati slike in reči: "Usta so odprta 0.9 proti 0.5." Za rešitev tega problema uporabljamo sintetične podatke za neposredno ustvarjanje uteži FACS, ki so sestavljene iz 3D-modelov, upodobljenih s položaji FACS iz različnih zornih kotov in svetlobnih pogojev.

Na žalost se ne moremo učiti samo na sintetičnih podatkih, ker mora model posplošiti na resnične obraze. Tako vnaprej usposobimo model za nalogo napovedovanja mejnika z uporabo kombinacije resničnih in sintetičnih podatkov, kar omogoča modelu, da se nauči naloge napovedovanja FACS z uporabo čisto sintetičnih podatkov.

Želimo, da bi sledenje obrazu delovalo za vse, vendar so nekatere naprave zmogljivejše od drugih. To pomeni, da smo morali zgraditi sistem, ki se bo lahko dinamično prilagajal procesorski moči katere koli naprave. To smo dosegli tako, da smo naš model razdelili na hitro približno fazo napovedi FACS, imenovano BaseNet, in natančnejšo fazo izboljšanja FACS, imenovano HiFiNet. Med delovanjem sistem meri svojo zmogljivost in v optimalnih pogojih izvedemo obe fazi modela. Če pa je zaznana upočasnitev (na primer zaradi naprave nižjega razreda), sistem zažene samo prvo fazo.

Katere so ključne stvari, ki ste se jih naučili pri tem tehničnem delu?

Eno je, da je priprava funkcije za delovanje tako majhen del tega, kar je dejansko potrebno za uspešno izdajo nečesa. Tona dela je v procesu inženiringa in testiranja enot. Zagotoviti moramo, da imamo dobre načine za ugotavljanje, ali imamo dober cevovod podatkov. In vprašati se moramo: "Hej, ali je ta novi model dejansko boljši od starega?"

Preden sploh začnemo z osnovnim inženiringom, vsi cevovodi, ki smo jih postavili za sledenje poskusom, zagotavljanje, da naš nabor podatkov predstavlja raznolikost naših uporabnikov, vrednotenje rezultatov ter uvajanje in pridobivanje povratnih informacij o teh novih rezultatih, prispevajo k temu, da je model zadosten. Toda to je del procesa, o katerem se ne govori toliko, čeprav je tako kritičen. 

S katero vrednoto Robloxa se vaša ekipa najbolj ujema?

Razumevanje faze projekta je ključnega pomena, zato je med inovacijami dolgoročni pogled zelo pomemben, zlasti pri raziskavah, ko poskušate rešiti pomembne probleme. Toda spoštovanje skupnosti je prav tako ključnega pomena, ko prepoznavate težave, pri katerih je vredno vpeljati inovacije, saj želimo delati na težavah, ki imajo največjo vrednost za našo širšo skupnost. Na primer, izrecno smo se odločili delati na "sledenju obrazom za vse" in ne samo na "sledenju obrazom". Ko dosežete 90-odstotno mejo izgradnje nečesa, je prehod prototipa v funkcionalno funkcijo odvisen od izvedbe in prilagajanja fazi projekta.

Kaj vas pri Robloxu in vaši ekipi najbolj navdušuje?

Vedno sem težil k delu na orodjih, ki ljudem pomagajo biti ustvarjalni. Ustvarjanje nečesa je posebno, ker na koncu dobite nekaj, kar je edinstveno vaše. Delal sem na področju vizualnih učinkov in različnih orodij za urejanje fotografij, pri čemer sem uporabljal matematične, naravoslovne, raziskovalne in inženirske vpoglede, da sem ljudem omogočil, da počnejo res zanimive stvari. Zdaj, pri Robloxu, lahko to dvignem na povsem novo raven. Roblox je ustvarjalna platforma, ne le orodje. In obseg, v katerem izdelamo orodja, ki omogočajo ustvarjalnost, je veliko večji od vsega, na čemer sem delal prej, kar je neverjetno razburljivo.

Časovni žig:

Več od Roblox