Schriftliche Ausarbeitung herunterladen
Schriftliche Ausarbeitung herunterladen
Schriftliche Ausarbeitung herunterladen
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.