إضافة Google Cloud Vision

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

الإصدار: 2.0.0

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

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

  1. فعِّل واجهة برمجة التطبيقات Cloud Vision API لحساب الخدمة.

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

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

  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>

تستخدِم سياسة تخصيص الرسالة التالية قيمة المتغيّر الذي يخزّن استجابة الإضافة لتحديد الحمولة البرمجية للاستجابة.

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

تستخدِم سياسة تخصيص الرسالة التالية قيمة المتغيّر الذي يخزّن استجابة الإضافة لتحديد الحمولة البرمجية للاستجابة.

<?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 قيمة الإعداد المتعلقة بالإضافة التي تدرجها الاطّلاع على خصائص حزمة الإضافات هذه لا ينطبق متوافق