मानवी क्रियांचा अंदाज
तपशील
हा प्रकल्प Colorado School of Mines येथील Spring 2020 सत्रातील Dr. Zhang यांच्या Human Centered Robotics (CSCI473) वर्गासाठी प्रकल्प क्रमांक 3 होता. Support Vector Machines (SVM) च्या वापराद्वारे रोबोटिक्समधील मशीन लर्निंगची ओळख करून देण्यासाठी तो तयार करण्यात आला होता. मूळ प्रकल्पाचे सुपूर्दगीयोग्य साहित्य/वर्णन येथे पाहता येते.
या प्रकल्पासाठी MSR Daily Activity 3D Dataset (आकृती 2), काही बदलांसह, वापरण्यात आला. या डेटासेटमध्ये Xbox Kinetic सेन्सरद्वारे संकलित केलेल्या आणि सांगाड्यांच्या स्वरूपात साठवलेल्या 16 मानवी क्रियांचा समावेश आहे. सांगाडे म्हणजे एका फ्रेममध्ये नोंदवलेल्या मानवाच्या 20 सांध्यांच्या वास्तविक जगातील (x, y, z) निर्देशांकांचा एक अॅरे होय. सांगाडा म्हणजे काय हे दाखवणारी आकृती येथे आहे:
मानवी क्रियांचा अंदाज साध्य करण्यासाठी, कच्च्या डेटाचे SVM द्वारे प्रक्रिया करता येईल अशा स्वरूपात प्रतिनिधित्व करणे आवश्यक आहे. या प्रकल्पासाठी खालील प्रतिनिधित्वे वापरण्यात आली:
- सापेक्ष कोन आणि अंतर (RAD) प्रतिनिधित्व
- सांध्यांच्या स्थानांमधील फरकांचा हिस्टोग्राम (HJPD) प्रतिनिधित्व
वर्गीकरणासाठी, प्रतिनिधित्व(े) LIBSVM द्वारे समर्थित SVM मध्ये पाठवली जातात, ज्यामुळे मानवी क्रियांचा अंदाज लावणारे मॉडेल तयार होते. दोन मॉडेल तयार केले जातील; एक RAD वापरून आणि दुसरे HJPD वापरून. ही मॉडेल्स शक्य तितकी अचूक बनवणे आणि कोणते प्रतिनिधित्व सर्वोत्तम कामगिरी करते हे पाहणे हे उद्दिष्ट आहे.
हे लक्षात घेऊन, कोड काय करतो याचा आढावा येथे दिला आहे:
- बदललेल्या डेटासेटमधून कच्चा डेटा लोड करतो
- लोड केलेल्या डेटासेटमधील कोणताही अपवादात्मक आणि/किंवा त्रुटीयुक्त डेटा काढून टाकतो
- अंतिम कच्च्या डेटाचे RAD आणि HJPD प्रतिनिधित्वांमध्ये रूपांतर करतो
- दोन मॉडेल तयार करण्यासाठी प्रतिनिधित्वे समायोजित केलेल्या SVM(मध्ये) पाठवली जातात
- त्यानंतर दोन मॉडेल्सना चाचणी कच्चा डेटा दिला जातो आणि मॉडेल(्स)ने कशी कामगिरी केली हे मोजण्यासाठी गोंधळ मॅट्रिक्स तयार केला जातो.
निष्कर्ष
कोड चालवल्यानंतर आणि माझ्या क्षमतेनुसार मॉडेल्सचे सर्वोत्तम प्रकारे समायोजन केल्यानंतर, 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 प्रकल्पाचा जन्म झाला.
अतिरिक्त नोंदी:
- या प्रकल्पाची चाचणी Python आवृत्ती 3.8.13 वर करण्यात आली
- या प्रकल्पासाठी, संपूर्ण MDA3 डेटासेट आणि बदललेला MDA3 डेटासेट वापरण्यात आला आहे. बदललेल्या MDA3 मध्ये केवळ 8, 10, 12, 13, 15, आणि 16 या क्रियांचा समावेश आहे. तसेच, संपूर्ण डेटासेटमध्ये नसलेले काही “दूषित” डेटा बिंदू बदललेल्या आवृत्तीत आहेत.
- 3D सांगाडा डेटावर आधारित लोकांचे अवकाश-काल प्रतिनिधित्व: एक पुनरावलोकन
- YouTube: Kinect डेप्थ सेन्सर 2 मिनिटांत कसा कार्य करतो
- Medium: Kinect V2 सांधे आणि निर्देशांक प्रणाली समजून घेणे
- Kinect विकिपीडिया पृष्ठ
- Jameco Xbox Kinect
- SVM(स्) आणि LibSVM विषयी माहिती: cjlin libsvm, libsvm pypi पृष्ठ, आणि libsvm github
- SVM आणि LIBSVM तर्कशास्त्र व दस्तऐवजीकरण: cjlin मार्गदर्शक लेख आणि cjlin libsvmtools डेटासेट्स
- वापरलेल्या/बदललेल्या डेटासेटविषयी माहिती