1. Serviços de Nuvem do Azure para HoloLens 21. Azure Cloud Services for HoloLens 2

Visão geralOverview

Bem-vindo(a) a esta série de tutoriais voltados para colocar serviços de Nuvem do Azure em um aplicativo do HoloLens 2.Welcome to this series of tutorials focused on bringing Azure Cloud services into a HoloLens 2 application. Nesta série de tutoriais em cinco partes, você aprenderá a integrar vários serviços de Nuvem do Azure em um projeto Unity para o HoloLens 2.In this five-part tutorial series, you will learn how to integrate several Azure Cloud services into a Unity project for HoloLens 2. Ao passar em cada capítulo, você adicionará novos serviços de Nuvem do Azure para expandir os recursos do aplicativo e a experiência do usuário, aprendendo ao mesmo tempo os conceitos básicos de cada serviço de Nuvem do Azure.With each consecutive chapter, you will add new Azure Cloud services to expand the application features and user experience, while teaching you the fundamentals of each Azure Cloud service.

Observação

Esta série de tutoriais se concentrará no HoloLens 2 mas, devido à natureza multiplataforma do Unity, a maioria dos seus aprendizados também se aplicará a aplicativos para Desktop e Smartphone.This tutorial series will focus on the HoloLens 2 but due the cross-platform nature of Unity, most of your learnings will also apply for Desktop and Smartphone applications.

Neste primeiro tutorial, Apresentação dos Serviços de Nuvem do Azure para o HoloLens 2, você vai começar explicando as metas do aplicativo, vai apresentar brevemente cada serviço de Nuvem do Azure e vai configurar o projeto do Unity.In this first tutorial, Introducing Azure Cloud Services for HoloLens 2, you begin by explaining the goals of the application, briefly introduce you to each Azure Cloud service and set up the unity project.

No segundo tutorial, Integração do Armazenamento do Azure, você vai começar integrando o Armazenamento do Azure como a solução de persistência para o aplicativo de demonstração, vai aprender as diferenças entre Armazenamento de Blobs e Armazenamento de Tabelas, vai preparar os recursos de projeto necessários, vai configurar a cena e vai verificar as operações de leitura, atualização e exclusão de dados.In the second tutorial, Integrating Azure Storage, you start off by integrating Azure Storage as the persistence solution for the demo application, learn the differences between Blob Storage and Table Storage, prepare the needed project resources, setup the scene and verify the read, update and delete data operations.

Continuando com o terceiro tutorial, Integração da Visão Personalizada do Azure, você usará a Visão Personalizada do Azure para treinar e detectar imagens no aplicativo do HoloLens 2.Continuing with the third tutorial, Integrating Azure Custom Vision, you will use Azure Custom Vision to train and detect images in the HoloLens 2 application. O capítulo começa com a configuração de seu próprio recurso de Visão Personalizada do Azure, preparando os componentes da cena e entrando em ação treinando e detectando suas próprias imagens de dentro do aplicativo.The chapter starts off with setting up your own Azure Custom Vision resource, preparing the scene components and getting into action by training and detecting your own images from inside the application.

Em seguida, você avançará para o quarto tutorial, Integração de Âncoras Espaciais do Azure, com a exploração do serviço Âncoras Espaciais do Azure para salvar e encontrar locais, aprender os principais conceitos, preparar os recursos necessários, configurar a cena e começar a usar o novo recurso no aplicativo.Next you advance in the fourth tutorial, Integrating Azure Spatial Anchors, with exploring Azure Spatial Anchors service to save and find locations, learn the core concepts, prepare necessary resources, setup the scene and start using the new feature in the application.

Com o quinto tutorial, Integração do Serviço de Bot do Azure com o LUIS, você finaliza fornecendo ao aplicativo um novo método de interação do usuário: idioma natural!With the fifth tutorial, Integrating Azure Bot Service with LUIS, you finalize by giving the application a new method of user interaction: natural language! Esse recurso será realizado usando o Azure Bot Framework junto com o LUIS (Reconhecimento Vocal).This feature will be realized by using the Azure Bot Framework together with Language Understanding (LUIS). Este capítulo final ensina os conceitos básicos do Serviço de Bot do Azure e para acelerar o processo, você usará o Bot Framework Composer como uma solução sem código.This final chapter teaches you the basics of Azure Bot Service and to speed up the process you will be using the Bot Framework Composer as a zero code solution. Depois que o bot for criado, você o integrará à cena e fará com que ele seja executado com o estágio final do aplicativo do HoloLens 2.Once the bot is created, you will integrate it into the scene and give it a run with the final stage of the HoloLens 2 application.

Metas do aplicativoApplication goals

Nesta série de tutoriais, você criará um aplicativo do HoloLens 2 que poderá detectar objetos em imagens e encontrar seu local espacial.In this tutorial series, you will build a HoloLens 2 application that can detect objects from images and find its spatial location. Para definir um idioma de domínio, essas entidades passarão a ser chamadas de Objeto Rastreado.To set a domain language, you call such entities from now Tracked Object. O usuário pode criar um Objeto Rastreado para associar um conjunto de imagens por meio da pesquisa visual computacional e/ou de um local espacial.The user can create a Tracked Object to either or both associate a set of images via computer vision and/or a spatial location. Todos os dados devem ser persistidos na nuvem.All data must be persisted into the cloud. Além disso, alguns aspectos do aplicativo serão controlados opcionalmente pelo idioma natural por meio de um bot.Furthermore some aspects of the application will be optionally controlled by natural language assisted through a bot.

RecursosFeatures

  • Gerenciamento básico de dados e imagensBasic managing of data and images
  • Treinamento e detecção de imagemImage training and detection
  • Armazenamento de um local espacial e diretrizes para eleStoring a spatial location and guidance to it
  • Assistente de bot para usar alguns recursos por meio de linguagem naturalBot assistant to use some features via natural language

Serviços de Nuvem do AzureAzure Cloud services

Para resolver os recursos necessários para o aplicativo, você usará esses serviços de Nuvem do Azure:To solve the required features for the application, you will use these Azure Cloud services:

Armazenamento do AzureAzure Storage

Você usará o Armazenamento do Azure para a solução de persistência.You will use Azure Storage for the persistence solution. Ele permite que você armazene dados em uma tabela e carregue binários grandes, como imagens.It allows you to store data on a table and upload large binaries like images.

Visão Personalizada do AzureAzure Custom Vision

Com a Visão Personalizada do Azure (parte dos Serviços Cognitivos do Azure), você pode associar um conjunto de imagens a Objetos Rastreados, treinar um modelo de machine learning no conjunto e detectar o Objeto Rastreado.With Azure Custom Vision (part of the Azure Cognitive Services) you can associate to Tracked Objects a set of images, train a machine learning model on the set and detect the Tracked Object.

Âncoras Espaciais do AzureAzure Spatial Anchors

Para armazenar o local de um Objeto Rastreado e fornecer instruções guiadas para encontrá-lo, você usa Âncoras Espaciais do Azure.To store a Tracked Object location and give a guided directions to find it, you use Azure Spatial Anchors.

Serviço de Bot do AzureAzure Bot Service

O aplicativo é conduzido principalmente pela interface do usuário tradicional, por isso você usa o Serviço de Bot do Azure para adicionar alguma personalidade e agir como um novo método de interação.The application is mainly driven by traditional UI, so you use the Azure Bot Service to add some personality and act as a new interaction method.

Pré-requisitosPrerequisites

Dica

Se você ainda não concluiu a série de Tutoriais de introdução, recomendamos que você a conclua primeiro.If you have not completed the Getting started tutorials series yet, it's recommended that you complete those tutorials first.

  • Um PC com Windows 10 configurado com as ferramentas corretas instaladasA Windows 10 PC configured with the correct tools installed
  • SDK do Windows 10 10.0.18362.0 ou posteriorWindows 10 SDK 10.0.18362.0 or later
  • Alguma habilidade básica de programação em C#Some basic C# programming ability
  • Um dispositivo HoloLens 2 configurado para desenvolvimentoA HoloLens 2 device configured for development
  • Uma webcam conectada se você quiser testar no editor do UnityA connected webcam if you like to test from Unity editor
  • Hub do Unity com o Unity 2019.3.X instalado e o módulo de suporte de Build da Plataforma Universal do Windows adicionadoUnity Hub with Unity 2019.3.X installed and the Universal Windows Platform Build Support module added

Cuidado

A versão recomendada do Unity para esta série de tutoriais é o Unity 2019.3.X.The recommended Unity version for this tutorial series is Unity 2019.3.X. Ela substitui todos os requisitos de versão do Unity ou as recomendações indicadas nos pré-requisitos vinculados acima.This supersedes any Unity version requirements or recommendations stated in the prerequisites linked above.

Como criar e preparar o projeto do UnityCreating and preparing the Unity project

Nesta seção, você criará um projeto do Unity e o deixará pronto para o desenvolvimento do MRTK.In this section, you will create a new Unity project and get it ready for MRTK development.

Para isso, primeiro siga Inicializar seu projeto e o primeiro aplicativo, excluindo as instruções Criar seu aplicativo para o dispositivo, que incluem as seguintes etapas:For this, first follow the Initializing your project and first application, excluding the Build your application to your device instructions, which includes the following steps:

  1. Criar um projeto do Unity e dar a ele um nome adequado, por exemplo, Tutoriais de Nuvem do AzureCreating the Unity project and give it a suitable name, for example, Azure Cloud Tutorials
  2. Como alternar a plataforma de buildSwitching the build platform
  3. Como importar os Recursos Essenciais do TextMeshProImporting the TextMeshPro Essential Resources
  4. Como importar o Kit de Ferramentas de Realidade MisturadaImporting the Mixed Reality Toolkit
  5. Como configurar o projeto do UnityConfiguring the Unity project
  6. Criar e configurar a cena e dar um nome adequado à cena, por exemplo, AzureCloudServicesCreating and configuring the scene and give the scene a suitable name, for example, AzureCloudServices

Então siga as instruções em Alterar a opção de Exibição de Reconhecimento Espacial para alterar o perfil de configuração do MRTK para sua cena para o DefaultHoloLens2ConfigurationProfile e alterar as opções de exibição para a malha de reconhecimento espacial para Oclusão.Then follow the Changing the Spatial Awareness Display Option instructions to change the MRTK configuration profile for your scene to the DefaultHoloLens2ConfigurationProfile and change the display options for the spatial awareness mesh to Occlusion.

Instalar pacotes internos do UnityInstalling inbuilt Unity packages

No menu do Unity, selecione Janela > Gerenciador de Pacotes para abrir a janela Gerenciador de Pacotes e selecione AR Foundation e clique no botão Instalar para instalar o pacote:In the Unity menu, select Window > Package Manager to open the Package Manager window, then select AR Foundation and click the Install button to install the package:

mr-learning-azure

Observação

Você está instalando o pacote do AR Foundation porque ele é exigido pelo SDK de Âncoras Espaciais do Azure e será importado na próxima seção.You are installing the AR Foundation package because the Azure Spatial Anchors SDK requires it, which you will import in the next section.

Como importar os ativos do tutorialImporting the tutorial assets

Baixe e importe os seguintes pacotes personalizados do Unity na ordem em que estão listados:Download and import the following Unity custom packages in the order they are listed:

Dica

Para obter um lembrete sobre como importar um pacote personalizado do Unity, você pode consultar as instruções Importar o Mixed Reality Toolkit.For a reminder on how to import a Unity custom package, you can refer to the Import the Mixed Reality Toolkit instructions.

Depois de importar os ativos do tutorial, a janela do projeto deverá ser semelhante a esta:After you have imported the tutorial assets your Project window should look similar to this:

mr-learning-azure

Como criar e preparar a cenaCreating and preparing the scene

Nesta seção, você vai preparar a cena adicionando alguns pré-fabricados do tutorial.In this section, you will prepare the scene by adding some of the tutorial prefabs.

Na janela do projeto, navegue até a pasta Ativos > MRTK.Tutorials.AzureCloudServices > Pré-fabricados > Gerenciador.In the Project window, navigate to Assets > MRTK.Tutorials.AzureCloudServices > Prefabs > Manager folder. Mantendo pressionada a tecla CTRL, clique em SceneController, RootMenu e DataManager para selecionar os três pré-fabricados:While holding down the CTRL button, click on SceneController, RootMenu and DataManager to select the three prefabs:

mr-learning-azure

O SceneController (prefab) contém dois scripts: SceneController (script) e UnityDispatcher (script) .The SceneController (prefab) contains two scripts, SceneController (script) and UnityDispatcher (script). O componente de script SceneController contém várias funções de UX e facilita a funcionalidade de captura de fotos e o UnityDispatcher é uma classe auxiliar para permitir a execução de ações no thread principal do Unity.The SceneController script component contains several UX functions and facilitates the photo capture functionality while UnityDispatcher is a helper class to allow execute actions on the Unity main thread.

O RootMenu (prefab) é o pré-fabricado da interface do usuário principal que mantém todas as janelas da interface do usuário conectadas entre si por meio de vários pequenos componentes de script e que controla o fluxo geral de UX do aplicativo.The RootMenu (prefab) is the primary UI prefab that holds all UI windows that are connected to each other through various small script components and control the general UX flow of the application.

O DataManager (prefab) é responsável por conversar com o armazenamento do Azure e será explicado mais detalhadamente no próximo tutorial.The DataManager (prefab) is responsible for talking to Azure storage and will be explained further in the next tutorial.

Agora, com os três pré-fabricados ainda selecionados, arraste-os para a janela Hierarquia para adicioná-los à cena:Now with the three prefabs still selected, drag them into the Hierarchy window to add them to the scene:

mr-learning-azure

Para se concentrar nos objetos da cena, clique duas vezes no objeto RootMenu e, em seguida, reduzir levemente o zoom de novo:To focus in on the objects in the scene, you can double-click on the RootMenu object, and then zoom slightly out again:

mr-learning-azure

Dica

Se você considerar que ícones grandes em sua cena, por exemplo, os ícones "T" grandes, causam distração, poderá ocultá-los alternando o Gizmos para a posição de desligado.If you find the large icons in your scene, for example, the large framed 'T' icons distracting, you can hide these by toggling the Gizmos to the off position.

Configurando a cenaConfiguring the scene

Nesta seção, você conectará SceneManager, DataManager e RootMenu juntos para ter uma cena funcional pronta para o seguinte tutorial, Integrar o armazenamento do Azure.In this section, you will connect SceneManager, DataManager and RootMenu together to have a working scene to be ready for the following Integrating Azure storage tutorial.

Conectar os objetosConnect the objects

Na janela Hierarquia, selecione o objeto DataManager:In the Hierarchy window, select the DataManager object:

mr-learning-azure

Na janela do Inspetor, localize o componente DataManager (script) e você verá um slot vazio no evento On Data Manager Ready () .In the Inspector window, locate the DataManager (Script) component and you will see an empty slot on the On Data Manager Ready () event. Agora, na janela Hierarquia, arraste o objeto SceneController para o evento On Data Manager Ready () .Now from the Hierarchy window drag the SceneController object into the On Data Manager Ready () event.

mr-learning-azure

Você observará que o menu suspenso do evento se tornou ativo; clique no menu suspenso e navegue até SceneController e, no submenu, selecione a opção Init () :You will notice that the dropdown menu of the event became active, click on the dropdown menu and navigate to SceneController and in the sub menu select the Init () option:

mr-learning-azure

Na janela Hierarquia, selecione o objeto SceneController; então, no Inspetor, você encontrará o componente SceneController (script).From the Hierarchy window, select the SceneController object, there in the Inspector you will find the SceneController (script) component.

mr-learning-azure

Você verá que há vários campos não preenchidos; nós vamos alterar isso.You will see that there are several unpopulated fields, let's change that. Mova o objeto DataManager da Hierarquia para o campo Gerenciador de Dados e mova o GameObject RootMenu da Hierarquia para o campo Menu Principal.Move the DataManager object from the Hierarchy into the Data Manager field and move the RootMenu GameObject from the Hierarchy into the Main Menu field.

mr-learning-azure

Agora, sua cena está pronta para os próximos tutoriais.Now your scene is ready for the upcoming tutorials. Não se esqueça de salvá-la em seu projeto.Don't forget to save it into your project.

Preparar pipeline de Build do projetoPrepare project build pipeline

Embora o projeto ainda tenha que ser preenchido com conteúdo, você precisa executar alguns preparativos para que o projeto fique pronto para a compilação para o HoloLens 2.While the project yet has to be filled with content, you have to perform some preparations, so the project is ready for building for HoloLens 2.

1. Adicionar funcionalidades adicionais necessárias1. Add additional required capabilities

No menu do Unity, selecione Editar > Configurações de Projeto... para abrir a janela Configurações de Projeto:In the Unity menu, select Edit > Project Settings... to open the Project Settings window:

mr-learning-azure

Na janela Configurações do Projeto, selecione Jogador e Configurações de Publicação:In the Project Settings window, select Player and then Publishing Settings:

mr-learning-azure

Em Configurações de Publicação, role para baixo até a seção Funcionalidades e verifique se as funcionalidades InternetClient, Microphone e SpatialPerception, que você habilitou ao criar o projeto no início do tutorial, estão habilitadas.In the Publishing Settings, scroll down to the Capabilities section and double-check that the InternetClient, Microphone and SpatialPerception capabilities, which you enabled when you created the project at the beginning of the tutorial, are enabled. Em seguida, habilite as funcionalidades InternetClientServer, PrivateNetworkClientServer e Webcam:Then, enable the InternetClientServer, PrivateNetworkClientServer, and Webcam capabilities:

mr-learning-azure

2. Implantar o aplicativo em seu HoloLens 22. Deploy the app to your HoloLens 2

Nem todos os recursos que você usará nesta série de tutoriais podem ser executados dentro do editor do Unity; isso significa que você precisa estar familiarizado com a implantação do aplicativo em seu dispositivo do HoloLens 2.Not all features that you will use in this tutorial series can run inside the Unity editor, this means that you need to be familiar with deploying the application to your HoloLens 2 device.

Dica

Para se lembrar de como criar e implantar seu projeto do Unity no HoloLens 2, confira as instruções em Tutoriais de introdução – Criar o aplicativo para seu dispositivo.For a reminder on how to build and deploy your Unity project to HoloLens 2, you can refer to the Getting started tutorials - Build your application to your device instructions.

3. Execute o aplicativo no seu HoloLens 2 e siga as instruções no aplicativo3. Run the app on your HoloLens 2 and follow the in-app instructions

Cuidado

Todos os Serviços do Azure usam a Internet, portanto, verifique se o dispositivo está conectado à Internet.All Azure Services uses the internet, so make sure your device is connected to the internet.

Quando o aplicativo estiver em execução no dispositivo, aceite o acesso às seguintes funcionalidades solicitadas:When the application is running on your device, accept access to the following requested capabilities:

  • MicrofoneMicrophone
  • CâmeraCamera

Esses recursos são necessários para serviços como Chat Bot e Visão Personalizada funcionarem corretamente.These capabilities are required for services like Chat Bot and Custom Vision to function properly.

ParabénsCongratulations

Neste tutorial, você foi apresentado à série de tutoriais, aprendeu sobre os recursos que você implementará e como os serviços de Nuvem do Azure se unem para dar vida ao seu aplicativo do HoloLens 2.In this tutorial, you were introduced to the tutorial series, learned about the features you will implement and how Azure Cloud services tie in to making your HoloLens 2 application happen. Você adicionou os componentes necessários ao projeto e preparou a cena para esta série de tutoriais.You added the required components into the project and prepared the scene for this tutorial series.

Na próxima lição, você usará o armazenamento do Azure como uma solução de persistência baseada em nuvem para armazenar dados e imagens.In the next lesson, you will use Azure storage as a cloud based persistence solution for storing data and images.

Próximo tutorial: 2. Integrar o armazenamento do AzureNext tutorial: 2. Integrating Azure storage