המשימה MediaPipe Face Landmarker מאפשרת לזהות נקודות ציון בפנים והבעות פנים בתמונות ובסרטונים. אתם יכולים להשתמש במשימה הזו כדי לזהות הבעות פנים אנושיות, להחיל פילטרים ואפקטים על הפנים וליצור דמויות וירטואליות. המשימה הזו משתמשת במודלים של למידת מכונה (ML) שיכולים לעבוד עם תמונות בודדות או עם רצף רציף של תמונות. הפלט של המשימה כולל נקודות ציון תלת-ממדיות של הפנים, ציוני blendshape (מקדמים שמייצגים הבעות פנים) כדי להסיק משטחי פנים מפורטים בזמן אמת, ומטריצות טרנספורמציה כדי לבצע את הטרנספורמציות שנדרשות לעיבוד האפקטים.
שנתחיל?
כדי להתחיל להשתמש במשימה הזו, צריך לפעול לפי אחד ממדריכי ההטמעה לפלטפורמת היעד. במדריכים הספציפיים לפלטפורמה מוסבר איך לבצע הטמעה בסיסית של המשימה הזו, כולל מודל מומלץ ודוגמת קוד עם אפשרויות הגדרה מומלצות:
פרטי המשימה
בקטע הזה מוסבר על היכולות, הקלטים, הפלטים ואפשרויות ההגדרה של המשימה הזו.
תכונות
- עיבוד תמונת הקלט – העיבוד כולל סיבוב תמונה, שינוי גודל, נורמליזציה והמרה של מרחב הצבעים.
- סף הניקוד – סינון התוצאות על סמך ניקוד התחזית.
| קלט למשימה | פלט של משימות |
|---|---|
המודל Face Landmarker מקבל קלט של אחד מסוגי הנתונים הבאים:
|
התוצאות שמתקבלות מהמודל Face Landmarker הן:
|
אפשרויות הגדרות
אלה אפשרויות ההגדרה של המשימה הזו:
| שם האפשרות | תיאור | טווח ערכים | ערך ברירת מחדל |
|---|---|---|---|
running_mode |
הגדרת מצב ההפעלה של המשימה. יש שלושה מצבים: תמונה: המצב להזנת תמונות בודדות. VIDEO: המצב של פריים מפוענח של סרטון. LIVE_STREAM: המצב לשידור חי של נתוני קלט, למשל ממצלמה. במצב הזה, צריך להפעיל את resultListener כדי להגדיר listener לקבלת תוצאות באופן אסינכרוני. |
{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 Landmarker מוציאה נתוני blendshapes של הפנים. צורות הפנים המעורבות משמשות לעיבוד של התבנית התלת-ממדית לזיהוי הפנים. | Boolean |
False |
output_facial_transformation_matrixes |
ההגדרה הזו קובעת אם FaceLandmarker יוציא את מטריצת השינוי של הפנים. המודל FaceLandmarker משתמש במטריצה כדי לשנות את נקודות הציון של הפנים ממודל פנים קנוני לפנים שזוהו, כך שהמשתמשים יכולים להחיל אפקטים על נקודות הציון שזוהו. | Boolean |
False |
result_callback |
מגדיר את מאזין התוצאות לקבלת תוצאות של נקודות ציון באופן אסינכרוני כש-FaceLandmarker נמצא במצב שידור חי.
אפשר להשתמש בהגדרה הזו רק אם מצב ההפעלה מוגדר ל-LIVE_STREAM |
ResultListener |
N/A |
מודלים
התכונה Face Landmarker משתמשת בסדרה של מודלים כדי לחזות את נקודות הציון של הפנים. המודל הראשון מזהה פנים, המודל השני מאתר נקודות ציון בפנים שזוהו, והמודל השלישי משתמש בנקודות הציון האלה כדי לזהות הבעות פנים ותווי פנים.
המודלים הבאים נארזים יחד בחבילת מודלים שאפשר להוריד:
- מודל לזיהוי פנים: מזהה את נוכחות הפנים באמצעות כמה נקודות ציון מרכזיות בפנים.
- מודל של רשת פנים: מוסיף מיפוי מלא של הפנים. המודל מפיק הערכה של 478 נקודות ציון תלת-ממדיות בפנים.
- מודל חיזוי של blendshape: מקבל פלט ממודל רשת הפנים, חוזה 52 ציוני blendshape, שהם מקדמים שמייצגים הבעות פנים שונות.
מודל זיהוי הפנים הוא מודל BlazeFace short-range, גלאי פנים קל משקל ומדויק שעבר אופטימיזציה להסקת מסקנות ב-GPU של מכשירים ניידים. מידע נוסף זמין במאמר בנושא המשימה Face Detector.
בתמונה הבאה אפשר לראות מיפוי מלא של נקודות ציון בפנים מתוך הפלט של חבילת המודל.
כדי לראות תצוגה מפורטת יותר של נקודות הציון בפנים, אפשר לעיין בתמונה בגודל מלא.
| חבילת מודלים | צורת הקלט | סוג הנתונים | כרטיסי מודל | גרסאות |
|---|---|---|---|---|
| FaceLandmarker | FaceDetector: 192 x 192 FaceMesh-V2: 256 x 256 Blendshape: 1 x 146 x 2 |
float 16 |
FaceDetector FaceMesh-V2 Blendshape |
הכי חדש |