Um conjunto de dados contém amostras representativas do tipo de conteúdo que você quer classificar, rotulado com os rótulos de categoria que você quer que seu modelo personalizado use. O conjunto de dados serve como entrada para treinar um modelo.
Veja a seguir as principais etapas para criar um conjunto de dados:
- Crie um conjunto de dados e especifique se quer permitir várias etiquetas em cada item.
- Importe itens de dados para o conjunto de dados.
- Usar rótulos nos itens.
Quando você importa itens com rótulos já atribuídos, as etapas 2 e 3 são combinadas.
Como criar um conjunto de dados
A primeira etapa no desenvolvimento de um modelo personalizado é criar um conjunto de dados vazio que vai armazenar os dados de treinamento do modelo. Ao criar um conjunto de dados, você especifica o tipo de classificação que quer que seu modelo personalizado execute:
- MULTICLASS atribui uma única etiqueta a cada imagem classificada.
- MULTILABEL permite que uma imagem seja atribuída a vários rótulos.
A partir da versão v1 da API AutoML, essa solicitação retorna o ID de uma operação de longa duração.
Depois que essa operação for concluída, será possível importar imagens para ela. O conjunto de dados recém-criado não contém dados até que você importe imagens para ele.
Salve o ID do novo conjunto de dados (da resposta) para usar com outras operações, como importar imagens para o conjunto de dados e treinar um modelo.
IU da Web
Abra o Painel do Vision.
Também é possível acessar essa página no console por meio do item do menu de navegação à esquerda Inteligência artificial > Vision. Isso levará você ao painel integrado da Vision. Selecione o card do AutoML Vision.
Selecione Conjuntos de dados no menu de navegação à esquerda.
Selecione o botão Novo Conjunto de Dados na parte superior, atualize o nome do conjunto de dados (opcional) e selecione
rótulo único ou classificação de vários rótulos com base nos dados que você tem.Depois de especificar o tipo de classificação, selecione Criar conjunto de dados.
Na página Criar conjunto de dados, é possível escolher um arquivo CSV do Google Cloud Storage ou arquivos de imagem local para importar para o conjunto de dados.
Selecione Continuar para iniciar a importação da imagem para o conjunto de dados. Durante a importação, o conjunto de dados mostrará um status Em execução: importando imagens.
Você receberá um e-mail quando a importação for concluída.
REST
O exemplo a seguir cria um conjunto de dados compatível com um rótulo por item. Consulte "MULTICLASS".
O conjunto de dados recém-criado não contém dados até que você importe itens para ele.
Salve o "name"
do novo conjunto de dados (da resposta) para usar com outras operações, como importação de itens para o conjunto de dados e treinamento de um modelo.
Antes de usar os dados da solicitação abaixo, faça estas substituições:
- project-id: o ID do projeto do GCP.
- display-name: um nome de exibição de string de sua escolha.
Método HTTP e URL:
POST https://automl.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/datasets
Corpo JSON da solicitação:
{ "displayName": "DISPLAY_NAME", "imageClassificationDatasetMetadata": { "classificationType": "MULTICLASS" } }
Para enviar a solicitação, escolha uma destas opções:
curl
Salve o corpo da solicitação em um arquivo com o nome request.json
e execute o comando a seguir:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "x-goog-user-project: project-id" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://automl.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/datasets"
PowerShell
Salve o corpo da solicitação em um arquivo com o nome request.json
e execute o comando a seguir:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred"; "x-goog-user-project" = "project-id" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://automl.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/datasets" | Select-Object -Expand Content
Será exibido um código semelhante a este. Use o ID da operação
(neste caso, ICN3819960680614725486
) para ver o status da tarefa. Veja um exemplo em Como trabalhar com operações de longa duração:
{ "name": "projects/PROJECT_ID/locations/us-central1/operations/ICN3819960680614725486", "metadata": { "@type": "type.googleapis.com/google.cloud.automl.v1.OperationMetadata", "createTime": "2019-11-14T16:49:13.667526Z", "updateTime": "2019-11-14T16:49:13.667526Z", "createDatasetDetails": {} } }
Depois que a operação for concluída, você receberá o ID do conjunto de dados com a mesma solicitação do status da operação. A resposta deve ficar mais ou menos assim:
{ "name": "projects/PROJECT_ID/locations/us-central1/operations/ICN3819960680614725486", "metadata": { "@type": "type.googleapis.com/google.cloud.automl.v1.OperationMetadata", "createTime": "2019-11-14T16:49:13.667526Z", "updateTime": "2019-11-14T16:49:17.975314Z", "createDatasetDetails": {} }, "done": true, "response": { "@type": "type.googleapis.com/google.cloud.automl.v1.Dataset", "name": "projects/PROJECT_ID/locations/us-central1/datasets/ICN5496445433112696489" } }
Go
Antes de testar esta amostra, siga as instruções de configuração dessa linguagem na página Bibliotecas de cliente.
Java
Antes de testar esta amostra, siga as instruções de configuração dessa linguagem na página Bibliotecas de cliente.
Node.js
Antes de testar esta amostra, siga as instruções de configuração dessa linguagem na página Bibliotecas de cliente.
Python
Antes de testar esta amostra, siga as instruções de configuração dessa linguagem na página Bibliotecas de cliente.
Outras linguagens
C#: Siga as Instruções de configuração do C# na página das bibliotecas de cliente e acesse a Documentação de referência do AutoML Vision para .NET.
PHP: Siga as Instruções de configuração do PHP na página das bibliotecas de cliente e acesse a Documentação de referência do AutoML Vision para PHP.
Ruby: Siga as Instruções de configuração do Ruby na página das bibliotecas de cliente e acesse a Documentação de referência do AutoML Vision para Ruby.
Importar itens para um conjunto de dados
Depois de criar um conjunto de dados, você pode importar URIs e rótulos de itens para os de um arquivo CSV armazenado em um bucket do Google Cloud Storage. Para ver detalhes sobre como preparar os dados e criar um arquivo CSV para importação, consulte Como preparar dados de treinamento.
Você pode importar itens para um conjunto de dados vazio ou importar itens adicionais para um conjunto de dados existente.
IU da Web
A IU do AutoML Vision permite criar um novo conjunto de dados e importar itens para ele usando a mesma página. Consulte Como criar um conjunto de dados. As etapas abaixo importam itens para um conjunto de dados existente.
Abra o Vision Dashboarde selecione o conjunto de dados na página Conjuntos de dados.
Na página Imagens, clique em Adicionar itens na barra de título e selecione o método de importação na lista suspensa.
É possível realizar as seguintes ações:
Fazer upload de um arquivo .csv que contenha as imagens de treinamento e os rótulos de categoria associados de seu computador local ou do Google Cloud Storage.
Enviar arquivos .txt ou .zip que contenham as imagens de treinamento do seu computador local.
Selecione os arquivos para importação.
REST
Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:
- project-id: o ID do projeto do GCP.
- dataset-id: ID do conjunto de dados. O ID é o último elemento do nome
do conjunto de dados. Por exemplo:
- nome do conjunto de dados:
projects/project-id/locations/location-id/datasets/3104518874390609379
- ID do conjunto de dados:
3104518874390609379
- nome do conjunto de dados:
- input-storage-path: o caminho para um arquivo CSV armazenado no Google Cloud Storage. O usuário solicitante precisa ter, no mínimo, permissão para ler o bucket.
Método HTTP e URL:
POST https://automl.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/datasets/DATASET_ID:importData
Corpo JSON da solicitação:
{ "inputConfig": { "gcsSource": { "inputUris": [INPUT_STORAGE_PATH] } } }
Para enviar a solicitação, escolha uma destas opções:
curl
Salve o corpo da solicitação em um arquivo com o nome request.json
e execute o comando a seguir:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "x-goog-user-project: project-id" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://automl.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/datasets/DATASET_ID:importData"
PowerShell
Salve o corpo da solicitação em um arquivo com o nome request.json
e execute o comando a seguir:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred"; "x-goog-user-project" = "project-id" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://automl.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/datasets/DATASET_ID:importData" | Select-Object -Expand Content
Será exibido um código semelhante a este. Use o ID da operação
(neste caso, ICN3819960680614725486
) para receber o status da tarefa. Veja um exemplo em Como trabalhar com operações de longa duração.
{ "name": "projects/PROJECT_ID/locations/us-central1/operations/OPERATION_ID", "metadata": { "@type": "type.googleapis.com/google.cloud.automl.v1.OperationMetadata", "createTime": "2018-10-29T15:56:29.176485Z", "updateTime": "2018-10-29T15:56:29.176485Z", "importDataDetails": {} } }
Go
Antes de testar esta amostra, siga as instruções de configuração dessa linguagem na página Bibliotecas de cliente.
Java
Antes de testar esta amostra, siga as instruções de configuração dessa linguagem na página Bibliotecas de cliente.
Node.js
Antes de testar esta amostra, siga as instruções de configuração dessa linguagem na página Bibliotecas de cliente.
Python
Antes de testar esta amostra, siga as instruções de configuração dessa linguagem na página Bibliotecas de cliente.
Rotular itens de treinamento
Para ser útil ao treinamento de um modelo, cada item em um conjunto de dados precisa ter pelo menos um rótulo de categoria atribuído a ele. O AutoML Vision ignora itens sem um rótulo de categoria. É possível fornecer rótulos para os itens de treinamento de três maneiras:
- Incluir rótulos no seu arquivo .csv
- Para detalhes sobre como rotular itens no arquivo .csv, consulte Como preparar os dados de treinamento.
- Rotular os itens na IU do AutoML Vision.
- Solicite um serviço de rotulagem manual, como o Serviço de rotulagem de dados do AI Platform do Google.
Como rotular na IU
IU da Web
Para rotular itens na IU do AutoML Vision, selecione o conjunto de dados na página de listagem de Conjuntos de dados para ver os detalhes.
A barra lateral resume o número de itens rotulados e não rotulados. Aqui, é possível filtrar a lista de itens por rótulo ou selecionar Adicionar novo rótulo para criar um novo rótulo.
Nessa tela, também é possível adicionar ou alterar o rótulo de uma imagem.
Selecione uma imagem para adicionar ou alterar o rótulo dela.
Solicitar rotulagem
É possível aproveitar o Serviço de rotulagem de dados do AI Platform do Google para rotular suas imagens. Para mais informações, consulte a documentação do produto.
Como trabalhar com operações de longa duração
Você consegue o status de uma operação de longa duração usando os exemplos de código a seguir.
REST
Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:
- project-id: o ID do projeto do GCP.
- operation-id: o ID da operação. Ele é o último elemento do nome da operação. Por exemplo:
- nome da operação:
projects/project-id/locations/location-id/operations/IOD5281059901324392598
- ID da operação:
IOD5281059901324392598
- nome da operação:
Método HTTP e URL:
GET https://automl.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/operations/OPERATION_ID
Para enviar a solicitação, escolha uma destas opções:
curl
execute o seguinte comando:
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "x-goog-user-project: project-id" \
"https://automl.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/operations/OPERATION_ID"
PowerShell
execute o seguinte comando:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred"; "x-goog-user-project" = "project-id" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://automl.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/operations/OPERATION_ID" | Select-Object -Expand Content
{ "name": "projects/PROJECT_ID/locations/us-central1/operations/OPERATION_ID", "metadata": { "@type": "type.googleapis.com/google.cloud.automl.v1.OperationMetadata", "createTime": "2018-10-29T15:56:29.176485Z", "updateTime": "2018-10-29T16:10:41.326614Z", "importDataDetails": {} }, "done": true, "response": { "@type": "type.googleapis.com/google.protobuf.Empty" } }
Você verá uma saída semelhante à seguinte para uma operação de modelo de criação concluída:
{ "name": "projects/PROJECT_ID/locations/us-central1/operations/OPERATION_ID", "metadata": { "@type": "type.googleapis.com/google.cloud.automl.v1.OperationMetadata", "createTime": "2019-07-22T18:35:06.881193Z", "updateTime": "2019-07-22T19:58:44.972235Z", "createModelDetails": {} }, "done": true, "response": { "@type": "type.googleapis.com/google.cloud.automl.v1.Model", "name": "projects/PROJECT_ID/locations/us-central1/models/MODEL_ID" } }
Go
Antes de testar esta amostra, siga as instruções de configuração dessa linguagem na página APIs e referência > Bibliotecas de cliente.
Java
Antes de testar esta amostra, siga as instruções de configuração dessa linguagem na página APIs e referência > Bibliotecas de cliente.
Node.js
Antes de testar esta amostra, siga as instruções de configuração dessa linguagem na página APIs e referência > Bibliotecas de cliente.
Python
Antes de testar esta amostra, siga as instruções de configuração dessa linguagem na página APIs e referência > Bibliotecas de cliente.
Outras linguagens
C#: Siga as Instruções de configuração do C# na página das bibliotecas de cliente e acesse a Documentação de referência do AutoML Vision para .NET.
PHP: Siga as Instruções de configuração do PHP na página das bibliotecas de cliente e acesse a Documentação de referência do AutoML Vision para PHP.
Ruby: Siga as Instruções de configuração do Ruby na página das bibliotecas de cliente e acesse a Documentação de referência do AutoML Vision para Ruby.