Esercizio - Servizi cloud di Azure per HoloLens 2
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:
- Creazione del progetto Unity e assegnazione di un nome appropriato, ad esempio Azure Cloud Tutorials
- Passaggio a un'altra piattaforma di compilazione
- Importazione delle risorse essenziali TextMeshPro
- Importazione di Mixed Reality Toolkit
- Configurazione del progetto Unity
- Creazione e configurazione della scena e assegnazione di un nome appropriato, ad esempio AzureCloudServices
Importare gli asset dell'esercitazione
Aggiungere l'SDK
AzurespatialAnchors
al progetto. Per aggiungere il pacchetto, seguire questa esercitazione.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:
Preparare la scena
In questa sezione verrà preparata la scena aggiungendo alcuni dei prefab dell'esercitazione.
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:
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.
Ora, con i tre prefab ancora selezionati, trascinarli nella finestra Gerarchia per aggiungerli alla scena:
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
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
Nella finestra Hierarchy (Gerarchia) seleziona l'oggetto DataManager:
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 ().
Il menu a discesa dell'evento è ora attivo. Selezionare il menu a discesa, passare a SceneController e selezionare l'opzione Init () nel sottomenu.
Nella finestra Hierarchy selezionare l'oggetto SceneController. Il componente SceneController (script) è disponibile nel controllo.
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.
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".
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
Nel menu Unity selezionare Modifica>Impostazioni progetto per aprire la finestra Impostazioni progetto.
Nella finestra Impostazioni progetto selezionare Lettore e quindi Pubblicazione Impostazioni:
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:
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.