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
para a 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
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
Create or select a Google Cloud project.
-
Create a Google Cloud project:
gcloud projects create
PROJECT_ID Replace
PROJECT_ID
with a name for the Google Cloud project you are creating. -
Select the Google Cloud project that you created:
gcloud config set project
PROJECT_ID Replace
PROJECT_ID
with your Google Cloud project name.
-
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Vision API:
gcloud services enable vision.googleapis.com
-
Grant roles to your user account. Run the following command once for each of the following IAM roles:
roles/storage.objectViewer
gcloud projects add-iam-policy-binding
PROJECT_ID --member="user:USER_IDENTIFIER " --role=ROLE - Replace
PROJECT_ID
with your project ID. -
Replace
USER_IDENTIFIER
with the identifier for your user account. For example,user:myemail@example.com
. - Replace
ROLE
with each individual role.
- Replace
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" } ] } ] }
Detalhes do valor do campo
image.source.gcsImageUri
: indica a imagem armazenada em um bucket do Cloud Storage. É possível mudar essa solicitação paraimage.source.imageUri
para um URI publicamente disponível ouimage.content
para transmitir uma representação de string codificada em Base64 relativa a uma imagem.features
: um objeto que representa um tipo de recurso específico. É possível solicitar vários tipos de recurso para uma única imagem.type
: o valor de enumeração que especifica um recurso.maxResults
(opcional): um valor limite nos resultados retornados.model
(opcional): se aplicável, é possível especificarbuiltin/stable
(o padrão, se não definido) oubuiltin/latest
para escolher o modelo. Consulte o tópico Notas da versão para ver uma lista de modelos atualizados recentemente.
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, você verá o seguinte na resposta JSON:
- Três resultados
labelAnnotations
- Um resultado
textAnnotations
(abreviado para maior clareza) - Um resultado
localizedObjectAnnotations
Resposta
{ "responses": [ { "labelAnnotations": [ { "mid": "/m/09g5pq", "description": "People", "score": 0.9504782, "topicality": 0.9504782 }, { "mid": "/m/01c8br", "description": "Street", "score": 0.8911568, "topicality": 0.8911568 }, { "mid": "/m/079bkr", "description": "Mode of transport", "score": 0.89089024, "topicality": 0.89089024 } ], "textAnnotations": [ { "locale": "zh", "description": "牛牛面馆\n", "boundingPoly": { "vertices": [ { "x": 159, "y": 212 }, { "x": 947, "y": 212 }, { "x": 947, "y": 354 }, { "x": 159, "y": 354 } ] } }, ... ], "fullTextAnnotation": { "pages": [ { ... "paragraphs": [ { ... "words": [ { ... "symbols": [ { ... ], "blockType": "TEXT" } ] } ], "text": "牛牛面馆\n" }, "localizedObjectAnnotations": [ { "mid": "/m/01g317", "name": "Person", "score": 0.94413143, "boundingPoly": { "normalizedVertices": [ { "x": 0.26063988, "y": 0.46869153 }, { "x": 0.40736017, "y": 0.46869153 }, { "x": 0.40736017, "y": 0.8957791 }, { "x": 0.26063988, "y": 0.8957791 } ] } } ] } ] }
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) e (x: 0.260, y: 0.895)

Parabéns! Você enviou sua primeira solicitação à API Vision.
Limpar
Para evitar cobranças na sua conta do Google Cloud pelos recursos usados nesta página, exclua o projeto do Google Cloud com esses recursos.
Optional: Revoke credentials from the gcloud CLI.
gcloud auth revoke
A seguir
- Veja uma lista de todos os tipos de recurso e os respectivos usos.
- Comece a usar a API Vision no idioma que preferir usando uma biblioteca de cliente da API Vision.
- Use os guias de instrução para saber mais sobre recursos específicos, ver anotações de exemplo e anotações para um arquivo ou imagem individual.
- Saiba mais sobre a anotação de imagem e arquivo (PDF/TIFF/GIF) em lote.
- Navegue por uma lista abrangente de amostras de código de biblioteca de cliente.