SoSe24 - Praktikum Systementwurf - Spurerkennung mit Kamera (Modul OSE)

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 |
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:
- Wie lauten die Umrechnungsfaktoren Pixel in m in xF- und yF-Richtung.
- Welche Vor- und Nachteile hat die Polynombildung?
- Wie könnten die Nachteile behandelt werden?
- Wie wird der Blindbereich vorm Fahrzeug berücksichtigt?
Dokumente:
Tipps |
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. Weisen Sie den Erfolg mit einem Referenzbild nach.
- 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
- Kalibrierparameter der Kamera(s) aus Aufgabe 9.1.
Arbeitsergebnisse:
- MATLAB®-Skript:
startInversePerspektivenTransformation.m
- Transformiertes Video:
GeradeInKurve_IPT.mp4
- Dokumentation im Wiki-Artikel
Lernzielkontrollfragen:
- Wofür werden die Kamerakalibrierparameter verwendet?
- Was ist ein region-of-interest (ROI)? Wie wird dieser gewählt?
- Wie führt man eine effektive Binarisierung durch?
- Welche Fehler zeigen sich im Binärbild? Wie lassen sich diese beheben?
Tipps |
Beispiel: Bilder als Video speichern. |
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 (vgl. Abb. 10).
- 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 | Rot (r )
|
linke Fahrbahnmarkierung | Grün (g )
|
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:
- Mit welchen Ansätzen lassen sich die Mittle- und rechte Fahrspur segmentieren?
- Wieso sollten alle Fahrbahnränder segmentiert werden?
- Welche Vor- und Nachteile hat die Segmentierung?
- Wie könnten die Nachteile behandelt werden?
Tipps |
Beispiel: cell-array der Fahrspurmasken erzeugen |
Beispiel: Mittelpunkt der Unterkante eines Segmentes berechnen |
Beispiel: Segmente anhand einer Maske einfärben |
Programmablaufplan |
Aufgaben 9.6: Spurpolynom

- Bestimmen Sie für die drei Spursegmenten die Spurpolynome 2. Ordnung mit
interpoliereFahrspur.m
gemäß Schnittstellendokumentation_Anlage_Lastenheft.docx metrisch im Fahrzeugkoordinatensystem. - Blenden Sie die Spurpolynome in den Farben laut Tabelle 3 im Video
GeradeInKurve_IPT.mp4
ein (vgl. Abb. 12 und 14). - Bestimmen Sie das laut Schnittstellendokumentation_Anlage_Lastenheft.docx zu ermittelnde Spurpolynom für die Querregelung.
- Zeichnen Sie dieses als weiße Parabel ein (vgl. Abb. 12 und 14).
- Zeigen Sie das metrische Spurpolynom in Fahrzeugkoordinaten an (vgl. Abb. 15).
- Sichern Sie das Ergebnisvideo.
- Sichern Sie die Spurparameter des Spurpolynoms für die Querregelung.
- Analysieren Sie Ihr Ergebnis, identifizieren Sie Probleme und entwickeln mögliche Maßnahmen. Eine Umsetzung der Maßnahmen ist nicht erforderlich.
Eingangsdateien:
GeradeInKurve_IPT.mp4
GeradeInKurve_Segmente.mat
: struct mit den Labelmasken Linke Spur, Mittelspur, rechte SpurzeigeSegmente.m
: Hilfsfunktion zum Anzeigen der SegmenteinterpoliereFahrspur.m
: Hilfsfunktion zur Polynomregression
Arbeitsergebnisse:
- MATLAB®-Skript:
zeigeSpurpolynom.m
- Darstellung des Spurpolynoms für jedes Einzelbild des Films.
- Visuelle Überprüfung durch Einblendung in das Ergebnisvideo:
GeradeInKurve_Spurpolynom.mp4
- Spurparameter [a b c] als
Spurpolynom.mat
- Dokumentation im Wiki-Artikel
Lernzielkontrolle:
- Wie lassen sich die Spurpolynome für die 3 Segmente bestimmen.
- Welche Vor- und Nachteile hat die Polynombildung?
- Wie könnten die Nachteile behandelt werden?
- Wie lauten die Umrechnungsfaktoren Pixel in m in xF- und yF-Richtung.
- Wie wird der Blindbereich vorm Fahrzeug berücksichtigt?
- Wie wird das Spurpolynom für die Querregelung aus den Spurpolynom der Fahrbahnmarkierungen ermittelt?
Tipps |
Programmablaufplan |
Musterlösung |
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