Para criar um modelo personalizado, treine-o usando um conjunto de dados preparado. A API AutoML Vision usa as imagens do conjunto de dados para treinar o modelo, testá-lo e avaliar o desempenho dele. Você analisa os resultados, ajusta o conjunto de dados de treinamento conforme necessário e treina um novo modelo usando o conjunto de dados aprimorado.
Esse processo pode levar várias horas para ser concluído. A API AutoML Vision permite verificar o status do treinamento.
Como treinar modelos;
Quando você tiver um conjunto de dados com um grupo apropriado de imagens de treinamento anotadas com caixas delimitadoras e rótulos, será possível criar e treinar o modelo personalizado.
IU da Web
Abra a IU do AutoML Vision Object Detection.
A página Conjuntos de dados mostra os conjuntos disponíveis para o projeto atual.
Selecione aquele que você quer usar para treinar o modelo personalizado.
Quando o conjunto de dados estiver pronto, selecione a guia Treinar e o botão Treinar novo modelo.
Isso abrirá uma janela lateral Treinar novo modelo com opções de treinamento.
Na seção Definir seu modelo, especifique o Nome do modelo ou aceite o padrão. Selecione radio_button_checked Hospedado no Cloud como o tipo de modelo se isso ainda não tiver sido especificado. Depois de selecionar para treinar um modelo do Edge, selecione Continuar.
No seção seguinte, Otimizar modelo para, selecione o critério de otimização pretendido: radio_button_checked Maior acurácia ou Previsão mais rápida. Depois de escolher a especificação de otimização, selecione Continuar.
Na seção seguinte, Definir um orçamento de hora de uso do nó, especifique o orçamento de nó pretendido.
Por padrão, 24 horas de uso do nó são suficientes para que a maioria dos conjuntos de dados treine seu modelo. Esse valor recomendado é uma estimativa para fazer o modelo convergir totalmente. No entanto, é possível escolher outra quantidade. A quantidade mínima de horas de uso de nó para a detecção de objetos é 20. Para classificação de imagem, esse valor mínimo é 8.
Nesta seção, também é possível ativar a implantação automática do modelo após o treinamento. Basta selecionar check_box Implantar modelo em um nó após o treinamento. Caso contrário, será necessário implantar manualmente o modelo após a conclusão do treinamento.
Selecione Iniciar treinamento para começar o treinamento do modelo.
Esse processo pode levar várias horas para ser concluído. Depois que o modelo for treinado com êxito, você receberá uma mensagem no endereço de e-mail que usou no projeto do Google Cloud Platform.
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:
- display-name: um nome de exibição de string de sua escolha.
Considerações específicas sobre o campo:
imageObjectDetectionModelMetadata.modelType
: indica uma das duas opções disponíveis para otimizar o modelo:cloud-low-latency-1
: otimiza o treinamento para diminuir a latência.cloud-high-accuracy-1
: otimiza o treinamento para aumentar a acurácia.imageObjectDetectionModelMetadata.trainBudgetMilliNodeHours
: o orçamento de treinamento para criar esse modelo, expresso em milésimos de horas do nó. O valor "1,000" nesse campo significa uma hora de uso do nó. OtrainCostMilliNodeHours
real será igual ou menor do que esse valor. Se outro treinamento de modelo não fornecer melhorias, ele será interrompido sem o uso do orçamento total, e ostopReason
seráMODEL_CONVERGED
.Observação: node_hour = actual_hour * number_of_nodes_involved.
Para o tipo de modelo
cloud-high-accuracy-1
(padrão) ecloud-low-latency-1
, o orçamento de treinamento precisa estar entre 20.000 e 2.000.000 milésimos de horas do nó. O valor padrão é 216.000, o que representa um dia em tempo decorrido.
Método HTTP e URL:
POST https://automl.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/models
Corpo JSON da solicitação:
{ "displayName": "DISPLAY_NAME", "datasetId": "DATASET_ID", "imageObjectDetectionModelMetadata": { "modelType": "cloud-low-latency-1", "trainBudgetMilliNodeHours": "216000" } }
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/models"
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/models" | Select-Object -Expand Content
Será exibido um código semelhante a este. Use o ID da operação
(neste caso, IOD3074819451447675546
) 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/IOD3074819451447675546", "metadata": { "@type": "type.googleapis.com/google.cloud.automl.v1.OperationMetadata", "createTime": "2019-07-26T21:10:18.338846Z", "updateTime": "2019-07-26T21:10:18.338846Z", "createModelDetails": {} } }
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.
Listar operações
Use os exemplos de código a seguir para listar as operações do projeto e filtrar os resultados.
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.
Método HTTP e URL:
GET https://automl.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/operations
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"
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" | Select-Object -Expand Content
A saída que você vê varia de acordo com as operações solicitadas.
Também é possível filtrar as operações retornadas usando os parâmetros de consulta selecionados (operationId
, done
e worksOn
). Por exemplo, para retornar uma lista de operações que concluíram a execução, modifique o URL:
GET https://automl.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/operations?filter="done=true"
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 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 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 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 cancelar uma operação
É possível cancelar uma tarefa de importação ou treinamento usando o ID da operação.
REST
Antes de testar esta amostra, siga as instruções de configuração dessa linguagem na página Bibliotecas de cliente.
Antes de usar os dados da solicitação abaixo, faça estas substituições:
- 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:
POST https://automl.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/operations/OPERATION_ID:cancel
Para enviar a solicitação, escolha uma destas opções:
curl
execute o seguinte comando:
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 "" \
"https://automl.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/operations/OPERATION_ID:cancel"
PowerShell
execute o seguinte comando:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred"; "x-goog-user-project" = "project-id" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-Uri "https://automl.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/operations/OPERATION_ID:cancel" | Select-Object -Expand Content
{}
Como conseguir informações sobre um modelo
Use os exemplos de código a seguir para receber informações sobre um modelo treinado específico. Use as informações retornadas dessa solicitação para modificar o modo ou enviar uma solicitação de previsã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.
- model-id: o ID do seu modelo, a partir da
resposta de quando você o criou. Ele é o último elemento no nome do modelo.
Por exemplo:
- Nome do modelo:
projects/project-id/locations/location-id/models/IOD4412217016962778756
- ID do modelo:
IOD4412217016962778756
- Nome do modelo:
Método HTTP e URL:
GET https://automl.googleapis.com/v1/projects/project-id/locations/us-central1/models/model-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/models/model-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/models/model-id" | Select-Object -Expand Content
Você receberá uma resposta JSON semelhante a esta:
{ "name": "projects/project-id/locations/us-central1/models/model-id", "displayName": "display-name", "datasetId": "dataset-id", "createTime": "2019-07-26T21:10:18.338846Z", "deploymentState": "UNDEPLOYED", "updateTime": "2019-07-26T22:28:57.464076Z", "imageObjectDetectionModelMetadata": { "modelType": "cloud-low-latency-1", "nodeQps": 1.2987012987012987, "stopReason": "MODEL_CONVERGED", "trainBudgetMilliNodeHours": "216000", "trainCostMilliNodeHours": "8230" } }
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.