Download - Klassifikation von Bewegungsdaten

Transcript
Page 1: Klassifikation von  Bewegungsdaten

Klassifikation von Bewegungsdaten

Page 2: Klassifikation von  Bewegungsdaten

Gliederung

1. Aufgabenstellung2. Vorgehensweise

2.1 Ausgangslage2.2 Probleme2.3 Durchführung

3. Auswertung3.1 Implementierung Rekurrente Neuronale Netze 3.2 Vorhersageergebnisse der Rekurrenten Neuronalen Netze

Page 3: Klassifikation von  Bewegungsdaten

1. Aufgabenstellung

• Klassifikation von Bewegungsdaten• MMK -> Roboter soll die Bewegung eines

Menschen erkennen• Vorgaben: aufgezeichnete Bewegungsdaten• schnelle Ergebnisse -> durch Verwendung

grafischer Programmierumgebungen (KNIME und RapidMiner)

• erkennen der Bewegungsart mittels rekurrenter neuronaler Netze (Jordan Netzwerk und Elman Netzwerk)

Page 4: Klassifikation von  Bewegungsdaten

2. Vorgehensweise

2.1 Ausgangslage

Page 5: Klassifikation von  Bewegungsdaten

Bewegungsdaten (Wdh)

• viele Datensätze mit Punktdaten• Motion Capture – Aufnahmen von Personen

– Marker an 15 verschiedenen Punkten (Gelenken)– Aufnahmen von verschiedenen

Aktionen, Emotionen, Geschlechter

• enthalten sind x,y,z- Koordinaten der 15 Gelenke

• zeitliche Abfolge

Quelle: Screenshot Datenstruktur

Page 6: Klassifikation von  Bewegungsdaten

KNIME und RapidMiner (Wdh)

• Umgebungen für maschinelles Lernen und Data-Mining

• graphische Benutzeroberfläche – ermöglicht einfaches und schnelles

Aneinandersetzen von Modulen für Datenvorverarbeitung, Analyse und Visualisierung

• Verarbeitung sehr großer Datenbestände

Page 7: Klassifikation von  Bewegungsdaten

KNIME und RapidMiner

Quelle: http://de.wikipedia.org/w/index.php?title=Datei:Knime.jpg Quelle: http://de.wikipedia.org/wiki/RapidMiner

Page 8: Klassifikation von  Bewegungsdaten

Ausgangslage

• beide Programme unterstützen das Entwickeln eigener Knoten

• Javabibliothek, die Rekurrente Neuronale Netze (RNN) realisiert, verfügbar

• beide Programme können Ihre Daten aus einer SQL-Datenbank beziehen

Page 9: Klassifikation von  Bewegungsdaten

2.2 Probleme

Page 10: Klassifikation von  Bewegungsdaten

Probleme

• Datensätze nur in vielen Textdateien vorhanden– Datensätze einzeln einlesen zeitaufwändig

• Nutzung einer SQL-Datenbank sinnvoll

• Beide Programme unterstützen keine RNN– Beide Programme nur NN implementiert

• Erstellung eines eigenen Knotens für RNN notwendig• Nutzung verfügbarer Java-Bibliothek

• Visualisierung in beiden Programmen nur in Tabellenform bzw. 2D-Diagrammen möglich– Keine 3D-Visualisierung– Tabellen/Diagramme für die Darstellung von Bewegungsdaten

ungeeignet– Eigener Knoten oder Programm zur Visualisierung notwendig

Page 11: Klassifikation von  Bewegungsdaten

Neuronale Netze (Wdh)

• „Beide Programme unterstützen keine RNN“

• Neuronale Netze = Nachempfindung Neuronennetz des menschlichen Gehirns

• NN bestehen aus mehreren Neuronen (Units) – Informationen aufnehmen -> modifizieren -> weiterzuleiten– 3 Neuronen-Arten

• (Input-, Hidden-, Output-Units)

• "Übereinander" angeordnete Knoten bilden Schicht• Neuronen miteinander durch Kanten verbunden

– Kanten gewichtet -> Stärke der Verbindung – Wissen eines NN ist in seinen Gewichten gespeichert

Bild - Quelle: http://www.neuronalesnetz.de/units.html

Page 12: Klassifikation von  Bewegungsdaten

Rekurrente Neuronale Netze

• besitzen Rückkopplungen zw. Neuronen – Rückkopplungen direkte, indirekt, seitlich, vollständig

• Damit sollen zumeist zeitlich codierte Informationen in den Daten entdeckt werden

• Elman-Netz (SRN)• besitzen Kontext-Einheiten

– Neuronen, die sich auf gleicher Ebene wie Input-Schicht befinden – erhalten, verarbeiten Informationen -> Zurücksendung

• Durch Kontext-Einheiten besitzt SRN Teilinformationen aus sämtlichen vorangegangen Zeitpunkten bzw. Durchgängen

• Jordan-Netze• ähnlich aufgebaut wie SRNs• Erhalten von Units der Output-Schicht Informationen

Bild – Quelle (SRN): http://www.neuronalesnetz.de/rekurrente1.html

Page 13: Klassifikation von  Bewegungsdaten

2.3 Vorgehensweise

Page 14: Klassifikation von  Bewegungsdaten

Einlesen der Datensätze

• automatisiertes Einlesen in MySQL-DB

• Erkennung der Bewegung/Emotion anhand des Dateinamens

• Verarbeitung aller ptd-Dateien in angegebenem Verzeichnis

Page 15: Klassifikation von  Bewegungsdaten

Einlesen der Datensätze

• zusätzliche Schwierigkeit: nicht alle Daten in einer Datei entsprechen der Bewegung

• nur bestimmte Bereiche in einer Datei symbolisieren die eigentliche Bewegung

• Berücksichtigung einer weiteren Datei mit Metadaten

Page 16: Klassifikation von  Bewegungsdaten

Implementierung RNN

• sehr gute Unterstützung der Entwicklung eigener Knoten durch KNIME

• KNIME basiert auf Eclipse

• KNIME-Knoten = Eclipse-Plugin

Page 17: Klassifikation von  Bewegungsdaten

Implementierung RNN

• KNIME erweitert Eclipse um erforderliche Assistenten für neues Projekt bzw. Export

• optional: KNIME erzeugt funktionierenden Beispielcode für neuen Knoten

• Debugging direkt im KNIME möglich

Page 18: Klassifikation von  Bewegungsdaten

Implementierung RNN

• Entwicklung eines Knotens für KNIME, der RNN anlernt und das trainierte Netz abspeichert– Nutzung der Java-Bibliothek

• Konfiguration sämtlicher Parameter sowie der Netzart durch Konfigurationsdialog

• Entwicklung eines Knotens für KNIME, der mit einem trainierten RNN Daten vorhersagen kann – Einlesen des vormals abgespeicherten Netzes

Page 19: Klassifikation von  Bewegungsdaten

Konfigurationsdialog

Screenshot Konfigurationsdialog

Page 20: Klassifikation von  Bewegungsdaten

Punktdaten -> Richtungsvektoren

• Entwicklung eines Knotens der Punktdaten in Richtungsvektoren umrechnet- Netz mit Bewegungsrichtung statt absoluten Punktkoordinaten

trainieren- bessere Chancen, dass RNN Bewegung wieder erkennt

Screenshot Punktdaten (tabellarische Ausgabe KNIME) Screenshot Vektordaten (tabellarische Ausgabe KNIME)

Page 21: Klassifikation von  Bewegungsdaten

Aufbau der Knoten in KNIME

Screenshot Oberfläche KNIME

Page 22: Klassifikation von  Bewegungsdaten

Visualisierung

• Entwicklung eines separaten Java-Programms zum Visualisieren der 3D-Punktdaten– unabhängig von den beiden Programmen mit Java3D

• Kommunikation zwischen KNIME und Viewer über Socket-Schnittstelle

• Viewer hört bestimmten Port ab und stellt die empfangenen Daten dar– Unabhängig, auch andere Tools könnten Daten senden– 2 Möglichkeiten zur Datenaufnahme und Visualisierung

implementiert• kann kompletten Datensatz empfangen und selbständig

nacheinander abspielen• Taktung von außen, nur ein Datum empfangen -> sofortige

Darstellung

Page 23: Klassifikation von  Bewegungsdaten

Visualisierung

• Knoten in Entwicklungsumgebung erstellt, der Daten per Socket an Viewer sendet

• Daten werden übers „Netzwerk“ geschickt– KNIME fungiert als Client, Viewer als Server– Keine Zwischenspeicherung der Daten erforderlich

• Bewegung der einzelnen Punkte in Abhängigkeit von der Zeit sowie Anpassung des Farbtons je nach Bewegungsart

Page 24: Klassifikation von  Bewegungsdaten

Konfiguration des Viewer-Knotens

Screenshot Konfigurationsdialog Viewer-Knoten

Page 25: Klassifikation von  Bewegungsdaten

3. Auswertung

3.1 Implementierung RNN

Page 26: Klassifikation von  Bewegungsdaten

Entwicklung eigener Knoten

• Entwicklung eigener Knoten in KNIME nutzerfreundlich

• Kommunikation zw. KNIME und MySQL-Server bzw. KNIME und Viewer reibungslos

• Verarbeitung von den ~80000 Datensätzen dauert (je nach Konfiguration) mehrere Minuten – akzeptabel– Ausnahme: Training des RNN, je nach Konfiguration

5-15 Minuten

Page 27: Klassifikation von  Bewegungsdaten

Entwicklung eigener Knoten

• Schwierigkeiten bei RapidMiner!• Prinzipiell unterstützt RapidMiner die Erstellung eigener

Programmknoten• Handbuch zur Erweiterung von RapidMiner ist kostenpflichtig (40€)• Nutzung des Handbuchs von älterer Version 4.6 (aktuell 5.0)

– Hier: Anlegen eines Plugins nicht beschrieben nur der Aufbau• Versuch der Implementierung mit Plugin-Vorlage der Uni-Dortmund

– Kompilierung mit Hilfe von Ant – Folglich Einbindung von Ant in Eclipse per Installation der Development

Enviroment (Eclipse Plugin)– Plugin-Methodennamen haben sich zu Version 5.0 geändert…usw.

• -> Abbruch der Bemühungen bei RapidMiner• Teil der Aufgabe: „Vergleich der beiden Programmierumgebungen“

– Entscheidung für KNIME

Page 28: Klassifikation von  Bewegungsdaten

Vorhersageergebnisse

• Darstellung der Ergebnisse im Viewer wie gefordert

• Vorhersageergebnisse des Jordan Netzwerk zufrieden stellend

• für Elman Netzwerk nicht zufrieden stellend• Mögliche Ursachen:

– Implementierung der RNN, da nicht professionell– RNN ungeeignet, da eher für zeitlich codierte

Informationen geeignet

Page 29: Klassifikation von  Bewegungsdaten

Programmpräsentation

Page 30: Klassifikation von  Bewegungsdaten

Danke für die Aufmerksamkeit

Für Fragen stehen wir jetzt gern zur Verfügung!