מדריך לזיהוי פנים

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

כדאי לנסות!

מתחילים

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

פרטי המשימה

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

תכונות

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

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

במשימה הזאת קיימות אפשרויות ההגדרה הבאות:

שם האפשרות תיאור טווח ערכים ערך ברירת מחדל
running_mode מגדיר את מצב הריצה של המשימה. יש שלושה מצבים:

IMAGE: המצב שבו ניתן להזין תמונה יחידה.

וידאו: המצב של פריימים מפוענחים של סרטון.

LIVE_STREAM: המצב עבור סטרימינג בשידור חי של נתוני קלט, למשל ממצלמה. במצב הזה, יש להפעיל את resultListener כדי להגדיר מאזין לקבלת תוצאות באופן אסינכרוני.
{IMAGE, VIDEO, LIVE_STREAM} IMAGE
min_detection_confidence ציון המהימנות המינימלי שזיהוי הפנים ייחשב בהצלחה. Float [0,1] 0.5
min_suppression_threshold הסף המינימלי שאינו ביטול מקסימלי כדי שזיהוי הפנים ייחשב לחפיפה. Float [0,1] 0.3
result_callback מגדיר את הכלי להאזנה לתוצאות כך שיקבל את תוצאות הזיהוי באופן אסינכרוני כשגלאי הפנים נמצא במצב שידור חי. אפשר להשתמש רק כשמצב הריצה מוגדר ל-LIVE_STREAM. N/A Not set

דגמים

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

המודלים המפורטים בקטע הזה הם וריאנטים של BlazeFace, גלאי פנים קל ומדויק שמותאם להסקת הנתונים ממעבד GPU בנייד. המודלים של BlazeFace מתאימים לאפליקציות כמו הערכה תלת-ממדית של נקודות מפתח לפנים, סיווג הבעות פנים ופילוח אזור הפנים. BlazeFace משתמש ברשת קלה לחילוץ תכונות שדומה ל-MobileNetV1/V2.

BlazeFace (טווח קצר)

מודל קליל לזיהוי פנים של אדם אחד או מספר פנים בתמונות סלפי, במצלמת סמארטפון או במצלמת אינטרנט. המודל עבר אופטימיזציה לתמונות של מצלמת הטלפון שפונה למצלמה קדמית בטווח קצר. ארכיטקטורת המודל משתמשת בשיטת SSD לרשת קונבולציה עם מקודד מותאם אישית. למידע נוסף, קראו את מאמר המחקר בנושא Single Shot MultiBox Detector.

שם הדגם צורת הקלט סוג הכמות כרטיס דגם גרסאות
BlazeFace (טווח קצר) ‎128 x 128 מספר ממשי (float) 16 מידע האחרון

BlazeFace (טווח מלא)

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

שם הדגם צורת הקלט סוג הכמות כרטיס דגם גרסאות
BlazeFace (טווח מלא) ‎128 x 128 מספר ממשי (float) 16 מידע בקרוב

BlazeFace Sparse (טווח מלא)

גרסה קלה יותר של הדגם הרגיל של BlazeFace לטווח מלא, שגודלה קטן ב-60% בערך. המודל עבר אופטימיזציה לתמונות בטווח מלא, כמו תמונות שצולמו במצלמה אחורית. ארכיטקטורת המודלים משתמשת בשיטה שדומה לרשת מפותלת של CenterNet עם מקודד מותאם אישית.

שם הדגם צורת הקלט סוג הכמות כרטיס דגם גרסאות
BlazeFace Sparse (טווח מלא) ‎128 x 128 מספר ממשי (float) 16 מידע בקרוב

נקודות השוואה למשימות

אלה נקודות ההשוואה למשימות לגבי כל צינור עיבוד הנתונים, בהתבסס על המודלים שהוכשרו מראש למעלה. זמן האחזור הוא זמן האחזור הממוצע ב-Pixel 6 כשמשתמשים במעבד (CPU) או ב-GPU.

שם דגם זמן אחזור של המעבד (CPU) זמן אחזור של GPU
BlazeFace (טווח קצר) 2.94 אלפיות השנייה 7.41 אלפיות השנייה