Zum Inhalt springen

Schätzung der Geschwindigkeit mit Ultralytics YOLO11 🚀

Was ist eine Geschwindigkeitsschätzung?

Bei der Geschwindigkeitsschätzung handelt es sich um die Berechnung der Bewegungsgeschwindigkeit eines Objekts in einem bestimmten Kontext, die häufig in Bildverarbeitungsanwendungen eingesetzt wird. Verwendung von Ultralytics YOLO11 können Sie jetzt die Geschwindigkeit von Objekten berechnen, indem Sie die Objektverfolgung zusammen mit Entfernungs- und Zeitdaten nutzen, was für Aufgaben wie Verkehrsüberwachung und -beobachtung von entscheidender Bedeutung 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.



Beobachten: Schätzung der Geschwindigkeit mit Ultralytics YOLO11

Besuchen Sie unseren Blog

Weitere Informationen zur Geschwindigkeitsschätzung finden Sie in unserem Blogbeitrag: Ultralytics YOLO11 for Speed Estimation in Computer Vision Projects

Vorteile der Geschwindigkeitsabschätzung

  • Effiziente Verkehrskontrolle: Genaue Geschwindigkeitsschätzungen helfen, 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 bei der Erkennung ungewöhnlicher Verhaltensweisen oder potenzieller Bedrohungen und verbessert so die Wirksamkeit der Sicherheitsmaßnahmen.

Anwendungen in der realen Welt

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

Bei der Geschwindigkeit handelt es sich um eine Schätzung, die möglicherweise nicht ganz genau ist. Außerdem kann die Schätzung je nach Kameraspezifikationen und ähnlichen Faktoren variieren.

Schätzung der Geschwindigkeit 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 .
fps float 30.0 Für die Geschwindigkeitsberechnung verwendete Bilder pro Sekunde.
max_hist int 5 Maximal zu verfolgende historische Punkte pro Objekt für Geschwindigkeits-/Richtungsberechnungen.
meter_per_pixel float 0.05 Skalierungsfaktor, der für die Umwandlung des Pixelabstands in reale Einheiten verwendet wird.
max_speed int 120 Höchstgeschwindigkeit in visuellen Overlays (in Warnungen verwendet).

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

Argument Typ Standard Beschreibung
tracker str 'botsort.yaml' Gibt den zu verwendenden Verfolgungsalgorithmus an, z. B., bytetrack.yaml oder botsort.yaml.
conf float 0.3 Legt die Konfidenzschwelle für Erkennungen fest; niedrigere Werte ermöglichen die Verfolgung von mehr Objekten, können aber auch zu falsch positiven Ergebnissen führen.
iou float 0.5 Legt den Schwellenwert für die Überschneidung über die Vereinigung (IoU) zum Filtern von überlappenden Erkennungen fest.
classes list None Filtert die Ergebnisse nach Klassenindex. Zum Beispiel, classes=[0, 2, 3] verfolgt nur die angegebenen Klassen.
verbose bool True Steuert die Anzeige der Verfolgungsergebnisse und liefert 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 dem Benutzer die Auswahl zwischen CPU, einem bestimmten GPU oder anderen Rechengeräten für die Modellausführung.

Zusätzlich werden die folgenden Visualisierungsoptionen unterstützt:

Argument Typ Standard Beschreibung
show bool False Wenn Truezeigt die kommentierten Bilder oder Videos in einem Fenster an. Nützlich für sofortiges visuelles Feedback während der Entwicklung oder des Testens.
line_width None or int None Gibt die Linienbreite von Begrenzungsrahmen an. Wenn Nonewird die Linienbreite automatisch an die Bildgröße angepasst. Bietet visuelle Anpassung für Klarheit.
show_conf bool True Zeigt neben der Kennzeichnung auch den Konfidenzwert für jede Erkennung an. Gibt einen 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 Geschwindigkeit von Objekten mit Ultralytics YOLO11 ?

Die Schätzung der Objektgeschwindigkeit mit Ultralytics YOLO11 erfordert eine Kombination von Objekterkennungs- und Verfolgungsverfahren. Zunächst müssen Sie Objekte in jedem Bild mit dem Modell YOLO11 erkennen. Verfolgen Sie dann diese Objekte über Frames hinweg, um ihre Bewegung über die Zeit zu berechnen. Schließlich verwenden Sie die vom Objekt zwischen den Frames zurückgelegte Strecke und die Frame-Rate, 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 Einzelheiten finden Sie in unserem offiziellen Blogbeitrag.

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

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

  • Erhöhte Sicherheit: Präzise Schätzung der Fahrzeuggeschwindigkeit zur Erkennung von Geschwindigkeitsüberschreitungen und zur Verbesserung der Verkehrssicherheit.
  • Überwachung in Echtzeit: Nutzen Sie die Echtzeit-Objekterkennungsfunktion von YOLO11, um den Verkehrsfluss und Staus effektiv zu überwachen.
  • Skalierbarkeit: Stellen Sie das Modell auf verschiedenen Hardwarekonfigurationen bereit, von Edge-Geräten bis hin zu Servern, um flexible und skalierbare Lösungen für groß angelegte Implementierungen zu gewährleisten.

Weitere Anwendungen finden Sie unter Vorteile der Geschwindigkeitsabschätzung.

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

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

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

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

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

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

Die Genauigkeit der Geschwindigkeitsschätzung mit Ultralytics YOLO11 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 Verdeckung von Objekten möglicherweise nicht zu 100 % genau.

Hinweis: Berücksichtigen Sie immer die Fehlermarge und validieren Sie die Schätzungen nach Möglichkeit mit den tatsächlichen Daten vor Ort.

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



📅 Erstellt vor 1 Jahr ✏️ Aktualisiert vor 14 Tagen

Kommentare