Ejercicio: Entrenamiento de un modelo de aprendizaje automático para reconocer osos polares

Completado

Servicios de Azure AI es un conjunto de más de 20 servicios y API respaldados por aprendizaje automático. Los desarrolladores pueden usar las API para incorporar en sus aplicaciones características inteligentes, como el reconocimiento facial y el análisis de opiniones. Custom Vision de Azure AI es simplemente un miembro de la familia de servicios de Azure AI. Su finalidad es crear modelos de clasificación de imágenes que "aprenden" a partir de las imágenes etiquetadas que proporciona. ¿Quiere saber si una fotografía contiene una imagen de una flor? Entrene Custom Vision mediante una colección de imágenes de flores. Después, puede indicarle si la imagen siguiente incluye una flor, o incluso qué tipo de flor aparece en una imagen.

Screenshot that shows an example of results when using the Azure AI Custom Vision service.

El servicio Custom Vision expone dos API: Custom Vision Training API y Custom Vision Prediction API. Puede compilar, entrenar y probar modelos de clasificación de imágenes mediante el portal de Custom Vision, o bien puede compilar, entrenar y probar los modelos mediante la API Custom Vision Training. Después de haber entrenado un modelo, puede usar la API Custom Vision Prediction para compilar aplicaciones que utilicen el modelo. Las dos son API REST a las que se puede llamar desde diversos lenguajes de programación.

En esta unidad, creará un modelo de Custom Vision y lo entrenará para diferenciar entre varios tipos de fauna del Ártico.

Compilación de un modelo de Custom Vision

Comenzará por crear un proyecto de Custom Vision. Después, cargará imágenes de osos polares, zorros árticos y morsas, y las etiquetará para que Custom Vision pueda aprender a diferenciarlas.

Creación de un nuevo proyecto, recurso y grupo de recursos

  1. En el explorador, vaya al portal de Custom Vision. Seleccione Iniciar sesión e inicie sesión con la cuenta de Microsoft. Acepte los términos del servicio.

  2. Seleccione Nuevo proyecto.

  3. En Create new project (Crear nuevo proyecto):

    1. Escriba un nombre para el proyecto y una descripción.
    2. Junto a Recurso, seleccione crear nuevo para crear un recurso de servicios de Azure AI.

    Screenshot that shows a new project name and description, and the create new link option selected.

    Creación de un proyecto de Cognitive Services

  4. En Create New Resource (Crear recurso):

    1. Escriba polar-bear-vision para el nombre del recurso.
    2. Seleccione su suscripción.
    3. Junto a Grupo de recursos, seleccione crear nuevo para crear un grupo de recursos de servicios de Azure AI.

    Screenshot that shows values to select or enter to create a new resource, with the create new link selected.

    Cree un recurso de Cognitive Services.

  5. En Create New Resource Group (Crear grupo de recursos):

    1. Escriba polar-bear-rg para el nombre del grupo de recursos.
    2. Asegúrese de que Location (Ubicación) está establecida en South Central US (Centro-sur de EE. UU.) y, después, seleccione Create resource group (Crear grupo de recursos).

    Screenshot that shows the name and location for a new resource group, with the Create resource group button selected.

    Creación de un grupo de recursos de Cognitive Services

    La información del nuevo grupo de recursos se agrega en Create New Resource (Crear recurso).

  6. En Create New Resource, seleccione Create resource.

    Screenshot that shows the complete settings for a Azure AI services resource, with the Create resource button selected.

    Creación del recurso de Cognitive Services

  7. En Create new project (Crear proyecto), asegúrese de que tiene los valores siguientes:

    • Recurso:polar-bear-vision
    • Tipos de proyecto:Clasificación
    • Tipos de clasificaciónMulticlase (pestaña única por imagen)
    • Dominios:General

    Nota:

    Un dominio optimiza un modelo para determinados tipos de imagen. Por ejemplo, si el objetivo consiste en clasificar imágenes de alimentos por los tipos de alimentos que contienen o el origen étnico de los platos, resulta útil seleccionar el dominio Food (Alimentos). Para los escenarios en los que no coincide ninguno de los dominios ofrecidos, o bien si no está seguro de cuál elegir, seleccione el dominio General.

    Screenshot that shows settings in the Create new project dialog box.

    Comprobación de la configuración

    Cuando todos los valores de configuración sean correctos, seleccione Crear proyecto. Se abre el proyecto.

Obtención de las imágenes para usar en el proyecto

Ya está listo para obtener las imágenes que se van a usar en el proyecto.

  1. Descargue el archivo ZIP de imágenes de entrenamiento de zorros árticos. Descomprima el archivo.

  2. Seleccione Agregar imágenes para agregar las imágenes de zorros árticos al proyecto.

    Screenshot that shows adding images to the Custom Vision project.

    Adición de imágenes al proyecto de Custom Vision

  3. En Abrir, seleccione todas las imágenes de zorros árticos que se encuentran en la carpeta del archivo descomprimido. Seleccione Abrir para elegir las imágenes.

    Screenshot that shows all images selected and ready to open.

    Apertura de las imágenes para usar en el proyecto

  4. En la opción Mis etiquetas de las imágenes, escriba arctic-fox. Después, seleccione Cargar 130 archivos. Espere a que termine la carga.

    Screenshot that shows the tag setting and the images ready to upload.

    Adición de la etiqueta de imagen y carga de las imágenes en el proyecto

    Cuando las imágenes se hayan cargado correctamente, se muestra un resumen. Seleccione Listo.

Repita estos pasos para las imágenes de osos polares:

  1. Descargue el archivo ZIP de imágenes de entrenamiento de osos polares. Descomprima el archivo.

  2. Seleccione Agregar imágenes para cargar las imágenes de osos polares en la carpeta del archivo descomprimido al proyecto. Para estas imágenes, establezca Mis etiquetas en polar-bear. Espere a que termine la carga: en esta carpeta hay 140 archivos. Una vez que haya finalizado la carga, seleccione Listo.

Por último, repita estos pasos para las imágenes de las morsas:

  1. Descargue el archivo ZIP de imágenes de entrenamiento de morsas. Descomprima el archivo.

  2. Seleccione Agregar imágenes para cargar en el proyecto las imágenes de morsas en la carpeta del archivo descomprimido. Establezca Mis etiquetas en walrus. Espere a que termine la carga: en esta carpeta hay 138 archivos. Una vez que haya finalizado la carga, seleccione Listo.

Con las imágenes etiquetadas y cargadas, el paso siguiente consiste en entrenar el modelo para que pueda distinguir entre zorros árticos, osos polares y morsas, y determinar si una imagen contiene uno de estos animales.

Entrenamiento y prueba del modelo

Ahora ha llegado el momento de entrenar el modelo con las imágenes que etiquetó y cargó. Después de entrenar el modelo, lo probará para determinar su capacidad para identificar la fauna del Ártico en fotografías. Después de haber entrenado el modelo, se puede mejorar si se cargan más imágenes etiquetadas y se vuelve a entrenar.

  1. Para entrenar el modelo, seleccione Entrenar. Cuando se le pida que seleccione un tipo de entrenamiento, seleccione Quick Training (Entrenamiento rápido).

    Screenshot that shows the Train button highlighted on the toolbar.

    Entrenamiento del modelo

  2. Espere a que se complete el proceso de entrenamiento. (Este proceso puede tardar unos minutos). Después, revise las estadísticas de entrenamiento que se muestran para la iteración 1.

    Nota:

    Cada vez que entrene el modelo, se crea una versión (iteración). Custom Vision mantiene todas las iteraciones para que pueda elegir qué versión del modelo usar.

    Screenshot that shows the results of training the model in iteration 1.

    Resultados del entrenamiento del modelo

    La precisión y la coincidencia son dos medidas independientes pero relacionadas de la exactitud del modelo. Imagine que se presentan tres imágenes de osos polares y tres de morsas al modelo. Identifica correctamente dos de las imágenes que contienen osos polares como imágenes de osos polares, pero incorrectamente dos de las imágenes de morsas como imágenes de osos polares. En este caso, la precisión sería del 50 % (dos de las cuatro imágenes que ha clasificado como imágenes de osos polares lo son realmente). Su coincidencia sería del 67 % (ha identificado correctamente dos de las tres imágenes de osos polares como imágenes de osos polares). Obtengan más información sobre la precisión y la coincidencia en Precisión y exhaustividad.

    La precisión media (PM) es una tercera medida de la exactitud del modelo. Mientras que la precisión mide la tasa de falsos positivos y la coincidencia la de falsos negativos, PM es la media de las tasas de falsos positivos calculada sobre un intervalo de umbrales. Para obtener más información, vea Descripción de la métrica de evaluación de mapa para la detección de objetos.

  3. Ahora, pruebe el modelo mediante la característica Prueba rápida del portal. Puede usar Prueba rápida para enviar imágenes al modelo y ver cómo las clasifica mediante los conocimientos adquiridos durante el entrenamiento.

  4. Descargue el archivo ZIP de imágenes de prueba. Descomprima el archivo localmente en el equipo.

  5. Seleccione Prueba rápido.

  6. Seleccione Examinar archivos locales y, después, vaya al directorio testing-images/polar-bear. Seleccione cualquiera de las imágenes de prueba de ese directorio.

  7. EnPrueba rápida, examine los resultados de la prueba. ¿Cuál es la probabilidad de que la imagen contenga un oso polar? ¿Cuál es la probabilidad de que la imagen contenga un zorro ártico o una morsa?

  8. Repita esta prueba con una de las imágenes del directorio testing-images/arctic-fox. ¿Qué capacidad tiene el modelo para diferenciar correctamente entre zorros árticos y osos polares?

  9. El directorio testing-images contiene subdirectorios con un total de 30 imágenes diferentes para las pruebas. Realice más pruebas rápidas con estas imágenes hasta que esté satisfecho con la capacidad del modelo para predecir si una imagen contiene un oso polar.

  10. Vuelva al proyecto. Seleccione la pestaña Rendimiento y después Publicar.

  11. En Publicar modelo, para Recurso de predicción, seleccione polar-bear-vision, el nombre del recurso. Asegúrese de elegir el nombre del recurso y no el nombre del grupo de recursos. Seleccione Publicar para publicar el modelo.

    Screenshot that shows the Publish Model pane with the Publish button highlighted.

    Publicar el modelo

  12. Seleccione Dirección URL de predicción.

  13. En How to use the Prediction API (Cómo usar Prediction API), copie los valores siguientes y guárdelos para usarlos más adelante:

    1. En If you have an image URL (Si tiene la dirección URL de una imagen), copie la dirección URL y guárdela en el editor de texto que prefiera para poder recuperarla más adelante.
    2. En Set Prediction-Key Header to (Establecer el encabezado de clave de predicción en), copie y después guarde el valor de clave. Este valor se debe pasar en cada llamada a la dirección URL de predicción.

    Screenshot that shows the How to use the Prediction A P I pane.

    Copia de la dirección URL de Prediction API

  14. Para finalizar, seleccione Got it! (Entendido).

Ahora tiene un modelo de Machine Learning que puede distinguir si una imagen contiene un oso polar, y una dirección URL y una clave de API para invocar el modelo. El paso siguiente consiste en invocar el modelo cada vez que se carga una imagen en Blob Storage. Azure Functions es la herramienta perfecta para este trabajo.