Indem Sie auf „Alle Cookies akzeptieren“ klicken, stimmen Sie der Speicherung von Cookies auf Ihrem Gerät zu, um die Website-Navigation zu verbessern, die Website-Nutzung zu analysieren und unsere Marketingbemühungen zu unterstützen. Mehr Infos
Cookie-Einstellungen
Indem Sie auf „Alle Cookies akzeptieren“ klicken, stimmen Sie der Speicherung von Cookies auf Ihrem Gerät zu, um die Website-Navigation zu verbessern, die Website-Nutzung zu analysieren und unsere Marketingbemühungen zu unterstützen. Mehr Infos
Entdecken Sie, wie das Ultralytics YOLOv8 für die Geschwindigkeitsschätzung in Ihren Computer-Vision-Projekten verwendet werden kann. Probieren Sie es selbst mit einem einfachen Codierungsbeispiel aus.
Wir haben wahrscheinlich alle Schilder mit Geschwindigkeitsbegrenzungen gesehen. Einige von uns haben vielleicht sogar eine automatische Benachrichtigung über eine Geschwindigkeitsüberschreitung per Post oder E-Mail erhalten. Künstliche Intelligenz (KI)-Verkehrsmanagementsysteme können dank Computer Vision Geschwindigkeitsüberschreitungen automatisch erkennen. Echtzeitaufnahmen von Kameras an Straßenlaternen und auf Autobahnen werden zur Geschwindigkeitsschätzung und zur Erhöhung der Verkehrssicherheit verwendet.
Die Schätzung der Geschwindigkeit ist nicht nur auf die Sicherheit im Straßenverkehr beschränkt. Sie kann im Sport, bei autonomen Fahrzeugen und in verschiedenen anderen Anwendungen eingesetzt werden. In diesem Artikel erläutern wir, wie Sie das Ultralytics YOLOv8 für die Geschwindigkeitsschätzung in Ihren Computer-Vision-Projekten verwenden können. Außerdem gehen wir Schritt für Schritt durch ein Codierungsbeispiel, damit Sie es selbst ausprobieren können. Fangen wir an!
Geschwindigkeitsschätzung vereinfacht das Verkehrsmanagement
Laut der Weltgesundheitsorganisation (WHO) sterben jährlich etwa 1,19 Millionen Menschen bei Verkehrsunfällen aufgrund von Geschwindigkeitsüberschreitungen. Zusätzlich erleiden 20 bis 50 Millionen weitere nicht-tödliche Verletzungen, von denen viele zu Behinderungen führen. Die Bedeutung der Verkehrssicherheit kann nicht hoch genug eingeschätzt werden, insbesondere wenn die Schätzung der Geschwindigkeit hilft, Unfälle zu verhindern, Leben zu retten und unsere Straßen sicher und effizient zu halten.
Bei der Geschwindigkeitsschätzung mittels 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 erkennen und track . Das System misst die Entfernung, die diese Objekte zurücklegen, indem es kalibrierte Kameras oder Referenzpunkte verwendet, um reale Entfernungen zu messen. Durch die Messung der Zeit, die Objekte für die Bewegung zwischen zwei Punkten benötigen, berechnet das System ihre Geschwindigkeit anhand des Verhältnisses von Entfernung und Zeit.
Abb. 1. Geschwindigkeitsabschätzung mit dem Ultralytics YOLOv8
Neben der Erfassung von Geschwindigkeitsübertretungen können KI-integrierte Systeme zur Geschwindigkeitsschätzung Daten sammeln, um Vorhersagen über den Verkehr zu treffen. Diese Vorhersagen können Aufgaben des Verkehrsmanagement unterstützen, wie z. B. die Optimierung von Ampelzeiten und die Zuweisung von Ressourcen. Erkenntnisse über Verkehrsmuster und Ursachen von Staus können zur Planung neuer Straßen zur Reduzierung von Verkehrsstaus verwendet werden.
Anwendungen der Geschwindigkeitsschätzung in anderen Branchen
Anwendungen zur Geschwindigkeitsschätzung gehen über die Überwachung von Straßen hinaus. Sie können auch nützlich sein, um die Leistung von Sportlern zu überwachen, autonomen Fahrzeugen zu helfen, die Geschwindigkeit von Objekten in ihrer Umgebung zu verstehen, verdächtiges Verhalten zu erkennen usw. Überall dort, wo eine Kamera zur Messung der Geschwindigkeit eines Objekts eingesetzt werden kann, kann die Geschwindigkeitsschätzung mithilfe von Computer Vision verwendet werden.
Hier sind einige Beispiele für die Verwendung von Geschwindigkeitsschätzung:
Teslas autonome Autos verwenden eine visionsbasierte Geschwindigkeitsschätzung, um Kollisionen zu vermeiden.
Computer Vision und Geschwindigkeitsschätzung werden bei den Olympischen Spielen 2024 eingesetzt, um die Leistungsanalyse in track zu verbessern.
Smart Cities erforschen die Ganganalyse von Fußgängern, um die Gehgeschwindigkeit zu überwachen und die urbane Mobilität und 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 verwenden Geschwindigkeitsschätzungen, um track Bewegungen von Tieren track und Anzeichen von Not oder Krankheit detect .
Abb. 2. Die Geschwindigkeitsschätzung kann die Gehgeschwindigkeit einer Person messen.
Die Vorteile der Geschwindigkeitsschätzung mithilfe von Computer Vision
Vision-basierte Geschwindigkeitsmesssysteme ersetzen traditionelle sensorbasierte 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. Computer-Vision-Lösungen zur Geschwindigkeitsschätzung lassen sich nahtlos in die bestehende Verkehrsinfrastruktur integrieren. Darüber hinaus können diese Systeme so aufgebaut werden, dass sie eine Reihe komplexer Aufgaben wie die Identifizierung von Fahrzeugtypen und die Analyse von Verkehrsmustern durchführen, um den gesamten Verkehrsfluss und die Sicherheit zu verbessern.
Versuchen Sie es selbst: Geschwindigkeitsabschätzung mit YOLOv8
Nachdem wir nun ein klares Verständnis der Geschwindigkeitsschätzung und ihrer Anwendungen haben, wollen wir uns genauer ansehen, wie Sie die Geschwindigkeitsschätzung durch Code in Ihre Computer-Vision-Projekte integrieren können. Wir werden fahrende Fahrzeuge detect und ihre Geschwindigkeit mithilfe des YOLOv8 schätzen.
In diesem Beispiel wird ein Video von Autos auf einer Straße verwendet, das aus dem Internet heruntergeladen wurde. Sie können dasselbe Video oder ein anderes relevantes Video verwenden. Das YOLOv8 identifiziert den Mittelpunkt jedes Fahrzeugs und berechnet seine Geschwindigkeit anhand der Geschwindigkeit, mit der dieser Mittelpunkt eine horizontale Linie im Videobild überquert.
Bevor wir einsteigen, ist es wichtig zu wissen, dass die Entfernungsberechnung in diesem Fall annähernd ist und auf der euklidischen Entfernung 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 Ihres GPUvariieren.
Schritt 1: Wir beginnen mit der Installation des Ultralytics . Öffnen Sie Ihre Eingabeaufforderung oder Ihr Terminal und führen Sie den unten stehenden Befehl aus.
pip install ultralytics
In unserem Ultralytics finden Sie Schritt-für-Schritt-Anweisungen und bewährte Verfahren für den Installationsprozess. Wenn Sie bei der Installation der erforderlichen Pakete für YOLOv8 auf Probleme stoßen, finden Sie in unserem Leitfaden für häufige Probleme Lösungen und hilfreiche Tipps.
Schritt 2: Als Nächstes importieren wir die erforderlichen Bibliotheken. Die OpenCV wird uns bei der Videoverarbeitung helfen.
import cv2
from ultralytics import YOLO, solutions
Schritt 3: Dann können wir das YOLOv8 laden und die Namen der Klassen abrufen, die das Modell detect kann.
model = YOLO("yolov8n.pt")
names = model.model.names
Schritt 4: In diesem Schritt öffnen wir die Eingabevideodatei 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 Endergebnisse der Geschwindigkeitsschätzung zu speichern. Die Ausgabevideodatei wird als “speed_estimation.avi” gespeichert.
Schritt 6: Als Nächstes definieren wir die Linienpunkte für die Geschwindigkeitsschätzung. Für unser Eingangsvideo wird diese Linie horizontal in der Mitte des Bildes platziert. Sie können gerne mit den Werten experimentieren, um die Linie an den am besten geeigneten Positionen zu platzieren, abhängig von Ihrem Eingangsvideo.
line_pts = [(0, 360), (1280, 360)]
Schritt 7: Jetzt können wir das Geschwindigkeitsschätzungsobjekt mit den definierten Linienpunkten und Klassennamen initialisieren.
Schritt 8: Der Kern des Skripts verarbeitet das Video Bild für Bild. Wir lesen jedes Bild und detect und track 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()
ifnot 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 Videoaufnahme- und Writer-Objekte frei und schließen alle OpenCV .
Schritt 10: Speichern Sie Ihr Skript. Wenn Sie von Ihrem Terminal oder Ihrer Eingabeaufforderung aus arbeiten, führen Sie das Skript mit dem folgenden Befehl aus:
python your_script_name.py
Die Herausforderungen der visionsbasierten Geschwindigkeitsschätzung
Es ist auch wichtig, die Herausforderungen zu verstehen, die mit der Implementierung einer Geschwindigkeitsschätzung mit Hilfe von Computer Vision verbunden sind. 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 eines Zielfahrzeugs genau track 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 betrifft die Rechenleistung. Um die Geschwindigkeit in Echtzeit zu schätzen, müssen wir eine große Menge an visuellen Daten von hochwertigen Verkehrskameras verarbeiten. Ihre 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 Problem des Datenschutzes. Die von diesen Systemen erfassten Daten können die Fahrzeugdaten 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 ernste ethische und rechtliche Fragen aufwerfen, die mit größter Sorgfalt behandelt werden müssen.
Mit Vollgas in die Zukunft
Die Verwendung des Ultralytics YOLOv8 für die Geschwindigkeitsschätzung bietet eine flexible und effiziente Lösung für viele Anwendungen. Obwohl es Herausforderungen gibt, wie z. B. die Genauigkeit unter schwierigen Bedingungen und die Berücksichtigung von Datenschutzfragen, sind die Vorteile vielfältig. Computervision-gestützte Geschwindigkeitsschätzungen sind 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 ist sie dazu bestimmt, ein wichtiger Bestandteil zukünftiger intelligenter Systeme zu werden.
Interessieren Sie sich für KI? Vernetzen Sie sich mit unserer Community! Erkunden Sie 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. Arbeiten Sie mit uns zusammen, entwickeln Sie Innovationen und lernen Sie mit uns! 🚀