Rozszerzenie Google Cloud Vision

Przeglądasz dokumentację Apigee Edge.
Przejdź do Dokumentacja Apigee X.
informacje.

Wersja: 1.2.0

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

W tym artykule znajdziesz informacje na temat konfigurowania i używania tego rozszerzenia. Przed użyciem tego rozszerzenia z serwera proxy interfejsu API musisz:

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

  2. Jeśli źródłem obrazów jest Cloud Storage, musisz też przyznać temu rozszerzeniu dostęp do Cloud Storage zgodnie z opisem w przewodniku po rozszerzeniach Google Cloud Storage.

  3. Jeśli masz konto usługi z uprawnieniami do Cloud Vision (i do Cloud Storage, jeśli z niego korzystasz), użyj konsoli GCP, aby wygenerować klucz dla konta usługi.

  4. Użyj zawartości wynikowego pliku JSON klucza podczas dodawania i konfigurowania rozszerzenia w dokumentacji konfiguracji.

Informacje o Cloud Vision

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

Za pomocą wbudowanego modelu Cloud Vision klasyfikuje obrazy w kategorie, takie jak „wieżowiec”, żaglówka, „lew” czy „wieża Eiffla”. Wykrywa na zdjęciach obiekty, twarze, logo i punkty orientacyjne, a także wyszukuje słowa zawarte w tych zdjęciach.

Przykłady

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 lokalizacji 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 zawartoś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 Assign Message (Przypisz wiadomość) używa wartości zmiennej przechowującej odpowiedź rozszerzenia do przypisania ładunku 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>

Po zdjęciu obszaru miejskiego z bardzo wysokim budynkiem możesz otrzymać 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 rozszerzeń detectText pobiera obraz w lokalizacji image_uri i przekazuje go do interfejsu Cloud Vision API do 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 Assign Message (Przypisz wiadomość) używa wartości zmiennej przechowującej odpowiedź rozszerzenia do przypisania ładunku 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>

Po wyświetleniu obrazu zawierającego znaki w dzienniku 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 w określonym obrazie. Wykryte elementy obejmują szeroki zakres kategorii. Możesz użyć tego działania do identyfikowania obiektów, lokalizacji, aktywności, gatunków zwierząt, produktów i innych obiektó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 to zrobić z internetu lub 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 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ę etykiet labels reprezentujących jednostki wykryte na obrazie. Więcej informacji znajdziesz w sekcji 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 to zrobić z internetu lub 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 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 sekcji Wykrywanie etykiet.

Odniesienie do konfiguracji

Podczas konfigurowania i wdrażania tego rozszerzenia na potrzeby serwerów proxy interfejsu API użyj poniższych wskazówek. Instrukcje konfigurowania rozszerzenia za pomocą 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