Ultralytics YOLOv8 zur Geschwindigkeitsmessung in Computer Vision Projekten
Entdecke, wie das Ultralytics YOLOv8 Modell für die Geschwindigkeitsmessung in deinen Computer Vision Projekten eingesetzt werden kann. Probiere es selbst aus mit einem einfachen Codebeispiel.

Wir alle haben wahrscheinlich schon einmal Verkehrsschilder mit Geschwindigkeitsbegrenzungen gesehen. Manche von uns haben sogar schon einmal eine automatisierte Benachrichtigung über einen Geschwindigkeitsverstoß per Post oder E-Mail erhalten. Verkehrsmanagement-Systeme mit Künstlicher Intelligenz (KI) können Geschwindigkeitsüberschreitungen dank Computer Vision automatisch erfassen. Echtzeitaufnahmen von Kameras an Ampeln und auf Autobahnen werden für die Geschwindigkeitsmessung und zur Erhöhung der Verkehrssicherheit genutzt.
Geschätzte Geschwindigkeit ist nicht nur auf die Verkehrssicherheit auf Autobahnen beschränkt. Sie kann im Sport, bei autonomen Fahrzeugen und in verschiedenen anderen Bereichen eingesetzt werden. In diesem Artikel besprechen wir, wie du das Ultralytics YOLOv8 model für die Geschwindigkeitsmessung in deinen Computer-Vision-Projekten verwenden kannst. Wir gehen außerdem Schritt für Schritt durch ein Code-Beispiel, damit du es selbst ausprobieren kannst. Fangen wir an!
Geschwindigkeitsmessung vereinfacht das Verkehrsmanagement#
Laut der Weltgesundheitsorganisation (WHO) sterben jährlich schätzungsweise 1,19 million Menschen durch Verkehrsunfälle infolge von überhöhter Geschwindigkeit. Darüber hinaus erleiden 20 bis 50 Millionen weitere Personen nicht tödliche Verletzungen, von denen viele zu Behinderungen führen. Die Bedeutung der Verkehrssicherheit kann gar nicht hoch genug eingeschätzt werden, insbesondere da die Geschwindigkeitsmessung hilft, Unfälle zu verhindern, Leben zu retten und unsere Straßen sicher und effizient zu halten.
Die Geschwindigkeitsbestimmung mittels Computer Vision beinhaltet das Erkennen und Verfolgen von Objekten in Videoframes, um zu berechnen, wie schnell sie sich bewegen. Algorithmen wie Ultralytics YOLOv8 können Objekte wie Fahrzeuge über aufeinanderfolgende Frames hinweg identifizieren und verfolgen. Das System misst die zurückgelegte Strecke dieser Objekte mithilfe kalibrierter Kameras oder Referenzpunkte, um reale Entfernungen zu ermitteln. Durch Messung der Zeit, die Objekte benötigen, um sich zwischen zwei Punkten zu bewegen, berechnet das System deren Geschwindigkeit anhand des Weg-Zeit-Verhältnisses.

Abb. 1. Geschwindigkeitsmessung mit dem Ultralytics YOLOv8 model.
Abgesehen vom Erfassen von Rasern können KI-integrierte Geschwindigkeitsmesssysteme Daten sammeln, um Vorhersagen über den Verkehr zu treffen. Diese Vorhersagen können Verkehrsmanagement-Aufgaben wie die Optimierung von Ampelschaltungen und die Ressourcenallokation unterstützen. Erkenntnisse über Verkehrsmuster und Ursachen von Staus können genutzt werden, um neue Straßen zu planen und Verkehrsüberlastungen zu reduzieren.
Anwendungen der Geschwindigkeitsmessung in anderen Branchen#
Anwendungen zur Geschwindigkeitsmessung gehen über die Verkehrsüberwachung hinaus. Sie kann auch nützlich sein, um die Leistung von Athleten zu überwachen, autonomous vehicles dabei zu helfen, die Geschwindigkeit von Objekten in ihrer Umgebung zu erfassen, verdächtiges Verhalten zu erkennen usw. Überall dort, wo eine Kamera verwendet werden kann, um die Geschwindigkeit eines Objekts zu messen, lässt sich die Geschwindigkeitsmessung durch Computer Vision einsetzen.
Hier sind einige Beispiele, wo die Geschwindigkeitsmessung eingesetzt wird:
- Die autonomen Fahrzeuge von Tesla nutzen eine vision-basierte Geschwindigkeitsmessung, um Kollisionen zu vermeiden.
- Computer Vision und Geschwindigkeitsmessung werden bei den Olympischen Spielen 2024 eingesetzt, um die Leistungsanalysen bei Leichtathletikwettbewerben zu verbessern.
- Smart Cities erforschen die Gangbildanalyse von Fußgängern, um Gehgeschwindigkeiten zu überwachen und die urbane Mobilität sowie Sicherheit zu erhöhen. Diese Systeme können Fahrer auf die Anwesenheit von Fußgängern aufmerksam machen und Unfälle verhindern.
- Systeme zur Überwachung des Tierverhaltens nutzen die Geschwindigkeitsmessung, um Tierbewegungen zu verfolgen und Anzeichen von Stress oder Krankheit zu erkennen.

Abb. 2. Die Geschwindigkeitsmessung kann die Gehgeschwindigkeit einer Person bestimmen.
Die Vorteile der Geschwindigkeitsmessung mittels Computer Vision#
Vision-basierte Geschwindigkeitsmesssysteme ersetzen herkömmliche sensorbasierte Methoden aufgrund ihrer verbesserten Genauigkeit, Kosteneffizienz und Flexibilität. Anders als Systeme, die auf teuren Sensoren wie LiDAR basieren, verwendet Computer Vision Standardkameras, um die Geschwindigkeit in Echtzeit zu überwachen und zu analysieren. Computer-Vision-Lösungen zur Geschwindigkeitsmessung können nahtlos in die bestehende Verkehrsinfrastruktur integriert werden. Zudem können diese Systeme so konzipiert werden, dass sie eine Reihe komplexer Aufgaben wie die Identifizierung von Fahrzeugtypen und die Analyse von Verkehrsmustern ausführen, um den gesamten Verkehrsfluss und die Sicherheit zu verbessern.
Probier es selbst aus: Geschwindigkeitsbestimmung mit Ultralytics YOLOv8#
Da wir nun ein klares Verständnis der Geschwindigkeitsbestimmung und ihrer Anwendungen haben, schauen wir uns genauer an, wie du die Geschwindigkeitsbestimmung per Code in deine Computer-Vision-Projekte integrieren kannst. Wir erkennen bewegte Fahrzeuge und schätzen deren Geschwindigkeit mit dem Ultralytics YOLOv8-Modell ein.
Dieses Beispiel verwendet ein aus dem Internet heruntergeladenes Video von Autos auf einer Straße. Du kannst dasselbe oder ein beliebiges anderes relevantes Video verwenden. Das Ultralytics YOLOv8-Modell identifiziert das Zentrum jedes Fahrzeugs und berechnet dessen Geschwindigkeit basierend darauf, wie schnell dieses Zentrum eine horizontale Linie im Videoframe kreuzt.
Bevor wir anfangen, ist es wichtig zu beachten, dass die Entfernungsberechnung in diesem Fall annähernd ist und auf der euklidischen Distanz basiert. Eine Kamerakalibrierung wird nicht berücksichtigt, daher ist die Geschwindigkeitsmessung möglicherweise nicht vollkommen genau. Außerdem kann die geschätzte Geschwindigkeit je nach 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 ultralyticsWirf einen Blick auf unseren Installationsleitfaden für Ultralytics für Schritt-für-Schritt-Anleitungen und Best Practices zum Installationsprozess. Solltest du bei der Installation der erforderlichen Pakete für YOLOv8 auf Probleme stoßen, bietet unser Leitfaden zu häufigen Problemen Lösungen und hilfreiche Tipps.
Schritt 2: Als Nächstes importieren wir die erforderlichen Bibliotheken. Die OpenCV-Bibliothek hilft uns bei der Videoverarbeitung.
import cv2
from ultralytics import YOLO, solutionsSchritt 3: Anschließend können wir das Ultralytics YOLOv8-Modell laden und die Namen der Klassen abrufen, 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 Videoeingabedatei mit dem VideoCapture-Modul von OpenCV. Wir extrahieren außerdem die Breite, Höhe und die Bilder pro Sekunde (fps) des Videos.
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 Video-Writer, um unsere Endergebnisse der Geschwindigkeitsmessung zu speichern. Die Ausgabevideodatei 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 definieren wir die Linienpunkte für die Geschwindigkeitsmessung. Für unser Eingabevideo wird diese Linie horizontal in der Mitte des Bildes platziert. Spiele gerne mit den Werten, um die Linie je nach Eingabevideo an den am besten geeigneten Positionen zu platzieren.
line_pts = [(0, 360), (1280, 360)]Schritt 7: Jetzt können wir das Objekt zur Geschwindigkeitsmessung mithilfe der definierten 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, erkennen und verfolgen Objekte. Die Geschwindigkeit der verfolgten Objekte wird geschätzt und das mit Anmerkungen versehene Bild 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: Schließlich geben wir die Video-Capture- und Writer-Objekte frei und schließen alle OpenCV-Fenster.
cap.release()
video_writer.release()
cv2.destroyAllWindows()Schritt 10: Speichere dein Skript. Wenn du von deinem Terminal oder deiner Eingabeaufforderung aus arbeitest, führe das Skript mit dem folgenden Befehl aus:
python your_script_name.pyDie Herausforderungen der vision-basierten Geschwindigkeitsmessung#
Es ist auch wichtig, die Herausforderungen bei der Implementierung der Geschwindigkeitsmessung mittels 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 behindern können. Ebenso können Verdeckungen durch andere Fahrzeuge oder Objekte es diesen Systemen erschweren, die Geschwindigkeit eines Zielobjekts genau zu verfolgen und zu schätzen. Schlechte Lichtverhältnisse, die Schatten oder Blendungen durch die Sonne verursachen, können die Aufgabe der Geschwindigkeitsmessung ebenfalls weiter erschweren.
Eine weitere Herausforderung betrifft die Rechenleistung. Um die Geschwindigkeit in Echtzeit zu bestimmen, müssen wir eine große Menge visueller Daten von hochwertigen Verkehrskameras verarbeiten. Deine Lösung erfordert möglicherweise teure Hardware, um all dies zu bewältigen und sicherzustellen, dass alles schnell und ohne Verzögerungen funktioniert.
Dann gibt es noch das Thema Datenschutz. Die von diesen Systemen gesammelten Daten können Fahrzeugdetails einer Person wie Marke, Modell und Kennzeicheninformationen enthalten, die ohne deren Zustimmung erfasst werden. Einige moderne HD-Kameras können sogar Bilder der Insassen im Auto aufnehmen. Eine solche Datenerfassung kann schwerwiegende ethische und rechtliche Fragen aufwerfen, die mit äußerster Sorgfalt behandelt werden müssen.
Mit Geschwindigkeit in die Zukunft#
Die Verwendung des Ultralytics YOLOv8 model zur Geschwindigkeitsmessung bietet eine flexible und effiziente Lösung für viele Anwendungsbereiche. Obwohl es Herausforderungen wie die Genauigkeit unter schwierigen Bedingungen und den Datenschutz gibt, überwiegen die Vorteile. Die durch Computer Vision ermöglichte Geschwindigkeitsmessung ist kostengünstiger, anpassungsfähiger und präziser als herkömmliche Methoden. Sie ist in verschiedenen Branchen wie Transport, Sport, Überwachung und selbstfahrenden Autos nützlich. Angesichts all der Vorteile und Anwendungen wird sie zweifellos ein zentraler Bestandteil zukünftiger intelligenter Systeme sein.
Interessiert an KI? Vernetze dich mit unserer Community! Erkunde unser GitHub repository, um mehr darüber zu erfahren, wie wir KI nutzen, um innovative Lösungen in verschiedenen Branchen wie dem Gesundheitswesen und der Landwirtschaft zu entwickeln. Arbeite mit uns zusammen, innoviere und lerne mit uns! 🚀






