Exercice - Services cloud Azure pour HoloLens 2

Effectué

Avec chaque chapitre consécutif, vous ajouterez de nouveaux services cloud Azure pour étendre les fonctionnalités de l’application et l’expérience utilisateur, tout en apprenant les principes fondamentaux de chaque service cloud Azure.

Remarque

Cette série de modules se concentre sur HoloLens 2, mais en raison de la nature multiplateforme d’Unity, la majorité de ces leçons s’applique également aux applications de bureau et mobiles.

Objectifs de l’application

Dans cette série de modules, vous allez créer une application HoloLens 2 capable de détecter des objets à partir d’images et de trouver leur localisation dans l’espace. Nous les appellerons des objets suivis.

L’utilisateur peut créer un objet suivi pour associer un ensemble d’images via la vision par ordinateur, un emplacement spatial, ou les deux. Toutes les données doivent être conservées dans le cloud.

Fonctionnalités

  • Gestion de base des données et des images
  • Entraînement et détection d’images
  • Stockage d’un emplacement spatial et conseils pour ce stockage

Services cloud Azure

Pour implémenter les fonctionnalités ci-dessus, vous utiliserez les services cloud Azure suivants :

Stockage Azure

Vous allez utiliser Stockage Azure pour rendre les données persistantes. Stockage Azure vous permet de stocker des données dans une table et de charger des fichiers binaires volumineux tels que des images.

Azure Custom Vision

Avec Azure AI Custom Vision (qui fait partie d’Azure AI services), vous pouvez associer un ensemble d’images à des objets suivis, entraîner un modèle Machine Learning sur l’ensemble que vous avez créé, et détecter les objets suivis.

Azure Spatial Anchors

Pour stocker un emplacement d’objet suivi et fournir des indications guidées pour le trouver, vous allez utiliser Azure Spatial Anchors.

Créer et préparer le projet Unity

Dans cette section, vous allez créer un nouveau projet Unity et le préparer au développement MRTK.

Tout d’abord, suivez les instructions fournies dans le parcours d’apprentissage HoloLens 2, à l’exception des instructions de la section Créer votre application sur votre appareil, qui inclut les étapes suivantes :

  1. Création du projet Unity et attribution d’un nom approprié, par exemple, Tutoriels cloud Azure
  2. Changement de plateforme de génération
  3. Importation des ressources TextMeshPro Essential
  4. Importation du Mixed Reality Toolkit
  5. Configuration du projet Unity
  6. Création et configuration de la scène, et affectation d’un nom pertinent à la scène, par exemple AzureCloudServices

Importer les ressources du tutoriel

  1. Ajoutez le SDK AzurespatialAnchors à votre projet. Pour ajouter le package, suivez ce tutoriel.

  2. Téléchargez et importez les packages Unity personnalisés suivants dans l’ordre dans lequel ils sont listés :

    Une fois que vous avez importé les ressources du tutoriel, votre fenêtre Project doit ressembler à ceci  :

    Screenshot of Unity Hierarchy, Scene, and Project windows after importing the tutorial assets.

Préparer la scène

Dans cette section, vous allez préparer la scène en ajoutant une partie des préfabriqués du tutoriel.

  1. Dans la fenêtre Project, accédez au dossier Assets>MRTK.Tutorials.AzureCloudServices>Prefabs>Manager. Tout en maintenant le bouton CTRL enfoncé, sélectionnez SceneController, RootMenu et DataManager pour sélectionner les trois Prefabs :

    Screenshot of Unity with SceneController, RootMenu, and DataManager prefabs selected.

    SceneController (prefab) contient deux scripts, SceneController (script) et UnityDispatcher (script) . Le composant script SceneController contient plusieurs fonctions d’expérience utilisateur et facilite la fonctionnalité de capture photo, tandis que UnityDispatcher est une classe d’assistance permettant d’autoriser les actions d’exécution sur le thread principal Unity.

    RootMenu (Prefab) est le Prefab d’interface utilisateur principal qui contient toutes les fenêtres d’interface utilisateur connectées entre elles par le biais de différents petits composants de script et qui contrôle le déroulement général de l’expérience utilisateur dans l’application.

    DataManager (Prefab) est responsable de la communication avec le stockage Azure et il sera expliqué plus en détail dans le tutoriel suivant.

  2. Maintenant, avec les trois préfabriqués toujours sélectionnés, faites-les glisser dans la fenêtre Hierarchy pour les ajouter à la scène :

    Screenshot of Unity with newly added SceneController, RootMenu and DataManager prefabs still selected.

  3. Pour vous concentrer sur les objets de la scène, vous pouvez double-cliquer sur l’objet RootMenu, puis effectuer un léger zoom arrière. En laissant l’objet RootMenu sélectionné, définissez les valeurs de son composant Transform sur :

    Position : X = 0,0, Y = 1,6, Z = 0,6

    Screenshot of Unity with RootMenu object selected.

    Conseil

    Si vous trouvez les grandes icônes de votre scène gênantes (par exemple, les grandes icônes « T » encadrées), vous pouvez les masquer en basculant les interrupteurs sur la position Désactivé.

Configuration de la scène

Dans cette section, vous allez connecter SceneManager, DataManager et RootMenu pour avoir une scène fonctionnelle pour le prochain tutoriel sur l’intégration de Stockage Azure.

Connecter les objets

  1. Dans la fenêtre Hierarchy, sélectionnez l’objet DataManager :

    Screenshot of Unity with DataManager object selected.

  2. Dans la fenêtre Inspector, recherchez le composant DataManager (Script). Vous verrez un emplacement vide sur l’événement On Data Manager Ready (). Faites glisser l’objet SceneController de la fenêtre Hiérarchie vers l’événement On Data Manager Ready ().

    Screenshot of Unity with DataManager event listener added.

  3. Le menu déroulant de l’événement est maintenant actif. Sélectionnez le menu déroulant et accédez à SceneController, puis sélectionnez l’option Init () dans le sous-menu.

    Screenshot of Unity with DataManager event action added.

  4. Dans la fenêtre Hiérarchie, sélectionnez l’objet SceneController. Le composant SceneController (script) se trouve dans l’inspecteur.

    Screenshot of Unity with SceneController selected.

  5. Il y a désormais plusieurs champs vides. Changeons cela. Déplacez l’objet DataManager de Hierarchy vers le champ Data Manager, puis déplacez le GameObject RootMenu>MainMenu de Hierarchy vers le champ Main Menu.

    Screenshot of Unity with SceneController configured.

  6. Dans la fenêtre Hierarchy, sélectionnez l’objet MRTK XR Rig. Vérifiez que l’objet enfant MRTK Speech est activé. Cela vous permet d’ouvrir le menu en disant « Ouvrir le menu ».

  7. Votre scène est maintenant prête pour les tutoriels suivants. N’oubliez pas d’enregistrer cela dans votre projet.

Préparer le pipeline de génération du projet

Remarque

La génération et le test sur HoloLens 2 ne sont pas obligatoires. Vous pouvez tester sur l’émulateur HoloLens 2 si vous n’avez pas d’appareil HoloLens. Vous pouvez acheter des appareils sur HoloLens.com.

Avant de terminer la scène, nous allons préparer le projet à construire pour HoloLens 2.

1. Ajouter les autres fonctionnalités requises

  1. Dans le menu Unity, sélectionnez Edit>Project Settings pour ouvrir la fenêtre Project Settings.

    Screenshot of Unity open Project Settings.

  2. Dans la fenêtre Project Settings, sélectionnez Player, puis Publishing Settings :

    Screenshot of Unity Publishing Settings.

  3. Dans Paramètres de publication, faites défiler jusqu’à la section Fonctionnalités et vérifiez que les fonctionnalités InternetClient, Microphone et SpatialPerception (que vous avez activées lorsque vous avez créé le projet au début du tutoriel) sont activées. Activez ensuite les fonctionnalités InternetClientServer, PrivateNetworkClientServer et Webcam :

    Screenshot of Unity Capabilities

2. Déployer l’application sur votre HoloLens 2

Vous ne pourrez pas exécuter dans l’éditeur Unity toutes les fonctionnalités que vous allez utiliser dans cette série de tutoriels. Vous devez donc savoir comment déployer l’application sur votre appareil HoloLens 2 ou un émulateur.

Conseil

Pour obtenir un rappel sur la création et le déploiement de votre projet Unity sur HoloLens 2, vous pouvez consulter les instructions fournies dans les tutoriels de démarrage : Générer et déployer votre application.

3. Exécuter l’application sur votre HoloLens 2 et suivre les instructions dans l’application

Attention

Comme tous les services Azure utilisent Internet, vérifiez que votre appareil y est connecté.

Lorsque l’application s’exécute sur votre appareil, accordez l’accès aux fonctionnalités demandées suivantes :

  • Microphone
  • Appareil photo

Ces fonctionnalités sont nécessaires pour que des services comme Custom Vision fonctionnent correctement.