المعلوماتية > برمجيات

MediaPipe؛ إطار عمل لبناء تطبيقات مدركة للمحيط في الزمن الحقيقي

يتطلب بناء تطبيق يدرك محيطه ويتفاعل معه تكاملَ عدد من النماذج الخاصة بتعلم الآلة Machine Learning، كذلك يجب الربط بين مجموعة من الأجهزة والحساسات، والموازنة في استخدام الموارد للحصول على أفضل جودة ممكنة، وهنا يأتي دور إطار العمل (MediaPipe) الذي طورته شركة Google للمساهمة في مواجهة هذه التحديات.

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

يتألف MediaPipe من ثلاثة أقسام رئيسة:

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

القسم الثاني: مجموعة من الأدوات التي تساعد على تحسين عمل التطبيق وتسريعه (ستُشرَح لاحقًا).

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

يعتمد MediaPipe على الـ Pipeline، لكن؛ ما هو؟

يعرف بكونه بيانًا موجّهًا (Directed Graph) مؤلفًا من عدة عناصر (components)؛ إذ يعبّر كل عنصر عن حاسوب صغير -على سبيل المثال- ومَهمته الحصول على دخل وتقديم خرج مناسب. ويمكن للمطور استخدام Components مُعدَّة مسبقًا أو تخصيصه حسب حاجته.

تتدفق البيانات في كل Graph عن طريق ما يسمى مسارات البيانات (data streams)، وتُعدّ الحزم Packets الوحدةَ الأساسية للبيانات في الـ MediaPipe، ويحمل مسار البيانات سلسلة من الحزم ولكل منها طابع زمني يميزه عن غيره يدعى timestamps.

طريقة التعرف إلى الأجسام مع MediaPipe:

يُعدّ تعرف الأجسام في الزمن الحقيقي (real-time) أحد المقومات الرئيسة في الواقع المعزز (Augemtend Reality)؛ إذ إنّ تشغيل أنموذج من نماذج تعلم الآلة القادرة على تحديد الأجسام في معدل إطارات منتظم 30FPS يتطلب مواصفات عالية وقد تكون غير ممكنة نظرًا إلى الوقت المُستغرَق في معالجة كل إطار، لذا؛ يُطبَّق التعرف إلى الأجسام عن طريق معالجة تدفقات الإطارات (الصورة 2).

يوجد مساران يعملان على التوازي:

- المسار الأول: يقرأ الإطار ويتعرف إلى الأجسام ضمنه. 

- المسار الثاني: مَهمته أخذ الإطار الجديد (قبل المعالجة) ونتيجة معالجة الإطار السابق وتعقب موقع كل جسم في الإطارين، ومن ثم يُدمَج خرج المسار الأول والمسار الثاني وتُعرَض النتائج (وضع الجسم المُتعرَّف إليه ضمن مربع مثلًا وكتابة الاسم عليه كما في الصورة 1).

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

وفي الصور الآتية مجموعة من الأفكار التي يمكن الاستفادة من MediaPipe في تنفيذها:

تكمن الأهمية الكبرى لـ MediaPipe في قدرته على عرض نتائج العمل في الزمن الحقيقي (Real-time) بغض النظر عن نوع وحدة المعالجة المركزية (CPU) أو كرت الشاشة (GPU) -الأمر الذي يعد مشكلة نوعًا ما نظرًا إلى التنوع الهائل والأنواع المختلفة للمعالجات المتوفرة حاليًّا-؛ مما يوفر مزيدًا من الوقت للمطور للتركيزعلى الخوارزمية أو الفكرة الأساسية في التطبيق لتقديم نتائج أفضل.

يمكنكم الاطلاع على إطار العمل MediaPipe منهنا

المصدر:هنا

مصادر الصور: هنا