87a6060a1a3ab2789885270f204d8d4c36f7e7a7
Neue Debug-Features: - Orange Bewegungslinien zeigen die Trajektorie jedes Fahrzeugs - Größerer grüner Kreis (25px) beim Zählen für bessere Sichtbarkeit - crossed_line() Helper-Funktion für bessere Code-Lesbarkeit Hilft beim Debuggen: - Bewegungslinien zeigen ob Fahrzeug sich bewegt - Sichtbar ob Bewegungslinie die Zähllinie kreuzt - Bestätigt visuell dass Tracking funktioniert 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Fahrzeug- und Objekt-Erkennungssystem
Eine webbasierte Anwendung zur Echtzeit-Objekterkennung und -Verfolgung mittels YOLOv11. Die Anwendung unterstützt sowohl Live-Webcam-Streams als auch die Verarbeitung hochgeladener Videodateien.
Funktionen
- Webcam-Erkennung: Echtzeit-Objekterkennung über die Webcam
- Video-Upload: Hochladen und Verarbeiten von Videodateien mit Objekterkennung
- Objekt-Tracking: Persistente Verfolgung von Objekten mit eindeutigen IDs über Frames hinweg
- Visuelle Markierungen: Bounding Boxes und Labels für erkannte Objekte
- Browser-basiert: Einfacher Zugriff über den Webbrowser
Voraussetzungen
- Python 3.12 oder höher
- Webcam (für Live-Erkennung)
- YOLO-Modell (
yolo11s.pt) im Hauptverzeichnis
Installation
-
Repository klonen oder herunterladen
-
Erforderliche Python-Pakete installieren:
pip3 install flask opencv-python numpy ultralytics
- Sicherstellen, dass die Modelldatei
yolo11s.ptim Hauptverzeichnis vorhanden ist
Verwendung
Anwendung starten
python3 app.py
Die Anwendung ist dann unter http://localhost:8080 erreichbar.
Webcam-Erkennung
- Öffnen Sie
http://localhost:8080im Browser - Klicken Sie auf "Start Webcam Detection"
- Die Webcam wird aktiviert und Objekte werden in Echtzeit erkannt und markiert
- Jedes Objekt erhält eine Track-ID und Klassenbeschriftung
Video-Upload
- Öffnen Sie
http://localhost:8080im Browser - Wählen Sie eine Videodatei über das Upload-Formular aus
- Klicken Sie auf "Upload Video"
- Das Video wird verarbeitet und mit Objekterkennungen angezeigt
Projektstruktur
.
├── app.py # Haupt-Flask-Anwendung
├── yolo11s.pt # YOLOv11-Modell (erforderlich)
├── templates/ # HTML-Templates
│ ├── index.html # Startseite
│ ├── webcam.html # Webcam-Anzeige
│ └── play_video.html # Video-Wiedergabe
├── uploads/ # Hochgeladene Videos (automatisch erstellt)
└── highway1.mp4 # Beispielvideo
Technische Details
Verwendete Technologien
- Flask: Web-Framework für Routing und Template-Rendering
- OpenCV: Videobearbeitung und Frame-Manipulation
- Ultralytics YOLO: YOLOv11-Modell für Objekterkennung und Tracking
- NumPy: Array-Operationen für Bilddaten
Verarbeitungs-Pipeline
- Frame-Erfassung: Webcam oder Videodatei als Quelle
- Frame-Skipping: Verarbeitung jedes 2. Frames zur Leistungsoptimierung
- Größenanpassung: Alle Frames werden auf 1020x600 Pixel skaliert
- YOLO-Tracking: Objekterkennung mit persistenten Track-IDs
- Annotation: Zeichnen von Bounding Boxes und Labels
- Streaming: Übertragung als MJPEG-Stream an den Browser
Objekterkennung
- Erkennt verschiedene Objektklassen (abhängig vom YOLO-Modell)
- Vergibt eindeutige Track-IDs für jedes Objekt
- Beschriftung im Format:
{Track-ID} - {Klassenname} - Grüne Bounding Boxes um erkannte Objekte
- Magenta-farbene Textbeschriftungen
Leistungsoptimierung
- Frame-Skipping: Nur jeder 2. Frame wird verarbeitet, um CPU-Last zu reduzieren
- Feste Auflösung: Einheitliche Größe von 1020x600 Pixel für alle Frames
- Effizientes Streaming: JPEG-Kompression für Frame-Übertragung
Einschränkungen
- Keine Validierung der Upload-Dateigröße
- Keine automatische Bereinigung hochgeladener Dateien
- Feste Frame-Dimensionen (1020x600)
- Keine Fehlerbehandlung bei Webcam-Zugriffsproblemen
Hinweise
- Bei der ersten Verwendung kann das Laden des YOLO-Modells einige Sekunden dauern
- Die Erkennungsgenauigkeit hängt vom verwendeten YOLO-Modell ab
- Frame-Skipping kann bei sehr schnell bewegten Objekten zu Erkennungslücken führen
- Hochgeladene Videos werden im Ordner
uploads/gespeichert und müssen manuell gelöscht werden
Lizenz
Projekt basiert auf Ressourcen von Pyresearch
Description
Languages
HTML
57.5%
Python
42.5%