Detete etiquetas numa imagem através da linha de comandos

Esta página mostra como enviar três pedidos de deteção e anotação de funcionalidades para a API Vision através da interface REST e do comando curl.

A API Vision permite a integração fácil das tecnologias de reconhecimento de visão da Google nas aplicações dos programadores. Pode enviar dados de imagens e tipos de funcionalidades desejados para a API Vision, que devolve uma resposta correspondente com base nos atributos de imagem nos quais tem interesse. Para mais informações sobre os tipos de funcionalidades oferecidos, consulte a lista de todas as funcionalidades da API 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. Se estiver a usar um fornecedor de identidade (IdP) externo, primeiro, tem de iniciar sessão na CLI gcloud com a sua identidade federada.

  4. Para inicializar a CLI gcloud, 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. Se estiver a usar um fornecedor de identidade (IdP) externo, primeiro, tem de iniciar sessão na CLI gcloud com a sua identidade federada.

  11. Para inicializar a CLI gcloud, 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. Faça um pedido de anotação de imagem

    Depois de concluir os passos em Antes de começar, pode usar a API Vision para anotar um ficheiro de imagem.

    Neste exemplo, usa o curl para enviar um pedido para a API Vision com 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 rua de Xangai.
    Créditos da imagem: Steve Long no Unsplash.

    Crie o JSON do pedido

    O ficheiro request.json seguinte demonstra como pedir três images:annotate funcionalidades e limitar os resultados na resposta.

    Crie o ficheiro de pedido JSON com o seguinte texto e guarde-o como um request.json ficheiro de texto simples 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"
            }
          ]
        }
      ]
    }

    Envie o pedido

    Usa o curl e o conteúdo do corpo de request.json para enviar o pedido à API Vision. Introduza o seguinte na linha de comandos:

    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

    Interprete a resposta

    Deve ver uma resposta JSON semelhante à apresentada abaixo.

    O corpo JSON do pedido especificado maxResults para cada tipo de anotação. Consequentemente, verá o seguinte no JSON de resposta:

    Resultados da deteção de etiquetas

    1. description: "People", score: 0.950
    2. description: "Street", score: 0.891
    3. description: "Mode of transport", score: 0.890
    Imagem de rua de Xangai com resultados de deteção de etiquetas.
    Créditos da imagem: Steve Long no Unsplash (anotações adicionadas).

    Resultados da deteção de texto

    • text: 牛牛面馆\n
    • vertices: (x: 159, y: 212), (x: 947, y: 212), (x: 947, y: 354), (x: 159, y: 354 )
    Imagem de rua de Xangai com resultados de deteção de texto.
    Créditos da imagem: Steve Long no Unsplash (anotações adicionadas).

    Resultados da deteção de objetos

    • name: "Person", score: 0.944
    • normalized vertices: (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 rua de Xangai com resultados de deteção de objetos.
    Créditos da imagem: Steve Long no Unsplash (anotações adicionadas).

    Parabéns! Enviou o seu primeiro pedido à API Vision.

    Limpar

    Para evitar incorrer em custos na sua Google Cloud conta pelos recursos usados nesta página, elimine o Google Cloud projeto com os recursos.

  17. Optional: Revoke credentials from the gcloud CLI.

    gcloud auth revoke
  18. O que se segue?