Prepare dados para tarefas de visão computacional com aprendizado de máquina automatizado

APLICA-SE A:Azure CLI ml extension v2 (current)Python SDK azure-ai-ml v2 (current)

Importante

O suporte para treinar modelos de visão computacional com ML automatizado no Azure Machine Learning é um recurso de visualização pública experimental. Algumas funcionalidades poderão não ser suportadas ou poderão ter capacidades limitadas. Para obter mais informações, veja Termos Suplementares de Utilização para Pré-visualizações do Microsoft Azure.

Neste artigo, você aprenderá a preparar dados de imagem para treinar modelos de visão computacional com aprendizado de máquina automatizado no Azure Machine Learning. Para gerar modelos para tarefas de visão computacional com aprendizado de máquina automatizado, você precisa trazer dados de imagem rotulados como entrada para treinamento de modelos na forma de um MLTablearquivo .

Você pode criar um MLTable a partir de dados de treinamento rotulados no formato JSONL. Se os dados de treinamento rotulados estiverem em um formato diferente, como Pascal Visual Object Classes (VOC) ou COCO, você poderá usar um script de conversão para convertê-los em JSONL e, em seguida, criar um MLTablearquivo . Como alternativa, você pode usar a ferramenta de rotulagem de dados do Aprendizado de Máquina do Azure para rotular imagens manualmente. Em seguida, exporte os dados rotulados para usar no treinamento do seu modelo AutoML.

Pré-requisitos

Obter dados rotulados

Para treinar modelos de visão computacional usando 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 Aprendizado de Máquina do Azure para rotular seus dados ou pode começar com dados de imagem pré-rotulados.

Usar a ferramenta de Rotulagem de Dados do Azure Machine Learning para rotular seus dados de treinamento

Se você não tiver dados pré-rotulados, poderá usar a ferramenta de rotulagem de dados do Azure Machine Learning para rotular imagens manualmente. Esta ferramenta gera automaticamente os dados necessários para a formação no formato aceite. Para obter mais informações, consulte Configurar um projeto de rotulagem de imagem.

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

  • Classificação de imagem (multiclasse e multi-label)
  • Deteção de objetos (caixa delimitadora)
  • Segmentação de instâncias (polígono)

Se você já tiver dados rotulados para 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 azureml:<tabulardataset_name>:<version> o formato. Para obter mais informações, consulte Exportar os rótulos.

Aqui está um exemplo de como passar o conjunto de dados existente como entrada para treinar modelos de visão computacional.

APLICA-SE A: Azure CLI ml extension v2 (atual)

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

Usar dados de treinamento pré-rotulados da máquina local

Se você tiver rotulado os dados que deseja usar para treinar seu modelo, carregue as imagens no Azure. Você pode carregar suas imagens para o Armazenamento de Blob do Azure padrão do seu Espaço de Trabalho do Azure Machine Learning. Registre-o como um ativo de dados. Para obter mais informações, consulte Criar e gerenciar ativos de dados.

O script a seguir carrega os dados de imagem em sua máquina local no caminho ./data/odFridgeObjects para armazenamento de dados no Armazenamento de Blob do Azure. Em seguida, ele cria um novo ativo de dados com o nome fridge-items-images-object-detection em seu Espaço de Trabalho do Azure Machine Learning.

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

APLICA-SE A: Azure CLI ml extension v2 (atual)

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

$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 seguinte comando da CLI v2 com o caminho para o arquivo .yml , o nome do espaço de trabalho, 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 a partir dele. Forneça o caminho para os dados no armazenamento de dados em vez do caminho da sua máquina local. Atualize o código anterior com o seguinte trecho.

APLICA-SE A: Azure CLI ml extension v2 (atual)

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

$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 visão computacional em mãos. Para saber mais sobre o esquema JSONL necessário para cada tipo de tarefa, consulte Esquemas de dados para treinar modelos de visão computacional com aprendizado de máquina automatizado.

Se seus dados de treinamento estiverem em um formato diferente, como pascal VOC ou COCO, os scripts auxiliares podem converter os dados para JSONL. Os scripts estão disponíveis em exemplos de cadernos.

Depois de criar o arquivo .jsonl , você pode registrá-lo como um ativo de dados usando a interface do usuário. Certifique-se de selecionar stream digitar 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 Blob do Azure

Se seus dados de treinamento rotulados estiverem presentes em um contêiner no armazenamento de Blob do Azure, você poderá acessá-los diretamente. Crie um armazenamento de dados para esse contêiner. Para obter mais informações, consulte Criar e gerenciar ativos de dados.

Criar MLTable

Depois que seus dados rotulados estiverem no formato JSNL, você poderá usá-los para criar MLTable como mostrado neste trecho de yaml. 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 o MLTable como uma entrada de dados para o seu trabalho de treinamento AutoML. Para obter mais informações, consulte Configurar o AutoML para treinar modelos de visão computacional.