Ejercicio: Azure Cloud Services para HoloLens 2

Completado

Con cada capítulo consecutivo, agregará nuevos servicios de Azure Cloud Services para ampliar las características de la aplicación y la experiencia del usuario, al mismo tiempo que conocerá los aspectos básicos de cada servicio en la nube de Azure.

Nota:

Esta serie de módulos se centra en HoloLens 2, pero, debido a la naturaleza multiplataforma de Unity, la mayoría de estas lecciones se podrán aplicar también a aplicaciones móviles y de escritorio.

Objetivos de la aplicación

En esta serie de módulos, creará una aplicación para HoloLens 2 que puede detectar objetos en imágenes y encontrar su ubicación espacial. Nos referiremos a estos objetos como objetos con seguimiento.

El usuario puede crear un objeto con seguimiento para asociar un conjunto de imágenes mediante visión artificial, una ubicación espacial o ambas. Todos los datos deben persistir en la nube.

Características

  • Administración básica de datos e imágenes
  • Entrenamiento y detección de imágenes
  • Almacenamiento de una ubicación espacial y orientación hacia ella

Azure Cloud Services

Usará los siguientes servicios de Azure Cloud Services para implementar las características anteriores:

Azure Storage

Usará Azure Storage para conservar los datos. Azure Storage permite almacenar datos en una tabla y cargar archivos binarios de gran tamaño en forma de imágenes.

Azure Custom Vision

Con Custom Vision de Azure AI (componente de los servicios de Azure AI), puede asociar un conjunto de imágenes a objetos con seguimiento, entrenar un modelo de aprendizaje automático con el conjunto que ha creado y detectar los objetos con seguimiento.

Azure Spatial Anchors

Para almacenar la ubicación de un objeto con seguimiento y proporcionar indicaciones para encontrarlo, usará Azure Spatial Anchors.

Creación y preparación del proyecto de Unity

En esta sección, creará un nuevo proyecto de Unity y lo preparará para el desarrollo de MRTK.

En primer lugar, siga los pasos descritos en la ruta de aprendizaje de HoloLens 2, excepto la sección Compilación de la aplicación en las instrucciones del dispositivo, que incluye los pasos siguientes:

  1. Creación del proyecto de Unity con un nombre adecuado, por ejemplo, Tutoriales en la nube de Azure.
  2. Cambio de la plataforma de compilación
  3. Importación de los recursos esenciales de TextMeshPro
  4. Importación de Mixed Reality Toolkit
  5. Configuración del proyecto de Unity
  6. Crear y configurar la escena y asignar un nombre adecuado a la escena; por ejemplo, AzureCloudServices

Importación de los recursos del tutorial

  1. Agregue el SDK AzurespatialAnchors al proyecto. Para agregar los paquetes, siga este tutorial.

  2. Descargue e importe los siguientes paquetes personalizados de Unity en el orden en que aparecen:

    Después de importar los recursos del tutorial, la ventana Proyecto debe ser similar a esta imagen:

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

Preparación de la escena

En esta sección, preparará la escena agregando algunos de los objetos Prefab del tutorial.

  1. En la ventana Proyecto, navega hasta la carpeta Assets>MRTK.Tutorials.AzureCloudServices>Prefabs>Manager. Mientras mantiene presionado el botón CTRL, seleccione SceneController, RootMenu y DataManager para seleccionar los tres objetos prefabricados:

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

    SceneController (prefab) contiene dos scripts, SceneController (script) y UnityDispatcher (script) . El componente de script SceneController contiene varias funciones de la experiencia de usuario y facilita la funcionalidad de captura de fotos, mientras que UnityDispatcher es una clase auxiliar para permitir la ejecución de acciones en el subproceso principal de Unity.

    RootMenu (prefab) es el principal objeto prefabricado de la interfaz de usuario. Contiene todas las ventanas de la interfaz conectadas entre sí por medio de varios componentes de script pequeños y controla el flujo general de la experiencia de usuario de la aplicación.

    DataManager (prefab) es responsable de comunicarse con Azure Storage. Se explica con más detalle en el siguiente tutorial.

  2. Ahora, con los tres objetos prefabricados aún seleccionados, arrástrelos a la ventana Jerarquía para agregarlos a la escena:

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

  3. Para centrarse en los objetos de la escena, haga doble clic en el objeto RootMenu y vuelva a alejar un poco el zoom. Con el objeto RootMenu aún seleccionado, cambie sus valores en el componente Transformar por lo siguiente:

    Posición: X = 0.0, Y = 1.6, Z = 0.6

    Screenshot of Unity with RootMenu object selected.

    Sugerencia

    Si cree que los iconos grandes de la escena le distraen (por ejemplo, los iconos "T" enmarcados grandes), puede ocultarlos alternando el Gizmos a la posición de desactivado.

Configuración de la escena

En esta sección, conectará SceneManager, DataManager y RootMenu para tener una escena de trabajo para el siguiente tutorial de integración de Azure Storage.

Conexión de los objetos

  1. En la ventana Hierarchy (Jerarquía), seleccione el objeto DataManager.

    Screenshot of Unity with DataManager object selected.

  2. En la ventana Inspector, busque el componente DataManager (Script).. Verá una ranura vacía en el evento On Data Manager Ready ().. Arrastre el objeto SceneController desde la ventana Hierarchy (Jerarquía) al evento On Data Manager Ready ().

    Screenshot of Unity with DataManager event listener added.

  3. Ahora el menú desplegable del evento está activo. Seleccione el menú desplegable, vaya a SceneController y seleccione la opción Init () en el submenú.

    Screenshot of Unity with DataManager event action added.

  4. En la ventana Hierarchy (Jerarquía), seleccione el objeto SceneController. Encontrará el componente SceneController (script) en el inspector.

    Screenshot of Unity with SceneController selected.

  5. Ahora hay varios campos sin rellenar. Vamos a cambiar eso. Mueva el objeto DataManager desde Jerarquía hasta el campo Administrador de datos y, después, mueva el GameObject RootMenu>MainMenu desde Jerarquía hasta el campo Menú principal.

    Screenshot of Unity with SceneController configured.

  6. En la ventana Jerarquía, seleccione el objeto MRTK XR Rig. Asegúrese de que el objeto secundario MRTK Speech esté habilitado. Esto le permite abrir el menú diciendo "Abrir menú".

  7. Ahora la escena está lista para los próximos tutoriales. No olvide guardarlo en el proyecto.

Preparación de la canalización de compilación del proyecto

Nota:

La creación y las pruebas de HoloLens 2 no son obligatorias. Si no tiene un dispositivo HoloLens, puede utilizar el Emulador de HoloLens 2 para realizar las pruebas. Puede adquirir dispositivos en HoloLens.com.

Antes de finalizar la escena, vamos a preparar el proyecto que se va a compilar para HoloLens 2.

1. Agregue otras funcionalidades necesarias

  1. En el menú de Unity, seleccione Editar>Configuración del proyecto para abrir la ventana Configuración del proyecto.

    Screenshot of Unity open Project Settings.

  2. En la ventana Configuración del proyecto, seleccione Jugador y, a continuación, Configuración de publicación:

    Screenshot of Unity Publishing Settings.

  3. En Publishing Settings (Configuración de publicación), desplácese hacia abajo hasta la sección Capabilities (Funciones) y compruebe que están habilitadas las funciones InternetClient, Microphone y SpatialPerception (que ha habilitado al crear el proyecto al principio del tutorial). A continuación, habilite las funcionalidades InternetClientServer, PrivateNetworkClientServer y Webcam:

    Screenshot of Unity Capabilities

2. Implementar la aplicación en HoloLens 2

No podrá ejecutar todas las características que usará en esta serie de tutoriales en el editor de Unity. Por tanto, debe estar familiarizado con la implementación de la aplicación en el dispositivo HoloLens 2 o el emulador.

Sugerencia

Para obtener un recordatorio sobre cómo compilar e implementar el proyecto de Unity en HoloLens 2, puede consultar las instrucciones de los tutoriales de introducción: Compilación e implementación de la aplicación.

3. Ejecutar la aplicación en HoloLens 2 y seguir las instrucciones desde la aplicación

Precaución

Todos los servicios de Azure usan Internet, por lo que debe asegurarse de que el dispositivo esté conectado a Internet.

Cuando la aplicación se esté ejecutando en el dispositivo, conceda acceso a las siguientes características solicitadas:

  • Micrófono
  • Cámara

Estas funcionalidades son necesarias para que los servicios como Custom Vision funcionen correctamente.