تتيح لك مهمة MediaPipe Image Classifier إجراء تصنيف على الصور. يمكنك استخدام هذه المهمة لتحديد ما تمثله الصورة بين مجموعة من الفئات المحددة في وقت التدريب. تعمل هذه المهمة على بيانات الصور باستخدام نموذج تعلُّم الآلة كبيانات ثابتة أو تدفق مستمر، وتُخرج قائمة بالفئات المحتملة مرتَّبة حسب درجة الاحتمالية تنازليًا.
البدء
ابدأ في استخدام هذه المهمة باتباع أحد أدلة التنفيذ هذه للنظام الأساسي المستهدف. ترشدك هذه الأدلة الخاصة بنظام التشغيل خلال التنفيذ الأساسي لهذه المهمة، باستخدام نموذج مقترح، وتقدم أمثلة على التعليمات البرمجية مع خيارات التهيئة المقترحة:
- Android - مثال على الرمز البرمجي - Guide
- Python - مثال على الرمز البرمجي - Guide
- الويب - مثال على الرمز - Guide
- iOS - مثال على الرمز البرمجي - Guide
تفاصيل المهمة
يصف هذا القسم الإمكانات والمدخلات والمخرجات وخيارات الضبط لهذه المهمة.
الميزات
- معالجة إدخال الصور: تشمل المعالجة تدوير الصور وتغيير حجمها وتسويتها وتحويل مساحة اللون.
- المنطقة محل الاهتمام: يمكنك إجراء التصنيف على منطقة من الصورة بدلاً من الصورة بأكملها.
- لغة خريطة التصنيف - حدِّد اللغة المستخدمة للأسماء المعروضة.
- الحد الأدنى للنتيجة - فلترة النتائج استنادًا إلى نتائج التوقعات.
- التصنيف العلوي: تحديد عدد نتائج التصنيف.
- قائمة التصنيفات المسموح بها وقائمة الحظر: حدِّد الفئات التي تمّ تصنيفها.
إدخالات المهام | نتائج المهام |
---|---|
يمكن أن يكون الإدخال أحد أنواع البيانات التالية:
|
تُنشئ أداة تصنيف الصور قائمة بالفئات التي تحتوي على:
|
خيارات الإعدادات
تتضمن هذه المهمة خيارات الإعداد التالية:
اسم الخيار | الوصف | نطاق القيمة | القيمة التلقائية |
---|---|---|---|
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-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 وأن تتضمّن بيانات وصفية محدّدة تصف مَعلمات تشغيل النموذج. يجب أن تفكر في استخدام مصمم النماذج لتعديل النماذج المقدمة لهذه المهمة قبل إنشاء النماذج الخاصة بك.
إذا كنت مهتمًا بإنشاء مصنّف صور مخصّص باستخدام مجموعة بياناتك الخاصة، يمكنك البدء بالاطّلاع على الدليل التعليمي تخصيص مصنّف الصور.