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.
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.
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.
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.
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.
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.
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.
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 | Sí |
width |
integer | Ancho de la imagen en píxeles | Sí |
height |
integer | Alto de la imagen en píxeles | Sí |
file_name |
string | Nombre único de la imagen. | Sí |
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. | Sí |
Puede encontrar el valor de absolute_url
en las propiedades del contenedor de blobs.
"annotations"
Clave | Tipo | Description | ¿Necesario? |
---|---|---|---|
id |
integer | Id. de la anotación | Sí |
category_id |
integer | Id. de la categoría definida en la sección categories |
Sí |
image_id |
integer | Id. de la imagen | Sí |
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" | Sí |
"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 . |
Sí |
name |
string | Nombre de la categoría (clase de etiqueta) | Sí |
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.
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
.
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.
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.
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.
Los resultados de la predicción aparecen en la columna derecha.
Contenido relacionado
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.