Integrative Workplace - informatik.uni-konstanz.de · Um das System mit Stift und Touch bedienen zu...
Transcript of Integrative Workplace - informatik.uni-konstanz.de · Um das System mit Stift und Touch bedienen zu...
Integrative Workplace Sense-making on Digital Tabletops employing Reality-based Interaction
Technischer Bericht zum Master-Projekt
vorgelegt von
Christoph Gebhardt
03.06.2013
an der
Gutachter Prof. Dr. Harald Reiterer
Betreuer Roman Rädle
Inhaltsverzeichnis
2
Inhaltsverzeichnis
INHALTSVERZEICHNIS .......................................................................................................... 2
1 EINLEITUNG ........................................................................................................................ 4
2 DER INTERAKTIVE SCHREIBTISCH............................................................................. 7
2.1 AUFBAU DES TISCHS ........................................................................................................... 7
2.2 STIFTINTERAKTION ............................................................................................................. 8
2.2.1 Anoto Digital Pen ....................................................................................................... 8
2.2.2 NiCE Wall Driver und InputFramework .................................................................. 10
2.2.3 Verwendung .............................................................................................................. 12
2.3 TOUCH-INTERAKTION ....................................................................................................... 14
2.3.1 Displax SKIN MULTITOUCH Sensor ...................................................................... 14
2.3.2 Konfiguration ............................................................................................................ 15
3 POSITIONSBESTIMMUNG UND ERKENNUNG VON DOKUMENTEN ................. 18
3.1 ALLGEMEIN ...................................................................................................................... 18
3.2 REACTIVISION .................................................................................................................. 20
3.2.1 Framework ................................................................................................................ 20
3.2.2 Konfiguration ............................................................................................................ 21
3.3 TAGPOSITIONTRACKER .................................................................................................... 24
3.3.1 Entwicklung............................................................................................................... 24
3.3.2 Verwendung .............................................................................................................. 25
4 TEXT-EXTRAKTION UND ECHTZEIT-FEEDBACK BEI ANALOGEN
DOKUMENTEN ......................................................................................................................... 26
4.1 ALLGEMEIN ...................................................................................................................... 26
4.2 ANOTOTOPDFTRANSLATOR ............................................................................................. 27
4.2.1 Entwicklung............................................................................................................... 27
4.2.2 Verwendung .............................................................................................................. 29
4.3 ANOTOPATTERNCREATOR ............................................................................................... 31
4.3.1 Entwicklung............................................................................................................... 31
4.3.2 Verwendung .............................................................................................................. 32
Inhaltsverzeichnis
3
5 INTEGRATIVE WORKPLACE ........................................................................................ 36
5.1 ALLGEMEIN ...................................................................................................................... 36
5.2 MINDMAP ......................................................................................................................... 36
5.2.1 Landschaft ................................................................................................................. 36
5.2.2 Schrifterkennung ....................................................................................................... 38
5.2.3 Gestenerkennung....................................................................................................... 39
5.3 BROWSER-INTEGRATION .................................................................................................. 40
5.4 STARTEN DER ANWENDUNG ............................................................................................. 42
6 ZUSAMMENFASSUNG UND AUSBLICK ...................................................................... 43
LITERATURVERZEICHNIS ................................................................................................... 47
ABBILDUNGSVERZEICHNIS ................................................................................................ 48
Einleitung
4
1 Einleitung
Die Zielsetzung des Projekts Integrative Workplace ist die Verringerung der Kluft zwischen digi-
talen und analogen Medien. Eingangs wurde dazu eine Anforderungsanalyse im Fachbereich
Rechtswissenschaften durchgeführt, die das Arbeiten von Studenten mit digitalen und analogen
Quellen beim Verfassen einer Hausarbeit untersucht hat [1]. Dabei wurden vier Schlüsselanfor-
derungen für ein System ermittelt, das Jura-Studenten beim Verfassen einer Hausarbeit unter-
stützen soll. Diese lauten folgendermaßen:
Paralleles Lesen
Exzerpieren
Rückverfolgung von Referenzen
Wissensarchivierung
Die Anforderungen wurden als Grundlage bei der Konzipierung der Anwendung Integrative
Workplace verwendet. Auf Basis der Konzepte wurde ein Szenario entwickelt, dass einen Jura-
Studenten zeigt, der mit Hilfe von Integrative Workplace seine Hausarbeit verfasst. Der folgen-
de Abschnitt fasst die wesentlichen Konzepte des Projektes zusammen und stellt sie anhand von
Sketches vor:
Extrahieren von Text aus analogen und digitalen Quellen
Die Anwendung ermöglicht es Text auf die gleiche Weise aus analogen oder digitalen
Quellen zu extrahieren. Dazu markiert man mit einem Stift die relevante Passage und
schiebt diese auf die Informationslandschaft des Tisches (siehe Abbildung 1-1).
Abbildung 1-1: Extrahieren einer Textpassage aus einem Buch
Einleitung
5
Ablegen relevanter Informationen in einer Mindmap
Auf dem Tisch können die unterschiedlichen exzerpierten Textpassagen in einer Mind-
map verortet werden. Dazu kann man mit dem Stift Mindmap-Wolken zeichnen und be-
schriften. Des Weiteren können die Wolken miteinander verbunden und beliebig
verschoben werden (siehe Abbildung 1-2).
Abbildung 1-2: Anlegen einer Mindmap-Wolke
Volltextsuche in analogen und digitalen Quellen
Eine Volltextsuche kann sowohl in analogen als auch in digitalen Quellen durchgeführt
werden. Die Ergebnisse werden im entsprechenden Dokument hervorgehoben (siehe Ab-
bildung 1-3).
Abbildung 1-3: Volltextsuche in einem Buch
Referenzrückverfolgung zur Quelle
Durch Berührung einer Mindmap-Wolke kann man eine Referenz zur Originalquelle der
entsprechenden Textpassage anzeigen lassen (siehe Abbildung 1-4).
Abbildung 1-4: Referenzrückverfolgung einer exzerpierten Textpassage
Einleitung
6
Auf Basis der entwickelten Konzepte werden die technischen Eigenschaften ermittelt, die das
System bieten muss, um die gefundenen Schlüsselanforderungen zu erfüllen. Um die Extraktion
von Text aus analogen und digitalen Quellen zu ermöglichen, muss im analogen Fall der Text
auf einem Dokument digital verfügbar gemacht werden können. Des Weiteren muss es möglich
sein auf einem Dokument Echtzeit-Feedback anzuzeigen, um die Interaktion auf identische Wei-
se wie bei digitalen Quellen realisieren zu können. Um das Echtzeit-Feedback an der richtigen
Stelle anzeigen zu können, muss die Position von Dokumenten auf dem Tisch festgestellt wer-
den. Auch die analoge Volltextsuche sowie die Rückverfolgung von Referenzen zu analogen
Quellen brauchen diese Anforderungen.
Das Ablegen relevanter Informationen in einer Mindmap soll anhand von Stift- und Touch-
Eingaben gesteuert werden. Das heißt das System muss auf Eingaben dieser Art reagieren. Des
Weiteren muss die Anwendung spezielle Gesten erkennen, so dass der Benutzer beispielsweise
mit dem Stift eine Mindmap-Wolke zeichnen kann. Um eine Mindmap-Wolke beschreiben zu
können, muss zusätzlich die Erkennung von Schrift möglich sein.
Folgende Auflistung stellt die ermittelten technischen Eigenschaften nochmals dar:
Stift- und Touch-Interaktion mit dem digitalen Tisch
Positionsbestimmung und Erkennung von Dokumenten
Extraktion von Text aus analogen Dokumenten
Echtzeit-Feedback auf analogen Dokumenten
Gestenerkennung
Schrifterkennung
In den einzelnen Kapiteln dieses technischen Berichts wird die Lösung des jeweiligen Teilprob-
lems vorgestellt und dem Benutzer die Anwendung beziehungsweise Kalibrierung der verwende-
ten Software-Lösung erklärt. Ziel ist es diese Eigenschaften in dem Prototyp Integrative
Workplace zur Verfügung zu stellen.
Der interaktive Schreibtisch
7
2 Der interaktive Schreibtisch
2.1 Aufbau des Tischs
Die Grundlage der Realisierung der Konzepte bildet das Hardware-Setting. Der Aufbau bildet
die Basis für die Bedienung des Systems mit Stift und Touch, die Erkennung von Dokumenten
und die Möglichkeit Echtzeit-Feedback auf Dokumenten darstellen zu können. Folgende Abbil-
dung zeigt das aktuelle Setting, wie es im Living Lab der Blended Library1 steht.
Abbildung 2-1: Der interaktive Schreibtisch im Living Lab.
Durch die Topdown-Projektion des Beamers auf den Tisch können digitale Inhalte nicht nur auf
dem Schreibtisch sondern auch auf den sich auf dem Schreibtisch befindlichen Dokumenten dar-
gestellt werden. Die über dem Schreibtisch installierte Kamera ermöglicht es Dokumente zu er-
kennen und deren Position zu ermitteln. Die Kombination der Topdown-Projektion mit der
Positionsbestimmung anhand der Kamera ermöglicht das Anzeigen von Echtzeit-Feedback auf
1 Blended Library ist ein Forschungsprojekt indem neue Interaktionsformen für die Bibliothek
der Zukunft erforscht werden. Integrative Workplace entsteht im Rahmen dieses Projekts.
(http://hci.uni-konstanz.de/index.php?a=research&b=projects&c=8609071)
Der interaktive Schreibtisch
8
Dokumenten. Die dazu verwendete Softwarelösung wird in den Kapiteln Dokumenterkennung
und Extraktion digitalen Texts aus analogen Dokumenten vorgestellt.
Um das System mit Stift und Touch bedienen zu können, wurde eine spezielle Tischplatte entwi-
ckelt. Der Aufbau ist in folgender Abbildung schematisch dargestellt.
Abbildung 2-2: Layer der Tischplatte
Über der Tischplatte befindet sich eine Folie, die Berührungen anhand der kapazitiven Span-
nungsunterschiede erkennt (Displax-Folie). Auf dieser Folie liegt eine Glasplatte, die als Dielekt-
rikum den Spannungsunterschied in einen für die Folie messbaren Bereich reguliert. Darauf ist
eine mit dem Anoto Pattern bedruckte Folie geklebt. Diese Technologie ermöglicht die Positi-
onserkennung von Stiften auf dem Tisch. Die folgenden beiden Unterkapitel erklären die Funkti-
onsweise dieser Technologien und zeigen welche Einstellungen im Hardware-Setting des
interaktiven Schreibtisches getroffen werden müssen.
2.2 Stiftinteraktion
2.2.1 Anoto Digital Pen
Der Anoto Digital Pen ist eine Kombination aus einem normalen Stift mit einer digitalen Kame-
ra, die aufnimmt, was mit dem Stift geschrieben wurde. Dabei muss auf einem speziellen
Punktmuster geschrieben werden, anhand dessen der Stift erkennt auf welcher Seite und wo auf
dieser Seite er sich befindet. Folgende Abbildung stellt den Anoto Digital Pen und das Anoto
Pattern da.
Der interaktive Schreibtisch
9
Abbildung 2-3: Anoto Digital Pen [2]
Dieses Pattern besteht aus kleinen Punkten die mit einem Abstand von durchschnittlich 0,3 mm
in einem Raster angeordnet sind. Jeder dieser Punkte kann eine von vier Positionen innerhalb des
Rasters einnehmen (siehe Abbildung 2-4). Um seine Position festzustellen liest ein Stift eine
Fläche von 6 auf 6 Punkten wodurch die Eindeutigkeit des Musters auf einer Fläche mit der Grö-
ße von der Vereinigung der Kontinente Europa und Asien (60.000.000 ) sichergestellt wer-
den kann ( eindeutige Kombinationen der 6x6 Teilflächen) [2].
Abbildung 2-4: Anoto Pattern [2]
Die vom Stift erfassten Daten, wie beispielsweise die Position oder die beschriebene Seite, wer-
den in einem speziellen Dateiformat (PGC) auf dem Stift gespeichert. Um diese in einer Anwen-
dung verwenden zu können, gibt es zwei verschiedene Zugriffsmöglichkeiten. Zum einen
können die Daten über USB mit dem PC synchronisiert werden. Zum anderen kann man einen
Anoto Digital Pen via Bluetooth mit einem Rechner verbinden, wodurch die PGC-Dateien direkt
auf diesen Rechner gestreamt und so in Echtzeit in einer Anwendung ausgewertet werden kön-
nen.
Um PGC-Dateien an mehreren Rechnern gleichzeitig bearbeiten zu können, besteht die Mög-
lichkeit erhaltene PGC-Dateien über einen Server in Abhängigkeit vom Inhalt an einen entspre-
chenden Rechner zu routen. Diese Dienste kann man kommerziell bei Partnerfirmen von Anoto
erwerben.
Der interaktive Schreibtisch
10
2.2.2 NiCE Wall Driver und InputFramework
Die Anoto-Folie mit der die Tischoberfläche beklebt ist, besteht aus sechs verschiedenen Pat-
ches. Grund dafür ist die von Anoto begrenzte maximale Größe einer einzelnen Page. Dabei
überschneidet die Projektionsfläche vier dieser Seiten (siehe Abbildung 2-5).
Abbildung 2-5: Aufbau der Anoto-Folie des interaktiven Schreibtischs
Um mit dem Anoto Digital Pen das System bedienen zu können, wird der NiCE Wall Driver2
verwendet. Die folgende Abbildung zeigt dessen GUI.
Abbildung 2-6: NiCE Wall Driver
Der Treiber rechnet die Koordinaten des Stifts innerhalb einer Anoto Page auf die entsprechen-
den Koordinaten der Projektion um. Damit die verschiedenen Seiten dem System bekannt sind,
muss das Setting anfangs konfiguriert werden. Dazu bietet der Treiber eine Konfigurationsan-
sicht, die vier Punkte auf das Pattern projiziert. Diese müssen mit dem digitalen Stift berührt
werden. Anhand der Zuordnung von Projektionskoordinate zu Pattern-Koordinate der entspre-
chenden Seite, kann nun die allgemeine Umrechnung von Positionsinformationen zwischen den
zwei Koordinatensystemen vollzogen werden. Folgende Abbildung zeigt die Konfigurationsan-
sicht des Treibers.
2 Der NiCE Wall Driver wurde vom Media Interaction Lab der FH Hagenberg entwickelt.
Der interaktive Schreibtisch
11
Abbildung 2-7: Konfigurationsansicht des NiCE Wall Driver
Zusätzlich bietet der NiCE Wall Driver die Option den Stift als Maus zu emulieren (auswählbar
in der graphischen Oberfläche, siehe Abbildung 2-6). Damit ist es möglich, das Betriebssystem
und auch Anwendungen, die auf dem Betriebssystem laufen, mit dem Stift zu bedienen. Da ein
PC nur eine Maus haben kann, kann man jedoch nur einen Anoto-Stift zu einem bestimmten
Zeitpunkt verwenden.
Um mehrere Stifte in einer Anwendung verwenden zu können, wird bei der Realisierung des
Integrative Workplace zusätzlich zum NiCE Wall Driver das InputFramework3 verwendet.
Das InputFramework ist eine Abstraktionsschicht für verschiedene Eingabegeräte. Es ermöglicht
die einfache Integration von neuen Eingabegeräten in WPF-Anwendungen. Folgendes Klassen-
diagramm veranschaulicht die Funktionsweise des Frameworks.
Abbildung 2-8: Klassenstruktur des InputFramework [3]
3 Das InputFramework wurde vom Media Interaction Lab der FH Hagenberg entwickelt.
Der interaktive Schreibtisch
12
Um ein Eingabegerät über das InputFramework in eine WPF-Anwendung einbinden zu können,
muss es von der Klasse PointDeviceDriver erben. Wenn man nun die Daten des Gerätes in der
Anwendung verwenden möchte, muss eine Instanz der entsprechenden DeviceDriver-Klasse
erstellt und im DeviceManager registriert werden. Für jedes neue Eingabegerät, das im
DeviceManager registriert wurde, erstellt der WPFDeviceManager ein neues WPFPointDevice.
Diese Klasse erbt von dem WPF-Typ InputDevice, wodurch ein Objekt des Typs als natives
InputEvent im Bubbling- und Tunneling-Mechanismus in einer WPF-Anwendung geworfen
wird. Durch das Bubbling und Tunneling können Ereignisse nicht nur im eigentlichen Control in
dem sie geworfen worden sind abgefangen werden, sondern auch in allen darüber liegenden
Elementen des Visual Trees einer WPF-Anwendung. Folgende Abbildung zeigt die Ausbreitung
eines WPF-Events innerhalb des Visual Trees.
Abbildung 2-9: Bubbling und Tunneling in WPF4
Dabei ist wichtig, dass die Ereignisse zuerst über Tunneling und anschließend über Bubbling
abgefangen werden können. Für ein Element startet und endet die eigene Ereigniskette also im
Root-Element seines Visual Trees.
Für den Anoto Digital Pen liefert das InputFramework den AnotoDeviceDriver, der die vom Stift
erhaltenen Daten als Ereignisse in WPF verfügbar macht.
2.2.3 Verwendung
Um das InputFramework in einer eigenen WPF-Anwendung verwenden zu können, muss man
im Projekt eine Referenz auf zwei der DLL-Dateien setzen, die sich im Verzeichnis des
NiCE Wall Drivers befinden:
Conoto.net.dll
InputFramework.dll
4 Quelle (08.05.13): http://msdn.microsoft.com/en-us/library/ms742806.aspx
Der interaktive Schreibtisch
13
Wichtig: Es kann sein, dass die Datei InputFramework.dll durch eine neuere Version ersetzt
werden muss. Diese findet sich im gegebenen Fall im Verzeichnis Projekt Blended Library/
AnotoPenMouse des BSCW5 der Arbeitsgruppe HCI.
Anschließend kann auf die Klassen des InputFramework zugegriffen und somit die generierten
Eingabeereignisse an die WPF-Anwendung weitergeleitet werden. Dazu sind folgende Instanzi-
ierungen notwendig.
1 using InputFramework.DeviceDriver;
2 using InputFramework.WPFDevices;
3 …
4 public partial class MainWindow
5 {
6 private WPFTouchDeviceManager _deviceManager;
7 private AnotoServiceDeviceDriver _driver;
8 …
9 private void MainWindowLoaded(object sender, RoutedEventArgs e)
10 {
11 …
12 _deviceManager = WPFTouchDeviceManager.Instance;
13 _driver = new AnotoServiceDeviceDriver();
14 …
15 }
16 …
17 protected override void OnClosing(CancelEventArgs e)
18 {
19 …
20 _driver.Dispose();
21 …
22 }
23 …
21 }
Listing 2-1: Verwendung des InputFrameworks
Wie man im Listing sehen kann reicht es im MainWindow der Applikation ein Objekt vom Typ
WPFTouchDeviceManager und ein Objekt vom Typ AnotoServiceDeviceDriver als private Fel-
der anzulegen. Diese werden beim Laden des Hauptfensters initialisiert (siehe Methode
MainWindowLoaded). Nun kann man zur Laufzeit der Anwendung die vom Framework verar-
beiteten Eingabedaten über die WPF-Event-Handler für Input-Events abfangen. Damit sich die
Anwendung vollständig beendet muss beim Schließen des Programms das Objekt der Klasse
AnotoServiceDeviceDriver über dessen Dispose-Methode zerstört werden (siehe Methode
OnClosing).
5 Basic Support for Cooperative Work (BSCW) ist ein Document Management System.
Der interaktive Schreibtisch
14
2.3 Touch-Interaktion
2.3.1 Displax SKIN MULTITOUCH Sensor
Um das System mit Fingern bedienen zu können, wird eine spezielle Sensor-Folie (Produktname
lautet SKIN MULTITOUCH) der Firma Displax verwendet. Damit sie funktionsfähig ist muss
sie auf einem Substrat aus Glas oder Acryl angebracht werden. Danach kann der Sensor kapazi-
tive Spannungsunterschiede feststellen, wie sie durch die Berührung der Glasplatte mit der Hand
oder einem Finger entstehen. Folgende Abbildung skizziert Funktionsweise und Aufbau des Dis-
plax SKIN MULTITOUCH Sensors.
Abbildung 2-10: Displax SKIN MULTITOUCH Sensor6
Der Sensor wird über zwei Klemmverbindungen mit einem Controller verbunden. Dieser ermit-
telt anhand der vom Sensor empfangenen Daten die Positionen von Berührungen auf der Folie
und sendet sie via USB an den PC weiter, der durch die gefundenen Touches bedient werden soll
(siehe Abbildung 2-11).
Abbildung 2-11: Sensor und Controller von SKIN MULTITOUCH (in Anlehnung an [4])
6 Quelle (08.05.13): http://www.displax.com/en/products/products/skin-multitouch.html
Der interaktive Schreibtisch
15
Auf diesem Rechner befindet sich ein Treiber, der die empfangenen Daten verarbeitet und in
Abhängigkeit davon native Touch-Ereignisse im Operationssystem des Rechners wirft.
Auf Basis dieser generierten Events kann man durch Berührung mit dem PC interagieren, der mit
dem SKIN MULTITOUCH Sensor verbunden ist.
2.3.2 Konfiguration
Auf dem Rechner des interaktiven Schreibtischs befindet sich das DISPLAX
SKIN MULTITOUCH Control Panel. Anhand dessen graphischer Oberfläche kann der Touch-
Sensor kalibriert und konfiguriert werden. Folgende Abbildung zeigt die GUI.
Abbildung 2-12: DISPLAX SKIN MULTITOUCH Control Panel
Eine wichtige Einstellungsmöglichkeit ist die Checkbox ("Enabled") im oberen Bereich der
Oberfläche. Durch deren Selektion werden die ermittelten Touch-Punkte an das Betriebssystem
weitergegeben und der Rechner kann durch Berührungen gesteuert werden. Ein weiterer wichti-
ger Punkt sind die zwei verschiedenen Views die im Control Panel angezeigt werden können.
Die in Abbildung 2-12 dargestellt Matrix-Ansicht zeigt die vom Sensor ermittelten unterschied-
lich großen Blobs, die in Abhängigkeit von der Berührungsfläche entstehen. Die zweite Ansicht
ist die Support-View (siehe Abbildung 2-13). Über sie können einzelne Bereiche der Folie deak-
tiviert werden. Diese Bereiche reagieren dann nicht mehr auf Berührungen, da die Drähte abge-
schaltet sind, die für das Empfangen der Spannungsunterschiede verantwortlich sind.
Der interaktive Schreibtisch
16
Abbildung 2-13: Support-Ansicht des DISPLAX SKIN MULTITOUCH Control Panel
Um das System anhand von Berührungen bedienen zu können, ist eine Kalibrierung der Projek-
tion und der Folie notwendig. Dazu wählt man in der Combobox Selected screen den auf den
Tisch projizierenden Beamer aus. Anschließend selektiert man die Anzahl der Touch-Punkte, die
in der Kalibrierungsansicht dargestellt werden. Als sinnvolle Anzahl haben sich im Setting des
interaktiven Tisches 16 Punkte erwiesen. Eine höhere Anzahl an Punkten verbessert die Touch-
Genauigkeit nur unwesentlich. Durch das Drücken des Calibrate Buttons wird die Kalibrie-
rungsansicht (siehe Abbildung 2-14) auf den Tisch projiziert und man wird aufgefordert jeden
der Punkte eine gewisse Zeit lang zu berühren. Danach stimmen die vom Sensor gesendeten Ko-
ordinaten mit den Koordinaten der Projektion überein und man kann das System über Touch
bedienen.
Abbildung 2-14: Kalibrierungsansicht des DISLAX SKIN MULTITOUCH Control Panels
Über den Advanced Tab des Control Panels kann man verschiedene weiterführende Einstellun-
gen treffen. Unter anderem kann man den Treiber als Server einrichten und so die Sensordaten
Der interaktive Schreibtisch
17
über TUIO-Nachrichten versenden. Des Weiteren kann der Treiber als Client agieren und erhal-
tene TUIO-Nachrichten als Input-Ereignisse in das System einspeisen. TUIO ist ein Protokoll
über das die Positionsdaten von begreifbaren Objekten und Multitouch-Gesten auf Tischflächen
versendet werden kann [5]. Es wurde auf Basis von OSC7 entwickelt.
Besonders interessant ist die Einstellungsmöglichkeit Enable palm and arm rejection. Durch das
Selektieren dieser Checkbox werden Hand- und Armflächen nicht als Berührungen erkannt. In
der aktuellen Version des Treibers ist dieses Feature jedoch nur mit Vorsicht zu handhaben, da
zu weilen auch Berührungen mit dem Finger ausgesondert werden und man somit das System
wesentlich schlechter bedienen kann.
Eine Sache die es zu beachten gilt, ist die Vorgehensweise beim Auftreten von Phantom-
Touches. Bei der Verwendung des Touch-Sensors über einen längeren Zeitraum hinweg kommt
es vor, dass der Sensor Berührungen erkennt, die nicht stattfinden. Wenn man diese Phantom-
Touches in der Matrix- oder Support-Ansicht des Control Panels sieht, ist es notwendig den Con-
troller zurückzusetzen. Dazu drückt man den roten Hardware-Knopf, der sich auf dem Controller
befindet (siehe Abbildung 2-11). Dadurch werden der Controller und der Treiber neu eingerich-
tet und man kann anschließend wieder wie gewohnt mit dem System interagieren. Eine neue
Kalibrierung des Projektionsbereiches ist nicht notwendig.
7 Open Sound Control (OSC) ist ein Protokoll zur Echtzeitverarbeitung von Sound im Netzwerk
Positionsbestimmung und Erkennung von Dokumenten
18
3 Positionsbestimmung und Erkennung von Dokumenten
3.1 Allgemein
Für die Realisierung der Konzepte ist es sowohl notwendig die Position von Dokumenten auf
dem Tisch festzustellen, als auch zu erkennen um welches Dokument es sich handelt (Titel, Au-
tor, aktuell geöffnete Seite). Um diese Ziele zu erreichen wurden zwei verschiedene Ansätze
evaluiert. Zum einen wurde die Erkennung auf Basis von Bildverarbeitungsalgorithmen erörtert.
Zum anderen untersuchte man die Erkennung anhand von Markern mit denen die Dokumente
versehen werden.
Im ersten Ansatz wird die Position der Dokumente auf dem Tisch anhand eines Kantenerken-
nungsalgorithmus (z.B. Canny-Filter) ermittelt. Um zu erkennen um was für ein Dokument es
sich handelt, kann man mit einem SIFT-Algorithmus8 die relevanten Eigenschaften der Seite
errechnen und mit den dem System bekannten Seiten vergleichen. Bei der Umsetzung der Ziele
anhand des zweiten Ansatzes kann man auf verschiedene Frameworks zurückgreifen. Diese er-
mitteln die Lage eines Markers im Raum oder relativ zu einem festgelegten Koordinatensystem.
Zusätzlich haben Marker einen Wert, mit dem sie das Framework eindeutig identifizieren kann.
Durch die Verknüpfung eines Markers mit einer bestimmten Seite eines Dokumentes lässt sich
so erkennen, welches Dokument sich auf dem Tisch befindet und welche Seite aktuell geöffnet
ist.
Der Vorteil bei der Umsetzung der Dokumenterkennung mit Hilfe von Bildverarbeitungsalgo-
rithmen ist, dass die einzelnen Seiten nicht mit Markern versehen werden müssen. Allerdings
hat ein erster Test zur Kantenerkennung mit einem Canny-Filter9 gezeigt, dass die Erkennung
von Dokumenten auf dem Tisch oftmals zu fehlerhaften Ergebnissen führt (siehe Abbildung
3-1).
Abbildung 3-1: Kantenerkennung von Dokumenten mit dem Canny-Filter.
8 Scale-invariant feature transform (SIFT) extrahiert eindeutige Bildmerkmale unabhängig der
perspektivischen Verzerrung [12]. 9 Canny-Algorithmus ist das Standard-Kantenerkennungsverfahren und wurde 1986 von
John Canny entwickelt [13].
Positionsbestimmung und Erkennung von Dokumenten
19
In der Abbildung sieht man, dass die Projektionsfläche auf dem Tisch erkannt wird, die einzel-
nen Dokumente jedoch nicht. Nur die dunkleren auf den Dokumenten dargestellten Abbildungen
können von der Tischoberfläche differenziert werden. Der Grund dafür ist die ähnliche Farbe der
Tischoberfläche und der auf dem Tisch befindlichen Dokumente, da sowohl die Dokumente
(siehe dazu Kapitel 4) als auch die Tischoberfläche mit dem Anoto-Pattern bedruckt sind. Das
hat zur Folge, dass die Differenz des Grauwertverlaufs zwischen Dokument und Tisch nicht groß
genug ist um Kanten mit dem Canny-Filter zu erkennen. Zwar gibt es statistische Kantenerken-
nungsverfahren, die sogar für das menschliche Auge nicht sichtbare Grauwertunterschiede er-
kennen, jedoch wäre die Umsetzung der Dokumenterkennung mit einem solchen Verfahren sehr
zeitaufwendig.
Auf Grund der schnelleren Umsetzbarkeit der Dokumenterkennung anhand von Marker-
Frameworks hat man sich deshalb für diesen Ansatz entschieden. Bei der Realisierung der Do-
kumenterkennung (Position auf dem Tisch und aktuell geöffnete Seite) wurden zwei verschiede-
ne Marker-Frameworks untersucht und getestet. Zum einen das ARToolkitPlus, eine in C++
implementierte Bibliothek, die Augmented-Reality-Marker im dreidimensionalen Raum erkennt.
Zum anderen reacTIVision, eine Open-Source Bildverarbeitungssoftware welche die Position
und Rotation von Markern auf einem Tisch feststellt. Folgende Abbildung zeigt die Marker der
beiden Systeme.
Abbildung 3-2: AR-Marker (links) und reacTIVision-Marker (rechts)
Um mit ARToolkitPlus die Position der Marker relativ zur Projektionsfläche auf der Tischplatte
zu erhalten, sind zusätzliche Verarbeitungsschritte notwendig. Bevor man das Marker-Tracking
startet, muss man die Projektionsfläche auf der Tischplatte mit drei speziellen Markern konfigu-
rieren. Sie stehen für den Ursprung der Projektion, für den maximalen Punkt der Projektion in X-
Richtung sowie den maximalen Punkt der Projektion in Y-Richtung. Nach der Kalibrierung wer-
den alle im Kamerabild festgestellten Marker auf diese Fläche projiziert (anhand einer Orthogo-
nalprojektion) und die Position und Rotation im definierten Koordinatensystem zurückgegeben.
Ein erster Vergleich der Technologien hat gezeigt, dass die Erkennung von AR-Markern wesent-
lich instabiler funktioniert als bei reacTIVision-Markern. Die erkannte Position und Rotation von
AR-Markern fängt bei unbeständigen Lichtverhältnissen schnell an zu flackern. Dies ist ein alt-
Positionsbestimmung und Erkennung von Dokumenten
20
bekanntes Problem der Technologie und konnte durch den Einsatz eines Kalman-Filters10
redu-
ziert werden. Jedoch konnte die größere Instabilität im Vergleich zu reacTIVision nicht gänzlich
abgeschafft werden, weshalb reacTIVision bei der Umsetzung des Integrative Workplace ver-
wendet wird. Das folgende Unterkapitel erklärt die Funktionsweise von reacTIVision und zeigt
die notwendigen Konfigurationsschritte.
3.2 reacTIVision
3.2.1 Framework
reacTIVision ist ein Bildverarbeitungsframework für das Tracken von Markern und die Erken-
nung von Multitouch-Gesten [6]. Das Framework wurde für Tabletop-Rechner mit Rückprojek-
tion entwickelt. Es ermöglicht die kostengünstige Entwicklung von Tangible- und Multitouch-
User-Interfaces auf diesen Systemen. Folgende Abbildung veranschaulicht den Einsatz des
Frameworks innerhalb eines Tabletop-Systems.
Abbildung 3-3: reacTIVision Framework11
reacTIVision verarbeitet den Video-Stream einer Kamera und versucht anhand von Bildsegmen-
tierung die eigens dafür entworfenen Marker (siehe Abbildung 3-2) zu erkennen. Zusätzlich wird
im segmentierten Bild nach runden weißen Blobs gesucht, die bei entsprechender Größer als
Finger identifiziert werden. Um die Erkennung zu verbessern werden im Tabletop-System häufig
LEDs verbaut die diffuses Infrarot-Licht ausstrahlen. Dieses infrarote Licht wird von den auf
dem Tisch befindlichen Markern und Fingern reflektiert und gelangt in das Objektiv der Kamera.
Durch die Verwendung eines Infrarot-Filters gelangen nur diese Strahlen in die Kamera, was zu
10
Der Kalman-Filter entfernt durch Messgeräte verursachte Störungen. 11
Quelle (08.05.13): http://reactivision.sourceforge.net/
Positionsbestimmung und Erkennung von Dokumenten
21
einem deutlicheren Kontrast zwischen Fingern oder Markern und anderen Artefakten führt, die
nicht getrackt werden sollen.
Das Framework berechnet die Position der Marker und Finger in einem davor vom Entwickler
angelegten Koordinatensystem. Bei Markern wird zusätzlich der Rotationswinkel ermittelt. Die-
se Daten werden als TUIO-Nachrichten über UDP als Broadcast an den Port 3333 versendet und
können somit von allen Clients im Netzwerk abgerufen werden, die das TUIO-Protokoll verar-
beiten können.
3.2.2 Konfiguration
Im Setting des Integrative Workplace wird das Marker-Tracking von reacTIVision verwendet,
um die Position eines Dokumentes auf dem Tisch und dessen geöffnete Seite zu ermitteln. Fol-
gende Abbildung erklärt die Verwendung von reacTIVision im Kontext von Integrative Work-
place.
Abbildung 3-4: reacTIVision im Kontext des Integrative Workplace
Dabei wird reacTIVision ausschließlich zur Marker- und nicht zur Touch-Erkennung verwendet.
Außerdem kann in diesem Setting nicht mit Infrarot-LEDs gearbeitet werden, da die Tischober-
fläche opak ist und somit alle Infrarot-Strahlen reflektiert werden würden. Dies und der große
Abstand der Kamera zum Tisch, der nötig ist um die ganze Tischplatte abzudecken, haben zur
Folge, dass die Marker-Erkennung weniger stabil läuft als auf einem Tabletop-System. Um mit
dem System trotzdem eine stabile Erkennung zu gewährleisten, ist es wichtig die Marker in ei-
nem matten Schwarz zu drucken. Wenn die Marker zu sehr glänzen, reflektiert sich die Projekti-
on auf ihnen und sie können im Kamerabild nicht mehr erkannt werden.
Zusätzlich kann die Marker-Erkennung durch die Anpassung der Kamera-Eigenschaften verbes-
sert werden. Dabei ist es wichtig die Auto-Fokus-Funktion zu deaktivieren, da sonst bei Verän-
derungen der Projektion der Fokus nachjustiert wird und während der Nachjustierung die
Erkennung von Markern nicht möglich ist. Des Weiteren kann über das Spielen mit der Hellig-
keits- und der Kontrast-Funktion die Erkennungsstabilität der Marker erhöht werden. Folgende
Positionsbestimmung und Erkennung von Dokumenten
22
Abbildung zeigt zwei Dokumente, die von reacTIVision erkannt und in der graphischen Oberflä-
che markiert werden.
Abbildung 3-5: Erkennung von mit Marker versehenen Dokumenten
Man sieht die Erkennung der korrekten Position des Markers sowie die Erkennung seines Wer-
tes.
Um die korrekte Position des Markers innerhalb der Projektionsfläche zu bekommen, muss man
zuerst das Koordinatensystem von reacTIVision an die Projektion anpassen. Dazu projiziert man
die mit dem Framework mitgelieferte PDF zur Kalibrierung des Systems auf den Tisch und öff-
net den Kalibrierungsmodus im reacTIVision-Fenster. Folgende Abbildung zeigt die zwei über-
einander liegenden Raster, wie sie in der Anwendung sichtbar sind.
Abbildung 3-6: Kalibrierungsraster über projiziertem Raster
Anschließend legt man die einzelnen Punkte der beiden Raster so übereinander, dass nur noch
das Raster des reacTIVision-Fensters sichtbar ist (siehe Abbildung 3-7). Dazu verwendet man
die Pfeil-Tasten der Tastatur.
Positionsbestimmung und Erkennung von Dokumenten
23
Abbildung 3-7: Korrekt kalibriertes Raster
Nach Abschluss der Kalibrierung werden die Positionen relativ zum definierten Koordinatensys-
tem ermittelt. Des Weiteren können durch die Anpassung des Kalibrierungsrasters an das auf den
Tisch projizierte Raster perspektivische Verzerrungen herausgerechnet werden.
Positionsbestimmung und Erkennung von Dokumenten
24
3.3 TagPositionTracker
3.3.1 Entwicklung
TagPositionTracker wurde entwickelt um aus von reacTIVision empfangenen TUIO-
Nachrichten native WPF-Touch-Events zu generieren. Dadurch kann man die WPF-Event-
Mechanismen des Bubbling und Tunneling nutzen. So können die von TUIO empfangenen Da-
ten von allen auf Grund ihrer Position betroffenen Framework-Elementen in Event-Handler ver-
arbeitetet werden. TagPositionTracker befindet sich im SVN-Repository Tools12
der HCI-
Arbeitsgruppe und kann über einen SVN-Client ausgecheckt werden. Folgende Abbildung zeigt
den Aufbau der Bibliothek.
Abbildung 3-8: TagPositionTracker
Die Klasse TagPositionTrackBehavior erbt von der abstrakten Klasse Behavior, die auf den Typ
Window spezialisiert ist und somit nur an Objekte dieses Typs angehängt werden kann. Um den
TagPositionTracker in seiner Anwendung verwenden zu können, hängt man das Behavior an ein
Fenster, das die auf den Tisch projizierten Inhalte darstellt und Visualisierungen in Abhängigkeit
der erkannten Tags einblenden möchte. Dabei ist es wichtig, dass die Kamera (die Quelle des
von reacTIVision verarbeiteten Streams) auf das entsprechende Fenster gerichtet und das
reacTIVision- Kalibrierungsraster an die Projektion angepasst ist.
Um die TUIO-Nachrichten zu verarbeiten, legt TagPositionTrackBehavior eine Instanz von
TagPositionListener an und registriert dabei das assoziierte Window-Objekt. TagPositionListener
erbt von ITuioListener, einem Interface, das aus einer von reacTIVision implementierten TUIO-
Client-Bibliothek stammt. Diese Bibliothek wandelt TUIO-Nachrichten in Objekte vom Typ
TuioObject um. Über diese Objekte sind die relative Position, der Winkel und der Tag-Wert des
erkannten Markers abrufbar. Die TUIO-Objekte können je nach Status (aufgelegt, in Bewegung,
abgehoben) des zugehörigen Markers in dem entsprechenden Event-Handler (AddTuioObject,
UpdateTuioObject, RemoveTuioObject) eines
12
https://svn.uni-konstanz.de/hci/tools
Positionsbestimmung und Erkennung von Dokumenten
25
ITuioListeners abgefangen werden. Für jede der empfangenen Instanzen vom Typ TuioObject
wird ein Objekt der Klasse TagDevice initialisiert. Diese Klasse stellt eine Spezialisierung des
WPF-Typs TouchDevice da und erbt damit die Methoden anhand derer man ein Objekt als
InputEvent beim System registrieren kann.
Ein als InputEvent geworfenes Objekt ist über Bubbling und Tunneling in allen Unterelementen
der angehängten Instanz vom Typ Window abfangbar. So kann man das Objekt des Typs
TagDevice über die WPF-typischen Down-, Move-, Up-, Enter- sowie Leave-Handler abfangen.
3.3.2 Verwendung
Um die von TagPositionTracker generierten Ereignisse in der eigenen Anwendung abfangen zu
können, reicht es im dazugehörigen Projekt die Klassenbibliothek sowie die MVVM-Light-
Bibliotheken13
zu referenzieren. Anschließend muss im Code das TagPositionTrackBehavior an
das Hauptfenster der Anwendung gebunden werden (siehe Listing 3-1).
1 <Window x:Class="IntegrativeWorkplace.MainWindow"
2 …
3 xmlns:i="clr-namespace:System.Windows.Interactivity;
4 assembly=System.Windows.Interactivity"
5 xmlns:tpt="clr-namespace:Tools.TagPositionTracker;
6 assembly=Tools.TagPositionTracker">
7
8 <i:Interaction.Behaviors>
9 <tpt:TagPositionTrackBehavior x:Name="TagPositionTrackBehavior"
10 TouchUpDelayTime="0" />
11 </i:Interaction.Behaviors>
12
13 …
14 </Window>
Listing 3-1: Anhängen des TagPositionTrackBehavior an das Hauptfenster einer Anwendung
Um eine korrekte Funktionsweise sicherzustellen muss das Fenster, welches das
Behavior angehängt hat, das gesamte mit dem reacTIVision-Framework kalibrierte Raster aus-
füllen. Des Weiteren bietet TagPositionTrackBehavior eine Eigenschaft (TouchUpDelayTime)
über die man angeben kann, um wie viele Millisekunden verzögert das TouchUp-Ereignis zum
tatsächlichen Abheben des Tags geworfen wird.
13
MVVM Light bietet die Möglichkeit Behavior an Objekte eines bestimmten Typs anzuhängen.
Text-Extraktion und Echtzeit-Feedback bei analogen Dokumenten
26
4 Text-Extraktion und Echtzeit-Feedback bei analogen Dokumenten
4.1 Allgemein
Die Extraktion digitalen Texts aus analogen Dokumenten, sowie die Möglichkeit Echtzeit-
Feedback auf Papier anzuzeigen, sind zwei wesentliche technische Anforderungen an das System
(siehe Einleitung). Dazu muss der Text des analogen Dokuments durch das System erkannt und
in Abhängigkeit der Position des Stiftes markiert werden können. Des Weiteren soll es möglich
sein den markierten Text auf die Tischoberfläche zu schieben. Die Recherche in verwandten
Arbeiten hat ergeben, dass es mit DigitalDesk [7] und FACT [8] zwei Systeme gibt, welche die
Extraktion von Textpassagen auf diese Weise umsetzen. In beiden Systemen werden durch Bild-
verarbeitungsalgorithmen die analogen Dokumente und die darauf befindlichen Satzzeichen er-
kannt. Des Weiteren wird ein Eingabegerät (Stift oder Finger) ermittelt, anhand dessen man die
entsprechenden Satzzeichen auswählen oder verschieben kann. Um die Systeme verwenden zu
können, muss man in beiden Fällen jedoch gewisse Rahmenbedingungen einhalten. So kann mit
FACT nur ein Dokument bearbeitet werden. Dieses muss sich direkt unter der Kamera des Sys-
tems befinden, damit gedruckte Schriftzeichen eine ausreichende Auflösung haben, um erkannt
werden zu können. Auf dem DigitalDesk kann mit mehreren Dokumenten parallel gearbeitet
werden. Allerdings müssen extrahierbare Ziffernfolgen eine gewisse Größe und einen bestimm-
ten Zeilenabstand zueinander haben, um von der Kamera erkannt werden zu können.
Um den Prototypen auf eine schnellere Art implementieren und beliebig viele Dokumente paral-
lel auf den Tisch bearbeiten zu können, wird in diesem Projekt eine andere Lösung der Extrakti-
on digitaler Texte aus analogen Dokumenten verfolgt. Dazu wird, wie bei der Stiftinteraktion mit
dem Tisch die Anoto-Technologie verwendet. Folgende Abbildung erklärt den Ansatz.
Abbildung 4-1: Extraktion von digitalem Text aus analogen Dokumenten
Analoge Dokumente werden mit dem Anoto-Pattern bedruckt. Gleichzeitig wird für jedes dieser
Dokumente die digitale Repräsentation geparst und Wörter und Bilder als Tokens in einer XML-
Text-Extraktion und Echtzeit-Feedback bei analogen Dokumenten
27
Datei hinterlegt. Tokens beschreiben neben ihrem Inhalt (das entsprechende Wort oder Bild)
auch die eigene Position. Eine Position besteht aus einem Start- sowie Endpunkt und beschreibt
das Rechteck in dem sich der Token-Inhalt innerhalb der Seite befindet.
Wird nun eine Textpassage auf einem analogen Dokument markiert, wird die Pageaddress14
des
Anoto-Patterns ermittelt. Daraufhin wird in den verschiedenen XML-Dateien nach dem Element
vom Typ page gesucht, dessen pageaddress-Attribut mit der ermittelten Adresse übereinstimmt.
Wurde eine entsprechende Seite gefunden, werden alle innerhalb des Elements definierten Token
mit der markierten Fläche geschnitten. Findet eine Überschneidung der markierten Fläche mit
dem Rechteck des Tokens statt, wird dessen Inhalt und Position zurückgegeben.
Auf Basis der über reacTIVision-Marker erkannten Dokumentposition und der zum Dokument
relativen Position des Tokens kann die entsprechende Stelle auf dem Dokument hervorgehoben
werden. Zusätzlich kann der ermittelte Inhalt in einer Drag-Operation verwendet werden.
Der Nachteil des Lösungsansatzes ist, dass alle verwendeten analogen Dokumente mit dem
Anoto-Pattern bedruckt werden müssen und ihr Inhalt in XML-Dateien hinterlegt werden muss.
Der Vorteil ist, dass im Gegensatz zu den vorgestellten Forschungsprototypen beliebig viele Do-
kumente (wenn sie mit einem Marker versehenen sind) auf dem Tisch bearbeitet werden können.
Des Weiteren ist es nicht notwendig, dass die Dokumente eine bestimmte Textgröße oder einen
bestimmten Zeilenabstand haben. Die folgenden Unterkapitel erläutern die Entwicklung und
Verwendung der Software, welche die vorgestellte Idee umsetzt. Zum einen wird dabei die Bib-
liothek vorgestellt, über die auf den Text von analogen Dokumenten zurückgegriffen und Echt-
zeit-Feedback auf einem analogen Dokument angezeigt werden kann. Zum anderen wird die
Anwendung erklärt anhand der man automatisiert normale PDF Dokumente mit dem Anoto-
Pattern und einem reacTIVision-Tag versehen sowie den Inhalt in der Token-XML hinterlegen
kann.
4.2 AnotoToPdfTranslator
4.2.1 Entwicklung
Die Klassenbibliothek AnotoToPdfTranslator ist die programmatische Umsetzung des im vorhe-
rigen Unterkapitel beschriebenen Ansatzes zur Extraktion digitalen Texts aus analogen Doku-
menten. Folgende Abbildung zeigt das Klassendiagramm der Bibliothek.
14
Die Pageaddress wird anhand des Patterns einer Seite vom Stift identifiziert und
repräsentiert als eindeutige Kennzeichnung das entsprechende Anoto-Muster.
Text-Extraktion und Echtzeit-Feedback bei analogen Dokumenten
28
Abbildung 4-2: Klassendiagramm der AnotoToPdfTranslator-Bibliothek
Das Singleton PDFContentAccessor verwaltet alle Dokumente, die in der Anwendung verwen-
det werden sollen. Dazu werden alle in einem spezifizierten Verzeichnis hinterlegten Dokumente
eingelesen und für jede dieser XML-Dateien ein Objekt der Klasse Document initialisiert. Beim
Parsen der XML wird deren Struktur (siehe Abbildung 4-1) in einer Objekt-Hierarchie darge-
stellt. Für jedes XML-Element page wird eine Instanz der Klasse Page erzeugt. Für jedes in ei-
ner page definierte Token wird ein Objekt von IToken angelegt. Dabei wird das type-Attribut des
XML-Elements überprüft und auf Basis des Attribut-Wertes entweder die Spezialisierung Text-
Token oder ImageToken instanziiert.
Um nun die Token zu ermitteln, die zu einem markierten Bereich auf einem Dokument gehören,
ruft man die Methode GetSelectedContent auf. Dieser Methode übergibt man die Pageaddress
des auf das Dokument gedruckten Anoto-Patterns sowie den Start- und Endpunkt der Markie-
rung, die durch den Stift gezeichnet wurde. Auf Basis der beiden Punkte werden die Token zu-
rückgegeben, die sich mit der Markierungsfläche überschneiden (innerhalb einer Instanz des
Typs Document).
Die Bestimmung der markierten Fläche orientiert sich an einem Verfahren, das in der Vorstudie
des Projektes Interactive Reading of Digital Documents in the Mobile Context [9] überprüft und
von den Teilnehmern präferiert wurde. Folgende Abbildung erklärt dessen Funktionsweise.
Abbildung 4-3: Markierungsverfahren aus der Vorstudie des Projektes Interactive Reading
Text-Extraktion und Echtzeit-Feedback bei analogen Dokumenten
29
Ein Text wird markiert, in dem man einen Strich über die entsprechende Textpassage zieht. Da-
bei werden alle unterhalb des Startpunktes befindlichen Zeilen komplett markiert. Die Zeile, in
der sich der Endpunkt des Striches befindet, wird nur bis zur Position des Punktes markiert. An-
hand des Verfahrens kann man sowohl einzelne Wörter als auch ganze Textpassagen markieren.
Handelt es sich bei einem von GetSelectedContent zurückgegebenen Token um eine Instanz des
Typs ImageToken kann man sich anhand der Klasse PdfImageAccessor das zugehörige Bild zu-
rückgeben lassen. Dazu übergibt man das Objekt von ImageToken an die Methode
GetImagePath. Ein ImageToken beinhaltet den Pfad zur zugehörigen PDF-Datei, den Index der
Seite auf dem sich die Abbildung befindet, sowie eine ID, welche die Abbildung innerhalb der
Seite eindeutig definiert. Anhand dieser Informationen wird mit Hilfe des Frameworks
iTextSharp15
das Bild aus der PDF-Datei extrahiert und in einem temporären Verzeichnis hinter-
legt. GetImagePath gibt den Pfad der extrahierten Abbildung zurück. So kann man das Bild in
der eigenen Anwendung verwenden.
Zur Verwendung in Integrative Workplace wurde AnotoToPdfTranslator angepasst und als Bib-
liothek mit dem Namen DocumentManagement verwendet. DocumentManagement kann, über
die Funktionalität von AnotoToPdfTranslator hinaus, Dokumente verwalten, die sowohl mit dem
Anoto-Pattern als auch mit einem reacTIVision-Marker bedruckt sind und bietet zusätzlich Me-
thoden zur digitalen Volltextsuche in analogen Dokumenten an.
4.2.2 Verwendung
Um die AnotoToPdfTranslator-Bibliothek zu verwenden, kann man sie über den NuGet 16
-Server
der Blended Library in dem Projekt installieren, in dem sie benötigt wird. Die Verwendung der
Bibliothek im Code wird in folgendem Listing erklärt.
15
iText ist eine Software-Bibliothek zum Manipulieren von PDF-Dokumenten
(http://itextpdf.com/) 16
NuGet ist eine Visual-Studio-Erweiterung, die es einfach macht Bibliotheken von
Drittanbietern in einem Visual Studio Projekt zu installieren und zu verwenden
(http://nuget.org/)
Text-Extraktion und Echtzeit-Feedback bei analogen Dokumenten
30
1 using Tools.AnotoToPdfTranslator;
2 using Tools.AnotoToPdfTranslator.Data;
3 …
4 class Program
5 {
6 …
7
8
private static void TestAnotoToPdfTranslator(string pageAddress, Point point1st, Point pointLast)
9 {
10 …
11 var document = PdfContentAccessor.Instance.GetSelectedContent(pageAddress,
12 point1st, pointLast);
13 var pdfImageAccessor = PdfImageAccessor.Instance;
14 foreach (var token in document.Pages[0].Tokens)
15 {
16 …
17 var imageToken = token as ImageToken;
18 if (imageToken != null)
19 {
20 …
21 Console.WriteLine(pdfImageAccessor.GetImagePath(imageToken));
22 …
23 }
24 }
25 }
26 }
Listing 4-1: Verwendung von AnotoToPdfTranslator
Sowohl auf PdfContentAccessor als auch auf PdfImageAccessor kann über das Singleton-Pattern
zugegriffen werden. Die Methode GetSelectedContent erwartet die Pageaddress eines Anoto-
Patterns sowie den ersten und letzten Berührungspunkt eines Stiftes auf diesem Pattern. Anhand
dieser Daten werden die Markierungsfläche und die darunterliegenden Token berechnet. Um zu
einem ImageToken das zugehörige Bild zu erhalten wird der Methode GetImagePath die ent-
sprechende Instanz übergeben. Als Rückgabewert erhält man den Pfad zum Bild.
Text-Extraktion und Echtzeit-Feedback bei analogen Dokumenten
31
4.3 AnotoPatternCreator
4.3.1 Entwicklung
Analoge Dokumente müssen, um im Setting des Integrative Workplace verwendet werden zu
können, gewisse Voraussetzungen erfüllen. Um die Position und die aktuell geöffnete Seite fest-
zustellen, benötigen Dokumente einen reacTIVision-Tag. Die Extraktion von Text aus einem
Dokument, sowie das Echtzeit-Feedback auf einem Dokument, basiert auf der Anoto-
Technologie. Dazu wird auf jedes verwendete Dokument ein Anoto-Pattern gedruckt. Des Wei-
teren muss die digitale Repräsentation des Dokuments geparst und Wörter oder Abbildungen als
Token in einer XML-Datei hinterlegt werden. Folgende Abbildung zeigt die Seite eines Doku-
mentes, wie sie im Integrative Workplace verwendet wird.
Abbildung 4-4: Analoges Dokument des Integrative Workplace
Man erkennt das Punktmuster, das über den eigentlichen Inhalt gelegt wird sowie den reacTIVi-
sion-Tag der in der rechten obere Ecke platziert ist. Um diese Dokumente einfach aus einer An-
wendung heraus generieren zu können, wurde das Programm AnotoPatternCreator entwickelt.
AnotoPatternCreator greift zur automatisierten Erstellung der Dokumente auf verschiedene Bib-
liotheken und Anwendungen zurück. Zur Generierung des Anoto-Patterns wird das von Anoto
entwickelte PaperSDK verwendet. Auf Basis dieses Developer Kits ist es möglich die eindeuti-
gen Muster in verschiedenen Formaten zu generieren und als PostScript-Datei abzuspeichern.
Text-Extraktion und Echtzeit-Feedback bei analogen Dokumenten
32
Um das generierte Pattern auf ein PDF-Dokument legen zu können, ist es notwendig, dieses
ebenfalls in eine PDF-Datei zu konvertieren. Dazu wird der Interpreter ghostscript17
verwendet,
der automatisiert aus AnotoPatternCreator heraus gestartet wird. Mit Hilfe des Frameworks
PDFSharp18
wird die daraus entstandene PDF-Datei und der reacTIVision-Marker in das ur-
sprüngliche Dokument eingefügt und anschließend in einer neuen PDF-Datei abgespeichert.
Um eine XML-Datei erzeugen zu können, welche die einzelnen Wörter und Abbildungen eines
Dokuments als Token enthält, ist es notwendig das ursprüngliche PDF-Dokument zu parsen. Das
Java-Framework PDFBox19
ermöglicht dies und bietet zusätzlich im eigenen SVN-Repository
jeweils eine Beispiel-Klasse zur Ermittlung von Text- (PrintTextLocations) und Bild-
Koordinaten (PrintImageLocations) innerhalb einer PDF-Datei. Zur Erstellung der Token-XML-
Datei werden beide Klassen in eine Konsolen-Anwendung gepackt. Die Java-Anwendung ermit-
telt die Text- und Bildbausteine sowie deren Koordinaten und erstellt auf Basis der Daten die
XML-Datei, welche die Token des ursprünglichen Dokuments beinhaltet. Um die Java-
Konsolenanwendung aus AnotoPatternCreator starten zu können, wird sie in eine Executable-
JAR-Datei konvertiert und automatisiert aufgerufen.
4.3.2 Verwendung
AnotoPatternCreator befindet sich im SVN-Repository Tools20
der HCI-Arbeitsgruppe. Nach-
dem man die Anwendung heruntergeladen hat, kann man deren Solution mit Visual Studio öff-
nen und die verschiedenen Projekte kompilieren. Bevor man jedoch die eigentliche Anwendung
starten kann (das Projekt AnotoPatternCreator.Gui) gibt es zwei Dinge, die zu beachten sind.
Zum einen muss eine JRE21
-Umgebung auf dem Rechner installiert sein. Zum anderen muss der
Rechner ghostscript eingerichtet haben. Wichtig ist dabei, dass man den Pfad zur Anwendung
gswin64c (auf 64-bit Systemen, gswin32c auf 32-bit Systemen) in den Settings des Projektes an
das entsprechenden Verzeichnis des verwendeten Rechners anpasst (siehe Abbildung 4-5).
17
ghostscript ist ein Open-Source Interpreter für PostScript und PDF
(http://www.ghostscript.com/) 18
PDFSharp ist eine Open Source-Bibliothek die das Bearbeiten von PDF-
Dokumenten in allen .NET-Sprachen ermöglicht (http://www.pdfsharp.com) 19
PDFBox ist eine Open Source-Bibliothek die das Bearbeiten von PDF-
Dokumenten in Java ermöglicht (http://pdfbox.apache.org/) 20
https://svn.uni-konstanz.de/hci/tools 21
Java Runtime Environment (http://www.java.com/de/download/)
Text-Extraktion und Echtzeit-Feedback bei analogen Dokumenten
33
Abbildung 4-5: Settings in AnotoPatternCreator.Gui
Anschließend ist es möglich die Anwendung zu starten und zu verwenden. Nachdem Start öffnet
sich die graphische Oberfläche und folgende Ansicht ist für den Benutzer sichtbar.
Abbildung 4-6: Anoto Licences Ansicht des AnotoPatternCreator
In diesem Tab kann man zwischen den verschiedenen Lizenzen, die der HCI-Arbeitsgruppe zur
Verfügung stehen, wählen und die Eigenschaften (Seitenanzahl und -größe) überprüfen. Im
nächsten Tab (siehe Abbildung 4-7) ist es möglich PostScript-Dateien mit dem Anoto-Pattern zu
generieren.
Text-Extraktion und Echtzeit-Feedback bei analogen Dokumenten
34
Abbildung 4-7: Create Pattern Ansicht des AnotoPatternCreator
Dazu kann man die Größe des Patterns (Din A0-A10 oder eine spezifische Größe), den Namen
der Ausgabedatei, sowie die Anzahl von Seiten definieren. Der Tab Print Pattern (siehe Abbil-
dung 4-8) dient dem Überlagern von PDF-Dokumenten mit einem Anoto-Pattern und gegebe-
nenfalls einem reacTIVision-Marker.
Abbildung 4-8: Print Pattern Ansicht des AnotoPatternCreator
Über einen Dateiauswahl-Dialog wählt man das entsprechende PDF-Dokument aus. Des Weite-
ren kann man den Namen der Ausgabedatei sowie die Pattern-Nummer, mit der der ersten Seite
des Dokuments begonnen wird, spezifiziert werden. Über eine CheckBox kann man angeben, ob
ein reacTIVision-Tag auf dem Dokument hinzugefügt werden soll. Dabei kann man auch hier
den Startwert und die Größe des Tags auf dem Dokument spezifizieren. Im letzten Tab (siehe
Abbildung 4-9) ist die Generierung der Token-XML-Datei möglich.
Text-Extraktion und Echtzeit-Feedback bei analogen Dokumenten
35
Abbildung 4-9: Tokens XML Ansicht des AnotoPatternCreator
Auch hier wird über einen Dateiauswahl-Dialog das zu parsende PDF-Dokument ausgewählt.
Der Name der XML- entspricht dem Namen der PDF-Datei und kann daher nicht festgelegt wer-
den. Für die einzelnen page-Elemente der XML-Datei kann man sowohl den Startwert des Attri-
butes pageaddress (Pattern No) sowie den Startwert des Attributes tagvalue (Tag No) festlegen
(für die Struktur der Token-XML siehe Abbildung 4-1). Außerdem können über eine CheckBox
alle in der ausgewählten PDF-Datei vorhandenen Bilder extrahiert werden. Diese werden im
Ausgabeverzeichnis der Anwendung, im Unterverzeichnis mit dem Namen imgs, abgespeichert.
Um über AnotoToPdfTranslator auf die Inhalte der Token-XML zurückzugreifen, wird diese mit
der ursprünglichen PDF-Datei in ein gemeinsames Verzeichnis gelegt. Wird der Pfad des Ver-
zeichnisses in PdfContentAccessor gesetzt (über die Eigenschaft BooksDirectory), werden alle
sich im Verzeichnis befindlichen XML-Dateien geladen und auf den Inhalt kann über die vorge-
stellten Methoden (siehe Kapitel 4.2.1 und 4.2.2) zugegriffen werden.
Die Pageaddress des Punktmusters sowie die Koordinaten der einzelnen Wörter der mit dem
Anoto-Pattern und dem reacTIVision-Tag überlagerten PDF-Datei entsprechen denen in der zu-
gehörigen XML-Datei hinterlegten Token. So kann, wenn die Datei ausgedruckt wird, anhand
der Daten des Anoto Digital Pens die markierten Passagen ermittelt werden.
Integrative Workplace
36
5 Integrative Workplace
5.1 Allgemein
Integrative Workplace ist die eigentliche Anwendung des Master-Projekts und soll als Prototyp
im Rahmen der Master-Arbeit evaluiert werden. Die Applikation greift auf die verschiedenen
Bibliotheken, Frameworks und Technologien zu, die in den vorherigen Artikeln beschrieben
wurden und erfüllt so die in der Seminararbeit ermittelten Schlüsselanforderungen an ein System
zum Verfassen einer juristischen Hausarbeit.
In diesem Kapitel wird die Umsetzung der Eigenschaften vorgestellt, die nicht in Software-
Modulen oder -Bibliotheken zur Verfügung gestellt wurden. Dazu gehört zum einen die Dar-
stellbarkeit einer Mindmap, zum anderen die Integration eines Webbrowsers. Die Mindmap dient
der sinnvollen Anordnung extrahierter Texte zur Generierung neuer Ideen (sense-making). Der
Webbrowser ermöglicht den Zugriff auf digitale Inhalte im Setting des Arbeitsplatzes.
5.2 Mindmap
5.2.1 Landschaft
Aus den für die Landschaft der Mindmap vorgestellten Konzepten ergeben sich verschiedene
technische Anforderungen, die bei der Realisierung beachtet werden müssen. Um die Mindmaps
mehrerer Fälle parallel zueinander verorten zu können, ist es notwendig eine sehr große Land-
schaft zur Verfügung zu stellen. Dabei soll die Landschaft über die Dimensionen der Projektion
hinausgehen und durch Panning und Zooming auf diesen Bereich angepasst werden können. Des
Weiteren ist die Persistierbarkeit einer Mindmap beziehungsweise der Stand eines Arbeitsplatzes
ein wichtiger Aspekt. Es soll für verschiedene Personen möglich sein die auf der Landschaft an-
gelegten Mindmaps über die Laufzeit des Prototyps hinweg abzuspeichern und bei Bedarf wieder
zu laden. So können mehrere Personen abwechselnd an ihrem Fall beziehungsweise ihren Fällen
arbeiten.
Zur Realisierung dieser Anforderungen wird das ZOIL22
Framework der HCI-Arbeitsgruppe
verwendet. Das Framework ist für .NET und WPF entwickelt worden. Die Basis bildet eine
zoombare Informationslandschaft die verschiedene Eigenschaften beinhaltet:
Semantischer Zoom – Größenabhängige Darstellung von Objekten
Persistenz – Persistieren von Objekten über die Laufzeit einer Anwendung hinaus
Echtzeit-Synchronisation – Synchronisierung von Objekten auf verteilten Geräten
Unabhängigkeit von Eingabegeräten – Bedienbarkeit mit Maus, Touch, OSC, etc.
22
ZOIL steht für Zoomable Object-Oriented Information Landscape (http://zoil.codeplex.com/)
Integrative Workplace
37
Im Projekt wird Gebrauch von den Eigenschaften Zoom sowie Persistenz gemacht. Dabei hat
sich in einer ersten Implementation der Landschaft des Integrative Workplace gezeigt, dass das
semantische Zoomen in diesem Kontext für den Benutzer irritierend ist. Daher wurde mit ZOIL
eine einfache zweieinhalb-dimensionale Informationslandschaft erstellt. In der minimalen Zoom-
stufe wird eine Übersicht über alle bearbeiten Mindmaps bzw. Fälle gegeben (siehe Abbildung
5-1).
Abbildung 5-1: Übersicht über alle auf dem Arbeitsplatz bearbeiteten Fälle
Bei der Bearbeitung eines bestimmten Falles kann man durch Zoomen den Fokus auf den gerade
bearbeiteten Bereich legen (siehe linke Seite der Abbildung 5-2). Durch Berührung ist es mög-
lich die extrahierten Textpassagen oder Definitionen explizit zu öffnen und so zusätzliche Infor-
mationen zu erhalten (siehe rechte Seite der Abbildung 5-2). Diese Realisierung orientiert sich an
zwei der von Cockburn et al. vorgestellten Interface-Schemata zum Wechsel zwischen Fokus-
und Kontext-Ansichten [10]: zum einen an der zeitlichen Trennung durch Zoomen, zum anderen
am selektiven Hervorheben oder Ausblenden einzelner Items.
Abbildung 5-2: Fokus- und Kontext-Ansichten des Integrative Workplace
Objekte werden in ZOIL entweder in einer BaseX23
- oder db4o24
- Datenbank persistiert. In In-
tegrative Workplace wird die db4o-Datenbank verwendet.
23
BaseX ist eine XML-Datenbank (http://basex.org/)
Integrative Workplace
38
Um Objekte mit ZOIL persistieren zu können müssen auf der graphischen Oberfläche dargestell-
te Objekte im MVVM-Pattern25
implementiert werden. Das MVVM-Pattern spezifiziert, dass ein
GUI-Objekt aus einem Model (den visualisierten Daten), einer View (der graphischen Repräsen-
tation) sowie einem ViewModel (dient der Aufarbeitung des Models zur graphischen Darstel-
lung) besteht. Im ZOIL-Databackend werden dann die Model-Objekte der auf der
Informationslandschaft dargestellten Elemente mit ihren visuellen Eigenschaften (Größe, Positi-
on und Sichtbarkeit) hinterlegt. Beim erneuten Starten der Anwendung werden alle diese Objekte
aus der Datenbank geladen und wieder in der Informationslandschaft dargestellt.
5.2.2 Schrifterkennung
Die einzelnen Mindmap-Wolken, die sich auf der Landschaft des Integrative Workplace befin-
den stellen entweder eine extrahierten Textpassage dar oder sind von Hand angelegt und be-
schriftet worden. Eine von Hand angelegte Mindmap-Wolke wird mit dem Stift gezeichnet und
anschließend beschrieben. Um das handschriftlich Geschriebene als digitalen Text zu erkennen,
müssen die notierten Zeichen interpretiert und als digitale Zeichen ausgegeben werden. Als Basis
wird dazu die Klasse InkAnalyzer im .NET-Namespace System.Windows.Ink verwendet. Dieser
Namespace stellt Klassen für die Verarbeitung von Freihandeingaben zur Interaktion mit WPF-
Anwendungen bereit. Dabei ermöglichen Objekte der Klasse InkAnalyzer die Schrift- und Zeich-
nungsklassifizierung von handschriftlich verfassten Texten oder Zeichnungen. Der Zugriff auf
InkAnalyzer findet in diesem Projekt über die Software-Bibliothek AnotoInkAnalyzer statt. Das
Framework befindet sich im SVN-Repository der HCI-Arbeitsgruppe und dient der Handschrift-
erkennung bei Verwendung der Anoto-Technologie. Um AnotoInkAnalyzer auch zur Erkennung
von Schrift auf der Projektionsfläche zu verwenden, wurde es an das zur Integration des Digital
Pens mit der Anwendung verwendete InputFramework (siehe Kapitel 2.2.2) angepasst. Es ist nun
möglich eine Klasse von AnotoInkAnalyzer direkt an ein graphisches Element zu binden und so
dessen Eingabe-Ereignisse abzufangen oder über öffentliche Methoden die gezogenen Striche an
das Objekt zu übergeben. In beiden Fällen werden die ermittelten Zeichen an eine Instanz von
InkAnalyzer weitergegeben und analysiert. Folgende Abbildung zeigt die graphische Umsetzung
der Schrifterkennung in Integrative Workplace.
24
db4o ist eine Objektdatenbank für Java und .NET (http://www.db4o.com/) 25
Model-View-ViewModel ist ein Pattern, dass der Trennung von Markup und Logik einer
graphischen Oberfläche dient (Erfinder John Gossman über das Pattern (08.05.13):
http://blogs.msdn.com/b/johngossman/archive/2005/10/08/478683.aspx).
Integrative Workplace
39
Abbildung 5-3: Workflow der Interaktion bei Schrifterkennung
In einem ersten Schritt wird eine Mindmap-Wolke mit dem Stift beschrieben. Die einzelnen Zei-
chen werden analysiert und über ein Menü kann man die verschiedenen erkannten Wörter aus-
wählen. Dabei sind diese nach der Sicherheit der Erkennung sortiert. Hat man das Wort
ausgewählt, das dem handschriftlich geschriebenen entspricht, wird es als digitaler Text auf der
Mindmap-Wolke dargestellt.
5.2.3 Gestenerkennung
Eine Mindmap zur Struktur der exzerpierten Inhalte einer Literaturrecherche kann aus verschie-
denen Controls bestehen. Diese Controls haben jeweils eine unterschiedliche Bedeutung und eine
damit verbundene Funktionalität. Die folgende Tabelle erklärt die in Integrative Workplace ver-
wendbaren Mindmap-Controls.
Tabelle 5-1: Ansichten und Bedeutung der Mindmap-Controls
Integrative Workplace
40
Um ein Mindmap-Control anzulegen wird dieses mit dem Stift auf den Tisch gezeichnet. Anhand
der gezeichneten Form wird ermittelt um welches Control es sich handelt. Anschließend wird
dieses Control zur Informationslandschaft des Prototyps hinzugefügt. Die Analyse der gezeich-
neten Form wird dabei von einer C#-Implementierung26
des $1-Algorithmus durchgeführt. Der
von Wobbrock et al. entwickelte Algorithmus [11] erkennt mit einem Strich gezeichnete Gesten,
ohne dass es nötig ist, diese dem System in einem aufwendigen Lernprozess beizubringen.
Trotzdem bietet der Algorithmus eine robuste, rotationsunabhängige Erkennung von Gesten.
Folgende Abbildung zeigt exemplarisch die Erkennung des Überschrift-Controls in Integrative
Workplace.
Abbildung 5-4: Erkennung des Überschrift-Controls
5.3 Browser-Integration
Um die Darstellung digitaler Inhalte im Setting des Arbeitsplatzes zu ermöglichen, ist es not-
wendig einen Webbrowser in die Anwendung zu integrieren. Dabei soll insbesondere der Zugriff
auf Beck-Online27
ermöglicht werden. Die Fachdatenbank für Juristen bietet umfangreiche Ge-
setzestexte und Kommentare an und wird von Studenten häufig beim Verfassen einer Hausarbeit
(dem Anwendungsfall des Projekts) verwendet. Wichtig ist, dass die im Browser dargestellten
Inhalte mit dem Anoto Digital Pen markiert und auf die Informationslandschaft gezogen werden
können.
Dazu wird awesomium28
verwendet, eine Web-UI-Bridge zur Darstellung von Webinhalten in
C++- oder .NET-Anwendungen. Der Vorteil von awesomium gegenüber dem von WPF angebo-
26
Quelle (08.05.13): http://depts.washington.edu/aimgroup/proj/dollar/ 27
http://beck-online.beck.de 28
http://awesomium.com
Integrative Workplace
41
tene ActiveX-Webbrowser ist die fensterlose Renderbarkeit. Dadurch können Web-Seiten nicht
nur auf beliebigen graphischen Oberflächen und Texturen dargestellt werden, sondern sind zu-
sätzlich beliebig rotier- und skalierbar. Um awesomium in einer eigenen Anwendung verwenden
zu können muss man im dazugehörigen Visual Studio Projekt die DLL-Dateien Awesomi-
um.Core und Awesomium.Windows.Controls referenzieren. Anschließend kann man das
WebControl wie in folgendem Listing gezeigt in XAML-Dateien verwenden.
1 <UserControl x:Class="IntegrativeWorkplace.Controls.BeckBrowser"
2 …
3 xmlns:awe="clr-namespace:Awesomium.Windows.Controls;
4 assembly=Awesomium.Windows.Controls">
5
6
<Grid> …
6 <awe:WebControl x:Name="Browser" Width="980" Height="600"/>
7 …
8 </Grid>
9 </UserControl>
Listing 5-1: Verwendung des awesomium-WebControls
Der awesomium-Webbrowser wurde im Projekt in ein eigenes UserControl (BeckBrowser) inte-
griert, dessen Aufgabe insbesondere die Realisierung der Stift- und Touch-Interaktion mit dem
Control ist. Durch die Integration des Anoto Digital Pens in das Bubbling und Tunneling von
Eingabe-Ereignissen ist es automatisch möglich mit dem Stift entsprechende Textpassagen im
Webbrowser zu markieren. Wenn man die markierte Passage anschließend berührt, wird vom
BeckBrowser-Control eine Drag-Operation gestartet und der markierte Bereich kann auf die In-
formationslandschaft gezogen werden. Des Weiteren kann man mit dem Stift Suchbegriffe in ein
spezielles Textfeld eintragen. Diese werden dann auf der Seite des Browser hervorgehoben. Um
das Browser-Control auf dem Arbeitsplatz verschieben zu können sind an dessen Seiten Touch-
Handles vorhanden. Werden gleichzeitig zwei dieser Handles berührt kann man das Control zu-
sätzlich vergrößern oder rotieren. Folgende Abbildung zeigt das BeckBrowser-Control.
Abbildung 5-5: BeckBrowser-Control
Integrative Workplace
42
5.4 Starten der Anwendung
Vor dem Start von Integrative Workplace sind folgende drei Schritte notwendig:
1.) Starten des Displax Touch Sensors:
Um mit Touch interagieren zu können, muss der Displax-Controller über USB mit dem
Rechner verbunden sein. Zusätzlich muss man im Control-Panel des Sensors die Weiter-
gabe der Touch-Ereignisse an das Betriebssystem aktivieren. Dazu selektiert man die
Enabled-Checkbox im linken oberen Bereich der Start-Ansicht des Control-Panels (siehe
Abbildung 2-12). Des Weiteren ist zu überprüfen, ob der Sensor neu kalibriert werden
muss (eine Anleitung zur Konfiguration des Sensors befindet sich in Kapitel 2.3.2).
2.) Starten des NiCE Wall Driver:
Um die Anwendung mit dem Anoto Digital Pen bedienen zu können, muss der NiCE
Wall Driver gestartet sein. Außerdem ist es wichtig zu überprüfen, ob das System einen
Anoto Digital Pen erkannt hat. Dies ist im linken Bereich der GUI des NiCE Wall Driver
dargestellt (siehe Abbildung 2-6). Zusätzlich sollte man überprüfen ob die Notwendigkeit
besteht, den NiCE Wall Driver neu zu konfigurieren (eine Anleitung dazu kann man in
Kapitel 2.2.3 finden).
3.) Starten des reacTIVision Frameworks:
Zur Erkennung der auf dem Tisch vorhandenen Dokumente muss das reacTIVision
Framework gestartet sein. Anschließend sollte man die Optionen der Kamera verifizieren.
Dazu legt man eines der Dokumente auf den Tisch und passt die Helligkeits- und Kon-
trasteigenschaft der Kamera so an, dass die Erkennung des auf dem Dokument befindli-
chen Markers möglich robust ist. Zusätzlich muss man überprüfen ob die Auto-Fokus-
Funktion der Kamera deaktiviert ist. Außerdem muss man kontrollieren, ob das Kalibrie-
rungsraster der Kamera an die Projektion angepasst ist. Durch das Drücken der Taste C
kann man das Raster einblenden. Eine Beschreibung, wie man reacTIVision kalibriert
findet sich in Kapitel 3.2.2.
Anschließend kann man Integrative Workplace aus der gleichnamigen Visual Studio Solution
heraus starten.
Zusammenfassung und Ausblick
43
6 Zusammenfassung und Ausblick
Dieser Bericht beschreibt die technische Realisierung der Anwendung Integrative Workplace.
Integrative Workplace wurde auf Grundlage einer Bedarfsanalyse konzipiert, die im Rahmen der
Seminararbeit dieses Projektes vorgestellt wird und die Anforderungen an ein System aufzeigt,
das Studenten beim Verfassen einer juristischen Hausarbeit unterstützt [1]. Zur Entwicklung der
Anwendung wurde die aus den Konzepten ermittelte, technische Problemstellung in Teilproble-
me zerlegt und so in verschiedenen Schritten realisiert. Bei der Implementierung wurde dabei auf
die Generalisierbarkeit der Teilprobleme geachtet. Sie sind jeweils als Bibliotheken verfügbar
und können somit auch in weiteren Projekten verwendet werden.
Integrative Workplace führt die einzelnen Komponenten in einer Anwendung zusammen, um
dadurch die ermittelten Anforderungen zu erfüllen und die entwickelten Konzepte zu realisieren.
In der Seminararbeit werden die Konzepte anhand eines Szenarios präsentiert, das zeigt wie ein
Jura-Student eine Hausarbeit mit Hilfe des Prototyps Integrative Workplace verfasst. In diesem
Szenario werden verschiedene Features vorgestellt. Bei der Entwicklung wurden versucht diese
Features, sofern es möglich war, zu implementieren. Folgende Tabelle fasst die in den Konzep-
ten vorgestellten Eigenschaften zusammen und zeigt ob der Konzeptentwurf im Prototyp reali-
siert wurde.
Eigenschaft Konzeptidee Realisierung im Prototyp
Gesten-
erkennung
Schrift-
erkennung
Echtzeit-
Feedback
auf analogen
Dokumenten
Zusammenfassung und Ausblick
44
Text von
Blatt auf
Informations-
landschaft
schieben
Text von
Buch auf
Informations-
landschaft
schieben
Mindmap
erstellen
Interagieren
mit digitalem
Text anhand
des Stift
Volltextsuche
in analogem
Dokument
Zusammenfassung und Ausblick
45
Anzeigen
von Such-
ergebnissen
am
Buchschnitt
Referenzrück-
verfolgung
zu analogen
Quellen
Referenzrück-
verfolgung
zu digitalen
Quellen
Verwendung
v. Mindmap-
Controls in
Word
Dokumenten
Kopieren von
Mindmap-
Controls
Zusammenfassung und Ausblick
46
Exportieren
der Mindmap
Dynamisches
Anzeigen
relevanter
Informatio-
nen
Tabelle 6-1: Gegenüberstellung Sketch und Prototyp
Die Tabelle zeigt, dass die Mehrzahl der Ideen im Prototyp realisiert werden konnten. Ideen de-
ren Umsetzung aus technischen oder zeitlichen Gründen nicht möglich war, sind mit einem Mi-
nus gekennzeichnet.
Der nächste und letzte Schritt des Projektes ist die Evaluation der Anwendung. Anhand einer
Studie wird die Innovativität und Gebrauchstauglichkeit des Systems ermittelt. Eine erste Idee
zur Evaluation ist eine geleitete Usability-Studie, in der die Aspekte der Arbeit eines Jura-
Studenten beim Verfassen einer Hausarbeit durch ein einführendes Interview ermittelt und an-
schließend von dem Studenten und dem Versuchsleiter am Prototyp Integrative Workplace
durchgeführt wird. Allerdings muss der konkrete Entwurf der Studie noch entwickelt werden und
wird, wie die Studienergebnisse, in der schriftlichen Ausarbeitung der Master-Arbeit vorgestellt.
Literaturverzeichnis
47
Literaturverzeichnis
[1] C. Gebhardt, “Integrative Workplace - Sense-making on Digital Tabletops employing
Reality-based Interaction”, 2012.
[2] Anoto Group, “DEVELOPMENT GUIDE FOR SERVICES ENABLED BY ANOTO
FUNCTIONALITY”, pp. 1–44, 2005.
[3] Media Interaction Lab (FH Hagenberg), “InputFramework”, 2010.
[4] Displax, “SKIN MULTITOUCH - Installation Guide”, 2012.
[5] M. Kaltenbrunner and T. Bovermann, “TUIO: A protocol for table-top tangible user
interfaces”, Proceedings of the the 6th International Workshop on Gesture in Human-
Computer Interaction an Siumulation (GW 2005), 2005.
[6] M. Kaltenbrunner and R. Bencina, “reacTIVision: a computer-vision framework for table-
based tangible interaction”, Proceedings of the first international conference on Tangible
and embedded interaction (TEI07), 2007.
[7] P. Wellner, “The DigitalDesk calculator: tangible manipulation on a desk top display”,
Proceedings of the 4th annual ACM symposium on User interface software and
technology (UIST ’91), pp. 27–33, 1991.
[8] C. Liao, H. Tang, Q. Liu, P. Chiu, and F. Chen, “FACT: fine-grained cross-media
interaction with documents via a portable hybrid paper-laptop interface”, Proceedings of
the international conference on Multimedia (MM ’10), pp. 361–370, 2010.
[9] T. Baube, “Interactive Reading of Digital Documents in the Mobile Context”, Universität
Konstanz, 2013.
[10] A. Cockburn, A. Karlson, and B. Bederson, “A review of overview+ detail, zooming, and
focus+ context interfaces”, ACM Computing Surveys (CSUR), pp. 1–42, 2008.
[11] J. Wobbrock, A. Wilson, and Y. Li, “Gestures without libraries, toolkits or training: a $1
recognizer for user interface prototypes”, Proceedings of the 20th annual ACM symposium
on User interface software and technology (UIST ’07), pp. 159–168, 2007.
[12] D. G. Lowe, “Object recognition from local scale-invariant features”, Proceedings of the
Seventh IEEE International Conference on Computer Vision, pp. 1150–1157 vol.2, 1999.
[13] J. Canny, “A computational approach to edge detection”, IEEE transactions on pattern
analysis and machine intelligence, vol. 8, no. 6, pp. 679–98, Jun. 1986.
Abbildungsverzeichnis
48
Abbildungsverzeichnis
Abbildung 1-1: Extrahieren einer Textpassage aus einem Buch .................................................... 4
Abbildung 1-2: Anlegen einer Mindmap-Wolke ............................................................................ 5
Abbildung 1-3: Volltextsuche in einem Buch ................................................................................ 5
Abbildung 1-4: Referenzrückverfolgung einer exzerpierten Textpassage ..................................... 5
Abbildung 2-1: Der interaktive Schreibtisch im Living Lab. ......................................................... 7
Abbildung 2-2: Layer der Tischplatte ............................................................................................. 8
Abbildung 2-3: Anoto Digital Pen [2] ........................................................................................... 9
Abbildung 2-4: Anoto Pattern [2] ................................................................................................... 9
Abbildung 2-5: Aufbau der Anoto-Folie des interaktiven Schreibtischs ...................................... 10
Abbildung 2-6: NiCE Wall Driver ................................................................................................ 10
Abbildung 2-7: Konfigurationsansicht des NiCE Wall Driver ..................................................... 11
Abbildung 2-8: Klassenstruktur des InputFramework [3] ............................................................ 11
Abbildung 2-9: Bubbling und Tunneling in WPF ........................................................................ 12
Abbildung 2-10: Displax SKIN MULTITOUCH Sensor ............................................................. 14
Abbildung 2-11: Sensor und Controller von SKIN MULTITOUCH (in Anlehnung an [4]) ....... 14
Abbildung 2-12: DISPLAX SKIN MULTITOUCH Control Panel ............................................. 15
Abbildung 2-13: Support-Ansicht des DISPLAX SKIN MULTITOUCH Control Panel ........... 16
Abbildung 2-14: Kalibrierungsansicht des DISLAX SKIN MULTITOUCH Control Panels ..... 16
Abbildung 3-1: Kantenerkennung von Dokumenten mit dem Canny-Filter. ............................... 18
Abbildung 3-2: AR-Marker (links) und reacTIVision-Marker (rechts) ....................................... 19
Abbildung 3-3: reacTIVision Framework .................................................................................... 20
Abbildung 3-4: reacTIVision im Kontext des Integrative Workplace .......................................... 21
Abbildung 3-5: Erkennung von mit Marker versehenen Dokumenten ......................................... 22
Abbildung 3-6: Kalibrierungsraster über projiziertem Raster ...................................................... 22
Abbildung 3-7: Korrekt kalibriertes Raster .................................................................................. 23
Abbildung 3-8: TagPositionTracker ............................................................................................. 24
Abbildung 4-1: Extraktion von digitalem Text aus analogen Dokumenten ................................. 26
Abbildung 4-2: Klassendiagramm der AnotoToPdfTranslator-Bibliothek .................................. 28
Abbildung 4-3: Markierungsverfahren aus der Vorstudie des Projektes Interactive Reading ..... 28
Abbildung 4-4: Analoges Dokument des Integrative Workplace ................................................. 31
Abbildung 4-5: Settings in AnotoPatternCreator.Gui .................................................................. 33
Abbildung 4-6: Anoto Licences Ansicht des AnotoPatternCreator ............................................. 33
Abbildung 4-7: Create Pattern Ansicht des AnotoPatternCreator .............................................. 34
Abbildung 4-8: Print Pattern Ansicht des AnotoPatternCreator ................................................. 34
Abbildung 4-9: Tokens XML Ansicht des AnotoPatternCreator .................................................. 35
Abbildung 5-1: Übersicht über alle auf dem Arbeitsplatz bearbeiteten Fälle .............................. 37
Abbildung 5-2: Fokus- und Kontext-Ansichten des Integrative Workplace ................................ 37
Abbildungsverzeichnis
49
Abbildung 5-3: Workflow der Interaktion bei Schrifterkennung ................................................. 39
Abbildung 5-4: Ansichten und Bedeutung der Mindmap-Controls .............................................. 39
Abbildung 5-5: Erkennung des Überschrift-Controls ................................................................... 40
Abbildung 5-6: BeckBrowser-Control .......................................................................................... 41
Abbildung 6-1: Gegenüberstellung Sketch und Prototyp ............................................................. 46