मानव क्रियाओं की भविष्यवाणी
विवरण
यह प्रोजेक्ट डॉ. झांग के मानव केंद्रित रोबोटिक्स (CSCI473) कक्षा के लिए कोलोराडो स्कूल ऑफ माइन में स्प्रिंग 2020 सेमेस्टर के लिए प्रोजेक्ट #3 था। इसे रोबोटिक्स में मशीन लर्निंग का परिचय देने के लिए सपोर्ट वेक्टर मशीन (SVM) के उपयोग के माध्यम से डिज़ाइन किया गया था। मूल प्रोजेक्ट डिलिवरेबल्स/विवरण यहां देखा जा सकता है।
इस प्रोजेक्ट के लिए MSR दैनिक गतिविधि 3D डेटासेट (चित्र 2), कुछ संशोधनों के साथ, का उपयोग किया गया था। इस डेटासेट में Xbox काइनेटिक सेंसर से एकत्रित 16 मानव गतिविधियाँ हैं और इन्हें कंकालों के रूप में संग्रहीत किया गया है। कंकाल वास्तविक दुनिया के 20 जोड़ों के (x, y, z) निर्देशांक का एक एरे है, जो एक फ्रेम में रिकॉर्ड किया गया है। यहाँ एक चित्र है जो दिखाता है कि कंकाल क्या है:
मानव क्रिया भविष्यवाणी प्राप्त करने के लिए, कच्चे डेटा को एक रूप में प्रस्तुत किया जाना चाहिए जिसे SVM द्वारा संसाधित किया जा सके। इस प्रोजेक्ट के लिए, निम्नलिखित प्रतिनिधित्वों का उपयोग किया गया:
- सापेक्ष कोण और दूरी (RAD) प्रतिनिधित्व
- जोड़ों की स्थिति के अंतर का हिस्टोग्राम (HJPD) प्रतिनिधित्व
वर्गीकरण के लिए, प्रतिनिधित्व को SVM में भेजा जाता है, जो LIBSVM द्वारा संचालित होता है, ताकि एक मॉडल बनाया जा सके जो मानव क्रियाओं की भविष्यवाणी कर सके। दो मॉडल बनाए जाएंगे, एक RAD का उपयोग करके और दूसरा HJPD का उपयोग करके। लक्ष्य इन मॉडलों को यथासंभव सटीक बनाना है और देखना है कि कौन सा प्रतिनिधित्व सबसे अच्छा प्रदर्शन करता है।
यह जानकर, यहाँ कोड क्या करता है इसका एक अवलोकन है:
- संशोधित डेटासेट से कच्चा डेटा लोड करें
- लोड किए गए डेटासेट से किसी भी आउटलेयर और/या त्रुटि डेटा को हटा दें
- अंतिम कच्चे डेटा को RAD और HJPD प्रतिनिधित्वों में परिवर्तित करें
- प्रतिनिधित्व को ट्यून किए गए SVM(s) में भेजा जाता है ताकि दो मॉडल उत्पन्न किए जा सकें
- फिर इन दो मॉडलों को परीक्षण कच्चे डेटा से खिलाया जाता है और यह मापने के लिए एक भ्रम मैट्रिक्स उत्पन्न किया जाता है कि मॉडल(s) ने कैसे प्रदर्शन किया।
परिणाम
कोड चलाने और मॉडलों को मेरी क्षमता के अनुसार सर्वश्रेष्ठ बनाने के बाद, यहाँ RAD और HJPD मॉडलों के लिए अंतिम भ्रम मैट्रिक्स हैं:
प्रतिनिधित्व: RAD
सटीकता: 62.5%
LIBSVM वर्गीकरण 8.0 10.0 12.0 13.0 15.0 16.0
वास्तविक गतिविधि संख्या
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
प्रतिनिधित्व: HJPD
सटीकता: 70.83%
LIBSVM वर्गीकरण 8.0 10.0 12.0 13.0 15.0 16.0
वास्तविक गतिविधि संख्या
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 प्रतिनिधित्व इस वर्गीकरण के लिए उपयोग करने के लिए अधिक सटीक प्रतीत होता है। इसके साथ, यहाँ एक मॉडल(s) है जो कंकाल डेटा का उपयोग करके मानव क्रियाओं की भविष्यवाणी करता है। यहाँ के मॉडल(s) पूर्णता से दूर हैं लेकिन यह यादृच्छिक से बेहतर हैं। यह प्रोजेक्ट वह था जिसने बाद में मूविंग पोस प्रोजेक्ट को जन्म दिया।
अतिरिक्त नोट्स:
- इस प्रोजेक्ट का परीक्षण Python संस्करण 3.8.13 पर किया गया था
- इस प्रोजेक्ट के लिए, पूर्ण MDA3 डेटासेट और एक संशोधित MDA3 डेटासेट का उपयोग किया गया है। संशोधित MDA3 में केवल गतिविधियाँ 8, 10, 12, 13, 15, और 16 शामिल हैं। इसके अलावा, संशोधित संस्करण में कुछ “खराब” डेटा बिंदु हैं जबकि पूर्ण डेटासेट में नहीं हैं।
- 3D कंकाल डेटा के आधार पर लोगों का स्थान-समय प्रतिनिधित्व: एक समीक्षा
- YouTube: काइनेट डेप्थ सेंसर 2 मिनट में कैसे काम करता है
- Medium: काइनेट V2 जोड़ों और निर्देशांक प्रणाली को समझना
- काइनेट विकिपीडिया पृष्ठ
- जेमेको Xbox काइनेट
- SVM(s) और LibSVM के बारे में जानकारी: cjlin libsvm, libsvm पायथन पृष्ठ, और libsvm गिटहब
- SVM और LIBSVM लॉजिक और दस्तावेज़ीकरण: cjlin गाइड पेपर और cjlin libsvmtools डेटासेट
- उपयोग की गई/संशोधित डेटासेट के बारे में जानकारी