Extension Google Cloud Vision

Vous consultez la documentation d'Apigee Edge.
Accédez à la documentation sur Apigee X.
info

Version: 2.0.0

Découvrez le contenu et le texte des images à l'aide de modèles de machine learning.

Ce contenu fournit une documentation de référence pour configurer et utiliser cette extension. Avant d'utiliser cette extension à partir d'un proxy d'API, vous devez:

  1. Activez l'API Cloud Vision pour votre compte de service.

  2. Si vous utilisez Cloud Storage comme source de vos images, vous devez également accorder à cette extension l'accès à Cloud Storage, comme décrit dans la documentation de référence sur l'extension Google Cloud Storage.

  3. Si vous disposez d'un compte de service autorisé à utiliser Cloud Vision (et Cloud Storage, si vous l'utilisez), générez une clé pour ce compte de service à l'aide de la console GCP.

  4. Utilisez le contenu du fichier JSON de clé généré lorsque vous ajoutez et configurez l'extension à l'aide de la référence de configuration.

À propos de Cloud Vision

L'API Google Cloud Vision utilise des modèles de machine learning pour analyser les images. Vous pouvez entraîner un modèle à utiliser par l'API ou utiliser le modèle intégré.

À l'aide du modèle intégré, Cloud Vision classe les images dans des catégories telles que "gratte-ciel", "voilier", "lion" ou "Tour Eiffel". Il détecte les objets, les visages, les logos et les points de repère dans les images, et localise les mots contenus dans les images.

Exemples

Les exemples suivants montrent comment configurer la prise en charge des actions d'extension Cloud Vision à l'aide de la règle ExtensionCallout.

Détecter des libellés

Dans l'exemple suivant, l'action detectLabels de l'extension récupère l'image au niveau de image_uri et la transmet à l'API Cloud Vision pour analyse. L'API examine l'image et détermine les libellés qui s'appliquent à son contenu.

<?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>

La règle Assign Message suivante utilise la valeur de la variable stockant la réponse de l'extension pour attribuer la charge utile de la réponse.

<?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>

Si vous lui montrez une image d'une zone urbaine avec un très haut bâtiment, vous pouvez obtenir une réponse semblable à la suivante:

{
  "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
      }
  ]
}

Détecter du texte

Dans l'exemple suivant, l'action detectText des extensions récupère l'image au niveau de image_uri et la transmet à l'API Cloud Vision pour analyse. L'API examine l'image et identifie le texte qu'elle contient.

<?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>

La règle Assign Message suivante utilise la valeur de la variable stockant la réponse de l'extension pour attribuer la charge utile de la réponse.

<?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 vous fournissez une image contenant des panneaux dans un journal de stationnement, vous pouvez recevoir une réponse semblable à la suivante:

{
  "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
                  }
              ]
          }
      }
   ]
}

Actions

detectLabels

Détecte et extrait des informations sur les entités de l'image spécifiée. Les entités détectées couvrent un large groupe de catégories. Par exemple, utilisez cette action pour identifier des objets, des lieux, des activités, des espèces animales, des produits, etc.

Consultez également la documentation de l'API Cloud Vision.

Paramètres de requête

Paramètre Description Type Valeur par défaut Obligatoire
image_uri Source de l'image. Il peut s'agir d'Internet ou de Google Cloud Storage (format: gs://bucketname/filename). Si la source est Google Cloud Storage, le fichier image doit être public. Chaîne Aucune. Oui.

Syntaxe

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

Exemple

Dans l'exemple suivant, l'action detectLabels de l'extension envoie l'image spécifiée à l'API Vision pour analyse.

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

Réponse

Objet contenant un tableau labels de libellés représentant les entités détectées dans l'image. Pour en savoir plus, consultez Détecter des étiquettes.

detectText

Détecte et extrait le texte de l'image spécifiée.

Paramètres de requête

Paramètre Description Type Valeur par défaut Obligatoire
image_uri Source de l'image. Il peut s'agir d'Internet ou de Google Cloud Storage (format: gs://bucketname/filename). Si la source est Google Cloud Storage, le fichier image doit être public. Chaîne Aucune. Oui.

Syntaxe

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

Exemple

Dans l'exemple suivant, l'action detectText de l'extension envoie l'image spécifiée à l'API Vision pour analyse.

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

Réponse

Objet contenant un tableau text du texte détecté. Pour en savoir plus, consultez Détecter des étiquettes.

Documentation de référence sur la configuration

Utilisez les éléments suivants lorsque vous configurez et déployez cette extension pour l'utiliser dans des proxys d'API. Pour savoir comment configurer une extension à l'aide de la console Apigee, consultez Ajouter et configurer une extension.

Propriétés d'extension courantes

Les propriétés suivantes sont présentes pour chaque extension.

Propriété Description Par défaut Obligatoire
name Nom que vous attribuez à cette configuration de l'extension. Aucune Oui
packageName Nom du package d'extension tel qu'indiqué par Apigee Edge. Aucune Oui
version Numéro de version du package d'extension à partir duquel vous configurez une extension. Aucune Oui
configuration Valeur de configuration spécifique à l'extension que vous ajoutez. Consultez Propriétés de ce package d'extension. Aucune Oui