המשימה 'ציון פנים' של MediaPipe מאפשרת לזהות ציוני דרך והבעות פנים בתמונות ובסרטונים. בעזרת המשימה הזו אפשר לזהות הבעות פנים אנושיות, להחיל פילטרים ואפקטים לפנים וליצור דמויות וירטואליות. במשימה הזו נעשה שימוש במודלים של למידת מכונה (ML) שיכולים לעבוד עם תמונות בודדות או עם רצף רציף של תמונות. המשימה מפיקה ציוני פנים תלת ממדיים, ציוני מיזוג (מקדמים שמייצגים הבעה של פנים) להסקת משטחי פנים מפורטים בזמן אמת ומטריצות טרנספורמציה כדי לבצע את הטרנספורמציות שנדרשות ליצירת האפקטים.
מתחילים
כדי להתחיל להשתמש במשימה הזו, כדאי לפעול לפי אחד ממדריכי ההטמעה של פלטפורמת היעד. במדריכים הבאים שספציפיים לפלטפורמה תמצאו הנחיות איך לבצע הטמעה בסיסית של המשימה הזו, כולל מודל מומלץ ודוגמה לקוד עם אפשרויות הגדרה מומלצות:
- Android – דוגמה לקוד – מדריך
- Python – דוגמה לקוד – מדריך
- אינטרנט - דוגמה לקוד – מדריך
פרטי המשימה
בקטע הזה מתוארות היכולות, הקלט, הפלט ואפשרויות ההגדרה של המשימה הזו.
תכונות
- עיבוד תמונות קלט – העיבוד כולל סיבוב תמונות, שינוי גודל, נירמול והמרת מרחב צבעים.
- סף הציון – סינון התוצאות לפי ציוני התחזית.
קלט למשימות | פלט המשימות |
---|---|
התכונה 'ציוני פנים' מקבלת קלט של אחד מסוגי הנתונים הבאים:
|
הכלי 'ציוני פנים' יוצר את התוצאות הבאות:
|
אפשרויות של הגדרות אישיות
במשימה הזאת קיימות אפשרויות ההגדרה הבאות:
שם האפשרות | תיאור | טווח ערכים | ערך ברירת מחדל |
---|---|---|---|
running_mode |
מגדיר את מצב הריצה של המשימה. יש שלושה
מצבים: IMAGE: המצב שבו ניתן להזין תמונה יחידה. וידאו: המצב של פריימים מפוענחים של סרטון. LIVE_STREAM: המצב עבור סטרימינג בשידור חי של נתוני קלט, למשל ממצלמה. במצב הזה, יש להפעיל את resultListener כדי להגדיר מאזין לקבלת תוצאות באופן אסינכרוני. |
{IMAGE, VIDEO, LIVE_STREAM } |
IMAGE |
num_faces |
המספר המקסימלי של פנים שניתן לזהות באמצעות
FaceLandmarker . ההחלקה מתבצעת רק כאשר הערך של num_faces מוגדר ל-1.
|
Integer > 0 |
1 |
min_face_detection_confidence |
ציון הסמך המינימלי שצריך לעמוד בו כדי שזיהוי הפנים ייחשב כמוצלח. | Float [0.0,1.0] |
0.5 |
min_face_presence_confidence |
ציון המהימנות המינימלי של ציון נוכחות הפנים בזיהוי של ציון הפנים. | Float [0.0,1.0] |
0.5 |
min_tracking_confidence |
ציון הסמך המינימלי הנדרש למעקב אחר זיהוי הפנים כדי להיחשב כמוצלח. | Float [0.0,1.0] |
0.5 |
output_face_blendshapes |
האם Face Looker יוצר מיקסים של פנים. שילובים של הפנים משמשים להצגת התבנית התלת-ממדית לזיהוי הפנים. | Boolean |
False |
output_facial_transformation_matrixes |
האם סמן הפלט הוא פלט של מטריצת טרנספורמציית הפנים. התכונה 'סמן פנים' משתמשת במטריצה כדי לשנות את ציוני הדרך של הפנים מתבנית קנונית לזיהוי פנים לזיהוי הפנים שזוהו. כך המשתמשים יכולים להחיל אפקטים על ציוני הדרך שזוהו. | Boolean |
False |
result_callback |
מגדיר את מאזין התוצאות לקבלת תוצאות של ציוני דרך באופן אסינכרוני כאשר FaceLandmark נמצא במצב שידור חי.
אפשר להשתמש רק כשמצב ריצה מוגדר ל-LIVE_STREAM |
ResultListener |
N/A |
דגמים
הכלי לזיהוי פנים משתמש בסדרה של מודלים כדי לחזות את ציוני הדרך של הפנים. המודל הראשון מזהה פרצופים, המודל השני מאתר ציוני דרך בפנים שזוהו ומודל שלישי משתמש בציוני הדרך האלה כדי לזהות תווי פנים והבעות פנים.
המודלים הבאים ארוזים יחד בחבילת מודלים ניתנת להורדה:
- מודל זיהוי פנים: מזהה נוכחות של פנים עם כמה סימנים חשובים לזיהוי פנים.
- מודל רשת פנים: מוסיף מיפוי מלא של הפנים. המודל מפיק אומדן של 478 ציוני דרך תלת-ממדיים של פנים.
- מודל חיזוי בפורמט מיזוג: מקבל פלט מהמודל של רשת הפנים, שמפיק חיזוי של 52 ציונים בצורת מיזוג, שהם מקדמים שמייצגים הבעות פנים שונות.
המודל לזיהוי פנים הוא המודל BlazeFace לטווח קצר, גלאי פנים קליל ומדויק שעבר אופטימיזציה להסקת מסקנות ממעבד GPU לנייד. למידע נוסף, ראו את המשימה זיהוי פנים.
בתמונה הבאה מוצג מיפוי מלא של ציוני פנים מהפלט של חבילת המודל.
לקבלת תצוגה מפורטת יותר של ציוני הדרך לזיהוי הפנים, קראו את התמונה בגודל מלא.
חבילת דגמים | צורת הקלט | סוג הנתונים | קלפי דגמים | גרסאות |
---|---|---|---|---|
FaceLandmarker | FaceDetector: 192 x 192 FaceMesh-V2: 256 x 256 מיזוג: 1 x 146 x 2 |
מספר ממשי (float) 16 |
FaceDetector FaceMesh-V2 Blaendshape |
האחרון |