תוסף Google Cloud Vision

מוצג המסמך של Apigee Edge.
עוברים אל מסמכי תיעוד של Apigee X.
מידע

גרסה: 1.4.1

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

התוכן הזה כולל חומר עזר להגדרת התוסף הזה ולשימוש בו. לפני שמשתמשים בתוסף הזה משרת 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 באמצעות המדיניות בנושא יתרונות מרכזיים של תוסף.

זיהוי תוויות

בדוגמה הבאה, הפעולה 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>

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

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

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

<?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 ערך הגדרה ספציפי לתוסף שרוצים להוסיף. מאפיינים לחבילת תוספים זו ללא כן