Zum Inhalt springen

SchĂ€tzung der Geschwindigkeit mit Ultralytics YOLOv8 🚀

Was ist eine GeschwindigkeitsabschÀtzung?

Bei der GeschwindigkeitsschĂ€tzung handelt es sich um die Berechnung der Bewegungsgeschwindigkeit eines Objekts in einem bestimmten Kontext, die hĂ€ufig bei Computer-Vision-Anwendungen eingesetzt wird. Mit Ultralytics YOLOv8 kannst du jetzt die Geschwindigkeit eines Objekts berechnen, indem du die Objektverfolgung mit Entfernungs- und Zeitdaten kombinierst, was fĂŒr Aufgaben wie Verkehr und Überwachung entscheidend ist. Die Genauigkeit der GeschwindigkeitsschĂ€tzung wirkt sich direkt auf die Effizienz und ZuverlĂ€ssigkeit verschiedener Anwendungen aus und ist damit eine SchlĂŒsselkomponente bei der Weiterentwicklung intelligenter Systeme und Echtzeit-Entscheidungsprozesse.



Pass auf: SchÀtzung der Geschwindigkeit mit Ultralytics YOLOv8

Vorteile der GeschwindigkeitsabschÀtzung?

  • Effiziente Verkehrskontrolle: Genaue GeschwindigkeitsschĂ€tzungen helfen dabei, den Verkehrsfluss zu steuern, die Sicherheit zu erhöhen und Staus auf den Straßen zu reduzieren.
  • PrĂ€zise autonome Navigation: In autonomen Systemen wie selbstfahrenden Autos sorgt eine zuverlĂ€ssige GeschwindigkeitsschĂ€tzung fĂŒr eine sichere und genaue Fahrzeugnavigation.
  • Erhöhte Sicherheit bei der Überwachung: Die GeschwindigkeitsschĂ€tzung in der Überwachungsanalyse hilft dabei, ungewöhnliche Verhaltensweisen oder potenzielle Bedrohungen zu erkennen und so die Wirksamkeit der Sicherheitsmaßnahmen zu verbessern.

Anwendungen in der realen Welt

Transport Transport
SchĂ€tzung der Geschwindigkeit auf der Straße mit Ultralytics YOLOv8 SchĂ€tzung der Geschwindigkeit auf einer BrĂŒcke mit Ultralytics YOLOv8
SchĂ€tzung der Geschwindigkeit auf der Straße mit Ultralytics YOLOv8 SchĂ€tzung der Geschwindigkeit auf einer BrĂŒcke mit Ultralytics YOLOv8

SchÀtzung der Geschwindigkeit mit YOLOv8 Beispiel

from ultralytics import YOLO
from ultralytics.solutions import speed_estimation
import cv2

model = YOLO("yolov8n.pt")
names = model.model.names

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("speed_estimation.avi",
                               cv2.VideoWriter_fourcc(*'mp4v'),
                               fps,
                               (w, h))

line_pts = [(0, 360), (1280, 360)]

# Init speed-estimation obj
speed_obj = speed_estimation.SpeedEstimator()
speed_obj.set_args(reg_pts=line_pts,
                   names=names,
                   view_img=True)

while cap.isOpened():

    success, im0 = cap.read()
    if not success:
        print("Video frame is empty or video processing has been successfully completed.")
        break

    tracks = model.track(im0, persist=True, show=False)

    im0 = speed_obj.estimate_speed(im0, tracks)
    video_writer.write(im0)

cap.release()
video_writer.release()
cv2.destroyAllWindows()
Geschwindigkeit ist SchÀtzung

Die Geschwindigkeit ist eine SchĂ€tzung und möglicherweise nicht ganz genau. Außerdem kann die SchĂ€tzung je nach GPU-Geschwindigkeit variieren.

Optionale Argumente set_args

Name Typ Standard Beschreibung
reg_pts list [(20, 400), (1260, 400)] Punkte, die das Gebiet der Region definieren
names dict None Klassen Namen
view_img bool False Rahmen mit ZĂ€hlungen anzeigen
line_thickness int 2 Dicke der Begrenzungsrahmen erhöhen
region_thickness int 5 Dicke fĂŒr Objektgegenbereich oder Linie
spdl_dist_thresh int 10 Euklidischer Abstandsschwellenwert fĂŒr Geschwindigkeitskontrolllinie

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-01-05, Aktualisiert am 2024-05-08
Autoren: Burhan-Q (1), RizwanMunawar (2), glenn-jocher (2), AyushExel (1)

Kommentare