Logo Zéphyrnet

À l’intérieur de la technologie – Résolution des expressions faciales d’un avatar – Roblox Blog

Date :

Inside the Tech est une série de blogs qui accompagne notre Podcast des discussions techniques. Dans l'épisode 20 du podcast, Avatars & Self-Expression, le PDG de Roblox, David Baszucki, s'est entretenu avec le directeur principal de l'ingénierie Kiran Bhat, le directeur principal du produit Mahesh Ramasubramanian et la chef de produit principale Effie Goenawan, sur l'avenir de la communication immersive via les avatars et le défis techniques que nous résolvons pour le rendre possible. Dans cette édition d'Inside the Tech, nous avons discuté avec le responsable de l'ingénierie Ian Sachs pour en savoir plus sur l'un de ces défis techniques : permettre les expressions faciales de nos avatars et sur la manière dont le travail de l'équipe Création d'avatar (sous le groupe Moteur) aide les utilisateurs à s'exprimer. sur Roblox.

Quels sont les plus grands défis techniques que votre équipe doit relever ?

Lorsque nous réfléchissons à la façon dont un avatar représente quelqu'un sur Roblox, nous considérons généralement deux choses : comment il se comporte et à quoi il ressemble. L’un des objectifs majeurs de mon équipe est donc de permettre aux avatars de refléter les expressions d’une personne. Par exemple, lorsque quelqu’un sourit, son avatar sourit en synchronisation avec lui. 

L’une des difficultés liées au suivi des expressions faciales consiste à régler l’efficacité de notre modèle afin que nous puissions capturer ces expressions directement sur l’appareil de la personne en temps réel. Nous nous engageons à rendre cette fonctionnalité accessible au plus grand nombre possible de personnes sur Roblox, et nous devons prendre en charge une vaste gamme d'appareils. La quantité de puissance de calcul qu’un appareil peut gérer est un facteur essentiel à cet égard. Nous voulons que tout le monde puisse s’exprimer, pas seulement les personnes disposant d’appareils puissants. Nous déployons donc l’un de nos tout premiers modèles d’apprentissage profond pour rendre cela possible. 

Le deuxième défi technique clé que nous relevons est de simplifier le processus utilisé par les créateurs pour développer des avatars dynamiques que les gens peuvent personnaliser. Créer des avatars comme celui-ci est assez compliqué car vous devez modéliser la tête et si vous voulez qu'elle s'anime, vous devez faire des choses très spécifiques pour truquer le modèle, comme placer des articulations et des poids pour un skinning de mélange linéaire. Nous souhaitons faciliter ce processus pour les créateurs, c'est pourquoi nous développons une technologie pour le simplifier. Ils devraient uniquement se concentrer sur la construction du modèle statique. Quand ils le font, nous pouvons automatiquement le gréer et le mettre en cage. Ensuite, le suivi du visage et les vêtements superposés devraient fonctionner dès le départ. 

Quelles sont certaines des approches et solutions innovantes que nous utilisons pour relever ces défis techniques ?

Nous avons pris quelques mesures importantes pour garantir que nous obtenons les bonnes informations sur les expressions faciales. Cela commence par l’utilisation du FACS (Facial Animation Control System) standard de l’industrie. C’est la clé de tout, car c’est ce que nous utilisons pour déterminer les expressions faciales d’un avatar : la largeur de la bouche, les yeux ouverts et combien, et ainsi de suite. Nous pouvons utiliser environ 50 contrôles FACS différents pour décrire une expression faciale souhaitée. 

Lorsque vous créez un algorithme d'apprentissage automatique pour estimer les expressions faciales à partir d'images ou de vidéos, vous entraînez un modèle en lui montrant des exemples d'images avec des expressions de vérité terrain connues (décrites avec FACS). En montrant au modèle de nombreuses images différentes avec des expressions différentes, le modèle apprend à estimer l'expression faciale de visages inédits.

Normalement, lorsque vous travaillez sur le suivi du visage, ces expressions sont étiquetées par des humains, et la méthode la plus simple consiste à utiliser des points de repère, par exemple en plaçant des points sur une image pour marquer les emplacements en pixels des traits du visage comme les coins des yeux. 

Mais les poids FACS sont différents car vous ne pouvez pas regarder une image et dire : « La bouche est ouverte 0.9 contre 0.5 ». Pour résoudre ce problème, nous utilisons des données synthétiques pour générer directement des poids FACS constitués de modèles 3D rendus avec des poses FACS sous différents angles et conditions d'éclairage.

Malheureusement, comme le modèle doit être généralisé aux visages réels, nous ne pouvons pas nous entraîner uniquement sur des données synthétiques. Nous pré-entraînons donc le modèle sur une tâche de prédiction de repère en utilisant une combinaison de données réelles et synthétiques, permettant au modèle d'apprendre la tâche de prédiction FACS en utilisant des données purement synthétiques.

Nous voulons que le suivi du visage fonctionne pour tout le monde, mais certains appareils sont plus puissants que d’autres. Cela signifie que nous devions construire un système capable de s'adapter dynamiquement à la puissance de traitement de n'importe quel appareil. Nous avons accompli cela en divisant notre modèle en une phase de prédiction FACS approximative rapide appelée BaseNet et une phase de raffinement FACS plus précise appelée HiFiNet. Pendant l'exécution, le système mesure ses performances et, dans des conditions optimales, nous exécutons les deux phases du modèle. Mais si un ralentissement est détecté (par exemple à cause d'un appareil bas de gamme), le système n'exécute que la première phase.

Quelles sont les principales choses que vous avez apprises en effectuant ce travail technique ?

La première est que faire fonctionner une fonctionnalité ne représente qu’une infime partie de ce qu’il faut réellement pour publier quelque chose avec succès. Une grande partie du travail concerne le processus d'ingénierie et de tests unitaires. Nous devons nous assurer que nous disposons de bons moyens de déterminer si nous disposons d’un bon pipeline de données. Et nous devons nous demander : « Hé, ce nouveau modèle est-il réellement meilleur que l’ancien ?

Avant même de commencer l'ingénierie de base, tous les pipelines que nous mettons en place pour suivre les expériences, garantir que notre ensemble de données représente la diversité de nos utilisateurs, évaluer les résultats, déployer et obtenir des commentaires sur ces nouveaux résultats contribuent à rendre le modèle suffisant. Mais c’est une partie du processus dont on parle moins, même si elle est très critique. 

À quelle valeur Roblox votre équipe s’aligne-t-elle le plus ?

Comprendre la phase d'un projet est essentiel, donc lors de l'innovation, avoir une vision à long terme est très important, en particulier dans la recherche lorsque vous essayez de résoudre des problèmes importants. Mais le respect de la communauté est également crucial lorsque vous identifiez les problèmes sur lesquels il vaut la peine d’innover, car nous voulons travailler sur les problèmes qui ont le plus de valeur pour notre communauté au sens large. Par exemple, nous avons spécifiquement choisi de travailler sur le « suivi du visage pour tous » plutôt que simplement sur le « suivi du visage ». Lorsque vous atteignez la barre des 90 % de construction de quelque chose, la transition d'un prototype vers une fonctionnalité fonctionnelle dépend de l'exécution et de l'adaptation à l'étape du projet.

Qu’est-ce qui vous passionne le plus dans la direction que prennent Roblox et votre équipe ?

J’ai toujours eu envie de travailler sur des outils qui aident les gens à être créatifs. Créer quelque chose est spécial parce que vous obtenez quelque chose qui vous appartient uniquement. J'ai travaillé sur les effets visuels et sur divers outils de retouche photo, en utilisant des connaissances mathématiques, scientifiques, de recherche et d'ingénierie pour permettre aux gens de faire des choses vraiment intéressantes. Maintenant, chez Roblox, je peux amener cela à un tout autre niveau. Roblox est une plateforme de créativité, pas seulement un outil. Et l’échelle à laquelle nous parvenons à créer des outils qui permettent la créativité est bien plus grande que tout ce sur quoi j’ai travaillé auparavant, ce qui est incroyablement excitant.

spot_img

Dernières informations

spot_img