توقع أفعال الإنسان

التفاصيل
كان هذا المشروع هو المشروع رقم 3 لمقرر الروبوتات المتمحورة حول الإنسان (CSCI473) للدكتور زانغ في كلية كولورادو للمعادن خلال فصل الربيع 2020. تم تصميمه لتقديم مقدمة لتعلم الآلة في الروبوتات من خلال استخدام آلات الدعم الناقل (SVM). يمكن الاطلاع على مخرجات/وصف المشروع الأصلي هنا.

لهذا المشروع تم استخدام مجموعة بيانات النشاط اليومي 3D من MSR (الشكل 2)، مع بعض التعديلات. تحتوي هذه المجموعة على 16 نشاطًا بشريًا تم جمعها من مستشعر Xbox Kinetic وتخزينها كهيكليات عظمية. الهيكليات هي مصفوفة من إحداثيات العالم الحقيقي (x, y, z) لـ 20 مفصلًا للإنسان مسجلة في إطار واحد. إليكم صورة توضح ما هي الهيكل العظمي:

لتحقيق توقع أفعال الإنسان، يجب تمثيل البيانات الخام بطريقة يمكن معالجتها بواسطة SVM. لهذا المشروع، تم استخدام التمثيلات التالية:
- تمثيل الزوايا والمسافات النسبية (RAD)
- تمثيل مخطط الفروقات في مواضع المفاصل (HJPD)
للتصنيف، يتم إرسال التمثيل(ات) إلى SVM، المدعومة من قبل LIBSVM، لإنشاء نموذج يمكنه توقع أفعال الإنسان. سيتم إنشاء نموذجين، أحدهما يستخدم RAD والآخر يستخدم HJPD. الهدف هو جعل هذه النماذج دقيقة قدر الإمكان ومعرفة أي تمثيل يقدم الأداء الأفضل.
مع معرفة ذلك، إليكم نظرة عامة على ما يفعله الكود:
- تحميل البيانات الخام من مجموعة البيانات المعدلة
- إزالة أي بيانات شاذة أو خاطئة من مجموعة البيانات المحملة
- تحويل البيانات الخام النهائية إلى تمثيلات RAD و HJPD
- يتم إرسال التمثيلات إلى SVM(s) المضبوطة لتوليد نموذجين
- يتم بعد ذلك تغذية النموذجين ببيانات اختبار خام ويتم إنشاء مصفوفة ارتباك لقياس أداء النموذج(ات).
النتائج
بعد تشغيل الكود وضبط النماذج بأفضل ما يمكنني، إليكم مصفوفة الارتباك النهائية لكل من نماذج RAD و HJPD:
Representation: RAD
Accuracy: 62.5%
LIBSVM Classification 8.0 10.0 12.0 13.0 15.0 16.0
Actual Activity Number
8.0 8 0 0 0 0 0
10.0 1 5 0 0 1 1
12.0 0 1 1 0 3 3
13.0 0 0 0 6 1 1
15.0 0 0 0 1 5 2
16.0 0 0 0 0 3 5
Representation: HJPD
Accuracy: 70.83%
LIBSVM Classification 8.0 10.0 12.0 13.0 15.0 16.0
Actual Activity Number
8.0 7 1 0 0 0 0
10.0 1 5 0 0 0 2
12.0 0 0 7 0 1 0
13.0 2 0 1 5 0 0
15.0 0 0 0 0 7 1
16.0 0 2 0 0 3 3
الخلاصة
نظرًا لأن كلا الدقتين تتجاوزان 50٪، فقد كان هذا المشروع ناجحًا. كما يبدو أن تمثيل HJPD هو التمثيل الأكثر دقة للاستخدام في هذه التصنيفات. وبالتالي، هناك نموذج(ات) يتوقعون أفعال الإنسان باستخدام بيانات الهيكل العظمي. النماذج هنا بعيدة عن الكمال لكنها أفضل من العشوائية. هذا المشروع هو ما أدى إلى نشوء مشروع Moving Pose لاحقًا.
ملاحظات إضافية:
- تم اختبار هذا المشروع على نسخة بايثون 3.8.13
- لهذا المشروع، تم استخدام مجموعة بيانات MDA3 الكاملة ومجموعة بيانات MDA3 المعدلة. تحتوي مجموعة MDA3 المعدلة فقط على الأنشطة 8، 10، 12، 13، 15، و16. كما أن النسخة المعدلة تحتوي على بعض نقاط البيانات “المتلفّة” بينما لا تحتوي المجموعة الكاملة على ذلك.
- تمثيل الزمكان للأشخاص بناءً على بيانات هيكلية ثلاثية الأبعاد: مراجعة
- YouTube: كيف يعمل مستشعر العمق Kinect في دقيقتين
- Medium: فهم مفاصل Kinect V2 ونظام الإحداثيات
- صفحة ويكيبيديا لـ Kinect
- Jameco Xbox Kinect
- معلومات حول SVM(s) و LibSVM: cjlin libsvm, libsvm pypi page, & libsvm github
- منطق ووثائق SVM & LIBSVM: cjlin guide paper & cjlin libsvmtools datasets
- معلومات حول مجموعة البيانات المستخدمة/المعدلة