Extensión de Google Cloud Vision

Estás consultando la documentación de Apigee Edge.
Consulta la documentación de Apigee X.
Información

Versión: 1.4.1

Descubre el contenido y el texto de las imágenes con modelos de aprendizaje automático.

En este contenido, se proporciona referencia para configurar y usar la extensión. Antes de usar esta extensión desde un proxy de API, debes hacer lo siguiente:

  1. Habilita la API de Cloud Vision en tu cuenta de servicio.

  2. Si usarás Cloud Storage como la fuente de tus imágenes, también deberás otorgarle acceso a esta extensión a Cloud Storage como se describe en la referencia de la extensión de Google Cloud Storage.

  3. Si tienes una cuenta de servicio con permiso para Cloud Vision (y Cloud Storage, si la usas), usa GCP Console a fin de generar una clave para la cuenta de servicio.

  4. Usa el contenido del archivo JSON de claves resultante cuando agregues y configures la extensión mediante la referencia de configuración.

Acerca de Cloud Vision

La API de Google Cloud Vision usa modelos de aprendizaje automático para analizar imágenes. Puedes entrenar un modelo para que la API use o use el modelo integrado.

Con el modelo integrado, Cloud Vision clasifica las imágenes en categorías como “rascacielos”, velero, “león” o “Torre Eiffel”. Detecta objetos, rostros, logotipos y puntos de referencia en imágenes y localiza palabras incluidas en ellas.

Ejemplos

En los siguientes ejemplos, se muestra cómo configurar la compatibilidad con las acciones de extensión de Cloud Vision mediante la política ExtensionExtension.

detect-labels

En el siguiente ejemplo, la acción detectLabels de la extensión obtiene la imagen en image_uri y la pasa a la API de Cloud Vision para su análisis. La API examinará la imagen y determinará qué etiquetas se aplican al contenido de esta.

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ConnectorCallout async="false" continueOnError="true" enabled="true" name="Cloud-Vision-Extension">
    <DisplayName>Cloud Vision Extension</DisplayName>
    <Connector>cloud-vision-extension-example</Connector>
    <Action>detectLabels</Action>
    <Input><![CDATA[
    {
        "image_uri" : "gs://cloud-vision-example/empire-state-building.jpg"
    }
    ]]></Input>
    <Output>vision.labels.retrieved</Output>
</ConnectorCallout>

En la siguiente política de Asignar mensaje, se usa el valor de la variable que almacena la respuesta de la extensión para asignar la carga útil de la respuesta.

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<AssignMessage async="false" continueOnError="false" enabled="true" name="Get-Image-Labels">
    <DisplayName>Get Image Labels</DisplayName>
    <AssignTo type="response" createNew="false"/>
    <Set>
        <Payload contentType="application/json">{vision.labels.retrieved}</Payload>
    </Set>
</AssignMessage>

Dada una imagen de un área urbana con un edificio muy alto, podrías recibir una respuesta como la siguiente:

{
  "labels": [
      {
          "locations": [

          ],
          "properties": [

          ],
          "mid": "/m/0j_s4",
          "locale": "",
          "description": "metropolitan area",
          "score": 0.9868549704551697,
          "confidence": 0,
          "topicality": 0.9868549704551697,
          "boundingPoly": null
      },
      {
          "locations": [

          ],
          "properties": [

          ],
          "mid": "/m/079cl",
          "locale": "",
          "description": "skyscraper",
          "score": 0.966157853603363,
          "confidence": 0,
          "topicality": 0.966157853603363,
          "boundingPoly": null
      }
  ]
}

Detecta texto

En el siguiente ejemplo, la acción de extensiones detectText obtiene la imagen en image_uri y la pasa a la API de Cloud Vision para su análisis. La API examinará la imagen y, luego, identificará el texto que esta tenga.

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ConnectorCallout async="false" continueOnError="true" enabled="true" name="Cloud-Vision-Text">
    <DisplayName>Cloud Vision Text</DisplayName>
    <Connector>cloud-vision-extension-example</Connector>
    <Action>detectText</Action>
    <Input><![CDATA[
    {
        "image_uri" : "gs://cloud-vision-example/parking-signs1.jpg"
    }
    ]]></Input>
    <Output>vision.text.retrieved</Output>
</ConnectorCallout>

En la siguiente política de Asignar mensaje, se usa el valor de la variable que almacena la respuesta de la extensión para asignar la carga útil de la respuesta.

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<AssignMessage async="false" continueOnError="false" enabled="true" name="Get-Image-Text">
    <DisplayName>Get Image Text</DisplayName>
    <AssignTo type="response" createNew="false"/>
    <Set>
        <Payload contentType="application/json">{vision.text.retrieved}</Payload>
    </Set>
</AssignMessage>

Si aparece una imagen que contiene letreros en un registro de estacionamiento, podrías recibir una respuesta como la siguiente:

{
  "text": [
      {
          "locations": [

          ],
          "properties": [

          ],
          "mid": "",
          "locale": "en",
          "description": "RESERVED\nVISITORPARKING\nPARKING\nONLY>\n$150 FINE\n",
          "score": 0,
          "confidence": 0,
          "topicality": 0,
          "boundingPoly": {
              "vertices": [
                  {
                      "x": 64,
                      "y": 56
                  },
                  {
                      "x": 378,
                      "y": 56
                  },
                  {
                      "x": 378,
                      "y": 218
                  },
                  {
                      "x": 64,
                      "y": 218
                  }
              ]
          }
      },
      {
          "locations": [

          ],
          "properties": [

          ],
          "mid": "",
          "locale": "",
          "description": "RESERVED",
          "score": 0,
          "confidence": 0,
          "topicality": 0,
          "boundingPoly": {
              "vertices": [
                  {
                      "x": 243,
                      "y": 56
                  },
                  {
                      "x": 378,
                      "y": 56
                  },
                  {
                      "x": 378,
                      "y": 84
                  },
                  {
                      "x": 243,
                      "y": 84
                  }
              ]
          }
      }
   ]
}

Acciones

detectLabels

Detecta y extrae información sobre las entidades dentro de la imagen especificada. Las entidades detectadas varían en un amplio grupo de categorías. Por ejemplo, usa esta acción para identificar objetos, ubicaciones, actividades, especies de animales, productos y mucho más.

Además, asegúrate de consultar la documentación de la API de Cloud Vision.

parámetros de solicitud

Parámetro Descripción Tipo Predeterminada Obligatorias
image_uri Fuente de la imagen. Puede ser de Internet o de Google Cloud Storage (formato: gs://bucketname/filename). Si la fuente es Google Cloud Storage, el archivo de imagen debe ser público. Cadena Ningún contenido de este tipo Sí.

Sintaxis

<Input><![CDATA[{
    "image_uri" : "uri-of-image-to-analyze"
}
]]></Input>

Ejemplo

En el siguiente ejemplo, la acción detectLabels de la extensión envía la imagen especificada a la API de Vision para su análisis.

<Input><![CDATA[
{
    "image_uri" : "gs://cloud-vision-example/empire-state-building.jpg"
}
]]></Input>

Respuesta

Un objeto que contiene un array labels de etiquetas que representan entidades detectadas en la imagen. Para obtener más información, consulta Detecta etiquetas.

detectText

Detecta y extrae texto de la imagen especificada.

parámetros de solicitud

Parámetro Descripción Tipo Predeterminada Obligatorias
image_uri Fuente de la imagen. Puede ser de Internet o de Google Cloud Storage (formato: gs://bucketname/filename). Si la fuente es Google Cloud Storage, el archivo de imagen debe ser público. Cadena Ningún contenido de este tipo Sí.

Sintaxis

<Input><![CDATA[
{
    "image_uri" : "uri-of-image-to-analyze"
}
]]></Input>

Ejemplo

En el siguiente ejemplo, la acción detectText de la extensión envía la imagen especificada a la API de Vision para su análisis.

<Input><![CDATA[
{
    "image_uri" : "gs://cloud-vision-example/parking-signs1.jpg"
}
]]></Input>

Respuesta

Un objeto que contiene un array text del texto detectado. Para obtener más información, consulta Detecta etiquetas.

Referencia de configuración

Usa la siguiente información cuando configures e implementes esta extensión para usarla en proxies de API. Si quieres conocer los pasos para configurar una extensión con la consola de Apigee, consulta Agrega y configura una extensión.

Propiedades comunes de las extensiones

Las siguientes propiedades están presentes para cada extensión.

Propiedad Descripción Predeterminado Obligatorio
name Nombre que asignas a esta configuración de la extensión. Ninguna
packageName Nombre del paquete de extensiones proporcionado por Apigee Edge. Ninguna
version El número de versión del paquete de extensiones desde el que quieres configurar la extensión. Ninguna
configuration Es un valor de configuración específico para la extensión que agregas. Consulta Propiedades para este paquete de extensiones Ninguna