تدريب نموذج تصنيف الصور باستخدام 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 هذا إلى 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، يمكنك تعديله بدون طرح إصدار جديد من التطبيق، ويمكنك استخدام 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.