klassifikation von bewegungsdaten
Post on 01-Feb-2016
53 Views
Preview:
DESCRIPTION
TRANSCRIPT
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
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)
2. Vorgehensweise
2.1 Ausgangslage
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
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
KNIME und RapidMiner
Quelle: http://de.wikipedia.org/w/index.php?title=Datei:Knime.jpg Quelle: http://de.wikipedia.org/wiki/RapidMiner
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
2.2 Probleme
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
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
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
2.3 Vorgehensweise
Einlesen der Datensätze
• automatisiertes Einlesen in MySQL-DB
• Erkennung der Bewegung/Emotion anhand des Dateinamens
• Verarbeitung aller ptd-Dateien in angegebenem Verzeichnis
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
Implementierung RNN
• sehr gute Unterstützung der Entwicklung eigener Knoten durch KNIME
• KNIME basiert auf Eclipse
• KNIME-Knoten = Eclipse-Plugin
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
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
Konfigurationsdialog
Screenshot Konfigurationsdialog
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)
Aufbau der Knoten in KNIME
Screenshot Oberfläche KNIME
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
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
Konfiguration des Viewer-Knotens
Screenshot Konfigurationsdialog Viewer-Knoten
3. Auswertung
3.1 Implementierung RNN
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
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
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
Programmpräsentation
Danke für die Aufmerksamkeit
Für Fragen stehen wir jetzt gern zur Verfügung!
top related