Catch up on highlights from Firebase at Google I/O 2023. Learn more

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

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

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

قبل ان تبدأ

1. قم بتجميع بيانات التدريب الخاصة بك

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

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

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

  • قم بتضمين 10 أمثلة على الأقل ، ويفضل 100 أو أكثر ، أمثلة لكل تسمية.

  • قم بتضمين زوايا ودقة وخلفيات متعددة لكل تسمية.

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

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

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

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

الخيار 1: التخزين السحابي مع فهرس 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 Console بعد تحميلها. يوصى بهذا فقط لمجموعات البيانات الصغيرة. انظر الخطوة التالية.

2. تدريب النموذج الخاص بك

بعد ذلك ، قم بتدريب نموذج باستخدام صورك:

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

  2. انقر فوق مجموعة بيانات جديدة ، وقم بتوفير اسم لمجموعة البيانات ، وحدد نوع النموذج الذي تريد تدريبه ، وانقر فوق إنشاء مجموعة بيانات .

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

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

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

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

    1. قم بتسمية النموذج وحدد نوع نموذج الحافة .

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

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

      الحد الأقصى للوقت ، في ساعات الحساب ، لقضاء تدريب النموذج. ينتج عن المزيد من وقت التدريب عمومًا نموذج أكثر دقة.

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

      أوقات التدريب النموذجية
      مجموعات صغيرة جدا 1 ساعة
      500 صورة ساعاتين
      1000 صورة 3 ساعات
      5000 صورة 6 ساعات
      10000 صورة 7 ساعات
      50000 صورة 11 ساعة
      100،000 صورة 13 ساعة
      1،000،000 صورة 18 ساعة

3. تقييم النموذج الخاص بك

عند اكتمال التدريب ، يمكنك النقر فوق علامة التبويب تقييم لمشاهدة مقاييس الأداء الخاصة بالنموذج.

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

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

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

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

عندما تجد حد الثقة الذي ينتج عنه مقاييس تناسبك ، قم بتدوين ذلك ؛ ستستخدم حد الثقة لتكوين النموذج في تطبيقك. (يمكنك استخدام هذه الأداة في أي وقت للحصول على قيمة حد مناسبة.)

4. نشر أو تنزيل النموذج الخاص بك

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

انشر النموذج

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

انشر النموذج

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

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

لنشر النموذج الخاص بك ، يمكنك استخدام أي من طريقتين:

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

لنشر النموذج باستخدام Admin SDK model Management API :

  1. قم بتثبيت وتهيئة SDK .

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

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

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

    بايثون

    # 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);
    

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

من خلال تجميع نموذجك مع تطبيقك ، يمكنك التأكد من استمرار عمل ميزات ML في تطبيقك عندما لا يكون النموذج المستضاف في Firebase متاحًا.

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

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

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

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