Upload
dedrich-geck
View
104
Download
0
Embed Size (px)
Citation preview
Masterseminar
Robert NeßelrathLehrstuhl Wahlster 2007
Framework zum Klassifizieren von Gesten basierend auf multiplen Sensoren
Übersicht
Wiimote WEKA – Klassifikator Vorverarbeitung der Beschleunigungsdaten Modularisierung des Frameworks
Klassifikationsebene Anwendungsebene
Präsentation des aktuellen Entwicklungsstatus Offene Probleme
Übersicht
Wiimote WEKA – Klassifikator Vorverarbeitung der Beschleunigungsdaten Modularisierung des Frameworks
Klassifikationsebene Anwendungsebene
Präsentation des aktuellen Entwicklungsstatus Offene Probleme
Wiimote Kommunikation über Bluetooth Eingabe
12 Knöpfe 3 Beschleunigungssensoren mit Messbereich von
-/+ 3g Infrarotsensor zum Erkennen von 2 Infrarotspots
Ausgabe Vibrationseffekte Lautsprecher LEDs
Erweiterungsmöglichkeit über Steckkontakt entweder mit klassischem Controller oder Nunchunk-Controller (Analogstick mit Bewegungssensor)
Kompatible Bluetoothstacks
Windows XP native Stack funktioniert nicht Blue Soleil Widcomm Stack Toshiba Notebook Stack Apple iBook Linux BlueZ Bluetooth Driver
Auslesen der Wiimote-Informationen 2 Modi:
Wiimote sendet permanent den Zustand von Knöpfen und Sensoren
Wiimote sendet nur bei Knopfdruck
APIs für verschiedene Programmiersprachen unterstützen das Auslesen der Information, u.a. Java, C, C#, Flash, Perl…
weitere Informationen unter:http://www.wiili.org/index.php/Wiimote-api
Messwerte
Zustand der Knöpfe Position der Infrarotspots Werte der Beschleunigungssensoren Informationen über evtl. angeschlossenen Controller
graphische Darstellung der Beschleunigungsdaten über ein Zeitintervall
Messwerte (cont.)
Linksbewegung
Rechtsbewegung
Kreisbewegung
Übersicht
Wiimote WEKA – Klassifikator Vorverarbeitung der Beschleunigungsdaten Modularisierung des Frameworks
Klassifikationsebene Anwendungsebene
Präsentation des aktuellen Entwicklungsstatus Offene Probleme
WEKA
Waikato Environment for Knowledge Analysis entwickelt an der University of Waikato in
Neuseeland umfangreiche Javabibliothek zur Klassifikation
und Clustering implementiert viele aktuelle Machine Learning
und Data Mining Algorithmen Funktionen sind entweder über eine graphische
Benutzeroberfläche oder eine Java API ansprechbar
http://www.cs.waikato.ac.nz/~ml/index.htm
WEKA Klassifikator
verschiedene Klassifikatoren verfügbar Entscheidungsbäume Naive Bayes Neuronale Netze …
WEKA Klassifikator
outlook temperature humidity windy play
sunny 85 85 FALSE no
rainy 65 70 FALSE yes
overcast 81 75 FALSE yes
nominale Attribute
numerische Attribute
Fixe Anzahl an Attributen Attribute der Daten bestehen aus nominalen und
numerischen Werten Beispiel für Datensatz:
Übersicht
Wiimote WEKA – Klassifikator Vorverarbeitung der Beschleunigungsdaten Modularisierung des Frameworks
Klassifikationsebene Anwendungsebene
Präsentation des aktuellen Entwicklungsstatus Offene Probleme
Vorverarbeitung der Beschleunigungsdaten Problem:
gemessene Gesten sind unterschiedlich langwerden dadurch durch unterschiedlich große
Datensätze beschriebenWeka akzeptiert nur feste Anzahl an
AttributenDaten müssen vereinheitlicht werden, das
Signal aber weiterhin möglichst eindeutig beschreiben
Vorverarbeitung der Beschleunigungsdaten 1. Ansatz: äquidistantes Gitter über Daten legen
Vorverarbeitung der Beschleunigungsdaten Vorteile:
einfache Idee schnelle Implementierung gute Ergebnisse für einfache Bewegungen
Nachteil: Schwächen beim Erkennen von komplizierten Gesten
wie z.B. Zahlen oder Buchstaben
Vorverarbeitung der Beschleunigungsdaten 2. Ansatz:
Beschreiben der Kurven durch Attribute Mittelwert Standardabweichung Maximalwert Minimalwert Haltung des Controllers am Anfang/Ende der
Bewegung Dauer der Bewegung Anzahl lokale Maxima/Minima in Intervallen
Vorverarbeitung der Beschleunigungsdaten
Maxima / Minima ermitteln
Vorverarbeitung der Beschleunigungsdaten Vorteile:
Bessere Klassifikationsergebnisse Erkennung von periodischen Vorgängen
unterschiedlicher Länge
Übersicht
Wiimote WEKA – Klassifikator Vorverarbeitung der Beschleunigungsdaten Modularisierung des Frameworks
Klassifikationsebene Anwendungsebene
Präsentation des aktuellen Entwicklungsstatus Offene Probleme
Modularisierung des Frameworks
Anwendungsebene
Klassifikator
Sensor
TCP/IP Socket
Klassifikationsebene
TCP/IP Socket
Klassifikationsebene
Implementiert in Java Kommunikation erfolgt über Socketverbindung Plattformunabhängigkeit Zusätzliche Möglichkeit, Gestenklassifikations-
Methoden direkt aufzurufen
Klassifikationsebene
TCP / IPSocket
Klassifikator (z.B. Weka)
Java - Schnittstelle
Datenbankmit erlernten Signalen
Klassifikator Schnittstelle
- Signal beschreibende Attribute finden- von Klassifikator lesbares Datenformat erzeugen- Zugriff auf Klassifikator – Methoden zum
-Lernen-Klassifizieren
von Signalen- Organisation der erlernten Daten in Datenbanken
Java Daemon
Aufgaben:Reaktion auf Anfragen der Anwendungen-Gesten erlernen-Gesten erkennen
XML Anfragen parsen
Klassifikator Methoden aufrufen
Schnittstelle zur Anwendungsebene
Klassifikationsebene
Kommunikation in Xml
<GestureClassificatorRequest>
<LearnData user="robert" tag="kreis">
<Signal>
<value>1.234</value>
…
</Signal><Signal>
<value>0.863</value>
…</Signal><Signal>
<value>.324</value>…
</Signal>
</LearnData>
</GestureClassificatorRequest>
Klassifikationsebene
<LearnData> - schickt zu erlernendes Signal an den Server
<ClassifyData> - schickt zu klassifizierendes Signal an den Server
Antwort ist das klassifizierte Tag
<UserExists> - prüft, ob erlernte Daten für User vorhanden sind
<CheckForTag> - prüft, ob ein Tag für einen User bereits erlernt wurde
Evtl. noch weitere Funktionalität nötig, zum Beispiel das Löschen von Tags
Anwendungsebene
Implementiert in C# .NET Starke Modularisierung Soll das schnelle Ersetzen von Sensoren ermöglichen Anwendungsentwickler können schnell auf die
Funktionalität der Gestenerkennung zugreifen
Anwendungsebene
Wiimote API
Sensorschnittstelle
Anwendung zum Erlernen von GestenGestengesteuerte Anwendung
Kommunikationsschnittstelle zur Klassifikationsebene
TCP / IP Socket
Wiimote Zugriff Sensorzugriff
Übersicht
Wiimote WEKA – Klassifikator Vorverarbeitung der Beschleunigungsdaten Modularisierung des Frameworks
Klassifikationsebene Anwendungsebene
Präsentation des aktuellen Entwicklungsstatus Offene Probleme
Übersicht
Wiimote WEKA – Klassifikator Vorverarbeitung der Beschleunigungsdaten Modularisierung des Frameworks
Klassifikationsebene Anwendungsebene
Präsentation des aktuellen Entwicklungsstatus Offene Probleme
Finden von Attributen um die Erkennung evtl. noch Verbessern zu können
Ähnliche Probleme aus der Signal-, Sprach- und Bilderkennung können Ideen geben
Offene Probleme