SoSe24 - Praktikum Systementwurf - Inverse Perspektiventransformation (IPT): Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
(→Quelltext: Quelltext hinzugefügt) |
K (→PAP) |
||
Zeile 58: | Zeile 58: | ||
== PAP == | == PAP == | ||
{| role="presentation" class="wikitable mw-collapsible mw-collapsed" | {| role="presentation" class="wikitable mw-collapsible mw-collapsed" | ||
| <strong>Programmablaufplan </strong> | | <strong>Programmablaufplan </strong> |
Version vom 20. Juni 2024, 15:42 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
- Parameter
- Nachweis der erfolgreichen Entzerrung
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
- Darstellung der Ergebnisse
- Links zu den Arbeitsergebnissen
Analyse
Beschreibung | Das Problem ist.. | Das Problem ist nicht... |
---|---|---|
Was genau ist das Problem? | ||
Wo tritt das Problem auf? | Beispiel | Beispiel |
Wie zeigt sich das Problem? | Beispiel | Beispiel |
Wann tritt das Problem auf? | Beispiel | Beispiel |
Warum ist es ein Problem? | Beispiel | Beispiel |
Nr. | Beschreibung |
---|---|
1 | Warum? |
Nr. | Maßnahme | Verantwortung | Termin | Status |
---|---|---|---|---|
1 | Max Mustermann |
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