Erstellen Sie Next-Gen-Features mit KI-Modellen mit Unity Sentis

BILL CULLEN Principal Product Manager, AI Products
Nov 29, 2023|9 Min.
Erstellen Sie Next-Gen-Features mit KI-Modellen mit Unity Sentis
Diese Website wurde aus praktischen Gründen für Sie maschinell übersetzt. Die Richtigkeit und Zuverlässigkeit des übersetzten Inhalts kann von uns nicht gewährleistet werden. Sollten Sie Zweifel an der Richtigkeit des übersetzten Inhalts haben, schauen Sie sich bitte die offizielle englische Version der Website an.

Wir haben Unity Sentis entwickelt, um Entwicklern die Möglichkeit zu geben, KI-Modelle in Spiele und Anwendungen einzubinden. Sentis, das sich jetzt in der offenen Beta-Phase befindet, ermöglicht komplexe Funktionen wie Objektidentifikation, Spracherkennung und intelligente NPCs in allen Arten von Projekten.

Einmal über den ONNX-Dateistandard importiert, können diese KI-Modelle direkt auf allen von Unity unterstützten Plattformen ausgeführt werden. Dies bedeutet, dass Sie die meisten KI-Modelle direkt in der Unity Runtime auf dem Gerät des Benutzers ausführen können, ohne dass eine Cloud-Infrastruktur erforderlich ist.

Erste Schritte mit Unity Sentis

Die Unity Sentis-Paketdokumentation ist hier verfügbar und kann über die Paketverwaltung heruntergeladen werden. Sobald das Paket in Ihrem Projekt installiert ist und Sie das KI-Modell haben, das Sie verwenden möchten, ist die Integration einfach.

Schritt 1: Finden Sie ein unterstütztes AI-Modell

Für welches Modell Sie sich bei Ihrem Projekt entscheiden, ist letztlich ganz Ihnen überlassen. Jedes Modell hängt von der Aufgabe ab, die Sie zu lösen versuchen. Sie könnten damit beginnen, sich einige interessante Modelle auf Marktplätzen wie Hugging Face, Keras oder PyTorch anzusehen. Sie können auch Ihr eigenes Modell trainieren, wenn Sie über Kenntnisse im Bereich des maschinellen Lernens verfügen, oder Unity ML-Agents für die Anforderungen des Reinforcement Learning verwenden. Die wichtigste Voraussetzung ist, dass das Modell in das ONNX-Dateiformat konvertiert werden muss. Bei Bedarf können Sie einen ONNX-Konverter wie TF2ONNX verwenden.

Ein Codebeispiel finden Sie unter Modell importieren in der Sentis-Dokumentation.

Schritt 2: Laden Sie Ihr Modell in Unity

Das Laden eines Modells in Unity erfordert den gleichen Prozess wie bei jedem anderen Asset. Ziehen Sie sie einfach per Drag & Drop in den Ordner "Assets" des Projektfensters im Editor. Sentis wird das importierte Modell automatisch optimieren. Erstellen Sie dann ein Runtime Model-Objekt.

Siehe Laden eines Modells in der Sentis-Dokumentation für ein Codebeispiel.

Schritt 3: Erstellen Sie eine Eingabe und eine Schlussfolgerung

Das Erstellen eines Inputs ist ziemlich einfach: Überprüfen Sie einfach die Form und Größe des gewünschten Modelleintrags in den ONNX-Modellimport-Einstellungen. Sie können dann einen Tensor aus Ihrer Datenquelle erstellen. Wenn mehrere Eingaben erforderlich sind, speichern Sie sie alle in einem Wörterbuch.

Siehe Eingabe für ein Modell erstellen in der Sentis-Dokumentation für ein Codebeispiel.

Schritt 4: Führen Sie Ihr Modell aus und optimieren Sie es

Wenn Sie bereit sind, Ihr Modell auszuführen, müssen Sie einen Worker erstellen, der das Modell in Aufgaben aufteilt, die auf dem Gerät des Benutzers (CPU oder GPU) ausgeführt werden können. Die Erstellung eines Workers kann mit diesem Codebeispiel erreicht werden.

Sobald Ihr Mitarbeiter eingerichtet ist, können Sie Ihr KI-Modell ausführen. Hier verbinden Sie die Eingänge und Ausgänge des Modells mit Ihrem Spielcode und verwenden dann den Profiler, um zu sehen, ob Sie das Budget einhalten. Wenn das zu viel Budget kostet, können Sie Ihr Modell auf mehrere Frames aufteilen oder andere Optionen zur Leistungsoptimierung in Sentis ausprobieren.

Unter Modell ausführen in der Sentis-Dokumentation finden Sie weitere Informationen darüber, wie Sie Ihr Modell ausführen, die Ergebnisse abrufen und die Ergebnisse optimieren können.

Schritt 5: Testen und Bereitstellen Ihres Modells

Der letzte Schritt besteht darin, Ihr Spiel zu testen und bereitzustellen. Tun Sie dies wie auf jeder anderen Unity Runtime-Plattform. Sie haben mehrere Möglichkeiten, Ihr Modell innerhalb der Spielbinärdatei zu versenden: Es kann in den Build eingebettet werden, oder Sie können es als Streaming-Asset ausführen, so dass es nur bei Bedarf heruntergeladen wird. Sie können auch in Erwägung ziehen, Ihr Modell aus Sicherheitsgründen zu verschlüsseln.

Siehe Verschlüsseln eines Modells in der Sentis-Dokumentation für ein Codebeispiel.

Projektbeispiele
Gebäudeziffernerkennung mit KI

Dieses Beispiel für Einsteiger zeigt, wie man die Grundlagen von Sentis mit neuronalen Netzen nutzt, indem ein Objekterkennungsmodell zum Aufschließen von Türen in einem verschlossenen Raum ausgeführt wird. Es wird ein KI-Modell zur Erkennung handgeschriebener Ziffern (Zahlen) namens MNIST eingesetzt, das geschriebene Zahlen lesen und die wahrscheinlichste gezogene Zahl identifizieren kann.

Aufbau eines KI-gesteuerten Brettspielgegners

In diesem Beispiel wird Sentis verwendet, um einen Bot-Gegner für ein Brettspiel namens Othello zu erstellen, bei dem der Schwierigkeitsgrad konfigurierbar ist. Es führt ein neuronales Netzwerk aus, das auf die Spielregeln trainiert wurde, und ermittelt nach jedem Zug die Wahrscheinlichkeit, das Spiel zu gewinnen, und sagt dann zukünftige Züge voraus, die am wahrscheinlichsten zu gewinnen sind. Dies ist eine einfachere Lösung als ein traditioneller Ansatz, der komplexe Heuristiken und Tree Traversal verwendet.

Schaffung eines AR-Erlebnisses mit KI-gestützter Tiefenabschätzung

Dieses Beispiel zeigt, wie Sentis in ein Augmented Reality (AR)-Erlebnis integriert werden kann. Es verwendet ein neuronales Netzwerk zur Tiefenschätzung, damit reale Objekte Objekte in der Spielszene verdecken können. Die Tiefe wird durch die Verarbeitung von Videobildern der Kamera bestimmt, so dass es sich um eine besser skalierbare Lösung handelt als der herkömmliche Ansatz mit einem Lidar-Sensor, der auf teure Handys beschränkt ist.

Dies funktioniert auf mobilen Geräten mit einer Kamera und erfordert keinen Lidar-Sensor.

Zusätzliche Anwendungsfälle

Mithilfe von KI-Modellen können Sie ansprechende Funktionen entwickeln, die mit herkömmlichem Code entweder nicht möglich oder sehr zeitaufwändig wären. Die Anwendungsfälle umfassen alle Kategorien von KI-Modellen, und die Anwendung hängt von den Modellen ab, die Sie implementieren möchten. Hier sind jedoch einige Beispiele für Fälle, in denen Sentis den Entwicklungsprozess unterstützen kann.

Hochskalierung von Bildern/Assets

Ein wichtiger Grund für Entwickler, sich für Unity zu entscheiden, ist die Möglichkeit, einfacher auf mehreren Plattformen zu veröffentlichen - aber die Optimierung kann trotzdem eine Herausforderung sein. Mit einem Upscaling-Modell wie Super Resolution von TensorFlow können Sie Bilder oder Texturen mit niedriger Auflösung in Ihrem Spiel hochskalieren, um Produktionsqualität zu erreichen, oder Assets nur bei Bedarf über verschiedene Geräte hinweg optimieren.

Spracherkennung

Die Interaktion der Spieler ist der Schlüssel zu vernetzten Online-Spielen, wenn es darum geht, sowohl mit NPCs als auch mit anderen Spielern in Kontakt zu treten. Mit einem Sprache-zu-Text-Modell wie Whisper von OpenAI können Sie Live-Sprache in Text im Spiel umwandeln. Sie können auch ein KI-Modell einbinden, um Dialoge zu automatisieren und sinnvolle Interaktionen zwischen Spielern und NSCs zu erstellen, ohne die Einschränkungen der manuellen Skripterstellung.

Optimierung der Grafiken

Zwar liegt der Schwerpunkt bei der KI auf der Entwicklung neuartiger Funktionen, aber es gibt auch großartige Anwendungen zur Verbesserung der Spielleistung. Ein Beispiel hierfür ist die Verwendung eines KI-Modells zur Verbesserung des Raytracing auf Mobilgeräten, indem ein hochskalierendes GAN-KI-Modell verwendet wird, um vorgerenderte Frames einer Spielszene zu halluzinieren. Mit einer Anwendung wie dieser können Sie Pfadverfolgungsfunktionen wie Lichtbrechung und kaustische Flächenlichter in kleineren Projekten implementieren, ohne dass die Leistung des Geräts des Benutzers darunter leidet.

AR- und VR-Objekterkennung

Augmented und Virtual Reality (VR) sind ebenfalls ein großer potenzieller Anwendungsfall für den Einsatz von KI-Modellen mit Sentis. Sie können das Ultralytics YOLO-Modell beispielsweise in VR verwenden, um Objekte in einer Spielszene zu erkennen, oder in AR, um reale Objekte aus dem Kamera-Feed des Geräts zu erkennen. Dies kann dem Benutzer einen Super-Sehsinn bieten, der nur mit KI möglich ist.

Unity Sentis ist ab sofort für alle Unity-Entwickler, die mit Unity 2021.3 oder höher arbeiten, über den Package Manager kostenlos als Open Beta verfügbar.