Inside the Tech - Розгадування виразів обличчя аватарів - Blog Roblox

Inside the Tech – Розгадування виразів обличчя аватарів – Blog Roblox

Вихідний вузол: 3039939

Inside the Tech — це серія блогів, яка супроводжує наш Подкаст Tech Talks. У епізоді 20 подкасту «Аватари та самовираження» генеральний директор Roblox Девід Базукі поспілкувався зі старшим директором із розробки Кіраном Бхатом, старшим директором із продуктів Махешом Рамасубраманіаном та головним менеджером із продуктів Еффі Гоенаван про майбутнє захоплюючого спілкування через аватари та технічні проблеми, які ми вирішуємо, щоб увімкнути це. У цьому випуску Inside the Tech ми розмовляли з менеджером з розробки Ієном Саксом, щоб дізнатися більше про одну з цих технічних проблем — увімкнення міміки для наших аватарів — і про те, як робота групи Avatar Creation (під керівництвом групи Engine) допомагає користувачам виражати себе на Roblox.

Які найбільші технічні завдання бере на себе ваша команда?

Коли ми думаємо про те, як аватар представляє когось на Roblox, ми зазвичай розглядаємо дві речі: як він поводиться та як виглядає. Тож одна з головних цілей моєї команди полягає в тому, щоб аватари відображали вирази людей. Наприклад, коли хтось посміхається, його аватар посміхається синхронно з ним. 

Однією зі складних речей під час відстеження виразів обличчя є налаштування ефективності нашої моделі, щоб ми могли фіксувати ці вирази безпосередньо на пристрої людини в режимі реального часу. Ми прагнемо зробити цю функцію доступною для якомога більшої кількості людей на Roblox, і нам потрібно підтримувати величезну кількість пристроїв. Обсяг обчислювальної потужності, з яким може працювати чийсь пристрій, є життєво важливим фактором у цьому. Ми хочемо, щоб кожен міг виразити себе, а не лише люди з потужними пристроями. Тому ми розгортаємо одну з наших перших моделей глибокого навчання, щоб зробити це можливим. 

Друга ключова технічна проблема, яку ми вирішуємо, — це спрощення процесу, який використовують творці для розробки динамічних аватарів, які люди можуть персоналізувати. Створення подібних аватарів досить складне, тому що вам потрібно змоделювати голову, і якщо ви хочете, щоб вона анімувала, ви повинні зробити дуже конкретні речі, щоб підлаштувати модель, наприклад, розмістити з’єднання та ваги для лінійного змішування шкіри. Ми хочемо полегшити цей процес для творців, тому розробляємо технологію, щоб спростити його. Вони повинні зосередитися лише на створенні статичної моделі. Коли вони це зроблять, ми можемо автоматично смонтувати його та поставити в клітку. Тоді відстеження обличчя та багатошаровий одяг повинні працювати відразу. 

Які інноваційні підходи та рішення ми використовуємо для вирішення цих технічних проблем?

Ми зробили кілька важливих речей, щоб гарантувати, що отримуємо правильну інформацію про вираз обличчя. Це починається з використання галузевого стандарту FACS (система керування анімацією обличчя). Це ключ до всього, тому що ми використовуємо їх, щоб керувати виразом обличчя аватара — наскільки широкий рот, які очі відкриті та наскільки, тощо. Ми можемо використовувати близько 50 різних елементів керування FACS, щоб описати бажаний вираз обличчя. 

Коли ви створюєте алгоритм машинного навчання для оцінки виразу обличчя на основі зображень або відео, ви тренуєте модель, показуючи їй приклади зображень із відомими базовими виразами (описано за допомогою FACS). Показуючи моделі багато різних зображень з різними виразами, модель вчиться оцінювати вирази облич, які раніше не бачили.

Зазвичай, коли ви працюєте над відстеженням обличчя, ці вирази позначаються людьми, і найпростішим методом є використання орієнтирів, наприклад, розміщення точок на зображенні, щоб позначити розташування пікселів рис обличчя, як-от кутики очей. 

Але ваги FACS відрізняються, тому що ви не можете, подивившись на картинку, сказати: «Рот відкритий 0.9 проти 0.5». Щоб вирішити цю проблему, ми використовуємо синтетичні дані для безпосереднього створення вагових коефіцієнтів FACS, які складаються з 3D-моделей, відображених у позах FACS під різними кутами й умовами освітлення.

На жаль, оскільки модель потребує узагальнення для реальних облич, ми не можемо тренуватися лише на синтетичних даних. Тому ми попередньо тренуємо модель на завдання прогнозування орієнтира, використовуючи комбінацію реальних і синтетичних даних, дозволяючи моделі вивчати завдання прогнозування FACS, використовуючи суто синтетичні дані.

Ми хочемо, щоб відстеження обличчя працювало для всіх, але деякі пристрої потужніші за інші. Це означає, що нам потрібно було створити систему, здатну динамічно адаптуватися до обчислювальної потужності будь-якого пристрою. Ми досягли цього, розділивши нашу модель на фазу швидкого наближеного прогнозування FACS під назвою BaseNet і більш точну фазу уточнення FACS під назвою HiFiNet. Під час роботи система вимірює свою продуктивність, і за оптимальних умов ми запускаємо обидві фази моделі. Але якщо виявлено уповільнення (наприклад, через пристрій нижчого класу), система запускає лише першу фазу.

Які ключові речі ви навчилися, виконуючи цю технічну роботу?

Одна з них полягає в тому, що запрацювання функції — це така невелика частина того, що насправді потрібно для успішного випуску чогось. Тонна роботи полягає в процесі проектування та модульного тестування. Нам потрібно переконатися, що у нас є хороші способи визначити, чи є у нас хороший канал даних. І ми повинні запитати себе: «Гей, чи справді ця нова модель краща за стару?»

Перш ніж ми навіть розпочнемо основну розробку, усі конвеєри, які ми запровадили для відстеження експериментів, гарантуючи, що наш набір даних представляє різноманіття наших користувачів, оцінки результатів, а також розгортання та отримання відгуків про ці нові результати йдуть на те, щоб зробити модель достатньою. Але це частина процесу, про яку не так багато говорять, навіть якщо вона дуже важлива. 

Яким цінностям Roblox найбільше відповідає ваша команда?

Розуміння фази проекту є ключовим, тому під час інновацій довготривалий погляд має велике значення, особливо в дослідженнях, коли ви намагаєтеся вирішити важливі проблеми. Але повага до спільноти також має вирішальне значення, коли ви визначаєте проблеми, які варті інновацій, оскільки ми хочемо працювати над проблемами, які мають найбільшу цінність для нашої спільноти. Наприклад, ми спеціально вирішили працювати над «відстеженням обличчя для всіх», а не просто «відстеженням обличчя». Коли ви досягаєте позначки в 90 відсотків створення чогось, перетворення прототипу на функціональну функцію залежить від виконання та адаптації до етапу проекту.

Що вас найбільше хвилює в тому, куди рухаються Roblox і ваша команда?

Я завжди тяжів до роботи над інструментами, які допомагають людям бути креативними. Створювати щось особливе, тому що ви отримуєте щось унікальне ваше. Я працював над візуальними ефектами та різними інструментами для редагування фотографій, використовуючи математику, науку, дослідження та інженерні знання, щоб дати людям змогу робити справді цікаві речі. Тепер, у Roblox, я можу вивести це на абсолютно новий рівень. Roblox — це платформа для творчості, а не просто інструмент. І масштаб, у якому ми створюємо інструменти, які сприяють творчості, набагато більший, ніж будь-що, над чим я працював раніше, і це неймовірно захоплююче.

Часова мітка:

Більше від Roblox