המשימה 'זיהוי פנים' של MediaPipe מאפשרת לזהות פנים בתמונה או בסרטון. אפשר להשתמש במשימה הזו כדי לאתר פנים ותווי פנים בפריים. במשימה הזו נעשה שימוש במודל של למידת מכונה (ML) שעובד עם תמונות בודדות או עם מקור תמונות רציף. הפלט של המשימה כולל את מיקומי הפנים, יחד עם נקודות המפתח הבאות בפנים: העין השמאלית, העין הימנית, קצה האף, הפה, טריגון העין השמאלית וטריגון העין הימנית.
תחילת העבודה
כדי להתחיל להשתמש במשימה הזו, פועלים לפי אחד מהמדריכים הבאים להטמעה בפלטפורמת היעד. המדריכים הספציפיים לפלטפורמות האלה כוללים הנחיות להטמעה בסיסית של המשימה הזו, כולל מודל מומלץ ודוגמת קוד עם אפשרויות ההגדרה המומלצות:
- Android – דוגמה לקוד – מדריך
- Python – דוגמה לקוד – מדריך
- אינטרנט – דוגמה לקוד – מדריך
- iOS – דוגמה לקוד – מדריך
פרטי המשימה
בקטע הזה מוסבר על היכולות, הקלט, הפלט והאפשרויות להגדרה של המשימה הזו.
תכונות
- עיבוד תמונות קלט – העיבוד כולל סיבוב תמונות, שינוי גודל, נורמליזציה והמרה של מרחב צבעים.
- סף ניקוד – סינון התוצאות על סמך ציונים של תחזיות.
קלט של משימות | פלט של משימות |
---|---|
הכלי לזיהוי פנים מקבל קלט מאחד מסוגי הנתונים הבאים:
|
אלה התוצאות שהכלי לזיהוי פנים מניב:
|
אפשרויות הגדרה
למשימה הזו יש את אפשרויות ההגדרה הבאות:
שם האפשרות | תיאור | טווח ערכים | ערך ברירת מחדל |
---|---|---|---|
running_mode |
הגדרת מצב ההפעלה של המשימה. יש שלושה מצבים: IMAGE: המצב להזנת תמונה אחת. VIDEO: המצב של פריימים מפוענחים של סרטון. 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 (טווח קצר)
מודל קל לזיהוי פנים יחידים או מרובים בתמונות שדומות לתמונות סלפי ממצלמת הסמארטפון או ממצלמת האינטרנט. המודל עבר אופטימיזציה לתמונות ממצלמה קדמית בטלפון, מטווח קצר. בארכיטקטורת המודל נעשה שימוש בשיטה של רשת convolutional (רשת קוונטית) מסוג Single Shot Detector (SSD) עם מקודד מותאם אישית. מידע נוסף זמין במאמר המחקר בנושא Single Shot MultiBox Detector.
שם דגם | צורת הקלט | סוג הקידוד | כרטיס מודל | גרסאות |
---|---|---|---|---|
BlazeFace (טווח קצר) | 128 x 128 | float 16 | info | חדש |
BlazeFace (טווח מלא)
מודל קל יחסית לזיהוי פנים יחיד או כמה פנים בתמונות ממצלמת הסמארטפון או ממצלמת האינטרנט. המודל עבר אופטימיזציה לתמונות עם טווח מלא, כמו תמונות שצולמו במצלמה האחורית של הטלפון. בארכיטקטורה של המודל נעשה שימוש בשיטה שדומה לרשת עיבוד נתונים (CNN) של CenterNet עם מקודד מותאם אישית.
שם דגם | צורת הקלט | סוג הקידוד | כרטיס מודל | גרסאות |
---|---|---|---|---|
BlazeFace (טווח מלא) | 128 x 128 | float 16 | מידע | בקרוב |
BlazeFace Sparse (טווח מלא)
גרסה קלה יותר של מודל BlazeFace הרגיל לכל הטווח, בגודל קטן ב-60% בערך. המודל עבר אופטימיזציה לתמונות עם טווח מלא, כמו תמונות שצולמו במצלמה האחורית של הטלפון. ארכיטקטורת המודל מבוססת על טכניקה שדומה לרשת convolutional של CenterNet עם מקודד מותאם אישית.
שם דגם | צורת הקלט | סוג הקידוד | כרטיס מודל | גרסאות |
---|---|---|---|---|
BlazeFace Sparse (טווח מלא) | 128 x 128 | float 16 | מידע | בקרוב |
נקודות השוואה של משימות
בהמשך מפורטות נקודות השוואה של המשימות לצינור עיבוד הנתונים כולו, על סמך המודלים המאומןים מראש שצוינו למעלה. תוצאת זמן האחזור היא זמן האחזור הממוצע ב-Pixel 6 באמצעות מעבד או יחידת עיבוד גרפי (GPU).
שם דגם | זמן האחזור של המעבד (CPU) | זמן אחזור של GPU |
---|---|---|
BlazeFace (טווח קצר) | 2.94 אלפיות השנייה | 7.41 אלפיות השנייה |