Dự đoán Hành động của Con người

Kho GitHub của Dự án

skr

Chi tiết

Dự án này là dự án số #3 cho lớp Human Centered Robotics (CSCI473) của Dr. Zhang tại Colorado School of Mines trong học kỳ Mùa xuân 2020. Nó được thiết kế để cung cấp phần giới thiệu về học máy trong robot thông qua việc sử dụng Máy Vector Hỗ trợ (SVM). Các đầu ra/mô tả dự án ban đầu có thể được xem ở đây.

skr

Đối với dự án này, MSR Daily Activity 3D Dataset (Hình 2), với một số sửa đổi, đã được sử dụng. Bộ dữ liệu này chứa 16 hoạt động của con người được thu thập từ một cảm biến Xbox Kinetic và được lưu trữ dưới dạng các bộ xương. Bộ xương là một mảng các tọa độ thế giới thực, (x, y, z), của 20 khớp của một con người được ghi lại trong một khung hình. Đây là một hình minh họa cho thấy bộ xương là gì:

skr

Để đạt được việc dự đoán hành động của con người, dữ liệu thô phải được biểu diễn dưới một dạng có thể được SVM xử lý. Đối với dự án này, các biểu diễn sau đã được sử dụng:

  • Biểu diễn Góc và Khoảng cách Tương đối (RAD)
  • Biểu diễn Lược đồ Chênh lệch Vị trí Khớp (HJPD)

Để phân loại, biểu diễn(s) được đưa vào một SVM, được hỗ trợ bởi LIBSVM, để tạo ra một mô hình có thể dự đoán hành động của con người. Hai mô hình sẽ được tạo ra, một mô hình sử dụng RAD và một mô hình khác sử dụng HJPD. Mục tiêu là làm cho các mô hình này chính xác nhất có thể và xem biểu diễn nào hoạt động tốt nhất.

Biết điều này, đây là tổng quan về những gì mã nguồn thực hiện:

  1. Tải dữ liệu thô từ bộ dữ liệu đã được sửa đổi
  2. Loại bỏ mọi dữ liệu ngoại lệ và/hoặc dữ liệu lỗi khỏi bộ dữ liệu đã tải
  3. Chuyển đổi dữ liệu thô cuối cùng thành các biểu diễn RAD và HJPD
  4. Các biểu diễn được đưa vào SVM đã được tinh chỉnh để tạo ra hai mô hình
  5. Sau đó, hai mô hình được đưa dữ liệu thô kiểm tra và một ma trận nhầm lẫn được tạo ra để đo lường mô hình(s) đã hoạt động như thế nào.

Kết quả

Sau khi chạy mã và tinh chỉnh các mô hình tốt nhất trong khả năng của tôi, đây là ma trận nhầm lẫn cuối cùng cho cả hai mô hình RAD và 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

Kết luận

Vì cả hai độ chính xác đều trên 50%, dự án này là một thành công. Ngoài ra, biểu diễn HJPD có vẻ là biểu diễn chính xác hơn để sử dụng cho việc phân loại này. Với điều này, đã có một mô hình(s) dự đoán hành động của con người bằng dữ liệu xương. Các mô hình(s) ở đây còn xa mới hoàn hảo nhưng vẫn tốt hơn ngẫu nhiên. Dự án này là điều đã khai sinh ra dự án Moving Pose sau này.

Ghi chú bổ sung: