La API de Cloud Vision es una API de REST que usa las operaciones POST de HTTP para realizar un análisis de datos en las imágenes que envías en la solicitud. La API usa JSON en las solicitudes y respuestas.
Resumen
- Las solicitudes son solicitudes POST a
https://vision.googleapis.com/v1/images:annotate
. - Debes autenticar tus solicitudes.
- El cuerpo de la solicitud luce así. Las respuestas se ven de esta manera, pero los campos varían según el tipo de anotación que realices.
- Aquí se muestra cómo enviar una solicitud con cURL.
- También existen bibliotecas cliente.
- ¿Buscas una demostración rápida? ¡Solo arrastra y suelta!
Extremo
La API de Vision consta de un único extremo (https://vision.googleapis.com/v1/images
) que admite un método de solicitud HTTP (annotate
):
POST https://vision.googleapis.com/v1/images:annotate
Autenticación
La solicitud POST debe autenticarse a través del paso de una clave de API o un token de OAuth. Para obtener más información, consulta la página Autenticar.
Formato de solicitud JSON
El cuerpo de la solicitud POST consta de un objeto JSON, que incluye una sola lista de requests
, que contiene uno o más objetos de tipo AnnotateImageRequest
:
{
"requests":[
{
"image":{
"content":"/9j/7QBEUGhvdG9...image contents...eYxxxzj/Coa6Bax//Z"
},
"features":[
{
"type":"LABEL_DETECTION",
"maxResults":1
}
]
}
]
}
Cada solicitud debe cumplir esta condición:
- Debe contener una lista de
requests
.
Dentro de la lista de requests
, se especifica lo siguiente:
image
especifica el archivo de imagen. Se puede enviar como una string codificada en base64, una ubicación de archivo de Cloud Storage o como una URL de acceso público. Consulta Proporciona la imagen para obtener más detalles.features
enumera los tipos de anotaciones que se realizarán en la imagen. Puedes especificar uno o varios tipos, así como losmaxResults
que se mostrarán para cada uno.imageContext
especifica sugerencias al servicio para ayudar con la anotación: cuadros de límite, idiomas y relaciones de aspecto de las sugerencias de recorte (no se muestra en el ejemplo anterior).
Proporciona la imagen
Puedes proporcionar la imagen en tu solicitud de una de las siguientes tres maneras:
Como una string de imagen codificada en base64. Si la imagen se almacena de forma local, puedes convertirla en una string y pasarla como el valor de
image.content
:{ "requests":[ { "image":{ "content":"/9j/7QBEUGhvdG9zaG9...image contents...fXNWzvDEeYxxxzj/Coa6Bax//Z" }, "features":[ { "type":"FACE_DETECTION", "maxResults":10 } ] } ] }
Consulta codificación en Base64 a fin de obtener instrucciones para codificar en varias plataformas.
Como un URI de Cloud Storage. Pasa el URI completo como el valor de
image.source.imageUri
:{ "requests":[ { "image":{ "source":{ "imageUri": "gs://bucket_name/path_to_image_object" } }, "features":[ { "type":"LABEL_DETECTION", "maxResults":1 } ] } ] }
El archivo en Cloud Storage debe ser accesible al método de autenticación que usas. Si usas una clave de API, el archivo debe ser de acceso público. Si usas una cuenta de servicio, el archivo debe ser accesible para el usuario que creó la cuenta de servicio.
Como una URL HTTP o HTTPS de acceso público. Pasa la URL como el 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 } ] } ] }
Cuando se recuperan imágenes de URL HTTP/HTTPS, Google no puede garantizar que se completará la solicitud. Tu solicitud puede fallar si el host especificado niega la solicitud (p. ej., debido a una regulación de solicitud o una prevención de DoS) o si Google regula las solicitudes al sitio para evitar abusos. Como práctica recomendada, no dependas de las imágenes alojadas de forma externa para las aplicaciones de producción.
Formato de respuesta JSON
La solicitud annotate
recibe una respuesta JSON de tipo AnnotateImageResponse
.
Aunque las solicitudes para cada tipo de característica son similares, las respuestas de cada uno de ellos pueden ser muy diferentes. Consulta la referencia de la API de Vision para obtener más información.
El código siguiente muestra una respuesta de detección de etiquetas de muestra para la foto que verás a continuación:
{ "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
Google proporciona bibliotecas cliente en varios lenguajes de programación para simplificar el proceso de compilación y envío de solicitudes y de recepción y análisis de respuestas.
Consulta las bibliotecas cliente para obtener más información sobre las instrucciones de instalación y uso.