मानव क्रियाओं की भविष्यवाणी

प्रोजेक्ट का GitHub रिपॉजिटरी

skr

विवरण

यह प्रोजेक्ट 2020 वसंत सेमेस्टर के दौरान कोलोराडो स्कूल ऑफ माइन्स में डॉ. झांग की ह्यूमन सेंटर्ड रोबोटिक्स (CSCI473) कक्षा के लिए प्रोजेक्ट #3 था। इसे सपोर्ट वेक्टर मशीनों (SVM) के उपयोग के माध्यम से रोबोटिक्स में मशीन लर्निंग का परिचय प्रदान करने के लिए डिज़ाइन किया गया था। मूल प्रोजेक्ट विवरण/निर्देशन को यहाँ देखा जा सकता है।

skr

इस प्रोजेक्ट के लिए MSR डेली एक्टिविटी 3D डेटासेट (चित्र 2), कुछ संशोधनों के साथ, उपयोग किया गया था। इस डेटासेट में Xbox Kinetic सेंसर से एकत्रित और कंकालों के रूप में संग्रहीत 16 मानव गतिविधियाँ शामिल हैं। कंकाल एक मानव के 20 जोड़ो के वास्तविक-विश्व (x, y, z) निर्देशांकों की एक सरणी है, जिसे एक फ्रेम में रिकॉर्ड किया गया है। यहाँ एक चित्र है जो दिखाता है कि कंकाल क्या होता है:

skr

मानव क्रिया की भविष्यवाणी प्राप्त करने के लिए, कच्चे डेटा को एक ऐसे रूप में निरूपित किया जाना चाहिए जिसे SVM द्वारा संसाधित किया जा सके। इस प्रोजेक्ट के लिए, निम्नलिखित निरूपणों का उपयोग किया गया:

  • सापेक्ष कोण और दूरी (RAD) निरूपण
  • संयुक्त स्थिति अंतरों का हिस्टोग्राम (HJPD) निरूपण

वर्गीकरण के लिए, निरूपण(ओं) को LIBSVM द्वारा संचालित एक SVM में भेजा जाता है, ताकि एक ऐसा मॉडल बनाया जा सके जो मानव क्रियाओं की भविष्यवाणी कर सके। दो मॉडल बनाए जाएँगे, एक RAD का उपयोग करके और दूसरा HJPD का उपयोग करके। लक्ष्य इन मॉडलों को यथासंभव सटीक बनाना और यह देखना है कि कौन-सा निरूपण सबसे बेहतर प्रदर्शन करता है।

यह जानते हुए, यहाँ कोड क्या करता है उसका एक अवलोकन दिया गया है:

  1. संशोधित डेटासेट से कच्चा डेटा लोड करें
  2. लोड किए गए डेटासेट से किसी भी आउट्लायर और/या त्रुटि डेटा को हटाएँ
  3. अंतिम कच्चे डेटा को RAD और HJPD निरूपणों में परिवर्तित करें
  4. निरूपणों को ट्यून किए गए SVM(ओं) में भेजकर दो मॉडल उत्पन्न करें
  5. फिर इन दो मॉडलों को परीक्षण कच्चा डेटा दिया जाता है और यह मापने के लिए एक confusion matrix उत्पन्न की जाती है कि मॉडल(ओं) ने कैसा प्रदर्शन किया।

परिणाम

कोड चलाने और मॉडलों को अपनी क्षमता के अनुसार सर्वश्रेष्ठ रूप से ट्यून करने के बाद, RAD और HJPD दोनों मॉडलों के लिए अंतिम confusion matrix यहाँ है:

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 प्रोजेक्ट के जन्म का कारण बना।

अतिरिक्त टिप्पणियाँ: