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

Schau dir unseren Blog an

Weitere Informationen zur Geschwindigkeitsschätzung findest du in unserem Blogbeitrag: Ultralytics YOLOv8 for Speed Estimation in Computer Vision Projects

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

import cv2

from ultralytics import YOLO, solutions

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 = solutions.SpeedEstimator(
    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, die möglicherweise nicht ganz genau ist. Außerdem kann die Schätzung je nach Geschwindigkeit von GPU abweichen.

Argumente SpeedEstimator

Name Typ Standard Beschreibung
names dict None Wörterbuch der Klassennamen.
reg_pts list [(20, 400), (1260, 400)] Liste der regionalen Punkte für die Geschwindigkeitsschätzung.
view_img bool False Ob das Bild mit Kommentaren angezeigt werden soll.
line_thickness int 2 Dicke der Linien zum Zeichnen von Kästen und Spuren.
region_thickness int 5 Dicke der Regionslinien.
spdl_dist_thresh int 10 Entfernungsschwelle für die Geschwindigkeitsberechnung.

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

FAQ

Wie schätze ich die Geschwindigkeit eines Objekts mit Ultralytics YOLOv8 ?

Die Schätzung der Objektgeschwindigkeit mit Ultralytics YOLOv8 erfordert eine Kombination aus Objekterkennung und Verfolgungsmethoden. Zuerst musst du mit dem YOLOv8 Modell Objekte in jedem Bild erkennen. Dann verfolgst du diese Objekte über die Frames hinweg, um ihre Bewegung über die Zeit zu berechnen. Schließlich schätzt du die Geschwindigkeit anhand der Strecke, die das Objekt zwischen den Bildern zurücklegt, und der Bildrate.

Beispiel:

import cv2

from ultralytics import YOLO, solutions

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

cap = cv2.VideoCapture("path/to/video/file.mp4")
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 = cv2.VideoWriter("speed_estimation.avi", cv2.VideoWriter_fourcc(*"mp4v"), fps, (w, h))

# Initialize SpeedEstimator
speed_obj = solutions.SpeedEstimator(
    reg_pts=[(0, 360), (1280, 360)],
    names=names,
    view_img=True,
)

while cap.isOpened():
    success, im0 = cap.read()
    if not success:
        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()

Weitere Details findest du in unserem offiziellen Blogbeitrag.

Was sind die Vorteile der Verwendung von Ultralytics YOLOv8 für die Geschwindigkeitsschätzung im Verkehrsmanagement?

Die Verwendung von Ultralytics YOLOv8 zur Geschwindigkeitsschätzung bietet erhebliche Vorteile für das Verkehrsmanagement:

  • Erhöhte Sicherheit: Schätze die Fahrzeuggeschwindigkeit genau ein, um Geschwindigkeitsüberschreitungen zu erkennen und die Verkehrssicherheit zu erhöhen.
  • Überwachung in Echtzeit: Nutze die Fähigkeit von YOLOv8, Objekte in Echtzeit zu erkennen, um den Verkehrsfluss und Staus effektiv zu überwachen.
  • Skalierbarkeit: Setze das Modell auf verschiedenen Hardwarekonfigurationen ein, von Edge-Geräten bis hin zu Servern, um flexible und skalierbare Lösungen für groß angelegte Implementierungen zu gewährleisten.

Weitere Anwendungen findest du unter Vorteile der Geschwindigkeitsschätzung.

Kann YOLOv8 mit anderen KI-Frameworks wie TensorFlow oder PyTorch integriert werden?

Ja, YOLOv8 kann mit anderen KI-Frameworks wie TensorFlow und PyTorch integriert werden. Ultralytics unterstützt den Export von YOLOv8 -Modellen in verschiedene Formate wie ONNX, TensorRT und CoreML und gewährleistet so eine reibungslose Interoperabilität mit anderen ML-Frameworks.

So exportierst du ein Modell von YOLOv8 in das Format ONNX :

yolo export --weights yolov8n.pt --include onnx

Erfahre mehr über den Export von Modellen in unserem Leitfaden zum Export.

Wie genau ist die Schätzung der Geschwindigkeit mit Ultralytics YOLOv8 ?

Die Genauigkeit der Geschwindigkeitsschätzung mit Ultralytics YOLOv8 hängt von mehreren Faktoren ab, darunter die Qualität der Objektverfolgung, die Auflösung und Bildrate des Videos und Umgebungsvariablen. Der Geschwindigkeitsschätzer liefert zwar zuverlässige Schätzungen, ist aber aufgrund von Abweichungen bei der Bildverarbeitungsgeschwindigkeit und der Objektverdeckung möglicherweise nicht 100 % genau.

Hinweis: Berücksichtige immer die Fehlermarge und überprüfe die Schätzungen nach Möglichkeit mit den tatsächlichen Daten.

Weitere Tipps zur Verbesserung der Genauigkeit findest du in der Argumente SpeedEstimator Abschnitt.

Warum Ultralytics YOLOv8 gegenüber anderen Objekterkennungsmodellen wie TensorFlow Object Detection API wählen?

Ultralytics YOLOv8 bietet mehrere Vorteile gegenüber anderen Objekterkennungsmodellen, wie z. B. der TensorFlow Object Detection API:

  • Echtzeit-Leistung: YOLOv8 ist für die Echtzeit-Erkennung optimiert und bietet hohe Geschwindigkeit und Genauigkeit.
  • Benutzerfreundlichkeit: Mit seiner benutzerfreundlichen Oberfläche vereinfacht YOLOv8 die Modellschulung und den Einsatz.
  • Vielseitigkeit: Unterstützt mehrere Aufgaben, darunter Objekterkennung, Segmentierung und Posenschätzung.
  • Community und Support: YOLOv8 wird von einer aktiven Community und einer ausführlichen Dokumentation unterstützt, so dass die Entwickler über die nötigen Ressourcen verfügen.

Weitere Informationen über die Vorteile von YOLOv8 findest du auf unserer detaillierten Modellseite.



Erstellt 2024-01-05, Aktualisiert 2024-07-05
Autoren: glenn-jocher (7), IvorZhu331 (1), RizwanMunawar (2), Burhan-Q (1), AyushExel (1)

Kommentare