Echtzeit-Verkehrsschilderkennung über Desktop-Bildschirm – Verkehrsschilderkennung KI
| Autoren: | Fabian Babik, Adrian Klinspon |
| Art: | Projekt im Praxissemester |
| Dauer: | 29.09.2025 bis 01.01.2026 |
| Betreuer: | Prof. Dr.-Ing. Schneider |
Ziel des Tutorials
Diese Anleitung beschreibt, wie man die Desktop-Umgebung nutzt, um eine trainierte Verkehrsschilderkennung (KI) in Echtzeit zu testen. Anstatt mit einer Kamera nach draußen zu gehen, nutzen wir Bildschirminhalte (z. B. YouTube-Dashcam-Videos, Google Maps Fahrten oder Simulatoren wie Euro Truck Simulator 2) als Videoquelle für MATLAB.
Voraussetzungen
Bevor Sie starten, stellen Sie sicher, dass folgende Punkte erfüllt sind:
- Software:
- MATLAB (inkl. Computer Vision Toolbox)
- OBS Studio
- Dateien im Arbeitsverzeichnis:
- Das Skript LiveDetection.m (siehe unten)
- Die trainierte KI-Datei TrainedKI.mat
Schritt-für-Schritt Anleitung
Schritt 1: OBS Studio einrichten
Damit MATLAB den Bildschirminhalt als Kamera erkennt, muss eine "Virtuelle Kamera" eingerichtet werden.
- Öffnen Sie OBS Studio.
- Fügen Sie unter "Quellen" eine neue Quelle hinzu: Wählen Sie Bildschirmaufnahme oder Fensteraufnahme.
- Starten Sie im Browser ein Video oder ein Spiel.
- Klicken Sie in OBS unten rechts auf den Button "Virtuelle Kamera starten".

Schritt 2: MATLAB Skript ausführen
Der folgende Code verbindet MATLAB mit der virtuellen Kamera von OBS.
- Kopieren Sie den Code in ein neues Skript.
- Stellen Sie sicher, dass `TrainedKI.mat` im gleichen Ordner liegt.
- Starten Sie das Skript ("Run").
% =========================================================
% Tutorial: Desktop-Stream Analyse
% =========================================================
% --- 1. Verbindung zur virtuellen Kamera ---
if ~exist('cam', 'var')
% Greift auf den Stream von OBS Studio zu
cam = webcam('OBS Virtual Camera');
disp('Kamera verbunden.');
end
% --- 2. KI-Modell laden ---
if ~exist('net', 'var')
disp('Lade KI-Modell...');
meineKI = load('TrainedKI.mat');
net = meineKI.detector;
end
% --- 3. Aufnahme konfigurieren ---
videoName = 'LiveDetectionOutput.mp4';
video = VideoWriter(videoName,"MPEG-4");
video.FrameRate = 10; % Aufzeichnungsrate
open(video);
% --- 4. Live-Erkennung starten ---
counter = 0;
disp('Starte Erkennung... (Abbruch nach 61 Frames)');
while counter < 61
% Snapshot vom Desktop/OBS holen
img = snapshot(cam);
% Detektion (Nur Ergebnisse > 40% Wahrscheinlichkeit)
[bboxes, scores, labels] = detect(net, img, 'Threshold', 0.4);
% Zeichnen der Boxen bei Fund
if ~isempty(bboxes)
img = insertObjectAnnotation(img, 'rectangle', bboxes, labels);
end
% Live-Anzeige und Speichern
imshow(img);
drawnow;
writeVideo(video, img);
counter = counter + 1;
end
% --- 5. Abschluss ---
close(video);
clear cam;
disp(['Fertig. Video gespeichert als: ' videoName]);

Schritt 3: Ergebnisse auswerten
Sobald das Skript durchgelaufen ist (60 Frames):
- Prüfen Sie das MATLAB-Fenster: Wurden die Schilder während des Durchlaufs markiert?
- Öffnen Sie Ihren Projektordner. Dort finden Sie die Datei `LiveDetectionOutput.mp4`.
- Spielen Sie das Video ab, um die Detektionsqualität zu analysieren oder zu präsentieren.

Tipps zur Fehlerbehebung
- Fehler "Webcam not found": Stellen Sie sicher, dass Sie in OBS den Button "Virtuelle Kamera starten" gedrückt haben, bevor Sie MATLAB starten.
- Keine Erkennung: Prüfen Sie, ob das Video auf dem Bildschirm groß genug ist. Die KI benötigt eine gewisse Pixelgröße der Schilder, um sie zu erkennen.