Exercício - Serviços de Nuvem do Azure para HoloLens 2

Concluído

A cada capítulo consecutivo, você adicionará novos serviços de Nuvem do Azure para expandir os recursos do aplicativo e a experiência do usuário, enquanto ensina os fundamentos de cada serviço de Nuvem do Azure.

Nota

Esta série de módulos se concentrará no HoloLens 2, mas devido à natureza multiplataforma do Unity, a maioria dessas lições também se aplicará a aplicativos móveis e de desktop.

Objetivos da aplicação

Nesta série de módulos, você construirá um aplicativo HoloLens 2 que pode detetar objetos de imagens e encontrar sua localização espacial. Referir-nos-emos a estes objetos como Objetos Rastreados.

O usuário pode criar um objeto rastreado para associar um conjunto de imagens via visão computacional, uma localização espacial ou ambos. Todos os dados devem ser mantidos na nuvem.

Funcionalidades

  • Gestão básica de dados e imagens
  • Treinamento e deteção de imagens
  • Armazenamento de uma localização espacial e orientação para ela

Serviços Cloud do Azure

Você usará os seguintes serviços de Nuvem do Azure para implementar os recursos acima:

Armazenamento do Azure

Você usará o Armazenamento do Azure para persistir dados. O Armazenamento do Azure permite armazenar dados em uma tabela e carregar binários grandes, como imagens.

Visão Personalizada do Azure

Com a Visão Personalizada da IA do Azure (parte dos serviços de IA do Azure), você pode associar um conjunto de imagens a Objetos Rastreados, treinar um modelo de aprendizado de máquina no conjunto criado e detetar os Objetos Rastreados.

Azure Spatial Anchors

Para armazenar um local de Objeto Rastreado e dar instruções guiadas para localizá-lo, você usará as Âncoras Espaciais do Azure.

Criar e preparar o projeto Unity

Nesta seção, você criará um novo projeto Unity e o preparará para o desenvolvimento do MRTK.

Primeiro, siga as etapas no caminho de aprendizagem do HoloLens 2, excluindo as instruções Compile seu aplicativo para seu dispositivo, que inclui as seguintes etapas:

  1. Criar o projeto Unity e dar-lhe um nome adequado, por exemplo, Azure Cloud Tutorials
  2. Mudar a plataforma de compilação
  3. Importando os recursos essenciais do TextMeshPro
  4. Importando o Kit de Ferramentas de Realidade Mista
  5. Configurando o projeto Unity
  6. Criar e configurar a cena e dar-lhe um nome adequado, por exemplo, AzureCloudServices

Importar os ativos do tutorial

  1. Adicione o AzurespatialAnchors SDK ao seu projeto. Para adicionar o pacote, siga este tutorial.

  2. Baixe e importe os seguintes pacotes personalizados Unity na ordem em que estão listados:

    Depois de importar os ativos do tutorial, a janela do Project deve ser semelhante a esta:

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

Preparar a cena

Nesta seção, você preparará a cena adicionando alguns dos pré-fabricados do tutorial.

  1. Na janela Projeto, navegue até o MRTK de ativos>. Pasta Tutorials.AzureCloudServices>Prefabs>Manager. Enquanto mantém pressionado o botão CTRL, selecione SceneController, RootMenu e DataManager para selecionar os três pré-fabricados:

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

    O SceneController (pré-fabricado) contém dois scripts, SceneController (script) e UnityDispatcher (script). O componente de script SceneController contém várias funções UX e facilita a funcionalidade de captura de fotos, enquanto UnityDispatcher é uma classe auxiliar para permitir executar ações no thread principal do Unity.

    O RootMenu (pré-fabricado) é o pré-fabricado de interface do usuário primário que mantém todas as janelas da interface do usuário conectadas umas às outras através de vários pequenos componentes de script e controlam o fluxo geral de UX do aplicativo.

    O DataManager (pré-fabricado) é responsável por falar com o armazenamento do Azure e será explicado mais detalhadamente no próximo tutorial.

  2. Agora, com os três pré-fabricados ainda selecionados, arraste-os para a janela Hierarquia para adicioná-los à cena:

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

  3. Para se concentrar nos objetos na cena, você pode clicar duas vezes no objeto RootMenu e, em seguida, reduzir ligeiramente novamente. Com o objeto RootMenu ainda selecionado, altere seus valores em seu componente Transform para o seguinte:

    Posição: X = 0,0, Y = 1,6, Z = 0,6

    Screenshot of Unity with RootMenu object selected.

    Gorjeta

    Se você achar que os ícones grandes em sua cena distraem (por exemplo, os grandes ícones 'T' emoldurados), você pode ocultá-los alternando o Gizmos para a posição off.

Configurando a cena

Nesta seção, você conectará o SceneManager, o DataManager e o RootMenu juntos para ter uma cena de trabalho para o próximo tutorial Integrando o armazenamento do Azure.

Conectar os objetos

  1. Na janela Hierarquia, selecione o objeto DataManager :

    Screenshot of Unity with DataManager object selected.

  2. Na janela Inspetor, localize o componente DataManager (Script). Você verá um slot vazio no evento On Data Manager Ready (). Arraste o objeto SceneController da janela Hierarchy para o evento On Data Manager Ready ().

    Screenshot of Unity with DataManager event listener added.

  3. O menu suspenso do evento agora está ativo. Selecione o menu suspenso, navegue até SceneController e selecione a opção Init () no submenu.

    Screenshot of Unity with DataManager event action added.

  4. Na janela Hierarchy, selecione o objeto SceneController . Você encontrará o componente SceneController (script) no Inspetor.

    Screenshot of Unity with SceneController selected.

  5. Existem agora vários campos despovoados; vamos mudar isso. Mova o objeto DataManager da Hierarquia para o campo Gerenciador de Dados e, em seguida, mova o RootMenu MainMenu GameObject da Hierarquia para o campo Menu> Principal.

    Screenshot of Unity with SceneController configured.

  6. Na janela Hierarquia, selecione o objeto MRTK XR Rig . Verifique se o objeto filho MRTK Speech está habilitado. Isso permite que você abra o menu dizendo "Abrir menu".

  7. Agora sua cena está pronta para os próximos tutoriais. Não se esqueça de salvá-lo em seu projeto.

Preparar pipeline de construção de projeto

Nota

A construção e os testes no HoloLens 2 não são obrigatórios. Você pode testar no emulador HoloLens 2 se não tiver um dispositivo HoloLens. Você pode comprar dispositivos em HoloLens.com.

Antes de terminarmos a cena, vamos preparar o projeto para construir o HoloLens 2.

1. Adicione outros recursos necessários

  1. No menu Unity, selecione Editar>configurações do projeto... para abrir a janela Configurações do projeto.

    Screenshot of Unity open Project Settings.

  2. Na janela Configurações do projeto, selecione Player e, em seguida , Configurações de publicação:

    Screenshot of Unity Publishing Settings.

  3. Em Configurações de Publicação, role para baixo até a seção Recursos e verifique se os recursos InternetClient, Microfone e Perceção Espacial (que você habilitou quando criou o projeto no início do tutorial) estão habilitados. Em seguida, habilite os recursos InternetClientServer, PrivateNetworkClientServer e Webcam:

    Screenshot of Unity Capabilities

2. Implante o aplicativo no seu HoloLens 2

Você não poderá executar todos os recursos que usará nesta série de tutoriais dentro do editor Unity. Portanto, você precisa estar familiarizado com a implantação do aplicativo em seu dispositivo HoloLens 2 ou emulador.

Gorjeta

Para um lembrete sobre como criar e implantar seu projeto Unity no HoloLens 2, consulte os tutoriais de Introdução - Compilar e implantar suas instruções de aplicativo .

3. Execute o aplicativo no seu HoloLens 2 e siga as instruções no aplicativo

Atenção

Todos os Serviços do Azure utilizam a Internet, por isso certifique-se de que o seu dispositivo está ligado à Internet.

Quando o aplicativo estiver sendo executado em seu dispositivo, conceda acesso aos seguintes recursos solicitados:

  • Microfone
  • Câmara

Esses recursos são necessários para que serviços como o Visão Personalizada funcionem corretamente.