trackingsystem auf GPS Basis - Online

Transcription

trackingsystem auf GPS Basis - Online
Ein hochflexibles Multikameratrackingsystem auf GPS Basis
Miriam Schneider
DIPLOMARBEIT
eingereicht am
Fachhochschul-Masterstudiengang
Digitale Medien
in Hagenberg
im November 2007
© Copyright 2007 Miriam Schneider
Alle Rechte vorbehalten
ii
Erklärung
Hiermit erkläre ich an Eides statt, dass ich die vorliegende Arbeit selbstständig und ohne fremde Hilfe verfasst, andere als die angegebenen Quellen
und Hilfsmittel nicht benutzt und die aus anderen Quellen entnommenen
Stellen als solche gekennzeichnet habe.
Hagenberg, am 8. November 2007
Miriam Schneider
iii
Inhaltsverzeichnis
Erklärung
iii
Vorwort
vii
Kurzfassung
viii
Abstract
ix
1 Einleitung
1.1 Problemstellung und Zielsetzung . . . . . . . . . . . . . . . .
1.2 Gliederung der Arbeit . . . . . . . . . . . . . . . . . . . . . .
1
1
3
2 Methoden der Positionsbestimmung
2.1 Grundlagen zur Triangulation . . . . . . .
2.2 Methoden . . . . . . . . . . . . . . . . . .
2.2.1 GPS . . . . . . . . . . . . . . . . .
2.2.2 ARToolkit . . . . . . . . . . . . . .
2.2.3 Vermessung mit Theodoliten . . .
2.2.4 Stereokamera . . . . . . . . . . . .
2.2.5 Photogrammetrie . . . . . . . . . .
2.3 Verwandte Arbeiten . . . . . . . . . . . .
2.3.1 Unterwasser Positionsbestimmung
2.3.2 Positionsbestimmung mit Infrarot .
2.3.3 Positionsbestimmung in Videos . .
2.4 Vergleich der Systeme . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
5
5
6
6
9
9
10
11
13
13
15
18
19
3 Grundlagen
3.1 GPS . . . . . . . . . . . . . . . . . . .
3.1.1 Allgemeines . . . . . . . . . . .
3.1.2 WGS84 versus ECEF . . . . .
3.1.3 GPS auf portablen Computern
3.2 Objekterkennung . . . . . . . . . . . .
3.2.1 Computer Vision . . . . . . . .
3.2.2 Tracking . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
23
23
23
24
28
29
29
29
iv
.
.
.
.
.
.
.
.
.
.
.
.
.
.
v
INHALTSVERZEICHNIS
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
31
32
33
33
38
42
42
4 System
4.1 Aufbau . . . . . . . . . . . . . . . . . . . . .
4.1.1 Auflistung benötigter Hardware . . .
4.1.2 Aufstellung im Raum . . . . . . . .
4.1.3 Flexible Positionierung der Clients .
4.1.4 Testaufbau . . . . . . . . . . . . . .
4.1.5 Kosten . . . . . . . . . . . . . . . . .
4.2 Implementierung . . . . . . . . . . . . . . .
4.2.1 Übersicht der Aufgaben des Systems
4.2.2 Klassendiagramme . . . . . . . . . .
4.2.3 Video-input . . . . . . . . . . . . . .
4.2.4 Bildverarbeitung . . . . . . . . . . .
4.2.5 Berechnungen . . . . . . . . . . . . .
4.2.6 Kommunikationsmodell . . . . . . .
4.2.7 Darstellung . . . . . . . . . . . . . .
4.2.8 Bibliotheken . . . . . . . . . . . . . .
4.3 Diskussion . . . . . . . . . . . . . . . . . . .
4.3.1 GPS Ungenauigkeiten . . . . . . . .
4.3.2 Objekterkennung . . . . . . . . . . .
4.3.3 Schnittpunktberechnung . . . . . . .
4.3.4 Andere Ansätze . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
45
45
45
46
48
50
51
52
52
53
53
54
55
56
60
62
62
62
65
70
73
5 Anwendungen
5.1 Positionsbestimmung unter Wasser
5.2 Sicherheitstechnik . . . . . . . . . .
5.2.1 Datenschutz . . . . . . . . .
5.3 Computergestützte Reality-Spiele .
5.4 Kollisionswarnsysteme . . . . . . .
5.5 Verhaltensstudien . . . . . . . . . .
5.5.1 Konsumverhalten . . . . . .
5.5.2 Gruppenverhalten . . . . .
5.5.3 Arbeitsverhalten . . . . . .
5.6 Strömungstechnik . . . . . . . . . .
5.6.1 Windkanal . . . . . . . . .
5.7 Sport . . . . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
79
79
80
80
81
81
82
82
82
83
83
84
84
3.3
3.2.3 Schwerpunktberechnung
3.2.4 Vektor im Kameraraum
Mathematische Grundlagen . .
3.3.1 Optik . . . . . . . . . .
3.3.2 Schnittpunktberechnung
3.3.3 Field of View . . . . . .
3.3.4 Koordinatensysteme . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
vi
INHALTSVERZEICHNIS
6 Zusammenfassung
6.1 Erreichte Ziele . . . . . . . . . . .
6.2 Probleme . . . . . . . . . . . . .
6.2.1 Echtzeit . . . . . . . . . .
6.2.2 Ungenauigkeiten . . . . .
6.3 Weiterentwicklungen . . . . . . .
6.3.1 Unterwasser GPS . . . . .
6.3.2 Aufbereitung der Daten .
6.3.3 Tracken multipler Objekte
6.4 Resümee . . . . . . . . . . . . . .
A Definitionen
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
85
85
85
86
86
88
88
91
92
93
95
B Inhalt der DVD
97
B.1 Diplomarbeit . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
B.2 Trackingsystem . . . . . . . . . . . . . . . . . . . . . . . . . . 98
Literaturverzeichnis
99
Vorwort
Ich danke allen die mir bei der Erstellung dieser Arbeit geholfen haben. Im
Besonderen der University of Waikato, für die Bereitstellung eines Arbeitsplatzes während meines Austausches in Neuseeland. Außerdem meinen Eltern für ihre großartige Unterstützung jeglicher Art, meinem Betreuer Volker
Christian für die guten Ideen und unterstützenden Worte, Andreas Tairych,
Elisabeth Pauza und Georg Wittenburg fürs Korrekturlesen, Matt Jervis und
Marcus Prebble für die Motivation in antriebslosen Stunden, sowie natürlich
den Firmen Arnott’s und Nestle ohne deren TimTams bzw. Milo ich die
Arbeit nicht fertigstellen hätte können.
vii
Kurzfassung
Tracking von Objekten im 3D Raum ist ein Thema im Bereich der Computerwissenschaften für das es viele Anwendungen gibt. Es existieren schon
Systeme, welche die Position eines Objektes tracken können, wobei das bekannteste Beispiel das globale Positionierungssystem GPS ist. Positionsdaten
von diesen Systemen erhält man in Regel durch einen Empfänger, demnach
muss an dem zu trackenden Objekt ein Empfänger angebracht sein. Das kann
in einigen Fällen eine bedeutende Einschränkung darstellen, z. B. wenn Objekte unbemerkt oder mehrere Objekte mit einem System getrackt werden
sollen.
In dieser Arbeit wird ein System vorgestellt, welches diese Einschränkungen überwindet, indem es Objekte trackt, welche keine spezielle Hardware bei
sich tragen müssen. Stattdessen werden diese durch eine Gruppierung von,
zum Objekt gerichteten, Kameras getrackt, deren Position und Orientierung
bekannt ist. Für jede Kamera, welche das Objekt erkennt, wird ein Strahl
von der Kamera zum Objekt berechnet. Durch Position und Orientierung
der Kamera wird dieser Strahl in ein Weltkoordinatensystem umgerechnet.
Der Schnittpunkt dieser Strahlen kann anschließend berechnet werden um
die Position des Objektes in Weltkoordinaten zu bestimmen.
Das vorgestellte System beinhaltet mehrere Clients und einen zentralen
Server. Die Clients sind für die Strahlberechnung zuständig, während der
Server deren Schnittpunkt und damit die Objektposition berechnet. Jeder
Client besteht aus einer Kamera, Hardware um ihre Position und Orientierung zu bestimmen, sowie einem portablen PC um die Daten der Kamera
auszuwerten und den Strahl zu berechnen. Da die Position und Orientierung
dynamisch von der Hardware ermittelt wird und nicht manuell eingegeben
werden muss, ist das Setup neuer Clients einfach und schnell, außerdem ist
es möglich die Kameras während des Trackings zu bewegen.
Einige Anwendungen dieses Systems wären mit normalem GPS nicht zu
realisieren. Es könnte z. B. verwendet werden zum Tracken von Tauchern unter Wasser durch die Verwendung von abwärts gerichteten Kameras, welche
an der Wasseroberfläche schwimmen, zum Tracken von Personen auf öffentlichen Plätzen aus sicherheitstechnischen Gründen oder auch zum Tracken
von Spielern in Echtzeitspielen.
viii
Abstract
Tracking objects in 3D space is a topic of computer science that has many
applications. Systems already exist which can track the position of an object,
a well known example of is the Global Positioning System (GPS). However,
position data from these systems typically comes from a receiver of some
sort; thus to track an object requires that it has a receiver attached to it.
This can be a significant limitation in a number of cases, for example when
tracking objects discreetly or tracking multiple objects with a single system.
In this thesis a system is proposed that overcomes this limitation by tracking objects without requiring them to have attached any specific hardware.
Instead, objects are tracked by an arrangement of cameras whose position
and orientation are known, directed over the space in which the tracking occurs. For each camera to which the object is visible, a ray is calculated from
the camera to the object; using the position and orientation of the camera,
this ray is then converted into world co-ordinates. The intersection of these
rays can then be calculated to give the position of the object in world space.
The system proposed comprises a number of clients and a central server.
The clients are responsible for calculation of the rays, while the server calculates the intersection of these, thus giving the position of the object. Each
client consists of a camera, hardware to get its position and orientation, and
a mobile PC to process data from the camera and generate the ray. As the
position and orientation data is generated dynamically by hardware, rather
than set statically, setup of new clients is fast and simple, and it is also
possible to move cameras during tracking.
There are a number of applications for this system that would have been
impossible with GPS. It could be used to track divers underwater, through
the use of downward facing cameras on the water surface; to track people
within spaces for surveillance purposes; or to track players within reality
games.
ix
Kapitel 1
Einleitung
1.1
Problemstellung und Zielsetzung
Objektpositionen zu ermitteln ist ein wichtiges Thema im Bereich der Computerwissenschaften, speziell im Bereich der Mensch-Maschine-Kommunikation, und es gibt verschiedenste Vorgehensweisen für diese Problemstellung.
Bei bereits bestehenden Systemen müssen zur Erfassung der Position
des Zielobjekts Hilfseinrichtungen wie GPS-Empfänger, Marker, magnetische Tracker oder Ähnliches angebracht werden. Andere Systeme benötigen
zwar keine zusätzliche Hardware, jedoch Kalibrierungsschritte wie z. B. die
Photogrammetrie (siehe Abschnitt 2.2.5).
Im hier vorgestellten System wird beim Tracking mit Kameras aus den
Kameradaten die Position eines Objekts im Weltkoordinatensystem ermittelt. Die entscheidenden Vorteile dieses Systems sind die Anwendung bereits
ausgereifter und erprobter Komponenten, sowie die Einsparung zur Positionsbestimmung benötigter signalgebender Einrichtungen am Zielobjekt. Das
Objekt soll also unbemerkt, ohne lästige Hardware oder Marker, und auch
ohne langwieriges Setup des Systems, getrackt werden.
Das im Rahmen dieser Diplomarbeit ausgearbeitete System beruht auf
folgendem Prinzip: Das zu überwachende Gebiet wird von Kameras erfasst,
deren Position und Orientierung im globalen Weltkoordinatensystem bekannt sind. Als globales Koordinatensystem wird das für GPS übliche WGS84
verwendet, welches Breiten- und Längengrade sowie die Höhe über dem Meeresspiegel angibt. Diese Kameras filmen das Gebiet aus unterschiedlichen
Perspektiven und suchen im jeweiligen Bild das Zielobjekt. Ist dieses gefunden, wird der Zentralstrahl vom optischen Zentrum der Kamera aus, deren
Optik bekannt ist, in Richtung des Objektes berechnet. Anschließend werden
diese Daten an einen Server übermittelt, welcher daraus die Objektposition,
mittels Schnittpunktberechnung aller Zentralstrahlen im Weltkoordinatensystem, bestimmt. Da aufgrund der Ungenauigkeiten der Anordnung die Berechnung eines echten Schnittpunktes nicht möglich ist, wird der Punkt mit
1
2
KAPITEL 1. EINLEITUNG
N
W
O
S
Abbildung 1.1: Die generelle Idee dieses Projektes besteht darin, Objektpositionen zu ermitteln, ohne dass diese Objekte Hardware oder Marker bei sich
tragen müssen. Wenn sich das Objekt (grüner Stern) im Blickfeld mehrerer
Kameras, deren Position und Orientierung bekannt sind, befindet, werden
mit Hilfe dieser Informationen Strahlen von jeder Kamera zu dem Objekt
berechnet. Im Schnittpunkt dieser Strahlen befindet sich das Objekt.
dem minimalen Abstand der Kamerastrahlen zueinander als „Schnittpunkt“
für die weiteren Berechnungen herangezogen.
Die optischen Zentren der Objektive bilden jeweils den Ursprung eines
lokalen Koordinatensystems, in dem die durch ~x und ~y aufgespannte Ebene
parallel zur Sensorebene und ~z in Richtung der optischen Achse ausgerichtet
ist. Die X-Achse entspricht der Breite des Sensors, die Y -Achse entspricht
der Höhe des Sensors. Die Lage dieser Koordinatensysteme im Weltkoordinatensystem sind natürlich von Kamera zu Kamera je nach Position und
Orientierung unterschiedlich und müssen für weitere Berechnungen in ein
globales Koordinatensystem transformiert werden.
Die zentralen Aufgaben des hier vorgestellten Systems bestehen also
in der Objekterkennung, Strahlberechnung für jedes Bild, sowie der Erfassung der Position und Orientierung der Kameras und der anschließenden Schnittpunktberechnung am Server. Anwendung kann das MultikameraTrackingsystem vor allem in Bereichen finden, in denen normale GPS-Empfänger nicht verwendet werden können oder nicht verwendet werden wollen.
Die Vorteile liegen darin, dass das Objekt nichts Spezielles bei sich tragen
muss, also eine erhebliche Flexibilität in seiner Bewegung erfährt bzw. auch
nicht wissen muss, dass es getrackt wird. Zusätzlich ist das System so aufgebaut, dass es keiner manuellen Konfiguration bedarf. Es können so viele
Kameras wie notwendig (mindestens jedoch zwei) in jeder gewünschten Posi-
KAPITEL 1. EINLEITUNG
3
tion angebracht werden ohne Einstellungen im Programm ändern zu müssen,
da das System Position und Orientierung mittels GPS-Empfänger, Kompass
und Neigungssensor an der Kamera von selbst erkennt.
Die oben erwähnte Photogrammetrie verwendet auch das Prinzip der
Triangulation (Schneidung der Strahlen) zur Positionsbestimmung. Durch
bekannte Referenzpunkte im Raum wird zuerst durch die Bündelblockausgleichung (siehe Abschnitt 2.2.5) die innere und äußere Orientierung der Kameras ermittelt, bevor mit der eigentlichen Objektpositionsbestimmung begonnen wird. Im Gegensatz zum beschriebenen Multikameratrackingsystem,
bei dem die äußere Orientierung durch Hardware ermittelt wird, und die innere Orientierung bekannt sein muss. Die Ergebnisse der Photogrammetrie
sind sehr genau, und die Fehler der errechneten Objektpositionen damit sehr
gering, jedoch ist sie nicht so flexibel wie das hier vorgestellte System. Nachdem die Kalibrierung durchgeführt wurde, läßt sich das Setup nicht mehr
verändern, die Kameras können nicht mehr bewegt werden.
1.2
Gliederung der Arbeit
In dieser Arbeit werden die Funktionsweise dieses Systems sowie die Grundlagen für die verwendeten Techniken beschrieben, und die Schwierigkeiten,
die bei diesem Projekt entstanden sind, erläutert. Zusätzlich wird auf ähnliche Systeme sowie deren Vor- und Nachteile eingegangen und ein Ausblick
in die Zukunft des Projektes gegeben.
Kapitel 2: Dieses Kapitel beschäftigt sich mit den Methoden der Positionsbestimmung. Die Grundlagen zur Triangulation, sowie Anwendungen,
welche diese Methode verwenden, werden beschrieben.
Kapitel 3: In diesem Kapitel werden die Prinzipien, die zur Realisierung
des Systems angewendet worden sind, erklärt. Es handelt sich dabei um das
Globale Positionierungssystem GPS, Techniken zur Objekterkennung und
die mathematischen Grundlagen zur Triangulation. Probleme, die GPS mit
sich bringt sowie Verbesserungs- bzw. Lösungsansätze werden hier vorgestellt.
Kapitel 4: Die Realisierung des Systems wird in diesem Kapitel vorgestellt. Diese umfasst den technischen Aufbau und die Implementierung. Es
wird der Testaufbau beschrieben und auf Besonderheiten bei der Aufstellung
der Clients eingegangen. Außerdem werden die zur Realisierung verwendeten
Technologien sowie die Funktionalität und Struktur des Programms erläutert. Es folgt eine Diskussion der verwendeten Techniken und eine Vorstellung
anderer gängiger Techniken zur 3D Rekonstruktion.
Kapitel 5: Hier werden dem System verwandte Arbeiten unter anderem
in den Bereichen Unterwasser-Positionsbestimmung, Sicherheitstechnik und
Photogrammetrie vorgestellt. Es wird auf die verschiedenen Ansätze und
auf die Unterschiede zu dem hier vorgestellten Multikamera-Trackingsystem
KAPITEL 1. EINLEITUNG
4
eingegangen.
Kapitel 6: Abschließend wird auf die bei der Realisierung aufgetretenen
Probleme eingegangen und ein Ausblick auf mögliche Weiterentwicklungen
gegeben. Ein Resümee über das Projekt beendet schließlich die Arbeit.
Kapitel 2
Methoden der
Positionsbestimmung
In diesem Kapitel wird auf Theorie und Anwendungen der Positionsbestimmung eingegangen. Es gibt viele verschiedene Ansätze, um Positionswerte
zu errechnen. Die in diesem Projekt verwendete Methode nennt sich Triangulation und verwendet vorwiegend Trigonometrie zur Bestimmung von
Objektpositionen durch Entfernungen und Winkel.
2.1
Grundlagen zur Triangulation
Trigonometrie ist die Lehre von den Relationen zwischen Winkeln und Seiten von Dreiecken. Durch Messungen mehrerer in Bezug stehender Dreiecke,
können Positionen im Raum ermittelt werden. Diese Ermittlungen werden
mit Hilfe von Winkelfunktionen durchgeführt.
GPS, Stereokameras, die Photogrammetrie und andere Methoden verwenden die Triangulation (siehe Abbildung 2.1) zur Positionsbestimmung.
Bei diesem Verfahren werden Objektpositionen durch das Schneiden von
Strahlen im Raum ermittelt. Bekannt sind mehrere Positionen, von denen
aus ein Objekt geortet und ein Strahl zu diesem berechnet wird. Durch Positionen und Richtungsstrahlen zum Objekt läßt sich im Schnittpunkt dieser Strahlen die gesuchte Objektposition bestimmen. Die Strahlen können
durch verschiedene Methoden ermittelt werden. Zum Beispiel optisch, durch
Fotografieren eines Objektes, durch magnetisches Tracking oder auch durch
Ultraschall und Nutzung von Laufzeitunterschieden. Im folgenden Abschnitt
2.2 werden werden einige Beispiele der Positionsbestimmung vorgestellt, bei
denen Triangulation verwendet wird.
In [14] stellten Richard Hartley und Peter Sturm eine Methode der Triagulation vor, welche für affine und projektive Rekonstruktionen von dreidimensionalen Punkten im Raum verwendet werden kann. Zusätzlich wird
eine Untersuchung anderer Triangulationsmethoden vorgestellt. Dabei wer5
KAPITEL 2. METHODEN DER POSITIONSBESTIMMUNG
6
y
O(x,y)
b
a
b
P2(x2,y2)
a
P1 (x1,y1)
x
Abbildung 2.1: Mit Hilfe der Trigonometrie, der Lehre von den Relationen zwischen Winkeln und Seiten von Dreiecken, kann bei der Triangulation
der Schnittpunkt zwischen den Strahlen a und b berechnet werden. Sind die
Positionen P1 und P2 sowie die Winkel α und β bekannt, läßt sich die Objektposition O bestimmen. Aus der Länge der Strahlen und deren Startpositionen
läßt sich genauso die Objektposition ermitteln.
den die, hier im Projekt verwendete, Mid-Point Methode, sowie lineare, iterative und nicht-iterative Ansätze, und zwei polynomische Methoden bezüglich
ihrer Genauigkeit und Geschwindigkeit verglichen. Mid-Point ist ein linearer
Ansatz, bei welchem zur Positionsbestimmung, der Mittelpunkt des kleinsten
Abstandes verwendet wird, da durch Rauschen und Ungenauigkeiten kein
exakter Schnittpunkt zustande kommt. Untersuchungsgegenstand waren die
Zeit und die Genauigkeit der Positionsbestimmung. Die polynomischen Methoden für Werte aus maximal zwei Bildern waren in der Untersuchung mit
Abstand die genauesten, jedoch auch die langsamsten (7 - 15 mal langsamer
als lineare oder Mid-Point Methoden). Iterative, lineare und Mid-Point Methoden verarbeiten die Punkte erheblich schneller und können auch Daten
von mehr als zwei Kameras behandeln.
2.2
Methoden
In den folgenden Absätzen werden Methoden vorgestellt, die unterschiedliche
trigonometrische Ansätze zur Positionsbestimmung verwenden.
2.2.1
GPS
Zuerst wird auf die Grundlagen und die Funktionsweise des globalen Positionierungssystems GPS eingegangen. Besonders wird die Triangulation und
anschließend Anwendungsbeispiele zu GPS beschrieben.
KAPITEL 2. METHODEN DER POSITIONSBESTIMMUNG
7
Funktionsweise
Die Funktionsweise von GPS beruht auf der Messung von Laufzeitunterschieden von Signalen verschiedener Satelliten an einem bestimmten Punkt.
Da sich das Signal mit Lichtgeschwindigkeit1 ausbreitet, braucht es bei einer Höhe der Umlaufbahn der Satelliten von 20183 km gerade einmal 0,067
Sekunden vom Sender zum Empfänger, wenn sich der Empfänger in direkter
Linie zum Erdmittelpunkt befindet. Schon geringste Zeitunterschiede wirken
sich stark auf die Position aus. Um diese Laufzeiten messen zu können, sind
hochgenaue Uhren nötig, welche normale GPS-Empfänger nicht besitzen. Die
Zeit muss daher exakt aus den GPS-Signalen ermittelt werden. Neben den
Raumkoordinaten X, Y und Z ist daher die Zeit auch noch eine Unbekannte
im System. Um die vier Unbekannten zu bestimmen sind Signale von mindestens vier Satelliten notwendig. Zeit und Ort werden dabei unabhängig
voneinander bestimmt.
Triangulation
Jeder Satellit sendet ein Signal, das seine genaue Position und die Sendezeit enthält, zu einem Empfänger. Dieser ermittelt mit der Sende- und
Empfangszeit die Laufzeit des Signals. Zusätzlich werden die Laufzeitunterschiede zwischen allen Satelliten bestimmt. Das Signal eines Einzelnen ist
nicht aussagekräftig, da sich der Empfänger überall auf einer, den Satelliten
umgebenden Kugel, mit dem Radius der Distanz zwischen Sender und Empfänger, befinden könnte. Durch zwei Satelliten kann die Position auf einen
Kreis eingeschränkt werden, und zwar auf den Schnittkreis der zwei Kugeln.
Durch einen dritten Satelliten kann die Position auf zwei Möglichkeiten eingeschränkt werden. Auf die Schnittpunkte des Schnittkreises mit der Kugel
des dritten Satelliten. Erst durch die Bestimmung der Laufzeiten von vier
Satelliten kann die Empfangsposition genau bestimmt werden. Abbildung
2.2 zeigt das Grundprinzip der Triangulation im zweidimensionalen Raum.
Die roten Kreise symbolisieren die Umkreise der Laufzeit. Im grünen Punkt,
im Schnittpunkt der Kreise, befindet sich die Objektposition.
Ein Vorteil von GPS für dieses Projekt wäre die Tatsache, dass sich durch
den Dopplereffekt bzw. die numerische Differenzierung des Ortes nach der
Zeit die Geschwindigkeit ermitteln läßt, und GPS damit als Kompass verwendet werden kann. Das funktioniert jedoch nur, wenn der GPS-Empfänger
bewegt wird.
Durch seine Konstruktion funktioniert GPS nur über Wasser, also bis
zur Erdoberfläche auf Seehöhe Null. Andere Systeme, die GPS unter Wasser
bereitstellen, werden weiter unten beschrieben.
1
Lichtgeschwindigkeit = 299.792.458 m/s
KAPITEL 2. METHODEN DER POSITIONSBESTIMMUNG
8
Abbildung 2.2: Diese Abbildung zeigt das zweidimensionale Grundprinzip
der Triangulation. Die roten Kreise stellen den Umkreis der Laufzeit dar. Je
größer diese Kreise sind, desto länger ist die Laufzeit, also die Entfernung
zwischen Satellit und Empfänger. Im Schnittpunkt aller drei Laufzeitkreise
befindet sich der GPS-Empfänger. Zwei Satelliten schränken die mögliche
Objektposition nur auf die Positionen in den zwei Schnittpunkten ihrer Umkreise ein. Im dreidimensionalen Raum wird, da eine Dimension mehr bestimmt werden muss, auch ein Satellit mehr, also vier insgesamt, benötigt
um die Objektposition eindeutig zu ermitteln.
Anwendung
Obwohl NAVSTAR GPS eigentlich für militärische Anwendungen entwickelt
wurde, gibt es heutzutage eine große Anzahl von zivilen Anwendungen. Die
Bekannteste ist vermutlich die Autonavigation, wobei dem System eine Straßenkarte bekannt ist und mit Hilfe von GPS die aktuelle Position bestimmt
wird um damit eine Route vom aktuellen Standpunkt zu einem gewählten
Zielpunkt zu berechnen. Der größte Vorteil ergibt sich jedoch für die zivile Luftfahrt, bei der die Navigationssysteme mittlerweile alle GPS-gestützt
sind. Bei Verwendung des genaueren P/Y Codes und der Verwendung von
Differential GPS sind sogar automatische Landungen möglich. Genau wie
Flugzeuge verwenden auch Schiffe immer häufiger GPS zur Navigation.
Es ist jedoch jegliche Art von Navigation möglich. GPS Navigation hat
sich z. B. in unerforschtem Gelände als hilfreich erwiesen. Auch Freizeitaktivitäten wie GPS unterstützte Schatzsuchen, auch Geocoaching genannt, sind
heute beliebte Anwendungen von GPS. Es hat sich rund um diesen „Sport“
eine große Fangemeinschaft gebildet.
KAPITEL 2. METHODEN DER POSITIONSBESTIMMUNG
2.2.2
9
ARToolkit
Bei der Augmented Reality (AR) werden computergenerierte Objekte in die
reale Welt eingespielt. Es können also z. B. dreidimensionale Modelle einem
Live-Videostream hinzugefügt werden. Das Endergebnis, also die Kombination aus Realität und computergenerierten Objekten, kann entweder auf
einem Monitor, durch ein Head Mounted Display, also eine Brille, deren Gläser ein Video abspielen, oder auch auf einem portablen Computer betrachtet
werden. Die Schwierigkeit dabei ist die Platzierung der Objekte an der richtigen Stelle im dreidimensionalen Raum. Das Weltkoordinatensystem wird
also vom Betrachter aus ermittelt.
Dr. Hirokazu Kato von der Osaka University entwickelte ein System, welches durch optisches Tracking von Markern Positionen im Raum ermittelt.
Dabei handelt es sich um die ARToolKit Bibliothek für Open GL in C++.
Verwendet werden spezielle ARToolKit Marker, die aus schwarzen, nicht ausgefüllten, Quadraten bestehen. Diese haben je nach Größe einen Rand von
ca. zwei Zentimetern und besitzen je ein einzigartiges, schwarzes Symbol im
Zentrum des Quadrates. Die prinzipielle Funktionsweise des Systems besteht
darin, in jedem Videobild nach quadratischen Objekten zu suchen. Sobald
eine solche Region gefunden wird, führen die Bildverarbeitungsoperationen
ein Template Matching zwischen dem Symbol des Videos und allen, dem System bekannten, Symbolen durch. Bei erfolgreichem Vergleich wird die Position des Markers anhand seiner Größe und Rotation relativ zum Betrachter,
also der Kamera, durch Winkelfunktionen berechnet. An dieser Position befindet sich dann standardmäßig der Ursprung des Weltkoordinatensystems
und durch OpenGL können nun Objekte in Relation zum Koordinatensystem
gezeichnet werden [18].
Dieser Ansatz benötigt nur eine Kamera zur Positionsbestimmung, jedoch ist nur die Relation zwischen Kamera und Marker errechenbar und
nicht eine absolute Position in der Welt. Das Projekt ist unter der GNU
General Public License veröffentlicht und wird neben der Osaka University
auch vom Human Interface Technology Laboratory (HITLab) der University of Washington und vom HIT Lab NZ der University of Canterbury in
Neuseeland unterstützt und weiterentwickelt.
2.2.3
Vermessung mit Theodoliten
Theodolite sind Messinstrumente, die vorwiegend in der Landvermessung
und Kartographie verwendet werden. Zusätzliche Anwendungsgebiete umfassen das Ingenieurwesen, Überwachungstechnik und sogar spezielle Anwendungen wie Meteorologie oder Raketenstarttechnik. Mit Theodoliten kann
man die Abweichung vom horizontalen und vertikalen Winkel von der eigenen Position zu einem Objekt erfassen. Das Messgerät wird zunächst an
seiner Position mit einem Lot in vertikaler Richtung genau zur lokalen Erdan-
KAPITEL 2. METHODEN DER POSITIONSBESTIMMUNG
Vertikale
Achse
Objektiv
V
Horizontale
Achse
10
H
el
nk
Wi
r
e
l
ka
O
ti
Ver
S
Sichtachse
Vertikaler
Kreis
00
0,
0
go
n
inkel
ztaler W
Horizontaler
Kreis
Horizon
Abbildung 2.3: Hier wird der Aufbau eines Theodoliten beschrieben. Die
Sichtachse stellt mit Sucher und Objektiv das Zielfernrohr dar. Die vertikale
Achse muss mit der Erdanziehung im Lot sein und die Differenzwinkel zum
Objekt können an den Kreisen abgelesen werden.
ziehung ausgerichtet. Außerdem besitzt jeder Theodolit ein Fernrohr, welches
in zwei zueinander senkrecht stehenden Achsen schwenkbar ist. Dieses wird
auf das zu messende Objekt ausgerichtet und die vertikale und horizontale
Abweichung gemessen. Der horizontale Winkel gibt dann die Ausrichtung in
Himmelsrichtung wieder, der Vertikale bestimmt die Höhe.
Durch die bekannte Größe (z. B. Zollstöcke bei der Landvermessung) des
Objektes kann die Entfernung mit Hilfe der Trigonometrie errechnet werden.
Bei der Landvermessung muss ein Ausgangspunkt bekannt sein um weitere
Punkte zu bestimmen. Diese sind dem Katasteramt bekannt und z. B. durch
Grenzsteine im ländlichen Gebiet markiert. Sind zwei dieser Punkte bekannt,
muss kein Kompass verwendet werden um den horizontalen Winkel zu bestimmen, sondern sie ist durch die Ausrichtung der Punkte zueinander bestimmt.
Abbildung 2.3 zeigt den theoretischen Aufbau eines Theodoliten mit seinen Achsen, den Winkeln und dem Fernrohr.
2.2.4
Stereokamera
Eine Möglichkeit um Tiefenbilder zu errechnen ist die Verwendung von Stereokameras. Sie bestehen aus zwei optischen Systemen, die starr miteinander
KAPITEL 2. METHODEN DER POSITIONSBESTIMMUNG
11
Abbildung 2.4: Diese Abbildung zeigt die Funktionsweise einer Stereokamera. Sie besitzt zwei optische Systeme, bei welchen alle Einstellungen ident
sind. Es werden also zeitgleich zwei versetzte Bilder aufgenommen. Wenn der
Abstand zwischen den Linsen bekannt ist, kann durch Trigonometrie der Abstand zwischen Kamera und aufgenommenen Objekten berechnet werden. Es
können also Tiefenbilder erstellt oder dreidimensionale Abbildungen der Umgebung erzeugt werden. Durch ein Stereoskop betrachtet, ergeben die beiden
Bilder einen Raumeindruck.
verbunden sind bzw. deren Abstände und Ausrichtungen zueinander bekannt
sind. Die beiden optischen Systeme lösen zeitgleich mit der gleichen Schärfeeinstellung und den gleichen Belichtungswerten aus und ergeben damit
zwei stereoskopische Halbbilder. Die beiden Objektive haben normalerweise
einen Abstand, der dem durchschnittlichen Augenabstand eines Menschen
entspricht (60 bis 70mm). Werden die beiden Bilder in einem Stereoskop betrachtet, entsteht ein Tiefeneindruck, der dem menschlichen Sehen gleicht.
Ein Stereoskop ist ein Apparat, mit welchem zwei Bilder gleichzeitig, jeweils
mit nur einem Auge angesehen werden können. Das menschliche Gehirn fügt
diese beiden zweidimensionalen Bilder durch trigonometrische Funktionen
zu einem dreidimensionalen Bild zusammen.
Durch die bekannten Proportionen zwischen den Kameras kann, sofern
auch die Optik der Kameras bekannt ist, die Tiefe von gleichen Punkten im
Bild berechnet werden. Ergebnis könnte damit z. B. ein Z-Buffer Bild sein,
welches Tiefe in Helligkeitswerten darstellt, oder aber auch ein Profil der
Umgebung als dreidimensionales Modell der Punkte. Um dieses Ergebnis zu
erhalten müssen diverse Bildverarbeitungsschritte durchgeführt werden. Die
gleichen Punkte lassen sich z. B. durch Erkennen gleicher Muster ermitteln.
Die Verknüpfung der Punkte beider Bilder und die Bestimmung der Tiefe
erfordert wieder Triangulation.
2.2.5
Photogrammetrie
Photogrammetrie ist eine Technik zur Bestimmung der geometrischen Beschaffenheit von Objekten durch die Untersuchung von Fotos. Es können
dreidimensionale Koordinaten eines Objektes durch Messungen von mehreren Bildern aus verschiedenen Richtungen ermittelt werden. Vor der Messung
KAPITEL 2. METHODEN DER POSITIONSBESTIMMUNG
12
werden die verschiedenen Parameter der optischen Systeme durch Rückrechnung von genau im Raum bekannten Positionen berechnet. Diese Parameter
sind:
1. Die äußere Orientierung der Kamera
2. Die innere Orientierung der Kamera
Ad 1. Unter der äußeren Orientierung einer Kamera versteht man deren
Position (X, Y und Z-Koordinaten) und Orientierung (α, β und γ).
Ad 2. Die innere Orientierung einer Kamera entspricht ihrer Sensorgröße,
dem Abstand zwischen Sensor und optischem Zentrum sowie den Abbildungseigenschaften ihres optischen Systems. Dabei werden auch Abbildungsfehler miteinberechnet und haben somit keine negativen Auswirkungen auf
das Ergebnis.
Zur Ermittlung der Parameter (Kalibrierung) wird die Bündelblock-Ausgleichsrechnung verwendet. Sind diese Parameter bekannt, können alle beliebigen Objekte dreidimensional erfasst werden. Die Triangulation erfolgt
von den Kameras zu den Punkten des Objektes, wobei die Schnittpunkte
der berechneten Strahlen die Objektpunkte ergeben. Photogrammetrie wird
in verschiedensten Bereichen eingesetzt wie z. B. in der Kartographierung,
in der Architektur, Geologie und bei polizeilichen Ermittlungen. Schon 1851
entwickelte der französische Offizier Aime Laussedat die ersten photogrammetrischen Apparate und Methoden. Er wird als Erfinder der Photogrammetrie angesehen [10] [16].
Bündelblock-Ausgleichsrechnung
Bei der Bündelblock-Ausgleichsrechnung kann nicht nur ein Bildpaar, sondern es können beliebig viele zusammenhängende Bilder (Block) ausgewertet
werden. Bündel deshalb, weil jeder Objektpunkt durch Strahlen von den Kameras zu ihm definiert ist, und diese sich im Objektpunkt schneiden (bündeln). Jeder Objektpunkt muss von mindestens zwei Kameras erfasst worden sein um in die Berechnung einfließen zu können. Ansonsten könnte kein
Schnittpunkt berechnet werden.
Die Erkennung der Objektpunkte in den Bildern geschieht normalerweise
automatisch durch Mustererkennung. Es werden für jeden Punkt und jede
Kamera Gleichungen aufgestellt, welche ein Gleichungssystem ergeben, dessen Lösung die Koordinaten der Objektpunkte im dreidimensionalen Raum
ergibt. Zuerst wird zur Kalibrierung die Bündelblockausgleichung durchgeführt. Durch Fotografieren bekannter Objekte werden die innere und äußere
Orientierung der Kameras berechnet. Im Anschluss an die Ausgleichungsberechnung kann, da alle Freiheitsgrade des Systems bekannt sind, jedes
beliebige Objekt dreidimensional erfasst werden [37].
KAPITEL 2. METHODEN DER POSITIONSBESTIMMUNG
2.3
13
Verwandte Arbeiten
Dieser Abschnitt beschäftigt sich mit vorhandenen Arbeiten und allgemeinen Entwicklungen in den Bereichen Positionsbestimmung und optisches
Tracking. Gesondert wird auf die Positionsbestimmung unter Wasser durch
Ultraschall eingegangen.
2.3.1
Unterwasser Positionsbestimmung
Unter Wasser haben sich bis jetzt akustische Systeme zur Positionsbestimmung durchgesetzt. Da Schall gute Ausbreitungseigenschaften im Wasser besitzt, können Distanzen durch genau berechnete Laufzeitunterschiede exakt
ermittelt werden. Durch diese Distanzen zu bekannten Objekten, ist es mit
Hilfe von Triangulation möglich, die gesuchte Objektposition zu bestimmen.
Underwater geopositioning methods and apparatus
Maurice Green et al. haben in [11] im April 2005 ein System unter dem Namen Underwater geopositioning methods and apparatus entwickelt, welches
ermöglicht, Positionen unter Wasser zu ermitteln. Es besteht aus dem Basissystem mit Signalgeber, dessen genaue Position und Orientierung bekannt
sind, sowie einem autonomen System, von welchem die Position bestimmt
werden soll. Durch Kommunikation zwischen den beiden Systemen über Ultraschall wird die Objektposition ermittelt. Das autonome System besitzt
einen Empfänger und eine, mit dem Basissystem, synchronisierte Systemzeit, durch die die Laufzeit des gesendeten Signals ermittelt wird. Mit der
bekannten Ausbreitungsgeschwindigkeit von Ultraschall in Wasser von rund
1500 m/s wird die Distanz zwischen beiden Systemen errechnet. Die Tiefe
des autonomen Systems wird durch einen Tiefenmesser ermittelt. Durch den,
mit dem Signal des Signalgebers der Basisstation übermittelten, Abstrahlwinkel, kann der Empfänger seine eigene Position ermitteln.
In einer Untersuchung wurde auf Verfahren bei der Positionsbestimmung
unter Wasser näher eingegangen, wobei die vier üblichsten beschrieben wurden:
• Doppler Velocity Logs (DVL): Bei diesem Verfahren wird der Meeresboden vom Objekt aus gefilmt und durch die errechnete Bewegung und
einen Tiefenmesser die Position bestimmt. Grundvoraussetzung ist jedoch, dass der Boden von den Kameras erfasst werden kann. Damit
ist der Einsatz dieser Systeme auf Anwendungen in Meeresbodennähe
beschränkt.
• Long Baseline (LBL): Hier sind Positionen von Basisstationen bekannt,
welche mit dem Objekt (Empfänger) über Ultraschall kommunizieren.
KAPITEL 2. METHODEN DER POSITIONSBESTIMMUNG
14
Durch Laufzeiten werden die Distanzen zwischen Sender und Empfänger berechnet und durch trigonometrische Funktionen die Position
des Empfängers berechnet. Es handelt sich dabei um eine sehr genaue
Methode, welche jedoch aufwändige Vorbereitungen (z. B. die exakte
Positionsbestimmung der Basisstationen) voraussetzt. Dieses Verfahren wurde in dem von Maurice et al. vorgestellten System verwendet.
• Inertial Navigation: Mit einer bekannten Startposition wird durch ständiges Beobachten von Beschleunigung und Rotation des autonomen
Systems der Bewegungsfluss berechnet. Ohne zusätzlichen Ausgleich
durch andere Systeme wie DVL oder LBL addieren sich auch geringste
Fehler merkbar auf.
• GPS Surface Fix : An der Wasseroberfläche befindliche Clients mit
GPS-Empfänger und einem Sender oder einer Kamera verwenden das
Prinzip der Triangulation um die Position des Objektes unter Wasser
zu bestimmen. Das Ergebnis ist bei diesem Verfahren vom Seegang
abhängig und bei starken Wellen kein zuverlässiges Ergebnis möglich.
GIBT M -PLUS
GIBT M -PLUS2 der Firma ACSA ist ein weiteres System, welches akustische Signale in Verbindung mit Triangulation zur Positionsbestimmung unter
Wasser verwendet. Es benutzt jedoch den umgekehrten Ansatz. Bei diesem
System werden vier Bojen eingesetzt, an denen Empfänger angebracht sind.
Diese empfangen jede Sekunde zwei Signale vom zu trackenden UnterwasserObjekt durch einen Pinger (Sender). Das erste Signal ist synchron zur GPSZeit und das andere proportional zur Tiefe verzögert. Durch die bekannte
Geschwindigkeit des akustischen Signals unter Wasser wird die Laufzeit und
somit die Distanz zwischen Boje und Objekt berechnet. Die Position der Bojen ist dem System in Koordinaten mit D-GPS3 -Genauigkeit bekannt und
durch Triangulation berechnet ein Server die Position des Objekts unter
Wasser. Die Koordinaten werden in WGS844 Koordinaten (Längen-, Breitengrade und Höhe) berechnet [1].
Fazit
Die oben beschriebenen Systeme benutzen alle die Methode der Triangulation. Entweder von einer bekannten Position zu dem zu trackenden Objekt
(durch Empfänger am Objekt) oder vom Objekt zu bekannten Positionen
(Sender am Objekt). Die erste Methode ermöglicht die Navigation, da die
2
GIB: GPS Intelligent Buoy
D-GPS: Differential GPS, siehe Abschnitt 4.3.1
4
WGS84: World Geodetic System 1984, siehe Abschnitt 3.1.2
3
KAPITEL 2. METHODEN DER POSITIONSBESTIMMUNG
15
GIB Concept
GPS
Support Ship
Control & Display
Unit
D-GPS
Local
Radio
Network
Accoustic Link
Abbildung 2.5: Das GIBT M -PLUS Unterwasser GPS-System der Firma
ACSA verwendet Ultraschall und dessen Laufzeitunterschiede vom Sender
zum Empfänger für die Positionsbestimmung unter Wasser. Mit Hilfe dieser
Laufzeitunterschiede werden Distanzen berechnet und durch Triangulation
der (bekannten) Stützpunkte zum Objekt dessen Position berechnet [1].
Positionsdaten unter Wasser vorhanden sind. Die akustischen Signale sind,
mit der entsprechenden Hardware, sehr genau und liefern gute Ergebnisse.
Jedoch sind die Systeme durch diese Hardware relativ teuer. Zusätzlich ist
zu erwähnen, dass Tiere wie Delphine, welche im Meer leben, einen höheren
Frequenzbereich als Menschen wahrnehmen können und durch regelmäßige
Signale in ihrer natürlichen Umgebung erheblich gestört werden.
2.3.2
Positionsbestimmung mit Infrarot
Infrarotstrahlen sind elektromagnetische Wellen, welche im Spektralbereich
zwischen sichtbarem Licht und Mikrowellen liegen. Sie haben einen Wellenlängenbereich von ca. 780 nm bis 1mm. Durch spezielle Infrarotkameras können diese sichtbar gemacht und damit auch für Tracking verwendet werden.
In den folgenden Abschnitten werden Projekte im Bereich Infrarottracking
vorgestellt.
KAPITEL 2. METHODEN DER POSITIONSBESTIMMUNG
16
Optisches Infrarottracking
Seit 2005 arbeiten Hannes Kaufmann und Thomas Pintaric von der Interactive Media Systems Group der Technischen Universität Wien an einem
optischen Infrarottrackingsystem, welches auf der VR2007 in den USA unter dem Namen Affordable Infrared-Optical Pose-Tracking for Virtual and
Augmented Reality vorgestellt wurde [25].
Das Hauptaugenmerk wird dabei auf die Realisierung eines preislich günstigen, also z. B. auch für Schulen ohne großes Budget, leistbaren Systems
gelegt. Das Tracking soll für einen ca. raumgroßen Bereich möglich gemacht
werden und zur Zeit sind vier bis acht Kameras einsetzbar und bis zu zehn
unabhängige Ziele (Marker) gleichzeitig erkennbar. Es sollen in Zukunft bis
zu zwanzig verwendbar sein. Die Genauigkeit der Positionsbestimmung liegt
bei ±0, 5cm. Um die Kosten niedrig zu halten wurden standardisierte Elemente wie Firewire-Schnittstellen und herkömmliche PC’s verwendet. Auch
die Marker zum optischen Tracking wurden selbst hergestellt und bestehen
aus einem starren Aufbau von je vier, mit reflektierendem Material (3M
ScotchLite Silver Transfer Film) ummantelten, Nylonkugeln verschiedener
Durchmesser (von zwölf bis zwanzig Millimeter). Die bei der aktuellen Version des Systems verwendeten Kameras, die auf einem L-förmigen Gerüst
angebracht werden, haben einen 1/3“ CMOS-Sensor mit einer Graustufenauflösung von 640 × 480 Pixeln und sechzig Frames pro Sekunde. Zusätzlich
besitzen sie einen Infrarot Bandpassfilter und ein 60-Chip LED-Array, welches als Stroboskop zum Sichtbarmachen der Marker dient. Die Kameras sind
untereinander und mit dem Stoboskob synchronisiert. Die Implementierung
erfolgte fast ausschließlich in C++.
Das System verwendet eine getrennte Kalibrierung der internen und externen Parameter der Kameras. Die inneren Parameter werden durch JeanYves Bouguet’s Camera Calibration Toolbox for MATLAB ermittelt, die äußeren hingegen werden durch Tracken eines frei im Raum bewegten Markers
ermittelt. Es wurden Teile eines Selbstkalibrations-Algorithmus von Svoboda
et al. [33] nachimplementiert. Die perspektivische Punktwolkenstruktur wird
durch Vollrang-Zerlegung berechnet und mit Hilfe des Bündelausgleiches verfeinert. Anschließend werden die Daten in ein reales Weltkoordinatensystem
umgerechnet. Diese Kalibrierung dauert bei sechs verwendeten Kameras bis
zu fünf Minuten.
Der Ablauf der eigentlichen Erkennung und Positionsbestimmung ist in
Abbildung 2.6 dargestellt. Jeder Video-Frame wird als Erstes durch Schwellwertfunktionen, helligkeitsabhängige Schwerpunktberechnungen und HoughKreistransformationen nach Markern durchsucht (Feature Detection). Anschließend werden die aus unterschiedlichen Perspektiven gefundenen Marker möglichen Kameras zugeordnet (Mulitple-View Feature Correlation) und
mit Hilfe von Triangultion (Perspective Reconstruction) die beste Zuordnung der möglichen Markerpaare durch Reihung der Ergebnisse auf jeweils
KAPITEL 2. METHODEN DER POSITIONSBESTIMMUNG
17
Abbildung 2.6: Laufzeit-Flussdiagramm der Bildverarbeitungsprozesse im
Projekt Affordable Infrared-Optical Pose-Tracking for Virtual and Augmented Reality [25].
einen gefunden Marker beschränkt. Model Fitting beschreibt das Problem
der Möglichkeiten der Kombinationen der Punkte zu Markern in jeder Lage
im Raum. Werden mehrere Möglichkeiten mit wenigen Punkten gefunden,
wird hier das beste Ergebnis, d.h. jene, mir der minimalen Quadratsumme
der Fehler, aus allen möglichen gewählt. Um Jitter zu reduzieren wird schlussendlich, bevor die Positionsdaten übermittelt werden, ein prädikativer Filter
(Predictive Filtering) angewendet.
Das System hat also den Vorteil, schnell sehr genaue Positionen bestimmen zu können, benötigt jedoch zum Tracken Marker, die am Objekt angebracht werden müssen. Die Handhabung wird durch das große Rig und die
mit Kabeln zum Computer verbundenen Kameras erschwert. Es ist ein Setup
sowie eine Kalibrierung der Kameras nötig, bevor Tracking möglich ist. Die
Genauigkeit spricht jedoch für sich, ebenso die relativ geringen Kosten von
6000 bis 8000e.
Optisches VR/AR Tracking
In einem früheren Verfahren (2001) wurde von Miguel Ribo et al. in [28] ein
ähnliches optisches Trackingsystem entwickelt. Es verwendet wie die oben
dargestellte Methode reflektierende Marker und an die Kameras gekoppelte
Infrarot-Stroboskope. Bis zu 25 verschiedene reflektierende Marker können
mit einer Geschwindigkeit von bis zu 30 Frames pro Sekunde getrackt werden
KAPITEL 2. METHODEN DER POSITIONSBESTIMMUNG
18
(im Vergleich dazu 60 beim Projekt im Abschnitt 2.3.2).
Zur Montage der Kameras wird ein Stereo-Rig mit einer maximalen
Höhe von zwei Metern verwendet. Zur Kalibrierung wird hier der Ansatz
von Zhang [42] verwendet und die Markererkennung im Bild erfolgt durch
Schwellwertoperationen. Diese ist durch die gute Erkennbarkeit der reflektierenden Marker im behandelten Bild ausreichend um eine gute Unterscheidung zwischen Marker und Hintergrund gewährleisten zu können.
Durch das Stereo-Rig ist die Beweglichkeit dieses Systems genauso wie
beim oben erwähnten eher eingeschränkt. Die Ziele dieses Projektes waren
jedoch Robustheit gegenüber Fehlern und hohe Genauigkeit der Positionsbestimmung in Echtzeit. Die erreichte Bildbearbeitungsgeschwindigkeit von
30fps war zum damaligen Zeitpunkt sicher eine technische Herausforderung.
Fazit
Die vorgestellten Systeme verwenden Infrarot zum Sichtbarmachen der (reflektierenden) Marker. Dieser Ansatz erlaubt robustes Auffinden der zu trackenden Positionen. Da Infrarotlicht für Menschen nicht sichtbar ist, wird das
Verhalten nicht beeinflusst. Die Systeme erlauben das Tracken von mulitplen
Objekten in Echtzeit mit 30-60 Frames pro Sekunde. Der Aufbau dieser Systeme ist starr, dafür aber die Genauigkeit sehr hoch. Einsatzgebiet dieser
Systeme ist also genaues Echtzeittracking in einer fixen Umgebung. Es kann
z. B. zur Bewegungsanalyse für Animationsfilme verwendet werden.
2.3.3
Positionsbestimmung in Videos
Chen et al. haben in [7] eine Studie mit dem Titel Object Tracking and
Positioning on Video Images zum automatischen Verfolgen und zur Positionsermittlung von bewegungslosen Objekten in Videobildern, welche von
einer bewegten Kamera (aus einem Hubschrauber) aufgenommen werden,
angestellt. Zur Positionsbestimmung des Objektes sind drei Schritte nötig:
• Ermitteln von Position und Orientierung der Kamera
• Bestimmung der Bildkoordinaten des Objektes
• Berechnung der Objektkoordinaten
Das erste Ziel dieses Projekts ist die Aufnahme der Videobilder synchron
zur Ermittlung der Kameraposition und -orientierung. Für diese Ermittlung
wurde die Kamera mit einem GPS-Empfänger zur Positionsbestimmung, einem digitalen Kompass und einem Neigungssensor zur Ermittlung der Orientierung verbunden.
KAPITEL 2. METHODEN DER POSITIONSBESTIMMUNG
19
Nachdem diese Daten bestimmt und das Videobild aufgezeichnet wurden,
wird dieses Bild auf vorhandene Objekte untersucht. Da sich der Hintergrund wegen der bewegten Kameraposition stark ändert, wird keine Vordergrundextraktion verwendet, sondern auf Farb- und anschließend auf Formerkennung aufbauende Trackingmethoden. Die Farbauswahl erfolgt durch eine
ungefähre Auswahl des Objekts im ersten Bild des Videos und zur Formerkennung wird das Active Contour Model verwendet. Die Form des Objektes
verändert sich in jedem Bild, weshalb sie mit dem Shape Matrix Algorithm
(SMA) in einer formunabhängigen Matrix gespeichert wird. Der Schwerpunkt
der Region wird als Ursprung definiert und die Hauptachse des Objektes ermittelt.
Die Bestimmung der Objektposition erfolgt über ein Gleichungssystem
mit drei Gleichungen, die aus den Bild- und Kameradaten ermittelt werden.
Prinzipiell wird der Strahl von der Kamera zum Objekt mit geodätischen
Informationen verknüpft und so mit mit der Erdoberfläche „geschnitten“.
Das bedeutet, es können nur Objektepositionen von am Boden befindlichen
Objekten ermittelt werden.
Zum Testen des Systems wurde ein ca. 100 m langes Schiff in Küstennähe in einem Testvideo mit 320 × 240 Pixel aufgenommen. Der entwickelte
Algorithmus berechnet die Positionen mit einer Geschwindigkeit von 10fps
und einer Genauigkeit von 35 m.
Fazit
Der erste Schritt, also die Ermittlung von Position und Orientierung der
Kamera, ist dem Ansatz des hier vorgestellten Multikamera-Trackingsystems
sehr ähnlich. Durch die Verwendung von mehreren Kameras, können beim
vorgestellten System jedoch auch Objektpositionen berechnet werden, die
sich nicht auf dem geodätischen Referenzellipsoid befinden.
2.4
Vergleich der Systeme
In diesem Abschnitt wird ein Vergleich der oben beschriebenen Positionierungssysteme sowie dem, in der Arbeit vorgestellten, Multikamera-Trackingsystem angestellt. Es wurden alle verfügbaren Daten in die Untersuchung
eingebunden. Untersucht wurden folgende Punkte:
• Setup des Systems (Handhabung, Zeitaufwand)
• Kalibrierung (erforderlich/nicht erforderlich, wie aufwändig)
• Anwendungsgebiete (Standardanwendungen)
• Geschwindigkeit (in Frames oder Signalen pro Sekunde)
• Genauigkeit (Abweichung von der wirklichen Position)
KAPITEL 2. METHODEN DER POSITIONSBESTIMMUNG
20
• Mobilität (Aufwand bei der Verlegung des Systems an einen anderen
Ort)
• Verwendete Techniken (wichtigste Methoden)
• Marker oder Sensor am Objekt (nötig/nicht nötig)
• Ungefähre Kosten
Multikamera Trackingsystem
Setup des Systems:
Kalibrierung:
Anwendungsgebiete:
Geschwindigkeit:
Genauigkeit:
Mobilität:
Verwendete Techniken:
Marker oder Sensoren am Objekt:
Kosten:
Einfach, leicht handhabbar
Nicht erforderlich
Tracking in verwinkelten Räumen,
unter Wasser
6 Fps
10cm
hoch
GPS, optisches Tracking,
Triangulation
Keine erforderlich
ca. 1.500e
Tabelle 2.1: Vorteile: Flexibel; einfache Handhabung; schnelles Setup;
keine Kalibrierung sowie Marker oder Sensoren am Objekt nötig und mit
1500e billig. Nachteile: Nicht echtzeitfähig; mäßige Genauigkeit.
Underwater geopositioning methods and apparatus
Setup des Systems:
Aufwändig
Kalibrierung:
Position der Basisstation
muss ermittelt werden
Anwendungsgebiete:
Positionsbestimmung unter Wasser
Geschwindigkeit:
Genauigkeit:
Mobilität:
örtlich gebunden
Verwendete Techniken:
Ultraschall, Tiefenmesser
Marker oder Sensoren am Objekt: Empfänger
Kosten:
Tabelle 2.2: Vorteile: Positionen unter Wasser ermittelbar; schnell durch
Ultraschall. Nachteile: Viel Hardware nötig; am Objekt muss ein Empfänger
angebracht werden.
KAPITEL 2. METHODEN DER POSITIONSBESTIMMUNG
GIBT M -PLUS
Setup des Systems:
Kalibrierung:
Anwendungsgebiete:
Geschwindigkeit:
Genauigkeit:
Mobilität:
Verwendete Techniken:
Marker oder Sensoren am Objekt:
Kosten:
21
< 1h
Nicht erforderlich
Positionsbestimmung unter Wasser
1 Position pro Sekunde
DGPS-Genauigkeit
mittel
Ultraschall, Radiosignale, GPS
Triangulation
Sender
sehr kostspielig
Tabelle 2.3: Vorteile: Positionen unter Wasser ermittelbar; keine Kalibrierung nötig; DGPS-Genauigkeit. Nachteile: Sender am Objekt nötig; auf
Grund kommerzieller Vermarktung sehr kostspielig, nur eine Position pro
Sekunde erfassbar.
Optisches Infrarottracking
Setup des Systems:
Kalibrierung:
Anwendungsgebiete:
Geschwindigkeit:
Genauigkeit:
Mobilität:
Verwendete Techniken:
Marker oder Sensoren am Objekt:
Kosten:
Aufwändig
ca. 5 Minuten
Tracking in Räumen,
Multiple Objekte möglich
60 Fps
0.5cm
örtlich gebunden
Infrarot, optisches Tracking,
Bündelausgleich
Reflektierende Marker
ca. 6000 - 8000e
Tabelle 2.4: Vorteile: Echtzeitfähig; hohe Genauigkeit der Positionsdaten
und mit 6000 - 8000e vergleichsweise kostengünstig. Nachteile: Begrenzter
Anwendungsbereich (ca. 20m2 ); Kalibrierung und Marker am Objekt nötig.
KAPITEL 2. METHODEN DER POSITIONSBESTIMMUNG
Optisches VR/AR Tracking
Setup des Systems:
Kalibrierung:
Anwendungsgebiete:
Geschwindigkeit:
Genauigkeit:
Mobilität:
Verwendete Techniken:
Marker oder Sensoren am Objekt:
Kosten:
Aufwändig
3-5 Durchläufe
Tracking in Räumen,
Bis 25 Objekte möglich
30 Fps
örtlich gebunden
Infrarot, optisches Tracking,
Triangulation
Reflektierende Marker
-
Tabelle 2.5: Vorteile: Echtzeitfähig; bis zu 25 Objekte gleichzeitig erfassbar;
relativ kurzwierige Kalibrierung. Nachteile: Begrenzter Anwendungsbereich;
Marker am Objekt nötig; starrer Aufbau durch Stereo-Rig.
Positioning on Video Images
Setup des Systems:
Kalibrierung:
Anwendungsgebiete:
Geschwindigkeit:
Genauigkeit:
Mobilität:
Verwendete Techniken:
Marker oder Sensoren am Objekt:
Kosten:
Einfach, leicht handhabbar
Nicht erforderlich
Tracking von Objekten auf
dem dem Boden,
Tracken aus Hubschraubern
10 Fps
35 m
hoch
GPS, optisches Tracking,
Triangulation
Keine erforderlich
-
Tabelle 2.6: Vorteile: Flexibel; einfache Handhabung; schnelles Setup; keine
Kalibrierung sowie Marker oder Sensoren am Objekt nötig; bewegliche Kamera. Nachteile: Nicht echtzeitfähig; geringe Genauigkeit; Tracken nur von
Objekten auf dem geodätischen Referenzelipsoid.
22
Kapitel 3
Grundlagen
In diesem Kapitel werden die Grundlagen der im Projekt verwendeten Techniken, wie das Globale Positionierungssystem GPS, Bildverarbeitung und
Trigonometrie vorgestellt.
3.1
GPS
Für dieses Projekt werden GPS Empfänger zur Bestimmung der Kamerapositionen verwendet (siehe Kapitel 2.2.1). In den folgenden Abschnitten
wird zuerst ein allgemeiner Überblick über GPS gegeben und im Folgenden
die, für das Projekt relevante, Umrechnung der erhaltenen Daten in das zur
Berechnung verwendete Koordinatensystem beschrieben. Anschließend werden bekannte und weniger bekannte GPS-Fehler, und Möglichkeiten diese zu
verhindern oder zu verringern, behandelt.
3.1.1
Allgemeines
Schon seit den 1960er Jahren sind Positionierungssysteme im Einsatz wie
z. B. das 1964 in den USA in Betrieb genommene Transit System (es ist jedoch seit 1996 außer Betrieb). Ist heute von GPS die Rede, ist meistens das,
vom US-Verteidigungsministerium entwickelte, NAVSTAR GPS (Navigational Satellite Timing and Ranging - Global Positioning System) gemeint.
Ursprünglich für die militärische Nutzung gedacht, wurde wie bei vielen militärischen Entwicklungen, bald auch eine öffentliche Frequenz L1 (1575,42
MHz) für die zivile Nutzung eingeführt. Das Militär verwendet zwar die
gleiche Frequenz, jedoch statt dem für jedermann lesbaren C/A Code (Coarse/Acquisition) den verschlüsselten P/Y Code (Percision/encrypted). Das
US-Verteidigungsministerium erklärte NAVSTAR GPS ab dem 17. Juli 1995
für voll funktionstüchtig [19].
Um exakte Positionen bestimmen zu können ist die Verbindung zu mindestens vier Satelliten nötig. Um diese Verbindungen auf jedem Punkt der
23
KAPITEL 3. GRUNDLAGEN
24
Abbildung 3.1: Diese Abbildung stellt die Verteilung der GPS Satelliten
in der Umlaufbahn dar. Theoretisch mindestens 24, praktisch befinden sich
jedoch 30 Satelliten auf insgesamt sechs Bahnebenen im Orbit.
Erde herstellen zu können, sind mindestens 24 Satelliten nötig. Praktisch
befinden sich jedoch 30 GPS Satelliten im All und umrunden die Erde zwei
mal pro Tag. Es gibt sechs Bahnebenen mit mindestens vier Satelliten pro
Bahn. Diese Bahnen sind um 55◦ gegen den Äquator geneigt und gegeneinander um 60◦ verdreht, wodurch ein Netz von Satelliten die Erde umspannt
(siehe Abbildung 3.1).
3.1.2
WGS84 versus ECEF
Um mit den GPS-Werten rechnen zu können, müssen die Daten aufbereitet
werden. Die von GPS Empfängern üblicherweise ausgegebenen Längen- und
Breitengrade, sowie die Meereshöhe einer Position sollen in kartesische Koordinaten umgewandelt werden. Mit diesen können dann die Schnittpunktberechnungen durchgeführt werden und die Position des gefundenen Objektes
wird anschließend wieder in das GPS-Format zurückgerechnet. Das Format
der Positionswerte ist bei GPS das WGS841 System. Von diesem Datum soll
in das kartesische ECEF2 Format umgewandelt werden, dessen Zentrum sich
im Erdkern (deswegen Earth Centered) befindet [2].
WGS84 Daten, also Breiten- und Längengrade, sind im Format Grad,
Minuten und Sekunden angegeben. Minuten und Sekunden sind hier als Bogenmaß zu verstehen und werden zum Weiterrechnen in Grad umgerechnet.
Als Beispiel wird hier die Position von Kamera zwei des Testaufbaus (Siehe
Abschnitt 4.1.4) verwendet.
1
2
WGS84 = World Geodetic System 1984
ECEF = Earth Centered Earth Fixed
25
KAPITEL 3. GRUNDLAGEN
Ausgangswerte:
ϕ
. . . Breitengrad (Latitude)
λ
. . . Längengrad (Longitude)
h
. . . Höhe
= 48◦ 18’ 34,386” North
= 14◦ 14’ 8,634” East
= 312,70 Meter
Gesucht:
X
. . . X-Position in ECEF Koordinaten
Y
. . . Y -Position in ECEF Koordinaten
Z
. . . Z-Position in ECEF Koordinaten
Hilfsgrößen:
a
. . . WGS84 Hauptachse
= 6378137,00
b
. . . WGS84 Nebenachse
= 6356752,31
N1 . . . Normalkrümmungsradius
e2 . . . 1. Numerische Exzentrität
′
e 2 . . . 2. Numerische Exzentrität
p
. . . Radius des Breitengrads
θ
. . . Hilfsvariable
N2 . . . Normalkrümmungsradius der Rückrechnung
Um also die Ausgangswerte in Grad umzurechnen wird in folgende Gleichung
eingesetzt:
min
sec
Winkel deg = deg +
+
60
3600
18 34, 386
ϕ = 48 +
+
= 48, 3096◦
60
3600
14 8, 634
+
= 14, 2357◦
(3.1)
λ = 14 +
60
3600
Diese Werte müssen auch noch von Grad in Rad umgerechnet werden:
Winkel deg
π
180
48, 3096
ϕrad =
π = 0.8432
180
14, 2357
π = 0.2485
(3.2)
λrad =
180
Da die Ausgangswerte jetzt im richtigen Format vorliegen, kann mit der
Transformation begonnen werden. Die kartesischen X-, Y - und Z-Werte errechnen sich mit folgenden Gleichungen:
Winkel rad =
X = (N1 + h) cos ϕ cos λ
Y = (N1 + h) cos ϕ sin λ
Z=(
b2
a2
N1 + h) sin ϕ
(3.3)
26
KAPITEL 3. GRUNDLAGEN
z
Nordpol
Position
h
b
Geocenter
Längengrad
Breitengrad
N
Z
l
a
y
X
j
Y
Referenzellipsoid
x
Südpol
Abbildung 3.2: Hier eine Darstellung der zwei verwendeten Systeme zur
Bestimmung einer Position (hellblau) auf der Erde. Das Zentrum beider Systeme liegt im Erdmittelpunkt, dem Geocenter. WGS84 (grün) verwendet
Längengrade ϕ, Breitengrade λ und die Höhe der Position über dem Meeresspiegel h. ECEF ist ein kartesisches Koordinatensystem mit den blaustrichlierten Linien als X-, Y - und Z-Koordinaten. Die rotgepunkteten Linien stellen die Radien der Erdachsen dar. Die Hauptachse a geht zum Äquator und
die Nebenachse b zu den Polen. Da die Erde an den Polen abgeflacht ist, ist
a etwas länger als b. N ist der Normalkrümmungsradius des Breitengrades.
Die Größe N1 in Gleichung 3.3 ist noch nicht bestimmt. Sie gibt den Normalkrümmungsradius des Breitengrades ϕ an, also die Krümmung der geodätischen Linie (kürzeste Verbindung zweier Oberflächenpunkte). Da es sich
bei der Erde nicht um eine Kugel, sondern ein Ellipsoid handelt, welches an
den Polen abgeflacht ist, muss diese Abplattung miteinberechnet werden:
a2
N1 = p
a2 cos2 ϕ + b2 sin2 ϕ
(3.4)
Nach Einsetzen der oben angegebenen Werte in diese Gleichungen erhält
man folgendes Ergebnis in kartesischen Koordinaten:
Position:
X = 4119767, 57m
Y = 1045195, 65m
Z = 4740072, 18m
27
KAPITEL 3. GRUNDLAGEN
Die Position kann, in dieser Form, nun zur Bestimmung des Richtungsvektors
im Abschnitt 3.3.1 verwendet werden und bei der Schnittpunktberechnung
von Abschnitt 3.3.2 erhält man wieder einen Wert in diesem Koordinatensystem. Um diesen Wert, der natürlich in kartesischen Koordinaten vorliegt,
wieder in die GPS-bekannten Längen- und Breitengrade sowie die Höhe zu
transformieren, müssen die folgenden Berechnungen durchgeführt werden:
ϕ = arctan
λ = arctan
h=
p
cos ϕ
³
′
Z+e 2 b sin3 θ
p−e2 a cos3 θ
¡Y ¢
X
´
(3.5)
− N2
Auch hier sind wieder einige Hilfsfunktionen nötig, um die drei Unbekannten
ϕ, λ und h zu berechnen. Zum Einen die erste und zweite numerische Exzentrizität, welche die Abweichung des Kegelschnittes zur Kreisform darstellt.
Diese betragen bei einem Ellipsoid zwischen null und eins und werden, wie
hier dargestellt, mit Hilfe der Achsen berechnet:
e2 =
′
e2 =
a2 − b2
a2
2
a − b2
b2
(3.6)
θ ist hier eine Hilfsvariable um die Gleichung für den Breitengrad ϕ lesbar
zu halten. p entspricht dem Radius des Breitengrades. Dieser kann mit beiden, WGS84 und ECEF, Werten berechnet werden. Da hier ECEF Werte
vorliegen wird die erste Form verwendet. Es gilt:
Za
θ = arctan
pb
p
2
X +Y2
p =
= (N2 + h) cos f
(3.7)
Bei N2 handelt es sich um den Normalkrümmungsradius. Es handelt sich
dabei um denselben Radius wie N1 , zur Veranschaulichung wird hier jedoch
ein anderer Variablenname verwendet. N2 wird mit ECEF Werten berechnet,
N1 mit WGS84-Werten. Bei f handelt es sich, da die Erde keiner exakten
Kugel entspricht, um die Abplattung welche durch f = (a − b)/a berechnet
wird. Der Normalkrümmungsradius wird also wie folgt berechnet:
a2
N2 = p
b 1 + e′ 2 cos2 ϕ
(3.8)
28
KAPITEL 3. GRUNDLAGEN
Nachdem alle Werte (X, Y , Z, a & b) bekannt sind, können die ECEF Koordinaten nun wieder in WGS84 Daten umgerechnet werden. Werden die oben
berechneten Koordinaten von Kamera zwei verwendet, erhält man wieder
die Ausgangswerte im Bogenmaß. Um diese in Grad, Minuten und Sekunden darzustellen, müssen sie zuerst mit Hilfe von folgender Gleichung in Grad
umgerechnet werden und anschließend der Dezimalteil durch 60 dividiert um
die Minuten zu erhalten, und dessen Dezimalteil wieder durch 60 dividiert
um die Sekunden des Winkels zu erhalten. Die Höhe ist natürlich kein Bogenmaß und muss nicht mehr umgerechnet werden, sondern liegt im richtigen
Format, nämlich Meter, vor. Die Berechnung geschieht durch nachfolgende
Gleichungen:
ϕrad 180
π
λrad 180
=
π
ϕdeg =
λdeg
3.1.3
(3.9)
GPS auf portablen Computern
Ein großer Vorteil von in PDAs3 eingebauten GPS-Empfängern ist die unkomplizierte Handhabung. Die GPS-Empfänger sind so kompakt herzustellen, dass sie ohne weiteres in PDAs oder Mobiltelefone eingebaut werden
können. Zusätzlich kann in Mobiltelefonen und auf GSM4 -tauglichen PDAs
Assisted GPS verwendet werden, das die GSM Ortung im Kombination mit
GPS zur schnelleren Positionsbestimmung verwendet.
Assisted GPS
Durch die Bestimmung der Funkzelle, in der sich das Gerät befindet, kann
der Aufenthaltsort annähernd bestimmt werden. Mit Hilfe von Triangulation der Mobilfunkmasten kann diese Position noch detaillierter berechnet
werden, wobei wie bei jeder Form der Triangulation mindestens drei GSMBasisstationen empfangen werden müssen. Damit wird der Suchbereich für
die Satelliten eingeschränkt und diversen Problemen wie z. B. der Dopplerverschiebung entgegengewirkt. Die Positionsbestimmung wird damit wesentlich beschleunigt. Wenn der in diesem System verwendete Client GSM unterstützt, kann Assisted GPS verwendet werden und damit die Systemlaufzeit
verkürzt werden, da GPS Empfänger besonders nach dem Einschalten eine
gewisse Zeit benötigen um ihre Werte zu stabilisieren [41].
3
4
PDA = Personal Digital Assistant
GSM = Global System for Mobile Communications
KAPITEL 3. GRUNDLAGEN
3.2
29
Objekterkennung
Die Erkennung von Objekten bzw. Personen wird in diesem System verwendet, um den Punkt am Sensor zu berechnen, durch welchen der Strahl
in Richtung Objekt gelegt wird. In diesem Abschnitt werden verschiedene
Verfahren zur Objekterkennung sowie die Grundlagen zur Strahlberechnung
vorgestellt.
Es existieren verschiedene Ansätze zur Objekterkennung, bzw. beim optischen Tracking. Die zwei Grundprinzipien werden von Miguel Ribo in [27]
vorgestellt. Outside-In Methoden verwenden zur Bestimmung der Position
des gesuchten Objektes Sensoren, welche an einer fixen Position, z. B. der
Kamera, montiert sind. Die Objekte müssen, je nach Anzahl der zu erkennenden Freiheitsgrade, mehrere einzigartige, erkennbare Merkmale besitzen.
Dieser Ansatz ist sehr verbreitet in Trackingsystemen und wird auch im hier
vorgestellten System verwendet. Die zweite Variante sind Inside-Out Methoden, bei welchen Sensoren direkt am zu trackenden Objekt angebracht
werden. Diese Sensoren beobachten die Umgebung, welche wiederum Referenzpunkte aufweist zur Bestimmung ihrer eigenen Position. Diese Systeme
werden laut Ribo hauptsächlich im Freien verwendet. Des weiteren wurden
in dem Bericht vierzehn kommerzielle und vier frei verfügbare Systeme vorgestellt wobei bei „ProFlex“ von Qualisys Inc. die Verwendung von bis zu 32
Kameras möglich ist. Das Resultat der Untersuchung war jedoch, dass natürliche Referenzpunkte noch immer ein (interessantes, mit viel Forschungspotential behaftetes) Problem bei der Objekterkennung darstellen. Als zweiter
Punkt wurde angemerkt, dass fast alle vorgestellten Systeme fix zu montieren
und und somit nicht flexibel sind.
3.2.1
Computer Vision
In Tabelle 3.1 werden die Begriffe der grafikorientierten Datenverarbeitungsfelder erklärt. Das Eingangssignal in diesem System ist ein Videostream, also
Bilder und die Ausgabe besteht aus Daten, also der Beschreibung des Regionsschwerpunktes. Damit fällt die Datenverarbeitung in den Bereich Computer Vision.
Computer Vision, oder Maschinelles Sehen, ist das computerunterstützte
Verstehen von digitalen Bildern. Die Aufgabe des Maschinellen Sehens in diesem Projekt besteht darin, ein Objekt im Bild zu identifizieren, zu „tracken“.
Nachfolgend werden verschiedene Trackingtechniken erläutert und ihre Vorund Nachteile für das System erklärt.
3.2.2
Tracking
Das menschliche Gehirn kann ganz natürlich Objekte in einem Durcheinander von anderen Dingen separieren, Vorder- von Hintergrund unterscheiden
30
KAPITEL 3. GRUNDLAGEN
Eingabe
Bild
Beschreibung
Ergebnis
Bild
Bildverarbeitung
Computergrafik
Beschreibung
Computer Vision
Andere Datenverarbeitung
Tabelle 3.1: Einteilung der grafikorientierten Datenverarbeitungsfelder. In
diesem Projekt werden Bilder als Eingabe verwendet und das Ergebnis ist die
Position des gesuchten Objektes bzw. der dazugehörige Richtungsvektor, also
eine Beschreibung. Der visuelle Teil dieser Arbeit fällt damit in den Bereich
Computer Vision [23].
und Tiefe erkennen. Beim maschinellen Sehen werden die Augen durch Kameras und das Gehirn durch den Computer ersetzt. Also muss der Computer
darauf trainiert werden, Objekte separieren und anschließend die gesuchten
lokalisieren zu können. Je nach Trackingalgorithmus können verschiedene
Objekte oder Eigenschaften (Autos, Bäume, Tiere, Farbe, Größe. . . ) erkannt
werden. Normalerweise ist bekannt, welche Objekte im Bild zu erwarten sind,
bzw. welche Eigenschaften die zu trackenden Objekte aufweisen sollen. Wäre
dies nicht der Fall, müssten immer alle möglichen Trackingalgorithmen auf
das gesamte Bild angewendet werden, was höchst uneffizient wäre [3]. In
diesem System geht es vorrangig um die Erkennung von Personen, und die
hier beschriebenen Verfahren behandeln hauptsächlich die Bereiche des Personentrackings bzw. der Bewegungserfassung.
Um Personen aus einem Bild extrahieren zu können, müssen als erstes die
Regionen in diesem Bild differenziert werden. Region Labeling ist dabei eine
Möglichkeit. Bei diesem Verfahren wird das Bild Pixel für Pixel durchlaufen
und zusammengehörige Regionen mit einem „Label“ versehen. Die Label sind
fortlaufende Nummern der gefundenen Regionen. Alle Pixel einer Region haben die gleiche Nummer und können so in weiteren Verarbeitungsschritten
einfach identifiziert werden. Welche Faktoren zur Zusammengehörigkeit definiert werden, hängt von den im Bild vorhandenen Regionen ab. Es können
z. B. Farbe oder Helligkeit unterschieden werden. Mit dem gleichen Verfahren können auch Vorder- von Hintergrund unterschieden werden. Es wird
jedes Pixel abgefragt, ob es die Vordergrundbedingungen erfüllt und dann
mit allen angrenzenden Pixeln, die die gleichen Eigenschaften aufweisen, als
zusammengehörige Region markiert [6].
Anschließend kann jede dieser Regionen untersucht werden, ob sie die
gesuchten „menschlichen“ Eigenschaften besitzt. Dazu ist es wichtig, die
menschlichen optischen Eigenschaften zu kennen. Farbe, Form, Proportionen
und eventuell auch Bildmuster (Pattern Recognition) können zur Erkennung
verwendet werden. Erkennung nach Farbe ist eine zuverlässige Art der Objekterkennung. Kleidung in auffälligen Farben kann zielsicher aus einem Bild
extrahiert und diese Region als Objekt markiert werden.
KAPITEL 3. GRUNDLAGEN
31
Abbildung 3.3: Skeletterkennung von Personen. Die gefundene Region
(grau) wird solange von den Rändern aus geschrumpft bis nur mehr ein
Skelett übrig bleibt. Die Skelette schauen je nach Position der Arme und
Beine unterschiedlich aus. Sind Arme und Beine vom Körper weggestreckt
ist das Skelett schon sehr „menschlich“. Sind sie jedoch am Körper oder vom
Körper verdeckt kann das Skelett wie beim vorletzten Beispiel auch zu einem
normalen Strich werden und kann nicht mehr als Person erkannt werden.
Die Bildmustererkennung arbeitet nach dem Prinzip der Ähnlichkeit. Referenzmuster vom Objekt werden Pixel für Pixel mit dem zu durchsuchenden Bild verglichen und die Differenz der Farb- oder Helligkeitswerte aller
Pixel vom Muster zum Bild ermittelt. Ist diese Differenz unter einem gewissen Schwellwert, gilt das Objekt als erkannt. Durch die vielen verschiedenen
Haltungen, die ein Mensch einnehmen kann, wären jedoch sehr viele verschiedene Referenzmuster nötig. Zusätzlich wird das Objekt von allen Seiten
aufgenommen, wodurch jede Ansicht durch die unterschiedliche Form wieder
eigene Referenzmuster benötigen würde.
Eine Form ist jede Gruppe verbundener Punkte [29]. Damit wäre eine andere Möglichkeit Objekte in Bildern zu lokalisieren die Skeletterkennung, da
bei dieser Methode durch Linien verbundene Punkte ermittelt werden. Die
Ränder der Region werden bei diesem Verfahren so lange geschrumpft bis
sich die Region zu einer Linie verschmälert, also nur mehr ein Skelett übrig
bleibt. Sind die Extremitäten der Person in dem Bild gut erkennbar, führt die
Skeletterkennung zu sehr guten Ergebnissen. Sind jedoch Arme und Beine
nicht konvex, also am Körper anliegend, oder durch die Perspektive ganz vom
Körper verdeckt wird die Skeletterkennung schon schwieriger. Abbildung 3.3
zeigt die Auswirkungen von verschiedenen Haltungen auf die Skeletterkennung. Wenn Arme und Beine in der Region „Mensch“ gut erkennbar sind, läßt
sich ein menschliches Skelett extrahieren. Sind die Extremitäten jedoch am
Körper anliegend oder Teile der Region verdeckt, liefert die Skeletterkennung
keine genauen Ergebnisse.
3.2.3
Schwerpunktberechnung
Nachdem ein Objekt gefunden wurde, soll sein Mittelpunkt im Bild bestimmt
werden, durch den der Vektor zum Objekt zeigen soll. Das kann, je nach Objektdaten, durch verschiedene Methoden geschehen. Je nach Trackingalgo-
32
KAPITEL 3. GRUNDLAGEN
rithmus sind andere Ausgangsdaten vorhanden. Wenn Skelettdaten vorhanden sind, können z. B. Relationen des Oberkörpers, oder der Kopf verwendet
werden. Wird Gesichtserkennung eingesetzt, könnte der Mittelpunkt zwischen den Augen gewählt werden. Um das System stabil zu halten, sollten
die Kameras jedoch in so unterschiedliche Richtungen zeigen, dass das Gesicht nie auf allen Kameras zu sehen ist. Zur Schwerpunktberechnung kann
jedoch mit allen Proportionen der Ausgangsdaten gearbeitet werden.
Wird das Objekt mit Hilfe von Regions- bzw. Farberkennung getrackt,
kann es zu Problemen bei der Mittelpunkt- oder Schwerpunktberechnung
kommen. Der reine Schwerpunkt einer Region wird durch den arithmetischen
Mittelwert aller X- bzw. Y -Werte der zur Region gehörigen Pixel berechnet
und ergibt den genauen Schwerpunkt (xcenter und ycenter ):
xcenter =
ycenter =
n
X
i=0
n
X
xi /n
yi /n
(3.10)
i=0
Dieser Punkt liefert einen Gleitkommawert, er ist also genauer als ein
Koordinatenwert, welcher immer ganzzahlig wäre. Durch diesen Punkt wird
jener Strahl gelegt, welcher vom Kamerazentrum aus, in Richtung des Objektes zeigt. Durch das Schneiden mehrerer Strahlen verschiedener Kameras
wird anschließend die Objektposition bestimmt. Die dazugehörige Theorie
wird im nächsten Abschnitt behandelt.
3.2.4
Vektor im Kameraraum
Ist der Schwerpunkt bestimmt, soll oben genannter Vektor von seinem Ursprung am Sensor durch das optische Zentrum der Kamera in Richtung des
Objektes berechnet werden. Dieser Vektor wird auch Zentralstrahl der Optik
genannt. Sofern das optische System der Kamera bekannt ist (siehe Abbildung 3.4), läßt sich mit Hilfe der Winkelfunktionen dieser Vektor berechnen.
Wichtige Größen sind der Abstand zwischen Sensor und Linse, das optische Zentrum und die Sensorgröße. Das optische Zentrum ist Mittelpunkt
der Linse, also jener Punkt im optischen System, durch den der Strahl zum
Objekt berechnet wird. Die Sensorgröße ist im Zusammenhang mit dem Abstand zwischen Sensor und Linse für das Zoom und die Field of View (siehe
Abschnitt 3.3.3) verantwortlich.
Dieser Vektor wird zur Bestimmung der Position der getrackten Person
zuerst in einem lokalen Kamerakoordinatensystem berechnet und anschließend zur Schnittpunktberechnung mit den Vektoren der anderen Kameras in
ein globales Weltkoordinatensystem umgerechnet. Wie dieser Vektor genau
berechnet wird, ist im Abschnitt 3.3.1 detailliert erklärt.
33
KAPITEL 3. GRUNDLAGEN
Objekt
Abstand Linse-Sensor
y
Vektor
Sensor
Brennpunkt
z
Brennweite
Winkel
Blickrichtung
x
Optisches Zentrum des Objektivs
Abbildung 3.4: Seitenansicht des optischen Systems einer Kamera. Die
Größe des Sensors links entspricht der Höhe des Sensors (Y -Koordinaten),
die Breite (X-Koordinaten) ginge hier in die Tiefe. Der berechnete Vektor
entspricht dem Zentralstrahl der Kamera zum Objekt. Der Winkel dieses
Strahls muss natürlich für beide Dimensionen (X und Y ) berechnet werden.
3.3
Mathematische Grundlagen
Um die Funktionsweise des Multikamera-Trackingsystems zu verstehen ist
es wichtig, sich mit den mathematischen Überlegungen hinter dem Projekt
vertraut zu machen. Dieses Kapitel beschäftigt sich eingehend mit der Berechnung des Richtungsvektors durch das optische System, der Schnittpunktberechnung zwischen den Richtungsvektoren mehrerer Kameras sowie der
Transformation zwischen den verschiedenen Koordinatensystemen.
Die hier verwendeten Formelsymbole sind zur Übersicht gesammelt, inklusive ihrer Bedeutung, in Anhang A aufgelistet, werden aber zusätzlich im
Text eingeführt.
3.3.1
Optik
Die Optik ist das zentrale Element einer Kamera. Sie besteht grundsätzlich
aus einem Sensor und einer Linse, von deren Qualität und Ausführung die
Bildqualität, die Brennweite und die Field of View abhängen. Digitale Kameras funktionieren im Prinzip genauso wie analoge Kameras, statt dem Film
wird aber ein Sensor mit Bildpunkten verwendet. Berechnet werden soll für
das hier besprochene System der Strahl vom optischen Zentrum der Kamera
in Richtung des getrackten Objektes, hier Richtungsvektor ~r genannt. Abbildung 3.4 zeigt eine schematische Darstellung des optischen Systems mit
34
KAPITEL 3. GRUNDLAGEN
Sensor, Richtungsvektor und Objekt. Die Achsen X, Y und Z beschreiben
das Kamerakoordinatensystem, wobei X und Y die Sensorfläche aufspannen
und Z in die Blickrichtung der Kamera zeigt. Das optische Zentrum beschreibt den Nullpunkt des Koordinatensystems und entspricht gleichzeitig
der Position der Kamera im Weltkoordinatensystem, welche wie in Kapitel
2.2.1 erklärt wurde, mit Hilfe eines GPS Empfängers ermittelt wird.
Weiters geht aus der oben genannten Abbildung hervor, dass das Objekt
am Sensor auf dem Kopf steht. Die von der Kamera erhaltenen digitalen
Bilder werden aber von der Kamera schon gespiegelt, weshalb, um einen
korrekten Richtungsvektor zu erhalten, die X und Y -Pixelwerte invertiert
werden müssen.
Der Richtungsvektor wird durch drei Koordinaten bestimmt, wobei die
dritte, Z, immer 1, also die Blickrichtung bestimmt. Berechnet werden müssen also die Werte für X und Y , welche von der Bildverarbeitung weitergegeben werden. Hier wird der Rechengang nur für die X-Werte erklärt und
zum Schluss der Gesamtvektor beschrieben.
Den X-Wert rx des Richtungsvektors erhält man durch folgende Berechnung [5]:
rx =
c k ws x
fk cs resx
(3.11)
Wobei ck einer Diagonale einer Kleinbildkamera, ws der Sensorbreite und
x der X-Position am Sensor entspricht. Die Variable fk ist der Abstand zwischen Kleinbildfilm und Linse, cs die Sensordiagonale und resx die Auflösung in X-Richtung, also die Anzahl der verwendeten Pixel am Sensor. Die
Herleitung dieser Gleichung wird im folgenden Abschnitt erklärt. Um das
optische System einer Kamera zur Berechnung dieses Strahls heranziehen zu
können, müssen zuerst alle benötigten Größen berechnet werden. Bekannt
sind die Abmessungen des analogen Kleinbildformates sowie dessen Abstand
zwischen Linse und Sensor und die Diagonale des Sensors. Zum Testen dieses Systems wurde eine Sony W7 mit einer Auflösung von 7,2 Megapixel
oder 3072 × 2304 Pixel verwendet. Es handelt sich dabei um einen 1/1,8”
Super HAD CCD5 Sensor mit einer Diagonale von 8,933mm und einem Bildseitenverhältnis von 4:3 (im Gegensatz zu einer Kleinbildkamera mit einem
Verhältnis von 3:2) [24]. Seine Höhe h und Breite w läßt sich basierend auf
seiner Diagonale c und seinem Bildseitenverhältnis v berechnen:
5
h=
r
c2
=
1 + v2
s
8, 933 mm2
= 7.176 mm
1 + (4 : 3)2
(3.12)
w=
s
c2
=
1 + v12
s
8, 933 mm2
= 5.319 mm
1
1 + (4:3)
2
(3.13)
CCD = Charge-coupled Device
35
KAPITEL 3. GRUNDLAGEN
Kleinbildkamerafilm 24 x 36 mm
4/3”
1”
2/3”
1/1,8”
1/2”
1/3”
Abbildung 3.5: Größenvergleich gängiger Sensorgrößen (grau) und des analogen Kleinbildformates (hellgelb). Die Abmessungen des Kleinbildfilmes betragen 24 × 36 mm. Das entspricht einer Diagonale von 43, 26̄ mm. Ein 1/1,8”
Sensor (rot) hat eine Diagonale von 8,933 mm [20]. Die Sensorgröße spielt
eine große Rolle im optischen System, da mit Hilfe ihres Wertes und dem
Abstand zwischen Sensor und Linse die Koordinaten des Richtungsvektors
zum Objekt berechnet werden können.
Um die Diagonale der Kleindbildkamera zu berechnen wird der Pythagoräische Lehrsatz verwendet. Durch die Quadratwurzel aus Höhe bk und Breite
wk des Kleinbildfilmes. Damit sind dann alle Abmessungen von Kleinbildfilm
und Sensor bekannt:
q
p
(3.14)
ck = b2k + wk2 mm = 242 + 362 mm = 43, 26̄ mm
Die Kleinbilddiagonale ergibt also 43, 26̄ mm. Man kann erkennen dass
es sich um einen gewaltigen Größenunterschied handelt, jedoch die Field of
View bei analoger und digitaler Kamera gleich bleibt. Damit das so ist, muss
sich bei kleinerer Sensorgröße auch der Abstand zwischen ihm und der Linse
ändern. Diese kann mit Hilfe der Größenrelation f act der Diagonalen von
Kleinbildfilm und Sensor berechnet werden:
fact =
ck
43, 26̄ mm
=
= 4, 8434
cs
8, 933 mm
(3.15)
Damit ist der Sensor einer digitalen Kamera um das 4,8434-fache kleiner
als der Film einer analogen Kamera. Der Abstand wird aus Gewohnheit jedoch immer noch wie bei analogen Kameras (38mm) angegeben. Mit diesem
36
KAPITEL 3. GRUNDLAGEN
herkömmlichen Abstand fk und dem Größenfaktor läßt sich jedoch der hier
verwendete, wirkliche Abstand fs berechnen:
fs =
fk
38 mm
=
= 7, 8456 mm
fact
4, 8434
(3.16)
Mit dem gleichen Field of View beträgt der Abstand pdist zwischen Sensor und Linse der Digitalkamera also 7,8456 mm. Der Sensor der W7 hat
eine maximale Auflösung von 3072 × 2304 Pixel (wirkliche Anzahl der Pixel
pnumb = 3072), für ein Video beträgt die Auflösung aber nur 640 × 480 Pixel
(Anzahl der verwendeten Pixel pused = 640), das bedeutet, dass nur jedes
4,8te Pixel des Sensors verwendet wird:
pdist =
pnumb
3072 Pixel
=
= 4, 8
pused
640 Pixel
(3.17)
Somit entspricht die Größe psize eines Sensorpixels der Größe von 4,8
realen Pixeln bzw. einem 640tel der Gesamtbreite des Sensors:
psize =
7, 176 mm
ws
=
= 0, 0112 mm
resx
640
(3.18)
Den in der Bildverarbeitung berechneten Pixelwert x (X-Position des
Schwerpunktes des getrackten Objektes im Bild) muss man nun mit der
Pixelgröße multiplizieren um die reale Position am Sensor zu erhalten. Die
Werte reichen für x von -320 bis 320 und für y von -240 bis 240, da der
Mittelpunkt des Bildes zwar in (0/0), aber in der Mitte von 640 × 480 liegt
(siehe Abbildung 3.6).
Da hier die, für jedes Frame veränderlichen, Werte von der Schwerpunktberechnung (siehe Abschnitt 3.2.3) zum Tragen kommen, wird zur Veranschaulichung x = 160 und y = 120 als Beispiel angenommen. Die Berechnung wird für die X-Koordinate durchgeführt und erfolgt analog für Y . Die
reale Position am Sensor xpos beträgt:
xpos = psize x = 0, 0112 mm · 160 = 1, 794 mm
(3.19)
Das 160te Pixel (in realen Pixeln entspricht das 160×4, 8, dem 768. Pixel)
ist also 1,794 mm vom Sensormittelpunkt entfernt. Damit sind Sensorposition
und Abstand zwischen Sensor und Linse bekannt und der Winkel αxrad des
Richtungsvektors kann mit Hilfe von Winkelfunktionen berechnet werden:
αxrad = arctan
µ
xpos
fs
¶
= arctan
µ
1, 794 mm
7, 8456 mm
¶
= 0, 2248 rad
(3.20)
37
KAPITEL 3. GRUNDLAGEN
640
-320/240
320/240
Objekt
160/120
y
480
x
0/0
320/-240
-320/-240
Abbildung 3.6: Die Auflösung des Videos ist 640 × 480. Der Ursprung des
Bildes liegt in der Mitte des Bildes, weshalb die Werte von -320 bis 320 in
X-Richtung bzw. von -240 bis 240 in Y -Richtung reichen. Der grüne Stern
veranschaulicht das zu trackende Objekt. Für das Rechenbeispiel wird sein
Schwerpunkt mit x = 160 und y = 120 angenommen.
Um das Ergebnis dieser Berechnung zu veranschaulichen, wird der Winkel
von Radianten in das Gradmaß (αxdeg ) umgerechnet:
αxrad 180
= 12, 88◦
(3.21)
π
αyrad 180
= 9, 73◦
(3.22)
αydeg =
π
Der Richtungsvektor geht also in unserem Beispiel vom optischen Zentrum aus mit 12, 88◦ auf der X/Z Ebene und 9, 73◦ auf der Y /Z Ebene.
Weitergerechnet wird allerdings mit den Winkeln in Rad. Die Umrechnung
in Grad erfolgt zur Veranschaulichung des Ergebnises. Der X-Wert rx des
Richtungsvektors läßt sich jetzt wieder mit Hilfe von Winkelfunktionen berechnen:
αxdeg
=
rx = tan (αxrad ) = tan (0, 2248) = 0, 1715
(3.23)
Da Tangens und Arcustangens einander aufheben, läßt sich diese Gleichung vereinfachen:
µ
µ
¶¶
xpos
xpos
rx = tan arctan
= 0, 1715
(3.24)
=
fs
fs
Die Zusammenfassung alle Gleichungen ergibt wieder die Gleichung 3.11
von der Einleitung. Um den Vektor in Y -Richtung zu berechnen, muss statt
38
KAPITEL 3. GRUNDLAGEN
der Sensorbreite ws natürlich die Sensorhöhe hs und der y-Wert statt dem xWert verwendet werden. Die Auflösung ist zwar in X- und Y -Richtung gleich,
der Verständlichkeit halber wird aber resy in der Gleichung verwendet. Der
Gesamtvektor ~r vom optischen Zentrum der Kamera aus in Richtung Objekt
lautet also folgendermaßen:
 
rx

~r =  ry  = 
rz

3.3.2
c k ws x
fk cs resx
c k hs y
fk cs resy
Schnittpunktberechnung
1



(3.25)
Nachdem die Vektoren aller Kameras berechnet wurden, könnte man rein
theoretisch ihren Schnittpunkt durch das Gleichsetzen ihrer X-, Y - und ZWerte berechnen. Durch Ungenauigkeiten ergibt sich jedoch kein richtiger
Schnittpunkt, weshalb der minimale Abstand der Geraden berechnet werden
muss.
Eine Gerade im Raum läßt sich eindeutig durch einen definierten Startpunkt und einen, von diesem Punkt ausgehenden, Richtungsvektor bestimmen. Der Startpunkt wird in unserem Fall durch die Position des Linsenzentrums der Kamera in Weltkoordinaten bestimmt und Berechnung des
Richtungsvektors wurde im vorherigen Abschnitt 3.3.1 Optik erklärt.
Die Ausgangswerte sind also die Vektoren von den Kameras aus, welche
durch ihr Linsenzentrum bzw. das optische Zentrum ~k und ihren Richtungsvektor ~r bestimmt sind. Durch Multiplikation von ~r mit dem Parameter λ,
läßt sich jeder Punkt auf einem Vektor ~g dargestellen. Diese sind durch die
Parameterform
~g = ~k + ~r λ
(3.26)
definiert [4] [12]. Die Distanz zwischen zwei Geraden läßt sich damit wie
folgt berechnen:
¯³
´¯
´ ³
¯
¯
d(λ1 , λ2 ) = |g~1 − g~2 | = ¯ k~1 + ~r1 λ1 − k~2 + ~r2 λ2 ¯
¯
¯
¯
¯
= ¯k~1 − k~2 + ~r1 λ1 − ~r2 λ2 ¯
(3.27)
Diese Gleichung ist bis jetzt theoretisch, da noch keine Werte einsetzbar
sind. Um die Distanz berechnen zu können, müssen der Startpunkt und der
Richtungsvektor in ihre X-, Y - und Z-Werte aufgeteilt werden:
¯
 ¯

 

 
¯
¯ k1 x
r2 x
r1 x
k2 x
¯
¯
d(λ1 , λ2 ) = ¯¯ k1 y  −  k2 y  +  r1 y  λ1 −  r2 y  λ2 ¯¯ (3.28)
¯
¯ k1 z
r2 z
r1 z
k2 z
39
KAPITEL 3. GRUNDLAGEN
Vektor
Vektor
+
Geringster
Abstand
Schnittpunkt
Vektor
Vektor
a)
b)
Vektor
Vektor
+
+
+
+
Geringster
Abstand
Vektor
c)
Abbildung 3.7: Das linke Bild a) zeigt den Idealfall, einen echten Schnittpunkt zwischen zwei Geraden. Das heißt X- und Y -Werte sind in beiden
Geraden im Schnittpunkt identisch. Durch Ungenauigkeiten und Auflösung
bzw. Rasterung der digitalen Bilder kommt es leider nie zu einem echten
Schnittpunkt und die Geraden verfehlen sich, weswegen wie im rechten Bild
b) immer der minimale Abstand berechnet werden muss. Die Mitte des minimalsten Abstandes bestimmt somit den fiktiven Schnittpunkt. Der Abstand
zwischen den Geraden beträgt beim hier verwendeten Testaufbau durchschnittlich einige Zentimeter. Werden, wie in Bild c) mehr als zwei Kameras
verwendet, wird aus den Mitten der Abstände zwischen den einzellnen Vektoren der gesamte Mittelpunkt errechnet.
Eine Distanz zwischen zwei Geraden in drei Dimensionen läßt sich durch
deren euklidischen Abstand, also die Quadratwurzel der Addition der einzelnen Werte zum Quadrat errechnen:
d(λ1 , λ2 ) =
mit:
q
dx (λ1 , λ2 )2 + dy (λ1 , λ2 )2 + dz (λ1 , λ2 )2
(3.29)
dx (λ1 , λ2 ) = (k1 x − k2 x + r1 x λ1 − r2 x λ2 )
dy (λ1 , λ2 ) = (k1 y − k2 y + r1 y λ1 − r2 y λ2 )
dz (λ1 , λ2 ) = (k1 z − k2 z + r1 z λ1 − r2 z λ2 )
Gesucht sind damit die Werte λ1 und λ2 , welche die Positionen des minimalen Abstands bestimmen. Da es sich um zwei Unbekannte handelt ist ein
Gleichungssystem mit zwei Gleichungen notwendig, um diese Unbekannten
zu bestimmen.
40
KAPITEL 3. GRUNDLAGEN
y
k1
g1=k1+r1.l1
d
g2=k2+r 2.l 2
k2
x
z
Abbildung 3.8: Diese Abbildung zeigt, wie die minimale Distanz d zwischen den Vektoren g~1 und g~2 , deren Ausgangspunkte in k~1 und in k~2 liegen,
berechnet wird. Durch Einsetzen der Parameterdarstellung in die Subtraktion g~1 − g~2 läßt sich die Gleichung 3.27 zur Berechnung des Abstandes d
aufstellen.
Der minimale Abstand bedeutet eine Minimalstelle zwischen der „Distanzfläche“ d im Vektorraum D, λ1 und λ2 , wobei d die Distanz zwischen
den Strahlen an jenen Positionen darstellt, welche durch die Parameter λ1
und λ2 definiert sind. Durch die partielle Ableitung der Distanz d nach dem
ersten Skalar λ1 und nach dem zweiten Skalar λ2 kann die Minimalstelle ermittelt werden. Es könnte sich bei einem Minimum theoretisch auch nur um
ein lokales Minimum handeln. Da zwei Strahlen jedoch gemeinsam immer
nur ein einziges, und dadurch absolutes Minimum haben können, kann hier
das erste gefundene Minimum zur Berechnung verwendet werden. Abbildung
3.8 zeigt den minimalen Abstand zwischen den Vektoren g~1 und g~2 auf dem
Richtungsvektor an den Punkten von λ1 und λ2 .
Die partielle Ableitung der Distanzengleichung nach λ1 ergibt damit:
2 r1 x d x + 2 r1 y d y + 2 r1 z d z
∂d(λ1 , λ2 )
q
=
=0
∂λ1
2 d2 + d2 + d2
x
y
(3.30)
z
Sowie die partielle Ableitung nach λ2 :
−2 r2 x dx − 2 r2 y dy − 2 r2 z dz
∂d(λ1 , λ2 )
q
=
=0
∂λ2
2 d2 + d2 + d2
x
y
(3.31)
z
Wie oben erwähnt, können durch Lösen des Gleichungssystems nun zwei
fixe Gleichungen für λ1 und λ2 berechnet werden. Sie müssen nur einmal
41
KAPITEL 3. GRUNDLAGEN
berechnet werden und können im Programm für jede Berechnung verwendet werden, was für die Laufzeit von Vorteil ist. Die Unbekannten werden
also nur mehr in der Software eingesetzt, was wenig Rechenzeit benötigt. Die
Gleichungen sind sehr komplex, weshalb sie zur Veranschaulichung aufgeteilt
wurden.
Lösung des Gleichungssystems nach λ1 :
(3.32)
λ1 = λ11 + λ12 λ13
mit:
λ11 = −
λ12 =
λ13 =
³
−(k1 x r2 x )+k2 x r2 x −k1 y r2 y +k2 y r2 y −k1 z r2 z +k2 z r2 z
−(r1 x r2 x )−r1 y r2 y −r1 z r2 z
´
(k1 x r1 x −k2 x r1 x +k1 y r1 y −k2 y r1 y +k1 z r1 z −k2 z r1 z ) (−r1 x 2 −r1 y 2 −r1 z 2 )
(−(r1 x r2 x )−r1 y r2 y −r1 z r2 z )2 −(r1 x 2 +r1 y 2 +r1 z 2 ) (r2 x 2 +r2 y 2 +r2 z 2 )
(−(k1 x r2 x )+k2 x r2 x −k1 y r2 y +k2 y r2 y −k1 z r2 z +k2 z r2 z ) (r2 x 2 +r2 y 2 +r2 z 2 )
(−(r1 x r2 x )−r1 y r2 y −r1 z r2 z )2 −(r1 x 2 +r1 y 2 +r1 z 2 ) (r2 x 2 +r2 y 2 +r2 z 2 )
Lösung des Gleichungssystems nach λ2 :
λ2 =
− (λ21 λ22 ) − λ23 λ24
λ25 − λ26
(3.33)
mit:
λ21
λ22
λ23
λ24
λ25
λ26
¡
¢
= −r1 x 2 − r1 y 2 − r1 z 2
= (− (k1 x r2 x ) + k2 x r2 x − k1 y r2 y + k2 y r2 y − k1 z r2 z + k2 z r2 z )
= (k1 x r1 x − k2 x r1 x + k1 y r1 y − k2 y r1 y + k1 z r1 z − k2 z r1 z )
= (− (r1 x r2 x ) − r1 y r2 y − r1 z r2 z )
= ¡(−r1 x r2 x − r1 y r2 y ¢−¡r1 z r2 z )2
¢
= r1 x 2 + r1 y 2 + r1 z 2 r2 x 2 + r2 y 2 + r2 z 2
Dazu ist zu sagen, dass es sich bei den Winkeln zwischen den Geraden
immer um einen rechten Winkel handeln muss. Alle anderen Winkel würden
automatisch zu einem größerem Abstand führen. Diese Gerade ist auch als
Lot-Gerade bekannt [4].
Nachdem die Punkte auf den Geraden berechnet wurden, die den geringsten Abstand zueinander haben, ist es nur mehr ein kleiner Schritt um
den fiktiven Schnittpunkt zu bestimmen. Der Schnittpunkt S wird in der
Mitte der zwei am nächsten zueinander liegenden Punkte angenommen. Da
die Verbindung zwischen diesen Punkten eine Gerade ist, ergibt der arithmetische Mittelwert dieser Punkte den Schnittpunkt. Dieser Schnittpunkt
42
KAPITEL 3. GRUNDLAGEN
ist die berechnete Objektposition für einen Frame. Er wird folgendermaßen
berechnet:

S=
3.3.3
k1 x +k2 x +r1 x λ1 +r2 x λ2
2
k1 y +k2 y +r1 y λ1 +r2 y λ2
2
k1 z +k2 z +r1 z λ1 +r2 z λ2
2


(3.34)
Field of View
Die Field of View (FoV) oder das Sichtfeld umfasst den Bereich, der von
der Kamera eingesehen werden kann. Er ist pyramidenförmig, wobei sich die
Spitze in der Kamera befindet, genauer gesagt beim Brennpunkt in der Linse.
Die Größe des FoV kann mit Hilfe der Optik berechnet werden. Wenn man
320 in X-Richtung bzw. 240 in Y -Richtung in die Gleichung 3.19 einsetzt,
erhält man die Hälfte der Breite des Sensors (640×480). Um die gesamte FoV
(F oVh (Höhe) bzw. F oVw (Breite)) zu erhalten, muss das Ergebnis dieser
Berechnung noch dupliziert werden, da hier nur die Hälfte des Sichtfeldes
bestimmt wird. Würde statt der halben Breite die volle Breite eingesetzt,
wäre das Ergebnis jedoch verfälscht da dann vom Mittelpunkt zur doppelten
Breite des Sensors berechnet würde und nicht die volle Breite des Sensors
mittig zur Linse. Das Ergebnis ist α in rad. Mit α 180
π erhält man den Winkel
in Grad. Die FoV der Breit und der Höhe ergeben damit:
F oVw = 49.1517◦
F oVh = 37.8634◦
(3.35)
Das Sichtfeld der Kamera beträgt also 49◦ in der Breite und 38◦ in der
Höhe. Es ist wichtig diese Werte zu kennen, wenn man das System konzipiert,
also die Clients platziert. Mehr dazu im Abschnitt 4.1.2 Aufstellung im Raum.
3.3.4
Koordinatensysteme
Es ist wichtig zu verstehen, dass hier immer von zwei verschiedenen Koordinatensystemen die Rede ist. Im Abschnitt 3.3.1 Optik wurde der Richtungsvektor ~r in Kamerakoordinaten berechnet und im Abschnitt 3.3.2 Schnittpunkt wurde nach dem geringsten Abstand zwischen diesen Vektoren bzw.
Geraden im Weltkoordinatensystem gesucht. Jeder Client bzw. jede Kamera
hat ihr eigenes Koordinatensystem, wobei die Sensorfläche die X- und Y Achsen aufspannt und die Blickrichtung der Kamera die Z-Achse beschreibt.
Ziel ist es, die Kamerakoordinaten in Weltkoordinaten umzurechnen, um so
den Schnittpunkt berechnen zu können. Dies ist möglich, wenn die Winkel
der Verdrehung zwischen diesen Kameraachsen und den Achsen des Weltkoordinatensystems bekannt sind. Die Winkel sind zwar für jeden Client unter-
43
KAPITEL 3. GRUNDLAGEN
y
b (Pan)
optisches Zentrum
x
a (Shift)
g (Tilt)
z
Abbildung 3.9: Der Ursprung des Kamerakoordinatensystems und damit
auch des Richtungsvektors ~r liegt im optischen Zentrum der Kamera. Die
Position der Kamera ist also die X-, Y - und Z-Position des optischen Zentrums und die Ausrichtung der Kamera ist die Blickrichtung in die Z-Achse,
sowie die Bildebene in X- und Y -Achse. Die Winkel zwischen diesen Achsen in Kamerakoordinaten und den Weltkoordinaten definieren damit die
Ausrichtung.
schiedlich, die Matrizen für die Umrechnung (siehe Gleichung 3.36) bleiben
jedoch gleich.
Diese drei Winkel, oder auch Freiheitsgrade, heißen Pan, Shift und Tilt.
Pan beschreibt die Rotation um die Y -Achse, Shift die Rotation um die XAchse und Tilt die Rotation um die Z-Achse. Wenn man die Kamera als die
Augen im menschlichen Kopf annimmt, wäre Pan damit einem links-rechtsSchauen gleichzusetzen, Shift dem Nicken und Tilt einem links-rechts-Neigen.
Die Rotation um die X-Achse, also Shift, wird hier α genannt, die um die
Y -Achse, also Pan, heißt β. Der Wert für Tilt, also die Rotation um die
Z-Achse bekommt die Variable γ.
Die Weltkoordinaten setzen sich aus der Nord-Süd Position, Ost-West
Position und der Höhe über dem Meeresspiegel zusammen. Die Nord-SüdAchse wird hier als Y -Achse definiert, Ost-West als X-Achse und die Höhe
als Z-Achse. Damit entspricht das Weltkoordinatensystem einer aufgespannten Landkarte bei der Norden im zweidimensionalen Bild oben ist. Die Ausgabe des getrackten Pfades erfolgt auch in dieser Vogelperspektive (siehe
Abschnitt 4.2.7). Die Kamera befindet sich in der Normalposition, wenn die
Kameraorientierung mit der Orientierung des Weltkoordinatensystems übereinstimmt, also sich ihre Achsen in der gleichen Ausrichtung befinden. Wenn
der Sensor parallel und ausgerichtet zu den Nord-Süd und Ost-West Achsen
ist und das Objektiv nach oben zeigt. Die Abweichungen von dieser Normalposition ergeben die Winkel, mit denen die Vektoren mit Hilfe der Transformationsmatrix vom Kamerakoordinatensystem ins Weltkoordinatensystem
KAPITEL 3. GRUNDLAGEN
44
umgerechnet werden können. Die Transformationsmatrizen lassen sich damit wie folgt anschreiben:
M = Mx · M y · M z
(3.36)
mit:


1
0
0
Mx =  0 cosα sinα 
0 −sinα cosα


cosβ 0 −sinβ

1
0
My =  0
sinβ 0 cosβ

cosγ sinγ 0
Mz =  −sinγ cosγ 0 
0
0
1

Bei diesen Matrizen handelt es sich um die eulerschen Winkel, welche
verwendet werden um eine Drehung um bestimmte Achsen und damit eine
Transformation zwischen Koordinatensystemen darzustellen. Der Wert der
Achse, um die rotiert wird, bleibt immer gleich, es ändern sich die Werte der
andern beiden Achsen durch Winkelfunktionen um den Sinus- bzw. CosinusWert des Winkels.
Kapitel 4
System
Dieses Kapitel stellt das implementierte Multikamera-Trackingsystem dar,
beschäftigt sicht zuerst mit dem Aufbau der Hardware und anschließend mit
der programmiertechnischen Realisierung des Systems.
4.1
Aufbau
Hier wird die für das System benötigte Hardware und deren Möglichkeiten,
sowie die Eignung bestimmter Ausführungen für spezifische Anwendungen
und der jeweils passende Aufbau des Systems beschrieben.
4.1.1
Auflistung benötigter Hardware
• Client
Portabler PC
Videokamera
GPS-Empfänger
Kompass
Beschleunigungssensor
Wireless LAN
• Server
Stand PC oder Laptop
Wireless LAN
• Sonstiges
Wireless LAN Router
45
KAPITEL 4. SYSTEM
46
Grundsätzlich besteht das System aus einem Server und mehreren Clients.
Je nach Größe und Beschaffenheit (verwinkelt, offene Ebene, ...) des einzusehenden Gebietes werden zwei bis theoretisch unendlich viele Clients benötigt. Es gibt mehrere Möglichkeiten für das Hardwaresetup, für verschiedene
Anwendungen und Budgets. Für ein optimal flexibles System werden pro Client ein PDA, eine Videokamera, ein GPS-Empfänger, ein Kompass und ein
Beschleunigungssensor, welcher die Gravitation für alle drei Achsen misst,
benötigt.
Der Server ist optimalerweise ein Stand-PC oder ein leistungsstarker Laptop. Dieser sollte über einen WLAN Empfänger verfügen um drahtlos mit
den Clients zu kommunizieren. Sofern kein offenes drahtloses Netzwerk in
der Region verfügbar ist, wird zusätzlich ein Hot Spot benötigt.
Wird nur ein stationäres System benötigt reichen Laptops oder sogar
Stand-PCs, je nach Platzierung der Clients. Videokamera, GPS Empfänger,
Kompass und Neigungssensor werden in jedem Fall für die Strahlberechnung
benötigt. Werden die Clients in Gebäuden mit LAN (Local Area Network)
aufgestellt, kann dieses statt dem drahtlosen Netzwerk genutzt werden. Ein
Router muss in diesem Fall vorhanden sein.
4.1.2
Aufstellung im Raum
Jeder Punkt im Raum, der überwacht werden soll, muss von mindestens
zwei Kameras eingesehen werden, was soviel heißt, dass das gesuchte Objekt in zwei Kamerabildern gleichzeitig erscheinen muss, um die Positionsberechnung möglich zu machen. Ein größerer Winkel der Kamerastrahlen im
Schnittpunkt ergibt genauere Messergebnisse. Die mathematischen Grundlagen der Schnittpunktberechnung werden im Abschnitt 3.3.2 genauer erklärt.
Abbildung 4.1 zeigt den Grundriss eines verwinkelten Raumes in welchem
Kameras (Clients) installiert sind. Die bunten Kreise symbolisieren jeweils
die Position einer Kamera und die grauen Polygone mit den bunten Linien
das jeweilige Gebiet, welches diese Kamera sieht. Je dunkler die graue Fläche ist, desto mehr Kameras beobachten dieses Gebiet. Die Orientierung und
die Field of View (FoV) (siehe Abschnitt 3.3.3) bestimmen die Position und
Größe dieser Flächen. Die hier verwendete FoV beträgt 50◦ horizontal. Die
FoV muss natürlich auch vertikal berücksichtigt werden, zur Veranschaulichung wird in diesem Beispiel aber von einem zweidimensionalen Raum ausgegangen. Die rote, strichlierte Linie umfasst in jedem der vier Einzelbilder
jenes Gebiet, welches zur Positionsbestimmung geeignet ist (mindestens von
zwei Kameras gesehen). Die schwarze, gepunktete Linie symbolisiert jenen
Bereich, welcher von allen Kameras eingesehen wird.
Bild a) zeigt einen Aufbau mit zwei Kameras. Man kann erkennen, dass
die zur Kamera gehörenden, eingesehenen Flächen nicht dreieckig sind, da
Ecken bzw. Wände teilweise die Sicht verdecken. In allen Bereichen, die
von beiden Kameras eingesehen werden, kann die Position von Objekten
47
KAPITEL 4. SYSTEM
1
2
a)
2
3
2
2
1
3
1
b)
1
c)
3
d)
5
4
4
Abbildung 4.1: Demonstration eines Kamerasetups in einem verwinkelten
Raum. Man sieht den Raum aus der Vogelperspektive. Jede Fläche versinnbildlicht das Gebiet, das von einer Kamera (dargestellt als bunter Kreis mit
der selben Farbe wie der Umriss der Fläche) eingesehen wird. Abbildung a)
zeigt einen Aufbau mit zwei Kameras. In Abbildung b) wurden drei, in Abbildung c) vier und in Abbildung d)fünf Kameras verwendet. Das Gebiet, in
welchem Objektpositionen berechnet werden können, ist innerhalb der roten,
strichlierten Linie. Das Gebiet, welches alle Kameras einsehen ist innerhalb
der schwarzen, gepunkteten Linie.
bestimmt werden. Wird ein Objekt in einem nur von einer Kamera eingesehenen Bereich gefunden, geht diese Information im System verloren, da kein
Schnittpunkt berechnet werden kann.
Das zweite Bild b) zeigt den selben Raum mit drei Kameras. Das Gebiet
innerhalb der strichlierten Linie ist schon wesentlich größer. Kamera zwei
und drei haben jedoch sehr ähnliche Orientierungen im Raum, was in den
neugewonnenen Bereichen zu größeren Fehlern bei der Positionsbestimmung
führen kann.
Im dritten Bild c) werden vier Kameras verwendet und in Bild d) fünf.
Man kann erkennen dass der rotstrichlierte Bereich (mindestens zwei Kameras) immer größer und der schwarzgepunktete (alle Kameras) immer kleiner
KAPITEL 4. SYSTEM
48
wird, d.h. man kann ein immer größer werdendes Gebiet beobachten, das
Kerngebiet, welches alle Kameras einsehen wird jedoch immer kleiner.
Hier wird davon ausgegangen, dass nur eine Person getrackt werden soll,
es muss also immer nur eine Position berechnet werden. Sollen mehrere Personen getrackt werden, ergibt sich das Problem einer möglichen Verdeckung
von einer Person zur anderen. Bei zwei Kameras und zwei Personen kann also
nicht gewährleistet werden, dass beide Personen immer in beiden Kamerabildern gefunden werden, auch wenn sie sich theoretisch beide innerhalb der
rotstrichlierten Linie befinden. Abhilfe schafft die Verwendung von mehreren
Kameras. Würden zwei Personen mit drei Kameras getrackt, wird immer jede
von mindestens zwei Kameras gesehen (sofern sie sich innerhalb des Bereiches
der rotstrichlierten Linie befindet). Pro weiterer Person, die getrackt werden
soll, muss also noch eine weitere Kamera verwendet werden. Die Anzahl der
Kameras muss also mindestens der Anzahl der zu trackenden Personen plus
eins entsprechen. Die Person, welche verdeckt wird, muss sich dann jedoch
im Bereich von mindestens zwei weiteren Kameras befinden um gefunden
zu werden. Ein weiteres Problem kann die Nähe von Personen zur Kamera
ausmachen. Befindet sich eine Person sehr nahe bei der Kamera kann es vorkommen, dass sie das ganz Kamerabild einnimmt. Der Richtungsvektor zum
Objekt würde also genau geradeaus durch den Mittelpunkt des Bildes gehen,
egal ob sich die Person weiter auf einer Seite befindet oder auf der anderen.
Da jedoch der zweite Richtungsvektor dann in Richtung der ersten Kamera
zeigen würde, wird der Fehler nicht zu groß.
4.1.3
Flexible Positionierung der Clients
Um das System unabhängig von einem starren Setup und damit userfreundlich zu machen, müssen die Kameras (Clients) beliebig, also ohne zusätzliche
Konfiguration, im Raum aufgestellt werden können. Wäre das nicht der Fall
könnte das System immer nur an einem bestimmten Ort mit einem bestimmten Setup der Kameras verwendet werden. Flexibel bedeutet hier, dass die
Clients beliebig positioniert werden, und nach dem Starten des Systems ohne
weiteres Zutun Objektpositionen ermittelt werden können. D.h. dem System
soll nicht manuell eingegeben werden, wo sich die Kameras befinden und
wie sie orientiert sind, sondern das System soll diese Informationen selbst
ermitteln.
GPS-Empfänger, Kompass und Beschleunigungssensor
Um die Position und die Ausrichtung bzw. Orientierung einer Kamera genau
zu bestimmen sind sechs Freiheitsgrade nötig. Diese sind die X-, Y - und ZWerte der Position in Weltkoordinaten, also in diesem Fall GPS-Daten, sowie
die drei Winkel, die den Offset des Kamera- zum Weltkoordinatensystem
beschreiben. Bei diesen Winkeln handelt es sich um Pan, Tilt und Shift,
KAPITEL 4. SYSTEM
49
Abbildung 4.2: In der Abbildung kann man zur Positions- und Orientierungsbestimmung verwendbare Bauteile sehen. Das erste Bauteil a) ist ein
GPS Empfänger mit dem die Position bestimmt wird. Ein elektronischer
Kompass zur Bestimmung des Winkels Pan wird in b) dargestellt und c)
zeigt einen Beschleunigungssensor in drei Achsen zur Bestimmung der Winkel Shift und Tilt.
welche im Abschnitt 3.3.4 (Abbildung 3.9) genauer erklärt wurden.
Die Positionsdaten kann man, da es sich um GPS-Daten handelt, am
besten mit einem GPS-Empfänger ermitteln. Grundlagen zu GPS wurden
im Abschnitt 2.2.1 erklärt. Damit sind drei von sechs Freiheitsgraden bestimmt. Die Orientierung der Winkel Shift und Tilt läßt sich durch Gravitation bestimmen. Dazu kann z. B. ein Neigungs- oder Beschleunigungssensor
verwendet werden. Dieser misst die Erdanziehung in drei Achsen. Ist die
Positionierung des Sensors am Gerät bekannt, lassen sich damit die Winkel
berechnen. Mit einem Beschleunigungssensor lässt sich jedoch nicht die Rotation (Pan) des Gerätes bzw. des Clients bestimmen. Wäre er z. B. waagrecht
ausgerichtet, könnte nicht bestimmt werden in welche Himmelsrichtung er
schaut, da sich die Gravitationswerte nicht ändern würden. Um diesen letzten Freiheitsgrad zu bestimmen wird ein Kompass verwendet. Dieser Wert
könnte bei Bewegung durch die Position nach der Zeit von den GPS Daten ermittelt werden. Jedoch ist eine gewisse Mindestgeschwindigkeit der
GPS-Empfänger erforderlich, die für die meisten Setups nicht erreicht werden würde. Durch einen elektronischen Kompass kann die Ausrichtung auch
bei Stillstand ermittelt werden. Elektronische Kompasse haben eine Genauigkeit von ca. 0, 1◦ .
Kommunikation - WLAN oder Kabel
Wie schon besprochen gibt es verschiedene Möglichkeiten für das Setup. Genauso verhält es sich bei der Kommunikation. Am flexibelsten ist natürlich
ein drahtloses Netzwerk (WLAN1 ), da die Clients in diesem Fall frei bewegbar sind und nicht durch Kabel behindert werden. Sie können also ohne Probleme an einem anderen Ort platziert werden ohne das System unterbrechen
1
WLAN = Wireless Local Area Network
KAPITEL 4. SYSTEM
50
zu müssen. Netzwerkkabel hingegen sind zuverlässiger, da eine physikalische
Verbindung besteht, aber unhandlicher. Es hängt also wieder von der Anwendung ab welches Kommunikationsmittel gewählt werden soll. In Gebäuden
sind oft Netzwerkbuchsen in jedem Raum vorhanden, an die man die Clients
anschließen und somit das Hausnetzwerk verwenden kann. Im Freien bietet
sich ein drahtloses Netzwerk an.
Wie bei GPS Signalen können auch bei WLAN Oberflächen von z. B.
Gebäuden als Reflektoren wirken. Zusätzlich können Hindernisse die Signale dämpfen und somit die Reichweite erheblich einschränken. Bäume oder
Wände in Gebäuden dämpfen das Signal bis um das Zehnfache. So sind
bei freier Sicht und einer ungerichteten Antenne (Rundstrahlantenne) bei
802.11b/g bis zu 300 Meter Empfang möglich, in Gebäuden reduziert sich
diese Reichweite auf 30 Meter oder weniger. Kabel (hier Ethernet über Cat5
Kabel) hingegen haben immer die gleiche maximale Reichweite von ca. 100
Metern.
4.1.4
Testaufbau
Um das System zu testen wurden zwei Videos aufgenommen, in denen sich
eine Person hin- und herbewegt. Das Gebiet ist offen, also nicht verwinkelt
und die Person bewegt sich mehrmals aus dem überwachten Gebiet hinaus.
Abbildung 4.3 zeigt die Szene mit Position und Ausrichtung der Clients. Kamera zwei befindet sich um 6,175 Meter westlicher und 2,307 Meter südlicher
als Kamera eins. Ihr Pan-Winkel ist für Kamera eins 180◦ und für Kamera
zwei 107◦ . Die Kameras sind nicht anderweitig geneigt. Die Winkel Shift und
Tilt haben somit einen Wert von 0◦ . Das Gebiet, welches beide Kameras einsehen ist dunkelgrau mit rotstrichliertem Umriss dargestellt. Alle, in diesem
Bereich befindlichen, Objekte oder Personen können getrackt werden.
Die Person, welche in den Testvideos zu sehen ist, bewegt sich ungefähr
im Bereich der gelben Ellipse. Man kann erkennen, dass die Ellipse größer
ist als der dunkelgraue Bereich, was bedeutet, dass die Person den Bereich
mehrmals östlich und westlich verlässt. Das Trackingsystem verliert also die
Objektposition und findet sie wieder, nachdem sich das Objekt in das Kamerasichtfeld zurückbewegt. Zwischen diesen Frames kann keine Schnittpunktberechnung durchgeführt werden. Die Objektposition könnte in dieser Situation also nur entweder durch Beobachten des Bewegungsflusses vorausgesagt
werden oder vernachlässigt werden. Exakte Voraussagen können jedoch nicht
getroffen werden, da das Objekt umkehren muss um wieder in das Blickfeld
der Kamera zu gelangen. Dieses Umkehren kann zu jeder Zeit geschehen und
ist nicht an den vorherigen Bewegungsfluss gebunden.
51
KAPITEL 4. SYSTEM
6175mm
Optisches Zentrum von
Kamera 1 = Nullpunkt
1
2307mm
180°
107°
2
North
West
East
South
Abbildung 4.3: Die zum Testen des Systems verwendeten Videos wurden
mit folgendem Aufbau aufgenommen. Kamera 1 befindet sich im Ursprung
des Weltkoordinatensystems und ist mit einem Pan von 180◦ gegenüber diesem verdreht. Die zweite Kamera befindet sich ungefähr 6,2 Meter westlicher
und 2,3 Meter südlicher und hat einen Pan von 107◦ . Der dunkelgraue Bereich mit dem rotstrichlierten Umriss zeigt jene Fläche, welche von beiden
Kameras eingesehen wird und damit überwachbar ist. Die Person im Testvideo bewegt sich ungefähr im gelben Bereich, verlässt also die Kamerabilder
mehrmals.
4.1.5
Kosten
Die Kosten für die Hardwarebauteile variieren stark je nach Qualität und
Ausführung. Ziel dieses Abschnittes ist es, einen ungefähren Wert für ein
durchschnittliches Setup zu ermitteln. Tabelle 4.1 zeigt eine Aufschlüsselung
der ungefähren Kosten der Hardwarebauteile. Je nach Ausführung muss mit
ca. 340e aufwärts für einen PDA mit GPS Empfänger und Kamera gerechnet werden. Die zusätzliche Hardware wie Sensoren und Auswerteelektronik
kostet insgesamt ca. 160e. Für den Server wird ein einfacher, aber schneller
Rechner verwendet. Gemeinsam mit einem Hotspot für die drahtlose Verbindung können Server damit aber ab ca. 550e erworben werden. Die Anzahl
der Clients beeinflusst natürlich die Gesamtkosten des Systems, da beliebig
viele Clients verwendet werden können. Mindestens sind zwei Clients und ein
Server nötig, womit sich für das minimale System ein ungefährer Preis von
∼1550e ergibt. Hardwarepreise fluktuieren bekannterweise, daher sind die
hier angegebenen Kosten als Momentanpreise für Juni 2007 zu verstehen.
52
KAPITEL 4. SYSTEM
Client
PDA mit GPS und Kamera
Kompass
Beschleunigungssensor
Auswerteelektronik
Summe
∼340e
∼40e
∼20e
∼100e
∼500e
Server
Computer >3GHz, 2GB RAM
Hotspot 802.11g
Summe
ab ∼500e
∼50e
∼550e
Tabelle 4.1: Aufschlüsselung der Kosten mit Stand Juni 2007. Ein durchschnittlicher PDA mit GPS-Empfänger und Kamera kostet ca. 340e. Die
meisten PDAs besitzen auch ein GSM Modul, womit Assisted GPS verwendet werden kann, und sind auch WLAN-tauglich. Ein Kompass kommt auf
ca. 40e und ein Beschleunigungssensor auf ca. 20e. Um diese Daten auswerten zu können wird noch zusätzliche Hardware benötigt, welche ungefähr
100e kostet. Damit kostet ein Client ca. 500e. Ein durchschnittlicher Server besteht aus einem Rechner, welcher incl. Bildschirm ca. 500e kostet und
einem Hotspot zur Verbindung mit den Clients um ca. 50e.
4.2
Implementierung
Im zweiten Teil dieses Kapitels wird die Implementierung und der Aufbau
des Projektes beschrieben. Außerdem werden die verwendeten Technologien
wie die Programmierumgebung und -sprachen beschrieben.
Das Programm wurde mit dem Java Development Kit (JDK) und der
Java Runtime Environment (JRE) 1.5.0_12 entwickelt und Eclipse SDK
3.2.1 als Programmierumgebung verwendet. Die Testvideos wurden im avi
Containerformat unkomprimiert aufgenommen. Sie haben eine Framerate
von 25 Bildern pro Sekunde und eine Länge von 23 Sekunden. Es handelt
sich damit um 575 Frames die untersucht werden müssen. Zum Bearbeiten
der Videos wurde ImageJ 1.37 verwendet.
4.2.1
Übersicht der Aufgaben des Systems
Die Aufgaben des Systems setzen sich aus mehreren Einzelaufgaben zusammen. In der folgenden Liste sind diese nach Client und Server getrennt. Die
Aufgaben der Clients müssen, da immer mehr als einer vorhanden ist, natürlich auf allen Clients parallel abgearbeitet werden.
Jeder Client muss folgende Aufgaben für jedes Bild erledigen:
KAPITEL 4. SYSTEM
53
• Videobild einlesen
• Objekterkennung (Computer Vision)
• Berechnung des Richtungsvektors im Kamerakoordinatensystem
• Kameraposition (x,y,z) und Orientierung (Pan, Shift, Tilt) finden
• Senden von Vektor, Position und Orientierung an den Server
Der Server hat folgende Aufgaben abzuarbeiten:
• Neue Clients annehmen und verwalten
• Sammeln der Informationen aller Kameras
• Transformation der Vektoren von Kamerakoordinaten in Weltkoordinaten
• Berechnung des Schnittpunktes durch den kleinsten Abstand der Geraden
• Optische Ausgabe erstellen
4.2.2
Klassendiagramme
Tabelle 4.2 zeigt die für das Projekt erstellten Klassen und Pakete. Die Pakete connect und calculation befinden sich am Server, hingegen die Pakete
imageProcessing, video und videoQT müssen auf jedem Client vorhanden
sein. In Server.java befindet sich der Serverthread, in Client.java der Clientthread. Diese müssen auch jeweils am richtigen Rechner vorhanden sein.
Start.java wird nur zum Testen benötigt und startet Server und Clients in
der richtigen Reihenfolge.
4.2.3
Video-input
Zum Testen dieser Software wurden zwei voraufgenommene Videos verwendet, die eine Person zeigen, welche sich im eingesehenen Bereich bewegt und
sich zu Testzwecken auch aus diesem Bereich hinausbewegt. Aufgenommen
wurden diese Videos mit zwei Sony W7 Digitalkameras mit 25 Frames pro
Sekunde und einer Länge von 23 Sekunden. Das ergibt eine Gesamtanzahl
von 575 Frames pro Video. Die Auflösung der Videos entspricht mit 640×480
einer VGA Auflösung bzw. 307200 Pixel pro Frame.
54
KAPITEL 4. SYSTEM
default
Client.java
Server.java
Start.java
connect
ConnectModel.java
ConnectedSocket.java
SocketServer.java
SLListIterator.java
SLList.Node.java
calculation
Camera.java
Calculation.java
imageProcessing
Image.java
ImageListener.java
Node.java
video
MovieReader.java
Util.java
video.qt
QTMovieReader.java
Tabelle 4.2: Auflistung der Pakete und Klassen im Projekt. Am Server
befinden sich die Pakete connect und calculation. Am Client befinden sich
imageProcessing, video und videoQT.
4.2.4
Bildverarbeitung
Die Bildverarbeitung erfolgt auf allen Clients parallel. Die Bildverarbeitung
selber erfolgt für jeden Frame sobald dieser eingelesen wird. Image.java liest
auf jedem Client das Video Frame für Frame ein und konvertiert es auf das
zur Bearbeitung verwendete ImageProcessor Format von ImageJ. Damit
kann es zur Bildverarbeitung verwendet werden. Die Schritte zur Bearbeitung sind:
• Bild einlesen und konvertieren
• Vordergrund von Hintergrund extrahieren (Region finden)
• Den Schwerpunkt dieser Region berechnen
• Den Richtungsvektor durch diesen Schwerpunkt berechnen
Der Vordergrund, also die gesuchte Region, wird extrahiert indem das
Bild pixelweise durchlaufen und ein Flood-Fill-Algorithmus angewendet wird.
Dieser Algorithmus sucht nach Vordergrundpixeln und sobald eines gefunden
wurde, werden die Nachbarregionen ebenfalls auf Vordergrundeigenschaften
untersucht usw. Auf diese Art wird so lange verfahren bis eine abgeschlossene Region gefunden wurde, also kein Nachbarpixel der Region Vordergrundeigenschaften aufweist. Die gefundenen Regionen müssen eine gewisse
Mindestgröße aufweisen, um als Objekt in Betracht gezogen zu werden. Der
Schwerpunkt der gefundenen Region wird anschließend berechnet indem der
arithmetische Mittelwert über alle X- und alle Y -Werte der Pixel ermittelt
wird. Dieser Wert wurde in der Ausgabe als blaues Fadenkreuz dargestellt
KAPITEL 4. SYSTEM
55
Abbildung 4.4: Frames aus den Testvideos mit roter Markierung des gefunden Objektes und Markierung des Schwerpunktes der gefundenen Region
als blaues Kreuz.
um das Ergebnis optisch zu überprüfen zu können. Nach der Ermittlung
dieses Wertes, wird mit der Berechnung des Richtungsvektors begonnen.
Abbildung 4.4 zeigt das Ergebnis der Objekterkennung mit roter Markierung der gefundenen Person. Das Fadenkreuz in der Mitte der Region
zeigt den berechneten Schwerpunkt aller Pixel und wird zur Vektorberechnung verwendet. In anderen Worten, der Strahl zeigt vom Brennpunkt der
Kamera in die Richtung dieses Punktes.
4.2.5
Berechnungen
Die mathematischen Grundlagen wurden im Abschnitt 3.3 erklärt, in diesem
Abschnitt werden die programmiertechnischen Aspekte der Berechnungen
beschrieben.
Vektorberechnung
Die Vektorberechnung erfolgt auf jedem Client in der Klasse Image.java.
Nachdem der Mittelpunkt des gefundenen Objektes berechnet wurde, wird
die Funktion calcVector(x,y) mit den Parametern x und y als Pixelwerte
des Schwerpunktes aufgerufen. Der Rückgabewert dieser Funktion ist der
Vektor in Richtung des Objektes als X, Y und Z-Werte im Kamerakoordinatensystem. Dieser Vektor wird mitsamt der Position und Orientierung der
Kamera an den Server geschickt.
Umrechnung in Weltkoordinaten
Die Umrechnung der Vektoren vom Kamerakoordinatensystem in das allgemeine Weltkoordinatensystem erfolgt aus Rechenzeitgründen am Server.
Da der Server leistungsstärker ist als die Clients, wird versucht so viel wie
möglich am Server zu erledigen. Würde diese Berechnung am Client stattfinden, müsste zwar nur der Richtungsvektor mit seiner Startposition über-
KAPITEL 4. SYSTEM
56
mittelt werden, nicht aber die Orientierung. Diese wird zur Transformation
zwischen den Koordinatensystemen benötigt. Nachdem der Server die Daten eines Clients erhalten hat, werden die Werte des Richtungsvektors also in
das Weltkoordinatensystem umgewandelt. So wird für jeden Client verfahren
und anschließend kann die Schnittpunktberechnung durchgeführt werden.
Schnittpunktberechnung
Um die Software so performant wie möglich zu halten wurden die Gleichungen vorberechnet, sodass für jeden Frame nur mehr die Unbekannten eingesetzt werden müssen. Diese Variablen sind die Position und der Richtungsvektor jeder Kamera. Wurde die Funktion pointFound() des Serverthreads
von einem Client aufgerufen, wird geprüft ob genügend Werte, sprich Daten
von genügend Clients (mindestens zwei), vorhanden sind um die Berechnung
durchzuführen. Sobald genügend Werte vorhanden sind, wird die Funktion
calculate() in calculation.java aufgerufen. Diese Funktion erhält als
Parameter die Positionen und Orientierungen der Clients sowie die Richtungsvektoren und gibt die Position des Objektes zurück, oder false, wenn
kein Schnittpunkt gefunden wurde. Das kann geschehen wenn z. B. falsche
Objekte gefunden werden, also Objekte die eigentlich keine Objekte sind
und/oder sich an einer falschen Position befinden. Dann sind die Richtungsvektoren so weit voneinander entfernt dass sich kein logischer Schnittpunkt
ergibt. Hierfür wurde ein Schwellenwert ermittelt, welcher bei jeder Berechnung abgefragt wird.
4.2.6
Kommunikationsmodell
Das Kommunikationsmodell basiert auf einem Server mit mehreren Clients,
welche jederzeit hinzugefügt werden können. Der Server verwaltet diese dynamisch in einer Clientliste. Jeder neue Client sendet seine Daten (Position,
Richtungsvektor, Orientierung und Zeitstempel) nach der Bearbeitung jedes
Frames an den Server und dieser berechnet mit den Daten aller Clients den
Schnittpunkt. Sofern mindestens zwei Clients mit dem Server kommunizieren
und gültige Daten übermitteln, kann der Server die Berechnung durchführen.
Mehrere Clients, und damit mehr Daten, führen zu einem stabileren Ergebnis, da der Schnittpunkt durch mehrere Strahlen bestimmt werden kann.
Es handelt sich hier um eine Einwegkommunikation, da die Clients ihre
Daten an den Server übermitteln, der Server aber keine Daten an die Clients
schickt. Das Zurücksenden von Informationen, also Zweiwegkommunikation,
ist nicht nötig. Wenn von einem Client für ein Frame keine oder fehlerhafte
Daten erhalten werden, können die anderen Clients diese Informationen ausgleichen, indem sie genügend Daten liefern bzw. es kann auch ein Frame
vernachlässigt und zum Nächsten übergegangen werden.
57
KAPITEL 4. SYSTEM
Server
comm: Client
comm: Client
init()
init()
connect()
init()
registerClient()
connect()
registerClient()
Abbildung 4.5: Dieses UML-Diagramm zeigt den Verbindungsaufbau zwischen Server und Clients. Werden sie gestartet, meldet sich jeder Client beim
Server an, welcher sie in seine Clientliste hinzufügt und für jeden Client einen
neuen Socket zur Kommunikation aufmacht.
Verbindungsaufbau
Durch die flexible Gestaltung der Server Client Architektur ist es möglich so
viele Clients wie benötigt zu erstellen. Am Server läuft ein Thread, welcher
neue Clients annimmt und startet, was wiederum neue Clientthreads erzeugt.
Für jeden Clientthread wird ein neuer Socket am Server erstellt, über den
der Client die ermittelten Daten schickt. Es können zu jeder beliebigen Zeit
Clients hinzugefügt werden, da die Clientliste dynamisch verwaltet wird [17].
Abbildung 4.5 zeigt den Verbindungsaufbau der Threads im System. Der
Serverthread wird als Erstes gestartet um anschließend Clients annehmen zu
können. Diese melden sich durch die Funktion connect() beim Server an,
welcher die Clients durch rgisterClient() registriert und pro Client einen
neuen Socket zur Kommunikation erstellt. Der Server verwaltet gleichzeitig
die eingehenden Daten, führt die Schnittpunktberechnung aus und erstellt
das SVG-File für die optische Ausgabe des Ergebnisses. Die Clients beginnen
nach ihrem Start die Objektsuche in jedem Frame und senden nach derer
erfolgreichen Ausführung die ermittelten Daten an den Server.
Datenfluss
Der Datenfluss ist der typische Verlauf der Daten im System, von der Eingabe, also dem Video, bis hin zum Ergebnis, der Position des Objektes in
Weltkoordinaten. Abbildung 4.6 zeigt diesen Verlauf. Nachdem der Server
58
KAPITEL 4. SYSTEM
n
Server
Starten des Servers
Neuer Client?
j
Zur Clientliste hinzufügen
Punkt gefunden?
n
Client
Bild einlesen und bearbeiten
j
genügend Werte?
j
Schnittpunkt berechnen
n
Server
Senden an den Server
Abbildung 4.6: Das hier abgebildete Flussdiagramm zeigt den typischen
Datenfluss des Programms. Nach dem Starten des Servers wartet dieser in
einem eigenen Thread auf neue Clients und fügt sie seiner Clientliste hinzu.
Die Clients lesen das Videobild ein und führen die Bildverarbeitung aus. Diese
Operation wird ausgeführt bis ein Objekt gefunden wurde. Die Ergebnisse
werden dem Server übermittelt. Dieser wartet auf ausreichend viele Clients
und berechnet anschließend die Position des Objektes. Die ersten drei und die
letzten zwei Schritte sind serverseitig, die mittleren drei werden vom Client
ausgeführt.
die Clients initialisiert hat, fangen diese Threads an, die einzelnen Videobilder zu bearbeiten. Das geschieht so lange bis ein Objekt in einem Bild
gefunden wurde. Die Richtungsvektoren, welche in der Bildverarbeitung berechnet werden, werden mitsamt der Position und Orientierung der Kamera
an den Server geschickt. Der Server wiederum sammelt solange diese Daten von den Clients, bis er genügend Richtungsvektoren bekommen hat und
wertet diese Daten aus, indem er den Schnittpunkt zwischen den Vektoren
berechnet. Die ersten drei Schritte des Diagramms werden dabei vom Server
ausgeführt, die nächsten drei von jedem Client simultan und die letzten zwei
Schritte wieder vom Server.
Die wichtigsten Methodenaufrufe eines normalen Ablaufes werden in Abbildung 4.7 beschrieben. Nach dem Start des Bildverarbeitungsthreads laden die Clients das jeweils nächste Videobild und bearbeiten es in ihrer
run() Methode. Sobald ein Schnittpunkt gefunden wird, meldet die Methode
59
KAPITEL 4. SYSTEM
comm: Client
Server
comm: Client
image.start()
openVideo(path)
run()
image.start()
openVideo(path)
actionPerformed(cam)
calculate(s)
run()
actionPerformed(cam)
calculate(s)
calc(args[])
Abbildung 4.7: Der typische Datenfluss von der Bildverarbeitung bis zur
Schnittpunktberechnung wird in diesem Sequenzdiagramm vorgestellt. Die
Clients arbeiten parallel ihre Videobilder in der run()-Methode ab, und
schicken, sobald sie ein Objekt getrackt haben, den berechneten Richtungsvektor mit der Methode actionPerformed() an den Server. Sobald dieser
Werte von genügend vielen Clients gesammelt hat wird die Schnittpunktberechnung mit calc() durchgeführt.
actionPerformed() das dem Server und übermittelt das Ergebnis der Bildverarbeitung mitsamt der inneren und äußeren Orientierung der Kamera.
Sobald zwei Ergebnisse vorhanden sind, ruft der Server seine Berechnungsmethode calculate() zur Schnittpunktberechnung auf und fügt die hier
gefundene Position anschließend, sofern der gefundene Schnittpunkt die Kriterien (z. B. Größe der Abstände zwischen den Vektoren) erfüllt, dem File
der optischen Ausgabe hinzu.
Protokoll
Die Kommunikation erfolgt wie oben erwähnt vom Client zum Server. Der
Client schickt seine Daten nach der Bearbeitung jedes Frames, wobei ein eigenes Protokoll verwendet wird. Es werden mit der Client ID die aktuellen
KAPITEL 4. SYSTEM
60
Positionswerte, die aktuelle Orientierung, der berechnete Vektor und natürlich ein Zeitstempel zur Synchronisation übermittelt. Das Protokoll ist wie
folgt aufgebaut:
<protocoll>
::= <client name> <position>
<orientation> <vector> <time>
<client name> ::= "cam1" | "cam2" <EOL>
<position>
::= <x> <y> <z> <EOL>
<orientation> ::= <alpha> <beta> <gamma> <EOL>
<vector>
::= <x> <y> <z> <EOL>
4.2.7
Darstellung
Die Ausgabe der Daten ist ein wichtiger Bestandteil des Systems. Die Bestimmung der Positionsdaten (Längengrad, Breitengrad und Höhe) erfolgt zu
diskreten Zeitpunkten. Aus der Kenntnis der Position des getrackten Objekts
zu unterschiedlichen Zeiten kann auf dessen Trajektorie geschlossen werden.
Für ein anschauliches Ergebnis wurden diese Daten optisch aufbereitet.
Da es sich hier um Positionsdaten in Bezug auf die Zeit handelt, wurde
die Darstellung der Positionen als Punkte in einer Art Landkarte gewählt,
und um den Verlauf der Bewegung zu verdeutlichen, sind diese Punkte durch
Linien verbunden. Wird das Objekt beim Tracking verloren, wird das mit
einer rotstrichlierten Verbindungslinie zwischen der letzten gefundenen Position und der nächsten Position veranschaulicht. Der Startpunkt, bzw. die
Position, in der das Objekt das erste mal getrackt wird, wird grün dargestellt und die letzte Position rot. Je nach Anwendung des Systems könnten
verschiedene Darstellungsarten verwendet werden. Im Abschnitt 6.3 Weiterentwicklungen wird genauer auf mögliche andere Darstellungsarten eingegangen.
Scalable Vector Graphics
Für dieses System wurde die Darstellung als SVG2 File gewählt. Da SVG ein
XML3 -basiertes Dateiformat ist, können SVG-Dateien wie Textfiles bearbeitet werden und müssen nicht kompiliert werden [40]. Die erstellten Grafiken
sind in einer Baumstruktur aus Elementen und ihren Attributen gegliedert.
Es können Vektorgrafiken, Bilder und Text dargestellt werden, wobei Bilder und Text extern eingebunden werden und die Schriftart bekannt sein
muss. SVG 1.0 wurde im September 2001 vom World Wide Web Consortium (W3C) veröffentlicht. Zwei Jahre später, im September 2003 wurde die
Version 1.1 veröffentlicht, welche hier verwendet wird.
Ein großer Vorteil für das System ist die Tatsache, dass SVG für Koordinaten Gleitkommazahlen verwendet, und nicht auf Ganzzahlen beschränkt
2
3
Scalable Vector Graphics
XML=Extensible Markup Language (erweiterbare Auszeichnungssprache)
KAPITEL 4. SYSTEM
61
Abbildung 4.8: Darstellung der Ergebnisse der Schnittpunktberechnung.
Die Punkte stellen die berechneten Positionen des Objektes für jedes Frame
dar. Je nach ihrer Höhe sind sie heller (höher) bzw. dunkler (niedriger). Da es
sich um eine diskrete Zeitfunktion handelt (25fps) stellen die Verbindungslinien die theoretischen Bewegungen zwischen den Frames dar. Wird das
Objekt vom Tracking verloren, wird das mit Hilfe einer roten, strichlierten
Linie dargestellt. Der Startpunkt ist grün und der Endpunkt rot dargestellt.
ist. Damit gehen die genauen Ergebnisse der Berechnung nicht verloren. Wie
jedes XML-basierte Dateiformat wird ein Header, der Inhalt und ein Ende in
der Datei benötigt. Hier wird der Header vom Server beim Starten erzeugt.
Während das Programm läuft, und immer wenn ein Schnittpunkt gefunden
wurde, wird von Calculation.java ein Punkt an der berechneten Position im
SVG-File hinzugefügt. Außerdem wird der neu erstellte Punkt durch eine
Linie mit dem vorherigen verbunden um den Bewegungsfluss zu veranschaulichen. Sobald das Programm beendet wird, bzw. das Video fertig ist, wird
das Ende der Datei geschrieben und die Datei zur Ansicht geöffnet.
Dimensionen
SVG wird als zweidimensionale Grafik auf einem Bildschirm dargestellt, das
Ergebnis des Trackings ist aber dreidimensional (X-, Y - und Z-Position),
man würde also ohne zusätzliche Maßnahmen eine Dimension verlieren. Es
gibt mehrere Möglichkeiten um Tiefe (Z) darzustellen. Die hier gewählte
Methode entspricht einem Z-Buffer Bild, was bedeutet, dass Objekte, die sich
nahe beim Betrachter befinden, heller dargestellt werden als Objekte, die sich
weiter weg befinden. Bei den Objekten handelt es sich hier um die Punkte
bzw. Verbindungslinien, die die Position der getrackten Person darstellen.
Weltkoordinaten werden als Breitengrad, Längengrad und Höhe über
dem Meeresspiegel bestimmt. Der Längengrad bestimmt, wie weit man sich
östlich oder westlich vom Nullmeridian befindet.Breitengrade geben die Nord-
KAPITEL 4. SYSTEM
62
Süd-Abweichung vom Äquator an. Die Längengrade, also die Ost-West Position, entsprechen hier den X-Koordinaten. Die Breitengrade, also die NordSüd Position, entsprechen den Y -Koordinaten im SVG-Bild. Die dritte Dimension, also die Höhe, wird als Helligkeitswert dargestellt. Die Darstellung
in diesem Format entspricht einer Vogelperspektive, wobei helle Punkte weiter vom Erdmittelpunkt entfernt, also höher, und dunkle Punkte näher bei
der Erde, also niedriger sind.
4.2.8
Bibliotheken
Zum Laden, Bearbeiten und Anzeigen des Videos wurden Bibliotheken verwendet, welche in diesem Abschnitt besprochen werden. Zum Laden wurde
die Movie Reader Library verwendet. Sie beinhaltet erweiterte Funktionen
der Quicktime Library (QTJava.zip) zum Öffnen der Videos, Extrahieren
der einzelnen Frames und zum Konvertieren in das Image Processor Format,
welches ImageJ [21] verwendet. ImageJ (ij.jar) wurde zur Bearbeitung der
einzelnen Frames verwendet, also zur Objekterkennung, dem Bildverarbeitungsteil der Arbeit.
4.3
Diskussion
Abschließend folgt eine Diskussion über die im Projekt verwendeten Techniken in den Bereichen Positionsbestimmung und Objekterkennung. Zusätzlich
werden andere mathematische Ansätze zur Schnittpunktberechnung besprochen.
4.3.1
GPS Ungenauigkeiten
Das Prinzip der Positionsbestimmung mit GPS funktioniert in der Theorie
sehr gut, jedoch gibt es einige Stör- und Fehlerquellen welche zu größeren
Ungenauigkeiten führen können. Diese werden in den folgenden Absätzen
besprochen und Verbesserungsmöglichkeiten vorgestellt.
Selective Availability
Da Satellitensignale von jedem empfangen werden können, und damit auch
von militärischen Gegnern, hat das US-Militär ursprünglich zum genauen Signal einen künstlichen Fehler (Selective Availability, kurz SA) ungefähr 100
m zur eigentlichen Position hinzugeschaltet. Nachdem die Anwendungen immer präzieser wurden und GPS immer mehr Verwendung im zivilen Bereich
(SPS - Standard Positioning System) fand, wurde entschieden, den künstlichen Fehler am ersten Mai 2000 abzuschalten. Damit liegt die Genauigkeit
von GPS ohne zusätzliche Hard- und Software heute bei ca. 10 bis 15 m.
KAPITEL 4. SYSTEM
63
Mehrwegeffekt
Ein anderes Problem ist der Mehrwegeffekt. Er tritt in, oder in der Nähe von
Gebäuden auf, wobei die Laufzeiten durch Reflexionen an Hindernissen wie
Wänden oder Ähnlichem verfälscht werden. Reflektierte Signale haben durch
den längeren Weg eine größere Laufzeit als direkt empfangene Signale. Durch
spezielle Helix(Spiral)-Antennen können diese Fehler verringert werden, da
die gesendeten Signale rechtsgedreht sind, reflektierte Signale jedoch ihre
Polarisierung ändern. Diese Antennen empfangen nur rechtsgedrehte, also
unreflektierte, ungestörte Signale.
Signalabschwächung
In Gebäuden ist oft nur ein schwaches bis gar kein Signal zu empfangen.
Dieser Effekt kann verringert werden, indem die GPS-Empfänger nahe bei
Fenstern platziert, oder hochsensible Empfänger wie die indoorfähigen Sensoren der Firma u-blox [38] verwendet werden. Mit diesem können Signale
auch in Gebäuden mit dicken Wänden wie Einkaufszentren oder Bahnhöfen
empfangen werden.
Fehlerquellen
Der oben genannte Fehler von ca. 15 m entsteht nicht nur in einer einzelnen
Fehlerquelle, sondern setzt sich aus der Summe verschiedenster Ungenauigkeiten und Abweichungen zusammen. Die größte Abweichung wird in der
Ionosphäre verursacht, einem Teil der äußeren Atmosphäre in der sich durch
die ionisierende Kraft der Sonne besonders viele Elektronen und positiv geladene Ionen befinden. Die geladenen Teilchen befinden sich in vier Schichten,
welche die elektromagnetischen Wellen der Satelliten brechen, und dadurch
zu längeren Laufzeiten der Signale zu den Empfängern führen. Normalerweise werden diese Fehler von den Empfängern korrigiert, jedoch sind zivile
Empfänger nicht in der Lage, unvorhergesehene Laufzeitänderungen, wie sie
z. B. bei starken Sonnenwinden auftreten können, in die Korrekturen miteinzubeziehen.
Die in Tabelle 4.3 beschriebenen Fehler des NAVSTAR-GPS addieren sich
zu ungefähr ± 15 Metern. Die einzelnen Werte unterliegen Schwankungen
und sind damit als ungefähre Werte anzusehen. Systeme wie WAAS4 und
EGNOS5 , welche die ionosphärischen, Umlaufbahn- und Satellitenuhrfehler
reduzieren, haben einen Gesamtfehler von nur ungefähr ± 3 - 5 Metern.
4
WAAS: Wide Area Augmentation System, GPS-Erweiterung in den USA
EGNOS: European Geostationary Navigation Overlay Service, Differntial GPSErweiterung in Europa
5
64
KAPITEL 4. SYSTEM
Ionosphärische Fehler
Abweichung von der
Satellitenumlaufbahn
Satellitenuhrfehler
Mehrwegeffekt
Troposphärische Fehler
Berechnungsfehler
±5m
±
±
±
±
±
2,5 m
2m
1m
0,5 m
1m
Tabelle 4.3: Aufschlüsselung der Zusammensetzung der durchschnittlichen
GPS-Abweichung von ungefähr 15 Meter [19].
Möglichkeiten zur Fehlerbehebung
Die GPS-Ungenauigkeiten beeinflussen die Präzision des hier vorgestellten
Systems maßgeblich. Da der Fehler nicht immer gleich ist, könnten zwei GPS
Empfänger, obwohl sie sich quasi am gleichen Ort befinden, Positionen bestimmen, welche im schlimmsten Fall bis zu 30 Meter auseinander liegen.
Es liegt auf der Hand, dass solche Unterschiede die Ergebnisse des Systems
extrem verfälschen bzw. es unmöglich machen einen Schnittpunkt zu finden,
da die Entfernung der Vektoren zu groß wird. Es werden also genauere GPS
Daten benötigt. Am einfachsten wäre es, die GPS Empfänger zu synchronisieren, sodass alle den gleichen Fehler haben. Damit läßt sich zumindestens ein
Schnittpunkt berechnen, der Ungenauigkeitsfaktor des GPS Fehlers bleibt
jedoch bestehen. Synchronisation der GPS Empfänger wäre möglich, wenn
die Clients vor dem Aufbau des Systems nahe beieinander positioniert und
miteinander kommunizieren würden, um so eine gemeinsame Positionen zu
ermitteln. Mit dieser Position könnten sie den Offset zu ihrer eigenen Position speichern und diesen Offset bei der Positionsübermittlung an den Server
miteinbeziehen.
Differential GPS
Zur Erhöhung der Genauigkeit von GPS existieren verschiedene Ansätze.
Eines dieser Verfahren heißt Differential GPS. Normalerweise wird nur ein
Empfänger zur Positionsbestimmung verwendet. Beim Differential GPS werden mehr als ein Empfänger verwendet um die Genauigkeit zu erhöhen. Präzieser ausgedrückt handelt es sich um einen normalen Empfänger, dessen
Position bestimmt werden soll und sogenannte GPS-Basisstationen, deren
genaue Positionen bekannt sind. Die Basisstationen sind auch mit GPSEmpfängern ausgestattet um den Positionsfehler zwischen ihrer wirklichen
und ihrer empfangenen Position zu ermitteln.
Dieser Positionsfehler kann auf mehrere Arten bestimmt werden. Bei der
einfachsten Methode wird nur der Positionsunterschied an der Basisstation
bestimmt, an den normalen Empfänger übermittelt und dort rückgerechnet.
KAPITEL 4. SYSTEM
65
Dafür muss der Empfänger aber Signale von den gleichen Satelliten empfangen wie die Basisstation, was nur in der Nähe der Basisstation der Fall
ist. Der Fehler reduziert sich damit auf 0,3 bis 2,5 Meter für Längen- und
Breitengrad und auf 0,6 bis 5 Meter für die Höhe. Er nimmt mit wachsender
Distanz zwischen Empfänger und Basisstation zu. Bei einer anderen Methode
werden die Fehler der Strecken zu dem Satelliten berechnet, womit die Bedingung der gleichen Satelliten wegfällt. Der Positionsfehler wird damit kleiner
als ein Meter. Hochqualitative Systeme führen zusätzlich eine Trägerphasenmessung durch um Unterschiede in der Phasenlage zwischen gesendetem
und empfangenem Signal auszuwerten und so den Fehler zu minimieren. Die
Phasenverschiebung wird durch einen Vergleich der Trägerschwingung mit
einer empfängereigenen Referenzschwingung gemessen [26]. Die Genauigkeit
liegt bei diesem Verfahren bei einem bis zehn Millimeter Positionsunterschied
pro Kilometer Abstand vom Empfänger zur Basisstation. Ohne Differential
GPS, jedoch mit Untersuchung der Trägerphase sind Genauigkeiten von ca.
einem Meter möglich [39].
Vergleich
Wie schon erwähnt, liefern unterschiedliche Empfangsgeräte und Empfangsmethoden unterschiedliche Genauigkeiten. GPS-Signale vor der Abschaltung
der Selective Availability (SA) waren mit einem durchschnittlichen Fehler
von 100 Metern unbrauchbar für das hier vorgestellte Projekt. Auch normale GPS Empfänger, welche nur mit dem Signal der Satelliten die Position
bestimmen liefern mit bis zu 15 Metern Abweichung ein noch zu ungenaues
Ergebnis. Wird jedoch auch die Trägerphase des Signals miteinbezogen, kann
der Positionsfehler auf ca. 1 Meter beschränkt werden, wodurch mit diesem
System die Positionsbestimmung von größeren Objekten wie Autos möglich
wäre.
Beim oben beschriebene Differntial GPS liegt die Genauigkeit innerhalb
der selben Größenordnung wie bei normalem GPS mit Trägerphase. Wird
diese jedoch bei DGPS zur Berechnung hinzugezogen, lassen sich damit Positionen mit einer Abweichung von nur 1 Millimeter bestimmen. Diese Abweichung ist absolut zu tolerieren, wenn wie in diesem Fall Objekte einer
Größe von mindestens einem halben Meter getrackt werden sollen.
Tabelle 4.4 liefert eine Übersicht der durchschnittlichen Abweichungen
der verschiedenen NAVSTAR GPS Systeme.
4.3.2
Objekterkennung
Grundsätzlich soll immer eine Person oder ein Objekt getrackt werden. Sind
in einem Bild aber mehrere Regionen erkennbar, welche Objekteigenschaften
aufweisen, muss für das Erreichen eines vernünftigen Ergebnisses eine Auswahl getroffen werden. Auch wenn kein Objekt auffindbar ist, kann es sich
66
KAPITEL 4. SYSTEM
Verfahren
GPS (mit SA)
GPS (SA abgeschaltet, nur Signal)
GPS (SA abgeschaltet, mit Trägerphase)
DGPS (nur Signal)
DGPS (mit Trägerphase)
Ungefähre Genauigkeit
100 m
15 m
1m
0,3-2,5 m (Lage)
0,6-5 m (Höhe)
1-10 mm pro Kilometer
Abstand zur Basisstation
Tabelle 4.4: Diese Tabelle zeigt die durchschnittlichen Genauigkeiten verschiedener GPS-Verfahren. DGPS-Empfänger, welche zusätzlich zum Signal auch die Trägerphase auswerten haben eine, für das MulitkameraTrackingsystem geeignete, Genauigkeit.
um eine Fehlinterpretation handeln. Diese Problematik kennt grundsätzlich
mehrere Fälle, die nachfolgend bearbeitet werden.
Mehrere Objekte
Das hier vorgestellte Multikamera-Trackingsystem ist grundsätzlich nur zum
Tracken eines Objektes oder einer Person ausgelegt. Ein Konzept zum Tracken mehrerer Objekte gleichzeitig wird im Abschnitt 6.3.3 vorgestellt. In
einer viel frequentierten Umgebung sind jedoch öfters mehrere Personen im
Bild einer Kamera, wobei je nach Art der Objekterkennung auch mehrere
Regionen als Zielobjekt erkannt werden können. Hier ist es wichtig, die Entscheidung für die richtige Region im Bild zu treffen. Im Prototypen muss die
zu trackende Person eine gelbe Jacke tragen, welche im Normalfall problemlos zu erkennen ist. Sind mehrere gelbe Jacken im Bild, kann im Prototypen
nicht die richtige bestimmt werden. Durch Verfolgung einer Person bzw. Position im Bild können jedoch, sofern die Person anfänglich richtig erkannt
wurde, andere Personen mit gelben Jacken ausgeschlossen werden. In zukünftigen Entwicklungen sind Verbesserungen zur Objekterkennung, wie im
Abschnitt 6.3 beschrieben, vorgesehen.
Objektverdeckung
Grundsätzlich ist bei der Platzierung der Kameras darauf zu achten, dass
diese eine gute Sicht auf das einzusehende Gebiet haben. Jedoch ist nicht
auszuschließen dass Hindernisse das gesuchte Objekt hin und wieder verdecken. Es ist also, obwohl es nicht über den Bildrand hinaus verloren gegangen ist, plötzlich nicht mehr im Bild. Durch Bewegungsverfolgung ist es
möglich, kurze Vorraussagen über die wahrscheinliche Position des Objektes
in den nächsten Frames zu machen. Je länger das Objekt nicht im Bild ist,
desto ungenauer werden die Voraussagen, da sich, vor allem Personen, frei
KAPITEL 4. SYSTEM
67
und unberechenbar bewegen und jederzeit die Richtung ändern oder an einer Position verharren können. Diese Vorhersagen sind deshalb vorwiegend
während einer kurzen Verdeckung nützlich um die Objektposition nicht zu
verlieren.
Ein Spezialfall der Objektverdeckung ist die teilweise Verdeckung. Dabei
gibt es zwei Möglichkeiten. Erstens um die Verdeckung nur einer Seite, bei der
das Objekt eine zusammenhängende Region bleibt. Bei der zweiten Variante
wird die Region durch ein Objekt getrennt. Dies kann geschehen wenn sich
die gesuchte Person z. B. hinter einem Masten oder einem Zaun befindet. Bei
der ersten Variante kann die Region normal durch Farbblobs erkannt werden,
jedoch stimmt der berechnete Schwerpunkt nicht mehr mit dem wirklichen
Mittelpunkt der Region überein. Die maximale Abweichung beträgt dabei
jeweils die Hälfte der Breite bzw. der Höhe. Durch Verfolgung des Objektmittelpunktes und dessen Geschwindigkeit können, in Verbindung mit der
Größe der Region, zumindestens für eine kurze Objektverdeckung Vorraussagen der vermutlichen Position getroffen werden. Die Region besteht aus
einer bestimmten Anzahl an Pixel die sich im Normalfall nur langsam, und
durch Hinzu- und Wegbewegen der Person in Richtung der Kamera verändert. Ändert sich die Größe der Region jedoch schneller als gewöhnlich,
kann davon ausgegangen werden, dass es sich um eine teilweise Verdeckung
handelt. Das selbe Prinzip gilt beim Verlassen des Bildes.
Bei der zweiten Variante ist das Verdeckungsobjekt, zumindestens in der
Perspektive, kleiner als das getrackte Objekt. Da, wie im Abschnitt 4.3.2
besprochen, im Prototypen immer nur ein Objekt getrackt werden soll, wird
in diesem Fall immer der wahrscheinlichere, in diesem Fall größere, Teil bevorzugt. Auch bei dieser Variante wäre die Verfolgung der Bewegung des
Mittelpunktes eine Möglichkeit um das Problem zu umgehen. Dabei hilf die
so genannte Bounding Box, wobei beide Teile des zu trackenden Objektes
in der vorausgesagten Bounding Box liegen würden. Die Berechnung des
Mittelpunktes bzw. des Schwerpunktes wird im folgenden Abschnitt weiter
besprochen.
Schwerpunktberechnung
Die Schwerpunktberechnung liefert jenen Punkt im Bild, der den Flächenschwerpunkt der gefundenen Region beschreibt. Es handelt sich um den
Punkt, durch den der Strahl vom Kamerazentrum aus in Richtung Objekt
gelegt wird. Er wird wie in Formel 3.10 beschrieben berechnet. Da es sich
um den arithmetischen Mittelpunkt der zur Region gehörigen Pixel handelt
ändert sich dieser natürlich je nach Ansicht und Haltung des zu trackenden
Objektes. Wird ein Objekt aus mehreren Ansichten aufgenommen, kann dieser Flächenschwerpunkt in jedem Bild zu einer anderen Stelle des Objektes
zeigen. Ist das Objekt kugelförmig, ist der Mittelpunkt stabil und von allen
Seiten aus ungefähr gleich weshalb in der Objekterkennung gerne Kugeln
68
KAPITEL 4. SYSTEM
a)
b)
c)
d)
Abbildung 4.9: In allen vier Bildern befindet sich die zu trackende Person
an der gleichen Position. Das rote Fadenkreuz markiert den berechneten Flächenschwerpunkt in den verschiedenen Fällen. Bild a) zeigt den Normalfall,
wenn die Person aufrecht steht und beide Arme hängen läßt. Der berechnete
Flächenschwerpunkt würde aus den meisten Perspektiven an der gleichen
Position liegen. Bild b) beschreibt den Fall, dass nur ein Arm ausgestreckt
wird und sich der Flächenschwerpunkt aus dieser Perspektive damit in die
Richtung des ausgestreckten Armes verlagert. Im dritten Bild c) verschiebt
sich der Flächenschwerpunkt durch Heben beider Arme nach oben und das
vierte Bild d) zeigt den ungünstigsten Fall. Zwei Objekte wurden gefunden,
jedoch keine Auswahl getroffen und der gefundene Flächenschwerpunkt befindet sich damit zwischen den Objekten und in weiterer Folge kann kein
Schnittpunkt gefunden werden.
verwendet werden. Ist die Region jedoch konvex mit unsymmetrisch herausragenden Teilen, kann es zu Unterschieden der Position des Mittelpunkts in
den verschiedenen Bildern kommen.
Das hier verwendete Trackingverfahren durchsucht Bilder nach Personen
und basiert auf der Erkennung von Oberkörper inklusive Arme. Da Hände
beim Gehen im Allgemeinen gegengleich schwingen, sollte der Mittelpunkt
in den meisten Fällen sehr stabil sein, da sich die Regionen beider Arme bei
der Berechnung des Flächenschwerpunkts aufheben. Ragt jedoch nur ein Arm
aus der Region, wird der Flächenschwerpunkt in dessen Richtung verschoben.
Es würden mehr Pixel auf der Seite des Armes in die Schwerpunktberechnung
einfließen. Genauso wenn ein Teil des Objektes verdeckt wird oder mehrere
Objekte erkannt werden. Wenn zwei gleich große Objekte in einem Bild er-
69
KAPITEL 4. SYSTEM
Abstand: 5 m
25 fps 5 fps
5 km/h
8
39
40 km/h
64
311
Abstand: 20 m
25 fps 5 fps
5 km/h
2
10
40 km/h
16
78
Tabelle 4.5: Hier wird eine Auflistung der Abstände der Objektpositionen
zwischen zwei Frames in Pixel gegeben. Je nach Abstand des Objektes der
Kamera, seiner Geschwindigkeit und der Anzahl der Frames pro Sekunde ist
dieser Abstand unterschiedlich groß. Kleinerer Abstand, geringere Framerate
und größere Geschwindigkeit des Objektes erhöhen diesen Wert.
kannt würden, und sich eines in der rechten oberen Ecke befinden würde und
das andere in der linken unteren, wäre der Flächenschwerpunkt, sofern keine
Vorauswahl getroffen wurde, in der Mitte des Bildes, wo sich jedoch kein Objekt befindet. Abbildung 4.9 zeigt deutlich, welche Auswirkung Arme oder
mehrere gefundene Objekte auf den Flächenschwerpunkt haben können.
Kameras
Von der Kamera erhält man das Videobild, aus welchem das Objekt herausgefiltert werden soll. Je nach Anwendung werden unterschiedliche Anforderungen an die Kamera gestellt, wobei die wichtigste die Auflösung des Videobildes ist. Je nach Größe und Entfernung des gesuchten Objektes sollte die
Kameraauflösung ausgewählt werden. Auch die Rechengeschwindigkeit des
Clients sollte berücksichtigt werden (s.o.: PDAs sind zwar praktisch, aber
langsamer). Denn eine Verdopplung von Sensorlänge und Sensorbreite entspricht einem Vierfachen an zu bearbeitenden Pixeln. Zusätzlich muss die
Anzahl der Videobilder pro Sekunde, also die Frames per Second (fps), berücksichtigt werden. Bewegt sich ein Objekt sehr schnell, und werden nur
wenige Videobilder pro Sekunde aufgenommen, würden die Bewegungsdaten
nur sehr ungenau.
Die Position eines Objektes, welches sich mit 5 km/h bewegt, ändert sich
bei 25 fps um 5 cm pro Frame. Bei nur 5 fps bewegt es sich schon 27,7 cm
pro Frame. Welchen Pixelunterschied das pro Frame ergibt, wird in Tabelle
4.5 gezeigt. Dieser hängt natürlich vom Abstand des Objektes zur Kamera
ab. Je kleiner dieser Abstand ist, desto größer wird der Unterschied seines
Mittelpunktes zwischen zwei Frames. Um bei dem oben gewählten Beispiel
zu bleiben ändert sich, wenn sich das Objekt parallel zur Sensorfläche mit 5
km/h bewegt, bei einer Framerate von 25 fps und einem Abstand von 20 m
um ungefähr 2 Pixel, bei einem Abstand von 5m hingegen sind es schon ca.
8 Pixel.
Somit ist klar, dass je nach Verwendungszweck unterschiedliche Kamera-
KAPITEL 4. SYSTEM
70
eigenschaften wichtig sind. Sind detailierte Bilder zur Erkennung notwendig
sind Kameras mit hoher Auflösung zu wählen. Dies ist der Fall bei kleinen
Objekten oder bei Objekten in großer Entfernung. Bei niedriger Rechenleistung der Clients sollte abgewogen werden, ob nicht eine niedrigere Auflösung
zur Objekterkennung ausreicht. Wird eine hohe Auflösung benötigt, müssen
demnach auch schnelle Rechner als Clients eingesetzt werden. Am einfachsten zu tracken sind natürlich große, auffällige Objekte, die sich langsam
bewegen. Zum Testen wird hier eine Person mit einem Abstand von ca. 4 bis
9 Metern getrackt. Schrittgeschwindigkeit liegt bei 4-5 km/h, somit bewegt
sich der Mittelpunkt des Objektes bei ca. 6 fps pro Frame maximal (parallel zum Sensor) um ca. 30 Pixel. Würden fahrende Autos getrackt, würde
eine höhere Auflösung, ein größerer Abstand oder mehr fps benötigt, um die
Bewegungsdaten genauso fein zu berechnen.
Die Freiheitsgrade einer Kamera sind der Abstand zwischen Sensor und
Linse und die Sensorgröße. Mit diesen zwei Größen können die Winkelfunktionen ausgeführt werden, welche zur Berechnung des Richtungsvektors nötig
sind. Je größer der Abstand und der Sensor sind, desto stabiler werden die
Werte und umso genauer die Ergebnisse. Bei der hier verwendeten Kamera
handelt es sich um eine Sony Digital Cyber Shot W7 mit einer Videoauflösung von 640 × 480 Pixeln und theoretischen 25 fps. Der Abstand zwischen
Sensor und Linse beträgt 7,8456 mm und die Sensorgröße 7, 176×5, 319 mm.
Das entspricht einem 1/1,8“ Sensor [31]. Da diese internen Kameraparameter
bekannt sind können die verwendeten Kameras als kalibriert angenommen
werden und müssen im System nicht extra kalibriert werden.
4.3.3
Schnittpunktberechnung
Es kann bei der Schnittpunktberechnung durchaus vorkommen, dass sich
Strahlen hinter den Kameras, also ausserhalb des überwachten Bereichs,
schneiden. Irrtümlich gefundene Objekte oder GPS Fehler können zu fehlerhaft berechneten Strahlen, und damit zu falschen Schnittpunkten, führen.
Diese Schnittpunkte können sich aus irrtümlich gefundenen Objekten
oder GPS Fehlern und den, aus diesen Informationen berechneten, Strahlen
ergeben. Der Startpunkt der verwendeten Strahlen liegt im Kamerazentrum.
In diesem Punkt ist der λ-Wert der Geradengleichung 3.26 im Abschnitt
3.3.2 gleich Null. Ist λ positiv, liegt der berechnete Punkt vor der Kamera,
bei negativem λ hingegen würde der Punkt hinter der Kamera liegen. Durch
eine Überprüfung der Vorzeichen der Parameter λ jener Strahlen, die zur
Schnittpunktberechnung herangezogen werden, läßt sich also eine Objektposition ausserhalb des überwachten Bereichs ausschließen.
Außerdem ergeben sich je nach Winkel der Vektoren zueinander bei der
Rotation eines Vektors um jeweils den gleichen Winkel unterschiedliche Abweichungen vom Schnittpunkt. Je näher der Winkel δ bei 90◦ liegt, desto
geringer sind die Abweichungen. Je stärker dieser Winkel von 90◦ abweicht,
71
KAPITEL 4. SYSTEM
r2
d
r2
d
r1
a)
r1
b)
Abbildung 4.10: Der Winkel δ der zu schneidenden Vektoren r~1 und r~2
zueinander ist ausschlaggebend für die entstehende Abweichung bei einer
Rotation oder Translation eines Vektors gegenüber dem Anderen. In Fall
a) schneiden sich die Vektoren mit beinahe 90◦ , in Fall b) in einem spitzen Winkel. Die Abweichung der schwarzen Punkte vom roten Schnittpunkt
zeigt in Fall b) eine deutlich größere Abweichung. Je genauer sich die Vektoren in einem rechten Winkel schneiden, desto geringer wirken sich kleine
Abweichungen auf die Schnittpunktberechnung aus.
desto größer wird die Abweichung die sich auch bei nur minimaler Rotation
ergibt. Diese Rotationen können durch unterschiedliche Schwerpunkte einer
Region entstehen. Es zeigt sich also, dass sich Fehler in der Schwerpunktberechnung bei stumpfen oder spitzen Winkeln zwischen den Vektoren stärker
auf den berechneten Schnittpunkt auswirken als bei einem rechten Winkel.
Beim Setup des Systems ist deshalb darauf zu achten, dass bei gleicher Ausrichtung der Kameras ein gewisser Mindestabstand eingehalten wird und die
Kameras nicht direkt aufeinander gerichtet werden. Abbildung 4.10 zeigt in
a) einen Fall, bei dem sich die Vektoren beinahe im rechten Winkel und in b)
in einem spitzen Winkel schneiden. Die schwarzen Punkte zeigen jeweils die
Abweichung, welche sich bei der gleichen Rotation des Vektors r~2 gegenüber
dem Vektor r~1 ergibt.
Mehrere Kameras
Die im Abschnitt 3.3.2 vorgestellte Methode der Schnittpunktberechnung
ist für zwei Kameras ausgelegt. Von den Strahlen der Kameras zum Objekt
wird der Schnittpunkt dieser Strahlen durch den Mittelpunkt des geringste Abstandes zueinander bestimmt. Werden mehr als zwei Kameras im System verwendet, wird zwischen allen Strahlen paarweise der jeweilige Schnittpunkt errechnet und aus der resultierenden Punktwolke an Schnittpunkten
wiederrum der Mittelwert errechnet. Abbildung 4.11 zeigt die Berechnung
des absoluten Schnittpunkts aus den Schnittpunkten der Strahlenpaare. Die
Schnittpunktberechnung mit zwei Strahlen wird damit je nach Anzahl der
verwendeten Kameras n
72
KAPITEL 4. SYSTEM
Vektor
Vektor
Vektor
+
+
a)
+
+
Vektor
+
Geringster
Abstand
Vektor
Geringster
Abstand
b)
Abbildung 4.11: Hier wird die Schnittpunktberechnung mit mehreren Kameras dargestellt. Bild a) zeigt die normale Version mit zwei Kameras, bei der
der Abstand wie im Abschnitt 3.3.2 beschrieben, ausgeführt wird. In Bild b)
ist die Vorgehensweise mit drei Kamerastrahlen beschrieben. Es werden von
allen möglichen Strahlenpaaren die Mittelpunkte berechnet und anschließend
aus dieser Punktwolke der arithmetische Mittelpunkt bestimmt. Hier gilt es
so genannte Ausreißer auszuschließen um den Fehler so gering wie möglich
zu halten.
b=
n−1
X
i=1
i=
n · (n − 1)
2
(4.1)
b-mal ausgeführt, und anschließend der Mittelwert der Punktwolke gebildet. Bei drei verwendeten Kameras wird die Berechnung also 3× durchgeführt, bei fünf Kameras 10× und bei sechs Kameras 15×. Da die Berechnung
sehr schnell ist, und nur einen kleinen Teil der Rechenzeit pro Frame benötigt, ist diese stark ansteigende Zahl an Iterationen bis zu einer gewissen
Anzahl an Kameras zu tolerieren. Werden sehr viele Kameras verwendet,
sollte für die Berechnung ein anderer Ansatz, wie in Absatz 4.3.4 besprochen, zur Schnittpunktberechnung verwendet werden.
Bei der Verwendung von nur zwei oder auch mehreren Kameras kann es
immer vorkommen, dass ein falscher Strahl berechnet wird. Dies ist möglich
durch falsche Objekterkennung oder Ungenauigkeiten. Bei mehreren Strahlen ist wichtig zu prüfen, ob in der Punktwolke der Schnittpunkte so genannte Ausreißer vorkommen, da diese das Gesamtergebnis stark negativ
beeinflussen können. Zuerst wird eine Abstandswertung durchgeführt, bei
der je nach Abstand des Schnittpunktes zu den Kameras der geringste Abstand zwischen den Strahlen auf Brauchbarkeit untersucht wird. Zusätzlich
soll überprüft werden, ob sich der Schnittpunkt als einziger weit ausserhalb
der Punktwolke befindet. Sind keine dieser Kriterien erfüllt, handelt es sich
um einen zur Berechnung verwendbaren Strahl.
KAPITEL 4. SYSTEM
4.3.4
73
Andere Ansätze
Bei dem hier vorgestellten System wird davon ausgegangen, dass die Kameraparameter bekannt sind, also die Kamera kalibriert ist. Im Gegensatz dazu
beschreiben Richard Hartley und Andrew Zissermann in ihrem Buch Multiple
View Geometry in Computer Vision [15] Ansätze zur Berechnung von Positionen durch zwei bis n Bilder ohne vorherige Kalibrierungsschritte. Neben
mathematischen Grundlagen werden hauptsächlich Techniken zur Wiederherstellung von 3D-Szenen aus 2 bis n Bildern vorgestellt.
Wenn weder die Kamerakalibration noch die Punkte in der Welt bekannt
sind, kann zwar die Form eines Objektes (zB Würfel, Haus,. . . ) bestimmt
werden, jedoch weder seine Größe noch seine Orientierung oder Position
in der Welt. Diese Unbestimmtheiten werden als reconstruction ambiguity
oder Wiederherstellungsungewissheit bezeichnet. Die dritte Unbestimmtheit,
die Position in der Welt, ist jedoch für das Multikamera-Trackingsystem
ausschlaggebend.
In diesem Abschnitt werden die im Buch beschriebenen Methoden zur
Wiederherstellung von 3D Szenen vorgestellt. Zuerst wird die Rekonstruktion mit zwei Kameras beschrieben und auch generelle Grundlagen erklärt.
Anschließend werden die Methoden, aufbauend auf zwei Ansichten, auf drei
erweitert. Der trifokale Tensor und seine Bestimmung werden ausführlicher
behandelt. Weiterführend wird die Rekonstruktion auf n, also beliebig viele
Kameras, ausgeweitet. Eine Sonderstellung nimmt dabei die Szenenwiederherstellung durch Bildsequenzen mit bewegter Kamera ein, welche in diesem
Kapitel abschließend behandelt wird.
Zwei Kameras
Die epipolare Geometrie ist die intrinsische projektive Geometrie zwischen
zwei Ansichten. Sie ist nur von den inneren und äußeren Kameraparametern abhängig und nicht von der Szenenstruktur. Die Fundamentalmatrix F
(siehe Tabelle 4.6) beinhaltet die vollständige geometrische Beziehung der
Bildpunkte in Bildkoordinaten in einer 3 × 3 Matrix in einem unkalibrierten System. Sie besitzt 7 Freiheitsgrade und wird durch die Abbildung eines Punktes auf seine epipolare Linie mit anschließendem Spezifizieren der
Eigenschaften der Matrix berechnet. Sind die inneren Kameraparameter bekannt, spricht man von kalibrierten Systemen und zur Rekonstruktion wird
statt der Fundamentalmatrix die Essentialmatrix E verwendet, welche mit
normalisierten Parametern und Bildpunkten in Sensorkoordinaten arbeitet.
Mit zwei Unbekannten für die Translation und drei für die Rotation enthält
sie insgesamt fünf Freiheitsgrade.
Die Fundamentalmatrix wird aus den Beziehungen zwischen korrespondierenden Punkten berechnt wofür es verschiedene Methoden gibt. Bekannte
Vertreter sind der 8-Punkt Algorithmus, der 7-Punkt Algorithmus und die
74
KAPITEL 4. SYSTEM
Essentialmatrix
...
Fundamentalmatrix
...
Korrespondierende
Bildpunkte
Homographie
...
...
Trifokaler Tensor
...
Trifokale Ebene
...
Epipol
...
Epipolare Ebene
...
Epipolare Linie
...
Baseline
Faktorisierung
Bündelausgleich
...
...
...
Geometrische Beziehung zwischen
korrespondierenden Bildpunkten in
kalibrierten Systemen
Geometrische Beziehung zwischen
korrespondierenden Bildpunkten in
unkalibrierten Systemen
Zusammengehörige Punkte mit gleichen
Features in mehreren Ansichten
Korrespondenz zwischen zwei Bildern
bezüglich einer Objektebene
Zusammenfassung der Fundamentalmatrizen aus drei Ansichten
Durch die drei Kamerazentren
definierte Ebene
Abbildung des optischen Zentrums der
anderen Kamera auf der Bildebene
Durch die Kamerazentren und Punkt
aufgepannte Ebene
Schnitt zwischen epipolarer Ebene
und Bildebene
Verbindugslinie zwischen Kamerazentren
Methode zur Rekonstruktion einer 3D Szene
Simultane Bestimmung der Kameraparameter und 3D-Struktur einer Szene
aus mehreren Ansichten
Tabelle 4.6: Erläuterung der wichtigsten Begriffe der Bücher Multiple View
Geometry in Computer Vision [15] und Stereoanalyse und Bildsynthese [30].
Gold Standard Methode. Darüber hinaus gibt es noch mehrere iterative Ansätze [15, S.282 ff.]. Wird ein Punkt X im dreidimensionalen Raum in einer
Ansicht als Punkt x und in einer zweiten Ansicht als x′ abgebildet, so gilt:
x′T F x = 0
(4.2)
Abbildung 4.12 zeigt das Prinzip der epipolaren Geometrie. Von Kamera
C wird ein Strahl in Richtung des in der Abbildung gefundenen Punktes
x gelegt. Mit nur einer Ansicht ist es nicht möglich die Position des Punktes in der Welt zu bestimmen. Die Möglichkeiten der Position des Punktes
beschreiben eine Linie in der zweiten Ansicht, die epipolare Linie l bzw. l′ .
Die epipolare Ebene wird durch die zwei Kamerazentren und X bestimmt
und rotiert je nach Position von X um ihere Basislinie, die Verbindung der
75
KAPITEL 4. SYSTEM
Punkt im Raum
X
X?
X?
Bildebene
Epipolare Ebene
l
Projizierter
Punkt
Kamera
l´
x´
x
e´
e
C
Epipol
Basislinie
C´
Epipolare Linie
Abbildung 4.12: Epipolare Geometrie mit Begriffsdefinitionen. Die Position des Punktes X soll aus den zwei Ansichten der Kameras C und C ′
ermittelt werden [15, S.240].
Kamerazentren. Die Epipole, also die Schnittpunkte der Basislinie mit den
Bildebenen, werden als e und e′ bezeichnet.
Aus der Fundamentalmatrix bzw. der Essentialmatrix lässt sich für jede
Kamera mit Hilfe ihrer Parameter ihre Kameraprojektionsmatrix P bzw.
P ′ errechnen. Zur Rekonstruktion des Punktes X soll damit grundsätzlich
folgende Gleichung gelöst werden:
P X = x bzw. P ′ X = x′
(4.3)
Bei der Rekonstruktion einer 3D Szene mit zwei Ansichten wird laut Hartley
und Zissermann [15, S.277] wie folgt vorgegangen:
1. Berechnen einer projektive Rekonstruktion (P, P ′ , X):
(a) Berechnen der Fundamentalmatrix F aus den Punktbeziehungen
xi ↔ x′i .
(b) Berechnen der Kameramatrizen P und P ′ aus der Fundamentalmatrix.
(c) Triangulation aller korrespondierenden Punkte xi ↔ x′i zur Berechnung der Punkte Xi .
2. Verbessern der projektiven Rekonstruktion zu einer Metrischen.
(a) entweder direkt durch Berechnung der Homographie H so dass
XEi = HXi .
(b) oder stratifiziert.
KAPITEL 4. SYSTEM
76
i. für eine affine Rekonstruktion.
ii. oder eine metrische Rekonstruktion.
Drei Kameras
Wie oben beschrieben beinhaltet eine Fundamentalmatrix jeweils die Geometrie zweier Ansichten. Bei drei verwendeten Kameras sind drei Kamerapaarkombinationen möglich: F12 , F23 und F13 . Sie werden zum trifokalen
Tensor T in einer 3 × 3 × 3 Matrix zusammengefasst. Er besitzt 27 Elemente
und 18 Freiheitsgrade. Seine drei geometrischen Haupteigenschaften sind die
Homographie H zwischen den Ansichten, die Beziehung zwischen korrespondierenden Punkten und Linien sowie die Fundamental- und Kameramatrizen
der gesamten Geometrie der Szene. Deshalb lassen sich aus ihm wieder die
Kameramatritzen P , P ′ und P ′′ , die Homographie H sowie die Epipole e,
e′ und e′′ berechnen. Es gibt mehrere Methoden zu seiner Berechnung. Die
gängigste Variante ist die nachfolgend beschriebene Methode mit RANSAC6
Algorithmus.
1. Berechnen von auffälligen Punkten in allen Bildern.
2. Berechnen von Punktbeziehungen und der Fundamentalmatrix F zwischen den Ansichten 1&2 und 2&3.
3. Berechnen von vermeintlichen Punktbeziehungen zwischen allen drei
Ansichten durch Verbinden von Paaren aus allen Ansichten.
4. Robuste RANSAC-Schätzung:
(a) Auswählen von 6 zufälligen Punktbeziehung und berechnen ihres
trifokalen Tensors (eine oder drei reale Ergebnisse).
(b) Berechnen der Distanz jeder vermeintlichen Beziehung.
(c) Berechnen und Verwerfen der Ausreißer.
(d) Bei drei realen Ergebnissen wird T für alle drei Ergenisse berechnet und die bestse Lösung behalten.
5. Wiedereinschätzung von T ohne den Ausreißern durch den Gold Standard Algorithmus oder die Sampson Angleichung.
6. Bestimmen weiterer Punktbeziehungen mit Hilfe des berechneten T .
Weitere Methoden wie der schon erwähnte Gold Standard Algorithmus,
Methoden mit normalisierten Linearen und jene, die den algebraischen Fehler minimalisieren werden in [15, S.394 ff.] beschrieben. Der grundsätzliche
Ablauf der Rekonstruktion bleibt bei drei Kameras gleich wie beim weiter
6
RANSAC = Random Sample Consensus
KAPITEL 4. SYSTEM
77
oben vorgestellten Ansatz für zwei Kameras. Jedoch ist es ab drei Ansichten
möglich Linien zu rekonstruieren was das Ergebnis stabilier werden läßt. Sind
bei zwei Ansichten noch Ungewissheiten im Spiel, können Punkte aus drei
Ansichten ganz genau bestimmt werden. Sind in allen drei Ansichten korrespondierende Linien vorhanden, sind die Gleichungen zum Rekonstruieren
der Szene sogar überbestimmt.
Mehrere Kameras
Werden vier Ansichten zur Rekonstruktion verwendet spricht man statt dem
trifokalen Tensor vom quadrifokalen Tensor. Für mehr als vier Ansichten
sind diese mathematischen Beziehungen noch nicht untersucht. Auch hier
ist die Bünelausgleichsrechnung die geläufigste Methode zur projektiven Rekonstruktion der 3D-Szene. Es handelt sich um eine iterative Methode, in
welcher versucht wird ein nichtlineares Modell zu den korrespondierenden
Punkten zu finden. Sie braucht, da iterativ, einen guten Startpunkt um zu
einem Ergebnis zu kommen. Deswegen wird zuvor immer eine einfache Rekonstruktionsmethode durchgeführt und erst darauf die Bündelausgleichung
angewendet. Zusätzlich müssen zur erfolgreichen Rekonstruktion mindestens
5 Punktbeziehungen vorhanden sein, jedoch ist die Methode tolerant gegenüber fehlenden Bildpunkten in manchen Ansichten. Die Bündelausgleichsrechnung ist als iterative Methode generell eher langsam, kann aber durch
performante Umsetzungen aber auch beschleunigt werden.
Neben der Bündelausgleichsrechnung sind auch affine [15, S.437] und projektive [15, S.445] Faktorisierungsmethoden zu Rekonstruktion aus mehreren
Ansichten üblich. Hierbei müssen jedoch immer alle Punkte, die zur Rekonstruktion verwendet werden sollen, in allen Ansichten vorhanden sein. Tomasi und Kanade haben in [36] eine Faktorisierungsmethode mit MaximumLikelihood-Schätzung der Szene für affine Kameras vorgestellt. Ihre Methode ist optimal und schnell, da sie keine Iterationen verwendet, jedoch
müssen auch hier alle Punkte immer von allen Kameras aus sichtbar sein.
Eine projektive Faktorisierungsmethode mit iterativer Faktorisation haben
Sturm und Triggs in [32] entwickelt. Es handelt sich hierbei nicht um eine
Maximum-Likelihood-Schätzung aber wieder müssen alle Punkte allen Ansichten aufscheinen. Tang und Hungs [34] Methode verallgemeinert das Faktorisierungsverfahren um auch eine Rekonstruktion bei fehlenden Punkten
in manchen Ansichten zu erlauben. Sie verwenden eine objektive Funktion
welche eine Annäherung garantiert, jedoch zu keiner Maximum-LikelihoodSchätzung führt. Han und Kanade haben in [13] eine iterative Methode zur
projektiven Rekonstruktion vorgestellt, welche anschließend durch metrische
Zwänge auf die Kameramatrizen zu einer metrischen Rekonstruktion verbessert wird. Sie kann mit der Bündelausgleichsrechnung oder Tang und Hungs
Methode zum Umgang mit fehlenden Daten verbunden werden [8].
KAPITEL 4. SYSTEM
78
Bildsequenzen
Eine Sonderform der Rekonstruktion aus mehreren Ansichten ist die Rekonstruktion aus Bildsequenzen. Bis jetzt wurde von n Kameras, welche alle zur
gleichen Zeit aus unterschiedlichen Ansichten auslösen, ausgegangen. Hier
jedoch handelt es sich um eine einzelne bewegte Kamera bzw. eine Videokamera, welche n Bilder hintereinander, also zu unterschiedlichen Zeitpunkten,
aufnimmt.
Bei der Aufnahme einer 3D-Szene zu unterschiedlichen Zeitpunkten ergeben sich Probleme durch bewegte Objekte, da sie sich in jeder Aufnahme
an einer anderen Position im Raum befinden bzw. auch anders geformt sein
können. Wichtig ist, dass die Kamera bewegt wird, bei einer starr montierten
Kamera wären keine Bilder aus unterschiedlichen Ansichten möglich. Durch
die projektivische Verzerrung ist es ausreichend die Kamera nur in eine Richtung zu bewegen (z. B. nach vorne).
Algorithmus zur Rekonstruktion einer 3D-Szene aus einer Bildsequenz
[15, S.453]:
1. Berechnen der wichtigen Punkten in jedem Bild z. B. durch SIFT7 .
2. Zusammengehörigkeit zwischen jedem aufeinanderfolgenden Bildpaar
berechnen, dabei RANSAC zur Schätzung von F verwenden.
3. Zusammengehörigkeit zwischen allen aufeinanderfolgenden Bildtripels
und trifolaken Tensor T mit RANSAC berechnen.
4. Berechnen einer anfänglichen Rekonstruktion mit Hilfe einer geeigneten projektiven Faktorisation, je nachdem ob fehlende Punkte verwendet werden sollen oder nicht.
5. Bündelausgleichsrechnung der gesamten Sequenz auf Kameras und 3D
Struktur anwenden.
6. Optional noch eine automatische Kalibration durchführen.
Eine detaillierte Beschreibung der Berechnungen samt Herleitungen sind in
[15] und [30] zu finden.
7
SIFT = Scale Invariant Feature Transforms
Kapitel 5
Anwendungen
In diesem Kapitel werden verschiedene Anwendungsfälle für das Multikamera-Trackingsystem beschrieben. Da es sich um Tracking von Objekten
ohne GPS-Empfänger bzw. ohne Marker handelt, sind die Einsatzgebiete
anders als bei typischen GPS-Anwendungen. Der Vorteil dieses Systems ist,
wie schon erwähnt, die Tatsache, dass das Objekt, von welchem die GPSDaten ermittelt werden sollen, keinen GPS Empfänger oder andere Hardware
bei sich haben muss. Das bringt große Vorteile, wenn z. B. aus Beweglichkeitsgründen kein GPS Empfänger „mitgenommen“ werden kann, oder die
Person nicht wissen soll, dass ihre GPS Daten aufgezeichnet werden, oder
am „Objekt“ kein GPS Empfänger angebracht werden könnte.
5.1
Positionsbestimmung unter Wasser
Im Wasser besteht das Problem, dass normale GPS-Empfänger keine Positionen bestimmen können, da Wasser eine andere Wellenausbreitungsgeschwindigkeit aufweist als Luft (siehe Abschnitt 2.2.1). Es müssen also zwischen
Luft und Wasser Stützpunkte verwendet werden, die die Signale in einer
anderen, unterwasser-tauglichen, Form weitergeben.
Grundsätzlich funktioniert das hier vorgestellte System überall dort wo
gefilmt werden kann, also auch unter Wasser. Unterwasser GPS-Systeme sind
schon erhältlich, sind aber sehr teuer und aufwändig. Sie benötigen viel Hardware und die TaucherInnen müssen spezielle Empfänger bei sich tragen (siehe
Abschnitt 2.3.1) wobei hingegen TaucherInnen bei diesem System keine Empfänger benötigen. Die Daten stehen deswegen erst nach dem Tauchgang zur
Verfügung, da sich keine Hardware beim Empfänger befindet, die mit dem
System kommunizieren könnte. Es kann deswegen nicht zur Navigation verwendet werden.
Es können Tauchrouten vermessen oder auch nur gespeichert werden und
als Erweiterung des Systems für Hobbytaucher z. B. in einem Google Earth
Plug-In angezeigt werden. Tauchschulen könnten das System an ihren Haus79
KAPITEL 5. ANWENDUNGEN
80
riffen installieren und somit Tauchfehler ihrer Schüler überprüfen. Außerdem
könnten Meerestiere getrackt und somit beobachtet und ihr Verhalten studiert werden.
Aktuell erhältliche Tauchcomputer können die Tiefe und die Zeit erfassen, sind also zweidimensional. Mit diesem System wäre die Erfassung von
vier Dimensionen, also der Raum (drei Dimensionen) und eine zusätzliche
Dimension, die Zeit, möglich. Tiefe und Zeit sind zwar ausreichend um den
nächsten Tauchgang zu planen, Vierdimensionalität würde jedoch wie oben
erwähnt, TaucherInnen und WissenschaftlerInnen viele weitere Möglichkeiten eröffnen.
5.2
Sicherheitstechnik
Da bei der Verwendung dieses Systems keine Hardware am zu trackenden
Objekt angebracht werden muss, können in der Sicherheitstechnik Bewegungspositionen von Personen ganz einfach ermittelt werden. Man könnte
Plätze oder Gebäude mit Clients ausstatten und Bewegungen aufzeichnen.
Um ein Objekt bzw. eine Person, deren optische Eigenschaften dem System
nicht bekannt sind, zu identifizieren gibt es diverse Möglichkeiten. Es kann
entweder durch manuelle Auswahl der Person am Bildschirm ein Muster
festgelegt werden, nach welchem gesucht wird, oder z. B. durch Farbauswahl
(Kleidung) das gesuchte Objekt definiert werden. Auch Exklusivität wäre
eine Möglichkeit. Wenn sich nur eine Person in dem Bereich befindet, könnte
die Bewegung des Objektes erkannt und verfolgt werden.
Da das System unauffällig und einfach zu installieren ist, würde es sich
auch temporär von Polizei oder Sicherheitsdienst an Plätzen von besonderem
Interesse anbringen lassen. Die Daten könnten ausgewertet, und z. B. bei
Annäherung der gesuchten Person oder eines gesuchten Objektes an gewisse
Bereiche oder andere Personen, Alarm ausgelöst und somit die Arbeit der
Sicherheitsleute erleichtert werden.
5.2.1
Datenschutz
Da bei diesem Projekt auch Menschen automationsunterstützt auf Video
verfolgt und aufgezeichnet werden können, kommt in diesen Fällen das Datenschutzgesetz (DSG 2000) zu tragen. Dieses ist EU-Recht und somit im
ganzen EU-Raum zu beachten. Es können jedoch nationale Unterschiede bestehen.
§ 1. (1) Jedermann hat, insbesondere auch im Hinblick auf die Achtung seines Privat- und Familienlebens, Anspruch auf Geheimhaltung der ihn betreffenden personenbezogenen Daten, soweit ein schutzwürdiges Interesse daran
besteht. Das Bestehen eines solchen Interesses ist ausgeschlossen, wenn Daten infolge ihrer allgemeinen Verfügbarkeit oder wegen ihrer mangelnden
KAPITEL 5. ANWENDUNGEN
81
Rückführbarkeit auf den Betroffenen einem Geheimhaltungsanspruch nicht
zugänglich sind [9].
Es unterscheidet zwischen sensiblen und nicht-sensiblen Daten. Die bei
diesem Projektes vorliegenden Daten werden im Normalfall als nicht-sensibel
einzustufen sein. Siehe Begriffsdefinition DSG 2000 §4 Absätze 1 und 2. Sofern jedoch Rückschlüsse auf eine Person gezogen werden können, ist vorher
deren ausdrückliche Genehmigung einzuholen. Bei einer automationsunterstützten Verwendung von Daten im Sinne des DSG 2000, oder einer Verknüpfung der Daten mit anderen Datenbeständen ist bei der Datenschutzkommission ein Eintrag in das Datenverarbeitungsregister zu beantragen.
Ausnahmen von dieser Meldepflicht stehen im §17 Abs. 2 DSG 2000 [9].
5.3
Computergestützte Reality-Spiele
Das System hat auch in der Spieleindustrie einen großen Absatzmarkt. Es
könnte z. B. zur Steuerung von Reality-Spielen verwenden werden. Mögliche
Spielflächen könnten Plätze im Freien sein, oder auch Gebäude, in denen
Clients, in den zum Spielen genutzten Räumen, installiert sind.
Position, Aufenthaltsdauer an einer Position und Kontakt zwischen SpielerInnen können vom System aufgezeichnet werden. Wenn es sich um mehr
als eine spielende Person handelt, müssen mehrere Objekte getrackt werden
können. Welche Probleme multiple Objekte verursachen können, wird im
Abschnitt 6.3.3 vorgestellt. T-Shirts unterschiedlicher (Team-) Farbe können zum Unterscheiden der SpielerInnen verwendet werden.
Mit den oben genannten Informationen aller Clients (Positionen der Spieler, Aufenthaltsdauer an den Positionen und Kontakte zwischen den SpielerInnen) kann der Server die Spiellogik berechnen und Punkte vergeben bzw.
GewinnerIn ermitteln.
5.4
Kollisionswarnsysteme
Eine weitere Anwendung, bei der mehrere Objekte beobachtet werden, sind
Kollisionswarnsysteme. Sind Objektpositionen bekannt, kann durch deren
Größe, Fahrtrichtung und Exzentrizität berechnet werden, wann eine Kollision zustande kommen würde. Mit Hilfe des bekannten Parameters Geschwindigkeit (Positionsänderung durch Zeit) kann schon vor einer Kollision,
also bei größerem Abstand eine Warnung ausgegeben werden.
Das wäre zum Beispiel in Häfen möglich, in denen täglich viele Schiffe
durch enge Schleusen oder dicht neben anderen Schiffen navigieren müssen
(siehe Abbildung 5.1). Auch auf Baustellen herrscht oft reger, hektischer
Verkehr, der zu Kollisionen zwischen Baugeräten führen kann.
KAPITEL 5. ANWENDUNGEN
82
N
O
W
S
Abbildung 5.1: Durch die bekannten Fahrtrichtungen sowie Exzentritäten
und Größen der Objekte (z. B. Schiffe) können mögliche Kollisionen berechnet und durch Alarmsysteme verhindert werden.
5.5
Verhaltensstudien
Bewegungsmuster von Menschen oder Tieren können Aufschluss über deren Gefühlslage geben. Oftmaliger Ortswechsel, hektisches Verhalten oder
schnelles Gehen deuten möglicherweise auf Unwohlsein hin. Gezielte Bewegungen, langsame, bedachte Fortbewegung hingegen eher auf Ruhe. Auch die
Aufenthaltsdauer an einem Ort gibt Erkenntnisse über den Wohlfühlfaktor
an dieser Stelle wieder. An unbehaglichen Orten, versuchen Menschen und
Tiere instinktiv, nicht lange zu verweilen.
5.5.1
Konsumverhalten
In mit dem System ausgestatteten Einkauszentren könnte das Verhalten einzelner KundInnen beobachtet und das Ergebnis so z. B. zur günstigen Werbeplatzierung verwendet werden. Es kann untersucht werden wo sich Personen
durchschnittlich sehr lange aufhalten und wo nur sehr kurz, bzw. von welchen
Geschäften sie nur die Auslagen betrachten und in welchen sie auch Zeit verbringen. Durch Kombination des Ergebnisses des Trackingsystems mit den
Verkaufszahlen könnten Rückschlüsse gezogen werden, welche Produkte und
Schaufenster von den KundInnen nur gerne angesehen und welche Produkte
auch auch gerne gekauft werden.
5.5.2
Gruppenverhalten
Auch das Rollenverhalten von einzelnen Personen in Menschenmengen oder
einem Tier in einer Herde kann untersucht werden. Ergebnisse dieser Untersuchung wäre das Verhalten eines Individuums in einer Gruppe. Als Referenz
83
KAPITEL 5. ANWENDUNGEN
v
vp
Abbildung 5.2: In der Strömungstechnik können Strömungslinien dreidimensional erfasst werden, indem ein einzelnes andersfarbiges Partikel dem
Strömungsfluss hinzugefügt und getrackt wird.
könnte untersucht werden, wie sich einzelne Menschen oder Tiere verhalten.
In landwirtschaftlichen Studien könnten Freilandgehege gefilmt und ein spezielles Tier über einen längeren Zeitraum beobachtet werden. Das Verhalten
des einzellnen Tieres im Bezug zur Gruppendynamik gibt Aufschluss über
den Wohlfühlfaktor der Gruppe.
5.5.3
Arbeitsverhalten
Dieses System ist auch für die Industrie geeignet, um Fertigungsabläufe ergonomischer und rationeller gestalten zu können. Eine Analyse der Fertigungsschritte durch Arbeitsvorbereiter nach dem Tracking kann für die Optimierung der Fertigung, aber auch für ergonomische Anforderungen verwendet
werden. Doppelte Bewegungen können erkannt, für das Personal anstrengende Bewegungen vermieden werden. Zusätzlich kommen die Vorteile dieses
System besonders stark zu tragen: niedrige Hardwarekosten des Gesamtsystems, einfacher Aufbau, einfache Anwendungsrealisierung, keine aufwändige
Kalibirierung durch geschultes Personal.
5.6
Strömungstechnik
Die Strömungstechnik beschäftigt sich mit der Mechanik der flüssigen und
gasförmigen Stoffe (Fluide). Das entworfene System könnte in dieser Disziplin zur Analyse von Trajektorien verwendet werden. In der Physik werden
Bewegungskurven, entlang derer sich Objekte mit einer gewissen Geschwindigkeit bewegen, Trajektorien genannt [35, S. 356].
Bei diesen Objekten handelt es sich um punktförmige Körper oder um
den Schwerpunkt starrer Körper. Deren Positionen können mit dem Multikamera-Trackingsystem dreidimensional getrackt und ausgewertet werden. Es
muß bei der Positionsbestimmung nicht zwingend das GPS Weltkoordinatensystem, sondern es kann auch ein lokales Koordinatensystem verwendet werden. Das heißt, es wird von der hohen Flexibilität der Positionsbestimmung
der Kameras abgegangen, jedoch kann so die Genauigkeit des Ergebnisses
KAPITEL 5. ANWENDUNGEN
84
erhöht werden, da der GPS-Fehler nicht auftritt. Ist die Strömung sehr stark
bzw. schnell, können auch Hochgeschwindigkeitskameras verwendet werden.
Die Clients müssten dann allerdings eine sehr gute Rechenleistung besitzen
um die hohe Datenmenge zu bewältigen.
5.6.1
Windkanal
Im Windkanal werden die Auswirkungen von Luftbewegungen um und über
feste Körper getestet. Die bekanntesten Beispiele sind Autos und Flugzeuge.
Üblicherweise wird Rauch oder Farbe verwendet um die Luftströmung sichtbar zu machen. Diese Strömungslinien werden fotografisch dokumentiert.
Da es sich um Linien handelt, könnte man die Bewegung mit dem Trackingsystem noch nicht verfolgen. Schießt man jedoch ein einzelnes Partikel oder
Objekt anderer Farbe in die Strömung ein, kann dieses verfolgt werden. Wird
der Windkanal von mehreren Seiten gefilmt, läßt sich die Bewegungskurve
des Partikels dreidimensional bestimmen und z. B. zur Verbesserung der Aerodynamik verwenden.
Abbildung 5.2 zeigt wie ein Partikel ~vp in eine Strömung ~v eingeschossen wird. Die Strömung ~v kann somit inklusive Geschwindigkeit (Distanz
zwischen zwei Positionen nach der Zeit) und Bewegungsrichtung sichtbar
gemacht werden.
5.7
Sport
Gerade im Sport ist es wichtig Bewegungsabläufe zu analysieren und gegebenenfalls zu verbessern. Da es bei Wettbewerben immer mehr auf tausendstel
Sekunden ankommt, könnte dieses System für diese Analyse eingesetzt werden, da die SportlerInnen nicht immer GPS-Empfänger bei sich tragen können. Es wäre möglich, Sportstadien oder Skipisten mit Clients zu versehen
und so die Bewegungen der SportlerInnen aufzuzeichnen.
Im Skisport, z. B. beim Skispringen, kann die Flugbahn ermittelt und
durch bekannte Faktoren wie Wetterwerte kann auf die Einflussnahme des
Windes auf die Flugbahn geschlossen werden. Werden bei einem Fußballspiel oder ähnlichem Ball- bzw. Mannschaftsspiel die SpielerInnen und der
Ball getrackt, kann mit diesen Informationen das Zusammenspiel des Teams
studiert werden. Auch könnte das System als automatischer Schiedsrichter
fungieren, der Abseits und Tore auswertet. Bei Tennisspielen kann mit Hilfe
dieses Systems die Flugbahn eines Tennisballes aufgezeichnet und somit die
Spielqualität analysiert werden.
Die Bewegungstudien lassen sich überall anwenden, wo eine Person bzw.
ein Objekt läuft, schwimmt, springt, fährt oder fliegt. Objekte wie Speere,
Diskusscheiben usw. lassen sich mit dem System tracken und mit Hilfe derer
Flugdaten Rückschlüsse auf die Qualität des Abwurfes ziehen.
Kapitel 6
Zusammenfassung
Dieses abschließende Kapitel beschäftigt sich mit einem Überblick über das
Projekt, die Probleme die entstanden sind, sowie deren Lösungsansätze. Außerdem wird auf mögliche Weiterentwicklungen des Prototypen eingegangen
und ein Resümee über die Arbeit gegeben.
6.1
Erreichte Ziele
Ziel dieses Projektes war es, zu testen, ob es möglich ist, aus Bildern sowie
den Positions- und Orientierungsdaten der verwendeten Kameras die absoluten Positionen von Objekten in den Bildern zu errechnen. Das sollte durch
Filmen eines Gebietes geschehen, wobei in diesen Aufnahmen ein Objekt
getrackt und ein Strahl in Richtung des Objektes berechnet wird. Durch
die Positions- und Orientierungsdaten aller Kameras wird mit Hilfe einer
Schnittpunktberechnung der Strahlen die Position des gesuchten Objektes
berechnet. Es wurden die mathematischen Überlegungen zu dem Konzept
erstellt und anschließend mit zwei Videos getestet.
Da die Positionen des Objektes richtig gefunden wurden, kann man sagen,
dass diese Überlegungen richtig waren, jedoch gab es bei der Implementierung auch einige Schwierigkeiten, die im nächsten Absatz genauer beschrieben werden.
6.2
Probleme
Dieses System ist ein neues Konzept und deswegen auch mit einigen Problemen verbunden. Die meisten davon konnten während der Erstellung des
Prototypen gelöst werden, andere könnten in zukünftigen Versionen noch
ausgebessert werden.
85
KAPITEL 6. ZUSAMMENFASSUNG
6.2.1
86
Echtzeit
Ziel ist es, das System echtzeitfähig zu machen. Je nach Anwendung sind
mehr oder weniger Bilder pro Sekunde (fps) nötig. Das aktuelle System
kommt auf 6fps. Je nach Hardware bzw. Prozessorleistung kann dieser Wert
variieren. Der Prototyp wurde mit einem Pentium 4 mit 3GHz Prozessortakt
und 1GB RAM getestet.
Vom Erhalt des Videoframes bis zum Erhalt des Positionswertes sind
diverse Schritte zu erledigen. Als erstes muss das Videobild der Kamera geladen werden. Dies geschieht im Prototyp mit der Movie Reader Library
(siehe Abschnitt 4.2.8 Bibliotheken). Zu Testzwecken wurde ein Video erstellt, welches jedoch als unkomprimiertes avi zu laden war und dadurch
sehr groß und langsam wurde. Das ist auch der Engpass des Systems. Die
Berechnungen sind, da es sich hauptsächlich um Multiplikationen und Divisionen handelt, sehr schnell. Das Laden der Frames benötigt die meiste Zeit
in der Verarbeitungskette.
6.2.2
Ungenauigkeiten
Die Berechnungen in diesem System spielen eine große Rolle und je genauer
die Ausgangsdaten sind, desto genauer werden die Ergebnisse. Die Ausgangsdaten zur Berechnung sind Position und Orientierung der Kamera sowie das
Kamerabild.
GPS Fehler
Die ungenauesten Ergebnisse liefert die Positionsbestimmung, also GPS.
Diese Fehler nennt man GPS-Fehler und ohne zusätzliche Maßnahmen kann
dieser bis zu 15 Meter betragen (siehe Grundlagen GPS in Kapitel 2.2.1).
Leider liefern verschiedene GPS-Empfänger an der gleichen Position zur gleichen Zeit unterschiedliche Ergebnisse. Wenn also zwei Clients „falsche“ Positionen erhalten, sind die berechneten Strahlen von der Kamera zum Objekt
im Weltkoordinatensystem an der falschen Stelle und die Strahlen schneiden
sich nicht, oder können sich schneiden, wenn sie sich nicht schneiden sollten.
Hier werden zwei Möglichkeiten vorgestellt, wie mit dem Fehler umgegangen
werden kann, sodass die Schnittpunktberechnung möglich wird.
Eine Möglichkeit ist die Sysnchronisation der GPS-Empfänger, sodass
diese nach der Synchronisation alle den gleichen GPS-Fehler aufweisen. Das
hat den Vorteil, dass keine zusätzliche Hardware benötigt wird. Die Clients
(PDAs mit eingebauten GPS-Empfängern) müssen jedoch miteinander kommunizieren können. Das Ergebnis hat bei dieser Variante zwar immer noch
den gleichen GPS Fehler wie die Empfänger, also bis zu 15 Meter, jedoch
sind alle Komponenten im System synchronisiert, und die Schnittpunktberechnung kann erfolgreich durchgeführt werden.
KAPITEL 6. ZUSAMMENFASSUNG
87
Abbildung 6.1: Diese Abbildung zeigt die Auswirkungen der Verzerrungen die Digitalkameras oft haben. Das linke Bild zeigt ein ideales Bild ohne
Verzerrung. Im mittleren Bild ist der Pincushioneffekt dargestellt. Die Linien neigen sich nach innen, wie bei einem Kissen. Das rechte Bild stellt den
Barreleffekt dar und die Linien neigen sich wie bei einer Tonne nach außen.
Diese Verzerrungen sind am Rand des Bildes stärker ausgeprägt als in der
Mitte und führen dort zu mehr oder weniger großen Ungenauigkeiten bei der
Schwerpunktberechnung.
Als zweite Variante wäre das im Abschnitt 4.3.1 beschriebene Differential
GPS ideal um alle GPS-Empfänger mit genauen Werten zu versorgen. Hier
muss sich jedoch eine GPS-Basisstation in der Nähe befinden. Das Ergebnis
der Schnittpunktberechnung, also die Position des gesuchten Objektes, ist
damit bei der Genauigkeit in der selben Größenordnung wie normales DGPS.
Berechnungsungenauigkeiten
Andere Ungenauigkeiten können Berechnungen mit zu wenig Kommastellen
liefern, deshalb wurde hier durchgehend mit double-Werten gerechnet. Wenn
das Objekt weit von der Kamera entfernt ist, kann ein Pixel den Strahl
mehrere Meter in eine andere Richtung lenken. Bei einer Auflösung von 640×
480 und einem Field of View von 50◦ ergibt das bei einer Entfernung von 10
Metern einen Unterschied von 78 Zentimeter. Bei einer Entfernung von 50
Metern schon 3,9 Meter. Abhilfe würde eine Kamera mit besserer Auflösung
schaffen.
Andere Fehler bei der Schwerpunktberechnung ergeben sich durch inhomogene Objekte. In Kapitel 3.2.3 wird in Abbildung 4.9 erklärt wie sich
inhomogene Regionen auf den Schwerpunkt auswirken. Abhilfe könnte hier
Skeletterkennung schaffen, oder andere Methoden die die Region untersuchen
und immer die gleiche Stelle (Kopf, Brustkorb, . . . ) als Regionsschwerpunkt
ermitteln.
Barrel- und Pincushioneffekt
Barrel- (Tonne) und Pincushion- (Nadelkissen) Effekte sind Verzerrungen die
in Digitalkameras vor allem an den Rändern große Ungenauigkeiten bringen
können. Abbildung 6.1 zeigt die Auswirkungen, die diese Effekte auf Bilder
haben. Der Pincushioneffekt verzerrt die Linien nach innen bzw. die Diagonalen nach außen, wie bei einem Kissen. Er tritt hauptsächlich bei vollem
KAPITEL 6. ZUSAMMENFASSUNG
88
Zoom auf. Beim Barreleffekt geschieht das genaue Gegenteil, die Linien werden nach außen verzogen bzw. die Diagonalen nach innen. Dies gibt den
optischen Effekt einer Tonne und tritt vor allem bei Weitwinkelaufnahmen
auf. Bei Naturaufnahmen oder Bildern mit wenig geraden Linien ist dieser Effekt kaum erkennbar, bei Gebäuden, geraden Horizonten oder generell
geraden Linien in Bildern wird der Effekt jedoch sehr gut sichtbar.
Wie im vorherigen Abschnitt beschrieben können nur wenige Pixel Unterschied zur wirklichen Position größere Fehler ergeben. Um diesen Fehler
zu beheben muss als erstes die Größe der Verzerrung durch ein Testbild
mit geraden Linien bzw. Rechtecken im Bild gemessen werden. Anschließend
können die zu untersuchenden Bilder mit Hilfe dieser Daten entzerrt werden,
bevor sie zur Objekterkennung verwendet werden. Eine andere Möglichkeit
ist ein Adapter oder Konverter, der das Problem der Verzerrung ausgleicht,
jedoch müsste für deren Verwendung ein Objektivgewinde an der Kamera
vorhanden sein.
6.3
Weiterentwicklungen
Das System wurde als Prototyp entwickelt um die Funktionsweise und die
Machbarkeit des Konzeptes zu testen und natürlich ist das System offen
für Weiterentwicklungen. Eine Auswahl nützlicher Konzepte wird in diesem
Abschnitt vorgestellt.
6.3.1
Unterwasser GPS
Durch die Funktionsweise von GPS ist die Positionsbestimmung unter Wasser nicht möglich. Das kommt einerseits von den Signalen, die nur durch
die Luft bzw. Atmosphäre empfangen werden können. Dieses Problem wird
durch die optische Berechnung umgangen. Jedoch kommt dadurch das Problem der Sichtverhältnisse zum Tragen. Trübes Wasser, schlechtes Wetter
(dunkel) sowie der Effekt, dass gewisse Wellenlängen im Spektrum (vorwiegend die roten) vom Wasser unterdrückt werden, machen optisches Tracking
in größerer Distanz schwierig. Je mehr Wasser zwischen Betrachter und Objekt liegt, also je größer die Distanz ist, desto dunkler und blaustichiger
werden die Farben. Hier müsste eine Farbkorrektur durchgeführt werden,
welche die blauen Farbtöne reduziert und die roten verstärkt.
Ein anderes Problem, weshalb GPS unter Wasser mit herkömmlichen
GPS Empfängern nicht funktionieren würde, ist die Tatsache, dass die Positionen im WGS84 Koordinatensystem berechnet werden, welches ein Referenzellipsoid mit der Seehöhe Null verwenden (siehe Abschnitt 3.1.2). Da
die Positionskoordinaten in das beschriebene ECEF Format umgewandelt
werden, kann auch mit negativen Koordinaten gerechnet werden, sofern die
GPS Empfänger der Clients über Wasser angebracht werden. Positionen unter Wasser würden im WGS84 System, sofern sich das Objekt in einem Meer
KAPITEL 6. ZUSAMMENFASSUNG
89
hinemoa
Abbildung 6.2: Mögliche Variationen für die Positionierung von Unterwasserclients. Sie an einem Schiffsrumpf zu befestigen wäre die einfachste
Möglichkeit. Auch an Bojen, die auf der Wasseroberfläche treiben, könnten
Clients montiert werden. Die GPS Empfänger werden über Wasser und die
Kamera unter Wasser positioniert, um die Lichtbrechung zwischen Luft und
Wasser zu vermeiden bzw. zu reduzieren. An Stangen montierte Kameras
könnten schlechte Sichtverhältnisse durch geringere Distanzen ausgleichen.
Fix am Grund oder an Felsen montierte Clients können stabile Werte liefern.
Ihre Position sowie ihre Orientierung müssen bekannt sein.
befindet, eine negative Höhe über dem Meeresspiegel ergeben. In einem See
würde sich jedoch eine normale, positive Meereshöhe ergeben.
Der GPS Empfänger der Clients müsste sich also über Wasser und die
Optik unter Wasser befinden. Sofern die Elemente des Clients starr verbunden, und die Abstände bekannt sind, können sie auch voneinander entfernt
angebracht werden, was bei der Montage Vorteile bringen kann. Es gibt mehrere Möglichkeiten die GPS Empfänger an der Wasseroberfläche anzubringen. Eine Möglichkeit wäre, sie an Booten zu befestigen und so immer auf
der richtigen Höhe zu halten. Der Server könnte sich auch auf diesem Boot
befinden und das Ergebnis wäre gleich nach dem Tauchgang verfügbar. Ein
anderer Ansatz wäre, die Clients an Bojen zu befestigen und auf der Wasseroberfläche treiben zu lassen. Für bessere Stabilität würden sich große,
flache Bojen eignen. Wie oben erwähnt, reicht es, wenn die Messgeräte starr
mit der Kamera verbunden sind. Damit ließe sich auch die Kamera an einer
Stange oder ähnlichem befestigen, und diese Stange wiederum an einer Boje.
So ließe sich auch die Sicht verbessern, da sich die Kamera bei günstiger Po-
KAPITEL 6. ZUSAMMENFASSUNG
90
sitionierung näher beim Objekt befinden würde. Bei starkem Wellengang
würden sich jedoch die Positions- und vor allem die Orientierungsdaten sehr
häufig und schnell ändern, was gute und schnelle Hardware voraussetzt.
Bei einem eher unflexiblen, jedoch sehr stabilen Ansatz, könnten die Berechnungen dieses Systems weiterhin verwendet werden, Position und Orientierung der Kameras unter Wasser müssten jedoch bekannt sein. Es handelt
sich dabei um die Fixmontierung von Clients am Grund oder am Felsen.
Es wäre also möglich, Tauchgebiete mit Clients auszustatten, um somit ein
wellenunabhängiges Ergebnis zu erhalten.
Zukünftige Entwicklungen
Bei Computerhardware ist ein laufender Preisverfall zu beobachten. Speicher
werden billiger, Computer schneller. Dies kann für zukünftige Navigationsund Trackingsysteme bedeuten, dass nicht nur eine einfache Karte als Human
Interface für die Positionsdarstellung zur Anwendung kommt, sondern auch
Fotos und Videos der Umgebung in Echtzeit darstellbar werden. Auf der
CeBit 2007 war dieser Trend bei Kfz-Navigationssystemen bereits erkennbar.
Navigon hat erste Navigationssysteme, die komplexe Strassenkreuzungen mit
mehreren Spuren als Foto einblenden lassen und somit wesentlich einfacheres
und eindeutigeres Navigieren ermöglichen als heute [22].
Für dieses Projekt kann dies bedeuten, dass für die Unterwasseranwendung nicht nur die reine Verfolgung eines Objektes (Tauchers) in die Software integriert ist, sondern bereits die Anfahrt zum Tauchplatz durch eingeblendete Fotos aus der Unterwasserwelt dargestellt werden kann. Auch das
zwingend erforderliche Briefing ist vor dem Tauchgang deutlicher und klarer
möglich. Im Anschluss wird das gleiche Navigationssystem für die Verfolgung
der Taucher unter Wasser verwendet und nach Beendigung des Tauchganges
über die errechneten Trackingdaten ein Bericht mit Fotos der Unterwasserumgebung erstellt.
Lichtbrechung
Bei der Verwendung des Systems unter Wasser ergibt sich ein Problem, nämlich das der Lichtbrechung zwischen Luft und Wasser. Die Kamera befindet
sich in einem wasserfesten Gehäuse, ist also von Luft umgeben und filmt
über eine gleichmäßig dicke Glasscheibe, die parallel zur Linse montiert ist,
ins Wasser. Die exakte Mitte des Bildes wird durch die Parallelität des Glases
nicht beeinflußt, je weiter am Rand des Bildes jedoch, also je größer der Einfallswinkel des Lichtstrahles zwischen Luft-Glas-Wasser wird, desto größer
wird auch der Fehler.
Abbildung 6.3 zeigt das Problem das durch diese drei Materialien entsteht. Wenn das Glas relativ dünn ist, kann es auch vernachlässigt werden,
da bei gleichmäßiger Dicke, wie beim Blick durch ein Fenster, der Ausfalls-
KAPITEL 6. ZUSAMMENFASSUNG
91
Theoretische
Ausbreitung
Unterwassergehäuse
Gebrochenes
Licht
Luft Glas Wasser
Abbildung 6.3: Diese Abbildung zeigt den Effekt der Lichtbrechung zwischen Luft, Glas und Wasser. Da Wasser einen höheren Brechungsindex
als Luft hat, und die Bilder in einer Luftumgebung aufgenommen werden, erscheinen Objekte näher bzw. gestaucht. Da die Glasscheibe vor der
Linse gleichmäßig dick ist, ändert sich nicht viel an der Objektposition,
nur der Brennpunkt wird minimal „verschoben“, kann aber wegen GPSUngenauigkeiten bei der Positionsbestimmung vernachlässigt werden. Der
Winkel bzw. die Objektposition im Bild zur Berechnung des Strahles muss
mit dem Brechungsindex multipliziert werden um auf die wirkliche Position
zu zielen.
winkel gleich dem Einfallswinkel ist. Der Brechungsindex von Luft nl ist
annähernd 1 (1,000292) und der von Wasser nw 1,33. Da der Wasserindex
größer ist als der von Luft, erscheinen Objekte im Wasser, die von der Luft
aus angeschaut werden, näher bzw. gestaucht. Deswegen muss bei der Berechnung des Strahles in Richtung des Objektes der Winkel mit nnwl = 1, 3308
multipliziert werden um die tatsächliche Position zu erhalten.
6.3.2
Aufbereitung der Daten
Die Daten sind im Prototyp als zeitabhängige Positionsdaten vorhanden.
Das heißt pro Frame ist eine Position vorhanden, in der sich das Objekt
zu dieser Zeit befunden hat. Die Ausgabe stellt diese Daten als Höhenprofil
aus der Vogelperspektive als SVG-Grafik dar. Als Weiterentwicklung wäre
es hilfreich diese Daten, je nach Anwendung, in verschiedene Formate zu
transformieren bzw unterschiedlich darzustellen.
Um einen besseren Überblick über das Ergebnis zu erhalten, wäre ein
optisches, dreidimensionales Ergebnis hilfreich. Die Punkte könnten z. B.
mit OpenGL als kleine verbundene Kugeln im 3D-Raum dargestellt werden. Diese Kette von Punkten könnte dann von allen Seiten und in Zoom-
KAPITEL 6. ZUSAMMENFASSUNG
92
stufen betrachtet, und somit genauer analysiert werden. Es könnten auch
Geschwindigkeiten aus den Kenntnissen von Distanz und Zeit berechnet und
ausgegeben werden. Genauso könnte die Aufenthaltsdauer des Objektes an
einem Ort von Interesse sein. Um diese Informationen grafisch darzustellen,
gibt es mehrere Möglichkeiten. Da im dreidimensionalen Raum eben nur
drei Dimensionen, aber mehr als drei Informationen vorhanden sind, könnte
die Geschwindigkeit oder Aufenthaltsdauer z. B. farblich dargestellt werden.
Eine andere Möglichkeit wäre, die Größe der Kugel je nach Dauer zu verändern. Wird wie bei SVG im zweidimensionalen Raum gearbeitet, wird die
Farbe für die dritte Dimension verwendet und kann damit nicht mehr für andere Werte verwendet werden. Es könnte jedoch auch die Form des Objektes
(z. B. rund - eckig) je nach Wert verändert werden. Damit wären, mit der
Größe für die Aufenthaltsdauer, wieder zwei zusätzliche Daten darstellbar.
Da jeder Punkt einen Frame repräsentiert, ist die Dauer jedoch pro Punkt
fix, nämlich der Umkehrwert der Frames pro Sekunde. Würde sich ein Objekt
länger an einem Punkt aufhalten, würden die Punkte übereinander dargestellt und es wäre nicht ersichtlich, wie viele Frames das Objekt an dieser
Position verbracht hat. Es müsste also in jedem Frame geprüft werden, ob
sich die Position von der vorherigen Position unterscheidet. Ist dies nicht der
Fall, sollte der Punkt oder die Kugel größer gezeichnet werden.
6.3.3
Tracken multipler Objekte
Für manche Anwendungen wäre es notwendig mehrere Objekte bzw. Personen in einem Raum zu tracken. Dieses Feature ist im Prototyp noch nicht
implementiert, jedoch möglich. Dabei gibt es einige Punkte zu beachten. Als
erstes die Verdeckung. Wenn sich mehrere Personen im Bild befinden kann
es vorkommen, dass eine die andere verdeckt, und somit nicht mehr alle Personen für alle Kameras sichtbar sind. Eine Lösungsmöglichkeit wäre, mehr
Kameras zu verwenden. Würden z. B. zwei Personen getrackt, würden drei
Kameras ausreichen um, sofern nicht ein anderes Hindernis erscheint, um
immer beide Personen von mindestens zwei Kameras zu sehen. Bei mehr als
zwei Personen kann der Fall auftreten, dass die Personen jeweils so nahe an
einer Kamera stehen, dass alle anderen Personen im Bild verdeckt werden
und jeweils nur ein Strahl pro Person berechnet werden kann. Somit wäre
keine Positionsbestimmung möglich.
Ein anderer Punkt ist die Unterscheidung der Personen. Bewegung könnte
in diesem Fall nur bedingt verwendet werden, da, wenn sich zwei Personen
aus der Perspektive einer Kamera in die gleiche Richtung bewegen, nicht
mehr zwischen ihnen unterschieden werden kann. Farbkodierung wäre hier
eine der sichersten Varianten der Regionserkennung. Diese Methode könnte
z. B. in Spielen gut eingesetzt werden, wenn jedes Team oder jeder Spieler
T-Shirts unterschiedlicher Farbe tragen würde.
KAPITEL 6. ZUSAMMENFASSUNG
93
Abbildung 6.4: Beim Tracken multipler Objekte werden von jeder Kamera
aus mehrere Richtungsvektoren berechnet. Zu jedem, der Kamera ersichtlichen Objekte, wird ein solcher Strahl berechnet. Es kann vorkommen, dass
ein Objekt ein anderes verdeckt. Dieses Problem kann durch die Verwendung mehrerer Kameras ausgeglichen werden. In diesem Beispiel wird nur
die Person in Grün von allen vier Kameras gesehen. Drei Kameras reichen
jedoch, wie bei den anderen Personen, aus, um deren Objektpositionen zu
berechnen.
6.4
Resümee
Ziel dieser Diplomarbeit ist, einen Überblick über optische Positionsbestimmung zu geben, insbesondere in Verbindung mit GPS. Hauptaugenmerk
wurde auf eine für diesen Zweck entwickelte Applikation gelegt, welche durch
optisches Tracking Positionen im GPS System WSG84 errechnet. Dabei wurden die Grundlagen der im Projekt verwendeten Techniken wie GPS und Objekterkennung näher erläutert sowie ein Überblick über existierende Systeme
gegeben. Auch auf die mathematischen Überlegungen hinter der Positionsbestimmung wurde näher eingegangen. Es wurde auf die Problematik des
GPS-Fehlers und Schwierigkeiten in der Objekterkennung eingegangen und
Lösungsvorschläge dazu vorgestellt.
Die größten Probleme bereitete der sogenannte GPS-Fehler welcher im
Durchschnitt bis zu zehn Meter betragen kann, was mit unterschiedlichen
Positionen von mehreren Empfängern dazu führen kann, dass keine Position berechnet werden kann. Durch Synchronisation der verwendeten GPS
Empfänger kann der Positionsfehler jedoch auf den normalen GPS-Fehler
eingegrenzt und durch Verwendung von Differential GPS sogar auf wenige
Zentimeter reduziert werden.
Die Applikation wurde in Java mit Hilfe von ImageJ und einer Movie Rea-
KAPITEL 6. ZUSAMMENFASSUNG
94
der Bibliothek zur Bildverarbeitung erstellt. Die Kommunikation zwischen
Clients und Server erfolgt über TCP mit einem eigenen Protokoll. Nachdem die Clients ihre Position, ihre Orientierung und den berechneten Strahl
übermittelt haben, führt der Server die Positionsberechnung durch. Diese
Positionen werden dann in ein SVG File geschrieben und nach Beendigung
des Trackings als Bild ausgegeben.
Das Thema war für mich als Taucherin persönlich sehr spannend, da mit
dem entwickelten System auch unter Wasser Positionen berechnet werden
könnten, was mit normalem GPS nicht möglich ist. Die Erstellung des mathematischen und optischen Konzeptes erforderte die Anwendung und Vertiefung meiner im Studium erworbenen Kenntnisse wie auch eine intensive
Auseinandersetzung mit GPS, der Kameratechnik sowie der Server-ClientKommunikation. Das von mir erstellte Konzept und System stellt eine solide
Basis für Weiterentwicklungen des Trackingsystems dar, sodass der Prototyp
durch Einarbeiten neuer Erkenntnisse immer weiter verfeinert und perfektioniert werden kann.
Anhang A
Definitionen
wk
hk
ck
fk
...
...
...
...
Kleinbildbreite
Kleinbildhöhe
Kleinbilddiagonale
Abstand Film zu Linse
ws
hs
cs
fs
...
...
...
...
Sensorbreite
Sensorhöhe
Sensordiagonale
Abstand Sensor zu Linse
v
f act
...
...
resx
resy
...
...
Bildseitenverhältnis (4:3)
Faktor zwischen Kleinbildbrennweite und
digitaler Brennweite
Auflösung in x-Richtung (Höhe)
Auflösung in y-Richtung (Breite)
rdist
pnumb
pused
psize
...
...
...
...
Pixelabstand
Anzahl Pixel (3072 × 2304)
Verwendete Pixel(640 × 480)
Pixelgröße
x
y
xpos
ypos
αxrad
αxdeg
αxdeg
...
...
...
...
...
...
...
X-Position im Bild (Pixelwert)
Y-Position im Bild (Pixelwert)
X-Position am Sensor
Y-Position am Sensor
Winkel in X-Richtung in Rad
Winkel in X-Richtung in Grad
Winkel in Y-Richtung in Grad
95
ANHANG A. DEFINITIONEN
~k
kx
ky
kz
kn x
...
...
...
...
...
Kameraposition
X-Position der Kamera
Y-Position der Kamera
Z-Position der Kamera
X-Position der n-ten Kamera
g~1
g~2
...
...
Vektor von Kamera 1 zu Punkt 1
Vektor von Kamera 2 zu Punkt 2
~r
rx
ry
rz
rn x
λn
...
...
...
...
...
...
Richtungsvektor
X-Wert des Richtungsvektors
Y-Wert des Richtungsvektors
Z-Wert des Richtungsvektors
X-Wert des n-ten Richtungsvektors
Position am n-ten Richtungsvektor
d
dx
dy
dz
d′ (λn )
S
...
...
...
...
...
...
Distanz zwischen zwei Vektoren
Distanz der X-Werte zwischen zwei Vektoren
Distanz der Y-Werte zwischen zwei Vektoren
Distanz der Z-Werte zwischen zwei Vektoren
Ableitung der Distanz zwischen zwei Vektoren nach λn
Schnittpunkt
α
β
γ
...
...
...
Winkel um die X-Achse (Shift)
Winkel um die Y-Achse (Pan)
Winkel um die Z-Achse (Tilt)
M
Mx
My
Mz
...
...
...
...
Transformationsmatrix
Transformationsmatrix um die X-Achse
Transformationsmatrix um die Y-Achse
Transformationsmatrix um die Z-Achse
b
n
...
...
Anzahl der Schnittpunktberechnungen
Anzahl der verwendeten Kameras
X
x, x′
e, e′
l, l′
C, C ′
P, P ′
F
E
H
T
...
...
...
...
...
...
...
...
...
...
Punkt im Raum
Abbildung von X auf die Bildebene
Epipol
Epipolare Linie
Kamerazentrum
Kameramatrix
Fundamentalmatrix
Essentialmatrix
Homographie
Trifokaler Tensor
96
Anhang B
Inhalt der DVD
File System: Joliet
Mode: Single-Session (DVD-ROM)
B.1
Diplomarbeit
Pfad: /Diplomarbeit
dm05029_Schneider_Miriam_da.dvi DVI-File, ohne Grafiken
dm05029_Schneider_Miriam_da.pdf PDF-File
dm05029_Schneider_Miriam_da.ps PostScript-File
Pfad: /Diplomarbeit/Quellen
ACSA . . . .
ARToolKit .
baumann . .
dailey . . . .
digicamfotos
usa-gps . . .
imageJ . . . .
kowoma . . .
mueller . . .
navigon . . .
prinz . . . . .
sony . . . . .
sun . . . . . .
ublox . . . . .
univie . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Unterwasser GPS - System
ARToolKit
Abbildungsmaßstab berechnen
Multi View Geometry
Digitalkamera W7
GPS SPS Performance
ImageJ Homepage
Alles über GPS
Sensorgrößen
Mobile Navigator
Signallaufzeit und Trägerphasenmessung
Digitalkamera W7
Server-Client
SuperSense Indoor
Photogrammetrie
97
ANHANG B. INHALT DER DVD
w3c . . . . . . . . . . .
wunderlich . . . . . . .
B.2
Scalable Vector Graphics
Location Based Services
Trackingsystem
Pfad: /Sourcecode
_dependencies . .
calculation . . . .
comm . . . . . . .
connect . . . . . .
immageProcessing
video . . . . . . . .
_kizi.avi . . . . . .
_wozi.avi . . . . .
output1.svg . . . .
Server.java . . . .
Start.java . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Bibliotheken
Paket zur Berechnung
Paket zur Kommunikation
Paket zum Verbindungsaufbau
Paket der Bildverarbeitung
Paket zum Video einlesen
Testvideo 2
Testvideo 1
Optische Ausgabe
Server Klasse
Klasse zum Starten des Systems
Pfad: /Dokumentation
Projektdoku.pdf . . . .
Systemdoku.pdf . . . .
Userdoku.pdf . . . . . .
Projektdokumentation
Systemdokumentation
Userdokumentation
Pfad: /Präsentationen
DesignCamp.ppt . . . . Englische Präsentation
Endpraesentation.ppt . Endpräsentation HGB
Zwischenpraesentation.ppt Zwischenpräsentation HGB
98
Literaturverzeichnis
[1] ACSA: GIB-Plus : Standard underwater tracking system. URL, http:
//www.underwater-gps.com/uk/product-detail.php?pr_id=2, Mai 2007.
[2] Altenberger, A. M.: Geodatenerfassung mittels Smart Devices im
Projekt Sirius. Diplomarbeit, Johannes Kepler Universität Linz, Juli
2006.
[3] Amit, Y.: 2D Object Detection and Recognition. The MIT Press, November 2002.
[4] Bartsch, H.-J.: Kleine Formelsammlung Mathematik . Hanser Fachbuchverlag, September 2003.
[5] Baumann, E.: Abbildungsmassstab berechnen. URL, http://www.
elmar-baumann.de/fotografie/herleitungen/, Mai 2007.
[6] Burger, W. und M. J. Burge: Digitale Bildverarbeitung : Eine Einführung mit Java und ImageJ . Springer-Verlag, Berlin, Heidelberg, 2.
überarbeitete Aufl., 2005.
[7] Chi-Farn Chen, M.-H. C.: Object Tracking and Positioning on Video
Images. XXth ISPRS Congress, July 2004.
[8] Dailey, M.: Machine Vision for Robotics and HCI Multi View Geometry. URL, http://www.cs.ait.ac.th/~mdailey/, June 2007.
[9] Datenschutzkommision: Datenschutzgesetz 2000 (DSG 2000),
BGBl. I Nr. 165/1999, idF. BGBl. I Nr. 13/2005 . URL, http://www.
dsk.gv.at/dsg2000d.htm, 2000.
[10] Doneus, M.: Introduction to Photogrammetry. URL, http://www.
univie.ac.at/Luftbildarchiv/wgv/intro.htm, Mai 2007.
[11] Green, M. D.: Underwater geopositioning methods and apparatus. United States Patent 20070025185, April 2005.
[12] Grosche, G., V. Ziegler und D. Ziegler: Teubner-Taschenbuch der
Mathematik . Hanser Fachbuchverlag, März 2004.
99
LITERATURVERZEICHNIS
100
[13] Han, M. und T. Kanade: Scene Reconstruction from Multiple Uncalibrated Views. Techn. Ber. CMU-RI-TR-00-09, Robotics Institute,
Carnegie Mellon University, Pittsburgh, PA, January 2000.
[14] Hartley, R. I. und P. Sturm: Triangulation. Computer Vision and
Image Understanding: CVIU, 68(2):146–157, 1997.
[15] Hartley, R. I. und A. Zisserman: Multiple View Geometry in Computer Vision. Cambridge University Press, ISBN: 0521540518, Zweite
Aufl., 2004.
[16] Hassan, T.: Innovation: Photogrammetry for Mobile Mapping. GPS
World, März 2007.
[17] java.sun.com: Writing the server side of a socket. URL, http://java.
sun.com/docs/books/tutorial/networking/sockets/clientServer.html, Mai
2007.
[18] Kato, H.: ARToolKit. URL, http://www.hitl.washington.edu/artoolkit/,
Mai 2007.
[19] Köhne, A.: Wie funktioniert GPS. Alles Wissenswerte.. URL, http:
//www.kowoma.de/gps/index.htm, Mai 2007.
[20] Müller, H.: Sensorgröße von Digitalkameras. URL, http://www.
horstmueller-galabau.de/diverses/digitalkameras.htm, Mai 2007.
[21] National Institute of Health: ImageJ . URL, http://rsb.info.nih.
gov/ij/, Mai 2007.
[22] Navigon: TS 7000T Europe mit MobileNavigator 6 . URL, https://
www.navigon.com/site/de/de/shop/consumer/bundles/pna/948, September 2007.
[23] Niblack, W.: An Introduction to Digital Image Processing. PrenticeHall International (UK) Ltd, September 1986.
[24] Numratzki, P.: DigiCam Fotos. URL, http://www.digicamfotos.de/
digicamtech/details2.php?image_id=272, Mai 2007.
[25] Pintaric, T.; Kaufmann, H.: Affordable Infrared-Optical PoseTracking for Virtual and Augmented Reality. VR 2007/IEEE, März
2007.
[26] Prinz, T.: Signallaufzeit und Trägerphasenmessung. URL, http://
ivvgeo.uni-muenster.de/Vorlesung/GPS/MessungSignallaufzeit.htm, September 2006.
LITERATURVERZEICHNIS
101
[27] Ribo, M.: State of the art report on optical tracking. Technical Report
VRVis 2001-25, TU Wien, 2001.
[28] Ribo, M., A. Pinz und A. Fuhrmann: A new Optical Tracking System for Virtual and Augmented Reality Applications, In Proc. of IEEE
Instrumentation and Measurement Technology Conference, IMTC 2003.
[29] Roberto M.; Cesar Jr: Shape Analysis and Classification: Theory
and Practice. CRC Press LLC, Dezember 2001.
[30] Schreer, O.: Stereoanalyse und Bildsynthese. Springer-Verlag New
York, Inc., Secaucus, NJ, USA, März 2005.
[31] Sony: DSC-W7 Technische Daten. URL, http://www.sony.at, Mai 2007.
[32] Sturm, P. F. und B. Triggs: A Factorization Based Algorithm for
Multi-Image Projective Structure and Motion. In: ECCV ’96: Proceedings of the 4th European Conference on Computer Vision-Volume II ,
S. 709–720, London, UK, 1996. Springer-Verlag.
[33] Svoboda, T., D. Martinec und T. Pajdla: A Convenient MultiCamera Self-Calibration for Virtual Environments. PRESENCE: Teleoperators and Virtual Environments, (14(4)):407–422, August 2005.
[34] Tang, W. K. und Y. S. Hung: A column-space approach to projective
reconstruction. Comput. Vis. Image Underst., 101(3):166–176, 2006.
[35] Tipler, P. A.: Physik . Spektrum akademischer Verlag, 1994.
[36] Tomasi, C. und T. Kanade: Shape and motion from image streams
under orthography: a factorization method . Int. J. Comput. Vision,
9(2):137–154, November 1992.
[37] Triggs, B., P. McLauchlan, R. Hartley und A. Fitzgibbon:
Bundle Adjustment – A Modern Synthesis. In: Triggs, W., A. Zisserman und R. Szeliski (Hrsg.): Vision Algorithms: Theory and Practice,
LNCS, S. 298–375. Springer Verlag, 2000.
[38] u-blox AG: SuperSense Indoor GPS . URL, http://www.u-blox.com/
technology/supersense.html, Oktober 2007.
[39] USA Department of Defense: Global Positioning System Standard
Positioning Service Performance Standard . URL, http://www.navcen.
uscg.gov/gps/geninfo/2001SPSPerformanceStandardFINAL.pdf, Oktober
2001.
[40] World Wide Web Consortium: Scalable Vector Graphics (SVG)
1.1 Specification. URL, http://www.w3.org/TR/SVG/, Mai 2007.
LITERATURVERZEICHNIS
102
[41] Wunderlich, T. A.: Positionsbestimmung für Location Based Services. URL, http://www.intergeo.de/deutsch/page/kongress/downloads/
archiv/2004/Wunderlich.pdf, Oktober 2004.
[42] Zhang, Z.: A flexible new technique for camera calibration. Pattern
Analysis and Machine Intelligence, IEEE Transactions on, 22(11):1330–
1334, 2000.
Messbox zur Druckkontrolle
— Druckgröße kontrollieren! —
Breite = 100 mm
Höhe = 50 mm
— Diese Seite nach dem Druck entfernen! —
103