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

Kho GitHub của Dự án

khung_xương

Chi tiết

Dự án này là dự án số 3 cho lớp Robotics Định hướng Con Người (CSCI473) của Tiến sĩ Zhang tại Colorado School of Mines trong học kỳ Mùa Xuân 2020. Nó được thiết kế để cung cấp một giới thiệu về học máy trong robotics thông qua việc sử dụng Máy Vector Hỗ trợ (SVM). Các sản phẩm/mô tả dự án gốc có thể xem tại đây.

khung_xương

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

khung_xương

Để đạt được việc dự đoán hành động con người, dữ liệu thô phải được biểu diễn dưới một dạng có thể được xử lý bởi SVM. Cho 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 Biểu đồ Tần suất Sai khác Vị trí Khớp (HJPD)

Đối với phân lớp, biểu diễn/những biểu diễn được gửi vào một SVM, được hỗ trợ bởi LIBSVM, để tạo một mô hình có thể dự đoán hành động con người. Hai mô hình sẽ được tạo, một sử dụng RAD và một 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ã làm:

  1. Tải dữ liệu thô từ bộ dữ liệu đã được chỉnh sửa
  2. Loại bỏ bất kỳ dữ liệu ngoại lai và/hoặc dữ liệu lỗi từ 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 gửi vào các SVM đã được tinh chỉnh để tạo ra hai mô hình
  5. Hai mô hình sau đó được cung cấp dữ liệu thô kiểm tra và một ma trận nhầm lẫn được tạo ra để đo lường hiệu suất của mô hình

Kết quả

Sau khi chạy mã và tinh chỉnh các mô hình đến mức tốt nhất có thể, đây là các 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 dường như là biểu diễn chính xác hơn để sử dụng cho phân lớp này. Với điều này, có một hoặc nhiều mô hình dự đoán hành động con người sử dụng dữ liệu khung xương. Các mô hình ở đây còn xa hoàn hảo nhưng nó tốt hơn ngẫu nhiên. Dự án này là nguồn gốc của dự án Moving Pose sau này.

Ghi chú bổ sung: