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
- As solicitações são do tipo POST para
https://vision.googleapis.com/v1/images:annotate
. - Você precisa autenticar suas solicitações.
- O corpo da solicitação tem esta aparência. As respostas ficam assim, mas os campos variam de acordo com o tipo de anotação que está sendo feita.
- Veja como enviar uma solicitação com cURL.
- Também há bibliotecas de cliente.
- Procurando uma demonstração rápida? Basta arrastar e soltar!
Endpoint
A API Vision consiste em um único endpoint (https://vision.googleapis.com/v1/images
) compatível com um método de solicitação HTTP (annotate
):
POST https://vision.googleapis.com/v1/images:annotate
Authentication
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 de 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
}
]
}
]
}
Cada solicitação:
- precisa conter uma lista de
requests
.
Na lista de requests
:
image
especifica o arquivo de imagem. Ele pode ser enviado como uma string codificada em base64, um local de arquivo do Cloud Storage ou um URL acessível publicamente. Consulte Como fornecer a imagem para detalhes;features
lista os tipos de anotação para execução na imagem. É possível especificar um ou vários tipos, além demaxResults
a ser retornado para cada um;imageContext
(não mostrado no exemplo acima) especifica dicas para o serviço a fim de ajudar com a anotação: proporções de caixas delimitadoras, idiomas e 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 de
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 Cloud Storage. Insira 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 acessível publicamente. Insira 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 } ] } ] }
Ao buscar imagens de URLs HTTP/HTTPS, o Google não pode garantir que a solicitação seja concluída. A solicitação poderá falhar se o host especificado negá-la (por exemplo, por causa de limitação da solicitação ou prevenção de DOS) ou se o Google limitar as solicitações ao site para prevenção de abuso. Como prática recomendada, não dependa de imagens hospedadas externamente para aplicativos de produção.
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.