מדריך לפילוח תמונות

המשימה 'פילוח תמונות של MediaPipe' מאפשרת לחלק תמונות לאזורים על סמך קטגוריות. אפשר להשתמש בפונקציונליות הזו כדי לזהות אובייקטים ספציפיים או טקסטורות, ולאחר מכן להשתמש באפקטים חזותיים כמו טשטוש רקע. המשימה הזו הדוח כולל מספר מודלים שעברו הכשרה ספציפית לפילוח אנשים תכונות בנתוני התמונות, כולל:

  • אדם ורקע
  • שיער לאדם בלבד
  • שיער, פנים, עור, ביגוד ואביזרים של אדם

המשימה הזו פועלת על נתוני תמונה באמצעות מודל למידת מכונה (ML) עם תמונות או וידאו בסטרימינג מתמשך. הפלט שלה הוא רשימה של אזורים מפולחים, שמייצגים אובייקטים או אזורים בתמונה, בהתאם למודל לבחור.

רוצה לנסות?

תחילת העבודה

כדי להתחיל להשתמש במשימה הזאת תוכלו להיעזר באחד ממדריכי ההטמעה הבאים: פלטפורמת היעד. המדריכים האלה, שספציפיים לפלטפורמה, ידריכו אותך של המשימה, כולל מודל מומלץ ודוגמה לקוד עם אפשרויות הגדרה מומלצות:

פרטי המשימה

בקטע הזה מתוארים היכולות, הקלט, הפלט וההגדרות האישיות לביצוע המשימה הזו.

תכונות

  • עיבוד תמונות קלט – העיבוד כולל סיבוב תמונות, שינוי גודל נירמול והמרת מרחב צבעים.
קלט למשימות הפלט של המשימות
הקלט יכול להיות אחד מסוגי הנתונים הבאים:
  • תמונות סטילס
  • פריימים מפוענחים של הווידאו
  • פיד של וידאו בשידור חי
הכלי 'פלח תמונות' יוצר פלט של נתוני תמונה מפולחים, שיכולים לכלול את שני הערכים הבאים, בהתאם לאפשרויות ההגדרה שהגדרתם:
  • CATEGORY_MASK: רשימה שמכילה מסכה מפולחת בתור תמונה בפורמט uint8. כל ערך של פיקסל מציין אם הוא חלק מקטגוריית פלח ספציפית שנתמכת על ידי המודל.
  • CONFIDENCE_MASK: רשימה של ערוצים שמכילים מסכה מפולחת עם ערכי פיקסלים בפורמט float32. כל ערך של פיקסל מציין את רמת הסמך שהוא חלק מקטגוריה ספציפית שנתמכות על ידי המודל.

אפשרויות הגדרות אישיות

המשימה הזו כוללת את אפשרויות ההגדרה האלה:

שם האפשרות תיאור טווח ערכים ערך ברירת מחדל
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. אפשר להשתמש באפשרות הזו רק כשמצב הריצה מוגדר ל-LIVE_STREAM לא רלוונטי לא רלוונטי

דגמים

אפשר להשתמש ב-Image Segmenter (פילוח תמונות) עם יותר ממודל למידת מכונה אחד. רוב המשחקים הבאים מודלים של סגמנטציה נוצרים ומאומנים לבצע פילוח באמצעות תמונות אנשים. עם זאת, המודל DeepLab-v3 בנוי שמשמשת כפלח של התמונה. צריך לבחור את המודל שהכי מתאים לאפליקציה שלכם.

מודל לפילוח לפי סלפי

המודל הזה יכול לפלח את הדיוקן של אדם, ולהשתמש בו כדי להחליף או שינוי הרקע של תמונה. הפלט של המודל הוא שתי קטגוריות: רקע באינדקס 0 ואדם באינדקס 1. למודל הזה יש גרסאות עם צורות קלט שונות, כולל גרסה בפורמט ריבוע וגרסה לרוחב יהיה יעיל יותר לאפליקציות שבהן הקלט תמיד הוא בצורה הזו, כמו שיחות וידאו.

שם דגם צורת הקלט סוג כימות כרטיס דגם גרסאות
סכין סלפי (ריבוע) 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 אלפיות השנייה