تتيح لك مهمة MediaPipe Gesture Recognizer التعرّف على إيماءات اليد في الوقت الفعلي، و توفّر نتائج إيماءات اليد التي تم التعرّف عليها بالإضافة إلى معالم الأيدي التي تم رصدها. يمكنك استخدام هذه المهمة للتعرّف على إيماءات يد معيّنة من أحد المستخدِمين، وتشغيل ميزات التطبيق التي تتوافق مع هذه الإيماءات.
تعمل هذه المهمة على بيانات الصور باستخدام نموذج تعلُّم الآلة، وتستخدِم إما بيانات ثابتة أو بثًا مستمرًا. تُخرج المهمة معالم اليد في إحداثيات الصورة ومعالم اليد في إحداثيات العالم واتجاه اليد (اليد اليمنى/اليسرى) وفئات إيماءات اليد لعدة أيدٍ.
البدء
ابدأ استخدام هذه المهمة باتّباع أحد أدلة التنفيذ هذه ل منصّتك المستهدفة. ترشدك هذه الأدلة الخاصة بالنظام الأساسي إلى تنفيذ أساسي لهذه المهمة باستخدام نموذج مقترَح، كما تقدّم أمثلة على الرمز البرمجي مع خيارات الإعداد المقترَحة:
- Android - مثال على رمز برمجي
- Python - مثال على رمز
- الويب - مثال على الرمز البرمجي - الدليل
تفاصيل المهمة
يصف هذا القسم ميزات هذه المهمة ومدخلاتها ومخرجاتها وخيارات الضبط.
الميزات
- معالجة الصور المُدخلة: تشمل المعالجة تدوير الصور وتغيير حجمها وتسويتها وتحويل مساحة الألوان.
- الحدّ الأدنى للنتيجة: فلترة النتائج استنادًا إلى نتائج التوقّعات
- القائمة المسموح بها والقائمة المرفوضة للتصنيفات: حدِّد فئات الإيماءات التي يتعرّف عليها النموذج.
مدخلات المهام | نتائج المهام |
---|---|
يقبل معرّف الإيماءات إدخال أحد أنواع البيانات التالية:
|
يعرض "أداة التعرّف على الإيماءات" النتائج التالية:
|
خيارات الإعدادات
تتضمّن هذه المهمة خيارات الضبط التالية:
اسم الخيار | الوصف | نطاق القيمة | القيمة التلقائية | |
---|---|---|---|---|
running_mode |
لضبط وضع التشغيل للمهمة هناك ثلاثة
أوضاع: IMAGE: وضع الإدخالات باستخدام صورة واحدة. VIDEO: وضع الإطارات التي تم فك ترميزها في الفيديو 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 | info | الأحدث |
تتيح هذه المهمة أيضًا تعديل حِزمة النموذج باستخدام "أداة إنشاء النماذج". لمزيد من المعلومات عن استخدام Model Maker لتخصيص النماذج لهذه المهمة، يُرجى الاطّلاع على صفحة تخصيص النماذج لميزة "التعرّف على الإيماءات".
حزمة نماذج المعالم اليدوية
ترصد حِزمة نماذج معالم اليد مواقع نقاط 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) أو وحدة معالجة الرسومات (GPU).
اسم النموذج | وقت استجابة وحدة المعالجة المركزية | وقت استجابة وحدة معالجة الرسومات |
---|---|---|
GestureRecognizer | 16.76 ملي ثانية | 20.87 ملي ثانية |
النماذج المخصّصة
إذا كنت تريد تحسين إمكانات النماذج المقدَّمة في هذه
المهمّة أو تغييرها، يمكنك استخدام "أداة إنشاء النماذج" لتعديل النماذج الحالية. يجب أن تكون النماذج المخصّصة المستخدَمة
مع MediaPipe بتنسيق .task
، وهو ملف حِزمة نموذج. ننصحك باستخدام "أداة إنشاء النماذج" لتعديل النماذج المقدَّمة لهذه المهمة قبل إنشاء نموذجك الخاص.
لمزيد من المعلومات عن تخصيص نموذج لهذه المهمة، اطّلِع على مقالة تخصيص النماذج لميزة "التعرّف على الإيماءات".