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 VOC ou COCO), você poderá usar um script de conversão para primeiro 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 e exportar os dados rotulados para usar no treinamento de seu modelo AutoML.

Pré-requisitos

Obter dados rotulados

Para treinar modelos de visão computacional usando AutoML, você precisa primeiro obter dados de treinamento rotulados. As imagens precisam ser carregadas para a nuvem e 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.

Usando 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.

Ele 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 que deseja usar, poderá exportar seus dados rotulados como um Conjunto de Dados do Azure Machine Learning e, em seguida, acessar o conjunto de dados na guia 'Conjuntos de Dados' no estúdio do Azure Machine Learning. Esse conjunto de dados exportado pode então ser passado como uma entrada usando azureml:<tabulardataset_name>:<version> o formato. Aqui está um exemplo de como passar o conjunto de dados existente como entrada para treinar modelos de visão computacional.

APLICA-SE A:Extensão ml da CLI do Azure v2 (atual)

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

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

Se você tiver rotulado dados que gostaria de usar para treinar seu modelo, precisará carregar as imagens no Azure. Você pode carregar as imagens para o Armazenamento de Blob do Azure padrão do seu Espaço de Trabalho do Azure Machine Learning e registrá-lo como um ativo 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, ele atualiza o número da versão do ativo de dados e o aponta para o novo local onde os dados da imagem foram carregados.

APLICA-SE A:Extensão ml da CLI do Azure 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 presentes em um armazenamento de dados existente e quiser criar um ativo de dados a partir dele, poderá fazê-lo fornecendo o caminho para os dados no armazenamento de dados, em vez de fornecer o caminho da sua máquina local. Atualize o código acima com o seguinte trecho.

APLICA-SE A:Extensão ml da CLI do Azure 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, você precisa obter as anotações de rótulo no formato JSONL. O esquema de dados rotulados depende da tarefa de visão computacional em mãos. Consulte esquemas para arquivos JSONL para experimentos de visão computacional AutoML para saber mais sobre o esquema JSONL necessário para cada tipo de tarefa.

Se seus dados de treinamento estiverem em um formato diferente (como, pascal VOC ou COCO), scripts auxiliares para converter os dados em JSONL estarão disponíveis em exemplos de bloco de anotações.

Depois de criar o arquivo jsonl seguindo as etapas acima, 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

Usando dados de treinamento pré-rotulados do armazenamento de Blob do Azure

Se você tiver seus dados de treinamento rotulados presentes em um contêiner no armazenamento de Blob do Azure, poderá acessá-los diretamente de lá criando um armazenamento de dados referente a esse contêiner.

Criar MLTable

Depois de ter seus dados rotulados no formato JSONL, você pode 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.

Próximos passos