Stereo Vision

Gewöhnliche Kameras erzeugen Bilder durch die Projektion einer dreidimensionalen Szene auf eine zweidimensionale Ebene (d.h. die Bildebene). Bei dieser Abbildung wird eine Dimension verloren, diese entspricht der Tiefe des Bildes, d.h. der Abstand zwischen der Kamera und dem abgebildeten Objekt. Die Tiefeninformation kann aus zwei (oder mehr) Bilder, welche aus unterschiedlichen (bekannten) Blickrichtungen aufgenommen wurden, zurückgewonnen werden. Dieser Prozess wird Stereo Vision genannt. Aus der gewonnenen Bildtiefe kann sofort ein dreidimensionales Model (d.h. Rekonstruktion) der Szene erstellt werden und anschließend kann dieses mit den Kamerabildern texturiert werden.

Ein Programm für die automatische Rekonstruktion muss:

  • Korrespondierende Punkte in beiden Bildern finden.
  • Für alle gefundenen Korrespondenzen eine Triangulation unter Berücksichtigung der internen und externen Geometrie der Kameras (Kalibrierung) durchführen, um die dreidimensionalen Punkte zu gewinnen.

Der erste Schritt ist normalerweise die zeitintensive und fehleranfällig Suche nach Korrespondenzen in den Bildern und ein wichtiges Forschungsthema. Letzteres ist eine exakte geometrische Berechnung.

Genaues und Effizientes Stereo Matching

Originalbild
Disparität aus einem korrelationsbasierten Verfahren
Disparität unter Verwendung des SGM

Für Anwendungen in der Echtzeit Robotik sind schnelle Stereo Vision Systeme, welche mindestens ein paar Bilder pro Sekunde verarbeiten können, im Idealfall mit der Bildwiederholungsfrequenz, erforderlich. Zusätzlich müssen diese in Echtzeit berechneten Ergebnisse genau sein. Auf den ersten Blick scheint die Prozessierung von großen Luftbildaufnahmen (z.B. 1000MPixel) zur Rekonstruktion eine sehr verschiedene Problemstellung zu sein. Allerdings ist auch hier auf Grund der enormen Bildgrößen eine effiziente Berechnung erforderlich und exakte Resultate sind dabei unverzichtbar. Deshalb erfordern beide Applikationen sehr ähnliche Lösungsansätze, welche bei kurzer Rechenzeit gute Ergebnisse liefern.

Zuerst wurde ein verbessertes korrelationsbasiertes Echtzeit Stereo Verfahren implementiert (Hirschmüller et al., 200, Hirschmüller 2003). Das Hauptaugenmerk dieser Forschung war die Verbesserung der Genauigkeit des Stereoverfahrens, besonders an scharfen Objektgrenzen. Diese stellen ein Problem für korrelationsbasierte Verfahren dar.

Dann wurde eine neue Methode namens SGM entwickelt, welche anstatt Bildausschnitte mittels Korrelation einzelne Pixel zuordnet. Durch die Zuordnung von Pixeln anstelle von Bildregionen konnte die Genauigkeit im Bereich von Objektgrenzen erhöht werden. Die lokale Zuordnung einzelner Pixel wird durch eine globale Energiefunktion gesteuert, welche die Glätte von Oberflächen genauso modelliert, wie scharfe Kanten. Stereoverfahren, die eine globale Energiefunktion benutzten sind in der Literatur gut untersucht. Allerdings sind deren Implementierungen auf Grund des komplexen Minimierungsproblem über der globalen Energiefunktion sehr langsam. SGM kombiniert Techniken von lokalen Verfahren (z.B. Stereo Korrelation) mit jenen von globalen Methoden (z.B. globale Energieminimierung). Das Ergebnis ist eine schnell minimierbare semi-globalen Energiefunktion von Pixelzuordnungen. Die Komplexität des neuen Verfahrens entspricht derer von korrelationsbasierten Stereoverfahren, d.h O(w·h·d). Deshalb wird angenommen, dass rechenzeitoptimierte Implementierungen dieser Methode in Echtzeit Anwendungen eingesetzt werden können.

Rechts werden Ergebnisse gezeigt, das erste Bild ist ein Ausschnitt einer großen Luftbild Aufnahme von einer Zeilenkamera (HRSC). In der Mitte und unten sind Tiefenbilder zu sehen. Umso heller der Grauton ist, umso höher ist der Pixel über dem Boden. Das Bild in der Mitte zeigt die Ergebnisse des früher verwendeten hierarchischen, korrelationsbasierten Stereoalgorithmus. Es ist leicht zu sehen, dass die scharfen Kanten der Häuser verschwommen sind. Das untere Bild zeigt Ergebnisse der neuen Methode (SGM), welche viel schärfere Ergebnisse entlang Objektgrenzen produziert.

Semi-Global Matching (SGM)

Semi-Global Matching (SGM) ist ein dichtes Stereomatching Verfahren, welches zur genauen 3D Rekonstruktion aus Bildpaaren genutzt werden kann. SGM versucht dabei für jeden Pixel eine Korrespondenz im anderen Bild zu finden. Dies wird durch eine globale Kostenfunktion unterstützt, welche entlang von 8 Pfadrichtungen über das Bild optimiert wird. Die Methode hat eine reguläre algorithmische Struktur und nutzt einfache Operationen. In der Kernschleife sind dies lediglich Additionen und Vergleiche ganzer Zahlen. Dadurch werden parallele Implementierungen auf der Grafikkarte oder einem FPGA möglich, welche sich für Echtzeitanwendungen eignen. Obwohl SGM in internationalen Vergleichen, in denen nur die Qualität bewertet wird, nicht mehr zu den führenden Methoden gehört (siehe Middlebury Benchmark und KITTI), ist die gute Mischung aus Geschwindigkeit, Parallelisierbarkeit, Qualität und Robustheit der Grund für den Erfolg von SGM in der Praxis.

SGM wird unter anderem in der Photogrammetrie eingesetzt. Die Entwicklung vieler kommerzieller photogrammetrische Softwarepakete wurde massiv durch das Erscheinen von SGM beeinflusst. Diese Tatsache wurde durch die Verleihung des Carl Pulfrich Preises 2011 gewürdigt.

SGM wird auch für Fahrerassistenzsysteme genutzt. Das 6D Vision System, welches von Daimler Forschern entwickelt wurde, nutzt eine Echtzeitimplementierung von SGM. Seit Sommer 2013 wird das 6D Vision System als Grundlage diverser kommerziell verfügbarer Fahrerassistenzsysteme in Serienfahrzeugen eingesetzt.

Am RMC wird SGM zur Umgebungsmodellierung aus Satelliten-, Luft- und Multikopterbildern, zur Analyses des Arbeitsbereichs von Robotern wie z.B. ROMO, und zur 3D modellierung eingesetzt. Eine Echtzeitimplementierung auf einem FPGA wird zur autonomen Navigation von fliegenden, laufenden und krabbelnden Robotern, sowie für planetare Rover genutzt. Die Geländerekonstruktion von Luftbilder wird von einer spezialisierten FPGA-Implementierung durchgeführt. Aktuell arbeiten wir an einer flexibleren und modernen Implementierung für unsere mobilen Roboter.

Ausgewählte Veröffentlichungen

Korbinian Schmid, Teodor Tomic, Felix Ruess, Heiko Hirschmüller und Michael Suppa (2013), Stereo Vision based indoor/outdoor Navigation for Flying Robots, IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS), November 2013, Tokyo Japan, Robocup Best Paper Award

Annett Stelzer, Heiko Hirschmüller und Martin Görner (2012), Stereo-Vision-Based Navigation of a Six-Legged Walking Robot in Unknown Rough Terrain, in the International Journal of Robotics Research, Special Issue on Robot Vision, Volume 31, Issue 4, pp. 381-402.

Heiko Hirschmüller und Daniel Scharstein (2009), Evaluation of Stereo Matching Costs on Images with Radiometric Differences, in IEEE Transactions on Pattern Analysis and Machine Intelligence, Volume 31(9), September 2009, pp. 1582-1599.

Heiko Hirschmüller (2008), Stereo Processing by Semi-Global Matching and Mutual Information, in IEEE Transactions on Pattern Analysis and Machine Intelligence, Volume 30(2), February 2008, pp. 328-341.

Heiko Hirschmüller (2005), Accurate and Efficient Stereo Processing by Semi-Global Matching and Mutual Information, IEEE CVPR, San Diego, USA, June 2005.

Heiko Hirschmüller (2003), Stereo Vision Based Mapping and Immediate Virtual Walkthroughs, Ph.D. Thesis, De Montfort University, Leicester, UK, June 2003.

Heiko Hirschmüller, Peter R. Innocent and Jon Garibaldi (2002), Real-Time Correlation-Based Stereo Vision with Reduced Border Errors, International Journal of Computer Vision, Volume 47 (1/2/3), April-June 2002, pp. 229-246.

Links