Cree funciones de próxima generación con modelos de IA mediante Unity Sentis

Creamos Unity Sentis para ofrecer a los desarrolladores la posibilidad de introducir modelos de IA en juegos y aplicaciones. Ya en fase de pre-lanzamiento beta abierta, Sentis permite funciones complejas como la identificación de objetos, el reconocimiento de voz y los NPC inteligentes en todo tipo de proyectos.
Una vez importados mediante el estándar de archivo ONNX, estos modelos de IA pueden ejecutarse directamente en todas las plataformas compatibles con Unity. Esto significa que puedes ejecutar la mayoría de los modelos de IA directamente en el tiempo de ejecución de Unity en el dispositivo de un usuario, sin necesidad de una infraestructura en la nube.
La documentación del paquete Unity Sentis está disponible aquí y puede descargarse a través de Package Manager. Una vez que el paquete está instalado en su proyecto y tiene el modelo de IA que desea utilizar, la integración es sencilla.
En última instancia, el modelo que decida utilizar en su proyecto depende totalmente de usted. Cada modelo depende de la tarea que se intente resolver. Puedes empezar echando un vistazo a algunos modelos interesantes en mercados como Hugging Face, Keras o PyTorch. También puede entrenar su propio modelo si tiene conocimientos de aprendizaje automático, o utilizar Unity ML-Agents para necesidades de aprendizaje por refuerzo. El principal requisito es que el modelo se convierta al formato de archivo ONNX. Si es necesario, puedes utilizar un conversor ONNX como TF2ONNX.
Consulte Importar un modelo en la documentación de Sentis para ver un ejemplo de código.
Cargar un modelo en Unity requiere el mismo proceso que usted seguiría con cualquier activo. Simplemente arrástrelo y suéltelo en la carpeta Activos de la ventana Proyecto dentro del Editor. Sentis optimizará automáticamente el modelo importado. A continuación, cree un objeto Modelo en tiempo de ejecución.
Consulte Cargar un modelo en la documentación de Sentis para ver un ejemplo de código.
La creación de una entrada es bastante sencilla, basta con comprobar la forma y el tamaño de la entrada de modelo requerida en la Configuración de importación de modelos de ONNX. A continuación, puede crear un tensor a partir de su fuente de datos. Si se necesitan varias entradas, almacénelas todas en un diccionario.
Consulte Crear entrada para un modelo en la documentación de Sentis para ver un ejemplo de código.
Cuando esté listo para ejecutar su modelo, deberá crear un trabajador que divida el modelo en tareas que puedan ejecutarse en el dispositivo del usuario (CPU o GPU). La creación de un trabajador se puede lograr con este ejemplo de código.
Una vez configurado el trabajador, es hora de ejecutar el modelo de IA. Aquí, estás conectando las entradas y salidas del modelo al código de tu juego, y luego usando el perfilador para ver si estás dentro del presupuesto. Si le supone demasiado presupuesto, puede "trocear" su modelo en varios cuadros o explorar otras opciones de ajuste del rendimiento en Sentis.
Consulte Ejecutar un modelo en la documentación de Sentis para obtener más información sobre cómo ejecutar su modelo, obtener salidas y optimizar la salida.
El último paso es probar y desplegar el juego. Haga esto como lo haría normalmente en cualquier plataforma Unity Runtime. Tienes varias opciones para enviar tu modelo dentro del binario del juego: Puede incrustarse en la compilación o ejecutarse como un activo de streaming para que sólo se descargue cuando sea necesario. También puedes plantearte encriptar tu modelo por motivos de seguridad.
Consulte Cifrar un modelo en la documentación de Sentis para ver un ejemplo de código.
Este ejemplo para principiantes muestra cómo utilizar los fundamentos de Sentis con redes neuronales ejecutando un modelo de detección de objetos para desbloquear puertas en una habitación cerrada. Ejecuta un modelo de IA de detección de dígitos (números) escritos a mano llamado MNIST que puede leer números escritos e identificar el número dibujado más probable.
Este ejemplo utiliza Sentis para construir un oponente bot para un juego de mesa llamado Otelo, donde el juego tiene dificultad configurable. Ejecuta una red neuronal entrenada en las reglas del juego y determina las probabilidades de ganar la partida después de cada movimiento, para después predecir los movimientos futuros que tienen más probabilidades de ganar. Es una solución más sencilla que un enfoque tradicional que utilice heurísticas complejas y el recorrido de árboles.
Este ejemplo muestra cómo integrar Sentis en una experiencia de realidad aumentada (RA). Utiliza una red neuronal de estimación de la profundidad para permitir que los objetos del mundo real ocluyan los objetos de la escena del juego. La profundidad se determina procesando fotogramas de vídeo de la cámara, por lo que es una solución más escalable que el enfoque tradicional de utilizar un sensor lidar, limitado a teléfonos caros.
Funciona en dispositivos móviles con cámara y no requiere un sensor lidar.
Los modelos de IA pueden ayudarle a crear funciones atractivas que podrían ser imposibles de desarrollar con código tradicional o requerir mucho tiempo. Los casos de uso abarcan todas las categorías de modelos de IA, y la aplicación depende de los modelos que decida implantar. No obstante, a continuación se ofrecen algunos ejemplos de casos en los que Sentis puede ayudar en el proceso de desarrollo.
Una de las grandes razones por las que los desarrolladores eligen Unity es la posibilidad de publicar más fácilmente en varias plataformas, pero la optimización puede seguir siendo un reto. El uso de un modelo de escalado como Super Resolution de TensorFlow le permite escalar imágenes o texturas de baja resolución en su juego para obtener calidad de producción, o ayudar a optimizar los activos sólo cuando sea necesario, a través de diferentes dispositivos.
La interacción del jugador es clave para los juegos en línea conectados cuando se trata de relacionarse tanto con los PNJ como con otros jugadores. Con un modelo de conversión de voz a texto como Whisper de OpenAI, puedes convertir la voz en directo en texto dentro del juego. También puedes incorporar un modelo de IA para automatizar el diálogo y crear interacciones significativas entre jugadores y PNJ sin las limitaciones de los scripts manuales.
Aunque la IA se centra sobre todo en la creación de funciones novedosas, también estamos viendo grandes aplicaciones cuando se trata de mejorar el rendimiento de los juegos. Un ejemplo de ello es el uso de un modelo de IA para mejorar el trazado de rayos en móviles mediante el uso de un modelo de IA GAN de escalado ascendente para alucinar fotogramas prerrenderizados de una escena de juego. Con una aplicación como ésta, se podrían implementar funciones de trazado de trayectorias como la refracción de la luz y las luces de área cáusticas en proyectos más pequeños sin que ello afectara al rendimiento del dispositivo del usuario.
La realidad aumentada y la realidad virtual (VR) son también un gran potencial para el uso de modelos de IA con Sentis. Por ejemplo, puede utilizar el modelo YOLO de Ultralytics en VR para detectar objetos en una escena de juego, o en AR para detectar objetos del mundo real a partir de la imagen de la cámara del dispositivo. Esto puede ofrecer al usuario un sentido de supervisión que sólo es posible con la IA.
Unity Sentis ya está disponible de forma gratuita en beta abierta para todos los desarrolladores de Unity que operen con Unity 2021.3 o superior a través del Package Manager.
