پیش‌بینی کنش‌های انسانی

مخزن گیت‌هاب پروژه

skr

جزئیات

این پروژه، پروژه شماره 3 برای کلاس «رباتیک انسان‌محور» دکتر ژانگ (CSCI473) در مدرسه معادن کلرادو در طول ترم بهار 2020 بود. این پروژه برای ارائه یک مقدمه بر یادگیری ماشین در رباتیک از طریق استفاده از ماشین‌های بردار پشتیبان (SVM) طراحی شده بود. تحویل‌ها/توضیحات اصلی پروژه را می‌توان اینجا مشاهده کرد.

skr

برای این پروژه، مجموعه‌داده فعالیت روزانه 3D MSR (شکل 2)، با برخی تغییرات، استفاده شد. این مجموعه‌داده شامل 16 فعالیت انسانی است که از یک حسگر Xbox Kinetic گردآوری و به‌صورت اسکلت‌ها ذخیره شده‌اند. اسکلت‌ها یک آرایه از مختصات دنیای واقعیِ (x, y, z) برای 20 مفصل یک انسان هستند که در یک فریم ثبت شده‌اند. در اینجا شکلی آمده است که نشان می‌دهد یک اسکلت چیست:

skr

برای دستیابی به پیش‌بینی کنش انسانی، داده‌های خام باید در قالبی ارائه شوند که توسط یک SVM قابل پردازش باشد. برای این پروژه، بازنمایی‌های زیر استفاده شدند:

  • بازنمایی زاویه‌ها و فاصله‌های نسبی (RAD)
  • بازنمایی هیستوگرام اختلاف‌های موقعیت مفصل‌ها (HJPD)

برای طبقه‌بندی، بازنمایی(ها) به یک SVM، که توسط LIBSVM پشتیبانی می‌شود، فرستاده می‌شود تا مدلی ایجاد شود که بتواند کنش‌های انسانی را پیش‌بینی کند. دو مدل ساخته خواهد شد، یکی با استفاده از RAD و دیگری با استفاده از HJPD. هدف این است که این مدل‌ها تا حد امکان دقیق باشند و ببینیم کدام بازنمایی بهترین عملکرد را دارد.

با دانستن این موضوع، در اینجا یک نمای کلی از کاری که کد انجام می‌دهد آمده است:

  1. بارگذاری داده‌های خام از مجموعه‌داده تغییر‌یافته
  2. حذف هرگونه داده پرت و/یا خطا از مجموعه‌داده بارگذاری‌شده
  3. تبدیل داده‌های خام نهایی به بازنمایی‌های RAD و HJPD
  4. بازنمایی‌ها به SVM(های) تنظیم‌شده فرستاده می‌شوند تا دو مدل تولید شود
  5. سپس دو مدل با داده‌های خامِ آزمون تغذیه می‌شوند و یک ماتریس درهم‌ریختگی تولید می‌شود تا میزان عملکرد مدل(ها) اندازه‌گیری شود.

نتایج

پس از اجرای کد و تنظیم مدل‌ها تا بهترین توانایی‌ام، در اینجا ماتریس درهم‌ریختگی نهایی برای هر دو مدل 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 جان بخشید.

یادداشت‌های اضافی: