paint-brush
Die Jagd nach Daten: Erstellen eines Computer-Vision-Datensatzes für die Verkehrssicherheitvon@valdger
485 Lesungen
485 Lesungen

Die Jagd nach Daten: Erstellen eines Computer-Vision-Datensatzes für die Verkehrssicherheit

von Valdis Gerasymiak6m2023/03/03
Read on Terminal Reader
Read this story w/o Javascript

Zu lang; Lesen

Das Gerät sollte mit einem fortschrittlichen Computer-Vision-Algorithmus ausgestattet sein, der potenzielle Gefahren auf der Straße für Radfahrer erkennen kann. Erkennt die Software eine Gefahr, sendet das Gerät ein Blinklicht aus, um die Aufmerksamkeit des Autofahrers zu erregen. Das Sicherheitssystem gibt vor einer Kollision einen lauten Ton an das nachfolgende Fahrzeug ab und hilft so, eine Kollision zu verhindern.

People Mentioned

Mention Thumbnail
featured image - Die Jagd nach Daten: Erstellen eines Computer-Vision-Datensatzes für die Verkehrssicherheit
Valdis Gerasymiak HackerNoon profile picture


In diesem Artikel möchte ich meine eigenen Erfahrungen bei der Entwicklung einer intelligenten Kamera für Radfahrer mit einem fortschrittlichen Computer-Vision-Algorithmus teilen, um potenzielle Gefahren auf der Straße zu erkennen und Kollisionen zu verhindern. Im Folgenden habe ich kurz den gesamten Prozess der Prototypenerstellung und Videodatenerfassung von Grund auf beschrieben. Es könnte sowohl für Embedded- als auch für Machine-Learning-Ingenieure interessant sein. Ein kleiner Spoiler, bevor wir beginnen: Der gesammelte Datensatz war später Open-Source.


Inhaltsverzeichnis

  • Aus eigener Erfahrung: Verkehrssicherheitsprobleme für Radfahrer
  • Offene Datensätze von Rückfahrkameras: Unverzichtbar für die Forschung, aber online rar
  • Reden wir über Hardware: Rapid Prototyping mit geringem Budget
  • Software-Insider: Unter der Haube von OTA


Aus eigener Erfahrung: Verkehrssicherheitsproblem für Radfahrer

Ich bin ein begeisterter Radfahrer mit 30 Jahren Erfahrung, davon 20 auf öffentlichen Straßen. Einmal hatte ich auf der Straße einen Verkehrsunfall: Ein Auto überfuhr mein Fahrrad von der Seite. Zum Glück kam ich mit einer leichten Prellung und Verstauchung davon. Daher verstehe ich vor allem die Sicherheitsprobleme, die Radfahrer auf öffentlichen Straßen haben.


Eine Lösung für dieses Problem besteht darin, Fahrradkameras zur Erfassung von Vorfällen einzusetzen. Wie wir wissen, wird Radfahren auf der Straße sicherer, wenn es mit einer Kamera ausgestattet ist, die Ihren Standpunkt erfasst. Bei einer Auseinandersetzung mit einem Fahrer kann das Filmmaterial als zusätzliche Schutzschicht dienen. Ohne Beweise kann ein unethischer Fahrer die Verantwortung ablehnen, aber eine Kamera für Radfahrer kann in einer solchen Situation lebensrettend sein. Im Vereinigten Königreich gibt es sogar eine Website namens Nextbase, die die Übermittlung von Actionkamera-Aufnahmen an die Polizei erleichtert, den Prozess rationalisiert und Komplikationen reduziert.


Mit anderen Worten: Sie können den Unfall mit der Kamera festhalten, aber Sie müssen zugeben, dass es immer besser ist, eine gefährliche Situation zu vermeiden. Als ich mit dem Projekt begann, gab es keine proaktiven Lösungen, um gefährliche Situationen auf den Straßen zu verhindern. Also beschloss ich, meine intelligente Fahrrad-Hintergrundbeleuchtung mit einer Kamera zu erstellen. Ziel des Projekts war es, Todesfälle und Verletzungen unter Radfahrern zu verringern.


Visualisierung des Geräts


Ursprünglich war geplant, das Gerät mit einem fortschrittlichen Computer-Vision-Algorithmus auszustatten, der in den Medien oft als „künstliche Intelligenz“ bezeichnet wird und potenzielle Gefahren auf der Straße für Radfahrer erkennen kann. Lassen Sie mich das Konzept in einfachen Worten erklären: Erkennt die Software eine Gefahr, sendet das Gerät ein blinkendes Licht aus, um die Aufmerksamkeit des Autofahrers zu erregen. Darüber hinaus gibt das Sicherheitssystem vor einer Kollision einen lauten Ton an das nachfolgende Fahrzeug ab und hilft so, eine Kollision zu verhindern.


Wie es funktioniert


Offene Datensätze von Rückfahrkameras: Unverzichtbar für die Forschung, aber online rar

Um mein neuronales Objekterkennungsnetzwerk (Teil des Computer-Vision-Algorithmus, der für die Wahrnehmung verwendet wird) zu trainieren, musste ich einen großen Datensatz verschiedener Szenarien auf öffentlichen Straßen finden, die von Rückfahrkameras erfasst wurden. Leider waren solche Open-Source-Datensätze zu Beginn meiner Arbeit nicht im Internet verfügbar.


Insgesamt sind Studien zum Fahrverhalten in der Verkehrstechnik äußerst nützlich und dienen verschiedenen Zwecken wie der Datenerfassung für statistische Analysen, der Identifizierung von Fahrmodellen und der Schätzung von Modellierungsparametern. Die Daten und Modelle können in verschiedenen Bereichen eingesetzt werden, darunter Verkehrssicherheitsanalysen, mikroskopische Modelle für Verkehrssimulation, Prognose und Steuerung sowie Steuerungslogik für fortschrittliche Fahrassistenzsysteme.


Vorausschauend sollte gesagt werden, dass ich während der Arbeit an diesem Projekt den Datensatz von öffentlichen Straßen in der Ukraine erstellt habe, der von Rückfahrkameras der ersten MVP-Benutzer im Jahr 2021 erfasst wurde.


Da ich mir der öffentlichen und gesellschaftlichen Bedeutung der Veröffentlichung solcher Datensätze vollkommen bewusst bin, habe ich die Ergebnisse meiner Arbeit hier hochgeladen.



Reden wir über Hardware: Rapid Prototyping mit geringem Budget

Um dem neuronalen Netzwerk beizubringen, Unfälle vorherzusagen, musste ich viele Daten sammeln. Für diesen Fall musste ich Kameraprototypen entwickeln, die ich meinen ersten Betatestern zur Aufzeichnung ihrer Fahrten zur Verfügung stellen konnte. Glücklicherweise umfasst mein Radsport-Community-Netzwerk viele Aktivisten für Verkehrssicherheit. Jetzt musste ich nur noch ein paar Geräte zusammenbauen, um sie meinen ersten Nutzern zu übergeben.


Lassen Sie mich im Folgenden kurz den Entwicklungsprozess beschreiben und die Logik der Auswahl spezifischer technischer Lösungen erläutern.


Die Hardware-Konfiguration: Das Gehäuse wurde 3D-gedruckt. Als Plattform wurde das Computermodul Raspberry Pi 3B+ gewählt und es wurden maßgeschneiderte Leiterplatten angefertigt, um das Gehäuse kompakt und leicht zu halten.



Für die Kamera habe ich einen standardmäßigen Raspberry Pi IMX219-Sensor verwendet, aber ein 120-Grad-Objektiv verwendet. Für eine bessere Sichtbarkeit auf der Straße wurden leistungsstarke LED-Leuchten und eine rot getönte Linse (ebenfalls 3D-gedruckt) hinzugefügt.


Ich habe das Google Coral Edge TPU (Fotos enthalten) verwendet, einen kostengünstigen und leistungsstarken 4-TOP-Neuralbeschleuniger, um neuronale Netze auf dem Gerät auszuführen. Die TPU wurde über USB angeschlossen.


Die gesamte Elektronik verbraucht bei maximaler Last (Videoaufzeichnung, Echtzeitbetrieb des neuronalen Netzwerks und LED-Blinken) 7–8 W. Um eine Betriebsdauer von 4–5 Stunden zu gewährleisten, wurde ein 8-Ah-Lithium-Ionen-Akku (Fotos von der Innenseite des Gehäuses enthalten) verwendet.


Software-Insider: unter der Haube von OTA

Für das Betriebssystem habe ich das Standard-Raspbian verwendet, da es besser unterstützt wird und alle benötigten Treiber problemlos und ohne Probleme installiert werden konnten. Der Hauptcode, den ich nach dem Booten des Betriebssystems schreiben wollte, war in C++.


Ich empfehle nicht, damit zu beginnen – zu Experimentierzwecken glaube ich, dass Python für Anfänger möglicherweise die bessere Option ist. Wenn Sie jedoch alle begrenzten Ressourcen auf dem Raspberry Pi mit maximalen Hardware-Fähigkeiten effektiv und präzise steuern möchten, lohnt es sich, in C/C++ zu schreiben.


Eine der interessantesten Lösungen, die ich in diesem Projekt gemacht habe, ist der OTA-Mechanismus (Over-the-Air-Update) und der Mechanismus zum Sammeln von Videoaufzeichnungen von Geräten.


Der Vorgang sah folgendermaßen aus: Wenn ein Benutzer eine Fahrt beendet hat und nach Hause kommt, steckt er einen USB-WLAN-Adapter ein, der eine Verbindung zum heimischen WLAN herstellt, und das Gerät beginnt mit der Synchronisierung.


Alle Videos wurden über Google Drive synchronisiert – ich habe für jedes Gerät ein eigenes Google-Konto erstellt. Google Drive hat in meinem Fall viele Vorteile: Ich konnte die Videos sofort über die Google Drive-Weboberfläche ansehen, es ist einfach, Dateien manuell zu löschen oder neue hinzuzufügen, und nicht zuletzt war es für meine Experimente kostenlos ( bis zu 20 GB für jedes Konto). ( Google , seien Sie bitte nicht böse, bei meinem neugeborenen Startup gab es nur vier MVPs).


Mithilfe der H.264-Videokodierung können Hunderte von Videos auf einem Google Drive gespeichert werden, ohne dass die Kapazität erschöpft ist.


Lassen Sie mich den OTA-Prozess beschreiben: Nachdem ich eine neue Firmware kompiliert habe, lade ich sie auf ein Google-Laufwerk hoch. Beim nächsten Synchronisieren mit Google Drive lädt ein Gerät die neuere Firmware-Version herunter und ersetzt die alte.


Ich habe dafür ein einfaches gdrive-Dienstprogramm verwendet. Hier ist der Code, den ich zum Hochladen einer neuen Firmware-Datei verwende:


 gdrive upload -p “gdrive folder id” “file”


Nachfolgend gebe ich eine Codezeile zum Laden neuer Firmware auf ein Gerät:


 gdrive update “id” “file”


Nach der Überprüfung der Firmware-Version erfolgt die Videosynchronisierung und alle neuen Aufnahmen werden auf Google Drive hochgeladen.

So werden die Videos von einem Gerät auf die Festplatte heruntergeladen:


 gdrive sync upload “local folder” “gdrive folder id”


Einmal am Tag habe ich auf meinem Server ein Skript ausgeführt, um alle Google Drives mit meinen lokalen Ordnern zu synchronisieren und alle neuen Videos herunterzuladen.


 gdrive sync download “gdrive folder id” “local folder”


So haben meine Geräte nach mehreren Monaten Arbeit mehr als 200 Videos gesammelt, die zur Beschriftung bereitstehen.


Nachdem ich das Video gesammelt hatte, verarbeitete ich es, filterte es und erstellte den Datensatz. Dann habe ich ein kleines Team für die manuelle Etikettierung zusammengestellt. Das Team bestand aus 4 Personen, die jedes einzelne Foto beschrifteten.


Schließlich habe ich, wie bereits erwähnt, den Datensatz als Open Source bereitgestellt. Sie finden es über den Link: GitHub-Link.


Ich glaube, dass Open-Source-Datensätze eine wertvolle Ressource für die Forschungsgemeinschaft sind und einen großen Beitrag zur Entwicklung neuer Algorithmen und Modelle im Bereich der Verkehrssicherheit leisten können.