Schnellstart: Erstellen einer HoloLens-App mit Azure Object Anchors in C++/WinRT und DirectX

In dieser Schnellstartanleitung wird beschrieben, wie Sie mit Azure Object Anchors eine HoloLens-App in C++/WinRT und DirectX erstellen. Object Anchors ist ein verwalteter Clouddienst, der 3D-Ressourcen in KI-Modelle konvertiert, die objektbezogene Mixed Reality-Erlebnisse für HoloLens ermöglichen. Wenn Sie fertig sind, verfügen Sie über eine HoloLens-App, die ein Objekt und seine Position in einer Holographic DirectX 11-Anwendung (Universal Windows) erkennen kann.

Sie lernen Folgendes:

  • Erstellen und Querladen einer HoloLens-Anwendung
  • Erkennen eines Objekts und Visualisieren seines Modells

Wenn Sie kein Azure-Abonnement haben, erstellen Sie ein kostenloses Azure-Konto, bevor Sie beginnen.

Voraussetzungen

Stellen Sie für diese Schnellstartanleitung sicher, dass Sie über Folgendes verfügen:

  • Ein physisches Objekt in Ihrer Umgebung und das zugehörige 3D-Modell, entweder CAD oder gescannt.
  • Einen Windows-Computer, auf dem folgende Komponenten installiert sind:
  • Ein HoloLens 2-Gerät, das aktuell und für das der Entwicklermodus aktiviert ist.
    • Öffnen Sie zum Aktualisieren auf das neueste HoloLens-Release die App Einstellungen, navigieren Sie zu Update und Sicherheit, und wählen Sie dann Nach Updates suchen aus.

Erstellen eines Object Anchors-Kontos

Zunächst müssen Sie ein Konto mit dem Object Anchors-Dienst erstellen.

  1. Wechseln Sie zum Azure-Portal, und wählen Sie Ressource erstellen aus.

    Create a new resource

  2. Suchen Sie nach der Object Anchors-Ressource.

    Suchen Sie nach „Object Anchors“.

    Select the Object Anchors Resource

    Wählen Sie in der Object Anchors-Ressource in den Suchergebnissen Erstellen > Object Anchors aus.

    Create an Object Anchors Resource

  3. Führen Sie folgende Aktionen im Dialogfeld Object Anchors-Konto aus:

    • Geben Sie einen eindeutigen Ressourcennamen ein.
    • Wählen Sie das Abonnement aus, an das die Ressource angefügt werden soll.
    • Erstellen Sie eine Ressourcengruppe, oder verwenden Sie eine vorhandene.
    • Wählen Sie die Region aus, in der Sie die Ressource platzieren möchten.

    Enter Object Anchors resource account details

    Wählen Sie Erstellen aus, um mit der Ressourcenerstellung zu beginnen.

  4. Nachdem die Ressource erstellt wurde, wählen Sie zu Ressourcen wechseln aus.

    Go to resource

  5. Wechseln Sie zur Übersichtsseite:

    Notieren Sie sich die Kontodomäne. Sie benötigen die Information später.

    Copy the account domain for your Object Anchors resource

    Notieren Sie sich die Konto-ID. Sie benötigen die Information später.

    Copy the account ID for your Object Anchors resource

    Wechseln Sie zur Seite Zugriffsschlüssel, und notieren Sie sich den Primärschlüssel. Sie benötigen die Information später.

    Copy the account key for your Object Anchors resource

Hochladen des Modells

Bevor Sie die App ausführen, müssen Sie Ihre Modelle für die App verfügbar machen. Wenn Sie noch nicht über ein Object Anchors-Modell verfügen, befolgen Sie die Anweisungen unter Erstellen eines Modells, um eines zu erstellen. Kehren Sie dann hierher zurück.

Wenn Ihr HoloLens-Gerät eingeschaltet und mit dem Entwicklungsgerät (PC) verbunden ist, führen Sie die folgenden Schritte aus, um ein Modell in den Ordner 3D-Objekte auf Ihrem HoloLens-Gerät hochzuladen:

  1. Wählen Sie die Modelle aus, die Sie verwenden möchten, und kopieren Sie sie, indem Sie STRG+C drücken.

  2. Drücken Sie WINDOWS+E, um den Datei-Explorer zu starten. Ihr HoloLens-Gerät sollte mit anderen Laufwerken und Ordnern im linken Bereich aufgeführt werden.

    file explorer

  3. Tippen Sie auf den HoloLens-Link, um den Speicher auf dem HoloLens-Gerät im rechten Bereich anzuzeigen.

    open HoloLens internal storage

  4. Navigieren Sie im Datei-Explorer zu Interner Speicher > 3D-Objekte. Jetzt können Sie Ihre Modelle in den Ordner 3D-Objekte einfügen, indem Sie STRG+V drücken.

    paste models in 3D Objects folder

Öffnen des Beispielprojekts

Klonen Sie das Beispielrepository, indem Sie die folgenden Befehle ausführen:

git clone https://github.com/Azure/azure-object-anchors.git

cd ./azure-object-anchors

Öffnen Sie quickstarts/apps/directx/DirectXAoaSampleApp.sln in Visual Studio.

Ändern Sie Projektmappenkonfiguration in Release und Solution Platform (Projektmappenplattform) in ARM64, und wählen Sie in den Optionen für das Bereitstellungsziel die Option Gerät aus.

Konfigurieren der Kontoinformationen

Im nächsten Schritt wird die App zur Verwendung der Kontoinformationen konfiguriert. Sie haben die Werte von Account Key (Kontoschlüssel), Account ID (Konto-ID) und Account Domain (Kontodomäne) im Abschnitt "Erstellen eines Object Anchors-Kontos" beachtet.

Öffnen Sie Assets\ObjectAnchorsConfig.json.

Suchen Sie nach dem Feld AccountId, und ersetzen Sie Set me durch Ihre Konto-ID.

Suchen Sie nach dem Feld AccountKey, und ersetzen Sie Set me durch Ihren Kontoschlüssel.

Suchen Sie nach dem Feld AccountDomain, und ersetzen Sie Set me durch Ihre Kontodomäne.

Erstellen Sie nun das Projekt AoaSampleApp, indem Sie mit der rechten Maustaste auf das Projekt klicken und dann Erstellen auswählen.

Screenshot shows configuring Visual Studio project to deploy.

Bereitstellen der App für HoloLens

Nachdem Sie das Beispielprojekt erfolgreich kompiliert haben, können Sie die App für HoloLens bereitstellen.

Stellen Sie sicher, dass das HoloLens-Gerät eingeschaltet und über ein USB-Kabel mit dem PC verbunden ist. Stellen Sie sicher, dass Gerät wie oben das ausgewählte Bereitstellungsziel ist.

Klicken Sie mit der rechten Maustaste auf das Projekt AoaSampleApp, und wählen Sie dann im Kontextmenü Bereitstellen aus, um die App zu installieren. Wenn im Ausgabefenster von Visual Studio kein Fehler angezeigt wird, wird die App auf dem HoloLens-Gerät installiert.

Screenshot shows the context menu for the project with Deploy selected.

Vor dem Starten der App sollten Sie ein Objektmodell, z. B. chair.ou, in den Ordner 3D-Objekte (3D Objects) in Ihrer HoloLens hochgeladen haben. Wenn dies nicht der Fall ist, befolgen Sie die Anweisungen im Abschnitt Hochladen Ihres Modells.

Um die App zu starten und zu debuggen, wählen Sie Debuggen>Debuggen starten aus.

Erfassen des Objektmodells und Erkennen seiner Instanz

Die AoaSampleApp-App läuft jetzt auf Ihrem HoloLens-Gerät. Treten Sie nahe (innerhalb von 2 Metern Entfernung) an das Zielobjekt (Stuhl) heran, und scannen Sie es, indem Sie es aus mehreren Perspektiven betrachten. Sie sollten einen rosafarbenen Begrenzungsrahmen um das Objekt mit einigen gelben Punkten in der Nähe der Oberfläche des Objekts sehen, wodurch angezeigt wird, dass es erkannt wurde. Sie sollten auch ein gelbes Feld sehen, das den Suchbereich anzeigt.

Photograph shows a chair with the bounding box, point cloud, and search area.

Sie können in der App einen Suchraum für das Objekt definieren, indem Sie mit der rechten oder linken Hand in der Luft mit dem Finger klicken. Der Suchraum wechselt zwischen einer Kugel mit einem Radius von 2 Metern, einem 4 m^3 großen Begrenzungsrahmen und einer Frustum-Ansicht. Bei größeren Objekten (z. B. Autos) ist es in der Regel am besten, die Auswahl des Sichtkegels (Frustum) zu verwenden, während Sie in einer Ecke des Objekts in etwa zwei Meter Entfernung stehen. Jedes Mal, wenn sich der Suchbereich ändert, entfernt die App die Instanzen, die gerade nachverfolgt werden. Anschließend versucht sie, diese im neuen Suchbereich erneut zu finden.

Diese App kann mehrere Objekte gleichzeitig nachverfolgen. Laden Sie zu diesem Zweck mehrere Modelle in den Ordner 3D-Objekte (3D Objects) Ihres Geräts hoch, und legen Sie einen Suchbereich fest, der alle Zielobjekte abdeckt. Es kann länger dauern, bis mehrere Objekte erkannt und nachverfolgt werden.

Die App richtet ein 3D-Modell genau an seinem physischen Pendant aus. Ein Benutzer kann mit der linken Hand in der Luft tippen, um den hochpräzisen Nachverfolgungsmodus zu aktivieren, der eine genauere Position berechnet. Diese Funktion ist noch experimentell. Sie verbraucht mehr Systemressourcen und könnte zu einem höheren Jitter in der geschätzten räumlichen Lage führen. Tippen Sie erneut mit der linken Hand in der Luft, um zurück in den normalen Nachverfolgungsmodus zu wechseln.

Nächste Schritte