Zum Inhalt springen

Geschwindigkeitsschätzung mit Ultralytics YOLO11 🚀

Was ist Geschwindigkeitsschätzung?

Geschwindigkeitsschätzung ist der Prozess der Berechnung der Bewegungsrate eines Objekts innerhalb eines gegebenen Kontexts, der häufig in Computer Vision-Anwendungen eingesetzt wird. Mit Ultralytics YOLO11 können Sie jetzt die Geschwindigkeit von Objekten mithilfe von Objektverfolgung zusammen mit Entfernungs- und Zeitdaten berechnen, was für Aufgaben wie Verkehrsüberwachung und -kontrolle entscheidend ist. Die Genauigkeit der Geschwindigkeitsschätzung beeinflusst direkt die Effizienz und Zuverlässigkeit verschiedener Anwendungen und ist somit eine Schlüsselkomponente bei der Weiterentwicklung intelligenter Systeme und Echtzeit-Entscheidungsprozesse.



Ansehen: Geschwindigkeitsschätzung mit Ultralytics YOLO11

Schau dir unseren Blog an

Für tiefere Einblicke in die Geschwindigkeitsschätzung lesen Sie unseren Blogbeitrag: Ultralytics YOLO11 für Geschwindigkeitsschätzung in Computer-Vision-Projekten

Vorteile der Geschwindigkeitsabschätzung

  • Effiziente Verkehrssteuerung: Die genaue Geschwindigkeitsschätzung hilft bei der Steuerung des Verkehrsflusses, der Erhöhung der Sicherheit und der Reduzierung von Staus auf den Straßen.
  • Präzise autonome Navigation: In autonomen Systemen wie selbstfahrenden Autos gewährleistet eine zuverlässige Geschwindigkeitsschätzung eine sichere und genaue Fahrzeugnavigation.
  • Erhöhte Überwachungssicherheit: Die Geschwindigkeitsschätzung in der Überwachungsanalyse hilft, ungewöhnliche Verhaltensweisen oder potenzielle Bedrohungen zu identifizieren und die Effektivität von Sicherheitsmaßnahmen zu verbessern.

Anwendungen in der realen Welt

Transport Transport
Geschwindigkeitsschätzung auf einer Straße mit Ultralytics YOLO11 Geschwindigkeitsschätzung auf einer Brücke mit Ultralytics YOLO11
Geschwindigkeitsschätzung auf einer Straße mit Ultralytics YOLO11 Geschwindigkeitsschätzung auf einer Brücke mit Ultralytics YOLO11
Geschwindigkeit ist eine Schätzung

Die Geschwindigkeit ist eine Schätzung und ist möglicherweise nicht vollständig genau. Zusätzlich kann die Schätzung je nach Kameraspezifikation und verwandten Faktoren variieren.

Geschwindigkeitsschätzung mit Ultralytics YOLO

# Run a speed example
yolo solutions speed show=True

# Pass a source video
yolo solutions speed source="path/to/video.mp4"

# Adjust meter per pixel value based on camera configuration
yolo solutions speed meter_per_pixel=0.05
import cv2

from ultralytics import solutions

cap = cv2.VideoCapture("path/to/video.mp4")
assert cap.isOpened(), "Error reading video file"

# Video writer
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_management.avi", cv2.VideoWriter_fourcc(*"mp4v"), fps, (w, h))

# Initialize speed estimation object
speedestimator = solutions.SpeedEstimator(
    show=True,  # display the output
    model="yolo11n.pt",  # path to the YOLO11 model file.
    fps=fps,  # adjust speed based on frame per second
    # max_speed=120,  # cap speed to a max value (km/h) to avoid outliers
    # max_hist=5,  # minimum frames object tracked before computing speed
    # meter_per_pixel=0.05,  # highly depends on the camera configuration
    # classes=[0, 2],  # estimate speed of specific classes.
    # line_width=2,  # adjust the line width for bounding boxes
)

# Process video
while cap.isOpened():
    success, im0 = cap.read()

    if not success:
        print("Video frame is empty or processing is complete.")
        break

    results = speedestimator(im0)

    # print(results)  # access the output

    video_writer.write(results.plot_im)  # write the processed frame.

cap.release()
video_writer.release()
cv2.destroyAllWindows()  # destroy all opened windows

SpeedEstimator Argumente

Hier ist eine Tabelle mit den SpeedEstimator Argumente:

Argument Typ Standard Beschreibung
model str None Pfad zur Ultralytics YOLO Modelldatei.
fps float 30.0 Frames pro Sekunde, die für Geschwindigkeitsberechnungen verwendet werden.
max_hist int 5 Maximale Anzahl historischer Punkte, die pro Objekt für Geschwindigkeits-/Richtungsberechnungen verfolgt werden sollen.
meter_per_pixel float 0.05 Skalierungsfaktor, der für die Umwandlung von Pixelabständen in reale Einheiten verwendet wird.
max_speed int 120 Maximale Geschwindigkeitsbegrenzung in visuellen Overlays (wird in Warnmeldungen verwendet).

Die SpeedEstimator Lösung ermöglicht die Verwendung von track Parameter:

Argument Typ Standard Beschreibung
tracker str 'botsort.yaml' Gibt den zu verwendenden Tracking-Algorithmus an, z. B. bytetrack.yaml oder botsort.yaml.
conf float 0.3 Legt den Konfidenzschwellenwert für Erkennungen fest; niedrigere Werte ermöglichen die Verfolgung von mehr Objekten, können aber auch falsch positive Ergebnisse liefern.
iou float 0.5 Legt den Intersection over Union (IoU)-Schwellenwert zum Filtern überlappender Erkennungen fest.
classes list None Filtert Ergebnisse nach Klassenindex. Zum Beispiel, classes=[0, 2, 3] verfolgt nur die angegebenen Klassen.
verbose bool True Steuert die Anzeige der Tracking-Ergebnisse und bietet eine visuelle Ausgabe der verfolgten Objekte.
device str None Gibt das Gerät für die Inferenz an (z. B. cpu, cuda:0 oder 0). Ermöglicht es Benutzern, zwischen CPU, einer bestimmten GPU oder anderen Rechengeräten für die Modellausführung zu wählen.

Zusätzlich werden die folgenden Visualisierungsoptionen unterstützt:

Argument Typ Standard Beschreibung
show bool False Wenn Trueaktiviert, werden die annotierten Bilder oder Videos in einem Fenster angezeigt. Nützlich für sofortiges visuelles Feedback während der Entwicklung oder des Testens.
line_width None or int None Gibt die Linienbreite der Begrenzungsrahmen an. Wenn None, wird die Linienbreite automatisch an die Bildgröße angepasst. Bietet eine visuelle Anpassung für mehr Klarheit.
show_conf bool True Zeigt den Konfidenzwert für jede Erkennung zusammen mit der Beschriftung an. Gibt Einblick in die Sicherheit des Modells für jede Erkennung.
show_labels bool True Zeigt Beschriftungen für jede Erkennung in der visuellen Ausgabe an. Ermöglicht ein sofortiges Verständnis der erkannten Objekte.

FAQ

Wie schätze ich die Objektgeschwindigkeit mit Ultralytics YOLO11?

Die Schätzung der Objektgeschwindigkeit mit Ultralytics YOLO11 umfasst die Kombination von Objekterkennung- und Tracking-Techniken. Zuerst müssen Sie Objekte in jedem Frame mit dem YOLO11-Modell erkennen. Verfolgen Sie dann diese Objekte über Frames hinweg, um ihre Bewegung im Laufe der Zeit zu berechnen. Verwenden Sie schließlich die von dem Objekt zwischen den Frames zurückgelegte Strecke und die Framerate, um seine Geschwindigkeit zu schätzen.

Beispiel:

import cv2

from ultralytics import solutions

cap = cv2.VideoCapture("path/to/video.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
speedestimator = solutions.SpeedEstimator(
    model="yolo11n.pt",
    show=True,
)

while cap.isOpened():
    success, im0 = cap.read()
    if not success:
        break
    results = speedestimator(im0)
    video_writer.write(results.plot_im)

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

Weitere Informationen finden Sie in unserem offiziellen Blog-Post.

Welche Vorteile bietet die Verwendung von Ultralytics YOLO11 für die Geschwindigkeitsmessung im Verkehrsmanagement?

Die Verwendung von Ultralytics YOLO11 zur Geschwindigkeitsschätzung bietet erhebliche Vorteile im Verkehrsmanagement:

  • Erhöhte Sicherheit: Schätzen Sie Fahrzeuggeschwindigkeiten genau, um Geschwindigkeitsüberschreitungen zu erkennen und die Verkehrssicherheit zu verbessern.
  • Echtzeitüberwachung: Profitieren Sie von der YOLO11-Echtzeit-Objekterkennung, um den Verkehrsfluss und Staus effektiv zu überwachen.
  • Skalierbarkeit: Stellen Sie das Modell auf verschiedenen Hardware-Setups bereit, von Edge-Geräten bis hin zu Servern, um flexible und skalierbare Lösungen für groß angelegte Implementierungen zu gewährleisten.

Weitere Anwendungsfälle finden Sie unter Vorteile der Geschwindigkeitsschätzung.

Kann YOLO11 in andere KI-Frameworks wie TensorFlow oder PyTorch integriert werden?

Ja, YOLO11 kann in andere KI-Frameworks wie TensorFlow und PyTorch integriert werden. Ultralytics bietet Unterstützung für den Export von YOLO11-Modellen in verschiedene Formate wie ONNX, TensorRT und CoreML, wodurch eine reibungslose Interoperabilität mit anderen ML-Frameworks gewährleistet wird.

So exportieren Sie ein YOLO11-Modell in das ONNX-Format:

yolo export model=yolo11n.pt format=onnx

Erfahren Sie mehr über das Exportieren von Modellen in unserer Anleitung zum Export.

Wie genau ist die Geschwindigkeitsschätzung mit Ultralytics YOLO11?

Die Genauigkeit der Geschwindigkeitsschätzung mit Ultralytics YOLO11 hängt von verschiedenen Faktoren ab, darunter die Qualität der Objektverfolgung, die Auflösung und Bildrate des Videos sowie Umgebungsvariablen. Während der Geschwindigkeitsschätzer zuverlässige Schätzungen liefert, ist er aufgrund von Abweichungen in der Frame-Verarbeitungsgeschwindigkeit und der Objektverdeckung möglicherweise nicht 100 % genau.

Hinweis: Berücksichtigen Sie immer die Fehlerspanne und validieren Sie die Schätzungen nach Möglichkeit mit Ground-Truth-Daten.

Weitere Tipps zur Verbesserung der Genauigkeit finden Sie im Abschnitt Argumente SpeedEstimator Abschnitt.



📅 Vor 1 Jahr erstellt ✏️ Vor 1 Monat aktualisiert

Kommentare