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