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

Concluído

A cada capítulo consecutivo, irá adicionar novos serviços Azure Cloud para expandir as funcionalidades da aplicação e melhorar a experiência do utilizador, enquanto aprende os fundamentos de cada serviço Azure Cloud.

Observação

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.

Caraterísticas

  • 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.

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. 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:

    Captura de tela das janelas Unity Hierarchy, Scene e Project depois de importar os ativos do tutorial.

Preparar a cena

Nesta seção, vai preparar a cena adicionando alguns dos prefabs do tutorial.

  1. Na janela do Projeto, navegue até a pasta Assets>MRTK.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 do Unity com os prefabs SceneController, RootMenu e DataManager selecionados.

    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 (prefab) é o principal pré-fabricado de interface do usuário que mantém todas as janelas da interface conectadas umas às outras através de vários pequenos componentes de script e controla o fluxo geral de UX do aplicativo.

    O DataManager (prefab) é responsável por comunicar-se 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:

    Captura de ecrã do Unity com os prefabs SceneController, RootMenu e DataManager recém-adicionados ainda selecionados.

  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

    Captura de tela de Unity com o objeto RootMenu selecionado.

    Dica

    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 secção, irá ligar o SceneManager , o DataManager , e o RootMenu para ter uma cena funcional para o próximo tutorial de Integração com o armazenamento do Azure.

Conectar os objetos

  1. Na janela Hierarquia, selecione o objeto DataManager :

    Captura de tela do objeto Unity com DataManager selecionado.

  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 ().

    Captura de ecrã do Unity com o ouvinte de eventos DataManager adicionado.

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

    Captura de ecrã do Unity com a ação de evento DataManager adicionada.

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

    Captura de tela de Unity com SceneController selecionado.

  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 .

    Captura de tela de Unity com SceneController configurado.

  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 fluxo de trabalho de compilação de projeto

Observação

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.

    Captura de tela do Unity com as Configurações do Projeto abertas.

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

    Captura de tela das Configurações de publicação do Unity.

  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 :

    Captura de ecrã das capacidades do Unity

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.

Dica

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.