إضافة Google Cloud Vision

أنت الآن بصدد الاطّلاع على مستندات Apigee Edge.
انتقِل إلىمستندات Apigee X.
info

الإصدار: 1.4.2

يمكنك التعرّف على المحتوى والنص في الصور باستخدام نماذج تعلُّم الآلة.

يوفر هذا المحتوى مرجعًا لإعداد هذه الإضافة واستخدامها. قبل استخدام هذه الإضافة من خادم وكيل لواجهة برمجة التطبيقات، عليك إجراء ما يلي:

  1. تفعيل Cloud Vision API لحساب الخدمة

  2. إذا كنت ستستخدم Cloud Storage كمصدر لصورك، عليك أيضًا منح هذه الإضافة إذن الوصول إلى Cloud Storage كما هو موضّح في مرجع إضافة Google Cloud Storage.

  3. عندما يكون لديك حساب خدمة لديه إذن الوصول إلى Cloud Vision (وCloud Storage، إذا كنت تستخدمه)، استخدِم Google Cloud Platform Console لإنشاء مفتاح لحساب الخدمة.

  4. استخدِم محتويات ملف JSON للمفتاح الناتج عند إضافة الإضافة وضبطها باستخدام مرجع الإعدادات.

لمحة عن Cloud Vision

تستخدم Google Cloud Vision API نماذج تعلُّم الآلة لتحليل الصور. يمكنك تدريب نموذج لاستخدامه في واجهة برمجة التطبيقات أو استخدام النموذج المضمّن.

باستخدام النموذج المضمّن، تصنّف Cloud Vision الصور في فئات مثل "ناطحة سحاب" أو "قارب شراعي" أو "أسد" أو "برج إيفل". ويتعرّف على الكائنات والوجوه والشعارات والمعالم داخل الصور، ويحدّد موقع الكلمات الواردة فيها.

نماذج

توضّح الأمثلة التالية كيفية إعداد دعم إجراءات إضافة Cloud Vision باستخدام سياسة ExtensionCallout.

التعرّف على التصنيفات

في المثال التالي، يحصل الإجراء detectLabels في الإضافة على الصورة في image_uri ويمررها إلى Cloud Vision 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>

تستخدم سياسة Assign Message التالية قيمة المتغيّر الذي يخزّن ردّ الإضافة لتعيين حمولة الردّ.

<?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 لتحليلها. ستفحص واجهة برمجة التطبيقات الصورة وتحدّد النص فيها.

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

تستخدم سياسة Assign Message التالية قيمة المتغيّر الذي يخزّن ردّ الإضافة لتعيين حمولة الردّ.

<?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 للنص الذي تم رصده. لمزيد من المعلومات، يُرجى الاطّلاع على التعرّف على التصنيفات.

مرجع الإعدادات

استخدِم ما يلي عند إعداد هذه الإضافة ونشرها لاستخدامها في الخوادم الوكيلة لواجهة برمجة التطبيقات. للاطّلاع على خطوات إعداد إضافة باستخدام وحدة تحكّم Apigee، يُرجى الاطّلاع على إضافة إضافة وضبطها.

خصائص الإضافة الشائعة

السمات التالية متاحة لكل إضافة.

الموقع الوصف تلقائي عنصر مطلوب
name الاسم الذي تُعطِه هذه الإضافة من الإضافات. لا ينطبق متوافق
packageName اسم حزمة الإضافة كما هو مُوضَّح من Apigee Edge. لا ينطبق متوافق
version رقم إصدار حزمة الإضافة التي تجري عملية إعداد الإضافة منها. لا ينطبق متوافق
configuration قيمة الإعداد المتعلقة بالإضافة التي تدرجها الاطّلاع على خصائص حزمة الإضافات هذه لا ينطبق متوافق