Rozszerzenie Google Cloud Vision

Wyświetlasz dokumentację Apigee Edge.
Otwórz dokumentację Apigee X.
info

Wersja: 2.0.0

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

Te treści zawierają informacje na temat konfigurowania i używania tego rozszerzenia. Zanim użyjesz tego rozszerzenia z serwera proxy API, musisz:

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

  2. Jeśli jako źródła obrazów będziesz używać Cloud Storage, musisz też przyznać temu rozszerzeniu dostęp do Cloud Storage zgodnie z opisem w dokumentacji rozszerzenia Google Cloud Storage.

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

  4. Użyj zawartości utworzonego pliku klucza JSON podczas dodawania i konfigurowania rozszerzenia za pomocą dokumentacji konfiguracji.

Informacje o Cloud Vision

Interfejs Google Cloud Vision API analizuje obrazy za pomocą modeli systemów uczących się. Możesz wytrenować model do użycia przez interfejs API lub użyć wbudowanego modelu.

Korzystając z wbudowanego modelu, Cloud Vision klasyfikuje obrazy w kategorie takie jak „wieża”, „żaglówka”, „lew” czy „Wieża Eiffla”. Wykrywa obiekty, twarze, logo i punkty orientacyjne na obrazach oraz wyszukuje słowa na obrazach.

Przykłady

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

Wykrywanie etykiet

W tym przykładzie działanie detectLabels rozszerzenia pobiera obraz z miejsca image_uri i przekazuje go do analizy interfejsowi Cloud Vision API. Interfejs API sprawdzi obraz i określi, które etykiety pasują 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>

Podana niżej zasada Przypisz wiadomość używa wartości zmiennej przechowującej odpowiedź rozszerzenia, aby przypisać ładunek odpowiedzi.

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

Jeśli prześlesz obraz przedstawiający obszar miejski z bardzo wysokim budynkiem, możesz otrzymać 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
      }
  ]
}

Wykrywanie tekstu

W tym przykładzie działanie detectText w rozszerzeniach pobiera obraz z elementu image_uri i przekazuje go do analizy interfejsowi Cloud Vision API. Interfejs API sprawdzi obraz i wyznaczy tekst na nim.

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

Podana niżej zasada Przypisz wiadomość używa wartości zmiennej przechowującej odpowiedź rozszerzenia, aby przypisać ładunek odpowiedzi.

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

Jeśli przesłane zdjęcie zawiera znaki w logu parkowania, możesz otrzymać 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 wskazanym obrazie. Wykryte elementy należą do szerokiej grupy kategorii. Możesz na przykład użyć tej funkcji do rozpoznawania obiektów, lokalizacji, aktywności, gatunków zwierząt, produktów i innych elementów.

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

Parametry żądania

Parametr Opis Typ Domyślny Wymagane
image_uri Źródło obrazu. Możesz go pobrać z Internetu lub z Google Cloud Storage (format: 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 tym przykładzie działanie detectLabels rozszerzenia wysyła określony obraz do 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, które reprezentują elementy wykryte na obrazie. Więcej informacji znajdziesz w artykule Wykrywanie etykiet.

detectText

Wykrywa i wyodrębnia tekst z określonego obrazu.

Parametry żądania

Parametr Opis Typ Domyślny Wymagane
image_uri Źródło obrazu. Możesz go pobrać z Internetu lub z Google Cloud Storage (format: 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 tym przykładzie działanie detectText rozszerzenia wysyła określony obraz do 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.

Informacje o konfiguracji

Podczas konfigurowania i wdrażania tego rozszerzenia do użycia w serwerach proxy API postępuj zgodnie z tymi instrukcjami. Instrukcje konfigurowania rozszerzenia za pomocą konsoli Apigee znajdziesz w artykule Dodawanie i konfigurowanie rozszerzenia.

Właściwości wspólne 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