המשימה 'מזהה תנועות MediaPipe' מאפשרת לזהות תנועות ידיים בזמן אמת, ולהציג את התוצאות של תנועות היד שזוהו יחד עם ציוני הדרך של הידיים שזוהו. ניתן לך להשתמש במשימה כדי לזהות תנועות ידיים ספציפיות של משתמש, ולהפעיל תכונות אפליקציה שמתאימות לתנועות האלה.
המשימה הזו פועלת על נתוני תמונה באמצעות מודל למידת מכונה (ML), ומקבלת נתונים סטטיים או רצף רציף. המשימה מפיקה פלט של ציוני דרך בקואורדינטות של תמונות, ציוני דרך של ידיים בקואורדינטות בעולם, יד דומיננטית (יד שמאל/ימין) וקטגוריות של תנועות ידיים של מספר ידיים.
מתחילים
כדי להתחיל להשתמש במשימה הזו, כדאי לפעול לפי אחד ממדריכי ההטמעה האלה בהתאם לפלטפורמת היעד. במדריכים הבאים שספציפיים לפלטפורמה תמצאו הדרכה מפורטת על המשימה הזו, תוך שימוש במודל מומלץ ודוגמאות לקוד עם אפשרויות ההגדרה המומלצות:
- Android – דוגמה לקוד – מדריך
- Python – דוגמה לקוד – מדריך
- אינטרנט - דוגמה לקוד – מדריך
פרטי המשימה
בקטע הזה מתוארות היכולות, הקלט, הפלט ואפשרויות ההגדרה של המשימה הזו.
תכונות
- עיבוד תמונות קלט – העיבוד כולל סיבוב תמונות, שינוי גודל, נירמול והמרת מרחב צבעים.
- סף הציון – סינון התוצאות לפי ציוני התחזית.
- רשימת היתרים של תוויות ורשימת ישויות שנחסמו – ציון קטגוריות התנועות שהמודל זיהה.
קלט למשימות | פלט המשימות |
---|---|
הכלי לזיהוי תנועות מקבל קלט של אחד מסוגי הנתונים הבאים:
|
הכלי לזיהוי תנועות מפיק את התוצאות הבאות:
|
אפשרויות של הגדרות אישיות
במשימה הזאת קיימות אפשרויות ההגדרה הבאות:
שם האפשרות | תיאור | טווח ערכים | ערך ברירת מחדל | |
---|---|---|---|---|
running_mode |
מגדיר את מצב הריצה של המשימה. יש שלושה
מצבים: IMAGE: המצב שבו ניתן להזין תמונה יחידה. וידאו: המצב של פריימים מפוענחים של סרטון. LIVE_STREAM: המצב עבור סטרימינג בשידור חי של נתוני קלט, למשל ממצלמה. במצב הזה, יש להפעיל את resultListener כדי להגדיר מאזין לקבלת תוצאות באופן אסינכרוני. |
{IMAGE, VIDEO, LIVE_STREAM } |
IMAGE |
|
num_hands |
GestureRecognizer יכול לזהות את מספר הידיים המקסימלי.
|
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 של התיבה התוחמת בין הידיים במסגרת הנוכחית לפריים האחרון. במצב וידאו ובמצב סטרימינג של מזהה תנועות, אם המעקב נכשל, מזהה התנועות מפעיל זיהוי ידיים. אחרת, המערכת תדלג על זיהוי היד. | 0.0 - 1.0 |
0.5 |
|
canned_gestures_classifier_options |
אפשרויות להגדרת ההתנהגות של מסווג תנועות מוכנות מראש. התנועות המוכנה מראש הן ["None", "Closed_Fist", "Open_Palm", "Pointing_Up", "Thumb_Down", "Thumb_Up", "Victory", "ILoveYou"] |
|
|
|
custom_gestures_classifier_options |
אפשרויות להגדרת ההתנהגות של מסווג התנועות בהתאמה אישית. |
|
|
|
result_callback |
הגדרה זו מאפשרת למאזין התוצאות לקבל את תוצאות הסיווג באופן אסינכרוני כשמזהה התנועות נמצא במצב שידור חי.
אפשר להשתמש רק כשמצב ריצה מוגדר ל-LIVE_STREAM |
ResultListener |
לא רלוונטי | לא רלוונטי |
דגמים
הכלי לזיהוי תנועות משתמש בחבילה של מודלים עם שתי חבילות של מודלים ארוזים מראש: חבילת מודלים של זיהוי תנועות ושל מודלים של סיווג תנועות. מודל זיהוי התנועות מזהה את הנוכחות של ידיים ושל גיאומטריה של ידיים, ומודל זיהוי התנועות מזהה תנועות על סמך גיאומטריה של הידיים.
שם הדגם | צורת הקלט | סוג הכמות | כרטיס דגם | גרסאות |
---|---|---|---|---|
HandGestureClassifier | 192 x 192, 224 x 224 | מספר ממשי (float) 16 | מידע | האחרון |
משימה זו גם תומכת בשינוי של חבילת המודלים באמצעות Model Maker. למידע נוסף על השימוש ב'יוצר המודלים' כדי להתאים אישית מודלים למשימה הזו, ראו את הדף התאמה אישית של מודלים למזהה תנועות.
חבילת דגם של ציון דרך
חבילת המודלים של נקודת האחיזה ביד מזהה את הלוקליזציה של 21 קואורדינטות של כף היד באזור זיהוי של נקודות מפתח. המודל אומן להשתמש בערך ב-30,000 תמונות אמיתיות, וגם על כמה דגמי יד סינתטיים מרונדרים שנוצרו על רקעים שונים. בהמשך תוכלו לראות את ההגדרה של 21 ציוני הדרך:
חבילת המודלים של כלי הסימון ביד מכילה מודל לזיהוי כף יד ומודל זיהוי של ציוני דרך ביד. המודל של זיהוי כף היד מבצע התאמה לשוק המקומי של אזור הידיים מתוך כל תמונת הקלט, והמודל לזיהוי ציוני דרך של ידיים מוצא את ציוני הדרך בתמונה החתוכה של היד החתוכה שהוגדרה במודל זיהוי כף היד.
מאחר שמודל זיהוי כף היד צורך יותר זמן, במצב וידאו או במצב שידור חי, זיהוי התנועות משתמש בתיבה תוחמת שהוגדרה על ידי סימני היד שזוהו במסגרת הנוכחית כדי להתאים לשוק המקומי את אזור הידיים בתמונה הבאה. כך מפחיתים את מספר הפעמים שמזהה התנועות מפעיל את המודל של זיהוי כף היד. רק כשהמודל של ציוני היד לא הצליח יותר לזהות את המספר הנדרש של נוכחות הידיים, או כשהמעקב אחרי היד נכשל, מופעל מודל זיהוי כף היד כדי לבצע התאמה מחדש של הידיים.
חבילת מודלים של סיווג תנועות
חבילת המודלים לסיווג תנועות יכולה לזהות את התנועות הידניות הבאות:
0 - Unrecognized gesture, label: Unknown
1 - Closed fist, label: Closed_Fist
2 - Open palm, label: Open_Palm
3 - Pointing up, label: Pointing_Up
4 - Thumbs down, label: Thumb_Down
5 - Thumbs up, label: Thumb_Up
6 - Victory, label: Victory
7 - Love, label: ILoveYou
אם המודל מזהה ידיים אבל לא מזהה תנועה, מזהה התנועות יחזיר את התוצאה 'ללא'. אם המודל לא מזהה ידיים, מזהה התנועות מוחזר ריק.
חבילת המודלים לסיווג תנועות מכילה צינור עיבוד נתונים של שני שלבים לרשת נוירונים עם מודל להטמעת תנועות, ואחריו מודל לסיווג התנועות. פרטים נוספים זמינים בכרטיס המודל לסיווג תנועות.
מודל הטמעת התנועה מקודד את מאפייני התמונה לווקטור של מאפיין, ומודל הסיווג הוא מסווג תנועות קל, שלוקח את וקטור התכונה כקלט. החבילה שסופקה למודל סיווג התנועות כוללת את הכלי לסיווג תנועות מוכנות מראש, שמזהה את 7 תנועות הידיים הנפוצות שהוצגו למעלה. אפשר להרחיב את חבילת המודל כך שיזהו תנועות נוספות על ידי אימון מסווג תנועות מותאם אישית. פרטים נוספים מופיעים בקטע מודלים בהתאמה אישית שבהמשך.
הכלי לזיהוי תנועות בשילוב עם מסווג תנועות מוגדר מראש ועם מסווג תנועות מותאם אישית נותן עדיפות לתנועה המותאמת אישית אם שני המסווגים מזהים את אותה תנועה בקטגוריות שלהם. אם רק מסווג תנועות אחד מזהה את התנועה, מזהה התנועות יפיק את התנועה שזוהתה באופן ישיר.
נקודות השוואה למשימות
אלה נקודות ההשוואה למשימות לגבי כל צינור עיבוד הנתונים, בהתבסס על המודלים שהוכשרו מראש למעלה. זמן האחזור הוא זמן האחזור הממוצע ב-Pixel 6 כשמשתמשים במעבד (CPU) או ב-GPU.
שם דגם | זמן אחזור של המעבד (CPU) | זמן אחזור של GPU |
---|---|---|
GestureRecognizer | 16.76 אלפיות השנייה | 20.87 אלפיות השנייה |
מודלים בהתאמה אישית
אם תרצו לשפר או לשנות את היכולות של המודלים שסופקו במשימה, תוכלו להשתמש ב-Model Maker כדי לשנות את המודלים הקיימים. מודלים בהתאמה אישית שמשתמשים ב-MediaPipe צריכים להיות בפורמט .task
, שהוא קובץ של חבילת מודלים. כדאי להשתמש ב-Model Maker כדי לשנות את המודלים שסופקו למשימה הזו לפני שיוצרים מודלים משלכם.
מידע נוסף על התאמה אישית של מודל למשימה הזו זמין במאמר התאמה אישית של המודלים לזיהוי תנועות.