ਮਾਨਵ ਕਿਰਿਆਵਾਂ ਦੀ ਭਵਿੱਖਬਾਣੀ
ਵੇਰਵੇ
ਇਹ ਪ੍ਰੋਜੈਕਟ ਡਾਕਟਰ Zhang ਦੀ Human Centered Robotics (CSCI473) ਕਲਾਸ ਲਈ ਪ੍ਰੋਜੈਕਟ #3 ਸੀ ਜੋ Colorado School of Mines ਵਿੱਚ Spring 2020 ਸੈਮੇਸਟਰ ਦੌਰਾਨ ਹੋਇਆ ਸੀ। ਇਹ SVM (Support Vector Machines) ਦੀ ਵਰਤੋਂ ਰਾਹੀਂ ਰੋਬੋਟਿਕਸ ਵਿੱਚ ਮਸ਼ੀਨ ਲਰਨਿੰਗ ਦਾ ਪਰਚੇਦਾਨ ਦੇਣ ਲਈ ਤਿਆਰ ਕੀਤਾ ਗਿਆ ਸੀ। ਮੂਲ ਪ੍ਰੋਜੈਕਟ ਦੇ ਡਿਲਿਵਰੇਬਲ/ਵੇਰਵੇ ਇੱਥੇ ਵੇਖੇ ਜਾ ਸਕਦੇ ਹਨ ਇੱਥੇ.
ਇਸ ਪ੍ਰੋਜੈਕਟ ਲਈ MSR Daily Activity 3D Dataset (ਆਕृति 2), ਕੁਝ ਸੋਧਾਂ ਨਾਲ, ਦੀ ਵਰਤੋਂ ਕੀਤੀ ਗਈ। ਇਸ ਡੇਟਾਸੇਟ ਵਿੱਚ Xbox Kinetic ਸੈਂਸਰ ਤੋਂ ਇਕੱਠੇ ਕੀਤੇ 16 ਮਾਨਵ ਹਰਕਤਾਂ ਹਨ ਜੋ ਸਕੈਲਟਨ ਵਜੋਂ ਸਾਂਭੀਆਂ ਗਈਆਂ ਹਨ। ਸਕੈਲਟਨ ਇੱਕ ਏਰੇ ਹੈ ਜਿਸ ਵਿੱਚ ਇੱਕ ਫਰੇਮ ਵਿੱਚ ਰਿਕਾਰਡ ਕੀਤੇ ਗਏ ਮਨੁੱਖ ਦੇ 20 ਜੋੜਿਆਂ ਦੇ ਅਸਲੀ ਦੁਨੀਆ (x, y, z) ਕੋਆਰਡੀਨੇਟ ਸ਼ਾਮਲ ਹੁੰਦੇ ਹਨ। ਹੇਠਾਂ ਇੱਕ ਆਕৃতি ਹੈ ਜੋ ਦਿਖਾਉਂਦੀ ਹੈ ਕਿ ਸਕੈਲਟਨ ਕੀ ਹੁੰਦਾ ਹੈ:
ਮਾਨਵ ਕਿਰਿਆ ਅਨੁਮਾਨ ਪ੍ਰਾਪਤ ਕਰਨ ਲਈ, ਰਾ ਡੇਟਾ ਨੂੰ ਐਸੇ ਰੂਪ ਵਿੱਚ ਪ੍ਰਤਿਨਿਧ ਕੀਤਾ ਜਾਣਾ ਚਾਹੀਦਾ ਹੈ ਜੋ SVM ਦੁਆਰਾ ਪ੍ਰੋਸੈਸ ਕੀਤਾ ਜਾ ਸਕੇ। ਇਸ ਪ੍ਰੋਜੈਕਟ ਲਈ ਹੇਠਾਂ ਦਿੱਤੀਆਂ ਪ੍ਰਤਿਨਿਧੀਆਂ ਦੀ ਵਰਤੋਂ ਕੀਤੀ ਗਈ:
- ਸੰਬੰਧੀ ਕੋਣ ਅਤੇ ਦੂਰੀਆਂ (RAD) ਪ੍ਰਤਿਨਿਧੀ
- ਜੋਇੰਟ ਪੋਜ਼ੀਸ਼ਨ ਫਰਕਾਂ ਦਾ ਹਿਸਟੋਗ੍ਰਾਮ (HJPD) ਪ੍ਰਤਿਨਿਧੀ
ਵਰਗੀਕਰਨ ਲਈ, ਇਹ ਪ੍ਰਤਿਨਿਧੀਆਂ SVM ਵਿੱਚ ਪਾਂਝੀਆਂ ਜਾਂਦੀਆਂ ਹਨ, ਜੋ LIBSVM ਨਾਲ ਸੰਚਾਲਿਤ ਹੈ, ਤਾਂ ਜੋ ਇਕ ਮਾਡਲ ਬਣਾਇਆ ਜਾ ਸਕੇ ਜੋ ਮਾਨਵ ਕਿਰਿਆਵਾਂ ਦੀ ਭਵਿੱਖਬਾਣੀ ਕਰ ਸਕੇ। ਦੋ ਮਾਡਲ ਬਣਾਏ ਜਾਣਗੇ, ਇੱਕ 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
ਨਿਸ਼ਕਰਸ਼
ਕਿਉਂਕਿ ਦੋਹਾਂ ਅkurੇਸੀਅਨ (accuracy) 50% ਤੋਂ ਉਪਰ ਹਨ, ਇਹ ਪ੍ਰੋਜੈਕਟ ਇੱਕ ਸਫਲਤਾ ਸੀ। ਇਸ ਤੋਂ ਇਲਾਵਾ, HJPD ਪ੍ਰਤਿਨਿਧੀ ਲੱਗਦਾ ਹੈ ਕਿ ਇਸ ਵਰਗੀ ਵਰਗੀਕਰਨ ਲਈ ਜ਼ਿਆਦਾ ਸਹੀ ਪ੍ਰਤਿਨਿਧੀ ਹੈ। ਨਾਲ ਹੀ, ਇੱਥੇ ਇੱਕ/ਕਈ ਮਾਡਲ(ਾਂ) ਹੈ ਜੋ ਸਕੈਲਟਨ ਡੇਟਾ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਮਾਨਵ ਕਿਰਿਆਵਾਂ ਦੀ ਭਵਿੱਖਬਾਣੀ ਕਰਦਾ ਹੈ। ਇਨ੍ਹਾਂ ਮਾਡਲਾਂ ਵਿੱਚ ਪੂਰਨਤਾ ਤੱਕ ਬਹੁਤ ਦੂਰ ਹੈ ਪਰ ਇਹ ਰੈਂਡਮ ਨਾਲੋਂ ਵਧੀਆ ਹਨ। ਇਸ ਪ੍ਰੋਜੈਕਟ ਨੇ ਹੀ ਬਾਅਦ ਵਿੱਚ Moving Pose ਪ੍ਰੋਜੈਕਟ ਨੂੰ ਜਨਮ ਦਿੱਤਾ।
ਵਾਧੂ ਨੋਟਸ:
- ਇਹ ਪ੍ਰੋਜੈਕਟ Python ਵਰਜਨ 3.8.13 ‘ਤੇ ਟੈਸਟ ਕੀਤਾ ਗਿਆ ਸੀ
- ਇਸ ਪ੍ਰੋਜੈਕਟ ਲਈ, ਪੂਰਾ MDA3 ਡੇਟਾਸੇਟ ਅਤੇ ਇੱਕ ਸੋਧਿਆ ਹੋਇਆ MDA3 ਡੇਟਾਸੇਟ ਵਰਤਿਆ ਗਿਆ। ਸੋਧਿਆ MDA3 ਸਿਰਫ਼ ਹਰਕਤਾਂ 8, 10, 12, 13, 15, ਅਤੇ 16 ਨੂੰ ਹੀ ਸ਼ਾਮਲ ਕਰਦਾ ਹੈ। ਨਾਲ ਹੀ ਸੋਧਿਆ ਵਰਜਨ ਵਿੱਚ ਕੁਝ “ਕੋਰਪਟ” ਡੇਟਾ ਪਾਇੰਟ ਹਨ ਜਦਕਿ ਪੂਰੇ ਡੇਟਾਸੇਟ ਵਿੱਚ ਨਹੀਂ ਹਨ।
- people Based on 3D Skeletal Data: A Review ਦੇ ਲਈ Space-Time Representation
- YouTube: Kinect ਡੈਪਥ ਸੈਂਸਰ 2 ਮਿੰਟ ਵਿੱਚ ਕਿਵੇਂ ਕੰਮ ਕਰਦਾ ਹੈ
- Medium: Kinect V2 ਜੋਇੰਟਾਂ ਅਤੇ ਕੋਆਰਡੀਨੇਟ ਸਿਸਟਮ ਨੂੰ ਸਮਝਣਾ
- Kinect ਵਿਕੀਪੀਡੀਆ ਪੇਜ
- Jameco Xbox Kinect
- SVM(ਆਂ) ਅਤੇ LibSVM ਬਾਰੇ ਜਾਣਕਾਰੀ: cjlin libsvm, libsvm pypi ਪੇਜ, & libsvm github
- SVM & LIBSVM ਲਾਜਿਕ ਅਤੇ ਦਸਤਾਵੇਜ਼: cjlin ਗਾਈਡ ਪੇਪਰ & cjlin libsvmtools ਡੇਟਾਸੈਟਸ
- ਵਰਤਿਆ/ਸੋਧਿਆ ਗਿਆ ਡੇਟਾਸੇਟ ਬਾਰੇ ਜਾਣਕਾਰੀ