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

  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. Ao usar um provedor de identidade (IdP) externo, primeiro faça login na gcloud CLI com sua identidade federada.

  4. Para inicializar a gcloud CLI, execute o seguinte comando:

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

  6. Verify that billing is enabled for your Google Cloud project.

  7. Enable the Vision API:

    gcloud services enable vision.googleapis.com
  8. 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 the following:

    • PROJECT_ID: your project ID.
    • USER_IDENTIFIER: the identifier for your user account—for example, myemail@example.com.
    • ROLE: the IAM role that you grant to your user account.
  9. Install the Google Cloud CLI.

  10. Ao usar um provedor de identidade (IdP) externo, primeiro faça login na gcloud CLI com sua identidade federada.

  11. Para inicializar a gcloud CLI, execute o seguinte comando:

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

  13. Verify that billing is enabled for your Google Cloud project.

  14. Enable the Vision API:

    gcloud services enable vision.googleapis.com
  15. 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 the following:

    • PROJECT_ID: your project ID.
    • USER_IDENTIFIER: the identifier for your user account—for example, myemail@example.com.
    • ROLE: the IAM role that you grant to your user account.
  16. 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.

    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:

    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).

    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).

    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)
    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).

    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 projeto do Google Cloud e os recursos.

  17. Optional: Revoke credentials from the gcloud CLI.

    gcloud auth revoke
  18. A seguir