Masterseminar Robert Neßelrath Lehrstuhl 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:
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
WEKA Klassifikator verschiedene Klassifikatoren verfügbar Entscheidungsbäume Naive Bayes Neuronale Netze …
WEKA Klassifikator outlooktemperaturehumiditywindyplay sunny85 FALSEno rainy6570FALSEyes overcast8175FALSEyes 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 lang werden dadurch durch unterschiedlich große Datensätze beschrieben Weka akzeptiert nur feste Anzahl an Attributen Daten 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 / IP Socket Klassifikator (z.B. Weka) Java - Schnittstelle Datenbank mit 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 … ….324 …
Klassifikationsebene - schickt zu erlernendes Signal an den Server - schickt zu klassifizierendes Signal an den Server Antwort ist das klassifizierte Tag - prüft, ob erlernte Daten für User vorhanden sind - 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