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