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

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

AutoML Vision Edge هي خدمة من خدمات Google Cloud. يخضع استخدام الخدمة لاتفاقية ترخيص Google Cloud Platform والبنود الخاصة بالخدمات، ويتم تحصيل الرسوم بناءً على ذلك. للحصول على معلومات الفوترة، يُرجى الاطّلاع على صفحة الأسعار في AutoML.

قبل البدء

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

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

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

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

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

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

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

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

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

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

الخيار 1: أرشيف ZIP المنظَّم

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

يمكن أن تصل أسماء الأدلة في أرشيف ZIP هذا إلى 32 حرفًا ASCII ولا يمكن أن تشتمل إلا على أحرف أبجدية رقمية وحرف الشرطة السفلية (_).

على سبيل المثال:

my_training_data.zip
  |____accordion
  | |____001.jpg
  | |____002.jpg
  | |____003.jpg
  |____bass_guitar
  | |____hofner.gif
  | |____p-bass.png
  |____clavier
    |____well-tempered.jpg
    |____well-tempered (1).jpg
    |____well-tempered (2).jpg

الخيار 2: Cloud Storage باستخدام فهرس CSV

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

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

gs://your-training-data-bucket/001.jpg,accordion
gs://your-training-data-bucket/002.jpg,accordion
gs://your-training-data-bucket/003.jpg,accordion
gs://your-training-data-bucket/hofner.gif,bass_guitar
gs://your-training-data-bucket/p-bass.png,bass_guitar
gs://your-training-data-bucket/well-tempered.jpg,clavier
gs://your-training-data-bucket/well-tempered%20(1).jpg,clavier
gs://your-training-data-bucket/well-tempered%20(2).jpg,clavier

يجب تخزين الصور في حزمة تشكل جزءًا من مشروع Google Cloud المقابل لمشروعك على Firebase.

راجِع إعداد بيانات التدريب في مستندات Cloud AutoML Vision لمزيد من المعلومات عن إعداد ملف CSV.

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

يمكنك تسمية صور التدريب في وحدة تحكُّم Firebase بعد تحميلها، إما بشكلٍ فردي أو في ملف ZIP غير منظَّم. يُرجى الاطّلاع على الخطوة التالية.

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

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

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

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

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

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

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

    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، يمكنك تحديث النموذج بدون إطلاق إصدار جديد من التطبيق، ويمكنك استخدام "الإعداد عن بُعد" و"اختبار A/B" لعرض نماذج مختلفة بشكلٍ ديناميكي لمجموعات مختلفة من المستخدمين.

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

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

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

لنشر النموذج باستخدام واجهة برمجة تطبيقات إدارة النماذج في "SDK للمشرف":

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

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

    ستحتاج إلى تحديد معرِّف مورد النموذج، وهو سلسلة تشبه المثال التالي:

    projects/PROJECT_NUMBER/locations/us-central1/models/MODEL_ID
    PROJECT_NUMBER رقم المشروع لحزمة Cloud Storage التي تتضمّن النموذج. يمكن أن يكون هذا مشروعك في Firebase أو مشروعًا آخر على Google Cloud. ويمكنك العثور على هذه القيمة في صفحة "الإعدادات" ضمن "وحدة تحكُّم Firebase" أو لوحة بيانات Google Cloud Console.
    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.