Preparar dados para tarefas de pesquisa visual computacional com machine learning automatizado

APLICA-SE A:Extensão de ML da CLI do Azure v2 (atual)SDK do Python azure-ai-ml v2 (atual)

Importante

O suporte ao treinamento de modelos de pesquisa visual computacional com ML automatizado do Azure Machine Learning é uma versão prévia do recurso pública e experimental. Alguns recursos podem não ter suporte ou podem ter restrição de recursos. Para obter mais informações, consulte Termos de Uso Complementares de Versões Prévias do Microsoft Azure.

Neste artigo, você aprenderá a preparar dados de imagem para treinar modelos de pesquisa visual computacional com machine learning automatizado no Azure Machine Learning. Para gerar modelos de tarefas de pesquisa visual computacional com machine learning automatizado, você precisará trazer dados de imagem rotulados como entrada para o treinamento de modelo na forma de um MLTable.

Você pode criar um MLTable de dados de treinamento rotulados no formato JSONL. Se os dados de treinamento rotulados estiverem em um formato diferente (como classes COCO ou VOC (Classes de Objeto Visual) do Pascal), você poderá usar um script de conversão para convertê-los em JSONL e, em seguida, criar um MLTable. Alternativamente, você poderá usar a ferramenta de rotulagem de dados do Azure Machine Learning para rotular as imagens manualmente. Em seguida, exporte os dados rotulados a serem usados para treinar seu modelo de ML automatizado.

Pré-requisitos

Obter dados rotulados

Para treinar modelos de pesquisa visual computacional usando o AutoML, você precisa obter dados de treinamento rotulados. As imagens precisam ser carregadas na nuvem. As anotações de rótulo precisam estar no formato JSONL. Você pode usar a ferramenta de rotulagem de dados do Azure Machine Learning para rotular seus dados ou começar com os dados de imagem rotulados previamente.

Usar a ferramenta de rotulagem de dados do Azure Machine Learning para rotular os dados de treinamento

Se não tiver dados pré-rotulados, você poderá usar a ferramenta de rotulagem de dados do Azure Machine Learning para rotular imagens manualmente. Essa ferramenta gera automaticamente os dados exigidos para treinamento no formato aceito. Para obter mais informações, confira Configurar um projeto de rotulagem de imagens.

A ferramenta ajuda a criar, gerenciar e monitorar tarefas de rotulagem de dados para:

  • Classificação de imagem (várias classes e vários rótulos)
  • Detecção de objetos (caixa delimitada)
  • Segmentação de instâncias (polígono)

Se você já tem dados rotulados que deseja usar, exporte esses dados rotulados como um conjunto de dados do Azure Machine Learning e acesse o conjunto de dados na guia Conjuntos de dados no Estúdio do Azure Machine Learning. Você pode passar esse conjunto de dados exportado como uma entrada usando o formato azureml:<tabulardataset_name>:<version>. Para obter mais informações, confira Exportar os rótulos.

Aqui está um exemplo sobre como passar o conjunto de dados existente como entrada para treinar modelos de pesquisa visual computacional.

APLICA-SE A: Extensão de ML da CLI do Azurev2 (atual)

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

Usar dados de treinamento pré-rotulados do computador local

Se você rotulou dados que gostaria de usar para treinar seu modelo, carregue as imagens no Azure. Você pode carregar as imagens no Armazenamento de Blobs do Azure padrão do seu Workspace do Azure Machine Learning. Registre-o como um ativo de dados. Para saber mais, confira Criar e gerenciar coleções.

O script a seguir carrega os dados da imagem no computador local no caminho ./data/odFridgeObjects para o armazenamento de dados no Armazenamento de Blobs do Azure. Em seguida, ele cria um ativo de dados com o nome fridge-items-images-object-detection no workspace do Azure Machine Learning.

Se já existir um ativo de dados com o nome fridge-items-images-object-detection no seu workspace do Azure Machine Learning, o código atualiza o número de versão do ativo de dados e aponta-o para o novo local em que os dados da imagem foram carregados.

APLICA-SE A: Extensão de ML da CLI do Azurev2 (atual)

Crie um arquivo .yml com a configuração a seguir.

$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 carregar as imagens como um ativo de dados, execute o comando da CLI v2 a seguir com o caminho para o arquivo .yml, o nome do workspace, o grupo de recursos e a ID da assinatura.

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

Se você já tiver seus dados em um armazenamento de dados existente, poderá criar um ativo de dados com ele. Forneça o caminho para os dados no armazenamento de dados em vez do caminho do computador local. Atualize o código anterior com o snippet a seguir.

APLICA-SE A: Extensão de ML da CLI do Azurev2 (atual)

Crie um arquivo .yml com a configuração a seguir.

$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

Em seguida, obtenha as anotações de rótulo no formato JSONL. O esquema de dados rotulados depende da tarefa de pesquisa visual computacional em questão. Para saber mais sobre o esquema JSONL necessário para cada tipo de tarefa, confira esquemas de dados para treinar modelos de pesquisa visual computacional com aprendizado de máquina automatizado.

Se os dados de treinamento estiverem em um formato diferente (como Pascal VOC ou COCO), scripts auxiliares podem converter os dados em JSONL. Os scripts estão disponíveis em exemplos de notebook.

Depois de criar o arquivo .jsonl, você pode registrá-lo como um ativo de dados usando a interface do usuário. Selecione o tipo stream na seção de esquema, conforme mostrado nesta animação.

Animação mostrando como registrar um ativo de dados dos arquivos jsonl.

Usar dados de treinamento pré-rotulados do Armazenamento de Blobs do Azure

Se os dados de treinamento rotulados estiverem presentes em um contêiner no Armazenamento de Blobs do Azure, você poderá acessá-los diretamente. Crie um armazenamento de dados para esse contêiner. Para saber mais, confira Criar e gerenciar coleções.

Criar MLTable

Depois que os seus dados rotulados estiverem no formato JSONL, você poderá usá-los para criar MLTable, conforme mostrado neste snippet yaml. O MLtable empacota seus dados em um objeto consumível para treinamento.

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

Em seguida, você pode passar no MLTable como uma entrada de dados para o seu trabalho de treinamento do AutoML. Para mais informações, veja como Configurar o AutoML para treinar modelos de visão computacional.