Inside the Tech – Avatar arckifejezések megoldása – Roblox Blog

Inside the Tech – Avatar arckifejezések megoldása – Roblox Blog

Forrás csomópont: 3039939

Az Inside the Tech egy blogsorozat, amely a mi oldalunkat kíséri Tech Talks podcast. Az Avatarok és önkifejezés című podcast 20. epizódjában a Roblox vezérigazgatója, David Baszucki Kiran Bhat műszaki igazgatóval, Mahesh Ramasubramanian termékosztály vezető igazgatójával és Effie Goenawan fő termékmenedzserrel beszélt az avatarokon és a technikai kihívásokat, amelyeket megoldunk, hogy lehetővé tegyük. Az Inside the Tech jelen kiadásában Ian Sachs mérnöki menedzserrel beszélgettünk, hogy többet megtudjunk az egyik technikai kihívásról – az arckifejezések lehetővé tételéről avatárjaink számára – és arról, hogy az Avatar Creation (az Engine csoport alatt) csapata hogyan segíti a felhasználókat önkifejezésben. a Robloxon.

Melyek a csapatod legnagyobb technikai kihívásai?

Amikor arra gondolunk, hogy egy avatar hogyan ábrázol valakit a Robloxon, általában két dolgot veszünk figyelembe: hogyan viselkedik és hogyan néz ki. Tehát a csapatom egyik fő célja az, hogy az avatárok tükrözzék egy személy arckifejezését. Például amikor valaki mosolyog, az avatárja szinkronban mosolyog vele. 

Az arckifejezések követésének egyik nehéz dolga a modellünk hatékonyságának hangolása, hogy ezeket a kifejezéseket közvetlenül a személy eszközén, valós időben rögzíthessük. Elkötelezettek vagyunk amellett, hogy ezt a funkciót a lehető legtöbb ember számára elérhetővé tegyük a Robloxon, és számos eszközt kell támogatnunk. Ebben létfontosságú tényező, hogy valaki eszköze mekkora számítási teljesítményt képes kezelni. Azt akarjuk, hogy mindenki kifejezhesse magát, ne csak az erős eszközökkel rendelkező emberek. Ezért bevezetjük az egyik első mély tanulási modellünket, hogy ezt lehetővé tegyük. 

A második kulcsfontosságú technikai kihívás, amellyel megküzdünk, az, hogy leegyszerűsítsük az alkotók által személyre szabható dinamikus avatarok kifejlesztésére használt folyamatot. Az ilyen avatarok létrehozása meglehetősen bonyolult, mert modellezni kell a fejet, és ha azt szeretné, hogy animáljon, nagyon specifikus dolgokat kell végrehajtania a modell rögzítéséhez, például csuklókat és súlyokat kell elhelyezni a lineáris keverék nyúzáshoz. Szeretnénk megkönnyíteni ezt a folyamatot az alkotók számára, ezért technológiát fejlesztünk az egyszerűsítés érdekében. Csak a statikus modell felépítésére kell koncentrálniuk. Amikor megteszik, automatikusan beállíthatjuk és ketrecbe helyezhetjük. Ezután az arckövetésnek és a réteges ruházatnak azonnal működnie kell. 

Melyek azok az innovatív megközelítések és megoldások, amelyeket ezeknek a technikai kihívásoknak a leküzdésére használunk?

Megtettünk néhány fontos dolgot annak érdekében, hogy a megfelelő információkat kapjuk az arckifejezésekhez. Ez az iparági szabványnak megfelelő FACS (Facial Animation Control System) használatával kezdődik. Ezek a kulcsok mindenhez, mert ezeket használjuk az avatar arckifejezésének irányítására – milyen széles a száj, melyik szem nyílik ki és mennyit, és így tovább. Körülbelül 50 különböző FACS-vezérlőt használhatunk a kívánt arckifejezés leírására. 

Amikor gépi tanulási algoritmust épít fel az arckifejezések képek vagy videók alapján történő becslésére, egy modellt úgy tanít meg, hogy példaképeket mutat be ismert alapigazság-kifejezésekkel (a FACS-szel leírva). Azáltal, hogy a modellnek sok különböző képet mutat különböző kifejezésekkel, a modell megtanulja megbecsülni a korábban nem látott arcok arckifejezését.

Normális esetben, amikor az arckövetéssel dolgozik, ezeket a kifejezéseket az emberek címkézik fel, és a legegyszerűbb módszer a tereptárgyak használata – például pontok elhelyezése a képen az arcvonások, például a szemzugok pixeleinek megjelölésére. 

De a FACS-súlyok eltérőek, mert nem lehet ránézni a képre, és azt mondani: „A száj nyitva 0.9 vs. 0.5.” Ennek megoldására szintetikus adatokat használunk a FACS súlyok közvetlen generálására, amelyek különböző szögekből és fényviszonyokból FACS-pózokkal renderelt 3D modellekből állnak.

Sajnos, mivel a modellnek valós arcokra kell általánosítania, nem tudunk kizárólag szintetikus adatokra oktatni. Így a modellt előre betanítjuk egy mérföldkőnek számító előrejelzési feladatra, valós és szintetikus adatok kombinációjával, lehetővé téve a modell számára, hogy megtanulja a FACS előrejelzési feladatot tisztán szintetikus adatok felhasználásával.

Szeretnénk, ha az arckövetés mindenkinél működne, de egyes eszközök erősebbek, mint mások. Ez azt jelenti, hogy olyan rendszert kellett felépíteni, amely képes dinamikusan alkalmazkodni bármely eszköz feldolgozási teljesítményéhez. Ezt úgy értük el, hogy modellünket egy gyors közelítő FACS előrejelzési fázisra, a BaseNetre és egy pontosabb FACS finomítási fázisra, a HiFiNetre osztottuk. Futás közben a rendszer méri a teljesítményét, és optimális körülmények között mindkét modellfázisban futunk. De ha lassulást észlel (például egy alacsonyabb kategóriás eszköz miatt), a rendszer csak az első fázist futtatja.

Melyek azok a kulcsfontosságú dolgok, amelyeket megtanultál e technikai munka során?

Az egyik az, hogy egy funkció működése nagyon kis része annak, ami ténylegesen szükséges ahhoz, hogy valami sikeresen megjelenjen. A munka nagy része a tervezési és az egységtesztelési folyamatban van. Gondoskodnunk kell arról, hogy megfelelő módszerekkel állapítsuk meg, hogy megfelelő adatsorral rendelkezünk-e. És fel kell tennünk magunknak a kérdést: „Hé, ez az új modell valóban jobb, mint a régi?”

Mielőtt elkezdenénk az alaptervezést, a kísérletek nyomon követésére, annak biztosítására, hogy az adatkészletünk reprezentálja a felhasználók sokféleségét, az eredmények kiértékelésére, valamint az új eredmények bevezetésére és az azokra vonatkozó visszajelzések megszerzésére szolgáló összes folyamatot, amelyet a kísérletek nyomon követésére hozunk létre, hogy a modell elegendő legyen. De ez egy része a folyamatnak, amiről nem esik annyi szó, noha nagyon kritikus. 

Melyik Roblox értékhez igazodik leginkább a csapata?

A projekt szakaszának megértése kulcsfontosságú, ezért az innováció során nagyon sokat számít a hosszú távú szemlélet, különösen a kutatásban, amikor fontos problémákat próbálnak megoldani. De a közösség tiszteletben tartása akkor is kulcsfontosságú, amikor azonosítja azokat a problémákat, amelyeken érdemes újítani, mert olyan problémákon akarunk dolgozni, amelyek a legtöbb értéket képviselik szélesebb közösségünk számára. Például kifejezetten úgy döntöttünk, hogy az „arckövetést mindenki számára” használjuk, nem csak az „arckövetést”. Ahogy eléri a 90 százalékos küszöböt, hogy megépítsen valamit, a prototípus funkcionális jellemzővé alakítása a végrehajtástól és a projekt szakaszához való alkalmazkodástól függ.

Mi izgat a legjobban abban, hogy Roblox és csapata merre tart?

Mindig is olyan eszközökkel dolgoztam, amelyek segítik az embereket, hogy kreatívak legyenek. Valamit létrehozni azért különleges, mert valami olyasmihez jutsz, ami a tiéd. Dolgoztam vizuális effektusokon és különféle fotószerkesztő eszközökön, matematikai, tudományos, kutatási és mérnöki ismereteket felhasználva, hogy képessé tegyem az embereket igazán érdekes dolgokra. Most, a Robloxnál, ezt egy teljesen új szintre kell emelnem. A Roblox egy kreativitás platform, nem csak egy eszköz. A kreativitást lehetővé tevő eszközök megalkotásának mértéke pedig sokkal nagyobb, mint bármi, amin korábban dolgoztam, ami hihetetlenül izgalmas.

Időbélyeg:

Még több roblox