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

  1. 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.
  2. Install the Google Cloud CLI.
  3. To initialize the gcloud CLI, run the following command:

    gcloud init
  4. 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.

  5. Make sure that billing is enabled for your Google Cloud project.

  6. Enable the Vision API:

    gcloud services enable vision.googleapis.com
  7. 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.
  8. Install the Google Cloud CLI.
  9. To initialize the gcloud CLI, run the following command:

    gcloud init
  10. 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.

  11. Make sure that billing is enabled for your Google Cloud project.

  12. Enable the Vision API:

    gcloud services enable vision.googleapis.com
  13. 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.

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

Imagem de uma rua de Xangai.
Crédito da imagem: Steve Long no Unsplash (páginas em inglês).

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, você verá o seguinte na resposta JSON:

Resultados de detecção de rótulos

  1. Descrição: "People", pontuação: 0,950
  2. Descrição: "Street", pontuação: 0,891
  3. Descrição: "Mode of transport", pontuação: 0,890
Imagem de uma rua de Xangai com os resultados da detecção de rótulos.
Crédito da imagem: Steve Long no Unsplash (com anotações) [páginas em inglês].

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 )
Imagem de uma rua de Xangai com os resultados da detecção de texto.
Crédito da imagem: Steve Long no Unsplash (com anotações) [páginas em inglês].

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)
Imagem de uma rua de Xangai com os resultados da detecção de objetos.
Crédito da imagem: Steve Long no Unsplash (com anotações) [páginas em inglês].

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