Realiza una solicitud de la API de Vision

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 lucen así, pero los campos varían según el tipo de anotación que estés realizando.
  • 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 solo extremo (https://vision.googleapis.com/v1/images) que es compatible con 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 tu solicitud POST consta de un objeto JSON, que contiene una sola lista requests, que en sí misma 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:

  • Contener una lista requests.

Dentro de una lista requests, ocurre lo siguiente:

  • image especifica el archivo de imagen. Se puede enviar como una string codificada en base64, una ubicación de archivo de Google Cloud Storage, o como una URL de acceso público. Consulta Proporciona la imagen para obtener más información.

  • features hace una lista de los tipos de anotación para realizar en la imagen. Puedes especificar uno o más tipos, así como maxResults para mostrar en cada uno.

  • imageContext (que no se muestra en el ejemplo anterior) especifica sugerencias al servicio para ayudar con la anotación: cuadros de límite, idiomas, relaciones de aspecto de ajustes de recortes.

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 está almacenada de manera local, puedes convertirla en una string y pasarla como un 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 Google Cloud Storage. Pasa la URI completa como un 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 esta 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
            }
          ]
        }
      ]
    }
    

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.

¿Te ha resultado útil esta página? Enviar comentarios:

Enviar comentarios sobre...

Documentación de la API de Cloud Vision
Si necesitas ayuda, visita nuestra página de asistencia.