Berührungslose QWERT-Z Eingabemethoden für interaktive Flächen
Transcription
Berührungslose QWERT-Z Eingabemethoden für interaktive Flächen
Freie Universität Berlin, Fachbereich Mathematik und Informatik Institut für Informatik, Studiengang Diplom Informatik Diplomarbeit am Institut für Informatik der Freien Universität Berlin Arbeitsgruppe: Intelligente Systeme und Robotik Berührungslose QWERT-Z Eingabemethoden für interaktive Flächen vorgelegt von: Marc Sperling Matrikelnummer: 4096185 marc.sperling@fu-berlin.de 25. Januar 2013 eingereicht bei: Prof. Dr. Raul Rojas EIDESSTATTLICHE ERKLÄRUNG Hiermit versichere ich, die vorliegende Arbeit zum Thema „Berührungslose QWERT-Z Eingabemethoden für interaktive Flächen" selbständig und unter ausschließlicher Verwendung der angegebenen Literatur und Hilfsmittel erstellt zu haben. Berlin, den 25. Januar 2013 Marc Sperling Inhaltsverzeichnis Abbildungsverzeichnis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . vii Tabellenverzeichnis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . x Quellcodeverzeichnis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xi Zusammenfassung xiv 1 Einleitung 1.1 Motivation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.2 Ziel der Arbeit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.3 Aufbau der Arbeit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 Grundlagen 2.1 Mensch-Computer-Interaktion . . . . . . . . . . 2.2 Eingabemethoden berührungssensitiver Systeme 2.3 Eingabemethoden berührungslose Systeme . . . 2.3.1 QWERT-Z . . . . . . . . . . . . . . . . 2.3.2 Fingergesten . . . . . . . . . . . . . . . 2.3.3 Handschrifterkennung . . . . . . . . . . 2.3.4 Alternative Eingabemethoden . . . . . . 2.4 Hardware für berührungslose Eingabemethoden 2.4.1 Tragende Hardware . . . . . . . . . . . . 2.4.2 Optische Verfahren . . . . . . . . . . . . 2.5 Interaktive Flächen . . . . . . . . . . . . . . . . 2.6 Zusammenfassung . . . . . . . . . . . . . . . . 3 Architektur und Entwicklung der QWERTZ 3.1 Verwendete Hardware . . . . . . . . . . 3.2 Verwendete Software . . . . . . . . . . . 3.2.1 OpenNI . . . . . . . . . . . . . . 3.2.2 Skeletterkennung . . . . . . . . . 3.2.3 Handtracker . . . . . . . . . . . . 3.2.4 OpenCV . . . . . . . . . . . . . . 3.2.5 ShugenDoEngine . . . . . . . . . 3.3 Rendern der virtuellen Tastatur . . . . . 1 1 2 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 5 8 20 20 21 22 23 24 24 27 37 40 Eingabemethoden . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 43 44 44 46 49 49 49 50 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . v Inhaltsverzeichnis 3.4 3.5 3.6 3.7 Objektselektierung . . . . Airshape . . . . . . . . . . 3.5.1 Architektur . . . . 3.5.2 Pfadgenerierung . 3.5.3 Pfadsimplifizierung 3.5.4 Pfadanalyse . . . . 3.5.5 Wörterbuchabfrage 3.5.6 Optimierung . . . Design . . . . . . . . . . . Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . über . . . . . . . . . 4 Evaluation 4.1 Evaluationsgegenstand . . . . . 4.2 Versuchsaufbau und Stichprobe 4.3 Ergebnisse . . . . . . . . . . . . 4.4 Diskussion . . . . . . . . . . . . 4.5 Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . SQL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 56 62 64 65 66 68 69 75 76 . . . . . 79 79 80 81 88 91 5 Zusammenfassung 93 5.1 Fazit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93 5.2 Ausblick . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94 Literaturverzeichnis vi 97 Verzeichnisse Abbildungsverzeichnis 2.1 2.2 2.3 2.4 2.5 2.6 2.7 2.8 2.9 2.10 2.11 2.12 2.13 2.14 2.15 2.16 2.17 2.18 2.19 2.20 2.21 2.22 2.23 Mensch Computer Interaktion - Benutzerschnittstellen. Quelle: [Kre05] . . Funktionsprinzip resistive Touchscreentechnologie. Quelle: [Sch08] . . . . . Funktionsprinzip kapazitive Touchscreentechnologie. Quelle: [Sch08] . . . . Funktionsprinzip Surface Acoustic Wave Touchscreentechnologie. Quelle: [Wal12] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . QWERT-Y Tastaturlayout entwurfen von Sholes, Glidden und Soule im Jahre 1898. Quelle: [Cor] . . . . . . . . . . . . . . . . . . . . . . . . . . . . Hardwaretastatur des Nokia 3310 (links). Quelle: [Sir02] Tastaturbelegung von Buchstaben bei T9 (rechts). Quelle: [Wika] . . . . . . . . . . . . . . . Standart Android Tastatur in der Version 4.1 Jelly Bean. Quelle: [t3n] . . iOS Anwendungsspezifische Tastaturlayouts . . . . . . . . . . . . . . . . . SHARK bei der Eingabe des Wortes „word “ auf einem QWERT-Z Layout 8Pen Eingabelayout . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8Pen Eingabenabfolge des Buchstaben „B“ . . . . . . . . . . . . . . . . . . 8Pen Eingabenabfolge des Buchstaben „D“ . . . . . . . . . . . . . . . . . . Darstellung der Funktionsweise von MessagEase und Flit über ziehen des Fingers zwischen Quadranten. . . . . . . . . . . . . . . . . . . . . . . . . . Dasher Eingabelayout Quelle: [Mac06] . . . . . . . . . . . . . . . . . . . . Xbox 360 Texteingabemethode über ABCDE-F Tastaturlayout und Arraymethode. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ablauf zur Fingerdetektion. Quelle: [09a] . . . . . . . . . . . . . . . . . . . Gesten der deutschen Zeichensprache. Quelle: [Fak] . . . . . . . . . . . . . Stilisierten Buchstaben als Unistrokes und das Graffiti Alphabet. Der schwarze Punkt signalisiert die Startposition. Quelle: [Sir02] . . . . . . . . Adaptierte 8Pen-Methode für Berührungsloseeingabe. Quelle: [Dan] . . . . Speech- and gesture-based Dasher input. Quelle: [Mac06][Lod11] . . . . . Motion Capturing vom Marker zum Skelett. Quelle: [Hor] . . . . . . . . . Nintendo WiiMote Beschleunigungsachsen. Quelle: [Gra] . . . . . . . . . . Funktionsweise und Aufbau des Playstation 3 Move Controller von Sony . 7 9 9 10 11 12 13 14 14 16 17 17 18 19 21 21 22 23 23 24 26 26 27 vii 2.24 Triangulierung über die Winkel aus Kombination zwischen Fokusierungsrichtung β und Disparität α. Quelle: [Föl10] . . . . . . . . . . . . . . . . . 2.25 Aufnahme zwei realer Punkte P und Q über zwei Kameras. Quelle: [Föl10] 2.26 Rektifizierung einer tangentialen Verzerrung. [Föl10] . . . . . . . . . . . . 2.27 Schematischer Aufbau eines aktiven StereoVision-Systems (links). Geometrische Analyse zur Berechnung der Tiefeninformationen (rechts). . . . . . 2.28 Infrarot Punktmuster des Primsense-Verfahren. Quelle: [Rei11] . . . . . . 2.29 Räumlicher Versatz der Lichtpunkte, für im Lichtmuster befindliche Objekte. 2.30 Unterschiedlicher Aufnahmebereich der Kinect mit aktivierten Near Field Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.31 Übersicht verschiedener ToF-Verfahren. Quelle: [Spi10] . . . . . . . . . . . 2.32 Time of Flight Continuous Wave Modulation Verfahren. Quelle: [Ino] . . . 2.33 Interaktive Boden- und Wandprojektionen mittels Beamer und LCD. . Quelle: [UG] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.1 3.2 3.3 3.4 3.5 3.6 3.7 3.8 3.9 3.10 3.11 3.12 3.13 3.14 3.15 viii 28 29 30 31 32 32 33 35 37 39 3 Schichten Architektur von OpenNI. Quelle: [Pri10a] . . . . . . . . . . . . 45 3 Schichten Architektur von OpenNI incl. Middleware NITE. Quelle: [Pri10a] 46 Flowchart des Skelett-trackings in OpenNI & NITE . . . . . . . . . . . . . 46 Psi Pose und erkannte Skelett (links) NITE Handtracker auf Kinect-Tiefenbild (rechts). Quelle: [Pri10a] . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 Architektur der Open Source Computer Vision Bibliothek. Quelle: [Joh08] 50 Abfolge der Schritte zur Zeichnung eines Tastaturbuttons. . . . . . . . . . 52 Standard Grab-Release Geste zur Objektselektierung Quelle: [Hen11b] . . 53 Links: OpenCV Silhouette der Hand mit markierten konvexen (orange) und konkaven (blau) Winkeln. Rechts: Dazugehöriges mit Kinect aufgenommenes Tiefenbild in Grauwerten, aufgenommen mit Kinect. . . . . . . 54 Standard Druck-Geste zur Objektselektierung Quelle: [Hen11b] . . . . . . 55 Zwei unterschiedliche optimale Sokgraphen für das gleiche Wort „Graph“ auf einem Metropolis-Layout und QWERTZ-Layout. Der rote Punkt markiert den Anfang sowohl des Wortes als auch des Sokgraphs. . . . . . . . . 56 Ein Nutzer schreibt das Wort „system“ auf einem ATOMIK-Layout (blau). Dagegen der generierte Sokgraph in rot für das gleiche Wort. Der ideale Graph ist hinsichtlich Positionierung und Ausmaß weit vom Eingabegraph entfernt. Quelle: [ZK08] . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 SHARK Multi-Channel Architektur zur Erkennung von Sokgraphen. Quelle: [ZK08] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58 Ein identischer Sokgraph für die beiden Wörter heel(blau) und root(rot) (confused pair). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59 Software-Architektur von AirShape . . . . . . . . . . . . . . . . . . . . . . 62 Eingabegraph über die Hardwaremaus(oben). Eingabegraph mit starkem „Zittern“ über das Handtrackingverfahren von NITE (unten). . . . . . . . 64 Abbildungsverzeichnis 3.16 Funktionsprinzip der Liniensimplifizierung anhand des Douglas-Peucker Algorithmus Quelle: [Zim07] . . . . . . . . . . . . . . . . . . . . . . . . . . 3.17 Anwendung von Douglas-Peucker-Algorithmus auf Eingabesokgraph und die resultierende Punktmenge . . . . . . . . . . . . . . . . . . . . . . . . . 3.18 Winkel eines markanten Punktes für die Pfadanalyse. . . . . . . . . . . . . 3.19 Snapping anhand des Eingabegraphen des Wortes „was“ . . . . . . . . . . 3.20 Teilstrecken zur Berechnung der Pfadlänge zwischen simplifizierten Eingabeund genierten Sokgraphen. . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.21 Layout des visuellen Erscheinungsbildes für den Benutzer. . . . . . . . . . Vergleich der Eingabefehler gegenüber der Eingabegeschwindigkeit in CpM für zeitbasiertes- (links) und gestenbasiertes- (rechts) Selektieren. . . . . . 4.2 ∅ Eingabegeschwindigkeit der zwölf Versuchspersonen mit min. Wert und max. Wert über alle Versuchsrunden. Links: Versuchsrunde 1-5. Rechts: Versuchsrunde 6-10. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.3 Durchschnittlich entstandene Fehler der zwölf Versuchspersonen mit Min-, Max-Wert über alle Versuchsrunden. Links: Durchläufe 1-5. Rechts: Durchläufe 6-10. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.4 Verhältnis von Eingabegeschwindigkeit zu entstandenem Fehler über die gesamt Anzahl aller zwölf Versuchspersonen pro 100 CpM. Links: Versuchsrunde 1-5. Rechts: Versuchsrunde 6-10. . . . . . . . . . . . . . . . . . 4.5 Durchschnittlich gestenbasierte Eingabegeschwindigkeit der zwölf Versuchspersonen mit Min-, Max-Wert über alle Versuchsrunden. Links: Durchläufe 1-5. Rechts: Durchläufe 6-10. . . . . . . . . . . . . . . . . . . . . . . . . . 4.6 Durchschnittlich entstandene Fehler der zwölf Versuchspersonen mit Min-, Max-Wert über alle Versuchsrunden. Links: Durchläufe 1-5. Rechts: Durchläufe 6-10. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.7 Verhältnis von Eingabegeschwindigkeit zu entstandenen Fehler über die Gesamtzahl aller zwölf Versuchspersonen pro 100 CpM. Links: Durchläufe 1-5. Rechts: Durchläufe 6-10. . . . . . . . . . . . . . . . . . . . . . . . . . 4.8 Durchschnittlich gestenbasierte Eingabegeschwindigkeit der zwölf Versuchspersonen mit Min-, Max-Wert über alle Versuchsrunden. Links: Durchläufe 1-5. Rechts: Durchläufe 6-10. . . . . . . . . . . . . . . . . . . . . . . . . . 4.9 Durchschnittlich entstandene Fehler der zwölf Versuchspersonen mit Min-, Max-Wert über alle Versuchsrunden. Links: Durchläufe 1-5. Rechts: Durchläufe 6-10. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.10 Verhältnis von Eingabegeschwindigkeit zu entstandenen Fehler über die gesamt Anzahl aller zwölf Versuchspersonen pro 100 CpM. Links: Durchläufe 1-5. Rechts: Durchläufe 6-10. . . . . . . . . . . . . . . . . . . . . . . 4.11 Gesamtfehlerzahl und Gesamtzeichenzahl der kompletten Versuchsgruppe pro Durchlauf, aller Eingabemethoden im Vergleich. . . . . . . . . . . . . 66 67 67 71 75 76 4.1 82 83 84 84 85 86 86 87 88 88 89 ix Tabellenverzeichnis 2.1 2.3 2.4 2.5 2.6 Eingabe von T9-System und mögliche Interpretationsmöglichkeiten. Quelle: [Wika] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Auflösung des IR-Punktmusters und der interpolierten Punktwolke abhängig von der Entfernung zum Kinect-Sensor . . . . . . . . . . . . . . . . . Aktuelle Time of Flight Systeme im Überblick . . . . . . . . . . . . . . . Eingabegeschwindigkeiten bestehender Systeme im Vergleich. . . . . . . Sensitive Eingabegeschwindigkeiten im Vergleich gemessen an Swype . . Optische Verfahren im Vergleich . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 38 41 41 42 3.1 3.2 3.3 3.4 3.5 NITE zu Verfügung stehende Handgesten[Ber11] . . . . . . . . . . . . Skelettpunkte von NITE . . . . . . . . . . . . . . . . . . . . . . . . . . Rudimentäre SWYPE Implementierung - Eingabestring und Ausgabe . Ergebnisse der Datenbankabfrage . . . . . . . . . . . . . . . . . . . . . Ergebnisse der Datenbankabfrage mit negativ Buchstabenliste . . . . . . . . . . 45 48 61 69 73 2.2 x . . . . . . 12 Quellcodeverzeichnis Quellcodeverzeichnis 3.1 3.2 3.3 3.4 Erzeugung des OpenNI Kontextes und entsprechenden Production Nodes . XML-Layout für Repräsentation des Keyboardlayouts. . . . . . . . . . . . XML-Repräsentation des Buchstaben Q in dem Knoten <row></row>. . Statische Definition des für die auszuführende Push-Geste. 15,0mm in 32ms. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.5 Codebeispiel für rudimentäre Python Implementierung von SWYPE über String-Matching von Krishna Bharadwaj . . . . . . . . . . . . . . . . . . . 3.6 Klasse TrackAnalyser . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.7 Erste Abfrage an das hinterlegte Wörterbuch für den Anfangsbuchstaben „a“ einem Markantenbuchstaben „f“ und dem Endbuchstaben „e“. . . . . . 3.8 Abfrage für die gleichen Buchstaben wie in Code 3.7 mit absteigend sortierter Liste. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.9 Snapping-Verfahren zur Verschiebung von markanten Punkten auf das Layout. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.10 Zusätzlich generierte Negativwortliste für das Wort „Affe“. . . . . . . . . . 47 51 51 55 60 67 68 68 71 71 xi Zusammenfassung Nachdem in den vergangenen 10 Jahren die Entwicklungen von berührungssensitiven Geräten wie Tabletes und Smartphones immer weiter voran schritten, beginnen Hersteller von Konsumentenhardware seit geraumer Zeit mit der Integration von kontaktlosen Systemen in ihre Produkte. Tragende Hardware wie Datenhandschuhe, Controller oder Motion Capturing-Verfahren sind für den Gebrauch von interaktiven Flächen im Businessbereich nicht kompatibel. Nutzer müssen in der Lage sein, ohne speziell tragende Hardware mit stationären Systemen berührungslos zu interagieren. Aus diesem Grund werden im öffentlichen Bereich optische Systeme, wie aktive und passive Stereoskopie, LightCoding oder Time of Flight-Verfahren (ToF), die den Benutzer anhand von Trackingverfahren identifizieren und verfolgen eingesetzt. Neben der Navigation in berührungsfreien Systemen anhand verschiedener Metaphern, besteht immer noch die Anforderung einer Texteingabe, um dem System kryptische Informationen zu vermitteln. In dieser Arbeit werden aktuelle sensitive Methoden zur Texteingabe zusammengefasst und bestehenden berührungsfreien Methoden gegenüber gestellt. Es werden optische Verfahren näher erläutert und auf Vor- und Nachteile eingegangen. Es hat sich gezeigt, dass teure Time of Flight-Verfahren aktueller LightCoding-Systemen hinsichtlich Robustheit gegenüber äußeren Lichtverhältnissen, Latenz und Auflösung weit überlegen sind. Die Stereoskopie bietet den Vorteil der hohen Auflösung und Bildwiederholrate. Jedoch müssen hier Segmentierungs-, Rektifizierungs- und Korrespondenzprobleme gelöst werden. Es wurden drei berührungslose Eingabemethoden basierend auf dem bekannten QWERTZ Layout entwickelt. Die Methoden unterscheiden sich in Bezug auf die Buchstaben- bzw. Wortselektion. So wurde am Anfang eine Methode auf Basis von OpenNI1 und NITE2 entwickelt, die eine Auswahl anhand eines zeitlichen Parameters t durchführt. Die weitere Entwicklung, besitzt die Möglichkeit eine Selektion über eine vordefinierte Handgeste durchzuführen. Mittels OpenCV3 wurde eine „Greif-Geste“ implementiert, die durch die unpräzise Hardware (Microsoft Kinect) nicht zu gewünschten Ergebnissen führte. Daraufhin wurde eine „Druck-Geste“ über die Auswertung von Tiefeninformationen erstellt 1 Webseite: http://www.openni.org Webseite: http://www.primesense.com/solutions/nite-middleware 3 Webseite: http://www.opencv.org 2 xiii und anschließend evaluiert. Im Anschluss ist die wortbasierte Eingabemethode AirShape entwickelt. Diese erkennt markante Punkte des Eingabegraphen und stellt entsprechende Anfragen an ein hinterlegtes deutsches Wörterbuch. In der Arbeit wurden verschiedene Optimierungsprozesse für diese Eingabemethode implementiert oder theoretisch vorgestellt. So wird die Ergebnisliste über ein Snaping-Verfahren, die Erstellung einer negativen Buchstabenliste, eines Pfadlängenvergleich und durch die Filterung einer minimalen Wortlänge dahingehend angepasst, dass in überwiegenden Fällen ein optimales Matching zwischen Eingabe- und gewünschten Ausgabewort gefunden werden kann. Festzuhalten ist, dass alle drei entwickelten Methoden im Schnitt eine Eingabegeschwindigkeit von ca. 6,50 Wörter pro Minute (WpM) erreichten. Einige Nutzer konnten sogar Geschwindigkeiten von bis zu 10,10 WpM mittels AirShape realisieren. Damit ist die aktuelle Implementierung gegenüber portierten Systemen wie 8Pen4 oder Dasher[Mac06] gleichwertig. Mit weiteren Verbesserungen in der Benutzerfreundlichkeit und des Matchingverfahrens, können realistischer Weise von geübten Nutzern zwischen 15,0 und 20,0 WpM bewerkstelligt werden. Damit wäre dieses System mit herkömmlichen sensitiven QWERT-Z Systemen konkurrenzfähig. 4 Webseite: http://www.8pen.com xiv Kapitel 1 Einleitung 1.1 Motivation Die Verwendung von Touchscreen- speziell Multitouch Technologie hat im Consumerbereich in den letzten Jahren immer mehr an Bedeutung zugenommen. Intuitive Benutzerschnittstellen zur Mensch-Computer-Interaktion (MCI) auf Geräten wie Tablets oder Smartphones werden auf die Erfordernisse der Nutzer angepasst. Dadurch sind realitätsnahe Handbewegung zur Eingabe und Steuerung von digitalen Inhalten entstanden. Handgesten vereinfachen den Umgang mit solchen Geräten und steigern die Benutzerfreundlichkeit und Bedienbarkeit um ein Vielfaches. Sie werden oft zur Selektion oder Manipulation von Inhalten genutzt. Neben der Auswahl von Objekten und Ausführung von definierten Befehlen über Gesten (Zoom, Slide, etc.) spielt die Eingabe von Texten eine wichtige Rolle. Im Vergleich zu einer herkömmlichen Hardwaretastatur entstanden häufiger Eingabefehler durch die kleinere Displaygröße. Nicht gewollte Buchstaben über die Finger selektiert, da die virtuelle Tastatur zu klein dargestellt werden. Zusätzlich besteht das Single-FingerProblem. Geräte wie Smartphones werden oft in einer Hand gehalten, zur Eingabe dient die andere Hand mit der eine schnelle Texteingabe von längeren Texten über nur einen Finger nicht Effizient gelöst werden konnte. Auf Basis dieser Probleme entstanden verschiedene Eingabekonzepte auf dem bekannten QWERT-Z Layout. Naheliegend war eine Implementierung einer virtuellen QWERT-Z Tastatur, bei der jeder Buchstabe über ein Tippen des Fingers ausgewählt wurde. Zusätzlich wurden auf einem Wörterbuch basierende Textvervollständigung und Fehlerkorrekturmaßnahmen eingeführt. Neben QWERT-Z Layouts wurden verschiedene Design-Schnittstellen entwickelt um eine Eingabe zu vereinfachen und die Benutzerfreundlichkeit zu steigern. In der Umwelt existieren jedoch Szenarien, in denen Touchscreen-Technologie von Be- 1 Kapitel 1 Einleitung nutzern gemieden werden. Dies kann zum Beispiel im häuslichen Umfeld, in bestimmten Arbeitsumfeldern, aber auch im Bereich Argumentet Reality der Fall sein. Um eine berührungsfreie Interaktion zwischen Benutzer und System zu gewährleisten, sind verschiedene Hardwarekomponenten erforderlich. Möglichkeiten auf Basis eines Datenhandschuhs oder anderen nicht-optischen Systemen übermitteln mit Hilfe von Sensoren die aktuelle Handposition an das System. Diese Systeme haben jedoch den Nachteil, dass der Nutzer während der Interaktion Hardwarekomponenten am Körper tragen muss. Optische Verfahren kommen ohne tragende Hardware aus und sind für den Alltagsgebrauch besser geeignet. Die Erfassung der Nutzer- und Handposition erfolgt über Kamerasysteme. Verbreitet sind neben LightCoding (Kinect, XtionPro, Primesense), aktive und passive Stereoskopie oder auch Time of Flight Technologie. Der Einsatz von alt bekannten 2D-CMOS Systemen ist ebenfalls möglich. Diese Verfahren unterliegen aber Segmentierungsproblemen und Tiefeninformationen über das gewünschte Objekt sind nur sehr schwer zu erhalten. Bei der Mensch Computer Interaktion mit berührungslosen Systemen stellt die Konzeption des Interfaces zwischen Mensch und Computer eine neue Herausforderung dar. Bei der kontaktlosen Texteingabe und allgemein bei der Interaktion mit solchen Systemen entstehen mehrere Probleme. Neben der Ungenauigkeit der Erkennung von Händen und Fingern ist auch die Lichtabhängigkeit gegenüber äußeren Einflüssen bei optischen Verfahren nicht vernachlässigbar. Weiter sind üblich bekannte GUI Interface-Metaphern wie z.B. Windows, Icons, Menus, Pointer nur bedingt für gestenbasierte Eingabemethoden geeignet. Die Firma Microsoft entwickelte 2010 mit der Kinect ein optisches Verfahren zur Detektierung von Personen für den Konsolen-Markt. So konnten Benutzer berührungsfrei mit dem Körper und der Sprache in Spielen interagieren und verschiedene Charaktere durch virtuelle Welten führen. Die Entwicklung eines passenden Texteingabesystems wurde jedoch nachrangig behandelt. Längere Texteingaben sind über das verwendete System nur sehr Zeitaufwendig zu realisieren. 1.2 Ziel der Arbeit Ziel dieser Arbeit ist es, verschiedene berührungsfreie Eingabemethoden basierend auf einer virtuellen QWERT-Z Tastatur zu entwickeln. Es sollen bekannte Konzepte aus berührungssensitiven- auf berührungslose-Ansätze adaptiert werden. Neben der Eingabe über Singlepointer werden zeitbasierte- und gestenbasierte-Methoden entwickelt. Abschließend wird die Eingabemethode Swype, bei der das bloße Bewegen von Buchstabe zu 2 1.3 Aufbau der Arbeit Buchstabe ohne Absetzen des Fingers (Touchscreen) zur Detektierung des Wortes führt, portiert. Swype soll auf Touchscreen-Geräten eine Eingabegeschwindigkeit von bis zu 50 Wörtern pro Minute erreichen können. Neben der Entwicklung eines Swype ähnlichen Konzeptes für berührungslose-Systeme werden verschiedene Ansätze für das benötigte Shapematching vorgestellt und verglichen. Im Detail sollen in dieser Arbeit folgende berührungslose Eingabemethoden auf einer virtuellen QWERT-Z Tastatur entwickelt und evaluiert werden: • Zeitbasiertes selektieren mit Singlepointer • Gestenbasiertes selektieren mit Singlepointer • Swype-ähnliche Eingabemethode: AirShape In dieser Arbeit sollen aktuelle 3D-Kamerasysteme auf die Tauglichkeit zur virtuellen Tastatureingabe überprüft werden. In diesem Zusammenhang bedeutet 3D nicht ein Objekt als dreidimensionales Modell erfassen zu können. Vielmehr handelt es sich bei diesen Komponenten um Hardware, die in der Lage sind, Informationen über die Entfernung eines Objektes zu einem bestimmten Bezugspunkt zu liefern. Diese Tiefeninformationen können in einem nächsten Arbeitsschritt weiter verarbeitet und werden in einer generierten Deepmap dargestellt. In einer Evaluierungsphase soll untersucht werden, ob die in dieser Arbeit entwickelten Ansätze in Bezug auf die Eingabegeschwindigkeit und die Fehlertoleranz mit aktuellen berührungssensitiven bzw. berührungsfreien Systemen vergleichbar sind. 1.3 Aufbau der Arbeit Die vorliegende Arbeit unterteilt sich in fünf Kapitel. Nach den einleitenden Abschnitten zur Motivation und Ziele der Arbeit, werden im Kapitel 2 die Grundlagen für die Realisierung dieser Arbeit vorgestellt. Die Grundlagen befassen sich mit den Definitionen und Ansätzen verschiedener Eingabemethoden basierend auf QWERT-Z Tastaturen für den berührungssensitiven und kontaktlosen Bereich. Des Weiteren sollen hardware- und softwareseitige Voraussetzungen für die Realisierung näher betrachtet werden. Zusätzlich werden alternative Layouts und Eingabemethoden aufgelistet. Das dritte Kapitel 3 beschäftigt sich mit der technischen Realisierung kontaktloser Eingabemethoden auf Basis von QWERT-Z Tastaturen. Zu Beginn wird die für die Arbeit verwendete Hardware 3 Kapitel 1 Einleitung und Software dargestellt und eine virtuelle Tastatur auf bekannten QWERT-Z Layout gerendert. Anschließend werden verschiedene Selektierungsmethoden zur Texterkennung vorgestellt. Um die vorgestellten Selektionsgsmethoden zu realisieren, müssen Hände der agierenden Person erkannt und verfolgt werden. Eine Kombination unter Verwendung von OpenNI mit der Middlewarekomponente NITE und OpenCV ermöglicht, einfache Gesten (Greifen & Drücken) zur Auswahl von Buchstaben über eine Hand des Benutzer zu gewährleisten. Abschließend wird in diesem Kapitel eine Eingabemethode entwickelt, in der die Texteingabe ähnlich wie bei Swype (Touchscreen) über das „Wischen“getätigt werden kann. Um die Effizienz der entwickelten Systeme zu vergleichen, wird im vierten Kapitel 4 eine Evaluierung der Methoden untereinander und gegenüber den bekannten kontaktlosen Methoden vorgenommen. Hauptaugenmerk der Evaluierung sind neben der Eingabegeschwindigkeit auch die dabei entstehende Fehlertoleranz. Abschließend wird in Kapitel 5 neben einem Fazit dieser Arbeit ein Ausblick auf weitere Forschungs- und Einsatzmöglichkeiten in diesem Kontext aufgezeigt. 4 Kapitel 2 Grundlagen Im Rahmen der Grundlagen sollen wesentliche Aspekte des späteren Hauptteils vorgestellt werden. Im ersten Abschnitt Abschnitt 2.2 werden bestehende Eingabemethoden auf Basis von QWERT-Z für berührungssenstive Systeme aufgezeigt und Vor- bzw. Nachteile einzelner dargestellt. Es wird auf die Möglichkeit der Adaptierung einzelner Methoden eingegangen. Der darauf folgende Abschnitt beschäftigt sich im berührungslosen Kontext der Arbeit mit verschiedene bestehende Eingabesysteme. Diese Systeme untergliedern sich in bekannte Eingabemethoden mittels virtueller QWERT-Z Tastatur, reinen Fingergesten, wie diese im Kommunikationsbereich des Fingeralphabetes zum Beispiel zwischen taubstummen Personen verwendet werden, Handwriting und alternative Eingabemethoden über Kreis- und Rechteckeingaben. Der anschließende Abschnitt beschäftigt sich mit Hardware, die für berührungsfreie Eingabemethoden eingesetzt werden kann. Es werden verschiedene Komponenten vorgestellt und gegeneinander abgewogen. Neben körpergebundener Hardware wie Datenhandschuhe und anderen Sensormöglichkeiten werden verschiedene optische Verfahren erklärt. Im Kapitel Unterabschnitt 2.4.2 wird auf die Vorteile von optischen Verfahren eingegangen und deren Unterschiede aufgezeigt. Es werden Lightcoding-Systeme, Time of Flight-Systeme und Stereoskopie mittels zwei Kameras in diesem Abschnitt behandelt. 2.1 Mensch-Computer-Interaktion Im Allgemeinen beschäftigt sich die Mensch-Computer-Interaktion (MCI) mit der benutzerfreundlichen Gestaltung interaktiver Systeme[Bon04]. MCI ist ein Teilgebiet der Informatik und befasst sich mit der Analyse, Gestaltung und Bewertung menschengerechter Computeranwendungen[Hen11b]. Ziel ist es, die Verbesserung der Interaktion zwischen 5 Kapitel 2 Grundlagen Mensch und Computer auf natürliche Art und Weise zu erreichen[Mal05]. Erfolgreicher MCI liegen neben Software und Hardwarewissen auch soziologische, psychologische und Design Aspekte zugrunde[Mal05]. So ist es bei der Entwicklung wichtig, auf die Voraussetzung und Fähigkeiten der Menschen einzugehen. Unterschiedliche Kulturen prägen unterschiedliche Voraussetzungen für den natürlichen Umgang mit einer Maschine. Norman und Nielsen[A88] entwickelten ein Handlungsmodell, das die Interaktion zwischen Mensch und Computer in sieben Grundprinzipien formuliert[Nor86]. Das Modell umfasst sieben Stufen, die ein Anwender bei der Interaktion mit einem interaktiven System durchläuft. • Das Ziel formulieren • Die Intention formulieren • Eine Handlung spezifizieren • Eine Handlung ausführen • Den Systemzustand wahrnehmen • Den Systemzustand interpretieren • Vergleich des erreichten Zustands mit den Zielen Sie werden unter folgenden Begriffen zusammengefasst: Sichtbarkeit, Rückmeldung, Konsistenz, umkehrbare Operation, Auffindbarkeit, Skalierbarkeit und Verlässlichkeit[Mar10]. Ein wesentlicher Bestandteil einer MCI ist die Möglichkeit, dem System eine Information oder ein Befehl mitzuteilen, welcher in einem anschließenden Schritt weiter verarbeitet werden kann. Dies geschieht entweder über eine Texteingabe oder die Selektion von Objekten. Das erste verbreitete Bedienkonzept lag in der Form eines CLI (Command line Interface), auch bekannt unter Konsole oder Terminal, vor. Es wurden textbasierte Eingaben zur Kommunikation mit dem Computer verwendet[Hen10]. Durch strikte Syntaxeinhaltung eines vordefinierten Befehlssatzes konnten Benutzer von z.B. MS-DOS[Sch93], Manipulationen an Dateien und Änderungen am System vornehmen [Hen10]. CLI war ein dialogbasiertes MCI. Der Benutzer erhielt nach der Eingabe sofort eine Antwort des Systems in Form einer weiteren Eingabeaufforderung (Prompt). Nach der Einführung eines weiteren Bedienkonzeptes, dem Graphic Unit Interface (GUI), geriet das CLI immer weiter in Vergessenheit. Das CLI wird heutzutage weiterhin von IT-Spezialisten und Informatikern 6 2.1 Mensch-Computer-Interaktion Abbildung 2.1: Mensch Computer Interaktion - Benutzerschnittstellen. Quelle: [Kre05] genutzt, um dank der Eingabe des richtigen Befehls schneller Änderungen am System vorzunehmen. Als Steuergerät für das CLI wurde die hardwareseitige Tastatur verwendet. Mit dem Paradigmawechsel von CLI zu GUI wurden vorrangig grafische Gestaltungsmerkmale des Interfaces verändert. Circa 1980 erreichte das System durch die Computer von Apple5 (Macintosh[Bad] Nachfolger des Apple II[Edw12]) einen großen Anwenderkreis. Apple ließ sich damals am Xerox PARC entwickelten Rechner, Xerox Alto inspirieren [Dou89]. Dieser war der erste Computer mit grafischer Benutzeroberfläche[Dou89]. Um das Graphic Unit Interface (GUI) in einer benutzerfreundlichen Geschwindigkeit zu realisieren, stiegen in Folge die Hardwareanforderungen an die zugrundeliegenden Systeme. Um Benutzer bei der Aufgabenerfüllung weitestgehend zu unterstützen, verwenden GUIs sogenannte grafische Metaphern. Beispiel für solche Metaphern sind unter anderem die Desktopmetaphern, WIMP-Metapher (Windows, Icon, Menu, Pointer) oder „Drag and Drop “. Als Steuergerät für ein GUI ist die hardwareseitige Maus als Pointer vorgesehen. Die aktuelle Generation der Bedienkonzepte der MCI stellt das Natural User Interface (NUI) dar. Dem Paradigmawechsel von GUI zu NUI liegt der Look and Feel-Bestand zugrunde[Hen10]. Während von CLI zu GUI noch der „Look “ im Fokus stand, um eine benutzergerechte Interaktion durchzuführen, rückt das Hauptaugenmerk eines Natural User Interfaces zum „Feel “ [Hen10]. Die Interaktion erfolgt bei einem Natural User Interface auf natürliche und intuitive Art und Weise, in dem auf Fähigkeiten zurückgegriffen werden, die ein Benutzer im Laufe seines Lebens erlernt hat. Vor allem das Verhalten von aktuellen NUI-Systemen unterscheidet sich stark von verwendeten GUI-Systemen. 5 Webseite: http://www.apple.de 7 Kapitel 2 Grundlagen Sie ermöglichen eine direkte Interaktion mit den Inhalten eines Systems in menschenangemessener Form. Als Steuergerät werden bei einem NUI-System Hände, Arme, Stimme und der gesamte Körper als Single- und Multipointer verwendet. 2.2 Eingabemethoden berührungssensitiver Systeme Touchscreen-Technologiebasierende und berührungssensitive Systeme werden überwiegend im Smartphone-, Tablet- und Kamera-Markt verwendet[And09, S. 40-44]. In diesem Abschnitt sollen verschiedene Texteingabemethoden erläutert werden, die auf dem bekannten Hardwaretastaturlayout QWERT-Z aufbauen. Touchscreen-Technologie Um auf eine Hardwareseitige Tastatur zu verzichten und eine virtuelle, digitalisierte Tastatur zu verwenden, ist besondere Touchscreen-Hardware notwendig. Die vier am häufigsten verwendeten Touchscreen Technologien sind: Analog resistiv, kapazitiv, Surface Acoustic Wave (SAW) und Infrarot. Ein resistives Touchscreendisplay besteht aus zwei leitenden ITO-Schichten (Indiumzinoxid), die mittels mikroskopisch kleinen Abstandshaltern voneinander getrennt sind[And09]. An der hinteren ITO-Schicht wird an allen Eckpunkten eine Spannung angelegt. Sobald der Nutzer über die flexible Außenmembran die äußere ITO-Schicht auf die innere ITO-Schicht drückt, fließt ein Strom. Anhand der anliegenden Spannung kann ein angeschlossener Controller die X- und Y-Position des Drucks erkennen und weiter verarbeiten[And09]. Diese Technologie ist sehr preiswert und kann durch die Druckempfindlichkeit mit vielen Gegenständen bedient werden[HK10]. Im Gegensatz zur resistiven Technologie arbeiten kapazitive Displays mit einem elektrischen Feld. Hierzu werden an allen vier Eckpunkten der transparent metallbeschichteten Glasplatte Elektroden angelegt[Ton10]. Diese erzeugen eine Rechteckspannung und ein gleichmäßig schwaches elektrisches Feld. Durch die Berührung des Systems mittels Finger erzeugt der Benutzer eine kapazitive Verbindung zu Erde. Es entsteht ein geringer Ladungstransport bei dem ein geringer Teil der Ladung des elektrischen Feldes abfällt. Der Ladungsabfall wird gemessen und über einen Controller die X- und Y-Position der Berührung bestimmt[And09]. Kapazitive Displays sind sehr robust und bieten eine hohe Zuverlässigkeit. Kombiniert mit einer hohen Präzision ist der Einbau in Smartphones und Tablets sehr beliebt[HK10]. Durch die Erzeugung eines Ladungsabfalls sind kapazitive ausschließlich mit dem Körper bedienbar. 8 2.2 Eingabemethoden berührungssensitiver Systeme Abbildung 2.2: Funktionsprinzip resistive Touchscreentechnologie. Quelle: [Sch08] Abbildung 2.3: Funktionsprinzip kapazitive Touchscreentechnologie. Quelle: [Sch08] Bei der Surface Acoustic Wave (SAW) Technologie wird auf eine zusätzliche Membran oder Beschichtung komplett verzichtet. Das System arbeitet mit einer Glasscheibe, die Schallwellen transportieren kann. An zwei Seiten der Glasscheibe befinden sich 5 Mhz 9 Kapitel 2 Grundlagen Signalgeber, welche kontinuierlich sowohl horizontale als auch vertikale Ultraschallwellen aussenden[Wal12]. Auf der gegenüberliegenden Seite befinden sich Empfänger, die die Wellen eines Senders empfangen. Berührt ein Benutzer die Oberfläche wird ein Teil der Ultraschallwellen absorbiert. Zur Auswertung der X- und Y-Position wird über den angeschlossenen Controller die Veränderung der Wellen ermittelt[Cor07]. Die Lichtdurchlässigkeit der Displays beträgt nahezu 100% und ist sehr unempfindlich gegenüber mechanischen Beschädigungen[Cor07]. Wie auch kapazitive Displays können SAW-Displays nur mit dem Finger oder einem dünnen Handschuh gesteuert werden. Abbildung 2.4: Funktionsprinzip Surface Acoustic Wave Touchscreentechnologie. Quelle: [Wal12] Touchscreen-Displays, die auf Infrarotlicht basieren, besitzen in einem um eine Glasscheibe laufenden Rahmen horizontal und vertikal angeordnete Infrarotleuchtdioden. Auf der gegenüberliegenden Seite befinden sich Fotosensoren, die das Licht der dazugehörigen LED registrieren[Wal12]. Durch die von den Leuchtdioden zu den Fotosensoren laufenden Lichtstrahlen entsteht ein feines IR-Raster, welches vom menschlichen Auge nicht wahrgenommen werden kann. Eine Berührung des Bildschirms durch den Nutzer ruft einen Signalabfall des Lichtstrahls hervor, der von einem Fotosensor registriert wird. Es lässt sich die X- und Y-Position des Druckpunktes auswerten[Jar11]. Der Vorteil dieser Technologie ist, dass zum einen große Displays damit ausgestattet werden können und durch den Verzicht einer weiteren Beschichtung wie bei der SAW-Technologie eine 100% Lichtdurchlässigkeit gegeben ist[Cor07]. Hinzu können jegliche Gegenstände zur Erkennung einer Berührung genutzt werden. IR-Umgebungslicht können zu Störungen führen[Wal12]. Die Auflösung der Berührungsfläche ist im Gegensatz zu oben genannten 10 2.2 Eingabemethoden berührungssensitiver Systeme Displayarten geringer. Single Finger Problem Durch die stetige Entwicklung und höhere Zugänglichkeit zu dieser Art von Displays, basieren neben Smartphones und Tablets viele andere Geräteklassen auf dieser Technologie. Wenige Systeme benötigen eine direkte Interaktion über eine Texteingabe. Meist werden grafische Objekte wie Boxen oder Bilder zur Kommunikation zwischen Mensch und Maschine verwendet. Mit den immer populärer werdenden Smartphones ergeben sich neue Probleme für die Texteingabe[Del+09]. Smartphones sind portable Endgeräte die zum Gebrauch vom Nutzer meist in einer Hand gehalten werden und nur über eine begrenzte Displaygröße verfügen. Um Texteingaben für die Kommunikation mit dem Gerät oder anderen Gesprächsteilnehmern zu gewährleisten, werden auf dem Touchscreen virtuelle Tastaturen eingeblendet. Anhand der limitierten Anzeigegröße können Keyboards nur einen bestimmten Bereich des Displays in Anspruch nehmen. Das Resultat ist, dass nur eine Hand bzw. ein Finger, der einen Pointer simuliert, für die Dateneingabe zur Verfügung steht[Del+09] [06]. Die Eingabegeschwindigkeit von Texten nimmt gegenüber Multipointereingaben erheblich ab. Abbildung 2.5: QWERT-Y Tastaturlayout entwurfen von Sholes, Glidden und Soule im Jahre 1898. Quelle: [Cor] Eingabemethoden - brührungssenstiv Text on 9 keys basierte Texteingabe Eine einfache Methode zur Eingabe auf brührungsempfindlichen Displays ist die Adaption von Hardwaretastaturen im Handybereich auf virtuelle Tastaturen. Die einfachste und bekannteste Variante ist die „text on 9 keys“ (T9). Damalige Telefone besaßen einen Hardware-Ziffernblock von null bis neun und zwei zusätzliche Steuerfunktionen[Mac02]. Auf den Ziffern von zwei bis neun sind jeweils drei bis vier Buchstaben in aufsteigender Sortierung des Alphabetes angeordnet[Sir02]. Wird vom Benutzer eine Texteingabe gefordert, muss die Taste der entsprechenden Position des gewünschten Buchstaben einmal oder mehrmals gedrückt werden. Da diese Standardmethode sehr zeitaufwendig war, wurde ein zusätzliches softwaregestütztes System (T9-System) implementiert[Mac02, S. 23]. Basierend auf einem integrierten Wörterbuch, 11 Kapitel 2 Grundlagen Abbildung 2.6: Hardwaretastatur des Nokia 3310 (links). Quelle: [Sir02] Tastaturbelegung von Buchstaben bei T9 (rechts). Quelle: [Wika] wurde nach Druck auf eine Taste ein Wortvorschlag angezeigt, welcher mit Selektionstasten ausgewählt werden konnte. Das Wort „Hallo“ wird ohne die Softwareunterstützung mit insgesamt zwölf Tastendrücke eingegeben. Mit dem T9-System reichen 5 Tastendrücke. Ein Nachteil dieses Systems sind kleine Wörterbücher und mehrere Möglichkeiten bei der gleichen Tastenkombination. Tabelle 2.1: Eingabe von T9-System und mögliche Interpretationsmöglichkeiten. Quelle: [Wika] Ziffernfolge 1. Möglichkeit 2. Möglichkeit 3, 7 es er 8, 6, 7 vor uns 9, 2, 7 war was 5, 6, 6, 6, 3, 6 können kommen 5, 2, 4, 2, Lage Jagd 5, 4, 3, 3, 3, 6 liefen kiffen 5, 4, 3, 3, 3, 7 Lieder Kiffer 12 2.2 Eingabemethoden berührungssensitiver Systeme QWERT-Z basierte Texteingabe Ein weitverbreitetes System auf Smartphones und Tablets ist eine virtuelle QWERTZ Tastatur wie sie als Hardwaretastatur von PC und Laptops bekannt ist. Aus Platzmangel werden meist minimalisierte Varianten mit 26 Buchstaben, einer Leertaste und Zurücktaste angezeigt. Sonderzeichen werden über eine Layoutwechsel hervorgerufen oder befinden sich übergeordnet auf den Buchstabentasten. Durch die Anzeige des gesamten Alphabetes ist ein mehrfaches Berühren des gleichen Buttons nicht mehr notwendig und steigert die Eingabegeschwindigkeit im Vergleich zu dem älteren T9-System. Standard Smartphone Tastaturen Das Betriebssystem Android6 und iOS beinhalten virtuelle QWERT-Z Tastaturen zur textbasierten Eingabe. Beiden Systemen sind Wörterbücher hinterlegt, auf die mittels einer Autovervollständigung nach jedem vom Benutzer eingegebenen Buchstaben zugegriffen wird. Wörter, die mit der aktuellen Eingabesequenz am besten übereinstimmen, werden in eine Auswahlliste über der Tastatur zur Verfügung gestellt [Goo11] [Inc]. Abbildung 2.7: Standart Android Tastatur in der Version 4.1 Jelly Bean. Quelle: [t3n] Die Layouts werden auf die einzelnen Bedürfnisse der Anwendung und des Interaktionskontextes angepasst. So werden verschiedene Tastaturlayouts mit Sonderfunktionen für das Verfassen einer Email, die Eingabe einer Telefonnummer oder einer Webseite angeboten. Diese Layoutänderungen sind für eine schnellere kontextspezifische Eingabe optimiert wurden [Inc]. 6 Webseite: http://www.android.com 13 Kapitel 2 Grundlagen (a) iOS Standart Tastaturlayout (b) iOS Telefon Tastaturlayout (c) iOS Email Tastaturlayout (d) iOS Url Tastaturlayout Abbildung 2.8: iOS Anwendungsspezifische Tastaturlayouts. Quelle: [Abr] Die Eingabemethode basiert weiterhin auf einem simulierten Singlepointer, welcher über einen Finger des Nutzers gesteuert werden kann. SHARK, Swype und SlideIt SHARK (Shorthand-Aided Rapid Keyboarding) ist eine fortgeschrittene, von IBM entwickelte Methode für die Texteingabe auf mobilen Endgeräten. Ursprünglich wurde SHARK für Stylus-Systeme entwickelt[Zha03]. Das System befindet sich seit Oktober 2004 bereits in einer Betaphase und erlaubt es Nutzern textbasierte Interaktion mit dem System über „Nachziehen“ von Buchstabe zu Buchstabe auszuüben. Wörter werden als kontinuierlicher Pfad gespeichert. Das System verwendet multi-channel patterns classification basierend auf Pfadform, Pfadposition und lexikalische Informationen um das vom Benutzer eingegebene Wort zu erkennen[Zha03] [ZK08]. SHARK wurde im Jahre 20107 unter dem Abbildung 2.9: SHARK bei der Eingabe des Wortes „word “ auf einem QWERT-Z Layout Quelle: [09b] 7 Webseite: http://www.androidcentral.com/shapewriter-being-pulled-market-get-it-while-you-still-can 14 2.2 Eingabemethoden berührungssensitiver Systeme Namen „ShapeWriter“ von der Firma Nuance Communications kommerziell für mobile Endgeräte vertrieben. Da tiefere Eingriffe in das mobile Betriebssysteme von Apple nicht möglich sind und die von Apple vordefinierten Tastaturen nicht geändert werden können, wurde ShapeWriter in einer Notizapplikation integriert[09b]. Seit Juni 2010 ist das System in sieben verschiedenen Sprachen auch für Android verfügbar. SHARK kann auf verschiedenen Keyboardlayouts betrieben werden. Neben QWERT-Z sind ebenfalls Implementierungen auf ATOMIK und elf weiteren Keyboardlayouts vorhanden. Aktuell wird das Produkt unter dem Namen T9-Trace vertrieben[INC08]. Ein weitere System, das sich in Aufbau und Umsetzung sehr ähnelt, ist SWYPE8 . SWYPE wurde zu Beginn für die Windows Mobile Plattform entwickelt und anschließend für Android. 2011 wurde die gleichnamige Firma von Nuance Communications9 übernommen. Nach der Übernahme wurde SWYPE mit von Naunce Communications entwickelten XT-9 Technologie ausgestattet[Inc12]. SWYPE wird derzeitig ausschließlich auf dem QWERT-Z Layout verwendet. SlideIT10 ebenfalls ein Vertreter der Muster-Erkennung, wurde durch die Firma Dasur Ltd11 entwickelt. Die erste Version wurde 2007 mit zwei separaten Tastaturen vorgestellt. Zum einen SlideIt als QWERT-Z System zum anderen als ThumbKey[Wikb]. ThumbKey wurde für die Eingabe auf kleine Touchscreens entwickelt, um eine genauere Eingabe mit nur einer Hand zu erreichen. Der verwendete Algorithmus erlaubt es Benutzern, nur in der näheren Umgebung des benötigten Buchstabens zu drücken, um das beabsichtigte Wort auf dem Bildschirm angezeigt zu bekommen. ThumbKey und SlideIt wurden 2009 zu einem Produkt verbunden und unter dem Namen SlideIt vertrieben[Wikb]. Im Jahr 2010 wurde die Tastatur für das mobile Betriebssystem Symbian und 2011 für Android vorgestellt. Mit SlideIt sollen laut Hersteller, Eingabegeschwindigkeiten von bis zu 50 WpM möglich sein[Ltd11]. Eine detaillierte Betrachtung der Funktionsweise oben genannter Systeme bietet Abschnitt 3.5. In diesem Abschnitt wird das von SHARK verwendete Matchingverfahren des User - Eingabesokgraph12 mit optimal generierten Sokgraphen aufgezeigt. Ebenfalls wird in Abschnitt 3.5 die Eingabemethode für kontaktlose-Systeme adaptiert. 8 Webseite: http://www.swype.com Webseite: www.nuancemobilelife.com 10 Webseite: http://www.mobiletextinput.com/Product/What_is_SlideIT 11 Webseite: http://www.mobiletextinput.com 12 Ein Sokgraph ist ein Pattern von aneinander gereihten Buchstaben des gewünschten Wortes. Zu sehen ist ein Sokgraph in Abbildung 2.9 blau markiert 9 15 Kapitel 2 Grundlagen Alternative Eingabemethoden 8Pen 8Pen13 ist ein völlig neues Konzept zur Eingabe von textbasierten Informationen auf kleinen mobilen Endgeräten. Der Anwender muss nicht mehr auf virtuellen Keyboards die richtige Tasten treffen, sondern kann die Buchstaben per „Gesten“ auswählen. Das Layout ist in vier Quadranten aufgeteilt, mit jeweils acht Buchstaben. Buchstaben und meist genutzte Sonderzeichen sind an beiden Seiten entlang von vier Achsen angeordnet. Ausgangspunkt ist der Mittelpunkt des Layouts. Abbildung 2.10: 8Pen Eingabelayout. Quelle: [Gre] Der Anwender zieht den Finger aus den in der Mitte liegenden Kreis in den Quadranten, in dem sich der gewünschte Buchstabe befindet. Liegt der gewünschte Buchstabe auf der linken Seite, so zieht der Anwender anschließend seinen Finger gegen den Uhrzeigersinn. Liegt der Buchstabe auf der rechten Seite, muss eine Bewegung im Uhrzeigersinn geschehen. Über den Durchmesser des Kreises, den der Nutzer bildet, wird bestimmt, welcher der vier Buchstaben ausgewählt wird. Wird der Kreis über zwei Quadranten gezogen so wird der Buchstabe gewählt, der am zweit weitesten vom Mittelpunkt entfernt ist. Die Anordnung der Buchstaben wurde so gewählt, dass häufig verwendete Buchstaben und Satzzeichen mit einer möglichst „kleinen“ Geste definiert werden können. Dabei ändert sich die Anordnung je nach Sprachauswahl. Mit 8Pen können untrainierte Benutzer laut Hersteller ca. 12 WpM dem System übermitteln. 13 Webseite: http://www.8pen.com 16 2.2 Eingabemethoden berührungssensitiver Systeme Abbildung 2.11: 8Pen Eingabenabfolge des Buchstaben „B“ Abbildung 2.12: 8Pen Eingabenabfolge des Buchstaben „D“ MessagEase und Flit Die für kleine mobile Endgeräte entwickelte Eingabemethode basiert auf einem neuen Keyboardlayout. Hierbei wird der Eingabebereich des Displays auf neun Buttons aufgeteilt. Durch die Aufteilung in nur neun Buttons gegenüber mindestens 30 bei QWERT-Z Layout inklusive der Umlaute, ist die Anzeige- und Auswahlgröße jedes Buchstabens erheblich größer. Dies hat den Vorteil, dass der vom Benutzer gewünschte Button einfacher selektiert werden kann. Das zugrunde liegende Alphabet wird nach der Häufigkeit in der Sprache verwendeten Buchstaben absteigend sortiert, sodass die neun am meist benutzten Buchstaben am Anfang stehen. Diese werden gleichmäßig auf jeden Button der Tastatur gelegt. Jeder dieser Buchstaben kann über einen Tastendruck selektiert werden. Acht der nach Häufigkeit benutzten Buchstaben, werden in dem mittleren Feld um den „Hauptbuchstaben “ positioniert. Um einen dieser Buchstaben zu selektieren, erfolgt ein Ziehen von der Mitte aus in den liegenden Sektor des gewünschten Buchstaben. Alle restlichen Buchstaben und meist genutzte Sonderzeichen werden um die „Hauptbuchstaben “ der anderen verbliebenen acht Buttons gelegt. Das Selektieren erfolgt über den gleichen og. Weg. Über MessagEase können bis zu 60 Wörter pro Minute dem System übermittelt werden [Ola12]. 17 Kapitel 2 Grundlagen Flit14 ist ein ähnliche Entwicklung und basiert auf 8 Tastenfeldern mit maximal acht am Rand und einem in der Mitte positionierten Buchstaben. Das Prinzip der Buchstabenselektierung ist identisch mit der von MessagEase15 . Durch die Anordnung von mehr Buchstaben und Sonderzeichen auf dem Keyboard ist ein zusätzliches Layout für selten genutzte Sonderzeichen wie bei anderen Varianten nicht notwendig. (a) MessagEase Quelle: [Eas] Funktionsprinzip. (b) Flit Eingabelayout. Quelle: [Loc] Abbildung 2.13: Darstellung der Funktionsweise von MessageEase und Flit über ziehen des Fingers zwischen Quadranten. Dasher Ein anderes Konzept verfolgt die von MacKayen entwickelte Eingabemethode Dasher[Mac06]. Dasher ist ein Singlepointer User-Interface, das erlaubt, Texte ohne Keyboardlayout einzugeben. Laut MacKayen sind standardisierte Keyboardlayouts sehr ineffizient. Sie vernachlässigen die Feinmotorischen Fähigkeiten (Finger und Augen) des Nutzers. Mit einer Geschwindigkeit von 39 WpM unter Verwendung von einem Singlepointer und 25 WpM mit Eyetracking reiht sich dieses System in die Mitte der Singlepointer Eingabemethoden[Mac06]. Daher ist ein Zoom-Interface, welches einen kontinuierlichen Stream von 2D-Gesten zur Eingabe des Nutzers bildet. Mit diesem System wird das Schreiben zu einer navigierenden Aufgabe. Was geschrieben wird, ist abhängig wohin der Nutzer seinen Eingabepointer bewegt. Zum Beispiel soll das Wort „Hallo“ dem System übermittelt werden. Zu Beginn ist für jeden Buchstaben ein Block reserviert. Bewegt der Nutzer den Finger in diesen 14 15 Webseite: https://play.google.com/store/apps/details?id=com.locnet.flitkeyboard&hl=de Webseite: http://www.exideas.com/ME/index.php 18 2.2 Eingabemethoden berührungssensitiver Systeme Block, wird der Buchstabe selektiert. „H“ Ȧnschließend bewegt der Nutzer seinen Pointer nach rechts um erneut 26 neue Blöcke eingeblendet zu bekommen. Wird der Pointer wieder in das richtige Feld des entsprechenden Buchstaben gezogen, so wird dieser selektiert. Um nicht immer alle 26 Buchstaben mit gleich großen Blocks zu versehen, arbeitet Dasher auf einem language model. Es werden nur noch Blocks für Buchstaben angezeigt, bei denen ein Folgebuchstabe nach dem language model existiert. So existieren nach der Eingabe des Buchstabens „H“ keine Blocks mehr für „X,M etc.“ , da nach einem hinterlegten Wörterbuch keine Wörter mit „Hx, Hm“ existieren. Buchstaben mit einer höheren Häufigkeit erhalten größere Blöcke, sodass der Anwender diese einfacher auswählen kann. Mit Dasher ist es schwer, Rechtschreibfehler zu begehen. Das System ist für auf Touchscreen basierende mobile Endgeräte erhältlich. Die Eingabe kann mittels Finger, Stylus, Maus und Augen via Eyetracking durchgeführt werden.[Mac06] Abbildung 2.14: Dasher Eingabelayout Quelle: [Mac06] 19 Kapitel 2 Grundlagen 2.3 Eingabemethoden berührungslose Systeme Dank technologischer Entwicklung, sind heutzutage ebenfalls Systeme vorhanden, die es ermöglichen, berührungsfrei mittels Gesten, Mimik, Augen und Sprache mit einem Computer zu interagieren. Das folgende Kapitel beschäftigt sich mit der textbasierten Eingabe über berührungslose Gesten. Im Anschluss wird ein Überblick über bereits existierende Systeme gegeben. Danach wird die benötigte Hardware für die Erkennung des Benutzers und dessen Gesten näher erläutert. 2.3.1 QWERT-Z Basierend auf dem weitverbreiteten QWERT-Z Layout entstanden bereits mehrere Eingabemöglichkeiten, die auch kommerziell in verschiedenen Systemen vertrieben werden. So werden QWERT-Z Eingaben von Microsofts Spielekonsole Xbox360 eingesetzt. Unter Verwendung eines optischen Verfahrens wird die linke bzw. rechte Hand des Benutzers erkannt und im System als Pointer repräsentiert. Mit diesem können dann auf einem virtuell eingeblendeten Tastaturlayout (7x4 Grid) Buchstaben selektiert werden[Lod11]. Zur Selektion wird eine zeitbasierte Methode verwendet. Der Benutzer muss mit seiner Hand jeweils zwei Sekunden auf dem Buchstaben verweilen, um diesen im System zu hinterlegen. Ausgewählte Buchstaben werden grün hinterlegt, um dem Nutzer zu signalisieren, dass das System den Buchstaben übernommen hat. Weiterhin besteht die Möglichkeit die Buchstaben als eindimensionales Array anzuordnen. Bewegt der Benutzer den Pointer auf einen Buchstaben, wird in das Array hineingezoomt, bis nur noch 10 Buchstaben erkennbar sind. Dies soll dem Nutzer bei der Auswahl unterstützen. Üblicherweise bewegen Nutzer die Hand zwischen 20-40 cm um den gewünschten Buchstaben zu selektieren[Lod11]. Samsung setzt in ihrer SmartTV-Reihe ebenfalls auf gestenbasiertes Steuern des Fernsehers. Bei diesem System wird für Texteingaben eine virtuelle QWERT-Z Tastatur eingeblendet. Im Gegensatz zur Microsoft ist der Bildschirm hier vertikal unterteilt. Das System funktioniert jedoch so träge, dass Samsung gegen Aufpreis eine zusätzliche Hardwaretastatur anbietet. 20 2.3 Eingabemethoden berührungslose Systeme (b) Xbox360 virtuelles Array Layout. Quelle: (a) Xbox360 virtuelles ABCDE-F Tastaturlayout. [Lod11] Quelle: [Lod11] Abbildung 2.15: Xbox 360 Texteingabemethode über ABCDE-F Tastaturlayout und Arraymethode. 2.3.2 Fingergesten Eine beliebte Eingabemethode für berührungslose Systeme sind Hand- und Fingergesten. Hierbei wird zur Selektion eines Buchstabens nicht ein Pointer simuliert, sondern die eigentliche Hand- und Fingerstellung erkannt und interpretiert. Anhand eines vordefinierten Gestenvokabulars wird versucht das aktuelle Bild der Hand zu erkennen. Verschiedene Ansätze von ... und ... beschreiben die Verarbeitungsschritte von der Aufnahme des Kamerabildes bis zur erfolgreichen Interpretation der Geste [09a]. Der Lowe’s SIFT Algorithmus vergleicht ein aufgenommenes Bild mit einem in einer Datenbank hinterlegtem Referenzbild [Low04]. Der Algorithmus versucht, SIFT-Keys in beiden Bildern zu errechnen und diese mit einander zu vergleichen [Low04]. Abbildung 2.16: Ablauf zur Fingerdetektion. Quelle: [09a] Ein Nachteil dieser Eingabemethode ist das für den Nutzer zu erlernende Vokabular. Texteingaben von ungeübten Benutzern, die keinen Bezugspunkt zum hinterlegten Gestenvokabulars besitzen, sind nicht möglich. 21 Kapitel 2 Grundlagen Abbildung 2.17: Gesten der deutschen Zeichensprache. Quelle: [Fak] 2.3.3 Handschrifterkennung Handwriting ist von berührungssensitiven Geräten bekannt. Der Benutzer kann über die Eingabe eines Pfades einzelne Buchstaben dem System übermitteln. Die Interaktion mit dem System über die Handschrifterkennung bietet den Vorteil, dass die meisten Menschen schneller schreiben als tippen können. Bei sensitiven Geräten erfolgte die Eingabe meist über einen kleinen Stift (Stylus). Viele Programme benutzen stilisierte Buchstaben (vgl. Abbildung 2.18). Besonders zuverlässig sind Programme in denen die Buchstaben einzeln nacheinander eingegeben werden. Im Smartphonebereich hat sich die Eingabemethode, auf Grund des Technologiewechsels von resistiven auf kapazitive Touchscreens nicht durchgesetzt. Diese lassen sich nicht mehr mit einem herkömmlichen Stylus sondern bequemer über die Finger des Nutzers bedienen. Die meiste Software zur Handschrifterkennung basiert auf den Elastic Matching Algorithms[04]. Ansätze versuchen über Local Features ein Matching des Eingabegraphens und des hinterlegten stilisierten Buchstabens zu finden[07]. Durch die Handerkennung im berührungsfreien Kontext können Eingabeshapes dem Sys- 22 2.3 Eingabemethoden berührungslose Systeme Abbildung 2.18: Stilisierten Buchstaben als Unistrokes und das Graffiti Alphabet. Der schwarze Punkt signalisiert die Startposition. Quelle: [Sir02] tem übermittelt werden. Diese werden über bekannte Verfahren aus dem sensitiven Bereich analysiert und als Eingabe repräsentiert. 2.3.4 Alternative Eingabemethoden In diesem Kapitel aufgezeigte Methoden für berührungssensitive Systeme wurden bereits für die InAir Eingabe angepasst. Auf der Basis von 8Pen für Android haben Dan Xie und Yun Lin eine Eingabemethode KinVi 3D16 entwickelt, mit der über einen Singlepointer neben Texteingaben auch Objektmodifikationen vorgenommen werden können. Sie emulierten die Maus durch Handtracking mittels OpenNI17 . Die linke Maustaste wurde über die Distanzinformationen zwischen Kamera und Nutzer getätigt. Die adaptierte Eingabemethode funktionierte mit 50 CPM bzw. 8 WPM18 - im Vergleich zu Microsoft sehr schnell. SpeeG ein multimodale Text- und Spracheingabemethode basierend auf Abbildung 2.19: Adaptierte 8Pen-Methode für Berührungsloseeingabe. Quelle: [Dan] Dasher. Mit dieser Methode sind Eingabegeschwindigkeiten von 11,5 WPM durch Ex16 Webseite: http://www.kinvi3d.net/ Webseite: http://www.openni.com 18 Abgeleitet aus dem Eingabebeispiel der Entwickler. hello World! Hello Kinect! 25 Zeichen bzw. vier Wörter in 30 Sekunden. 17 23 Kapitel 2 Grundlagen perten und 7-9 WPM von Anfängern nach einer Einarbeitungszeit von wenigen Minuten möglich[Lod11]. Abbildung 2.20: Speech- and gesture-based Dasher input. Quelle: [Mac06][Lod11] 2.4 Hardware für berührungslose Eingabemethoden Um berührungsfreie Systeme nutzen zu können, wird spezielle Hardware zum Erfassen des Nutzers und dessen Eingabemittel (Hände) benötigt. In diesem Abschnitt wird ein StateOf-The-Art Überblick über bestehende Systeme zur Erfassung menschlicher Bewegungen gegeben. Das Kapitel Computer Vision stellt die Grundlage für die spätere Entwicklung der Eingabemethode für berührungslose Systeme dar. Man unterscheidet zwischen tragbaren Geräten, die vom Anwender für eine Erkennung seiner Bewegung kontinuierlich mit geführt werden müssen und Computer Vision. Unter Computer Vision versteht man maschinelles Sehen anhand von Kamerasystemen. Das Hauptaugenmerk soll auf optische Verfahren gelegt werden, die in der dritten Dimension arbeiten, um Segmentierungsprobleme über die Erfassung der Tiefeinformationen zu lösen. Neben LightCoding-Hardware, werden Stereoskopie (aktiv und passiv) sowie Time of Flight-Technologie vorgestellt. 2.4.1 Tragende Hardware Dataglove Eine bekannte Methode, um Pointer berührungsfrei zu simulieren, sind Datenhandschuhe. Es ist eine Eingabehardware, die die Navigation im virtuellen Raum erlaubt. Datenhandschuhe werden zur absoluten19 und relativen20 Detektierung verwendet. Damit die 19 20 Bestimmung der Hand im virtuellen Raum Bestimmung der Finger durch Bewegungsänderung 24 2.4 Hardware für berührungslose Eingabemethoden Position im Raum bestimmt werden kann, gibt es verschiedene Methoden: • Mechanische Verfahren • Optische Verfahren • Elektrische Verfahren • Elektro-magnetische Verfahren Motion Capturing In diesem Abschnitt wird nur ein optisches motion capturing Verfahren vorgestellt. Daneben existieren noch magnetische und mechanische Systeme. Bei optischen Verfahren tragen Personen einen Ganzkörperanzug, der mit mehreren Markern21 ausgestattet ist. Diese befinden sich an wichtigen Stellen, wie Gelenken, Kopf, Schulter, Nacken und Ellenbogen des Körpers. Je mehr Marker der Anzug enthält, um so genauer kann eine Rekonstruktion der Bewegung erfolgen. Während die Szene mit sichtbaren oder nicht sichtbaren Infrarot Licht ausgestrahlt wird, reflektieren die Marker das ausgesonderte Licht. Mehrere Kameras nehmen die Szene aus unterschiedlichen Winkeln auf, sodass alle Marker sichtbar sind. Eine Software extrahiert nun alle Lichtpunkte aus jedem einzelnen Frame und errechnet deren Positionierung im Raum. Ein Nachteil des optischen Verfahrens ist eine vollständige Verdeckung von Markern, die nachträglich per Hand wieder hinzugefügt werden müssen[Hor]. Nur wenige Systeme garantieren eine Echtzeitanwendung von Motion Capturing. Optische Verfahren mit Markern und Kameras, bieten die Vorteile der sehr hohen Meßgenauigkeit und Abtastrate22 . Der große Bewegungsfreiheit der Akteure und die Bewerkstelligung eines großen Arbeitsvolumen23 sind dem Verfahren weiterhin positiv anzurechnen[Hor]. Ebenfalls besteht Möglichkeit, mehrere Personen gleichzeitig durch unterschiedliche Markierungsfarben zu capturen[Hor]. Controller Nintendo WiiMote und Playstation Move Nintendo24 entwickelte mit der Wii eine Spielekonsole der siebten Generation. Hauptaugenmerk legte Nintendo bei der Entwicklung dieser Konsole auf das Bedienkonzept. Der Controller („Wiimote“) verfügt neben einen Beschleunigungssensor, einen Lautsprecher, einen Vibrationsmotor und gängigen Knöpfen zusätzlich über eine Infrarot-Kamera[Pop07]. 21 Passiven reflektierende Lichtpunkte oder aktive Leuchtdioden mit einer minimalen Größe von 2 − 4mm[Hor]. 22 Bis zu 250 fps bei ±0,2mm Messungenauigkeit[Hor]. 23 Begrenzt durch die Auflösung der Kamera. 24 Webseite: http://www.nintendo.com 25 Kapitel 2 Grundlagen Abbildung 2.21: Motion Capturing vom Marker zum Skelett. Quelle: [Hor] Zur Steuerung des im System simulierten Pointers wird ausschließlich die integrierte IRKamera verwendet. Mittels des Beschleunigungssensors ADXL330[Dev07] werden Daten über typische Handbewegungen dem System mitgeteilt. Dieser gibt Beschleunigungsinformationen auf der X,Y und Z Achse im Intervall von ±3,6g[Pop07].25 Abbildung 2.22: Nintendo WiiMote Beschleunigungsachsen. Quelle: [Gra] Sony entwickelte seit 2003 unter Dr. Richard Marks 2010 den Move-Controller für die Playstation 3[Ent]. Im Gegensatz zum WiiMote kommuniziert der Move-Controller über die Bluetooth-Schnittstelle[IEE02] mit der Konsole. Neben den üblichen Steuerknöpfen und -kreuzen verfügt auch der Move-Controller über einen Beschleunigungssensor und ein Gyroskop, sodass eine Bewegung in alle drei Richtungen ausgewertet werden kann. Am Kopf des Controllers befindet sich eine leuchtende Plastikkugel. Über eine am Anzeigemedium positionierte 2D-Kamera (Playstation Eye) kann die Bewegung des Motion25 Erdbeschleunigung g = 9,81 sm2 26 2.4 Hardware für berührungslose Eingabemethoden Controller in Echtzeit erfasst und verarbeitet werden.[Ent] (a) Sony Playstation 3 Move Patent. Quelle: [Zal13] (b) Sony Playstation 3 Move Controller Aufbau. Quelle: [Zal13] Abbildung 2.23: Funktionsweise und Aufbau des Playstation 3 Move Controller von Sony 2.4.2 Optische Verfahren Neben tragender Hardware, die im vorherigen Kapitel vorgestellt wurden, existieren auch optische Verfahren. Stationäre Hardware nehmen den Nutzer und dessen Verhalten auf. In einem weiteren Verarbeitungsschritt wird das Verhalten interpretiert und ausgewertet. Eine kostengünstige Variante zur Detektierung von Objekten sind 2D-basierte CMOS Kamerasysteme, wie Webcams oder aus dem Bereich der Videoüberwachung in Kombination mit einer Computervision Bibliothek. Zur Detektierung wird ein 2D-Referenzbild der gewünschten Szene aufgenommen und Pixelweise der aktuellen Aufnahme subtrahiert. Befindet sich ein neues Objekt in der Szene, so sind an diesen Punkte alle Pixel 6= 0. Weitere Möglichkeiten sind Dreidimensionale-Verfahren, die eine Deepmap generieren. Anhand von Änderungen der Tiefeinformationen, können Objekte, die der Szene hinzugefügt werden, schnell und einfach lokalisiert und extrahiert werden. Eine Segmentierung des Hintergrundes entfällt. Im folgenden werden drei aktuelle Verfahren zur Generierung von Tiefeinformationen vorgestellt. 27 Kapitel 2 Grundlagen 3D-Stereo Rekonstruktion Bei der 3D-Stereo Rekonstruktion unterscheidet man zwei Verfahren. Bei der aktiven Stereoskopie eine zusätzliche Lichtquelle für strukturiertes Licht eingesetzt. Bei der passiven 3D-Stereo Rekonstruktion reicht unter Zuhilfenahme einer zweiten Kamera das Umgebungslicht aus und es muss kein zusätzlicher Licht-Emitter verwendet werden. Passive 3D-Stereo Rekonstruktion Das Verfahren der 3D-Rekonstruktion mittels passiver Stereoskopie besteht darin, aus zwei unterschiedlichen Ansichten26 (getrennt durch eine Basislinie), auf ein Objekt über Triangulierungsverfahren spezielle Tiefeninformationen zu erhalten. Abbildung 2.24: Triangulierung über die Winkel aus Kombination zwischen Fokusierungsrichtung β und Disparität α. Quelle: [Föl10] Um dies zu realisieren, müssen aus beiden Ansichten die gleichen markanten Punkte heraus gefunden werden (Korrespondenzproblem27 ). Es stellt sich eine Frage der Zuordnung. Welcher Pixel aus Bild R (aufgenommen mit Kamera A) passt folglich mit dem korrespondierenden Pixel in Bild T (aufgenommen mit Kamera B) überein. Verschiedene Ursachen lassen dieses Problem nicht so trivial erscheinen, wie es auf den ersten Blick aussieht[Föl10]. • Verzerrung und Rauschen 26 27 Dies wird über die Verwendung von zwei Kameras im gleichen Kamerakoordinatensystem realisiert. Das Korrespondenzproblem umfasst die Auswahl und Detektierung von Zuordnungsmerkmalen und Zuordnungsverfahren. Der korrespondierende Punkt zum Punkt von Aufnahme A (Kamera A) kann sich überall in der Aufnahme B (Kamera B) befinden. 28 2.4 Hardware für berührungslose Eingabemethoden • Spiegelende Oberflächen • Verschiedene Ansichten • Homogene Oberflächen Um das Problem zu lösen, existieren verschiedene Algorithmen. 1. Block Matching nach Kurt Konolige[Kon] 2. Grpah-Cut based Matching nach Vladimir Kolmogorov[Vla02] 3. Semi-Global Block Matching nach Heiko Hirschmüller[Hir] Abbildung 2.25: Aufnahme zwei realer Punkte P und Q über zwei Kameras. Quelle: [Föl10] Abbildung 2.25 zeigt die Aufnahme zweier realer Punkte P und Q über zwei Kameras. OR und OT sind jeweils die optischen Zentren der jeweiligen Kamera. Durch den Versatz von p und q in den Bildern πR und πT kann die räumliche Ausdehnung des Objektes berechnet werden. Die Bildpunkte P und Q liegen im linken Bild immer auf der epipolaren28 Linie im rechten Bild[Lan09]. Durch die Aufnahme entsteht über ein reales Objektiv eine tangentiale oder radiale Verzerrung. Die Ursachen für solche Verzerrung können vielfältig sein. Diese müssen mittels Rektifizierung ausgeglichen werden. Das Verfahren der Rektifizierung ist ein Teilschritt der intrinsischen Kalibrierung, bei dem die Verzerrung anhand von Kamerakonstanten 28 Def.: „Da die Kameraöffnung per Difinition in der epipolaren Ebene liegen muss die Ebene in beiden Kameras auf eine Gerade projiziert werden, die als epipolare Linie bezeichnet wird.“ [Lan09] 29 Kapitel 2 Grundlagen mittels Matritzenmultiplikation ausgeglichen werden[Gar08]. Einen detaillierten Einblick zur Rektifizierung bietet die Arbeit von [Lan09, vgl. S. 32 ff.]. Abbildung 2.26: Rektifizierung einer tangentialen Verzerrung. [Föl10] Aktive 3D-Stereo Rekonstruktion Bei dem Verfahren wird eine der beiden Kameras durch einen Projektor oder Laser ersetzt. Dieser projiziert ein künstliches Licht auf die gewünschte Szene bzw. das Objekt. Während der Projektor auf der X-Achse des Kamerakoordinatensystems liegt, liegt die einzige Kamera im Ursprung[Föl10]. Abbildung 2.27 verdeutlicht den Aufbau und die Bezugspunkte eines aktiven Stereosystems. Der Winkel β aus der Projektion Q im Bild kann folgendermaßen berechnet werden: tan(β) = f f ⇒ β = arctan( ) x x (2.1) Nach der Berechnung der Seite d über die bekannten β α und b wird anschließend P in das Kamerakoordinatensystem umgerechnet. x = d ∗ cos(β), Y = 0, Z = d ∗ sin(β) (2.2) Anstatt eines Lichtpunktes kann auch ein Lichtstreifen oder gar ein ganzes Lichtmuster projiziert werden[Föl10]. Hierbei ist eine exakte Vorkalibrierung der Kamera und des Projektors unumgänglich und sehr aufwendig. Der Vorteil dieser Technik ist ein Entfallen des Korrespondenzproblem der passiven Stereoskopie[CIT]. 30 2.4 Hardware für berührungslose Eingabemethoden (b) Berechnung der Tiefeninformation bei aktiver 3D-Stereo Rekonstruktion. Quelle: [Föl10] (a) Beispiel für ein aktives Stereo Vision System. Quelle: [CIT] Abbildung 2.27: Schematischer Aufbau eines aktiven StereoVision-Systems (links). Geometrische Analyse zur Berechnung der Tiefeninformationen (rechts). Structured Light Coding Structured Light Coding ist ein von Primesense29 patentiertes, nicht offenes Verfahren zur Erstellung von Tiefenbildern. Anhand von Patenten und Untersuchungen lassen sich jedoch Rückschlüsse auf die Funktionsweise führen. Bei diesem Verfahren wird ein strukturiertes Lichtmuster in unterschiedlichen Intensitätsstufen durch einen Infrarot-Emitter auf die aufzunehmende Szene projiziert. Das pseudo-zufällige Muster hat eine Form von 3x3 Blöcken mit je 211x165px30 und wird von einem in der Hardware integrierten Infrarot-CMOS Sensor aufgenommen[Kof11]. Jeder Block hat einen mittig ausgerichteten hellen Punkt zu Identifikation des Blockes. Auf dem PS1080SoC findet eine Vorerarbeitung der Tiefeninformation durch ein Triangulierungsverfahren statt. Durch die Vorverarbeitung des PS1080SoC ist der Rechenaufwand im Vergleich zu Zweikamerasystemen geringer. Über die Abweichung des bekannten projizierten Referenzlichtmusters und des vom CMOS-Chip aufgenommen, kann eine Deep29 30 Webseite: http://www.primesense.com Dadurch ergibt sich mit insgesamt 633 ∗ 495px nahe zu eine VGA-Auflösung 31 Kapitel 2 Grundlagen Abbildung 2.28: Infrarot Punktmuster des Primsense-Verfahren. Quelle: [Rei11] map erstellt werden. Das Verfahren wird unter anderem in der Microsoft Kinect31 und Asus XtionPro32 eingesetzt. (a) Lichtpunktmuster ohne Objekt im Aufnahmebe- (b) Lichtpunktmuster mit Objekt im Aufnahmebereich. Quelle: [Dan11a] reich. Quelle: [Dan11b] Abbildung 2.29: Räumlicher Versatz der Lichtpunkte, für im Lichtmuster befindliche Objekte. Microsoft Kinect und Asus XtionPro Kinect ist ein für den Konsolen-Markt entwickeltes Eingabegerät von Microsoft, um berührungslos in Spielen zu navigieren und zu interagieren. Das Kamerasystem besteht aus fünf Komponenten[Geb11]: 31 32 Webseite: http://www.microsoft.de Webseite: http://www.asus.com 32 2.4 Hardware für berührungslose Eingabemethoden • • • • • RGB-CMOS IR-Projektor IR-CMOS Multi-Array-Mikrofon Integrierte Motor zur Neigung Neben der Version für die Spielekonsole Xbox ist eine zweite Version für den PC-Markt verfügbar. Der technische Unterschied besteht ausschließlich in einem zusätzlich aktivierbaren Near Field Mode (NFM) für die PC-Variante. So musste vorher ein Mindestabstand von 0,8 m eingehalten werden, um verwertbare Daten zu erhalten. Mit aktiviertem NFM entfällt der Bereich „Too Near“ (siehe Abbildung 2.30) und der Sensor kann bereits ab einem Abstand von 0,4 m verwertbare Daten liefern. Des Weiteren ist das kürzlich erhältliche Kinect SDK ausschließlich für die PC-Variante verfügbar. Abbildung 2.30: Unterschiedlicher Aufnahmebereich der Kinect mit aktivierten Near Field Mode Das Field of View beträgt 57◦ horizontal und 43◦ vertikal[Pri]. Die Basis für die 3DRekonstruktion ist ein aktives Stereosystem zwischen Infrarotprojektor und Infrarotkamera. Der Stereobasis beträgt 7,5 cm[Jea12]. Daraus ergibt sich ein ungefähres Aufnahmeumfeld von ca. 4m2 . Die Genauigkeit der gelieferten Tiefeinformationen liegen im Wertebereich von 0 - 2047 je Pixel[Geb11]. Auf Objekten mit stark spiegelnder bzw. reflektierender Oberfläche kann kein Punktmuster abgebildet werden, sodass an diesen Stellen keine Tiefeinformationen generiert werden können. Die Bereiche werden auf dem später generierten Tiefenbild als schwarze Flächen dargestellt. 33 Kapitel 2 Grundlagen Tabelle 2.2 vergleicht die Auflösung der Infrarotpunkte aus dem projizierten Muster mit der Auflösung der daraus entstehenden 3D-Punktwolke in Abhängigkeit des Abstandes zum Sensor. Zu sehen ist die abfallende Punktdichte bei höherer Entfernung und die größer werdende Anzahl an Punkten in der Punktwolke33 gegenüber dem projizierten Infrarotmuster. Tabelle 2.2: Auflösung des IR-Punktmusters und der interpolierten Punktwolke abhängig von der Entfernung zum Kinect-Sensor 3D IR IR Distanz [m] 3D Punkte IR Punkte 3D IR cm2 cm2 dm2 1 7417 811 9,15 28,07 3,07 306,89 2 2092 248 8,44 7,92 0,94 93,85 3 887 112 7,90 3,36 0,42 42,38 4 526 64 8,22 1,99 0,24 24,22 5 357 43 8,30 1,35 0,16 16,27 6 240 29 8,28 0,91 0,11 10,97 7 219 19 11,53 0,83 0,07 7,19 Laut Hersteller liegt der optimale Interaktionsabstand zur Kinect zwischen 0,8 m und 4,0 m34 . Objekte, die sich außerhalb dieser Bereiche befinden, liefern nur sehr ungenaue bzw. gar keine Tiefeinformationen. Asus stellt mit der Xtion Live ebenfalls eine identische Hardwarevariante auf Basis des Lightcoding-Verfahrens vor. Im Gegensatz zur Kinect bietet die Xtion jedoch zusätzlich die Möglichkeit, die Aufnahmegeschwindigkeit auf 60 fps zu lasten der Auflösung von 320x240 px zu erhöhen. Die Latenz der Asus Xtion Pro unter Verwendung der OpenNITreiber bei 30 fps und VGA Auflösung beträgt 66,44 ms. Microsofts Kinect weißt unter den gleichen Voraussetzungen eine Latenz von 72,98 ms auf[Ber11], womit die Xtion im Schnitt eine ca. 10% schnellere Reaktionszeit aufweist als die Kinect. Time of Flight Beim Prinzip der Time of Flight (ToF) Technologie, handelt es sich um Laufzeitmessung von optischen Lichtwellen. Die Wellenlänge des ausgesendeten Signals liegt im Bereich des nicht sichtbaren Infrarotlichts. Die Basis zur Laufzeitmessung ist die Lichtgeschwindigkeit c. Ein Sender sendet zu einem festen Zeitpunkt t0 ein Lichtimpuls aus, der von 33 Def.: Eine Punktwolke bzw. Cluster ist eine Punktmenge von diskreten Werten, die vollständig in einer vordefinierten Umgebung liegen. 34 In der Konsolenvariante. In der PC Version liegt der Interaktionsabstand dank zuschaltbarem NFM zwischen 0,4 m und 3,0 m. 34 2.4 Hardware für berührungslose Eingabemethoden einem Objekt reflektiert wird. Ein Empfänger detektiert den reflektierten Lichtimpuls zum Zeitpunkt tE . Durch den Laufzeitunterschied ∆t = (tE − t0 ) lässt sich die Entfernung z bestimmen. Die Schwierigkeiten bei der Anwendung dieses Verfahren liegen in der hohen Geschwindigkeit cluf t . cluf t = 299 703 146m/s (Brechnungsindex 1,000298) Die Messdauer für ein in fünf Meter35 entferntes Objektes beträgt: 2∗5m cluf t ⇒ 10m 299 703 146m/s = 3,33663498 ∗ 10− 8s Es muss neben einem hochempfindlichen Detektor eine schnell gepulste Lichtquelle (Emitter) zum Einsatz kommen. Das Ausgangssignal stellt zu jedem Bildpunkt eine eigentliche Tiefeinformation der betrachteten Szene dar. Das Verfahren wurde erst wegen der geringen Auflösung im industriellen Bereich eingesetzt. Mit zunehmender Entwicklung der Bildrate, Rauschunterdrückung und höheren Auflösung erweitert sich das Einsatzgebiet vor allem für die MCI. Ein Vorteil gegenüber des Triangulierungsverfahrens über Stereoskopie ist der geringere Rechenaufwand zum Erhalt der Tiefeinformationen. Abbildung 2.31: Übersicht verschiedener ToF-Verfahren. Quelle: [Spi10] 35 Die meisten ToF-Systeme arbeiten in einem Entfernungsbereich von zwei - zehn Meter. Um bei der geringen Auflösung ein detailreiches Bild zu erhalten, wird ein Abstand von fünf Meter zur Berechnung gewählt. 35 Kapitel 2 Grundlagen Generell unterscheidet man wie in Abbildung 2.31 zwei Verfahren in diesem Bereich. 1. Pulse Modulation (PM) 2. Continuous Wave Modulation (CWM) Problematisch bei diesen Verfahren ist, dass neben dem ausgehenden Lichtes des Emitters auch natürliches Umgebungslicht die Szene beeinflusst. Um dies zu unterscheiden, wird das Signal des Emitters moduliert. CW-Verfahren modulieren das ausgehende Licht kontinuierlich. Beim PM-Verfahren wird der Lichtimpulse in einer gepulsten Lichtmodulation abgegeben. Beim pulse modulation Verfahren wird die aufzunehmende Szene mit einem Lichtimpuls (im ns-Bereich) komplett ausgeleuchtet. Der Detektor misst die Lichtmenge, die in einer definierten Zeitspanne reflektiert wurde[Pia05]. Um verschiedene Reflektionseigenschaften unterschiedlicher Materialien zu kompensieren, wird eine zweite Messung mit einer höheren Zeitspanne durchgeführt. Das Verfahren benötigt neben einem sehr empfindlichen Empfänger auch eine gut synchronisierte und hoch-präzise Lichtquelle[Pia05]. Die Ansteuerung der Lichtquelle ist aufgrund der niedrigen Pulsung sehr aufwendig, sodass überwiegend das CW-Verfahren zum Einsatz kommt. Die zweite Möglichkeit ist ein konstant moduliertes Signal in Form einer Sinuskurve des Lichtimpulses. Das Signal wird am aufzunehmenden Objekt reflektiert und trifft mit einer Phasenverschiebung auf den Detektor, der in seiner Struktur einem konventionellen Bildsensor ähnelt. Anhand des gesendeten Referenzsignales und des ermittelten Signales kann die Phasenverschiebung berechnet werden. Diese entspricht den Entfernungsinformationen zwischen Kamerasystem und aufzunehmenden Objekt. Obwohl Objekte sich hinter der maximalen Aufnahmeentfernung der Kamera befinden, kann das System nicht unterscheiden, ob das Objekt im Aufnahmebereich liegt oder nicht. Bei der Aufnahme mit der SiwssRanger SR400036 , werden Objekte in 14 Meter Entfernung so erkannt, als betrage die Entfernung nur vier Meter. Mesa Imaging SR4000 Ein Vertreter der continuous wave modulation ist die Swiss Ranger 4xxx37 der Firma Mesa Imaging AG. Die SR4000 arbeitet in einem IR-Bereich von 850 Nanometer und Die MesaImaging AG bietet verschiedene Varianten der SR4000 an. Neben einem Standard (43◦ (h) ∗ 34◦ (v) und Wide (69◦ (h)∗56◦ (v)) FoV, verschiedenen Interfaces (USB, FastEthernet) kann der Käufer zwischen eine kurzen (0.1 - 5.0m) und langen (0.1 - 10.0m) Erkennungsentfernung wählen. 37 Unterschiedliche Modelle unterscheiden sich in Anschlussart, FoV (Linse), Länge des Modulationsverfahren (Reichweite) und Beleuchtungseinheit. 36 36 2.5 Interaktive Flächen (a) Funktionsprinzip 3D-Time of Flight moduliertes (b) ToF-Distanzbilddaten aus (a) aufgenommen Szene. Es ist die Entfernung von blau (kurze DiSignal. stanz) bis rot (große Distanz) dargestellt. Abbildung 2.32: Time of Flight Continuous Wave Modulation Verfahren. Quelle: [Ino] einer Beleuchtungsstärke von ca. 1 Watt und ca. 2 Watt bei der SR450038 [AG10]. Der verwendete IR-Filter lässt Licht in einem größeren Bereich als ausschließlich 850 Nm durch. Die natürliche Beleuchtungsstärke im Bereich von 850 Nm beträgt39 0,91 W/m2 . In Phasen ohne aktiver Beleuchtung wird die Hintergrundbeleuchtung ermittelt und von der gemessenen Grundbeleuchtung subtrahiert. Dadurch gleicht die SR4xxx teilweise die Umgebungsbeleuchtung aus. Die Auflösung ist mit 172x144 Pixel als gering einzustufen[AG10]. Das generierte Tiefenbild enthält somit insgesamt 24768 einzelner Tiefeinformationen. Die SR4000 besitzt eine durchschnittliche Latenz von 51,42 ms[Ber11] bei 54 fps und verwendeten Fast-Ethernet Anschluss. Gegenüber den beiden LightCoding-Varianten ist die Latenz im Schnitt ca. 26,07 ms schneller. Der Preis beträgt bei Einzelabnahme ca. e 4000,00. Weitere Systeme werden anhand von Herstellerangaben in Tabelle 2.3 gegenüber gestellt. 2.5 Interaktive Flächen Im Kontext dieser Arbeit handelt es sich bei interaktiven Flächen um großflächige digitale Boden- oder Wandprojektionen im Außenbereich. Mittels Trackingverfahren werden 38 39 Die SR4500 besitzt eine „zweite“ Beleuchtungseinheit und befindet sich derzeitig in der Entwicklung. Solar Radiation Spectrum 37 Kapitel 2 Grundlagen 0,1 - 10,0 (wide) 0,1 - 5,0 (Std.) 0,1 - 7 0,1 - 10 FoV [◦ ] Auflösung [px] 50 69x56 (wide) 43x34 (Std.) 70x40 0,8 . 3,5 FPS Verfahren 176x144 55 58x45 850 850 LED 16 W LED 1 W Nein Nein Nein Outdoor 2.500 e 4.000 e Preis Frequenzen für mehrfach Betrieb 14,5/15/15,5 MHz (wide) 29/30/31 MHz (Std.) Besonderheit Integrierter RGB-Sensor mit 640x480px, Modulationsfrequenz 15 Hz Integrierter RGB-Sensor mit 640x480px k.A. IRBeleuchtung Wellenlänge [nm] Tabelle 2.3: Aktuelle Time of Flight Systeme im Überblick CWM 160x120 60 Hersteller MesaImaging AG CWM 320x240 Modell SR4000 Fotonic LightCoding Reichweite [m] E70 Fotonic 0,0 - 2,0 P70 90x68 190 e 490 e 90 870 850 NEIN Nein 160x120 0,3 - 7,0 1,5 - 5,0 60 LED CWM 40x40 60x44 870 LED mW LED Projector PMD Technologie 40 30 0,15 - 4,0 830 850 CamBoard Nano 200x200 160x120 57,3x42 0,4 - 4,0 Integrierte OMAP 4460 ARM Cortex A9, 1024 MB RAM Integrierte OMAP 4460 ARM Cortex A9m 1024 MB RAM Weltweit kleinste 3D Tof Referenzkamera Linsenaustausch FoV 60x60 Bis 100.000 lx Umgebungslicht CWM CWM 30 57x43 9.000 e 2.000 e PMD Technologie Panasonic 160x120 30 Ja Ja CamCube 3.0 D-Imager (ekl3106) CWM 633495 299 e Softkinectic LightCoding Nein DepthSense 311 Microsoft LED LED 0,5 W (3104) LED ca. 2,5 W (3106) LED Kinect 38 2.5 Interaktive Flächen Passanten durch Fein- und Ganzkörpergesten Bestandteil der dynamisch abgespielten Animation. So können verschiedene Bild-, Video- und Soundeffekte durch den Benutzer in Echtzeit manipuliert werden. Damit diese Flächen einen möglichst großen Nutzerkreis erschließen können, ist tragende Hardware zur Objektdetektierung ausgeschlossen. Bei diesen Systemen werden ausschließlich 3D-Kamerasysteme verwendet wie sie im Unterabschnitt 2.4.2 vorgestellt wurden. Neben einer Echtzeitanwendung von mindestens 30 fps und einer hohen Langlebigkeit40 wird eine mittlere Resistenz gegenüber Außenlicht41 an das verwendete System gestellt. Bestandteile einer interaktiven Fläche, sind neben einem Anzeigemedium (Projektor, LCD-Wand, LED-Wand etc.), einem optischen Verfahren (Time of Flight, LightCoding oder 2D-CMOS Bildverarbeitung) zum Person- und Gestentracking auch eine Verarbeitungseinheit zur Berechnung der erhaltenden und anzuzeigenden Informationen. (a) Interaktive Bodenprojektion mittels einem Projektor. (b) Interaktive Bodenprojektion mit Maskenschnitt über zwei Projektoren. (c) Interaktive Wandprojektion, realisiert über Rückprojektion. (d) Interaktive Wandanimation, realisiert über ein LCD. Abbildung 2.33: Interaktive Boden- und Wandprojektionen mittels Beamer und LCD. Quelle: [UG] 40 Diese Systeme sind mindestens zehn Stunden am Tag im Einsatz und werden täglich über das ganze Jahr hinweg betrieben. 41 Interaktive Flächen werden selten in direkte Sonneneinstrahlung an öffentlichen Plätzen betrieben, sodass eine Funktionalität nur in indirektem Sonnenlicht gegeben sein muss. 39 Kapitel 2 Grundlagen 2.6 Zusammenfassung In diesem Kapitel wurden die Grundlagen für das Verständnis der vorliegenden Arbeit gesetzt. Dabei wurde ein Einblick in die Funktionsweise aktueller berührungssensitiver Eingabesysteme gegeben. Neben diesen sind bereits bestehende kontaktlose-Methoden und deren Hardwarevoraussetzungen aufgezeigt wurden. Grundlage für die spätere Evaluierung der in dieser Arbeit entwickelten Eingabemethoden sind durchschnittliche Eingabegeschwindigkeiten bestehender Systeme. So wurde in diesem Kapitel zu jeder Methode versucht, existierende Evaluierungsergebnisse hinsichtlich der WpM und CpM anzugeben. Hierbei wurde ein Englisch-Wörterbuch zugrunde gelegt, bei dem durchschnittlich jedes Wort aus 5,1 Buchstaben42 43 definiert ist. Systeme wie Dasher und 8Pen wurden bereits in berührungsempfindliche- auf berührungslose Systeme adaptiert. Die Erfolgsaussichten auf die Verwendung von einer breiten Masse in kontaktlosen Systemen ist als sehr gering einzustufen. Es müssen alte Verhaltensmuster von Nutzern aufgebrochen werden, die über die noch sehr geringe Verbreitung von berührungslosen Möglichkeiten eher unwahrscheinlich gilt. Eher sind alte und bekannte Muster geeignet wie virtuelle QWERT-Z Tastaturlayouts, auf denen Benutzer schon seit Jahrzehnten in Hardwareform arbeiten. Eine Adaption von Shape-Methoden auf bekannten Keyboardlayouts ist daher als sehr sinnvoll einzustufen. Zusätzlich ist die Eingabegeschwindigkeit von diesen im Vergleich zu anderen nicht auf QWERT-Z Layout basierenden sensitiven Möglichkeiten sehr hoch. Es stellt sich die Frage, ob die Präzision von optischer Hardware ausreichend genug ist, um schnelle und präzise Eingaben auf QWERT-Z Layouts durchzuführen. In diesem Kapitel wurden ebenfalls optische und tragende Hardware für berührungslose Eingaben vorgestellt. Während tragende Hardware wie Datenhandschuhe und Motioncapturing sehr präzise Informationen liefern, sind sie für den Gebrauch von textbasierten Eingaben im öffentlichen Bereich nicht einsetzbar. Hierfür müsste jeder Nutzer vor dem Gebrauch der interaktiven Fläche mit solcher Hardware ausgestattet werden. Aus diesem Grund wurden ebenfalls optische Verfahren zum Personentracking aufgezeigt. Neben herkömmlichen 2D-Vision Verfahren über Kamera CMOS-Chips zur Opjektdetektierung sind aktuell drei andere Verfahren zugänglich. So wird über Stereoskopie mittels zwei 2-Dimensionalen CMOS Chips eine Deepmap erzeugt. Stereoskopie stellt eine kostengünstige Möglichkeit dar, um Tiefeinformation einer Szene zu erhalten. Weiter bietet das Verfahren neben einer hohen Auflösung auch eine hohe Framerate. Der Rechenauf42 43 Quelle: Webseite: http://blogamundo.net/lab/wordlengths Im Deutschen beträgt die durchschnitte Wortlänge 6,25 Buchstaben / Wort 40 2.6 Zusammenfassung Tabelle 2.4: Eingabegeschwindigkeiten bestehender Systeme Eingabemethode Berührungslos WpM Sensitiv Hardwarestatur Sensitiv 50 - 80[CM98] QWERT-Z Standard An- Sensitiv 34 droid Hardware Keyboard Standard Android Sensitiv 24 (2.1) Swype Sensitiv > 50 SlideIt Sensitiv 50 8PEN Sensitiv 12 MessagEase Sensitiv 60 Dasher Sensitiv 39 Micrsofot Kontaktlos 5 XBOX360 Kinect Standard Dasher Kontaktlos 10 8Pen Kontaktlos 8 Xbox Kinect (Ar- Kontaktlos 1,86[Lod11] ray) Xbox Kinect Kontaktlos 6,32[Lod11] (ABCDE-F) Spracheingabe Kontaktlos 10,96[Lod11] im Vergleich. CpM44 255 - 408 173,4 122,4 > 205 205 61,2 306 198,9 25,5 50,1 40,8 9,49 32,23 55,90 Tabelle 2.5: Sensitive Eingabegeschwindigkeiten im Vergleich gemessen an Swype Eingabemethode Eingabegeschwindigkeit in % Swype 100,0% Standard Android Hardware Keyboard 68,0% Standard Android (2.1) 48,0% 8PEN 24,0% MessagEase 120,0% Dasher 78,0% 41 Kapitel 2 Grundlagen wand zur Erstellung der Deepmap und der Kalibrierungsaufwand45 ist höher. LightCoding Hardware wie Microsoft Kinect oder Asus Xtion Pro projizieren über einen integrierten IR-Projektor ein vordefiniertes Lichtmuster auf die aufzunehmende Szene. Dieses wird mit einem Referenzmuster verglichen und die entsprechende Diskrepanz in Tiefeinformationen umgewandelt. Die maximal zu erreichende VGA-Auflösung ist gegenüber Stereoskopie geringer. Ein Vorteil durch die Massenproduktion für den Konsolen-Markt ist der Endpreis dieser Produkte. Nachteilig sind die schwachen IR-Projektoren, die meist über nur eine IR-LED verfügen und im natürlichen Umgebungslicht (IR-850 Nm) gänzlich überblendet werden. Die Folge ist ein nicht erkennbares Tiefenbild (weiß). Abhilfe könnten hier ein stärkerer IR-Projektor schaffen, der mind. 1 Watt zur Verfügung stellt. Die dritte und Kosten-intensivste, aber zugleich robusteste Möglichkeit gegenüber natürlichem Umgebungslicht, ist die Time of Flight Technologie. Aktuelle Systeme verwenden überwiegend das CWM-Verfahren, bei dem ein konstant moduliertes Signal in Form einer Sinuskurve abgegeben wird. Diese Systeme sind robuster gegenüber natürlichem Umgebungslicht und werden überwiegend im Industriebereich eingesetzt. Das ausgesandte Lichtsignal wird von der Szene reflektiert und trifft mit einer Phasenverschiebung auf den integrierten IR-Detektor. Anhand der Phasenverschiebung wird für jedes Pixel die Entfernung berechnet. Aktuelle Auflösungen bewegen sich im Bereich von 172x144 px 200x200 px. System Passive Stereoskopie LightCoding Time of Flight CWM Tabelle 2.6: Optische Verfahren im Vergleich Auflösung FPS46 RechenAußeneinsatz Preis aufwand ca. 1024x768 theo. 640x480 bis 204x204 20 30 20 hoch gering gering geeignet nicht geeignet teilweise geeignet ab ca. 1000 e ab ca. 100 e ab ca. 2000 e Zusätzlich wurde ein kleiner Einblick in die Bestandteile einer interaktiven Fläche gegeben. Neben einer Verarbeitungseinheit müssen Beamer oder LCD-Wand als Anzeigemedium fungieren und ein optisches Trackingverfahren zur Aufnahme von Passanten eingesetzt werden. Für den Einsatz in geschlossenen Räumen unter künstlichem Licht kann LightCoding Hardware verwendet werden. Für passive, natürliche Lichtquellen sind ausschließlich Time of Flight oder Stereoskopie Technik verwendbar, sofern auf Tiefeinformationen zurückgegriffen werden muss. 45 Die Kalibrierung der aktiven Stereoskopie (Projektor und Kamera) und auch passiven Stereoskopie (Kamera und Kamera) ist höher als bei LightCoding und Time of Flight Technologie 46 Frames per Second bei nebenstehender Auflösung. Wird die Auflösung nach unten korrigiert erhöhen sich die Bilder pro Sekunde. 42 Kapitel 3 Architektur und Entwicklung der QWERTZ Eingabemethoden 3.1 Verwendete Hardware Im Kontext dieser Arbeit stand zu Beginn eine MesaImaging SwissRanger SR4000 (vgl. Unterabschnitt 2.4.2) mit wide-FoV zur Verfügung. Die Gütequalität des generierten Tiefenbildes war mit einer Auflösung von 172x144 px höher als mit der maximalen Auflösung der Microsoft Kinect. Grund hierfür ist das der Kinect generierte Punktmuster mit einer Gesamtauflösung von 640x480 px. Je nach Entfernung ist der integrierte IR-CMOS Sensor nicht in der Lage, jeden Punkt separat zu lokalisieren, sondern unterscheidet nur noch Blöcke bestehend aus mehreren Punkten. Die Punktdichte der XY-Ebene ist invers proportional zum Quadrat der Entfernung zum Sensor[Kou12]. Benötigt der Sensor ab einer bestimmten Entfernung, zum Beispiel einen Block aus acht Punkten zur Tiefenermittlung, so nur wird ein tatsächliches Tiefenbild von 81 ∗ (640 ∗ 480px) = 80 ∗ 60px erzeugt. Weiterhin ist die SwissRanger robuster gegenüber natürlichen Lichtverhältnissen. Der hohe Preis von ca. 4000 e und die fehlende Integration in OpenNI47 und anderen öffentlichen Bibliotheken sind negativ anzurechnen. Es besteht die Möglichkeit einen Hardwaretreiber für die Integration der SR4000 in OpenNI zu implementieren. Offen bleibt die Frage, ob Usergenerator und Handgenerator Production Nodes(vgl. hierfür Unterabschnitt 3.2.1) dennoch das gewünschte Ergebnis liefern. Das kommerziell erhältliche Omek Beckon-SDK48 bietet die Möglichkeit, neben Time of Flight-Systeme auch Kinect und XtionPro anzusteuern und generierte Rohdaten zu analysieren und zu verwalten. Da das Testsample herstellerseitig nur zwei Wochen zur Verfügung stand und andere 47 48 Webseite: http://www.openni.org Webseite: http://www.omekinteractive.com 43 Kapitel 3 Architektur und Entwicklung der QWERTZ Eingabemethoden Bibliotheken kommerziell sind, wurde für die Entwicklung eine Kombination aus OpenNI inklusive Middleware49 NITE50 mit OpenCV51 und der Microsoft Kinect verwendet. 3.2 Verwendete Software In diesem Abschnitt soll grundlegende Software erläutert werden, die für die Entwicklung der Eingabemethoden verwendet wurde. Für die Realisierung der Eingabemethode über optische Verfahren müssen Personen und Hände für die Interaktion mit dem System in Echtzeit detektiert werden. Zum einen wird auf die öffentlichen Bibliotheken OpenNI mit der Middleware NITE (3D-ComputerVision Bibliothek) und OpenCV (2D-ComputerVision Bibliothek) und zum anderen wird die eigens nicht öffentliche Multimedia Engine - ShugenDoEngine näher dargestellt. 3.2.1 OpenNI OpenNI (Open Natural Interface) ist ein Framework, das Hardwaretreiber auf Primesense basierter Kameratechnologie und Mikrophone sowie Middlewarekomponenten (NITE) zur Verfügung stellt. Die Entwicklung von OpenNI wird durch eine Organisation bestehend aus Primesense, Willow Garage52 , SideKick53 und Asus54 voran getrieben[Pri10a]. Diese haben sich als Ziel gesetzt, die Nutzung natürlicher Interaktions-Geräte sowie Anwendungen voranzutreiben. Das Framework steht unter der GNU LGPL55 Lizenz und ist für den kommerziellen Einsatz freigegeben. Generell lässt sich die Architektur (vgl. Abbildung 3.2) von OpenNI in drei unterschiedliche, voneinander getrennte Schichten unterteilen. Die unterste Schicht beinhaltet die Hardware. Darauf aufbauend liegt in der mittleren Schicht OpenNI, welches die Schnittstellen zur Kommunikation der jeweiligen Sensoren und der MiddlewareKomponenten bietet. Die gelieferten Rohdaten werden von der Middleware-Komponente analysiert und weiter verarbeitet. In der obersten Schicht wird die Software repräsentiert, die die Anwendung mit Interaktionenskontext implementiert. 49 Diensteschicht, Zwischenanwendung oder Vermittlungssoftware Webseite: http://www.primesense.com/solutions/nite-middleware/ 51 Webseite: http://www.opencv.org 52 Webseite: http://www.willowgarage.com 53 Webseite: http://www.sidekick.co.il 54 Webseite: http://www.asus.de 55 Webseite: http://opensource.org/licenses/lgpl-3.0.html 50 44 3.2 Verwendete Software Abbildung 3.1: 3 Schichten Architektur von OpenNI. Quelle: [Pri10a] NITE wurde ebenfalls von Primesense als Middleware-Komponente für OpenNI angeboten [Pri10b]. Es beinhaltete mehrere Production Nodes 56 , die für die weitere Verarbeitung von Tiefeinformationen geeignet sind. So stellt NITE neben Skelettdaten auch eine rudimentäre Gerstenerkennung von einfachen Handgesten zur Verfügung. Tabelle 3.1: NITE zu Verfügung Geste Drücken (push) Wischen nach unten (swipe down) Wischen nach links (swipe left) Wischen nach rechts (swipe right) Wischen nach oben (swipe up) Kreis (circle) Winken (wave) stehende Handgesten[Ber11] Parameter Beschleunigung (Zoll/Sekunde) Beschleunigung (Zoll/Sekunde) Beschleunigung (Zoll/Sekunde) Beschleunigung (Zoll/Sekunde) Beschleunigung (Zoll/Sekunde) Radius (Zoll) - Damit OpenNI ein Skelettmodell erzeugen kann, muss der Nutzer eine definierte Pose einnehmen und mind. zwei Sekunden halten. Die „Psi-Pose57 “ wird genutzt, um anhand der Tiefeinformationen die Koordinaten des Skelettmodells zu berechnen. 56 Production Nodes stellen die eigentliche Funktionalität zur Verfügung. Sie erhalten Rohdaten und liefern eine verarbeitete Ausgabe. 57 Die Psi-Pose ist für eine eindeutige Lokalisierung des Benutzers bis Version 2.0 notwendig. In dieser Haltung hebt der Nutzer beide Arme im 90◦ Winkel neben den Kopf. 45 Kapitel 3 Architektur und Entwicklung der QWERTZ Eingabemethoden Abbildung 3.2: 3 Schichten Architektur von OpenNI incl. Middleware NITE. Quelle: [Pri10a] 3.2.2 Skeletterkennung In der neusten Version von OpenNI (2.0) ist eine „Psi-Pose“ für die Erkennung des Benutzers nicht mehr notwendig. In Abbildung 3.3 wird der Ablauf der Skeletterkennung in OpenNI und NITE dargestellt. Abbildung 3.3: Flowchart des Skelett-trackings in OpenNI & NITE 46 3.2 Verwendete Software Zu Beginn ist es notwendig, einen neuen OpenNI-Kontext zu erzeugen. Die erforderlichen Production Nodes werden an dem erstellten Kontext registriert. Neben dem DepthGenerator, der ein Float-Array mit Tiefewerten in der entsprechende Auflösung liefert, muss der UserGenerator Kontext hinzugefügt werden. HandGenerator und ImageGenerator dienen für das Handtracking und das Erzeugen des RGB Bildes der Kinect. Nach dem Erstellen jedes einzelnen Production Nodes wird über den XnStatus rc (vgl. Code 3.1) geprüft, ob die Production Nodes ordnungsgemäß erzeugt wurden. Sollte ein Fehler beim Erzeugen statt gefunden haben, so wird die Initialisierung abgebrochen. Fehler können unter anderem ein nicht angeschlossener Hardwaresensor oder nicht installierte Softwarekomponenten wie NITE sein. 1 2 int SkeletonSensor :: Initialize ( ) { m_OpenNiContext . Init ( ); 3 XnStatus rc = XN_STATUS_OK ; 4 5 // create depth and user generators rc = m_depthGenerator . Create ( m_OpenNiContext ); 6 7 8 if ( CHECK_RC ( rc , " Create depth generator " ) == -1 ) return -1; 9 10 11 rc = m_userGenerator . Create ( m_OpenNiContext ); 12 13 if ( CHECK_RC ( rc , " Create user generator " ) == -1 ) return -1; 14 15 16 rc = m_imageGenerator . Create ( m_OpenNiContext ); 17 18 if ( CHECK_RC ( rc , " Create image generator " ) == -1 ) return -1; 19 20 21 rc = m_handTracker . Create ( m_OpenNiContext ); 22 23 if ( CHECK_RC ( rc , " Create hand tracker " ) == -1 ) return -1; 24 25 26 27 28 29 ... ... ... } Code 3.1: Erzeugung des OpenNI Kontextes und entsprechenden Production Nodes Nach erfolgreicher Installierung werden dem UserGenerator zwei Callback Funktionen newUser() und lostUser() übergeben, die jedes mal bei Betreten und Verlassen des FoV eines Nutzer aufgerufen werden. Hierbei wird die UserId abgefragt und gespeichert. An- 47 Kapitel 3 Architektur und Entwicklung der QWERTZ Eingabemethoden Abbildung 3.4: Psi Pose und erkannte Skelett (link) NITE Handtracker auf KinectTiefenbild (rechts). Quelle: [Pri10a] hand dieser UserId können nun insgesamt 15 Skelettpunkte abgerufen werden. Ein Update erfolgt in jedem Frame. Tabelle 3.2: Skelettpunkte von NITE Körperpartie Point head point[0] neak point[1] rightShulder point[2] leftShoulder point[3] rightElbow point[4) leftElbow point[5] leftHand point[6] rightHand point[7] rightHip point[8] leftHip point[9] rightKnee point[10] leftKnee point[11] rightFoot point[12] leftFoot point[13] torso point[14] 48 3.2 Verwendete Software 3.2.3 Handtracker Da die Handerkennung mittels Skelletmodells über NITE sehr unpräzise ist, verfügt NITE zusätzlich über einen Production Node, der sich ausschließlich um das Tracking der Hände kümmert. Hierbei können mehrere Hände erkannt und verarbeitet werden. Das Prinzip ist ähnlich der Skeletterzeugung. Nach dem Registrieren des Handgenerators werden diesem nun drei statt zwei Callback Funktionen übergeben. Hand_Create(), Hand_Update() und Hand_Destroy(). Erfolgt eine Änderung im Generator, werden diese Methoden aufgerufen. Auf Basis des Handtrackers und der Skeletterstellung wird die weitere Entwicklung der Eingabemethode durchgeführt. 3.2.4 OpenCV OpenCV (Open Source Computer Vision) ist eine plattformübergreifende in C/C++ geschriebene Bibliothek zur Bildverarbeitung, welche ursprünglich von Intel entwickelt wurde[Joh08] und heute von Willow Garage58 gepflegt wird. OpenCV ist aktuell unter der BSD59 Lizenz erhältlich und somit kostenlos für den akademischen und kommerziellen Gebrauch verfügbar[Joh08]. Bestandteile der Bibliothek sind u.a. verschiedene Routinen zur Analyse und Verarbeitung von Bildmaterial[Int01]. So wird OpenCV auch für die Gesichts- und Gestenerkennung, Objekterkennung, Videotracking und mobile Roboter eingesetzt. In dieser Arbeit soll die Bibliothek für die Erkennung der Handgeste „Greifen“ eingesetzt werden. In Abbildung 3.5 werden die Pakete und ihre Zusammenhänge dargestellt (weitere Informationen können in „Learning OpenCV“ von O’Reilly nachgeschlagen werden). 3.2.5 ShugenDoEngine Bei der ShugenDoEngine handelt es sich um ein kommerzielles Multimedia-Framework zum Erstellen von Echtzeitanwendungen. Die Engine bietet Vereinfachungen von Zeichenoperation von Echtzeitinhalten an, wobei vorgefertigte Klassen für die täglichen Aufgaben zur Verfügung gestellt werden. Zusätzlich wird ein Event-Management-System angeboten, bei dem ein zentrales Nachrichtensystem der Applikation zur Verfügung steht. Die Engine wird genutzt, um Mause-, Char-, ClickEvents über das Nachrichtensystem an 58 59 Webseite: http://www.willowgarage.com/ Webseite: http://opensource.org/licenses/bsd-license.php 49 Kapitel 3 Architektur und Entwicklung der QWERTZ Eingabemethoden Abbildung 3.5: Architektur der Open Source Computer Vision Bibliothek. Quelle:[Joh08] verschiedene Klassen weiter zu leiten und um das in Abschnitt 3.3 vorgestellte Tastaturlayout zu rendern. 3.3 Rendern der virtuellen Tastatur Das verwendete Tastaturlayout basiert auf dem bekannten QWERT-Z Modell. Es beinhaltet 26 Buttons für Buchstaben und drei Buttons für deutsche Umlaute (ä,ö,ü). Um das Layout so kompakt wie möglich zu halten, werden ausschließlich vier Sonderbuttons integriert: Backspace, Space, Return und ein Button zum Wechseln auf ein weiteres Keyboardlayout (Numpad). Das Layout wird über eine XML-Datei definiert, die es ermöglicht, schnelle Anpassung oder einen Wechsel des gesamten Layouts durchzuführen. 50 3.3 Rendern der virtuellen Tastatur 1 2 3 4 5 6 7 8 9 10 11 <? xml version ="1.0" encoding =" utf -8" ? > < keyboards > < keyboard > < name > standard </ name > < language > de </ language > < buttons > <row > <\ row > <\ buttons \ <\ keyboard > <\ keyboards > Code 3.2: XML-Layout für Repräsentation des Keyboardlayouts. Jedes Keyboard beinhaltet die Knoten name,language,buttons und row. Der Knoten row repräsentiert eine Tastaturzeile des dreizeiligen QWERT-Z Layouts. In jeder Zeile werden einzelne Buttons definiert. 1 2 < button character =" q " positionX =" -0.452" positionY =" -0.094" height ="0.058" width ="0.058" / > Code 3.3: XML-Repräsentation des Buchstaben Q in dem Knoten <row></row>. Ein Button enthält folgende Attribute: • character - Definiert, welcher Buchstabe für den Button angezeigt werden soll. • positionX, positionY - Definiert die Anfangsposition (linke untere Ecke) im Einheitskoordinatensystem für das spätere Rendern. • height, width - Definiert die Höhe und Breite des Buttons im Einheitsmaß. Damit das Layout nun gerendert werden kann, wird die XML-Datei über die Tastatur eingelesen und für jeden Button ein Buttonobjekt erzeugt. Alle Buttonobjekte werden in einer sortierten Liste gespeichert und die XY-Position dem VertexBuffer mittels ShugenDoEngine übermittelt. Nach dem der Vertexbuffer mit allen Positionsdaten versorgt wurde, erhält dieser den Befehl, das Layout zu zeichnen. Gezeichnet wird jeder Button aus zwei Dreiecken gegen den Uhrzeigersinn. 51 Kapitel 3 Architektur und Entwicklung der QWERTZ Eingabemethoden (a) Zwei Button besteht aus acht Punkten. P1 − P4 ∈ Button1 und P5 − P8 ∈ Button2 . (b) Erster Schritt: Zeichnung des Dreieckes gegen Uhrzeigersinn P1 − P3 . (c) Zweiter Schritt: Zeichnung des Dreieckes P3 − P1 . (d) Dritter Schritt: Zeich- (e) Vierter Schritt: Zeichnung des Dreieckes P5 − nung des Dreieckes P7 − P7 . P1 . Abbildung 3.6: Abfolge der Schritte zur Zeichnung eines Tastaturbuttons. 3.4 Objektselektierung Nachdem in Abschnitt 3.3 die virtuelle Tastatur über das definierte XML-Layout gerendert wurde, können nun verschiedene Selektierungsmaßnahmen von Buchstaben stattfinden. Mittels dem Production Node Handgenerator von NITE kann ein virtueller Mousepointer simuliert werden. Ist die rechte oder linke Hand des Nutzers erkannt, so wird ein Handicon eingeblendet, welches über die Bewegung der Hand gesteuert werden kann. Die Position wird über die Callback Methode Hand_Update() in der Variablen pPosition() ausgelesen und an das Eventsystem der ShugenDoEngine als MouseEvent weitergegeben. Alle Methoden, die für das MouseEvent registriert sind, werden über eine Positionsänderung benachrichtigt. Zu Beginn sollte eine Buchstabenselektierung über eine vordefinierte Zeit t geschehen. t wird in der Evaluierungsphase so gewählt, dass ein optimales Verhältnis aus Eingabegeschwindigkeit und entstehenden Fehlern besteht. Wird t zu klein gewählt, geschieht eine ungewollte Selektierung. Ein zu großer Wert wirkt sich negativ auf die Eingabegeschwindigkeit aus. In jedem Buttonobjekt werden zwei Variablen definiert, die für die Zeitselektierung notwendig sind. timeToComplete definiert die Zeit t. currentTime ist ein Counter, der gestartet wird, sobald sich die Position des Zeigers über den Button befindet. Erreicht currentTime den Wert von timeToComplete, wird der sich auf der aktuellen Zeigerposition befindliche Buchstabe selektiert. 52 3.4 Objektselektierung Um den Nutzer zu verdeutlichen, dass der gewünschte Buchstabe ausgewählt wurde, wird dieser auf der Tastatur grün gefärbt. Während der Zeit von t = 0 bis t = Selektierungswert, wird der Buchstabe von der Farbe schwarz zu rot gefärbt. Die zweite Selektionsmaßnahme ist die Auswahl eines Buchstaben über eine vordefinierte Geste. Um die aktuelle Handposition wird eine 2D-Bounding Box einer festen Größe erstellt, sodass die gesamte Hand des Nutzers anzeigt wird. Im Folgenden wird die Funktionsweise der Grab-Geste erklärt, wie diese in OpenCV implementiert wird. Durch das generierte Tiefenbild ist bereits eine Segmentierung zwischen Hand und Hintergrund geschehen. Über die OpenCV Methode cv::findContours wird die Hand wie in Abbildung 3.8 mit einer weißen Silhouette angezeigt. Das vereinfachte weiße Polygon besteht aus n Punkten. An jedem konvexen60 Winkel wird ein oranger und jedem konkaven61 Winkel ein blauer Kreis gelegt. Der Handmittelpunkt wird über einen roten Kreis definiert und zeigt an, ob die Geste ausgeführt wurde. Wird die Hand geschlossen, ist das gezeichnete Polygon konvex62 . Dies signalisiert, dass keine Finger mehr geöffnet sind. Der rote Kreis des Handmittelpunkts färbt sich grün und zeigt dem Nutzer, dass die Hand geschlossen ist und die „Greif-Geste“ erkannt wurde. Öffnet der Nutzer die Hand wieder, so färbt sich der innere Kreis erneut rot und es sind abermals konkave Winkel vorhanden. Für die Implementierung wurde die Methode cv::convexHull aus der OpenCV Bibliothek verwendet. Abbildung 3.7: Standard Grab-Release Geste zur Objektselektierung Quelle: [Hen11b] In eigenen Versuchen zeigte sich, dass die Erkennung mittels Kinect auf eine Entfernung von ca. einem Meter gut funktioniert. Darüber hinaus ist die reelle Auflösung so gering, 60 Def.: Eine reellwertige Funktion heißt konvex, wenn ihr Graph unterhalb jeder Verbindungsstrecke zweier seiner Punkte liegt. 61 Def.: Eine reellwertige Funktion heißt konkav, wenn ihr Graph oberhalb jeder Verbindungsstrecke zweier seiner Punkte liegt. 62 Def.: Ein Polygon heißt konvex, wenn von jedem seiner Punkte aus alle Punkte des Polygons sichtbar sind. 53 Kapitel 3 Architektur und Entwicklung der QWERTZ Eingabemethoden dass es öfters zu Fehlinterpretation kommt. Die Fehlinterpretation der Geste führte dazu, dass nicht gewünschte Buchstaben ausgewählt wurden und die Eingabe verfälscht wurde. Würde hingegen ein optisches Verfahren mit einer höheren Präzision verwendet werden, könnte die Geste sinnvoll auch für größere Entfernungen genutzt werden. Um eine Selektion dennoch über eine Geste zu realisieren, wurde im zweiten Schritt die Druck-Geste implementiert. (a) Aufnahme der Hand mit fünf geöffneten Fingern. (b) Aufnahme der Hand mit drei geöffneten Fingern. (c) Aufnahme der geschlossenen Hand mit aktivierter Grab-Geste. Abbildung 3.8: Links: OpenCV Silhouette der Hand mit markierten konvexen (orange) und konakven (blau) Winkeln. Rechts: Dazugehöriges mit Kinect aufgenommenes Tiefenbild in Grauwerten, aufgenommen mit Kinect. 54 3.4 Objektselektierung Abbildung 3.9: Standard Druck-Geste zur Objektselektierung Quelle: [Hen11b] 1 2 //! The hand depth click threshold const float32 H A N D _ D E P T H _ C L I C K _ T R E S H H O L D = 15.0 f ; 3 // the time between a click . For now 500 MS const u32 CLI CK_TI ME_DIF FEREN CE = 500; 4 5 Code 3.4: Statische Definition des für die auszuführende Push-Geste. 15,0mm in 32ms. Für die Realisierung werden die Tiefeinformationen der Hand untersucht. Zu Beginn wird ein definiert, das die Diskrepanz der Tiefeposition relativ zu Kamera zwischen aktuellem und darauf folgenden Frame definiert. Ist größer als ein definierter Trashhold (vgl. Code 3.4), so wird die Geste erkannt und der Buchstabe unter der aktuellen Handposition ausgewählt. Ist die kleiner als der Schwellwert, so wird die Positionsänderung vernachlässigt und nicht als Geste erkannt. In Code 3.4 wird zusätzlich eine ClICK_TIME_DIFFERENCE definiert. Die Variable beschreibt die Zeitspanne, in der ein Klick über das erneut ausgeführt werden kann. Wird die Zeit auf 0ms gesetzt, so werden bei einer Handbewegung des Nutzer von x ∗ 15mm in x ∗ 32,2ms63 genau x Klicks dem System übermittelt. Im Kapitel 4 wird auf die Wahl von hinsichtlich der Eingabegeschwindigkeit und resultierenden Eingabefehler eingegangen. Vorab kann gesagt werden, dass dynamisch an die Entfernung des Nutzer angepasst werden sollte. Grund hierfür ist, dass je näher der Benutzer sich an der Kamera befindet, desto größer ist das Verziehen der Hand beim Ausüben des Drucks. So ist für eine geringe Entfernung der Hand zu Kamera ein kleineres ratsam. 63 Die interne Verarbeitungsgeschwindigkeit beträgt 60 fps, was 16,6ms entspricht. Da die Kinect eine Geschwindigkeit von 30 fps aufweist, werden 2 Frames mit dem selben Wert belegt. So muss eine Änderung von 15mm aller 33,2ms statt finden. 55 Kapitel 3 Architektur und Entwicklung der QWERTZ Eingabemethoden 3.5 Airshape In diesem Kapitel soll die bisherige Entwicklung der virtuellen berührungslosen Eingabe weiter entwickelt werden und sich an dem in Abschnitt 2.2 kurz vorgestellten SWYPE-System orientieren. Zu dem ähnlich funktionierenden System „ShapeWriter“ (früher SHARK) von IBM liegen zahlreiche Dokumentation und Forschungsberichte vor, sodass im Folgenden ein genauerer Blick auf die Funktionsweise der Eingabemethode geworfen wird. ShapeWriter ist eine Eingabemethode, die über das sensitive Ziehen von Buchstabe zu Buchstabe einen Eingabeshape erstellt. Zu jedem Wort wird ein optimaler Shape generiert, der mit dem vom Nutzer manuellen Eingabeshape verglichen wird. Das zugrunde liegende Keyboardlayout ist nebensächlich, da das System sowohl auf QWERT-Z, ATOMIK als auch auf anderen Layouts ohne große Anpassung funktioniert. Es hat sich heraus gestellt, dass die Eingabegeschwindigkeit auf sensitiven Systemen über das ATOMIK Layout bis zu 77% langsamer ist als das für viele Nutzer bekannte QWERT-Z Layout[ZK08]. Jedes Pattern eines Wortes ist eine Folge von allen in Reihenfolge befindlichen Buchstaben des Wortes. Dieses Pattern wird auch als Sokgraph bezeichnet. Sokgraphen unterscheiden sich je nach Keyboardlayout, können aber schnell zu jedem Wort generiert werden. (b) Sokgraph für das Wort „Graph“ auf dem QWERT-Z Keyboardlayout. (a) Sokgraph für das Wort „Graph“ auf dem Metropolis Keyboardlayout. Abbildung 3.10: Zwei unterschiedliche optimale Sokgraphen für das gleiche Wort „Graph“ auf einem Metropolis-Layout und QWERTZ-Layout. Der rote Punkt markiert den Anfang sowohl des Wortes als auch des Sokgraphs. Abbildung 3.10 verdeutlicht, dass zu jedem Keyboardlayout unterschiedliche Sokgraphen für das gleiche hinterlegte Wörterbuch generiert werden müssen. Durch Hardwareunge- 56 3.5 Airshape nauigkeiten und unpräzise Eingaben des Nutzers ist es nur sehr schwer möglich, einen optimalen Sokgraph einzugeben. Abbildung 3.11: Ein Nutzer schreibt das Wort „system“ auf einem ATOMIK-Layout (blau). Dagegen der generierte Sokgraph in rot für das gleiche Wort. Der ideale Graph ist hinsichtlich Positionierung und Ausmaß weit vom Eingabegraph entfernt. Quelle: [ZK08] Um beide Graphen zu matchen, verwendet ShapeWriter eine Multi-Channel Architektur zur Grapherkennung. Jeder Channel alleine ist nicht umfangreich genug, um einen Eingabegraph ausreichend zu identifizieren. Alle Channels zusammen bieten jedoch die Möglichkeit dafür. In Abbildung 3.12 wird die Architektur der Grapherkennung von SHARK verdeutlicht. Zu Beginn wird durch einen Vorverarbeitungsschritt anhand von Templates eine starke Filterfunktion vor die anderen Kanäle angelegt. Hierbei wird über Anfangs- und Endposition des generierten Template-Sockgraphen in einen normalisierten Maßstab übersetzt. Nun wird eine Start-Ziel-Start und End-to-End Distanz zwischen dem Eingabegraph und dem Templategraph berechnet. Ist eine der beiden Distanzen größer als ein vordefinierter Threshold, so wird das Template verworfen und die nächste Schablone wird verglichen. Im nächsten Schritt wird der Shape Recognition Channel betrachtet. Dieser führt eine Klassifizierung des Eingabegraphs durch. Viele Modelle aus der Handwriting [LR99, S. 40-47][Lan03, S. 259-324] und Stift-Gestenerkennung [RS00, S. 63-84][TT90] integrieren das Hidden Markov Model und Model Matching-Strategien [RS00, S. 63-84][TT90]. SHARK basiert ursprünglich auf cursive script regnition System (elastic matching) von Tappert[CC82], wurde jedoch dann zwecks Fehlertolleranz auf protortinales shape matching geändert. Der zweite Kanal zur Detektierung des Eingabegraphs ist der Location Recognition Channel. Dieser bestimmt die absolute Position des Nutzers Eingabegraphs auf dem virtuellen Keyboard. Es sollen Wörter mit gleichen Sokgraphen unterschieden werden. Auf einem englischen Wörterbuch mit 20.000 Einträgen existieren auf einem 57 Kapitel 3 Architektur und Entwicklung der QWERTZ Eingabemethoden Abbildung 3.12: SHARK Multi-Channel Architektur zur Erkennung von Sokgraphen. Quelle: [ZK08] ATOMIK-Layout 1117 identische Sokgraphs (confused pairs)[ZK08]. Nach einer ergänzenden Speicherung von Start- und Endpunkt liegen insgesamt nur noch 493 (284 Römische Nummerierung) confused pairs vor. 58 3.5 Airshape SHARK basiert auf einem standardisierten language model. Das Modell basiert auf der Integration der geglätteten Bigrammen 64 . Später soll die Integration von Trigram65 in das Sprachmodel erfolgen. Abbildung 3.13: Ein identischer Sokgraph für die beiden Wörter heel(blau) und root(rot) (confused pair). Ein Nachteil dieser Methode ist die Speicherung alle Sokgraphen. So müssen zu Beginn für jedes Wörterbuch und jedes Tastaturlayout eine Datenbank mit allen Sokgraphs erstellt werden. Insgesamt liegen zwischen 4.5 - 7.0 Mio. Sokgraphen in einer Datenbank, wenn dieser fünf Wörterbüchern mit ca. 300.000 - 500.000 Einträgen[Dud07] und drei verschiedenen Tastaturlayouts zu Grunde liegen. Ein rudimentärer Weg, der zu einem viel schlechteren Ergebnis hinsichtlich der Erkennungsrate zwischen dem Eingabepfad und dem gewünschten Ausgabewortes des Nutzer führt, wird über die Auswahl aller sich auf dem Pfad in Reihenfolge befindlichen Buchstaben. Anhand eines hinterlegten Wörterbuches wird anhand von vier Klassifizierungen versucht, ein passendes Matching auf Basis von String-Matching-Strategien zu finden. 64 Ein Bigramm im Kontext eines Wörterbuches, ist eine Auflistung aller Buchstabenkombinationen mit Wahrscheinlichkeit ihres aufeinander folgenden Auftretens. Bigramms werden sprachspezifisch erstellt. 65 Trigramme sind spezielle Formen von N-Grammen, die das Ergebnis der Zerlegung eines Textes in Fragmente sind.[Lew00] 59 Kapitel 3 Architektur und Entwicklung der QWERTZ Eingabemethoden 1 2 3 4 5 6 7 8 9 WORDS = open ( ’ wordlist . txt ’). read (). split () KEYBRD_LAYOUT = [ ’ qwertyuiop ’ , ’ asdfghjkl ’ , ’ zxcvbnm ’] def match ( path , word ): """ Checks if a word is present in a path or not . """ try : for char in word : path = path . split ( char , 1)[1] return True except : return False 10 11 12 13 14 15 def get_keyboard_row ( char ): """ Returns the row number of the character """ for row_no , row in enumerate ( KEYBRD_LAYOUT ): if char in row : return row_no 16 17 18 19 20 21 22 23 def compress ( sequence ): """ Removes redundant sequential characters . ex : 11123311 = > 1231 """ ret_val = [ sequence [0] ] for element in sequence : if ret_val [ -1] != element : ret_val . append ( element ) return ret_val 24 25 26 27 28 29 30 31 32 def g et _mi nim um _wo rd len gt h ( path ): "" Returns the minimum possible word length from the path . Uses the number of transitions from different rows in the keyboard layout to determin the minimum length """ row_numbers = map ( get_keyboard_row , path ) co mp res se d_r ow_ nu mbe rs = compress ( row_numbers ) return len ( co mpr ess ed _ro w_ num be rs ) - 3 33 34 35 36 37 38 39 40 def get_suggestion ( path ): """ Returns suggestions for a given path . """ suggestions = filter ( lambda x : x [0] == path [0] and x [ -1] == path [ -1] , WORDS ) suggestions = filter ( lambda x : match ( path , x ) , suggestions ) min_length = ge t_ min im um_ wo rdl eng th ( path ) suggestions = filter ( lambda x : len ( x ) > min_length , suggestions ) return suggestions Code 3.5: Codebeispiel für rudimentäre Python Implementierung von SWYPE über String-Matching von Krishna Bharadwaj In Code 3.5 wird die Methode compress() dazu genutzt gleiche, hintereinander folgende Buchstaben zu eliminieren. Die beiden Methoden keyboardrow() und get_minimum_worlength() geben anhand der Wechsel der Tastaturreihen die kleinste mögliche Wortlänge an. Über der Methode match() wird mittels split() versucht, den Teilstring einem Wort in dem 60 3.5 Airshape hinterlegten Wörterbuch zu matchen. Tabelle 3.3: Rudimentäre SWYPE Implementierung Erkannter Eingabestring heqerqllo qwertyuihgfcvbnjk wertyuioiuytrtghjklkjhgfd dfghjioijhgvcftyuioiuytr aserfcvghjiuytedcftyuytre asdfgrtyuijhvcvghuiklkjuytyuytre mjuytfdsdftyuiuhgvc vghjioiuhgvcxsasdvbhuiklkjhgfdsaserty Eingabestring und Ausgabe Ausgabe hello quick world doctor architecture agriculture music vocabulary Diese Arbeit beschäftigt sich mit einem anderen Ansatz als die beiden bisher vorgestellten. Bei diesem wird untersucht, ob eine Worterkennung anhand des Eingabepfades ohne ein Sokgraphmatching und Stringmatching möglich ist. Hierfür werden signifikante Punkte des Eingabepfades analysiert und Rückschlüsse auf die selektierten Buchstaben geführt. In Kapitel 3.5.4 wird erklärt, wie der zu Beginn generierte und simplifizierte Eingabepfad des Nutzers analysiert wird, um entsprechende Ausgabewörter zu generieren. 61 Kapitel 3 Architektur und Entwicklung der QWERTZ Eingabemethoden 3.5.1 Architektur In diesem Abschnitt wird die Architektur des Projektes näher dargestellt. Abbildung 3.14: Software-Architektur von AirShape ShugenDoEngine Zentrales Element ist die ShugenDoEngine, die ein Nachrichtensystem zur Verwaltung von Events beinhaltet. 62 3.5 Airshape OpenNI & NITE Die gelieferten Kameradaten werden über den Hardwaretreiber von OpenNI an die MiddelwareKomponente NITE geliefert. Klasse Skeleton Die Klasse Sekeleton erhält Informationen über die Hand- und Skelettposition des Benutzers. Daraufhin werden die Koordinaten in Fensterkoordinaten umgerechnet, damit ein Eingabepointer simuliert werden kann. Die berechneten Fensterkoordinaten werden als Mouse-Event an die ShugenDoEngine übermittelt. Klasse Keyboard In der Klasse Keyboard wird das Layout über eine XML-Datei geholt und geparst. Das Keyboard rendert unter Zuhilfenahme der ShugenDoEngine die Tastatur. Weiterhin beinhaltet die Klasse eine Kollisionserkennung sowohl zwischen Mouse-Event und Button wie auch zwischen kompletten Pfad und Buttonliste. Das Keyboard übermittelt der Engine die Informationen über ein Char-Event. Klasse TrackAnalyser Der TrackAnalyser erhält die Informationen über die Mausposition und bildet daraus einen Pfad. Der entstehende Eingabepfad wird in der Klasse simplifiziert und gesnappt. Zusätzlich werden zu allen Punkten die inneren Winkel berechnet (vgl. Unterabschnitt 3.5.4 und der Klasse TrackMatcher übergeben. Klasse TrackMatcher In der Klasse TrackMatcher sind Methoden enthalten, die aus dem erhalten vereinfachten Pfad inklusive aller Winkel die markanten Punkte identifiziert. Diese werden dann mittels SQL-Anfrage über die MYSQL-Lib an das in der Datenbank hinterlegte Wörterbuch gestellt. Klasse ResultPicker Der Resultpicker erhält die Ergebnisliste des TrackMatcher und zeichnet diese in das Fenster. Die Auswahl des Benutzers aus der Ergebnisliste wird als ResultEvent an die ShugendDoEngine weitergegeben. Klasse SentenceDrawer Die Klasse SentenceDrawer erhält von der Engine ein CharEvent, welches als Eingabestring des Benutzers in das Fenster gezeichnet wird. Zusätzlich hat die Klasse Zugriff auf eine Trainings-Menge in Form einer XML Datei. Die dort beinhalteten Wörter werden dem Nutzer in dem Anzeigefenster präsentiert. 63 Kapitel 3 Architektur und Entwicklung der QWERTZ Eingabemethoden SQL Wörterbuch In der SQL-Datenbank wurde ein minimiertes deutsches Wörterbuch mit ca. 138.000 Einträgen von OpenOffice66 hinterlegt, über das mittels MYSQL Lib.[Ora13] vom TrackMatcher zugegriffen wird, um verschiedene Anfragen durchzuführen. 3.5.2 Pfadgenerierung Zur Generierung des Eingabegraphs wird in jedem Frame (60 fps67 ) die Handposition ausgelesen. Jeder Punkt (bestehend aus XY-Koordinate) wird einer zeitlich sortierten Liste eingefügt. Der Renderer der ShugenDoEngine zeichnet eine Verbindungslinie zwischen zwei aufeinander folgenden Punkten Pn , Pn+1 ∈ M , wobei M die Menge aller Punkte des Graphens ist. Der erstellte Pfad ist sehr detailreich und erhält eine hohe Anzahl an Positionspunkten (60 Punkte/Sekunde werden der Liste hinzugefügt). Es stellt sich heraus, dass über die Eingabe der Hand ein kontinuierliches „Zittern68 “ vorhanden ist. Der ungewollte Ausschlag kommt durch die unpräzise optische Aufnahmequelle und unterschiedlichen natürlichen Lichtverhältnisse. Es wurde beobachtet, dass der Ausschlag an Tagen mit einem größeren IR-Anteil im natürlichen Umgebungslicht höher war als üblich. Erfolgt die Generierung des Pfades über eine Hardwaremaus anstatt des Trackingverfahrens, kann das Zittern vernachlässigt werden (vgl. Abbildung 3.15). Im nächsten Schritt wird durch eine Pfadsimplifizierung versucht, das Zittern zu kompensieren. Der Eingabepfad wird dem Nutzer rot angezeigt. Abbildung 3.15: Eingabegraph über die Hardwaremaus(oben). Eingabegraph mit starkem „Zittern“ über das Handtrackingverfahren von NITE (unten). 66 Webseite: http://extensions.services.openoffice.org/project/dict-de_DE_frami Aufnahmegeschwindigkeit der Kinect: 30 fps, Interne Verarbeitung 60 fps 68 Die Intensität des ungewollten Ausschlags ist zusätzlich abhängig von der Entfernung zwischen Benutzer und Kamera. Je dichter der Nutzer vor der Kamera steht, desto höher ist der Ausschlag. 67 64 3.5 Airshape 3.5.3 Pfadsimplifizierung Der generierte Eingabesokgraph besitzt durch die Ungenauigkeit der Hardware und das Wackeln der Eingabehand viele ungewollte Ausschläge, die eine Erkennung von nicht gewollten Buchstaben hervorruft. Zur Optimierung wird auf dem Eingabesokgraph ein Linienglättungsverfahren angewandt, um durch Weglassen einzelner Punkte diesen so zu vereinfachen, dass er in seiner Struktur weiterhin erhalten bleibt, aber ungewollte Ausschläge entfernt werden. Hierfür wurde der Algorithmus zur Kurvenglättung von David-Douglas-Peucker [Peu73] verwendet. Der Algorithmus wird überwiegend für Vektorgrafiken und Generalisierungen von Kartendaten genutzt. Der Algorithmus baut auf dem rekursiven Prinzip von divide & conquer auf. Gegeben ist eine Punktfolge aus n Punkten: K = (P1 , ..., Pi , ..., Pn ) und einer Toleranz > 0. Der Pfad K wird so approximiert, dass eine Strecke zwischen ersten und letztem Punkt gebildet wird. Nun sucht sich der Algorithmus den Punkt c mit dem größten Abstand b zur Strecke P1 Pn . Die Approximation ist dann abgeschlossen und die inneren Punkte werden ggf. entfernt, sofern dmax ≤ 2 oder n = 2 ist. dmax = maxi=2...n−1 d(Pi , P1 Pn ) (3.1) Ist die Approximation nicht ausreichend genug, so wird die Folge in zwei Teilfolgen unterteilt und der Algorithmus auf diese beiden Folgen erneut angewandt.[Peu73, S. 112-122] K1 = (P1 , ..., Pm ) und K2 = (Pm , ..., Pn ) In dem Fall von Airshape wurde der Algorithmus in der Methode SimplifyTrack() mit verschiedenen Entfernungstoleranzwerten implementiert. Ist der Wert zu klein, wird der Eingabepfad zu stark approximiert und es sind für die spätere Analyse zu viele markante Punkte vorhanden. Ist der Toleranzwert dagegen zu hoch eingestellt, werden zu wenig Punkte entfernt und der Ausschlag des Eingabesokgraphen bleibt weiterhin vorhanden, wodurch ein ungewollte Auswahl von Buchstaben statt findet. Das beste Ergebnis konnte mit einem Wert von = 0 025 erzielt werden. In Abbildung 3.17 ist der vom Nutzer generierte Sokgraph (blau) mit dem approximierten Sokgraph (rot) zu sehen. Erkennbar ist, dass überschüssige Punkte entfernt und der gezeigte Graph um 330 Punkte reduziert wurde, die Beschaffenheit jedoch erhalten blieb. 65 Kapitel 3 Architektur und Entwicklung der QWERTZ Eingabemethoden Abbildung 3.16: Funktionsprinzip der Liniensimplifizierung anhand des Douglas-Peucker Algorithmus Quelle: [Zim07] 3.5.4 Pfadanalyse Nachdem der Eingabesokgraph vereinfacht wurde, wird dieser in diesem Abschnitt nun analysiert. Als grundlegende Methode wird der Graph auf markante Punkte untersucht. Markante Punkte sollen eine mögliche Buchstabenwahl des Nutzer repräsentieren. In diesem Abschnitt soll erläutert werden, was markante Punkte eines Sokgraphen sind, wie diese gefunden und berechnet werden können. Nach der Simplifizierung besteht der Sokgraph nur noch aus einer kleinen Teilmenge von Punkten des ursprünglichen Eingabegraphs. Es werden zu Beginn die Buchstaben ausgewählt, die auf dem Anfangs- und Endpunkt des Graphen liegen. Beide Buchstaben sind fix und werden jedes Mal in die spätere SQL-Abfrage integriert. Sollte der Anfangsund Endpunkt nicht direkt auf einem Buchstabenfeld liegen, so werden diese später über das optimierte Snapping-Verfahren (vgl. Unterkapitel 3.5.6) auf den Mittelpunkt des naheliegenden Buchstaben verschoben. Ein markanter Punkt für die Analyse des Pfades ist ein Punkt n, der einen Winkel α zu seinen beiden benachbarten Punkten n − 1 und n + 1 von über 60◦69 aufweist. Der Eingabegraph ist gerichtet und die Analyse erfolgt über Vektoren. Die Methode AnayseLine() in der Klasse TrackAnalyser geniert zu Beginn aus drei aufeinander folgenden Punkten zwei Vektoren. So werden aus den Punkten: n − 1 = xy , n = 69 Dies ist ein frei wählbarer Wert. 60◦ ergab in darauf folgenden Tests ein gutes Ergebnis. 66 3.5 Airshape (a) Eingabegraph (rot) und simplifizierter Graph nach Anwendung von Douglas-Peucker (blau) (b) Punktmenge vor und nach Anwendung von Douglas-Peuker mit Schwellwert 0,025. Zuvor bestand der Sokgraph aus 378 Punkten nach Simplifizierung aus 48 Punkten. Abbildung 3.17: Anwendung von Douglas-Peucker-Algorithmus auf Eingabesokgraph und die resultierende Punktmenge Abbildung 3.18: Winkel eines markanten Punktes für die Pfadanalyse. x x y , n + 1 = y zwei Vektoren auf (n+1)x −nx gebildet. Darauf folgend (n+1)y −ny Basis von n der Form: V ~ec1 = nx −(n−1)x , V ~ec2 ny −(n−1)y = wird das Punktprodukt beider Vektoren in der Funktion DotProduct() gebildet, um den dazwischen liegenden Winkel zu berechnen. V ~ec1 ∗ V ~ec2 cos(α) = V ~ec1 ∗ V ~ec2 (3.2) Aus dem Ergebnis von (3.2) wird der Arkuskosinus gebildet und durch den Wert π geteilt. Der berechnete Winkel wird als Grundlage für die Feststellung von markanten Punkten gewählt. 1 2 void TrackAnalyser :: Update ( Keyboard * keyboard ) { SimplifyTrack ( m_currentTrack , m_simplifiedTrack ); 67 Kapitel 3 Architektur und Entwicklung der QWERTZ Eingabemethoden AnalyseLine ( m_simplifiedTrack , m_simplifiedTrack . size ( ) ); keyboard - > SnapLineToKeyPos ( m_simplifiedTrack ); 3 4 5 } Code 3.6: Klasse TrackAnalyser Die Methode Update() der Klasse TrackAnalyser vereinfacht zu erst den Eingabegraph und analysiert ihn hinsichtlich oben genannter markanter Punkte. Mit der Methode SnapToKeyPos() werden markante Punkte sowie Start- und Endpunkt auf die nächst mögliche Keyboard-Taste verschoben (vgl. 3.5.6). Im nächsten Abschnitt wird über Anfangs- und Endpunkt sowie alle markanten Punkte eine Datenbankabfrage an das hinterlegte Wörterbuch gestellt. 3.5.5 Wörterbuchabfrage über SQL In Unterabschnitt 3.5.1 wurde die Architektur der Implementierung aufgezeigt. Im Hintergrund arbeitet ein in die Datenbank eingepflegtes deutsches Wörterbuch von OpenOffice mit ca. 138.000 Einträgen. Zu Beginn wurde die Abfrage der Datenbank so gestaltet, dass Anfangs- und Endbuchstabe eines Wortes definiert wurden. Zwischen diesen beiden Buchstaben wurden alle erkannten Punkte aus Unterabschnitt 3.5.4 in entsprechender Reihenfolge einsortiert. 1 2 select word from ( select word from wordlist where word like ’a % f %e ’) as wordresult ; Code 3.7: Erste Abfrage an das hinterlegte Wörterbuch für den Anfangsbuchstaben „a“ einem Markantenbuchstaben „f “ und dem Endbuchstaben „e“. Über das o.a. SQL-Statement ist die Ergebnisliste zu groß (vgl. Tabelle 3.4), um ein gutes Matching zu finden. Aus diesem Grund wurde die Liste im nächsten Schritt absteigend sortiert. 1 2 3 4 select word from ( select word from wordlist where word like ’a % f %e ’) as wordresult ; ORDER BY LENGTH ( word ) ASC ; Code 3.8: Abfrage für die gleichen Buchstaben wie in Code 3.7 mit absteigend sortierter Liste. 68 3.5 Airshape Nach der Sortierung war das gewünschte Wort in 98%70 der Anfragen unter den ersten zehn Ergebnisse. Das Problem besteht weiterhin, ein optimales Matching zu finden und die Ergebnisliste so zu reduzieren, dass nur noch ein Ergebnis vorhanden ist. Für die ersten Versuche wäre es ausreichend, die Ergebnisliste auf maximal drei bis fünf Ergebnisse zu reduzieren. Der Benutzer kann dann über die Anzeige der Ergebnisliste selber auswählen welches Wort eingegeben werden sollte. Im 3.5.6 wird zur Optimierung eine negativ Wortliste erstellt, die nicht auf dem Pfad befindliche Buchstaben aus der Anfrage entfernt. Ziel ist es, die Ergebnisliste so zu minimieren, dass nur noch ein Ergebnis vorhanden ist. Wort Affe Graph wer was Ei im Haus Tabelle 3.4: Ergebnisse der Datenbankabfrage Eingabestring Größe der Position Position Ergebnisohne Sor- mit Sorliste tierung tierung A%f%e 206 24 1 G%r%a%p%h 13 7 1 w%r 419 211 2 w%a%s 73 34 1 e%i 40 8 1 i%m 99 19 1 H%a%u%s 70 18 1 3.5.6 Optimierung In diesem Kapitel werden Optimierungsversuche geschildert, um die Funktionsweise von AirShape zu verbessern. Einige dieser Verfahren wurden bereits in die aktuelle Implementierung integriert, wogegen andere theoretisch aufgeführt werden. So werden in diesem Kapitel ausschließlich softwarebasierte Optimierungen auf dem Eingabegraph, der Pfadanalyse, des Matchings und der Wörterbuchabfrage präsentiert. 70 Insgesamt wurden 60 unterschiedliche Anfragen an die Datenbank gestellt. 59 Wurden unter den 10 10 Ergebnissen gelistet. 69 Kapitel 3 Architektur und Entwicklung der QWERTZ Eingabemethoden Snapping Als ersten Schritt der Optimimerung wurde ein Snapping-Verfahren implementiert, das es ermöglicht, den generierten Pfad auf den naheliegende Mittelpunkt eines Buchstabenbuttons zu verschieben. Hierdurch wird das Problem behoben, dass ein Punkt des simplifizierten Sokgraphen, der sich außerhalb des Layouts oder zwischen zwei Bounding Boxen71 befindet, auf einen Button verschoben und erkannt werden kann. Berechnet wurde der Euklidische Abstand eines Punktes p1 ∈ U (mit U = Punktmenge des vereinfachten Sokgraphen) zu allen t1 , ..., t35 ∈ T (mit T = Mittelpunkte der Tastaturbuttons) über p1 t1 = p (x1 , t2 )2 + (x2 , t2 )2 (3.3) mit p1 = (x1 , x2 ), t1 = (t1 , t2 ) Die Optimierung fand dahingegen statt, dass nur Anfangs-, End- und markante Punkte des vereinfachten Graphen verschoben werden. Tests ergaben, dass eine Verschiebung aller Punkte des Graphen kein gewünschtes Ergebnis hervorbringen. Hierbei kam es wie in Abbildung 3.19 vor, dass Zwischenpunkte auf ungewollte Buchstaben verschoben wurden und es so zu einer Verfälschung des Eingabegraphs kam. In Abbildung 3.19 (d) ist zu erkennen, dass der Punkt zwischen den Buchstaben „w“und „a“des vereinfachten Graphen aus (b) auf den Buchstaben q verschoben wurde. Dadurch kann das Wort „was“ nicht mehr erkannt werden. Nach dem Verschieben kann es passieren, dass vorherige markante Punkte keine markanten Punkte mehr sind, da sich der Winkel untereinander geändert hat. Im Anschluss muss daher noch einmal die Methode AnalyseLine( m_simplifiedTrack, m_simplifiedTrack.size( ) ); mit dem verschobenen simplifizierten Graphen aufgerufen werden. 71 Umschließendes Dreieck für einzelne Buchstaben des Tastaturlayouts. 70 3.5 Airshape (a) Eingabepfad des Nutzers. (b) Simplifizierter Eingabepfad ohne SnappingVerfahren. (c) Simplifizierter Eingabepfad mit angewandten Snapping-Verfahren für Anfangs-, Endund markante Punkte. (d) Simplifizierter Eingabepfad mit angewandten Snapping-Verfahren auf alle Punkte des vereinfachten Graphen. Abbildung 3.19: Snapping anhand des Eingabegraphen des Wortes „was“ 1 2 3 4 ... keyboard - > SnapLineToKeyPos ( m_simplifiedTrack ); AnalyseLine ( m_simplifiedTrack , m_simplifiedTrack . size ( ) ); } ... Code 3.9: Snapping-Verfahren zur Verschiebung von markanten Punkten auf das Layout. Erstellung negativer Buchstabenliste Das Statement aus Unterabschnitt 3.5.5 wurde dahingegen optimiert, dass Buchstaben, die nicht auf den Pfad liegen, direkt aus der Anfrage entfernt werden können. Hierfür wurde der Query um einen regulären Ausdruck ergänzt, der alle Buchstaben enthält, die sich nicht auf dem Eingabepfad befinden. 1 2 3 4 5 use airshape ; select word from ( select word from wordlist where word like ’a % f %e ’) as wordresult where wordresult . word NOT REGEXP ’q +| w +| r +| t +| z +| u +| i +| o +| p +| ue +| 71 Kapitel 3 Architektur und Entwicklung der QWERTZ Eingabemethoden g +| h +| j +| k +| l +| oe +| ae +| y +| x +| c +| v +| b +| n +| m + ’ 6 7 8 9 ORDER BY LENGTH ( word ) ASC ; Code 3.10: Zusätzlich generierte Negativwortliste für das Wort „Affe“. Wie in Tabelle 3.5 zu sehen ist, wird die Ergebnisliste gegenüber der ersten beiden Anfragen aus Unterabschnitt 3.5.5 so optimiert, dass im Mittel nur noch 3,97% der ursprünglichen Menge an möglich passenden Wörtern vorhanden ist. Festzuhalten ist, dass eine Ergebnisliste ≥ 2 überwiegend Wörter unterschiedlicher Länge beinhaltet. Um die Ergebnisliste weiter zu minimieren, wird den folgenden zwei Abschnitten auf die Optimierung des Ergebnisliste anhand der Wortlänge eingegangen. 72 3.5 Airshape Tabelle 3.5: Ergebnisse der Datenbankabfrage mit negativ Buchstabenliste Wort Eingabestring ErgebnislistePosition Negativ Buchstabenliste 0 q + |w + |r + |t + Affe A%f%e 1 1 |z + |u + |i + |o + |p + | + |g + |h + |j + |k + |l + | + | + |y + |x + |c + |v + |b + |n + |m+0 0 q + |w + |t + |z + Graph G%r%a%p%h 2 1 |u + |i + | + |d + | + | + |y + |x + |c + |v + |b + |n + |m+0 0 q + |t + |z + |u + wer w%r 1 1 |i+|o+|p+|+|a+ |s + |d + |f + |g + |h + |j + |k + |l + | + | + |y + |x + |c + |v + |b + |n + |m+0 0 q + |e + |r + |t + was w%a%s 1 1 |z + |u + |i + |o + |p+|+|d+|f +|g+ |h + |j + |k + |l + | + | + |y + |x + |c + |v + |b + |n + |m+0 0 q + |w + |o + |p + Ei e%i 2 1 |+|a+|s+|d+|f + |g+|h+|j+|k+|l+ | + | + |y + |x + |c + |v + |b + |n + |m+0 0 q + |w + |e + |r + im i%m 1 1 |t + |z + |u + |o + |p+|+|a+|s+|d+ |f + |g + |h + |j + |l + | + | + |y + |x + |c + |v + |b + |n+0 0 q + |w + |i + |o + Haus H%a%u%s 3 1 |p+|+|j +|k +|l+ | + | + |y + |x + |c + |v + |b + |n + |m+0 73 Kapitel 3 Architektur und Entwicklung der QWERTZ Eingabemethoden Minimale Wortlänge Um die Ergebnisliste für einige Wörter weiter zu reduzieren, kann ein rudimentäres Verfahren implementiert werden. Zu Beginn wird das QWERT-Z Layout intern in drei Zeilen aufgeteilt. • Zeile 1: Q,W,E,R,T,Z,U,I,O,P,Ü • Zeile 2: A,S,D,F,G,H,J,K,L,Ö,Ä • Zeile 3: Y,X,C,V,B,N,M Nach der Vereinfachung und der Analyse des Eingabepfades auf markante Punkte wird dieser weiter untersucht. Es wird geschaut, wie viele Zeilenwechsel im Pfad stattfinden. Intern wird für jeden Wechsel ein Counter hochgezählt, der die Mindestanzahl der enthalten Buchstaben eines Wortes repräsentiert. Durch dieses einfache Verfahren können Wörter aus der Ergebnisliste entfernt werden, die kürzer als die minimale Wortlänge des Eingabegraphens sind. Pfadlänge Bei der Entwicklung stellt sich das Problem der Wortlänge heraus, sodass über die in 3.5.6 definierte Abfrage, Wörter unterschiedlicher Länge72 generiert wurden und das beste Matching für ein gewünschtes Wort mit vier Buchstaben eines mit sieben Buchstaben sein kann. Um dies im Ansatz zu verhindern, kann für jedes Wort in der Datenbank die Länge des optimal generierten Pfades mit angegeben werden. Das SQL-Statement wird dahingegen optimiert, dass zusätzlich ein Vergleich zwischen der generierten Pfadlänge und der des analysierten Eingabesokgraphen stattfindet. Zusätzlich wird ein Toleranzwert als Parameter mit übergeben, der einen Schwellwert zwischen Eingabe- und generierten Graph repräsentiert. Abbildung 3.20 zeigt die Teilstrecken gr,ra,ap,ph des genierten und gr0 ,ra0 ,ap0 ,ph0 des simplifizierten Eingabegraphs. Jede Teilstrecke erhält im Einheitsmaß einen Längenwert welcher zur Gesamtlänge des Wortes addiert wird, z.B.: gr + ra + ap + ph = Graph = 2,50, mit gr = 0,75, ra = 0,60, ap = 0,63,ph = 0,52 72 Anzahl der Buchstaben 74 3.6 Design gr0 + ra0 + ap0 + ph0 = Graph0 = 2,55 ± ε, mit gr0 = 0,78, ra0 = 0,61, ap0 = 0,60,ph0 = 0,56 Die Gesamtlängen von Graph0 und Graph sind annähernd gleich. Der Wortvorschlag „Graph“ wird als einziges Wort der Ergebnisliste präsentiert. Durch diesen Ansatz kann die Ergebnisliste erneut um weitere Wörter reduziert werden. (a) Teilstrecken des genierten Sokgraphen des Wor- (b) Teilstrecken des simplfizierten Sokgrapheb des tes „Graph“ Wortes „Graph“ Abbildung 3.20: Teilstrecken zur Berechnung der Pfadlänge zwischen simplifizierten Eingabe- und genierten Sokgraphen. 3.6 Design Das Design der virtuellen Tastatur wurde einfach und funktional gehalten. Auf alle Eingabetasten wurde die Buchstabenbeschriftung mittig platziert. Als Hintergrundfarbe für jeden Button wurde schwarz gewählt, während die Beschriftung zwecks Kontrast weiß gezeichnet wurde. Als Pointer wurde eine halbtransparente Courserhand gewählt, die bei Ausübung eines Klicks rot gefärbt wird. Bei der zeitbasierten Eingabemethode wird die Hintergrundfarbe des selektierten Buttons von schwarz auf rot geändert, sobald die Auswahlzeit erreicht wurde. Damit wird dem Benutzer signalisiert, dass der gewünschte Buchstabe ausgewählt wurde und eine weitere Eingabe erfolgen kann. Damit der Eingabestring nicht von der Steuerungshand des Benutzers verdeckt wird, befindet sich dieser direkt unter der Tastatur. Für die Texteingabemethode AirShape befindet sich die Ergebnisliste der zugeordneten Wörter ebenfalls direkt unter der Tastatur. Die Farbwahl für die präsentierten Wörter ist identisch mit der Buttonfarbe (schwarz,weiß). Für ein optisch ansprechenderes Ergebnis kann ein beliebiges Bild hinterlegt werden. Das XMLTastaturlayout müsste dementsprechend mit auf dem Bild befindlichen Button abgestimmt werden. Die Hintergrundfarbe kann dann transparent gestellt werden. 75 Kapitel 3 Architektur und Entwicklung der QWERTZ Eingabemethoden Abbildung 3.21: Layout des visuellen Erscheinungsbildes für den Benutzer. 3.7 Zusammenfassung In diesem Kapitel wurden drei verschiedene Methoden basierend auf einer QWERTZ Keyboardlayout implementiert. Neben der Buchstabenauswahl über eine zeitbasierte Selektion wurde ebenfalls eine gestenbasierte Steuerung entwickelt. Als letzter Schritt konnte mit AirShape eine Methode auf Grundlage von SHARK entwickelt werden, die über die Analyse des Eingabepfades Texteingaben dem System übermittelt. Für die gestenbasierte Auswahl wurde zu Beginn die Geste Greifen & Öffnen implementiert. Für die Geste wurde die OpenCV-Bibliothek verwendet. Sobald die Hand ein konvexes Polygon bildet, wird die Geste ausgeführt. Öffnet der Nutzer die Hand, ist mindestens ein Winkel konkav und die Geste wird nicht mehr ausgeübt. Es wurde festgestellt, dass die Hardware für eine einwandfreie Detektierung nicht präzise genug ist. Im nächsten Schritt wurde die Graif-Geste durch eine Druck-Geste auf Basis von Tiefeninformationen ersetzt. Die Ergebnisse waren bezüglich der Erkennung bedeutend besser. Um AirShape den Beginn und das Ende des Eingabegraphen zu signalisieren, wird die Druck-Geste verwendet. Die Eingabemethode basiert auf einer Worteingabe, wobei die Buchstabenselektion über Zeit und Geste eine Zeicheneingabe verwenden. AirShape benutzt zur Feststellung von markanten Punkten im vereinfachten Sokgraph einen Innenwinkel von 60◦ . Zur Simplifizierung wurde das Linienglättungsverfahren von DavidDouglas-Peuker verwendet, der den Eingabegraph von 60 Punkten/Sekunde auf einen 76 3.7 Zusammenfassung Bruchteil approximiert, ohne die eigentliche Beschaffenheit des Graphens aufzugeben. So wurde ein Graph aus 378 Punkten bestehend auf nur 48 Punkte vereinfacht. Im Hintergrund arbeitet eine SQL-Datenbank mit ca. 138.000 Einträgen deutscher Wörter. Die SQL-Anfrage wird anhand der Anfangs-, End- und markanter Punkte gestellt. Um Die Ergebnisliste zu optimieren, wurde eine negative Buchstabenliste erstellt, die alle Buchstaben enthält, die sich nicht auf dem Eingabepfad befinden. Die Ergebnisliste der Anfrage wurde im Schnitt um 96,03% reduziert. Weiterhin wurden in diesem Kapitel Optimierungsverfahren zur Pfadlänge und Zusammenhangskomponenten präsentiert. Ein Snapping-Verfahren verschiebt markante Punkte, die sich außerhalb oder zwischen Buchstaben befinden, auf den Mittelpunkt des näherliegenden Buchstaben. Dadurch wird der Eingabepfad noch einmal optimiert. Im Kapitel 4 wird die Tauglichkeit der Geste hinsichtlich der Eingabegeschwindigkeit und Genauigkeit durch Variation des Parameters untersucht. Ende des Jahres 2012 kamen neue Addons für OpenNI auf den Markt. Unter anderem wurde das Framework SigmaNIL73 in Version 1.00 Beta veröffentlicht. Dieses bietet ein Handtracking über ein Handskelett mit 21 Joints an. Das System konnte aus Zeitgründen nicht mehr in die Entwicklung der Arbeit integriert werden. Präsentationen und Videos sahen sehr viel versprechend aus, wobei ein kleiner Test sehr ernüchternde Ergebnisse lieferte. 73 Webseite: http://www.sigmanil.com 77 Kapitel 4 Evaluation In diesem Kapitel sollen die von Kapitel 3 erstellten Eingabemethoden untersucht und mit bestehenden Systemen aus Abschnitt 2.2 und Abschnitt 2.3 verglichen werden. Die Anpassung verschiedener Parameter zur Abstimmung der Erkennungsrate von Gesten und der Objektselektion (vgl. Abschnitt 3.4), werden ebenfalls in diesem Kapitel kurz diskutiert. Abschließend sollen Ergebnisse aus der Evaluierung aller entwickelten Methoden präsentiert und diskutiert werden. 4.1 Evaluationsgegenstand In diesem Abschnitt soll erklärt werden WAS evaluiert wird. Die entwickelten Eingabemethoden sollen hinsichtlich der Geschwindigkeit (WpM & CpM) und der Eingabefehler evaluiert werden. Durch Texteingaben können Eingabefehler entstehen, die gezählt werden und in Relation zu der in einer definierten Zeit erreichten Wörter bzw. Buchstaben gesetzt werden. Zeitbasiertes Selektieren Bei der Selektion von Buchstaben anhand eines Zeitparameters (vgl. Abschnitt 3.4), kann der Wert t zur Auswahl eines Buchstaben verändert werden. Eine Änderung des Parameters bewirkt, dass ein Nutzer zur Auswahl eines Buchstabens eine kürzere oder längere Zeitspanne über diesem verweilen muss. In der Evaluierung soll die Änderungen des Parameters hinsichtlich der oben genannten beiden Werte untersucht werden. Gestenbasiertes Selektieren Bei der Selektion (vgl. Abschnitt 3.4) über die „Druck-Geste“ kann ebenfalls der Parameter variiert werden. Der Wert definiert die Geschwindigkeit wie die die Hand des Nutzers relativ in Z-Richtung zur Kamera bewegt werden muss, damit die Geste erkannt 79 Kapitel 4 Evaluation und ausgelöst wird. Airshape In Abschnitt 3.5 wurde die Eingabemethode Airshape entwickelt. In Unterabschnitt 3.5.6 sind bereits Optimierungen bezüglich der Erkennung des Sokgraphen und der OutputWörter aufgeführt wurden. AirShape ist eine wortbasierte Eingabemethode, die ebenfalls hinsichtlich der CpM, WpM und Fehleingaben untersucht wird. Alle drei Methoden werden auf dem gleichen Keyboardlayout (QWERT-Z) mit der in Abschnitt 3.3 definierten festen Buttongröße evaluiert. 4.2 Versuchsaufbau und Stichprobe Der Abschnitt gibt Aufschluss über den Versuchsaufbau, den zu grundeliegenden Methoden sowie über die Auswahl der Stichprobe zur Evaluierung. Versuchsaufbau: Für die Evaluierung wird eine Microsoft Kinect in der Konsolenversion verwendet. Die Kamera befindet sich direkt über einem 21 Zoll Monitor. Der Abstand zwischen Versuchsperson und Anzeigemedium beträgt 2,0m74 und ist über eine Markierung am Boden definiert. Die Entfernung zwischen Kamera und Versuchsperson ist identisch. Der Monitor befindet sich in einer Auflagehöhe von 54cm, die Kamera auf einer Aufnahmehöhe 84cm. Um allen Probanden gleiche natürliche Lichtverhältnisse zu garantieren, wurde der Versuchsraum abgedunkelt und über künstliches Umgebungslicht beleuchtet. Durchführung: Zu jeder Eingabemethode wurde eine Testmenge von vordefinierten Wörtern aus einem deutschen75 Wörterbuch anzeigt. Das einzugebende Wort befindet sich zentriert über der virtuellen Tastatur. Unter der Tastatur wird zentriert der von dem Nutzer eingegebene String dargestellt. Der Proband versucht, das Wort schnellstmöglich über die aktuelle Methode dem System zu vermitteln. Ist das Wort vollständig hinterlegt, so erscheint ohne Eingabe der Leertaste das darauf folgende Wort aus der Testmenge. Nach 60 Sekunden werden die korrekt eingegebenen Wörter und Zeichen gezählt und gegenüber gestellt. Fehler werden dem Nutzer rot signalisiert und ebenfalls vom System mit gezählt. Bei 74 75 Es wurden zwei Meter gewählt, da dies ein guter Interaktionsabstand für interaktive Flächen ist. Da alle Versuchspersonen muttersprachlich Deutsch sind, wurde ein deutsches Wörterbuch hinterlegt. Die Konzentration der Versuchspersonen liegt dadurch allein auf der korrekten Eingabe der Wörter und nicht auf deren Verständnis. 80 4.3 Ergebnisse der entwickelten Eingabemethode AirShape muss der Benutzer, sofern der Eingabegraph erkannt wurde, zusätzlich noch das Wort über die „Druck-Geste“ auswählen. Für eine Gegenüberstellung mit den in Abschnitt 2.6 aufgelisteten Eingabegeschwindigkeiten, werden die CpM heran gezogen und durch den Wert 5,176 geteilt. Insgesamt werden ohne Vorübung fünf Durchläufe pro Eingabemethode durchgeführt. Nach einer darauffolgenden Einarbeitungsphase von 20 Minuten je Methode, werden erneut fünf Durchgänge zu je 60 Sekunden vollzogen. Dies soll noch einmal zeigen wie schnell die Lernkurve der einzelnen Methoden ist und in wie weit sich die Eingabegeschwindigkeit ändert. Hinterlegte Wörter in der Testmenge mit Zeichenanzahl in Klammern: Hallo (5), Affe (4), Hardware (8), Wasser (6), Land (4), Informatik (10), Telefon (7), reinigen (8), Fahne (5) Stichprobe: Für die Untersuchung werden zwölf Personen im Alter von 13 bis 30 heran gezogen. Dabei sind zehn männliche und zwei weibliche Probanden bei der Untersuchung beteiligt. Alle zwölf Personen verfügen über ein Smartphone mit der vordefinierten Texteingabemethode des Betriebssystems Android oder iOS. Keine Versuchsperson hat vorher Erfahrungen mit Eingabemethoden im berührungsfreien Kontext gemacht und alle sind bei dem Umgang mit optischen Verfahren Neulinge. 4.3 Ergebnisse Zu Beginn wurden die Parameter für das zeitbasierte und gestenbasierte Selektieren durch eine Versuchsperson evaluiert. Auf dieser Basis sind dann Tests mit der gesamten Versuchsgruppe durchgeführt wurden. Evaluierung der Parameter für zeitbasierte Auswahl Wie in Abbildung 4.1 zu sehen ist, erhöht sich die Eingabegeschwindigkeit hinsichtlich der Abnahme der Auswahlzeit t. Ebenfalls werden die Fehleingaben des Nutzers durch die verkürzte Verweildauer über einem Buchstaben erhöht. Eine zu kurze Auswahlzeit t führte dazu, dass zu viele Buchstaben auf dem Weg von einem zum anderen Buchstaben ungewollt selektiert wurden. Eine zu lange Selektierungszeit zeigte eine langsame Eingabegeschwindigkeit der Testperson. Bei einem Wert von t = 0,7s konnten 34 CpM dem 76 Durchschnittlich besteht jedes englische Wort aus 5,1 Buchstaben. Die in dem Abschnitt aufgelisteten Werte, sind herstellerspezifische WpM Angaben und in CpM umgerechnet wurden. 81 Kapitel 4 Evaluation System übermittelt werden. Mit t = 0,5s erreichte die Testperson 37 CpM mit einem Eingabefehler. Das beste Verhältnis zwischen Fehleingaben und Eingabegeschwindigkeit konnte mit einer Auswahlzeit von 0,75 Sekunden erreicht werden. Dieser Wert wird für spätere Untersuchungen genutzt. Evaluierung der Parameter für gestenbasierte Auswahl Für die Selektion mittels „Druck-Geste“ wird ein definiert, das die Bewegungsgeschwindigkeit der Hand in Kamerarichtung repräsentiert (vgl. Abschnitt 3.4). Je kleiner das definiert wird, desto langsamer muss der Nutzer die Hand zur Kamera bewegen, um 1 eine Geste auszulösen. Die Werte wurden in Abbildung 4.1 zwischen 25mm/ 60 s(schnell) 1 - 5mm/ 60 s(langsam) in 5mm Schritten angepasst. Zu erkennen ist, dass die Eingabegeschwindigkeit und die Fehleranzahl mit = 5mm relativ hoch sind. Dies liegt daran, dass schon kleinste Tiefenunterschiede der Handbewegung als Geste erkannt werden. Ist ≥ 20 so muss der Benutzer eine hohe Geschwindigkeit der Hand fortführen, um eine Auswahl zu tätigen. Bei dieser Geschwindigkeit kommt es oft zur Positionsänderung der Hand in X, Y -Richtung während der Ausführung des „Drucks“ und damit zu vielen Fehleingaben. Ein optimales Ergebnis konnte mit = 10 gefunden werden. Bei 40 CpM wurden 0 Fehler getätigt. (a) Zeitbasierte Selektion. Eingabegeschwindigkeit (b) Gestenbasierte Selektion. Eingabegeschwindigim Vergleich zu den entstandenen Fehleingaben in keit im Vergleich zu den entstandenen Fehleingaben in Abhängigkeit der Entfernungsgeschwindigkeit . Abhängigkeit der Zeit t. Abbildung 4.1: Vergleich der Eingabefehler gegenüber der Eingabegeschwindigkeit in CpM für zeitbasiertes- (links) und gestenbasiertes- (rechts) Selektieren. Für die weiteren Testläufe mit der Versuchsgruppe wurden folgende Werte als optimal 1 s vorausgesetzt: zeitbasierte Selektion t = 0,75s gestenbasierte Selektion = 10mm/ 60 Evaluierung der zeitbasierten Eingabemethode Nach Festlegung des optimalen Parameters wurde jede Eingabemethode mit den zwölf Versuchspersonen getestet. 82 4.3 Ergebnisse Abbildung 4.2: ∅ Eingabegeschwindigkeit der zwölf Versuchspersonen mit min. Wert und max. Wert über alle Versuchsrunden. Links: Versuchsrunde 1-5. Rechts: Versuchsrunde 6-10. Wie in Abbildung 4.2 zu sehen ist, liegt die durchschnittliche Eingabegeschwindigkeit in den ersten fünf Versuchsrunden bei 29,60 CpM. Die Geschwindigkeit hat sich innerhalb der ersten Versuchsrunde von Durchlauf 1 zu Durchlauf 5 von 28,33 CpM auf 30,67 CpM kontinuierlich gesteigert. Während CpM-Max77 sehr ausgeglichen bei 34 CpM liegt, stieg CpM-Min78 von 20 CpM Durchlauf 1 auf 27 CpM Durchlauf 5 an. Nach einer Pause von 20 Minuten, in der jeder Benutzer frei mit dem System trainieren konnte, wurden weitere fünf Versuchsrunde durchgeführt. Die durchschnittliche Eingabegeschwindigkeit lag daraufhin bei 31,60 CpM (vorher 29,6 CpM, Steigerung von 6,77%) über alle fünf Durchgänge. Im Schnitt konnten sich alle fünf Probanden um 1,42 CpM über die zweiten fünf Testdurchläufe verbessern. So stieg die ∅-Eingabegeschwindigkeit zwischen den Versuchsrunden 6-10 von 30,75 CpM auf 32,17 CpM an. Wie in Abbildung 4.2 (links) zeigte sich ein ähnliches Bild in Abbildung 4.2 (rechts) für CpM-Max und CpM-Min. Während CpM-Max kontinuierlich auf einem Wert von ca. 35 CpM lag, stiegt CpM-Min von 25 CpM auf 29 CpM an. Während der getätigten Texteingabe der Versuchspersonen entstanden Fehleingaben, die in Abbildung 4.3 aufgezeigt sind. Durchschnittlich hat jeder Proband in der ersten Runde 0,58 Fehleingaben getätigt. Über die erste Testrunde verringerte sich der Wert auf 0,08 und es entstanden im Mittel 0,25 Fehler/Person. Fehler-Min79 belief sich kontinuierlich auf 0, während Fehler-Max80 von zu Beginn zwei Fehlern auf einen Fehler pro Versuchs77 Die maximale Eingabegeschwindigkeit der schnellsten Versuchsperson pro Versuchsrunde. Die minimale Eingabegeschwindigkeit der langsamsten Versuchsperson pro Versuchsrunde. 79 Die minimale Fehleingabe der fehlerfreisten Versuchsperson der gesamten Versuchsgruppe pro Versuchsdurchlauf. 80 Die maximale Fehleingabe der fehleranfälligsten Versuchsperson der Versuchsgruppe pro Versuchs78 83 Kapitel 4 Evaluation Abbildung 4.3: Durchschnittlich entstandene Fehler der zwölf Versuchspersonen mit Min, Max-Wert über alle Versuchsrunden. Links: Durchläufe 1-5. Rechts: Durchläufe 6-10. runde abnahm. In Durchlauf 6-10 fiel der Wert der getätigten Eingabefehler pro Person über alle Versuchsrunden von 0,25 auf 0,20 (20%). Fehler-Min belief sich wie zuvor auf 0. Fehler-Max dagegen wurde mit einmaligem Ausschlag in Durchgang 7 auf 2 konstant auf dem Wert 1 gehalten. Abbildung 4.4: Verhältnis von Eingabegeschwindigkeit zu entstandenem Fehler über die gesamt Anzahl aller zwölf Versuchspersonen. Links: Durchläufe 1-5. Rechts: Durchläufe 6-10. In Abbildung 4.4 wurde die Gesamtanzahl aller CpM der 12 Versuchspersonen ins Verhältnis zur Gesamtanzahl der getätigten Fehler gesetzt. Im ersten Durchlauf wurden insgesamt 340 CpM mit 7 Fehleingaben durchgeführt. In Durchlauf 5 waren es bereits durchlauf. 84 4.3 Ergebnisse 368 CpM mit nur 1 Fehlereingabe über alle 12 Versuchspersonen. Nach einem Anstieg in Versuchsrunde 7 auf 378 CpM mit jedoch 4 Fehlern konnte der Wert bis zum letzten F ehler Durchlauf auf 0,26 100Zeichen (386 CpM - 1 Fehler) gesenkt werden. Im Mittel hat sich der Wert von 0,87 (Durchlauf 1-5) auf 0,60 (Durchlauf 6-10) (31,01%) verringert. In den zweiten fünf Testrunden wurden somit nur 0,6 Fehler auf 100 Zeichen getätigt. Evaluierung der gestenbasierten Eingabemethode Im nächsten Schritt wurde die gestenbasierte Eingabemethode mittels „Druck-Geste“ evaluiert. Die durchschnittliche CpM über die ersten fünf Versuchsdurchläufe betrugt 34,28 CpM (vgl. Abbildung 4.5). CpM-Max nahm kontinuierlich über alle fünf Durchläufe von 57 CpM auf 38 CpM ab. Da mit einer Fehleingabe ebenfalls die Zeichenanzahl steigt, ist der Verlauf von Fehler-Max (vgl. Abbildung 4.6) mit CpM-Max ähnlich. Insgesamt wurden so mehr fehlerfreie Zeichen eingegeben, bei einem geringeren CpM-Wert. In der zweiten Testrunde betrug die ∅-CpM 35,63 CpM mit ∅-CpM-Min 29,00 CpM und ∅CpM-Max 42,60 CpM. Der gesunkene CpM-Max Wert wird auf die geringere Fehleranzahl in der Testrunde zurückgeführt. CpM-Min beträgt weiterhin immer 0. Abbildung 4.5: Durchschnittlich gestenbasierte Eingabegeschwindigkeit der zwölf Versuchspersonen mit Min-, Max-Wert über alle Versuchsrunden. Links: Durchläufe 1-5. Rechts: Durchläufe 6-10. Insgesamt machte jede Versuchsperson 3,17 (Durchläufe 1-5) und nur noch 2,18 (Durchläufe 6-10) Eingabefehler pro Versuchsrunde. Fehler-Max und Fehler-Min weisen eine hohe Diskrepanz auf. In jedem Versuchsdurchlauf tätigte mindestens eine Versuchsperson 0 Eingabefehler. In der zweiten Testrunde nach der Trainingspause ist Fehler-Max durchschnittlich von 11,60 auf 6,40 Eingabefehler gesunken. Abbildung 4.7 zeigt die im Durchschnitt getätigten Eingabefehler auf 100 Zeichen pro Person. Der Wert nimmt über die ersten fünf Durchläufe von 15,94 auf 5,38 Fehler ab. Dies zeigt wie schnell die Nutzer in nur fünf Minuten gelernt haben mit der Eingabe- 85 Kapitel 4 Evaluation Abbildung 4.6: Durchschnittlich entstandene Fehler der zwölf Versuchspersonen mit Min, Max-Wert über alle Versuchsrunden. Links: Durchläufe 1-5. Rechts: Durchläufe 6-10. methode umzugehen und die Geste ordnungsgemäß ausführen. In der zweiten Testrunde konnte der Wert von Beginn 6,25 auf sogar nur noch 3,29 Fehler reduziert werden. Abbildung 4.7: Verhältnis von Eingabegeschwindigkeit zu entstandenen Fehler über die gesamt Anzahl aller zwölf Versuchspersonen. Links: Durchläufe 1-5. Rechts: Durchläufe 6-10. Evaluierung der AirShape Eingabemethode Zu Beginn ist zu erwähnen, dass AirShape auf Worteingaben und nicht Zeicheneingaben basiert. Ein Fehler bedeutet bei dieser Eingabemethode, eine Falscheingabe eines gesamten Wortes mit durchschnittlich 6,5 Zeichen. Damit müsste die in den folgenden Abbildungen dargestellte Fehleranzahl durch 3,14 geteilt werden. Um jedoch die Fehleingaben in Relation zu den Eingabezeichen zu erhalten, wird die bisherige Darstellung für nachfolgende Diagramme verwendet. Es ist darauf hinzuweisen, dass eine Fehleingabe 86 4.3 Ergebnisse über ein gesamtes Wort einem höheren Risiko unterliegt als dies bei einzelnen Buchstaben der Fall ist. In Abschnitt 4.4 werden alle Texteingabemethoden gegenüber gestellt mit dem Bezugswert WpM. Probanden ist es mit AirShape nur möglich, gesamte Wörter einzugeben. Sind die 60 Sekunden für die Eingabe abgelaufen, so wurden nur bis dahin vollständige Worteingaben gezählt. Eingabegraphen die noch nicht zu Ende geführt wurden, werden verworfen. Dadurch können nur CpM-Werte von 5, 9, 17, 23, 27, 37, 44, 52 und 57 pro Nutzer je Durchlauf erreicht werden. Abbildung 4.8 zeigt, dass im Mittel in den ersten fünf Durchläufen ein CpM-Wert von 29,57 pro Versuchsperson erreicht wird. In der zweiten Testrunde ist der Wert auf 35,05 (18,53%) angestiegen. Vereinzelt konnte ein Proband einen CpM-Max von 44 in Runde 1 und 52 in Runde 2 erreichen. Die Mindesteingabegeschwindigkeit wurde von Testrunde 1 zu 2 im Schnitt um ein Wert von 5,6 (30,77%) Zeichen angehoben. Abbildung 4.8: Durchschnittlich gestenbasierte Eingabegeschwindigkeit der zwölf Versuchspersonen mit Min-, Max-Wert über alle Versuchsrunden. Links: Durchläufe 1-5. Rechts: Durchläufe 6-10. Abbildung 4.9 zeigt, dass sich der Wert Fehler-Min nicht mehr bei 0 befindet, wie in den beiden vorhergehenden Tests. Es entstand über die gesamte Versuchsgruppe somit mindestens eine Fehleingabe pro Durchlauf. Im Schnitt wurden 6,68 in Testrunde 1 und 4,08 (Verbesserung von 38,92%) Fehler in Testrunde 2 pro Person durchgeführt. FehlerMin hat sich in den beiden Testrunden um 1,80 Punkte pro Durchlauf reduziert. Einfach zu erkennen ist, dass die gesamte Versuchsgruppe in Abbildung 4.10 auf 100 Zeichen viel mehr Fehleingaben produziert hat, als in den beiden vorhergehenden Methoden. So wurden pro Nutzer im Mittel 22,64 (Testrunde 1) und 11,69 (Testrunde 2) je 100 Zeichen praktiziert. Die gesamte Versuchsgruppe erreichte im Schnitt in den Durchläufen 1-5 354,80 Zeichen mit 80,20 Fehlern. In Durchlauf 6-10 420,60 Zeichen mit 49,00 Fehleingaben. Während sich die Fehler über die gesamte Gruppe und Versuchsrunde drastisch 87 Kapitel 4 Evaluation Abbildung 4.9: Durchschnittlich entstandene Fehler der zwölf Versuchspersonen mit Min, Max-Wert über alle Versuchsrunden. Links: Durchläufe 1-5. Rechts: Durchläufe 6-10. reduziert haben, ist die Gesamteingabegeschwindigkeit aller gestiegen. Abbildung 4.10: Verhältnis von Eingabegeschwindigkeit zu entstandenen Fehler über die gesamt Anzahl aller zwölf Versuchspersonen. Links: Durchläufe 1-5. Rechts: Durchläufe 6-10. 4.4 Diskussion In diesem Kapitel sollen die Ergebnisse aus dem vorhergehenden Kapitel mit den bekannten berührungsfreien Eingabemethoden aus Abschnitt 2.6 verglichen werden. Wie der Abbildung zu entnehmen ist, variiert die Gesamtanzahl an eingegebenen Zeichen je Methode stark untereinander. Während die Versuchsgruppe mit der zeitbasierten 88 4.4 Diskussion Selektion und Airshape in den ersten fünf Durchläufen fast identische Werte erzielten, konnte die gestenbasierte Selektion deutlich höhere Werte erreichen. In den Durchläufen 6 - 10 konnte die Gesamtanzahl der eingegebenen Zeichen kontinuierlich gesteigert werden (zeitbasiert), blieb aber danach deutlich hinter den anderen beiden Methoden zurück. AirShape und die Eingabemethode über die „Druck-Geste“ glichen sich in den darauf folgenden Durchläufen annähernd an. In Bezug auf die entstanden Fehler ist die Methode über Zeitselektion den anderen beiden Methoden deutlich überlegen. So werden ab dem fünften Durchlauf fast keine Fehleingaben (0,20 Fehler) der gesamten Versuchsgruppe mehr generiert. Hingegen sind die Fehleingaben der gestenbasierten Eingabe durch die Ungenauigkeit des Sensors und der zu erlernenden Druckgeschwindigkeit eher hoch. Gleiches gilt für AirShape, da für den Beginn und das Ende eines Eingabegraphens eine „Druck-Geste“ angewandt werden muss. Anzumerken ist aber, dass sich bei AirShape eine Fehleingabe auf ein gesamtes Wort bezieht. So dass, wenn für ein Wort der Eingabesokgraph am letzten Buchstaben fehlschlägt, das gesamte Wort neu eingegeben werden musste. Bei den beiden zuerst untersuchten Methoden wurde lediglich bei Falscheingabe ein Zeichen wiederholt. Im Mittel müsste die Fehleranzahl von AirShape durch 3,1781 dividiert werden, womit der Wert sich deutlich an den des gestenbasierten-Fehlerwert annähert und diesen sogar unterschreitet. Abbildung 4.11: Gesamtfehlerzahl und Gesamtzeichenzahl der kompletten Versuchsgruppe pro Durchlauf, aller Eingabemethoden im Vergleich. Aussagen von Versuchspersonen: Die Schwierigkeit der Eingabe mit AirShape lag nach Aussage der Probanden in der Erstellung des Eingabesokgraphen. Durch das „Zittern“ kam es oft zu Fehlinterpretationen des Graphen, die als Fehleingabe gewertet wurden. Nach einer Fehleingabe musste der gesamte Graph von vorne eingegeben werden, was bei längeren Wörtern sehr zeitintensiv war. Die Bewegung von Buchstabe zu Buchstabe musste langsamer durchgeführt 81 Die Testmenge bestand aus neun Wörtern mit insgesamt 57 Zeichen. Jedes Wort enthält im Mittel 6,34 Zeichen. Es wird ein Wert von 3,17 gewählt, da nicht bestimmt wurde in welchem Bereich des Wortes die Fehleingabe getätigt wird. 89 Kapitel 4 Evaluation werden, als bei den anderen Methoden. Weiterhin haben viele Probanden bemängelt, dass nach einem optimalen Matching82 dennoch eine gestenbasierte Auswahl des Wortes stattfinden muss. Bei der Eingabemethode über die „Druck-Geste“ verzog sich der Pointer während der Ausübung der Geste so stark, dass überwiegend ein falscher Buchstabe interpretiert wurde. Wären die Buchstaben auf dem Layout größer und die verwendete Hardware präziser, würde bei Ausübung des Drucks kein anderer Buchstabe ausgewählt werden. Die Anzahl der Fehler könnte damit stark reduziert werden. Weiterhin bemängelten viele Nutzer nach längerer Eingabe einen Schmerz in dem Bewegungsarm, so dass nach manchen Durchläufen der Arm gewechselt werden musste. Vergleich zu anderen Eingabemethoden: Die Eingabemethoden basierend auf Zeit (6,0 WpM), basierend auf Geste (6,85 WpM) und AirShape (6,33 WpM) erreichten im Praxistest ernüchternde Werte. Alle drei Methoden erreichten eine höhere Eingabegeschwindigkeit als die von Microsoft entwickelte Methode. Während mit den beiden portierten Eingabemethoden 8Pen und Dasher 8 und 10 WpM möglich sind, liegt die in dieser Arbeit entwickelte Methode AirShape mit 20,90% hinter 8Pen und 36,7% hinter Dasher. Einigen Nutzern war es jedoch schon mit dem aktuellen Entwicklungsstand möglich 10,1 WpM über die Methode dem System zu übermitteln. Mit einigen Anpassungen in der Benutzerfreundlichkeit, Hardware und den in Unterabschnitt 3.5.6 vorgestellten Optimierungsverfahren könnten Geschwindigkeiten in Richtung von Dasher und höher erreicht werden. Die Fehleingaben würden minimiert und das Gesamtergebnis deutlich verbessert werden. Zu bemängeln ist der hohe Kraftaufwand, den Arm über die gesamte Eingabezeit in der Luft zu halten. Abhilfe kann hier ebenfalls eine präzisere Hardware schaffen, mit der es möglich ist, Finger auf eine höhere Distanz zu erkennen. 82 Ein optimales Matching ist erreicht, wenn das gewünschte Eingabewort dem anzuzeigenden Ergebniswort entspricht. 90 4.5 Zusammenfassung 4.5 Zusammenfassung In diesem Kapitel wurde die Evaluierung der drei Eingabemethoden durchgeführt. Alle Methoden wurden von 12 Versuchspersonen in insgesamt 10 Durchläufen mit einer vordefinierten Testmenge an Wörtern auf Eingabegeschwindigkeit und entstehende Fehleingaben getestet. Vorher wurde ein optimaler Wert für die Parameter t zur Selektion über die Zeit und zur Gestenselektion ermittelt. Beide Werte wurden von einer Testper1 son über sechs bzw. fünf Durchläufe ermittelt. So beträgt t = 0,75s und = 10mm/ 60 s und sind Grundlage für die Versuchsgruppe. Die Eingabegeschwindigkeit betrugt bei allen drei Methoden zwischen 6,0 und 6,85 WpM. Alle drei Methoden sind in der aktuellen Entwicklung langsamer als die portierten Methoden 8Pen und Dasher. Bei der Methode über die Auswahl von Zeit ist die Eingabegeschwindigkeit über die Wahl von t limitiert. So könnten bei der aktuellen Wahl maximal 80 Zeichen eingegeben werden, wenn die Navigation von Buchstabe zu Buchstabe entfällt. Realistisch sind Eingabegeschwindigkeiten von maximal ca. 40 CpM (7,84 WpM). Die Eingabemethode anhand der „Druck-Geste“ erreichte im Schnitt maximal 6,99 WpM für die Durchläufe 6 - 10. Einzelne Nutzer erreichten mit einer höheren Fehleingabe einen CpM-Max-Wert von 57 (11,18 WpM). Wird die Benutzerfreundlichkeit optimiert und eine präzisiere Hardware verwendet, so können die Fehleingaben deutlich gemindert werden. Realistisch können maximale Geschwindigkeiten von ca. 55 - 60 CpM (10,78 - 11,74 WpM) erreicht werden. Die letzte Eingabemethode AirShape, basierte auf Worteingaben, wohingegen die ersten beiden auf zeichenbasierte Eingabe beruhen. Die Evaluierung ergab eine mittlere Eingabegeschwindigkeit von 6,87 WpM für die Durchläufe 6 - 10. Einzelne Nutzer erreichten Werte von ca. 52 CpM (10,19 WpM). Wird die Methode hinsichtlich der Benutzerfreundlichkeit, der Hardware und einigen Softwareoptimierungen zum erreichen eines optimalen Matchings verbessert, können maximale Geschwindigkeiten von ca. 70 CpM (13,73 WpM) erreicht werden. Ein verbessertes Language-Modell würde ebenfalls zu einem besseren Gesamtergebnis führen. 91 Kapitel 5 Zusammenfassung 5.1 Fazit Diese Arbeit gab einen Einblick in aktuelle berührungssenstive und kontaktlose Eingabemethoden und deren Hardwaregrundlagen. So wurden aktuelle optische Systeme zum Personentracking vorgestellt und anhand der Verwendung verschiedener Eingabemethoden verglichen. Unter Verwendung der Microsoft Kinect in der Konsolenvariante entstanden drei verschiedene Eingabemethoden auf Basis des QWERT-Z Layouts für die berührungsfreie Eingabe. Für die Wahl des Layouts lag die große Bekanntheit unter den Nutzern zu Grunde. Alle Methoden können einfach auf andere Layouts mittels definierte XML-Layout Datei angepasst werden. Der Mauspointer wird über die aktuelle Handposition simuliert und über verschiedene Methoden können Buchstaben selektiert werden. Die erste Methode die in der Arbeit entwickelt wurde, ist eine Selektion über eine Zeitkonstante t. So musste der Nutzer über einem Buchstaben t Sekunden verweilen, bis dieser ausgewählt wurde. Diese Methode erreichte in der Evaluierungsphase eine mittlere Eingabegeschwindigkeit von 6,00 Wörtern pro Minute. Die zweite Eingabevariante bestand darin, die Auswahl eines Buchstabens über eine vordefinierte Geste des Benutzers auszuführen. Es wurde unter Verwendung von der Grafikbibliothek OpenCV eine „Greif-Geste“ implementiert, die hardwarebedingt nicht zum gewünschten Ergebnis führte. Wird zukünftig eine Hardware mit einer höheren Auflösung verwendet, könnte sich die Geste als durchaus sinnvoll erweisen. Als Alternative wurde ein „Druck-Geste“ implementiert mit der durchschnittlich 6,88 WpM erreicht wurden. Die wortbasierte Methode Swype für berührungssensitive Systeme sollte ebenfalls in dieser Arbeit portiert werden, um über einen Eingabesokgraph des Nutzers das Wort dem System zu übermitteln. Mit dieser Methode konnten Werte von 6,33 WpM im Mittel erreicht werden. OpenNI und NITE waren Grundlage für die Entwicklung der Systeme und bieten Grundlage für das Personen- und Handtracking. Aktuell werden viele neue Pakete vorgestellt, die in die Arbeit leider nicht mehr integriert werden konnten. So ist das SIGMANIL Framework 93 Kapitel 5 Zusammenfassung Mitte Dezember erschienen mit dem es unter anderem möglich sein soll, Zeichensprache schnell zu interpretieren. Eine neue Präzision in der Finger- und Handerkennung soll dieses Framework ebenfalls bieten. Erste Tests hinsichtlich der Erkennungsrate der aktuellen Version (1.0.0 Beta) waren jedoch ernüchternd. Andere AddOns wie der TipTep Skeletonizer oder das 3D Hand Tracking Modul wurden ebenfalls im Dezember 2012 bzw. Januar 2013 veröffentlicht. Es muss sich zeigen ob genannte Frameworks für die Optimierung genutzt werden könnten. Anhand von weiteren Optimierungsverfahren, wie sie in Unterabschnitt 3.5.6 vorgestellt wurden, könnte sich die Methode als sehr sinnvolle und zukünftige Eingabemethode für berührungslose Systeme erweisen. Mehrere Millionen Downloads zeigen die steigende Verbreitung dieser Systeme für die berührungssensitiven Geräte auf Basis von Android. Festzuhalten bleibt, dass aktuelle Consumer-Hardware wie Microsoft Kinect und Asus Xtion Pro doch sehr ungenau sind für schnelle gestenbasierte Texteingaben. Die Robustheit gegenüber natürlichen Lichtverhältnissen ist mit hohen Infrarotanteil sehr gering. Es zeigte sich, dass die Genauigkeit der Eingabe über die Hand abhängig ist von den Außenlichtverhältnissen. Um dies in der Evaluierungphase zu verhindern, wurde der Testraum komplett abgedunkelt und mit künstlich erzeugtem Licht erhellt. Die Evaluierung zeigte, dass bereits einige Personen mit etwas Übung Werte von ca. 10,0 WpM erreichen können. Sollten mit dieser Methode ca. 19,0 WpM (vgl. Abschnitt 2.6) erreicht werden, ist dieses System durchaus in der Lage mit aktuellen sensitiven Systemen zu konkurrieren. 5.2 Ausblick Hersteller versuchen, heutzutage immer mehr berührungslose Methoden in ihre Konsumentenhardware zu integrieren. Das Nutzergefühl bezüglich der Bequemlichkeit und Benutzerfreundlichkeit soll hiermit optimiert werden. Die Kommunikation mit der Hardware im Hause soll durch das Weglassen tragender Bedienelemente83 vereinfacht werden. Durch neue kontaktlose Bedienkonzepte über virtuelle großflächige Boxlayouts und andere Methoden ist eine schnelle Navigation in internen Systemen möglich. Dennoch ist es notwendig, in manchen Situationen Texteingaben zu vollziehen. Um einer größtmöglichen Nutzerzahl die Möglichkeit einer kontaktfreien Texteingabemethode zu bieten, kommen derzeit nur QWERT-Z oder ähnlich basierende Layouts in Frage. Diese sind bereits aus Hardware und sensitiven Zeiten bekannt und können schnell Akzeptanz finden. Die Entwicklung von Eingabemethoden durch die Selektion von Buchstaben über eine Verweildauer, ist durch die Limitierung der Eingabegeschwindigkeit t eher zweitrangig 83 Unter tragenden Bedienelementen sind Fernbedienungen, Controller oder Tastaturen zu verstehen. 94 5.2 Ausblick für die Zukunft zu beurteilen. Mit einer Verweildauer von eins bis zwei Sekunden sind solche Systeme zu träge, um eine benutzerfreundliche Texteingabe zu garantieren. Hingegen kann die Selektion über Gesten eine hohe Eingabegeschwindigkeit garantieren, sofern die Geste fehlerfrei unter vielen Bedingungen erkannt und verarbeitet werden kann. Unter anderem sind Lichtverhältnis, Entfernungs- und Verdeckungsprobleme sowie eine garantierte Echtzeitfähigkeit Bedingungen für ein gutes Ergebnis. Dafür muss Hardware vorhanden sein, die es robust gegen äußere Lichtverhältnisse macht und eine Framerate von mind. 30 fps garantiert. Die Entwicklung optischer Systeme hat sich in den letzten Jahren stark verbessert. So sind im Nahbereich84 bereits Time of Flight-Systeme vorhanden, die über eine Auflösung von 160x120 Pixel mit 90 fps verfügen. Die Steuerung von PC Hard- und Software über solche Systeme, wie CamBoard Nano oder LeapMotion ist bereits in einer guten Qualität möglich. Die Systeme sind auf Feingesten der Finger des Nutzers ausgelegt. Microsoft arbeitet mit der Kinect 2 an einem kostengünstigen optischen System, dass über eine deutlich höhere Detailgenauigkeit als die aktuelle Version verfügen soll. Sollten damit präzise Gesten mit einer geringen Fehleranfälligkeit erkannt werden können, so sind Texteingabemethoden über Gestenselektion eine schnelle Alternative. Es zeigte sich jedoch, dass aktuelle Systeme wie Samsung SmarTV über eine kleine integrierte 2D-CMOS-Kamera nicht in der Lage sind, eine ausreichende Gütequalität für den Nutzer zu gewährleisten. Im Kontext der interaktiven Flächen im Businessbereich, können hohe Fehleingaben nicht toleriert werden, sodass direkt auf teurere Industrieprodukte mit Time of Flight-Technik gesetzt wird. Vor fünf Jahren hat die SwissRanger SR4000 noch 9000 e gekostet, wohingegen der Preis 2012 auf bereits 4000 e gefallen ist. Mit der Serienproduktion der DImager von Panasonic stehen Systeme für unter 2000 e zu Verfügung. Zukünftig wird Time of Flight-Technik weiter im Preis fallen und die Barriere zu berührungsfreien Eingabemethoden weiter senken. Mehrere Millionen Downloads in dem Bereich der alternativen Eingabemethoden mittels Sokgraph auf sensitiver Technologie zeigen das steigende Interesse der Nutzer. Die in dieser Arbeit entwickelte Methode AirShape kann hinsichtlich der Benutzerfreundlichkeit und Erkennungsqualität zukünftig weiter gesteigert werden. In Verbindung mit präziserer Hardware ist ein hoher WpM und geringerer Eingabefehlerwert durchaus realistisch. Optimal wäre eine Kombination aus AirShape und bestehenden Gesteneingabemethoden. Der Nutzer hat dann die Möglichkeit schnell zwischen verschiedenen Methoden zu wählen und das für sich optimale Ergebnis heraus zu finden. Festzuhalten bleibt, dass in dieser Arbeit alle Systeme auf einem „kleinen“ 21 Zoll Monitor durchgeführt wurden. Bei dem Einsatz auf größeren Endgeräten mit einer hoch skalierten Eingabefläche wird sich die WpM weiter steigern lassen da dass „Zittern“ weniger Ausmaß auf den Fehlerwert nimmt. 84 Bis zu einem Meter. 95 Kapitel 5 Zusammenfassung Im Softwarebereich werden derzeitig viele neue Entwicklungen veröffentlicht, die sich mit der Ganzkörpersteuerung von interaktiven Systemen beschäftigt. In diesem Bereich wird es zukünftig viele Neuerungen bei der Personen-, Hand- und Fingererkennung geben. Die Entwicklergemeinde um OpenNI, NITE und andere 3D-Computervision Bibliotheken wächst täglich weiter an und veröffentlicht viele neue AddOns. In zukünftigen Abschlussarbeiten können verschiedene Layoutstrategien entworfen und evaluiert und weitere Optimierungsverfahren implementiert werden. Es können verschiedene Eingabemethoden zusammengeführt und neue Softwarebibliotheken integriert werden, um die Eingabegeschwindigkeit zu verbessern. 96 Literaturverzeichnis [04] Comparison of Elastic Matching Algorithms for Online Tamil Handwritten Character Recognition. Technischer Bericht. Indian Institute of Science, Hewlett Parckard Labs, 2004. [06] A heuristic-based approach to optimize keyboard design for single-finger keying applications. Technischer Bericht. Hong Kong University, Department of Industrial Engineering und Logistic Managmenet, 2006. [07] Elastic Matching of Online Handwriting Tamil and Telugu SScript Using Local Features. Technischer Bericht. HP Laboratories India, 2007. [09a] Finger Detection for Sign Language Recog. Technischer Bericht. Proceedings of the international MultiConference of Engineers und Computer Scientists 2009, 2009. [09b] ShapeWriter on the Iphone - From the Laboratory to the Real World. Technischer Bericht. ShapeWriter Inc., 2009. [A88] A., Norman Donald: The Psychology of Everyday Thins. New York, U.S.A. Basic Books, 1988. isbn: 0-465-06709-3. [Abr] Abraham, Steve. http://steveabraham.co.uk/blog/entry. [AG10] AG, Mesa Imaging: SwissRanger SR4000 Data Sheet. Mesa Imaging AG. Juni 2010. [And09] Andrew, Hsu: Choosing a touch technology for handheld-systems applications. Technischer Bericht. EDN, 2009. [Bad] Badkul, Namita: „Evolution of Apple Series“. In: [Ber11] Bernin, Arne: „Einsatz von 3D-Kameras zur Interpretation von räumlichen Gesten im Smart Home Kontext“. Studienfacharbeit. Hamburg University of Applied Sciences, 2011. [Bon04] Bonger, B: Interaction with our elctronic environment, an e-cological approach to physica interface design. Technischer Bericht. Faculty of Journalsim und Communication, Hogeschhol Van Utrecht, 2004. 97 Literaturverzeichnis [Bon06] Bongers, A.J.: „Interactivation - Twoards an e-cology of people, our technological environment, and the arts“. Dissertation. Vrije Inversiteit Amsterdam, 2006. [CC82] C.C., Tappert: Cursive Script Recognition by Elastic Matching. Technischer Bericht. IBM Journal of Research & Development, 1982. [CIT] CITS4240: Stereo and Structured Light. Technischer Bericht. The University of Western Australia. [CM98] C.M., Brown: Human-computer interface design guidelines. Technischer Bericht. Norwood NJ Ablex Publishing, 1998. [Cor] Corp., Microsoft. http://www.microsofot.com. [Cor07] Corporation, Denistron: Introduction to Touch Solutions White Paper, Rev. 1.0 A. Technischer Bericht. Denistron Corporation 562-941-5000, 2007. [Cor12] Corporation, Panasonic: Specifiactions of EKL3016. Analog Devices Inc. Juni 2012. [Dan] Dan Xie, Yun Lie. http://www.kinvi3d.net/wp/. [Dan11a] Daniel Reetz, Matti K: Kinect Hacking 103 - Looking at Kinect IR-Patterns. Technischer Bericht. 2011. http://www.futurepicture.org/p=116. [Dan11b] Daniel Reetz, Matti K: Kinect Hacking 103 - Looking at Kinect IR-Patterns. Technischer Bericht. 2011. http://www.futurepicture.org/p=124. [Del+09] Dell’Amico, Mauro; Diaz, Jose Carlos Diaz; Iori, Manuel; Montanari, Roberto: The single-finger keyboard layout problem. Technischer Bericht. DISMI University of Modena und Reggio Emilia, 2009. [Del34] Delunay, Boris: „Otdelenie Matematicheskikh i Estestvennykh Nauk“. In: Sur la sphère vide, 1934. Kapitel Sur la sphère vide. [Dev07] Devices, Analog: ADXL330. Analog Devices Inc. Jan. 2007. [Dou89] Douglas K. Smith, Rober C. Alexander: Das Milliardenspiel. Xerox Kampf um den ersten PC. Econ-Verlag, 1989. [Dud07] Dudenredaktion: Deutsches Universalwörterbuch 6. überarbeitete und erweiterte Auflage. Dudenverlag, 2007. [Eas] East, Ken. http : / / www . androidauthority . com / messagease - keyboard - app - review 74468/. 98 Literaturverzeichnis [Ebe04] Ebers, Olga: Überblick über aktuelle Verfahren zur Tiefenschätzung aus 2DVideo-Sequenzen. Studienfacharbeit. 2004. [Edw12] Edwards, Stephan A.: „A Short History of the Apple II“. In: 2012. [Ent] Entertainment, Sony Computer: „Playstation Move - Motion Controlled Gaming“. In: Pressarticel (), Seite 11. [Fak] Fakoo. http://www.fakoo.de/finger.html. [Föl10] Föll, Gregory: „Stereo Vision“. In: Hamburg University of Applied Science, Fakultät Technik und Informatik Department Informatik, 2010. [Gar08] Gary Bradsky, Adrian Kaehler: Learning OpenCV: Computer Vision with the OpenCV Library. O’Reilly, 2008. [Geb11] Gebauer, Florian: „Motion Capturing unter Verwendung der Microsoft Kinect. Untersuchung der Möglichkeiten und Einschränkungen“. Magisterarbeit. University of Applied Science Cologne, 2011. [Geb12] Gebauer, Florian: „Gestenbasiertes Interface Konzeption und Entwicklung unter Verwendung der Mircsofot Kinect“. Magisterarbeit. Cologne University of Applied Science, 2012. [Goo11] Google: Android 3.0 User’s Guide. Android mobile technology platform 3.0. Feb. 2011. [Gra] Grandl, Peter. http://www.amazona.de/index.php?page=26&file=2&article_id=3095. [Gre] GreenMashine. http://www.thisgreenmachine.com/?p=677. [Hen10] Henseler, Wolfgang. Jan. 2010. http://webmagazin.de/design/Von-GUI-zu-NUI. [Hen11a] Henkens, Dana: Die Gestaltung der Mensch-Computer-Interaktion. Technischer Bericht. Universität Konstanz, 2011. [Hen11b] Henkens, Dana: Kombination gestenbasierte Interaktion in multimodalen Anwendungen. Bakkalaureatsarbeit. 2011. [Her11] Hermann, Martin: Berührungsfreie gestenbasierte Interaktion auf Basis der Eigenschaften von Körpersilhouetten. Belegthesis. 2011. [Hir] Hirschmüller, Heiko: Stereo Processing by Semi-Global Matching and Mutual Information. Technischer Bericht. [HK10] Hoye, Timothy; Kozak, Joseph: Touch Screens: A Pressing Technology. Technischer Bericht. University of Pittsburgh, 2010. 99 Literaturverzeichnis [Hor] Horber, Eduard: Motion Capturing. Technischer Bericht. Universität Ulm. [IEE02] IEEE: 802.15.1-2002 Bluetooth. IEEE. Juni 2002. [Inc] Inc., Apple: iPhone User Guide, For iOS 6 Software. iOS 6 Software. [INC08] INC, Nuance Communications: Introducing T9 Trace - Faster, Easier Text Entry on Touchscreen Devices. 2008. [Inc12] Inc., Naunce Communications: „Nuance Launches Next Generation Swype. Swype’s New Living, Learning Keyboard Gets SmSmart Every Time You Use It.“ In: (2012). [Ino] Inosens, GmbH. http://www.inosens.eu/?p=58. [Int01] Intel: Open Source Computer Vision Library, Reference Manual. 2001. [Iso99] Isokoski, Poika: „A Minimal Device-Independent Text Input Method“. Magisterarbeit. University of Tampere, 1999. [Jar11] Jarausch, Wolfgang: Im Vergleich: MultitouchTechnologien für den industriellen Einsatz. Technischer Bericht. OMSC Microcomputer Systems Components Tuttlingen GmbH, 2011. [Jea12] Jean-Marc Schares Ludwig Hoegner, Uwe Stilla: „Geometrische Untersuchung zur Tiefengenauigkeit des Kinect-Sensorsystems“. In: 32. WissenschaftlichTechnische Jahrestagung der DGPF (2012). [Joh08] Johannes, Wienke: Bildverarbeitung mit OpenCV. Technischer Bericht. Universität Bielefeld, 2008. [Kof11] Kofler, Matthias: „Inbetriebnahme und Untersuchung des Kinect Sensors“. Magisterarbeit. Fachhochschule Oberöstereich, 2011. [Kon] Konolige K., Agrawal M.: Frame-Frame Matching vor RealReal Consistent Visual Mapping. [Kou12] Kourosh Khoshelham, Sander Oude Elberink: Accuracy and Resolution of Kinect Depth Data for Indoor Mapping Applications. Technischer Bericht. Universertiy of Twente, Faculty of Geo-Information Science und Earth Oberservation, 2012. [Kre05] Krems: „Mensch-Computer-Interaktion Dialoggstellung“. In: Vorlesung Psychologie 1 - Ergonomie Dialog, Technische Universität Chemnitz, 2005. [Lan03] Landay: An informal website design tool inspired by observation of practice. 2003. [Lan09] Langner, Tobias: Selbstlokalisierung für humanoide Fußballroboter mittels Mono- und Stereovision. Diplomthesis. 2009. 100 Literaturverzeichnis [Lew00] Lewand, Robert: Cryptological Mathematics. The Mathematical Association of America, 2000. [Loc] Locnet. http://www.bestappsmarket.com/p/app?appId=115584&title=flit-keyboardlite. [Lod11] Lode Hoste Bruno Dumas, Beat Signer: SpeeG: A Multimodal Speech- and Gesture-based Text Input Solution. Technischer Bericht. Vrije Universiteit Brussel, 2011. [Low04] Lowe, David G.: Distinctive Image Features from Scale-Invariant Keypoints. Technischer Bericht. University of British Columbia, Deparment for Computer Science, 2004. [LR99] Long A.C, Landay J.A.; Rowe: Implications for a Gesture Design Tool. Technischer Bericht. Conference on Humand factors in Computing systems, 1999. [Ltd11] Ltd., Dasure Pattern Recognition: SlideIT Make it easy to Write - User Guide July 2011. 2011. [Mac02] MacKenzie I.S., Soukoreff W.R.: Text Entry for Mobile Computing: Models and Methods Theory and Practice. Technischer Bericht. York University, 2002. [Mac06] MacKay, David J.C.: Dasher - Manual. Dasher. Jan. 2006. [Mal05] Malaka, Rainer: „Mensch-Computer-Interaktion“. In: Vorlesung WiSe 2005/2006, Universität Karlsruhe, 2005. [Mar10] Marie, Schacht: Natürliche Interaktion mit Tangible User Interface. Technischer Bericht. 2010. [McS09] McShaffry, Mike: Game Coding Complete. Cengage Learning Emea, 2009. [Nor86] Norman Donald A., Draper Stephen W.: User Centered System Design: New Perspectives on Human-Computer Interaction. New York U.S.A.: L Erlbaum Associates Inc., 1986. isbn: 0-898-59781-1. [Ola12] Olanoff, Drwe: MessagEase claims that it can increase smartsmart typing speads to 60 WpM. März 2012. http://thenextweb.com/apps/2012/03/02/messagease-claims-that-it-canincrease-smartphone-typing-speads-to-60-wpm/. [Ora13] Oracle: MySQL 5.1 - Referenzhandbuch. 2013. [Peu73] Peucker D.D., Peucker T.: Algorithmus for the reduction of the number of points required to represent a digitized line or its caricature. Technischer Bericht. The Canadian Cartographer 10, 1973. 101 Literaturverzeichnis [Pia05] Pia, Breuer: Entwicklung einer prototypischen GestenerkGesten in Echtzeit unter Verwendung einer IR-Tiefenkamera. Technischer Bericht. 2005. [Pop07] Poppinga, Benjamin: Beschleunigungsbasierte 3D-Gestenerkennung mit dem Wii- Controller. Studienfacharbeit. 2007. [Pot11] Potratz, Olaf: Ein System zur physikbasierten Interpretation von Gesten im 3D-Raum. Bachelorthesis. 2011. [Pri] Primesense: PriPrimes - The PrimeSPrime Reference Design 1.08. [Pri10a] Primesense: OpenNI User Guide. 2010. [Pri10b] Primesense: Prime Sensor NITE 1.3 Controls Programmers Guide. 2010. [Rah08] Rahimi, Mohammadali: Gestenbasierte Computerinteraktion auf Basis von Multitouch-Technologie. Bachelorthesis. 2008. [Rei11] Reichinger, A: Kinect Pattern Undercovered. Technischer Bericht. VRVis Forschungs-GmbH Vienna, 2011. [RS00] R., Plamondon; S.N., Srihari: On-Line and off-line handwriting recognition: a comprehensive survey. Technischer Bericht. IEEE Transaction on Pattern Analysis und Machine Intelligence, 2000. [Sch08] Schoening, Johannes: Multi-Touch Surfaces: A Technical Guide. Technischer Bericht. Institute for Geoinformatics University of Münster, 2008. [Sch93] Schmidt, Achim: Einführung in das Betriebssystem MS-DOS. Technischer Bericht. 1993. [Sir02] Sirisena, Amal: Mobile Text Entry. Technischer Bericht. University of Canterbury, Department of Computer Science, 2002. [Spi10] Spickermann, Andreas: „Photodetektoren und Auslesekonzepte für 3D-Timeof-Flight-Bildsensoren in 0,35 um-Standard-CMOS-Technologie“. Dissertation. Universität Duisburg-Essen, 2010. [t3n] t3n.com. http://t3n.de/news/ai-type-swype-besten-android-400006/. [Ton10] Tony, Gray: Projected Capacitive Touch Screen Technology. Technischer Bericht. Ocular Inc., 2010. [TT90] Tappert C.C., Suen C.Y.; T., Wakahara: The State of the Art in On-Line Handwriting Recognition. Technischer Bericht. IEEE Transaction on Pattern Analysis und Machine Intelligence, 1990. [UG] UG, TraxasMedia. http://www.traxas-media.de. 102 Literaturverzeichnis [Vla02] Vladimir Kolmogorov, Ramin Zabih: Multi-camera Scene Reconstruction via Graph Cuts. Technischer Bericht. Cornell University, Department of Computer Science, 2002. [Wal12] Walker, Geoff: „S3: Fundamentals of Touch Technologie and Applications“. In: Walker Mobile LLC, 2012. [Wika] Wikipedia. http://upload.wikimedia.org/wikipedia/commons/f/f9/Phone_Numberblock_ ITU-T_E.161.svg. [Wikb] Wikipedia.org. http://en.wikipedia.org/wiki/SlideIT. [Zal10] Zalewski, Patent Application Publication: Patent No. US2010/0304868A1. United States. Feb. 2010. [Zal13] Zalewski, Gary M.: „ETERMINATION OF CONTROLLER THREE DIMENSIONAL LOCATION USING IMAGE ANALYSIS AND ULTRASONIC COMMUNICATION“. English. US 2013/0002550 A1. 2013. [Zha03] Zhai S., Kristensson P.O.: SHARK: A Large Vocabulary Shorthand Writing System for Pen-based Computers. Technischer Bericht. Linköpings Universitet, Department of Computer und Information Science, 2003. [ZHS02] Zhia, Shumin; Hunter, Michael; Smith, Barton A.: Performance Optimization of Virtual Keyboards. Technischer Bericht. IBM Almaden Research Center, 2002. [Zim07] Zimmermann J. Nealen A., Alexa M.: Computer and Graphics. Technischer Bericht. Technische Universität Berlin, Department Computer Science (Computer Graphics), Walt Disney Animation Studios, 2007. [ZK08] Zhai, Shumin; Kristensson, Per Ola: Interlaced QWERRTY - Accommodating Ease of Visual Search and Input Flexibility in Shape Writing. Technischer Bericht. IBM Almaden Research Center, 2008. 103