Memprediksi Tindakan Manusia

Repositori GitHub Proyek

kerangka

Rincian

Proyek ini adalah proyek #3 untuk kelas Human Centered Robotics (CSCI473) Dr. Zhang di Colorado School of Mines selama semester Musim Semi 2020. Proyek ini dirancang untuk memberikan pengantar ke pembelajaran mesin dalam robotika melalui penggunaan Support Vector Machines (SVM). Dokumentasi/pengiriman proyek asli dapat dilihat di sini.

kerangka

Untuk proyek ini digunakan MSR Daily Activity 3D Dataset (Gambar 2), dengan beberapa modifikasi. Dataset ini berisi 16 aktivitas manusia yang dikumpulkan dari sensor Xbox Kinetic dan disimpan sebagai kerangka. Kerangka adalah array koordinat dunia nyata, (x, y, z), dari 20 sendi manusia yang direkam dalam satu frame. Berikut sebuah gambar yang menunjukkan apa itu kerangka:

kerangka

Untuk mencapai prediksi tindakan manusia, data mentah harus direpresentasikan dalam bentuk yang dapat diproses oleh SVM. Untuk proyek ini, representasi berikut digunakan:

  • Representasi Sudut Relatif dan Jarak (RAD)
  • Representasi Histogram Perbedaan Posisi Sendi (HJPD)

Untuk klasifikasi, representasi dikirimkan ke SVM, yang ditenagai oleh LIBSVM, untuk membuat model yang dapat memprediksi tindakan manusia. Dua model akan dibuat, satu menggunakan RAD dan satu lagi menggunakan HJPD. Tujuannya adalah membuat model-model ini seakurat mungkin dan melihat representasi mana yang berkinerja terbaik.

Dengan mengetahui hal ini, berikut gambaran umum tentang apa yang dilakukan kode:

  1. Memuat data mentah dari dataset yang dimodifikasi
  2. Menghapus data outlier dan/atau data error dari dataset yang dimuat
  3. Mengonversi data mentah akhir ke dalam representasi RAD dan HJPD
  4. Representasi dikirim ke SVM yang telah dituning untuk menghasilkan dua model
  5. Kedua model kemudian diberi data mentah uji dan matriks kebingungan dihasilkan untuk mengukur bagaimana model-model tersebut berkinerja.

Hasil

Setelah menjalankan kode dan menyetel model semampu saya, berikut matriks kebingungan akhir untuk kedua model RAD dan 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

Kesimpulan

Karena kedua akurasi lebih dari 50%, proyek ini berhasil. Selain itu, representasi HJPD tampaknya merupakan representasi yang lebih akurat untuk digunakan pada klasifikasi ini. Dengan ini, ada model yang memprediksi tindakan manusia menggunakan data kerangka. Model-model di sini masih jauh dari sempurna tetapi lebih baik daripada acak. Proyek ini adalah yang melahirkan proyek Moving Pose kemudian.

Catatan Tambahan: