Rozszerzenie Google Cloud Vision

Przeglądasz dokumentację Apigee Edge.
Otwórz dokumentację Apigee X.
Informacje

Wersja: 1.2.0

Odkrywanie treści i tekstu na obrazach za pomocą modeli systemów uczących się.

Ta treść zawiera informacje na temat konfigurowania tego rozszerzenia i korzystania z niego. Zanim użyjesz tego rozszerzenia z poziomu serwera proxy interfejsu API, musisz:

  1. Włącz Cloud Vision API na swoim koncie usługi.

  2. Jeśli źródłem obrazów będzie Cloud Storage, musisz też przyznać temu rozszerzeniu dostęp do Cloud Storage zgodnie z opisem w dokumentacji rozszerzeń Google Cloud Storage.

  3. Jeśli masz konto usługi z uprawnieniami do Cloud Vision (i Cloud Storage, jeśli z niego korzystasz), wygeneruj klucz dla konta usługi w konsoli GCP.

  4. Podczas dodawania i konfigurowania rozszerzenia przy użyciu dokumentu dotyczącego konfiguracji użyj zawartości powstałego klucza pliku JSON.

Informacje o Cloud Vision

Google Cloud Vision API używa modeli systemów uczących się do analizowania obrazów. Możesz wytrenować model interfejsu API lub użyć wbudowanego modelu.

Korzystając z wbudowanego modelu, Cloud Vision klasyfikuje obrazy w kategoriach, takich jak „wieżowiec”, żaglówka, „lew” czy „wieża Eiffla”. Wykrywa obiekty, twarze, logo i punkty orientacyjne na zdjęciach oraz lokalizuje słowa zawarte na zdjęciach.

Sample

Poniższe przykłady pokazują, jak skonfigurować obsługę działań rozszerzenia Cloud Vision za pomocą zasady ExtensionCallout.

Wykrywanie etykiet

W poniższym przykładzie działanie detectLabels rozszerzenia pobiera obraz w elemencie image_uri i przekazuje go do interfejsu Cloud Vision API w celu analizy. Interfejs API sprawdzi obraz i określi, które etykiety mają zastosowanie do jego treści.

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

Poniższa zasada Przypisz wiadomość do przypisania ładunku odpowiedzi wykorzystuje wartość zmiennej przechowującej odpowiedź rozszerzenia.

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

Na zdjęciu przedstawiającym obszar miejski, na którym znajduje się bardzo wysoki budynek, możesz zobaczyć taką odpowiedź:

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

Wykryj tekst

W poniższym przykładzie działanie rozszerzenia detectText pobiera obraz w elemencie image_uri i przekazuje go do interfejsu Cloud Vision API w celu analizy. Interfejs API sprawdzi obraz, identyfikując na nim tekst.

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

Poniższa zasada Przypisz wiadomość do przypisania ładunku odpowiedzi wykorzystuje wartość zmiennej przechowującej odpowiedź rozszerzenia.

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

Na podstawie obrazu ze znakami na tablicy parkowania możesz zobaczyć taką odpowiedź:

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

Działania

detectLabels

Wykrywa i wyodrębnia informacje o elementach na określonym obrazie. Wykryte elementy należą do szerokiej grupy kategorii. W ten sposób możesz na przykład zidentyfikować obiekty, lokalizacje, działania, gatunki zwierząt, produkty itp.

Zapoznaj się też z dokumentacją Cloud Vision API.

Parametry żądania

Parametr Opis Typ Domyślne Wymagane
image_uri Źródło obrazu. Może on pochodzić z internetu lub Google Cloud Storage (w formacie: gs://bucketname/filename). Jeśli źródłem jest Google Cloud Storage, plik obrazu musi być publiczny. Ciąg znaków Brak. Tak.

Składnia

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

Przykład

W poniższym przykładzie działanie detectLabels rozszerzenia wysyła określony obraz do interfejsu Vision API w celu analizy.

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

Odpowiedź

Obiekt zawierający tablicę labels etykiet reprezentujących elementy wykryte na obrazie. Więcej informacji znajdziesz w artykule Wykrywanie etykiet.

detectText

Wykrywa i wyodrębnia tekst ze wskazanego obrazu.

Parametry żądania

Parametr Opis Typ Domyślne Wymagane
image_uri Źródło obrazu. Może on pochodzić z internetu lub Google Cloud Storage (w formacie: gs://bucketname/filename). Jeśli źródłem jest Google Cloud Storage, plik obrazu musi być publiczny. Ciąg znaków Brak. Tak.

Składnia

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

Przykład

W poniższym przykładzie działanie detectText rozszerzenia wysyła określony obraz do interfejsu Vision API w celu analizy.

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

Odpowiedź

Obiekt zawierający tablicę text wykrytego tekstu. Więcej informacji znajdziesz w artykule Wykrywanie etykiet.

Dokumentacja konfiguracji

Skorzystaj z podanych niżej instrukcji podczas konfigurowania i wdrażania tego rozszerzenia na potrzeby serwerów proxy interfejsów API. Instrukcje konfigurowania rozszerzenia w konsoli Apigee znajdziesz w artykule Dodawanie i konfigurowanie rozszerzenia.

Typowe właściwości rozszerzeń

Dla każdego rozszerzenia dostępne są poniższe właściwości.

Usługa Opis Domyślnie Wymagany
name Nazwa nadana konfiguracji rozszerzenia. Brak Tak
packageName Nazwa pakietu rozszerzeń podana przez Apigee Edge. Brak Tak
version Numer wersji pakietu rozszerzenia, z którego konfigurujesz rozszerzenie. Brak Tak
configuration Wartość konfiguracji specyficzna dla dodawanego rozszerzenia. Zobacz Właściwości tego pakietu rozszerzeń Brak Tak