Klassifikation von
Download
1 / 30

Klassifikation von Bewegungsdaten - PowerPoint PPT Presentation


  • 82 Views
  • Uploaded on

Klassifikation von Bewegungsdaten. Gliederung. 1. Aufgabenstellung 2. Vorgehensweise 2.1 Ausgangslage 2.2 Probleme 2.3 Durchführung 3. Auswertung 3.1 Implementierung Rekurrente Neuronale Netze 3.2 Vorhersageergebnisse der Rekurrenten Neuronalen Netze. 1. Aufgabenstellung.

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'Klassifikation von Bewegungsdaten' - liv


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
Klassifikation von bewegungsdaten

Klassifikation von Bewegungsdaten


Gliederung
Gliederung

1. Aufgabenstellung

2. Vorgehensweise

2.1 Ausgangslage

2.2 Probleme

2.3 Durchführung

3. Auswertung

3.1 Implementierung Rekurrente Neuronale Netze

3.2 Vorhersageergebnisse der Rekurrenten Neuronalen Netze


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)


2 vorgehensweise 2 1 ausgangslage
2. Vorgehensweise2.1 Ausgangslage


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


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


Knime und rapidminer
KNIME und RapidMiner

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

Quelle: http://de.wikipedia.org/wiki/RapidMiner


Ausgangslage
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



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
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


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



Einlesen der datens tze
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 tze1
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
Implementierung RNN

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

  • KNIME basiert auf Eclipse

  • KNIME-Knoten = Eclipse-Plugin


Implementierung rnn1
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 rnn2
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
Konfigurationsdialog

Screenshot Konfigurationsdialog


Punktdaten richtungsvektoren
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
Aufbau der Knoten in KNIME

Screenshot Oberfläche KNIME


Visualisierung
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


Visualisierung1
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
Konfiguration des Viewer-Knotens

Screenshot Konfigurationsdialog Viewer-Knoten


3 auswertung 3 1 implementierung rnn
3. Auswertung 3.1 Implementierung RNN


Entwicklung eigener knoten
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 knoten1
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
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



Klassifikation von bewegungsdaten

Danke für die Aufmerksamkeit

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