Logotipo de Zephyrnet

Dentro de la tecnología: resolución de expresiones faciales de avatares – Blog de Roblox

Fecha:

Inside the Tech es una serie de blogs que acompaña nuestra Podcast de charlas tecnológicas. En el episodio 20 del podcast, Avatares y autoexpresión, el director ejecutivo de Roblox, David Baszucki, habló con el director sénior de ingeniería, Kiran Bhat, el director sénior de producto, Mahesh Ramasubramanian, y la directora principal de producto, Effie Goenawan, sobre el futuro de la comunicación inmersiva a través de avatares y la desafíos técnicos que estamos resolviendo para permitirlo. En esta edición de Inside the Tech, hablamos con el Gerente de Ingeniería, Ian Sachs, para aprender más sobre uno de esos desafíos técnicos (permitir expresiones faciales para nuestros avatares) y cómo el trabajo del equipo de Creación de Avatar (bajo el grupo Motor) está ayudando a los usuarios a expresarse. en Roblox.

¿Cuáles son los mayores desafíos técnicos que está asumiendo su equipo?

Cuando pensamos en cómo un avatar representa a alguien en Roblox, normalmente consideramos dos cosas: cómo se comporta y cómo se ve. Por eso, uno de los principales objetivos de mi equipo es permitir que los avatares reflejen las expresiones de una persona. Por ejemplo, cuando alguien sonríe, su avatar sonríe en sincronía con él. 

Una de las cosas difíciles de rastrear las expresiones faciales es ajustar la eficiencia de nuestro modelo para que podamos capturar estas expresiones directamente en el dispositivo de la persona en tiempo real. Nos comprometemos a hacer que esta función sea accesible para la mayor cantidad posible de personas en Roblox y necesitamos admitir una amplia gama de dispositivos. La cantidad de potencia informática que el dispositivo de una persona puede manejar es un factor vital a este respecto. Queremos que todo el mundo pueda expresarse, no sólo las personas con dispositivos potentes. Por eso, estamos implementando uno de nuestros primeros modelos de aprendizaje profundo para que esto sea posible. 

El segundo desafío técnico clave que estamos abordando es simplificar el proceso que utilizan los creadores para desarrollar avatares dinámicos que las personas puedan personalizar. Crear avatares como ese es bastante complicado porque tienes que modelar la cabeza y si quieres que se anime, tienes que hacer cosas muy específicas para manipular el modelo, como colocar uniones y pesos para una combinación lineal de piel. Queremos facilitar este proceso a los creadores, por eso estamos desarrollando tecnología para simplificarlo. Sólo deberían centrarse en construir el modelo estático. Cuando lo hagan, automáticamente podremos manipularlo y enjaularlo. Luego, el seguimiento facial y la ropa en capas deberían funcionar desde el principio. 

¿Cuáles son algunos de los enfoques y soluciones innovadores que estamos utilizando para abordar estos desafíos técnicos?

Hemos hecho un par de cosas importantes para asegurarnos de obtener la información correcta para las expresiones faciales. Eso comienza con el uso de FACS (Sistema de control de animación facial) estándar de la industria. Éstas son la clave de todo porque son las que utilizamos para determinar las expresiones faciales de un avatar: qué tan ancha es la boca, qué ojos se abren y cuánto, etc. Podemos utilizar alrededor de 50 controles FACS diferentes para describir una expresión facial deseada. 

Cuando construyes un algoritmo de aprendizaje automático para estimar expresiones faciales a partir de imágenes o videos, entrenas un modelo mostrándole imágenes de ejemplo con expresiones reales conocidas (descritas con FACS). Al mostrarle al modelo muchas imágenes diferentes con diferentes expresiones, el modelo aprende a estimar la expresión facial de rostros nunca antes vistos.

Normalmente, cuando se trabaja en seguimiento facial, estas expresiones son etiquetadas por humanos y el método más sencillo es utilizar puntos de referencia; por ejemplo, colocar puntos en una imagen para marcar las ubicaciones de los píxeles de los rasgos faciales, como las esquinas de los ojos. 

Pero los pesos FACS son diferentes porque no se puede mirar una imagen y decir: "La boca está abierta 0.9 frente a 0.5". Para solucionar esto, utilizamos datos sintéticos para generar pesos FACS directamente que consisten en modelos 3D renderizados con poses FACS desde diferentes ángulos y condiciones de iluminación.

Desafortunadamente, debido a que el modelo necesita generalizarse a rostros reales, no podemos entrenar únicamente con datos sintéticos. Por lo tanto, entrenamos previamente el modelo en una tarea de predicción de hitos utilizando una combinación de datos reales y sintéticos, lo que permite que el modelo aprenda la tarea de predicción FACS utilizando datos puramente sintéticos.

Queremos que el seguimiento facial funcione para todos, pero algunos dispositivos son más potentes que otros. Esto significaba que necesitábamos construir un sistema capaz de adaptarse dinámicamente a la potencia de procesamiento de cualquier dispositivo. Logramos esto dividiendo nuestro modelo en una fase de predicción FACS aproximada rápida llamada BaseNet y una fase de refinamiento FACS más precisa llamada HiFiNet. Durante el tiempo de ejecución, el sistema mide su desempeño y, en condiciones óptimas, ejecutamos ambas fases del modelo. Pero si se detecta una desaceleración (por ejemplo, debido a un dispositivo de gama baja), el sistema ejecuta solo la primera fase.

¿Cuáles son algunas de las cosas clave que ha aprendido al realizar este trabajo técnico?

Una es que hacer que una función funcione es una parte tan pequeña de lo que realmente se necesita para lanzar algo con éxito. Gran parte del trabajo se encuentra en el proceso de ingeniería y pruebas unitarias. Necesitamos asegurarnos de tener buenas formas de determinar si tenemos una buena fuente de datos. Y debemos preguntarnos: "Oye, ¿este nuevo modelo es realmente mejor que el anterior?"

Incluso antes de comenzar la ingeniería central, todos los canales que implementamos para rastrear experimentos, garantizar que nuestro conjunto de datos represente la diversidad de nuestros usuarios, evaluar resultados e implementar y obtener comentarios sobre esos nuevos resultados se utilizan para hacer que el modelo sea suficiente. Pero esa es una parte del proceso de la que no se habla mucho, a pesar de que es tan crítica. 

¿Con qué valor de Roblox se alinea más tu equipo?

Comprender la fase de un proyecto es clave, por lo que durante la innovación, tener una visión a largo plazo es muy importante, especialmente en la investigación, cuando se intenta resolver problemas importantes. Pero respetar a la comunidad también es crucial cuando se identifican los problemas en los que vale la pena innovar porque queremos trabajar en los problemas que tienen mayor valor para nuestra comunidad en general. Por ejemplo, elegimos específicamente trabajar en "seguimiento de rostros para todos" en lugar de simplemente "seguimiento de rostros". A medida que se alcanza el 90 por ciento de construcción de algo, la transición de un prototipo a una característica funcional depende de la ejecución y la adaptación a la etapa del proyecto.

¿Qué es lo que más te emociona acerca de hacia dónde se dirigen Roblox y tu equipo?

Siempre me ha gustado trabajar en herramientas que ayuden a las personas a ser creativas. Crear algo es especial porque terminas con algo que es exclusivamente tuyo. He trabajado en efectos visuales y en varias herramientas de edición de fotografías, utilizando conocimientos matemáticos, científicos, de investigación e ingeniería para capacitar a las personas para que hagan cosas realmente interesantes. Ahora, en Roblox, puedo llevar eso a un nivel completamente nuevo. Roblox es una plataforma de creatividad, no solo una herramienta. Y la escala a la que podemos crear herramientas que permitan la creatividad es mucho mayor que cualquier cosa en la que haya trabajado antes, lo cual es increíblemente emocionante.

punto_img

Información más reciente

punto_img