3. Integración de Azure Custom Vision3. Integrating Azure Custom Vision

En este tutorial, aprenderá a usar Azure Custom Vision. Cargará un conjunto de fotos para asociarlo a un objeto con seguimiento, las cargará en el servicio Custom Vision y comenzará el proceso de entrenamiento.In this tutorial, you will learn how to use Azure Custom Vision.You will upload a set of photos to associate it with a Tracked Object, upload them to the Custom Vision service and start the training process. A continuación, usará el servicio para detectar el objeto con seguimiento al capturar las fotos de la fuente de la cámara web.Then you will use the service to detect the Tracked Object by capturing photos from the webcam feed.

ObjetivosObjectives

  • Aprender los aspectos básicos de Azure Custom VisionLearn the basics about Azure Custom Vision
  • Aprender a configurar la escena para usar Custom Vision en este proyecto.Learn how to setup the scene to use Custom Vision in this project
  • Aprender a integrar, cargar, entrenar y detectar imágenesLearn how to integrate upload, train and detect images

Descripción de Azure Custom VisionUnderstanding Azure Custom Vision

Azure Custom Vision forma parte de la familia Cognitive Services y se usa para entrenar clasificadores de imágenes.Azure Custom Vision is part of the Cognitive Services family and is used to train image classifiers. El clasificador de imágenes es un servicio de IA que usa el modelo entrenado para aplicar etiquetas coincidentes.The image classifier is an AI service that uses the trained model to apply matching tags. Nuestra aplicación usará esta característica de clasificación para detectar objetos con seguimiento.This classification feature will be used by our application to detect Tracked Objects.

Más información sobre Azure Custom Vision.Learn more about Azure Custom Vision.

Preparación de Azure Custom VisionPreparing Azure Custom Vision

Antes de empezar, tiene que crear un proyecto de Custom Vision, la manera más rápida es usar el portal web.Before you can start, you have to create a custom vision project, the fastest way is by using the web portal.

Siga este tutorial de inicio rápido para configurar la cuenta y el proyecto hasta la sección Carga y etiquetado de imágenes.Follow this quickstart tutorial to setup your account and project until section Upload and tag images.

Advertencia

Para entrenar un modelo, debe tener al menos 2 etiquetas y 5 imágenes por etiqueta.To train a model you need to have at least 2 tags and 5 images per tag. Para usar esta aplicación, debe crear al menos una etiqueta con 5 imágenes, de modo que el proceso de entrenamiento no genere errores más adelante.To use this application you should at least create one tag with 5 images, so that the training process later won't fail.

Preparación de la escenaPreparing the scene

En la ventana Proyecto, navega hasta la carpeta Assets > MRTK.Tutorials.AzureCloudServices > Prefabs > Manager.In the Project window, navigate to the Assets > MRTK.Tutorials.AzureCloudServices > Prefabs > Manager folder.

Unity con la ventana Project (Proyecto) que muestra la ruta de acceso al objeto prefabricado ObjectDetectionManager

Desde ahí, arrastre el recurso prefabricado ObjectDetectionManager hasta la jerarquía de la escena.From there drag the prefab ObjectDetectionManager into the scene Hierarchy.

Unity con los campos de configuración del componente de script ObjectDetectionManager que aparecen en Inspector

En la ventana Hierarchy (Jerarquía), busque el objeto ObjectDetectionManager y selecciónelo.In the Hierarchy window locate the ObjectDetectionManager object and select it. El recurso prefabricado ObjectDetectionManager contiene el componente ObjectDetectionManager (script) y, como puede ver en la ventana Inspector, depende de varios valores.The ObjectDetectionManager prefab contains the ObjectDetectionManager (script) component and as you can see from the Inspector window it depends on several settings.

Recuperación de credenciales de recursos de API de AzureRetrieving Azure api resource credentials

Las credenciales necesarias para la configuración de ObjectDetectionManager (script) se pueden recuperar de Azure Portal y del portal de Custom Vision.The necessary credentials for the ObjectDetectionManager (script) settings can be retrieve from the Azure Portal and the custom vision portal.

Azure PortalAzure Portal

Busque el recurso personalizado de Custom Vision de tipo Cognitive Services que ha creado en la sección Preparación de la escena de este tutorial.Find and locate the custom vision resource of type Cognitive Services you have created in the Preparing the scene section of this tutorial. Haga clic en Keys and Endpoint (Claves y punto de conexión) para recuperar las credenciales necesarias.There click on Keys and Endpoint to retrieve the necessary credentials.

Panel de Custom VisionCustom Vision Dashboard

En el panel de Custom Vision, abra el proyecto que ha creado para este tutorial y haga clic en la esquina superior derecha de la página en el icono de engranaje para abrir la página de configuración.In the custom vision dashboard, open the project you have created for this tutorial and click on the top right corner of the page on the gear icon to open the settings page. Aquí, en la sección Resources (Recursos) de la derecha encontrará las credenciales necesarias.Here on the right hand Resources section you will find the necessary credentials.

Ahora con ObjectDetectionManager (script) configurado correctamente, busque el objeto de SceneController en la jerarquía de escenas y selecciónelo.Now with the ObjectDetectionManager (script) setup correctly, find the SceneController object in your scene Hierarchy and select it.

Unity con los campos de configuración del componente de script SceneController que aparecen en el Inspector

Se ve que el campo Object Detection Manager (Administrador de detección de objetos) en el componente SceneController está vacío, arrastre ObjectDetectionManager desde la jerarquía hasta ese campo y guarde la escena.You see Object Detection Manager field in the SceneController component is empty, drag the ObjectDetectionManager from the Hierarchy into that field and save the scene.

Unity con el componente de script SceneController configurado

Toma y carga de imágenesTake and upload images

Ejecute la escena y haga clic en Set Object (Establecer objeto), escriba el nombre de uno de los objetos con seguimiento que ha creado en la lección anterior.Run the scene and click on Set Object, type in the name for one of the Tracked Objects you have created in the previous lesson. Ahora, haga clic en el botón Computer Vision (Visión de equipo) que se encuentra en la parte inferior de la Object Card (Tarjeta de objeto).Now click on Computer Vision button you can find at the bottom of the Object Card.

Se abrirá una nueva ventana en la que tendrá que tomar seis fotos para entrenar el modelo para el reconocimiento de imágenes.A new window will open where you have to take six photos to train the model for image recognition. Haga clic en el botón Camera (Cámara) y realice una pulsación en el aire al mirar el objeto del que desea realizar un seguimiento, haga esto seis veces.Click on the Camera button and perform an AirTap when you look on the object you like to track, do this six times.

Sugerencia

Para mejorar el entrenamiento del modelo, intente tomar cada imagen desde distintos ángulos y con distintas condiciones de iluminación.To improve the model training try to take each image from different angles and lighting conditions.

Una vez que tenga suficientes imágenes, haga clic en el botón Train (Entrenar) para iniciar el proceso de entrenamiento del modelo en la nube.Once you have enough images click on the Train button to start the model training process in the cloud. Al activar el entrenamiento se cargarán todas las imágenes y, luego, comenzará el entrenamiento, lo que puede tardar un minuto o más.Activating the training will upload all images and then start the training, this can take up to a minute or more. Un mensaje dentro del menú indica el progreso actual y, una vez que indica la finalización, puede detener la aplicación.A message inside the menu indicates the current progress and once it indicates the completion you can stop the application

Sugerencia

ObjectDetectionManager (script) carga directamente las imágenes tomadas en el servicio Custom Vision.The ObjectDetectionManager (script) directly uploads taken images into the Custom Vision service. Como alternativa, Custom Vision API acepta las direcciones URL de las imágenes; como ejercicio, puede modificar ObjectDetectionManager (script) para que cargue las imágenes en un almacenamiento de blobs en su lugar.As an alternative the custom vision API accepts URLs to the images, as an exercise you can modify the ObjectDetectionManager (script) to upload the images to a Blob storage instead.

Detección de objetosDetect objects

Ahora puede poner a prueba el modelo entrenado; ejecute la aplicación y, en el menú principal haga clic en Search Object (Buscar objeto) y escriba el nombre del objeto con seguimiento en cuestión.You can now put the trained model to the test, run the application and from the main menu click on Search Object and type the name of the Tracked Object in question. Aparecerá Object Card (Tarjeta de objeto) y haga clic en el botón Custom Vision.The Object Card will appear and click on the Custom Vision button. Desde aquí, ObjectDetectionManager comenzará a tomar capturas de imagen en segundo plano desde la cámara, y el progreso se indicará en el menú.From here the ObjectDetectionManager will start taking image captures in the background from the camera and the progress will be indicated on the menu. Apunte la cámara al objeto que usó para entrenar el modelo y verá que, después de un breve lapso, detectará el objeto.Point the camera to the object you used to train the model and you will see that after a short while it will detect the object.

EnhorabuenaCongratulations

En este tutorial ha aprendido cómo se puede usar Azure Custom Vision para entrenar imágenes y usar el servicio de clasificación para detectar imágenes que coincidan con el objeto con seguimiento asociado.In this tutorial you learned how Azure Custom Vision can be used to train images and use the classification service to detect images that match the associated Tracked Object.

En el siguiente tutorial aprenderá a usar Azure Spatial Anchors para vincular un objeto con seguimiento a una ubicación en el mundo físico y a mostrar una flecha que le devolverá al usuario a la ubicación vinculada del objeto con seguimiento.In the next tutorial you will learn how to use Azure Spatial Anchors to link a Tracked Object with a location in the physical world and how to display an arrow that will guide the user back to the Tracked Object's linked location.