06.11.2013 Aufrufe

3D-Objektverfolgung mit Stereokameras zur ... - tinytall studios

3D-Objektverfolgung mit Stereokameras zur ... - tinytall studios

3D-Objektverfolgung mit Stereokameras zur ... - tinytall studios

MEHR ANZEIGEN
WENIGER ANZEIGEN

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.

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!