Fazer uma solicitação da API Vision

A API Cloud Vision é uma API REST que usa operações HTTP POST para realizar análise de dados nas imagens enviadas na solicitação. A API usa o JSON para solicitações e para respostas.

Resumo

Endpoint

A API Vision consiste em um único ponto de extremidade (https://vision.googleapis.com/v1/images) compatível com um único método de solicitação HTTP (annotate):

POST https://vision.googleapis.com/v1/images:annotate

Autenticação

Para se autenticar, a solicitação POST precisa transmitir uma chave de API ou um token OAuth. Para ver detalhes, consulte a página Autenticar.

Formato de solicitação JSON

O corpo da solicitação POST contém um objeto JSON, com uma única lista requests, que inclui um ou mais objetos do tipo AnnotateImageRequest:

{
  "requests":[
    {
      "image":{
        "content":"/9j/7QBEUGhvdG9...image contents...eYxxxzj/Coa6Bax//Z"
      },
      "features":[
        {
          "type":"LABEL_DETECTION",
          "maxResults":1
        }
      ]
    }
  ]
}

Toda solicitação:

  • precisa conter uma lista requests.

Dentro da lista requests:

  • image especifica o arquivo de imagem. Ele pode ser enviado como uma string codificada em base64, um local de arquivo do Google Cloud Storage ou um URL com acesso público. Consulte Como fornecer a imagem para ver mais detalhes;

  • features lista os tipos de anotação a serem feitos na imagem. Especifique um ou vários tipos ou escolha maxResults para retornar o máximo de cada um;

  • imageContext (não mostrado no exemplo acima) especifica dicas para o serviço. Assim, ele ajuda na anotação: caixas delimitadoras, idiomas e proporções de dicas de corte.

Como fornecer a imagem

Você pode fornecer a imagem na solicitação de uma destas três maneiras:

  • Como uma string de imagem codificada em base64. Se a imagem estiver armazenada localmente, será possível convertê-la em uma string e transmiti-la como o valor image.content:

    {
      "requests":[
        {
          "image":{
            "content":"/9j/7QBEUGhvdG9zaG9...image contents...fXNWzvDEeYxxxzj/Coa6Bax//Z"
          },
          "features":[
            {
              "type":"FACE_DETECTION",
              "maxResults":10
            }
          ]
        }
      ]
    }
    

    Consulte Codificação em base64 para ver instruções sobre codificação em várias plataformas.

  • Como um URI do Google Cloud Storage. Transmita o URI completo como o valor de image.source.imageUri:

    {
      "requests":[
        {
          "image":{
            "source":{
              "imageUri":
                "gs://bucket_name/path_to_image_object"
            }
          },
          "features":[
            {
              "type":"LABEL_DETECTION",
              "maxResults":1
            }
          ]
        }
      ]
    }
    

    O arquivo no Cloud Storage precisa ser acessível pelo método de autenticação utilizado. Se você estiver usando uma chave de API, o arquivo precisará estar publicamente acessível. Se você estiver usando uma conta de serviço, o arquivo precisará estar acessível para o usuário que criou a conta do serviço.

  • Como um URL HTTP ou HTTPS com acesso público. Transmita o URL como o valor image.source.imageUri:

    {
      "requests":[
        {
          "image":{
            "source":{
              "imageUri":
                "https://www.google.com/images/branding/googlelogo/2x/googlelogo_color_272x92dp.png"
            }
          },
          "features":[
            {
              "type":"LOGO_DETECTION",
              "maxResults":1
            }
          ]
        }
      ]
    }
    

Formato de resposta JSON

A solicitação annotate recebe uma resposta JSON do tipo AnnotateImageResponse. As solicitações são semelhantes para cada tipo de recurso, mas as respostas para cada um deles podem ser bastante diferentes. Consulte Referência da API Vision para ver informações detalhadas.

O código abaixo contém uma amostra de resposta de detecção de marcadores para esta foto:

{
  "responses": [
    {
      "labelAnnotations": [
        {
          "mid": "/m/0bt9lr",
          "description": "dog",
          "score": 0.97346616
        },
        {
          "mid": "/m/09686",
          "description": "vertebrate",
          "score": 0.85700572
        },
        {
          "mid": "/m/01pm38",
          "description": "clumber spaniel",
          "score": 0.84881884
        },
        {
          "mid": "/m/04rky",
          "description": "mammal",
          "score": 0.847575
        },
        {
          "mid": "/m/02wbgd",
          "description": "english cocker spaniel",
          "score": 0.75829375
        }
      ]
    }
  ]
}

Bibliotecas de cliente

O Google fornece bibliotecas de cliente em várias linguagens de programação para simplificar o processo de criar e enviar solicitações e receber e analisar as respostas.

Consulte as bibliotecas de cliente para ver instruções de instalação e uso.

Esta página foi útil? Conte sua opinião sobre:

Enviar comentários sobre…

Documentação da API Cloud Vision
Precisa de ajuda? Acesse nossa página de suporte.