دليل مهمة التعرّف على الإيماءات

يد تُشير إلى إبهام مرفوع، وقد حدّد النموذج أنّها إشارة إبهام مرفوع
بنسبة ثقة
تبلغ% 63

تتيح لك مهمة MediaPipe Gesture Recognizer التعرّف على إيماءات اليد في الوقت الفعلي، و توفّر نتائج إيماءات اليد التي تم التعرّف عليها بالإضافة إلى معالم الأيدي التي تم رصدها. يمكنك استخدام هذه المهمة للتعرّف على إيماءات يد معيّنة من أحد المستخدِمين، وتشغيل ميزات التطبيق التي تتوافق مع هذه الإيماءات.

تعمل هذه المهمة على بيانات الصور باستخدام نموذج تعلُّم الآلة، وتستخدِم إما بيانات ثابتة أو بثًا مستمرًا. تُخرج المهمة معالم اليد في إحداثيات الصورة ومعالم اليد في إحداثيات العالم واتجاه اليد (اليد اليمنى/اليسرى) وفئات إيماءات اليد لعدة أيدٍ.

ننصحك بتجربة الميزة.

البدء

ابدأ استخدام هذه المهمة باتّباع أحد أدلة التنفيذ هذه ل منصّتك المستهدفة. ترشدك هذه الأدلة الخاصة بالنظام الأساسي إلى تنفيذ أساسي لهذه المهمة باستخدام نموذج مقترَح، كما تقدّم أمثلة على الرمز البرمجي مع خيارات الإعداد المقترَحة:

تفاصيل المهمة

يصف هذا القسم ميزات هذه المهمة ومدخلاتها ومخرجاتها وخيارات الضبط.

الميزات

  • معالجة الصور المُدخلة: تشمل المعالجة تدوير الصور وتغيير حجمها وتسويتها وتحويل مساحة الألوان.
  • الحدّ الأدنى للنتيجة: فلترة النتائج استنادًا إلى نتائج التوقّعات
  • القائمة المسموح بها والقائمة المرفوضة للتصنيفات: حدِّد فئات الإيماءات التي يتعرّف عليها النموذج.
مدخلات المهام نتائج المهام
يقبل معرّف الإيماءات إدخال أحد أنواع البيانات التالية:
  • الصور الثابتة
  • إطارات الفيديو التي تم فك ترميزها
  • خلاصة فيديو مباشر
يعرض "أداة التعرّف على الإيماءات" النتائج التالية:
  • فئات إيماءات اليد
  • استخدام إحدى اليدين لليدين المرصودة
  • معالم الأيدي التي تم رصدها في إحداثيات الصورة
  • معالم الأيدي التي تم رصدها بالإحداثيات العالمية

خيارات الإعدادات

تتضمّن هذه المهمة خيارات الضبط التالية:

اسم الخيار الوصف نطاق القيمة القيمة التلقائية
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"]
  • اللغة المعروضة للأسماء: اللغة المستخدَمة للأسماء المعروضة المحدّدة من خلال البيانات الوصفية لنموذج TFLite، إن توفّرت.
  • الحد الأقصى للنتائج: الحد الأقصى لعدد نتائج التصنيف التي تحقّق أعلى الدرجات المطلوب عرضها إذا كان < 0، سيتم عرض جميع النتائج المتاحة.
  • الحدّ الأدنى للنتيجة: النتيجة التي يتمّ رفض النتائج التي تقلّ عنها. في حال ضبطه على 0، سيتم عرض جميع النتائج المتاحة.
  • القائمة المسموح بها للفئات: القائمة المسموح بها لأسماء الفئات إذا لم تكن فارغة، ستتم فلترة نتائج التصنيف التي لا تندرج فئتها ضمن هذه المجموعة. يكون هذا الخيار متناقضًا مع قائمة المواقع الإلكترونية المرفوضة.
  • قائمة حظر الفئات: قائمة حظر أسماء الفئات إذا لم تكن فارغة، ستتم فلترة نتائج التصنيف التي تكون فئتها في هذه المجموعة. هذه الميزة متعارضة مع القائمة المسموح بها.
    • لغة عرض الأسماء: any string
    • الحد الأقصى للنتائج: any integer
    • الحدّ الأدنى للنتيجة: 0.0-1.0
    • قائمة الفئات المسموح بها: vector of strings
    • قائمة حظر الفئات: vector of strings
    • لغة عرض الأسماء: "en"
    • الحد الأقصى للنتائج: -1
    • الحدّ الأدنى للنتيجة: 0
    • القائمة المسموح بها للفئات: فارغة
    • قائمة حظر الفئات: فارغة
    custom_gestures_classifier_options خيارات ضبط سلوك مصنّف الإيماءات المخصّصة
  • اللغة المعروضة للأسماء: اللغة المستخدَمة للأسماء المعروضة المحدّدة من خلال البيانات الوصفية لنموذج TFLite، إن توفّرت.
  • الحد الأقصى للنتائج: الحد الأقصى لعدد نتائج التصنيف التي تحقّق أعلى الدرجات المطلوب عرضها إذا كان < 0، سيتم عرض جميع النتائج المتاحة.
  • الحدّ الأدنى للنتيجة: النتيجة التي يتمّ رفض النتائج التي تقلّ عنها. في حال ضبطه على 0، سيتم عرض جميع النتائج المتاحة.
  • القائمة المسموح بها للفئات: القائمة المسموح بها لأسماء الفئات إذا لم تكن فارغة، ستتم فلترة نتائج التصنيف التي لا تندرج فئتها ضمن هذه المجموعة. يكون هذا الخيار متناقضًا مع قائمة المواقع الإلكترونية المرفوضة.
  • قائمة حظر الفئات: قائمة حظر أسماء الفئات إذا لم تكن فارغة، ستتم فلترة نتائج التصنيف التي تكون فئتها في هذه المجموعة. هذه الميزة متعارضة مع القائمة المسموح بها.
    • لغة عرض الأسماء: any string
    • الحد الأقصى للنتائج: any integer
    • الحدّ الأدنى للنتيجة: 0.0-1.0
    • قائمة الفئات المسموح بها: vector of strings
    • قائمة حظر الفئات: vector of strings
    • لغة عرض الأسماء: "en"
    • الحد الأقصى للنتائج: -1
    • الحدّ الأدنى للنتيجة: 0
    • القائمة المسموح بها للفئات: فارغة
    • قائمة حظر الفئات: فارغة
    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، وهو ملف حِزمة نموذج. ننصحك باستخدام "أداة إنشاء النماذج" لتعديل النماذج المقدَّمة لهذه المهمة قبل إنشاء نموذجك الخاص.

    لمزيد من المعلومات عن تخصيص نموذج لهذه المهمة، اطّلِع على مقالة تخصيص النماذج لميزة "التعرّف على الإيماءات".