تقدير الوضع هو مهمة استخدام نموذج ML لتقدير وضع الشخص من صورة أو مقطع فيديو عن طريق تقدير المواقع المكانية لمفاصل الجسم الرئيسية (النقاط الأساسية).
البدء
إذا كنت جديدًا على TensorFlow Lite وتعمل بنظام Android أو iOS ، فاستكشف أمثلة التطبيقات التالية التي يمكن أن تساعدك على البدء.
إذا كنت معتادًا على TensorFlow Lite APIs ، فقم بتنزيل نموذج تقدير وضع MoveNet المبدئي والملفات الداعمة.
إذا كنت ترغب في تجربة تقدير الوضع على متصفح الويب ، فراجع TensorFlow JS Demo .
نموذج الوصف
كيف تعمل
يشير تقدير الوضع إلى تقنيات رؤية الكمبيوتر التي تكتشف الأشكال البشرية في الصور ومقاطع الفيديو ، بحيث يمكن للمرء ، على سبيل المثال ، تحديد مكان ظهور مرفق شخص ما في الصورة. من المهم أن تكون على دراية بحقيقة أن تقدير الوضع هو مجرد تقديرات لمكان وجود مفاصل الجسم الرئيسية ولا يتعرف على من هو في صورة أو مقطع فيديو.
تأخذ نماذج تقدير الوضع صورة الكاميرا المعالجة كمدخلات ومخرجات معلومات حول نقاط المفاتيح. تتم فهرسة نقاط المفاتيح المكتشفة بواسطة معرف الجزء ، مع درجة ثقة بين 0.0 و 1.0. تشير درجة الثقة إلى احتمال وجود نقطة أساسية في هذا الموضع.
نحن نقدم التنفيذ المرجعي لاثنين من نماذج تقدير الوضع TensorFlow Lite:
- MoveNet: أحدث نموذج لتقدير الوضعية متوفر بنكهتين: الإضاءة والرعد. انظر للمقارنة بين هذين في القسم أدناه.
- PoseNet: نموذج تقدير الوضع من الجيل السابق الذي تم إصداره في عام 2017.
تم جدولة مفاصل الجسم المختلفة التي تم الكشف عنها بواسطة نموذج تقدير الوضع أدناه:
هوية شخصية | جزء |
---|---|
0 | الأنف |
1 | غادر العين |
2 | العين اليمنى |
3 | الأذن اليسرى |
4 | الاذن اليمنى |
5 | الكتف الأيسر |
6 | الكتف الأيمن |
7 | الكوع الأيسر |
8 | الكوع الأيمن |
9 | معصم اليد اليسرى |
10 | الرسغ الايمن |
11 | الورك الأيسر |
12 | الورك الأيمن |
13 | الركبة اليسرى |
14 | الركبة اليمنى |
15 | في الكاحل الأيسر |
16 | الكاحل الأيمن |
يتم عرض مثال للإخراج أدناه:
معايير الأداء
يتوفر MoveNet بنكهتين:
- MoveNet.Lightning أصغر وأسرع ولكن أقل دقة من إصدار Thunder. يمكن تشغيله في الوقت الفعلي على الهواتف الذكية الحديثة.
- MoveNet.hunder هو الإصدار الأكثر دقة ولكنه أيضًا أكبر وأبطأ من Lightning. إنه مفيد لحالات الاستخدام التي تتطلب دقة أعلى.
يتفوق MoveNet على PoseNet في مجموعة متنوعة من مجموعات البيانات ، لا سيما في الصور التي تحتوي على صور حركة لياقة. لذلك ، نوصي باستخدام MoveNet عبر PoseNet.
يتم إنشاء أرقام قياس الأداء باستخدام الأداة الموضحة هنا . يتم قياس أرقام الدقة (mAP) في مجموعة فرعية من مجموعة بيانات COCO حيث نقوم بتصفية كل صورة واقتصاصها لتحتوي على شخص واحد فقط.
نموذج | الحجم (ميغا بايت) | خريطة | الكمون (مللي ثانية) | ||
---|---|---|---|---|---|
بكسل 5 - وحدة المعالجة المركزية 4 خيوط | بكسل 5 - وحدة معالجة الرسومات | Raspberry Pi 4 - وحدة المعالجة المركزية 4 خيوط | |||
MoveNet.hunder (كمية FP16) | 12.6 ميجابايت | 72.0 | 155 مللي ثانية | 45 مللي ثانية | 594 مللي ثانية |
MoveNet.hunder (INT8 كمية) | 7.1 ميجابايت | 68.9 | 100 مللي ثانية | 52 مللي ثانية | 251 مللي ثانية |
MoveNet.Lightning (FP16 كميا) | 4.8 ميغا بايت | 63.0 | 60 مللي ثانية | 25 مللي ثانية | 186 مللي ثانية |
MoveNet.Lightning (كمية INT8) | 2.9 ميجا بايت | 57.4 | 52 مللي ثانية | 28 مللي ثانية | 95 مللي ثانية |
PoseNet (العمود الفقري MobileNetV1 ، FP32) | 13.3 ميجا بايت | 45.6 | 80 مللي ثانية | 40 مللي ثانية | 338 مللي ثانية |
مزيد من القراءة والموارد
- تحقق من منشور المدونة هذا لمعرفة المزيد حول تقدير الوضع باستخدام MoveNet و TensorFlow Lite.
- تحقق من منشور المدونة هذا لمعرفة المزيد حول تقدير الوضع على الويب.
- تحقق من هذا البرنامج التعليمي للتعرف على كيفية تشغيل MoveNet على Python باستخدام نموذج من TensorFlow Hub.
- يمكن لـ Coral / EdgeTPU إجراء تقدير الوضع بشكل أسرع على الأجهزة المتطورة. راجع نماذج EdgeTPU المحسّنة لمزيد من التفاصيل.
- اقرأ ورقة PoseNet هنا
تحقق أيضًا من حالات استخدام تقدير الوضع هذه.