Compartir a través de


Creación de un modelo personalizado de Image Analysis

Importante

Esta característica ya está en desuso. El 10 de enero de 2025, se retirará versión preliminar de la API de Azure AI Image Analysis 4.0 Custom Image Classification, Custom Object Detection y Product Recognition. Después de esta fecha, se producirá un error en las llamadas API a estos servicios.

Para mantener un funcionamiento sin problemas de los modelos, realice la transición a Custom Vision de Azure AI, que ahora está disponible con carácter general. Custom Vision ofrece una funcionalidad similar a estas características de retirada.

Image Analysis 4.0 le permite entrenar un modelo personalizado con sus propias imágenes de entrenamiento. Al etiquetar las imágenes de forma manual, puede entrenar un modelo para aplicar etiquetas personalizadas a las imágenes (clasificación de imágenes) o detectar objetos personalizados (detección de objetos). Los modelos de Image Analysis 4.0 son eficaces, en particular, en el aprendizaje de pocas tomas, por lo que puede obtener modelos precisos con menos datos de entrenamiento.

En esta guía, se muestra cómo crear y entrenar un modelo de clasificación de imágenes personalizado. Se indican las pocas diferencias entre el entrenamiento de un modelo de clasificación de imágenes y el modelo de detección de objetos.

Nota:

La personalización del modelo está disponible a través de la API de REST y Vision Studio, pero no a través de los SDK de lenguaje cliente.

Requisitos previos

  • Suscripción a Azure. Puede crear una de forma gratuita.
  • Una vez que tenga la suscripción de Azure, cree un recurso de Visión en Azure Portal para obtener la clave y el punto de conexión. Si sigue esta guía con el uso de Vision Studio, debe crear el recurso en la región Este de EE. UU. Tras su implementación, seleccione Ir al recurso. Copie la clave y el punto de conexión en una ubicación temporal para su uso posterior.
  • Un recurso de Azure Storage. Cree un Recurso de almacenamiento.
  • Un conjunto de imágenes con el que entrenar al modelo de clasificación. Puede usar el conjunto de imágenes de ejemplo en GitHub. O bien, puede usar sus propias imágenes. Aproximadamente solo necesita de 3 a 5 imágenes por clase.

Nota:

No se recomienda usar modelos personalizados para los entornos críticos para la empresa debido a una posible latencia alta. Cuando los clientes entrenan modelos personalizados en Vision Studio, esos modelos personalizados pertenecen al recurso de Visión en el que se entrenaron y el cliente puede realizar llamadas a esos modelos mediante la API Analyze Image. Cuando realizan estas llamadas, el modelo personalizado se carga en la memoria y se inicializa la infraestructura de predicción. Mientras esto sucede, los clientes pueden experimentar una latencia mayor de la esperada al recibir resultados de predicción.

Crear un nuevo modelo personalizado

Para empezar, vaya a Vision Studio y seleccione la pestaña Análisis de imágenes. A continuación, seleccione el icono Personalizar modelos.

Captura de pantalla del icono Personalizar modelos.

A continuación, inicie sesión con su cuenta de Azure y seleccione el recurso de Visión. Si no tienes una, puedes crearla desde esta pantalla.

Captura de pantalla de la pantalla de selección de recursos.

Preparar imágenes de entrenamiento

Debe cargar las imágenes de entrenamiento en un contenedor de Azure Blob Storage. Vaya al recurso de almacenamiento en el Azure Portal y vaya a la pestaña Explorador de almacenamiento. Aquí puede crear un contenedor de blobs y cargar las imágenes. Colóquelos todos en la raíz del contenedor.

Agregar un conjunto de datos

Para entrenar un modelo personalizado, debe asociarlo a un conjunto de datos donde proporcione imágenes y su información de etiqueta como datos de entrenamiento. En Vision Studio, seleccione la pestaña Conjuntos de datos para ver los conjuntos de datos.

Para crear un nuevo conjunto de datos, seleccione Agregar nuevo conjunto de datos. En la ventana emergente, escriba un nombre y seleccione un tipo de conjunto de datos para el caso de uso. Los modelos de clasificación de imágenes aplican etiquetas de contenido a toda la imagen, mientras que los modelos de detección de objetos aplican etiquetas de objeto a ubicaciones específicas de la imagen. Los modelos de reconocimiento de productos son una subcategoría de los modelos de detección de objetos optimizados para detectar productos comerciales.

Recorte de pantalla del cuadro de diálogo para crear un nuevo conjunto de datos.

A continuación, seleccione el contenedor de la cuenta de Azure Blob Storage donde ha almacenado las imágenes de entrenamiento. Active la casilla para permitir que Vision Studio lea y escriba en el contenedor de Blob Storage. Este es un paso necesario para importar datos etiquetados. Cree el conjunto de datos.

Crear un proyecto de etiquetado de Azure Machine Learning

Necesita un archivo COCO para transmitir la información de etiquetado. Una manera sencilla de generar un archivo COCO es crear un proyecto de Azure Machine Learning, que incluye un flujo de trabajo de etiquetado de datos.

En la página de detalles del conjunto de datos, seleccione Agregar un nuevo proyecto de etiquetado de datos. Asígnele un nombre y seleccione Crear una nueva área de trabajo. Eso abre una nueva pestaña de Azure Portal donde puede crear el proyecto de Azure Machine Learning.

Recorte de pantalla del proyecto Crear etiquetado de datos de Azure Machine Learning.

Una vez creado el proyecto de Azure Machine Learning, vuelva a la pestaña Vision Studio y selecciónelo en Área de trabajo. El portal de Azure Machine Learning se abrirá en una nueva pestaña del explorador.

Creación de etiquetas

Para iniciar el etiquetado, siga la indicación Agregar clases de etiquetas para agregar clases de etiquetas.

Recorte de pantalla que muestra el botón Agregar clases de etiqueta.

Recorte de pantalla que muestra el botón Agregar categorías de etiquetas.

Después de agregar todas las clases de etiquetas, guárdelas. Seleccione Iniciar en el proyecto y luego seleccione Etiquetar datos en la parte superior.

Recorte de pantalla que muestra el botón Iniciar etiquetado de datos.

Etiquetado manual de los datos de entrenamiento

Elija Iniciar etiquetado y siga las indicaciones para etiquetar todas las imágenes. Cuando haya terminado, vuelva a la pestaña Vision Studio del explorador.

Ahora seleccione Agregar archivo COCO y luego seleccione Importar archivo COCO desde un proyecto de etiquetado de datos de Azure ML. Esto importa los datos etiquetados de Azure Machine Learning.

El archivo COCO que creó se almacena ahora en el contenedor de Azure Storage que ha vinculado a este proyecto. Ahora puede importarlo en el flujo de trabajo de personalización del modelo. Selecciónela en la lista desplegable. Después de importar el archivo COCO en el conjunto de datos, este se puede usar para entrenar un modelo.

Nota:

Si tiene un archivo COCO listo para importar, vaya a la pestaña Conjuntos de datos y seleccione Agregar archivos COCO a este conjunto de datos. Puede optar por agregar un archivo COCO específico desde una cuenta de Blob Storage o importarlo desde el proyecto de etiquetado de Azure Machine Learning.

Actualmente, Microsoft está abordando un problema que provoca que la importación de archivos COCO falle con conjuntos de datos grandes cuando se inicia en Vision Studio. Para entrenar con un conjunto de datos grande, se recomienda usar la API de REST en su lugar.

Recorte de pantalla del cuadro de diálogo Importar archivo COCO.

Acerca de los archivos COCO

Los archivos COCO son archivos JSON con campos obligatorios específicos: "images", "annotations" y "categories". Un archivo COCO de ejemplo tendrá este aspecto:

{
 "images": [
   {
     "id": 1,
     "width": 500,
     "height": 828,
     "file_name": "0.jpg",
     "absolute_url": "https://blobstorage1.blob.core.windows.net/cpgcontainer/0.jpg"
   },
    {
      "id": 2,
      "width": 754,
      "height": 832,
      "file_name": "1.jpg",
      "absolute_url": "https://blobstorage1.blob.core.windows.net/cpgcontainer/1.jpg"
    },

   ...

  ],
  "annotations": [
    {
      "id": 1,
      "category_id": 7,
      "image_id": 1,
      "area": 0.407,
      "bbox": [
        0.02663142641129032,
        0.40691584277841153,
        0.9524163571731749,
        0.42766634515266866
      ]
    },
    {
      "id": 2,
      "category_id": 9,
      "image_id": 2,
      "area": 0.27,
      "bbox": [
        0.11803319477782331,
        0.41586723392402375,
        0.7765206955096307,
        0.3483334397217212
      ]
    },
    ...

  ],
  "categories": [
    {
      "id": 1,
      "name": "vegall original mixed vegetables"
    },
    {
      "id": 2,
      "name": "Amy's organic soups lentil vegetable"
    },
    {
      "id": 3,
      "name": "Arrowhead 8oz"
    },

    ...

  ]
}

Referencia de campos del archivo COCO

Si está generando su propio archivo COCO desde cero, asegúrese de que todos los campos necesarios se rellenen con los detalles correctos. Estas tablas describen cada campo de un archivo COCO:

"images"

Clave Tipo Description ¿Necesario?
id integer Identificador de imagen único; empieza desde 1
width integer Ancho de la imagen en píxeles
height integer Alto de la imagen en píxeles
file_name string Nombre único de la imagen.
absolute_url o coco_url string Ruta de acceso de imagen como un URI absoluto a un blob en un contenedor de blobs. El recurso de Visión debe tener permiso para leer los archivos de anotación y todos los archivos de imagen a los que se hace referencia.

Puede encontrar el valor de absolute_url en las propiedades del contenedor de blobs.

Dirección URL absoluta

"annotations"

Clave Tipo Description ¿Necesario?
id integer Id. de la anotación
category_id integer Id. de la categoría definida en la sección categories
image_id integer Id. de la imagen
area integer Valor de "Ancho" x "Alto" (tercer y cuarto valor de bbox) No
bbox list[float] Coordenadas relativas del cuadro de límite (de 0 a 1), en el orden de "Izquierda", "Superior", "Ancho", "Alto"

"categories"

Clave Tipo Description ¿Necesario?
id integer Id. único para cada categoría (clase de etiqueta). Estos deben estar presentes en la sección annotations.
name string Nombre de la categoría (clase de etiqueta)

Comprobación de archivos COCO

Puede usar nuestro código de ejemplo de Python para comprobar el formato de un archivo COCO.

Entrenar el modelo personalizado

Para empezar a entrenar un modelo con el archivo COCO, vaya a la pestaña Modelos personalizados y seleccione Agregar un nuevo modelo. Escriba un nombre para el modelo y seleccione Image classification o Object detection como tipo de modelo.

Recorte de pantalla del cuadro de diálogo para entrenar un nuevo modelo.

Seleccione el conjunto de datos, que ahora está asociado al archivo COCO que contiene la información de etiquetado.

Luego seleccione un presupuesto de tiempo y entrene el modelo. Para obtener ejemplos pequeños, puede usar un presupuesto de 1 hour.

Recorte de pantalla que muestra los detalles del entrenamiento que se van a revisar.

El entrenamiento puede tardar en un rato en completarse. Los modelos de Image Analysis 4.0 pueden ser precisos con solo un pequeño conjunto de datos de entrenamiento, pero tardan más tiempo en entrenarse que los modelos anteriores.

Evaluar el modelo entrenado

Una vez completado el entrenamiento, puede ver la evaluación del rendimiento del modelo. Se usan las métricas siguientes:

  • Clasificación de imágenes: Precisión promedio, Precisión con mejor puntuación, Precisión con mejores cinco
  • Detección de objetos: Media de precisión promedio @ 30, Media de precisión promedio @ 50, Media de precisión promedio @ 75

Si no se proporciona un conjunto de evaluación al entrenar el modelo, el rendimiento notificado se calcula en función de parte del conjunto de entrenamiento. Se recomienda encarecidamente usar un conjunto de datos de evaluación (usando el mismo proceso que antes) para tener una estimación confiable del rendimiento del modelo.

Recorte de pantalla que muestra los resultados de la evaluación.

Prueba del modelo personalizado en Vision Studio

Una vez que haya creado un modelo personalizado, puede probarlo seleccionando el botón Probar en la pantalla de evaluación del modelo.

Captura de pantalla de la pantalla de evaluación del modelo con el botón

Esto le lleva a la página Extraer etiquetas comunes de imágenes. Elija el modelo personalizado en el menú desplegable y cargue una imagen de prueba.

Recorte de pantalla de selección del modelo de prueba en Vision Studio.

Los resultados de la predicción aparecen en la columna derecha.

En esta guía, ha creado y entrenado un modelo de clasificación de imágenes personalizado con Image Analysis. A continuación, obtenga más información sobre la API Analyze Image 4.0 para que pueda llamar al modelo personalizado desde una aplicación mediante REST.