Анімація обличчя в реальному часі для аватарів PlatoBlockchain Data Intelligence. Вертикальний пошук. Ai.

Анімація обличчя в режимі реального часу для аватарів

Вираз обличчя є важливим кроком у марші Roblox до того, щоб зробити метавсесвіт частиною повсякденного життя людей через природні та правдоподібні взаємодії з аватарами. Однак анімація віртуальних 3D-облич персонажів у реальному часі є величезною технічною проблемою. Незважаючи на численні дослідницькі прориви, існує обмежена кількість комерційних прикладів застосування анімації обличчя в реальному часі. Це особливо складно для Roblox, де ми підтримуємо запаморочливий набір користувацьких пристроїв, реальних умов і надзвичайно креативних варіантів використання від наших розробників.

Анімація обличчя в реальному часі для аватарів PlatoBlockchain Data Intelligence. Вертикальний пошук. Ai.

Анімація обличчя в реальному часі для аватарів PlatoBlockchain Data Intelligence. Вертикальний пошук. Ai.

У цій публікації ми опишемо фреймворк глибокого навчання для регресії елементів керування анімацією обличчя з відео, який одночасно вирішує ці проблеми та відкриває перед нами низку майбутніх можливостей. Структура, описана в цьому блозі, також була представлена ​​як a говорити at SIGGRAPH 2021.

Анімація обличчя

Існують різні варіанти керування та анімації 3D-пристрою обличчя. Те, що ми використовуємо, називається системою кодування дій обличчя або FACS, який визначає набір елементів керування (на основі розташування м’язів обличчя) для деформації тривимірної сітки обличчя. Незважаючи на те, що їм більше 3 років, FACS все ще залишається стандартом де-факто, оскільки елементи керування FACS є інтуїтивно зрозумілими та легко переміщаються між буровими установками. Приклад тренування FACS можна побачити нижче.

Анімація обличчя в реальному часі для аватарів PlatoBlockchain Data Intelligence. Вертикальний пошук. Ai.

Метод

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

Анімація обличчя в реальному часі для аватарів PlatoBlockchain Data Intelligence. Вертикальний пошук. Ai.

розпізнавання облич

Для досягнення найкращої продуктивності ми реалізуємо швидкий варіант відносно відомого алгоритму виявлення обличчя MTCNN. Оригінальний алгоритм MTCNN є досить точним і швидким, але недостатньо швидким, щоб підтримувати виявлення обличчя в реальному часі на багатьох пристроях, якими користуються наші користувачі. Таким чином, щоб вирішити це, ми налаштували алгоритм для нашого конкретного випадку використання, коли після виявлення обличчя наша реалізація MTCNN запускає лише останній етап O-Net у послідовних кадрах, що призводить до прискорення в середньому в 10 разів. Ми також використовуємо орієнтири обличчя (розташування очей, носа та кутів рота), передбачені MTCNN, для вирівнювання обмежувальної рамки обличчя перед наступною стадією регресії. Таке вирівнювання дозволяє чітко обрізати вхідні зображення, зменшуючи обчислення мережі регресії FACS.

Анімація обличчя в реальному часі для аватарів PlatoBlockchain Data Intelligence. Вертикальний пошук. Ai.

Регресія FACS 

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

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

Анімація обличчя в реальному часі для аватарів PlatoBlockchain Data Intelligence. Вертикальний пошук. Ai.

Навчання

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

втрати

Щоб навчити нашу мережу глибокого навчання, ми лінійно комбінуємо кілька різних термінів втрати, щоб регресувати орієнтири та вагові показники FACS: 

  • Позиційні втрати. Для орієнтирів RMSE регресованих позицій (Llmks ), а для ваг FACS – MSE (Lфакти ). 
  • Часові втрати. Для вагових коефіцієнтів FACS ми зменшуємо тремтіння за допомогою тимчасових втрат у порівнянні з послідовностями синтетичної анімації. Втрата швидкості (Лv ) натхненний [Кудейро та ін. 2019 рік] – MSE між цільовою та передбачуваною швидкістю. Це сприяє загальній плавності динамічних виразів. Крім того, член регуляризації на прискоренні (ЛТочність ) додається, щоб зменшити тремтіння ваг FACS (його вага залишається низькою, щоб зберегти чутливість). 
  • Втрата консистенції. Ми використовуємо реальні зображення без анотацій з неконтрольованою втратою консистенції (Лc ), схожий на [Хонарі та ін. 2018 рік]. Це спонукає прогнозування орієнтирів бути еквіваріантними при різних трансформаціях зображень, покращуючи узгодженість розташування орієнтирів між кадрами без необхідності міток орієнтирів для підмножини навчальних зображень.

продуктивність

Щоб підвищити продуктивність кодера без зниження точності чи збільшення тремтіння, ми вибірково використовували неповторні згортки для зменшення розміру карти об’єктів. Це дало нам більше контролю над розмірами карти об’єктів, ніж згортки кроків. Щоб зберегти залишок, ми розрізаємо карту об’єктів, перш ніж додавати її до виводу незаповненої згортки. Крім того, ми встановили глибину карт функцій, кратну 8, для ефективного використання пам’яті з векторними наборами інструкцій, таких як AVX і Neon FP16, що призвело до 1.5-кратного підвищення продуктивності.

Наша остаточна модель має 1.1 мільйона параметрів, і для виконання потрібно 28.1 мільйона множення-накопичувачів. Для довідки, ваніль Mobilenet V2 (на якій базується наша архітектура) для виконання потрібно 300 мільйонів множення-накопичувачів. Ми використовуємо NCNN Структура для визначення моделі на пристрої та однопотоковий час виконання (включаючи виявлення обличчя) для кадру відео наведено в таблиці нижче. Зверніть увагу, що час виконання 16 мс підтримає обробку 60 кадрів в секунду (FPS). 

Анімація обличчя в реальному часі для аватарів PlatoBlockchain Data Intelligence. Вертикальний пошук. Ai.

Що далі

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

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

Повідомлення Анімація обличчя в режимі реального часу для аватарів вперше з'явився на Блог Roblox.

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

Більше від Roblox