MediaPipe؛ إطار عمل لبناء تطبيقات مدركة للمحيط في الزمن الحقيقي
المعلوماتية >>>> برمجيات
يمكّن إطار العمل MediaPipe المطوّر من تحقيق التناغم والتوافق بين نماذج عدة، والاستعانة بنماذج متوفرة مسبقًا واستخدامها في بناء تطبيقات تعمل على منصات متعددة.
يتألف MediaPipe من ثلاثة أقسام رئيسة:
القسم الأول: هو إطار عمل متخصص بالتعامل مع الحساسات مثل الكاميرا، ويمكن تشبيهه بأنه مجلد يحتوي التعاريف الخاصة بمعظم الأجهزة؛ مما يسهل التعامل معها.
القسم الثاني: مجموعة من الأدوات التي تساعد على تحسين عمل التطبيق وتسريعه (ستُشرَح لاحقًا).
القسم الثالث: يتألف من مجموعة من نماذج الذكاء الصنعي المُعدَّة مسبقًا والتي يمكن إعادة استخدامها في التطبيق دون الحاجة إلى إعادة تطويرها من الصفر.
يعتمد MediaPipe على الـ Pipeline، لكن؛ ما هو؟
يعرف بكونه بيانًا موجّهًا (Directed Graph) مؤلفًا من عدة عناصر (components)؛ إذ يعبّر كل عنصر عن حاسوب صغير -على سبيل المثال- ومَهمته الحصول على دخل وتقديم خرج مناسب. ويمكن للمطور استخدام Components مُعدَّة مسبقًا أو تخصيصه حسب حاجته.
تتدفق البيانات في كل Graph عن طريق ما يسمى مسارات البيانات (data streams)، وتُعدّ الحزم Packets الوحدةَ الأساسية للبيانات في الـ MediaPipe، ويحمل مسار البيانات سلسلة من الحزم ولكل منها طابع زمني يميزه عن غيره يدعى timestamps.
طريقة التعرف إلى الأجسام مع MediaPipe:
يُعدّ تعرف الأجسام في الزمن الحقيقي (real-time) أحد المقومات الرئيسة في الواقع المعزز (Augemtend Reality)؛ إذ إنّ تشغيل أنموذج من نماذج تعلم الآلة القادرة على تحديد الأجسام في معدل إطارات منتظم 30FPS يتطلب مواصفات عالية وقد تكون غير ممكنة نظرًا إلى الوقت المُستغرَق في معالجة كل إطار، لذا؛ يُطبَّق التعرف إلى الأجسام عن طريق معالجة تدفقات الإطارات (الصورة 2).
يوجد مساران يعملان على التوازي:
- المسار الأول: يقرأ الإطار ويتعرف إلى الأجسام ضمنه.
- المسار الثاني: مَهمته أخذ الإطار الجديد (قبل المعالجة) ونتيجة معالجة الإطار السابق وتعقب موقع كل جسم في الإطارين، ومن ثم يُدمَج خرج المسار الأول والمسار الثاني وتُعرَض النتائج (وضع الجسم المُتعرَّف إليه ضمن مربع مثلًا وكتابة الاسم عليه كما في الصورة 1).
ويدير MediaPipe هذه العمليات كلها تلقائيًّا، وقد يحدث بعض التأخير نتيجةً للعمليات السابقة، لكن يبقى عدد الإطارات في الثانية دون تغيير؛ أي إذا رأى الشخص بواسطة الكاميرا فقط فلن يلاحظ الفرق.
Image: https://www.semanticscholar.org/paper/MediaPipe%3A-A-Framework-for-Perceiving-and-Reality-Lugaresi-Tang/5905d55db89ed9a59d611d217bd8f806b2445636
Image: https://www.semanticscholar.org/paper/MediaPipe%3A-A-Framework-for-Perceiving-and-Reality-Lugaresi-Tang/5905d55db89ed9a59d611d217bd8f806b2445636
وفي الصور الآتية مجموعة من الأفكار التي يمكن الاستفادة من MediaPipe في تنفيذها:
Image: تطبيق تعقب حركة اليد
Image: تطبيق التعرف إلى الوجوه
Image: تطبيق التعرف إلى حدود الشعر (وتغيير لونه مثلًا)
Image: تطبيق التعرف إلى الاجسام في الغرفة
تكمن الأهمية الكبرى لـ MediaPipe في قدرته على عرض نتائج العمل في الزمن الحقيقي (Real-time) بغض النظر عن نوع وحدة المعالجة المركزية (CPU) أو كرت الشاشة (GPU) -الأمر الذي يعد مشكلة نوعًا ما نظرًا إلى التنوع الهائل والأنواع المختلفة للمعالجات المتوفرة حاليًّا-؛ مما يوفر مزيدًا من الوقت للمطور للتركيزعلى الخوارزمية أو الفكرة الأساسية في التطبيق لتقديم نتائج أفضل.
يمكنكم الاطلاع على إطار العمل MediaPipe منهنا
المصدر:هنا
مصادر الصور: هنا