Compartilhar via


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 pascal VOC ou COCO), você poderá usar um script de conversão para, primeiro, convertê-los em JSONL e, em seguida, criar um MLTable. Como alternativa, você pode usar a ferramenta de rotulagem de dados do Azure Machine Learning para rotular manualmente imagens e exportar os dados rotulados a serem usados para treinar seu modelo de AutoML.

Pré-requisitos

Obter dados rotulados

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

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

Ela 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 os dados rotulados como um conjunto de dados do Azure Machine Learning e acesse-os na guia "Conjuntos de dados" do Estúdio do Azure Machine Learning. Esse conjunto de dados exportado pode ser passado como uma entrada usando o formato azureml:<tabulardataset_name>:<version>. 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, precisará carregar as imagens no Azure. Você pode carregar as imagens no Armazenamento de Blobs do Azure padrão do Workspace do Azure Machine Learning e registrá-la como um ativo de dados.

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 criará 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 número de versão do ativo de dados será atualizado e apontado 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 seguinte comando da CLI v2 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 presentes em um armazenamento de dados existente e quiser criar um ativo de dados com ele, poderá fazer isso fornecendo o caminho para os dados no armazenamento de dados, em vez de fornecer o caminho do computador local. Atualize o código acima 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, você precisa obter as anotações de rótulo no formato JSONL. O esquema de dados rotulados depende da tarefa de pesquisa visual computacional em questão. Consulte esquemas para arquivos JSONL para experimentos de pesquisa visual computacional do AutoML para saber mais sobre o esquema JSONL necessário para cada tipo de tarefa.

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

Depois de criar um arquivo jsonl seguindo as etapas acima, 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 você tiver seus dados de treinamento rotulados presentes em um contêiner no Armazenamento de Blobs do Azure, poderá acessá-los diretamente a partir daí criando um armazenamento de dados referente a esse contêiner.

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.

Próximas etapas