Gestenbasierte Steuerung von interaktiven Umgebungen mithilfe der Microsoft Kinect
Student: Ludwig Schmutzler
Betreuer: Dipl.-Medieninf. Sören König
Verantwortlicher Hochschullehrer: Prof. Dr. Stefan Gumhold
Motivation
Als Alternative zu konventionellen Geräten wie Tastatur und Maus stellt die gestenbasierte Eingabe ein reizvolles Anwendungsfeld in der Disziplin der Mensch-Computer-Interaktion dar. Hierbei werden die Bewegungen einer interagierenden Person erfasst und interpretiert, um virtuelle Anwendungsobjekte zu steuern oder Aktionen auszulösen. Die Faszination der berührungslosen Interaktion scheint immanent, nicht zuletzt unter der reichen Ideen- und Bilderflut aus Science Fiction Literatur oder Filmen, welche häufig unkonventionelle Eingabeformen aufzeigen und damit einen Ansporn zur deren Verwirklichung setzen.
Angetrieben durch das aktuelle Interesse der Unterhaltungsbranche sind heutzutage preisgünstige kommerzielle Sensoren verfügbar, welche die Erfassung von menschlichen Körperhaltungen und Bewegungen realisieren. Wo bisher aufwändige und groß-skalige Systeme wie Kamera-Installationen in Motion-Capture-Räumen benötigt wurden, versprechen heute Geräte wie die Microsoft Kinect eine akzeptable Bewegungserfassung und Skelettdatengenerierung in einem kleinen effektiven Kamerablickfeld. Ziel der Arbeit war, auf diesem Potenzial aufbauend, eine robuste Erkennung von Gesten des Oberkörpers in Echtzeit zu realisieren.
Beschreibung
Ausgehend von einer Analyse und taxonomischen Einordnung von Nutzergesten im Kontext virtueller Anwendungen wurde ein Modell zur Beschreibung von Körperhaltungen entwickelt (Posenmodell), welches die Definition verschiedener Gesten des Oberkörpers ermöglicht. Insbesondere erfolgte hierbei eine funktionale Trennung zwischen Händen und Armen sowie die Unterscheidung von objektbezogenen (manipulativen), ortsbezogenen (deiktischen) und zeichenhaften (semaphorischen) Gesten, deren Erkennung sowohl in statischer als auch in dynamischer Ausprägung realisiert wurde.
Zur Beschreibung semaphorischer Gesten des Oberkörpers wurde weitergehend ein trajektorienbasierter Ansatz gewählt, welcher dem Anwender u.a. frei definierbare Gesten über die Aufzeichnung seiner Bewegungen in einem Trainingsschritt erlaubt. Bei der Erkennung der semaphorischen Gesten wurden zwei wesentliche Problemstellungen gelöst: Das Auffinden einer potenziellen Geste aus der kontinuierlichen Bewegung des Nutzers heraus sowie das Klassifizieren derselbigen unter Zuhilfenahme verschiedener Distanzmaße. Das zuletzt genannte Problem schließt insbesondere Mechanismen zur Behandlung unterschiedlich langer Gesten ein.
Weitere Kernaspekte der Untersuchungen waren die robuste nicht-lineare Übersetzung der Handpositionen in virtuelle Zeigerpositionen sowie die Klassifikation der geöffneten und geschlossenen Hand über die Ermittlung der Handkonturlinie in rotations-, translations- und skalierungsinvarianten Polarkoordinaten. Diese Verfahren ermöglichten die virtuelle Abstraktion der Hand als Zeige- und Greifinstrument, z.B. zur Realisierung von Drag&Drop-Funktionalitäten in interaktiven Umgebungen.
Ergebnisse
Zur Evaluierung des entwickelten Gestenerkennersystems wurden verschiedene praxisorientierte Tests durchgeführt, so z.B. die "On-The-Fly"-Erkennung der semaphorischen Gesten zur Laufzeit oder die Klassifikationsgüte der Handform in Bezug auf den Abstand des Nutzers zur Kinect. Mit Blick auf die Echtzeitfähigkeit wurden u.a. verschiedene Systemparameter ermittelt, um die Latenz des Systems minimal zu halten. Dies ist v.a. bei der direkten Manipulation virtueller Objekte ausschlaggebend, um eine zweckdienliche und angenehme Nutzerinteraktion zu ermöglichen. Es konnte letztendlich ein System entwickelt werden, dass nutzerdefinierte Gesten robust und performant erkennen kann, solange bestimmte Anforderungen an den Aufstellort der Kinect und an den Abstand des Nutzers eingehalten werden. Dies betrifft für die Handerkennung in erster Linie einen Maximalabstand von ca. 1,9 m, welcher für eine gute Erkennung nicht überschritten werden sollte und für die Oberkörpergestenerkennung den Minimalabstand von ca. 1,3 m zur korrekten Skelettdaten-Generierung durch den Microsoft Kinect Sensor. Der resultierende optimale Tiefenbereich ist für Test- und Heimanwendungen als ausreichend einzustufen. Des Weiteren muss darauf geachtet werden, dass die Hand frontal zur Kamera zeigt, um eine gute Erkennung der Handform zu gewährleisten.
Grundsätzlich ließ sich feststellen, dass das Erkennungssystem trotz Filtermechanismen stark von der Güte der Sensordaten abhängt und eine Glättung der Daten nur mit einhergehender Latenz erfolgen kann. Insbesondere zur Erkennung von Handgesten aus größerer Entfernung wäre eine höhere spatiale Tiefenauflösung der Kinect wünschenswert. Zur genaueren Handpositionsverfolgung bei sehr schnellen Handbewegungen ist eine höhere zeitliche Auflösung nötig.
Tabelle 1: Gesamtergebnis für die Klassifikation der Handform in ausgewählten Distanzbereichen.
Distanzbereich | Korrektklassifikationsrate |
---|---|
1201 - 1600 mm | 100.00% |
800 - 1900 mm | 98.33 % |
> 1900 mm | 55.59 % |
Tabelle 2: Gesamtergebnis des Laufzeit-Klassifikationstests für zehn nutzerdefinierte Gesten.
Geste | n | R | F | N | KK | G |
---|---|---|---|---|---|---|
1 | 60 | 58 | 0 | 2 | 96.67 % | 100.00 % |
2 | 60 | 56 | 0 | 4 | 93.33 % | 100.00 % |
3 | 60 | 60 | 0 | 0 | 100.00 % | 100.00 % |
4 | 60 | 58 | 0 | 2 | 96.67 % | 100.00 % |
5 | 60 | 59 | 0 | 1 | 98.33 % | 100.00 % |
6 | 60 | 53 | 6 | 1 | 88.33 % | 98.15 % |
7 | 60 | 56 | 1 | 3 | 93.33 % | 90.32 % |
8 | 60 | 57 | 0 | 3 | 95.00 % | 100.00 % |
9 | 60 | 59 | 0 | 1 | 98.33 % | 100.00 % |
10 | 60 | 58 | 0 | 2 | 96.67 % | 100.00 % |
Gesamt | 600 | 574 | 7 | 19 | 95.67 % | 98.85% |
Legende: n - Anzahl der Eingaben; R - richtig erkannt; F - falsch erkannt; N - nicht erkannt; KK - Korrektklassifikationsrate; G - Genauigkeit der Erkennung
Ausblick
Die z-Werte der durch die Kinect ermittelten Skelettpunkte sind in Tiefenrichtung teilweise stark verfälscht, die Werte der x- und y-Koordinaten hingegen akzeptabel. Eine Lösung könnte in der synchronisierten Verwendung zweier Kinect Sensoren bestehen, die in einer 45°-Anordnung vor dem Nutzer positioniert werden. Gleichzeitig kann so der effektiv nutzbare Tiefenbereich für Interaktionen vergrößert und Tracking-Artefakte, wie sie bei der Überdeckung von Skelettpunkten entstehen, minimiert werden. Darüberhinaus könnte diese Anordnung der schlechten Klassifizierung der Handform entgegenwirken, die sich ergibt, wenn die Handfläche des Nutzers seitlich ausgerichtet ist. Als Erweiterung des Erkennungsverfahrens der Handform bietet sich die zusätzliche Einbeziehung und Auswertung des Videobildes an, dessen Auflösung höher als die des Tiefenbildes ausfällt. Des Weiteren könnte das entwickelte Verfahren dahingehend modifiziert werden, dass einzelne Fingerstellungen bzw. Fingergesten erkannt werden.
Testanwendungen
Analysetool
Im Rahmen der Implementierung wurde eine Applikation entwickelt, mit deren Hilfe die Mechanismen des Gestenerkennungssystem grafisch visualisiert werden können, so z.B. die Ausgabe der ermittelten Handkonturlinien oder das temporale Suchfenster, über das potenzielle semaphorische Gesten aus der kontinuierlichen Nutzerbewegung heraus gesucht werden. Auf dieser Grundlage konnte eine Analyse und Evaluierung der Verfahren stattfinden. Neben den Visualisierungsfunktionen ermöglicht das Analysetool ebenso das Training von Gesten. Für die Interaktion mit der Navigationsstruktur des Trainingsfensters wurde ein Button-basiertes Konzept entwickelt und implementiert.
Demo-Applikation "Kinect Terrain Modeler"
Zur praktischen Anwendung wurde eine Demonstrationsapplikation entwickelt, deren Bedienung durch Hand- und Oberkörpergesten erfolgt. Hierbei handelt es sich um einen schlicht strukturierten Editor, mit dessen Hilfe virtuelle Terrains modelliert und farblich gestaltet werden können. Die Grundlage bildet ein rechteckiges Höhendatenfeld mit konstanter Gittergröße, das dreidimensional dargestellt wird. Die Gestalt des Netzes lässt sich durch verschiedene Werkzeuge bearbeiten, die entweder über Oberkörpergesten oder ein Menü ausgewählt werden können, das auf interaktiven Buttons basiert. Die entsprechenden Trainingsdatensätze können hierzu aus einer Datei geladen werden. Die direkte manipulative Interaktion mit der Anwendung erfolgt schließlich mithilfe der Handgesten in Abhängigkeit des gewählten Werkzeuges. Hierbei stehen u.a. verschiedene Pinselspitzen zur Verfügung, mit denen die Terrain-Geometrie "gemalt" und modifiziert werden kann. Neben den vielfältigen Mitteln zur Manipulation der Terrainhöhendaten besteht zusätzlich die Möglichkeit, die Oberfläche des Modells ähnlich dem Airbrushing zu kolorieren sowie die Szene mittels einer frei positionierbaren Kamera zu erkunden. Die Höhen- und Farbdaten des fertig gestalteten Terrains lassen sich exportieren, z.B. zur Weiterverarbeitung durch andere Programme.