Vorhersage menschlicher Handlungen

GitHub-Repository des Projekts

skr

Details

Dieses Projekt war Projekt #3 für Dr. Zhangs Lehrveranstaltung Human Centered Robotics (CSCI473) an der Colorado School of Mines während des Frühjahrssemesters 2020. Es wurde entworfen, um eine Einführung in maschinelles Lernen in der Robotik durch den Einsatz von Support Vector Machines (SVM) zu bieten. Die ursprünglichen Projektvorgaben/-beschreibung können hier eingesehen werden.

skr

Für dieses Projekt wurde der MSR Daily Activity 3D-Datensatz (Abbildung 2) mit einigen Änderungen verwendet. Dieser Datensatz enthält 16 menschliche Aktivitäten, die von einem Xbox-Kinetic-Sensor erfasst und als Skelette gespeichert werden. Skelette sind ein Array von realweltlichen (x, y, z)-Koordinaten von 20 Gelenken eines Menschen, die in einem Frame aufgezeichnet wurden. Hier ist eine Abbildung, die zeigt, was ein Skelett ist:

skr

Um die Vorhersage menschlicher Handlungen zu erreichen, müssen die Rohdaten in einer Form dargestellt werden, die von einer SVM verarbeitet werden kann. Für dieses Projekt wurden die folgenden Repräsentationen verwendet:

  • Repräsentation relativer Winkel und Distanzen (RAD)
  • Histogramm der Gelenkpositionsdifferenzen (HJPD)-Repräsentation

Für die Klassifikation wird die Repräsentation in eine SVM eingespeist, unterstützt von LIBSVM, um ein Modell zu erstellen, das menschliche Handlungen vorhersagen kann. Es werden zwei Modelle erstellt, eines mit RAD und ein weiteres mit HJPD. Das Ziel ist es, diese Modelle so genau wie möglich zu machen und zu sehen, welche Repräsentation die beste Leistung erbringt.

Vor diesem Hintergrund ist hier ein Überblick darüber, was der Code tut:

  1. Die Rohdaten aus dem modifizierten Datensatz laden
  2. Alle Ausreißer und/oder Fehlerdaten aus dem geladenen Datensatz entfernen
  3. Die endgültigen Rohdaten in RAD- und HJPD-Repräsentationen umwandeln
  4. Die Repräsentationen werden in abgestimmte SVMs eingespeist, um zwei Modelle zu erzeugen
  5. Die beiden Modelle werden dann mit Test-Rohdaten gespeist und eine Konfusionsmatrix wird erzeugt, um zu messen, wie die Modelle abgeschnitten haben

Ergebnisse

Nach dem Ausführen des Codes und dem Tuning der Modelle nach bestem Wissen und Gewissen sind hier die endgültigen Konfusionsmatrizen für beide Modelle, RAD und 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

Fazit

Da beide Genauigkeiten über 50 % liegen, war dieses Projekt ein Erfolg. Außerdem scheint die HJPD-Repräsentation die genauere Repräsentation für diese Klassifikationen zu sein. Damit gibt es ein Modell/e Modelle, das menschliche Handlungen mithilfe von Skelettdaten vorhersagt. Die Modelle hier sind bei weitem nicht perfekt, aber sie sind besser als Zufall. Dieses Projekt war das, was später das Projekt Moving Pose hervorbrachte.

Zusätzliche Hinweise: