Laserpointer-Tracking in realen Umgebungen

Transcription

Laserpointer-Tracking in realen Umgebungen
Laserpointer-Tracking in realen
Umgebungen
von
Kurz, Daniel
aus Münster
Bachelorarbeit eingereicht an der
Fakultät Medien
(Fachbereich Mediensysteme)
zum Erreichen des akademischen Grades
B ACHELOR OF S CIENCE
an der
B AUHAUS -U NIVERSITÄT W EIMAR
Betreuer der Arbeit:
Jun. Prof. Dr. Oliver Bimber
Bauhaus-Universität Weimar
Erstbetreuer
Prof. Dr. Tom Gross
Bauhaus-Universität Weimar
Zweitbetreuer
Tag der Einreichung:
13. November 2006
Erklärung
Hiermit erkläre ich, dass ich diese Arbeit selbstständig erstellt und keine anderen als die angegebenen Hilfsmittel benutzt habe.
Weimar, den 13. November 2006
Daniel Kurz
Kurzfassung
In der Erweiterten Realität beschränkt man sich nicht auf klassische Displays,
wie Monitore oder Projektionsleinwände. Etwa mit Hilfe kalibrierter Projektoren und radiometrischer Kompensation wird jede reale Umgebung – zum
Beispiel ein Wohnzimmer – zu einem potentiellen Display, das interaktive Inhalte darstellen kann. Ein solches interaktives System erfordert ein intuitives
und schnelles Eingabegerät. Klassische desktopgebundene Eingabegeräte, wie
Maus und Tastatur eigenen sich hier nicht. Laserpointer-Tracking hat sich als
eine intuitive und schnelle Eingabemethode herausgestellt, die es dem Benutzer ermöglicht über Distanz mit einer Projektionsleinwand zu interagieren.
Diese Arbeit stellt ein System vor, das Laserpointer-Tracking in realen Umgebungen ermöglicht. Das Display – und damit die Interaktionsfläche – ist nicht
länger auf eine planare Leinwand beschränkt, sondern kann beliebig komplex
und den Benutzer umgebend sein. Ein hybrides Kamerasystem, bestehend aus
einer pan-tilt-zoom (PTZ) Kamera in der Funktion einer Detailkamera und einer
Fischaugenkamera, die als Kontextkamera fungiert, ermöglicht die Lokalisierung und das Verfolgen (tracking) eines Laserpunktes in einem Interakionsfeld
von 360◦ ∗ 180◦ . Die Position des Laserpunktes in dreidimensionalen Weltko-
ordinaten liefert die Grundlage für Laserpointer-Interaktion in realen Umgebungen.
Darüber hinaus ist das System in der Lage, die es umgebene Szene zu akquirieren. Ein Lasermodul ermöglicht die Abtastung von Geometrieinformationen.
Zusammen mit einer Textur, die aus Einzelbildern der Detailkamera zusammengesetz wird, erhält man ein texturiertes Geometriemodell der Szene, das
aus beliebigen Perspektiven betrachtet werden kann.
II
Inhaltsverzeichnis
Kurzfassung
II
Abbildungsverzeichnis
VII
Tabellenverzeichnis
VIII
1 Einleitung
1
1.1
Motivation der Arbeit . . . . . . . . . . . . . . . . . . . . . . . . .
1
1.2
Vorschau der Ergebnisse . . . . . . . . . . . . . . . . . . . . . . . .
3
1.3
Kapitelübersicht . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3
2 Verwandte Arbeiten
5
2.1
Laserpointer-Interaktion . . . . . . . . . . . . . . . . . . . . . . . .
5
2.2
Einsatz von Pan-Tilt-Zoom Kameras . . . . . . . . . . . . . . . . .
8
3 Setup
11
3.1
Anforderungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
3.2
Systemaufbau . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
3.3
Prototyp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
3.4
Datenübertragung und Kommunikation . . . . . . . . . . . . . . . 14
3.5
3.4.1
Kommunikation zwischen Computer und System . . . . . 14
3.4.2
Kommunikation innerhalb des Systems . . . . . . . . . . . 16
3.4.3
Protokolle . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
4 Kalibrierung
4.1
20
Kamerakalibrierung . . . . . . . . . . . . . . . . . . . . . . . . . . 20
4.1.1
Pinhole-Modell . . . . . . . . . . . . . . . . . . . . . . . . . 20
III
Inhaltsverzeichnis
4.2
4.1.2
Intrinsische Kalibrierung . . . . . . . . . . . . . . . . . . . 22
4.1.3
Extrinsische Kalibrierung . . . . . . . . . . . . . . . . . . . 23
Statische Systemkalibrierung . . . . . . . . . . . . . . . . . . . . . 24
4.2.1
Intrinsische Kalibrierung der Detailkamera . . . . . . . . . 24
4.2.2
Intrinsische Kalibrierung der Kontextkamera . . . . . . . . 25
4.2.3
Extrinsische Kalibrierung der Detailkamera im Systemkoordinatensystem . . . . . . . . . . . . . . . . . . . . . . . 28
4.2.4
Extrinsische Kalibrierung der Kontextkamera im Systemkoordinatensystem . . . . . . . . . . . . . . . . . . . . . . . 28
4.3
4.4
Dynamische Systemkalibrierung . . . . . . . . . . . . . . . . . . . 29
4.3.1
Computer Vision basierte Techniken . . . . . . . . . . . . . 29
4.3.2
Geometriebasiertes Verfahren . . . . . . . . . . . . . . . . . 33
Analyse und Vergleich der Kalibrierungsverfahren . . . . . . . . . 41
4.4.1
Genauigkeit . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
4.4.2
Geschwindigkeit . . . . . . . . . . . . . . . . . . . . . . . . 45
4.4.3
Resumee . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
5 Laserpointer-Tracking
5.1
48
Lokalisierung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
5.1.1
Lokalisierung im Kamerabild der Detailkamera . . . . . . 48
5.1.2
Lokalisierung in Weltkoordinaten mit Hilfe der Detailkamera . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
5.1.3
Lokalisierung im Kamerabild der Kontextkamera . . . . . 51
5.1.4
Lokalisierung in Weltkoordinaten mit Hilfe der Kontextkamera . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
5.2
Verfolgen des Laserpunktes . . . . . . . . . . . . . . . . . . . . . . 54
5.3
Räumliche Auflösung des Laserpointertrackings . . . . . . . . . . 55
5.4
Analyse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
5.4.1
Probleme und Einschränkungen . . . . . . . . . . . . . . . 56
5.4.2
Stärken gegenüber vergleichbaren Eingabegeräten . . . . . 60
5.4.3
Resumee . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
6 Szenenakquise
6.1
62
Geometrieakquise . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
IV
Inhaltsverzeichnis
6.2
6.3
6.1.1
Effiziente Geometrieakquise . . . . . . . . . . . . . . . . . . 64
6.1.2
Probleme bei der Geometrieakquise . . . . . . . . . . . . . 65
Photometrieakquise . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
6.2.1
Hochauflösende statische Textur . . . . . . . . . . . . . . . 67
6.2.2
Geringauflösende Echtzeittextur . . . . . . . . . . . . . . . 70
Resumee . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
7 Zusammenfassung und Ausblick
7.1
7.2
7.3
75
Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
7.1.1
Kalibrierung . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
7.1.2
Laserpointer-Tracking . . . . . . . . . . . . . . . . . . . . . 76
7.1.3
Szenenakquise . . . . . . . . . . . . . . . . . . . . . . . . . 77
Ausblick . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
7.2.1
Laserpointer-Tracking . . . . . . . . . . . . . . . . . . . . . 77
7.2.2
Szenenaquise . . . . . . . . . . . . . . . . . . . . . . . . . . 80
7.2.3
Kamerasystem . . . . . . . . . . . . . . . . . . . . . . . . . 80
Danksagung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
A Evaluation der Kalibrierungsverfahren
82
B Schaltpläne
85
V
Abbildungsverzeichnis
1.1
Spatial Augmented Reality in Architecture (DFG-Projekt) . . . . .
2
3.1
Foto des Prototypen . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
3.2
Blockschaltbild: Computer (1); Kontextkamera (2); Hauptplatine (3); Detailkamera (4); Lasermodul (5); Schrittmotorcontroller (6, 7); Schrittmotoren (8, 9). . . . . . . . . . . . . . . . . . . . . 15
4.1
Kamera im Pinhole-Modell . . . . . . . . . . . . . . . . . . . . . . 21
4.2
Intrinsische Parameter in Abhängigkeit der Zoomstufe . . . . . . 25
4.3
Parameter der Linsenzerzeichnung in Abhängigkeit der Zoomstufe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
4.4
Einfaches Kameramodell der Kontextkamera. Auf der linken Seite ist ein Laserpunkt an der Pixelposition p’ zu sehen. Die rechte Abbildung zeigt den zugehörigen dreidimensionalen Vektor,
der in die Richtung des Laserpunktes zeigt. . . . . . . . . . . . . . 27
4.5
Virtuelle Bildebene . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
4.6
Berechnung der Tiefe durch Triangulierung . . . . . . . . . . . . . 34
4.7
Erfasste Punktwolke mit Ortsvektoren . . . . . . . . . . . . . . . . 38
4.8
Punktwolke und Geometriemodell ( a); initial guess (b); gefundenes Minimum (c). Die roten Punkte visualisieren Ausreißer,
die im zweiten Minimierungsdurchgang nicht berücksichtigt werden. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
4.9
Fehler der verschiedenen Kalibrierungsmethoden. Minimum, 0,25Quartil, Median, 0,75-Quartil, Maximum. . . . . . . . . . . . . . . 43
4.10 Dauer der verschiedenen Kalibrierungsverfahren . . . . . . . . . 46
5.1
Schematische Darstellung von Laserpointer-Tracking . . . . . . . 54
VI
Abbildungsverzeichnis
5.2
Kamerabild ( a); Maske (b); maskiertes Kamerabild (c). . . . . . . 57
5.3
Bilder des Frames n − 1 ( a, d); des Folgeframes n (b, e); die asymetrische Differenz der Bilder (c, f ). Oben: Laserpunkt gefun-
den ( a, b, c); unten: falscher Laserpunkt gefunden (d, e, f ). . . . . 59
6.1
Gescannte Geometrie mit verschiedenen Abtastraten, beginnend
bei einer geringen Auflösung von 202 Punkten (Dauer ca. 10
min) ( a), einer etwas höheren Auflösung von 402 Punkten (Dauer ca. 32 min) (b) und zuletzt mit 602 Abtastpunkten (Dauer: ca.
68 min) (c). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
6.2
Gescannte Geometrie gerendert in Wireframe-Darstellung ( a),
mit Farben als Funktion der Tiefe (b) und mit Farben als Funktion der Normalen (c). . . . . . . . . . . . . . . . . . . . . . . . . . . 64
6.3
Triangulierungsschema des adaptiven Scannens . . . . . . . . . . 65
6.4
Adaptive Abtastung eines Würfels (Simulation). . . . . . . . . . . 66
6.5
Die Ränder zwischen den Einzelbildern ( a) sind ohne Blending
6.6
6.7
6.8
6.9
(b) störender als mit Blending (c). . . . . . . . . . . . . . . . . . .
Hochauflösende Textur; zusammengesetzt aus 49 Einzelbildern. .
Gescannte Geometrie, texturiert mit der hochaufgelöseten Textur
Echtzeittextur ( a); gescannte Geometrie, texturiert mit Echtzeittextur (b, c). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Gegenüberstellung der Echtzeittextur (oben) und der hochaufgelösten Textur (unten). . . . . . . . . . . . . . . . . . . . . . . . .
67
69
70
72
73
7.1
6 DOF Laserpointertracking mit Hilfe eines Beugungsgitters . . . 78
7.2
Stereoskopischer Laserpointer . . . . . . . . . . . . . . . . . . . . . 79
A.1 Bilder der ersten Testumgebung. Untere Reihe: Referenzmodell . 83
A.2 Bilder der zweiten Testumgebung. Untere Reihe: Referenzmodell
84
B.1 Schaltplan der Hauptplatine (entworfen und konstruiert von Ferry Häntsch) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
B.2 Schaltplan der Schrittmotorcontroller. Nachdruck aus TMC222
DATASHEET) [33] . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
VII
Tabellenverzeichnis
3.1
Protokoll zwischen Computer und Kamerasystem . . . . . . . . . 17
3.2
Verwendete Kommunikation mit der Detailkamera . . . . . . . . 18
VIII
1 Einleitung
1.1 Motivation der Arbeit
Immersive Displays haben in der Virtuellen Realität längst Einzug gehalten
und werden auch in der Industrie zur Simulation und Visualisierung verwendet. Der Vorteil gegenüber Displays wie einem Monitor ist, dass das gesamte Blickfeld des Benutzers abgedeckt wird, und er sich somit räumlich in der
virtuellen Realität befindet, anstatt sie wie in einem Terrarium zu betrachten.
Meist sind immersive Displays – wie zum Beispiel eine CAVE – räumlich gebunden und nicht ohne weiteres zu transportieren. Doch kann eigentlich jeder
beliebige Raum ein immersives Display sein. Radiometrische Kompensation
ermöglicht die Projektion auf nahezu beliebige Oberflächen. Insbesondere für
Architekten, die einen Raum verändern möchten, scheint es sinnvoller sie Planung und Entwurf direkt vor Ort machen zu lassen, anstatt in einer CAVE,
oder gar mit einem CAD-Programm vor dem Monitor. Sie können direkt in
der realen Umgebung gestalten und manipulieren und bekommen die reale
Umgebung, um ihren Entwurf erweitert, unmittelbar zu Gesicht.
Diese direkte Form der Gestaltung benötigt eine direkte Interaktionsmöglichkeit. Klassische desktopbasierte Eingabegeräte, wie Maus und Tastatur, sind
hier sicher nicht hinreichend. Zum einen möchte der Benutzer die Möglichkeit
haben, sich frei zu bewegen ohne an einen Schreibtisch gebunden zu sein. Zum
anderen ist jede Abbildung der zwei Freiheitsgrade der Maus auf eine dreidimensionale Position nicht völlig intuitiv und direkt. In der Virtuellen Realität
(VR) gibt es zahlreiche Eingabegeräte, welche nicht an einen Schreibtisch gebunden sind und sechs oder mehr Freiheitsgrade besitzen. Diese lassen sich
grob unterteilen in Geräte, welche die, mit Sensoren ausgestattete, Tasten und
1
1 Einleitung
Abbildung 1.1: Spatial Augmented Reality in Architecture (DFG-Projekt)
bewegliche Bedienelemente haben und solche, deren Position und Orientierung im Raum gemessen wird. Natürlich gibt es auch Geräte, welche beide
Eigenschaften besitzen. Das Ermitteln von Position und Orientierung eines solchen Gerätes nennt sich Tracking und wird optisch mit Hilfe von Kameras oder
elektromagnetisch durchgeführt. Ein verbreitetes Gerät der letzen Gattung ist
der S TYLUS – eine Art Stift der elektomagnetisch getrackt wird. Mit ihm ist es
möglich, sehr intuitiv auf einen Punkt im Raum zu zeigen. Das Äquivalent zu
dieser Metapher in der realen Welt ist ein Laserpointer.
Laserpointer sind bereits bekannt als intuitive, direkte und schnelle Eingabegeräte auf Projektionsflächen – zum Beispiel in einer Konferenz oder einer Vorlesung. Diese Arbeit setzt sich damit auseinander, einen Laserpointer als Eingabegerät für einen gewöhnlichen Raum der als immersives Display dient zu
nutzen. Das Ziel ist dabei, den Laserpunkt, der von dem Laserpointer in der
Umgebung erzeugt wird, zu lokalisieren.
Ein computergesteuertes Kamerasystem, das sich im Wesentlichen aus einer
durch Motoren schwenk- und neigbaren Detailkamera (Pan-Tilt-Zoom Kamera)
und einer Kontextkamera, die mit einer Fischaugenlinse ausgestattet ist, zusammensetzt, dient dabei zur Lokalisation und Verfolgung des Laserpunktes –
dem sogenannten Laserpointertracking.
2
1 Einleitung
1.2 Vorschau der Ergebnisse
Vorgestellt wird in dieser Arbeit ein computergesteuertes hybrides Kamerasystem, das es ermöglicht, einen Laserpunkt in seiner Umgebung zu lokalisieren.
Eine schwenk- und neigbare Detailkamera verfolgt den Laserpunkt. Bei Verlust
gibt die Kontextkamera eine grobe Abschätzung wo sich der Punkt befindet,
sodass die Detailkamera das Tracken fortsetzen kann. Somit kann ein Laser als
Eingabegerät in realen Umgebungen verwendet werden. Es werden verschiedene Möglichkeiten der Kalibrierung vorgestellt und miteinander verglichen.
Ausserdem wird gezeigt, wie das Kamerasystem Szenenakquise ermöglicht.
Es ist in der Lage, mit Hilfe eines Lasermoduls, die umgebene Geometrie und,
mit der Detailkamera, deren Photometrie – also die Textur – zu erfassen.
1.3 Kapitelübersicht
Diese Arbeit ist in insgesamt sieben Kapitel gegliedert. Das erste Kapitel ist
wird hiermit abgeschlossen und präsentierte die Motivation der Arbeit. Im folgenden Kapitel 2 werden mit dieser Arbeit verwandte Arbeiten zusammengefasst. Sowohl über Laserpointer-Tracking und -Interaktion, als auch über den
Einsatz von PTZ-Kameras gibt es bereits einige Arbeiten, welche als Grundlage
für diese dienten. Kapitel 3 stellt das Setup inklusive des entwickelten Kamerasystems vor. Es wird erläutert, wie es aufgebaut ist und welche Kommunikation notwendig ist um es zu betreiben. Um das Kamerasystem sinnvoll nutzen
zu können muss es kalibriert werden. Kapitel 4 widmet sich der Kalibrierung
des Systems. Zunächst werden die statischen Parameter des Kamerasystems
betrachtet und Verfahren zu deren Bestimmung erläutert. Anschließend werden verschiedene Möglichkeiten der Kalibrierung des gesamten Systems in einer realen Umgebung beschrieben. Abgeschlossen wird das Kapitel durch eine Evaluation der verschiedenen Kalibrierungsverfahren. Kapitel 5 beschreibt
Laserpointer-Tracking als Grund und Ziel der vorhergehenden Kapitel. Es wird
gezeigt, wie nach der Kalibrierung ein Laserpunkt lokalisiert, verfolgt und bei
Verlust wiedergefunden wird. Anschließend wird in Kapitel 6 gezeigt, wie das
3
1 Einleitung
Kamerasystem Szenenakquise ermöglicht. Sowohl die Geometrie, als auch die
Photometrie der realen Umgebung kann erfasst und als texturiertes Geometriemodell gespeichert werden. Ein adaptiver Algorithmus, welcher Überabtastung der Geometrie verhindert, wird vorgestellt. Außerdem werden zwei
Verfahren der Photometrieakquise vorgestellt – zum einen eine hochauflösende, zum anderen eine geringer aufgelöste Echtzeittextur. Kapitel 7 schließt die
Arbeit ab und fasst die wichtigsten Ergebnisse zusammen. Ausserdem werden
Ideen für zukünftige Arbeit und Verbesserungen des bestehenden Systems erläutert.
4
2 Verwandte Arbeiten
Dieses Kapitel fasst einige Arbeiten kurz zusammen, die mit dieser Arbeit verwandt sind. Zunächst werden bisherige Lösungen zur Laserpointer Interaktion vorgestellt. Anschließend werden verschiedene Arbeiten vorgestellt, die
PTZ-Kameras verwenden. Abschließend wird diese Arbeit mit den vorgestellten Arbeiten verglichen und herausgestellt, was sie von ihnen abhebt.
2.1 Laserpointer-Interaktion
Laserpointer Interaktion ist ein weit erforschtes Gebiet. Ein Laserpointer dient
als direktes Eingabegerät mit der Metapher, auf eine gewünschte Stelle zu zeigen. Im Gegensatz zu desktopgebundenen Eingabegeräten, wie Maus und Tastaur, ermöglicht der Laserpointer direkte Interaktion über größere Distanzen,
wie zum Beispiel mit einer Projektionsleinwand.
Das grundlegende Prinzip ist stets das gleiche. Im ersten Schritt wird mit Hilfe
einer Kamera ein Laserpunkt lokalisiert. Das Ermitteln der Position nennt man
Tracking. Der zweite grundlegende Schritt ist, die gewonnenen Positionsdaten
in Interaktionstechniken zu verarbeiten.
K IRSTEIN und M UELLER [1] stellten ein System vor, bei dem eine Kamera eine Projektionsfläche filmt und auf dieser einen Laserpunkt erkennt und lokalisiert. Ist das Kamera-Projektor-System kalibriert, so lässt sich die Position
des Laserpunktes aus dem Kamerabild ins Koordinatensystem des Projektors
transformieren und als Cursorposition verwenden. Es hat sich herrausgestellt,
dass eine einfache Abbildung des Zustandes des Laserpointers (an/aus) auf
die Mousetaste nicht hinreichend ist. O LSEN und N IELSEN [2] entwickelten
5
2 Verwandte Arbeiten
weiterführende Zustände, wie beispielsweise das Stillhalten über einen gewissen Zeitraum (DWELL) und demonstrierten, wie mit Hilfe dieser effektive Selektion in Listen und Auswahlmenüs, sowie Eingabe von Zeichen als GraffitiGesten bewerkstelligt werden kann.
Bei der Gestaltung solcher Interaktionskonzepte muss stets auf den Menschen
und dessen Fähigkeiten und Einschränkungen Rücksicht genommen werden.
P ECK [3] führte eine Benutzerstudie durch, um an geeignete Schwellwerte zu
gelangen, wie lange sich der Laserpunkt in einem wie kleinen Toleranzbereich
befinden muss, sodass man von einer bewussten Entscheidung des Benutzers
ausgehen kann. Diese Parameter sind unter anderem abhängig von der Distanz
zum Display. M YERS u.a. [4] haben ebenfalls mit Hilfe einer Evaluation neben
Parametern für die sinnvolle Gestaltung eines Laserpointer Interaktions Systems – wie zum Beispiel Toleranzbereiche, die das Zittern der menschlichen
Hand berücksichtigen – auch die Form des Laserpointers berücksichtigt und
mit verschiedenen Griffen ausgestattete Laserpointer gegeneinander getestet.
Das Zittern der menschlichen Hand, wie auch die Latenz jeder Kamera führen zu Inkonsistenz zwischen dem Laserpunkt, den das Auge sieht und dem
dargestellten Cursor. Um dem Benutzer diese Irritation zu ersparen gibt es die
Möglichkeit, einen Infrarot-Laser zu verwenden, dessen Wellenlänge für das
menschliche Auge nicht sichbar ist. C HENG und P ULO [5] haben ein solches
System vorgestellt. Das Prinzip bleibt das selbe, nur dass der Benutzer den Laserpunkt nicht sehen kann während eine Infrarot-Kamera ihn erfasst. In einer
Evaluation haben C AVENS u.a. [6] einen Laserpointer mit einer für den Menschen sichtbaren Wellenlänge gegen einen Infrarot-Laserpointer in zwei einfachen Tasks getestet und herausgefunden, dass der sichtbare Laserpointer dem
Infrarot-Laserpointer signifikant überlegen ist – trotz des Problems der Inkonsistenz.
Wie Laserpointer-Interaktion auch auf großen zusammengesetzten Displays
funktionieren kann, zeigten A HLBORN u.a. [7]. Dabei werden mehrere Kameras verwendet die entsprechend kalibriert werden müssen. Auch das parallele,
kollaborative Arbeiten mehrerer Benutzer an einem Display ist möglich. Dabei
werden die Laserpunkte diskriminiert durch verschiedene Farben, oder mit
6
2 Verwandte Arbeiten
dem System synchronisierte Blinkmuster [8][9]. Auch der Weiterentwicklung
des Laserpointers widmen sich einige Arbeiten. So entwickelten O H und S TU ERZLINGER
[9] einen computer controlled laser pointer, dessen Laser vom Com-
puter gesteuert werden kann, um die zuvor genannten Blinkmuster für Mehrbenutzeranwendungen erzeugen zu können. Desweiteren verfügt dieser, wie
auch der von B I [10] vorgestellte Laserpointer, über zwei Knöpfe, die die Funktion der Maustasten haben. Diese erübrigen weiterführende Zustände, um ein
Klicken zu simulieren, da ein neuer, diskreter Freiheitsgrad hinzugefügt wurde. Um an weitere kontinuierliche Freiheitsgrade zu gelangen, entwickelten
M ATVEYEV und G ÖBEL [11] zunächst einen Laserpointer, dessen Laserstrahl
mit Hilfe einer Optik in zwei Strahlen aufgeteilt wird. Somit lassen sich neben
der zweidimensionalen Position zusätzlich der Abstand zwischen Laserpointer und Oberfläche, sowie die Rotation um die Blickachse (Roll) bestimmen.
Noch im selben Jahr veröffentlichten sie eine Weiterentwicklung, bei welcher
der Laserstrahl in drei einzelne Strahlen unterteilt wird [12]. Zwei der Strahlen werden – wie gehabt – verwendet, um vier Freiheitsgrade zu erlangen. Ihr
Divergenzwinkel ist konstant, während der des dritten Strahles mechanisch
variierbar ist. Diese Varianz wird als Ersatz für zwei Maustasten verwendet,
wobei ein erhöhen des Winkels auf den Tastendruck der einen Taste abgebildet
wird und ein Verringern auf die andere.
Allen vorgestellten Arbeiten ist gemein, dass sie von einem planaren Display,
wie einer Projektionsleinwand in einem Konferenzraum, ausgehen. In der Virtuellen und auch der Erweiterten Realität sind jedoch nicht planare, immersive
Displays, wie eine CAVE [13] oder ein gewöhnlicher Raum [14], gebräuchlich.
V OIDA u.a. [15] haben in einer Wizard of Oz-Studie Probanden die Aufgabe gestellt, mit mehreren im Raum verteilten Displays zu interagieren. Dabei wurde
den Probanden freigestellt, wie sie dies tun (verbal, mit Händen und Füßen
...). Angeblich würde ein Programmierer die vom Probanden definierte Interaktionstechnik implementieren. Obwohl die Verwendung eines Laserpointes
nicht vorgeschlagen wurde, entschieden sich zwei Probanden, den Laserpointer zu verwenden, den der Erklärende während der Instruktion verwendete.
In diesem Fall wurde die Laserpointer Interaktion – wie alle anderen Interaktionstechniken auch – von einem Wizard of Oz, also einem Menschen umgesetzt.
7
2 Verwandte Arbeiten
Diese Arbeit stellt ein System vor, das Laserpointer-Tracking in realen Umgebungen ermöglicht. Der Interaktionsbereich ist nicht auf eine planare Fläche –
wie eine Leinwand – beschränkt, sondern kann geometrisch komplex und den
Benutzer umgebend sein. Das System ist universell einsetzbar und deckt als
Spezialfall auch Laserpointer-Tracking auf einer planaren Leinwand ab. Auch
der Einsatz in immersiven VR-Displays, wie der CAVE, oder dem Dome ist
denkbar.
2.2 Einsatz von Pan-Tilt-Zoom Kameras
Ihren Ursprung haben pan-tilt-zoom Kameras in der Videoüberwachung. Sie
werden dort eingesetzt, um an öffentlichen Plätzen oder in Gebäuden Personen zu verfolgen. Ursprünglich war dazu ein Mensch notwendig, der die
Kamera steuert. Heutzutage lassen sich Menschen jedoch computergesteuert,
automatisch tracken. Bereits 1995 stellte G OODRIDGE ein PTZ-Kamera System
vor, welches in der Lage ist, einen Menschen zu tracken [16]. Die Erkennung
basiert dabei auf der Generierung von Differenzbildern. Um mehrere Objekte
parallel tracken zu können, verwenden U KITA und M ATSUYAMA [17] mehrere
PTZ-Kameras. So lässt sich, zusätzlich durch Triangulierung, die dreidimensionale Position der beobachteten Objekte, oder Menschen bestimmen.
Ein hybrides System, bestehend aus einer PTZ-Kamera und einer zweiten Kamera, mit einem großen Öffnungswinkel, wurde von Z HOU u.a. [18] vorgestellt. Dabei herrscht eine Master-Slave-Beziehung zwischen den beiden Kameras. Die statische Kamera mit großem Blickfeld agiert als Master und befiehlt der PTZ-Kamera, interessante Bereiche in höherer Auflösung zu erfassen.
Somit soll dieses Überwachungssystem detailiert biometrische Informationen
der beobachteten Personen offenbaren, die allein durch die statische MasterKamera nicht zu erfassen sind. Um große Areale, wie etwa eine Bahnhofshalle, zu überwachen sind wesentlich mehr Kameras notwendig. Q URESHI und
T ERZOPOULOS [19] stellen ein System vor, dass eine Vielzahl von Kameras integriert. Sowohl PTZ-Kameras, als auch Fischaugenkameras überwachen da-
8
2 Verwandte Arbeiten
bei eine Computergrafik-Simulation einer Bahnhofshalle und tracken einzelne
Personen.
Neben dem Einsatz in der Videoüberwachungstechnik spielen PTZ-Kameras
eine Rolle in kooperativen Videokonferenzen. Befinden sich in einem Raum
mehrere Personen, so ist auf der Remoteseite oft nicht klar, wer auf der anderen
Seite gerade spricht. Y OSHIMI und P INGALI [20] verwenden mehrere Kameras
und Mikrofone, um den aktuellen Sprecher zu lokalisieren. Die PTZ-Kamera
dient in diesem Fall dazu, den Sprecher in einer Nahaufnahme zu zeigen. Mit
einem ähnlichen System zeigen S TRUBBE und L EE [21], wie der Sprecher getrackt werden kann, sodass dies für die menschliche Wahrnehmung angenehm
ist. Sie sprechen dabei von einem automatic cameraman. Liao et al. [22] erweitern
das Kamerabild mehrerer PTZ-Kameras in einer Videokonferenzsituation um
Interaktionsmöglichkeiten. Sie verwenden sogenannte FlySPEC [23] Kamerasysteme, welche hybride Kamerasysteme sind, die sich aus einer PTZ-Kamera
und einer Kontextkamera zusammensetzen. Die Interaktion sieht zum einen
vor, die PTZ-Kameras zu steuern, erlaubt aber auch die Interaktion mit realen
Objekten im Kamerabild. So ist es zum Beispiel möglich, eine Präsentation im
Kamerabild von einem Computer auf eine Projektionsleinwand zu ziehen, was
dazu führt, dass diese dort projiziert wird.
Es gibt zahlreiche weitere Arbeiten zu Videoüberwachung und Videokonferenzsystemen, bei denen PTZ-Kameras Menschen oder Objekte tracken, die jedoch den Rahmen dieses Kapitels überschreiten würden. Deshalb wurden hier
nur exemplarische Beispiele herausgegriffen.
PTZ-Kameras werden jedoch nicht nur zum Tracken verwendet, sondern finden auch Einsatz in anderen Gebieten. Chen u.a. [24] verwenden eine PTZKamera, um ein Projektorarray zu kalibrieren. Die Kamera muss dazu nicht
kalibriert sein, da das Kalibrierungsverfahren nur relative Bezüge zwischen
einzelnen Projektoren berücksichtigt – keine absoluten. P INHANEZ u.a. [25]
verbinden eine PTZ-Kamera mit einem ebenfalls schwenk- und neigbaren Projektor, um einen räumlich nicht gebundenen Touchscreen zu erzeugen. Dabei
wird die PTZ-Kamera verwendet, um Handbewegungen zu erkennen. Durch
9
2 Verwandte Arbeiten
direktes Berühren der Oberfläche mit der Hand kann mit dem projizierten
Touchscreen interagiert und es bewegt werden.
Da PTZ-Kameras – wenn auch nicht zeitparallel – ein sehr großes Frustum besitzen, bietet es sich an, dies zu nutzen um Panoramabilder zu erzeugen. H EIK KILÄ
und P IETIKÄINEN [26] machen sich dies zu Nutzen und stellen ein Ver-
fahren vor, das es ermöglicht, aus vielen einzelnen Bildern einer PTZ-Kamera,
ein konsistentes Mosaik zu generieren. Dabei werden Korrespendenzen von
Features in den einzelnen Bildern verwendet um sie korrekt zu einem großen
Bild zusammen zu fügen. Ein solches Mosaik erlaubt es einem, selbst wenn
es einen 360◦ × 180◦ -Rundumblick ermöglicht, nur die Betrachtung von einem
Standpunkt aus – dem der Aufnahme. Um den Standpunkt des Betrachters ändern zu können benötigt man Informationen über die Geometrie der Szene.
B AHMUTOV u.a. [27] verwenden eine manuell schwenk- und neigbare Kame-
ra, in Verbindung mit einem Lasermodul, zur Akquise von Räumen innerhalb
eines Gebäudes. Das Lasermodul ist mit einem Beugungsgitter ausgestattet
und erzeugt dabei ein Feld von Laserpunkten auf den Oberflächen. Ein Benutzer schwenkt und neigt die Kamera, deren Orientierung mit Hilfe zweier
Sensoren gemessen wird, manuell. Anhand der Laserpunkte im Kamerabild
lassen Tiefenwerte berechnen die, zusammen mit der bekannten Orientierung
der Kamera, Rückschluss auf dreidimensionale Punkte der Geometrie liefern.
Der Benutzer kann bestimmen, welche Bereiche er mit einer hohen Auflösung
abtasten will und welche durch ein einfaches Viereck zu beschreiben sind. Dieses Verfahren verhindert die Überabtastung planarer Oberflächen. Das Resultat
nennen sie depth enhanced panorama (DEP) und ist ein texturiertes Geometriemodell der Szene. In einer weiteren Arbeit [28] erweitern sie das Verfahren auf
gesamte Gebäude, die aus mehreren DEPs zusammengesetzt werden.
Das in dieser Arbeit präsentierte System verbindet ein hybrides Kamerasystem, wie es zum Tracking verwendet wird, mit einem Gerät zur Akquise der
umgebenen Szene. Die Szenenakquise funktioniert vollautomatisch und bedarf keiner manuellen Steuerung. Ein adaptives Verfahren verringert die Überabtastung planarer Oberflächen, während hochfrequente Geometrie erhalten
bleibt.
10
3 Setup
Dieses Kapitel beschreibt das Setup, auf dem die gesamte Arbeit beruht. Zunächst werden die Anforderungen an das zu entwickelnde Kamerasystem definiert. Anschließend wird ein daraus resultierender Entwurf, und der Prototyp, der in dieser Arbeit verwendet wurde, vorgestellt. Es wird erläutert, aus
welchen Komponenten dieser besteht und wie diese verbunden werden. Abschließend wir gezeigt, welche Daten sowohl innerhalb des Systems, als auch
zwischen System und Computer transferiert werden müssen und wie das realisiert wird.
3.1 Anforderungen
Gesucht ist ein Kamerasystem, das den Lichtpunkt eines Laserpointers in seiner gesamten Umgebung finden, lokalisieren und verfolgen kann. Eine handelsübliche Kamera bietet diese Möglichkeit nicht, da sie ein begrenztes Frustum besitzt und somit den Laserpunkt verliert, sobald dieser sich ausserhalb
des Frustums befindet. Es gibt sogenannte Fischaugen-Objektive, die zu einem sehr großen Frustum mit einem Öffnungswinkel von mehr als 180◦ , führen. Eine solche Kamera ist geeignet, die gesamte Umgebung, mit Ausnahme
des Bodens, zu erfassen. Jedoch ist die Auflösung herkömmlicher Kameras
nicht ausreichend groß, um mit einem Fischaugen-Objektiv zu einer hinreichenden räumlichen Auflösung für Laserpointer-Tracking zu gelangen. Eine
andere Möglichkeit besteht darin, eine Kamera motorgestützt zu bewegen. Sogenannte pan-tilt-zoom (PTZ) Kameras können immer nur einen definierten Teil
ihrer Umgebung in einer wählbaren Auflösung erfassen. Sie sind gut geeignet, um einen Laserpunkt mit einer großen Genauigkeit zu lokalisieren, haben
11
3 Setup
aber den Nachteil, dass sie, sobald sie den Laserpunkt verloren haben – zum
Beispiel weil er abgesetzt und an anderer Stelle wieder eingeschaltet wurde –
aufwändig nach ihm suchen müssen.
Sinnvoll ist also ein hybrides Kamerasystem, das eine PTZ-Kamera mit einer
Fischaugen-Kamera verbindet. Die PTZ-Kamera dient als Detailkamera und lokalisiert den Laserpunkt mit einer hohen Genauigkeit, während die FischaugenKamera als Kontextkamera fungiert, die den Laserpunkt grob lokalisiert, wenn
die Detailkamera ihn verloren hat.
3.2 Systemaufbau
Das Kamerasystem setzt sich im Wesentlichen zusammen aus der schwenkund neigbaren Detailkamera und der Kontextkamera. Um das Schwenken und
Neigen zu ermöglichen, werden zwei Rotationsachsen von je einem Schrittmotor angetrieben. Desweiteren befindet sich zur automatischen Kalibrierung auf
der Detailkamera ein Lasermodul. Es schwenkt und neigt mit der Detailkamera und wird zur Tiefenmessung verwendet. Das Lasermodul wird – wie auch
die Schrittmotoren – von Microcontrollern gesteuert. Die Kontextkamera, die
senkrecht nach oben orientiert ist, befindet sich oberhalb der Detailkamera, um
Verdeckungen zu vermeiden. Aus diesem Grunde dreht sich die Kontextkamera bei Rotation der Detailkamera um die senkrechte Achse mit. Um das System
zu steuern, ist es mit einem Computer verbunden.
3.3 Prototyp
Für diese Arbeit wurde ein Prototyp des Kamerasystems entwickelt. Dieser
wurde von Ferry Häntsch konstruiert, der ebenfalls die Microcontroller programmiert hat.
Dieser Prototyp (vgl. Abbildung 3.1) besteht aus folgenden Komponenten:
Detailkamera SANTEC VTC-622P
12
3 Setup
Lasermodul
Kontextkamera
Detailkamera
Schrittmotor
Abbildung 3.1: Foto des Prototypen
• Auflösung 470TVL, Videonorm PAL, 720 ∗ 576 Pixel
• Integriertes Motor-Zoom Objektiv
• Ansteuerung über RS-232
• Brennweite 3, 9 − 85, 8mm, 8× digital
Kontextkamera PAL-CCD Kamera mit Fischaugen-Linse
• Auflösung 470TVL, Videonorm PAL, 720 ∗ 576 Pixel
• Brennweite 2, 1mm
Schrittmotoren Bipolare Schrittmotoren
• 16-fach Microstepping
• Winkel 1,8◦ (200 Schritte/Umdrehung)
Lasermodul LDM650-100
• 80mW
• 650 − 658nm Wellenlänge (rot)
Microcontroller auf Hauptplatine Atmel ATMega32
Schrittmotorcontroller Trinamic TMC222
Neben dem Kamerasystem findet ein Computer Verwendung, um das Kamerasystem zu steuern. Außerdem wird im Kapitel 5 ein Laserpointer verwendet,
13
3 Setup
dessen Laserpunkt getrackt wird. Diese Komponenten sind im verwendeten
Setup folgende:
Computer hp workstation xw4000
• 2 TV Karten (Pinnacle PCTV Stereo PAL Capture Device)
R
4 CPU 2,40Ghz
• Pentium
• 1,0GB RAM
Laserpointer
• 35mW
• 532nm Wellenlänge (grün)
Detailierte Schaltpläne der Hauptplatine sowie der Schrittmotorcontroller sind
in Anhang B zu finden.
3.4 Datenübertragung und Kommunikation
Abbildung 3.2 zeigt in einem Blockschaltbild, wie die einzelnen Komponenten zusammenhängen. Sowohl innerhalb des Systems, als auch zwischen System und Computer, werden Daten übertragen. Der Computer (1) bezieht die
Kamerabilder der Kontextkamera (2), sowie der Detailkamera (4). Weiterhin
kommuniziert er sowohl mit der Detailkamera, als auch mit der Hauptplatine des Kamerasystems (3) über die RS-232 Schnittstelle. Innerhalb des Systems steuert ein Microcontroller auf der Hauptplatine das Lasermodul (5) und
schickt über die I2 C Schnittstelle den beiden Schrittmotorcontrollern (6, 7) Signale. Diese steueren wiederum die beiden Schrittmotoren (8, 9).
3.4.1 Kommunikation zwischen Computer und System
Der Computer spielt die Rolle des Masters. Er ist unmittelbar verbunden mit
der Kontextkamera, der Hauptplatine, sowie der Detailkamera. Diese sind jeweils Slaves, das heisst sie handeln und kommunizieren nur, wenn der Com-
14
3 Setup
(8)
(5)
(9)
(6)
(2)
(7)
(3)
(4)
(1)
Abbildung 3.2: Blockschaltbild: Computer (1); Kontextkamera (2); Hauptplatine (3); Detailkamera (4); Lasermodul (5); Schrittmotorcontroller (6, 7); Schrittmotoren (8, 9).
puter sie dazu auffordert. Er bezieht die Kamerabilder der beiden Kameras,
die als PAL Composite Signal ankommen. Digitalisiert werden diese mit Hilfe
zweier eingebauter TV-Karten. Die resultierenden Bilder haben eine Auflösung
von 720∗576 Pixeln und eine Farbtiefe von 24Bit (3∗8Bit RGB).
Darüber hinaus wird die Detailkamera über die RS-232 Schnittstelle (Serieller
COM-Port) gesteuert. So lassen sich beispielsweise Zoom oder Fokus verändern. Die Kommunikation ist symmetrisch, das heisst die Kamera gibt nach
erfolgreicher Ausführung eines Befehls ein Feedback zur Bestätigung. Desweiteren ist es so möglich, Informationen über den aktuellen Zustand – zum
Beispiel die Zoomstufe – der Kamera auszulesen. Eine weitere RS-232 Schnittstelle verbindet den Microcontroller auf der Hauptplatine mit dem Computer.
Hier findet ebenfalls eine symmetrische Kommunikation statt. Befehle an den
Microcontroller steuern mittelbar, über die beiden Schrittmotorcontroller, die
Schrittmotoren und das Lasermodul, oder fordern Informationen über die aktuelle Position der Schrittmotoren an.
15
3 Setup
3.4.2 Kommunikation innerhalb des Systems
Innerhalb des Kamerasystems agiert der Microcontroller auf der Hauptplatine als Master und das Lasermodul, sowie die beiden Schrittmotorcontroller
als Slave. Die Triggerleitung des Lasermoduls ist an einen Ausgangspin der
Hauptplatine angeschlossen, was diesem ermöglicht, ihn ein- und auszuschalten. Die Kommunikation mit den beiden Schrittmotorcontrollern erfolgt über
die I2 C-Schnittstelle (Inter-Integrated Circuit). Diese ist ein serieller Bus, der dafür entwickelt wurde, Geräte an eine Hauptplatine anzuschließen.
Die Schrittmotorcontroller sind wiederum intelligent und geben nicht nur die
Schrittposition die sie bekommen an die Schrittmotoren weiter. Sie sorgen sich
selbstständig um eine flüssige Beschleunigung bei Beginn und Ende jeder Bewegung und halten zu jeder Zeit die aktuelle Schrittposition ihres Schrittmotors.
3.4.3 Protokolle
Die beiden RS-232 Schnittstellen kommunizieren je über ein definiertes Protokoll. Das Protokoll zwischen dem Computer und dem Microcontroller ist selbst
entwickelt und sehr einfach. Dabei wird immer zunächst vom Computer an
den Microcontroller ein String mit einem Befehl geschickt. Der Microcontroller
bestätigt bei Gültigkeit und erfolgreichem Ausführen des Befehls anschließend
dem Computer die Ausführung.
Kommunikation zwischen Computer und Microcontroller
Die Schrittposition wird absolut angegeben und ist mit zwei Bytes je Motor
codiert. UBx und LBx sind das obere und untere Byte für den Motor, der die xAchse antreibt – UBy und LBy geben dem entsprechend die Schrittposition für
die y-Achse an. Bekommt das Kamerasystem den Befehl, die Schrittmotoren
zu rotieren, so wird dies unverzüglich eingeleitet. Da die Schrittmotoren eine
begrenzte Geschwindigkeit besitzen, dauert es etwas, bis sie ihre Zielposition
16
3 Setup
Befehl
Byte1
Byte2
Byte3
Byte4
Byte5
’s’
’p’
’i’
’o’
’r’
’x’
UBx
LBx
UBy
LBy
’p’
’k’
UBx
LBx
UBy
LBy
Computer an Microcontroller
Schrittposition der Motoren setzen
Anfordern der aktuellen Position
Lasermodul einschalten
Lasermodul ausschalten
Rückstellung
Abmelden
Microcontroller an Computer
Schrittposition der Motoren
Bestätigung
Tabelle 3.1: Protokoll zwischen Computer und Kamerasystem
erreichen. Um auch, während die Schrittmotoren in Bewegung sind die aktuellen Kamerabilder verarbeiten zu können gibt es die Möglichkeit, die aktuelle
Schrittposition beider Motoren abzufragen. Auf Anfrage des Computers liefert
das System die Position – wieder codiert durch je zwei Bytes codiert – zurück.
Die Rückstellung dient dazu, die Motoren bei Beginn zu kalibrieren. Sie werden intern über relative Schritte gesteuert. Um mit absoluten Positionen arbeiten zu können gibt es je Achse einen Sensor, der eine Nullstellung der Motoren
definiert. Auf Grund der Mechanik ist es möglich, dass die Schrittmotoren nach
längerem Gebrauch einige Schritte verlieren. Ihre physikalische Schrittstellung
variiert also von jener die der Computer annimmt. In diesem Fall kann die
Rückstellung verwendet werden um den Fehler zu beheben. Da durch die vertikale Achse die Kabel für den oberen Schrittmotor, die Detailkamera und das
Lasermodul verlaufen muss dafür Sorge getragen werden, dass sich diese Kabel im Laufe der Zeit nicht aufdrehen was sie beschädigen kann. Dazu dient
die Abmeldung, welche diese Achse wieder auf ihre Nullstellung zurücksetzt.
17
3 Setup
Kommnikation zwischen Detailkamera und Computer
Die Kommunikation mit der Detailkamera erfolgt über ein Protokoll der Firma
SANTEC, das nicht öffentlich ist und auf das somit hier nicht detailliert eingegangen werden kann. Die Kommunikation ist symmetrisch sodass es sowohl
möglich ist, den Zustand der Kamera auszulesen als auch ihn zu verändern.
Jeder Befehl an die Kamera wird bestätigt.
Das Protokoll sieht eine Vielzahl von Befehlen vor. Für diese Arbeit wurde nur
ein Bruchteil davon verwendet. Was diese bezwecken wird in Tabelle dargestellt.
Befehl
Beschreibung
ZOOM_IN
ZOOM_OUT
ZOOM_READ
FOCUS_AUTO
FOCUS_MANUAL
FOCUS_NEAR
FOCUS_FAR
STOP
EXPOSURE_AUTO
EXPOSURE_MANUAL
SET_SHUTTER
SET_IRIS
OSD_OFF
zoomt rein bis STOP oder maximale Zoomstufe erreicht ist
zoomt raus bis STOP oder minimale Zoomstufe erreicht ist
liest die aktuelle Zoomstufe aus
Autofokus
manueller Fokus
bewegt Fokusebene zur Kamera
bewegt Fokusebene von der Kamera weg
stoppt Zoom und Fokus
automatische Belichtung
manuelle Belichtung
setzt die Shutterzeit
setzt die Iris
schaltet das On-Screen-Display aus
Tabelle 3.2: Verwendete Kommunikation mit der Detailkamera
3.5 Zusammenfassung
Dieses Kapitel hat das Setup vorgestellt, auf welchem diese Arbeit basiert. Es
liefert die Grundlage für alle kommenden Kapitel. Gezeigt wurde ein in Echtzeit reagierendes hybrides Kamerasystem, bestehend aus einer schwenk und
18
3 Setup
neigbaren Detailkamera sowie einer Kontextkamera, das frei programmierbar
ist.
Bestandteil dieser Arbeit ist die Implementation und Steuerung dieses Kamerasystems sowie Beteiligung am Entwurf; nicht jedoch die Umsetzung und Konstruktion des Systems. Den Prototypen hat Ferry Häntsch konstruiert.
19
4 Kalibrierung
Dieses Kapitel erläutert zunächst allgemein, was unter Kamerakalibrierung zu
verstehen ist. Anschließend wird die Kalibrierung des Kamerasystems vorgestellt, die sich aus mehreren Schritten zusammensetzt. Anschließend werden
verschiedene Verfahren der Kalibrierung des Kamerasystems in einer realen
Umgebung vorgestellt und im Rahmen einer kleinen Evaluation verglichen.
4.1 Kamerakalibrierung
Unter Kamerakalibrierung versteht man das Ermitteln von Parametern einer
realen Kamera. Diese Parameter beschreiben eine Kamera im Pinhole-Modell
vollständig. Sie lassen sich unterteilen in intrinsische und extrinsische Parameter.
4.1.1 Pinhole-Modell
Das Pinhole-Kameramodell ist in einem kamerabezogenen Koordinatensystem
definiert. Dabei ist der Ursprung das Projektionszentrum und die Blickrichtung z. Ein Objektpunkt P( X, Y, Z )T im Koordinatensystem der Kamera wird
auf einen Bildpunkt p( x, y, z)T abgebildet durch perspektivische Projektion.


 x = X/Z
y = Y/Z


z=1
20
(4.1)
4 Kalibrierung
y
p
Z
P
Y
x
v
X
u
z
Abbildung 4.1: Kamera im Pinhole-Modell
Steht die Kamera nicht im Ursprung des Weltkoordinatensystems und ist auch
nicht entlang der z-Achse ausgerichtet, so muss ein Objektpunkt in Weltkoordinaten zunächst in Kamerakoordinaten transformiert werden.
P′ = RP + t
(4.2)
Mit Hilfe einer Rotationsmatrix R[3,3] und eines Translationsvektors t[3] wird
der Objektpunkt in Weltkoordinaten P in Kamerakoordinaten P′ transformiert.
Anschließend können die Pixelkoordinaten (u, v)T wie folgt berechnet werden.


 x = ( u − u0 ) / f u
y = ( v − v0 ) / f v


z=1
(4.3)
In Matrixschreibweise kann die Abbildung von einem Objektpunkt P( X, Y, Z )T
auf das zugehörige Pixel (u, v)T wie folgt beschrieben werden.
21
4 Kalibrierung





X
1 0 0 0
u

Y
 



 v  = K 0 1 0 0 E
 Z

0 0 1 0
1
1






(4.4)
Dabei ist K die intrinsische Matrix und E die extrinsische Matrix.

fu

K= 0
0

0
u0
fv

v0 
1
0
E=
R
t
0T 1
!
(4.5)
4.1.2 Intrinsische Kalibrierung
Die intrinsische Kamerakalibrierung hat das Ziel, die intrinsischen Parameter
der Kamera zu bestimmen. Diese beschreiben die Optik der Kamera, unabhängig davon, wo sie aufgestellt ist.
• f u die horizontale Brennweite (in Pixeln)
• f v die vertikale Brennweite (in Pixeln)
• u0 die u-Koordinate des optischen Zentrums auf der Bildebene (in Pixeln)
• v0 die v-Koordinate des optischen Zentrums auf der Bildebene (in Pixeln)
Das Pixel p0 (u0 , v0 ) wird principal point genannt.
Um die intrinsischen Kameraparameter zu bestimmen gibt es standardisierte
Verfahren. Als Daten dienen Bilder, die die Kamera aus verschiedenen Perspektiven von einer geometrisch bekannten Szene aufgenommen hat. Nun können Korrespondenzen zwischen diskreten Punkten der bekannten Geometrie
Pi und deren Abbildung im Kamerabild pi ermittelt werden. Anhand dieser
Korrespondenzen werden die intrinsischen Kameraparameter numerisch approximiert.
Reale Kameras arbeiten in der Regel mit Linsen und nicht einem pinhole, wie es
das vorgestellte Kameramodell vorsieht. Aus herstellungstechnischen Grün-
22
4 Kalibrierung
den ist eine Linse meist ungenau, sie führt zu einer Verzerrung des Kamerabildes. Diese Verzerrung setzt sich zusammen aus radialer und tangentialer Verzerrung. In der Implementierung werden jeweils nur die Koeffizienten erster und zweiter Ordnung berücksichtigt. Dies führt zu vier Parametern
(k1 , k2 , p1 , p2 ), wobei k n den Koffizienten der radialen Verzerrung n-ter Ordnung und pn entsprechend den Koeffiziten der tangentialen Verzerrung n-ter
Ordnung darstellt. Diese Parameter werden ebenfalls durch eine Kalibrierung,
wie die zuvor beschriebene, ermittelt. Mit ihnen ist es anschließend möglich,
das Kamerabild zu entzerren, das heisst, die Linsenverzeichnung zu negieren,
sodass das Bild wieder in das pinhole-Modell passt.
4.1.3 Extrinsische Kalibrierung
Die extrinsischen Parameter beschreiben die Position und Orientierung der Kamera in Weltkoordinaten. Sie bestehen aus einer 3 × 3 Rotationsmatrix R, sowie
einem 3 × 1 Translationsvektor t. Diese beschreiben zusammen die Transforma-
tion zwischen Kamerakoordinatensystem und Weltkoordinatensystem.

R00 R01 R02



R =  R10 R11 R12 
R20 R21 R22

t0



t =  t1 
t2
(4.6)
Die Bestimmung der extrinsischen Parameter nennt man pose estimation, also
die Pose der Kamera wird ermittelt. Dazu gibt es verschiedene Verfahren. Allen
ist gemein, dass Korrespondenzen zwischen bekannten Punkten, Pi in Weltkoordinaten und derer Abbildungen pi auf der Bildebene, als Grundlage dienen.
Es gibt Verfahren, bei denen die intrinsischen Parameter (zumindest teilweise)
vorgegeben werden und solche, die keinerlei Informationen darüber vorraussetzen und sie somit mitberechnen.
23
4 Kalibrierung
4.2 Statische Systemkalibrierung
Die statische Kalibrierung des Kamerasystems setzt sich aus mehreren Kalibrierungsschritten zusammen. Sie müssen jedoch – sofern man das System
nicht ändert – nur einmalig durchgeführt werden und sind unabhängig davon,
wo sich das System befindet und wie es orientiert ist.
1. Intrinsische Kalibrierung der Detailkamera
2. Intrinsische Kalibrierung der Kontextkamera
3. Extrinsische Kalibrierung der Detailkamera im Systemkoordinatensystem
4. Extrinsische Kalibrierung der Kontextkamera im Systemkoordinatensystem
5. Extrinsische Kalibrierung des Lasermoduls
4.2.1 Intrinsische Kalibrierung der Detailkamera
Da die Detailkamera über einen optischen Zoom verfügt, sind die intrinschen
Parameter nicht konstant, sondern abhängig von der Zoomstufe. Die Kalibrierung wird für diskrete Zoomstufen durchgeführt und anschließend linear interpoliert.
Zur Kalibrierung wurde das Programm GML C AMERA C ALIBRIERUNG T OOL BOX [32]
verwendet. Es bietet ein übersichtliches grafisches Benutzerinterface
und verwendet die OpenCV[31]-Funktion cvCalibrateCamera. Als Eingabe dienen Bilder, die die Kamera von einem Schachbrettmuster aufgenommen
hat. Das Schachbrett muss in einer Dimension eine ungerade Anzahl von Feldern haben, sodass seine Orientierung eindeutig bestimmbar ist. Als Ausgabe
liefert es sämtliche intrinsischen Parameter – jene des pinhole-Modells, sowie
die Linsenverzeichnung.
In dieser Arbeit wurde die intrinsche Kalibrierung der Detailkamera für 22 diskrete Zoomstufen, mit je 80 Bildern, von einem 5 × 8 Felder großen Schachbrett,
24
4 Kalibrierung
3000
f u [px]
f v [px]
u0 [px]
v0 [px]
2500
s
c
s
c
c
s
c
c
2000
1500
1000
c
s
c
s
c
s
c
s
c
s
c
s
c
s
c
s
c
s
c
s
c
s
c
s
c
s
c
s
c
s
c
s
c
s
c
c
s
s
s
s
500 s s s s s s s s s s s s s s s s s s s s s
c c c c c c c c c c c c c c c c c c c c c cs
0
4400
4500
4600
4700
Zoomstufe
4800
4900
Abbildung 4.2: Intrinsische Parameter in Abhängigkeit der Zoomstufe
dessen quadratische Felder eine Kantenlänge von 3cm besitzen, durchgeführt.
Die ermittelten Parameter des pinhole-Modells sind in Abbildung 4.2 dargestellt.
Wie zu erwarten war verhält sich der principal point p0 (u0 v0 )T relativ konstant, während die Brennweiten f u und f v stetig mit der Zoomstufe steigen.
Abbildung 4.3 zeigt die ermittelten Parameter der Linsenverzeichnung.
Das kalibrierte Intervall der Zoomstufen entspricht nicht dem gesamten der
Detailkamera möglichen Bereich. Bei Zoomstufen, die überhalb des kalibrierten Intervalls liegen, waren die Kalibrierungsergebnisse sehr unzuverlässig.
Deshalb ist im Folgenden der Zoombereich der Kamera definiert als das kalibrierte Intervall.
4.2.2 Intrinsische Kalibrierung der Kontextkamera
Da die Kontextkamera mit einem Fischaugen-Objektiv ausgestattet ist, eignet
sich das eben vorgestellte Verfahren der intrinsischen Kalibrierung nicht. In
25
4 Kalibrierung
2.5
k1
k2
p1
p2
2
1.5
s
c
s
c
c
c
c
c
1
c
c
0.5
c
c
c
c
c
c
c
c
c
c
0 ssc scs ssc ssc ssc scs ssc scs ssc ssc scs ssc ssc
-0.5
-1
c
ssc
sc
sc
sc
cs
sc
s
cs
s
sc
c
c
c
-1.5
-2
-2.5
sc
s
c
4400
4500
4600
4700
Zoomstufe
4800
4900
Abbildung 4.3: Parameter der Linsenzerzeichnung in Abhängigkeit der Zoomstufe
Anbetracht dessen, dass sie im Folgenden ausschließlich Anwendung findet
wo keine große Genauigkeit erforderlich ist, wurde sie gemäß eines einfachen
Kameramodells kalibriert.
In der Anwendung ist interessant, wo sich ein Punkt relativ zur Kamera befindet, der im Kamerabild sichtbar ist: als der Vektor im Kamerakoordinatensystem, der beginnend im Ursprung in Richtung dieses Punktes zeigt. Um dies
zu Ermitteln, wurden auf einer Halbkugel aus transparentem Kunststoff diskrete Polarkoordinaten eingezeichnet. Anschließend wurde die Halbkugel so
über die Fischaugen-Kamera positioniert, dass der Nordpol der Halbkugel sich
senkrecht über dem Mittelpunkt der Kamera befindet. Das so entstandene Kamerabild wurde daraufhin ausgewertet. Für jeden auf der Halbkugel eingezeichneten Punkt lässt sich anhand der Polarkoordinaten ein Vektor berechnen.
Ursprünglich war geplant, anhand der diskreten Stützstellen bilinear in Polarkoordinaten zu interpolieren, um den zugehörigen Vektor für beliebige Pixel
zu ermitteln.
26
4 Kalibrierung
p’(u,v)
v
CC
l γ
p(u,v)
p’(u,v)
δ
ǫ
p(u,v)
Abbildung 4.4: Einfaches Kameramodell der Kontextkamera. Auf der linken
Seite ist ein Laserpunkt an der Pixelposition p’ zu sehen. Die
rechte Abbildung zeigt den zugehörigen dreidimensionalen
Vektor, der in die Richtung des Laserpunktes zeigt.
Die Auswertung des Kamerabildes hat jedoch gezeigt, dass sich der Vektor
einfacher bestimmen lässt.
Der Vektor ~vcc , der im Koordinatensystem der Kontextkamera von ihrem Ursprung in Richtung eines Punktes P′ zeigt, lässt sich anhand der Pixelposition
seiner Abbildung p′ (u, v)T im Kamerabild wie folgt bestimmen (vgl. Abbildung 4.4).
• Der Vektor hat die Länge eins. |~vcc | = 1
• Der Winkel δ zwischen der Projektion des Vektors auf die Bildebene und
dem Vektor ~i = (0 1)T ist gleich dem Winkel γ zwischen p′ − p0 und ~i.
• Der Winkel ǫ zwischen ~vcc und der Normalen der Bildebene ist linear
abhängig von der Länge l des Vektors p′ − p0 . Also ǫ = k · l.
Für die vollständige Beschreibung der Kontextkamera in diesem einfachen Modell reicht also das Pixel p0 das der Abbildung des Nordpols im Kamerabild
entspricht, sowie ein Faktor k, der die Skalierung zwischen der Länge l und
dem Winkel ǫ beschreibt. Diese drei Parameter wurden anhand eines Kamerabildes ermittelt, welches aufgenommen wurde, während sich die Halbkugel
über der Detailkamera befand.
27
4 Kalibrierung
4.2.3 Extrinsische Kalibrierung der Detailkamera im
Systemkoordinatensystem
Da das Kamerasystem in der Lage ist, die Detailkamera zu schwenken und zu
neigen verändert sich die Position des optischen Zentrums der Kamera, sofern
dieses nicht im Schnittpunkt der beiden Rotationsachsen liegt. Zu ermitteln
ist also die Translation des optischen Zentrums der Kamera zum Rotationsursprung des Kamerasystems, der in Weltkoordinaten konstant ist.
Um diese zu erhalten, führt man mehrfach eine extrinsische Kalibrierung der
Detailkamera in Weltkoordinaten durch – bei veränderter Rotation und Neigung. Die auf diese Weise erhaltenen Punkte für die Position des optischen
Zentrums liegen theoretisch auf einer Kugel, deren Zentrum der Rotationsursprung des Systems ist. In der Praxis ist dies auf Grund von Ungenaugigkeiten
nicht ganz der Fall, jedoch eignet sich das Verfahren, um einen Translationsvektor zu approximieren.
Neben der Translation ist natürlich die Rotation zwischen System- und Kamerakoordinatensystem in der Anwendung nachher wichtig. Diese muss jedoch
nicht kalibriert werden, da sie sich durch die Schrittposition der beiden Schrittmotoren ergibt und anhand der beiden Winkel α und β, welche die Rotation der
Schrittmotoren darstellen, errechnen lässt.
4.2.4 Extrinsische Kalibrierung der Kontextkamera im
Systemkoordinatensystem
Die Position der Kontextkamera, und somit der Translationsvektor der Transformation zwischen System- und Kamerakoordinaten, ist im Kamerakoordinatensystem konstant. Er wurde zur Kalibrierung einmalig von Hand vermessen.
Die Rotation ist wiederum abhängig vom Winkel α und lässt sich berechnen.
28
4 Kalibrierung
4.3 Dynamische Systemkalibrierung
Alle bislang vorgestellten Kalibrierungsmethoden sind statisch und müssen
nur einmalig durchgeführt werden. Sie sind unabhängig vom Weltkoordinatensystem, da sie nicht berücksichtigen, wo sich das Kamerasystem in welcher
Orientierung befindet. Man kann also von intrinsischen Parametern des Kamerasystems sprechen – nicht zu verwechseln mit intrinsischen Kameraparametern.
Die dynamische Systemkalibrierung ist die einzige, die durchgeführt werden
muss, wenn man das System an einen neuen Bestimmungsort stellt. Ziel ist es,
zu bestimmen, wo sich das Kamerasystem in seiner neuen Umgebung (in Weltkoordinaten) befindet und wie es orientiert ist. Im folgenden Abschnitt werden zwei grundsätzlich verschiedene Möglichkeiten dieser Kalibrierung vorgestellt. Zum einen die klassische computer vision basierte pose estimation mit
Erweiterungen, zum anderen ein geometriebasiertes Verfahren, in dem das Kamerasystem eigenständig Geometriepunkte der Umgebung abtastet und diese
anschließend auf ein Referenzmodell bezieht.
4.3.1 Computer Vision basierte Techniken
Es gibt verschiedene Computer Vision basierte Verfahren zur extrinsischen Kamerakalibrierung in einer geometrisch bekannten Umgebung. Allen ist gemein,
dass sie mit bekannten Punkten in der Geometrie und deren Abbildung auf der
Bildebene arbeiten. Man benötigt also neben einem Algorithmus Featurepunkte und ein Kameramodell zur pose estimation.
Diese können sein:
Featurepunkte
• natürliche Features (z.B.: Ecken, Kanten)
• synthetische Features (z.B.: Schachbrett)
Kameramodell
29
4 Kalibrierung
• Detailkamera als Pinholekamera
• Kamerasystem als Pinholekamera (virtuelle Bildebene)
Natürliche Features haben den Vorteil, dass sie nativ vorhanden sind. Allerdings ist es oft schwierig, ausreichend natürliche Features in einem Kamerabild zu finden. Je einfacher die Umgebungsgeometrie, desto weniger Kanten
und Ecken gibt es. Außerdem müssen natürliche Features vom Benutzer selektiert werden, da sie nicht automatisch erkannt werden können. Das führt
nicht nur zu einer längeren Kalibrierungsdauer, sondern birgt die Gefahr von
Fehlern und Ungenauigkeiten, da die Features entweder im Kamerabild angeklickt werden, oder mit dem Laserpointer im Raum markiert werden müssen. Die Genauigkeit ist also auch abhängig von der manuellen Feinmotorik
des Benutzers.
Dagegen sind synthetische Features – wie beispielsweise ein Schachbrett – vom
Computer automatisch subpixelgenau erkennbar. Sie bieten eine Vielzahl von
Featurepunkten auf kleinem Raum. Allerdings ist es nicht damit getan, ein
oder mehrere Schachbretter in die Geometrie zu kleben, sondern die Position
und Orientierung jedes Schachbettes muss von Hand ermittelt werden. Nur so
kommt man an die Koordinaten der Featurepunkte in Weltkoordinaten.
Im folgenden werden drei Methoden der pose estimation vorgestellt. Diese
sind:
1. Ein Schachbrett bei statischer Detailkamera
2. Mehrere Schachbretter bei beweglicher Detailkamera
3. Natürliche Featurepunkte bei beweglicher Detailkamera (virtuelle Bildebene)
Pose Estimation bei statischer Detailkamera
Verfahren, bei denen die Orientierung der Detailkamera statisch ist, liefern die
Translation ~tw2cd 1 und Rotation Rw2cd im Koordinatensystem der Detailkame1 w2cd
: Welt- zu Detailkamerakoordinaten-Transformation
30
4 Kalibrierung
ra. Sie stellen also eine Transformation aus dem Weltkoordinatensystem in das
Detailkamerakoordinatensytem dar. Ziel ist es jedoch, die Transformation zwischen System- und Weltkoordinaten zu bekommen.
Also benötigt man die Transformation von Detailkamera in Systemkoordinaten
(~tcd2s und Rcd2s )2 . Daraus lässt sich sich die Transformation aus dem System- ins
Weltkoordinatensystem (~ts2w und Rs2w )3 wie folgt berechnen.
Rs2w = R′w2cd · R′cd2s
(4.7)
ts2w = R′w2cd · tw2cd + tcd2s
(4.8)
Dieses Verfahren ist einfach und schnell, jedoch – wie später in der Evaluation zu sehen sein wird – liefert sie keine genauen Ergebnisse. Die Kalibrierung
liefert zwar für die aktuelle Orientierung der Detailkamera eine gute Genauigkeit, jedoch kommt es zu großen Misregistrierungen sobald diese geändert
wird.
Pose Estimation bei beweglicher Detailkamera
Es liegt die Idee nahe, die pose estimation mehrfach für verschiedene Orientierungen des Kamerasystems durchzuführen. Anschließend werden die verschiedenen Kalibrierungen, die ja jeweils für die Orientierung, in der sie entstanden sind, eine gute Übereinstimmung mit der Realität zeigen, miteinander
verbunden. Dazu wurden zwei Möglichkeiten durchgeführt.
• Arithmetisches Mittel aller Kalibrierungen
• Interpolation zwischen den Kalibrierungen
Mit Hilfe mehrerer, an verschiedenen Stellen der Wand, montierter Schachbrettmuster werden mehrere extrinische Kalibrierungen durchgeführt und als
2 cd2s
3 s2w
: Detailkamera- zu Systemkoordinaten-Transformation
: System- zu Weltkoordinaten-Transformation
31
4 Kalibrierung
je ein sechsdimensionaler Vektor C ( x, y, z, α, β, γ)T abgespeichert. Dabei stellen x, y und z die ermittelte Position da, während α, β und γ die Rotation um
die drei Achsen repräsentieren. Die Darstellung der Rotationsmatrix als Rotationsvektor ist eineindeutig und in der OpenCV[31]-Funktion cvRodrigues
implementiert.
Das arithmetische Mittel aller Kalibrierungen zu nehmen hat für drei Schachbrettmuster keine guten Ergebnisse geliefert. Ob dieses Verfahren bei wesentlich mehr Kalibrierungen zu besseren Ergebnissen führt ist fraglich; sicher ist
jedoch, dass der Aufwand unzumutbar wird.
Die Interpolation zwischen den Kalibrierungen setzt vorraus, dass zu jeder
Kalibrierung die beiden Winkel der Schrittmotoren und damit die Orientierung der Detailkamera in Systemkoordinaten gespeichert werden. Anschließend wird zwischen den diskreten Kalibrierungen bilinear interpoliert, sodass
jeder neuen Orientierung der Kamera eine interpolierte Kalibrierung zugeordnet werden kann.
Virtuelle Bildebene
Um das Problem, dass extrinsische Kalibrierungen, die auf der Kalibrierung in
einer festen Orientierung der Detailkamera beruhen, keine guten Ergebnisse
liefern, zu umgehen, scheint eine globale Kalibrierung sinnvoll zu sein. Dabei
wird eine virtuelle Bildebene eingeführt. Diese liegt im Systemkoordinatensystem und ist unabhängig von Schwenken und Neigen der Detailkamera. Sie ist
definiert durch E : y = 1. Dabei wird der normierte Ortsvektor des Featurepunktes ~e = (ex ey ez )T in Systemkoordinaten mit der Bildebene geschnitten.
Die x- und z-Werte des Schnittpunktes vom Strahl, definiert durch ~v = λ~e mit
der Bildebene E, werden zu den Koordinaten auf der Bildebene (u, v)T .
(u, v)T = (
e x ez T
, )
ey ey
(4.9)
So lässt sich die Pose des gesamten Kamerasystems, mit Hilfe von natürlichen
Featurepunkten, die in der gesamten oberen Hemisphäre liegen können, be-
32
4 Kalibrierung
P(X,Y,Z)
p(u,v)
u
v
Abbildung 4.5: Virtuelle Bildebene
stimmen. Das Problem, dass die ermittelte Pose nur für die Kameraorientierung, in der sie ermittelt wurde, korrekt scheint, kann hier nicht auftreten, da
es keine feste Kameraorientierung gibt.
Ein Pose Estimation Algorithmus liefert in diesem Fall die Pose der virtuellen Kamera, also einer Kamera, deren Ursprung im Ursprung des Systemkoordinatensystems liegt, mit Blickrichtung nach oben (im Systemkoordinatensystem). Die ermittelte Transformation beschreibt also jene zwischen Weltkoordinatensystem und dem um 90◦ rotierten Systemkoordinatensystem.
4.3.2 Geometriebasiertes Verfahren
Eine grundsätzlich verschiedene Möglichkeit der extrinsischen Kalibrierung
wird in diesem Abschnitt vorgestellt. Dabei werden keine Schachbrett-Marker
oder ähnliches benötigt. Mit Hilfe des auf die Detailkamera montierten Lasermoduls werden einzelne Punkte der das Kamerasystem umgebenen Geometrie
erfasst. Diese werden zusammen mit einem Geometriemodell der Umgebung
33
4 Kalibrierung
d
t
v
v
α
fv
Abbildung 4.6: Berechnung der Tiefe durch Triangulierung
,welches als Referenz dient, dazu verwendet, um die Position und Orientierung des Kamerasystems in der Umgebung zu bestimmen.
Die Tiefe einzelner Punkte der Geometrie lassen sich durch die Abbildung des
Laserpunktes im Kamerabild der Detailkamera bestimmen. Zusammen mit der
bekannten Orientierung der Detailkamera und damit auch des Lasermodules
lässt sich so der Punkt bestimmen. Um die Tiefe zu errechnen gibt es zwei
mögliche Vorgehensweisen.
1. Tiefenmessung durch Triangulierung
2. Tiefenmessung durch Interpolation
Verfahren der Tiefenmessung
Mit Hilfe von Triangulierung lässt sich bei bekannten intrinsischen Parametern
der Detailkamera und bekannter Position und Orientierung des Lasermoduls,
relativ zur Detailkamera der Position des Laserpunktes im Kamerabild, eine
Tiefe zuordnen.
d = t · tan α
Die Auflösung der Tiefe
α = π/2 − arctan
∆d
∆v
v − v0
fv
(4.10)
ist abhängig von der Tiefe und der Brennweite der
Kamera f v . Um auf große Distanzen noch eine optimale Auflösung zu bekommen, ist die maximale Brennweite – also die größtmögliche Zoomstufe – zu
34
4 Kalibrierung
wählen. Für diese lassen sich die intrinsischen Parameter allerdings nicht zuverlässig ermitteln (vgl. 4.2.1). Somit ist dieses Verfahren hier nicht praktikabel.
Ohne Kenntnis der intrinsichen Kamerparameter lässt sich eine Tiefenmessung
nur durch Interpolation diskreter, gemessener Tiefen realisieren. Dabei wird
der Abbildungspunkt des Lasers, und die dazugehörige Tiefe für diskrete Abstände gespeichert und anschließend durch lineare Interpolation jeder neuen
Abbildung des Laserpunktes im Kamerabild eine Tiefe zugeordnet.
Kalibrierung des Lasermoduls
Für diese Arbeit wurde die Position der Abbildung des Lasers in zwei verschiedenen Zoomstufen erfasst. Die eine Zoomstufe ist dabei jene mit dem größtmöglichen Zoom. Diese liefert die beste Auflösung für große Tiefen. Jedoch ist
der Laserpunkt ab einer Tiefe von weniger als ca. 100cm im Kamerabild nicht
mehr sichtbar. Der Punkt verschwindet nach oben aus dem Kamerabild, was
eine Tiefenmassung unmöglich macht. Die zweite Zoomstufe ist so gewählt,
dass sie den nicht abgedeckten Bereich (< 100cm) abdeckt. Zur Kalibrierung
wurde eine Holzplatte mit einer Schrittweite von 10cm von einem Abstand von
50cm bis 650cm bewegt und jeweils der Schwerpunkt der Abbildung des Lasers
festgehalten. Als Referenzwerte dienen die Tiefenmesswerte eines Distometers
(L EICA DISTO). Sowohl bei der Kalibrierung, als auch der späteren Verwendung zur Messung der Tiefe, ist der Autofokus der Detailkamera ausgeschaltet
und es wird eine konstante Fokusposition eingenommen. Dies ist notwendig,
da der Autofokus große Probleme hat, den Laserpunkt zu fokussieren, und die
ständige Varianz des Fokus den Schwerpunkt des Laserpunktes verändert.
Aufnahme von Geometriepunkten
Ist das Lasermodul eingeschaltet, so liegt die Abbildung dessen Laserstrahls im
Kamerabild. Um die Position des Laserpunktes im Kamerabild zu finden wird
die Iris und die Shutterzeit der Detailkamera soweit verkleinert, dass nur noch
der Laserpunkt zu sehen und der Rest schwarz ist. Dies funktioniert, da das Lasermodul wesentlich heller ist als das Umgebungslicht. Anschließend werden
35
4 Kalibrierung
alle Pixel p betrachtet, deren Intensität I ( p) über einem definierten Schwellenwert t liegt und von ihnen der Schwerpunkt gebildet. Dies führt zu einer
subpixelgenauen Position p′ .
p′ (u, v)T = (
n
ui /n′ ,
∑
i | I ( pi )>t
n
∑
vi /n′ )T
(4.11)
i | I ( pi )>t
Ist die Position im Kamerabild p′ (u, v)T bekannt, so kann die zugehörige Tiefe
d durch lineare Interpolation der kalibrierten Stützstellen bestimmt werden. Da
sich die horizontale u-Komponente des Laserpunktes über die verschiedenen
Tiefen nur im Bereich von einem Pixel geändert hat, wird zur Interpolation
ausschließlich die v-Komponente berücksichtigt.
Anschließend kann der Punkt im Raum bestimmt werden. Die Rotation der
beiden Schrittmotoren (α, β), und damit die Orientierung der Detailkamera,
ist bekannt. Multipliziert man den Einheitsvektor (0 0 − 1)T mit der Rotationsmatrix, die die Rotation der Detailkamera beschreibt, so erhält man einen
Einheitsvektor in Blickrichtung der Kamera. Diesen multipliziert man mit der
interpolierten Tiefe d, um den Punkt im Systemkoordinatensystem zu bekommen.

X


cos(α)
sin(α) sin( β)
sin(α) cos( β)
 
0


 



0
cos( β)
− sin( β)  ·  0  (4.12)
 Y  = d·
−1
− sin(α) cos(α) sin( β) cos(α) cos( β)
Z
Diese Berechnung berücksichtigt die Position des Laserpunktes nur für die Tiefe, nicht jedoch für die Richtung des Strahls. Das ist jedoch falsch. Um einen
korrekten Richtungsvektor zu berechnen sind allerdings die intrinsischen Parameter der Kamera notwendig, deren Ermittlung in der größten Zoomstufe mit
dem verwendeten Verfahren fehlschlägt. Um trotzdem eine genauere Richtung
zu bekommen, wurde der vertikale Öffnungswinkel der Detailkamera gemessen, indem die Höhe des im Kamerabild sichtbaren Bereiches bei bekannter
36
4 Kalibrierung
Distanz gemessen wurde. Als principal point wird, mangels Alternativen, der
Mittelpunkt des Bildes angenommen.
Mit diesen intrinsischen Parametern lässt sich die Position des Punktes wie
folgt berechnen.

 

( u − u0 ) / f u
d 
 



0
cos( β)
− sin( β)  ·  (v − v0 )/ f v 
 Y  = ·
n
− sin(α) cos(α) sin( β) cos(α) cos( β)
−1
Z
(4.13)

X

cos(α)
sin(α) sin( β)
sin(α) cos( β)


( u − u0 ) / f u 

n =  ( v − v0 ) / f v  −1
(4.14)
Kalibrierungsverfahren
Zur extrinsischen Kalibrierung wird die Geometrie in einer festgelegten Auflösung eingescannt. Das Resultat ist eine Punktwolke C, also eine Menge von
Geometriepunkten P( X, Y, Z )T . Abbildung 4.7 zeigt eine solche zusammen mit
den Ortsvektoren jedes Punktes.
C = { P1 , P2 , . . . , Pn }
(4.15)
Die Referenzgeometrie G, auf welche diese Punktwolke passen soll, besteht aus
Dreiecken T ( P1 , P2 , P3 ). Dabei definiert jedes Dreieck eine Ebene E.
G = { T1 , T2 , . . . , Tm }
T = { P1 , P2 , P3 }
(4.16)
Um bestimmen zu können, wie genau die Punktwolke auf die Referenzgeometrie passt, wird ein Fehler de definiert. Der Fehler ist der globale Abstand zwi-
37
4 Kalibrierung
Abbildung 4.7: Erfasste Punktwolke mit Ortsvektoren
schen der Punktwolke de und der Geometrie, definiert durch die Summe der
minimalen euklidischen Distanzen zu allen Ebenen über alle Punkte P ∈ C.
n
de =
e∈ E
∑ min ( Pk ֒→ e)
(4.17)
k =1
Dabei ist ( P ֒→ e) der Abstand des Punktes P zur Ebene e.
Ziel der Kalibrierung ist es nun, eine Transformation für die Referenzgeometrie
zu finden, so dass de minimal wird. Aus dieser Transformation lassen sich die
extrinsischen Parameter des Kamerasystems bestimmen.
Transformiert man die Geometrie und somit die Ebenen, so ändert sich der
Fehler. Liegen alle Punkte der Punktwolke auf einer der Ebenen, so ist der Fehler de = 0. Dies wird allerdings auf Grund von Ungenauigkeiten nicht der
Fall sein. Das Kalibrierungsverfahren läuft so ab, dass ein Minimierungsalgorithmus [29], durch Veränderung der Transformation, ein Minimum in einer
sechsdimensonalen Funktion findet. Diese Funktion ist der Fehler in Abhängikeit von Translation und Rotation de (r x , ry , rz , t x , ty , tz ). Abschließend werden
38
4 Kalibrierung
aus der gewonnenen Transformation ( Rw2s , tw2s ), die ein Minimum in der Fehlerfunktion verursacht hat, die extrinsischen Parameter berechnet.
ts2w = R′w2s tw2s
Rs2w = R′w2s
(4.18)
Um auf gute Ergebnisse zu kommen, benötigt der Minimierungsalgorithmus
einen brauchbaren initial guess. Dieser wird zunächst von Hand gegeben.
Eliminierung von Ausreissern
In der Realität ist es oft so, dass sich in einem Raum Objekte befinden, die in
seinem Geometriemodell nicht auftauchen. Das kann beispielsweise eine Heizung oder Mobiliar sein. Diese Objekte tauchen in der Punktwolke mit auf, im
Geometriemodell nicht und können zu einem falschen Minimum führen. Das
gleiche gilt für Ausreißer, die zum Beispiel durch spiegelnde oder transparente Oberflächen entstanden sind. Um diese Ausreißer zu eliminieren, wurden
zwei Verfahren implementiert. Zum einen ein automatisches Verfahren, welches Ausreißer selbstständig erkennt und entfernt, zum anderen die manuelle
Möglichkeit, Vertices aus der gescannten Punktwolke zu entfernen und, bei
Bedarf, auch Dreiecke aus dem Referenzmodell zu entfernen.
Automatische Eliminierung von Ausreißern
Die automatische Methode funktioniert so, dass zunächst die Minimierung mit
allen Punkten durchgeführt wird. Anschließend werden sämtliche Punkte, deren Fehler über dem durchschnittlichen Fehler liegt aus der Punktewolke entfernt. Anschließend wird ein zweites mal die Minimierungsfunktion verwendet. Als initial guess dient diesmal das Minimum des ersten Durchgangs.
Manuelle Eliminierung von Ausreißern
Manuell lassen sich einzelne Punkte der Punktewolke durch Selektion mit der
Mouse löschen. Das gleiche gilt für die Dreiecke der Referenzgeometrie. Jene
Dreiecke, deren korrespondierende Punkte der Punktewolke so falsch waren,
39
4 Kalibrierung
Abbildung 4.8: Punktwolke und Geometriemodell ( a); initial guess (b); gefundenes Minimum (c). Die roten Punkte visualisieren Ausreißer,
die im zweiten Minimierungsdurchgang nicht berücksichtigt
werden.
dass sie gelöscht wurden, werden einfach ebenfalls gelöscht. Zum einen, um
ein eventuelles falsches Minimum zu verhindern und zum anderen auch, um
die Minimierung etwas zu beschleunigen, da die Distanz zu diesen Dreiecken
nicht mehr berechnet werden muss. Nach dem sämtliche Ausreißer entfernt
wurden, wird die Minimierung wie gewohnt gestartet.
Beschleunigung des Verfahrens
Das Einscannen der Punktwolke kostet, auf Grund der Mechanik, Zeit. Pro
Punkt werden in etwa 1,2 Sekunden benötigt. Die Anzahl der benötigten Punkte lässt sich minimieren, wenn Teile der Transformation vorgegeben werden.
Setzt man etwa voraus, dass das Kamerasystem auf einer waagerechten Fläche
steht, so hat die Fehlerfunktion statt sechs nur noch 4 Freiheitsgrade. In diesem
Fall reichen fünf, in jeweils orthogonalen Richtungen, gemessene Geometriepunkte, um das Minimierungsverfahren durchzuführen.
Voraussetzung ist – wie auch bei dem Verfahren ohne Vorgaben – stets, dass
die Geometrie nicht symmetrisch ist. Im Extremfall einer Sphäre gibt es kein
Minimum in der Fehlerfunktion, da die Rotation beliebig ist.
40
4 Kalibrierung
4.4 Analyse und Vergleich der Kalibrierungsverfahren
Um dieses Kapitel abzuschließen, wurde eine Evaluation der vorgestellten Kalibrierungsverfahren zur extrinsischen Kalibrierung des Systems durchgeführt.
Folgende Verfahren wurden in je zwei verschiedenen Umgebungen getestet.
1. Pose estimation bei statischer Detailkamera mit einem Schachbrettmuster
2. Pose estimation bei beweglicher Detailkamera mit drei Schachbrettmustern (interpoliert)
3. Pose estimation bei beweglicher Detailkamera mit drei Schachbrettmustern (arithmetisches Mittel)
4. Pose estimation des Kamerasystems bei beweglicher Detailkamera (virtuelle Bildebene)
5. Geometriematching mit einer Punktewolke von 400 Punkten und automatischer Ausreißerelimination
6. Geometriematching mit einer Punktewolke von 400 Punkten und manueller Ausreißerelimination
7. Geometriematching mit einer Punktewolke von 5 orthogonal aufgenommenen Punkten und der Vorgabe, dass sich das System auf einem waagerechten Untergrund befindet
Die beiden Umgebungen waren Räume der Bauhausstraße 11, also reale Umgebungen. Zunächst wurde von beiden Räumen ein Referenzmodell erstellt. Dies
geschah mit Hilfe eines Distometers und einer Wasserwaage. Da reale Umgebungen – insbesondere in einem Altbau – oft weder völlig planare, noch orthogonal aufeinander stehende Wände und Decken haben, ist diese Art der Gewinnung eines Referenzmodells unvermeidlich fehlerbehaftet. Die Referenzmodelle enthalten alle wesentlichen Oberflächen der Umgebung; Details wurden vernachlässigt.
Anschließend wurden die Räume jeweils mit zehn Referenzpunkten ausgestattet, um anhand derer die Güte der Kalibrierungen zu messen. Die Position der
Referenzpunkte wurde ebenfalls mit Hilfe von Distometer und Wasserwaage
41
4 Kalibrierung
ermittelt. Anhang A zeigt Fotos der beiden Räume, sowie Bilder der Referenzmodelle.
Nach jeder Kalibrierung wurde für jeden der zehn Referenzpunkte ermittelt,
wo das Kamerasystem diese lokalisiert. Das Verfahren zur Berechnung der
dreidimensionalen Position ist, wie im Kapitel 5 beschrieben, als befände sich
ein Laserpunkt an den Referenzpunkten. Diese wurden jedoch manuell im Kamerabild mit der Maus angeklickt. Die euklidische Distanz zwischen der so ermittelten Position Pv ( Xv Yv Zv )T und der realen Position Pr ( Xr Yr Zr )T dient als
Fehlerwert für diesen Referenzpunkt.
e=
q
( Xv − Xr )2 + (Yv − Yr )2 + ( Zv − Zr )2
(4.19)
Neben dem Fehler, und damit der Genauigkeit, wurden die Zeitkosten gemessen. Dabei wurde die Zeit unterteilt in aktive und passive Zeit. Aktive Zeit beansprucht die Anwesenheit und Handlung eines Menschen, während passive
Zeit jene Zeit beschreibt, in der das System selbstständig agiert.
4.4.1 Genauigkeit
Welche Genauigkeit die verschiedenen Kalibrierungsmethoden in den beiden
Testumgebungen je geliefert haben ist in Abbildung 4.9 zu sehen.
Die pose estimation für ein einzelnes Schachbrett (1) zeigt in beiden Umgebungen mäßige Ergebnisse. Es gibt jeweils ein Minimum mit einem Fehler von
weniger als einem Zentimeter, welches an Referenzpunkten in der Nähe des
Schachbrettes auftritt. Je weiter die sich Orientierung ändert, desto größer werden die Fehler, sodass global gesehen ein großer Fehler existiert. Der Median
der Fehler beträgt 16cm bzw. 21cm.
Bei der interpolierten pose estimation (2), welche zwischen drei Kalibrierungen, je mit einem Schachbrett, interpoliert, unterscheiden sich die Ergebnisse
in den beiden Umgebungen. In der ersten Evaluationsumgebung – dem Flur –
liefert sie deutlich bessere Ergebnisse als das erste Verfahren. Dagegen verhält
sich der Fehler in der zweiten Umgebung (SP-Lab) kaum besser. Der Median
42
4 Kalibrierung
Evaluationsumgebung 1 (Flur)
0.45
0.4
0.35
0.3
0.25
Fehler [m]
0.2
0.15
0.1
0.05
0
1
2
3
5
4
Kalibrierungsverfahren
6
7
Evaluationsumgebung 2 (SP-Lab)
0.9
0.8
0.7
0.6
0.5
Fehler [m]
0.4
0.3
0.2
0.1
0
1
2
3
5
4
Kalibrierungsverfahren
6
7
Abbildung 4.9: Fehler der verschiedenen Kalibrierungsmethoden. Minimum,
0,25-Quartil, Median, 0,75-Quartil, Maximum.
43
4 Kalibrierung
ist geringfügig kleiner, das Maximum dafür wesentlich größer. Auch hier gibt
es in beiden Umgebungen ein geringes Minimum für Referenzpunkte nahe der
Schachbrettmuster.
Das Verfahren, das arithmetische Mittel der drei Kalibrierungen zu nehmen
(3), hat in jedem Fall zu schlechten Ergebnissen geführt.
Die virtuelle Bildebene (4) lieferte in der ersten Umgebung das beste Ergebnis
während sie in der zweiten Umgebung weniger gut abschnitt. Dort benötigte
sie auch mehrere Versuche, da der Minimierungsalgorithmus zunächst völlig
verkehrte Minima lieferte.
Sämtliche geometriebasierte Verfahren haben in der zweiten Umgebung die
anderen übertroffen, während sie im Flur schlechte Ergebnisse lieferten. Das
Problem hierbei war, dass sämtliche, im Flur aufgenommene, Punktwolken
fehlerhaft waren. Der Laserpunkt war im Kamerabild wesentlich und größer
und heller zu sehen – offenbar auf Grund der Oberfläche der Wände. Auf nahe
Distanzen nahm der Punkt einen Großteil des Kamerabildes ein. Diese Abbildungen des Lasermoduls decken sich nicht mit jenen die zur Kalibration verwendet wurden. Daraus resultierten ungenaue Punktwolken und somit ungenaue Kalibrierungen. Dieses Problem ist vor dieser Evaluation nie aufgetreten
und konnte ad hoc nicht behoben werden.
In der zweiten Evaluationsumgebung zeigen die drei geometriebasierten Verfahren keine signifikanten Unterschiede in der Genauigkeit. Das automatische
Entfernen von Ausreissern (5) zeigt ein ähnliches Verhalten wie die manuelle Eliminierung (6). Sämtliche geometriebasierte Verfahren basieren auf dem
Minimierungsalgorithmus. Dieser liefert keine konstanten Ergebnisse, da er in
lokale Minima geraten kann. Verwendet man mehrfach die selbe Punktwolke
und das selbe Referenzmodell, so kommt der Algorithmus bei minimal verschiedenen initual guesses auf unterschiedliche Lösungen. Das zeiteffiziente
Kalibrierungsverfahren, welches mit nur fünf Geometriepunkten arbeitet (7),
führt in dem Beispiel zu einem vergleichbaren Ergebnis, ist jedoch sehr anfällig
für falsche Minima.
Die gemessenen Fehler ergeben sich aus der Summe vieler kleiner Fehler. Zu-
44
4 Kalibrierung
nächst ist das Referenzmodell und die Referenzpunkte in ihm fehlerbehaftet.
Das heißt, selbst eine perfekte Kalibration in diesem Modell führt zu Differenzen mit der realen Umgebung. Dazu kommt der Fehler, welcher in den der
Kalibrierung zugrunde liegenden Daten. Bei den geometriebasierten Verfahren
stecken Fehler in der Punktwolke und auch die intrinsischen Parameter die für
eine pose estimation benötigt werden sind nicht fehlerfrei. Dazu kommt, dass
die Minimierungsfunktion nicht zwangsläufig das globale Minimum der Fehlerfunktion ermittelt.
Um an bessere Kalibrationsergebnisse zu kommen, müssen diese Fehler minimiert werden.
4.4.2 Geschwindigkeit
Man mag zunächst denken, die Computer Vision basierten Kalibrierungen seien wesentlich schneller als die geometriebasierten Verfahren. Jedoch darf man
nicht vergessen, dass diese eine Vorbereitung benötigen. Marker müssen ausgedruckt, aufgehangen und vermessen werden. All diese Vorbereitung fällt
bei der geometriebasierten Kalibrierung weg, ebenso wie sämtliche manuelle
Steuerung. Mit Ausnahme des manuellen initial guess funktioniert die geometriebasierte Kalibrierung vollkommen automatisch.
Abbildung 4.10 zeigt die Dauer der verschiedenen Verfahren – aufgeteilt in aktive und passive Zeit. Das schnellste Verfahren ist jenes mit der virtuellen Bildebene. Dies setzt die Existenz von ausreichend natürlichen Features voraus.
Die Verfahren die Schachbrettmuster benutzen beansprucht viel aktive Zeit in
der Vorbereitung. Das Aufhängen und vorallem Vermessen der Muster dauert
seine Zeit. Die eigentliche Kalibrierung geht dann sehr schnell. Bei einer erneuten Kalibrierung fällt die aktive Zeit dann weg, da die Schachbrettmuster
bereits existieren.
Die Aufnahme von einer Punktwolke mit 400 Punkten, wie sie verwendet wurde, dauert knappe zehn Minuten. Anschließend wird vom Benutzer ein initial
guess durchgeführt und – je nach Verfahren – die Punktwolke manuell von
Ausreißern befreit. Diese aktive Zeit beträgt etwa eine Minute. Anschließend
45
4 Kalibrierung
20
gesamte Zeit
aktive Zeit
18
16
14
12
t[s] 10
8
6
4
2
0
1
2
3
5
4
Kalibrierungsverfahren
6
7
Abbildung 4.10: Dauer der verschiedenen Kalibrierungsverfahren
wird der Minimierungsalgorithmus verwendet, der im Schnitt etwa 4 Minuten
benötigt – die Dauer kann jedoch stark variieren. Die überwiegende Dauer ist
also der passiven Zeit zuzuordnen. Eine Ausnahme macht die Kalibration mit
nur fünf Geometriepunkten und der Bedingung, dass sich das System auf einem waagerechten Untergrund befindet. Das Scannen der fünf Punkte dauert
nur 12 Sekunden und der Minimierungsalgorithmus läuft auch schneller, da
der Fehler für weniger Punkte berechnet werden muss.
4.4.3 Resumee
In der Evaluation wurden sieben Verfahren zur extrinsischen Kalibration des
Kamerasystems in zwei Umgebungen verglichen. Dabei haben die geometriebasierten Verfahren im Schnitt einen weniger großen Fehler verursacht, als die
auf Computer Vision Algorithmen zur pose estimation basierenden – vorrausgesetzt die Oberfläche lässt die Aufnahme einer Punktwolke zu.
46
4 Kalibrierung
Zusammenfassend kann man sagen, dass die Ergebnisse der Kalibrierungsverfahren nicht zufriedenstellend sind. Die beste Kalibrierung im Test besitzt
einen mittleren Fehler (Median) von ∼ 3cm. Dieser Fehler ist zu groß, um genaues Laserpointertracking zu bieten. Bessere Methoden müssen entwickelt
werden, um zu adäquaten Kalibrierungsergebnissen zu kommen.
47
5 Laserpointer-Tracking
Dieses Kapitel beschreibt, wie das kalibrierte System Laserpointer-Tracking ermöglicht. Es wird Schritt für Schritt erklärt, welche Berechnungen notwendig
sind, um an die dreidimensionale Position des Laserpunktes in Weltkoordinaten zu gelangen. Dabei ist insbesondere auch wichtig, dass die Position kontinuierlich und in konstanter Auflösung ermittelt wird.
Im einzelnen setzt sich das Tracking aus folgenden Schritten zusammen, wobei
die Schritte 3 und 4 nur unter der Bedingung durchgeführt werden, dass die
Position in den ersten beiden Schritten nicht ermittelt werden konnte – also der
Laserpunkt nicht im Frustum der Detailkamera liegt.
1. Lokalisierung des Laserpunktes im Kamerabild der Detailkamera
2. Lokalisierung des Laserpunktes in Weltkoordinaten mit Hilfe der Detailkamera
3. Lokalisierung des Laserpunktes im Kamerabild der Kontextkamera
4. Lokalisierung des Laserpunktes in Weltkoordinaten mit Hilfe der Kontextkamera
5. Verfolgen des Laserpunktes und Wiederfinden bei Verlust
5.1 Lokalisierung
5.1.1 Lokalisierung im Kamerabild der Detailkamera
Die Lokalisierung des Laserpointerpunktes erfolgt genau so, wie der Laserpunkt des Lasermoduls für das Einscannen der Umgebung erkannt wird (vgl.
48
5 Laserpointer-Tracking
4.3.2). Die Iris und die Shutterzeit der Detailkamera werden soweit verringert,
dass im Kamerabild nur noch der Laserpunkt zu sehen und der Rest schwarz
ist. Dies funktioniert, da der Laserpunkt wesentlich heller ist, als das Umgebungslicht. Anschließend werden alle Pixel p betrachtet, deren Intensität I ( p)
über einem definierten Schwellwert t liegt. Von ihnen wird der Schwerpunkt
p′ gebildet. Dies führt zu einer subpixelgenauen Position für den Laserpunkt
im Kamerabild.
p′ (u, v)T = (
n
ui /n′ ,
∑
i | I ( pi )>t
n
∑
vi /n′ )T
(5.1)
i | I ( pi )>t
Dabei ist n′ die Anzahl der Pixel deren Intensität über dem Schwellwert t liegt.
Ist n′ = 0, so ist p′ nicht definiert. In der Praxis bedeutet dies, dass der Laserpunkt nicht im Kamerabild der Detailkamera zu sehen ist. Anderenfalls lässt
sich die gewonnene Pixelposition p′ des Laserpunktes weiterverarbeiten, um
an dessen dreidimensionale Position P zu gelangen.
5.1.2 Lokalisierung in Weltkoordinaten mit Hilfe der Detailkamera
Um dem im Kamerabild der Detailkamera gefundenen Laserpunkt seine dreidimensionale Position zuordnen zu können, muss folgendes bekannt sein.
• Intrinische Kameraparameter
• Extrinische Kameraparameter
• Mathematische Beschreibung der Umgebungsgeometrie
Anhand der intrinsischen und extrinsischen Kameraparameter lässt sich ein
Strahl definieren, der, beginnend im Ursprung des Kamerakoordinatensystems
in Weltkoordinaten, in Richtung des Laserpunktes in Weltkoordinaten zeigt.
Dieser kann abschließend mit der mathematischen Beschreibung der Umgebungsgeometrie (im Folgenden Geometriemodell genannt) geschnitten werden.
Der Schnittpunkt wird als dreidimensionale Position des Laserpunktes angenommen.
49
5 Laserpointer-Tracking
Zunächst wird ein Vektor ~vcd in Kamerakoordinaten berechnet, der, ausgehend vom Ursprung, auf die Abbildung des Laserpunktes auf der Bildebene
p′ zeigt. Dabei sieht die Kamera entlang der negativen z-Achse und die positive y-Achse zeigt nach oben.
~vcd


( u − u0 ) / f u


=  ( v − v0 ) / f v 
−1
(5.2)
Dieser Vektor wird anschließend durch Multiplikation mit der Rotationsmatrix, die durch die Neigung und Schwenkung der Detailkamera definiert ist, in
das Systemkoordinatensystem transformiert. Durch multiplizieren des resultierenden Vektors in Systemkoordinaten mit der Rotationsmatrix der extrinischen Kalibrierung des Systems Rs2w , erhält man abschließend den in Weltkoordinaten transformierten Vektor ~vw .
(5.3)
~vw = Rs2w · Rcd2s · ~vcd
Rs2w wird bei der initialen Kalibrierung bestimmt und bleibt unveränderlich,
während die Rotationsmatrix Rcd2s sich stets aus den veränderlichen Winkeln
α und β der beiden Rotationsachsen wie folgt berechnen läßt.


Rcd2s = 
cos(α)
sin(α) sin( β)
0
cos( β)
sin(α) cos( β)


− sin( β) 
− sin(α) cos(α) sin( β) cos(α) cos( β)
(5.4)
Um den Strahl ~r definieren zu können benötigt man neben dem eben errechneten Vektor ~vw den Kameraursprung in Weltkoordinaten. Dieser ist ebenfalls
nicht statisch, sondern abhängig von der Neigung und Schwenkung der Detailkamera. Dazu wird der Vektor ~ocd , der die Translation zwischen Kameraursprung und Systemkoordinatenursprung der in in Kamerakoordinaten vorliegt, wie auch der Vektor ~vcd zuvor durch Multiplikation mit den beiden Rotationsmatrizen in Weltkoordinaten transformiert.
50
5 Laserpointer-Tracking
(5.5)
~ow = Rs2w · Rcd2s ·~ocd
Der Vektor ergibt, addiert mit dem Translationsvektor, der die Position des Kamerasystems in Weltkoordinaten angibt, tw , die Position des Kameraursprungs
in Weltkoordinaten. Abschließend wird, um die Koordinaten des Laserpunktes
in Weltkoordinaten zu bekommen, der Strahl ~r, definiert durch den Ursprung
des Kamerasystems ~tw +~ow und den Richtungsvektor ~vw , mit dem Geometriemodell geschnitten.
~r = ~tW +~ow + λ ∗ ~vw
λ∈R
(5.6)
Das Geometriemodell besteht aus Dreiecken, da diese sich sowohl gut eignen,
um gerendert zu werden, als auch, um sie mit Strahlen zu schneiden. Zur Berechnung des Schnittpunktes von Strahl und Dreieck wurde eine vorhandene C++ Implementation von D AVID S CHERFGEN [30] verwendet. Um nun den
Schnittpunkt zu finden, wird der Strahl mit sämtlichen Dreiecken des Geometriemodells geschnitten. Anschließend wird aus sämtlichen Schnittpunkten
P jener ausgewählt, dessen euklidische Distanz zum Kameraursprung am geringsten ist. Dieser Punkt P′ wird als Position des Laserpunktes angenommen.
5.1.3 Lokalisierung im Kamerabild der Kontextkamera
War die Lokalisierung des Laserpunktes anhand des Kamerabildes der Detailkamera nicht erfolgreich – in der Regel, weil sich der Laserpunkt außerhalb des
Frustums der Detailkamera befindet – so wird das Kamerabild der Kontextkamera untersucht. Die Kontextkamera hat in dem Prototypen nicht die Möglichkeit, Shutterzeit und/oder die Iris zu manipulieren. Also benötigt man eine
alternative Möglichkeit, den Laserpunkt im Kamerabild zuverlässig zu finden.
Da die Kontextkamera verwendet wird, wenn die Detailkamera den Laserpunkt verloren hat, eignet sich das Verfahren, ein Differenzbild zu erzeugen.
Der Verlust des Laserpunktes kann auf Grund zu schneller Bewegung, oder auf
51
5 Laserpointer-Tracking
Grund von Absetzen und erneutem Einschalten an anderer Position des Laserpointers geschehen. In jedem Fall steht der Laserpunkt nicht still, sondern ist
in Bewegung oder Veränderung seines Zustandes. Dies lässt sich einfach mit
Hilfe eines Differenzbildes Idi f f erkennen. Dabei wird von dem aktuellen Kamerabild In das Vorgängerbild In−1 für jedes Pixel einzeln abgezogen.
Idi f f = In − In−1
(5.7)
So lässt sich zuverlässig ein sich bewegener, oder gerade eingeschalteter, Laserpointerpunkt im Kamerabild lokalisieren. Das Verfahren der Lokalisierung ist
anschließend identisch dem bei der Lokalisierung im Kamerabild der Detailkamera (siehe 5.1.1). Man erhält auf diesem Wege wieder die subpixelgenaue
Position p′ des Laserpunktes im Kamerabild der Kontextkamera.
5.1.4 Lokalisierung in Weltkoordinaten mit Hilfe der
Kontextkamera
Da die Kontextkamera dazu gedacht ist, einen groben Hinweis zu bekommen,
wo sich der Laserpunkt befindet, wird hier mit einem sehr einfachen Kameramodell gearbeitet (vgl. 4.2.2). Der Vektor vom principal point p0 zur Position
des Laserpunktes p′ im Kamerabild dient als Grundlage zur Berechnung des
Vektors zum Laserpunkt in Weltkoordinaten.
Der Vektor ~vcc , der im Koordinatensystem der Kontextkamera von ihrem Ursprung auf den Laserpunkt zeigt, lässt sich in diesem einfachen Kameramodell
anhand folgender Annahmen bestimmen (vgl. Abbildung 4.4).
• Der Vektor hat die Länge eins. |~vcc | = 1
• Der Winkel δ zwischen der Projektion des Vektors auf die Bildebene und
dem Vektor ~i = (0 1)T ist gleich dem Winkel γ zwischen p′ − p0 und ~i.
• Der Winkel ǫ zwischen ~vcc und der Normalen der Bildebene ist linear
abhängig von der Länge l des Vektors p′ − p0 .
52
5 Laserpointer-Tracking
Da durch die Kalibrierung principal point p0 und Öffnungswinkel der Kamera
bekannt sind, lässt sich so der Vektor ~vcc von der Kontextkamera zum Laserpointerpunkt berechnen.


~vcc = 
cos(δ)
0 sin(δ)
 
1
0
0
 
0


 
 
 ·  0 cos(ǫ) − sin(ǫ)  ·  0  (5.8)
−1
0 sin(ǫ) cos(ǫ)
− sin(δ) 0 cos(δ)
0
1
0
δ=γ
(5.9)
ǫ = k·l
Dieser befindet sich zunächst im Koordinatensystem der Kontextkamera und
muss durch Transformation über das Systemkoordinatensystem in das Weltkoordinatensystem transformiert werden.
(5.10)
~vw = Rs2w · Rcc2s · ~vcc

.

Rcc2s = 
cos(α)
0
0 sin(α)
1
0
− sin(α) 0 cos(α)



(5.11)
Anschließend wird der Ursprung der Kontextkamera in Weltkoordinaten berechnet, um den Strahl vollständig definieren zu können. Dieser ist wiederum
abhängig von der Rotation der senkrechten Achse, dargestellt durch den Winkel α.
~ow = Rs2w · Rcc2s ·~occ
(5.12)
Dabei ist ~occ der Translationsvektor vom Ursprung des Systemkoordinatensystems zu jenem des Koordinatensystems der Kontextkamera im Koordinaten-
53
5 Laserpointer-Tracking
Abbildung 5.1: Schematische Darstellung von Laserpointer-Tracking
system der Kontextkamera. Er wird, wie gehabt, zunächst in Systemkoordinaten, anschließend in Weltkoordinaten transformiert.
Abschließend wird der Strahl~r, definiert durch die Position der Kontextkamera
ow und dem errechneten Richtungsvektor ~vw , mit sämtlichen Dreiecken der
Geometrie geschnitten, um die Position des Laserpunktes P′ zu bekommen.
Das Verfahren ist identisch zu dem, was bei der Detailkamera verwendet wird.
5.2 Verfolgen des Laserpunktes
Um den Laserpunkt zu verfolgen genügt es nicht, nur die Bilder der Detailkamera auszuwerten und zu beobachten, in welche Richtung sich der Laserpointerpunkt bewegt. Es ist möglich, dass der Benutzer den Laserpointer abschaltet
und an einem anderen Ort wieder einschaltet. In diesem Fall kann die Detailkamera maximal durch systematisches Absuchen seiner Umgebung den Punkt
wieder finden. Dies ist jedoch zeitaufwändig und unnötig. Das gleiche gilt für
den Fall, dass der Benutzer den Laserpointer schneller bewegt hat, als die Detailkamera in der Lage ist, ihn zu verfolgen. Dazu gibt es die Kontextkamera.
Sie gibt eine grobe Abschätzung, wo sich der Laserpunkt befindet, wenn die
Detailkamera ihn verloren hat.
Das Tracking läuft so ab, dass in jedem Frame zunächst das Kamerabild der
54
5 Laserpointer-Tracking
Detailkamera ausgewertet wird. Ist der Laserpunkt in diesem sichtbar, so wird
seine Position in Weltkoordinaten, wie zuvor beschrieben, berechnet. Anhand
eines Toleranzbereiches wird entschieden, ob die Detailkamera den Laserpunkt
verfolgt, oder nicht. Im ersten Fall wird die Rotation der beiden Achsen berechnet, die dazu führt, dass sich der Laserpunkt im Mittelpunkt des Kamerabildes
befindet. Um eine unnötige Belastung der Schrittmotoren durch das Verfolgen jeder kleinsten Bewegungen zu verhindern, ist ein Toleranzbereich um den
Mittelpunkt des Detailkamerabildes definiert. Dieser Toleranzbereich ist in der
Implementation rechteckig und hat die Breite und Höhe von je 20% der Kameraauflösung. Befindet sich der Punkt innerhalb dieses Toleranzbereiches, so
werden die Schrittmotoren nicht bewegt.
Ist der Laserpunkt jedoch nicht im Kamerabild der Detailkamera zu sehen, so
wird das Kamerabild der Kontextkamera ausgewertet und nach erfolgreicher
Lokalisierung die dreidimensionale Position des Laserpunktes errechnet. Anschließend wird die Detailkamera so rotiert, dass sich der Laserpunkt in der
Mitte ihres Kamerbildes befindet. Ist auch mit Hilfe der Kontextkamera kein
Laserpunkt zu lokalisieren, so wird davon ausgegangen, dass der Laser ausgeschaltet ist und in den nächsten Frame übergegangen.
Da die Rotation der beiden Schrittmotoren Zeit kostet, ist es wichtig, dass auch
während sie in Bewegung sind, das System dynamisch bleibt und auf Änderungen der Laserpunktposition reagieren kann. Dies wird dadurch ermöglicht,
dass in jedem Frame die aktuelle Rotation beider Schrittmotoren sowie die
Zoomstufe der Detailkamera – und damit die extrinsischen und intrinsischen
Parameter – über die RS-232 Schnittstelle abgefragt werden.
5.3 Räumliche Auflösung des Laserpointertrackings
Die räumliche Auflösung und damit die Genauigkeit der Lokalisierung ist abhängig vom Abstand des Laserpunktes zum Kamerasystem. Je größer die Distanz, desto geringer die räumliche Auflösung und damit die Genauigkeit. Um
dem entgegen zu wirken wird der Zoom der Detailkamera verwendet. Je größer der Zoom, desto größer die räumliche Auflösung. Das System versucht – in
55
5 Laserpointer-Tracking
den Grenzen des Zooms – für jede Distanz zwischen Laserpunkt und Kamerasystem immer dieselbe räumliche Auflösung zu behalten. In jedem Frame wird
anhand der ermittelten Distanz d eine Brennweite f u errechnet, die zu einer festen räumlichen Auflösung führt. Das heißt, dass der Bereich, den die Kamera
abbildet, auf der Tiefe d immer eine konstante Breite von w hat.
fu =
d · umax
w
(5.13)
Das umax ist dabei die horizontale Auflösung. Zu dieser errechneten Brennweite f u wird durch Interpolation über die kalibrierten Zoomstufen die zugehörige
Stufe ermittelt und an die Kamera weitergegeben. Um den Zoom der Kamera
nicht zu überlasten gibt es auch hier einen Schwellwert, der zu kleine Veränderungen der Zoomstufe nicht zulässt.
5.4 Analyse
Dieser Abschnitt befasst sich mit der Analyse des Laserpointer-Trackings. Es
werden Probleme und Einschränkungen des Verfahrens diskutiert, sowie die
Lösung einiger dieser Probleme. Abschließend wird der Laserpointer als Eingabegerät verglichen mit dem in der virtuellen Realität üblichen Stylus.
5.4.1 Probleme und Einschränkungen
Einschränkung der Oberfläche
Auch wenn in der Erweiterten Realität gerne von beliebigen Oberflächen die Rede ist, so gibt es hier auch beim Laserpointer-Tracking Einschränkungen. Die
Oberfläche, auf welcher sich der Laserpunkt befindet, muss diffuse Eigenschaften haben. Ein Spiegel eignet sich genauso wenig wie ein Fenster als Oberfläche, da der Laserpunkt hier für die Kamera nicht sichtbar ist. Auch stark absorbierende Oberflächen können problematisch werden, wenn der Laserpunkt
auf ihnen im Kamerabild zu dunkel wird.
56
5 Laserpointer-Tracking
(a)
(b)
(c)
Abbildung 5.2: Kamerabild ( a); Maske (b); maskiertes Kamerabild (c).
Diese Einschränkungen sind physikalischer Natur und bei einem optischen
Verfahren unvermeidlich. Es besteht keine Möglichkeit, sie durch Software zu
umgehen.
Verdeckung
Ein weiteres Problem ist – da es sich um ein optisches Verfahren handelt –
die Verdeckung. Steht der Benutzer mit dem Rücken zum Kamerasystem so
ist es möglich, dass er mit seinem Körper den Laserpunkt für die Kamera verdeckt. Desweiteren kann es bei einer nicht konvexen Umgebungsgeometrie dazu kommen, dass der Laserpunkt sich an einer Position befindet, die aus der
Kameraperspektive verdeckt ist. Dies setzt vorraus, dass die Position des Benutzers ungleich der des Kamerasystems ist.
Verdeckungsprobleme lassen sich leicht durch zwei oder mehrere solcher Kamerasysteme umgehen. Jedoch bleibt fragwürdig, ob der Nutzen die Kosten
rechtfertigt.
Lichtquellen im Kamerabild der Detailkamera
Ein weiteres Problem sind Lichtquellen, wie Lampen oder Fenster. Eine Glühbirne erscheint im Kamerabild, genau wie ein Fenster bei strahlendem Sonnenschein, heller als der Schwellwert zur Unterscheidung von Laserpunkt und
Umgebung. Dies führt dazu, dass sie fälschlicherweise als Laserpunkt erkannt
werden können. Das gleiche gilt für Projektoren – da in gewöhnlichen Räumen
57
5 Laserpointer-Tracking
keine Rückprojektion durchgeführt werden kann, besteht die Möglichkeit, dass
die Kamera direkt auf die Linse eines Projektors sieht und somit dort einen hellen Punkt findet.
Um dieses zu umgehen ist es sinnvoll, die kritischen Bereiche zu maskieren.
Dies muss jedoch nicht in der realen Welt passieren, wo man zum Beispiel
Pappen verwenden könnte. Einfacher ist es, die Masken als Computergrafik
in das Kamerabild zu integrieren. Dazu wird eine virtuelle Kamera mit den
selben intrinsischen, sowie extrinsischen Parametern, wie sie die reale Kamera besitzt, erzeugt und mit dieser die Masken gerendert. Das Verfahren nennt
sich Video-See-Through und kann verwendet werden, um das Kamerabild einer
realen Umgebung um beliebige virtuelle Objekte zu erweitern. Die Integration der gerenderten Masken in das Kamerabild muss geschehen, bevor es ausgewertet wird, um die Position des Laserpunktes zu bestimmen. Neben dem
Geometriemodell der Umgebung gibt es also ein zweites, welches die Blenden
beinhaltet. Die Maske muss in einer Farbe gerendert werden, bei der alle drei
Kanäle unterhalb des Schwellwertes liegen, zum Beispiel schwarz. Abbildung
5.2 zeigt, wie das Kamerabild ( a) durch Überlagerung mit der perspektivisch
korrekt gerenderten Maske (b) zu einem maskierten Kamerabild (c) wird, in
dem das unerwünschte Fenster verschwindet, während der Laserpunkt (unterhalb) sichtbar bleibt. Eine automatische Generierung solcher Masken ist denkbar, jedoch im Rahmen dieser Arbeit nicht implementiert.
Dieses Verfahren führt dazu, dass der Laserpunkt auf maskierten Oberflächen
nicht lokalisiert werden kann. Das ist jedoch nicht weiter tragisch, da er auf
einem Fenster oder einer Projektorlinse ohnehin, auf Grund des nicht diffusen
Materials, nicht erkannt werden kann.
Lichtquellen im Kamerabild der Kontextkamera
Bei der Kontextkamera tritt das Problem mit Lichtquellen, aufgrund des Verfahrens ein Differenzbild zu erzeugen, so nicht auf. Solange die Lichtquellen
konstant sind, subtrahieren sie sich raus. Problematisch wird es allerdings,
wenn sich Lichtquellen ändern. Das kann zum Beispiel auch durch einen Men-
58
5 Laserpointer-Tracking
(a)
(b)
(c)
(d)
(e)
(f)
Abbildung 5.3: Bilder des Frames n − 1 ( a, d); des Folgeframes n (b, e); die asymetrische Differenz der Bilder (c, f ). Oben: Laserpunkt gefunden ( a, b, c); unten: falscher Laserpunkt gefunden (d, e, f ).
schen, der vor einer Lichtquelle entlang läuft, passieren. Aus Sicht der Kamera
ist eine Lichtquelle zunächst an, wird dann verdeckt und ist aus und anschießend wieder freigegeben und sie erscheint wieder. Abbildung 5.3 zeigt das Differenzbild für zwei verschiedene Szenarien. In der oberen Zeile wird der Laserpunkt bewegt ( a, b) und ist im Differenzbild (c) anschließend zu erkennen,
während die unveränderte Lichtquelle nicht sichbar ist. Die untere Zeile zeigt,
wie eine Lichtquelle (in diesem Fall ein Fensterspalt) zunächst verdeckt wird
(d) und im folgenden Kamerabild sichbar ist (e). Diese Veränderung ist im Differenzbild ( f ) deutlich sichbar und wird von dem System fälschlicherweise als
Laserpunkt erkannt.
Desweiteren entstehen durch die Rotation des Kamersystems große Differenzen im Kamerabild der Kontextkamera. Diese können jedoch leicht gefiltert
werden, indem das Kamerabild nur bei Stillstand des Systems ausgewertet
wird.
59
5 Laserpointer-Tracking
5.4.2 Stärken gegenüber vergleichbaren Eingabegeräten
Das aus Anwendersicht am engsten verwandte Eingabegerät zum hier vorgestellten Laserpointer ist ein Stylus. Dies ist eine Art Stift, dessen Position
und Orientierung elektromagnetisch erfasst werden. Ein sogenannter Tracker
erzeugt ein elektromagnetisches Feld. Befindet sich der Stylus innerhalb dieses Feldes, so ist er in der Lage, seine sechs Freiheitsgrade1 zu bestimmen. Oft
wird ein Stylus zum Raycasting verwendet. Dies entspricht einem virtuellen
Laserpointer mit 2,5 DOF wie sie das hier vorgestellte System auch liefert. Der
wesentliche Vorteil dieses Systems gegenüber dem Stylus ist sein ungebrenzter Aktionsradius. Während man sich mit einem Stylus in unmittelbarer Nähe
(< 3m) des Trackers befinden muss, ist beim Laserpointertracking der Standpunkt des Benutzers irrelevant und somit beliebig. Desweiteren hat ein Laserpointer ein natürliches Feedback – nämlich seinen Laserpunkt – während
der Abbildungspunkt eines Stylus in einem immersiven Display mit Hilfe eines Projektors o.ä. dargestellt werden muss. Laserpointer-Tracking eignet sich
somit auch für Anwendungen der Erweiterten Realität, in denen die Interaktionsfläche nicht zwangsläufig auch Display ist (z.B. Video-See-Through).
5.4.3 Resumee
Dieses Kapitel hat ein robustes Verfahren zum Laserpointer-Tracking vorgestellt, das in Echtzeit läuft und kontinuierlich die Position eines Laserpunktes
in dreidimensionalen Weltkoordinaten ermittelt. Die Genauigkeit des Trackings
ist abhängig von der Kalibrierung des Systems (vgl. 4.4.1).
Weiterhin wurden einige Probleme diskutiert, von denen manche gelöst werden konnten, während andere sich nicht beheben lassen. Diese sind grundlegende Probleme, die zu Einschränkungen für Laserpointertracking im allgemeinen führen.
Das hier vorgestellte Laserpointertracking bildet die Grundlage für LaserpointerInteraktion in realen Umgebungen. Sicher können die meisten der Interakti1 Position
( x, y, z) und Orientierung (r x , ry , rz )
60
5 Laserpointer-Tracking
onstechniken, welche für Laserpointer-Interaktion auf planaren Oberflächen
entwickelt wurden, adaptiert werden. Darüber hinaus bietet eine nicht planare Umgebung jedoch neue Möglichkeiten und Herrausforderungen. Diese sind
jedoch nicht Bestandteil dieser Arbeit.
61
6 Szenenakquise
Dieses Kapitel beschäftigt sich mit der Akquise der das Kamerasystem umgebene Szene. Die einfachste Form der Szenenakquise ist ein Panoramabild, das
in der Regel aus mehrern Bildern zusammengesetzt wird. Es ermöglicht einen
Rundumblick in alle Richtungen, jedoch nur für einen Betrachtungspunkt –
nämlich jenen, von welchem aus das Panoramabild aufgenommen wurde. Um
die Szene aus beliebigen Positionen synthetisch rekonstruieren zu können, benötigt man neben der Photometrie auch Informationen über die Geomentrie.
Das in dieser Arbeit vorgestellte Kamerasystem ist in der Lage, sowohl die Photometrie, als auch die Geometrie der sie umgebenen Szene zu erfassen. Dies
resultiert in einem texturierten Geometriemodell der Szene, welches aus beliebigen Positionen und Blickrichtungen betrachtet werden kann.
6.1 Geometrieakquise
In Kapitel 4.3.2 wurde gezeigt, wie es mit der Detailkamera und dem Lasermodul möglich ist, einzelne Punkte der Geometrie einzuscannen. Bei der so gewonnenen Punktewolke sind Nachbarschaftsbeziehungen bekannt, wenn für
jeden Abtastpunkt P, neben den Weltkoordinaten ( X, Y, Z )T , die beiden Winkel (α, β) der Rotation des Systems gespeichtert werden.
Mit diesem Verfahren besteht die Möglichkeit, die umgebene Geometrie in einer beliebigen räumlichen Auflösung aufzunehmen und als triangulierte Geometrie darzustellen. Das bedeutet, dass die Punkte der Punktewolke mit ihren
Nachbarn zu Dreiecken zusammengefasst werden, welche die Oberfläche der
Geometrie beschreiben. Die Qualität des gewonnen Geometriemodells ist ab-
62
6 Szenenakquise
Abbildung 6.1: Gescannte Geometrie mit verschiedenen Abtastraten, beginnend bei einer geringen Auflösung von 202 Punkten (Dauer ca.
10 min) ( a), einer etwas höheren Auflösung von 402 Punkten
(Dauer ca. 32 min) (b) und zuletzt mit 602 Abtastpunkten (Dauer: ca. 68 min) (c).
hängig von der gewählten Abtastrate. Je höher die Abtastrate desto, genauer
das Modell, aber auch desto größer die Speicher- und Zeitkosten.
Möchte man die Umgebung beispielsweise mit einer räumlichen Auflösung
von einem Grad aufnehmen und geht man davon aus, dass nur die obere Hemisphäre aufgezeichnet wird, so kommt man auf 360 ∗ 90 = 32400 Abtast-
punkte. Dauert das Messen eines Punktes eine Sekunde, so dauert der Kalibrierungsprozess 32400 Sekunden. Das sind neun Stunden. Nicht nur die zeitlichen
Kosten sind hoch sondern auch die Datenmengen. Durch einfache Trinagulie-
rung besteht die gescannte Geometrie im oben genannten Fall aus ∼ 64800
Dreiecken. Diese sind auf moderner Grafikhardware zwar noch in Echtzeit1
darstellbar, möchte man allerdings einen Strahl mit der Geometrie schneiden
– wie es Laserpointer-Tracking vorraussetzt – so kann dies nicht in Echtzeit
stattfinden. Abbildung 6.1 zeigt eine Umgebung, gescannt in drei verschiedenen Auflösungen, gerendert in Wireframe-Darstellung. In Abbildung 6.2 wird
das am höchsten aufgelöste Modell in weiteren Darstellungen gezeigt – die
Dreiecke werden als Oberflächen gerendert. Zwei Farbcodierungen sind exemplarisch zu sehen: zum einen die Abbildung der Normale jedes Dreiecks
auf die RGB-Kanäle (b), zum anderen eine Visualisierung der Tiefe (c).
1 mit
einer Framerate von > 25fps
63
6 Szenenakquise
Abbildung 6.2: Gescannte Geometrie gerendert in Wireframe-Darstellung ( a),
mit Farben als Funktion der Tiefe (b) und mit Farben als Funktion der Normalen (c).
6.1.1 Effiziente Geometrieakquise
Befindet man sich in einem Gebäude, so besteht die Umgebung im Normalfall aus größeren, planaren Flächen. Scannt man diese Umgebung mit einer
uniformen Auflösung ein, so wird eine Wand, die durch zwei Dreiecke repräsentierbar wäre, durch tausende Dreiecke dargestellt. Dieses Problem ließe sich
in einem Postprocessing Schritt beheben, der das gescannte Geometriemodell
anschließend vereinfacht, ohne wesentliche Informationen zu verlieren. Das
löst allerdings nicht das Problem der langen Aufnahmedauer. Die Alternative wäre, eine geringere Abtastauflösung zu verwenden, was aber zum Verlust
höherfrequenter Details führt.
Im Folgenden wird ein adaptiver Scanalgorithmus vorgestellt, der die Dauer
der Aufnahme der Umgebung und gleichzeitig die aus der Aufnahme resultierende Datenmenge verringert.
Progressiver Scanalgorithmus
Die Idee dieses Algorithmuses ist es, die Umgebung zunächst mit einer geringen Abtastrate einzuscannen. Anschließend werden Bereiche, welche eine
Ebene darstellen, so belassen, während der Rest rekursiv in einer feineren Auflösung gescannt wird. Anschließend wird in den feiner eigescannten Bereichen
64
6 Szenenakquise
Abbildung 6.3: Triangulierungsschema des adaptiven Scannens
wieder nach planaren und nicht planaren Bereichen sortiert usw. Das Abbruchkriterium der Rekursion ist eine definierte maximale Abtastrate.
Dieses Verfahren führt in einer Umgebung mit großen planaren Flächen dazu,
dass diese bereits früh erfasst werden und anschließend nur noch Ecken und
Kanten betrachtet und genauer eingescannt werden.
Anschließend werden die Abtastpunkte gemäß des Schemas in Abbildung 6.3
trianguliert. Abbildung 6.4 zeigt einen mit diesem Verfahren abgetasteten Würfel – als Extrembeispiel für die Kombination hoher und geringer geometrischer
Frequenzen. Die Tiefenwerte wurden nicht in einer realen Umgebung mit Kamera und Lasermodul erfasst, sondern berechnet. In der Darstellung als Punktwolke (links) ist deutlich zu sehen, wie die Auflösung an den Kanten des Würfels steigt. Auf der rechten Seite ist das selbe Modell trianguliert dargestellt.
6.1.2 Probleme bei der Geometrieakquise
Die Ergebnisse der Geometrieakquise sind nicht perfekt. Ein grundlegendes
Problem ist, dass die Umgebung nur von einer Position aus abgetastet wird.
Dies führt dazu, dass aus Sicht dieser Position verdeckte Geometrie nicht erfasst werden kann. Die Lösung dieses Problems ist einfach, dass man die Geometrie von mehreren Positionen aus aufzeichnet, sodass sämtliche Oberflächen
in mindestens einem Scan enthalten sind. Anschließend müssen die gewonnenen Geometriemodelle zusammengefügt werden.
65
6 Szenenakquise
Abbildung 6.4: Adaptive Abtastung eines Würfels (Simulation).
Ein weiteres Problem sind nicht diffuse Oberflächen. Wenn der Laserstrahl reflektiert, oder gebrochen wird, so führt dies zu falschen Geometriepunkten.
In der Evaluation der Kalibrierungen hat sich gezeigt, dass ebenfalls zu gut
streuende Oberflächen problematisch sind (vgl. 4.4). Auch secondary scattering
in Ecken und Kanten war zunächst ein Problem, das jedoch ganz einfach durch
Erhöhung des Schwellwertes t eliminiert werden konnte.
6.2 Photometrieakquise
Neben der Geometrie besteht die Möglichkeit, die Photometrie der Szene zu
erfassen – zum Beispiel um die erfasste Geometrie damit zu texturieren. Dazu gibt es grundsätzlich zwei Möglichkeiten. Um eine hochauflösende Textur
zu bekommen, ist es sinnvoll, die Detailkamera zu nutzen und mehrere von
ihr aufgenommene Bilder zu einer großen Textur zusammenzufügen. Dieses
Verfahren kostet jedoch etwas Zeit und ist somit nicht tauglich, um eine Echtzeittextur zu erhalten. Das Kamerabild der Kontextkamera kann hingegen als
Echtzeittextur verwendet werden, da sie parallel die gesamte obere Hemisphäre erfasst. Allerdings hat sie eine wesentlich geringere räumliche Auflösung als
die zusamengesetzte Textur.
66
6 Szenenakquise
Abbildung 6.5: Die Ränder zwischen den Einzelbildern ( a) sind ohne Blending
(b) störender als mit Blending (c).
6.2.1 Hochauflösende statische Textur
Eine hochauflösende Textur kann durch das Zusammenfügen (stitching) einzelner Bilder der Detailkamera generiert werden. Dazu wird, wie bei der Geometrieakquise, die Detailkamera systematisch rotiert, um für diskrete Positionen
ein Bild aufzunehmen. Die Pixel des Bildes werden anschließend in sphärische
(u, v)-Koordinaten transformiert und in einer Textur abgespeichert. u und v
entsprechen dabei den Winkeln α und β der Rotation um die beiden Achsen
des Systems – skaliert mit dem Quotienten von der Auflösung der Textur und
π, um auf Pixelkoordinaten zu kommen.
Zunächst wird für jedes Pixel – genau wie beim Laserpointer-Tracking – der
Vektor ~vw ( xw yw zw )T in Weltkoordinaten berechnet, der vom Ursprung des
Systems in jene Richtung zeigt, aus der das Pixel affektiert wurde (vgl. 5.1.2).
Anhand dieses Vektors werden die Winkel und entsprechend die u- und vKoordinaten errechnet.


−zw

√
arccos
2
2
res 
xw
+zw
u=
π 

 π − arccos √−zw
2 + z2
xw
w
v=




res
π 


π
2
π
2
− arccos
+ arccos
√
√
67
yw
2 + y2 + z2
xw
w
w
yw
2 + y2 + z2
xw
w
w
xw ≤ 0
(6.1)
sonst
xw ≤ 0
sonst
(6.2)
6 Szenenakquise
Die resultierende Textur soll ein möglichst homogenes Erscheinungsbild haben. Es soll nicht sichtbar sein, dass sie aus mehreren Bildern zusammengesetzt
wurde und wo deren Grenzen liegen. Durch geringe Misregistrierung, sowie
unterschiedliche Luminanzen in der Umgebung kommt es jedoch zu deutlich
sichtbaren Grenzen. Um dem entgegenzuwirken, müssen zunächst sämtliche
automatischen Einstellungen der Kamera, die die Helligkeit und die Farbtemperatur beinflussen, während der Aufnahmeprozedur statisch bleiben. Diese
sind zum Beispiel Iris, Shutter und White Balacing. Darüber hinaus werden die
Bilder mit einer linearen Rampe zum Rand geblendet. Dies führt zu weicheren Übergängen, jedoch nicht zu einem völlig konsistenten Bild. Das Blending
setzt vorraus, dass sich die einzelnen Bilder überlappen. Ist die gesamte obere
Hemisphäre aufgenommen und gemappt, so erhält man die fertige Textur, wie
sie in Abbildung 6.6 zu sehen ist.
In diesem Fall wurde die Textur aus 72 = 49 Einzelbildern zusammengesetzt;
sie hat eine Auflösung von 1000 ∗ 1000 Pixeln. Die Aufnahme hat ca. 3 Minu-
ten gedauert. Je größer man die Textur wählt, desto größer muss der Zoom
der Detailkamera und die Abtastrate gewählt werden, um keine Löcher in der
Textur zu bekommen. Der weisse Streifen in der Mitte der Textur resultiert aus
einer Unterabtastung. Durch das Polarkoordinatensystem fallen sehr viele Pixel auf den Bereich über der Kamera. Dem Punkt senkrecht über der Kamera
entspricht in der Textur die gesamte mittlere Zeile. Der Effekt tritt auf, da das
Verfahren jedes Pixel der Kamerabilder an eine Stelle der Textur überträgt. Ein
umgekehrtes Verfahren, welches für jedes Pixel der Textur das zugehörige Pixel der Kamerabilder sucht, kann diesen Effekt verhindern.
Möchte man ein Geometriemodell mit dieser Textur rendern, so benötigt man
für jeden Geometriepunkt (vertex) eine Texturkoordinate, die angibt, welches
Pixel der Textur auf diesen Punkt gehört. Diese Texturkoordinate entspricht
den Winkeln α und β des Punktes, bezogen auf die Position des Kamerasystems skaliert mit dem Quotienten von der Auflösung der Textur und π. Die
Winkel α und β werden bei der Geometrieakquise für jeden Geometriepunkt
im Modell gespeichert. Abbildung 6.7 zeigt die das Geometriemodell aus Abbildung 6.5 (c) texturiert mit der hochaufgelösten Textur aus Abbildung 6.6.
68
6 Szenenakquise
Abbildung 6.6: Hochauflösende Textur; zusammengesetzt aus 49 Einzelbildern.
69
6 Szenenakquise
Abbildung 6.7: Gescannte Geometrie, texturiert mit der hochaufgelöseten Textur
6.2.2 Geringauflösende Echtzeittextur
Möchte man eine Echtzeittextur haben, um etwa Informationen über aktuelle
Beleuchtung zu erlangen, so ist die Methode, aus diskreten Bildern von verschiedenen Kameraorientierungen eine Textur zu generieren, nicht praktikabel, da sie zu viel Zeit kostet. Die Kontextkamera nimmt in einer räumlich geringen Auflösung einen Großteil der oberen Hemisphäre auf. Ihr Kamerabild
kann als Echtzeittextur verwendet werden.
Dabei werden die Texturkoordinaten für jeden Punkt (vertex) des zu texturierenden Geometriemodells in Abhängigkeit von der aktuellen Position und Rotation des Systems berechnet. Die Berechnung erfolgt gemäß des vereinfachten
Kameramodells für die Kontextkamera (vgl. 5.1.4). Zunächst wird der Vektor
~vw , beginnend beim Urspung der Kontextkamera Occ , in Weltkoordinaten zu
Geometriepunkt P berechnet.
~vw = P − Occ
70
(6.3)
6 Szenenakquise
Dieser Vektor wird normiert und aus dem Weltkoordinatensystem ins Kamerakoordinaten transformiert.
~vcc = Rs2cc · Rw2s ·
~vw
|~vw |
(6.4)
Anschließend werden die beiden Winkel δ und ǫ berechnet. Dabei ist δ der
Winkel zwischen der Projektion des Vektors ~vcc auf die x − z-Ebene (y = 0)
und dem Vektor (0 0 − 1)T , Der Winkel ǫ befindet sich zwischen ~vcc und dem
senkrechten Vektor (0 1 0)T .
Die Elemente von ~vcc heißen im Folgenden ~vcc = ( xcc ycc zcc )T .


−
z
cc

 arccos √ 2 2
xcc +zcc
δ=


√ −2zcc
2π
−
arccos

xcc +z2cc
xcc ≤ 0
ǫ = arccos (ycc )
(6.5)
sonst
Mit Hilfe dieser Winkel lässt sich das zugehörige Pixel, das als Texturkoordinate für den Geometriepunkt P verwendet wird, wie folgt berechnen.
1
1
(u, v) = (cos δ · ǫ, sin δ · ǫ)
k
k
(6.6)
Die Echtzeittextur ist neben ihrer geringen Auflösung auch weniger genau als
die hochauflösende Textur, da Verzerrungen durch die nicht nicht ganz perfekte Linse auftreten. Diese werden im vereinfachten Kameramodell nicht berücksichtigt. Abbildung 6.8 zeigt die Echtzeittextur und wie Geometrie mit ihr
texturiert gerendert wird.
Deutlich zu sehen sind die Begrenzungen, wo die Textur endet, oder schwarz
wird. Diese rühren daher, dass das Fischaugen-Objektiv einen geringeren Öffnungswinkel als 180◦ besitzt. Dazu kommt, dass das Objekiv nicht wirklich
mittig über dem CCD-Chip der Kontextkamera sitzt. Deswegen ist der sichtbare Bereich nicht symmetrisch, sondern abhängig von der Rotation des Systems
und somit der Kontextkamera.
71
6 Szenenakquise
Abbildung 6.8: Echtzeittextur ( a); gescannte Geometrie, texturiert mit Echtzeittextur (b, c).
6.3 Resumee
Die Szenenakquise liefert keine Beschreibung der Szene, die für den Einsatz in
CAD-Anwendungen oder ähnlichem genau genug ist. Jedoch ist die Genauigkeit der Geometrie ausreichend für Laserpointer-Tracking. Weitere Anwendungen sind denkbar, zum Beispiel die Geometrie zu verwenden, um korrekte
Verdeckung von virtuellen Objekten in einer Video-See-Through Anwendung
zu berechnen. Zusammen mit der erfassten Textur bietet die Szenenbeschreibung auch die Möglichkeit, mit der Szene zu interagieren, oder sie zu erweitern, ohne dass das Kamerasystem vor Ort sein muss. So können beispielsweise
Architekten die aufgenommene Szene mit nach Hause oder ins Büro nehmen
und offline mit ihr arbeiten.
Das wichtigste Problem ist bei diesem Verfahren wieder die Verdeckung. Dadurch, dass sowohl Geometrie, als auch Photometrie nur von einem Standpunkt aus aufgenommen werden, fehlt der Szene alles, was von diesem aus
verdeckt ist. Das heißt, dass sobald die Betrachtungsposition ungleich der Aufnahmeposition ist, es zu fehlerhafter Darstellung kommen kann, wenn dort
Verdeckung aufgetreten ist.
Abbildung 6.9 stellt abschließend nochmal die beiden Texturen an der gescannten Geometrie gegenüber. Aus dieser Perspektive aus dem Innenraum ist der
Unterschied der Auflösung sowie die Misregistrierung der Echtzeittextur gut
zu erkennen. Gut zu sehen ist auch, dass das Abtasten der Geometrie auf einer
72
6 Szenenakquise
Abbildung 6.9: Gegenüberstellung der Echtzeittextur (oben) und der hochaufgelösten Textur (unten).
73
6 Szenenakquise
nicht diffusen Oberfläche (in diesem Fall der Türklinke) zu einem Ausreißer
im Geometriemodell führt.
74
7 Zusammenfassung und Ausblick
Dieses abschließende Kapitel fasst noch einmal die wichtigsten Ergebnisse dieser Arbeit zusammen. Dabei werden auch Probleme diskutiert, die in zukünftiger Arbeit in Angriff genommen werden. Darüber hinaus befasst sich der
Abschnitt 7.2 mit weiteren Möglichkeiten des Systems, die sich während der
Arbeit entwickelt haben.
7.1 Zusammenfassung
In dieser Arbeit wurde ein hybrides computergesteuertes Kamerasystem vorgestellt, dass sich dazu eignet, Laserpointer-Tracking in realen Umgebungen
zu betreiben. Vom Aufbau und der Steuerung über dessen Kalibrierung wurde
gezeigt, was das System kann und wie es funktioniert. Neben der Fähigkeit,
einen Laserpunkt zu tracken bietet das System die Möglichkeit der Szenenakquise.
7.1.1 Kalibrierung
Die statische Kalibrierung des Systems besteht aus mehreren Kalibrierungen
der einzelnen Komponenten, die jedoch jeweils nur einmalig durchgeführt werden mussten. Für die dynamische Kalibrierung – also das Ermitteln von Position und Orientierung in einer Umgebung – wurden verschiedene Verfahren
vorgestellt und evaluiert. Zum einen sind dies Verfahren, die auf einer pose estimation aus der Computer Vision basieren. Eine andere Möglichkeit ist
das vorgestellte Verfahren, Geometriepunkte der Umgebung zu erfassen, anhand derer die Position und Orientierung des Systems ermittelt werden kann.
75
7 Zusammenfassung und Ausblick
Ein Referenzmodell der Umgebung wird verwendet, um die Abweichung der
gescannten Geometriepunkte zu realer Geometrie zu berechnen. Mit Hilfe eines Minimierungsverfahrens wird eine Transformation ermittelt, die diese Abweichung minimiert.
Die Evaluation hat gezeigt, dass die Kalibration noch fehlerbehaftet ist. Dabei
ist der Fehler die Summe vieler einzelner Fehler. Das fehlerbehaftete Referenzmodell mit samt der Referenzpunkte, welche zu jeder Kalibrationsmethode
verwendet wurde, trägt einen Teil zum Fehler bei. Eine klare und pauschale
Aussage, welches Verfahren das beste ist lässt sich anhand der Daten nicht machen. Um bessere Aussagen darüber treffen zu können, muss zunächst für ein
korrektes Referenzmodell gesorgt werden.
7.1.2 Laserpointer-Tracking
Das vorgestellte Kamerasystem ermöglicht Laserpointer-Tracking in beliebigen Umgebungen. Dies ermöglicht eine schnelle und intuitive Möglichkeit der
Interkation mit einem Computer. Durch die motorgesteuerte Detailkamera ist
es in der Lage den Laserpunkt zu verfolgen und zu lokalisieren. Verliert sie
den Laserpunkt, so ist die Kontextkamera in der Lage, einen groben Hinweis
zu geben, wo sich der Laserpunkt befindet. Die Arbeit hat einige Probleme und
Einschränkungen erläutert. So ist es der Kamera auf spiegelnden Flächen zum
Bespiel nicht möglich, den Laserpunkt zu finden. Das selbe gilt für den Fall,
dass der Laserpunkt aus Sicht der Kamera verdeckt ist. Lichtquellen haben sich
als störend herausgestellt, da das System sie nicht von einem Laserpunkt unterscheiden kann. Als Lösung dieses Problems wurden Masken verwendet, die
in das Kamerabild gerendert werden, bevor es ausgewertet wird.
So bietet das System eine zuverlässige Basis für Laserpointer-Interakion in realen Umgebungen. Die Genauigkeit der Kalibrierung ist ausschlaggebend für
die Genauigkeit des Trackings.
76
7 Zusammenfassung und Ausblick
7.1.3 Szenenakquise
Im letzten Kapitel wurde gezeigt, dass das Kamerasystem sich auch dazu eignen, Szenenakquise zu betreiben. Mit Hilfe des Lasermoduls kann die Umgebung systematisch abgetastet werden. Dabei werden jeweils Tiefeninformationen erfasst, resultierend aus der Abbildung des Laserpunktes im Kamerabild der Detailkamera. Um zu verhindern, dass planare Flächen überabgetastet
werden wurde ein adaptiver Algorithmus vorgestellt, welcher die Abtastrate
der Umgebung anpasst. Diese Art der Geometrieakquise spart Zeit und Daten gegenüber der Abtastung in einer konstanten Auflösung – ohne Details zu
verlieren.
Neben der Geometrie wurde auch die Photometrie der Szene erfasst um die
Geometrie damit texturieren zu können. Zwei Verfahren wurden präsentiert,
zum einen das Verwenden des Kamerabildes der Kontextkamera als Textur.
Diese liefert eine kontinuierliche Echtzeittextur – jedoch mit geringer Auflösung und Qualität. Ein bessere Qualität hat der Verfahren geliefert, eine Textur
aus einzelnen Kamerabildern der Detailkamera zusammenzusetzen. Das Problem hierbei ist die Konsistenz der Textur. Ein einheitliches Erscheinungsbild
– als sei die Textur ein Foto – ist, trotz Konstanz sämtlicher Kameraparameter
und einem weichen Überblenden zwischen den Bildern, nicht erreicht worden.
Jedoch geben die erfassten Szenen, wenn man sie als texturierte Geometriemodelle darstellt, einen guten Eindruck der Szene, die aus beliebigen Blickrichtungen betrachtet werden kann.
7.2 Ausblick
7.2.1 Laserpointer-Tracking
Das Laserpointertracking, wie es in dieser Arbeit vorgestellt wurde, kann ausschließlich Punkte auf Oberflächen der Geometrie (Wand, Decke ...) definieren. Man spricht in diesem Fall von einem 2,5 DOF1 Eingabegerät. Es ist aber
1 Degrees
of Freedom (Freiheitsgrade)
77
7 Zusammenfassung und Ausblick
yL
xL
zL
Abbildung 7.1: 6 DOF Laserpointertracking mit Hilfe eines Beugungsgitters
durchaus wünschenswert, an mehr Freiheitsgrade zu gelangen. Zum einen ist
momentan völlig unbekannt und auch unerheblich, wo sich der Benutzer und
damit auch der Laserpointer befindet. Zum anderen ist es gerade in stereoskopischen Anwendungen intressant, mit Objekten zu Interagieren, die sich nicht
auf der physikalischen Wand befinden, sondern davor oder dahinter.
Die Position und Orientierung des Laserpointers kann ermittelt werden, indem
man zwei um 90◦ versetzte Beugungsgitter unmittelbar vor den Laserpointer
montiert. Seine Projektion besteht dann nicht mehr nur aus einem Punkt, sondern aus einer Matrix von Punkten. Ist diese Matrix bekannt, kann man, mit
Hilfe eines Pose Estimation Algorithmuses für die extrinsische Kalibrierung einer Kamera, die Pose des Laserpointers ermitteln. Die Bildpunkte sind statisch
und entsprechend der Beugung des Laserstrahls, während die Objektpunkte
deren Abbildungen auf der Oberfläche sind. So lässt sich ein 6 DOF Tracking
des Laserpointers realisieren, was vergleichbar mit einem Stylus ist.
Möchte man jedoch über eine Distanz einen Punkt im Raum direkt definieren, so eignet sich das Verfahren nicht. Mit Hilfe von Stereoskopie lässt sich –
78
7 Zusammenfassung und Ausblick
PR
P
PL
Abbildung 7.2: Stereoskopischer Laserpointer
bei bekannter Betrachterposition – ein Punkt im Raum für den Betrachter, mit
Hilfe von zwei Abbildungen des Punktes P auf einer Oberfläche, darstellen.
Einer entspricht der perspektivischen Abbildung für das linke Auge PL , der
andere jener für das rechte Auge PR (vgl. Abbildung 7.2). Diese Darstellung
ist eindeutig und umkehrbar. So lässt sich mit einem System aus zwei Laserpointern, verbunden mit Headtracking, jeder Punkt im Raum definieren. Damit jedes Auge nur den für ihn bestimmten Laserpunkt sieht und ausserdem
die Kamera bzw. der Computer die Möglichkeit hat, die beiden Punkte einem
Auge zuzuordnen, scheint Zeit-Multiplex sinnvoll zu sein. Das heisst, der Benutzer trägt eine Shutterbrille und die beiden Laserpointer werden – zur Brille
synchron – geshuttert. Außerdem muss die Kamera synchronisiert werden um
den erkannten Laserpunkt dem richtigen Auge zuordnen zu können.
Neben der Entwicklung erweiterter Methoden des Laserpointertrackings besteht Bedarf, auf diese Trackingmethoden angepasste Interaktionstechniken zu
entwickeln. Das gilt sowohl für das in dieser Arbeit vorgestellte 2,5 DOF Tracking,
als auch für die beiden oben angerissenen Möglichkeiten.
79
7 Zusammenfassung und Ausblick
7.2.2 Szenenaquise
Diese Arbeit hat die Szenenakquise als einen netten Nebeneffekt vorgestellt,
den das Kamerasystem einem bietet. Die Ergebnisse sind sicher ausbaufähig.
Das Verfahren lässt sich durch Parallelisierung mit mehreren Laserpunkten beschleunigen [28]. Ausserdem kann ein Algorithmus, welcher den Bildinhalt
berücksicht, zu besseren Ergebnissen der Bildkomposition für die hochauflösende Textur führen [26].
Neben der Gewinnung von Geometrie und Photometrie sind Lichtquellen eine
für das Laserpointer-Tracking wichtige Komponente. Im Absatz 5.4.1 wird beschrieben, wie sie Laserpointer-Tracking stören und dass das Verwenden einer
Maskierung eine einfache Möglichkeit der Problembehebung darstellen. Die
Masken werden bislang manuell definiert, eine automatische Akquise störender Lichtquellen kann die Generierung solcher Masken automatisieren.
7.2.3 Kamerasystem
Die Kalibrierung des Kamerasystems ist bis dato noch zeitraubend und wenig zuverlässig. Hier besteht noch Handlungsbedarf für weiterführende Arbeit. Eine Idee ist es, das System mit Sensoren, die die Orientierung ermitteln
auszustatten. Zusätzlich werden einige wenige Tiefenwerte gemessen. Konkret
reicht ein Orientierungssensor in Verbindung mit einem Kompass aus, um die
gesamte Orientierung zu ermitteln. Fünf Tiefenwerte von orthogonalen Strahlen geben anschließend Aufschluss über die Position.
Neben der Weiterentwicklung des Setups bietet dieses weitere Anwendungsmöglichkeiten neben Laserpointer-Tracking und -interaktion. Diese Arbeit hat
mehr am Rande vorgestellt, wie es mit dem System möglich ist, Geometrie
sowie Photometrie der Umgebung aufzuzeichnen. Als wesentliche Einschränkung wurde die Verdeckung herausgestellt. Stellt man das System an mehreren
Positionen auf, so besteht die Möglichkeit, die jeweils gewonnenen Informationen über die Umgebung zu vereinen und somit bei geschickter Wahl der
Positionen sämtliche Verdeckung zu elimieren. Darüber hinaus ist auch die
80
7 Zusammenfassung und Ausblick
Aquise globaler Beleuchtungseffekte denkbar, oder die Gewinnung einer Reflectancemap. Außerdem eignet sich das kalibrierte System zur automatischen
Kalibrierung beliebig vieler Projektoren. Auch Video-See-Through hat kurz in
der Arbeit Verwendung gefunden, um die Masken für störende Lichtquellen
in den Videostream der Detailkamera zu integrieren. Dieses Verfahren bietet
jedoch weitere Möglichkeiten, die reale Umgebung zu erweitern. Der wesentliche Vorteil gegenüber projektorbasierter Erweiterung ist, dass eine beliebig
große Umgebung erweitert werden kann, ohne große Mengen von Projektoren
zu benötigen.
Diese Arbeit hat also die Grundlage gelegt für eine Menge zukünftiger Arbeit.
Es gibt immer was zu tun!
7.3 Danksagung
Diese Arbeit wäre ohne die Zuarbeit einiger Menschen nicht zustande gekommen, denen ich im Folgenden danken möchte. Zunächst danke ich Jun. Prof.
Dr. Oliver Bimber für die Betreuung der Arbeit. Desweiteren danke ich dem
Zweitprüfer der Arbeit Prof. Dr. Tom Gross, dass er sich die Zeit genommen
hat, meine Arbeit zu studieren. Den wesentlichsten Anteil zum Gelingen dieser Arbeit verdanke ich meinen Eltern, Irmgard Schenk-Kurz und Dr. Lothar
Kurz, ohne die ich vermutlich garnicht existent wäre. Ganz besonders danke
ich Ferry Häntsch, der die Hardware gebaut und programmiert hat, für seine Unterstützung und Eigeninitiative, das Kamerasystem kontinuierlich zu erweitern und zu verbessern. Desweiteren bedanke ich mich bei Daniel Kolster
der – trotz dessen, dass er selbst genug zu tun hat – sich bereit erklärt hat,
diese Arbeit korrekturzulesen, und sie um hunderte Kommata bereichert hat.
Ausserdem gilt mein Dank meinen sonstigen Laborkollegen, Freunden und
anderen Menschen die mich unterstützt haben. Vielen Dank!
81
A Evaluation der
Kalibrierungsverfahren
Dieser Anhang zeigt Fotos der beiden Evaluationsumgebungen in denen die
Kalibrierungsverfahren in Kapitel 4 evaluiert wurden. Die Räume befinden
sich beide im Dachgeschoss der Bauhausstraße 11.
82
A Evaluation der Kalibrierungsverfahren
Abbildung A.1: Bilder der ersten Testumgebung. Untere Reihe: Referenzmodell
83
A Evaluation der Kalibrierungsverfahren
Abbildung A.2: Bilder der zweiten Testumgebung. Untere Reihe: Referenzmodell
84
B Schaltpläne
85
B Schaltpläne
IC1
GND
(TOSC2)PC7
(TOSC1)PC6
(TDI)PC5
(TDO)PC4
(TMS)PC3
(TCK)PC2
PC1(SDA)
PC0(SCL)
C4
IN
OUT
C3
GND
(OC2)PD7
(ICP)PD6
(OC1A)PD5
(OC1B)PD4
(INT1)PD3
(INT0)PD2
(TXD)PD1
(RXD)PD0
R3
4,7k
16
15
8
19
24
27
28
R2
GND
GND GND
4
20
10k
GND@2
GND@1
USB
IC3
D+
DVBUS
GND
GND
17
C7
100n
JP1
1
2
X2-6
X2-4
X2-5
X2-3
16
15
14
13
12
11
10
9
GND
MICROMATCH-6
Q2
BC549C
VCCIO
VCC
USBDM
USBDP
NC
_RESET
NC
OSCI
OSCO
3V3OUT
FT232RL
TXD
RXD
_RTS
_CTS
_DTR
_DSR
_DCD
_RI
CBUS0
CBUS1
CBUS2
CBUS3
CBUS4
1
5
3
11
2
9
10
6
23
22
13
14
12
Laser Trigger
GND
MEGA32-A
AGND
GND
GND
GND
TEST
GND
100n
IC2
7805
GND
GND
C8
GND GND
100n
26
25
24
23
22
21
20
19
SPI-INTE
ERFACE
I²C BUS
X2-2
X2-1
T1
BPX81
GND
GND
GND
Reflexkoppler for hor. reference pos.
25
7
18
21
26
1000µ
GND
X3-2
C6
100n
X3-1
+
POWER SUPPLY
8-24V
X1-3
X1-4
X1-5
X1-6
3
2
1
44
43
42
41
40
R6
GND
18
6
39
VCC
(SCK)PB7
(MISO)PB6
(MOSI)PB5
(SS)PB4
(AIN1/OC0)PB3
(AIN0/INT2)PB2
(T1)PB1
(T0/XCK)PB0
LED1
20µ
AREF
AVCC
AGND
GND
+5V
X1-1
MICROMATCH-6 X1-2
10k
C5
GND
GND
GND
+
17
5
38
XTAL1
R4
29
27
28
XTAL2
30
31
32
33
34
35
36
37
300
8
GND
1
2
7
16MHz
C2
32p
Q1
GND
(ADC7)PA7
(ADC6)PA6
(ADC5)PA5
(ADC4)PA4
(ADC3)PA3
(ADC2)PA2
(ADC1)PA1
(ADC0)PA0
RESET
10k
1k +5V
4
R5
C1
GND
32p
+5V
R1
USB to RS232 Converter
GND
GND
Abbildung B.1: Schaltplan der Hauptplatine (entworfen und konstruiert von
Ferry Häntsch)
86
B Schaltpläne
External
Switch
Two wire serial Interface
1
SDA
SWI
20
1k
Connect to
GND or VBAT
SWI
/1/4W
2.7 nF
2
SCL
VBAT
19
3
VDD
OA1
18
4
GND
GND
17
5
TST
OA2
16
open
OB1
15
GND
GND
14
100 nF
1 µF
Tantalum
100 nF
6
7
Connect to
GND or VBAT
M
VBAT
8...29 V
1k
8
HW
9
10
OB2
13
CPN
VBAT
12
CPP
VCP
11
/1/4W
100 nF
2.7 nF
220 nF
16 V
220 nF
16 V
100 µF
Abbildung B.2: Schaltplan der Schrittmotorcontroller. Nachdruck aus TMC222
DATASHEET) [33]
87
Literaturverzeichnis
[1] K IRSTEIN , C. UND M UELLER , H. 1998. Interaction with a Projection Screen
Using a Camera-tracked Laser Pointer. In Proceedings of the 1998 Conference on
Multimedia Modeling (October 12 - 15, 1998). MMM. IEEE Computer Society,
Washington, DC, 191. 5
[2] O LSEN , D. R.
UND
N IELSEN , T. 2001. Laser pointer interaction. In Procee-
dings of the SIGCHI Conference on Human Factors in Computing Systems (Seattle, Washington, United States). CHI ’01. ACM Press, New York, NY, 17-22.
5
[3] P ECK , C. H. 2001. Useful parameters for the design of laser pointer interaction techniques. In CHI ’01 Extended Abstracts on Human Factors in Computing Systems (Seattle, Washington, March 31 - April 05, 2001). CHI ’01. ACM
Press, New York, NY, 461-462. 6
[4] M YERS , B. A., B HATNAGAR , R., N ICHOLS , J., P ECK , C. H., K ONG , D.,
M ILLER , R.,
UND
L ONG , A. C. 2002. Interacting at a distance: measuring
the performance of laser pointers and other devices. In Proceedings of the SIGCHI Conference on Human Factors in Computing Systems: Changing Our World,
Changing Ourselves (Minneapolis, Minnesota, USA, April 20 - 25, 2002). CHI
’02. ACM Press, New York, NY, 33-40. 6
[5] C HENG , K. UND P ULO , K. 2003. Direct interaction with large-scale display
systems using infrared laser tracking devices. In Proceedings of the Asia-Pacific
Symposium on information Visualisation - Volume 24 (Adelaide, Australia). T.
Pattison and B. Thomas, Eds. ACM International Conference Proceeding Series, vol. 142. Australian Computer Society, Darlinghurst, Australia, 67-74.
6
88
Literaturverzeichnis
[6] C AVENS , D., V OGT, F., F ELS , S.,
UND
M EITNER , M. 2002. Interacting with
the big screen: pointers to ponder. In CHI ’02 Extended Abstracts on Human
Factors in Computing Systems (Minneapolis, Minnesota, USA, April 20 - 25,
2002). CHI ’02. ACM Press, New York, NY, 678-679. 6
[7] A HLBORN , B. A., T HOMPSON , D., K REYLOS , O., H AMANN , B.,
UND
S TAADT, O. G. 2005. A practical system for laser pointer interaction on large
displays. In Proceedings of the ACM Symposium on Virtual Reality Software and
Technology (Monterey, CA, USA, November 07 - 09, 2005). VRST ’05. ACM
Press, New York, NY, 106-109. 6
[8] X. C HEN UND J. D AVIS . 2001. LumiPoint: Multi-User LaserBased Interaction on Large Tiled Displays. Technical report, Stanford University. 7
[9] J. O H
UND
W. S TUERZLINGER . 2002. Laser pointers as collaborative poin-
ting devices. In Proceedings of Graphics Interface 2002, 141-149. 7
[10] B I , X., S HI , Y., C HEN , X.,
UND
X IANG , P. 2005. Facilitating interaction
with large displays in smart spaces. In Proceedings of the 2005 Joint Conference
on Smart Objects and Ambient intelligence: innovative Context-Aware Services:
Usages and Technologies (Grenoble, France, October 12 - 14, 2005). sOc-EUSAI
’05, vol. 121. ACM Press, New York, NY, 105-110. 7
[11] M ATVEYEV, S. V. UND G ÖBEL , M. 2003. Direct interaction based on a twopoint laser pointer technique. In ACM SIGGRAPH 2003 Sketches & Applications (San Diego, California, July 27 - 31, 2003). SIGGRAPH ’03. ACM Press,
New York, NY, 1-1. 7
[12] M ATVEYEV, S. V.
UND
G ÖBEL , M. 2003. The optical tweezers: multiple-
point interaction technique. In Proceedings of the ACM Symposium on Virtual
Reality Software and Technology (Osaka, Japan, October 01 - 03, 2003). VRST
’03. ACM Press, New York, NY, 184-187. 7
[13] C RUZ -N EIRA , C., S ANDIN , D.J.
UND
D E FANTI T.A. 1993. Surround-
screen projection-based virtual reality: the design and implementation of the
CAVE. In Proceedings of the 20th annual conference on Computer graphics and interactive techniques. 135-142. 7
89
Literaturverzeichnis
[14] B IMBER , O., G RUNDHÖFER , A., Z EIDLER , T., D ANCH , D.,
PAKOS ,
UND
KA-
P. 2006. Compensating Indirect Scattering for Immersive and Semi-
Immersive Projection Displays. In Proceedings of IEEE Virtual Reality (IEEE
VR’06), 7
[15] V OIDA , S., P ODLASECK , M., K JELDSEN , R.,
UND
P INHANEZ , C. 2005. A
study on the manipulation of 2D objects in a projector/camera-based augmented reality environment. In Proceedings of the SIGCHI Conference on Human Factors in Computing Systems (Portland, Oregon, USA, April 02 - 07,
2005). CHI ’05. ACM Press, New York, NY, 611-620. 7
[16] G OODRIDGE , S. G. 1995. The environment understanding interface: detecting and tracking human activity through multimedia sensors. In Proceedings of the 1995 Conference of the Centre For Advanced Studies on Collaborative
Research (Toronto, Ontario, Canada, November 07 - 09, 1995). K. Bennet, M.
Gentleman, H. Johnson, and E. Kidd, Eds. IBM Centre for Advanced Studies
Conference. IBM Press, 24. 8
[17] U KITA , N. UND M ATSUYAMA , T. 2002. Real-time multi-target tracking by
cooperative distributed active vision agents. In Proceedings of the First international Joint Conference on Autonomous Agents and Multiagent Systems: Part 2
(Bologna, Italy, July 15 - 19, 2002). AAMAS ’02. ACM Press, New York, NY,
829-838. 8
[18] Z HOU , X., C OLLINS , R. T., K ANADE , T.,
UND
M ETES , P. 2003. A master-
slave system to acquire biometric imagery of humans at distance. In First
ACM SIGMM international Workshop on Video Surveillance (Berkeley, California, November 02 - 08, 2003). IWVS ’03. ACM Press, New York, NY, 113-120.
8
[19] Q URESHI , F. Z.
UND
T ERZOPOULOS , D. 2005. Surveillance camera sche-
duling: a virtual vision approach. In Proceedings of the Third ACM international Workshop on Video Surveillance & Sensor Networks (Hilton, Singapore,
November 11 - 11, 2005). VSSN ’05. ACM Press, New York, NY, 131-140. 8
[20] Y OSHIMI , B. H. UND P INGALI , G. S. 2002. A multimodal speaker detection and tracking system for teleconferencing. In Proceedings of the Tenth ACM
90
Literaturverzeichnis
international Conference on Multimedia (Juan-les-Pins, France, December 01 06, 2002). MULTIMEDIA ’02. ACM Press, New York, NY, 427-428. 9
[21] S TRUBBE , H.
UND
L EE , M. S. 2001. UI for a videoconference camera. In
CHI ’01 Extended Abstracts on Human Factors in Computing Systems (Seattle,
Washington, March 31 - April 05, 2001). CHI ’01. ACM Press, New York, NY,
333-334. 9
[22] L IAO , C., L IU , Q., K IMBER , D., C HIU , P., F OOTE , J.,
UND
W ILCOX , L.
2003. Shared interactive video for teleconferencing. In Proceedings of the Eleventh ACM international Conference on Multimedia (Berkeley, CA, USA, November 02 - 08, 2003). MULTIMEDIA ’03. ACM Press, New York, NY, 546554. 9
[23] L IU , Q., K IMBER , D., F OOTE , J., W ILCOX , L.,
UND
B ORECZKY, J. 2002.
FlySPEC: a multi-user video camera system with hybrid human and automatic control. In Proceedings of the Tenth ACM international Conference on Multimedia (Juan-les-Pins, France, December 01 - 06, 2002). MULTIMEDIA ’02.
ACM Press, New York, NY, 484-492. 9
[24] C HEN , Y., C LARK , D. W., F INKELSTEIN , A., H OUSEL , T. C.,
UND
L I , K.
2000. Automatic alignment of high-resolution multi-projector display using
an un-calibrated camera. In Proceedings of the Conference on Visualization ’00
(Salt Lake City, Utah, United States). IEEE Visualization. IEEE Computer Society Press, Los Alamitos, CA, 125-130. 9
[25] P INHANEZ , C., K JELDSEN , R., TANG , L., L EVAS , A., P ODLASECK , M.,
S UKAVIRIYA , N.,
UND
P INGALI , G. 2003. Creating touch-screens anywhere
with interactive projected displays. In Proceedings of the Eleventh ACM international Conference on Multimedia (Berkley, CA, USA, November 02 - 08,
2003). MULTIMEDIA ’03. ACM Press, New York, NY, 460-461. 9
[26] H EIKKILÄ , M.
UND
P IETIKÄINEN , M. 2005. An image mosaicing module
for wide-area surveillance. In Proceedings of the Third ACM international Workshop on Video Surveillance & Sensor Networks (Hilton, Singapore, November 11
- 11, 2005). VSSN ’05. ACM Press, New York, NY, 11-18. 10, 80
91
Literaturverzeichnis
[27] B AHMUTOV, G., ET AL . 2005. Depth Enhanced Panoramas. Second International Conference on Video, Vision, and Graphics. Edinburgh, July 2005. 10
[28] B AHMUTOV, G., P OPESCU , V., UND M UDURE , M. 2006. Efficient large scale acquisition of building interiors. In Proceedings of the Eurographics 2006. EG
06. Vienna, Austria. 10, 80
[29] B RENT, R.P. Algorithms for minimization without derivatives. PrenticeHall, Engelwood Cliffs, NJ, 1973. 38
[30] S CHERFGEN
D.
Kollision
von
Strahl
und
Dreieck.
http:
//www.scherfgen-software.net/index.php?action=
tutorials&topic=collision_2 (Stand: 12.11.2006) 51
[31] I NTEL C ORPORATION . Open source computer vision library reference manual, December 2000. http://sourceforge.net/projects/
opencvlibrary/. (Stand: 12.11.2006) 24, 32
[32] A LEXANDER
box
V ELIZHEV.
GML
C++
Camera
Calibration
Tool-
http://research.graphicon.ru/calibration/gml-c+
+-camera-calibration-toolbox.html. (Stand: 12.11.2006) 24
[33] TRINAMIC M OTION C ONTROL G MB H & C O . KG. TMC222 - DATASHEET. Micro Stepping Stepper Motor Controller / Driver with Two Wire
Serial Interface. (V. 1.05 / October 21, 2005). VII, 87
92