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