تتيح لك مهمة أداة التعرّف على إيماءة MediaPipe التعرّف على إيماءات اليد في الوقت الفعلي، وتقدِّم نتائج إيماءات اليد التي تم التعرّف عليها إلى جانب معالم الأيدي المكتشفة. يمكنك استخدام هذه المهمة للتعرف على إيماءات يد معينة من المستخدم، واستدعاء ميزات التطبيق التي تتوافق مع تلك الإيماءات.
تعمل هذه المهمة على بيانات الصور باستخدام نموذج تعلُّم الآلة، وتقبل إما البيانات الثابتة أو البث المستمر. تعرض المهمة معالم باليد في إحداثيات الصور، ومعالم اليد في الإحداثيات العالمية، واليد (اليد اليسرى/اليمنى)، وفئات إيماءة اليد للأيدي المتعددة.
البدء
ابدأ في استخدام هذه المهمة باتباع أحد أدلة التنفيذ هذه للنظام الأساسي المستهدف. ترشدك هذه الأدلة الخاصة بنظام التشغيل خلال التنفيذ الأساسي لهذه المهمة، باستخدام نموذج مقترح، وتقدم أمثلة على التعليمات البرمجية مع خيارات التهيئة المقترحة:
- Android - مثال على الرمز البرمجي - Guide
- Python - مثال على الرمز البرمجي - Guide
- الويب - مثال على الرمز - Guide
تفاصيل المهمة
يصف هذا القسم الإمكانات والمدخلات والمخرجات وخيارات الضبط لهذه المهمة.
الميزات
- معالجة إدخال الصور: تشمل المعالجة تدوير الصور وتغيير حجمها وتسويتها وتحويل مساحة اللون.
- الحد الأدنى للنتيجة - فلترة النتائج استنادًا إلى نتائج التوقعات.
- قائمة التصنيفات المسموح بها وقائمة الحظر: حدِّد فئات الإيماءات التي يتعرّف عليها النموذج.
إدخالات المهام | نتائج المهام |
---|---|
تقبل "أداة التعرّف على الإيماءات" إدخالاً من أحد أنواع البيانات التالية:
|
تقدِّم "أداة التعرّف على الإيماءات" النتائج التالية:
|
خيارات الإعدادات
تتضمن هذه المهمة خيارات الإعداد التالية:
اسم الخيار | الوصف | نطاق القيمة | القيمة التلقائية | |
---|---|---|---|---|
running_mode |
تحدِّد هذه السياسة وضع التشغيل للمهمة. هناك ثلاثة
أوضاع: IMAGE: وضع إدخالات الصورة الفردية. فيديو: وضع لقطات الفيديو التي تم فك ترميزها البث المباشر: وضع بث مباشر لبيانات الإدخال، مثل الكاميرا. في هذا الوضع، يجب استدعاء resultsListener لإعداد أداة معالجة الصوت لكي تتلقى النتائج بشكل غير متزامن. |
{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 |
تمثّل هذه السمة الحد الأدنى لدرجة الثقة ليتم اعتبار تتبُّع اليد ناجحًا. هذا هو الحدّ الأدنى لوحدات وحدات القياس بين الأيدي في الإطار الحالي والإطار الأخير. في وضع الفيديو ووضع البث في "أداة التعرّف على الإيماءات"، إذا تعذّر تتبُّع الإيماءات، ستعمل هذه الميزة على تفعيل ميزة رصد اليد. وبخلاف ذلك، يتم تخطي رصد اليدين. | 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 × 192، 224 × 224 | العدد العائم 16 | معلومات | الأحدث |
تدعم هذه المهمة أيضًا تعديل حزمة النماذج باستخدام مصمم النماذج. للحصول على مزيد من المعلومات حول استخدام "مصمم النماذج" لتخصيص النماذج لهذه المهمة، راجع صفحة تخصيص النماذج لأداة التعرّف على الإيماءات.
مجموعة نموذج للمعلَم اليدوي
ترصد حزمة نموذج لليد المعلَمة أقلمة النقاط الرئيسية لـ 21 إحداثيًا في مناطق اليد التي تم رصدها. تم تدريب النموذج على ما يقرب من 30 ألف صورة من الواقع، بالإضافة إلى العديد من نماذج اليد الاصطناعية المعروضة على خلفيات مختلفة. انظر تعريف المعالم الـ 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
إذا اكتشف النموذج الأيدي ولكنه لم يتعرف على إيماءة، يعرض أداة التعرف على الإيماءات نتيجة "بدون". وإذا لم يرصد النموذج الأيدي، فسترجع أداة التعرف على الإيماءات فارغة.
تحتوي حزمة نموذج تصنيف الإيماءات على مسار من مخطَّطات الشبكة العصبونية مع نموذج تضمين الإيماءات متبوعًا بنموذج لتصنيف الإيماءات. يمكنك الاطّلاع على مزيد من التفاصيل في بطاقة نموذج تصنيف الإيماءات.
يعمل نموذج تضمين الإيماءات على ترميز ميزات الصورة في متجه للميزات، ونموذج التصنيف هو مصنِّف خفيف للإيماءة يأخذ الخط المتجه للميزة كمدخلات. تحتوي حزمة نموذج تصنيف الإيماءات المقدّمة على مصنِّف الإيماءات الجاهزة، الذي يرصد الإيماءات اليدوية السبع الشائعة المقدّمة أعلاه. يمكنك توسيع حزمة النموذج للتعرف على المزيد من الإيماءات من خلال تدريب مصنف الإيماءات المخصص. يمكنك الاطّلاع على مزيد من التفاصيل في قسم النماذج المخصّصة التالي.
ميزة "التعرّف على الإيماءات" مع كل من مصنِّف الإيماءات الجاهزة ومصنّف الإيماءات المخصّص يفضّل الإيماءة المخصّصة إذا تعرّف كلا المصنِّفَين على الإيماءة نفسها في فئاتهما. إذا تتعرّف أداة تصنيف الإيماءات واحدة فقط على الإيماءة، ستُخرج "أداة التعرّف على الإيماءات" الإيماءة التي تم التعرّف عليها مباشرةً.
مقاييس أداء المهام
إليك مقاييس أداء المهمة لمسار العملية بأكمله بناءً على النماذج المدربة مسبقًا أعلاه. وتكون نتيجة وقت الاستجابة هي متوسط وقت الاستجابة على هاتف Pixel 6 باستخدام وحدة المعالجة المركزية (CPU)/وحدة معالجة الرسومات.
اسم النموذج | وقت استجابة وحدة المعالجة المركزية (CPU) | وقت استجابة وحدة معالجة الرسومات |
---|---|---|
GestureRecognizer | 16.76 ملي ثانية | 20.87 ملي ثانية |
النماذج المخصَّصة
إذا كنت ترغب في تحسين أو تغيير إمكانات النماذج المقدمة في هذه المهمة، يمكنك استخدام مصمم النماذج لتعديل النماذج الحالية. يجب أن تكون النماذج المخصّصة المستخدَمة مع MediaPipe بالتنسيق .task
، وهو ملف حزمة نموذج. ينبغي أن تفكر في استخدام مصمم النماذج لتعديل النماذج المقدمة لهذه المهمة قبل إنشاء النماذج الخاصة بك.
للمزيد من المعلومات حول تخصيص نموذج لهذه المهمة، يُرجى الاطّلاع على تخصيص النماذج لميزة التعرّف على الإيماءات.