Configurar un proyecto de etiquetado de imágenes

Aprenda a crear y ejecutar proyectos de etiquetado de datos para etiquetar imágenes en Azure Machine Learning. Use el etiquetado asistido por aprendizaje automático (ML) o el etiquetado con intervención humana para ayudar con la tarea.

Configure etiquetas para clasificación, detección de objetos (rectángulo delimitador), segmentación de instancia (polígono) o segmentación semántica (versión preliminar).

También puede usar la herramienta de etiquetado de datos de Azure Machine Learning para crear un proyecto de etiquetado de texto.

Importante

Los elementos marcados (versión preliminar) en este artículo se encuentran actualmente en versión preliminar pública. Se ofrece la versión preliminar sin Acuerdo de Nivel de Servicio y no se recomienda para cargas de trabajo de producción. Es posible que algunas características no sean compatibles o que tengan sus funcionalidades limitadas. Para más información, consulte Términos de uso complementarios de las Versiones Preliminares de Microsoft Azure.

Funcionalidades del etiquetado de imágenes

El etiquetado de datos de Azure Machine Learning es una herramienta que puede usar para crear, administrar y supervisar proyectos de etiquetado de datos. Utilícelo para:

  • Coordine los datos, las etiquetas y los miembros del equipo para administrar de forma eficaz las tareas de etiquetado.
  • Realización de un seguimiento del progreso y mantenimiento de la cola de tareas de etiquetado incompletas.
  • Inicio y detención del proyecto, y control del progreso de etiquetado.
  • Examen y exportación de los datos etiquetados como un conjunto de datos de Azure Machine Learning.

Importante

Los datos de imagen con los que trabaja en la herramienta de etiquetado de datos de Azure Machine Learning deben estar disponibles en un almacén de datos de Azure Blob Storage. Si aún no tiene un almacén de datos, puede cargar los archivos de datos en un nuevo almacén de datos en el momento que cree un proyecto.

Los datos de imagen pueden ser cualquier archivo que tenga una de estas extensiones de archivo:

  • JPG
  • .jpeg
  • .png
  • .jpe
  • .jfif
  • .bmp
  • TIF
  • TIFF
  • DCM
  • DICOM

Cada archivo es un elemento que se va a etiquetar.

También puede usar un recurso de datos MLTable como entrada para un proyecto de etiquetado de imágenes, siempre y cuando las imágenes de la tabla sean uno de los formatos anteriores. Para obtener más información, consulte Uso de recursos de datos de MLTable.

Requisitos previos

Estos elementos se usan para configurar el etiquetado de imágenes en Azure Machine Learning:

  • Los datos que quiere etiquetar, ya sea en archivos locales o en Azure Blob Storage.
  • Conjunto de etiquetas que quiere aplicar.
  • Instrucciones para el etiquetado.
  • Suscripción a Azure. Si no tiene una suscripción a Azure, cree una cuenta gratuita antes de empezar.
  • Un área de trabajo de Azure Machine Learning. Consulte Creación de un área de trabajo de Azure Machine Learning.

Creación de un proyecto de etiquetado de imágenes

Los proyectos de etiquetado se administran en Azure Machine Learning. Use la página Etiquetado de datos de Machine Learning para administrar los proyectos.

Si los datos ya están en Azure Blob Storage, asegúrese de que están disponibles como un almacén de datos antes de crear el proyecto de etiquetado.

  1. Para crear un proyecto, seleccione Agregar proyecto.

  2. En Nombre del proyecto, escriba un nombre para el proyecto.

    No puede volver a usar el mismo nombre del proyecto, aunque elimine el proyecto.

  3. Para crear un proyecto de etiquetado de imagen, en Tipo de medio, seleccione Imagen.

  4. En Etiquetado de tipos de tareas, seleccione una opción para su caso:

    • Para aplicar solo una etiqueta única de un conjunto de etiquetas a una imagen, seleccione Clasificación de imagen de varias clases.
    • Para aplicar una o más etiquetas de un conjunto de etiquetas a una imagen, seleccione Clasificación de imagen de varias clases. Por ejemplo, una fotografía de un perro podría etiquetarse como perro y diurno.
    • Para asignar una etiqueta a cada objeto dentro de una imagen y agregar cuadros de límite, seleccione Identificación de objetos (rectángulo de límite).
    • Para asignar una etiqueta a cada objeto dentro de una imagen y dibujar un polígono alrededor de cada objeto, seleccione Segmentación de instancias (Polígono).
    • Para dibujar máscaras en una imagen y asignar una clase de etiqueta en el nivel de píxel, seleccione Segmentación semántica (versión preliminar).

    Screenshot that shows creating a labeling project to manage labeling.

  5. Seleccione Next (Siguiente) para continuar.

Agregar recursos (opcional)

Seleccione Usar una empresa proveedora de etiquetado de Azure Marketplace solo si ha interactuado con una empresa de etiquetado de datos de Azure Marketplace. A continuación, seleccione el proveedor. Si el proveedor no aparece en la lista, borre esta opción.

Asegúrese de ponerse en contacto primero con el proveedor y firmar un contrato. Para obtener más información, vea Trabajar con una empresa proveedora de etiquetado de datos (versión preliminar).

Seleccione Next (Siguiente) para continuar.

Especificación de los datos que se van a etiquetar

Si ya ha creado un conjunto de datos que contiene los datos, seleccione el conjunto de datos en la lista desplegable Seleccione un conjunto de datos existente.

También puede seleccionar Crear un conjunto de datos para usar un almacén de información de Azure existente o cargar archivos locales.

Nota

Un proyecto no puede contener más de 500 000 archivos. Si el conjunto de datos supera este número de archivos, solo se cargarán los primeros 500 000 archivos.

Asignación de columnas de datos (versión preliminar)

Si selecciona un activo de datos MLTable, aparecerá un paso adicional Asignación de columnas de datos para que especifique la columna que contiene las URL de las imágenes.

Debe especificar una columna que se asigne al campo Imagen. También puede asignar opcionalmente otras columnas presentes en los datos. Por ejemplo, si sus datos contienen una columna Etiqueta, puede asignarla al campo Categoría. Si sus datos contienen una columna Confianza, puede asignarla al campo Confianza.

Si va a importar etiquetas de un proyecto anterior, las etiquetas deben tener el mismo formato que las etiquetas que está creando. Por ejemplo, si va a crear etiquetas de cuadro de límite, las etiquetas que importe también deben estar enlazando etiquetas de cuadro de límite.

Opciones de importación (versión preliminar)

Al incluir una columna Categoría en el paso Asignación de columnas de datos, utilice Opciones de importación para especificar cómo tratar los datos etiquetados.

Debe especificar una columna que se asigne al campo Imagen. También puede asignar opcionalmente otras columnas presentes en los datos. Por ejemplo, si sus datos contienen una columna Etiqueta, puede asignarla al campo Categoría. Si sus datos contienen una columna Confianza, puede asignarla al campo Confianza.

Si va a importar etiquetas de un proyecto anterior, las etiquetas deben tener el mismo formato que las etiquetas que está creando. Por ejemplo, si va a crear etiquetas de cuadro de límite, las etiquetas que importe también deben estar enlazando etiquetas de cuadro de límite.

Creación de un conjunto de datos a partir de un almacén de datos de Azure

En muchos casos, puede cargar archivos locales. Sin embargo, Explorador de Azure Storage es una forma más rápida y eficaz de transferir una gran cantidad de datos. Se recomienda usar Explorador de Storage de forma predeterminada para migrar archivos.

Para crear un conjunto de datos a partir de los datos que ya ha almacenado en Blob Storage:

  1. Seleccione Crear.
  2. En Nombre, escriba un nombre para el conjunto de datos. Si lo desea, escriba una descripción.
  3. Asegúrese de que el tipo de conjunto de datos esté establecido en Archivo. Solo se admiten tipos de conjunto de datos de archivo para imágenes.
  4. Seleccione Next (Siguiente).
  5. Seleccione Desde Azure Storage y, después, Siguiente.
  6. Seleccione el almacén de datos y, a continuación, seleccione Siguiente.
  7. Si los datos están en una subcarpeta del Blob Storage, elija Examinar para seleccionar la ruta de acceso.
    • Para incluir todos los archivos que haya en las subcarpetas de la ruta de acceso seleccionada, anexe /** a la ruta.
    • Para incluir todos los datos que haya en el contenedor actual y sus subcarpetas, anexe **/*.* a la ruta.
  8. Seleccione Crear.
  9. Seleccione el recurso de datos que ha creado.

Creación de un conjunto de datos a partir de los datos cargados

Para cargar los datos directamente:

  1. Seleccione Crear.
  2. En Nombre, escriba un nombre para el conjunto de datos. Si lo desea, escriba una descripción.
  3. Asegúrese de que el tipo de conjunto de datos esté establecido en Archivo. Solo se admiten tipos de conjunto de datos de archivo para imágenes.
  4. Seleccione Next (Siguiente).
  5. Seleccione Desde archivos locales y, a continuación, seleccione Siguiente.
  6. (Opcional) Seleccione un almacén de datos. También puede dejar el almacén de blobs predeterminado para realizar la carga (workspaceblobstore) del área de trabajo de Machine Learning.
  7. Seleccione Next (Siguiente).
  8. Seleccione Cargar>Cargar archivos o Cargar>Cargar carpeta para seleccionar los archivos o carpetas locales que quiera cargar.
  9. En la ventana del explorador, busque los archivos o la carpeta y seleccione Abrir.
  10. Después, seleccione Cargar hasta que tenga todos los archivos o carpetas.
  11. Opcionalmente, puede seleccionar la casilla Sobrescribir si ya existe. Compruebe la lista de archivos y carpetas.
  12. Seleccione Next (Siguiente).
  13. Confirme los detalles. Seleccione Atrás para modificar la configuración o Crear para crear el conjunto de datos.
  14. Por último, seleccione el recurso de datos que ha creado.

Configuración de la actualización incremental

Si tiene pensado agregar nuevos archivos al conjunto de datos, utilice la actualización incremental para agregarlos al proyecto.

Cuando se configura Habilitar la actualización incremental a intervalos regulares, el conjunto de datos se comprueba periódicamente para agregar nuevos archivos a un proyecto en función de la velocidad de finalización del etiquetado. La comprobación de los nuevos datos se detiene cuando el proyecto alcanza el número máximo de 500 000 archivos.

Active Habilitar la actualización incremental a intervalos regulares cuando desee que el proyecto supervise continuamente los nuevos datos del almacén de datos.

Borre la selección si no quiere que los nuevos archivos del almacén de datos se agreguen automáticamente al proyecto.

Importante

No cree una versión para el conjunto de datos que quiera actualizar. Si lo hace, no se verán las actualizaciones, puesto que el proyecto de etiquetado de datos se ancla a la versión inicial. En su lugar, use el Explorador de Azure Storage para modificar los datos en la carpeta adecuada de Blob Storage.

Además, no quite los datos. Eliminar datos del conjunto de datos que usa el proyecto provocará un error en el proyecto.

Una vez creado el proyecto, use la pestaña Detalles para cambiar la actualización incremental, ver la marca de tiempo de la última actualización y solicitar una actualización inmediata de los datos.

Especificación de clases de etiquetas

En la página Categorías de etiquetas, especifique un conjunto de clases para clasificar los datos.

La precisión y velocidad de los etiquetadores resultan afectadas por su capacidad para elegir entre las clases. Por ejemplo, en lugar de deletrear el género y la especie completos para plantas o animales, use códigos de campo o abrevie el género.

Puede usar una lista plana o crear grupos de etiquetas.

  • Para crear una lista plana, seleccione Añadir categoría de etiqueta para crear cada etiqueta.

    Screenshot that shows how to add a flat structure of labels.

  • Para crear etiquetas en distintos grupos, seleccione Añadir categoría de etiqueta para crear las etiquetas de nivel superior. Después, seleccione el siglo más (+) en cada nivel superior a fin de crear el siguiente nivel de etiquetas para esa categoría. Puede crear hasta seis niveles para cualquier agrupación.

    Screenshot that shows how to add groups of labels.

Se pueden seleccionar las etiquetas de cualquier nivel durante el proceso de etiquetado. Por ejemplo, las etiquetas Animal, Animal/Cat, Animal/Dog, Color, Color/Black, Color/White y Color/Silver son todas opciones disponibles para una etiqueta. En un proyecto con varias etiquetas, no es necesario elegir una de cada categoría. Pero si es lo que intenta, asegúrese de incluir esta información en las instrucciones.

Descripción de la tarea de etiquetado de imágenes

Es importante explicar claramente la tarea de etiquetado. En la página Instrucciones de etiquetado, puede agregar un vínculo a un sitio externo que contenga las instrucciones de etiquetado o bien incluir instrucciones en el cuadro de edición de la página. Mantenga las instrucciones orientadas a tareas y adecuadas para el público. Tenga en cuenta estas preguntas:

  • ¿Cuáles son las etiquetas que verán los etiquetadores y cómo las elegirán? ¿Hay un texto de referencia que puedan consultar?
  • ¿Qué debe hacer si ninguna etiqueta parece adecuada?
  • ¿Qué debe hacer si varias etiquetas parecen adecuadas?
  • ¿Qué umbral de confianza debe aplicarse a una etiqueta? ¿Quiere que los etiquetadores usen una conjetura si no están seguros?
  • ¿Qué debe hacer con los objetos de interés ocluidos o superpuestos?
  • ¿Qué debe hacer si un objeto de interés se corta con el borde de la imagen?
  • ¿Qué deben hacer si, después de enviar una etiqueta, creen que han cometido un error?
  • ¿Qué hay que hacer si detectan problemas de calidad de imagen, como condiciones de iluminación deficientes, reflejos, pérdida de enfoque, fondos no deseados incluidos o ángulos anómalos de cámara, entre otros?
  • ¿Qué deben hacer si varios revisores tienen opiniones diferentes sobre cómo aplicar una etiqueta?

En el caso de los rectángulos de selección, estas son algunas preguntas importantes:

  • ¿Cómo se define el cuadro de límite para esta tarea? ¿Debe estar totalmente en el interior del objeto o en el exterior? ¿Debe recortarse lo más cerca posible o hay algo de margen?
  • ¿Qué nivel de cuidado y coherencia espera que los etiquetadores apliquen para definir los rectángulos de selección?
  • ¿Cuál es la definición visual de cada clase de etiqueta? ¿Puede proporcionar una lista de casos normales, perimetrales y de contadores para cada clase?
  • ¿Qué deben hacer los etiquetadores si el objeto es pequeño? ¿Se debe etiquetar como un objeto o debe ignorarse ese objeto como fondo?
  • ¿Cómo deben controlar los etiquetadores un objeto que solo se muestra parcialmente en la imagen?
  • ¿Cómo deben controlar los etiquetadores un objeto que solo está cubierto parcialmente por otro objeto?
  • ¿Cómo deben controlar los etiquetadores un objeto que no tiene límites claros?
  • ¿Cómo deben controlar los etiquetadores un objeto que no es la clase de objeto de interés, pero que es visualmente similar a un tipo de objeto relevante?

Nota

Los etiquetadores pueden seleccionar las nueve primeras etiquetas usando el teclado numérico del 1 a 9.

Control de calidad (versión preliminar)

Para obtener etiquetas más precisas, use la página Control de calidad para enviar cada elemento a varios etiquetadores.

Importante

El etiquetado de consenso se encuentra actualmente en versión preliminar pública.

Se ofrece la versión preliminar sin Acuerdo de Nivel de Servicio y no se recomienda para cargas de trabajo de producción. Es posible que algunas características no sean compatibles o que tengan sus funcionalidades limitadas.

Para más información, consulte Términos de uso complementarios de las Versiones Preliminares de Microsoft Azure.

Para que cada elemento se envíe a varios etiquetadores, seleccione Habilitar etiquetado de consenso (versión preliminar). A continuación, establezca los etiquetadores mínimos y máximos para especificar cuántos etiquetadores usar. Asegúrese de que tiene tantos etiquetadores disponibles como el número máximo especificado. No se puede cambiar más adelante esta configuración una vez que se haya iniciado el proyecto.

Si se alcanza un consenso desde el número mínimo de etiquetadores, se etiqueta el elemento. Si no se llega a un consenso, el elemento se envía a más etiquetadores. Si no existe un consenso después de que el elemento pase por el número máximo de etiquetadores, su estado será Necesita revisión y el propietario del proyecto será responsable de etiquetar el elemento.

Nota

Los proyectos de segmentación de instancias no pueden usar el etiquetado de consenso.

Uso del etiquetado de datos asistido por Machine Learning

Para acelerar las tareas de etiquetado, en la página Etiquetado asistido por ML, podrá desencadenar automáticamente modelos de Machine Learning. Las imágenes médicas (archivos que tienen una extensión DCM) no se incluyen en el etiquetado asistido. Si el tipo de proyecto es Segmentación semántica (versión preliminar), el etiquetado asistido por ML no está disponible.

Al principio del proyecto de etiquetado, los elementos se presentan en orden aleatorio para reducir el posible sesgo. Sin embargo, el modelo entrenado refleja los sesgos que están presentes en el conjunto de datos. Por ejemplo, si el 80 por ciento de los elementos son de una sola clase, aproximadamente el 80 por ciento de los datos que se usan para entrenar el modelo serán de esa clase.

Para habilitar el etiquetado asistido, seleccione Habilitar etiquetado asistido de ML y especifique una GPU. Si no tiene una GPU en el área de trabajo, se crea un clúster de GPU (nombre de recurso: DefLabelNC6v3, vmsize: Standard_NC6s_v3) y se agrega al área de trabajo. El clúster se crea con un mínimo de cero nodos, lo que significa que no cuesta nada cuando no está en uso.

El etiquetado asistido por ML consta de dos fases:

  • Agrupación en clústeres
  • Etiquetado previo

El recuento de elementos de datos etiquetados necesarios para iniciar el etiquetado con asistencia no es un número fijo. Este número puede variar considerablemente de un proyecto de etiquetado a otro. En algunos proyectos, a veces es posible ver tareas previas de etiquetado o de agrupación en clústeres después de que se hayan etiquetado manualmente 300 elementos. El etiquetado asistido por ML usa una técnica denominada aprendizaje de transferencia. El aprendizaje por transferencia usa un modelo preentrenado para poner en marcha el proceso de entrenamiento. Si las clases del conjunto de datos son similares a las clases del modelo entrenado previamente, las etiquetas previas pueden devenir disponibles después de unos cientos de elementos etiquetados manualmente. Si el conjunto de datos difiere significativamente de los datos usados para entrenar previamente el modelo, el proceso puede tardar más tiempo.

Cuando se usa el etiquetado de consenso, se usa la etiqueta de consenso para el entrenamiento.

Dado que las etiquetas finales se siguen basando en la entrada del etiquetador, a veces esta tecnología se denomina etiquetado con intervención humana.

Nota

El etiquetado de datos asistido por ML no es compatible con las cuentas de almacenamiento predeterminadas que están protegidas en una red virtual. Debe usar una cuenta de almacenamiento no predeterminada para el etiquetado de datos asistidos por ML. La cuenta de almacenamiento no predeterminada se puede proteger en la red virtual.

Agrupación en clústeres

Después de enviar algunas etiquetas, el modelo de clasificación empezará a agrupar elementos similares. Estas imágenes similares se presentan a los etiquetadores en la misma página para ayudar a que el etiquetado manual sea más eficaz. La agrupación en clústeres es especialmente útil cuando un etiquetador ve una cuadrícula de cuatro, seis o nueve imágenes.

Después de entrenar un modelo de Machine Learning con los datos etiquetados manualmente, el modelo se trunca a su última capa totalmente conectada. A continuación, las imágenes sin etiquetar pasan a través del modelo truncado en un proceso comúnmente conocido como incrustación o caracterización. Este proceso inserta cada imagen en un espacio de alta dimensión que define la capa del modelo. Otras imágenes del espacio más cercano a la imagen se usan para las tareas de agrupación en clústeres.

La fase de agrupación en clústeres no aparece para los modelos de detección de objetos o para la clasificación de texto.

Etiquetado previo

Después de enviar suficientes etiquetas para el entrenamiento, un modelo de clasificación predice etiquetas o un modelo de detección de objetos predice cuadros de límite. Ahora el etiquetador ve las páginas que contienen las etiquetas predichas ya presentes en cada elemento. También se muestran cuadros de predicción para la detección de objetos. La tarea implica revisar estas predicciones y corregir las imágenes etiquetadas de forma incorrecta antes del envío de la página.

Después de entrenar el modelo de Machine Learning en los datos etiquetados manualmente, el modelo se evalúa en un conjunto de prueba de elementos etiquetados manualmente. La evaluación ayuda a determinar la precisión del modelo en distintos umbrales de confianza. El proceso de evaluación determina un umbral de confianza más allá del cual el modelo es lo suficientemente preciso como para mostrar las etiquetas previas. A continuación, el modelo se evalúa con datos sin etiquetar. Los elementos con predicciones más confiables que este umbral se usan para la etiquetado previo.

Inicialización del proyecto de etiquetado de imágenes

Una vez inicializado el proyecto de etiquetado, algunos aspectos del proyecto son inmutables. No se puede cambiar el tipo de tarea ni el conjunto de datos. Se pueden modificar las etiquetas y la dirección URL de la descripción de la tarea. Repase atentamente la configuración antes de crear el proyecto. Después de enviar el proyecto, vuelva a la página de información general etiquetado de datos, que muestra el proyecto como Inicialización.

Nota

Es posible que esta página no se actualice automáticamente. Espere un momento y actualice la página manualmente para ver el estado del proyecto como Creado.

Solución de problemas

Para obtener problemas al crear un proyecto o acceder a los datos, vea Solución de problemas de etiquetado de datos.

Pasos siguientes