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 |
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 GPU und Umgebungsfaktoren variieren.
Schätzung der Geschwindigkeit mit Ultralytics YOLO
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))
# speed region points
speed_region = [(20, 400), (1080, 400), (1080, 360), (20, 360)]
# Initialize speed estimation object
speedestimator = solutions.SpeedEstimator(
show=True, # display the output
model="yolo11n.pt", # path to the YOLO11 model file.
region=speed_region, # pass region points
# 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 . |
region |
list |
[(20, 400), (1260, 400)] |
Liste der Punkte, die den Zählbereich definieren. |
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 True zeigt 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 None wird die Linienbreite automatisch an die Bildgröße angepasst. Bietet visuelle Anpassung für Klarheit. |
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(
region=[(0, 360), (1280, 360)],
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 :
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.