Créez des fonctionnalités de nouvelle génération avec des modèles d'IA à l'aide d'Unity Sentis.

BILL CULLEN Principal Product Manager, AI Products
Nov 29, 2023|9 Min
Créez des fonctionnalités de nouvelle génération avec des modèles d'IA à l'aide d'Unity Sentis.
Cette page a été traduite automatiquement pour faciliter votre expérience. Nous ne pouvons pas garantir l'exactitude ou la fiabilité du contenu traduit. Si vous avez des doutes quant à la qualité de cette traduction, reportez-vous à la version anglaise de la page web.

Nous avons créé Unity Sentis pour donner aux développeurs la possibilité d'intégrer des modèles d'IA dans les jeux et les applications. Actuellement en préversion bêta ouverte, Sentis permet des fonctionnalités complexes telles que l'identification d'objets, la reconnaissance vocale et les PNJ intelligents dans tous les types de projets.

Une fois importés via le standard de fichier ONNX, ces modèles d'IA peuvent être exécutés directement sur toutes les plateformes prises en charge par Unity. Cela signifie que vous pouvez exécuter la majorité des modèles d'IA directement dans le Runtime Unity sur l'appareil d'un utilisateur, sans avoir besoin d'une infrastructure cloud.

Démarrer avec Unity Sentis

La documentation du paquet Unity Sentis est disponible ici et peut être téléchargée via Package Manager. Une fois le package installé dans votre projet et le modèle d'IA que vous souhaitez utiliser, l'intégration est simple.

Étape 1 : Trouver un modèle d'IA pris en charge

En fin de compte, le modèle que vous choisissez d'utiliser dans votre projet vous appartient entièrement. Chaque modèle dépend de la tâche que vous essayez de résoudre. Vous pouvez commencer par consulter quelques modèles intéressants sur des places de marché telles que Hugging Face, Keras ou PyTorch. Vous pouvez également former votre propre modèle si vous avez des connaissances en apprentissage automatique, ou utiliser les ML-Agents d'Unity pour vos besoins en apprentissage par renforcement. La principale exigence est que le modèle soit converti au format de fichier ONNX. Vous pouvez utiliser un convertisseur ONNX comme TF2ONNX, si nécessaire.

Voir Importer un modèle dans la documentation de Sentis pour un exemple de code.

Étape 2 : Chargez votre modèle dans Unity

Le chargement d'un modèle dans Unity nécessite le même processus que celui que vous suivriez pour n'importe quelle ressource. Il suffit de le faire glisser et de le déposer dans le dossier Assets de la fenêtre de projet de l'éditeur. Sentis optimisera automatiquement le modèle importé. Créez ensuite un objet modèle d'exécution.

Voir Charger un modèle dans la documentation de Sentis pour un exemple de code.

Étape 3 : Créer une entrée et une inférence

La création d'une entrée est assez simple, il suffit de vérifier la forme et la taille de l'entrée du modèle requise dans les paramètres d'importation du modèle ONNX. Vous pouvez alors créer un tenseur à partir de votre source de données. Si plusieurs entrées sont nécessaires, stockez-les toutes dans un dictionnaire.

Voir Créer une entrée pour un modèle dans la documentation de Sentis pour un exemple de code.

Étape 4 : Exécutez et optimisez votre modèle

Lorsque vous êtes prêt à exécuter votre modèle, vous devez créer un travailleur qui décompose le modèle en tâches pouvant être exécutées sur l'appareil de l'utilisateur (CPU ou GPU). La création d'un travailleur peut être réalisée à l'aide de cet exemple de code.

Une fois votre travailleur configuré, il est temps d'exécuter votre modèle d'IA. Ici, vous connectez les entrées et les sorties du modèle au code de votre jeu, puis vous utilisez le profileur pour voir si vous êtes dans les limites du budget. Si le budget est trop important, vous pouvez "découper" votre modèle en plusieurs cadres ou explorer d'autres options d'optimisation des performances dans Sentis.

Voir Exécuter un modèle dans la documentation de Sentis pour plus d'informations sur la façon d'exécuter votre modèle, d'obtenir des résultats et d'optimiser les résultats.

Étape 5 : Tester et déployer votre modèle

La dernière étape consiste à tester et à déployer votre jeu. Procédez comme vous le feriez normalement sur n'importe quelle plateforme Unity Runtime. Vous disposez de plusieurs options pour expédier votre modèle à l'intérieur du jeu binaire : Il peut être intégré dans la compilation, ou vous pouvez l'exécuter en tant que ressource en continu afin qu'il ne soit téléchargé qu'en cas de besoin. Vous pouvez également envisager de crypter votre modèle pour des raisons de sécurité.

Voir Encrypt a model dans la documentation de Sentis pour un exemple de code.

Échantillons de projets
Détection des chiffres grâce à l'IA

Cet exemple pour débutants montre comment utiliser les bases de Sentis avec des réseaux neuronaux en exécutant un modèle de détection d'objets pour déverrouiller les portes d'une pièce fermée à clé. Il utilise un modèle d'IA de détection de chiffres manuscrits appelé MNIST, capable de lire des chiffres écrits et d'identifier le chiffre le plus probable.

Construire un adversaire de jeu de société alimenté par l'IA

Cet exemple utilise Sentis pour construire un robot adversaire pour un jeu de société appelé Othello, où le jeu a une difficulté configurable. Il utilise un réseau neuronal formé sur les règles du jeu et détermine les probabilités de victoire après chaque coup, puis prédit les futurs coups qui ont le plus de chances d'être gagnants. Il s'agit d'une solution plus simple qu'une approche traditionnelle utilisant des heuristiques complexes et la traversée d'arbres.

Créer une expérience de réalité augmentée grâce à l'estimation de la profondeur par l'IA

Cet exemple montre comment intégrer Sentis dans une expérience de réalité augmentée (AR). Il utilise un réseau neuronal d'estimation de la profondeur pour permettre aux objets du monde réel d'occulter les objets de la scène du jeu. La profondeur est déterminée par le traitement des images vidéo de la caméra. Il s'agit donc d'une solution plus évolutive que l'approche traditionnelle qui consiste à utiliser un capteur lidar, limité aux téléphones coûteux.

Ce système fonctionne sur les appareils mobiles dotés d'une caméra et ne nécessite pas de capteur lidar.

Autres cas d'utilisation

Les modèles d'IA peuvent vous aider à créer des fonctionnalités attrayantes qu'il serait impossible ou très long de développer avec du code traditionnel. Les cas d'utilisation couvrent toutes les catégories de modèles d'IA, et l'application dépend des modèles que vous choisissez de mettre en œuvre. Voici toutefois quelques exemples de cas où Sentis peut contribuer au processus de développement.

Conversion ascendante de l'image ou de l'objet

L'une des principales raisons pour lesquelles les développeurs choisissent Unity est la possibilité de publier plus facilement sur plusieurs plateformes - mais l'optimisation peut toujours être un défi. L'utilisation d'un modèle de mise à l'échelle comme Super Resolution de TensorFlow vous permet de mettre à l'échelle des images ou des textures en basse résolution dans votre jeu pour atteindre la qualité de production, ou d'optimiser les actifs uniquement lorsque cela est nécessaire, sur différents appareils.

Reconnaissance vocale

L'interaction entre les joueurs est essentielle pour les jeux en ligne connectés lorsqu'il s'agit de s'engager avec les PNJ et les autres joueurs. Avec un modèle de conversion de la parole en texte comme Whisper d'OpenAI, vous pouvez convertir la parole en direct en texte dans le jeu. Vous pouvez également intégrer un modèle d'IA pour automatiser les dialogues et créer des interactions significatives entre les joueurs et les PNJ sans les limites d'un script manuel.

Optimisation graphique

Si l'IA se concentre principalement sur la création de nouvelles fonctionnalités, nous constatons également d'excellentes applications lorsqu'il s'agit d'améliorer les performances des jeux. Un exemple est l'utilisation d'un modèle d'IA pour améliorer le ray tracing sur mobile en utilisant un modèle d'IA GAN à échelle supérieure pour halluciner des images pré-rendues d'une scène de jeu. Avec une telle application, vous pouvez mettre en œuvre des fonctionnalités de traçage de chemin telles que la réfraction de la lumière et les lumières de zone caustiques dans des projets plus petits, sans que les performances de l'appareil de l'utilisateur n'en pâtissent.

Reconnaissance d'objets en AR et VR

La réalité augmentée et la réalité virtuelle (VR) constituent également un excellent cas d'utilisation potentiel pour l'utilisation de modèles d'IA avec Sentis. Par exemple, vous pouvez utiliser le modèle YOLO d' Ultralytics en VR pour détecter des objets dans une scène de jeu, ou en AR pour détecter des objets du monde réel à partir du flux de la caméra de l'appareil. Cela peut offrir à l'utilisateur un sens de la super-vision qui n'est possible qu'avec l'IA.

Unity Sentis est désormais disponible gratuitement en bêta ouverte pour tous les développeurs Unity fonctionnant sur Unity 2021.3 ou supérieur via le gestionnaire de paquets.