دليل تصنيف الصور إلى شرائح

أمثلة على صور متجانبة لصورة مقرّبة لرجل بجانب قناع الصورة الذي يحدّد شكل الرجل

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

  • الشخص والخلفية
  • شعر الشخص فقط
  • شعر الشخص ووجوهه وبشرته وملابسه وإكسسواراته

تعمل هذه المهمة على بيانات الصور باستخدام نموذج تعلُّم آلي (ML) مع صور فردية أو بث فيديو مستمر. ويعرض قائمة بالمناطق المقسّمة التي تمثل العناصر أو المناطق في الصورة، استنادًا إلى النموذج الذي تختاره.

ننصحك بتجربة الميزة.

البدء

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

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

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

الميزات

  • معالجة الصور المُدخلة: تشمل المعالجة تدوير الصور وتغيير حجمها وتسويتها وتحويل مساحة الألوان.
مدخلات المهام نتائج المهام
يمكن أن يكون الإدخال أحد أنواع البيانات التالية:
  • الصور الثابتة
  • إطارات الفيديو التي تم فك ترميزها
  • خلاصة فيديو مباشر
تُخرج أداة "تقسيم الصور" بيانات الصور المقسّمة، والتي يمكن أن تتضمّن أحد الخيارين التاليين أو كلاهما، استنادًا إلى خيارات الضبط التي تحدّدها:
  • CATEGORY_MASK: قائمة تحتوي على قناع مقسّم بتنسيق uint8 تشير كل قيمة بكسل إلى ما إذا كان ذلك البكسل جزءًا من فئة شريحة معيّنة متوافقة مع النموذج.
  • CONFIDENCE_MASK: قائمة بالقنوات التي تحتوي على قناع مقسّم بقيم وحدات البكسل بتنسيق float32 تشير كل قيمة بكسل إلى مستوى الثقة بأنّه جزء من فئة معيّنة يتيحها النموذج.

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

تتضمّن هذه المهمة خيارات الضبط التالية:

اسم الخيار الوصف نطاق القيمة القيمة التلقائية
running_mode لضبط وضع التشغيل للمهمة هناك ثلاثة أوضاع:

IMAGE: وضع الإدخالات باستخدام صورة واحدة.

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

LIVE_STREAM: وضع البث المباشر لبيانات الإدخال ، مثل بيانات الكاميرا في هذا الوضع، يجب استدعاء resultListener لإعداد مستمع لتلقّي النتائج بشكل غير متزامن.
{IMAGE, VIDEO, LIVE_STREAM} IMAGE
output_category_mask في حال ضبط القيمة على True، يتضمّن الناتج قناع تقسيم كصورة uint8، حيث تشير قيمة كل بكسل إلى قيمة الفئة الفائزة. {True, False} False
output_confidence_masks في حال ضبطه على True، يتضمّن الناتج قناع تقسيم كصورة قيمة عائمة، حيث تمثّل كل قيمة عائمة خريطة تقييم الثقة للفئة. {True, False} True
display_names_locale لضبط لغة التصنيفات لاستخدامها في الأسماء المعروضة المقدَّمة في البيانات الوصفية لنموذج المهمة، في حال توفّرها. القيمة التلقائية هي en لعبارة English. يمكنك إضافة تصنيفات مترجَمة إلى البيانات الوصفية لنموذج مخصّص باستخدام واجهة برمجة التطبيقات TensorFlow Lite Metadata Writer API. رمز اللغة en
result_callback ضبط مستمع النتائج لتلقّي نتائج التقسيم بشكل غير متزامن عندما يكون أداة تقسيم الصور في وضع LIVE_STREAM لا يمكن استخدامها إلا عند ضبط وضع التشغيل على LIVE_STREAM لا ينطبق لا ينطبق

النماذج

يمكن استخدام أداة "تقسيم الصور" مع أكثر من نموذج تعلُّم آلي واحد. تم إنشاء معظم نماذج معالجة الصور التالية وتدريبها لإجراء عملية معالجة باستخدام صور الأشخاص. ومع ذلك، تم تصميم نموذج DeepLab-v3 كأداة عامة لتقسيم الصور. اختَر النموذج الأنسب لتطبيقك.

نموذج تقسيم صور السيلفي

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

اسم الطراز شكل الإدخال نوع التقريب بطاقة النموذج الإصدارات
SelfieSegmenter (مربّع) ‫256 x ‏256 ‫float 16 info الأحدث
SelfieSegmenter (أفقي) 144 × 256 ‫float 16 info الأحدث

نموذج تقسيم الشعر

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

0 - background
1 - hair
اسم الطراز شكل الإدخال نوع التقريب بطاقة النموذج الإصدارات
HairSegmenter ‫512 × 512 لا شيء (float32) info الأحدث

نموذج لتقسيم الصور الذاتية إلى فئات متعددة

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

0 - background
1 - hair
2 - body-skin
3 - face-skin
4 - clothes
5 - others (accessories)
اسم الطراز شكل الإدخال نوع التقريب بطاقة النموذج الإصدارات
SelfieMulticlass (‎256 x 256) ‫256 x ‏256 لا شيء (float32) info الأحدث

نموذج DeepLab-v3

يحدِّد هذا النموذج أقسامًا لعدد من الفئات، بما في ذلك الخلفية، الشخص، والقط، والكلب، والنبات في وعاء. يستخدم النموذج تجميع هرم spatial pyramid للتقاط معلومات النطاق الأطول. لمزيد من المعلومات، يُرجى الاطّلاع على DeepLab-v3.

اسم الطراز شكل الإدخال نوع التقريب الإصدارات
DeepLab-V3 257 x ‏257 لا شيء (float32) الأحدث

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

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

اسم النموذج وقت استجابة وحدة المعالجة المركزية وقت استجابة وحدة معالجة الرسومات
SelfieSegmenter (مربّع) 33.46 ملي ثانية 35.15 ملي ثانية
SelfieSegmenter (أفقي) 34.19 ملي ثانية 33.55 ملي ثانية
HairSegmenter 57.90 ملي ثانية 52.14 ملي ثانية
SelfieMulticlass (256 x ‏256) 217.76 ملي ثانية 71.24 ملي ثانية
DeepLab-V3 123.93 ملي ثانية 103.30 ملي ثانية