SoSe23 - Praktikum Systementwurf - Segmentierung der Fahrbahnmarkierungen: Unterschied zwischen den Versionen

Aus HSHL Mechatronik
Zur Navigation springen Zur Suche springen
Keine Bearbeitungszusammenfassung
Zeile 7: Zeile 7:


== Segmentierung mit Matlab ==
== Segmentierung mit Matlab ==
Damit das zu analysierende Video mit Matlab bearbeitet werden kann, muss dieses zuerst durch den Befehl <code>VideoReader()</code> eingelesen werden. Dabei werden der zugewiesenen Variable alle benötigten Informationen über das Video übergeben. Auf diese kann dann mit dem Punkt-Operator zugegriffen werden, wodurch unter Anderem die Auflösung und die gesamte Videolänge für die weitere Verarbeitung verwendet werden kann.  
Das Video wurde bereits von einer anderen Gruppe in die Vogelperspektive transformiert. Damit das zu analysierende Video mit Matlab bearbeitet werden kann, muss dieses zuerst durch den Befehl <code>VideoReader()</code> eingelesen werden. Dabei werden der zugewiesenen Variable alle benötigten Informationen über das Video übergeben. Auf diese kann dann mit dem Punkt-Operator zugegriffen werden, wodurch unter Anderem die Auflösung und die gesamte Videolänge für die weitere Verarbeitung verwendet werden kann.  


Damit möglichst viele Frames des Videos in Matlab wiedergegeben werden können, wird eine übergeordnete Schleife erstellt, welche alle 0,2 Sekunden ein Frame des Videos über die gesamte Länge bearbeitet und ausgibt. Da es sich bei dem Video jedoch um ein RGB-Video handelt, müssen desse Frames mit dem Befehl <code>im2bw()</code> zuerst in eine Binärdatei umgewandelt werden.
Damit möglichst viele Frames des Videos in Matlab wiedergegeben werden können, wird eine übergeordnete Schleife erstellt, welche alle 0,2 Sekunden ein Frame des Videos über die gesamte Länge bearbeitet und ausgibt. Da es sich bei dem Video jedoch um ein RGB-Video handelt, müssen diese Frames mit dem Befehl <code>im2bw()</code> zuerst in eine Binärdatei umgewandelt werden. Danach erhält man ein Bild bzw. eine Matrix, welche nur mit 1en oder 0en gefüllt ist und somit auf dem Bild nur schwarze oder weiße Pixel vorhanden sind. Damit das System nun auch erkennt, welche Pixel zu einem Segment gehören, wird der Befehl <code>bwb</code> mit der Binärdatei als Eingabewert angewendet. Dadurch wird das Frame in seine einzelnen Segmente unterteilt und ebenfalls automatisch farbig gekennzeichnet. Zudem wurde auch das Signalwort 'noholes' übergeben, welches bewirkt, dass einzelne Pixel entfernt werden.

Version vom 1. Juni 2023, 14:22 Uhr

Autoren: Johann Kismann & Dominik Koenig

Einleitung

Im 6. Semester des Studiengangs Mechatronik findet das Praktikum Systementwurf statt. Dabei werden semesterbegleitend Workshops absolviert, welche sich mit einem autonomen Fahrzeug beschäftigen. Im Rahmen dieses Praktikums handelt der 9. Workshop über die Objekt- und Spurenerkennung mit der Kamera, wobei unsere Gruppe das Thema "Segmentierung der Fahrbahnmarkierungen" bekommen hat.

Anhand der kalibrierten Kamera des autonomen Fahrzeuges wurde ein Video aufgenommen, welches so segmentiert werden soll, dass die Fahrbahnmarkierungen segmentiert und farbig erkenntlich gemacht werden.

Segmentierung mit Matlab

Das Video wurde bereits von einer anderen Gruppe in die Vogelperspektive transformiert. Damit das zu analysierende Video mit Matlab bearbeitet werden kann, muss dieses zuerst durch den Befehl VideoReader() eingelesen werden. Dabei werden der zugewiesenen Variable alle benötigten Informationen über das Video übergeben. Auf diese kann dann mit dem Punkt-Operator zugegriffen werden, wodurch unter Anderem die Auflösung und die gesamte Videolänge für die weitere Verarbeitung verwendet werden kann.

Damit möglichst viele Frames des Videos in Matlab wiedergegeben werden können, wird eine übergeordnete Schleife erstellt, welche alle 0,2 Sekunden ein Frame des Videos über die gesamte Länge bearbeitet und ausgibt. Da es sich bei dem Video jedoch um ein RGB-Video handelt, müssen diese Frames mit dem Befehl im2bw() zuerst in eine Binärdatei umgewandelt werden. Danach erhält man ein Bild bzw. eine Matrix, welche nur mit 1en oder 0en gefüllt ist und somit auf dem Bild nur schwarze oder weiße Pixel vorhanden sind. Damit das System nun auch erkennt, welche Pixel zu einem Segment gehören, wird der Befehl bwb mit der Binärdatei als Eingabewert angewendet. Dadurch wird das Frame in seine einzelnen Segmente unterteilt und ebenfalls automatisch farbig gekennzeichnet. Zudem wurde auch das Signalwort 'noholes' übergeben, welches bewirkt, dass einzelne Pixel entfernt werden.