Detectar rótulos em uma imagem usando a linha de comando
Nesta página, mostramos como enviar três solicitações de detecção e anotação de recursos
à API Vision usando a interface REST
e o comando curl.
A API Vision facilita a integração das tecnologias de reconhecimento de visão do Google em aplicativos para desenvolvedores. É possível enviar os dados da imagem e os tipos de recursos escolhidos para a API Vision, que retorna uma resposta correspondente com base nos atributos de imagem em que você tem interesse. Para mais informações sobre os tipos de recursos oferecidos, consulte a Lista de todos os recursos da API do Vision.
Antes de começar
- Faça login na sua Google Cloud conta do. Se você começou a usar o Google Cloud, crie uma conta para avaliar o desempenho dos nossos produtos em situações reais. Clientes novos também recebem US $300 em créditos para executar, testar e implantar cargas de trabalho.
-
Instale a Google Cloud CLI.
-
Ao usar um provedor de identidade (IdP) externo, primeiro faça login na gcloud CLI com sua identidade federada.
-
Para inicializar a CLI gcloud, execute o seguinte comando:
gcloud init -
Crie ou selecione um Google Cloud projeto.
Funções necessárias para selecionar ou criar um projeto
- Selecionar um projeto: a seleção de um projeto não exige um papel específico do IAM. Você pode selecionar qualquer projeto em que tenha recebido um papel.
-
Criar um projeto: para criar um projeto, é necessário ter o papel de criador de projetos
(
roles/resourcemanager.projectCreator), que contém aresourcemanager.projects.createpermissão. Saiba como conceder papéis.
-
Crie um Google Cloud projeto:
gcloud projects create PROJECT_ID
Substitua
PROJECT_IDpor um nome para o Google Cloud projeto que você está criando. -
Selecione o Google Cloud projeto que você criou:
gcloud config set project PROJECT_ID
Substitua
PROJECT_IDpelo nome do Google Cloud projeto.
-
Verifique se o faturamento está ativado para o Google Cloud projeto.
Ative a API Vision:
Funções necessárias para ativar APIs
Para ativar as APIs, é necessário ter o papel do IAM de administrador de Service Usage role (
roles/serviceusage.serviceUsageAdmin), que contém aserviceusage.services.enablepermissão. Saiba como conceder papéis.gcloud services enable vision.googleapis.com
-
Conceda papéis à sua conta de usuário. Execute o seguinte comando uma vez para cada um dos seguintes papéis do IAM:
roles/storage.objectViewergcloud projects add-iam-policy-binding PROJECT_ID --member="user:USER_IDENTIFIER" --role=ROLE
Substitua:
PROJECT_ID: o ID do projeto.USER_IDENTIFIER: o identificador da sua conta de usuário. Por exemplo,myemail@example.com.ROLE: o papel do IAM que você concede à sua conta de usuário.
-
Instale a Google Cloud CLI.
-
Ao usar um provedor de identidade (IdP) externo, primeiro faça login na gcloud CLI com sua identidade federada.
-
Para inicializar a CLI gcloud, execute o seguinte comando:
gcloud init -
Crie ou selecione um Google Cloud projeto.
Funções necessárias para selecionar ou criar um projeto
- Selecionar um projeto: a seleção de um projeto não exige um papel específico do IAM. Você pode selecionar qualquer projeto em que tenha recebido um papel.
-
Criar um projeto: para criar um projeto, é necessário ter o papel de criador de projetos
(
roles/resourcemanager.projectCreator), que contém aresourcemanager.projects.createpermissão. Saiba como conceder papéis.
-
Crie um Google Cloud projeto:
gcloud projects create PROJECT_ID
Substitua
PROJECT_IDpor um nome para o Google Cloud projeto que você está criando. -
Selecione o Google Cloud projeto que você criou:
gcloud config set project PROJECT_ID
Substitua
PROJECT_IDpelo nome do Google Cloud projeto.
-
Verifique se o faturamento está ativado para o Google Cloud projeto.
Ative a API Vision:
Funções necessárias para ativar APIs
Para ativar as APIs, é necessário ter o papel do IAM de administrador de Service Usage role (
roles/serviceusage.serviceUsageAdmin), que contém aserviceusage.services.enablepermissão. Saiba como conceder papéis.gcloud services enable vision.googleapis.com
-
Conceda papéis à sua conta de usuário. Execute o seguinte comando uma vez para cada um dos seguintes papéis do IAM:
roles/storage.objectViewergcloud projects add-iam-policy-binding PROJECT_ID --member="user:USER_IDENTIFIER" --role=ROLE
Substitua:
PROJECT_ID: o ID do projeto.USER_IDENTIFIER: o identificador da sua conta de usuário. Por exemplo,myemail@example.com.ROLE: o papel do IAM que você concede à sua conta de usuário.
Fazer uma solicitação de anotação de imagem
Depois de concluir as etapas em Antes de começar, você pode usar a API Vision para anotar um arquivo de imagem.
Neste exemplo, você usa curl para enviar uma solicitação à API Vision usando a seguinte imagem:
URI do Cloud Storage:
gs://cloud-samples-data/vision/using_curl/shanghai.jpeg
URL HTTPS:
https://console.cloud.google.com/storage/browser/cloud-samples-data/vision/using_curl/shanghai.jpeg
Criar a solicitação JSON
O arquivo request.json a seguir demonstra como
solicitar três recursos images:annotate
e limitar os resultados na resposta.
Crie o arquivo de solicitação JSON com o texto a seguir e salve-o como um
arquivo de texto simples request.json no seu diretório de trabalho:
request.json
{ "requests": [ { "image": { "source": { "imageUri": "gs://cloud-samples-data/vision/using_curl/shanghai.jpeg" } }, "features": [ { "type": "LABEL_DETECTION", "maxResults": 3 }, { "type": "OBJECT_LOCALIZATION", "maxResults": 1 }, { "type": "TEXT_DETECTION", "maxResults": 1, "model": "builtin/latest" } ] } ] }
Enviar a solicitação
Use curl e o conteúdo do corpo de request.json para enviar a solicitação
à API Vision. Digite o seguinte na
linha de 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" \ https://vision.googleapis.com/v1/images:annotate -d @request.json
Interpretar a resposta
Você verá uma resposta JSON semelhante à abaixo.
O corpo JSON da solicitação especificou maxResults para cada tipo de anotação.
Consequentemente, será possível observar o seguinte na resposta JSON:
- Três resultados
labelAnnotations - Um resultado
textAnnotations(abreviado para maior clareza) - Um resultado
localizedObjectAnnotations
Resultados de detecção de rótulos
- Descrição: "People", pontuação: 0,950
- Descrição: "Street", pontuação: 0,891
- Descrição: Mode of transport, pontuação: 0,890
Resultados da detecção de texto
- Texto: 牛牛面馆\n
- Vértices: (x: 159, y: 212), (x: 947, y: 212), (x: 947, y: 354) e (x: 159, y: 354 )
Resultados da detecção de objetos
- Nome: Person, pontuação: 0,944
- Vértices normalizados: (x: 0,260, y: 0,468), (x: 0,407, y: 0,468), (x: 0,407, y: 0,895), (x: 0,260, y: 0,895)
Parabéns! Você enviou sua primeira solicitação à API Vision.
Limpeza
Para evitar cobranças na conta do Google Cloud pelos recursos usados nesta página, exclua o Google Cloud projeto do e os recursos.
Opcional: revogar credenciais da CLI gcloud.
gcloud auth revoke
A seguir
- Confira uma lista de todos os tipos de recurso e os respectivos usos.
- Comece a usar a API Vision no idioma de sua preferência com uma biblioteca de cliente da API Vision.
- Use os guia de instruções para saber mais sobre recursos específicos e conferir anotações de exemplo e anotações para um arquivo ou imagem individual.
- Saiba mais sobre a anotação de imagens e arquivos (PDF/TIFF/GIF) em lote.
- Confira uma lista abrangente de exemplos de código de bibliotecas de cliente.