Esercizio - Servizi cloud di Azure per HoloLens 2

Completato

Un capitolo dopo l'altro, aggiungerai nuovi servizi cloud di Azure per espandere le funzionalità dell'applicazione e l'esperienza utente e allo stesso tempo apprenderai i concetti di base di ciascun servizio cloud di Azure.

Nota

Questa serie di moduli verterà soprattutto su HoloLens 2 ma, vista la natura multipiattaforma di Unity, la maggior parte delle lezioni si applicherà anche alle applicazioni desktop e per dispositivi mobili.

Obiettivi dell'applicazione

In questa serie di moduli verrà creata un'applicazione HoloLens 2 in grado di rilevare oggetti dalle immagini e trovarne la posizione nello spazio. Questi oggetti verranno denominati Oggetti tracciati.

L'utente può creare un oggetto tracciato per associare un set di immagini tramite visione artificiale, una posizione nello spazio o entrambi. Tutti i dati devono essere salvati nel cloud.

Funzionalità

  • Gestione di base di dati e immagini
  • Training e rilevamento delle immagini
  • Archiviazione di una posizione nello spazio e indicazioni per trovarla

Servizi cloud di Azure

Verranno usati i seguenti Servizi cloud di Azure per implementare le funzionalità indicate sopra:

Archiviazione di Azure

Si userà Archiviazione di Azure per rendere persistenti i dati. Archiviazione di Azure consente di archiviare i dati in una tabella e caricare file binari di grandi dimensioni, ad esempio immagini.

Visione personalizzata di Azure

Con Azure AI Visione personalizzata (parte dei servizi di intelligenza artificiale di Azure) è possibile associare un set di immagini a Oggetti tracciati, eseguire il training di un modello di Machine Learning nel set creato e rilevare gli oggetti rilevati.

Ancoraggi nello spazio di Azure

Per archiviare una posizione degli oggetti monitorati e fornire indicazioni guidate per trovarla, si useranno Ancoraggi nello spazio di Azure.

Creare e preparare il progetto Unity

In questa sezione verrà creato un nuovo progetto Unity per prepararsi allo sviluppo con MRTK.

Prima di tutto, seguire la procedura descritta nel percorso di apprendimento HoloLens 2, escludendo le istruzioni Compilare l'applicazione per il dispositivo, che include i passaggi seguenti:

  1. Creazione del progetto Unity e assegnazione di un nome appropriato, ad esempio Azure Cloud Tutorials
  2. Passaggio a un'altra piattaforma di compilazione
  3. Importazione delle risorse essenziali TextMeshPro
  4. Importazione di Mixed Reality Toolkit
  5. Configurazione del progetto Unity
  6. Creazione e configurazione della scena e assegnazione di un nome appropriato, ad esempio AzureCloudServices

Importare gli asset dell'esercitazione

  1. Aggiungere l'SDK AzurespatialAnchors al progetto. Per aggiungere il pacchetto, seguire questa esercitazione.

  2. Scaricare e importare i pacchetti personalizzati unity seguenti nell'ordine in cui sono elencati:

    Dopo aver importato gli asset dell'esercitazione, la finestra Progetto dovrebbe essere simile alla seguente:

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

Preparare la scena

In questa sezione verrà preparata la scena aggiungendo alcuni dei prefab dell'esercitazione.

  1. Nella finestra Project (Progetto) passare alla cartella Assets (Asset) >MRTK.Tutorials.AzureCloudServices>Prefabs (Prefab) >Manager. Tenendo premuto il tasto CTRL, fare clic su SceneController, RootMenu e DataManager per selezionare i tre prefab:

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

    SceneController (prefab) contiene due script, SceneController (script) e UnityDispatcher (script). Il componente script SceneController contiene diverse funzioni dell'esperienza utente e semplifica la funzionalità di acquisizione foto, mentre UnityDispatcher è una classe helper che consente l'esecuzione di azioni sul thread principale di Unity.

    RootMenu (prefab) è il principale prefab dell'interfaccia utente e include tutte le relative finestre, che sono connesse tra loro tramite vari piccoli componenti script e controllano il flusso dell'esperienza utente generale dell'applicazione.

    DataManager (prefab) è responsabile della comunicazione con Archiviazione di Azure e verrà illustrato più in dettaglio nell'esercitazione successiva.

  2. Ora, con i tre prefab ancora selezionati, trascinarli nella finestra Gerarchia per aggiungerli alla scena:

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

  3. Per concentrarsi sugli oggetti nella scena, è possibile fare doppio clic sull'oggetto RootMenu e quindi fare di nuovo leggermente zoom indietro. Con l'oggetto RootMenu ancora selezionato, modificare i rispettivi valori nel componente Transform nei valori seguenti:

    Posizione: X = 0.0, Y = 1.6, Z = 0.6

    Screenshot of Unity with RootMenu object selected.

    Suggerimento

    Se trovi le icone grandi nella scena che distraggono (ad esempio, le icone "T" incorniciate di grandi dimensioni), puoi nasconderle attivando gizmos alla posizione disattivata.

Configurazione della scena

In questa sezione si procederà alla connessione di SceneManager, DataManager e RootMenu per preparare una scena funzionante per l'esercitazione successiva, ovvero Integrazione di Archiviazione di Azure.

Connettere gli oggetti

  1. Nella finestra Hierarchy (Gerarchia) seleziona l'oggetto DataManager:

    Screenshot of Unity with DataManager object selected.

  2. Nella finestra Inspector (Controllo) individuare il componente DataManager (Script). Verrà visualizzato uno slot vuoto nell'evento On Data Manager Ready (). Trascinare l'oggetto SceneController dalla finestra Hierarchy sull'evento On Data Manager Ready ().

    Screenshot of Unity with DataManager event listener added.

  3. Il menu a discesa dell'evento è ora attivo. Selezionare il menu a discesa, passare a SceneController e selezionare l'opzione Init () nel sottomenu.

    Screenshot of Unity with DataManager event action added.

  4. Nella finestra Hierarchy selezionare l'oggetto SceneController. Il componente SceneController (script) è disponibile nel controllo.

    Screenshot of Unity with SceneController selected.

  5. A questo punto, sono presenti numerosi campi non popolati in cui verranno inseriti i valori appropriati. Spostare l'oggetto DataManager da Gerarchia nel campo Data Manager, quindi spostare RootMenu>MainMenu GameObject da Gerarchia nel campo Menu principale.

    Screenshot of Unity with SceneController configured.

  6. Nella finestra Gerarchia selezionare l'oggetto MRTK XR Rig. Assicurarsi che l'oggetto figlio Voce MRTK sia abilitato. In questo modo è possibile aprire il menu dicendo "Apri menu".

  7. Ora la scena è pronta per le prossime esercitazioni. Non dimenticare di salvare il progetto.

Preparare la pipeline di compilazione del progetto

Nota

La compilazione e il test in HoloLens 2 non sono obbligatori. È possibile eseguire il test sul HoloLens 2 Emulator se non si dispone di un dispositivo HoloLens. È possibile acquistare i dispositivi all'indirizzo HoloLens.com.

Prima di completare la scena, preparare il progetto per la compilazione per HoloLens 2.

1. Aggiungere altre funzionalità richieste

  1. Nel menu Unity selezionare Modifica>Impostazioni progetto per aprire la finestra Impostazioni progetto.

    Screenshot of Unity open Project Settings.

  2. Nella finestra Impostazioni progetto selezionare Lettore e quindi Pubblicazione Impostazioni:

    Screenshot of Unity Publishing Settings.

  3. In Publishing Settings scorrere verso il basso fino alla sezione Capabilities e controllare che siano abilitate le funzionalità InternetClient, Microphone e SpatialPerception, abilitate al momento della creazione del progetto all'inizio dell'esercitazione. Abilita quindi le funzionalità InternetClientServer, PrivateNetworkClientServer e Webcam:

    Screenshot of Unity Capabilities

2. Distribuire l'app in un dispositivo HoloLens 2

Non sarà possibile eseguire tutte le funzionalità che si useranno in questa serie di esercitazioni all'interno dell'editor Unity. Pertanto, è necessario avere familiarità con la distribuzione dell'applicazione nel dispositivo o nell'emulatore HoloLens 2.

Suggerimento

Per un promemoria su come compilare e distribuire il progetto Unity in HoloLens 2, vedere le esercitazioni introduttive - Compilare e distribuire l'applicazione .

3. Eseguire l'app in HoloLens 2 e seguire le istruzioni in-app

Attenzione

Tutti i servizi di Azure usano Internet, quindi assicurati che il dispositivo sia connesso a Internet.

Quando l'applicazione è in esecuzione nel dispositivo, concedere l'accesso alle funzionalità richieste seguenti:

  • Microphone
  • Fotocamera

Queste funzionalità sono necessarie per il corretto funzionamento di servizi quali Visione personalizzata.