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. Mit Ultralytics YOLO11 können Sie nun die Geschwindigkeit eines Objekts berechnen, indem Sie die Objektverfolgung zusammen mit Entfernungs- und Zeitdaten verwenden, was für Aufgaben wie Verkehr und Überwachung von entscheidender Bedeutung ist. Die Genauigkeit der Geschwindigkeitsschätzung wirkt sich direkt auf die Effizienz und Zuverlässigkeit verschiedener Anwendungen aus und ist somit 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

Schätzung der Geschwindigkeit mit YOLO11 Beispiel

# Run a speed example
yolo solutions speed show=True

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

# Pass region coordinates
yolo solutions speed region=[(20, 400), (1080, 400), (1080, 360), (20, 360)]
import cv2

from ultralytics import solutions

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

# Define speed region points
speed_region = [(20, 400), (1080, 400), (1080, 360), (20, 360)]

speed = solutions.SpeedEstimator(
    show=True,  # Display the output
    model="yolo11n-pose.pt",  # Path to the YOLO11 model file.
    region=speed_region,  # Pass region points
    # classes=[0, 2],  # If you want to estimate speed of specific classes.
    # line_width=2,  # Adjust the line width for bounding boxes and text display
)

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

    if success:
        out = speed.estimate_speed(im0)
        video_writer.write(im0)
        if cv2.waitKey(1) & 0xFF == ord("q"):
            break
        continue

    print("Video frame is empty or video processing has been successfully completed.")
    break

cap.release()
cv2.destroyAllWindows()
Geschwindigkeit ist 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 Geschwindigkeit von GPU abweichen.

Argumente SpeedEstimator

Name Typ Standard Beschreibung
model str None Pfad zu Ultralytics YOLO Modelldatei
region list [(20, 400), (1260, 400)] Liste der Punkte, die den Zählbereich definieren.
line_width int 2 Linienstärke für Begrenzungsrahmen.
show bool False Flagge zur Steuerung, ob der Videostream angezeigt werden soll.

Argumente model.track

Argument Typ Standard Beschreibung
source str None Gibt das Quellverzeichnis für Bilder oder Videos an. Unterstützt Dateipfade und URLs.
persist bool False Ermöglicht die dauerhafte Verfolgung von Objekten zwischen Einzelbildern, wobei IDs über Videosequenzen hinweg beibehalten werden.
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.

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/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(
    region=[(0, 360), (1280, 360)],
    model="yolo11n.pt",
    show=True,
)

while cap.isOpened():
    success, im0 = cap.read()
    if not success:
        break
    im0 = speed_obj.estimate_speed(im0)
    video_writer.write(im0)

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 -Modellen in verschiedene Formate wie ONNX, TensorRT und CoreML und gewährleistet so eine reibungslose Interoperabilität mit anderen ML-Frameworks.

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.

Warum sollten Sie Ultralytics YOLO11 anderen Objekterkennungsmodellen wie TensorFlow Object Detection API vorziehen?

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

  • Echtzeit-Leistung: YOLO11 ist für die Echtzeit-Erkennung optimiert und bietet hohe Geschwindigkeit und Genauigkeit.
  • Benutzerfreundlichkeit: Die benutzerfreundliche Oberfläche von YOLO11 vereinfacht die Modellschulung und den Einsatz.
  • Vielseitigkeit: Unterstützt mehrere Aufgaben, einschließlich Objekterkennung, Segmentierung und Posenschätzung.
  • Community und Support: YOLO11 wird von einer aktiven Community und einer umfangreichen Dokumentation unterstützt, die den Entwicklern die benötigten Ressourcen zur Verfügung stellt.

Weitere Informationen über die Vorteile von YOLO11 finden Sie auf unserer detaillierten Modellseite.

📅 Created 11 months ago ✏️ Updated 16 days ago

Kommentare