Ultralytics YOLOv8 zur Geschwindigkeitsschätzung in Computer-Vision-Projekten
Entdecke, wie du das Ultralytics YOLOv8-Modell in deinen Computer-Vision-Projekten zur Geschätzten Geschwindigkeit einsetzen kannst. Probiere es selbst mit einem einfachen Codebeispiel aus.

Wahrscheinlich haben wir alle schon einmal Verkehrsschilder mit Geschwindigkeitsbegrenzungen gesehen. Einige von uns haben vielleicht sogar per Post oder E-Mail eine automatisierte Benachrichtigung über einen Verstoß gegen die Geschwindigkeitsbegrenzung erhalten. Verkehrsmanagementsysteme mit künstlicher Intelligenz (KI) können dank Computer Vision Geschwindigkeitsüberschreitungen automatisch erkennen. Echtzeitaufnahmen von Kameras an Straßenlaternen und auf Autobahnen werden zur Geschwindigkeitsschätzung und zur Verbesserung der Verkehrssicherheit genutzt.
Geschwindigkeitsschätzung ist nicht nur für die Sicherheit auf Autobahnen relevant. Sie kann im Sport, in autonomen Fahrzeugen und für zahlreiche weitere Anwendungen eingesetzt werden. In diesem Artikel zeigen wir dir, wie du das Ultralytics YOLOv8-Modell zur Geschwindigkeitsschätzung in deinen Computer-Vision-Projekten einsetzen kannst. Außerdem führen wir dich Schritt für Schritt durch ein Programmierbeispiel, damit du es selbst ausprobieren kannst. Legen wir los!
Geschwindigkeitsschätzung erleichtert das Verkehrsmanagement#
Nach Angaben der Weltgesundheitsorganisation (WHO) sterben jährlich etwa 1,19 Millionen Menschen infolge von Geschwindigkeitsüberschreitungen bei Verkehrsunfällen. Zusätzlich erleiden 20 bis 50 Millionen weitere Menschen nicht tödliche Verletzungen, von denen viele zu Behinderungen führen. Die Bedeutung der Verkehrssicherheit kann gar nicht hoch genug eingeschätzt werden, insbesondere wenn Geschwindigkeitsschätzung dabei hilft, Unfälle zu verhindern, Leben zu retten und unsere Straßen sicher und effizient zu halten.
Bei der Geschwindigkeitsschätzung mithilfe von Computer Vision werden Objekte in Videobildern erkannt und verfolgt, um zu berechnen, wie schnell sie sich bewegen. Algorithmen wie Ultralytics YOLOv8 können Objekte wie Fahrzeuge in aufeinanderfolgenden Bildern erkennen und verfolgen. Das System misst mithilfe kalibrierter Kameras oder Referenzpunkten die von diesen Objekten zurückgelegte Entfernung, um reale Distanzen zu bestimmen. Indem es misst, wie lange Objekte für die Strecke zwischen zwei Punkten benötigen, berechnet das System ihre Geschwindigkeit anhand des Verhältnisses von Strecke zu Zeit.

Abb. 1. Geschwindigkeitsschätzung mit dem Ultralytics YOLOv8-Modell.
Neben der Erkennung von Geschwindigkeitsüberschreitungen können KI-gestützte Systeme zur Geschwindigkeitsschätzung Daten sammeln, um Vorhersagen über den Verkehr zu treffen. Diese Vorhersagen können Aufgaben des Verkehrsmanagements unterstützen, etwa die Optimierung von Ampelschaltungen und der Ressourcenverteilung. Erkenntnisse über Verkehrsmuster und die Ursachen von Staus können zur Planung neuer Straßen genutzt werden, um Verkehrsüberlastungen zu verringern.
Anwendungen der Geschwindigkeitsschätzung in anderen Branchen#
Die Anwendungen der Geschwindigkeitsschätzung gehen über die Überwachung von Straßen hinaus. Sie kann auch zur Überwachung der Leistung von Sportlerinnen und Sportlern, zum Verständnis der Geschwindigkeit umliegender Objekte durch autonome Fahrzeuge und zur Erkennung verdächtigen Verhaltens eingesetzt werden. Überall dort, wo eine Kamera zur Messung der Geschwindigkeit eines Objekts verwendet werden kann, lässt sich Geschwindigkeitsschätzung mithilfe von Computer Vision einsetzen.
Hier sind einige Beispiele für den Einsatz von Geschwindigkeitsschätzung:
- Die autonomen Fahrzeuge von Tesla nutzen bildbasierte Geschwindigkeitsschätzung, um Kollisionen zu vermeiden.
- Computer Vision und Geschwindigkeitsschätzung werden bei den Olympischen Spielen 2024 eingesetzt, um die Leistungsanalyse bei Leichtathletikwettbewerben zu verbessern.
- Intelligente Städte erforschen die Analyse des menschlichen Gangbilds, um Gehgeschwindigkeiten zu überwachen und die Mobilität und Sicherheit im urbanen Raum zu erhöhen. Diese Systeme können Fahrerinnen und Fahrer auf die Anwesenheit von Fußgängern aufmerksam machen und Unfälle verhindern.
- Systeme zur Überwachung des Tierverhaltens nutzen Geschwindigkeitsschätzung, um die Bewegungen von Tieren zu verfolgen und Anzeichen von Stress oder Krankheit zu erkennen.

Abb. 2. Mit Geschwindigkeitsschätzung lässt sich die Gehgeschwindigkeit einer Person messen.
Die Vorteile der Geschwindigkeitsschätzung mithilfe von Computer Vision#
Bildbasierte Systeme zur Geschwindigkeitsschätzung ersetzen herkömmliche sensorgestützte Methoden aufgrund ihrer höheren Genauigkeit, Kosteneffizienz und Flexibilität. Anders als Systeme, die auf teure Sensoren wie LiDAR angewiesen sind, verwendet Computer Vision Standardkameras, um Geschwindigkeiten in Echtzeit zu überwachen und zu analysieren. Lösungen zur Geschwindigkeitsschätzung mithilfe von Computer Vision lassen sich nahtlos in bestehende Verkehrsinfrastrukturen integrieren. Außerdem können diese Systeme für zahlreiche komplexe Aufgaben entwickelt werden, etwa die Identifizierung von Fahrzeugtypen und die Analyse von Verkehrsmustern, um den Verkehrsfluss und die Sicherheit insgesamt zu verbessern.
Probiere es selbst aus: Geschwindigkeitsschätzung mit Ultralytics YOLOv8#
Nachdem wir nun ein klares Verständnis der Geschwindigkeitsschätzung und ihrer Anwendungen haben, sehen wir uns genauer an, wie du die Geschwindigkeitsschätzung mithilfe von Code in deine Computer-Vision-Projekte integrieren kannst. Wir werden fahrende Fahrzeuge erkennen und ihre Geschwindigkeit mithilfe des Ultralytics YOLOv8-Modells schätzen.
In diesem Beispiel wird ein aus dem Internet heruntergeladenes Video von Autos auf einer Straße verwendet. Du kannst dasselbe oder ein beliebiges geeignetes Video verwenden. Das Ultralytics YOLOv8-Modell ermittelt den Mittelpunkt jedes Fahrzeugs und berechnet seine Geschwindigkeit auf Grundlage dessen, wie schnell dieser Mittelpunkt eine horizontale Linie im Videobild überquert.
Bevor wir beginnen, ist es wichtig zu beachten, dass die Entfernungsberechnung in diesem Fall nur näherungsweise erfolgt und auf der euklidischen Distanz basiert. Eine Kamerakalibrierung wird nicht berücksichtigt, daher ist die Geschwindigkeitsschätzung möglicherweise nicht vollständig genau. Außerdem kann die geschätzte Geschwindigkeit abhängig von der Geschwindigkeit deiner GPU variieren.
Schritt 1: Wir beginnen mit der Installation des Ultralytics-Pakets. Öffne deine Eingabeaufforderung oder dein Terminal und führe den unten gezeigten Befehl aus.
pip install ultralyticsIn unserem Installationsleitfaden für Ultralytics findest du Schritt-für-Schritt-Anleitungen und bewährte Vorgehensweisen zur Installation. Falls bei der Installation der für YOLOv8 erforderlichen Pakete Probleme auftreten, findest du in unserem Leitfaden zu häufigen Problemen Lösungen und hilfreiche Tipps.
Schritt 2: Als Nächstes importieren wir die erforderlichen Bibliotheken. Die OpenCV-Bibliothek unterstützt uns bei der Verarbeitung von Videos.
import cv2
from ultralytics import YOLO, solutionsSchritt 3: Anschließend laden wir das Ultralytics YOLOv8-Modell und rufen die Namen der Klassen ab, die das Modell erkennen kann.
model = YOLO("yolov8n.pt")
names = model.model.namesSieh dir alle von uns unterstützten Modelle an, um herauszufinden, welches Modell am besten zu deinem Projekt passt.
Schritt 4: In diesem Schritt öffnen wir die Eingabevideodatei mithilfe des OpenCV-Moduls VideoCapture. Außerdem lesen wir die Breite, Höhe und Bilder pro Sekunde (fps) des Videos aus.
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))Schritt 5: Hier initialisieren wir den Videoschreiber, um die Ergebnisse der Geschwindigkeitsschätzung zu speichern. Die Ausgabedatei wird als „speed_estimation.avi“ gespeichert.
video_writer = cv2.VideoWriter("speed_estimation.avi", cv2.VideoWriter_fourcc(*"mp4v"), fps, (w, h))Schritt 6: Als Nächstes können wir die Linienpunkte für die Geschwindigkeitsschätzung festlegen. In unserem Eingabevideo wird diese Linie horizontal in der Mitte des Bildes platziert. Du kannst die Werte gerne anpassen, um die Linie abhängig von deinem Eingabevideo an der geeignetsten Position zu platzieren.
line_pts = [(0, 360), (1280, 360)]Schritt 7: Nun können wir das Objekt zur Geschwindigkeitsschätzung mithilfe der festgelegten Linienpunkte und Klassennamen initialisieren.
speed_obj = solutions.SpeedEstimator(
reg_pts=line_pts,
names=names,
view_img=True,
)Schritt 8: Der Kern des Skripts verarbeitet das Video Bild für Bild. Wir lesen jedes Bild ein und erkennen und verfolgen Objekte. Die Geschwindigkeit der verfolgten Objekte wird geschätzt, und das annotierte Bild wird in das Ausgabevideo geschrieben.
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, show=False)
im0 = speed_obj.estimate_speed(im0, tracks)
video_writer.write(im0)Schritt 9: Zum Schluss geben wir die Objekte für die Videoaufnahme und den Videoschreiber frei und schließen alle OpenCV-Fenster.
cap.release()
video_writer.release()
cv2.destroyAllWindows()Schritt 10: Speichere dein Skript. Wenn du in deinem Terminal oder in der Eingabeaufforderung arbeitest, führe das Skript mit dem folgenden Befehl aus:
python your_script_name.pyDie Herausforderungen der bildbasierten Geschwindigkeitsschätzung#
Es ist außerdem wichtig, die Herausforderungen bei der Umsetzung der Geschwindigkeitsschätzung mithilfe von Computer Vision zu verstehen. Ungünstige Wetterbedingungen wie Regen, Nebel oder Schnee können Probleme für das System verursachen, da sie die Sicht auf die Straße beeinträchtigen können. Ebenso können Verdeckungen durch andere Fahrzeuge oder Objekte es diesen Systemen erschweren, die Geschwindigkeit eines Zielfahrzeugs genau zu verfolgen und zu schätzen. Schlechte Lichtverhältnisse, die Schatten oder eine Blendung durch die Sonne verursachen, können die Geschwindigkeitsschätzung zusätzlich erschweren.
Eine weitere Herausforderung betrifft die Rechenleistung. Um die Geschwindigkeit in Echtzeit zu schätzen, müssen wir große Mengen visueller Daten von hochwertigen Verkehrskameras verarbeiten. Deine Lösung benötigt möglicherweise teure Hardware, um diese Daten zu verarbeiten und einen schnellen, verzögerungsfreien Betrieb sicherzustellen.
Dann stellt sich noch die Frage des Datenschutzes. Die von diesen Systemen erfassten Daten können Fahrzeugdetails einer Person wie Marke, Modell und Kennzeichen enthalten, die ohne deren Einwilligung gesammelt werden. Einige moderne HD-Kameras können sogar Bilder der Personen im Fahrzeuginneren aufnehmen. Eine solche Datenerfassung kann schwerwiegende ethische und rechtliche Fragen aufwerfen, die mit größter Sorgfalt behandelt werden müssen.
Mit Geschwindigkeit in die Zukunft#
Die Verwendung des Ultralytics YOLOv8-Modells zur Geschwindigkeitsschätzung bietet eine flexible und effiziente Lösung für zahlreiche Anwendungsfälle. Obwohl Herausforderungen bestehen, etwa die Genauigkeit unter schwierigen Bedingungen und der Umgang mit Datenschutzfragen, sind die Vorteile vielfältig. Geschwindigkeitsschätzung mit Computer Vision ist kostengünstiger, anpassungsfähiger und präziser als ältere Verfahren. Sie ist in verschiedenen Bereichen wie Verkehr, Sport, Überwachung und selbstfahrenden Fahrzeugen nützlich. Angesichts all dieser Vorteile und Anwendungen wird sie mit Sicherheit ein wichtiger Bestandteil zukünftiger intelligenter Systeme sein.
Interessierst du dich für KI? Vernetze dich mit unserer Community! Besuche unser GitHub-Repository, um mehr darüber zu erfahren, wie wir KI einsetzen, um innovative Lösungen in verschiedenen Branchen wie dem Gesundheitswesen und der Landwirtschaft zu entwickeln. Arbeite mit uns zusammen, entwickle Innovationen und lerne mit uns! 🚀









