تدريب نموذج لرصد الكائنات باستخدام AutoML Vision Edge

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

لتدريب نموذج رصد العناصر، عليك تزويد AutoML Vision Edge بمجموعة من الصور مع تصنيفات العناصر وحدودها. تستخدم AutoML Vision Edge مجموعة البيانات هذه لتدريب نموذج جديد على السحابة الإلكترونية، ويمكنك استخدام هذا النموذج للكشف عن العناصر على الجهاز.

قبل البدء

1. تجميع بيانات التدريب

أولاً، عليك تجميع مجموعة بيانات تدريبية تتضمّن صورًا مصنَّفة. يُرجى مراعاة الإرشادات التالية:

  • يجب أن تكون الصور بأحد التنسيقات التالية: JPEG أو PNG أو GIF أو BMP أو ICO.

  • يجب أن يكون حجم كل صورة 30 ميغابايت أو أقل. يُرجى العِلم أنّ AutoML Vision Edge يقلّل دقة معظم الصور أثناء المعالجة المسبقة، لذا لا يكون توفير صور عالية الدقة جدًا مفيدًا بشكل عام من ناحية الدقة.

  • أدرِج 10 أمثلة على الأقل، ويُفضّل 100 مثال أو أكثر، لكل تصنيف.

  • تضمين زوايا ودقّات وخلفيات متعددة لكل تصنيف

  • يجب أن تكون بيانات التدريب أقرب ما يمكن إلى البيانات التي سيتم استنادًا إليها إجراء التوقعات. على سبيل المثال، إذا كانت حالة الاستخدام تتضمّن صورًا غير واضحة ومنخفضة الدقة (مثل الصور من كاميرا أمان)، يجب أن تتكوّن بيانات التدريب من صور غير واضحة ومنخفضة الدقة.

  • تم تحسين النماذج التي تم إنشاؤها باستخدام AutoML Vision Edge للصور الفوتوغرافية للأشياء في العالم الحقيقي. وقد لا تكون مناسبة للصور الشعاعية والرسومات اليدوية والمستندات الممسوحة ضوئيًا والإيصالات وما إلى ذلك.

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

عندما تصبح صور التدريب جاهزة، يجب إعدادها لاستيرادها إلى Google Cloud. ويكون أمامك خياران:

الخيار 1: Cloud Storage مع فهرس CSV

حمِّل صور التدريب إلى Google Cloud Storage وأعِدّ ملف CSV يتضمّن عنوان URL لكل صورة، ويمكنك أيضًا تضمين تصنيفات الكائنات الصحيحة والمناطق المحيطة بكل صورة. ويكون هذا الخيار مفيدًا عند استخدام مجموعات بيانات كبيرة.

على سبيل المثال، حمِّل صورك إلى Cloud Storage، وأعِدّ ملف CSV على النحو التالي:

gs://your-training-data-bucket/001.jpg,accordion,0.2,0.4,,,0.3,0.5,,
gs://your-training-data-bucket/001.jpg,tuba,0.2,0.5,,,0.4,0.8,,
gs://your-training-data-bucket/002.jpg,accordion,0.2,0.2,,,0.9,0.8,,

يتم تحديد مربّعات الإحاطة بالعناصر كإحداثيات نسبية في الصورة. راجِع تنسيق ملف CSV لبيانات التدريب.

يجب تخزين الصور في حزمة ضمن المنطقة us-central1 وضمن مشروع Google Cloud المقابل لمشروعك على Firebase.

الخيار 2: الصور غير المصنَّفة

صنِّف صور التدريب وارسم حدود العناصر في وحدة تحكّم Google Cloud بعد تحميلها. لا يُنصح باستخدام هذه الطريقة إلا مع مجموعات البيانات الصغيرة. راجِع الخطوة التالية.

2- تدريب النموذج

بعد ذلك، درِّب نموذجًا باستخدام صورك:

  1. افتح صفحة مجموعات بيانات Vision في وحدة تحكّم Google Cloud. اختَر مشروعك عندما يُطلب منك ذلك.

  2. انقر على مجموعة بيانات جديدة، وقدِّم اسمًا لمجموعة البيانات، واختَر نوع النموذج الذي تريد تدريبه، ثم انقر على إنشاء مجموعة بيانات.

  3. في علامة التبويب استيراد الخاصة بمجموعة البيانات، حمِّل صور التدريب أو أرشيف zip لصور التدريب أو ملف CSV يحتوي على المواقع الجغرافية التي حمّلت الصور إليها.Cloud Storage يمكنك الاطّلاع على تجميع بيانات التدريب.

  4. بعد اكتمال مهمة الاستيراد، استخدِم علامة التبويب الصور للتحقّق من بيانات التدريب.

  5. إذا لم تحمّل ملف CSV، ارسم مربّعات إحاطة حول العناصر التي تريد التعرّف عليها في كل صورة، ثم ضع تصنيفًا لكل عنصر.

  6. في علامة التبويب التدريب، انقر على بدء التدريب.

    1. أدخِل اسم النموذج واختَر نوع النموذج Edge.

    2. اضبط إعدادات التدريب التالية التي تتحكّم في أداء النموذج الذي تم إنشاؤه:

      تحسين النموذج من أجل... إعدادات النموذج المطلوب استخدامها. يمكنك تدريب نماذج أسرع وأصغر حجمًا عندما تكون سرعة الاستجابة المنخفضة أو حجم الحزمة الصغير مهمَّين، أو نماذج أبطأ وأكبر حجمًا عندما تكون الدقة هي الأهم.
      ميزانية ساعات العُقدة

      تمثّل هذه السمة الحد الأقصى للوقت الذي يمكن استخدامه في تدريب النموذج، ويتم قياسه بساعات الحوسبة. يؤدي توفير المزيد من وقت التدريب بشكل عام إلى إنشاء نموذج أكثر دقة.

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

      أوقات التدريب المعتادة
      مجموعات صغيرة جدًاساعة واحدة
      ‫500 صورةساعتان
      ‫1,000 صورة3 ساعات
      ‫5,000 صورة6 ساعات
      ‫10,000 صورة‫7 ساعات
      ‫50,000 صورة‫11 ساعة
      ‫100,000 صورة‫13 ساعة
      ‫1,000,000 صورة‫18 ساعة

3- تقييم النموذج

عند اكتمال التدريب، يمكنك النقر على علامة التبويب تقييم للاطّلاع على مقاييس أداء النموذج.

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

في سياق تصنيف الصور، الدقة هي نسبة عدد الصور التي تم تصنيفها بشكل صحيح إلى عدد الصور التي صنّفها النموذج وفقًا للحدّ المحدّد. عندما يكون النموذج عالي الدقة، يحدّد التصنيفات بشكل غير صحيح بمعدّل أقل (عدد أقل من النتائج الإيجابية الخاطئة).

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

يعتمد تحديد ما إذا كنت ستعمل على تحسين الدقة أو الاسترجاع على حالة الاستخدام. يمكنك الاطّلاع على دليل المبتدئين في AutoML Vision ودليل "التعلم الآلي الشامل" - AutoML لمزيد من المعلومات.

عند العثور على حدّ ثقة يؤدي إلى ظهور مقاييس مناسبة لك، سجِّله لأنّك ستستخدمه في ضبط إعدادات النموذج في تطبيقك. (يمكنك استخدام هذه الأداة في أي وقت للحصول على قيمة حدّ مناسبة).

4. نشر النموذج أو تنزيله

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

نشر النموذج

في علامة التبويب الاختبار والاستخدام الخاصة بمجموعة البيانات، يمكنك نشر نموذجك لإجراء عمليات التوقّع على الإنترنت، ما يؤدي إلى تشغيل نموذجك على السحابة الإلكترونية. يتم تناول هذا الخيار في مستندات Cloud AutoML. تتناول المستندات على هذا الموقع الإلكتروني الخيارَين المتبقّيَين.

نشر النموذج

من خلال نشر النموذج على Firebase، يمكنك تعديله بدون إصدار نسخة جديدة من التطبيق، ويمكنك استخدام Remote Config وA/B Testing لعرض نماذج مختلفة بشكل ديناميكي لمجموعات مختلفة من المستخدمين.

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

لنشر النموذج، يمكنك استخدام إحدى الطريقتَين التاليتَين:

  • نزِّل نموذج TF Lite من صفحة الاختبار والاستخدام في مجموعة البيانات ضمن وحدة تحكّم Google Cloud، ثم حمِّل النموذج في صفحة النموذج المخصّص ضمن وحدة تحكّم Firebase. وهذه الطريقة هي عادةً الأسهل لنشر نموذج واحد.
  • انشر النموذج مباشرةً من مشروعك على Google Cloud إلى Firebase باستخدام حزمة Admin SDK. يمكنك استخدام هذه الطريقة لنشر عدة نماذج بشكل مجمّع أو للمساعدة في إنشاء مسارات نشر مبرمَجة.

لنشر النموذج باستخدام واجهة برمجة التطبيقات لإدارة النماذج في حزمة تطوير البرامج (SDK) الخاصة بالمشرف، اتّبِع الخطوات التالية:

  1. تثبيت حزمة تطوير البرامج (SDK) وإعدادها

  2. انشر النموذج.

    عليك تحديد معرّف المورد الخاص بالنموذج، وهو عبارة عن سلسلة تتضمّن المثال التالي:

    projects/PROJECT_NUMBER/locations/us-central1/models/MODEL_ID
    PROJECT_NUMBER رقم مشروع الحزمة Cloud Storage التي تحتوي على النموذج. قد يكون هذا مشروعك على Firebase أو مشروعًا آخر على Google Cloud. يمكنك العثور على هذه القيمة في صفحة "الإعدادات" في وحدة تحكّم Firebase أو لوحة بيانات وحدة تحكّم Google Cloud.
    MODEL_ID معرّف النموذج الذي حصلت عليه من AutoML Cloud API

    Python

    # First, import and initialize the SDK.
    
    # Get a reference to the AutoML model
    source = ml.TFLiteAutoMlSource('projects/{}/locations/us-central1/models/{}'.format(
        # See above for information on these values.
        project_number,
        model_id
    ))
    
    # Create the model object
    tflite_format = ml.TFLiteFormat(model_source=source)
    model = ml.Model(
        display_name="example_model",  # This is the name you will use from your app to load the model.
        tags=["examples"],             # Optional tags for easier management.
        model_format=tflite_format)
    
    # Add the model to your Firebase project and publish it
    new_model = ml.create_model(model)
    new_model.wait_for_unlocked()
    ml.publish_model(new_model.model_id)
    

    Node.js

    // First, import and initialize the SDK.
    
    (async () => {
      // Get a reference to the AutoML model. See above for information on these
      // values.
      const automlModel = `projects/${projectNumber}/locations/us-central1/models/${modelId}`;
    
      // Create the model object and add the model to your Firebase project.
      const model = await ml.createModel({
        displayName: 'example_model',  // This is the name you use from your app to load the model.
        tags: ['examples'],  // Optional tags for easier management.
        tfliteModel: { automlModel: automlModel },
      });
    
      // Wait for the model to be ready.
      await model.waitForUnlocked();
    
      // Publish the model.
      await ml.publishModel(model.modelId);
    
      process.exit();
    })().catch(console.error);
    

تنزيل النموذج وتضمينه في تطبيقك

من خلال تجميع النموذج مع تطبيقك، يمكنك التأكّد من أنّ ميزات تعلُّم الآلة في تطبيقك ستظل تعمل حتى عندما لا يتوفّر النموذج المستضاف على Firebase.

إذا نشرت النموذج وحزمته مع تطبيقك، سيستخدم التطبيق أحدث إصدار متاح.

لتنزيل النموذج، انقر على TF Lite في صفحة الاختبار والاستخدام لمجموعة البيانات.

الخطوات التالية

بعد نشر النموذج أو تنزيله، تعرَّف على كيفية استخدامه في تطبيقات iOS+‎ وAndroid.