تتيح لك مهمة "تصنيف الصور" من MediaPipe إجراء تصنيف للصور. يمكنك استخدام هذه المهمة لتحديد ما تمثله الصورة من بين مجموعة من الفئات المحدّدة في وقت التدريب. تعمل هذه المهمة على بيانات الصور باستخدام نموذج تعلُّم آلي (ML) كبيانات ثابتة أو بث مستمر، وتُخرج قائمة بالفئات المحتمَلة مرتّبة حسب نتيجة الاحتمالية التنازلية.
البدء
ابدأ استخدام هذه المهمة باتّباع أحد أدلة التنفيذ هذه ل منصّتك المستهدفة. ترشدك هذه الأدلة الخاصة بالنظام الأساسي إلى تنفيذ أساسي لهذه المهمة باستخدام نموذج مقترَح، كما تقدّم أمثلة على الرموز البرمجية مع خيارات الضبط المقترَحة:
- Android - مثال على الرمز البرمجي - الدليل
- Python - مثال على الرمز البرمجي - الدليل
- الويب - مثال على الرمز البرمجي - الدليل
- iOS - مثال على الرمز البرمجي - الدليل
تفاصيل المهمة
يصف هذا القسم ميزات هذه المهمة ومدخلاتها ومخرجاتها وخيارات الضبط.
الميزات
- معالجة الصور المُدخلة: تشمل المعالجة تدوير الصور وتغيير حجمها وتسويتها وتحويل مساحة الألوان.
- منطقة الاهتمام: يمكنك إجراء التصنيف على منطقة من الصورة بدلاً من الصورة بأكملها.
- لغة خريطة التصنيف: يمكنك ضبط اللغة المستخدَمة للأسماء المعروضة.
- الحدّ الأدنى للنتيجة: فلترة النتائج استنادًا إلى نتائج التوقّعات
- تصنيف Top-k: يمكنك الحد من عدد نتائج التصنيف.
- القائمة المسموح بها للقسميّات والقائمة المحظورة: حدِّد الفئات المصنّفة.
مدخلات المهام | نتائج المهام |
---|---|
يمكن أن يكون الإدخال أحد أنواع البيانات التالية:
|
تُخرج أداة "تصنيف الصور" قائمة بالفئات التي تحتوي على ما يلي:
|
خيارات الإعدادات
تتضمّن هذه المهمة خيارات الضبط التالية:
اسم الخيار | الوصف | نطاق القيمة | القيمة التلقائية |
---|---|---|---|
running_mode |
لضبط وضع التشغيل للمهمة هناك ثلاثة
أوضاع: IMAGE: وضع الإدخالات باستخدام صورة واحدة. VIDEO: وضع الإطارات التي تم فك ترميزها في الفيديو LIVE_STREAM: وضع البث المباشر لبيانات الإدخال ، مثل بيانات الكاميرا في هذا الوضع، يجب استدعاء resultListener لإعداد مستمع لتلقّي النتائج بشكل غير متزامن. |
{IMAGE, VIDEO, LIVE_STREAM } |
IMAGE |
display_names_locale |
لضبط لغة التصنيفات لاستخدامها في الأسماء المعروضة المقدَّمة في
البيانات الوصفية لنموذج المهمة، في حال توفّرها. القيمة التلقائية هي en لعبارة
English. يمكنك إضافة تصنيفات مترجَمة إلى البيانات الوصفية لنموذج مخصّص
باستخدام واجهة برمجة التطبيقات TensorFlow Lite Metadata Writer API. |
رمز اللغة | en |
max_results |
تُستخدَم لتحديد الحد الأقصى الاختياري لعدد نتائج التصنيف التي ستعرضها. إذا كان < 0، سيتم عرض جميع النتائج المتاحة. | أي أرقام موجبة | -1 |
score_threshold |
تُستخدَم لضبط الحدّ الأدنى لنتيجة التوقّع الذي يتجاوز الحدّ الأدنى المقدَّم في البيانات الوصفية للنموذج (إن توفّرت). ويتم رفض النتائج التي تقلّ عن هذه القيمة. | أيّ عائمة | لم يتم الضبط |
category_allowlist |
لضبط القائمة الاختيارية لأسماء الفئات المسموح بها. إذا لم تكن فارغة،
سيتم استبعاد نتائج التصنيف التي لا يتضمّن اسم فئتها هذه المجموعة. ويتم تجاهل أسماء الفئات المكرّرة أو غير المعروفة.
هذا الخيار غير متوافق مع الخيار category_denylist ، ويؤدي استخدام
كلا الخيارَين إلى حدوث خطأ. |
أي سلاسل | لم يتم الضبط |
category_denylist |
لضبط القائمة الاختيارية لأسماء الفئات غير المسموح بها. إذا كانت هذه المجموعة ليست فارغة، سيتم فلترة نتائج التصنيف التي يكون اسم فئتها في هذه المجموعة. ويتم تجاهل أسماء الفئات المكرّرة أو غير المعروفة. هذا الخيار متناقض
مع الخيار category_allowlist ، ويؤدي استخدام كليهما إلى حدوث خطأ. |
أي سلاسل | لم يتم الضبط |
result_callback |
ضبط مستمع النتائج لتلقّي نتائج التصنيف
بشكل غير متزامن عندما يكون "تصنيف الصور" في وضع البث المباشر
لا يمكن استخدامها إلا عند ضبط وضع التشغيل على LIVE_STREAM |
لا ينطبق | لم يتم الضبط |
النماذج
يتطلّب "مُصنِّف الصور" تنزيل نموذج لتصنيف الصور ونقله إلى دليل مشروعك. ابدأ باستخدام النموذج المُقترَح والمُعدّ بشكلٍ تلقائي للمنصة المستهدَفة عند بدء التطوير باستخدام هذه المهمة. توازن النماذج الأخرى المتاحة عادةً بين الأداء والدقة ودرجة الدقة ومتطلبات الموارد، وفي بعض الحالات، تتضمن ميزات إضافية.
نموذج EfficientNet-Lite0 (مُستحسَن)
يستخدم نموذج EfficientNet-Lite0 بنية EfficientNet وتم تدريبه باستخدام ImageNet للتعرّف على 1,000 فئة، مثل الأشجار والحيوانات والطعام والمركبات والأشخاص وما إلى ذلك. اطّلِع على القائمة الكاملة للتصنيفات المتوافقة. يتوفّر نموذج EfficientNet-Lite0 بتنسيقَي int8 وfloat 32. وننصحك باستخدام هذا النموذج لأنّه يوازن بين وقت الاستجابة والدقة. وهي دقيقة وخفيفة الوزن بما يكفي لاستخدامها في العديد من حالات الاستخدام.
اسم الطراز | شكل الإدخال | نوع التقريب | الإصدارات |
---|---|---|---|
EfficientNet-Lite0 (int8) | 224 x 224 | int8 | الأحدث |
EfficientNet-Lite0 (float 32) | 224 x 224 | لا شيء (float32) | الأحدث |
نموذج EfficientNet-Lite2
يستخدم نموذج EfficientNet-Lite2 بنية EfficientNet وتم تدريبه باستخدام ImageNet للتعرّف على 1,000 فئة، مثل الأشجار والحيوانات والطعام والمركبات والأشخاص وما إلى ذلك. يمكنك الاطّلاع على القائمة الكاملة للتصنيفات المتوافقة. يتوفّر EfficientNet-Lite2 كنموذجَين بتنسيقَي int8 وfloat 32. هذا النموذج أكثر دقة بشكل عام من EfficientNet-Lite0، ولكنه أيضًا أبطأ ويستهلك ذاكرة أكبر. هذا النموذج مناسب لحالات الاستخدام التي تكون فيها الدقة ذات أولوية أعلى من السرعة أو الحجم.
اسم الطراز | شكل الإدخال | نوع التقريب | الإصدارات |
---|---|---|---|
EfficientNet-Lite2 (int8) | 224 x 224 | int8 | الأحدث |
EfficientNet-Lite2 (float 32) | 224 x 224 | لا شيء (float32) | الأحدث |
مقاييس أداء المهام
في ما يلي مقاييس أداء المهام لعملية المعالجة بأكملها استنادًا إلى نماذج pretrained المدرَّبة مسبقًا أعلاه. نتيجة وقت الاستجابة هي متوسط وقت الاستجابة على هاتف Pixel 6 باستخدام وحدة المعالجة المركزية / وحدة معالجة الرسومات.
اسم النموذج | وقت استجابة وحدة المعالجة المركزية | وقت استجابة وحدة معالجة الرسومات |
---|---|---|
EfficientNet-Lite0 (float 32) | 23.52 ملي ثانية | 18.90 ملي ثانية |
EfficientNet-Lite0 (int8) | 10.08 ملي ثانية | - |
EfficientNet-Lite2 (قيمة عائمة 32) | 44.17 ملي ثانية | 22.20 ملي ثانية |
EfficientNet-Lite2 (int8) | 19.43 ملي ثانية | - |
النماذج المخصّصة
يمكنك استخدام نموذج تعلُّم آلي مخصّص مع هذه المهمة إذا كنت تريد تحسين قدرات النماذج المقدَّمة أو تغييرها. يمكنك استخدام Model Maker لتعديل النماذج الحالية أو إنشاء نموذج باستخدام أدوات مثل TensorFlow. يجب أن تكون النماذج المخصّصة المستخدَمة مع MediaPipe بتنسيق TensorFlow Lite ويجب أن تشمل metadata محدّدة تصف مَعلمات التشغيل للنموذج. ننصحك باستخدام "أداة إنشاء النماذج" لتعديل النماذج المقدَّمة لهذه المهمة قبل إنشاء نموذجك الخاص.
إذا كنت مهتمًا بإنشاء مصنّف صور مخصّص باستخدام مجموعة البيانات الخاصة بك، ابدأ بالدليل التعليمي تخصيص مصنّف الصور.