Zum Inhalt springen

Parkraummanagement mit Ultralytics YOLOv8 🚀

Was ist ein Parkmanagementsystem?

Parkraummanagement mit Ultralytics YOLOv8 sorgt für effizientes und sicheres Parken, indem es Plätze organisiert und die Verfügbarkeit überwacht. YOLOv8 kann die Parkplatzverwaltung durch Fahrzeugerkennung in Echtzeit und Einblicke in die Parkbelegung verbessern.

Vorteile eines Parkmanagementsystems?

  • Effizienz: Die Parkraumbewirtschaftung optimiert die Nutzung der Parkplätze und reduziert Staus.
  • Sicherheit und Schutz: Die Parkraumbewirtschaftung mit YOLOv8 verbessert die Sicherheit von Menschen und Fahrzeugen durch Überwachungs- und Sicherheitsmaßnahmen.
  • Geringere Emissionen: Die Parkraumbewirtschaftung mit YOLOv8 steuert den Verkehrsfluss, um Leerlaufzeiten und Emissionen auf Parkplätzen zu minimieren.

Anwendungen in der realen Welt

Parkraum-Management-System Parkraum-Management-System
Parkplätze Analytik mit Ultralytics YOLOv8 Parkraummanagement in der Draufsicht mit Ultralytics YOLOv8
Parkraumbewirtschaftung Aeriel View mit Ultralytics YOLOv8 Parkraummanagement Draufsicht mit Ultralytics YOLOv8

Parking Management System Code Workflow

Auswahl der Punkte

Punktauswahl ist jetzt einfach

Die Auswahl von Parkplätzen ist eine kritische und komplexe Aufgabe in Parkraumbewirtschaftungssystemen. Ultralytics vereinfacht diesen Prozess, indem es ein Tool bereitstellt, mit dem du Parkplatzbereiche definieren kannst, die später für die weitere Bearbeitung genutzt werden können.

  • Nimm ein Bild aus dem Video- oder Kamerastream auf, in dem du den Parkplatz verwalten möchtest.
  • Verwende den mitgelieferten Code, um eine grafische Oberfläche zu starten, in der du ein Bild auswählen und mit einem Mausklick Parkregionen umreißen kannst, um Polygone zu erstellen.

Bildgröße

Maximale Bildgröße von 1920 * 1080 unterstützt

from ultralytics.solutions.parking_management import ParkingPtsSelection, tk
root = tk.Tk()
ParkingPtsSelection(root)
root.mainloop()
  • Nachdem Sie die Parkflächen mit Polygonen definiert haben, klicken Sie auf save um eine JSON-Datei mit den Daten in deinem Arbeitsverzeichnis zu speichern.

Ultralytics YOLOv8 Punkte Auswahl Demo

Python Kodex für die Parkraumbewirtschaftung

Parkraummanagement mit YOLOv8 Beispiel

import cv2
from ultralytics.solutions.parking_management import ParkingManagement

# Path to json file, that created with above point selection app
polygon_json_path = "bounding_boxes.json"

# Video capture
cap = cv2.VideoCapture("Path/to/video/file.mp4")
assert cap.isOpened(), "Error reading video file"
w, h, fps = (int(cap.get(x)) for x in (cv2.CAP_PROP_FRAME_WIDTH,
                                       cv2.CAP_PROP_FRAME_HEIGHT, 
                                       cv2.CAP_PROP_FPS))

# Video writer
video_writer = cv2.VideoWriter("parking management.avi", 
                                cv2.VideoWriter_fourcc(*'mp4v'), fps, (w, h))

# Initialize parking management object
management = ParkingManagement(model_path="yolov8n.pt")

while cap.isOpened():
    ret, im0 = cap.read()
    if not ret:
        break

    json_data = management.parking_regions_extraction(polygon_json_path)
    results = management.model.track(im0, persist=True, show=False)

    if results[0].boxes.id is not None:
        boxes = results[0].boxes.xyxy.cpu().tolist()
        clss = results[0].boxes.cls.cpu().tolist()
        management.process_data(json_data, im0, boxes, clss)

    management.display_frames(im0)
    video_writer.write(im0)

cap.release()
video_writer.release()
cv2.destroyAllWindows()

Optionale Argumente ParkingManagement()

Name Typ Standard Beschreibung
occupied_region_color RGB Color (0, 255, 0) Farbe des belegten Parkplatzes in der Region
available_region_color RGB Color (0, 0, 255) Parkplatz verfügbar Region Farbe
margin int 10 Lücke zwischen Textanzeige für mehrere Klassen zählen
txt_color RGB Color (255, 255, 255) Vordergrundfarbe für Objekt zählt Text
bg_color RGB Color (255, 255, 255) Rechteck hinter Text Hintergrundfarbe

Argumente model.track

Name Typ Standard Beschreibung
source im0 None Quellverzeichnis für Bilder oder Videos
persist bool False Spuren zwischen Frames beibehalten
tracker str botsort.yaml Tracking-Methode 'bytetrack' oder 'botsort'
conf float 0.3 Konfidenzschwelle
iou float 0.5 IOU-Schwelle
classes list None Ergebnisse nach Klassen filtern, d.h. classes=0, oder classes=[0,2,3]
verbose bool True Anzeige der Ergebnisse der Objektverfolgung


Erstellt am 2024-04-29, Aktualisiert am 2024-05-01
Autoren: RizwanMunawar (2)

Kommentare