המשימה 'זיהוי ציוני דרך של ידיים' ב-MediaPipe מאפשרת לזהות את ציוני הדרך של הידיים בתמונה. אפשר להשתמש במשימה הזו כדי לאתר נקודות מפתח בידיים וליישם עליהן אפקטים חזותיים. המשימה הזו פועלת על נתוני תמונה באמצעות מודל למידת מכונה (ML) כנתונים סטטיים או כזרם רציף, ומפיקה נקודות ציון של היד בקואורדינטות של התמונה, נקודות ציון של היד בקואורדינטות של העולם וצד היד(יד ימין/יד שמאל) של כמה ידיים שזוהו.
תחילת העבודה
כדי להתחיל להשתמש במשימה הזו, פועלים לפי אחד מהמדריכים הבאים להטמעה בפלטפורמת היעד. המדריכים הספציפיים לפלטפורמות האלה כוללים הנחיות להטמעה בסיסית של המשימה הזו, כולל מודל מומלץ ודוגמת קוד עם אפשרויות ההגדרה המומלצות:
- Android – דוגמה לקוד
- Python – דוגמה לקוד
- אינטרנט – דוגמה לקוד – מדריך
פרטי המשימה
בקטע הזה מוסבר על היכולות, הקלט, הפלט והאפשרויות להגדרה של המשימה הזו.
תכונות
- עיבוד תמונות קלט – העיבוד כולל סיבוב תמונות, שינוי גודל, נורמליזציה והמרה של מרחב צבעים.
- סף ניקוד – סינון התוצאות על סמך ציונים של תחזיות.
קלט של משימות | פלט של משימות |
---|---|
הכלי להגדרת נקודות ציון ביד מקבל קלט מאחד מסוגי הנתונים הבאים:
|
התוצאות של Hand Landmarker הן:
|
אפשרויות הגדרה
למשימה הזו יש את אפשרויות ההגדרה הבאות:
שם האפשרות | תיאור | טווח ערכים | ערך ברירת מחדל |
---|---|---|---|
running_mode |
הגדרת מצב ההפעלה של המשימה. יש שלושה מצבים: IMAGE: המצב להזנת תמונה אחת. VIDEO: המצב של פריימים מפוענחים של סרטון. LIVE_STREAM: המצב של סטרימינג בשידור חי של נתוני קלט, למשל ממצלמה. במצב הזה, צריך להפעיל את resultListener כדי להגדיר מאזין שיקבל את התוצאות באופן אסינכרוני. |
{IMAGE, VIDEO, LIVE_STREAM } |
IMAGE |
num_hands |
המספר המקסימלי של ידיים שזוהו על ידי הגלאי של נקודות ציון ביד. | Any integer > 0 |
1 |
min_hand_detection_confidence |
ציון האמון המינימלי שדרוש כדי שזיהוי היד ייחשב מוצלח במודל לזיהוי כף היד. | 0.0 - 1.0 |
0.5 |
min_hand_presence_confidence |
דירוג האמון המינימלי של דירוג נוכחות היד במודל לזיהוי ציוני ציון ביד. במצב וידאו ובמצב שידור חי, אם דירוג האמינות של נוכחות היד ממודל ציון הנקודות ביד נמוך מהסף הזה, הכלי לזיהוי נקודות ביד מפעיל את מודל זיהוי כף היד. אחרת, אלגוריתם קל למעקב אחר הידיים קובע את המיקום שלהן לצורך זיהוי של נקודות ציון בהמשך. | 0.0 - 1.0 |
0.5 |
min_tracking_confidence |
דירוג האמון המינימלי שדרוש כדי שהמעקב אחר הידיים יחשב כהצלחה. זהו סף IoU של תיבת ההיקף בין הידיים בפריים הנוכחי לבין הפריים האחרון. במצב וידאו ובמצב סטרימינג של Hand Landmarker, אם המעקב נכשל, התכונה Hand Landmarker מפעילה זיהוי של היד. אחרת, המערכת תדלג על זיהוי היד. | 0.0 - 1.0 |
0.5 |
result_callback |
מגדיר את מאזין התוצאות כך שיקבל את תוצאות הזיהוי באופן אסינכרוני כשכלי הסימון של כף היד נמצא במצב של שידור חי.
רלוונטי רק כשמצב ההפעלה מוגדר כ-LIVE_STREAM |
לא רלוונטי | לא רלוונטי |
דגמים
ה-Hand Landmarker משתמש בחבילת מודלים עם שני מודלים ארוזים: מודל לזיהוי כף היד ומודל לזיהוי נקודות ציון ביד. כדי להריץ את המשימה הזו, צריך חבילת מודלים שמכילה את שני המודלים האלה.
שם דגם | צורת הקלט | סוג הקידוד | כרטיס מודל | גרסאות |
---|---|---|---|---|
HandLandmarker (full) | 192 x 192, 224 x 224 | float 16 | info | חדש |
חבילת המודל של ציוני הדרך ביד מזהה את המיקום של 21 נקודות ציון במפרקי האצבעות בתוך אזורי היד שזוהו. המודל אומן באמצעות כ-30,000 תמונות מהעולם האמיתי, וגם כמה מודלים סינתטיים של ידיים שהוחלו על רקעים שונים.
חבילת המודלים של כלי הסימון של נקודות ציון ביד מכילה מודל לזיהוי כף היד ומודל לזיהוי נקודות ציון ביד. מודל זיהוי כף היד מאתר את הידיים בתמונה הקלט, ומודל זיהוי ציוני הדרך ביד מזהה ציוני דרך ספציפיים ביד בתמונה החתוכה של היד שמוגדרת על ידי מודל זיהוי כף היד.
מכיוון שהפעלת המודל לזיהוי כף היד אורכת זמן, כשהיא פועלת בסרטון או בשידור חי, הכלי Hand Landmarker משתמש בתיבת הגבול שמוגדרת על ידי מודל נקודות הציון של היד בפריים אחד כדי למקם את האזור של הידיים בפריימים הבאים. התכונה Hand Landmarker מפעילה מחדש את מודל זיהוי כף היד רק אם מודל הנקודות של כף היד לא מזהה יותר את נוכחות הידיים או לא מצליח לעקוב אחרי הידיים בפריים. כך תוכלו לצמצם את מספר הפעמים שבהן Hand Landmarker מפעיל את מודל זיהוי כף היד.
נקודות השוואה של משימות
בהמשך מוצגות נקודות השוואה של המשימות בצינור עיבוד הנתונים כולו, על סמך המודלים שהוכשרו מראש שלמעלה. תוצאת זמן האחזור היא זמן האחזור הממוצע ב-Pixel 6 באמצעות מעבד או יחידת עיבוד גרפי (GPU).
שם דגם | זמן האחזור של המעבד (CPU) | זמן אחזור של GPU |
---|---|---|
HandLandmarker (מלא) | 17.12 אלפיות השנייה | 12.27 אלפיות השנייה |