Um conjunto de dados contém amostras representativas do tipo de conteúdo que você quer classificar, anotado com rótulos e caixas delimitadoras. O conjunto de dados serve como entrada para treinar um modelo.
Veja a seguir os principais passos para criar um conjunto de dados:
- Criar um conjunto de dados e atribuir um nome marcante a ele.
- Importar exemplos de dados para o conjunto de dados.
- Modificar as anotações de imagem importadas (opcional) para adicionar, excluir ou modificar caixas delimitadoras e rótulos das imagens.
Como criar um conjunto de dados
O primeiro passo na criação de um modelo personalizado com a API AutoML é criar um conjunto de dados vazio que conterá os dados de treinamento do modelo.
A partir da versão de disponibilidade geral (GA, na sigla em inglês) do AutoML Vision Object Detection, essa solicitação retornará 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
Com a IU do AutoML Vision Object Detection, é possível criar um novo conjunto de dados e importar imagens para ele na mesma página.Abra a IU do AutoML Vision Object Detection.
A página Conjuntos de Dados mostra o status de conjuntos de dados criados anteriormente para o projeto atual.
Para adicionar um conjunto de dados para um projeto diferente, selecione o projeto na lista suspensa no canto superior direito da barra de título.
Clique no botão Novo conjunto de dados na barra do título.
Na janela pop-up Criar novo conjunto de dados, insira um nome para o conjunto de dados e selecione a opção “Criar conjunto de dados”.
Depois de criar um conjunto de dados vazio, você será direcionado para a guia Importar na página de detalhes do conjunto de dados. Em seguida, especifique o local no Google Cloud Storage do arquivo .csv que lista as imagens de treinamento a serem incluídas no conjunto de dados. Essas imagens de treinamento também precisam ser armazenadas em um bucket do Google Cloud Storage.
Para criar um conjunto de dados, faça upload de um arquivo .csv que contenha as imagens de treinamento com os rótulos e caixas delimitadoras associados do Google Cloud Storage.
Depois que a importação for concluída, será possível adicionar, remover ou modificar qualquer anotação na IU.
Selecione Importar.
Você retorna à página Conjuntos de dados, em que é exibida uma animação em andamento enquanto suas imagens estão sendo importadas. Esse processo leva cerca de 10 minutos para cada mil exemplos, mas pode demorar mais ou menos que isso.
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.
- 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", "imageObjectDetectionDatasetMetadata": { } }
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, IOD3819960680614725486
) 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/IOD3819960680614725486", "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/IOD3819960680614725486", "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/IOD5496445433112696489" } }
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 Object Detection 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 Object Detection 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 Object Detection para Ruby.
Como importar imagens para um conjunto de dados
Depois de criar um conjunto de dados, é possível importar URIs de imagens e caixas delimitadoras rotuladas para imagens a partir 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. Saiba mais sobre como modificar anotações de imagem depois de importar as imagens em Como anotar imagens de treinamento importadas.
É possível importar imagens para um conjunto de dados vazio ou que já contenha imagens de treinamento.
IU da Web
No AutoML Vision Object Detection, a criação do conjunto de dados e a importação de imagens são combinadas em passos consecutivos na IU.
Como importar imagens para um conjunto de dados vazio:
Para a criação de conjuntos de dados subsequentes, você é solicitado a importar imagens diretamente após a criação de um conjunto de dados vazio. Porém, esse passo de importação não é obrigatório.
Para importar imagens para um conjunto de dados vazio, siga estes passos:
Selecione o conjunto de dados vazio na página Conjuntos de dados.
Na página Importar, adicione o local do arquivo .csv no Google Cloud Storage. Depois de indicar o local do arquivo .csv no Google Cloud Storage, selecione Importar para iniciar o processo de importação do arquivo.
Como importar imagens para um conjunto de dados não vazio:
Você tem a opção de adicionar mais imagens de treinamento a um conjunto de dados que já contém imagens de treinamento.
Para adicionar imagens de treinamento a um conjunto de dados não vazio, conclua os seguintes passos:
Selecione o conjunto de dados não vazio da página Conjuntos de dados.
A seleção do conjunto de dados não vazio levará você à página Detalhes do conjunto de dados.
Na página Detalhes do conjunto de dados, selecione a guia Importar.
Selecione a guia Importar para acessar a página Criar conjunto de dados. Em seguida, especifique o local do arquivo .csv no Google Cloud Storage e selecione Importar para iniciar o processo de importação da imagem.
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. É possível usar o ID da operação para saber 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.
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 Object Detection 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 Object Detection 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 Object Detection para Ruby.
O tópico Como anotar imagens de treinamento importadas explica como adicionar manualmente caixas delimitadoras e rótulos às imagens na IU, bem como listar as estatísticas dos rótulos.
O tópico Como gerenciar conjuntos de dados inclui mais informações sobre como usar um recurso de conjunto de dados, por exemplo, listar, conseguir, exportar ou excluir conjuntos de dados.
Como trabalhar com operações de longa duraçã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.
- 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.