A API Cloud Vision é uma API REST que usa operações HTTP POST para realizar a análise de dados em imagens que envia no pedido. A API usa JSON para pedidos e respostas.
Resumo
- Os pedidos são pedidos POST para
https://vision.googleapis.com/v1/images:annotate
. - Tem de autenticar os seus pedidos.
- O corpo do pedido tem o seguinte aspeto: . As respostas têm um aspeto semelhante a este, mas os campos variam consoante o tipo de anotação que está a fazer.
- Veja como enviar um pedido com o cURL.
- Também existem bibliotecas cliente.
- Procura uma demonstração rápida? Basta arrastar e largar!
Ponto final
A API Vision consiste num único ponto final (https://vision.googleapis.com/v1/images
) que suporta um método de pedido HTTP (annotate
):
POST https://vision.googleapis.com/v1/images:annotate
Autenticação
O pedido POST tem de ser autenticado através da transmissão de uma chave da API ou de um token OAuth. Para obter detalhes, consulte a página Autenticar.
Formato de pedido JSON
O corpo do seu pedido POST contém um objeto JSON com uma única
requests
lista, que, por sua vez, contém um ou mais objetos do tipo
AnnotateImageRequest
:
{
"requests":[
{
"image":{
"content":"/9j/7QBEUGhvdG9...image contents...eYxxxzj/Coa6Bax//Z"
},
"features":[
{
"type":"LABEL_DETECTION",
"maxResults":1
}
]
}
]
}
Todos os pedidos:
- Tem de conter uma lista
requests
.
Na lista requests
:
image
especifica o ficheiro de imagem. Pode ser enviado como uma string codificada em base64, uma localização de ficheiro do Cloud Storage ou um URL acessível publicamente. Consulte a secção Fornecer a imagem para ver detalhes.features
apresenta os tipos de anotação a realizar na imagem. Pode especificar um ou vários tipos, bem como omaxResults
a devolver para cada um.imageContext
(não apresentado no exemplo acima) especifica sugestões para o serviço para ajudar com a anotação: caixas delimitadoras, idiomas e proporções de sugestões de recorte.
Fornecer a imagem
Pode fornecer a imagem no seu pedido de uma de três formas:
Como uma string de imagem codificada em base64. Se a imagem estiver armazenada localmente, pode convertê-la numa string e transmiti-la como o valor de
image.content
:{ "requests":[ { "image":{ "content":"/9j/7QBEUGhvdG9zaG9...image contents...fXNWzvDEeYxxxzj/Coa6Bax//Z" }, "features":[ { "type":"FACE_DETECTION", "maxResults":10 } ] } ] }
Consulte o artigo Codificação base64 para ver instruções sobre a codificação em várias plataformas.
Como um URI do 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 ficheiro no Cloud Storage tem de estar acessível ao método de autenticação que está a usar. Se estiver a usar uma chave da API, o ficheiro tem de estar acessível publicamente. Se estiver a usar uma conta de serviço, o ficheiro tem de estar acessível ao utilizador que criou a conta de serviço.
Como um URL HTTP ou HTTPS acessível publicamente. Transmita o URL como o valor de
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 } ] } ] }
Quando obtém imagens de URLs HTTP/HTTPS, a Google não pode garantir que o pedido será concluído. O seu pedido pode falhar se o anfitrião especificado recusar o pedido (por exemplo, devido à limitação de pedidos ou à prevenção de DoS) ou se a Google limitar os pedidos ao site para prevenção de abusos. Como prática recomendada, não dependa de imagens alojadas externamente para aplicações de produção.
Formato de resposta JSON
O pedido annotate
recebe uma resposta JSON do tipo AnnotateImageResponse
.
Embora os pedidos sejam semelhantes para cada tipo de funcionalidade, as respostas para cada tipo de funcionalidade podem ser bastante diferentes. Consulte a
referência da API Vision
para obter informações completas.
O código abaixo demonstra uma resposta de deteção de etiquetas de exemplo para a foto mostrada abaixo:

{ "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 cliente
A Google fornece bibliotecas cliente em várias linguagens de programação para simplificar o processo de criação e envio de pedidos, bem como de receção e análise de respostas.
Consulte as bibliotecas de cliente para ver instruções de instalação e utilização.