SoSe24 - Praktikum Systementwurf - Inverse Perspektiventransformation (IPT): Unterschied zwischen den Versionen

Aus HSHL Mechatronik
Zur Navigation springen Zur Suche springen
KKeine Bearbeitungszusammenfassung
(→‎Quelltext: Quelltext hinzugefügt)
Zeile 66: Zeile 66:


== Quelltext ==
== Quelltext ==
*MATLAB Quelltext Ihrer Lösung mit Header  und Kommentaren.
* Beachten Sie die [[Medium:Programmierrichtlinien_für_Matlab.pdf|Programmierrichtlinien für MATLAB<sup>®</sup>]].
{| role="presentation" class="wikitable mw-collapsible mw-collapsed"
{| role="presentation" class="wikitable mw-collapsible mw-collapsed"
| <strong>startInversePerspektivenTransformation.m&thinsp;</strong>
| <strong>startInversePerspektivenTransformation.m&thinsp;</strong>
|-
|-
|<source line lang="matlab" style="font-size:medium">
|<source line lang="matlab" style="font-size:medium">
%****************************************************************
%                  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);
</source>
</source>
|}
|}

Version vom 20. Juni 2024, 15:42 Uhr

Abbildung 1: GeradeInKurve in BirdeyeView Perspektive
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

Abbildung 2: Original und entzerrtes Bild
Abbildung 2: Original und entzerrtes Bild
  • Parameter
  • Nachweis der erfolgreichen Entzerrung

Für die Erstellung des kalibrierten Bildes wurden folgende von der App erstellten Parameter verwendet:

Tabelle 1: Erzeugte Parameter der Matlab Calibrator App
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
Tabelle 2: Extrinsische Kameraparameter
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

PAP Ihrer Lösung

Quelltext

Ergebnisse

  • Darstellung der Ergebnisse
  • Links zu den Arbeitsergebnissen

Analyse

Tabelle 1: Problembeschreibung
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
Tabelle 2: Ursachenanalyse
Nr. Beschreibung
1 Warum?
Tabelle 3: Maßnahmen zur Beseitigung der identifizierten Ursache(n)
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