SoSe24 - Praktikum Systementwurf - Spurerkennung mit Kamera (Modul OSE): Unterschied zwischen den Versionen
Keine Bearbeitungszusammenfassung |
|||
(46 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
Zeile 90: | Zeile 90: | ||
*[[OSE:_Bildverarbeitung_mit_Spurerkennung]] | *[[OSE:_Bildverarbeitung_mit_Spurerkennung]] | ||
{| role="presentation" class="wikitable mw-collapsible mw-collapsed" | |||
| <strong>Tipps </strong> | |||
|- | |||
| | |||
* Das Schachbrett zur Kalibrierung existiert bereits im Labor. | |||
* Bei der Bilderreihe muss das Schachbrettmuster den '''gesamten''' Bildbereich abdecken. | |||
* Legen Sie das Schachbrett flach auf den Boden und vermessen Sie die Position in Bezug auf die Kamera mit einem Maßband. So können Sie Lage und Pose der verbauten Kamera in MATLAB<sup>®</sup> ablesen. | |||
|} | |||
---- | ---- | ||
Zeile 98: | Zeile 105: | ||
[[Datei:Spurkandidaten F350.png|200px|thumb|right|Abb. 5: scharfe Linkskurve (Frame 350)]] | [[Datei:Spurkandidaten F350.png|200px|thumb|right|Abb. 5: scharfe Linkskurve (Frame 350)]] | ||
# Laden Sie das Bild <code>Spurkandidaten_F040.png</code> (vgl. Abb. ). | # Laden Sie das Bild <code>Spurkandidaten_F040.png</code> (vgl. Abb. 3). | ||
# Segmentieren Sie aus dem Kantenbild die rechte Fahrbahnmarkierungen. Welche Algorithmen der Vorlesung "Digitale Signal und Bildverarbeitung" lassen sich anwenden? | # 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. | # Zeigen Sie das Segment farbig im Bild an. | ||
Zeile 108: | 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 125: | 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 137: | 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>Tipp | | <strong>Tipp </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 162: | 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. | |||
# Bewerten Sie Ihr Ergebnis und aktualisieren Sie ggf. den [[Draufsichterstellung|Wiki-Artikel]]. | # Bewerten Sie Ihr Ergebnis und aktualisieren Sie ggf. den [[Draufsichterstellung|Wiki-Artikel]]. | ||
# | # Binarisieren Sie das Video und speichern Sie es als <code>GeradeInKurve_IPT.mp4</code>. | ||
'''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:''' | |||
---- | ---- | ||
=== 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, 10:26 Uhr
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
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
- 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
- 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:
Tipp |
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. - Bewerten Sie Ihr Ergebnis und aktualisieren Sie ggf. den Wiki-Artikel.
- Binarisieren Sie das Video und speichern Sie es als
GeradeInKurve_IPT.mp4
.
Eingangsdateien: SVN: GeradeInKurve.mp4
Arbeitsergebnisse:
- MATLAB®-Skript:
startInversePerspektivenTransformation.m
- Transformiertes Video:
GeradeInKurve_IPT.mp4
- Dokumentation im Wiki-Artikel
Lernzielkontrollfragen:
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