Kutabiri Matendo ya Binadamu
Maelezo
Mradi huu ulikuwa mradi wa #3 kwa ajili ya somo la Dr. Zhang la Human Centered Robotics (CSCI473) katika Colorado School of Mines wakati wa muhula wa Spring 2020. Ulilenga kutoa utangulizi wa kujifunza mashine katika robotiki kupitia matumizi ya Support Vector Machines (SVM). Mahitajio/maelezo ya mradi asili yanaweza kutazamwa hapa.
Kwa mradi huu seti ya data ya MSR Daily Activity 3D (Mchoro 2), baada ya marekebisho fulani, ilitumiwa. Seti hii ya data ina shughuli 16 za binadamu zilizokusanywa kutoka kwenye sensa ya Xbox Kinect na zilizohifadhiwa kama skeleti. Skeleti ni safu ya kuratibu za dunia halisi, (x, y, z), za viunganisho 20 vya binadamu vilivyorekodiwa katika fremu moja. Hapa kuna mchoro unaoonyesha ni nini skeleti:
Ili kufanikisha utabiri wa matendo ya binadamu, data ghafi lazima iwe iwakiliwe kwa namna inayoonekana na SVM. Kwa mradi huu, uwakilishi ufuatao ulitumiwa:
- Uwakilishi wa Pembe na Umbali (Relative Angles and Distances, RAD)
- Uwakilishi wa Histogramu ya Tofauti za Nafasi za Viunganisho (Histogram of Joint Position Differences, HJPD)
Kwa ajili ya uainishaji, uwakilishi(zi) husafirishwa kwenye SVM, ukitumia LIBSVM, ili kuunda modeli(inzi) zinazoweza kutabiri matendo ya binadamu. Modeli mbili zitatengenezwa, moja ikitumia RAD na nyingine ikitumia HJPD. Lengo ni kufanya modeli hizi ziwe sahihi kadri inavyowezekana na kuona ni uwakilishi upi unafanya kazi vizuri zaidi.
Kwa kuzingatia haya, hapa kuna muhtasari wa kile msimbo unachofanya:
- Pakia data ghafi kutoka kwa seti ya data iliyorekebishwa
- Ondoa data yoyote ya outlier na/au makosa kutoka kwenye seti iliyopakiliwa
- Geuza data ghafi ya mwisho kuwa uwakilishi wa RAD na HJPD
- Uwakilishi(zi) huhamishiwa kwenye SVM iliyotengenezwa ili kuzalisha modeli mbili
- Modeli hizo mbili kisha zinapokelewa data ghafi za mtihani na matrisi za mkanganyiko zinazalishwa kupima jinsi modeli(zi) zilivyofanya kazi.
Matokeo
Baada ya kuendesha msimbo na kutunisha modeli kadri nilivyoweza, hapa kuna matrisi za mkanganyiko za mwisho kwa modeli za RAD na 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
Hitimisho
Kwa kuwa usahihi wote uko juu ya 50%, mradi huu ulikuwa wa mafanikio. Pia, uwakilishi wa HJPD unaonekana kuwa uwakilishi sahihi zaidi wa kutumia kwa uainishaji huu. Kwa hivyo, kuna modeli(zi) zinazotabiri vitendo vya binadamu kwa kutumia data za skeleti. Modeli hizi haziko kamili lakini ni bora kuliko kubahatisha. Mradi huu ndio ulizaa baadaye mradi wa Mkao Unaosogezwa.
Vidokezo vya Ziada:
- Mradi huu ulijaribiwa kwa Python toleo 3.8.13
- Kwa mradi huu, seti kamili ya data ya MDA3 na seti ya data ya MDA3 iliyorekebishwa ilitumiwa. MDA3 iliyorekebishwa ina tu shughuli 8, 10, 12, 13, 15, & 16. Pia toleo iliyorekebishwa lina pointi za data “zilizoathirika” ndani yake wakati seti kamili haina.
- Uwakilishi wa Muda-Mnadharia wa Watu Kulingana na Data za Skeleti 3D: Mapitio
- YouTube: Jinsi Sensa ya Kina ya Kinect Inavyofanya Kazi kwa Dakika 2
- Medium: Kuelewa Viunganisho vya Kinect V2 na Mfumo wa Kuratibu
- Ukurasa wa Wikipedia wa Kinect
- Jameco Xbox Kinect
- Taarifa Kuhusu SVM(s) & LibSVM: cjlin libsvm, libsvm pypi page, & libsvm github
- Mantiki na Nyaraka za SVM & LIBSVM: cjlin guide paper & cjlin libsvmtools datasets
- Taarifa Kuhusu Seti ya Data Iliyotumika/Ilibadilishwa