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
[email protected]
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