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
Parking management Aerial View using 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

ParklĂŒcken Annotator Ultralytics YOLOv8

from ultralytics import solutions

solutions.ParkingPtsSelection()
  • 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 import solutions

# 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 = solutions.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
model_path str None Der Weg zum YOLOv8 Modell.
txt_color tuple (0, 0, 0) RGB-Farb-Tupel fĂŒr Text.
bg_color tuple (255, 255, 255) RGB-Farb-Tupel fĂŒr den Hintergrund.
occupied_region_color tuple (0, 255, 0) RGB-Farbtupel fĂŒr belegte Regionen.
available_region_color tuple (0, 0, 255) RGB-Farb-Tupel fĂŒr verfĂŒgbare Regionen.
margin int 10 Rand fĂŒr die Textanzeige.

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


Created 2024-04-29, Updated 2024-06-10
Authors: glenn-jocher (6), IvorZhu331 (1), RizwanMunawar (3)

Kommentare