افزونه Google Cloud Vision

درحال مشاهده اسناد Apigee Edge هستید.
به اسناد Apigee X بروید.
اطلاعات

نسخه: 2.0.0

بااستفاده از مدل‌های یادگیری ماشین، محتوا و نوشتار درون تصاویر را کاوش کنید.

این محتوا مرجعی برای پیکربندی و استفاده از این افزونه ارائه می‌دهد. قبل‌از استفاده از این افزونه از یک پراکسی API، باید:

  1. ‫Cloud Vision API را برای حساب سرویس خود فعال کنید.

  2. اگر از Cloud Storage به‌عنوان منبع تصاویرتان استفاده می‌کنید، باید به این افزونه اجازه دهید به Cloud Storage دسترسی داشته باشد، همان‌طور که در مرجع «افزونه Google Cloud Storage» توضیح داده شده است.

  3. وقتی حساب سرویسی دارید که برای Cloud Vision (و Cloud Storage، اگر از آن استفاده می‌کنید) اجازه دارد، از «کنسول Google Cloud» برای تولید کلید حساب سرویس استفاده کنید.

  4. از محتوای فایل JSON کلید حاصل هنگام افزودن و پیکربندی افزونه بااستفاده از مرجع پیکربندی استفاده کنید.

درباره Cloud Vision

Google Cloud Vision API از مدل‌های یادگیری ماشین برای تجزیه‌وتحلیل تصاویر استفاده می‌کند. می‌توانید برای استفاده از «میانای برنامه‌سازی کاربردی» مدلی را آموزش دهید یا از مدل داخلی استفاده کنید.

بااستفاده از مدل داخلی، Cloud Vision تصاویر را در دسته‌هایی مثل «آسمان‌خراش»، «قایق بادبانی»، «شیر»، یا «برج ایفل» طبقه‌بندی می‌کند. این فناوری اشیا، چهره‌ها، نشان‌واره‌ها، و مکان‌های دیدنی را در تصاویر تشخیص می‌دهد و کلمات موجود در تصاویر را پیدا می‌کند.

نمونه‌ها

مثال‌های زیر نشان می‌دهد که چگونه بااستفاده از خط‌مشی ExtensionCallout، پشتیبانی از کنش‌های افزونه 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>

خط‌مشی تخصیص پیام زیر از مقدار متغیر ذخیره‌کننده پاسخ افزونه برای تخصیص بار پاسخ استفاده می‌کند.

<?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» باشد (قالب: gs://bucketname/filename). اگر منبع «فضای ذخیره‌سازی ابری Google» است، فایل تصویر باید عمومی باشد. رشته هیچ‌کدام. بله.

نحو

<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» باشد (قالب: gs://bucketname/filename). اگر منبع «فضای ذخیره‌سازی ابری Google» است، فایل تصویر باید عمومی باشد. رشته هیچ‌کدام. بله.

نحو

<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 از نوشتار شناسایی‌شده است. برای اطلاعات بیشتر، تشخیص برچسب‌ها را ببینید.

مرجع پیکربندی

هنگام پیکربندی و استقرار این افزونه برای استفاده در پراکسی‌های API، از موارد زیر استفاده کنید. برای مراحل پیکربندی افزونه بااستفاده از کنسول Apigee، به افزودن و پیکربندی افزونه مراجعه کنید.

دارایی‌های افزونه مشترک

ویژگی های زیر برای هر افزونه وجود دارد.

ویژگی شرح پیش فرض ضروری
name نامی که به این پیکربندی افزونه می‌دهید. هیچ یک آره
packageName نام بسته افزودنی همانطور که توسط Apigee Edge داده شده است. هیچ یک آره
version شماره نسخه بسته برنامه افزودنی که از آن یک برنامه افزودنی را پیکربندی می کنید. هیچ یک آره
configuration مقدار پیکربندی مخصوص افزونه ای که اضافه می کنید. به ویژگی های این بسته برنامه افزودنی مراجعه کنید هیچ یک آره