预测人类动作

项目的GitHub仓库

skr

详细信息

该项目是梅特矿业学院张博士的以人为本的机器人(CSCI473)课程在2020年春季学期的项目#3。它旨在通过使用支持向量机(SVM)提供机器人领域机器学习的介绍。原始项目交付物/描述可以在这里查看。

skr

在这个项目中,使用了经过一些修改的MSR每日活动3D数据集(图2)。该数据集包含从Xbox Kinetic传感器收集的16个人类活动,并以骨架形式存储。骨架是一个包含20个关节在一个帧中记录的真实世界(x,y,z)坐标的数组。这里有一张显示骨架是什么的图:

skr

为了实现人类动作预测,原始数据必须以可以被SVM处理的形式表示。对于这个项目,使用了以下表示:

  • 相对角度和距离(RAD)表示
  • 关节位置差异直方图(HJPD)表示

对于分类,表示被送入由LIBSVM提供支持的SVM,以创建一个可以预测人类动作的模型。将创建两个模型,一个使用RAD,另一个使用HJPD。目标是使这些模型尽可能准确,并查看哪个表示效果最佳。

了解这一点后,以下是代码的概述:

  1. 从修改后的数据集中加载原始数据
  2. 从加载的数据集中删除任何异常值和/或错误数据
  3. 将最终原始数据转换为RAD和HJPD表示
  4. 将表示送入调优后的SVM,以生成两个模型
  5. 然后将这两个模型输入测试原始数据,并生成混淆矩阵以测量模型的表现。

结果

在运行代码并尽我所能调优模型后,以下是RAD和HJPD模型的最终混淆矩阵:

表示:RAD
准确率:62.5%
LIBSVM分类   8.0   10.0  12.0  13.0  15.0  16.0
实际活动编号
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
表示:HJPD
准确率:70.83%
LIBSVM分类   8.0   10.0  12.0  13.0  15.0  16.0
实际活动编号
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

结论

由于两个准确率均超过50%,该项目是成功的。此外,HJPD表示似乎是用于此分类的更准确表示。由此,存在一个使用骨架数据预测人类动作的模型。这里的模型远非完美,但比随机更好。这个项目催生了后来的移动姿势项目。

附加说明: