03.01.2013 Aufrufe

Schriftliche Ausarbeitung herunterladen

Schriftliche Ausarbeitung herunterladen

Schriftliche Ausarbeitung herunterladen

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

42 KAPITEL 4. IMPLEMENTIERUNG<br />

Ansteuerung der Stereokamera<br />

Zur Ansteuerung der Bumblebee stehen unter [29] das Digiclops- und Triclops-API von Point Grey zur<br />

Verfügung. Beide können in C/C++ Programme eingebunden werden und ermöglichen eine weitgehend<br />

komfortable, jedoch recht hardwarenahe Abfrage der Kamera beziehungsweise des zur Positionsbestimmung<br />

notwendigen Tiefenbildes. Das Digiclops API dient zur Ansteuerung der Kameras und Abfrage<br />

der Einzelbilder. Das Triclops SDK enthält Funktionen zur schnellen Messung von Distanzen zu Pixeln<br />

im Bild und unterstützt die Generierung von Disparitätsbildern aus linkem und rechtem Bild der<br />

Stereokamera.<br />

CBumblebee - Eine Klasse zur Ansteuerung der Bumblebee: Aufgrund der Hardwarenähe der<br />

APIs wurden die Aufrufe zur Ansteuerung der Kamera und Abfrage der Tiefeninformationen in einer<br />

Wrapper-Klasse zusammengefasst. Neben der in den meisten Beispielen verwendeten Methode,<br />

zunächst über triclopsGetImage16() das Disparitätsbild zu extrahieren und daraus durch Aufrufe von<br />

triclopsRCDToXYZ() für jeden Pixel einen Tiefenwert zu berechnen, steht zusätzlich die Funktion triclopsExtractImage3d()<br />

zur Verfügung. Diese fasst die Schritte zusammen und liefert direkt die benötigten<br />

Tiefeninformationen. Aufgrund vergleichbarer Performance beider Methoden und der leichteren Handhabung,<br />

wurde die zweite in der CBumblebee-Klasse verwendet, um die Abstandsinformationen für den<br />

späteren Vergleich mit der realen Szene zu berechnen.<br />

4.1.4 Verfahren zur Berechnung der Stereobilder<br />

Die automatische Synchronisation der Kameras im Bumblebee Stereokameramodul ermöglicht eine<br />

selbst für schnelle Kamerabewegungen ausreichend synchrone Akquisition von Stereobildpaaren. Diese<br />

können dank interner Entzerrung und Rektifizierung direkt über einen Stereoalgorithmus in ein Disparitätsbild<br />

umgerechnet werden. Es standen drei Implementierungen zur Berechnung des Stereodisparitätsbildes<br />

zur Verfügung, die in den folgenden Absätzen kurz vorgestellt werden.<br />

1. Die in Abschnitt 2.3.3 beschriebene Studienarbeit verwendet zur Berechnung der Stereodisparität<br />

einen an der Carnegie Mellon University implementierten Stereoalgorithmus. Da dieser allerdings<br />

zur Berechnung des Disparitätsbildes mehrere Sekunden benötigt, eignet er sich nicht zum Einsatz in<br />

Echtzeit-Anwendungen.<br />

2. In der OpenCV Dokumentation [26] findet sich über den Link „Experimental Functionality“ die Beschreibung<br />

einiger Funktionen, die nicht in der offiziellen Dokumentation des OpenCV Pakets enthalten<br />

sind. Hier wird unter anderem die Funktion cvFindStereoCorrespondence() erwähnt, welche es ermöglicht,<br />

aus zwei rektifizierten Grauwertbildern anhand des nach Birchfield et al. [30] implementierten<br />

Stereoalgorithmus ein Tiefenbild der Szene zu berechnen.<br />

3. Über die Triclops-API von Point Grey steht ebenfalls eine Implementierung zur Berechnung des<br />

Tiefenbilds aus den linken und rechten Einzelbildern der Bumblebee zur Verfügung. Diese wird über<br />

die CBumblebee-Klasse bereitgestellt und ermöglicht eine schnelle Abfrage des gewünschten Disparitätsbildes.

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!