Ejercicio: Integración de Azure Custom Vision

Completado

En este módulo, aprenderá a usar Azure Custom Vision. Tomará un conjunto de fotos de un objeto con seguimiento, cargarlo en el servicio Custom Vision e iniciar el proceso de entrenamiento. Luego, usará el servicio para detectar el objeto al que realiza el seguimiento, para lo que capturará fotos desde la fuente de la cámara web.

Descripción de Custom Vision de Azure AI

Custom Vision de Azure AI forma parte de la familia Cognitive Services y se usa para entrenar clasificadores de imágenes. El clasificador de imágenes es un servicio de IA que usa el modelo entrenado para aplicar etiquetas coincidentes. Nuestra aplicación usará esta característica de clasificación para detectar objetos con seguimiento.

Más información sobre Custom Vision.

Preparación de Custom Vision

Antes de empezares preciso crear un proyecto de Custom Vision. La forma más rápida de hacerlo es desde el portal de Custom Vision.

Siga este tutorial de inicio rápido para configurar su cuenta y el proyecto. Siga los pasos hasta la sección Carga y etiquetado de imágenes. Debería crear una etiqueta con cinco imágenes.

Advertencia

Para entrenar un modelo, debe tener al menos dos etiquetas y cinco imágenes por etiqueta. Más adelante agregaremos más imágenes mediante la aplicación. Sin embargo, para usar esta aplicación es necesario crear al menos una etiqueta con cinco imágenes, con el fin de que el proceso de entrenamiento no genere errores más adelante.

Preparación de la escena

  1. En la ventana Proyecto, navega hasta la carpeta Assets>MRTK.Tutorials.AzureCloudServices>Prefabs>Manager.

    Screenshot of Unity with Project window showing path to ObjectDetectionManager prefab.

  2. A partir de ahí, arrastre el objeto prefabricado ObjectDetectionManager hasta la jerarquía de la escena.

    Screenshot of Unity with ObjectDetectionManager script component configuration fields shown in Inspector.

  3. En la ventana Jerarquía, busque el objeto ObjectDetectionManager y selecciónelo. El objeto prefabricado ObjectDetectionManager contiene el componente ObjectDetectionManager (script) y, como puede ver en la ventana Inspector, depende de la configuración de Azure y del proyecto.

Recuperación de las credenciales de recursos de la API de Azure

Las credenciales necesarias para la configuración de ObjectDetectionManager (script) se pueden recuperar tanto de Azure Portal como del portal de Custom Vision.

Recuperación de las credenciales de configuración de Azure

Busque el recurso de Custom Vision del tipo Cognitive Services que creó en la sección Preparación de la escena de este tutorial. Ahí, seleccione Información general o Claves y puntos de conexión para recuperar las credenciales necesarias.

  • Identificador de suscripción de recurso de Azure: Use el identificador de la sección Información general.
  • Nombre del grupo de recursos de Azure: Use el nombre del grupo de recursos de la sección Información general.

Para Nombre de grupo de Cognitive Service, use el nombre de recurso de Custom Vision, seguido de -Prediction.

  • Punto de conexión de predicción base de recursos: use el punto de conexión de Claves y punto de conexión en el recurso -Prediction de Custom Vision.
  • Clave de predicción de API: use la clave 1 de Claves y punto de conexión en el recurso -Prediction de Custom Vision.

Recuperación de las credenciales de configuración del proyecto

En el panel Custom Vision, abra el proyecto que ha creado para este tutorial, seleccione el icono Configuración (engranaje) de la esquina superior derecha de la página para abrir la página de configuración. Encontrará las credenciales necesarias en la sección Recursos del lado derecho y la sección General del lado izquierdo.

  • Punto de conexión base de recurso: Use el punto de conexión de la sección Recursos. Debería ser el mismo que el punto de conexión de Claves y punto de conexión del recurso de Custom Vision.
  • Clave de API: use la clave de la sección Recursos. Debería ser la misma que la clave de Claves y punto de conexión del recurso de Custom Vision.
  • Identificador de proyecto: use el identificador de proyecto de la sección General.
  1. Ahora, con ObjectDetectionManager (script) configurado correctamente, busque el objeto SceneController en la jerarquía de la escena y selecciónelo.

    Screenshot of Unity with SceneController script component configuration fields shown in Inspector.

  2. El campo Object Detection Manager (Administrador de detección de objetos) del componente SceneController está vacío. Arrastre ObjectDetectionManager desde la jerarquía hasta el componente SceneController y guarde la escena.

    Screenshot of Unity with SceneController script component configured.

Toma y carga de imágenes

  1. Ejecute la escena y seleccione Set Object (Establecer objeto). Escriba el nombre de uno de los objetos con seguimiento que creó en la lección anterior. Seleccione el botón Computer Vision en la parte inferior de la tarjeta del objeto.

  2. Se abrirá una ventana nueva. Tomará seis fotos para entrenar el modelo para el reconocimiento de imágenes. Seleccione el botón Cámara y haga una pulsación en el aire para ver el objeto del que desea realizar un seguimiento. Hágalo seis veces.

    Sugerencia

    Para mejorar el entrenamiento del modelo, intente tomar cada imagen desde diferentes ángulos y con distintas condiciones de iluminación.

  3. Una vez que tenga suficientes imágenes, seleccione el botón Train (Entrenar) para iniciar el proceso de entrenamiento del modelo en la nube. Así se cargan todas las imágenes y comienza el entrenamiento. Este proceso puede tardar unos minutos. Un mensaje dentro del menú indica el progreso actual. Cuando indique que se ha completado el proceso, puede detener la aplicación.

    Sugerencia

    ObjectDetectionManager (script) carga directamente las imágenes tomadas en el servicio Custom Vision. Como alternativa, Custom Vision API acepta las direcciones URL de las imágenes. Como ejercicio, puede modificar ObjectDetectionManager (script) para cargar las imágenes en una instancia de Blob Storage en su lugar.

Advertencia

Si se produjese un error en el entrenamiento, compruebe el panel de Custom Vision y asegúrese de que tiene al menos dos etiquetas y de que cada una de ellas tiene al menos cinco imágenes.

Detección de objetos

Ahora puede probar el modelo entrenado. Ejecute la aplicación. En el menú principal, seleccione Buscar objeto y escriba el nombre del objeto al que está haciendo el seguimiento en cuestión. Se muestra la tarjeta del objeto. A continuación, seleccione el botón Custom Vision. ObjectDetectionManager comenzará a realizar capturas de imagen en segundo plano desde la cámara. El menú indicará el progreso de la aplicación. Dirija la cámara hacia el objeto que usó para entrenar el modelo. Pronto, debería detectar el objeto.