-
Stand der Technik
-
Die vorliegende Erfindung bezieht sich auf ein Verfahren zur Entzerrung eines Kamerabildes gemäß Anspruch 1, ein Verfahren zur Entzerrung eines Stereo-Kamerabildes gemäß Anspruch 8, ein Verfahren zur Komprimierung einer Nachschlagetabelle gemäß Anspruch 9 sowie auf ein Steuergerät gemäß Anspruch 10.
-
Die Stereo-Videobildverarbeitung hat für die Umfelderfassung in Fahrassistenzsystemen, für die Robotik und weitere Anwendungen aus der Automatisierungstechnik einen bedeutenden Stellenwert. Mit einem Stereo-Videosystem kann die räumliche Lage von Objekten im Kameravorfeld bestimmt werden. Beispielsweise lassen sich damit in Fahrassistenzsystemen eines Fahrzeugs Fußgänger im Fahrzeugvorfeld detektieren. Die Anforderungen an die Aufgabenstellungen der Bildverarbeitung nehmen dabei stetig zu. Dies betrifft insbesondere auch die Erhöhung der geometrischen Genauigkeit gekoppelt mit einer höheren Prozessierungsgeschwindigkeit.
-
Die
DE 102 29 336 A1 beschreibt ein Verfahren zur Kalibrierung von Bildsensorsystemen mittels eines Kalibrierobjekts.
-
Die
US 2008/0002879 beschreibt ein Verfahren bei dem die Vektoren für die Entzerrung im Pixeltakt jeweils mathematisch neu berechnet werden. Dies spart Speicher, erhöht aber die notwendige Rechenleistung zur fortlaufenden Berechnung der Entzerrungsvorschrift.
-
Offenbarung der Erfindung
-
Vor diesem Hintergrund wird mit der vorliegenden Erfindung ein Verfahren zur Entzerrung eines Kamerabildes, ein Verfahren zur Entzerrung eines Stereo-Kamerabildes, ein Verfahren zur Komprimierung einer Nachschlagetabelle und weiterhin ein Steuergerät, das diese Verfahren verwendet, gemäß den unabhängigen Patentansprüchen vorgestellt. Vorteilhafte Ausgestaltungen ergeben sich aus den jeweiligen Unteransprüchen und der nachfolgenden Beschreibung.
-
Kern der vorliegenden Erfindung ist ein Verfahren zur speichersparenden Kompression einer Nachschlagetabelle (Look-Up-Tabelle, LUT) und zur echtzeitfähigen Dekompression der Nachschlagetabelle, die für eine Rektifizierung eines Bildes, beispielsweise in einem Stereo-Video System, geeignet ist. Dadurch wird ein Verfahren zur Rektifizierung bzw. zur echtzeitfähigen Bildentzerrung ermöglicht, das als Teilschritt einer 3D-Stereomessung eingesetzt werden kann. Das Verfahren ist besonders für den Einsatz mit einer FPGA- oder ASIC-basierten Rechenhardware geeignet.
-
Im Vergleich zu bekannten Verfahren, kann erfindungsgemäß durch eine Kodierung der Nachschlagetabelle die zu speichernde und die zu transferierende Datenmenge so reduziert werden, wie sie bei der Echtzeitprozessierung benötigt wird. Dies spart für eine FPGA oder ASIC-basierte Hardware teuren Speicherplatz zur internen Speicherung der Nachschlagetabelle. Die erforderliche Bandbreite für Speicherzugriffe kann daher stark reduziert werden. Demgegenüber steht zwar eine zusätzlich durchzuführende Dekodierung, diese ist erfindungsgemäß jedoch mit sehr geringem Rechenaufwand realisierbar. Dies erlaubt die Stereo-Echtzeitverarbeitung mit einer kostengünstigen Hardware.
-
Die vorliegende Erfindung schafft ein Verfahren zur Entzerrung eines Kamerabildes, das die folgenden Schritte aufweist: Empfangen einer Mehrzahl von verzerrten Bildpunkten eines verzerrten Kamerabildes, über eine Schnittstelle; Empfangen einer komprimierten Entzerrungsvorschrift, über eine Schnittstelle; Dekomprimieren der komprimierten Entzerrungsvorschrift, um eine dekomprimierte Entzerrungsvorschrift zum Entzerren des verzerrten Kamerabildes zu erhalten; und Bestimmen einer Mehrzahl von entzerrten Bildpunkten eines entzerrten Kamerabildes aus der Mehrzahl von verzerrten Bildpunkten unter Verwendung der dekomprimierten Entzerrungsvorschrift.
-
Das Kamerabild kann eine Aufnahme einer optischen Bilderfassungsvorrichtung, beispielsweise einer Videokamera, repräsentieren. Somit kann es sich bei dem Kamerabild um ein Videobild handeln. Das Kamerabild kann aus der Mehrzahl einzelner Bildpunkte aufgebaut sein. Dabei können die Bildpunkte in einer vorbestimmten Weise, z. B. matrixförmig angeordnet sein, um das Kamerabild zu bilden. Das Kamerabild kann aufgrund intrinsischer und extrinsischer Parameter verzerrt sein. Diese Parameter können beispielsweise bei einer Kalibrierung der Bilderfassungsvorrichtung bestimmt und gespeichert werden. Um die entzerrten Bildpunkte aus den verzerrten Bildpunkten zu bestimmen, kann die Entzerrungsvorschrift eine Zuordnung zwischen den entzerrten und den verzerrten Bildpunkten aufweisen. Die Zuordnung kann auf den intrinsischen und extrinsischen Parametern basieren. Somit kann das verzerrte Kamerabild mittels der Entzerrungsvorschrift rektifiziert werden. Beispielsweise kann die Entzerrungsvorschrift dazu Verschiebungsvektoren aufweisen, die den verzerrten Bildpunkten eine neue Position zuweisen, um das entzerrten Bild zu erhalten. Die komprimierte Entzerrungsvorschrift kann die in der Entzerrungsvorschrift enthaltene Zuordnung in einer kodierten und insbesondere komprimierten Form aufweisen. Die komprimierte Entzerrungsvorschrift kann eine Nachschlagetabelle darstellen, die in einer komprimierten Form vorliegt. Bei der Verzerrung kann es sich z. B. um eine tonnenförmige oder um eine kissenförmige Verzerrung handeln. Das erfindungsgemäße Verfahren kann von einer geeigneten Vorrichtung, beispielsweise einem Steuergerät ausgeführt werden. Somit können das verzerrte Kamerabild und die komprimierte Entzerrungsvorschrift über eine oder mehrere Schnittstellen des Steuergerätes empfangen werden. Das verzerrte Kamerabild und die komprimierte Entzerrungsvorschrift können gleichzeitig oder zeitlich aufeinander folgend empfangen werden. Dabei kann für jeden Schritt des Empfangens eines verzerrten Kamerabildes ein Schritt des Empfangens einer komprimierten Entzerrungsvorschrift durchgeführt werden. Dies bedeutet, dass keine Speicherung der komprimierten Entzerrungsvorschrift in dem Steuergerät erforderlich ist. Insbesondere kann das Verfahren in Echtzeit ausgeführt werden. Somit können die Schritte des Empfangens der komprimierten Entzerrungsvorschrift, des Dekomprimierens und des Bestimmens einer Mehrzahl von entzerrten Bildpunkten innerhalb einer Zeitspanne ausgeführt werden, die gleich oder kleiner ist, als eine Zeitspanne, die zwischen dem Empfangen zweier aufeinander folgender verzerrter Kamerabilder liegt.
-
Erfindungsgemäß kann die dekomprimierte Entzerrungsvorschrift eine Mehrzahl von Verschiebungsvektoren aufweisen. Die Verschiebungsvektoren können Zuordnungen zwischen der Mehrzahl der verzerrten Bildpunkte und der Mehrzahl der entzerrten Bildpunkte definieren. Ein Verschiebungsvektor kann definieren, auf welche Art und Weise ein verzerrter Bildpunkt zu verschieben ist, um einen entzerrten Bildpunkt auszubilden. Ein Verschiebungsvektor kann somit korrespondierende Bildpunkte aus der Menge der verzerrten Bildpunkte und der Menge der entzerrten Bildpunkte einander zuordnen. Somit kann jedem entzerrten Bildpunkt oder alternativ für jeden verzerrten Bildpunkt mindestens ein Verschiebungsvektor zugeordnet sein. Die Verschiebungsvektoren können in einer Nach schlagetabelle angeordnet sein, die eine Struktur aufweisen kann, die einer Struktur der Bildpunkte des entzerrten Kamerabildes oder des verzerrten Kamerabildes entspricht.
-
Die komprimierte Entzerrungsvorschrift kann eine Mehrzahl von Verschiebungsvektoreinträgen aufweisen. Beim Dekomprimieren der komprimierten Entzerrungsvorschrift kann für jeden der Mehrzahl von entzerrten Bildpunkten ein Verschiebungsvektor aus der Mehrzahl von Verschiebungsvektoreinträgen bestimmt werden. Die Verschiebungsvektoreinträge können eine komprimierte Form der Verschiebungsvektoren darstellen. Zur Komprimierung und Dekomprimierung können bekannte Komprimierungsverfahren eingesetzt werden.
-
Gemäß einer Ausführungsform kann ein nachfolgender Verschiebungsvektor aus einem, einem nachfolgenden entzerrten Bildpunkt zugeordneten nachfolgenden Verschiebungsvektoreintrag und aus einem, einem vorangegangenen entzerrten Bildpunkt zugeordneten vorangegangenen Verschiebungsvektor bestimmt werden. Somit kann eine Information zum Bilden eines Verschiebungsvektors auf mehrere Verschiebungsvektoreinträge aufgeteilt sein. Der nachfolgende Bildpunkt, dem der nachfolgende Verschiebungsvektoreintrag und der nachfolgende Verschiebungsvektor zugeordnet sind, und der vorangegangene Bildpunkt, dem der vorangegangene Verschiebungsvektoreintrag und der vorangegangene Verschiebungsvektor zugeordnet sind, können in einer vorbestimmten Reihenfolge angeordnet sein. Beispielsweise können der nachfolgende Bildpunkt und der vorangegangene Bildpunkt benachbart angeordnet sein.
-
Hierbei kann der nachfolgende Verschiebungsvektoreintrag einen Differenzbetrag zu dem vorangegangenen Verschiebungsvektor definieren. Somit ist es ausreichend, wenn die komprimierte Entzerrungsvorschrift im Wesentlichen Veränderungen zwischen einzelnen Verschiebungsvektoren umfasst.
-
Gemäß einer weiteren Ausführungsform können die komprimierte Entzerrungsvorschrift eine Mehrzahl von Lauflängeneinträgen und eine Mehrzahl von Differenzänderungseinträgen aufweisen. Ein nachfolgender Verschiebungsvektor eines nachfolgenden entzerrten Bildpunkts kann einem vorangegangenen Verschiebungsvektor eines vorangegangenen entzerrten Bildpunkts entsprechen, wenn ein, dem nachfolgenden entzerrten Bildpunkt zugeordneter Lauflängeneintrag einen ersten Wert aufweist. Ferner kann der nachfolgende Verschiebungsvektor aus dem vorangegangenen Verschiebungsvektor und einem, dem nachfolgenden entzerrten Bildpunkt zugeordneten Differenzänderungseintrag bestimmt werden, wenn der, dem nachfolgenden entzerrten Bildpunkt zugeordnete Lauflängeneintrag einen zweiten Wert aufweist. Beispielsweise kann der erste Wert des zugeordneten Lauflängeneintrags eine logische Null und der zweite Wert eine logische Eins, oder umgekehrt darstellen. Somit können die Lauflängeneinträge abhängig von einer Anzahl aufeinander folgender, unveränderter Verschiebungsvektoren sein. Dabei kann eine Reihenfolge der einzelnen Verschiebungsvektoren vorgegeben sein, und beispielsweise einer Anordnung der entzerrten Bildpunkte des entzerrten Kamerabildes entsprechen. Ändert sich in einer der gegebenen Reihenfolge ein Wert eines Verschiebungsvektors, so kann eine entsprechende Änderung betragsmäßig und vorzeichenmäßig durch den entsprechenden Differenzänderungseintrag definiert werden. Auf diese Weise lässt sich die Größe der komprimierten Entzerrungsvorschrift weiter verringern. Alternativ können andere bekannte Kodierverfahren zur Datenkompression eingesetzt werden. Beispielsweise können Huffmann-Codes, die in
D. A. HUFFMAN: A Method for the Construction of Minimum Redundancy Codes, Proceedings of the IRE, 40, 1098–1101 (1952) beschrieben sind, oder LZW-Verfahren gemäß
US 4.558.302 eingesetzt werden.
-
Vorteilhafterweise können die Verfahrensschritte so ausgeführt werden, dass es sich um ein echtzeitfähiges Verfahren handelt. Ein solches Verfahren eignet sich beispielsweise zur Umfelderfassung in einem Fahrassistenzsystem eines Fahrzeugs.
-
Die vorliegende Erfindung schafft ferner ein Verfahren zur Entzerrung eines Stereo-Kamerabildes, das die folgenden Schritte aufweist: Empfangen einer Mehrzahl von ersten verzerrten Bildpunkten eines ersten verzerrten Kamerabildes und einer Mehrzahl von zweiten verzerrten Bildpunkten eines zweiten verzerrten Kamerabildes, über eine Schnittstelle; Empfangen einer ersten komprimierten Entzerrungsvorschrift und einer zweiten komprimierten Entzerrungsvorschrift, über eine Schnittstelle; Dekomprimieren der ersten komprimierten Entzerrungsvorschrift und der zweiten komprimierten Entzerrungsvorschrift, um eine erste dekomprimierte Entzerrungsvorschrift zum Entzerren des ersten verzerrten Kamerabildes und eine zweite dekomprimierte Entzerrungsvorschrift zum Entzerren des zweiten verzerrten Kamerabildes zu erhalten; und Bestimmen einer Mehrzahl von ersten entzerrten Bildpunkten eines ersten entzerrten Kamerabildes aus der Mehrzahl von ersten verzerrten Bildpunkten unter Verwendung der ersten dekomprimierten Entzerrungsvorschrift und einer Mehrzahl von zweiten entzerrten Bildpunkten eines zweiten entzerrten Kamerabildes aus der Mehrzahl von zweiten verzerrten Bildpunkten unter Verwendung der zweiten dekomprimierten Entzerrungsvorschrift. Dabei können die, dem ersten und dem zweiten Kamerabild zugeordneten Verfahrensschritte jeweils parallel ausgeführt werden. Die beiden entzerrten Kamerabilder können für eine Entfernungsbestimmung eingesetzt werden. Somit ist eine Echtzeit Stereo-Videoentzerrung im Falle von sehr hochauflösenden Videokameras möglich. Das erfindungsgemäße Verfahren kann auf Verfahren zur Stereo-Rektifizierung aufbauen, wie sie in der
WO 02/078346 A1 oder der
WO 02/095681 A1 beschrieben sind.
-
Die vorliegende Erfindung schafft ferner ein Verfahren zur Komprimierung einer Nachschlagetabelle zur Entzerrung eines Kamerabildes, das die folgenden Schritte aufweist: Empfangen einer Mehrzahl Verschiebungsvektoren über eine Schnittstelle, wobei die Mehrzahl von Verschiebungsvektoren Zuordnungen zwischen verzerrten Bildpunkten eines verzerrten Kamerabildes und entzerrten Bildpunkten eines entzerrten Kamerabildes definieren; Bestimmen einer Mehrzahl von Verschiebungsvektoreinträgen, wobei ein Verschiebungsvektoreintrag jeweils eine Veränderung zwischen mindestens zwei der Mehrzahl von Verschiebungsvektoren definiert; und Bereitstellen einer komprimierten Nachschlagetabelle, die die Mehrzahl von Verschiebungsvektoreinträgen aufweist. Die Verschiebungsvektoren können beispielsweise bei einer Kamerakalibrierung ermittelt werden. Zur weiteren Komprimierung können die Verschiebungsvektoreinträge weiter kodiert werden, beispielsweise mittels einer Lauflängenkodierung.
-
Die vorliegende Erfindung schafft ferner ein Verfahren zur Dekomprimierung einer komprimierten Nachschlagetabelle zur Entzerrung eines Kamerabildes, das die folgenden Schritte aufweist: Empfangen der komprimierten Nachschlagetabelle über eine Schnittstelle, wobei die Nachschlagetabelle eine Mehrzahl von Verschiebungsvektoreinträgen aufweist, die jeweils eine Veränderung zwischen mindestens zwei einer Mehrzahl von Verschiebungsvektoren definieren; Bestimmen der Mehrzahl von Verschiebungsvektoren aus der Mehrzahl von Verschiebungsvektoreinträgen, wobei die Mehrzahl von Verschiebungsvektoren Zuordnungen zwischen verzerrten Bildpunkten eines verzerrten Kamerabildes und entzerrten Bildpunkten eines entzerrten Kamerabildes definieren; und Bereitstellen der Mehrzahl von Verschiebungsvektoreinträgen.
-
Die vorliegende Erfindung schafft ferner ein Steuergerät oder eine Rechenhardware, die ausgebildet sind, um die Schritte des erfindungsgemäßen Verfahrens durchzuführen bzw. umzusetzen. Auch durch diese Ausführungsvariante der Erfindung in Form eines Steuergeräts kann die der Erfindung zugrunde liegende Aufgabe schnell und effizient gelöst werden.
-
Unter einem Steuergerät kann vorliegend ein elektrisches Gerät verstanden werden, das Sensorsignale verarbeitet und in Abhängigkeit davon Steuersignale ausgibt. Das Steuergerät kann eine Schnittstelle aufweisen, die hard- und/oder softwaremäßig ausgebildet sein kann. Bei einer hardwaremäßigen Ausbildung können die Schnittstellen beispielsweise Teil eines sogenannten System-ASICs sein, der verschiedenste Funktionen des Steuergeräts beinhaltet. Es ist jedoch auch möglich, dass die Schnittstellen eigene, integrierte Schaltkreise sind oder zumindest teilweise aus diskreten Bauelementen bestehen. Bei einer softwaremäßigen Ausbildung können die Schnittstellen Softwaremodule sein, die beispielsweise auf einem Mikrocontroller neben anderen Softwaremodulen vorhanden sind.
-
Von Vorteil ist auch ein Computerprogrammprodukt mit Programmcode, der auf einem maschinenlesbaren Träger wie einem Halbleiterspeicher, einem Festplattenspeicher oder einem optischen Speicher gespeichert ist und zur Durchführung des Verfahrens nach einem der vorstehend beschriebenen Ausführungsformen verwendet wird, wenn das Programm auf einem Steuergerät ausgeführt wird.
-
Zur Umsetzung einer Entzerrung in der Realität können die erfindungsgemäßen Ausführungsformen variiert werden. So kann eine Verarbeitung der Videobilddaten in einer Rektifizierungs-Hardware (z. B. FPGA + RAM) sequentiell erfolgen. Dabei ist ein Eingang vorgesehen, in den die Kamerabilddaten (Helligkeitswerte) im Pixeltaxt eingehen und es ist ein Ausgang vorgesehen, aus dem entzerrte Bilddaten im Pixeltaxt bereitgestellt werden. Ferner kann es einen Eingangspuffer geben, in dem eine begrenzte Anzahl Zeilen Eingangsbild abgelegt werden können. Somit wird nicht das gesamte Bild im Speicher abgelegt.
-
Ferner kann das entzerrte Ausgangsbild fortlaufend berechnet und daraus ein Ausgangssignal generiert werden. Das Ausgangsbild muss also in der Entzerrungshardware nicht gespeichert werden.
-
Für die Umsetzung in einem FPGA kann die LUT zur Entzerrung im FPGA selbst oder in einem externen RAM Baustein abgelegt werden. Bei der Ablage im kostengünstigeren externen RAM wird eine hohe Datentransferrate zwischen RAM und FPGA erzeugt, was sich ungünstig auswirkt. Bei der Ablage der kompletten LUT im FPGA wird viel, relativ teuerer Speicher, im FPGA benötigt.
-
Diese beiden Nachteile werden durch die Komprimierung der LUT vermieden. Die Komprimierung der LUT erfolgt gezielt so, dass diese im Pixeltakt mit begrenztem Rechenaufwand sequentiell zu dekodieren ist. Es liegt damit im Speicher des FPGA nur der aktuell dekodierte Vektor vor, der zur Berechnung des aktuellen Ausgangspixels benötigt wird. Die gesamte dekodierte LUT wird nicht in der Hardware komplett gespeichert.
-
Die Speicherung der komprimierten LUT kann sowohl im FPGA selbst oder extern im RAM erfolgen.
-
Somit kann eine sequentielle Bearbeitung erfolgen. Diese betrifft die Dekodierung der LUT und der Entzerrung des Bildes. Somit liegen die Bilder und die LUT nicht jeweils vollständig im Speicher der Hardware (FPGA) vor.
-
Ferner ist eine Speicherung der LUT im (FPGA/ASIC) selbst möglich. Dadurch ist ein mehrmaliges Übertragen der LUT nicht erforderlich.
-
Die Erfindung wird nachstehend anhand der beigefügten Zeichnungen beispielhaft näher erläutert. Es zeigen:
-
1 ein Prinzip einer Stereomessung und 3D-Triangulation;
-
2 einen Datenfluss zur Stereo-Videobildverarbeitung;
-
3 ein Prinzip der Bildentzerrung mit Hilfe einer Nachschlagetabelle
-
4 ein Prinzip der Vektordifferenzen innerhalb der Nachschlagetabelle.
-
5 ein Prinzip der Lauflängenkodierung einer differenziellen Nachschlagetabelle; und
-
6 einen Datenfluss einer Stereo-Videobildverarbeitung gemäß einem Ausführungsbeispiel der vorliegenden Erfindung.
-
In der nachfolgenden Beschreibung bevorzugter Ausführungsbeispiele der vorliegenden Erfindung werden für die in den verschiedenen Figuren dargestellten und ähnlich wirkenden Elemente gleiche oder ähnliche Bezugszeichen verwendet, wobei auf eine wiederholte Beschreibung dieser Elemente verzichtet wird.
-
1 zeigt ein Prinzip einer Stereomessung und einer 3D-Triangulation gemäß einem Ausführungsbeispiel. Gezeigt sind ein linkes Bild 101 und ein rechtes Bild 102. Die Bilder 101, 102 können jeweils von einer Kamera bzw. eines Stereo-Videosystems aufgenommen worden sein und eine Mehrzahl von Bildpunkten aufweisen. Beispielhaft sind im Bild 101 ein Bildpunkt pL und im Bild 102 ein Bildpunkt pR gezeigt. Die Bildpunkte pL und pR sind auf einer gemeinsamen Bildzeile 105 angeordnet. Eine Position des Bildpunktes pR in dem Bild 101 kann mittels eines x'-y'-Koordinatensystem angegeben werden. Eine Position des Bildpunktes pL in dem Bild 102 kann mittels eines x''-y''-Koordinatensystem angegeben werden. Die Bildpunkte pL und pR bilden einen realen Punkt p ab. Eine Entfernungsbestimmung des Punktes p kann aus den Positionen der Punkte pL und pR mittels Triangulation bestimmt werden.
-
Zur hochgenauen 3D-Bestimmung von geometrischen Merkmalen aus Stereo-Videobilddaten müssen die durch einen Kamerakalibrierungsprozess bestimmten intrinsischen und extrinsischen Parameter berücksichtigt werden. Die intrinsischen Parameter beschreiben, basierend auf einem Abbildungsmodell, den funktionalen Zusammenhang, den ein Bildstrahl ausgehend von einer physikalischen Oberfläche in der Objektszene durch das Objektiv der Kamera bis zu seiner Abbildung auf der Sensoroberfläche erfährt. Die intrinsischen Parameter beschreiben u. a. die optische Brennweite und die optische Verzeichnung. Die extrinsischen Parameter beschreiben dagegen die gegenseitige geometrische Anordnung der Kameras des Stereo-Videosystems zueinander. Dies ist die relative Position und Winkellage der Kameras zueinander. Bei einem Stereo-Videosystem wird im Allgemeinen das Projektionszentrum der einen Kamera relativ zum Projektionszentrum der anderen Kamera beschrieben, was auch mit relativer Orientierung bezeichnet wird.
-
Mit einem kalibrierten Stereo-Videosystem kann nun die aufgenommene Objektszene vermessen werden, indem korrespondierende Bildpunkte zuerst detektiert und dann durch einen Vorwärtsschnitt räumlich trianguliert werden. 1 zeigt schematisch den Vorgang der Stereomessung aus zwei Bildern 101, 102.
-
2 zeigt einen Datenfluss zur Stereo-Videobildverarbeitung gemäß einem Ausführungsbeispiel. Von einer ersten Kamera kann ein linker Bildstrom 211 und von einer zweiten Kamera ein rechter Bildstrom 212 empfangen werden. Der linke Bildstrom 211 kann ein erstes verzerrtes Stereobild A1 215 und der rechte Bildstrom 212 kann ein zweites verzerrtes Stereobild A2 216 bereitstellen. Ferner kann eine erste Nachschlagetabelle LUT1 217 und eine zweite Nachschlagetabelle LUT2 218 bereitgestellt werden. Die erste Nachschlagetabelle 217 kann dem linken Bildstrom 211 und die zweite Nachschlagetabelle 218 kann dem rechten Bildstrom 212 zugeordnet sein. Die Nachschlagetabellen 217, 218 können Informationen zur Entzerrung der jeweiligen Stereobilder 215, 216 umfassen. Aus dem ersten verzerrten Stereobild 215 und der ersten Nachschlagetabelle 217 kann mittels einer ersten Rektifizierung 221 ein erstes rektifiziertes Bild B1 223 ermittelt werden. Aus dem zweiten verzerrten Stereobild 216 und der zweiten Nachschlagetabelle 218 kann mittels einer zweiten Rektifizierung 222 ein zweites rektifiziertes Bild B2 224 ermittelt werden. Basierend auf den rektifizierten Bildern 223, 224 kann eine Stereomessung 227 durchgeführt werden. Basierend auf der Stereomessung können beispielsweise Entfernungsinformationen 229 bereitgestellt werden.
-
2 beschreibt allgemein ein Verfahren zur Echtzeit-Stereo-Bildverarbeitung. Der Datenstrom 211, 212 aus linker und rechter Kamera wird zunächst mit einer Recheneinheit rektifiziert 221, 222. Anschließend erfolgt eine Disparitätsmessung 227 zwischen dem linken und rechten Stereobildpaar 223, 224. Die Disparitätsmessung 227 erlaubt dann die 3D-Berechnung von Merkmalen im Kameravorfeld. Vorliegend wird ein Verfahren zur Rektifizierung beschrieben. Zur Echtzeit-Disparitätsmessung können bekannte Verfahren eingesetzt werden.
-
Gemäß diesem Ausführungsbeispiel zeigt 2 den möglichen Ablauf einer Stereomessung in einer Rechenhardware. Damit in den einzelnen Verarbeitungsschritten die durch Kalibrierung bestimmten intrinsischen und extrinsischen Parameter vereinfacht berücksichtigt bleiben können, werden zur optimierten Prozessierung die Bilddaten 215, 216 zunächst entzerrt bzw. rektifiziert 221, 222. Die geometrischen Zusammenhänge können dann mit einem einfachen Lochkameramodell beschrieben werden. Entzerrte Stereo-Bilddaten 223, 224 entsprechen dem sog. Stereonormalfall. Anschließend erfolgt eine Disparitätsmessung 227 zur Entfernungsbestimmung der 3D-Merkmale. Durch die Rektifizierung 221, 222 kann eine Disparitätsmessung 227 in einer Zeile des digitalen Bildes 223, 224 erfolgen, wodurch eine rechentechnische Umsetzung stark erleichtert wird.
-
Für die Echtzeit Stereo-Videobildentzerrung kommt erschwerend hinzu, dass im Takt der Bildaufnahme 215, 216 ebenfalls die Entzerrung 221, 222 zu prozessieren ist, da sie die Grundlage für Echtzeit-Algorithmen darstellt. Für die schnelle sequentielle Verarbeitung in einer Rechenhardware können für jeden Bildpunkt die Verschiebungsvektoren zwischen seiner Ist- (verzerrten) und Solllage (entzerrten) in Form der Nachschlagetabellen (LUT) 217, 218 vorab berechnet und in einem Speicher abgelegt werden. Für den Fall von Stereokameras sind zwei LUT's 217, 218 vorab zu berechnen. Eine LUT 217, 218 stellt die generische Rechenvorschrift zur Entzerrung eines Kamerabildes 215, 216 dar und beinhaltet Verschiebungsvektoren mit einem differentiellen dx und dy Anteil.
-
3 beschreibt ein Prinzip der Bildrektifizierung, auf der beispielsweise der in 2 gezeigte Verfahrensschritt der Rektifizierung 221 basieren kann. Dabei kann mit Hilfe einer empfangenen Nachschlagetabelle LUT 217 ein empfangenes Originalbild 215 in ein entzerrtes Bild 223 umgewandelt werden. Gemäß diesem Ausführungsbeispiel weist die Nachschlagetabelle 217 eine Mehrzahl von Einträgen 331, 332 auf. Die Einträge 331, 332 können Positionen 341, 342 des entzerrten Bildes 223 zugeordnet sein. Gemäß diesem Ausführungsbeispiel weist der Eintrag 331 einen Verschiebungsvektor 351 auf, der auf eine Position des Originalbildes 215 zeigt, an dem sich ein Bildpunkt befindet, der zur Bildentzerrung an der Position 341 des entzerrten Bildes angeordnet wird. Entsprechend dazu weist der Eintrag 332 einen Verschiebungsvektor 352 auf, der auf eine Position des Originalbildes 215 zeigt, an dem sich ein Bildpunkt befindet, der zur Bildentzerrung an der Position 342 des entzerrten Bildes angeordnet wird.
-
Bei der Echtzeit Stereo-Videobildentzerrung müssen für die Verarbeitung simultan die Datenströme von zwei Eingangsbildern, zwei Nachschlagetabellen und zwei Ausgangsbilder in der Recheneinheit verarbeitet werden. Das derzeit limitierende bei der Echtzeitprozessierung der genannten Aufgabe ist das Transferieren der Datenmengen, die sich durch die Eingangsbilder, Nachschlagetabellen und Ausgangsbilder ergeben. Die Verarbeitung von VGA Stereo-Videobildern mit einer Auflösung von 640 × 480 pel, 8 bit pro Pixel und 25 Hz erzeugt einen Bilddatenstrom von 128 Mbit/s. Das parallele Lesen der Nachschlagetabelle zur Rektifizierung aus einem Speicher in, z. B. eine FPGA basierte Recheneinheit erfordert die gleiche Datenrate. Dies macht eine echtzeitfähige Stereo-Hardware relativ teuer.
-
Die Alternative, nämlich eine Speicherung der Nachschlagetabellen z. B. in der FPGA-Recheneinheit verursacht wegen der Größe der Nachschlagetabellen einen hohen Speicherverbrauch im FPGA und erfordert den Einsatz teurerer FPGAs.
-
Die vorliegende Erfindung befasst sich insbesondere auf die Datenströme der beiden Nachschlagetabellen. Im Gegensatz zu den Bilddaten bleibt der zu transferierende Inhalt dieser Nachschlagetabellen gleich und stellt einen erheblich Anteil der Datenmenge dar. Anstatt diese vollständig zu übertragen wird eine Codierungs-/Decodierungsvorschrift angewendet, die die Datenmenge der Nachschlagetabellen erheblich reduziert. Die Codierung der Nachschlagetabellen wird vorab einmalig außerhalb der Echtzeitprozessierung durchgeführt. Die Dekodierung ist zu Gunsten der reduzierten Datenmenge dagegen in Echtzeit durchzuführen.
-
Eine Stereo-Rektifizierung ist vom Prinzip eine Verzerrung des Eingangsbildes und die Generierung eines Ausgangsbildes. Die Nachschlagetabelle enthält die Vorschrift für die Verzerrung. Eine Nachschlagetabelle für die Stereo-Rektifizierung enthält für jedes Pixel (xr, yr) des rektifizierten Bildes einen Verschiebungsvektor (dx, dy). Der Verschiebungsvektor bestimmt, aus welchem Pixel (x0, y0) des Eingangsbildes der Grauwert für die Position (xr, yr) zu entnehmen ist.
-
Der funktionale Zusammenhang lautet: x0 = xr + dx y0 = yr + dy
-
4 zeigt eine komprimierte Nachschlagetabelle ddx-LUT 417 gemäß einem Ausführungsbeispiel der vorliegenden Erfindung. Die komprimierte Nachschlagetabelle 417 weist eine Mehrzahl von Einträgen 431, 432 auf. Gemäß diesem Ausführungsbeispiel weist der Eintrag 431, der in der linken oberen Ecke angeordnet ist, den originalen Vektor auf, entsprechend der in 3 gezeigten Nachschlagetabelle. Der Eintrag 432 weist jedoch nicht den originalen Vektor auf, sondern eine Differenz. Ein aktueller Vektor zu dem Eintrag 432 ergibt sich aus dem zuvor berechneten Vektor 431 an der Nachbarposition plus dem aktuellen Eintrag 432 in der ddx-LUT Nachschlagetabelle 417. Somit kann die komprimierte Nachschlagetabelle 417 dekomprimiert werden, indem aktuelle Vektoren aus der Mehrzahl von Einträgen 431, 432 bestimmt werden. Die aktuellen Vektoren können in eine dekomprimierte Nachschlagetabelle eingetragen werden und für die Rektifizierung bereitgestellt werden. Abgesehen von dem Eintrag 432 kann die Nachschlagetabelle 417 somit lediglich Differenzbeträge aufweisen, die jeweils eine Differenz eines aktuellen Verschiebungsvektors zu einem zugeordneten benachbarten Verschiebungsvektor definieren, der vorzugsweise bereits bestimmt wurde.
-
Die Nachschlagetabelle stellt mathematisch ein Verschiebungsvektorfeld dar. Das ist in der Regel relativ glatt. Daher können erfindungsgemäß die Einträge der Nachschlagetabelle als Differenzen relativ zu den Nachbareinträgen beschrieben werden. Es entsteht eine „Differenzen LUT” 417, die im Folgenden als dd-LUT 417 bezeichnet wird. Wie in 4 dargestellt, ist berechnet sich der aktuelle Verschiebungsvektor durch die Dekodierung aus dem zuvor berechneten Verschiebungsvektor der Nachbarposition addiert mit dem aktuellen Eintrag der dd-LUT 417. Es gilt dx(x, y) = dx(x – 1, y) + ddx(x, y) dy(x, y) = dy(x – 1, y) + ddy(x, y)
-
Die Bildung der dd-LUT 417 ist ein erster Schritt des Kodierverfahrens.
-
Für eine digitale Verarbeitung müssen die Differenzen, d. h. die Einträge in der dd-LUT 417 diskretisiert werden. Damit lassen sich diese weiter kodieren. Aufgrund des schon erwähnten glatten Verlaufs des Verschiebungsvektorfeldes treten häufig Null-Einträge in den dd-LUT 417 auf. Daher bietet sich eine Lauflängenkodierung zur weiteren Komprimierung an.
-
5. zeigt ein Prinzip der Lauflängenkodierung einer differenziellen LUT 417, wie sie beispielsweise in 4 gezeigt ist. Gemäß diesem Ausführungsbeispiel weist die Nachschlagetabelle 417 im ersten Eintrag einen Wert des originalen Vektors auf. Die folgenden Einträge, weisen Differenzen zu dem jeweils vorangegangenen Eintrag auf. So weist ein dem ersten Eintrag 431 nachfolgender Eintrag 432 den Wert „+1” auf. Dies bedeutet, dass ein aktueller Vektor für diese Position gegenüber dem aktuellen Vektor der vorangegangenen Position, hier links benachbart, um Eins erhöht ist. Die zwei nachfolgenden Einträge weisen den Wert „0” auf. Dies bedeutet, dass sich die aktuellen Vektoren an diesen Positionen nicht von dem Vektor der vorangegangenen Position unterscheiden. Der nachfolgende Eintrag weist den Wert „–1” auf. Das bedeutet, dass sich der aktuelle Vektor für diese Position gegenüber dem vorangegangenen aktuellen Vektor um 1 erniedrigt. Die drei nachfolgenden Einträge weisen wieder den Wert „0” auf und ein weiterer nachfolgender Eintrag den Wert „+1”. Zur Lauflängenkodierung können Lauflängeneinträge und Differenzänderungseinträge eingesetzt werden.
-
So kann ein erster Lauflängeneintrag aufgrund der ersten zwei „0”-Einträge den Wert „2” und ein zweiter Lauflängeneintrag aufgrund der zweiten drei „0”-Einträge den Wert „3” aufweisen. Daraus ergibt die Kodierung eine Vektor mit dem Abstand zwischen Einträgen ungleich „0” zu a = [2, 3, ..., ...]. Die Differenzänderungseinträge, die eine Betragsänderung des aktuellen Vektors gegenüber einem vorangegangenen aktuellen Vektor anzeigen, können ebenfalls in einem Vektor zusammengefasst werden. Somit ergibt die Kodierung einen Vektor b mit [+1, –1] zu b = [1, 0, 1, ...]. Eine entsprechende kodierte Entzerrungsvorschrift kann gemäß diesem Ausführungsbeispiel den Verschiebungsvektor des ersten Eintrags 431 und den Vektor a sowie den Vektor b aufweisen. Aus diesen Informationen lassen sich die Verschiebungsvektoren für alle Einträge einer entsprechenden Nachschlagetabelle zum Entzerren des Bildes bestimmen.
-
Somit wird bei der gemäß dem in 5 gezeigten Ausführungsbeispiel in dem Vektor a der Abstand von den dd-LUT Einträgen ungleich Null gespeichert und in Vektor b der Zustand, ob es sich um eine positive oder negative Differenzenänderung handelt.
-
Die Lauflängenkodierung ist ein zweiter Schritt des Kodierverfahrens.
-
Die Rechenvorschrift der Dekodierung erfolgt aus dem invers angewandten Kodierverfahren.
-
6 zeigt einen veränderten Datenfluss der Stereo-Videobildverarbeitung gemäß einem Ausführungsbeispiel der vorliegenden Erfindung. In einem initialen Arbeitsschritt können die Nachschlagetabellen vorab kodiert werden. Die kodierten und damit von der Datenmenge reduzierten Nachschlagetabellen können dann an die Rechenhardware übertragen werden. Erfindungsgemäß wird der mögliche Ablauf einer Stereomessung in einer Rechenhardware um die Schritte des erfindungsgemäßen Verfahrens erweitert.
-
Basierend auf einer Kalibrierung einer ersten Kamera kann die erste Nachschlagetabelle LUT1 217 und basierend auf einer Kalibrierung einer zweiten Kamera kann die zweite Nachschlagetabelle LUT2 218 bestimmt werden. Die Kameras können Teil eines Stereo-Videosystems sein. Die Nachschlagetabellen 217, 218 können kodiert 610 werden. Beim Kodieren 610 der Nachschlagetabellen 217, 218 kann aus der ersten Nachschlagetabelle 217 eine erste komprimierte Nachschlagetabelle 617, in Form einer kodierten LUT1 bestimmt werden und aus der zweiten Nachschlagetabelle 218 eine zweite komprimierte Nachschlagetabelle 618, in Form einer kodierten LUT2 bestimmt werden.
-
Die komprimierten Nachschlagetabellen können gemäß dem erfindungsgemäßen Verfahren zur Rektifizierung, zum Entzerren des ersten Kamerabildes A1 215 und des zweiten Kamerabildes A2 216 eingesetzt werden. Das erste Kamerabild 215 kann über den linken Bildstrom 211 und das zweite Kamerabild 216 über den rechten Bildstrom 212 empfangen werden. Im Schritt 621 kann eine Dekodierung der ersten komprimierten Nachschlagetabelle 617 erfolgen, um eine dekodierte erste Nachschlagetabelle zu erhalten, die der ersten Nachschlagetabelle 217 entsprechen kann. Somit kann die dekodierte Nachschlagetabelle eine dekomprimierte Entzerrungsvorschrift mit einer Mehrzahl von Verschiebungsvektoren umfassen, die Zuordnungen zwischen der Mehrzahl der verzerrten Bildpunkte des Bildes 215 und der Mehrzahl der entzerrten Bildpunkte des entzerrten Bildes 223 definieren können. Anschließend kann eine Rektifizierung des ersten Kamerabilds 215 unter Verwendung der dekodierten ersten Nachschlagetabelle erfolgen, um das entzerrte erste Bild B1 223 zu erhalten. Entsprechend dazu kann im Schritt 622 kann eine Dekodierung der zweiten komprimierten Nachschlagetabelle 618 erfolgen, um eine dekodierte zweite Nachschlagetabelle zu erhalten, die der zweiten Nachschlagetabelle 218 entsprechen kann. Anschließend kann eine Rektifizierung des zweiten Kamerabilds 216 unter Verwendung der dekodierten zweiten Nachschlagetabelle erfolgen, um das entzerrte zweite Bild B2 224 zu erhalten. Basierend auf den Bildern 223, 224 kann die Stereomessung 227 durchgeführt werden, und die Entfernungsinformationen 229 bereitgestellt werden.
-
Für zeitlich nachfolgend empfangene Bilder, die entsprechend den Bildern 215, 216 empfangen werden, können die Schritte des Empfangens der Nachschlagetabellen 617, 618, sowie die Schritte 621, 622 der Dekodierung und Rektifizierung wiederholt ausgeführt werden, um nachfolgende entzerrte Bilder zu erhalten. Somit kann fortlaufend für jedes empfangene Bild eine zugeordnete Nachschlagetabelle empfangen werden.
-
Gemäß dem in 6 gezeigten Ausführungsbeispiel kann nach der Kalibrierung der Kameras und Berechnung der Nachschlagetabellen 217, 218 zunächst eine Kodierung 610 der Nachschlagetabellen 217, 218 zur effizienten Speicherung der Nachschlagetabellen in der Rechenhardware erfolgen. Dieser Schritt erfolgt vor der Stereo-Echtzeitverarbeitung.
-
Zur Echtzeit-Bildrektifizierung kann während der Echtzeit-Stereo-Videoverarbeitung eine Bildrektifizierung 621, 622 erfolgen, wobei eine fortlaufende Dekodierung der komprimierten Nachschlagetabellen-Daten 617, 618 erfolgen kann.
-
Gemäß diesem Ausführungsbeispiel kann die Dekodierung folgendermaßen ablaufen. Die Dekodierung kann, wie die Kodierung der Nachschlagetabelle, in zwei Schritten erfolgen.
-
Zunächst ist die Lauflängenkodierung zu dekodieren. Dies kann in Hardware sehr einfach über eine Logik realisiert werden. Die dekodierte Lauflänge wird aus dem Vektor in einen Zähler gespeichert.
-
Im zweiten Schritt wird der aktuelle Verschiebungsvektor zur Pixelkorrektur berechnet. Dabei wird im Videotakt der Zähler zur Speicherung der Lauflänge dekrementiert. Bei Erreichen der Null-Position des Zählers wird der aktuelle Verschiebungsvektor entsprechend des Bit-Eintrages im Vektor b inkrementiert oder dekrementiert. Es wird der nächste Lauflängeneintrag aus dem Vektor a in den Zähler gelesen.
-
Die Umsetzung des Dekodierverfahrens mit einer Logik, einem Zähler und einem Speicher für den aktuellen Wert des Nachschlagetabellen-Vektors macht das beschriebene Verfahren besonders geeignet für eine Umsetzung in einer FPGA oder ASIC-Hardware.
-
Gemäß einem alternativen Ausführungsbeispiel kann statt der Kodierung der Differenzen der Nachschlagetabellen auch Differenzen höherer Ordnung zur Kodierung verwendet werden. Die Berechnungsvorschrift für die Kodierung und Dekodierung mit Differenzen zweiter Ordnung zeigt nachfolgende Formel: ddx2(x, y) = 2·dx(x, y) – dx(x – 1, y) – dx(x + 1, y) ddy2(x, y) = 2·dy(x, y) – dy(x – 1, y) – dy(x + 1, y)
-
Gemäß einem weiteren Ausführungsbeispiel kann die Lauflängenkodierung der dd-LUT entfallen oder durch andere aus der Datenkompression bekannte Kodierverfahren, wie Huffmann-Codes oder LZW-Verfahren ersetzt werden.
-
Das erfindungsgemäße Verfahren ist einsetzbar für die Echtzeit-Korrektur von geometrischen Verzeichnungen der Optik auch in Mono-Videosystemen, z. B. in Überwachungskameras.
-
Die beschriebenen und in den Figuren gezeigten Ausführungsbeispiele sind nur beispielhaft gewählt. Unterschiedliche Ausführungsbeispiele können vollständig oder in Bezug auf einzelne Merkmale miteinander kombiniert werden. Auch kann ein Ausführungsbeispiel durch Merkmale eines weiteren Ausführungsbeispiels ergänzt werden. Ferner können erfindungsgemäße Verfahrensschritte wiederholt sowie in einer anderen als in der beschriebenen Reihenfolge ausgeführt werden.
-
ZITATE ENTHALTEN IN DER BESCHREIBUNG
-
Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
-
Zitierte Patentliteratur
-
- DE 10229336 A1 [0003]
- US 2008/0002879 [0004]
- US 4558302 [0014]
- WO 02/078346 A1 [0016]
- WO 02/095681 A1 [0016]
-
Zitierte Nicht-Patentliteratur
-
- D. A. HUFFMAN: A Method for the Construction of Minimum Redundancy Codes, Proceedings of the IRE, 40, 1098–1101 (1952) [0014]