Schätzung der Geschwindigkeit mit Ultralytics YOLOv8 🚀
Was ist eine Geschwindigkeitsabschätzung?
Bei der Geschwindigkeitsschätzung handelt es sich um die Berechnung der Bewegungsgeschwindigkeit eines Objekts in einem bestimmten Kontext, die häufig bei Computer-Vision-Anwendungen eingesetzt wird. Mit Ultralytics YOLOv8 kannst du jetzt die Geschwindigkeit eines Objekts berechnen, indem du die Objektverfolgung mit Entfernungs- und Zeitdaten kombinierst, was für Aufgaben wie Verkehr und Überwachung entscheidend 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.
Pass auf: Schätzung der Geschwindigkeit mit Ultralytics YOLOv8
Schau dir unseren Blog an
Weitere Informationen zur Geschwindigkeitsschätzung findest du in unserem Blogbeitrag: Ultralytics YOLOv8 for Speed Estimation in Computer Vision Projects
Vorteile der Geschwindigkeitsabschätzung?
- Effiziente Verkehrskontrolle: Genaue Geschwindigkeitsschätzungen helfen dabei, 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 dabei, ungewöhnliche Verhaltensweisen oder potenzielle Bedrohungen zu erkennen und so die Wirksamkeit der Sicherheitsmaßnahmen zu verbessern.
Anwendungen in der realen Welt
Transport | Transport |
---|---|
Schätzung der Geschwindigkeit auf der Straße mit Ultralytics YOLOv8 | Schätzung der Geschwindigkeit auf einer Brücke mit Ultralytics YOLOv8 |
Schätzung der Geschwindigkeit mit YOLOv8 Beispiel
import cv2
from ultralytics import YOLO, solutions
model = YOLO("yolov8n.pt")
names = model.model.names
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_estimation.avi", cv2.VideoWriter_fourcc(*"mp4v"), fps, (w, h))
line_pts = [(0, 360), (1280, 360)]
# Init speed-estimation obj
speed_obj = solutions.SpeedEstimator(
reg_pts=line_pts,
names=names,
view_img=True,
)
while cap.isOpened():
success, im0 = cap.read()
if not success:
print("Video frame is empty or video processing has been successfully completed.")
break
tracks = model.track(im0, persist=True)
im0 = speed_obj.estimate_speed(im0, tracks)
video_writer.write(im0)
cap.release()
video_writer.release()
cv2.destroyAllWindows()
Geschwindigkeit ist Schätzung
Die Geschwindigkeit ist 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 |
---|---|---|---|
names |
dict |
None |
Wörterbuch der Klassennamen. |
reg_pts |
list |
[(20, 400), (1260, 400)] |
Liste der regionalen Punkte für die Geschwindigkeitsschätzung. |
view_img |
bool |
False |
Ob das Bild mit Kommentaren angezeigt werden soll. |
line_thickness |
int |
2 |
Dicke der Linien zum Zeichnen von Kästen und Spuren. |
spdl_dist_thresh |
int |
10 |
Entfernungsschwelle für die Geschwindigkeitsberechnung. |
Argumente model.track
Argument | Typ | Standard | Beschreibung |
---|---|---|---|
source |
str |
None |
Specifies the source directory for images or videos. Supports file paths and URLs. |
persist |
bool |
False |
Enables persistent tracking of objects between frames, maintaining IDs across video sequences. |
tracker |
str |
botsort.yaml |
Specifies the tracking algorithm to use, e.g., bytetrack.yaml oder botsort.yaml . |
conf |
float |
0.3 |
Sets the confidence threshold for detections; lower values allow more objects to be tracked but may include false positives. |
iou |
float |
0.5 |
Sets the Intersection over Union (IoU) threshold for filtering overlapping detections. |
classes |
list |
None |
Filters results by class index. For example, classes=[0, 2, 3] only tracks the specified classes. |
verbose |
bool |
True |
Controls the display of tracking results, providing a visual output of tracked objects. |
FAQ
Wie schätze ich die Geschwindigkeit eines Objekts mit Ultralytics YOLOv8 ?
Die Schätzung der Objektgeschwindigkeit mit Ultralytics YOLOv8 erfordert eine Kombination aus Objekterkennung und Verfolgungsmethoden. Zuerst musst du mit dem YOLOv8 Modell Objekte in jedem Bild erkennen. Dann verfolgst du diese Objekte über die Frames hinweg, um ihre Bewegung über die Zeit zu berechnen. Schließlich schätzt du die Geschwindigkeit anhand der Strecke, die das Objekt zwischen den Bildern zurücklegt, und der Bildrate.
Beispiel:
import cv2
from ultralytics import YOLO, solutions
model = YOLO("yolov8n.pt")
names = model.model.names
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(
reg_pts=[(0, 360), (1280, 360)],
names=names,
view_img=True,
)
while cap.isOpened():
success, im0 = cap.read()
if not success:
break
tracks = model.track(im0, persist=True, show=False)
im0 = speed_obj.estimate_speed(im0, tracks)
video_writer.write(im0)
cap.release()
video_writer.release()
cv2.destroyAllWindows()
Weitere Details findest du in unserem offiziellen Blogbeitrag.
Was sind die Vorteile der Verwendung von Ultralytics YOLOv8 für die Geschwindigkeitsschätzung im Verkehrsmanagement?
Die Verwendung von Ultralytics YOLOv8 zur Geschwindigkeitsschätzung bietet erhebliche Vorteile für das Verkehrsmanagement:
- Erhöhte Sicherheit: Schätze die Fahrzeuggeschwindigkeit genau ein, um Geschwindigkeitsüberschreitungen zu erkennen und die Verkehrssicherheit zu erhöhen.
- Überwachung in Echtzeit: Nutze die Fähigkeit von YOLOv8, Objekte in Echtzeit zu erkennen, um den Verkehrsfluss und Staus effektiv zu überwachen.
- Skalierbarkeit: Setze das Modell auf verschiedenen Hardwarekonfigurationen ein, von Edge-Geräten bis hin zu Servern, um flexible und skalierbare Lösungen für groß angelegte Implementierungen zu gewährleisten.
Weitere Anwendungen findest du unter Vorteile der Geschwindigkeitsschätzung.
Kann YOLOv8 mit anderen KI-Frameworks wie TensorFlow oder PyTorch integriert werden?
Ja, YOLOv8 kann mit anderen KI-Frameworks wie TensorFlow und PyTorch integriert werden. Ultralytics unterstützt den Export von YOLOv8 -Modellen in verschiedene Formate wie ONNX, TensorRT und CoreML und gewährleistet so eine reibungslose Interoperabilität mit anderen ML-Frameworks.
So exportierst du ein Modell von YOLOv8 in das Format ONNX :
Erfahre mehr über den Export von Modellen in unserem Leitfaden zum Export.
Wie genau ist die Schätzung der Geschwindigkeit mit Ultralytics YOLOv8 ?
Die Genauigkeit der Geschwindigkeitsschätzung mit Ultralytics YOLOv8 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 Objektverdeckung möglicherweise nicht 100 % genau.
Hinweis: Berücksichtige immer die Fehlermarge und überprüfe die Schätzungen nach Möglichkeit mit den tatsächlichen Daten.
Weitere Tipps zur Verbesserung der Genauigkeit findest du in der Argumente SpeedEstimator
Abschnitt.
Warum Ultralytics YOLOv8 gegenüber anderen Objekterkennungsmodellen wie TensorFlow Object Detection API wählen?
Ultralytics YOLOv8 bietet mehrere Vorteile gegenüber anderen Objekterkennungsmodellen, wie z. B. der TensorFlow Object Detection API:
- Echtzeit-Leistung: YOLOv8 ist für die Echtzeit-Erkennung optimiert und bietet hohe Geschwindigkeit und Genauigkeit.
- Benutzerfreundlichkeit: Mit seiner benutzerfreundlichen Oberfläche vereinfacht YOLOv8 die Modellschulung und den Einsatz.
- Vielseitigkeit: Unterstützt mehrere Aufgaben, darunter Objekterkennung, Segmentierung und Posenschätzung.
- Community und Support: YOLOv8 wird von einer aktiven Community und einer ausführlichen Dokumentation unterstützt, so dass die Entwickler über die nötigen Ressourcen verfügen.
Weitere Informationen über die Vorteile von YOLOv8 findest du auf unserer detaillierten Modellseite.