Preparación de datos para tareas de Computer Vision con aprendizaje automático automatizado

SE APLICA A:Extensión ML de la CLI de Azure v2 (actual)SDK de Python azure-ai-ml v2 (actual)

Importante

La compatibilidad con el entrenamiento de modelos de aprendizaje automático automatizado de Computer Vision en Azure Machine Learning es una característica experimental en versión preliminar pública. 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.

En este artículo, aprenderá a preparar los datos de imagen para entrenar modelos de Computer Vision con aprendizaje automático automatizado en Azure Machine Learning.

Para generar modelos para tareas de Computer Vision con aprendizaje automático automatizado, debe traer datos de imagen etiquetados como entrada para el entrenamiento del modelo en forma de MLTable.

Puede crear un objeto MLTable a partir de datos de entrenamiento etiquetados en formato JSONL. Si los datos de entrenamiento etiquetados tienen un formato diferente (por ejemplo, pascal VOC o COCO), puede usar un script de conversión para convertirlo primero en JSONL y, a continuación, crear un MLTable. Como alternativa, puede usar la herramienta de etiquetado de datos de Azure Machine Learning para etiquetar manualmente imágenes y exportar los datos etiquetados que se usarán para entrenar el modelo de AutoML.

Requisitos previos

Obtener datos etiquetados

Para entrenar modelos de Computer Vision mediante AutoML, primero debe obtener los datos de entrenamiento etiquetados. Las imágenes deben cargarse en la nube y las anotaciones de etiqueta deben estar en formato JSONL. Puede usar la herramienta de etiquetado de datos de Azure Machine Learning para etiquetar los datos o puede empezar con los datos de imagen etiquetados previamente.

Uso de la herramienta de etiquetado de datos de Azure Machine Learning para etiquetar los datos de entrenamiento

Si no tiene datos etiquetados previamente, puede usar la herramienta de etiquetado de datos de Azure Machine Learning para etiquetar manualmente las imágenes. Esta herramienta genera automáticamente los datos necesarios para el entrenamiento en el formato aceptado.

Ayuda a crear, administrar y supervisar tareas de etiquetado de datos para:

  • Clasificación de imágenes (varias clases y varias etiquetas)
  • Detección de objetos (rectángulo de selección)
  • Segmentación de instancias (polígono)

Si ya tiene datos etiquetados y desea usarlos, puede exportar los datos etiquetados como un conjunto de datos de Azure Machine Learning y, luego, acceder al conjunto de datos en la pestaña "Conjuntos de datos" en Estudio de Azure Machine Learning. A continuación, este conjunto de datos exportado se puede pasar como entrada mediante el formato azureml:<tabulardataset_name>:<version>. Este es un ejemplo de cómo pasar un conjunto de datos existente como entrada para entrenar modelos de Computer Vision.

SE APLICA A:Extensión de ML de la CLI de Azure v2 (actual)

training_data:
  path: azureml:odFridgeObjectsTrainingDataset:1
  type: mltable
  mode: direct

Uso de datos de entrenamiento etiquetados previamente de la máquina local

Si ha etiquetado los datos que desea usar para entrenar el modelo, debe cargar las imágenes en Azure. Puede cargar las imágenes en la instancia predeterminada de Azure Blob Storage del área de trabajo de Azure Machine Learning y registrarla como un recurso de datos.

El script siguiente carga los datos de imagen en la máquina local en la ruta de acceso "./data/odFridgeObjects" del almacén de datos en Azure Blob Storage. Luego, crea un recurso de datos con el nombre "fridge-items-images-object-detection" en el área de trabajo de Azure Machine Learning.

Si ya existe un recurso de datos con el nombre "fridge-items-images-object-detection" en el área de trabajo de Azure Machine Learning, este actualiza el número de versión del recurso de datos y lo apunta a la ubicación nueva en la que se cargaron los datos de imagen.

SE APLICA A:Extensión de ML de la CLI de Azure v2 (actual)

Cree un archivo .yml con la siguiente configuración.

$schema: https://azuremlschemas.azureedge.net/latest/data.schema.json
name: fridge-items-images-object-detection
description: Fridge-items images Object detection
path: ./data/odFridgeObjects
type: uri_folder

Para cargar las imágenes como un recurso de datos, ejecute el siguiente comando de la CLI v2 con la ruta de acceso al archivo .yml, el nombre del área de trabajo, el grupo de recursos y el id. de suscripción.

az ml data create -f [PATH_TO_YML_FILE] --workspace-name [YOUR_AZURE_WORKSPACE] --resource-group [YOUR_AZURE_RESOURCE_GROUP] --subscription [YOUR_AZURE_SUBSCRIPTION]

Si ya tiene los datos presentes en un almacén de datos existente y desea crear un recurso de datos fuera de él, puede hacerlo si proporciona la ruta de acceso a los datos en el almacén de datos en lugar de proporcionar la ruta de acceso de la máquina local. Actualice el código anterior con el fragmento de código siguiente.

SE APLICA A:Extensión de ML de la CLI de Azure v2 (actual)

Cree un archivo .yml con la siguiente configuración.

$schema: https://azuremlschemas.azureedge.net/latest/data.schema.json
name: fridge-items-images-object-detection
description: Fridge-items images Object detection
path: azureml://subscriptions/<my-subscription-id>/resourcegroups/<my-resource-group>/workspaces/<my-workspace>/datastores/<my-datastore>/paths/<path_to_image_data_folder>
type: uri_folder

Después, debe obtener las anotaciones de etiqueta en formato JSONL. El esquema de datos etiquetados depende de la tarea de Computer Vision de la que se trate. Consulte esquemas de archivos JSONL aceptados de los experimentos de Computer Vision de AutoML para obtener más información sobre el esquema JSONL necesario para cada tipo de tarea.

Si los datos de entrenamiento están en un formato diferente (por ejemplo, Pascal VOC o COCO), aplique los scripts auxiliares incluidos con los cuadernos de ejemplo para convertir los datos a JSONL.

Después de crear el archivo jsonl con los pasos anteriores, puede registrarlo como un recurso de datos mediante la interfaz de usuario. Asegúrese de seleccionar el tipo stream en la sección de esquema, tal como se muestra en esta animación.

Animación que muestra cómo registrar un conjunto de datos a partir de los archivos jsonl

Uso de datos de entrenamiento etiquetados previamente de Azure Blob Storage

Si tiene los datos de entrenamiento etiquetados presentes en un contenedor en Azure Blob Storage, puede acceder a ellos directamente desde allí mediante la creación de un almacén de datos que haga referencia a ese contenedor.

Creación de MLTable

Una vez que tenga los datos etiquetados en formato JSONL, puede usarlos para crear un objeto MLTable como se muestra en este fragmento yaml. MLtable empaqueta los datos en un objeto personalizable para el entrenamiento.

paths:
  - file: ./train_annotations.jsonl
transformations:
  - read_json_lines:
        encoding: utf8
        invalid_lines: error
        include_path_column: false
  - convert_column_types:
      - columns: image_url
        column_type: stream_info

A continuación, puede pasar MLTable como entrada de datos para el trabajo de entrenamiento de AutoML.

Pasos siguientes