Ejercicio: Entrenamiento de un modelo de aprendizaje automático para reconocer osos polares
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.
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
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.
Seleccione Nuevo proyecto.
En Create new project (Crear nuevo proyecto):
- Escriba un nombre para el proyecto y una descripción.
- Junto a Recurso, seleccione crear nuevo para crear un recurso de servicios de Azure AI.
Creación de un proyecto de Cognitive Services
En Create New Resource (Crear recurso):
- Escriba polar-bear-vision para el nombre del recurso.
- Seleccione su suscripción.
- Junto a Grupo de recursos, seleccione crear nuevo para crear un grupo de recursos de servicios de Azure AI.
Cree un recurso de Cognitive Services.
En Create New Resource Group (Crear grupo de recursos):
- Escriba polar-bear-rg para el nombre del grupo de recursos.
- 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).
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).
En Create New Resource, seleccione Create resource.
Creación del recurso de Cognitive Services
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.
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.
Descargue el archivo ZIP de imágenes de entrenamiento de zorros árticos. Descomprima el archivo.
Seleccione Agregar imágenes para agregar las imágenes de zorros árticos al proyecto.
Adición de imágenes al proyecto de Custom Vision
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.
Apertura de las imágenes para usar en el proyecto
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.
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:
Descargue el archivo ZIP de imágenes de entrenamiento de osos polares. Descomprima el archivo.
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:
Descargue el archivo ZIP de imágenes de entrenamiento de morsas. Descomprima el archivo.
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.
Para entrenar el modelo, seleccione Entrenar. Cuando se le pida que seleccione un tipo de entrenamiento, seleccione Quick Training (Entrenamiento rápido).
Entrenamiento del modelo
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.
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.
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.
Descargue el archivo ZIP de imágenes de prueba. Descomprima el archivo localmente en el equipo.
Seleccione Prueba rápido.
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.
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?
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?
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.
Vuelva al proyecto. Seleccione la pestaña Rendimiento y después Publicar.
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.Publicar el modelo
Seleccione Dirección URL de predicción.
En How to use the Prediction API (Cómo usar Prediction API), copie los valores siguientes y guárdelos para usarlos más adelante:
- 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.
- 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.
Copia de la dirección URL de Prediction API
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.