إلى أين وصلت تقنية تعقب حركة اليد لدى Google؟
المعلوماتية >>>> الذكاء الصنعي
أطلقت Google مؤخرًا أنموذجًا للتعرف إلى حركات اليد، وذلك باستخدام إطار العمل المفتوح المصدر MediaPipe؛ إذ يوفر هذا الأنموذج تعرفًا دقيقًا إلى الأيدي والأصابع باستخدام تقنيات تعلم الآلة (Machine Learning) لاستنتاج 21 نقطة أساسية ثلاثية الأبعاد كما سنرى لاحقًا.
Image: https://1.bp.blogspot.com/-
تحديد موقع النقاط الأساسية على يد متحركة.
يتألف إطار العمل MediaPipe من عدة نماذج تعمل بالتوافق فيما بينها مثلما التوارد (Pipeline)؛ أي عدة مسارات في الوقت نفسه، والنماذج هي:
Image: ai.googleblog.com
لنتحدث بتفصيلٍ أكثر عن النماذج السابقة:
- أنموذج BlazePalm الخاص بالتعرف إلى اليد: هو single-shot detector model؛ أي إنه أنموذج يتعامل مع الصور أو اللقطات على نحو فردي، ويُستخدَم في تطبيقات الزمن الحقيقي (real time) في الهواتف الذكية، إضافة إلى أنه يشبه أنموذجًا آخر متخصصًا بتعرُّف الوجوه وهو أنموذج BlazeFace الموجود في MediaPipe أيضًا.
يُعدّ التعرف إلى اليد من المَهمات المعقدة؛ إذ توجد عدة أحجام لليد، وهذا الأنموذج قادر على تحديد قرابة 20 حجمًا مختلفًا لليد (بالنسبة إلى الصورة أو الإطار الملتقط)، ثم إنه قادر على التعرف إلى اليد المبسوطة واليد المقبوضة (المغلقة).
وإذا أردنا المقارنة بين تقنيتَي تعرّف اليد وتعرُّف الوجه، فيُعدّ تعرف الوجه أسهلَ نسبيًّا وذلك لكثرة العلامات المميزة ضمن الوجه؛ مثل منطقة العيون والأنف والفم، في حين لا نلاحظ ذلك على نحو واضح في اليد، لذا؛ يُستعان بساعد اليد أو الجسم لتحديدها على نحو أفضل.
- أنموذج العلامات الفارقة: يعمل بعد اكتشاف اليد، ويحدد ما يصل إلى 21 نقطة رئيسة (إحداثية ) لمفاصل اليد والأصابع داخل المنطقة المربّعة المُحتوية على اليد والمُحددة في أنموذج BlazePalm، وهو قادر على تحديد موقع هذه النقاط حتى لو كانت اليد مغلقة أو يوجد تداخلٌ بين الأصابع وراحة اليد.
وللحصول على نتائج طبيعية ومنطقية؛ جُهِّز -يدويًّا- وفُهرِس قرابة 30 ألف صورة، مع 21 نقطة رئيسة في الفضاء الثلاثي الأبعاد (كما هو مُوضَّح في الصورة رقم 3)، وأُضيف البعد الثالث (العمق من القيم الرقمية في مصفوفة العمق depth map الخاصة بكل صورة). كذلك عُمِل على توليد صور لأيدٍ عالية الدقة ثلاثية الأبعاد 3D Graphics مع خلفيات متنوعة بغرض تحسين جودة التدريب.
ولما كان التدريب اعتمادًا على صور مولدة صناعيًّا لا يعطي نتائج جيدة؛ فكان لا بُدّ من الاعتماد على مخطط تدريبي يدمج مجموعات البيانات الطبيعية والمُصطنعة بعضها مع بعض.
Image: ai.googleblog.com
إن الصور الموجودة في الصف العلوي لأيدٍ طبيعية واقعية محددة بـ21 نقطة رئيسة، في حين أنّ الصور التي في الصف السفلي هي صور مُصطنَعة ثلاثية الأبعاد.
يوضح الجدول الآتي نتائجَ الخطأ حسب الطريقة التي جُمِعت مجموعات البيانات على أساسها:
معدل الخطأ (الأقل هو الأفضل)
نمط التجميع
16.1%
صور حقيقية فقط
25.7%
صور مُصطنَعة ثلاثية الأبعاد فقط
13.4%
صور حقيقية + صور مُصطنعة
- أنموذج تعرف الإيماءات وحركات اليد: بعد تحديد الهيكل العظمي لليد (بـ21 نقطة)، تُطبَّق خوارزمية لاستخراج الإيماءات منه.
أولًا؛ ننظر إلى حالة كل إصبع -على سبيل المثال ملتوية أم مستقيمة- وهي تُحدَّد بواسطة الزوايا الناتجة عن المفاصل، ثم يُربَط بين الإيماء المُستنتَج مع مجموعة من الإيماءات المحددة مسبقًا.
وتتيح هذه التقنية الواضحة والفعّالة تعرفَ الإيماءاتِ الثابتة الأساسية بجودة معقولة، ثم إنّ الأنموذج الحالي مُدربٌ على إيماءات من مختلف الثقافات.
Image: ai.googleblog.com
تعرُّف إيماءات اليد.
Image: ai.googleblog.com
تعرُّف إيماءات أخرى لليد.
التنفيذ باستخدام إطار العمل MediaPipe:
لمعرفة المزيد عن طريقة عمل MediaPipe؛ يمكنك الاطلاع على المقال الآتي هنا
والآن لنشرح المخطط الذي نُفِّذ في MediaPipe:
Image: ai.googleblog.com
مخطط العمل المُنفَّذ باستخدام MediaPipe.
بالنظر إلى المخطط السابق؛ يبدو كأنّه مُقسم إلى قسمين رئيسين:
ويمكن ملاحظة خطّين أزرقين:
إن الشرح السابق هو مجرد شرح مُبسَّط للعمليات المعقدة التي تُنفَّذ، ويذكر القائمون على هذا العمل أنّ كل نتائجهم والرماز المصدري (source code) متوفرة مجانًا ويمكن الاطلاع عليها وتعديلها وتطويرها. كذلك يأمل الفريق أن يُزاد عدد الإيماءات التي يمكن تعرّفها وأن يُوسَّع نطاقها، إضافة إلى إمكانية جعلها ديناميكية؛ أي عدم ربطها بإيماءات مُعرّفة مسبقًا.
برأيك؛ ما مدى أهمية هذا المشروع؟ وهل يمكن استخدامه في مشاريع ناجحة وتطبيقات مهمة؟
Image: ai.googleblog.com
التعرف إلى عدّة أيدٍ ضمن الصورة، وتحديد مواقع النقاط الأساسية.
المصدر:
هنا