Gesture Mouse veröffentlicht
Software für Alternative Computereingabe (HCI)
Im Rahmen des WBT-Projektes wurde untersucht, welche alternativen Eingabemethoden sich für Menschen mit eingeschränkter Mobilität zur Human Computer Interaction (HCI) eignen. Das Ziel war, fortschrittliche datenbasierte Methoden für HCI-Zwecke einzusetzen und zu evaluieren. Zwei Richtungen wurden verfolgt:
- Die Evaluation von Deep Learning-basierten Eye Tracking Lösungen
- Die Entwicklung einer Computermaus- und Tastatur-Steuerung, die durch Kopfhaltung und Gesichtsgesten angesteuert werden kann.
Diese Arbeiten wurden von WBT-Mitarbeiter Patrick Link (FH Technikum Wien - Department Computer Science) in Zusammenarbeit mit Martin Deinhofer (Projektleitung Inclusion International) durchgeführt. Nun steht ein Prototyp der Software als Open Source zum kostenfreien Download zur Verfügung.
Evaluation von Low-Cost Eye-Tracking
Sogenannte "Eyegaze-Tracker" messen die Blickrichtung von AnwenderInnen auf den Computerbildschirm und erlauben es dadurch, die Computermaus ohne Handinteraktion zu steuern. Aktuelle Lösungen verwenden spezielle Hardware, welche Infrarot-Lichtpunkte auf das Auge projizieren und durch die Interpretation der Reflexionen die Blickrichtung berechnen können. Diese Lösungen sind meist teuer, insbesondere wenn die Software für Computersteuerung und Unterstützte Kommunikation (AAC) lizensiert ist. Preisgünstige Lösungen schließen teilweile eine Verwendung in solchen Kontexten explizit aus. Eye-Tracker haben zusätzlich meist das Problem, dass die Lichtpunkte von einer Brille gespiegelt werden und dadurch für Brillenträger eine stark reduzierte Genauigkeit entsteht.
Als Alternative zu spezialisierten Hardwarelösungen wurde die Verwendung einer handelsüblichen Webcam zusammen mit Deep Learning-basierten Eye-Tracking-Verfahren evaluiert. Wir haben folgende Vor- und Nachteile identifiziert:
- Die Verwendung von Deep Learning für Eye-Tracking bietet einige Vorteile- so ist etwa nur eine Webcam erforderlich, wodurch die Installation und Konfiguration vereinfacht werden.
- Andererseits benötigen Deep Learning Modelle eine hohe Rechenleistung. Dies führt oft zu einer hohen Latenz und geringen Updateraten, was für eine Steuerung der Mausbewegung störend ist.
- Die Genauigkeit von WebCam-basierten Eye-Tracking-Methoden reicht im Allgemeinen nicht aus, um den Mauscursor präzise zu steuern, was die Benutzerfreundlichkeit beeinträchtigt. Auch hier bestehen Schwierigkeiten bei BrillenträgerInnen. Die Anpassung an individuelle Unterschiede der Benutzer ist oft nicht möglich.
Keyboard-Aktivitäten durch Gesichtsgesten
Als eine Alternative zum reinen Eye-Tracking wurde deshalb ein System implementiert, welches die Kopfhaltung für die Steuerung des Mauscursors einsetzt und bestimmte Gesichtsgesten zur Aktivierung von Mausklicks und/oder zur Betätigung von Tasten des Keyboards verwendet. Hierbei wird ein Live-Videobild über eine Webcam aufgenommen und durch eine Python Applikation ausgewertet. Alternativ zur Webcam kann auch ein iPhone mit Face-ID Funktion (3d-Kamera) verwendet werden, was eine präzisere Bestimmung der Gesichtgesten erlaubt.
Bildverarbeitung
Das Machine Learning Framework Mediapipe und die OpenCV Computer Vision Bibliothek werden verwendet, um Bilder von der Webcam auszulesen und zu interpretieren. Die Verwendung von OpenCV und der Mediapipe Library macht eine Echtzeitverarbeitung der Bilder möglich. Mediapipe bestimmt hierbei für jedes Bild die Position des Gesichtes und weiterer "Facial Landmarks". Diese Punkte markieren wichtige Positionen und Konturen im Gesicht, wie etwa die Position der Nasenspitze oder die Kontur des Kinns. Zusätzlich bestimmt Mediapipe Parameter der Gestik, die einem Animationsstandard entsprechen. Es können aber auch eigene Gesten definiert werden. Diese werden anhand der berechenten Landmark-Positionen von einem selbst entwickelten Verfahren (basierend auf einem Support Vector Model) klassifiziert. Die Kopfhaltung kann entweder von Mediapipe oder durch Verwendung eines PnP Algorithmus bestimmt werden. Der PnP Algorithmus hat sich für diesen Anwendungsfall als stabiler herausgestellt.
Da die Position der Landmarks, die Kopfhaltung und die Auswertung der Gesten Störfaktoren unterliegen, werden diese Werte mit Hilfe von Kalman-Filter geglättet. Die Stärke des Filters kann eingestellt werden. Ein hoher Filterwert führt zwar zu einem rauschfreieren Resultat, doch reagiert das System langsamer auf Veränderungen, deshalb ist eine individuelle Einstellung nötig. Ein zusätzlicher Vorteil ist, dass bestimmte Aktivitäten, die eine Auswertung von Gesten negativ beeinflussen können - zum Beispiel ein kurzes "Blinzeln" - durch die Filter unterdrückt werden können.
In der folgenden Abbildung ist die Auswertung der "Mund auf" (Jaw Open) - Geste als Graph dargestellt.
Maus-Modus
Zur Unterstützung verschiedener Use-Cases und Mobilitätsgrade wurden mehrere Modi zur Steuerung der Maus implementiert. Ein Problem ist, dass viele Anwendungsprogramme sehr kleine Kontrollelemente verwenden. Daher müssen genaue Mausbewegungen möglich sein. Wenn die Übersetzung von Kopfbewegungen zu Mausbewegungen aber direkt und hochauflösend eingestellt wird, kann der gesamte Bildschirmbereich nicht abgedeckt werden. Ein weiteres Ziel ist, dass die Maussteuerung auch für Computerspiele verwendet werden kann. Um möglichst viele Verwendungszwecke abzudecken, werden daher vier Arten der Maussteuerung unterstützt:
- Absolut: In diesem Modus wird die Auslenkung der Kopfhaltung vom einem definierbaren Nullpunkt direkt, mit einem einstellbaren Faktor, auf die Mausposition abgebildet.
- Relativ: In diesem Modus wird die Veränderung der Kopfhaltung im Vergleich zur letzten Kopfhaltung durch einstellbare Beschleunigungs- und Sensitivitätswerte auf die Veränderung der momentanen Mausposition abgebildet. Die Beschleunigung führt dazu, dass langsame bzw. schnelle Bewegungen einen kleineren bzw. größeren Einfluss auf die Auslenkung haben. Auch in diesem Modus kann die Maus zentriert und ein neuer Nullpunkt definiert werden.
- Joystick: In diesem Modus wird die die Auslenkung der Kopfhaltung vom einem definierbaren Nullpunkt auf die Geschwindigkeit der Maus in diese Richtung abgebildet. Durch die Beschleunigungsparameter kann eine nichtlineare Abhängigkeit hergestellt werden, so dass kleine Auslenkungen eine relativ kleinere Geschwindigkeit, bzw. große Auslenkungen eine relativ größere Geschwindigkeit auslösen. Auch ein umgekehrtes Verhalten kann eingestellt werden, wenn der Beschleunigungsfaktor a kleiner als 1 eingestellt wird.
- Hybrid: Dieser Maus-Modus ist speziell für kleine GUI-Elemente in einem großen Fenster (bzw. für eine hohe Bildschirmgröße/-auflösung) konzipiert. In diesem Modus gibt es zwei definierbare Zonen: In der äußeren Zone wird die Joystick-Maus verwendet, damit man in die Umgebung von weit entfernten GUI-Elementen gelangt. In der inneren Zone wird eine relative Maus mit kleiner Sensitivität verwendet, damit auch sehr kleine GUI-Elemente präzise ausgewählt werden können
Tastatur-Aktionen und Profilwechsel
Mausklicks und Tastatur-Aktivitäten können durch gewünschte Gesten ausgelöst werden. Die Art, wie Tasten betätigt werden, ist dabei einstellbar: Eine Taste kann sowohl beim Überschreiten als auch beim Unterschreiten eines Schwellwertes gedrückt oder losgelassen werden. Zudem ist es möglich, dass die Taste nur einmal oder mehrmals betätigt wird. Die vielfältigen Kombinationsmöglichkeiten erlauben es, verschiedene Verhalten zu definieren - angepasst an die jeweilige Applikation.
Um sicher zu gehen, dass Tasten- bzw. Mausklicks nicht versehentlich ausgelöst werden, ist eine Verzögerung einstellbar: Die Geste muss so lange gehalten werden, bis eine einstellbare Zeit verstreicht. Dies stellt sicher, dass ungewollte Bewegungen nicht als User-Aktionen interpretiert werden. Für die Einstellung des Schwellwertes zur Auslösung von Aktivitäten wurde ein GUI-Element entwickelt, das die aktuelle Stärke der Geste in einem "Slider"-Element darstellt. Dadurch ist es sehr einfach möglich, den geeigneten Wert zu finden.
Einstellungen können in sog. "Profilen" gespeichert und wieder geladen werden. Es kann etwa pro Applikation oder Spiel ein eigenes Profil angelegt werden, sodass die benötigten Tasten und Mauseinstellungen zur Verfügung stehen. Maus- und Tastaturprofile können frei kombiniert werden.
Die GestureMouse Applikation ist über GitHub verfügbar, Instruktionen zur Verwendung und Installation werden in der Readme-Datei bereitgestellt.
Kommentare
Keine Kommentare