SoSe24 - Praktikum Systementwurf - Spurerkennung mit Kamera (Modul OSE): Unterschied zwischen den Versionen
Markierung: Zurückgesetzt |
|||
(44 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
Zeile 115: | Zeile 115: | ||
* [[Medium:Spurkandidaten F350.png]] | * [[Medium:Spurkandidaten F350.png]] | ||
''' | '''Arbeitsergebnisse:''' | ||
* Segmentierung der X-Y-Daten der rechten Fahrspuren für die unterschiedlichen Eingangsdateien mit dem Skript '''<code>segmentiereFahrbahnmarkierung.m</code>'''. | |||
* Segmentmaske als Mat-Datei z. B.'''<code>Spurkandidaten F040.mat</code>'''. | |||
'''Lernzielkontrollfragen:''' | |||
* Welche Methoden kennen Sie aus der Vorlesung "Digitale Signal- und Bildverarbeitung", um eine Fahrspur zu segmentieren? Stellen Sie 5 unterschiedliche Ansätze vor. | |||
* Welche Merkmale sind für eine Fahrspur signifikant. | |||
* Welche Fehlereinflüsse gibt es? Wie kann man diesen entgegenwirken? | |||
{| role="presentation" class="wikitable mw-collapsible mw-collapsed" | {| role="presentation" class="wikitable mw-collapsible mw-collapsed" | ||
| <strong>Tipp </strong> | | <strong>Tipp 1 </strong> | ||
|- | |- | ||
| | |||
# Nutzen Sie [https://www.mathworks.com/help/images/ref/bwconncomp.html <code>bwlabel<code>] um zusammenhängende Gebiete segmentieren. | # Nutzen Sie [https://www.mathworks.com/help/images/ref/bwconncomp.html <code>bwlabel</code>] um zusammenhängende Gebiete segmentieren. | ||
# Wählen Sie das räumlich nächste Segment rechts der Bildmitte (376,531). | # Wählen Sie das räumlich nächste Segment rechts der Bildmitte (376,531). | ||
# Speichern Sie das Segment als Maske in eine mat-Datei. | # Speichern Sie das Segment als Maske in eine mat-Datei. | ||
# Färben Sie mit der Maske Ihr Ergebnis ein. | # Färben Sie mit der Maske Ihr Ergebnis ein. | ||
|} | |||
{| role="presentation" class="wikitable mw-collapsible mw-collapsed" | |||
| <strong>Tipp 2: Einfärben der Fahrspur </strong> | |||
|- | |||
| | |||
<source lang="matlab" style="font-size:medium">stDateiname = 'Spurkandidaten_F040.png'; | |||
aFrame = uint8(imread(stDateiname)); % Bild laden | |||
load([stDateiname(1:end-3),'mat']); % Spurkandidaten laden | |||
R = 255 * aFrame; | |||
G = 255 * aFrame; | |||
B = 255 * aFrame; | |||
B = B.*uint8(~aRechteFahrspur); % Maske anwenden | |||
aRGBBild = cat(3, R, G, B); % RGB-Bild erzeugen | |||
imshow(aRGBBild);</source> | |||
|} | |} | ||
Zeile 132: | Zeile 153: | ||
| [[Datei:ZeigeSegmente.jpg|1000px|thumb|right|Abb. 6: Segmentierung der Fahrspuren]] | | [[Datei:ZeigeSegmente.jpg|1000px|thumb|right|Abb. 6: Segmentierung der Fahrspuren]] | ||
|} | |} | ||
{| role="presentation" class="wikitable mw-collapsible mw-collapsed" | |||
| <strong>Programmablaufplan </strong> | |||
|- | |||
| [[Datei:SegmentiereFahrbahnmarkierung.png|600px|thumb|right|Abb. 7: PAP der Fahrspursegmentierung]] | |||
|} | |||
---- | ---- | ||
=== Aufgabe 9.3: Spurpolynom === | === Aufgabe 9.3: Spurpolynom === | ||
[[Datei:ZeigeSpurpolynom_Spurkandidaten_F160.jpg|400px|thumb|right|Abb. | [[Datei:ZeigeSpurpolynom_Spurkandidaten_F160.jpg|400px|thumb|right|Abb. 8: Darstellung der Fahrspuren als Polynom]] | ||
# Bestimmen Sie für die rechte Fahrbahnmarkierungen das Spurpolynome 2. Ordnung mit <code>polyfit</code>. | # Bestimmen Sie für die rechte Fahrbahnmarkierungen das Spurpolynome 2. Ordnung mit <code>polyfit</code>. | ||
# Ersetzen Sie <code>polyfit</code> durch die einfache Polynomapproximation <code> | # Ersetzen Sie <code>polyfit</code> durch die einfache Polynomapproximation [https://svn.hshl.de/svn/MTR_SDE_Praktikum/trunk/Software/Demos/Lane_Tracking/interpoliereFahrspur.m <code>interpoliereFahrspur.m</code>]. | ||
# Berechnen Sie aus dem Spurpolynom die rechte Fahrbahnmarkierungen. | # Berechnen Sie aus dem Spurpolynom die rechte Fahrbahnmarkierungen. | ||
# Blenden Sie die rechte Fahrbahnmarkierungen im Videobild für die Bildframes 40, 160 und 350 ein. | # Blenden Sie die rechte Fahrbahnmarkierungen im Videobild für die Bildframes 40, 160 und 350 ein. | ||
Zeile 144: | Zeile 171: | ||
'''Demo:''' https://svn.hshl.de/svn/MTR_SDE_Praktikum/trunk/Software/Demos/Lane_Tracking | '''Demo:''' https://svn.hshl.de/svn/MTR_SDE_Praktikum/trunk/Software/Demos/Lane_Tracking | ||
'''Arbeitsergebnis''': Spurpolynome für die Bildframes 40, 160 und 350, visuelle Überprüfung durch Einblendung in die Bilddateien <code>zeigeSpurpolynom.m</code> | '''Eingangsdaten:''' | ||
* [[Medium:Spurkandidaten.zip]] | |||
* [https://svn.hshl.de/svn/MTR_SDE_Praktikum/trunk/Software/Demos/Lane_Tracking/interpoliereFahrspur.m <code>interpoliereFahrspur.m</code>] als Alternative zu <code>polyfit</code> | |||
'''Arbeitsergebnis''': Spurpolynome für die Bildframes 40, 160 und 350, visuelle Überprüfung durch Einblendung in die Bilddateien '''<code>zeigeSpurpolynom.m</code>''' (vgl. Abb. 8) | |||
'''Lernzielkontrolle:''' | |||
* Welche Vor- und Nachteile hat die Polynombildung? | |||
* Wie könnten die Nachteile behandelt werden? | |||
* Wie wird der Blindbereich vorm Fahrzeug berücksichtigt? | |||
'''Dokumente''': | |||
* [https://svn.hshl.de/svn/MTR_SDE_Praktikum/trunk/Anforderungsmanagement/Lastenheft/Lastenheft_Autonomes_Fahrzeug.pdf Lastenheft_Autonomes_Fahrzeug.pdf] | |||
* [https://svn.hshl.de/svn/MTR_SDE_Praktikum/trunk/Anforderungsmanagement/Lastenheft/Schnittstellendokumentation_Anlage_Lastenheft.docx Schnittstellendokumentation_Anlage_Lastenheft.docx] | |||
{| role="presentation" class="wikitable mw-collapsible mw-collapsed" | {| role="presentation" class="wikitable mw-collapsible mw-collapsed" | ||
| <strong> | | <strong>Tipps </strong> | ||
|- | |||
| Wandeln Sie die Maske mit [https://de.mathworks.com/help/matlab/ref/find.html <code>find</code>] in einen Vektor. | |||
|- | |||
| Die Koordinatentransformation Bild- zu Fahrzeug-KOS besteht aus einer Verschiebung und der Umrechnung Pixel zu m. Informationen zu den KOS finden Sie in den Dokumenten ''Lastenheft_Autonomes_Fahrzeug.pdf'' und ''Schnittstellendokumentation_Anlage_Lastenheft.docx''. | |||
|- | |||
| Nutzen Sie für die Polynomregression [https://de.mathworks.com/help/matlab/ref/polyfit.html <code>polyfit</code>] und alternativ <code>interpoliereFahrspur.m</code>. | |||
|- | |- | ||
| | | | ||
Verwenden Sie die LaTeX-Notation im Titel. | Verwenden Sie die LaTeX-Notation im Titel. | ||
<source lang="matlab" style="font-size:small">title(['p(x)=',num2str(p(1)),'$$\frac{1}{m} \cdot x^2 + $$',num2str(p(2)),'$$ \cdot x + $$',num2str(p(3)),'$$\,m$$'],'interpreter','latex') </source> | <source lang="matlab" style="font-size:small">title(['p(x)=',num2str(p(1)),'$$\frac{1}{m} \cdot x^2 + $$',num2str(p(2)),'$$ \cdot x + $$',num2str(p(3)),'$$\,m$$'],'interpreter','latex') </source> | ||
|} | |||
{| role="presentation" class="wikitable mw-collapsible mw-collapsed" | |||
| <strong>Programmablaufplan </strong> | |||
|- | |||
| [[Datei:ZeigeSpurpolynom.png|600px|thumb|right|Abb. 9: PAP der Polynomregression]] | |||
|} | |} | ||
Zeile 169: | Zeile 220: | ||
=== Aufgabe 9.4: Inverse Perspektiventransformation (IPT) === | === Aufgabe 9.4: Inverse Perspektiventransformation (IPT) === | ||
# Studieren Sie den Artikel zur [https://www.mathworks.com/help/driving/ref/birdseyeview.html Inversen Perspektiventransformation mit | # Studieren Sie den Artikel zur [https://www.mathworks.com/help/driving/ref/birdseyeview.html Inversen Perspektiventransformation mit MATLAB<sup>®</sup>]. | ||
# Beschreiben Sie die Eingangsparameter. Nutzen Sie die Parameter | # Beschreiben Sie die Eingangsparameter. Nutzen Sie die Parameter aus Aufgabe 9.1. | ||
# Beschreiben Sie die Ausgangsparameter. | # Beschreiben Sie die Ausgangsparameter. | ||
# Wenden Sie die IPT auf das Video <code> | # Kalibrieren und Entzerren Sie das Kamerabild. | ||
# | # Wenden Sie die IPT auf das Video <code>GeradeInKurve.mp4</code> an. | ||
# Binarisieren Sie das Video und speichern Sie es als <code>GeradeInKurve_IPT.mp4</code>. | |||
# Analysieren Sie Ihr Ergebnis, identifizieren Sie Probleme und entwickeln mögliche Maßnahmen. Eine Umsetzung der Maßnahmen ist nicht erforderlich. | |||
'''Eingangsdateien:''' [https://svn.hshl.de/svn/MTR_SDE_Praktikum/trunk/Daten/Vision/ | '''Eingangsdateien:''' [https://svn.hshl.de/svn/MTR_SDE_Praktikum/trunk/Daten/Vision/GeradeInKurve.mp4 SVN: GeradeInKurve.mp4] | ||
'''Arbeitsergebnisse:''' | '''Arbeitsergebnisse:''' | ||
* | * MATLAB<sup>®</sup>-Skript: <code>startInversePerspektivenTransformation.m</code> | ||
* Transformiertes Video <code> | * Transformiertes Video: <code>GeradeInKurve_IPT.mp4</code> | ||
* Dokumentation im | * Dokumentation im [[SoSe24 - Praktikum Systementwurf - Inverse Perspektiventransformation (IPT)|Wiki-Artikel]] | ||
'''Lernzielkontrollfragen:''' | |||
{| role="presentation" class="wikitable mw-collapsible mw-collapsed" | |||
| <strong>Tipps </strong> | |||
|- | |||
| Nützliche MATLAB<sup>®</sup>-Befehle: [https://www.mathworks.com/help/driving/ref/monocamera.html monoCamera], [https://www.mathworks.com/help/driving/ref/birdseyeview.html birdsEyeView], [https://www.mathworks.com/help/driving/ref/VideoWriter.html VideoWriter], [https://www.mathworks.com/help/driving/ref/hasFrame.html hasFrame], [https://www.mathworks.com/help/driving/ref/readFrame.html readFrame], [https://www.mathworks.com/help/driving/ref/undistortImage.html undistortImage], [https://www.mathworks.com/help/driving/ref/transformImage.html transformImage], [https://www.mathworks.com/help/driving/ref/im2frame.html im2frame], [https://www.mathworks.com/help/driving/ref/writeVideo.html writeVideo], [https://www.mathworks.com/help/driving/ref/open.html open], [https://www.mathworks.com/help/driving/ref/close.html close] | |||
|} | |||
{| role="presentation" class="wikitable mw-collapsible mw-collapsed" | |||
| <strong>Programmablaufplan </strong> | |||
|- | |||
| [[Datei:StartInversePerspektivenTransformation.png|600px|thumb|right|Abb. 10: PAP der Inverse Perspektiventransformation]] | |||
|} | |||
---- | ---- | ||
=== Aufgaben 9.5: Segmentierung der Fahrbahnmarkierungen === | === Aufgaben 9.5: Segmentierung der Fahrbahnmarkierungen === | ||
# Segmentieren Sie die Fahrspuren aus dem Video <code> | # Segmentieren Sie die drei Fahrspuren aus dem Video <code>GeradeInKurve_IPT.mp4</code>. | ||
# Zeigen Sie dieses Segmente in den Farben laut Tabelle 3 im Video an. | |||
# Zeigen Sie dieses Segmente | # Sichern Sie das Ergebnisvideo. | ||
# Analysieren Sie Ihr Ergebnis, identifizieren Sie Probleme und entwickeln mögliche Maßnahmen. Eine Umsetzung der Maßnahmen ist nicht erforderlich. | |||
{| class="wikitable" | |||
|+ Tabelle 3: Farbcodierung der Fahrbahnen | |||
|- | |||
| rechte Fahrbahnmarkierung || Gelb (<code>y</code>) | |||
|- | |||
| Mittelstreifen || Grün (<code>g</code>) | |||
|- | |||
| linke Fahrbahnmarkierung || Magenta (<code>m</code>) | |||
|} | |||
'''Eingangsdateien:''' <code> | '''Eingangsdateien:''' <code>GeradeInKurve_IPT.mp4</code> | ||
'''Arbeitsergebnisse:''' | '''Arbeitsergebnisse:''' | ||
* | * MATLAB<sup>®</sup>-Skript: <code>segmentiereFahrbahnmarkierungen.m</code> | ||
* Darstellung des Fahrspursegmente für jedes Einzelbild des Films. | |||
* Visuelle Überprüfung durch Einblendung in das <code></code> Ergebnisvideo: <code>GeradeInKurve_Segmente.mp4</code> | |||
* Sicherung der Segmente in <code>GeradeInKurve_Segmente.mat</code> | |||
* Dokumentation im [[SoSe24 - Praktikum Systementwurf - Segmentierung der Fahrbahnmarkierungen|Wiki-Artikel]] | |||
'''Lernzielkontrolle:''' | |||
---- | ---- | ||
=== Aufgaben 9.6: Spurpolynom === | === Aufgaben 9.6: Spurpolynom === | ||
# Bestimmen Sie für die drei | # Bestimmen Sie für die drei Spursegmenten das Spurpolynome 2. Ordnung mit <code>interpoliereFahrspur.m</code> gemäß [https://svn.hshl.de/svn/MTR_SDE_Praktikum/trunk/Anforderungsmanagement/Lastenheft/Schnittstellendokumentation_Anlage_Lastenheft.docx Schnittstellendokumentation_Anlage_Lastenheft.docx] metrisch im Fahrzeugkoordinatensystem. | ||
# Blenden Sie das Spurpolynom im Videobild ein. | |||
# Blenden Sie | |||
'''Eingangsdateien:''' <code> | '''Eingangsdateien:''' | ||
* <code>GeradeInKurve_Segmente.mat</code> | |||
* <code>interpoliereFahrspur.m</code> | |||
'''Arbeitsergebnisse:''' | '''Arbeitsergebnisse:''' | ||
* | * MATLAB<sup>®</sup>-Skript: <code>zeigeSpurpolynom.m</code> | ||
* Darstellung des Spurpolynoms für jedes Einzelbild des Films. | |||
* | * Visuelle Überprüfung durch Einblendung in das Video <code></code> Ergebnisvideo: <code>GeradeInKurve_Spurpolynom.mp4</code> | ||
* Dokumentation im Wiki | * Spurparameter [a b c] als <code>Spurpolynom.mat</code> | ||
* Dokumentation im [[SoSe24 - Praktikum Systementwurf - Spurpolynom|Wiki-Artikel]] | |||
Lernzielkontrolle: | |||
---- | ---- | ||
Version vom 18. Juni 2024, 13:09 Uhr
![](/wiki/images/c/c1/PolynomVorKalman.gif)
Autor: | Prof. Dr.-Ing. Schneider |
Thema: | Spurerkennung mit Kamera (OSE) |
Workshoptermin 9: | 20.06.2024 |
Lernzielkontrolle 3: | 04.07.2024 |
Einleitung
Die Workshops im SDE Praktikum sollen die Studierenden das praktische Arbeiten in einem Mechatroniklabor im Bereich modellbasierte Entwicklung mit MATLAB/Simulink und DSpace Hardware DS1104/ControlDesk vermitteln. Der Umgang soll in der Selbstlernzeit geübt werden.
Im Projekt OSE werden Objekte mit dem LiDAR-Sensor erkannt und verarbeitet sowie die Fahrspur mit der Kamera. Dieser Workshop fokussiert die Spurerkennung sowie die Bildung und des Spurpolynoms.
Lernziele
Nach erfolgreicher Teilnahme am Workshop:
- können Sie die intrinsischen und extrinsischen Parameter einer Kamera bestimmen.
- können Sie eine Inverse Perspektiventransformation durchführen.
- können Sie Fahrbahnmarkierungen segmentieren.
- können Sie das Spurpolynom maßstabsgetreu bestimmen.
Bewertung
Die Bewertung erfolgt im Rahmen der Lernzielkontrolle 3.
Voraussetzungen
- Für den Workshop benötigen Sie MATLAB/Simulink in der Version 2019b.
- Studieren Sie die Praktikumsordnung.
- Die unter Vorbereitung aufgeführten Aufgaben sind vor dem Workshoptermin vorzubereiten. Der Workshop baut auf Ihre Vorbereitung auf.
Der Workshop setzt nachfolgende Kenntnisse voraus:
- die Grundlagen der Programmierung,
- der Umgang mit der Versionsverwaltung SVN und
- der Umgang mit MATLAB/Simulink.
- der Grundlagen der Digitalen Signal- und Bildverarbeitung:
- Lektion 2: Koordinatentransformationen
- Lektion 7: Kantenerkennung und Rauschunterdrückung
- Lektion 8: Datengetriebene Segmentierung
Ablauf des Praktikums
Uhrzeit | Agenda | Form |
---|---|---|
8:15 | Begrüßung | Moderation durch Marc Ebmeyer |
8:20 | Bearbeitung der Aufgaben (vgl. Tabelle 2) | Gruppenarbeit |
10:10 | Statusbericht der Teams | max. 5 Min. pro Team |
10:25 | Verabschiedung | Moderation durch Marc Ebmeyer |
10:30 Uhr | Veranstaltungsende |
Vorbereitung
Aufgabe 9.1: Vorbereitung der Kamera
![](/wiki/images/thumb/7/77/CameraCalibratorApp.jpg/400px-CameraCalibratorApp.jpg)
Um eine Kamera sinnvoll zur Spurerkennung einsetzen zu können, muss diese zuvor kalibriert werden.
- Studieren Sie die zugehörigen Wiki-Artikel und arbeiten Sie sich in die Camera Calibrator App von MATLAB® ein.
- Messen Sie die extrinsische und intrinsische Parameter der Kameras von Wagen 1 und 2 mit der MATLAB® Camera Calibrator App.
- Identifizieren Sie extrinsische und intrinsische Parameter.
- Machen Sie ein Foto eines vermessenen Aufbaus.
- Transformieren Sie einen vermessenen Punkt von Weltkoordinaten in Bildkoordinaten.
- Machen Sie ein Foto mit der Kamera auf der Fahrbahn von der Startlinie aus (Geradeaus.jpg).
- Machen Sie ein Foto mit der Kamera auf der Fahrbahn von der ersten Kurve aus (Linkskurve.jpg).
- Entzerren Sie beide Fotos anhand Ihrer ermittelten k-Matrix mit dem MATLAB®-Skript
entzerreVideobild
. - Dokumentieren Sie Ihren Versuchsaufbau, die Durchführung und Ergebnisse.
Arbeitsergebnisse:
- Extrinsische Kameraparameter:
- Intrinsische Kameraparameter: k-Matrix
- Eingangsdaten: Geradeaus.jpg, Linkskurve.jpg
- MATLAB®-Skript
entzerreVideobild
, welches anhand der intrinsischen Kameraparameter die Bildentzerrung durchführt. - Versuchsprotokoll
Kamerakalibrierung.docx
Lernzielkontrollfragen:
- Welche intrinsischen und extrinsischen Kameraparameter haben Wagen 1 und 2?
- Welchen Region-of-Interest (ROI) haben die Kameras?
- Wie ist der Zusammenhang zwischen Welt- und Bildkoordinaten?
- Welchen Blindbereich in Fahrzeugkoordinaten haben Wagen 1 und 2 ()?
Links
- HSHL-Wiki: Kalibrierung_der_Kamera
- MATLAB® Camera Calibrator App
- OSE:_Bildverarbeitung_mit_Spurerkennung
Tipps |
|
Aufgabe 9.2: Segmentierung der Fahrbahnmarkierungen
![](/wiki/images/thumb/6/67/Spurkandidaten_F040.png/200px-Spurkandidaten_F040.png)
![](/wiki/images/thumb/b/b5/Spurkandidaten_F160.png/200px-Spurkandidaten_F160.png)
![](/wiki/images/thumb/e/ef/Spurkandidaten_F350.png/200px-Spurkandidaten_F350.png)
- Laden Sie das Bild
Spurkandidaten_F040.png
(vgl. Abb. 3). - Segmentieren Sie aus dem Kantenbild die rechte Fahrbahnmarkierungen. Welche Algorithmen der Vorlesung "Digitale Signal und Bildverarbeitung" lassen sich anwenden?
- Zeigen Sie das Segment farbig im Bild an.
- Verifizieren Sie Ihren Segmentierungsalgorithmus mit den Bildern Spurkandidaten F160.png und Spurkandidaten F350.png.
Eingangsdateien:
Arbeitsergebnisse:
- Segmentierung der X-Y-Daten der rechten Fahrspuren für die unterschiedlichen Eingangsdateien mit dem Skript
segmentiereFahrbahnmarkierung.m
. - Segmentmaske als Mat-Datei z. B.
Spurkandidaten F040.mat
.
Lernzielkontrollfragen:
- Welche Methoden kennen Sie aus der Vorlesung "Digitale Signal- und Bildverarbeitung", um eine Fahrspur zu segmentieren? Stellen Sie 5 unterschiedliche Ansätze vor.
- Welche Merkmale sind für eine Fahrspur signifikant.
- Welche Fehlereinflüsse gibt es? Wie kann man diesen entgegenwirken?
Tipp 1 |
|
Tipp 2: Einfärben der Fahrspur |
stDateiname = 'Spurkandidaten_F040.png';
aFrame = uint8(imread(stDateiname)); % Bild laden
load([stDateiname(1:end-3),'mat']); % Spurkandidaten laden
R = 255 * aFrame;
G = 255 * aFrame;
B = 255 * aFrame;
B = B.*uint8(~aRechteFahrspur); % Maske anwenden
aRGBBild = cat(3, R, G, B); % RGB-Bild erzeugen
imshow(aRGBBild);
|
Musterlösung |
![]() |
Programmablaufplan |
![]() |
Aufgabe 9.3: Spurpolynom
![](/wiki/images/thumb/5/55/ZeigeSpurpolynom_Spurkandidaten_F160.jpg/400px-ZeigeSpurpolynom_Spurkandidaten_F160.jpg)
- Bestimmen Sie für die rechte Fahrbahnmarkierungen das Spurpolynome 2. Ordnung mit
polyfit
. - Ersetzen Sie
polyfit
durch die einfache PolynomapproximationinterpoliereFahrspur.m
. - Berechnen Sie aus dem Spurpolynom die rechte Fahrbahnmarkierungen.
- Blenden Sie die rechte Fahrbahnmarkierungen im Videobild für die Bildframes 40, 160 und 350 ein.
Demo: https://svn.hshl.de/svn/MTR_SDE_Praktikum/trunk/Software/Demos/Lane_Tracking
Eingangsdaten:
- Medium:Spurkandidaten.zip
interpoliereFahrspur.m
als Alternative zupolyfit
Arbeitsergebnis: Spurpolynome für die Bildframes 40, 160 und 350, visuelle Überprüfung durch Einblendung in die Bilddateien zeigeSpurpolynom.m
(vgl. Abb. 8)
Lernzielkontrolle:
- Welche Vor- und Nachteile hat die Polynombildung?
- Wie könnten die Nachteile behandelt werden?
- Wie wird der Blindbereich vorm Fahrzeug berücksichtigt?
Dokumente:
Tipps |
Wandeln Sie die Maske mit find in einen Vektor.
|
Die Koordinatentransformation Bild- zu Fahrzeug-KOS besteht aus einer Verschiebung und der Umrechnung Pixel zu m. Informationen zu den KOS finden Sie in den Dokumenten Lastenheft_Autonomes_Fahrzeug.pdf und Schnittstellendokumentation_Anlage_Lastenheft.docx. |
Nutzen Sie für die Polynomregression polyfit und alternativ interpoliereFahrspur.m .
|
Verwenden Sie die LaTeX-Notation im Titel. title(['p(x)=',num2str(p(1)),'$$\frac{1}{m} \cdot x^2 + $$',num2str(p(2)),'$$ \cdot x + $$',num2str(p(3)),'$$\,m$$'],'interpreter','latex')
|
Programmablaufplan |
![]() |
Durchführung
Themen der Teams
# | Thema | Teilnehmer |
---|---|---|
1 | 9.4 Inverse Perspektiventransformation (IPT) | Daniel Block, Paul Janzen |
2 | 9.5 Segmentierung der Fahrbahnmarkierungen | Dennis Fleer, Philipp Sander |
3 | 9.6 Spurpolynom | Yunkai Lin, Xiangyao Liu, Yuhan Pan |
Aufgabe 9.4: Inverse Perspektiventransformation (IPT)
- Studieren Sie den Artikel zur Inversen Perspektiventransformation mit MATLAB®.
- Beschreiben Sie die Eingangsparameter. Nutzen Sie die Parameter aus Aufgabe 9.1.
- Beschreiben Sie die Ausgangsparameter.
- Kalibrieren und Entzerren Sie das Kamerabild.
- Wenden Sie die IPT auf das Video
GeradeInKurve.mp4
an. - Binarisieren Sie das Video und speichern Sie es als
GeradeInKurve_IPT.mp4
. - Analysieren Sie Ihr Ergebnis, identifizieren Sie Probleme und entwickeln mögliche Maßnahmen. Eine Umsetzung der Maßnahmen ist nicht erforderlich.
Eingangsdateien: SVN: GeradeInKurve.mp4
Arbeitsergebnisse:
- MATLAB®-Skript:
startInversePerspektivenTransformation.m
- Transformiertes Video:
GeradeInKurve_IPT.mp4
- Dokumentation im Wiki-Artikel
Lernzielkontrollfragen:
Tipps |
Nützliche MATLAB®-Befehle: monoCamera, birdsEyeView, VideoWriter, hasFrame, readFrame, undistortImage, transformImage, im2frame, writeVideo, open, close |
Programmablaufplan |
![]() |
Aufgaben 9.5: Segmentierung der Fahrbahnmarkierungen
- Segmentieren Sie die drei Fahrspuren aus dem Video
GeradeInKurve_IPT.mp4
. - Zeigen Sie dieses Segmente in den Farben laut Tabelle 3 im Video an.
- Sichern Sie das Ergebnisvideo.
- Analysieren Sie Ihr Ergebnis, identifizieren Sie Probleme und entwickeln mögliche Maßnahmen. Eine Umsetzung der Maßnahmen ist nicht erforderlich.
rechte Fahrbahnmarkierung | Gelb (y )
|
Mittelstreifen | Grün (g )
|
linke Fahrbahnmarkierung | Magenta (m )
|
Eingangsdateien: GeradeInKurve_IPT.mp4
Arbeitsergebnisse:
- MATLAB®-Skript:
segmentiereFahrbahnmarkierungen.m
- Darstellung des Fahrspursegmente für jedes Einzelbild des Films.
- Visuelle Überprüfung durch Einblendung in das
Ergebnisvideo:
GeradeInKurve_Segmente.mp4
- Sicherung der Segmente in
GeradeInKurve_Segmente.mat
- Dokumentation im Wiki-Artikel
Lernzielkontrolle:
Aufgaben 9.6: Spurpolynom
- Bestimmen Sie für die drei Spursegmenten das Spurpolynome 2. Ordnung mit
interpoliereFahrspur.m
gemäß Schnittstellendokumentation_Anlage_Lastenheft.docx metrisch im Fahrzeugkoordinatensystem. - Blenden Sie das Spurpolynom im Videobild ein.
Eingangsdateien:
GeradeInKurve_Segmente.mat
interpoliereFahrspur.m
Arbeitsergebnisse:
- MATLAB®-Skript:
zeigeSpurpolynom.m
- Darstellung des Spurpolynoms für jedes Einzelbild des Films.
- Visuelle Überprüfung durch Einblendung in das Video
Ergebnisvideo:
GeradeInKurve_Spurpolynom.mp4
- Spurparameter [a b c] als
Spurpolynom.mat
- Dokumentation im Wiki-Artikel
Lernzielkontrolle:
Nützlicher Link
- Allgemeine Anforderungen an ein Versuchsprotokoll
- MATLAB®-Skript, welches die Messung in eine Auswertedatei umwandelt: funktion_wandle_dspacemess_in_CCF_mess.m
→ zurück zum Hauptartikel: Praktikum SDE | SDE-Team 2024/25