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

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

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

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

جرِّبها الآن

البدء

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

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

يوضّح هذا القسم إمكانات هذه المهمة ومدخلاتها ومخرجاتها وخيارات الضبط.

الميزات

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

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

تتضمّن هذه المهمة خيارات الإعداد التالية:

اسم الخيار الوصف نطاق القيم القيمة التلقائية
running_mode تضبط هذه السمة وضع التشغيل للمهمة. تتوفّر ثلاثة أوضاع:

الصورة: الوضع المخصّص لإدخال صورة واحدة.

الفيديو: وضع الإطارات التي تم فك ترميزها في الفيديو

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 الحد الأدنى لنتيجة الثقة في نموذج رصد العلامات الفارقة في اليد. في وضع "الفيديو" ووضع "البث المباشر" في Gesture Recognizer، إذا كانت نتيجة الثقة في رصد اليد من نموذج "المعالم الرئيسية لليد" أقل من هذا الحدّ، سيتم تفعيل نموذج رصد راحة اليد. في ما عدا ذلك، يتم استخدام خوارزمية بسيطة لتتبّع اليد لتحديد موضع اليدين من أجل رصد المعالم اللاحق. 0.0 - 1.0 0.5
min_tracking_confidence تمثّل هذه السمة الحدّ الأدنى لدرجة الثقة التي يجب تحقيقها لكي يُعدّ تتبُّع اليد ناجحًا. هذا هو الحد الأدنى لمؤشر IoU الخاص بالمربّع المحيط بين اليدين في الإطار الحالي والإطار الأخير. في "وضع الفيديو" و"وضع البث" في Gesture Recognizer، إذا تعذّر التتبُّع، سيؤدي ذلك إلى تفعيل ميزة رصد اليد. وفي ما عدا ذلك، يتم تخطّي عملية رصد اليد. 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 لا ينطبق لا ينطبق

    النماذج

    تستخدم أداة Gesture Recognizer حِزمة نماذج تتضمّن حِزمتَين مُعدّتَين مسبقًا: حِزمة نماذج لتحديد معالم اليد وحِزمة نماذج لتصنيف الإيماءات. يرصد نموذج المعالم وجود اليدين وشكل اليد، بينما يتعرّف نموذج التعرّف على الإيماءات على الإيماءات استنادًا إلى شكل اليد.

    اسم النموذج شكل الإدخال نوع التكميم بطاقة النموذج الإصدارات
    HandGestureClassifier ‫192 × 192 و224 × 224 float 16 معلومات الأحدث

    تتيح هذه المهمة أيضًا تعديل حِزمة النموذج باستخدام أداة Model Maker. لمزيد من المعلومات حول استخدام أداة Model Maker لتخصيص النماذج لهذه المهمة، يُرجى الاطّلاع على صفحة تخصيص النماذج لأداة Gesture Recognizer.

    حزمة نموذج معالم اليد

    ترصد حزمة نموذج معالم اليد موضع النقاط الأساسية لـ 21 إحداثية لمفاصل اليد ضمن مناطق اليد المرصودة. تم تدريب النموذج على حوالي 30, 000 صورة من العالم الحقيقي، بالإضافة إلى العديد من نماذج الأيدي الاصطناعية التي تم عرضها على خلفيات مختلفة. يمكنك الاطّلاع أدناه على تعريف المعالم الـ 21:

    رموز لنقاط محدّدة في معالم اليد

    تحتوي حزمة نموذج "رصد موضع اليد" على نموذج رصد كف اليد ونموذج رصد مواضع اليد. يحدّد نموذج رصد الكف موضع اليدين من صورة الإدخال الكاملة، بينما يرصد نموذج رصد نقاط اليد نقاط اليد على صورة اليد التي تم اقتصاصها والمحدّدة بواسطة نموذج رصد الكف.

    بما أنّ نموذج رصد راحة اليد يستغرق وقتًا أطول بكثير، يستخدم Gesture Recognizer المربّع المحيط الذي تحدّده العلامات البارزة التي تم رصدها في اليد في الإطار الحالي لتحديد موضع اليد في الإطار التالي، وذلك في &quot;وضع الفيديو&quot; أو &quot;وضع البث المباشر&quot;. يقلّل ذلك من عدد المرات التي يتم فيها تشغيل نموذج رصد راحة اليد في "أداة التعرّف على الإيماءات". عندما يتعذّر على نموذج &quot;نقاط اليد&quot; تحديد العدد المطلوب من الأيدي، أو عندما يتعذّر تتبُّع اليد، يتم استدعاء نموذج &quot;رصد الكف&quot; لإعادة تحديد موقع الأيدي.

    حزمة نموذج تصنيف الإيماءات

    يمكن أن يتعرّف حِزم نماذج تصنيف الإيماءات على إيماءات اليد الشائعة التالية:

    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 إيماءات شائعة باليد تم توضيحها أعلاه. يمكنك توسيع حزمة النموذج للتعرّف على المزيد من الإيماءات من خلال تدريب مصنّف إيماءات مخصّص. يمكنك الاطّلاع على مزيد من التفاصيل في قسم النماذج المخصّصة أدناه.

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

    مقاييس أداء المهام

    في ما يلي مقاييس أداء المهام لخط الإنتاج بأكمله استنادًا إلى النماذج المدرَّبة مسبقًا أعلاه. نتيجة وقت الاستجابة هي متوسط وقت الاستجابة على هاتف Pixel 6 باستخدام وحدة المعالجة المركزية (CPU) أو وحدة معالجة الرسومات (GPU).

    اسم النموذج وقت استجابة وحدة المعالجة المركزية وقت استجابة وحدة معالجة الرسومات
    GestureRecognizer ‫16.76 ملي ثانية ‫20.87 ملي ثانية

    النماذج المخصّصة

    إذا أردت تحسين إمكانات النماذج المقدَّمة في هذه المهمة أو تغييرها، يمكنك استخدام أداة Model Maker لتعديل النماذج الحالية. يجب أن تكون النماذج المخصّصة المستخدَمة مع MediaPipe بتنسيق .task، وهو ملف حزمة نماذج. ننصحك باستخدام أداة Model Maker لتعديل النماذج المتوفّرة لهذه المهمة قبل إنشاء نموذجك الخاص.

    لمزيد من المعلومات حول تخصيص نموذج لهذه المهمة، يُرجى الاطّلاع على تخصيص النماذج في Gesture Recognizer.