Zum Inhalt springen

Geschwindigkeits-Schätzung mit Ultralytics YOLO26 🚀

Was ist Geschwindigkeitsschätzung?

Geschwindigkeitsschätzung ist der Prozess der Berechnung der Bewegungsrate eines Objekts innerhalb eines bestimmten Kontextes, der häufig in Computer Vision-Anwendungen eingesetzt wird. Mit Ultralytics YOLO26 können Sie jetzt die Geschwindigkeit von Objekten mithilfe von Objekt-track in Verbindung mit Distanz- und Zeitdaten berechnen, was für Aufgaben wie Verkehrsüberwachung und -beobachtung 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 YOLO26

Schau dir unseren Blog an

Für tiefere Einblicke in die Geschwindigkeitsschätzung lesen Sie unseren Blogbeitrag: Ultralytics YOLO für die 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

TransportTransport
Geschwindigkeitsschätzung auf der Straße mit Ultralytics YOLO26Geschwindigkeitsschätzung auf Brücken mit Ultralytics YOLO26
Geschwindigkeitsschätzung auf der Straße mit Ultralytics YOLO26Geschwindigkeitsschätzung auf Brücken mit Ultralytics YOLO26
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="yolo26n.pt",  # path to the YOLO26 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:

ArgumentTypStandardBeschreibung
modelstrNonePfad zu einer Ultralytics YOLO Modelldatei.
fpsfloat30.0Frames pro Sekunde, die für Geschwindigkeitsberechnungen verwendet werden.
max_histint5Maximale historische Punkte, die pro Objekt zu track sind, für Geschwindigkeits-/Richtungsberechnungen.
meter_per_pixelfloat0.05Skalierungsfaktor, der für die Umwandlung von Pixelabständen in reale Einheiten verwendet wird.
max_speedint120Maximale Geschwindigkeitsbegrenzung in visuellen Overlays (wird in Warnmeldungen verwendet).

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

ArgumentTypStandardBeschreibung
trackerstr'botsort.yaml'Gibt den zu verwendenden Tracking-Algorithmus an, z. B. bytetrack.yaml oder botsort.yaml.
conffloat0.1Legt den Konfidenzschwellenwert für Erkennungen fest; niedrigere Werte ermöglichen die Verfolgung von mehr Objekten, können aber auch falsch positive Ergebnisse liefern.
ioufloat0.7Legt den Intersection over Union (IoU)-Schwellenwert für das Filtern überlappender Detektionen fest.
classeslistNoneFiltert Ergebnisse nach Klassenindex. Zum Beispiel, classes=[0, 2, 3] verfolgt nur die angegebenen Klassen.
verboseboolTrueSteuert die Anzeige der Tracking-Ergebnisse und bietet eine visuelle Ausgabe der verfolgten Objekte.
devicestrNoneGibt 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:

ArgumentTypStandardBeschreibung
showboolFalseWenn 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_widthint or NoneNoneGibt 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_confboolTrueZeigt den Konfidenzwert für jede Erkennung zusammen mit der Beschriftung an. Gibt Einblick in die Sicherheit des Modells für jede Erkennung.
show_labelsboolTrueZeigt 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 YOLO26?

Die Schätzung der Objektgeschwindigkeit mit Ultralytics YOLO26 beinhaltet die Kombination von Objekterkennung und tracking-Techniken. Zuerst müssen Sie Objekte in jedem Frame mit dem YOLO26-Modell detect. Anschließend track Sie diese Objekte über Frames hinweg, um ihre Bewegung im Laufe der Zeit zu berechnen. Verwenden Sie schließlich die vom Objekt zwischen den Frames zurückgelegte Distanz und die Bildrate, 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="yolo26n.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 YOLO26 für die Geschwindigkeitsschätzung im Verkehrsmanagement?

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

  • Erhöhte Sicherheit: Fahrzeuggeschwindigkeiten genau schätzen, um überhöhte Geschwindigkeiten zu erkennen und die Verkehrssicherheit zu verbessern.
  • Echtzeit-Überwachung: Profitieren Sie von der Echtzeit-Objekterkennungsfunktion von YOLO26, 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 YOLO26 in andere KI-Frameworks wie TensorFlow oder PyTorch integriert werden?

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

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

yolo export model=yolo26n.pt format=onnx

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

Wie genau ist die Geschwindigkeitsschätzung mit Ultralytics YOLO26?

Die Genauigkeit der Geschwindigkeitsschätzung mit Ultralytics YOLO26 hängt von mehreren Faktoren ab, darunter die Qualität des Objekt-tracking, die Auflösung und Bildrate des Videos sowie Umgebungsbedingungen. Obwohl der Geschwindigkeitsschätzer zuverlässige Schätzungen liefert, ist er aufgrund von Abweichungen in der Frame-Verarbeitungsgeschwindigkeit und 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.



📅 Erstellt vor 2 Jahren ✏️ Aktualisiert vor 7 Tagen
glenn-jocherRizwanMunawarMatthewNoyceRizwanMunawaraaurelions@gmail.comleonnilUltralyticsAssistantIvorZhu331Burhan-QAyushExel

Kommentare