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

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

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

جرِّبها.

البدء

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

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

يصف هذا القسم الإمكانات والمدخلات والمخرجات والإعدادات. الخيارات لهذه المهمة.

الميزات

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

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

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

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

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

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

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

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