Kamerabildtransformation in Vogelperpektive: Unterschied zwischen den Versionen
Keine Bearbeitungszusammenfassung |
Keine Bearbeitungszusammenfassung |
||
Zeile 3: | Zeile 3: | ||
Einleitung: | Einleitung: | ||
In diesem Artikel soll beschrieben werden, wie es möglich ist die Livebilder der Kamera in die Vogelperspektive zu transformieren. Zusätzlich wird betrachtet, welche Vorteile sich ergeben und wie hoch der Arbeitsaufwand ist. | In diesem Artikel soll beschrieben werden, wie es möglich ist die Livebilder der Kamera in die Vogelperspektive zu transformieren. Zusätzlich wird betrachtet, welche Vorteile sich ergeben und wie hoch der Arbeitsaufwand ist. Da es in diesem Artikel mehr um die reine Machbarkeit und ein Abwigen von Vor- und Nachteilen geht werden die technischen Aspekte etwas zurückgestellt. | ||
== Gründe für die Transformation der Bilder == | == Gründe für die Transformation der Bilder == | ||
Durch die Transformation der Bilder in die Vogelperspektive oder auch Birdseyeview ergeben sich verschiedene Vorteile. Durch die resultierende und immer gleiche Draufsicht auf das | Durch die Transformation der Bilder in die Vogelperspektive oder auch Birdseyeview ergeben sich verschiedene Vorteile. Durch die resultierende und immer gleiche Draufsicht auf das Umfeld, lassen sich z.B. Fahrbahnmarkierungen einfacher und sicherer erkennen. Entfernungen z.B. von Stopplinien lassen sich nach einer Kamerakalibrierung sehr einfach ermitteln. Ein weiterer Vorteil ist, dass die Informationen vom Lidar auch in "Draufsicht" Koordinaten vor liegen. Wenn die Position des Lidars im Kamerakoordinatensystem bekannt ist können die Daten des Lidars mit den Informationen der Kamera verschmolzen werden und genauere Messungen von z.B. Hindernissen statt finden. | ||
== Umsetzung in Matlab == | == Umsetzung in Matlab == | ||
In Matlab ist die Umsetzung sehr einfach durch einige vorgefertigte Befehle | In Matlab ist die Umsetzung sehr einfach durch einige vorgefertigte Befehle bzw. eine Bibliothek möglich. Hier soll auf die Matlab online Hilfe und das Beispiel für genauere Informationen verwiesen werden. | ||
https://de.mathworks.com/help/driving/examples/visual-perception-using-monocular-camera.html | https://de.mathworks.com/help/driving/examples/visual-perception-using-monocular-camera.html | ||
Nachdem Herr Menke freundlicherweise sein Matlab Skript zur Transformation von Kamera Bildern in die Vogelperspektive für das autnome Fahrzeug zur VErfügung gestellt hat, konnten die Aufnahmen transformiert werden. | |||
<gallery caption="Galerie zur Transformation mit Matlab" widths="200px" heights="200px" perrow="2"> | |||
Datei:Eingangsbild vor Transformation.png|Eingangsbild vor der Transformation | |||
Datei:Eingangsbild_in_Birdseyeview.png|Eingangsbild transformiert | |||
</gallery> | |||
Es lässt sich erkennen, das die Transformation in Matlab sehr gut funktionie. Die Transformation in Matlab zu lösen ist momentan allerdings keine Option, da eine passende Schnittstelle zwischen VrMagic Kamera und DSpace Karte nicht existiert. Die momentane Verarbeitung der Kameradaten findet in einem eigenen C-Programm mithilfe der OpenCV Bibliothek statt. Die ermittelten Spurdaten werden dann mithilfe der UART Schnitstelle des PCs an die DSpace Karte übertragen. | |||
== Umsetzung in OpenCV == | == Umsetzung in OpenCV == | ||
Um die momentane Konfiguration zur Übertragung der Hardware mittels der UART Schnittstelle beibehalten zu können, müsste die Perspektiven transformation in C gelöst werden. Für die Bildverabeitung in C/C++ bietet sich die Bibliothek OpenCV an. In dieser kann mittels "getPerspective()" eine Koordinatentransformation durchgeführt werden. | |||
Beispiel A: | |||
https://nikolasent.github.io/opencv/2017/05/07/Bird%27s-Eye-View-Transformation.html | |||
Beispiel B: | |||
https://stackoverflow.com/questions/48264861/birds-eye-view-opencv | |||
== Zusammenfassung und Ausblick == | == Zusammenfassung und Ausblick == | ||
Da Matlab während des Fahrzeugbetriebs nicht ausgeführt wird und auch zu viele Hardware Ressourcen vebrauchen würde, wird die Transformation der Bilder über diesen Weg ausgeschlossen. In OpenCV kann die Transformation auch gelöst werden, allerdings müsste dann eine komplett neue Spurerkennung programmiert werden. Das arbeiten mit Bildern aus der Draufsicht im Hinblick auf erkennen von Stopplinien und Spurlinien wäre allerdings um einiges einfacher und eleganter. Zusätzlich ist das erkennen von Hindernissen und der Fusion mit den Lidar Daten einfacher. | |||
Als nächstes steht noch ein Gespräch mit den Professoren und den Teams an um zu entscheiden, wie weiter verfahren werden soll. |
Version vom 21. Juli 2018, 01:18 Uhr
Autor: John Kneib
Betreuer: Prof. Schneider, Prof. Göbel
Einleitung: In diesem Artikel soll beschrieben werden, wie es möglich ist die Livebilder der Kamera in die Vogelperspektive zu transformieren. Zusätzlich wird betrachtet, welche Vorteile sich ergeben und wie hoch der Arbeitsaufwand ist. Da es in diesem Artikel mehr um die reine Machbarkeit und ein Abwigen von Vor- und Nachteilen geht werden die technischen Aspekte etwas zurückgestellt.
Gründe für die Transformation der Bilder
Durch die Transformation der Bilder in die Vogelperspektive oder auch Birdseyeview ergeben sich verschiedene Vorteile. Durch die resultierende und immer gleiche Draufsicht auf das Umfeld, lassen sich z.B. Fahrbahnmarkierungen einfacher und sicherer erkennen. Entfernungen z.B. von Stopplinien lassen sich nach einer Kamerakalibrierung sehr einfach ermitteln. Ein weiterer Vorteil ist, dass die Informationen vom Lidar auch in "Draufsicht" Koordinaten vor liegen. Wenn die Position des Lidars im Kamerakoordinatensystem bekannt ist können die Daten des Lidars mit den Informationen der Kamera verschmolzen werden und genauere Messungen von z.B. Hindernissen statt finden.
Umsetzung in Matlab
In Matlab ist die Umsetzung sehr einfach durch einige vorgefertigte Befehle bzw. eine Bibliothek möglich. Hier soll auf die Matlab online Hilfe und das Beispiel für genauere Informationen verwiesen werden. https://de.mathworks.com/help/driving/examples/visual-perception-using-monocular-camera.html
Nachdem Herr Menke freundlicherweise sein Matlab Skript zur Transformation von Kamera Bildern in die Vogelperspektive für das autnome Fahrzeug zur VErfügung gestellt hat, konnten die Aufnahmen transformiert werden.
-
Eingangsbild vor der Transformation
-
Eingangsbild transformiert
Es lässt sich erkennen, das die Transformation in Matlab sehr gut funktionie. Die Transformation in Matlab zu lösen ist momentan allerdings keine Option, da eine passende Schnittstelle zwischen VrMagic Kamera und DSpace Karte nicht existiert. Die momentane Verarbeitung der Kameradaten findet in einem eigenen C-Programm mithilfe der OpenCV Bibliothek statt. Die ermittelten Spurdaten werden dann mithilfe der UART Schnitstelle des PCs an die DSpace Karte übertragen.
Umsetzung in OpenCV
Um die momentane Konfiguration zur Übertragung der Hardware mittels der UART Schnittstelle beibehalten zu können, müsste die Perspektiven transformation in C gelöst werden. Für die Bildverabeitung in C/C++ bietet sich die Bibliothek OpenCV an. In dieser kann mittels "getPerspective()" eine Koordinatentransformation durchgeführt werden.
Beispiel A: https://nikolasent.github.io/opencv/2017/05/07/Bird%27s-Eye-View-Transformation.html
Beispiel B: https://stackoverflow.com/questions/48264861/birds-eye-view-opencv
Zusammenfassung und Ausblick
Da Matlab während des Fahrzeugbetriebs nicht ausgeführt wird und auch zu viele Hardware Ressourcen vebrauchen würde, wird die Transformation der Bilder über diesen Weg ausgeschlossen. In OpenCV kann die Transformation auch gelöst werden, allerdings müsste dann eine komplett neue Spurerkennung programmiert werden. Das arbeiten mit Bildern aus der Draufsicht im Hinblick auf erkennen von Stopplinien und Spurlinien wäre allerdings um einiges einfacher und eleganter. Zusätzlich ist das erkennen von Hindernissen und der Fusion mit den Lidar Daten einfacher.
Als nächstes steht noch ein Gespräch mit den Professoren und den Teams an um zu entscheiden, wie weiter verfahren werden soll.