SoSe24 - Praktikum Systementwurf - Spurpolynom
Autoren: | Yuhan Pan, Xiangyao Liu, Yunkai Lin |
Thema: | Spurpolynom |
Workshoptermin 9: | 20.06.2024 |
Lernzielkontrolle 3: | 04.07.2024 |
Einleitung
In diesem Workshop lernen Sie, wie Bilddaten von Fahrzeugkameras verarbeitet werden, um Fahrspuren zu erkennen und zu analysieren. Der Fokus liegt auf der Transformation von Bildkoordinaten in Fahrzeugkoordinaten und der Erstellung von Polynomen zur Darstellung der Fahrspur. Zudem wird die Berücksichtigung des Blindbereichs und die Ermittlung der Mittellinie für die Querregelung behandelt.
Spurpolynom
In diesem Abschnitt werden die grundlegenden Konzepte und Techniken zur Ermittlung von Spurpolynomen erläutert. Dies umfasst die Theorie der Polynombildung, die Transformation von Bild- zu Fahrzeugkoordinaten, die Berücksichtigung des Blindbereichs sowie die Ermittlung des Spurpolynoms für die Querregelung.
Beschreibung die Theorie der Polynombildung
Die Polynombildung ist ein Verfahren zur Annäherung oder Interpolation von Datenpunkten durch ein Polynom. Ein Polynom n-ten Grades hat die Form: Die Koeffizienten werden so bestimmt, dass die Summe der quadrierten Abweichungen minimiert wird (Methode der kleinsten Quadrate). Im diese Workshop wurden Spurpolynom in Form: zeigen. Man kann durch den Segmentierung der Spurpolynom von Video der Queranzahl x und y festlegen, und durch den Queranzahl y und x den Spurparameter a, b und c berechnen.
Beschreiben Sie die KOS-Trafo Bild- zu Fahrzeugkoordinaten
Die KOS-Transformation wandelt Bildkoordinaten (u, v) in Fahrzeugkoordinaten (X, Y, Z) um. Zuerst werden Bildkoordinaten in Kamerakoordinaten umgerechnet, dann werden diese in Fahrzeugkoordinaten transformiert unter Berücksichtigung der Kameraposition und -neigung.
Berücksichtigung des Blindbereichs
Der Blindbereich umfasst Bereiche, die von der Kamera nicht erfasst werden können. Um den Blindbereich zu berücksichtigen, werden nur sichtbare Bereiche des Bildes in die Fahrzeugkoordinaten transformiert und weiterverarbeitet, indem sie geometrisch berechnet und maskiert werden.
Wie wird das Spurpolynom für die Querregelung aus den Spurpolynomen der Fahrbahnmarkierungen ermittelt?
Das Spurpolynom für die Querregelung wird aus den Spurpolynomen der linken und rechten Fahrbahnmarkierungen berechnet. Die Mittellinie der Fahrspur wird als Mittelwert der Positionen der linken und rechten Fahrbahnmarkierungen bestimmt und anschließend durch ein Polynom approximiert, das geglättet wird, um eine stabile Querregelung zu ermöglichen.
PAP
Programmablaufplan |
Quelltext
zeigeSpurpolynom.m |
<source line lang="matlab" style="font-size:medium">
%**************************************************************** % Hochschule Hamm-Lippstadt * %**************************************************************** % Modul : SDE-Praktikum * % * % Datum : 20.06.2024 * % * % Funktion : zeigeSpurpolynom * % * % Implementation : MATLAB 2024a * % * % Req. Toolbox : - * % * % Author : Yuhan Pan,Xiangyao Liu,Yuhnkai Lin * % * % Bemerkung : * % * % Letzte Änderung : 03.07.2024 * % * %***************************************************************/ %% MATLAB initialisieren clear all; close all % cell-array mit Fahrbahnmarkierungen laden load('GeradeInKurve_Segmente.mat') [~,nMaxBilder]=size(Fahrbahnmarkierung) %% Video laden stDateiname = 'GeradeInKurve_IPT.mp4'; hVideo = VideoReader(stDateiname); for nBild=1:nMaxBilder % Schleife über alle Frames aFrame = readFrame(hVideo); % Bild laden %% Fahrspurmasken auslesen Fahrbahn=Fahrbahnmarkierung{nBild}; aLinkeFahrspur = Fahrbahn(:,:,1); aMittelFahrspur = Fahrbahn(:,:,2); aRechteFahrspur = Fahrbahn(:,:,3); %% Fahrspuren einf?rben % Farbkan?le trennen R = aFrame(:,:,1); G = aFrame(:,:,2); B = aFrame(:,:,3); % Grün R(aLinkeFahrspur) = 0; B(aLinkeFahrspur) = 0; % Rot G(aMittelFahrspur) = 0; B(aMittelFahrspur) = 0; % Gelb B(aRechteFahrspur) = 0; aRGBBild = cat(3, R, G, B); % Bild zusammenfassungen %% Spurpolynom zwischen roten und gelben Fahrspuren berechnen und darstellen [yMittel, xMittel] = find(aMittelFahrspur); [yRechts, xRechts] = find(aRechteFahrspur); if ~isempty(yMittel) && ~isempty(yRechts) % Mittlere y-Koordinate als gemeinsame Basis verwenden yGemeinsam = unique([yMittel; yRechts]); % Polynom zwischen mittleren und rechten Fahrspuren anpassen pMittel = polyfit(yMittel, xMittel, 2); pRechts = polyfit(yRechts, xRechts, 2); xMittelPoly = polyval(pMittel, yGemeinsam); xRechtsPoly = polyval(pRechts, yGemeinsam); % Mittelwert der x-Koordinaten als Spurpolynom berechnen xSpurneu = (xMittelPoly + xRechtsPoly) / 2; end %% Bild anzeigen imshow(aRGBBild) title(['Frame: ', num2str(nBild), ' / ', num2str(nMaxBilder)]); hold on; if exist('xSpurneu','var') h3 = plot(xSpurneu,yGemeinsam, 'w-', 'Linewidth', 2); end %% Legend hinzufuegen h1 = plot(NaN, NaN, 'r-', 'LineWidth', 2); % Dummy plot for red legend h2 = plot(NaN, NaN, 'y-', 'LineWidth', 2); % Dummy plot for yellow legend legend([h1 h2 h3], {'Mittelspur', 'Rechtspur', 'Neuespur'}); hold off; pause(0.01); % Kurze Pause, um das Bild anzuzeigen end |
Ergebnisse
Link zu den Video:
https://svn.hshl.de/svn/MTR_SDE_Praktikum/trunk/_Semesterordner/Team_3_Liu_Pan_Lin\Termin_9\Aufgabe_6
.
-
Abb. 2: Darstellung der Spurpolynome bei Gerade
-
Abb. 3: Darstellung der Spurpolynome bei Linkskurve
-
Abb. 4: zeigeSpurpolynom un Segmentierung in Gerade
-
Abb. 5: zeigeSpurpolynom un Segmentierung in Linkskurve
Analyse
Beschreibung | Das Problem ist.. | Das Problem ist nicht... |
---|---|---|
Was genau ist das Problem? | Bei Zeige der metrischen Spurpolynom in Fahrzeugkoordinaten werden den Einheit von Pixel in tatsächliche Länge nicht gut umwandeln | Zusätzliche Kannten werden nicht in Bilden anzeigen |
Wo tritt das Problem auf? | Im der Video der metrischen Spurpolynom | Kamera und Video der Spurpolynom zu segmentieren |
Wie zeigt sich das Problem? | Spurparameter a, b und c sind anormal | bei der Fahrzeugkoordinaten sind die Wert zu groß, und Der Ursprungpunkt der Koordinaten stimmt nicht mit dem Wagen überein. |
Wann tritt das Problem auf? | Bei den metrischen Polynom zu polten | |
Warum ist es ein Problem? | Verwirrende Einheiten können nicht verwendet werden, um den Querregelung zu funktionieren und soll Bahn des Autos festzulegen |
Beschreibung | Das Problem ist.. | Das Problem ist nicht... |
---|---|---|
Was genau ist das Problem? | Bei Linkskurve ist den Spurpolynom bei Zeige der Segmente nicht stabil | |
Wo tritt das Problem auf? | Der Anbiegen des Autos | Geradefahren |
Wie zeigt sich das Problem? | erkennt Hindernisse am Straßenrand als Spuren | |
Wann tritt das Problem auf? | Fahren bei Linkskurve, besonders am die Ende | Geradefahren |
Warum ist es ein Problem? | Misserkannt der Spur kann zum Abdriftung des Fahrzeuges von der Fahrspur |
Nr. | Beschreibung |
---|---|
1 | Bei Läuf der Programm ist der Umwandlung der Einheit falsch |
2 | Zusätzliche Kanten und Muster sind gerade weiß und schwarz, das ist einfach zu erkennen. |
Nr. | Maßnahme | Verantwortung | Termin | Status |
---|---|---|---|---|
1 | Im Skript der metrischen Spurpolynom den Einheit von Koordinate umberechnen | Liu Pan Lin | 04.07.2024 | |
2 | Im Skript der metrischen Spurpolynom den Einheit von Spurparametern umberechnen | Liu Pan Lin | 04.07.2024 | |
3 | Visuelle Überprüfung durch Einblendung in das Ergebnisvideo | Liu Pan Lin | 04.07.2024 |
Hinweis: Die Maßnahmen müssen nicht umgesetzt werden.
Zusammenfassung
- Zusammenfassung
- Diskussion der Ergebnisse
- Ausblick
- Lessons Learned
Beantwortung der Lernzielkontrollfragen
Wie lassen sich die Spurpolynome für die 3 Segmente bestimmen?
Die Spurpolynome werden durch Extrahieren der Fahrspurpunkte und Anwenden der Methode der kleinsten Quadrate bestimmt.
Welche Vor- und Nachteile hat die Polynombildung?
Vorteile:
Einfache Implementierung
Flexibilität bei Kurvenformen
Es ist möglich, die Krümmung des Spur zu visualisieren, um Querreglung zu funktionieren. Dadurch kann es dazu führen, welche Bahn das Auto fahren würde (Istgröße) und welche Bahn das Auto fahren soll (Sollgröße)
Nachteile:
Oszillationen bei höhergradigen Polynomen
Überanpassung
Numerische Instabilität
Wie könnten die Nachteile behandelt werden?
Verwendung niedrigerer Polynome
Einsatz von Spline-Interpolation
Anwendung von Glättungstechniken
Wie lauten die Umrechnungsfaktoren Pixel in m in xF- und yF-Richtung?
xF-Richtung: (2 * (Kamerahöhe + Abstand zur Fahrzeugfront) * tan(Kameraneigung)) / Bildhöhe in Pixel
yF-Richtung: Fahrzeugbreite / Bildbreite in Pixel
Wie wird der Blindbereich vorm Fahrzeug berücksichtigt?
Nur die sichtbaren Bereiche des Bildes werden transformiert und weiterverarbeitet.
Wie wird das Spurpolynom für die Querregelung aus den Spurpolynomen der Fahrbahnmarkierungen ermittelt?
Die Mittellinie wird als Mittelwert der Positionen der linken und rechten Fahrbahnmarkierungen bestimmt und durch ein Polynom approximiert.
→ zurück zum Hauptartikel: Praktikum SDE | SDE-Team 2024/25 | Lernzielkontrolle 3