মানব ক্রিয়া পূর্বাভাস

প্রকল্পের GitHub সংগ্রহশালা

skr

বিবরণ

এই প্রকল্পটি ২০২০ সালের বসন্ত সেমিস্টারে কলোরাডো স্কুল অফ মাইন্স-এ ড. ঝাং-এর Human Centered Robotics (CSCI473) ক্লাসের জন্য প্রকল্প #3 ছিল। এটি সাপোর্ট ভেক্টর মেশিন (SVM)-এর ব্যবহার মাধ্যমে রোবোটিক্সে মেশিন লার্নিং-এর একটি পরিচয় দেওয়ার জন্য ডিজাইন করা হয়েছিল। মূল প্রকল্পের ডেলিভারেবল/বিবরণ এখানে দেখা যেতে পারে।

skr

এই প্রকল্পের জন্য MSR ডেইলি অ্যাক্টিভিটি 3D ডেটাসেট (চিত্র 2), কিছু পরিবর্তনসহ, ব্যবহার করা হয়েছিল। এই ডেটাসেটে Xbox Kinetic সেন্সর থেকে সংগৃহীত এবং কঙ্কাল হিসেবে সংরক্ষিত ১৬টি মানব ক্রিয়া রয়েছে। কঙ্কাল হলো একটি ফ্রেমে রেকর্ড করা একজন মানুষের ২০টি জয়েন্টের বাস্তব জগতের (x, y, z) স্থানাঙ্কের একটি অ্যারে। এখানে একটি চিত্র আছে যা দেখায় একটি কঙ্কাল কী:

skr

মানব ক্রিয়া পূর্বাভাস অর্জন করতে, কাঁচা ডেটাকে এমন একটি আকারে উপস্থাপন করতে হয় যা একটি SVM দ্বারা প্রক্রিয়াজাত করা যায়। এই প্রকল্পের জন্য, নিম্নলিখিত উপস্থাপনাগুলি ব্যবহার করা হয়েছিল:

  • আপেক্ষিক কোণ ও দূরত্ব (RAD) উপস্থাপনা
  • জয়েন্ট অবস্থান পার্থক্যের হিস্টোগ্রাম (HJPD) উপস্থাপনা

শ্রেণিবিন্যাসের জন্য, উপস্থাপনাটি LIBSVM দ্বারা চালিত একটি SVM-এ পাঠানো হয়, যাতে এমন একটি মডেল তৈরি করা যায় যা মানব ক্রিয়া পূর্বাভাস দিতে পারে। দুটি মডেল তৈরি করা হবে, একটি 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

উপসংহার

যেহেতু উভয় নির্ভুলতাই ৫০%-এর উপরে, তাই এই প্রকল্পটি সফল ছিল। এছাড়াও, HJPD উপস্থাপনাটি এই শ্রেণিবিন্যাসের জন্য ব্যবহারে আরও নির্ভুল উপস্থাপনা বলে মনে হয়। এর ফলে, এমন একটি মডেল(গুলি) রয়েছে যা কঙ্কাল ডেটা ব্যবহার করে মানব ক্রিয়া পূর্বাভাস দেয়। এখানে থাকা মডেল(গুলি) নিখুঁত থেকে অনেক দূরে, কিন্তু এগুলি এলোমেলোতার চেয়ে ভালো। এই প্রকল্পই পরবর্তীতে Moving Pose প্রকল্পের জন্ম দিয়েছিল।

অতিরিক্ত নোট: