人間の行動予測

プロジェクトのGitHubリポジトリ

skr

詳細

このプロジェクトは、2020年春学期にコロラド鉱山学校の張博士の人間中心ロボティクス(CSCI473)クラスのプロジェクト#3でした。これは、サポートベクターマシン(SVM)を使用したロボティクスにおける機械学習の入門を提供するために設計されました。元のプロジェクトの成果物/説明はこちらで見ることができます。

skr

このプロジェクトでは、MSR Daily Activity 3D Dataset(図2)をいくつかの修正を加えて使用しました。このデータセットには、Xbox Kinectセンサーから収集された16の人間の活動がスケルトンとして保存されています。スケルトンは、1フレームで記録された人間の20の関節の実世界の(x, y, z)座標の配列です。スケルトンが何であるかを示す図は以下の通りです:

skr

人間の行動予測を達成するためには、生データをSVMが処理できる形式で表現する必要があります。このプロジェクトでは、以下の表現が使用されました:

  • 相対角度と距離(RAD)表現
  • 関節位置差のヒストグラム(HJPD)表現

分類のために、表現はLIBSVMによって動かされるSVMに送信され、人間の行動を予測できるモデルが作成されます。RADを使用したモデルとHJPDを使用したモデルの2つが作成されます。目標は、これらのモデルをできるだけ正確にし、どの表現が最も良いパフォーマンスを発揮するかを見ることです。

これを踏まえて、コードが何をするかの概要は以下の通りです:

  1. 修正されたデータセットから生データをロードします
  2. ロードされたデータセットから外れ値やエラーデータを削除します
  3. 最終的な生データをRADおよびHJPD表現に変換します
  4. 表現は調整されたSVMに送信され、2つのモデルが生成されます
  5. 2つのモデルにテスト生データが供給され、モデルのパフォーマンスを測定するために混同行列が生成されます。

結果

コードを実行し、モデルを最善の能力で調整した後、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表現はこの分類に使用するのにより正確な表現のようです。これにより、スケルトンデータを使用して人間の行動を予測するモデルがあります。ここにあるモデルは完璧からは程遠いですが、ランダムよりは良いです。このプロジェクトは後にMoving Poseプロジェクトを生み出しました。

追加の注意事項: