תוסף Google Cloud Vision

אתם צופים במסמכי העזרה של Apigee Edge.
כניסה למסמכי העזרה של Apigee X.
info

גרסה: 2.0.0

זיהוי התוכן והטקסט בתמונות באמצעות מודלים של למידת מכונה.

התוכן הזה מכיל מידע שיעזור לכם להגדיר את התוסף הזה ולהשתמש בו. לפני שמשתמשים בתוסף הזה משרתי proxy של API, צריך:

  1. מפעילים את Cloud Vision API בחשבון השירות.

  2. אם אתם מתכוונים להשתמש ב-Cloud Storage כמקור לתמונות, תצטרכו גם להעניק לתוסף הזה גישה ל-Cloud Storage, כפי שמתואר במאמר העזרה בנושא תוסף Google Cloud Storage.

  3. אם יש לכם חשבון שירות עם הרשאה ל-Cloud Vision (ול-Cloud Storage, אם אתם משתמשים בו), אתם יכולים להשתמש במסוף GCP כדי ליצור מפתח לחשבון השירות.

  4. משתמשים בתוכן של קובץ ה-JSON של המפתח שנוצר כשיוצרים את התוסף ומגדירים אותו לפי חומר העזר בנושא הגדרה.

מידע על Cloud Vision

Google Cloud Vision API משתמש במודלים של למידת מכונה כדי לנתח תמונות. אתם יכולים לאמן מודל לשימוש ב-API או להשתמש במודל המובנה.

באמצעות המודל המובנה, Cloud Vision מסווג תמונות לקטגוריות כמו 'גורד שחקים', 'סירת מפרש', 'אריה' או 'מגדל אייפל'. הוא מזהה אובייקטים, פנים, סמלי לוגו וציוני דרך בתמונות, ומאתר מילים שמופיעות בתמונות.

דוגמאות

בדוגמאות הבאות מוסבר איך להגדיר תמיכה בפעולות של תוספים ל-Cloud Vision באמצעות מדיניות ExtensionCallout.

זיהוי תוויות

בדוגמה הבאה, הפעולה detectLabels של התוסף מקבלת את התמונה ב-image_uri ומעבירה אותה ל-Cloud Vision API לצורך ניתוח. ה-API יבדוק את התמונה ויזהה אילו תוויות חלות על תוכן התמונה.

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

המדיניות הבאה של הקצאת הודעה משתמשת בערך של המשתנה שמאחסן את התשובה של התוסף כדי להקצות את עומס העבודה של התשובה.

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

אם תשלחו תמונה של אזור עירוני עם בניין גבוה מאוד, יכול להיות שתקבלו תשובה כמו זו:

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

זיהוי טקסט

בדוגמה הבאה, הפעולה detectText של התוספים מקבלת את התמונה ב-image_uri ומעבירה אותה ל-Cloud Vision API לצורך ניתוח. ה-API יבדוק את התמונה ויזהה טקסט בתמונה.

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

המדיניות הבאה של הקצאת הודעה משתמשת בערך של המשתנה שמאחסן את התשובה של התוסף כדי להקצות את עומס העבודה של התשובה.

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

אם תשלחו תמונה שמכילה שלטים ביומן חניה, יכול להיות שתקבלו תשובה כמו זו:

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

פעולות

detectLabels

זיהוי והפקת מידע על ישויות בתמונה שצוינה. הישויות שאותרו נכללות בקבוצה רחבה של קטגוריות. לדוגמה, אפשר להשתמש בפעולה הזו כדי לזהות חפצים, מיקומים, פעילויות, זני בעלי חיים, מוצרים ועוד.

מומלץ גם לעיין במסמכי העזרה של Cloud Vision API.

פרמטרים של בקשות

פרמטר תיאור סוג ברירת מחדל חובה
image_uri מקור התמונה. המקור יכול להיות מהאינטרנט או מ-Google Cloud Storage (פורמט: gs://bucketname/filename). אם המקור הוא Google Cloud Storage, קובץ התמונה חייב להיות גלוי לכולם. מחרוזת ללא. כן.

תחביר

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

דוגמה

בדוגמה הבאה, הפעולה detectLabels של התוסף שולחת את התמונה שצוינה ל-Vision API לצורך ניתוח.

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

תשובה

אובייקט שמכיל מערך labels של תוויות שמייצגות ישויות שזוהו בתמונה. מידע נוסף זמין במאמר זיהוי תוויות.

detectText

זיהוי וחילוץ טקסט מהתמונה שצוינה.

פרמטרים של בקשות

פרמטר תיאור סוג ברירת מחדל חובה
image_uri מקור התמונה. המקור יכול להיות מהאינטרנט או מ-Google Cloud Storage (פורמט: gs://bucketname/filename). אם המקור הוא Google Cloud Storage, קובץ התמונה חייב להיות גלוי לכולם. מחרוזת ללא. כן.

תחביר

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

דוגמה

בדוגמה הבאה, הפעולה detectText של התוסף שולחת את התמונה שצוינה ל-Vision API לצורך ניתוח.

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

תשובה

אובייקט שמכיל מערך text של הטקסט שזוהה. מידע נוסף זמין במאמר זיהוי תוויות.

מסמך עזר בנושא הגדרות

השתמשו בהוראות הבאות כשמגדירים ומפרסים את התוסף הזה לשימוש בשרתי proxy ל-API. במאמר הוספה והגדרה של תוסף מוסבר איך להגדיר תוסף באמצעות מסוף Apigee.

מאפייני תוספים נפוצים

המאפיינים הבאים קיימים בכל תוסף.

נכס תיאור ברירת המחדל נדרש
name השם שבחרת לתצורה הזו של התוסף. ללא כן
packageName השם של חבילת התוסף כפי שהוא סופק על ידי Apigee Edge. ללא כן
version מספר הגרסה של חבילת התוסף שממנה מגדירים את התוסף. ללא כן
configuration ערך הגדרה ספציפי לתוסף שרוצים להוסיף. מאפיינים לחבילת תוספים זו ללא כן