Grüner Scheck
Link in die Zwischenablage kopiert

Ultralytics YOLOv8 für Geschwindigkeitsschätzungen in Computer Vision Projekten

Entdecke, wie das Modell Ultralytics YOLOv8 für die Geschwindigkeitsschätzung in deinen Computer Vision Projekten genutzt werden kann. Probiere es selbst mit einem einfachen Programmierbeispiel aus.

Wahrscheinlich haben wir alle schon einmal Schilder mit Geschwindigkeitsbegrenzungen auf der Straße gesehen. Einige von uns haben vielleicht sogar schon eine automatische Benachrichtigung über eine Geschwindigkeitsüberschreitung per Post oder E-Mail erhalten. Verkehrsmanagementsysteme mit künstlicher Intelligenz (KI) können Geschwindigkeitsübertretungen dank Computer Vision automatisch markieren. Echtzeitaufnahmen von Kameras an Straßenlaternen und auf Autobahnen werden zur Geschwindigkeitsschätzung und zur Erhöhung der Verkehrssicherheit verwendet.

Die Geschwindigkeitsschätzung ist nicht nur auf die Sicherheit im Straßenverkehr beschränkt. Sie kann auch im Sport, bei autonomen Fahrzeugen und in vielen anderen Bereichen eingesetzt werden. In diesem Artikel erläutern wir, wie du das ModellUltralytics YOLOv8 für die Geschwindigkeitsschätzung in deinen Computer Vision Projekten nutzen kannst. Außerdem gehen wir Schritt für Schritt durch ein Programmierbeispiel, damit du es selbst ausprobieren kannst. Los geht's!

Geschwindigkeitsschätzung macht das Verkehrsmanagement einfacher

Nach Angaben der Weltgesundheitsorganisation (WHO) sterben jährlich etwa 1,19 Millionen Menschen bei Verkehrsunfällen, die auf überhöhte Geschwindigkeit zurückzuführen sind. 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, vor allem, wenn Geschwindigkeitsmessungen helfen, Unfälle zu vermeiden, Leben zu retten und unsere Straßen sicher und effizient zu halten. 

Bei der Geschwindigkeitsschätzung mit Computer Vision werden Objekte in Videobildern erkannt und verfolgt, um zu berechnen, wie schnell sie sich bewegen. Algorithmen wie YOLOv8 können Objekte wie z. B. Fahrzeuge in aufeinanderfolgenden Bildern identifizieren und verfolgen. Das System misst die Entfernung, die diese Objekte zurücklegen, indem es kalibrierte Kameras oder Referenzpunkte verwendet, um reale Entfernungen zu messen. Indem es die Zeit misst, die Objekte brauchen, um sich zwischen zwei Punkten zu bewegen, errechnet das System ihre Geschwindigkeit anhand des Distanz-Zeit-Verhältnisses.

Abb. 1. Geschwindigkeitsabschätzung mit dem Modell Ultralytics YOLOv8

KI-integrierte Geschwindigkeitsmesssysteme können nicht nur Raser erwischen, sondern auch Daten sammeln, um Vorhersagen über den Verkehr zu treffen. Diese Vorhersagen können das Verkehrsmanagement unterstützen, z. B. bei der Optimierung von Signalzeiten und der Zuweisung von Ressourcen. Erkenntnisse über Verkehrsmuster und Stauursachen können genutzt werden, um neue Straßen zu planen und Staus zu reduzieren.

Anwendungen der Geschwindigkeitsabschätzung in anderen Branchen

Die Anwendung der Geschwindigkeitsschätzung geht über die Überwachung von Straßen hinaus. Sie kann auch nützlich sein, um die Leistung von Sportlern zu überwachen, autonomen Fahrzeugen dabei zu helfen, die Geschwindigkeit von Objekten in ihrer Umgebung zu verstehen, verdächtiges Verhalten zu erkennen, usw. Überall dort, wo mit einer Kamera die Geschwindigkeit eines Objekts gemessen werden kann, kann die Geschwindigkeitsschätzung mit Hilfe von Computer Vision eingesetzt werden. 

Hier sind einige Beispiele dafür, wo die Geschwindigkeitsschätzung eingesetzt wird:

  • Die autonomen Autos von Tesla verwenden eine visuelle Geschwindigkeitsschätzung, um Kollisionen zu vermeiden.
  • Computer Vision und Geschwindigkeitsschätzung werden bei den Olympischen Spielen 2024 eingesetzt, um die Leistungsanalyse in Leichtathletikdisziplinen zu verbessern.
  • Intelligente Städte erforschen die Ganganalyse von Fußgängern, um die Gehgeschwindigkeit zu überwachen und die städtische Mobilität und Sicherheit zu erhöhen. Diese Systeme können Autofahrer auf die Anwesenheit von Fußgängern aufmerksam machen und Unfälle verhindern.
  • Systeme zur Überwachung des Tierverhaltens nutzen Geschwindigkeitsschätzungen, um die Bewegungen der Tiere zu verfolgen und Anzeichen von Not oder Krankheit zu erkennen.
Abb. 2. Mit der Geschwindigkeitsschätzung kann die Gehgeschwindigkeit einer Person gemessen werden.

Die Vorteile der Geschwindigkeitsabschätzung mit Computer Vision

Bildverarbeitungsbasierte Systeme zur Geschwindigkeitsschätzung ersetzen herkömmliche sensorgestützte Methoden aufgrund ihrer höheren Genauigkeit, Kosteneffizienz und Flexibilität. Im Gegensatz zu Systemen, die auf teure Sensoren wie LiDAR angewiesen sind, verwendet Computer Vision Standardkameras, um die Geschwindigkeit in Echtzeit zu überwachen und zu analysieren. Bildverarbeitungslösungen zur Geschwindigkeitsschätzung können nahtlos in die bestehende Verkehrsinfrastruktur integriert werden. Außerdem können diese Systeme eine Reihe komplexer Aufgaben wie die Identifizierung von Fahrzeugtypen und die Analyse von Verkehrsmustern übernehmen, um den gesamten Verkehrsfluss und die Sicherheit zu verbessern.

Versuch es selbst: Schätzung der Geschwindigkeit mit YOLOv8

Nachdem wir nun ein klares Verständnis der Geschwindigkeitsschätzung und ihrer Anwendungen haben, wollen wir uns genauer ansehen, wie du die Geschwindigkeitsschätzung durch Code in deine Computer Vision Projekte integrieren kannst. Wir werden fahrende Fahrzeuge erkennen und ihre Geschwindigkeit mithilfe des YOLOv8 Modells schätzen.

In diesem Beispiel wird ein Video von Autos auf einer Straße verwendet, das aus dem Internet heruntergeladen wurde. Du kannst dasselbe Video oder jedes andere relevante Video verwenden. Das Modell YOLOv8 identifiziert den Mittelpunkt jedes Fahrzeugs und berechnet seine Geschwindigkeit anhand der Geschwindigkeit, mit der dieser Mittelpunkt eine horizontale Linie im Videobild überquert. 

Abb. 3. Eingangsvideo von Autos auf einer Straße

Bevor wir einsteigen, ist es wichtig zu wissen, dass die Entfernungsberechnung in diesem Fall annähernd ist und auf der euklidischen Distanz basiert. Die Kamerakalibrierung wird nicht berücksichtigt, so dass die Geschwindigkeitsschätzung möglicherweise nicht ganz genau ist. Außerdem kann die geschätzte Geschwindigkeit je nach der Geschwindigkeit deines GPUvariieren.

Schritt 1: Wir beginnen mit der Installation des Pakets Ultralytics . Öffne deine Eingabeaufforderung oder dein Terminal und führe den unten stehenden Befehl aus. 


pip install ultralytics

In unserer Ultralytics Installationsanleitung findest du eine Schritt-für-Schritt-Anleitung und bewährte Verfahren für den Installationsprozess. Wenn du bei der Installation der erforderlichen Pakete für YOLOv8 auf Probleme stößt, findest du in unserem Leitfaden für häufige Probleme Lösungen und hilfreiche Tipps.

Schritt 2: Als nächstes importieren wir die benötigten Bibliotheken. Die OpenCV-Bibliothek wird uns bei der Videoverarbeitung helfen.


import cv2
from ultralytics import YOLO, solutions

Schritt 3: Dann können wir das Modell YOLOv8 laden und die Namen der Klassen abrufen, die das Modell erkennen kann.


model = YOLO("yolov8n.pt")
names = model.model.names

Schau 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 Eingangsvideodatei mit dem VideoCapture-Modul von OpenCV. Wir extrahieren auch 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 endgültigen Ergebnisse der Geschwindigkeitsschätzung zu speichern. Die ausgegebene Videodatei wird als "speed_estimation.avi" gespeichert.


video_writer = cv2.VideoWriter(
"speed_estimation.avi",
cv2.VideoWriter_fourcc(*"mp4v"),
fps, (w, h))

Schritt6: Als Nächstes können wir die Linienpunkte für die Geschwindigkeitsschätzung festlegen. Für unser Eingangsvideo wird diese Linie horizontal in der Mitte des Bildes platziert. Du kannst mit den Werten herumspielen, um die Linie je nach Eingangsvideo an der besten Stelle zu platzieren. 


line_pts = [(0, 360), (1280, 360)]

Schritt 7: Jetzt können wir das Geschwindigkeitsschätzungsobjekt mit den definierten Linienpunkten 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 und erkennen und verfolgen Objekte. Die Geschwindigkeit der verfolgten Objekte wird geschätzt und das kommentierte Bild wird in das Ausgabevideo geschrieben.


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)

Schritt 9: Zum Schluss geben wir die Videoaufnahme- und Writer-Objekte frei und schließen alle OpenCV-Fenster.


cap.release()
video_writer.release()
cv2.destroyAllWindows()

Schritt 10: Speichere dein Skript. Wenn du mit deinem Terminal oder der Eingabeaufforderung arbeitest, führe das Skript mit folgendem Befehl aus:


python your_script_name.py

Wenn dein Code erfolgreich ausgeführt wird, sieht deine Ausgabedatei wie folgt aus.

Abb. 4. Das Ergebnis der Geschwindigkeitsabschätzung mit YOLOv8.


Die Herausforderungen der bildgestützten Geschwindigkeitsermittlung

Es ist auch wichtig, die Herausforderungen zu verstehen, die bei der Implementierung der Geschwindigkeitsschätzung mit Hilfe von Computer Vision auftreten. Ungünstige Wetterbedingungen wie Regen, Nebel oder Schnee können dem System Probleme bereiten, 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 des Zielfahrzeugs genau zu verfolgen und zu schätzen. Schlechte Lichtverhältnisse, die Schatten oder Blendung durch die Sonne verursachen, können die Geschwindigkeitsschätzung ebenfalls erschweren.

Eine weitere Herausforderung ist die Rechenleistung. Um die Geschwindigkeit in Echtzeit abschätzen zu können, müssen wir eine Menge visueller Daten von hochwertigen Verkehrskameras verarbeiten. Deine Lösung erfordert möglicherweise teure Hardware, um all das zu verarbeiten und sicherzustellen, dass alles schnell und ohne Verzögerungen funktioniert.

Und dann ist da noch die Frage des Datenschutzes. Die von diesen Systemen gesammelten Daten können Details über das Fahrzeug einer Person wie Marke, Modell und Kennzeichen enthalten, die ohne deren Zustimmung gesammelt werden. Einige moderne HD-Kameras können sogar Bilder von den Insassen des Fahrzeugs aufnehmen. Eine solche Datenerfassung kann ernsthafte ethische und rechtliche Fragen aufwerfen, die mit äußerster Sorgfalt behandelt werden müssen.

Mit Vollgas in die Zukunft

Die Verwendung des Ultralytics YOLOv8 Modells zur Geschwindigkeitsschätzung bietet eine flexible und effiziente Lösung für viele Anwendungen. Auch wenn es Herausforderungen gibt, wie die Genauigkeit unter schwierigen Bedingungen und die Wahrung der Privatsphäre, sind die Vorteile vielfältig. Die computergestützte Geschwindigkeitsschätzung ist im Vergleich zu älteren Methoden kostengünstiger, anpassungsfähiger und präziser. Sie ist in verschiedenen Bereichen wie Verkehr, Sport, Überwachung und selbstfahrende Autos nützlich. Mit all diesen Vorteilen und Anwendungen wird sie ein wichtiger Bestandteil zukünftiger intelligenter Systeme sein.

Interessierst du dich für KI? Verbinde 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, entwickle Innovationen und lerne mit uns! 🚀

Facebook-LogoTwitter-LogoLinkedIn-LogoKopier-Link-Symbol

Lies mehr in dieser Kategorie

Lass uns gemeinsam die Zukunft
der KI gestalten!

Beginne deine Reise in die Zukunft des maschinellen Lernens