دليل مهام تصنيف الصور

تتيح لك مهمة MediaPipe Image Classifier إجراء تصنيف على الصور. يمكنك استخدام هذه المهمة لتحديد ما تمثله الصورة بين مجموعة من الفئات المحددة في وقت التدريب. تعمل هذه المهمة على بيانات الصور باستخدام نموذج تعلُّم الآلة كبيانات ثابتة أو تدفق مستمر، وتُخرج قائمة بالفئات المحتملة مرتَّبة حسب درجة الاحتمالية تنازليًا.

تجربة الميزة

البدء

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

تفاصيل المهمة

يصف هذا القسم الإمكانات والمدخلات والمخرجات وخيارات الضبط لهذه المهمة.

الميزات

  • معالجة إدخال الصور: تشمل المعالجة تدوير الصور وتغيير حجمها وتسويتها وتحويل مساحة اللون.
  • المنطقة محل الاهتمام: يمكنك إجراء التصنيف على منطقة من الصورة بدلاً من الصورة بأكملها.
  • لغة خريطة التصنيف - حدِّد اللغة المستخدمة للأسماء المعروضة.
  • الحد الأدنى للنتيجة - فلترة النتائج استنادًا إلى نتائج التوقعات.
  • التصنيف العلوي: تحديد عدد نتائج التصنيف.
  • قائمة التصنيفات المسموح بها وقائمة الحظر: حدِّد الفئات التي تمّ تصنيفها.
إدخالات المهام نتائج المهام
يمكن أن يكون الإدخال أحد أنواع البيانات التالية:
  • الصور الثابتة
  • إطارات الفيديو التي تم فك ترميزها
  • خلاصة الفيديو المباشر
تُنشئ أداة تصنيف الصور قائمة بالفئات التي تحتوي على:
  • مؤشر الفئة: فهرس الفئة في مخرجات النموذج
  • النتيجة: درجة الثقة لهذه الفئة، وعادةً ما تكون احتمالية في [0,1]
  • اسم الفئة (اختياري): اسم الفئة كما هو محدّد في البيانات الوصفية لنموذج TFLite، إن توفّرت
  • الاسم المعروض للفئة (اختياري): الاسم المعروض للفئة على النحو المحدّد في البيانات الوصفية لنموذج TFLite، باللغة المحدَّدة من خلال خيارات اللغة الخاصة بالأسماء المعروضة، في حال توفّرها

خيارات الإعدادات

تتضمن هذه المهمة خيارات الإعداد التالية:

اسم الخيار الوصف نطاق القيمة القيمة التلقائية
running_mode تحدِّد هذه السياسة وضع التشغيل للمهمة. هناك ثلاثة أوضاع:

IMAGE: وضع إدخالات الصورة الفردية.

فيديو: وضع لقطات الفيديو التي تم فك ترميزها

البث المباشر: وضع بث مباشر لبيانات الإدخال، مثل الكاميرا. في هذا الوضع، يجب استدعاء resultsListener لإعداد أداة معالجة الصوت لكي تتلقى النتائج بشكل غير متزامن.
{IMAGE, VIDEO, LIVE_STREAM} IMAGE
display_names_locale تحدِّد هذه السياسة لغة التصنيفات التي سيتم استخدامها للأسماء المعروضة في البيانات الوصفية لنموذج المهمة، إذا كان ذلك متاحًا. الإعداد التلقائي هو en للغة الإنجليزية. يمكنك إضافة تصنيفات مترجَمة إلى البيانات الوصفية لنموذج مخصّص باستخدام TensorFlow Lite Metadata Scriptr API. رمز اللغة en
max_results يضبط الحد الأقصى الاختياري لعدد نتائج التصنيف ذات أعلى الدرجات التي تريد عرضها. وإذا كانت القيمة أقل من 0، سيتم عرض جميع النتائج المتاحة. أي أرقام موجبة -1
score_threshold لتعيين الحد الأدنى لدرجة التنبؤ الذي يتجاوز الحد المقدم في البيانات الوصفية للنموذج (إن يتوفر). يتم رفض النتائج التي تقلّ عن هذه القيمة. أي عائم لم يتم الضبط.
category_allowlist تُحدِّد القائمة الاختيارية لأسماء الفئات المسموح بها. وإذا لم يكن هذا الحقل فارغًا، ستتم فلترة نتائج التصنيف التي لا يكون اسم فئتها ضمن هذه المجموعة. ويتم تجاهل أسماء الفئات المكررة أو غير المعروفة. لا يمكن استخدام هذا الخيار مع category_denylist، ويؤدي استخدام كلاهما إلى حدوث خطأ. أي سلاسل لم يتم الضبط.
category_denylist تُحدِّد القائمة الاختيارية لأسماء الفئات غير المسموح بها. وإذا لم تكن نتائج التصنيف فارغة، فستتم تصفية نتائج التصنيف التي يوجد اسم فئتها في هذه المجموعة. ويتم تجاهل أسماء الفئات المكررة أو غير المعروفة. لا يمكن استخدام هذا الخيار إلّا مع category_allowlist، ويؤدي استخدام كلا الخيارين إلى حدوث خطأ. أي سلاسل لم يتم الضبط.
result_callback يضبط أداة معالجة النتائج لتلقّي نتائج التصنيف بشكل غير متزامن عندما يكون "أداة تصنيف الصور" في وضع البث المباشر. لا يمكن استخدام هذا الخيار إلا عند ضبط وضع التشغيل على LIVE_STREAM. لا ينطبق لم يتم الضبط.

النماذج

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

يستخدم نموذج EfficientNet-Lite0 بنية EfficientNet وتم تدريبه باستخدام ImageNet للتعرف على 1,000 فئة مثل الأشجار والحيوانات والطعام والمركبات والأشخاص وما إلى ذلك. راجِع القائمة الكاملة للتصنيفات المتوافقة. يتوفر EfficientNet-Lite0 كنموذج int8 وعدد float 32. ويُنصح باستخدام هذا النموذج لأنّه يحقق التوازن بين وقت الاستجابة والدقة. وتتميز بأنّها دقيقة وخفيفة الوزن بما يكفي للعديد من حالات الاستخدام.

اسم النموذج إدخال الشكل نوع الكمية الإصدارات
EfficientNet-Lite0 (int8) 224 × 224 int8 الأحدث
EfficientNet-Lite0 (العدد العشري 32) 224 × 224 لا شيء (float32) الأحدث

نموذج EfficientNet-Lite2

يستخدم نموذج EfficientNet-Lite2 بنية EfficientNet وتم تدريبه باستخدام ImageNet للتعرف على 1,000 فئة مثل الأشجار والحيوانات والطعام والمركبات والأشخاص وما إلى ذلك. يمكنك الاطّلاع على القائمة الكاملة للتصنيفات المتوافقة. يتوفر EfficientNet-Lite2 كنموذج int8 وعدد float 32. عادةً ما يكون هذا النموذج أكثر دقة من EfficientNet-Lite0، ولكنه أبطأ ويستهلك ذاكرة أكثر. هذا النموذج مناسب لحالات الاستخدام التي تمثل الدقة فيها أولوية أعلى من السرعة أو الحجم.

اسم النموذج إدخال الشكل نوع الكمية الإصدارات
EfficientNet-Lite2 (int8) 224 × 224 int8 الأحدث
EfficientNet-Lite2 (العدد العشري 32) 224 × 224 لا شيء (float32) الأحدث

مقاييس أداء المهام

إليك مقاييس أداء المهمة لمسار العملية بأكمله بناءً على النماذج المدربة مسبقًا أعلاه. وتكون نتيجة وقت الاستجابة هي متوسط وقت الاستجابة على هاتف Pixel 6 باستخدام وحدة المعالجة المركزية (CPU)/وحدة معالجة الرسومات.

اسم النموذج وقت استجابة وحدة المعالجة المركزية (CPU) وقت استجابة وحدة معالجة الرسومات
EfficientNet-Lite0 (العدد العشري 32) 23.52 ملي ثانية 18.90 ملي ثانية
EfficientNet-Lite0 (int8) 10.08 ملي ثانية -
EfficientNet-Lite2 (العدد العشري 32) 44.17 ملي ثانية 22.20 ملي ثانية
EfficientNet-Lite2 (int8) 19.43 ملي ثانية -

النماذج المخصَّصة

يمكنك استخدام نموذج تعلّم الآلة المخصّص مع هذه المهمة إذا كنت تريد تحسين أو تغيير إمكانات النماذج المقدَّمة. يمكنك استخدام مصمم النماذج لتعديل النماذج الموجودة أو إنشاء نموذج باستخدام أدوات مثل TensorFlow. يجب أن تكون النماذج المخصّصة المستخدَمة مع MediaPipe بتنسيق TensorFlow Lite وأن تتضمّن بيانات وصفية محدّدة تصف مَعلمات تشغيل النموذج. يجب أن تفكر في استخدام مصمم النماذج لتعديل النماذج المقدمة لهذه المهمة قبل إنشاء النماذج الخاصة بك.

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