3D-Objektverfolgung mit Stereokameras zur

Transcrição

3D-Objektverfolgung mit Stereokameras zur
3D-Objektverfolgung mit Stereokameras zur
bildbasierten Navigation autonom fliegender
Luftfahrzeuge
Bachelorarbeit zur Erlangung des Grades eines
Bachelor of Science (B.Sc.)
im Studiengang Computervisualistik
Florian Bäthge
Betreuer:
Dr.-Ing. Franz Andert, Deutsches Zentrum für Luft- und
Raumfahrt (DLR), Institut für Flugsystemtechnik, Abt. Unbemannte Luftfahrzeuge
Betreuender Professor: Prof. Dr.-Ing. habil. Holger Theisel, Otto-von-GuerickeUniversität Magdeburg, Fakultät für Informatik, Institut für
Simulation und Grafik, Arbeitsgruppe Visual Computing
Magdeburg, 2. April 2012
ii
Erklärung
Hiermit erkläre ich, dass ich diese Abschlussarbeit selbständig verfasst habe, keine anderen als
die angegebenen Quellen und Hilfsmittel verwendet habe und alle Stellen, die wörtlich oder
sinngemäß aus veröffentlichten Schriften entnommen wurden, als solche kenntlich gemacht
habe. Darüber hinaus erkläre ich, dass diese Abschlussarbeit nicht, auch nicht auszugsweise,
bereits für eine andere Prüfung angefertigt wurde.
Florian Bäthge
Magdeburg, 2. April 2012
iii
Kurzfassung
Unbemannte Luftfahrzeuge finden heutzutage in vielen Szenarien Anwendung. Da je nach
Einsatzgebiet eine Kollision oder gar ein Absturz fatal wären, ist es für moderne autonome
Flugsysteme unabdingbar, sich auch in unbekannten Umgebungen orientieren und Hindernissen ausweichen zu können. Dafür kommen immer häufiger Kamerasysteme, insbesondere
Stereokameras, zum Einsatz, die eine optische Navigation ermöglichen.
Im Rahmen dieser Bachelorarbeit wird ein Verfahren zur Gewinnung dreidimensionaler Vektordaten zur Bestimmung des optischen Flusses mithilfe von Stereokameras entwickelt und getestet.
Um dies zu erreichen, werden über die Zeit homologe Punkte in beiden Kamerabildern detektiert
und verfolgt. Die durch stereoskopische Betrachtung ermittelten dreidimensionalen Positionen
und Bewegungsvektoren können dann zur relativen Bewegungsschätzung des Fluggeräts oder
in weiteren Anwendungen zur Generierung einer Umgebungskarte genutzt werden.
Die Ergebnisse des Verfahrens werden an Testdaten aus Flugversuchen und mit bekannten und
vermessenen Objekten getestet.
Abstract
Nowadays, unmanned aerial vehicles (UAV) are used in many scenarios. Since a collision or
even a crash would be fatal, it is important for a UAV to be able to navigate even in an
unknown environment. To achieve this, camera systems, especially stereo camera systems can
be used to optain an optical navigation solution.
This bachelor thesis’ goal is to develop an algorithm to detect and track homologous points in
a stereo image series over time. Using stereo-geometric calculations it is possible to calculate
the position of those features in three-dimensional space. These points and vectors can be
used to calculate relative position changes of the vehicle itself or in further projects to create
an obstacle map of the environment.
The results are validated using image data from a manual flight test on measured reference
objects.
Inhaltsverzeichnis
Abbildungsverzeichnis
vi
Tabellenverzeichnis
viii
Abkürzungsverzeichnis
ix
1 Einleitung
1.1 Zielsetzung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.2 Versuchsträger ARTIS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.3 Aufbau der Arbeit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1
1
2
4
2 Grundlagen
2.1 Lochkameramodell . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.2 Gewinnung von 3D-Informationen aus Stereobilddaten . . . . . . . .
2.2.1 Epipolargeometrie . . . . . . . . . . . . . . . . . . . . . . .
2.2.2 Standard-stereoskopischer Kameraaufbau . . . . . . . . . .
2.3 Kameraparameter . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.3.1 Linsenverzeichnung . . . . . . . . . . . . . . . . . . . . . .
2.3.2 Rektifizierung . . . . . . . . . . . . . . . . . . . . . . . . .
2.4 Stand der Forschung . . . . . . . . . . . . . . . . . . . . . . . . . .
2.4.1 Rekonstruktion von Raumpunkten aus Kamerabildern . . . .
2.4.2 Berechnung der relativen Eigenbewegung . . . . . . . . . .
2.5 Tracking und Stereo-Matching mittels eines Lucas-Kanade-Trackers
3 Implementierung
3.1 DIP-Framework . . . . . . . . . . . . . . .
3.2 Erkennen und Verfolgen markanter Punkte .
3.3 Stereo-Matching homologer Bildpunkte . .
3.3.1 Finden korrespondierender Punkte in
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
Stereobildpaaren
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
5
5
7
8
9
11
11
12
14
14
15
16
.
.
.
.
19
19
22
24
24
iv
Inhaltsverzeichnis
3.4
3.5
3.3.2 Kontrolltracking im rechten Bildverlauf . . .
Koordinatentransformation und Filterung . . . . . .
Berechnung der Eigenbewegung . . . . . . . . . . .
3.5.1 Bestimmung der relativen Kamerabewegung
3.5.2 Rekonstruktion der Flugbahn . . . . . . . .
v
. . . . .
. . . . .
. . . . .
zwischen
. . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
zwei Zeitschritten
. . . . . . . . .
4 Evaluierung des Verfahrens
4.1 Auswertung von Flugversuchsdaten . . . . . . . . . . . . . . . . . . . . .
4.1.1 Stereobilddaten aus Kamerafahrt an einem Rollwagen . . . . . . .
4.1.2 Trageversuch mit Landmarken und nach vorne gerichteter Kamera
4.1.3 Flugversuch mit nach unten gerichteter Kamera . . . . . . . . . .
4.2 Landmarkenvermessung mit Hilfe eines Tachymeters . . . . . . . . . . . .
4.3 Genauigkeitsüberprüfungen an Referenzmessungen . . . . . . . . . . . . .
4.4 Bestimmung der Eigenbewegung und Vergleich mit Navigationsdaten . .
26
27
30
30
31
.
.
.
.
.
.
.
34
34
34
35
37
38
39
45
5 Zusammenfassung
5.1 Verfahren im Überblick . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.2 Ausblick auf zukünftige Arbeiten . . . . . . . . . . . . . . . . . . . . . . . .
52
52
53
Literaturverzeichnis
55
.
.
.
.
.
.
.
Abbildungsverzeichnis
1.1
1.2
Versuchsträger midiARTIS im Flugversuch . . . . . . . . . . . . . . . . . . .
Aufbau des midiARTIS-Hubschraubers mit den wichtigsten Komponenten . .
2.1
2.2
2.3
2.4
2.5
2.6
2.7
Zentralprojektion . . . . . . . . . . . . . . . . . . . . .
Herleitung der Zentralprojektion per Strahlensatz . . . .
Schematischer Aufbau der Epipolargeometrie . . . . . . .
Achsparalleler standard-stereoskopischer Aufbau . . . . .
Entfernungsauflösung mit Stereokamera . . . . . . . . .
Transformation zweier Kamerabilder zur Stereoanalyse .
Featuretracking und Korrespondenzsuche in Stereobildern
.
.
.
.
.
.
.
.
.
.
.
.
.
.
6
6
8
9
10
13
18
3.1
3.2
3.3
3.4
3.5
3.6
3.7
3.8
3.9
3.10
DIP-Framework in Simulation und Flug . . . . . . . . . . . . . . . . . . .
SPICE-Benutzerschnittstelle . . . . . . . . . . . . . . . . . . . . . . . . . .
Filter-Pipeline im Experimentalcommander . . . . . . . . . . . . . . . . . .
Einstellungsfenster der cl_FeatureTracker Klasse . . . . . . . . . . . . . . .
Verfolgte Punkte im Kamerabild . . . . . . . . . . . . . . . . . . . . . . .
Einstellungsfenster des entwickelten TrackedObjectsFilters . . . . . . . . .
Stereo-Feature-Tracking: Verfolgte Punkte und Korrespondenzen . . . . . .
Trackingbestätigung durch zeitliches Tracking in den rechten Kamerabildern
Abweichung der vertikalen Disparität dy nach Entzerrung und Rektifizierung
Verwendete Koordinatensysteme . . . . . . . . . . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
20
21
22
23
23
24
26
27
29
32
4.1
4.2
4.3
4.4
4.5
4.6
4.7
Korrespondierende Punkte im Bilddatensatz der Kamerafahrt . . . . .
Korrespondierende Punkte im Bilddatensatz des Trageversuchs . . . .
Korrespondierende Punkte im Bilddatensatz des Flugversuchs . . . . .
Tachymeter Leica Viva TS15 zur Vermessung der Landmarken . . . .
Entfernungsschätzung durch optische Analyse - Datensatz 1 . . . . .
Entfernungsschätzung durch optische Analyse - Datensatz 2 . . . . .
Vergleich der x-Position - optische Navigation und Navigationslösung
.
.
.
.
.
.
.
35
36
38
39
41
43
46
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
2
3
vi
Abbildungsverzeichnis
4.8 Vergleich der y-Position - optische Navigation und Navigationslösung . . . .
4.9 Vergleich der Flughöhe - optische Navigation und Navigationslösung . . . . .
4.10 Vergleich der Trajektorie aus Navigationslösung und optischer Navigation aus
Sicht von oben . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.11 Vergleich x-Position aus Nav-Lösung und optischer Navigation mittels TransformationEstimationSVD . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.12 Vergleich y-Position aus Nav-Lösung und optischer Navigation mittels TransformationEstimationSVD . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.13 Vergleich Flughöhe aus Nav-Lösung und optischer Navigation mittels TransformationEstimationSVD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
vii
47
48
48
49
50
50
Tabellenverzeichnis
1.1
1.2
Technische Daten des midiARTIS Flugversuchsträgers . . . . . . . . . . . . .
Parameter der verwendeten Stereokamera . . . . . . . . . . . . . . . . . . .
3
4
2.1
Intrinsische Kameraparameter . . . . . . . . . . . . . . . . . . . . . . . . . .
11
3.1
Geeignete Parameter zum Stereo-Feature-Tracking . . . . . . . . . . . . . .
25
4.1
4.2
Werte der Landmarkenvermessung des TrackedObjectFilters zu Datensatz 1 .
Werte der Landmarkenvermessung des TrackedObjectFilters zu Datensatz 2 .
42
44
viii
Abkürzungsverzeichnis
ARTIS
Autonomous Rotorcraft Testbed for Intelligent Systems
DIP
Digital Image Processing Framework
ICP
Iterative Closest Point
IMU
Inertial Measurement Unit, Inertialsensorik
OBDIP
OnBoard DIP
OGDIP
OnGround DIP
OpenCV
Open Computer Vision Library
RANSAC
Random Sample Consensus
SPICE
Smart Program for Image Computing Experiments
SVD
Singular Value Decomposition
UAV
Unmanned Aerial Vehicle, Unbemanntes Luftfahrzeug
KAPITEL
1
Einleitung
Der Einsatz unbemannter Luftfahrzeuge stößt heutzutage in vielen Bereichen von Wirtschaft
und Forschung auf großes Interesse. So lassen sich unbemannte Luftfahrzeuge in vielen Szenarien
einsetzen, sei es zur Erkundung unwegsamen Geländes oder zukünftig sogar zur Unterstützung
bei der Bergung von Menschen, beispielsweise bei Katastropheneinsätzen.
Dabei steht auch besonders der Wunsch des autonomen Handelns der Luftfahrzeuge im Vordergrund, also das selbständige Fliegen und Ausführen von Aufgaben ohne direkte menschliche
Kontrolle oder Steuerung. Um dies zu erreichen, sind moderne autonome, unbemannte Luftfahrzeuge häufig mit verschiedensten Sensoren ausgerüstet, zum Beispiel GPS, Radar, Laserscanner
oder Kamerasysteme.
Da insbesondere Sensoren wie GPS, welche Informationen von Satelliten empfangen müssen,
unter gewissen Umständen gestört werden oder der Empfang ausfallen kann, rückt der Einsatz
von Kamerasystemen zur optischen Navigation immer stärker in den Fokus.
1.1 Zielsetzung
Ziel dieser Arbeit ist die Entwicklung eines Verfahrens zur Gewinnung von räumlichen Positionsinformationen verfolgter markanter Objekte (Features) auf Basis von Stereobilddaten. Dazu
sollen in den Kamerabildern gut verfolgbare Merkmale bestimmt und deren Position im anderen Stereobild ermittelt werden. Anhand dieser Bildpositionen kann über stereogeometrische
Berechnungen die Position dieser Punkte im Raum rekonstruiert werden.
1
1.2 Versuchsträger ARTIS
2
Die so ermittelten Punktdaten sind vielfältig einsetzbar und können beispielsweise zur sichtgestützten Navigation (visuelle Odometrie) oder zur Erstellung von Umgebungskarten zum
Erkennen und Ausweichen von Hindernissen genutzt werden.
In dieser Arbeit sollen die zu jedem Zeitschritt ermittelten 3D-Punktmengen dazu dienen,
relative Bewegungsänderungen zu bestimmen und mit der durch GPS und IMU ermittelten
Navigationslösung zu vergleichen. Um die Richtigkeit der ermittelten Werte zu zeigen, sollen die
berechneten Raumpunkte mit aufgenommenen, vermessenen Landmarken verglichen werden.
1.2 Versuchsträger ARTIS
Das Institut für Flugsystemtechnik des Deutschen Zentrums für Luft- und Raumfahrt (DLR) in
Braunschweig verfügt mit der ARTIS-Reihe über eine Flotte von Hubschraubern verschiedener
Größenordnungen. Diese sind mit Sensoren und Computern ausgestattet, um unterschiedliche
Szenarien autonom fliegender Luftfahrzeuge (UAV) sowohl in der Simulation als auch im
Flugversuch testen zu können.
Abb. 1.1: Versuchsträger midiARTIS im Flugversuch
Abbildung 1.1 zeigt den für diese Arbeit verwendeten Hubschrauber midiARTIS (technische
Daten siehe Tabelle 1.1) im Flug. Abbildung 1.2 zeigt den modularen Aufbau des Fluggeräts.
Der Hubschrauber kann je nach Versuchsszenario mit verschiedenen Kameras an der Vorder-
1.2 Versuchsträger ARTIS
3
seite ausgerüstet werden. Dafür stehen sowohl Mono-, Stereo- oder Infrarotkameras sowie
ein Laserscanner zur Verfügung. Für die Aufnahme von Videodaten für diese Arbeit wurde
der Hubschrauber mit einer zum Boden gerichteten Stereokamera der Firma Videre-Design
ausgestattet. Die genauen Kameraspezifikationen können der Tabelle 1.2 entnommen werden.
Für die Bildverarbeitungsprozesse steht im midiARTIS ein eigener Rechner zur Verfügung,
welcher sich lediglich mit dem Aufzeichnen und Auswerten der Daten aus den optischen
Sensoren beschäftigt. Über ein LAN-Interface kann der Bildverarbeitungsrechner mit dem
Flugrechner kommunizieren und beispielsweise gewonnene Informationen aus Bildern dort in
die Navigation oder Missionsplanung einfließen lassen.
Die von den Kameras aufgezeichneten Bilddaten können dabei für das autonome Fliegen direkt
an Bord des Hubschraubers im Bildverarbeitungsrechner ausgewertet und genutzt werden oder
für eine Bearbeitung in der Simulation oder die Entwicklung neuer Verfahren gespeichert und
später verarbeitet werden.
GPS-Antenne Prisma Magnetometer
Freewave-Antenne WLAN
Sonar
Stromversorgung
Stereokamera
IMU/GPS/Telemetrie
Bildverarbeitungsrechner
Flugsteuerrechner
Abb. 1.2: Aufbau des midiARTIS-Hubschraubers mit den wichtigsten Komponenten
Tab. 1.1: Technische Daten des midiARTIS Flugversuchsträgers
Rotorkreisdurchmesser
1,9 m
Rotordrehzahl
25 Hz
Antrieb
1,5 kW Verbrennungsmotor
Leermasse
6 kg
Max. Abflugmasse
12 kg
Flugsteuerrechner
Intel P4 1,4 GHz, QNX Neutrino OS
Bildverarbeitungsrechner
Intel Core2Duo 1,5 GHz, Linux OS
1.3 Aufbau der Arbeit
4
Tab. 1.2: Parameter der verwendeten Stereokamera
Hersteller/Typ
Videre Design STOC
Bildgröße
640 px × 480 px
Bildfrequenz
30 Hz
Brennweite
700 px
Basisabstand
30 cm
Neben den Bilddaten der Kameras kann der midiARTIS-Hubschrauber auch Daten des GPSSensors, der Inertialsensorik (IMU) oder eine daraus gefilterte Navigationslösung aufzeichnen,
um Berechnungen an den Bildern auch in Bezug auf das geodätische sowie das Weltkoordinatensystem durchführen zu können.
1.3 Aufbau der Arbeit
Im folgenden Kapitel wird der grundlegende Aufbau stereogeometrischer Kamerasysteme sowie
die wichtigsten Berechnungsverfahren vorgestellt und erläutert. Dazu sollen die Grundlagen
optischer Abbildungen auf eine oder mehrere Kameras erläutert werden, um einen Einblick
in die Funktionsweise und typischen Charakteristiken von Stereokamerasystemen zu liefern.
Außerdem wird dort ein Überblick über den aktuellen Stand der Forschung gegeben. Ausgehend
aus den Anforderungen und den Erkenntnissen aus bisherigen Forschungsarbeiten wird dann
der entwickelte eigene Ansatz kurz erläutert.
Kapitel 3 soll einen tieferen Einblick in die Implementierung des geplanten Verfahrens bieten.
Dazu wird eine grundlegende Übersicht über das verwendete Entwicklungsframework gegeben
sowie die Integration des neuen Verfahrens in das System beschrieben. Des Weiteren wird in
dem Kapitel das genaue Vorgehen zum Verfolgen markanter Punkte und die Rekonstruktion
der Raumpunkte beschrieben.
In Kapitel 4 werden die zur Verfügung stehenden Videodaten analysiert und die Ergebnisse
des Verfahrens an Referenzwerten ausgewertet. Anschließend wird das Thema in Kapitel 5
zusammengefasst und ein Ausblick auf weitere Arbeiten gegeben.
KAPITEL
2
Grundlagen
In diesem Kapitel wird ein grundlegender Einblick in optische Abbildungen durch Kameras
gegeben. Dabei werden die mathematischen Grundlagen von Projektionen auf Kameras und
auch die geometrischen Zusammenhänge in Stereokameras erläutert, sowie die Eigenschaften
realer Kamerasysteme näher gebracht. Des Weiteren wird ein Überblick über bestehende
Forschungsarbeiten auf diesem Gebiet sowie über das entwickelte Verfahren gegeben.
2.1 Lochkameramodell
Um geometrische Betrachtungen an Kamerasystemen durchzuführen, wird normalerweise
von dem vereinfachten Lochkameramodell ausgegangen, da somit Punkte im dreidimensionalen Raum durch einfache geometrische Projektionen auf eine Bildebene abgebildet werden
können.
Das Lochkameramodell beschreibt dabei eine projektive Abbildung von Punkten aus dem
sichtbaren Bereich des dreidimensionalen Raums R3 durch ein projektives Zentrum c auf eine
projektive Bildebene B des Raums R2 , wobei c nicht auf B liegen darf [Fau95]. Der Abstand
von Projektionszentrum und Bildebene wird dabei als Brennweite f bezeichnet.
5
2.1 Lochkameramodell
6
zc
pc (xc ,yc ,zc )
c
q(x,y)
xc
f
yc
Abb. 2.1: Zentralprojektion
Abbildung 2.1 veranschaulicht die Zentralprojektion als skalierte, gespiegelte Projektion von
Objektpunkten auf die Bildebene. Ein Punkt pc = (xc ,yc ,zc )T wird dabei wie in Abbildung 2.2
mittels
xc yc T
T
(xc , yc , zc ) 7→ f ,f
(2.1)
zc zc
auf einen Punkt qc der Bildebene abgebildet [HZ04, S. 153ff]. In homogenen Koordinaten
ausgedrückt entspricht diese projektive Transformation einer Multiplikation mit der so genannten
Projektionsmatrix P
 
 
 xc

 
xc
f xc
f 0 0 0  
y 
 c

 
  yc 
(2.2)
  7→  f yc  =  0 f 0 0  
 zc 
 zc 
0 0 1 0
zc
1
1
zqc = Ppc
(2.3)
qc = (xc /z , yc /z)T .
(2.4)
y
Bildebene
zc
yc
c
z
y0
f
Abb. 2.2: Herleitung der Zentralprojektion - Es gilt: y 0 = f yzcc (analoges gilt in x-Richtung)
2.2 Gewinnung von 3D-Informationen aus Stereobilddaten
7
Da üblicherweise der Ursprung des Bildkoordinatensystems nicht mit dem Durchstoßpunkt der
optischen Achse übereinstimmt, muss zur Transformation der Punkte von Sensorkoordinaten
in Bildkoordinaten, der so genannten inneren Transformation, um den Bildhauptpunkt (x0 ,y0 )
verschoben werden. Des Weiteren werden oftmals unterschiedliche horizontale und vertikale
Brennweiten (fx , fy ) verwendet, wenn die Einheiten in x- und y-Richtung unterschiedliche Größen haben [And11], sowie eventuell eine Scherung s des Bildsensors, falls die Sensorachsen nicht
orthogonal sind. Diese Parameter können somit zur intrinsischen Kamerakalibrierungsmatrix K
zusammengefasst werden mit der Form


fx s x0


K =  0 fy y0  .
0 0 1
(2.5)
Gleichzeitig ist es durch diese Transformationsvorschrift auch umgekehrt möglich, die eigentlichen Bildkoordinaten zu normieren. Dabei kann man dann von einer Projektion mit der
Brennweite f = 1 und dem Bildhauptpunkt (0,0) rechnen.
Um die Raumposition eines Punktes nicht nur in Bezug auf die Kamera sondern auch auf
das Weltkoordinatensystem zu bestimmen, muss in der so genannten externen Transformation
auch die Translation t und Rotation R der Kamera selbst beachtet werden. Die externe
Transformation pc = R pw + t kann dabei in die gesamte Transformation integriert werden.
Somit kann man durch
zqc = K [R|t] pw
(2.6)
einen Raumpunkt in Weltkoordinaten auf einen Bildpunkt abbilden.
Bei der Abbildung von Raumpunkten auf eine Bildebene geht allerdings immer eine Dimension
verloren. Somit ist es auch trotz der Kameraparameter nicht möglich, aus einem einzelnen Bildpunkt q(x,y) den ursprünglichen Punkt in R3 ohne weitere Informationen zu rekonstruieren.
2.2 Gewinnung von 3D-Informationen aus Stereobilddaten
Um die bei der Projektion auf die Kamerabildebene verlorene Tiefeninformation von Raumpunkten rekonstruieren zu können, werden häufig Stereokameras eingesetzt. Bei solchen
Kamerasystemen wird der (annähernd) gleiche Bereich von mehreren Kameras aufgenommen,
was zusätzliche Informationen liefert und die Rekonstruktion der Punkte im Raum ermöglicht.
2.2 Gewinnung von 3D-Informationen aus Stereobilddaten
8
2.2.1 Epipolargeometrie
Mathematisch beschrieben werden diese geometrischen Beziehungen durch die so genannte
Epipolargeometrie [Luh00]. Abbildung 2.3 zeigt eine schematische Darstellung, welche die
Epipolargeometrie mit zwei Kameras beschreibt. Ein Punkt pw wird dabei im linken Bild auf
den Bildpunkt ql und im rechten Bild auf qr abgebildet. Betrachtet man nun einen weiteren
Punkt p̂w , welcher auf der Geraden pw cl liegt, so wird deutlich, dass dieser im linken Bild
ebenso auf ql abgebildet wird, im rechten Bild allerdings auf einen anderen Punkt q̂r .
E
pw
p̂w
ql
l1
cl
zl
yl
el
er
q̂r qr l2
zr
xl
xr
cr
yr
R, t
Abb. 2.3: Schematischer Aufbau der Epipolargeometrie
Allgemein gilt dabei, dass die Linie pw cl im rechten Bild auf die Gerade er qr abgebildet wird
sowie äquivalent die Linie pw cr auf die Gerade el ql . Das sind die so genannten Epipolarlinien.
Die Punkte el und er werden als Epipole bezeichnet. Die Punkte cl , cr und pw spannen
die Epipolarebene E des Punkts pw auf. Alle Punkte dieser Ebene werden auf die gleichen
Epipolarlinien abgebildet.
Die geometrischen Beziehungen der Punkte im Stereofall spiegeln sich in der so genannten
3 × 3-Essentialmatrix E und der 3 × 3-Fundamentalmatrix F wieder [Fau93; Lon87; Zha98].
An den verwendeten Kamerasystemen können diese durch die Kamerakalibrierung ermittelt
werden.
Durch diese Information vereinfacht sich das 2D-Korrespondenzproblem auf die Suche nach den
korrespondierenden Features entlang der Epipolarlinie. Um diesen Vorteil möglichst einfach auch
am Rechner nutzen zu können, wird mit Hilfe der Rektifizierung eine Art virtuelles achsparalleles
Stereosystem erzeugt [AH88; TV98]. Sind die intrinsischen und extrinsischen Parameter der
Kamera bekannt, können die beiden Stereobilder derart auf eine gleiche Bildebene rückprojiziert
werden, dass alle Epipolarlinien horizontal verlaufen und korrespondierende Punkte fortan auf
2.2 Gewinnung von 3D-Informationen aus Stereobilddaten
9
der gleichen Bildzeile liegen. Man spricht dann von einem standard-stereoskopischen Aufbau.
Die Rektifizierung und Entzerrung der Bildpunkte wird in Abschnitt 2.3 näher erläutert.
2.2.2 Standard-stereoskopischer Kameraaufbau
Projektionslinie cl pc verschoben um b
pc (xc ,yc ,zc )
zc
zc
cl
d
ql (xl ,yl )
f
qr (xr ,yr )
yc
xc
b
cr
f
yc
xc
qr (xr ,yr )
Abb. 2.4: Achsparalleler standard-stereoskopischer Aufbau
Abbildung 2.4 zeigt den standard-stereoskopischen Aufbau mit zwei parallel ausgerichteten
Kameras. Die zwei Projektionsstrahlen zeigen dabei, wie ein Raumpunkt pc über die beiden
Projektionszentren cl und cr auf zwei Bildpunkte ql und qr der beiden Bildebenen abgebildet
wird.
Der Projektionsstrahl des Punkts pc auf das rechte Bild sowie der Bildpunkt qr wird in der Grafik
auch um den Basisabstand b auf das linke Bild verschoben dargestellt, um den Zusammenhang
der beiden Bildpunkte zu verdeutlichen. Da sich beim standard-stereoskopischen Fall beide
Bildpunkte auf der gleichen Bildzeile befinden, existiert zwischen ihnen nur ein horizontaler
Abstand d (Disparität). Somit lässt sich die Abbildung durch ein einfaches Strahlensatzproblem
beschreiben und da sowohl Basisabstand b, Brennweite f und die Disparität d bekannt sind,
ist auch die Bestimmung des Tiefenwerts (z-Richtung) möglich.
2.2 Gewinnung von 3D-Informationen aus Stereobilddaten
10
Relativ zum linken Kamerakoordinatensystem gilt dabei
(xl − x0 )
f
(yl − y0 )
yc = zc ·
f
bf
zc =
.
d
(2.7a)
x c = zc ·
(2.7b)
(2.7c)
Aufgrund der diskreten Natur der Pixel digitaler Kameras ist das Finden zusammengehörender
Merkmale in beiden Bildern, und somit die Berechnung der Disparität, immer mit einer
gewissen Ungenauigkeit verbunden. Allerdings liegt dieser Fehler bei modernen Algorithmen
dank Interpolation im Subpixelbereich. Als realistische Werte gelten ∆d = 0,25 px [Wil98]
oder ∆d = 0,5 px [SS02]. Bei zunehmender Entfernung des Punkts wird die Disparität deutlich
kleiner und die Ungenauigkeit der Tiefenwerte nimmt zu
zc
f
zc
∆yc = ∆d
f
zc2
∆zc = ∆d .
bf
(2.8a)
∆xc = ∆d
(2.8b)
(2.8c)
Gleichung 2.8c zeigt, dass die Ungenauigkeit der Tiefe quadratisch zunimmt [And11, S. 30],
wie in Abbildung 2.5 dargestellt. Aufgrund der stark zunehmenden Ungenauigkeit bei höherer
Tiefe sollten zu weit entfernte Punkte verworfen werden. Welche Grenzwerte dabei gewählt
werden, hängt von der verwendeten Stereokamera ab. Für die verwendete Kamera wurde als
Grenzwert zmax = 45 m gewählt, da die Tiefenungenauigkeit bei ∆d = 0,5 px dort bereits
knapp 5 m beträgt.
6
∆zc [m]
5
4
3
2
1
0
0
10
20
30
40
50
zc [m]
Abb. 2.5: Entfernungsauflösung mit Stereokamera: b = 0,3 m, f = 700 px, ∆d = 0,5 px
(durchgezogene Linie), ∆d = 0,25 px (gestrichelte Linie)
2.3 Kameraparameter
11
2.3 Kameraparameter
Zwar lassen sich anhand des Lochkameramodells die generellen geometrischen Betrachtungen
durchführen, allerdings verhalten sich reale Kameras nicht wie dieses optimale Modell. Aufgrund
der verwendeten Linsen kommt es, insbesondere bei Linsen mit niedriger Brennweite, zu einer
Verzeichnung des Bilds. Des Weiteren müssen spezielle Kameraeigenschaften wie unterschiedliche horizontale und vertikale Brennweiten oder ein leicht zur Bildmitte verschobenes optisches
Zentrum betrachtet werden.
Um also in praktischen Anwendungen genaue Ergebnisse zu erhalten, müssen verschiedene
Parameter des Kamerasystems durch eine Kalibrierung ermittelt werden. Das verwendete
Stereokamerasystem der Firma Videre Design verfügt dazu über Tools [SRI08], welche anhand
einer Reihe von Aufnahmen eines Kalibrierungsmusters in verschiedenen Positionen des Bilds die
intrinsischen und extrinsischen Parameter der Kamera ermitteln können. Für die intrinsischen
Kameraparameter (siehe Tabelle 2.1) wird dabei das Modell von Brown [Bro71] verwendet.
Tab. 2.1: Intrinsische Kameraparameter
(x0 , y0 )
Kamerazentrum (px)
fx , fy
horizontale und vertikale Brennweite (px)
κ1 , κ2 , κ3
Radiale Verzerrungsparameter
τ1 , τ2
Tangentiale Verzerrungsparameter
2.3.1 Linsenverzeichnung
Um für die Stereobetrachtung genaue Werte zu haben, muss besonders die Linsenverzerrung
der Kameras berücksichtigt werden. [Bro71] und [TV98] beschreiben die radiale Verzeichnung
eines Punkts qu (xu ,yu ) zu einem Punkt qd (xd ,yd ) in normierten Koordinaten mit
xd = xu (1 + κ1 r2 + κ2 r4 + κ3 r6 ) + dx
2
4
6
yd = yu (1 + κ1 r + κ2 r + κ3 r ) + dy
(2.9a)
(2.9b)
und r2 = x2d + yd2 . Der Grad der Verzerrung wird mit κ1 , κ2 und κ3 angegeben. dx und dy
spiegeln dabei die tangentiale Verzeichnung wider
dx = 2τ1 xu yu + τ2 (r2 + 2x2u )
(2.10a)
dy = 2τ2 xu yu + τ1 (r2 + 2yu2 ).
(2.10b)
2.3 Kameraparameter
12
Neben der radialen und tangentialen Verzerrung ermittelt das Kalibrierungswerkzeug auch die
manchmal leicht unterschiedlichen horizontalen und vertikalen Brennweiten der Kamera sowie
die Position des Kamerazentrums im Bild [SRI08].
2.3.2 Rektifizierung
Sind die relativen Orientierungen der Stereokameras zueinander bekannt, werden bei der
Kalibrierung außerdem die 3 × 4-Projektionsmatrix P sowie eine 3 × 3-Rektifizierungsmatrix
R bestimmt. Mit Hilfe der Rektifizierungsmatrix kann ein entzerrter Bildpunkt qd (xd ,yd ) so
transformiert werden, wie er im rektifizierten Kamerabild liegt.
Liegt die Projektionsmatrix P1 (hier am Beispiel der linken Kamera) in der Form


p11 p12 p13 p14


p21 p22 p23 p24 
p31 p32 p33 p34
(2.11)
vor, mit den Zeilen pj = (pj1 , pj2 , pj3 ) (die vierte Spalte wird dabei nicht betrachtet) und
den Kamerazentren c1 und c2 , so wird die Rektifizierungmatrix durch
((c1 × c2 ) × c1 )T


R1 = 
(c1 × c2 )T
 p2 × p3 p3 × p1 p1 × p2
((c1 − c2 ) × (c2 × c1 ))T


(2.12)
beschrieben [And06]. Gleiches gilt für die Rektifizierungsmatrix R2 der rechten Kamera, welche
aus der Projektionsmatrix P2 gebildet werden kann.
Zwei Bildpunkte q1 = (x1 ,y1 )T und q2 = (x2 ,y2 )T können dann durch Multiplikation der
jeweiligen Rektifizierungsmatrix in ihre rektifizierten Bildpunkte transformiert werden:








u1
u2
x2
x1
 
 
 
 
 v1  = R1  y1  und  v2  = R2  y2  .
w1
1
w2
1
(2.13)
Die rektifizierten Bildkoordinaten sind dann
q10
=
x01
y10
!
=
u1 /w1
v1 /w1
!
und
q20
=
x02
y20
!
!
=
u2 /w2
.
v2 /w2
(2.14)
2.3 Kameraparameter
13
Anhand dieser Gleichungen lässt sich die komplette Verarbeitung der von den Kameras aufgezeichneten Punkten beschreiben. Die Punkte in Pixelkoordinaten werden normiert, entzerrt und
rektifiziert. Anhand dieser Punkte können dann stereogeometrische Betrachtungen durchgeführt
werden und der ursprünglich von den Kameras aufgezeichnete Raumpunkt rekonstruiert werden.
Abbildung 2.6 zeigt das Schema der Verarbeitung der Bildpunkte der beiden Kameras.
Raumpunkt
p = (x,y,z)T
Bildpunkt links
(Pixelkoordinaten)
q1 = (x1 , y1 )T
Bildpunkt rechts
(Pixelkoordinaten)
q2 = (x2 , y2 )T
Kameramatrix
Kameramatrix
Verzeichnungskorrektur
Verzeichnungskorrektur
Rektifizierung
Rektifizerung
Bildpunkt
(normierte
Koordinaten)
q10 = (x01 , y10 )T
Bildpunkt
(normierte
Koordinaten)
q20 = (x02 , y20 )T
Stereo-Matching
und
Raumpunktberechnung
Rekonstruierter
Raumpunkt
p0 = (x,y,z)T
Abb. 2.6: Transformation zweier Kamerabilder zur Stereoanalyse
2.4 Stand der Forschung
14
2.4 Stand der Forschung
Verfahren zur Verfolgung markanter Punkte in Bildsequenzen sowie die Berechnung des
optischen Flusses oder der Eigenbewegung spielen zunehmend in immer mehr Bereichen eine
Rolle. So werden in den verschiedensten Bereichen der Forschung Verfahren zur Auswertung
von Bildern mit dem Ziel der Gewinnung von Tiefenwerten entwickelt. Diese können sowohl
auf Mono-, Stereo- oder gar Multikamerasystemen basieren oder Tiefeninformationen durch
andere Sensoren nutzen.
2.4.1 Rekonstruktion von Raumpunkten aus Kamerabildern
Für die Untersuchung von Stereobildern oder allgemein die Rekonstruktion von Tiefenwerten
wurden dabei je nach Anwendungsfall verschiedene Verfahren entwickelt, um korrespondierende
Punkte in Stereobildern zu finden. Auch für die Berechnung der Eigenbewegung existieren
mehrere bekannte und zuverlässige Verfahren, die anhand von Punktdaten aus Bildern die
Kamerabewegung bestimmen können.
Bei den Anwendungen, die auf Monokameras und zusätzlichen Sensoren basieren, ist insbesondere die Arbeit von Kanade, Amidi und Ke [KAK04] zu nennen. Darin werden zur optischen
Navigation eines autonomen Kleinhubschraubers mit Hilfe eines Lucas-Kanade-Trackers markante Punkte in einem Monokamerabild verfolgt und die Tiefe anhand von Daten eines Lasersensors
bestimmt. Die so gewonnenen Raumpunkte dienen dann der Bewegungsschätzung und dem
Mapping der Umgebung.
Aufgrund ihres relativ günstigen Preises und dem Vorteil eines rein passiven Verfahrens (also
ohne Aussenden eigener Signale, wie bei Radar oder Laser) verwenden viele Forschungsarbeiten
Stereokamerasysteme für die Rekonstruktion von Raumpunkten oder die optische Navigation.
Viele Arbeiten haben dazu das Ziel, Tiefenkarten (Disparity Maps) der gefilmten Umgebung
zu erzeugen, also Bilder, welche anstelle der Farbwerte die Entfernung des Bildpunkts zum
Kamerasensor codieren. Ein allgemeiner Algorithmus zur Berechnung einer Dense Disparity
Map wird in [Fua93] gegeben. Konolige [Kon97] nutzt dazu die so genannte Area Correlation
an einer kalibrierten Stereokamera zur Generierung von Tiefenkarten für das SRI Small Vision
System. Agrawal, Konolige und Iocchi [AKI05] nutzen generierte Tiefenkarten aus Stereobildern,
um die Bewegung einzelner, sich unabhängig bewegender Objekte zu bestimmen.
Auch die Arbeit von Hirschmüller, Innocent und Garibaldi [HIG02a] zielt auf die Generierung
einer dichten Tiefenkarte mittels kalibrierter Stereokameras ab. Dazu wird die so genannte
2.4 Stand der Forschung
15
Sum-of-Absolute-Differences-Korrelation auf rektifizierten Kamerabildern angewendet. Um Unstetigkeiten in bestimmten Bildbereichen ausgleichen, werden weitere Nachverarbeitungsschritte
durchgeführt.
Generell basieren die meisten Arbeiten in dem Bereich auf rektifizierten Bildern, da auf diesen
effizient gerechnet werden kann und die Ergebnisse eine hohe Genauigkeit haben. Für die
Rektifizierung von Stereobildern existieren dementsprechend auch mehrere Verfahren, um die
Stereobilder so zu transformieren, dass diese dem standard-stereoskopischen Modell entsprechen.
Dabei sind insbesondere die Arbeiten von Ayache und Hansen [AH88], Trucco und Verri [TV98]
oder [SH10] zu nennen.
Die Arbeit von Andert [And06] nutzt das bereits von Konolige [Kon97] präsentierte Small
Vision System zur Erzeugung einer Tiefenkarte. Mit Hilfe dieser Tiefenkarte sollen am ARTISHubschrauber im Flug Objekte zur Kollisionsvermeidung detektiert werden. Das gleiche Verfahren zur Tiefenkartengenerierung wird auch von [Isl08] verwendet, um die Eigenbewegung
des Hubschraubers zu bestimmen.
Auch für die Anwendung in selbständig fahrenden Bodenfahrzeugen werden Stereokameras
eingesetzt. [NNB06] zeigen ein Verfahren, welches Mono- als auch Stereokameras für die
visuelle Odometrie einsetzen kann. Dabei werden über einen Harris-Detektor markante Punkte
gefunden und Korrespondenzen gesucht. Im Stereofall wird dazu erst ein grobes Matching
über einen bestimmten Bereich um das Feature durchgeführt und über eine genaue Korrespondenzsuche mittels normierter Kreuzkorrelation ausgewertet und verfeinert. Die so ermittelten
Daten dienen dabei zur Lokalisierung des autonomen Bodenfahrzeugs und der Schätzung der
Eigenbewegung.
Ein weiteres Verfahren zum 3D-Feature-Tracking mit parallel ausgerichteten Stereokameras
wird in [ZCL10] gegeben. Dort werden, ähnlich wie in dieser Arbeit präsentiert, Features im
linken Kamerabild gewählt und verfolgt und die entsprechenden korrespondierenden Punkte
im rechten Kamerabild gesucht. Dabei verwenden die Autoren für das zeitliche Tracken ein
Blockmatching-Verfahren in einem bestimmten Bildbereich. Für das Finden korrespondierender
Punkte im rechten Bild dient zur groben Lokalisierung der Bewegungsvektor des linken Bildes,
da die Bewegung der Features in beiden Kameras annähernd gleich sein sollte.
2.4.2 Berechnung der relativen Eigenbewegung
Auch für die Berechnung der Eigenbewegung aus den Kamerabildern gibt es verschiedene
Ansätze. Zu den gängigen Verfahren zählt beispielsweise das auch in dieser Arbeit verwendete
2.5 Tracking und Stereo-Matching mittels eines Lucas-Kanade-Trackers
16
Iterative Closest Point-Verfahren (ICP) nach [MS06] und [BM92]. Zur Berechnung der Bewegung wird dabei das Least Squares Fitting von [AHB87] genutzt. Um den ICP-Algorithmus
zur Bewegungsberechnung nutzen zu können, sollte eine geeignete Methode zum Ausfiltern
von Außenseitern verwendet werden, beispielsweise das RANSAC-Verfahren.
Ein alternativer Algorithmus zum Schätzen der Kamerabewegung mit Stereokameras wird in
[HIG02b] gegeben. Anstelle von statistischen Methoden wie etwa RANSAC zur Eliminierung
von Außenseitern wird dies durch ein zweiseitiges Tracking von Features gewährleistet, also dem
Suchen korrespondierender Punkte vom linken im rechten Bild sowie in die andere Richtung.
Stimmen die so gefundenen Korrespondenzen nicht überein, wird der Punkt verworfen. Zwar
kann es dadurch eine hohe Anzahl von Außenseitern geben, allerdings sind die verbleibenden
Features normalerweise von hoher Güte und eignen sich somit sehr gut für die Bestimmung
der relativen Kamerabewegung.
Die bisherigen Arbeiten zeigen, dass fast alle bekannten Forschungarbeiten, die Stereokameras zur 3D-Objektverfolgung nutzen, dies auf vorher rektifizierten Bilddaten oder durch
die Nutzung vorher generierter Tiefenkarten machen. Als Verfahren für das Tracking und
die Korrespondenzanalyse gibt es verschiedene Verfahren mit verschiedenen Vorteilen. Daher
liegt es nahe, zu untersuchen, ob ähnlich genaue Ergebnisse auch auf nicht vorher rektifizierten Bilddaten erreichbar sind mit dem Ziel, dies zur optischen Navigation eines autonomen
Kleinhubschraubers zu nutzen.
2.5 Tracking und Stereo-Matching mittels eines
Lucas-Kanade-Trackers
Der neue Ansatz hat das Ziel, eine Menge von räumlichen Punktkoordinaten markanter Features
im Kamerakoordinatensystem mit Hilfe einer Folge von Stereobilddaten zu rekonstruieren und
diese Punkte auch im zeitlichen Verlauf zu verfolgen. Dazu soll ein Algorithmus implementiert werden, welcher anhand der Disparität homologer Punkte in beiden Stereobildern die
Raumkoordinaten berechnen kann.
Um den Rechenaufwand zum Entzerren und Rektifizieren der Stereobilddaten gering zu halten,
wurde der Algorithmus für ungefilterte Bilddaten entwickelt. Zwar beschränkt sich dadurch die
Suche nach korrespondierenden Bildpunkten nicht nur auf eine Bildzeile, allerdings sind die
Versuchskameras von vornherein parallel ausgerichtet und verfügen über große gemeinsame
Bildbereiche, was den standard-stereoskopischen Fall zumindest annähert.
2.5 Tracking und Stereo-Matching mittels eines Lucas-Kanade-Trackers
17
Statt nun, wie in anderen Ansätzen üblich, korrespondierende Punkte in den Stereobildern
anhand rektifizierter Bilder zu suchen, wird im neuen Ansatz ein Lucas-Kanade-Tracker [LK81]
auf den ungefilterten, also nicht entzerrten und nicht rektifizierten, Bilddaten angewendet.
Um die Genauigkeit der Berechnungen zu gewährleisten, werden lediglich die erkannten FeaturePunkte entzerrt und mit Hilfe der Rektifizierungsmatrix aus der Kamerakalibrierung in ihre
rektifizierte Position transformiert.
Abbildung 2.7 zeigt die entwickelte Verarbeitungs-Pipeline der Bilder. In Schritt 1 (siehe
grüner Kreis) werden im linken Kamerabild markante Bildpunkte detektiert und in Schritt 2
mittels eines Lucas-Kanade-Trackers die korrespondierenden Bildpunkte im rechten Kamerabild
gesucht.
Entzerrt man nun zwei korrespondierende Punkte im linken und rechten Bild und rektifiziert
sie durch Multiplikation mit der jeweiligen Rektifizierungsmatrix, besteht zwischen beiden
Bildpunkten lediglich eine horizontale Disparität, siehe Schritt 3. Diese Disparitäten dienen
nun dazu, die Tiefenkoordinate des Bildpunktes bezüglich des Kamerakoordinatensystems der
linken Kamera zu bestimmen und somit den Raumpunkt zu rekonstruieren. Die so berechnete
Menge von Raumpunkten kann nun im Schritt 4 in eine so genannte TrackedObjectsList
gespeichert werden, welche dann weiterverwendet werden kann.
Zusätzlich zum Bestimmen der 3D-Punkte während eines Zeitschritts werden in Schritt 5 die
detektierten markanten Punkte über einen Lucas-Kanade-Tracker im linken Bild des Zeitschritts
t1 wiedergefunden. Zusätzlich ist eine Validierung dieses Trackings möglich, indem man auch
in den rechten Bilddaten im zeitlichen Verlauf die korrespondierenden Punkte verfolgt und die
Ergebnisse vergleicht, um Außenseiter eliminieren zu können.
Dieses Vorgehen wird dann in jedem Zeitschritt tn wiederholt. Durch die zeitliche Featureverfolgung aus Schritt 5 wird gewährleistet, dass die bestimmten Raumpunkte immer zum gleichen
Objekt gehören. Ist ein verfolgtes Feature bereits als TrackedObject in der Liste gespeichert,
wird dieses lediglich aktualisiert, sodass die aktuelle und die vorherige Raumposition gespeichert
wird. Da auch die Raumkoordinaten aus dem vorherigen Zeitschritt bekannt sind, verfügt man
ab dem zweiten Zeitschritt für ein verfolgtes Feature nicht nur über dessen räumliche Position,
sondern auch über die relative Bewegung innerhalb des letzten Zeitschritts.
2.5 Tracking und Stereo-Matching mittels eines Lucas-Kanade-Trackers
2
t0
1
18
Korrespondenzen finden
Linkes Bild
(ungefiltert)
Rechtes Bild
(ungefiltert)
Disparität bestimmen
3
4
5
t1
zeitliche
Featureverfolgung
TrackedObjectsList
Linkes Bild
(ungefiltert)
(optionaler)
Featurevergleich
Rechtes Bild
(ungefiltert)
TrackedObjectsList
t2
Linkes Bild
(ungefiltert)
Rechtes Bild
(ungefiltert)
TrackedObjectsList
Abb. 2.7: Featuretracking und Korrespondenzsuche in Stereobildern
KAPITEL
3
Implementierung
In diesem Kapitel wird näher auf die Umsetzung des beschriebenen Verfahrens eingegangen.
Dazu soll erst kurz die genutzte Test- und Entwicklungsumgebung erklärt und dann die
wichtigsten Bestandteile der Implementierung aufgeführt und beschrieben werden.
3.1 DIP-Framework
Für die Entwicklung und Simulation von bildverarbeitenden Verfahren steht in der Abteilung
für unbemannte Luftfahrzeuge des DLR ein eigens entwickeltes Framework zur Verfügung.
Dieses so genannte DIP-Framework ist in C++ geschrieben und ermöglicht die Nutzung
und Entwicklung vieler Bildverarbeitungsalgorithmen und anderer relevanter Verfahren. Das
Framework ist vielfältig sowohl direkt an Bord des Fluggeräts (OBDIP), an der mobilen
Bodenstation (OGDIP) oder durch die Benutzerschnittstelle SPICE [Goo04] [Gut04] nutzbar.
Abbildung 3.1 zeigt die Verbindung des DIP-Frameworks in der Testumgebung sowie im
Flug [And06]. Dabei verwenden sowohl SPICE als auch OBDIP die gleichen Algorithmen,
Bildverarbeitungsfilter und Schnittstellen.
19
3.1 DIP-Framework
20
L
L
SPICE
R
LAN
Simulation
OBDIP
Flugsteuerung
LAN
R
WLAN
Bedienung/Anzeige
OGDIP
Bedienung/Anzeige
Abb. 3.1: DIP-Framework für den Einsatz in der Simulations- und Testumgebung (links)
und im Flug (rechts)
Das SPICE-Programm (siehe Abbildung 3.2) ermöglicht dabei das Laden verschiedener Daten
wie Kamerabilder, Sensordaten oder der Navigationslösung sowie das synchronisierte Abspielen
der Daten, beispielsweise Bilddaten und Tiefenkarten oder Stereobilddaten. Zusätzlich zu den
Bilddaten steht auf Wunsch auch die aktuelle gemittelte und gefilterte Position und Ausrichtung
des Hubschraubers aus Daten des Flugrechners zur Verfügung, falls diese mit aufgezeichnet
wurden. Um die geladenen Daten zu verarbeiten, können verschiedene modularisierte Filter in
einer Verarbeitungspipeline kombiniert werden. Dafür stehen sowohl eigene Entwicklungen als
auch die freie OpenCV-Bibliothek zur Bildverarbeitung zur Verfügung.
Die Verarbeitung von Bild- und Sensordaten erfolgt dabei über so genannte Commander. Ein
Commander ist dabei eine Zusammenstellung verschiedener Algorithmen und Filter für eine
spezifische Aufgabe, beispielsweise die Generierung von Umgebungskarten, die Evaluierung der
Umgebung zur Kollisionsvermeidung oder für die Kalibrierung von Kameras. Dafür hat jeder
Commander im unteren Bereich der Benutzeroberfläche des SPICE-Programms einen Bereich
für eigene Kontroll- und Steuerelemente.
Besonders für die Entwicklung neuer Verfahren existiert ein so genannter Experimentalcommander. Statt einer Benutzeroberfläche, die speziell auf eine Aufgabenstellung ausgerichtet ist,
können hier die einzelnen Filter und Verarbeitungsalgorithmen für Testzwecke kombiniert und
zusammengestellt werden.
Der modulare Aufbau des DIP-Frameworks im Experimantalcommander unterteilt sich in eine
Pipeline von Bildfiltern, mit denen geladene Bild- und Sensordaten direkt verarbeitet werden
können. Dazu gehören unter anderem bildverbessernde Operationen oder Algorithmen zur
3.1 DIP-Framework
21
Abb. 3.2: SPICE-Benutzerschnittstelle
Erkennung und Verfolgung markanter Punkte, so genannter TrackedObjects. Aufbauend auf
diesen TrackedObjects können dann in einer Pipeline von TrackedObjectsFiltern und einer
Pipeline von TrackedObjectsListObservern für weitere Berechnungen wie die Rekonstruktion von
3D-Raumpunkten, die Berechnung der Kamerabewegung, zum Aufbau von Umgebungskarten,
zur Filterung von Werten oder zur Kommunikation mit dem Flugrechner genutzt werden.
Abbildung 3.3 zeigt den schematischen Aufbau eines Experimentalcommanders. Als Eingabe
eines Experimentalcommanders dient die EnvironmentSensor -Klasse, die als Wrapper für die
beliebigen optischen Sensoren dient. Zu jedem Zeitschritt t wird dabei das aktuelle Bild an den
FilterMaster (linke Box) übergeben und darin von den verschiedenen eingesetzten Bildfiltern
(ImageFilter ) nacheinander verarbeitet.
3.2 Erkennen und Verfolgen markanter Punkte
22
EnvironmentSensor
Tr.Obj.List
Experimentalcommander
ImageFilter
TrackedObjectsFilter
Tr.Obj.ListObserver
ImageFilter
TrackedObjectsFilter
Tr.Obj.ListObserver
ImageFilter
TrackedObjectsFilter
Tr.Obj.ListObserver
Abb. 3.3: Filter-Pipeline im Experimentalcommander
Zu jedem Zeitschritt wird auch eine leere TrackedObjectsList erzeugt, die von den Bildfiltern
gefüllt werden kann. Beispiel ist dafür der verwendete FeatureTracker, welcher die Position
getrackter markanter Features in der TrackedObjectsList speichert. Als weitere Informationen
können in den Filtern auch zusätzliche Informationen wie Kalibrierungsdaten oder weitere
Sensorinformationen (z. B. Stereobilder oder Tiefenkarten) geladen werden.
Nach der Verarbeitung durch die Bildfilterpipeline wird die TrackedObjectsList an eine Pipeline
von TrackedObjectsFiltern und TrackedObjectsListObservern übergeben. TrackedObjectsFilter
können dabei die einzelnen TrackedObjects löschen, bearbeiten oder neue hinzufügen, während die TrackedObjectsListObserver nur Lesezugriff auf die TrackedObjectsList haben. Die
TrackedObjectsListObserver dienen im Normalfall zum Logging generierter Informationen, zum
Beispiel von relativen Bewegungsdaten oder zur Übertragung von Daten an den Flugrechner.
3.2 Erkennen und Verfolgen markanter Punkte
Für die Rekonstruktion von Raumpunkten anhand Stereobilddaten wie in Abschnitt 2.5
beschrieben, müssen zuerst markante Punkte im linken Kamerabild gefunden werden. Dazu wird
die bereits existierende Filterklasse cl_FeatureTracker verwendet. Diese implementiert den von
[ST94] entwickelten GoodFeaturesToTrack-Algorithmus aus der freien OpenCV-Bibliothek.
Die so bestimmten Punkte im linken Kamerabild werden nun im Feature-Tracker im zeitlichen
Verlauf mit Hilfe eines Lucas-Kanade-Trackers [LK81] verfolgt. Dazu dient die von [Bou00]
entwickelte pyramidische Implementation des Lucas-Kanade-Trackers der OpenCV-Bibliothek.
3.2 Erkennen und Verfolgen markanter Punkte
23
Die cl_FeatureTracker -Klasse bietet viele Einstellungsmöglichkeiten, um die Anzahl der zu
verfolgenden Punkte, den Mindestabstand zwischen den Punkten oder die Suchregion für neue
Features zu wählen. Es ist außerdem möglich, die Tiefe der Bildpyramiden zu bestimmen, in
denen getrackt werden soll sowie die Anzahl der Suchiterationen pro Ebene. Abbildung 3.4
zeigt das Einstellungsfenster der cl_FeatureTracker -Klasse.
Abb. 3.4: Einstellungsfenster der cl_FeatureTracker Klasse
Der Filter ist so ausgelegt, zu jedem Zeitschritt eine Mindestanzahl von Featurepunkten zu
verfolgen. Gehen im zeitlichen Verlauf einige Features verloren, beispielsweise weil sie das Bild
verlassen oder nicht wiedergefunden werden, wird mit Hilfe der goodFeaturesToTrack()-Funktion
nach neuen markanten Punkten gesucht, um die Mindestanzahl der Punkte einzuhalten.
Die verfolgten Features werden dazu zu jedem Zeitschritt als cl_TrackedObject gespeichert und
zu einer TrackedObjectsList zusammengefasst. TrackedObjects speichern dabei die aktuelle und
die vorherige Bildposition sowie weitere Informationen zu den Features wie zum Beispiel den rekonstruierten Raumpunkt. Verfolgte Punkte können mit Hilfe der Klasse cl_TrackedObjectsDraw
als überlagerte Elemente auf den Bildern visualisiert werden. Abbildung 3.5 zeigt ein Kamerabild
mit eingezeichneten verfolgten Punkten. Die aktuelle Bildposition eines Features wird dabei
durch einen gelben Kreis dargestellt, die vorherige Position durch die Spitze der Linie am Kreis.
Abb. 3.5: Verfolgte Punkte im Kamerabild
3.3 Stereo-Matching homologer Bildpunkte
24
3.3 Stereo-Matching homologer Bildpunkte
Zur Rekonstruktion der Raumkoordinaten der getrackten Features dient ein so genannter
TrackedObjectsFilter, welcher mit Hilfe von Informationen aus dem rechten Kamerabild die
cl_TrackedObjects der cl_TrackedObjectsList aus dem FeatureTracker weiterverarbeitet.
3.3.1 Finden korrespondierender Punkte in Stereobildpaaren
Wie in Abschnitt 2.5 beschrieben, muss zur Bestimmung des Tiefenwerts und somit der
Raumkoordinaten, zu einem verfolgten Bildpunkt des linken Kamerabildes der korrespondierende
Bildpunkt im rechten Bild wiedergefunden werden. Da die Bilddaten nicht entzerrt und
rektifiziert sind, beschränkt sich die Korrespondenzsuche nicht nur auf eine einzige Bildzeile, da
allerdings für die ARTIS-Hubschrauber nahezu parallel ausgerichtete Stereokameras verwendet
werden, können die korrespondierenden Feature-Punkte im rechten Bild auch nur in einem
gewissen Bereich liegen. Der schon für die Verfolgung der markanten Punkte im linken
Kamerabild eingesetzte Lucas-Kanade-Tracker eignet sich daher auch hier sehr gut, um
die korrespondierenden Punkte zu finden. Zum einen sehen aufgrund der Entfernung der
aufgenommenen Objekte sowie der parallelen Anordnung die Features im linken und im rechten
Bild nahezu gleich aus. Zum anderen ermöglicht der Feature-Tracker das Angeben initialer
Schätzungen für die Position der korrespondierenden Punkte.
Der entwickelte TrackedObjectsFilter arbeitet dazu mit der übergebenen TrackedObjectsList,
welche die verfolgten Punkte enthät, dem linken Kamerabild sowie aus Performanzgründen der
bereits berechneten Bildpyramide des FeatureTrackers. Zu jedem Zeitschritt wird mit Hilfe des
Lucas-Kanade-Trackers versucht, für alle Punkte der TrackedObjectsList die korrespondierenden
Punkte im rechten Bild zu finden. In der Benutzeroberfläche des TrackedObjectsFilters (siehe
Abbildung 3.6) können verschiedene Suchparameter eingestellt werden, um das Tracking zu
verbessern. Beispielsweise kann durch die WinSize-Option die Größe des Suchfensters variiert
werden, also die Größe des Blocks, welcher als Feature wieder gesucht wird. Die optimale
Einstellung ist dabei abhängig von der aufgenommenen Szene.
Abb. 3.6: Einstellungsfenster des entwickelten TrackedObjectsFilters
3.3 Stereo-Matching homologer Bildpunkte
25
Um die Trackingergebnisse zu verbessern und trotzdem die Echtzeitfähigkeit (30 Hz Framerate)
zu bewahren, sollte auch das Abschlusskriterium für das Tracking gut gewählt sein. Echtzeitfähig
bedeutet in diesem Zusammenhang, die Bilddaten auch im Flug bei höheren Geschwindigkeiten
und stärkeren Vibrationen ruckelfrei zu verarbeiten.
Der FeatureTracker führt dabei entweder eine gewisse Anzahl an Iterationen aus oder bricht
vorher ab, wenn sich das Suchfenster pro Iteration nur noch um einen geringen Wert verschiebt. Tests mit verschiedenen Videosequenzen ergaben, dass für ein ausreichend genaues
Tracking 20 maximale Iterationen sowie ein von 0,005 px ausreichen und die Berechnung
trotzdem ausreichend schnell durchgeführt wird. Die Tracking-Parameter sind in Tabelle 3.1
zusammengefasst.
Zur Visualisierung der gefundenen korrespondierenden Feature-Punkte können mit Hilfe der
cl_TrackedObjectsDraw Klasse Overlays auf das rechte Kamerabild gezeichnet werden. Abbildung 3.7 zeigt das linke und rechte Kamerabild eines Zeitpunkts t mit eingezeichneten
getrackten Punkten (gelbe Kreise im linken Bild) sowie deren Position zum Zeitpunkt t − 1.
Die Kreise im rechten Bild entsprechen der getrackten Position des Features. Das andere Ende
der Linie im rechten Bild entspricht der Bildposition im linken Bild. Die Linie veranschaulicht
dadurch die Disparität d der Punkte. Aufgrund eines möglichen Tracking-Fehlers sowie noch
vorhandener radialer Verzerrung sind diese Linien nicht immer direkt horizontal, wie es beim
standard-stereoskopischen Modell wäre. Auch kann es beim Tracken zu Fehlschätzungen kommen, besonders wenn die Features schwach texturiert sind oder das Bild sehr verrauscht ist.
Daher ist in späteren Verarbeitungsschritten eine Filterung nötig.
Parameter
Wert
Breite des Suchfensters
30 px
Höhe des Suchfensters
10 px
Maximale Iterationen
20
Minimale Suchfensterverschiebung 0,005 px
Tab. 3.1: Geeignete Parameter zum Stereo-Feature-Tracking
3.3 Stereo-Matching homologer Bildpunkte
(a) linkes Kamerabild
26
(b) rechtes Kamerabild
Abb. 3.7: Stereo-Feature-Tracking: Verfolgte Punkte im linken Kamerabild mit korrespondierenden Punkten im rechten Kamerabild (grüne Kreise). Die Linien im rechten Bild repräsentieren die Disparität der ungefilterten Bildpunkte. Die Linien des linken Bildes stellen die
2D-Bewegung der Punkte dar.
3.3.2 Kontrolltracking im rechten Bildverlauf
Um die Genauigkeit des Trackings zu verbessern und falsch erkannte Korrespondenzen zu
eliminieren, ermöglicht der TrackedObjectsFilter auch das Tracken von Features im zeitlichen
Verlauf der rechten Kamerabilder. Dazu wird versucht, ähnlich wie auch im linken Bild, die
zum Zeitpunkt t − 1 gefundenen Features zum Zeitpunkt t wiederzufinden. Auch hierzu dient
der Lucas-Kanade-Tracker. Idealerweise befinden sich zum Zeitpunkt t die erkannten FeaturePunkte aus dem links/rechts-Tracking und den Tracking im rechten Bildverlauf an der gleichen
Stelle. Tests ergaben, dass dies aufgrund des Fehlers beim Tracking nur selten der Fall ist.
Dennoch ermöglicht die Verfolgung von Features im rechten Bildverlauf eine gewisse Kontrolle.
So können zum Beispiel weit auseinander liegende erkannte Feature-Positionen ein Indikator
für eine Fehlschätzung sein und die Punkte somit verworfen werden. Abbildung 3.8 zeigt das
überlagerte Ergebnis des Trackings im rechten Bildverlauf als rote Markierungen. Idealerweise
müssten sowohl rote als auch grüne Markierungen an genau der gleichen Stelle liegen.
Auf dem verwendeten Testrechner wird durch das zusätzliche Kontroll-Tracking der Rechenaufwand allerdings erkennbar höher, sodass die Framerate darunter leidet und das Verfahren je
nach Rechner nicht immer flüssig mit 30 Hz läuft. Zwar ist das in einigen Situationen akzeptabel,
führt aber bei der Bewegungsschätzung zu größeren Abweichungen und wird besonders bei
größeren Fluggeschwindigkeiten kritisch. Da fast alle der vom Kontroll-Tracking verworfenen
3.4 Koordinatentransformation und Filterung
27
Abb. 3.8: Trackingbestätigung durch zeitliches Tracking in den rechten Kamerabildern
Punkte auch in der späteren Verarbeitung gefiltert werden, bietet das Kontroll-Tracking zwar
eine brauchbare Erweiterung, auf welche aber auch in vielen Fällen verzichtet werden kann.
3.4 Koordinatentransformation und Filterung
Zwar ist es durch das optionale Kontroll-Tracking über den rechten Bildverlauf möglich, grobe
Außenseiter zu eliminieren, allerdings ist es für eine ausreichend genaue Berechnung der
Raumpunkte unabdingbar, weitere Außenseiter rauszufiltern. Zusätzlich müssen die erkannten
Punkte so transformiert werden, dass sie dem standard-stereoskopischen Modell entsprechen,
damit die in Abschnitt 2.2 hergeleiteten Gleichungen anwendbar sind.
Dazu müssen zuerst alle Punkte, sowohl die getrackten Features im linken Bild als auch die
korrespondierenden Punkte des rechten Bilds, entzerrt und rektifiziert werden. Zum Entzerren können die aus der Kamerakalibrierung gewonnenen Verzerrungsparameter κ1 , κ2 , κ3 ,
τ1 und τ2 verwendet werden. Das DIP-Framework verfügt dafür bereits über die Funktion
pixelToSensorCoordinates(), welche die Punkte zum einen entzerrt und auch in normierte Kamerakoordinaten umwandelt. Da aus der Kamerakalibrierung neben den Entzerrungsparametern
auch eine Rektifizierungsmatrix erzeugt wird, wurde die pixelToSensorCoordinates()-Funktion
so erweitert, dass die entzerrten Punkte durch Multiplikation mit der Rektifizierungsmatrix
auch an ihre entsprechende Position im rektifizierten Kamerabild transformiert werden.
Das folgende Codebeispiel zeigt einen Ausschnitt der verwendeten pixelToSensorCoordinates()Funktion, die zum Normieren, Entzerren und Rektifizieren der Featurepunkte genutzt wird.
3.4 Koordinatentransformation und Filterung
28
Dabei werden die Punkte um den Bildhauptpunkt verschoben und mit dem Reziproken der
Brennweite normiert. Anschließend werden die Gleichungen (2.9) und (2.10) angewendet,
um den Punkt zu entzerren. Die entzerrte Koordinate wird anschließend noch mit der aus
der Kalibrierung bekannten Rektifizierungsmatrix multipliziert (vgl. Gleichung (2.13)). Dies
entspricht dabei der in Abbildung 2.6 dargestellten Abbildungspipeline.
cl_3DVector p i x e l T o S e n s o r C o o r d i n a t e s ( cl_2DVector
coordinates ) {
// N o rm i e ru n g d e r K o o r d i n a t e n
cl_2DVector i n _ v a l = c o o r d i n a t e s − o p t i c a l _ a x i s ;
in_val . scale ( reciprocal_focal_length ) ;
1
2
3
4
5
// I t e r a t i v e s E n t z e r r e n d e s B i l d s
c l _ 2 D V e c t o r temp = i n _ v a l ;
d o u b l e r_2 , x , y ;
f o r ( i n t j = 0 ; j < 2 0 ; j ++) {
r_2 = i n _ v a l . s q u a r e L e n g t h ( ) ;
x = i n _ v a l . getX ( ) ;
y = i n _ v a l . getY ( ) ;
in_val = (
temp
−
c l _ 2 D V e c t o r ( 2 ∗ d i s t o r t i o n . p1 ∗ x ∗ y+d i s t o r t i o n .
p2 ∗ ( r_2+2∗x ∗ x ) , d i s t o r t i o n . p1 ∗ ( r_2+2∗y ∗ y )
+2∗ d i s t o r t i o n . p2 ∗ x ∗ y )
) ∗
( 1 / ( 1 + d i s t o r t i o n . k1 ∗ r_2 + d i s t o r t i o n . k2 ∗
r_2 ∗ r_2 + d i s t o r t i o n . k3 ∗ r_2 ∗ r_2 ∗ r_2 ) ) ;
}
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
// R e k t i f i z i e r u n g d u r c h M u l t i p l i k a t i o n m i t Rect−M a t r i x
c l _ 3 D V e c t o r norm_coord ( i n _ v a l , 1 . 0 f ) ;
c l _ 3 D V e c t o r r e c t _ c o o r d = s t e r e o _ r e c t ∗ norm_coord ;
r e c t _ c o o r d /= r e c t _ c o o r d . getZ ( ) ;
return rect_coord ;
}
21
22
23
24
25
26
Durch diese Transformation wird der standard-stereoskopische Fall angenähert, sodass die
gefundenen korrespondierenden Punkte (nahezu) auf der gleichen Bildzeile liegen. Abbildung 3.9
zeigt die dennoch auftretende vertikale Abweichung der korrespondierenden Punkte einer Video-
3.4 Koordinatentransformation und Filterung
29
sequenz. Dazu werden die einzelnen vertikalen Disparitäten aller Features einer Videosequenz
als Histogramm dargestellt. Die Rektifizierung hat zum Ziel, diese für alle Punkte möglichst nah
an den Wert dy = 0 zu bringen. Das Histogramm zeigt, dass für die meisten Features der Betrag
der vertikalen Disparität |dy | geringer ist als 0,0025 (grüner Bereich). Dies entspricht einem
vertikalen Abstand von 1,75 px. Verfolgte Features mit einer größeren vertikalen Disparität
als dy,max (roter Bereich) können somit auch verworfen werden. Das Histogramm zeigt eine
leichte Verschiebung der vertikalen Disparität in den positiven Bereich. Dies lässt sich auf
kleinere Ungenauigkeiten der Rektifizierungsmatrix aus der Kamerakalibrierung zurückführen.
Diese Verschiebung ist aber sehr gering, sodass die Rektifizierung dennoch als gültig angesehen
werden kann. Da die mittlere vertikale Verschiebung der rektifizierten Punkte 0,0015 (entspricht
1,0455 px) beträgt, entspricht der gewählte Schwellwert dy,max einer deutlich kleineren Wert
vertikalen Abweichung, in etwa 0,69 px.
1,600
1,400
1,200
Häufigkeit
1,000
800
600
400
200
0
−6
−5
−4
−3
−2 −1
0
1
2
dy (normierte Koordinaten)
3
4
5
6
·10−3
Abb. 3.9: Abweichung der vertikalen Disparität dy nach Entzerrung und Rektifizierung Häufigkeitsverteilung der vertikalen Dispartität aller verfolgten Features einer Videosequenz
Neben der vertikalen Disparität kann auch anhand der horizontalen Disparität dx gefiltert
werden. So lassen sich auch für die horizontale Disparität zwei Schwellwerte dx,min und
dx,max wählen, um Punkte, die zu nah an der Kamera sind oder zu weit von der Kamera
entfernt sind und somit zu ungenau sind, zu verwerfen. Dies ist insbesonders notwendig, da
3.5 Berechnung der Eigenbewegung
30
die Tiefenungenauigkeit mit zunehmender Entfernung zur Kamera quadratisch wächst (vgl.
Gleichung (2.8c)).
Sofern die horizontale und vertikale Disparität eines Punktpaars innerhalb der bestimmten
Grenzen liegt, kann nun mittels Gleichungen (2.7) die Raumkoordinate der Punkte in Kamerakoordinaten berechnet werden. Die so rekonstruierten 3D-Raumpunkte werden dann in den
TrackedObjects gespeichert und können in weiteren Anwendungen beliebig genutzt werden.
3.5 Berechnung der Eigenbewegung
Als Teil der Evaluierung des Verfahrens und um dessen Eignung zur optischen Navigation
zu zeigen, sollen die gewonnenen Punktdaten dazu genutzt werden, zu jedem Zeitschritt die
relative Bewegungsänderung des Fluggeräts zu bestimmen. In der Evaluierung soll dies dazu
dienen, die Flugbahn des Hubschraubers zu rekonstruieren.
3.5.1 Bestimmung der relativen Kamerabewegung zwischen zwei
Zeitschritten
Zur Berechnung dieser relativen Eigenbewegung wurde ein so genannter TrackedObjectsListObserver implementiert, welcher die ermittelten Daten des TrackedObjectsFilters aus den
Abschnitten 3.3 und 3.4 weiterverarbeitet. Der entwickelte TrackedObjectsListObserver filtert
dazu aus den zur Verfügung stehenden TrackedObjects alle Objekte heraus, für welche sowohl
die aktuelle sowie die vorherige 3D-Position bekannt sind. Die so gewählten Punktmengen
können nun zur Bestimmung der Transformation zwischen den beiden Punktmengen und somit
implizit auch der Kamera selbst genutzt werden.
Für die Bestimmung der Eigenbewegung wird das so genannte Iterative Closest Point (ICP)
Verfahren [MS06; BM92] verwendet. Eine effiziente und genaue Implementation dieses Verfahrens steht mit der freien PointClouds Library [RC11] zur Verarbeitung von Punktmengen zur
Verfügung.
Beim ICP wird anhand des Approximate-Nearest-Neighbor -Verfahrens iterativ eine Modellpunktmenge an eine Datenmenge angenähert und die entsprechende Transformation (Rotation
und Translation) zwischen den beiden Punktmengen mittels Singulärwertzerlegung (SVD)
bestimmt [AHB87]. Probleme könnten dann auftreten, wenn in den Punktmengen Symmetrien
3.5 Berechnung der Eigenbewegung
31
auftreten und somit die Transformation nicht mehr eindeutig ist. Da allerdings keine sprunghaften Änderungen der Punktmengen zwischen zwei Zeitschriten auftreten, ist das Risiko einer
Fehlschätzung vernachlässigbar klein. Die Implementation der PointClouds Library unterstützt
dabei zum Verwerfen von Außenseitern das so genannte RANSAC -Verfahren.
Da die gewählte Implementation des ICP-Verfahrens die korrespondierenden Punkte aus beiden
Zeitschritten selbst wählt, kann dies unter Umständen zu Fehlschätzungen und somit einer
Abweichung der Bewegungsschätzung führen. Um dies zu untersuchen, wird in dieser Arbeit
neben dem ICP-Algorithmus auch versucht, die Relativbewegung mit Hilfe der TransformationEstimationSVD-Klasse der PointClouds-Library zu bestimmen. Diese Klasse verwendet auch
wie das ICP-Verfahren die Singulärwertzerlegung zur Bestimmung der Rotation und Translation,
nutzt aber dafür die bereits gegebenen Korrespondenzen der Punkte aus zwei Zeitschritten.
Nachteil dieser Klasse ist die fehlende Filterung von Ausreißern.
Bei beiden Verfahren wird dann zu jedem Zeitpunkt, solange ausreichend korrespondierende
Punkte vorhanden sind, die Translation und Rotation zwischen den beiden Punktmengen
berechnet und als 3 × 3-Rotationsmatrix und Translationsvektor ausgegeben [Isl08].
3.5.2 Rekonstruktion der Flugbahn
Anhand der aus dem ICP-Algorithmus zu jedem Zeitpunkt t berechneten relativen Bewegung
Vt lässt sich durch Akkumulation der Werte die Trajektorie des Fluggeräts rekonstruieren [Isl08].
Die relative Bewegung zwischen zwei Zeitschritten t − 1 und t lassen sich als 4x4-Matrix


R11 R21 R31 t1
R

 21 R22 R23 t2 
Vt = 

R31 R32 R33 t3 
0
0
0
1
(3.1)
darstellen. Ausgehend von einer initialen Position und einer Orientierung P0 kann nun zu jedem
Zeitpunkt t durch Multiplikation mit Vt die aktuelle Position ermittelt werden:


O11 O12 O13 p1
O

 21 O22 O23 p2 

 = Pt = Vt · Pt−1 .
O31 O32 O33 p3 
0
0
0
1
(3.2)
3.5 Berechnung der Eigenbewegung
32
Die ermittelte Position pt und die Orientierung Ot (als Rotationsmatrix) sind allerdings noch
im Kamerakoordinatensystem und müssen, insbesondere zum Vergleich mit der Flugbahn der
bestehenden Navigationslösung, in das globale Weltkoordinatensystem umgewandelt werden.
Dazu sind, wie in Abbildung 3.10 dargestellt, eine Transformation in das Hubschrauberkoordinatensystem sowie von dort in das Weltkoordinatensystem notwendig.
Mh→w
yh
xw
xh Mc→h
yw
zh yc
zw
xc
zc
Abb. 3.10: Verwendete Koordinatensysteme
Dafür können entweder die im Kamerakoordinatensystem bestimmten Positionen der Trajektorie
durch Rotation und Translation in das Weltkoordinatensystem überführt werden (siehe [Isl08])
oder bereits die Startposition und -ausrichtung P0 auf die Position und Ausrichtung des
Hubschraubers zum Beginn der Auswertung gesetzt werden.
Die Transformation der Position und Ausrichtung von Kamerakoordinaten in das Hubschrauberkoordinatensystem besteht dabei aus der Rotation der Kamera am Hubschrauber (in drei
Freiheitsgraden) und der Verschiebung vom Kamerazentrums zum Zentrum des Hubschraubers
(siehe [CDL04]):

Mc→h

R11,c→h R12,c→h R13,c→h t1,c→h
R
R22,c→h R23,c→h t2,c→h 


=  21,c→h
.
R31,c→h R32,c→h R33,c→h t3,c→h 
0
0
0
1
(3.3)
3.5 Berechnung der Eigenbewegung
33
Für die verwendete Aufnahme wurde die Kamera um 90° nach unten rotiert am Hubschrauber
montiert. Mit der bekannten Verschiebung der Kamera (in [m]) zum Zentrum des Hubschraubers
ergibt das


0 −1 0 −0,5
1 0 0 0,15 


Mc→h = 
(3.4)
.
0 0 1 −0,12
0 0 0
1
Allerdings ist dabei zu beachten, dass bei der Montage der Kamera auch geringe Abweichungen
auftreten können und exakte Rotationswerte nur durch eine Kalibrierung gewonnen werden
können. Dennoch sind die verwendeten Werte für eine Auswertung geeignet

Mh→w

R11,h→w R12,h→w R13,h→w t1,h→w
R
R22,h→w R23,h→w t2,h→w 


=  21,h→w
.
R31,h→w R32,h→w R33,h→w t3,h→w 
0
0
0
1
(3.5)
Um die berechnete Trajektorie an die der Navigationslösung anzugleichen, wurden für Mh→w
die Werte der bekannten Position und Ausrichtung des Hubschraubers zum Startzeitpunkt der
Analyse genutzt. Diese sind aus der Navigationslöung bekannt. Für die Auswertung lautet die
Transformationsmatrix dann

Mc→h

−0,292254 0,943447 −0,156507 −22,587936
−0,951024 −0,269479 0,151440
8,983907 


=
.
 0,100701
0,193101
0,975998
−4,040975 
0
0
0
1
(3.6)
Sind diese Transformationen bekannt, ist es möglich, die Startposition und -ausrichtung mit
P0 = Mh→w · Mc→h
(3.7)
zu bestimmen. Auf diese so bestimmte Position P0 können nun wie in Gleichung (3.2) die
relativen Bewegungen akkumuliert werden und somit die Trajektorie rekonstruiert werden.
KAPITEL
4
Evaluierung des Verfahrens
In diesem Kapitel soll das entwickelte Verfahren zur Bestimmung der Raumpositionen markanter
Features und deren Verfolgung auf seine Richtigkeit und Genauigkeit untersucht werden. Dazu
sollen zum einen die verwendeten Bilddaten der einzelnen Versuche bewertet und auf ihre
Eignung zur 3D-Objektverfolgung untersucht werden. Des Weiteren sollen die Ergebnisse des
Verfahrens auf ihre Genauigkeit untersucht werden, indem aufgenommene und vermessene
Landmarken betrachtet werden sowie die geflogene Trajektorie des Hubschraubers mit Hilfe
der gewonnenen Daten rekonstruiert wird.
4.1 Auswertung von Flugversuchsdaten
Für die Entwicklung des Verfahrens und zur Auswertung der Ergebnisse stehen verschiedene
Bilddaten aus kalibrierten Stereokameras zur Verfügung, die in verschiedenen Versuchen
aufgezeichnet wurden. In diesem Abschnitt werden die zur Verfügung stehenden Videosequenzen
analysiert und auf ihre Eignung für das Verfahren untersucht.
4.1.1 Stereobilddaten aus Kamerafahrt an einem Rollwagen
Als erste Grundlage für die Entwicklung des Verfahrens zur Verfolgung markanter Punkte
und zum Finden der korrespondierenden Punkte im anderen Stereobild konnte eine ältere
Videosequenz einer auf einem Rollwagen montierten Stereokamera genutzt werden (siehe
34
4.1 Auswertung von Flugversuchsdaten
35
Abbildung 4.1). Zwar sind die Bilddaten der Videosequenz aufgrund der Überbelichtung, der
ungenauen Ausrichtung und Kalibrierung der Kameras und fehlender sekundärer Daten wie
einer Navigationslösung für eine genaue Evaluation ungeeignet, dennoch konnte daran gut das
allgemeine Suchen korrespondierender Punkte in den Stereobildern entwickelt und getestet
werden.
Bei näherer Betrachtung der Bilddaten ist aufgefallen, dass aufgrund einer ungenauen Montage
der einzelnen Kameras korrespondierende Punkte vertikal um ungefähr sechs Pixel verschoben
sind. Zwar wird bei dem entwickelten Verfahren auch ein solcher Versatz durch Anpassung
der Parameter bei der Suche nach korrespondieren Punkten kompensiert und die richtigen
korrespondierenden Punkte gefunden, da allerdings für diese Videosequenz keine Referenzwerte
vorlagen, wurde dieser Datensatz für die genaue Auswertung des entwickelten Verfahrens nicht
weiter betrachtet.
(a) linkes Kamerabild
(b) rechtes Kamerabild
Abb. 4.1: Korrespondierende Punkte im Bilddatensatz der Kamerafahrt
4.1.2 Trageversuch mit Landmarken und nach vorne gerichteter Kamera
Um das entwickelte Verfahren genauer testen zu können, sollten Bilddaten aus einem Flugversuch dienen. Dazu sollte im November 2011 ein Flugversuch mit dem midiARTIS Hubschrauber
durchgeführt werden. Da aufgrund eines technischen Defekts der Flugbetrieb nicht möglich
war, wurden Bilddaten aus Bodennähe in einem Trageversuch aufgenommen. Zwar verfügen
diese Videoaufnahmen nicht über alle Eigenschaften wirklicher Aufnahmen aus dem Flug, wie
beispielsweise Störungen durch Vibrationen oder die dort auftretenden Objektentfernungen, die
durch den Flug in größeren Höhen als beim tragen auftreten.
4.1 Auswertung von Flugversuchsdaten
36
Nichtsdestotrotz liefern die Bilder eine gute Grundlage, um das Verfahren genauer zu testen
und auszuwerten. Im Gegensatz zu den Bilddaten der Kamerafahrt am Rollwagen verfügt die
hier verwendete Stereokamera über eine integrierte Entzerrung und Rektifizierung der Bilddaten.
Wie sich allerdings herausgestellt hat, ist diese nicht sehr genau, sodass trotz Rektifizierung
korrespondierende Feature-Punkte einen vertikalen Versatz von ca. zwei Pixeln haben. Daher
war es weiterhin notwendig, die Kamera manuell zu kalibrieren und im TrackedObjectsFilter
selbst die getrackten Punkte erneut zu entzerren und zu rektifizieren. Somit bleibt auch das
Grundziel des Verfahrens, auf ungefilterten Bilddaten anwendbar zu sein, erhalten. Abbildung 4.2
zeigt getrackte und korrespondierende Punkte zu einem Zeitpunkt des Trageversuchs. Dabei
fällt besonders der schwarze Rand im rechten Bild auf. Dieser entsteht durch das interne
Entzerren und Rektifizieren, welches innerhalb des Chips der Stereokamera selbst stattfindet.
Da die Bilddaten auch für andere Experimente nutzbar sein sollen, wurden im gefilmten Bereich
gut sichtbare Holzpfosten als Landmarken aufgestellt und mit einem Tachymeter vermessen,
um genaue Referenzwerte für die Auswertung zu schaffen. Die vermessenen Landmarken
wurden dann im Trageversuch aus verschiedenen Entfernungen mit einer nach vorne gerichteten
Stereokamera aufgenommen.
(a) linkes Kamerabild
(b) rechtes Kamerabild
Abb. 4.2: Korrespondierende Punkte im Bilddatensatz des Trageversuchs
Die auf Abbildung 4.2 dargestellten getrackten Punkte zeigen deutlich die Schwachstellen des
Algorithmus. So werden beispielsweise am Himmel Punkte in Bereichen mit relativ homogenen
Hintergrund gefunden und verfolgt, was zu einem ungenauen Gesamtergebnis führt, da die
Tracking-Ergebnisse dort sehr ungenau und schwankend sind. Die dort erkannten Punkte
können im Verfahren nicht immer als Ausreißer erkannt und gefiltert werden.
4.1 Auswertung von Flugversuchsdaten
37
Auch im unteren rechten Bereich des rechten Kamerabilds sind einige offensichtliche Fehlerkennungen sichtbar, da die dort gezeigten Linien nahezu horizontal verlaufen müssten. Ursache
für diese Fehlerkennungen ist unter anderem ein starkes Bildrauschen, welches für den FeatureTracker markante Punkte an Positionen liefert, wo eigentlich keine sind. Auch werden durch
die regelmäßige Textur des Bodens einige Korrespondenzen falsch eingeschätzt. Über eine
Vorverarbeitung der Eingabebilder lässt sich dieses Rauschen allerdings vermindern und somit
insbesondere die Fehlerkennungen am Himmel vermeiden. Auch die Erkennung am Boden wird
dadurch besser, zeigt aber dennoch einige falsche Korrespondenzen.
Aufgrund dieser doch vergleichsweise großen Störungen lassen die Bilddaten zwar eine Untersuchung mit Hilfe des Tachymeters zu, beinhalten aber für eine ausreichend genaue Berechnung
der Eigenbewegung zu viele Ausreißer und zu wenige brauchbare Punkte.
4.1.3 Flugversuch mit nach unten gerichteter Kamera
Da Bilddaten, die aus einem wirklichen Flugversuch aufgenommen wurden, noch andere
Eigenschaften als bei einem Trageversuch aufweisen, sollte der erste Flugversuch wiederholt
werden, was auch erfolgreich gelang. Im Gegensatz zum ersten Flugversuch wurden die
Landmarken nun allerdings nicht stehend, sondern flach auf dem Boden liegend mit dem
Tachymeter vermessen. Außerdem wurde die Stereokamera am midiARTIS-Hubschrauber nach
unten gerichtet befestigt.
Wie auch beim ersten Flugversuch wurde für die Bilder bereits die interne Rektifizierung
der Kamera genutzt, welche aber aufgrund der geringen Genauigkeit nicht ausreichend war
und somit durch manuelle Kalibrierung verbessert werden musste. Auch zeigen die Bilder ein
geringeres Rauschen und eignen sich dadurch besser für die Verfolgung mittels des LucasKanade-Trackers.
Abbildung 4.3 zeigt getrackte Features mit korrespondierenden Punkten. Die auf dem Boden
sichtbaren Pfähle mit Markierungen sind die an ihren Eckpunkten vermessenen Landmarken.
Die Untersuchung der Kameradaten hat gezeigt, dass die meisten der Korrespondenzen
passend gefunden werden und sich das Material somit sowohl für die Auswertung mittels
der Tachymeterdaten eignet sowie für die Berechnung der relativen Eigenbewegung des
Hubschraubers.
4.2 Landmarkenvermessung mit Hilfe eines Tachymeters
(a) linkes Kamerabild
38
(b) rechtes Kamerabild
Abb. 4.3: Korrespondierende Punkte im Bilddatensatz des Flugversuchs
4.2 Landmarkenvermessung mit Hilfe eines Tachymeters
Die im Flugversuch aufgezeichneten Landmarken wurden für das Experiment mit einem
Leica-Viva-TS15 -Tachymeter der Firma Leica Geosystems (siehe Abbildung 4.4) vermessen.
Dafür wurde das Tachymeter an einem exakt vermessenen Georeferenzpunkt aufgebaut und
ausgerichtet. Dafür stehen am Flugfeld zwei Messpunkte des DLR und der TU Braunschweig
zur Verfügung.
Das initialisierte Tachymeter ermöglicht so ein exaktes Einmessen von Punkten mit einer
Genauigkeit im Millimeterbereich, auch in Bezug auf das geodätische Koordinatensystem.
4.3 Genauigkeitsüberprüfungen an Referenzmessungen
39
Abb. 4.4: Tachymeter Leica Viva TS15 zur Vermessung der Landmarken
Für die Vermessung der Landmarken wurde dann ein retroreflektierendes Prisma an den Ecken
der Landmarken positioniert. Durch Anpeilen dieses Prismas war es möglich, die Position der
Punkte im Koordinatensystem des Tachymeters zu bestimmen. Das Tachymeter ist dabei
auf etwa 3 mm bis 5 mm genau. Allerdings ist auch beim Positionieren des Prismas mit einer
gewissen Ungenauigkeit zu rechnen. Aufgrund der hohen Genauigkeit dieser Punkte konnten
die so bestimmten Eckpunkte als Referenzwerte für die Auswertung des TrackedObjectsFilters
genutzt werden.
4.3 Genauigkeitsüberprüfungen an Referenzmessungen
Da sich der midiARTIS-Hubschrauber im Flugversuch in einem Schwebeflug über den am
Boden liegenden Landmarken befunden hat und die Kameras nach unten ausgerichtet waren,
ermöglicht eine optische Auswertung der Bilddaten eine grobe Einschätzung der Genauigkeit
des entwickelten Verfahrens. Da keine direkten Referenztiefenwerte oder -raumkoordinaten
(z. B. durch andere Sensoren) in direktem Bezug zum Kamerabild vorhanden sind, muss ein
4.3 Genauigkeitsüberprüfungen an Referenzmessungen
40
anderer Weg gefunden werden, um die rekonstruierten Raumpunkte zu validieren.
Zwar liegen durch die Vermessung mit Hilfe des Tachymeters Referenzpunkte vor, allerdings
wäre insbesondere aufgrund von Ungenauigkeiten der Navigationslösung ein Umrechnen der
ermittelten Punkte im Kamerakoordinatensystem in das Tachymeterkoordinatensystem zu
fehlerhaft und somit für eine exakte Auswertung zu ungenau.
Stattdessen lässt sich für eine solche Auswertung die bekannte Größe (Länge) der Pfähle der
Landmarken ausnutzen. Diese wurden zum einen manuell per Maßband ausgemessen sowie
deren Eckpunkte mittels des verwendeten Tachymeters vermessen. In diesem Abschnitt werden
mehrere im Bild aufgenommene Landmarken in einem bestimmten Zeitraum der Videosequenz
ausgewertet. Dazu wurde für jeden Datensatz ein kurzer Ausschnitt gewählt, welcher vollständig
eine aufgenommene Landmarkenstange zeigt.
Die Eckpunkte der Landmarkenpfähle wurden für die Auswertung im FeatureTracker markiert
und verfolgt. Zu jedem Zeitschritt des Ausschnitts konnten so im TrackedObjectsFilter die
Raumkoordinaten der Punkte in Kamerakoordinaten berechnet werden.
Die Längen der einzelnen Landmarken sind durch die Vermessungsdaten des Tachymeters sowie
ein manuelles Ausmessen bekannt. Im Idealfall entspricht die euklidische Distanz zwischen
den beiden getrackten Punkten der vermessenen Länge der Landmarke. Mit zunehmender
Entfernung zum Objekt, also den Landmarken, ist allerdings mit einer steigenden Ungenauigkeit
zu rechnen.
Die folgenden Datensätze zeigen Aufnahmen der flach auf dem Boden liegenden Landmarken
mit der dazugehörigen Länge l sowie den vom TrackedObjectsFilter bestimmten Eckpunkten
und deren Vergleich zur vermessenen Länge der Stangen.
4.3 Genauigkeitsüberprüfungen an Referenzmessungen
41
Datensatz 1
(a) linkes Kamerabild
(b) rechtes Kamerabild
Abb. 4.5: Entfernungsschätzung durch optische Analyse - Datensatz 1
Abbildung 4.5 zeigt ein Bild des gewählten Videoausschnitts mit der rot markierten Landmarke,
an der die Punktdaten validiert werden sollen. Die manuelle Vermessung der Landmarke per
Maßband ergab eine Länge von lmanuell = 3,0 m. Für den Vergleich wird allerdings die mit
Hilfe des Tachymeters bestimmte Länge genutzt. In Tachymeterkoordinaten befinden sich die
beiden Eckpunkte der Landmarke bei
plmark0002
(−19,58700 , − 46,14591 , 0,29186)
tachy
plmark0003
(−17,20755 , − 48,01043 , 0,28724)
tachy
was einen euklidischen Abstand von ltachy = 3,023 m als Referenzwert ergibt.
Tabelle 4.1 zeigt die vom TrackedObjectsFilter rekonstruierten Raumkoordinaten der verfolgten
Eckpunkte der Landmarke in Kamerakoordinaten aus einer Flughöhe von etwa sieben Metern.
Jede Tabellenzeile entspricht dabei einem ausgewerteten Zeitschritt. Die dritte Tabellenspalte
zeigt die euklidische Distanz der beiden Eckpunkte, die in einem Frame rekonstruiert wurde.
Die Abweichung dieser Länge zum Referenzwert ltachy ist in der vierten Spalte dargestellt.
Die durchschnittliche Distanz zwischen den Punkten p1 und p2 ist leicht größer als der
Referenzwert. Dies liegt aber an einigen wenigen Ausreißern, bei denen die Punkte nicht
exakt getrackt wurden, beziehungsweise das Ergebnis der Korrespondenzsuche nicht exakt
war. Allerdings liegen die auftretenden Abweichungen noch im Rahmen der in Abbildung 2.5
4.3 Genauigkeitsüberprüfungen an Referenzmessungen
42
Tab. 4.1: Werte der Landmarkenvermessung des TrackedObjectFilters zu Datensatz 1
Eckpunkt p1
Eckpunkt p2
Distanz
Abweichg.
[m]
[m]
(0,9145 , 0,4124 , 7,3642)
(3,2935 , − 0,8769 , 6,3968)
2,8736
−0,1493
(0,7528 , 0,4744 , 7,2589)
(3,3945 , − 0,8766 , 6,9347)
2,9848
−0,0381
(0,5940 , 0,5305 , 7,3396)
(3,2779 , − 0,8413 , 7,0495)
3,0281
0,0051
(0,4317 , 0,5618 , 7,3329)
(3,1580 , − 0,8194 , 7,1696)
3,0606
0,0377
(0,2840 , 0,5873 , 7,3974)
(3,0042 , − 0,7941 , 7,1655)
3,0596
0,0367
(0,1554 , 06104 , 7,4707)
(2,8459 , − 0,7698 , 7,0857)
3,0483
0,0254
(0,0483 , 0,6200 , 7,1541)
(2,7933 , − 0,7503 , 7,2580)
3,0698
0,0469
(−0,0557 , 0,6677 , 7,2520)
(3,0012 , − 0,7930 , 7,1576)
3,3893
0,3664
(−0,1508 , 0,7402 , 7,3279)
(2,5923 , − 0,6371 , 7,2741)
3,0700
0,0471
(−0,2350 , 0,8290 , 7,3661)
(2,4871 , − 0,5588 , 7,2098)
3,0595
0,0366
(−0,3225 , 0,9049 , 7,2962)
(2,4148 , − 0,4913 , 7,2846)
3,0729
0,0500
(−0,4424 , 0,9930 , 7,4527)
(2,3475 , − 0,4224 , 7,4261)
3,1287
0,1058
(−0,5911 , 1,0628 , 7,4634)
(2,1645 , − 0,3391 , 7,2828)
3,0971
0,0742
(−0,7307 , 1,1082 , 7,6089)
(2,0619 , − 0,2954 , 7,3402)
3,1371
0,1142
(−0,8464 , 1,1488 , 7,6407)
(1,9561 , − 0,2535 , 7,3788)
3,1448
0,1219
(−0,9223 , 1,1515 , 7,3351)
(1,8214 , − 0,2116 , 7,3258)
3,0637
0,0408
(−1,0067 , 1,2441 , 7,4409)
(1,7498 , − 0,1350 , 7,3024)
3,0855
0,0626
(−1,0876 , 1,3188 , 7,3827)
(1,6949 , − 0,0533 , 7,4657)
3,1036
0,0807
(−1,1524 , 1,4176 , 7,4188)
(1,5862 , 0,0382 , 7,2606)
3,0705
0,0476
(−1,2003 , 1,4913 , 7,3434)
(1,4846 , 0,1228 , 7,0848)
3,0247
0,0018
(−1,4181 , 1,7254 , 8,0265)
(1,4425 , 0,2102 , 7,2591)
3,3268
0,3039
(−1,3692 , 1,7156 , 7,6221)
(1,3590 , 0,2673 , 7,1093)
3,1310
0,1081
Mittelwert: 3,0923 m
Standardabw.: 0,1039 m
4.3 Genauigkeitsüberprüfungen an Referenzmessungen
43
beschriebenen Entfernungsauflösung. Zu beachten ist dabei auch, dass für die Analyse zwei
Punkte getrackt und deren Raumpositionen rekonstruiert werden müssen und sich der zu
erwartende Fehler dadurch im Endergebnis kumuliert.
Die Daten zeigen allerdings, dass aus einer Objektentfernung von etwa 7,5 m die Positionen
der Landmarken ausreichend genau rekonstruiert werden können.
Datensatz 2
(a) linkes Kamerabild
(b) rechtes Kamerabild
Abb. 4.6: Entfernungsschätzung durch optische Analyse - Datensatz 2
Als zweite Testsequenz wurde die Landmarke aus Abbildung 4.5 über einen zeitlichen Verlauf
von 20 Frames analysiert. Die dort gezeigte Landmarke wurde im Flug aus einer Höhe von
ca. 19 Metern aufgenommen und eignet sich somit gut dazu, das Verfahren auch bei größerer Objektentfernung zu analysieren. Die verfolgte Landmarke ist dabei im Bild wieder rot
markiert. Das manuelle Ausmessen der Landmarke ergab eine Länge von lmanuell = 2,99 m. In
Tachymeterkoordinaten befinden sich die beiden Eckpunkte der Landmarke bei
plmark0029
(−33,08079 , − 49,25439 , 0,40573)
tachy
plmark0019
(−30,24416 , − 50,18602 , 0,37627)
tachy
was einen euklidischen Abstand von ltachy = 2,986 m als Referenzwert ergibt, der zur Analyse
verwendet wird.
4.3 Genauigkeitsüberprüfungen an Referenzmessungen
44
Tab. 4.2: Werte der Landmarkenvermessung des TrackedObjectFilters zu Datensatz 2
Eckpunkt p1
Eckpunkt p2
Distanz
Abweichg.
[m]
[m]
(−6,6016 , − 2,4609 , 19,3209)
(−3,3606 , 0,2888 , 19,5024)
4,2542
1,2683
(−5,9065 , − 2,1388 , 17,7945)
(−2,9099 , − 2,1840 , 17,8505)
2,9974
0,0116
(−6,1209 , − 2,1741 , 18,9552)
(−3,0405 , − 2,3069 , 19,5477)
3,1396
0,1538
(−5,9362 , − 2,0459 , 18,5986)
(−2,9113 , − 2,2093 , 19,3785)
3,1280
0,1422
(−5,8265 , − 1,9985 , 18,5884)
(−2,5915 , − 2,0122 , 17,9921)
3,2894
0,3036
(−6,2567 , − 2,0577 , 20,1973)
(−2,6342 , − 2,0076 , 18,8550)
3,8634
0,8776
(−5,7096 , − 1,7828 , 18,9057)
(−2,4538 , − 1,8519 , 18,4922)
3,2826
0,2968
(−4,9015 , − 1,4308 , 16,7056)
(−2,3295 , − 1,7434 , 18,6603)
3,2455
0,2597
(−5,8354 , − 1,5659 , 20,6026)
(−2,0322 , − 1,5255 , 18,0187)
4,5981
1,6123
(−5,4260 , − 1,3373 , 19,9539)
(−1,8449 , − 1,3789 , 18,1854)
3,9941
1,0083
(−5,2026 , − 1,1053 , 19,5568)
(−1,8683 , − 1,3015 , 19,3736)
3,3450
0,3592
(−4,8790 , − 0,9627 , 19,0739)
(−1,7017 , − 1,2173 , 19,6419)
3,2376
0,2518
(−4,4196 , − 0,8482 , 17,9811)
(−1,4070 , − 1,0555 , 18,2917)
3,0357
0,0499
(−4,7389 , − 0,9110 , 19,7296)
(−1,3586 , − 1,0773 , 19,2415)
3,4193
0,4335
(−4,2163 , − 0,7898 , 18,2973)
(−1,1220 , − 0,9958 , 18,3582)
3,1018
0,1159
(−4,0069 , − 0,7315 , 18,1950)
(−0,9299 , − 0,9298 , 18,1897)
3,0834
0,0976
(−4,2511 , − 0,7162 , 19,7100)
(−0,9684 , − 0,9654 , 20,7991)
3,4676
0,4818
(−4,1308 , − 0,6114 , 19,8927)
(−0,7252 , − 0,7608 , 19,0395)
3,5139
0,5281
(−3,8449 , − 0,4390 , 19,2286)
(−0,5945 , − 0,6304 , 19,2332)
3,2561
0,2703
(−3,6694 , − 0,2800 , 19,3143)
(−0,4161 , − 0,4970 , 19,8035)
3,2970
0,3112
Mittelwert: 3,4275 m
Standardabw.: 0,4275 m
4.4 Bestimmung der Eigenbewegung und Vergleich mit Navigationsdaten
45
Tabelle 4.2 zeigt die Ergebnisse des TrackedObjectsFilters zur Rekonstruktion der Eckpunkte
der Landmarke sowie deren euklidische Distanz und die Abweichung zum Referenzwert ltachy .
Die Daten zeigen, dass mit zunehmender Höhe auch die Abweichung steigt. Betrachtet man
allerdings die zunehmende Tiefenungenauigkeit bei steigender Objektentfernung, welche durch
den Stereoaufbau selbst bedingt ist, erkennt man, dass die gemessenen Abweichungen kleiner
sind als der zu erwartende Fehler und somit als ausreichend genau angesehen werden können.
Zusammenfassend zeigt die Auswertung der Datensätze, dass zwar mit zunehmender Tiefe die
Unterschiede in den Werten der optischen Vermessung der Landmarken und den Ergebnissen
des TrackedObjectsFilters größer werden, aber doch die Raumkoordinaten der Landmarken
(beziehungsweise deren Eckpunkte) auch aus größerer Flughöhe noch ausreichend genau
rekonstruiert werden können.
4.4 Bestimmung der Eigenbewegung und Vergleich mit
Navigationsdaten
Um die Eignung der zu jedem Zeitschritt bestimmten Relativbewegung der Kamera zur
optischen Navigation zu zeigen, sollte die Flugbahn des Hubschraubers durch Akkumulation
der relativen Bewegung rekonstruiert werden. Die mathematischen Grundlagen dafür wurden
in Abschnitt 3.5.2 gezeigt.
Zur Auswertung dienen dabei die Bilddaten aus dem Flugversuch mit nach unten gerichteter
Kamera. Die Flughöhe beträgt für dabei zwischen 6 m und 20 m und Geschwindigkeiten von
bis zu 5 m/s. Für die Auswertung wurden die Videos mit verschiedenen Frameraten zwischen
5 FPS und 25 FPS untersucht, um das Verhalten auf verschiedenen Rechnern zu testen.
Da die Berechnung der Relativbewegung zu jedem Zeitschritt lediglich eine Näherung darstellt,
ist im Verlauf der Flugbahn mit einer zunehmenden Ungenauigkeit zu rechnen. Um diesen
Fehler möglichst gering zu halten, ist die Wahl passender Parameter für das ICP-Verfahren und
die RANSAC Outlier Rejection ausschlaggebend. Die ICP-Implementation ermöglicht dabei
die Einstellung der maximalen Anzahl an Iterationen sowie einen Wert min für die minimale
Transformation während eines Durchlaufs. Das iterative Verfahren endet dabei entweder beim
Erreichen der maximalen Iterationen oder wenn die Transformation während einer Iteration
kleiner als der gewählte min -Wert ist.
Für die RANSAC Outlier Rejection kann die Anzahl der Iterationen sowie der Grenzwert für
das Verwerfen eines Punktes gewählt werden. Für die Auswertung wurde eine maximale Anzahl
4.4 Bestimmung der Eigenbewegung und Vergleich mit Navigationsdaten
46
Iterationen des ICP-Algorithmus von 100 gewählt, ein Epsilonwert von min = 1 · 10−8 m, 100
RANSAC-Iterationen und ein Grenzwert von 0.7m.
Abbildung 4.7 zeigt den Vergleich der Position des Hubschraubers in x-Richtung des Weltkoordinatensystems aus den Daten der optischen Navigation (rot, durchgezogen) und der
vom Flugrechner bestimmten Navigationslösung (schwarz, gestrichelt). Die Abbildung zeigt,
dass zumindest während der ersten 15 Sekunden des Flugs die Position mit nur geringen
Abweichungen approximiert werden kann. Ab Sekunde 20 nimmt die Abweichung allerdings
deutlich stärker zu. Besonders auffällig ist das ab etwa Sekunde 45 auftretende starke Rauschen
und Schwanken der Werte. Dies lässt sich durch eine höhere Flughöhe des Fluggeräts zu
dem Zeitpunkt erklären und somit einer deutlich stärkeren Unsicherheit in den rekonstruierten
Raumpunkten. Diese zunehmende Ungenauigkeit wirkt sich auch auf die Bewegungsschätzung
aus.
−10
x[m]
−20
−30
−40
0
5
10
15
20
25
30
35
t[s]
40
45
50
55
60
65
70
Abb. 4.7: Vergleich der Position in x-Richtung aus optischer Navigation (rot, durchgezogen)
und Navigationslösung (schwarz, gestrichelt)
In Abbildung 4.8 zeigt die Position des Hubschraubers in y-Richtung über den zeitlichen Verlauf.
Der schwarz gestrichelte Graph entspricht dabei wieder der Navigationslösung und der rote
Graph den Ergebnissen der optischen Navigation. Der Vergleich der Bahnen zeigt, dass genau
wie in x-Richtung die Flugbahn mit zunehmender Abweichung approximiert werden kann. Auch
hier tritt ab Sekunde 45 ein stärkeres Rauschen der Position auf, was auch für ein stärkeres
Anwachsen der Abweichung bewirkt.
4.4 Bestimmung der Eigenbewegung und Vergleich mit Navigationsdaten
47
y[m]
0
−20
−40
−60
0
5
10
15
20
25
30
35
t[s]
40
45
50
55
60
65
70
Abb. 4.8: Vergleich der Position in y-Richtung aus optischer Navigation (rot, durchgezogen)
und Navigationslösung (schwarz, gestrichelt)
Ein Vergleich der Flughöhe wird in Abbildung 4.9 gezeigt. Hier wird eine starke Abweichung
deutlich, die ab Sekunde 16 beginnt und die Flughöhe stark ansteigen lässt. Ab Sekunde 23
tritt hingegen sinkt die Flughöhe wieder stark. Wie auch in den anderen Abbildungen tritt
auch in z-Richtung ab Sekunde 45 ein stärkeres Rauschen auf.
Der starke Knick im Plot der Flughöhe konnte auch durch eine Anpassung der RANSAC
Parameter nicht ausgeglichen werden. Bei Betrachtung der Bilddaten ist allerdings aufgefallen,
dass der Hubschrauber ab Sekunde 23 eine schnellere Richtungsänderung in x- und y-Richtung
durchführt und somit an dieser Stelle auch sehr unstetig fliegt mit größerer Rotation um die xund y-Achse. Das könnte zumindest ansatzweise die plötzlich stark steigende Abweichung der
Flughöhe erklärt.
4.4 Bestimmung der Eigenbewegung und Vergleich mit Navigationsdaten
48
−20
z[m]
−10
0
10
20
0
5
10
15
20
25
30
35
t[s]
40
45
50
55
60
65
70
Abb. 4.9: Vergleich der Flughöhe aus optischer Navigation (rot, durchgezogen) und Navigationslösung (schwarz, gestrichelt)
Diese starke Abweichung hat auch Auswirkungen auf die Position in x- und y-Richtung und
erklärt auch die schnell wachsende Abweichung der x-Position ab Sekunde 20. Die Flugbahn
aus Sicht von oben ist in Abbildung 4.10 dargestellt.
y[m]
0
−20
−40
−60
−45
−40
−35
−30
−25
x[m]
−20
−15
−10
−5
Abb. 4.10: Vergleich der Trajektorie aus Nav-Lösung (schwarz, gestrichelt) und optischer
Navigation (rot, durchgezogen) aus Ansicht von oben
Um diese starke Ungenauigkeit zu verringern, wurden verschiedene Parameter des ICPVerfahrens gewählt. Allerdings war es auch durch diese nicht möglich, die Ungenauigkeiten in
4.4 Bestimmung der Eigenbewegung und Vergleich mit Navigationsdaten
49
entscheidend zu verringern. Tests mit verschiedenen Schwellwerten für das RANSAC-Verfahren
haben gezeigt, dass bei höheren Werten die Ungenauigkeiten bei höheren Flughöhen verringert
werden konnten, dabei aber die Abweichungen bei geringeren Flughöhen größer wurden. Daher
wurde die Implementation dahingehend erweitert, dass der Schwellwert dynamisch anhand
der mittleren Entfernung der Kamera zu den Objekten gesetzt werden kann. Ebenso kann die
Anzahl der RANSAC-Iterationen abhängig von der Anzahl der Features dynamisch gesetzt
werden kann (siehe [Isl08]).
Zwar konnte durch diese Anpassungen die Rechenzeit verkürzt werden, jedoch waren die
Ergebnisse ähnlich zu denen mit fest gewählten Parametern.
Eine weitere Erklärung für die plötzliche Abweichung der Flughöhe sind mögliche Fehlkorrespondenzen, die durch den ICP-Algorithmus verursacht werden. Daher wurde die Trajektorie
auch mittels der TransformationEstimationSVD-Klasse rekonstruiert. Die Ergebnisse dieser
Berechnung ist in den folgenden Abbildungen dargestellt.
0
x[m]
−10
−20
−30
−40
0
5
10
15
20
25
30
35
t[s]
40
45
50
55
60
65
70
Abb. 4.11: Vergleich der x-Position aus Navigationslösung und optischer Navigation mittels
TransformationEstimationSVD
4.4 Bestimmung der Eigenbewegung und Vergleich mit Navigationsdaten
50
y[m]
0
−20
−40
−60
0
5
10
15
20
25
30
35
t[s]
40
45
50
55
60
65
70
Abb. 4.12: Vergleich der y-Position aus Navigationslösung und optischer Navigation mittels
TransformationEstimationSVD
−20
z[m]
−10
0
10
20
0
5
10
15
20
25
30
35
t[s]
40
45
50
55
60
65
70
Abb. 4.13: Vergleich der Flughöhe aus Navigationslösung und optischer Navigation mittels
TransformationEstimationSVD
Die Ergebnisse zeigen, dass einige der Störungen und Abweichungen, die bei Verwendung des
ICP-Algorithmus auftreten, durch fehlerhafte Korrespondenzen innerhalb des ICP hervorgerufen
werden. Abbildung 4.13 zeigt deutlich, dass in dem Bereich bei ab Sekunde 40 hier die Flughöhe
deutlich besser approximiert wird, während der Bereich im in den Graphen des ICP-Algorithmus
stark verrauscht ist.
4.4 Bestimmung der Eigenbewegung und Vergleich mit Navigationsdaten
51
Allerdings treten bei Verwendung der TransformationEstimationSVD-Klasse einige starke
Sprünge auf, die auf Ausreißer zurückgeführt werden können. Diese werden in der Klasse
aufgrund der fehlenden RANSAC Outlier Rejection nicht gefiltert und verfälschen somit stark
das Messergebnis.
Zusammenfassend lässt sich dadurch sagen, dass die rekonstruierten Raumpunkte für die optische Navigation geeignet sind, auch wenn in den Ergebnissen noch einige starke Abweichungen
vorkommen. Im folgenden Kapitel werden daher im Ausblick noch einige Ideen zur Verbesserung
der Ergebnisse präsentiert.
KAPITEL
5
Zusammenfassung
5.1 Verfahren im Überblick
Im Rahmen dieser Bachelorarbeit wurde ein Verfahren für die Verfolgung markanter Features
und die Rekonstruktion der Raumkoordinaten dieser Features mit Hilfe kalibrierter Stereokameras entwickelt. Die Methode nutzt zum Verfolgen der Features und für das Finden
korrespondierender Punkte eine effiziente Implementierung des pyramidischen Lucas-KanadeTrackers. Das bietet den Vorteil der Echtzeitfähigkeit des Verfahrens, was essentiell für eine
robuste Navigation an einem UAV ist. Des Weiteren bietet der verwendete Tracker den Vorteil,
dass die verwendeten Bilddaten nicht zwingend rektifiziert sein müssen und somit das Verfahren
auch auf ungefilterten Bilddaten anwendbar ist.
Um die Genauigkeit der ermittelten Punktkoordinaten zu gewährleisten, sollten über eine
Kalibrierung der Stereokamera die notwendigen Parameter für die Berechnungen ermittelt
werden und auch die Möglichkeit bestehen, einzelne Punkte in ihre Koordinaten im rektifizierten
und entzerrten Bild zu transformieren, beispielsweise wie in der Arbeit verwendet durch
eine Rektifizierungsmatrix R. Eine solche Rektifizierungsmatrix bietet den Vorteil, nicht das
komplette Bild rektifizieren zu müssen, sondern lediglich die getrackten Bildpunkte und deren
Korrespondenzen im Stereobild in ihre rektifizierten Koordinaten zu transformieren, um einen
möglichst genauen Tiefenwert zu ermitteln.
Die Einstellmöglichkeiten des FeatureTrackers sowie des TrackedObjectFilters ermöglichen
eine Anpassung an verschiedene Situationen und Kamerasysteme, sodass auch in schlecht
ausgerichteten Kameras erfolgreich Korrespondenzen gefunden und getrackt werden können.
52
5.2 Ausblick auf zukünftige Arbeiten
53
Das Verfahren läuft dabei robust und liefert je nach Kamerasystem und dort verwendeten
Basisabstand für die optische Navigation ausreichend genaue Raumpunktdaten. Der Vergleich
zur Höhe der Navigationslösung aus GPS und IMU hat dabei gezeigt, dass die rekonstruierten
Tiefen der Punkte innerhalb des zu erwartenden Fehlerrahmens liegen.
Schwachstellen bietet das Verfahren allerdings bei stark verrauschten oder extrem überbelichteten Bilddaten. Dort werden vom verwendeten Feature-Tracker unter Umständen einige
markante Punkte in nicht optimalen Bereichen gefunden, die das Ergebnis verfälschen können.
Sind die Bilddaten zu stark überbelichtet, kann das zu Problemen führen, wenn nur noch
kleinere Bildbereiche ausreichend texturiert sind, um dort markante Features zu finden. Direkt
bei der Auswertung der Bilddaten aus den Flugversuchen ist aufgefallen, dass besonders in
geringer Flughöhe, also einer sehr geringen Distanz von Kamera zum gefilmten Hintergrund,
die Korrespondenzen nicht immer automatisch gefunden werden und somit keine oder nur
wenige gültige Raumkoordinaten berechnet werden können. Diese Einschränkung, die besonders
beim automatischen Landen kritisch wird, kann unter Umständen durch eine Anpassung der
Tracking-Parameter oder durch die Nutzung zusätzlicher Sensoren wie beispielsweise einem
Sonarsensor als zusätzliche Tiefeninformation kompensiert werden.
Um die Eignung der ermittelten Punktdaten für die optische Navigation zu testen, wurde
mit Hilfe des Iterative-Closest-Point-Algorithmus und einer RANSAC Outlier Rejection ein
Filter entwickelt, der aus zwei Punktmengen die relative Eigenbewegung des Fluggeräts
rekonstruieren kann und zu jedem Zeitschritt die relative Bewegung als Rotationsmatrix und
Translationsvektor ausgibt. Da die gewählten Korrespondenzen zwischen den Punktmengen im
ICP-Algorithmus fehlerhaft sein können, die eigentlichen Korrespondenzen aber bekannt sind,
wurde die Bewegung auch mit Hilfe der TransformationEstimationSVD-Klasse rekonstruiert, da
dort die Korrespondenzen vorgegeben werden können. Zwar ist die damit durch Akkumulation
der Werte ermittelte Flugbahn durch den dabei zunehmenden Fehler nicht so exakt wie die
Positions- und Bewegungsdaten der Navigationslösung, dennoch dürften die Werte für eine
Verbesserung der Navigation besonders bei Ausfall des GPS-Sensors beitragen können.
5.2 Ausblick auf zukünftige Arbeiten
Die Schwachstellen des entwickelten Verfahrens geben einige Inspiration für zukünftige und
weiterführende Arbeiten. In der Aufgabe des Trackings könnte ein zukünftiger Fokus auf einer
genaueren Untersuchung der Genauigkeit des Trackings markanter Punkte liegen. Dies kann
zum einen durch die Verwendung anderer Verfahren zur Bestimmung markanter Punkte im Bild
geschehen, beispielsweise das SIFT - [Low04] oder SURF -Verfahren [BTG06]. Des Weiteren
kann versucht werden, die Genauigkeit des Trackings durch das Finden optimierter Parameter
5.2 Ausblick auf zukünftige Arbeiten
54
für den Lucas-Kanade-Tracker zu finden, da diese je nach verwendetem Kamerasystem und der
Leistung des Bildverarbeitungsrechners unterschiedlich sein können. So kann zum Beipiel eine
Anpassung der Tiefe der Bildpyramiden sowie eine Erhöhung der Iterationen beim Tracken zu
einem genaueren Ergebnis führen, wobei aufgrund des erhöhten Rechenaufwands allerdings ein
Kompromiss gefunden werden muss. Hirschmüller [HG09] präsentiert dafür ein Filterverfahren,
um die Akkumulation von Tracking-Fehlern im Subpixelbereich zu vermindern und somit die
Genauigkeit des Trackings zu verbessern.
Neben der allgemeinen Verbesserung des Trackings markanter Punkte und der Suche nach
korrespondierenden Punkten im rechten Stereobild, stehen weitere Verfahren zur Filterung von
Fehlschätzungen oder zum Eliminieren von Außenseitern zur Verfügung. Durch eine Betrachtung der Fehlerwerte aus der Ausgabe des Lucas-Kanade-Trackers ist es unter Umständen
möglich, gefundene Korrespondenzen auf deren Genauigkeit und Richtigkeit zu untersuchen
und somit falsche Korrespondenzen zu verwerfen. Der in dieser Arbeit festgestellte Offset der
vertikalen Disparität lässt sich in zukünftigen Arbeiten auch für eine Verbesserung der aus der
Kamerakalibierung gewonnenen Parameter einsetzen. Damit könnten sich die Ungenauigkeiten
der Rektifizierung verkleinern und somit eine bessere Filterung der Ergebnisse erzielen.
Statt dem in dieser Arbeit verwendeten Kontroll-Tracking über den rechten Bildverlauf könnte
in zukünftigen Arbeiten auch alternativ das Suchen von Korrespondenzen vom rechten ins linke
Kamerabild implementiert werden. Wird bei diesem Tracking der linke Bildpunkt möglichst
exakt wiedergefunden, sind mit hoher Wahrscheinlichkeit die richtigen korrespondierenden
Punkte gefunden.
Zur Validierung der gemessenen Punkte könnte in zukünftigen Arbeiten der Vergleich mit
Werten eines Laserscanners dienen. In Testaufnahmen mit verschiedenen Tiefen könnten so über
das ganze Bild die Tiefenwerte der verfolgten Features auf ihre Genauigkeit untersucht werden.
Dadurch lassen sich auch Ungenauigkeiten in den verwendeten Kamerasystemen feststellen,
wie bereits von Isleib [Isl08] untersucht wurde.
Nicht nur bei der Rekonstruktion der Raumpunkte, auch bei der Berechnung der relativen
Kamerabewegung gibt es einige mögliche Erweiterungen und Verbesserungen für zukünftige
Arbeiten. So könnte beispielsweise die zunehmende Tiefenungenauigkeit der Raumpunkte in
der Stereobearbeitung betrachtet werden. Insbesondere im Punktwolkenmatching wäre dabei
die Mahalanobis-Distanz interessant [Isl08].
Als weiterführende Arbeit wäre außerdem der Vergleich verschiedener Verfahren zur Berechnung
der Kamerabewegung oder zur vorherigen Filterung von Außenseitern denkbar. Neben dem
ICP-Verfahren, wie es in dieser Arbeit verwendet wird, könnte beispielsweise der Ansatz von
Hirschmüller [HIG02b] genutzt werden.
5.2 Ausblick auf zukünftige Arbeiten
55
Des Weiteren besteht die Möglichkeit, den zunehmenden Fehler durch Verwendung so genannte
Keyframes zu verkleinern. Dabei wird nicht nur die Bewegung der Punkte zwischen zwei
Zeitschritten betrachtet, sondern auch deren Transformation über einen längeren Zeitpunkt
berechnet, was zu einer geringeren Fehlerakkumulation führen kann.
Primär soll die ermittelte Kamerabewegung dazu genutzt werden, die im Flugrechner erzeugte
Navigationslösung zu verbessern, beziehungsweise bei einem Ausfall des GPS-Sensors (z. B.
durch Signalabschattung oder Empfangsstörung) den von der IMU verursachten Drift zu
kompensieren. Dadurch soll erreicht werden, dass auch in solch kritischen Situationen der
Hubschrauber seine Position und Bewegung ausreichend exakt bestimmen kann, um nicht
abzustürzen. Um dies zu erreichen könnte in weiterführenden Anwendungen die ermittelte Kamerabewegung an den Flugrechner übertragen werden, um in den dort verwendeten erweiterten
Kalman-Filter einzugehen und in die Navigationslösung einberechnet zu werden.
Gleichzeitig besteht durch die ständige Verbindung des Flugrechners und des Bildverarbeitungsrechners über LAN die Möglichkeit, während des Fluges die Sensordaten der Navigation
zu benutzen, um die Bildverarbeitungsprozesse zu verbessern und zu beschleunigen. So ist
bei diesem so genannten tight coupling, beispielsweise durch eine bekannte Bewegung in der
Navigationslösung, ein A-priori-Wissen vorhanden, welches dem Feature-Tracker eine initiale
Schätzung der Positionsänderung der Features zwischen zwei Zeitschritten gibt. Dieses Apriori-Wissen kann auch für die Berechnung der Eigenbewegung genutzt werden, um die dort
verwendeten Verfahren zu beschleunigen und exaktere Ergebnisse zu ermöglichen.
Literatur
[AH88]
N. Ayache und C. Hansen. Rectification of images for binocular and trinocular
stereovision. English. Techn. Ber. RR-0860. INRIA, 1988.
[AHB87]
K. S. Arun, T. S. Huang und S. D. Blostein. „Least Squares Fitting of Two 3-D
Point Sets“. Pattern analysis and Machine Intelligence, IEEE Transactions on
PAMI-9.5 (Sep. 1987), S. 698–700.
[AKI05]
M. Agrawal, K. Konolige und L. Iocchi. „Real-time detection of independent motion
using stereo“. IEEE workshop on Motion (WACV/MOTION). Jan. 2005.
[And06]
F. Andert. Stereobildbasierte Kollisionsvermeidung für einen unbemannten Kleinhubschrauber. Diplomarbeit. DLR / HU Berlin. 2006.
[And11]
F. Andert. „Bildbasierte Umgebungserkennung für autonomes Fliegen“. Dissertation.
DLR FB 2011-09. Braunschweig: Technische Universität Carolo-Wilhelmina, 2011.
[BM92]
P. Besl und H. McKay. „A method for registration of 3-D shapes“. Pattern Analysis
and Machine Intelligence, IEEE Transactions on 14.2 (Feb. 1992), S. 239 –256.
[Bou00]
J. Bouguet. Pyramidal implementation of the Lucas Kanade feature tracker. Techn.
Ber. Intel Corporation, Microprocessor Research Labs, 2000.
[Bro71]
D. C. Brown. „Close-range camera calibration“. Photogrammetric Engineering 37.8
(1971), S. 855–866.
[BTG06]
H. Bay, T. Tuytelaars und L. V. Gool. „Surf: Speeded up robust features“. ECCV.
2006, S. 404–417.
[CDL04]
P. Castillo, A. Dzul und R. Lozano. „Real-time stabilization and tracking of a
four-rotor mini rotorcraft“. 12.4 (2004), S. 510–516.
[Fau93]
O. Faugeras. Three-dimensional computer vision: a geometric viewpoint. Cambridge,
MA, USA: MIT Press, 1993.
[Fau95]
O. Faugeras. „Stratification of three-dimensional vision: projective, affine, and
metric representations“. J. Opt. Soc. Am. A 12.3 (März 1995), S. 465–484.
56
Literatur
57
[Fua93]
P. Fua. „A parallel stereo algorithm that produces dense depth maps and preserves
image features“. Machine Vision and Applications 6.1 (1993), S. 35–49.
[Goo04]
L. Goormann. „Objektorientierte Bildverarbeitungsalgorithmen zum relativen Hovern
eines autonomen Helikopters“. Diplomarbeit. DLR / FH Braunschweig/Wolfenbüttel, 2004.
[Gut04]
O. Guth. „Biologisch inspirierte Bildverarbeitungsalgorithmen zur Realisierung eines
Geländefolgefluges für einen autonomen Kleinhubschrauber“. Diplomarbeit. DLR /
FH Braunschweig/Wolfenbüttel, 2004.
[HG09]
H. Hirschmüller und S. Gehrig. „Stereo matching in the presence of sub-pixel
calibration errors“. Computer Vision and Pattern Recognition, 2009. CVPR 2009.
IEEE Conference on. Juni 2009, S. 437 –444.
[HIG02a]
H. Hirschmüller, P. R. Innocent und J. Garibaldi. „Real-Time Correlation-Based
Stereo Vision with Reduced Border Errors“. Int. J. Comput. Vision 47.1-3 (Apr.
2002), S. 229–246.
[HIG02b]
H. Hirschmüller, P. Innocent und J. Garibaldi. „Fast, unconstrained camera motion
estimation from stereo without tracking and robust statistics“. Control, Automation,
Robotics and Vision, 2002. ICARCV 2002. 7th International Conference on. Bd. 2.
Dez. 2002, 1099 –1104 vol.2.
[HZ04]
R. Hartley und A. Zisserman. Multiple View Geometry in Computer Vision. Second
Edition. Cambridge University Press, 2004.
[Isl08]
C. Isleib. „Bildbasierte Bewegungsschätzung eines unbemannten Helikopters“. Diplomarbeit. DLR / Universität Koblenz-Landau, 2008.
[KAK04]
T. Kanade, O. Amidi und Q. Ke. „Real-Time and 3D Vision for Autonomous Small
and Micro Air Vehicles“. 43rd IEEE Conference on Decision and Control (CDC
2004). Dez. 2004.
[Kon97]
K. Konolige. „Small vision systems: hardware and implementation“. Eighth International Symposium on Robotics Research. 1997, 111–116.
[LK81]
B. D. Lucas und T. Kanade. „An Iterative Image Registration Technique with an
Application to Stereo Vision“. Seventh International Joint Conference on Artificial
Intelligence (IJCAI-81). 1981, S. 674–679.
[Lon87]
H. C. Longuet-Higgins. „Readings in computer vision: issues, problems, principles,
and paradigms“. Hrsg. von M. A. Fischler und O. Firschein. San Francisco, CA,
USA: Morgan Kaufmann Publishers Inc., 1987. Kap. A computer algorithm for
reconstructing a scene from two projections, S. 61–62.
[Low04]
D. G. Lowe. „Distinctive Image Features from Scale-Invariant Keypoints“. Int. J.
Comput. Vision 60.2 (Nov. 2004), S. 91–110.
Literatur
58
[Luh00]
T. Luhmann. Nahbereichsphotogrammetrie: Grundlagen, Methoden und Anwendungen. Wichmann Herbert, 2000.
[MS06]
A. Milella und R. Siegwart. „Stereo-based ego-motion estimation using pixel tracking
and iterative closest point“. in IEEE International Conference on Computer Vision
Systems. 2006, S. 21.
[NNB06]
D. Nister, O. Naroditsky und J. Bergen. „Visual odometry for ground vehicle
applications“. Journal of Field Robotics 23 (2006), S. 2006.
[RC11]
R. B. Rusu und S. Cousins. „3D is here: Point Cloud Library (PCL)“. IEEE
International Conference on Robotics and Automation (ICRA). Shanghai, China,
Mai 2011.
[SH10]
H. Su und B. He. „A Simple Rectification Method of Stereo Image Pairs with
Calibrated Cameras“. Information Engineering and Computer Science (ICIECS),
2010 2nd International Conference on. Dez. 2010, S. 1 –4.
[SRI08]
SRI. Small Vision System. Softwareversion 4.4f. SRI International. Mai 2008.
[SS02]
D. Scharstein und R. Szeliski. „A Taxonomy and Evaluation of Dense Two-Frame
Stereo Correspondence Algorithms“. Int. J. Comput. Vision 47 (1-3 Apr. 2002),
S. 7–42.
[ST94]
J. Shi und C. Tomasi. „Good features to track“. Computer Vision and Pattern
Recognition, 1994. Proceeding CVPR ’94, 1994 IEEE Computer Society Conference.
1994, S. 593–600.
[TV98]
E. Trucco und A. Verri. Introductory Techniques for 3-D Computer Vision. Upper
Saddle River, NJ, USA: Prentice Hall PTR, 1998.
[Wil98]
T. Williamson. A High-Performance Stereo Vision System for Obstacle Detection.
Techn. Ber. CMU-RI-TR-98-24. Pittsburgh, PA: Robotics Institute, Carnegie Mellon
University, Sep. 1998.
[ZCL10]
W. Zheng, Y.-H. Chang und Z.-Z. Li. „A study of 3D feature tracking and localization using a stereo vision system“. Computer Symposium (ICS), 2010 International.
Dez. 2010, S. 402 –407.
[Zha98]
Z. Zhang. „Determining the Epipolar Geometry and its Uncertainty: A Review“.
Int. J. Comput. Vision 27 (2 Apr. 1998), S. 161–195.