המשימה 'פלח התמונות של MediaPipe' מאפשרת לחלק תמונות לאזורים על סמך קטגוריות מוגדרות מראש. ניתן להשתמש בפונקציונליות הזו כדי לזהות אובייקטים או טקסטורות ספציפיים, ולאחר מכן להפעיל אפקטים חזותיים כמו טשטוש רקע. במשימה הזו מופיעים כמה מודלים שהוכשרו ספציפית לפילוח אנשים והתכונות שלהם בנתוני תמונות, כולל:
- אדם ורקע
- שיער של אדם בלבד
- השיער, הפנים, העור, הביגוד והאביזרים של האדם
המשימה פועלת על נתוני תמונה עם מודל למידת מכונה (ML) עם תמונות בודדות או זרם וידאו רציף. הפונקציה יוצרת פלט של רשימה של אזורים מפולחים שמייצגים אובייקטים או אזורים בתמונה, בהתאם לmodel שבחרתם.
מתחילים
כדי להתחיל להשתמש במשימה הזו, כדאי לפעול לפי אחד ממדריכי ההטמעה האלה בהתאם לפלטפורמת היעד. במדריכים הבאים שספציפיים לפלטפורמה תמצאו הנחיות איך לבצע הטמעה בסיסית של המשימה הזו, כולל מודל מומלץ ודוגמה לקוד עם אפשרויות הגדרה מומלצות:
- Android – דוגמה לקוד – מדריך
- Python – דוגמה לקוד מדריך
- Web – דוגמה לקוד – מדריך
פרטי המשימה
בקטע הזה מתוארות היכולות, הקלט, הפלט ואפשרויות ההגדרה של המשימה הזו.
תכונות
- עיבוד תמונות קלט – העיבוד כולל סיבוב תמונות, שינוי גודל, נירמול והמרת מרחב צבעים.
קלט למשימות | פלט המשימות |
---|---|
הקלט יכול להיות אחד מסוגי הנתונים הבאים:
|
פילוחי התמונות הם פלט של נתוני תמונות מפולחים, שיכולים לכלול אחת
מהאפשרויות הבאות או את שתיהן, בהתאם לאפשרויות ההגדרה שקבעתם:
|
אפשרויות של הגדרות אישיות
במשימה הזאת קיימות אפשרויות ההגדרה הבאות:
שם האפשרות | תיאור | טווח ערכים | ערך ברירת מחדל |
---|---|---|---|
running_mode |
מגדיר את מצב הריצה של המשימה. יש שלושה
מצבים: IMAGE: המצב שבו ניתן להזין תמונה יחידה. וידאו: המצב של פריימים מפוענחים של סרטון. 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 עבור
אנגלית. אפשר להוסיף תוויות שהותאמו לשוק המקומי למטא-נתונים של מודל מותאם אישית באמצעות TensorFlow Lite Metadata Writer API
| קוד הלוקאל | en |
result_callback |
מגדיר את הכלי להאזנה לתוצאות כך שיקבל את תוצאות הפילוח באופן אסינכרוני כאשר מפלח התמונות נמצא במצב שידור חי.
אפשר להשתמש רק כשמצב ריצה מוגדר ל-LIVE_STREAM |
לא רלוונטי | לא רלוונטי |
דגמים
אפשר להשתמש ב'פלח התמונות' עם יותר ממודל אחד של למידת מכונה. רוב המודלים הבאים של פילוח נוצרים ואומנו לביצוע פילוח עם תמונות של אנשים. עם זאת, המודל DeepLab-v3 בנוי כמפלח תמונות לשימוש כללי. בחירת המודל המתאים ביותר לאפליקציה שלכם.
מודל לפילוח תמונת סלפי
במודל הזה אפשר לפלח את הדיוקן של אדם, ואפשר להשתמש בו כדי להחליף או לשנות את הרקע בתמונה. הפלט של המודל הוא בשתי קטגוריות: רקע באינדקס 0 ואנשים באינדקס 1. למודל הזה יש גרסאות עם צורות קלט שונות, כולל גרסה ריבועית וגרסה לרוחב. גרסה לרוחב עשויה להיות יעילה יותר באפליקציות שבהן הקלט הוא תמיד בצורה הזו, כמו שיחות וידאו.
שם הדגם | צורת הקלט | סוג הכמות | כרטיס דגם | גרסאות |
---|---|---|---|---|
SelfieSegmenter (ריבוע) | 256 x 256 | מספר ממשי (float) 16 | מידע | האחרון |
מקטע סלפי (לרוחב) | 144 x 256 | מספר ממשי (float) 16 | מידע | האחרון |
מודל לפילוח שיער
המודל הזה לוקח תמונה של אדם, מאתר את השיער שעל הראש ומפיק פלט של מפת פילוח תמונה של השיער שלו. ניתן להשתמש במודל הזה לצביעה מחדש של השיער או להחלת אפקטים אחרים לשיער. הפלט של המודל הוא קטגוריות הפילוח הבאות:
0 - background
1 - hair
שם הדגם | צורת הקלט | סוג הכמות | כרטיס דגם | גרסאות |
---|---|---|---|---|
HairSegmenter | 512 x 512 | ללא (float32) | מידע | האחרון |
מודל לפילוח תמונות סלפי בכמה סיווגים
המודל הזה מצלמים תמונה של אדם, מאתר אזורים שונים לאזורים שונים כמו שיער, עור וביגוד, ומפיק פלט של מפת פילוח תמונות לפריטים האלה. אפשר להשתמש במודל הזה כדי להוסיף אפקטים שונים לאנשים בתמונות או בסרטונים. הפלט של המודל הוא קטגוריות הפילוח הבאות:
0 - background
1 - hair
2 - body-skin
3 - face-skin
4 - clothes
5 - others (accessories)
שם הדגם | צורת הקלט | סוג הכמות | כרטיס דגם | גרסאות |
---|---|---|---|---|
SelfieMulticlass (256 x 256) | 256 x 256 | ללא (float32) | מידע | האחרון |
מודל DeepLab-v3
המודל הזה מזהה פלחים לפי מספר קטגוריות, כולל רקע, אדם, חתול, כלב ועציץ. במודל נעשה שימוש במאגר פירמידה מרחבית, כדי לאסוף מידע מטווח ארוך יותר. למידע נוסף, ראו DeepLab-v3.
שם הדגם | צורת הקלט | סוג הכמות | גרסאות |
---|---|---|---|
DeepLab-V3 | 257 x 257 | ללא (float32) | האחרון |
נקודות השוואה למשימות
אלה נקודות ההשוואה למשימות שחלות על כל צינור עיבוד הנתונים, בהתבסס על המודלים הקודמים שאומנו מראש. תוצאת זמן האחזור היא זמן האחזור הממוצע ב-Pixel 6 כשמשתמשים במעבד (CPU) או ב-GPU.
שם דגם | זמן אחזור של המעבד (CPU) | זמן אחזור של GPU |
---|---|---|
פלח תמונות סלפי (ריבוע) | 33.46 אלפיות השנייה | 35.15 אלפיות השנייה |
פלח סלפי (לרוחב) | 34.19 אלפיות השנייה | 33.55 אלפיות השנייה |
HairSegmenter | 57.90 אלפיות השנייה | 52.14 אלפיות השנייה |
SelfieMulticlass (256 x 256) | 217.76 אלפיות השנייה | 71.24 אלפיות השנייה |
DeepLab-V3 | 123.93 אלפיות השנייה | 103.30 אלפיות השנייה |