SoSe24 - Praktikum Systementwurf - Inverse Perspektiventransformation (IPT): Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
(Bilder angepasst. Problem beschreibung angepasst) |
(Ursachenanalyse und Maßnahmen eingefügt) |
||
Zeile 184: | Zeile 184: | ||
! Nr. !! Beschreibung | ! Nr. !! Beschreibung | ||
|- | |- | ||
| 1 || | | 1 || Licht Empfindlichkeit der Kamera ist zu hoch eingestellt | ||
|- | |||
| 2 || Ungünstiger Lichteinfall zur Bildaufnahme | |||
|- | |||
| 3 || Objekte neben der Fahrbahn | |||
|} | |} | ||
{| class="wikitable" | {| class="wikitable" | ||
Zeile 191: | Zeile 195: | ||
! Nr. !! Maßnahme !! Verantwortung !! Termin !! Status | ! Nr. !! Maßnahme !! Verantwortung !! Termin !! Status | ||
|- | |- | ||
| 1 || | | 1 || Auseinandersetzen mit den Kamera Einstellungen || Block, Janzen || 04.07.2024 || [[Datei:Status 0.jpg|ohne|20px]] | ||
|- | |||
| 2 || Abdunkeln der Fenster || Block, Janzen || 04.07.2024 || [[Datei:Status 0.jpg|ohne|20px]] | |||
|- | |||
| 3 || Bewegliche Objekte aus der Kamerasicht entfernen. Nicht bewegliche Objekte abdecken || Block, Janzen || 04.07.2024 || [[Datei:Status 0.jpg|ohne|20px]] | |||
|} | |} | ||
Hinweis: Die Maßnahmen müssen nicht umgesetzt werden. | Hinweis: Die Maßnahmen müssen nicht umgesetzt werden. |
Version vom 20. Juni 2024, 16:33 Uhr
Autoren: | Daniel Block, Paul Janzen |
Thema: | Inverse Perspektiventransformation (IPT) |
Workshoptermin 9: | 20.06.2024 |
Lernzielkontrolle 3: | 04.07.2024 |
Einleitung
In diesem Wikiartikel wird dargestellt, wie wir eine Inverse Perspektiventransformation (IPT) auf ein Bild und ein Video angewendet haben. Die angewendete IPT war eine sogenannte Bird's Eye View-Transformation. Diese Technik bietet eine unverzerrte Draufsicht, die die Erkennung und Verfolgung von Fahrspuren erheblich erleichtert, da die Linien parallel und gleichmäßig erscheinen.
Kalibrierung der Kamera
Für die Erstellung des kalibrierten Bildes wurden folgende von der App erstellten Parameter verwendet:
Parameter | Wert |
---|---|
FocalLength | [472.3687, 473.2485] |
ImageSize | [478, 752] |
RadialDistortion | [-0.3437, 0.1698, -0.0485] |
TangentialDistortion | [0.0016, -0.0018] |
PrincipalPoint | [386.103, 228.4705] |
MeanReprojectionError | 0.1542 |
Parameter | Wert |
---|---|
Kameraneigung | 10° |
Kamerahöhe über Boden | 27,5cm |
Fahrzeugfront bis Kamera | 27cm |
Fahrzeuglänge | 41cm |
Fahrzeugbreite | 20cm |
Inversen Perspektiventransformation
Beschreibung der MATLAB Funktion(en), Eingangs- und Ausgangsparameter
PAP
Programmablaufplan |
Quelltext
startInversePerspektivenTransformation.m |
%****************************************************************
% Hochschule Hamm-Lippstadt *
%****************************************************************
% Modul : SDE-Praktikum *
% *
% Datum : 20.06.2024 *
% *
% Funktion : Inverse Perspektiventransformation *
% *
% Implementation : MATLAB 2023a *
% *
% Req. Toolbox : Image Processing Toolbox *
% Computer Vision Toolbox *
% Automated Driving Toolbox *
% *
% Author : Paul Janzen, Daniel Block *
% *
% Bemerkung : *
% *
% Letzte Änderung : 20.06.2024 *
% *
%***************************************************************/
%% Matlab vorbereiten
clear all
close all
clc
%% Pfade einstellen und Parameter laden
addpath 'D:\SVN\SDE_Praktikum_trunk\_Semesterordner\SS2024\Team_1_Block_Janzen\Termin_9\Aufgabe_9_1'
addpath 'D:\SVN\SDE_Praktikum_trunk\_Semesterordner\SS2024\Team_1_Block_Janzen\Termin_9\Bilder'
load('cameraParams.mat')
%% Bild laden
inputImage = imread('Geradeaus.png');
%inputImage = imread('Linkskurve.png');
%% Einstellen der notwendigen Parameter
% Intrinsischen Parameer
camIntrinsics = cameraIntrinsics(cameraParams2.FocalLength,cameraParams2.PrincipalPoint,cameraParams2.ImageSize);
% Extrinsischen Parameter
height = 0.275;
pitch = 10;
sensor = monoCamera(camIntrinsics,height,'Pitch',pitch);
% Einstellen der Sichtweite
distAhead = 3;
spaceToOneSide = 0.8;
bottomOffset = 0.275;
outView = [bottomOffset,distAhead,-spaceToOneSide,spaceToOneSide];
% IPT am Bild anwenden
outImageSize = [NaN,250];
birdsEyeConfig = birdsEyeView(sensor, outView, outImageSize);
outputImage = transformImage(birdsEyeConfig, inputImage);
%% Darstellung des Bildes in BirdeyeView
figure
imshow(outputImage);
title('Geradeaus in BirdeyeView')
%% Video laden
video = VideoReader('GeradeInKurve.mp4');
% Video Writer initialisieren
outputVideoFile = 'GeradeInKurve_IPT.mp4'; % Speichername des Bearbeiteten Videos festlegen
outputVideo = VideoWriter(outputVideoFile, 'MPEG-4'); % Datentyp des Neuen Videos festlegen
outputVideo.FrameRate = video.FrameRate; % Festlegen der gleichen Bildrate wie das Originalvideo
open(outputVideo);
% Frames extrahieren, bearbeiten und in das neue Video schreiben
while hasFrame(video)
frame = readFrame(video); % Einlesen der einzelnen Frames
% Frame bearbeiten
processedFrame = transformImage(birdsEyeConfig, frame); % Frame mit der IPT transformeieren
processedFrame = rgb2gray(processedFrame); % Bild in ein Graubild umwandeln
processedFrame = imbinarize(processedFrame); % Bild in ein Binärbild umwandeln
% Bearbeitete Frames in das neue Video schreiben
writeVideo(outputVideo, im2uint8(processedFrame));
end
% Video Writer schließen
close(outputVideo);
|
Ergebnisse
Analyse
Beschreibung | Das Problem ist.. |
---|---|
Was genau ist das Problem? | Neben der Fahrbahn werden auch Störelemente aufgenommen |
Wo tritt das Problem auf? | Die Kamera zeichnet die Störquellen mit auf |
Wie zeigt sich das Problem? | Zusätzliche Kanten und Muster werden in den transformierten Bildern angezeigt |
Wann tritt das Problem auf? | Bei jedem aufgenommenen Bild |
Warum ist es ein Problem? | Bei der Weiterarbeitung und Verwendung kann dies zu Fehl Schlüssen führen |
Nr. | Beschreibung |
---|---|
1 | Licht Empfindlichkeit der Kamera ist zu hoch eingestellt |
2 | Ungünstiger Lichteinfall zur Bildaufnahme |
3 | Objekte neben der Fahrbahn |
Nr. | Maßnahme | Verantwortung | Termin | Status |
---|---|---|---|---|
1 | Auseinandersetzen mit den Kamera Einstellungen | Block, Janzen | 04.07.2024 | |
2 | Abdunkeln der Fenster | Block, Janzen | 04.07.2024 | |
3 | Bewegliche Objekte aus der Kamerasicht entfernen. Nicht bewegliche Objekte abdecken | Block, Janzen | 04.07.2024 |
Hinweis: Die Maßnahmen müssen nicht umgesetzt werden.
Zusammenfassung
Beantwortung der Lernzielkontrollfragen
→ zurück zum Hauptartikel: Praktikum SDE | SDE-Team 2024/25 | Lernzielkontrolle 3