Vorhersage der Verkehrsgeschwindigkeit basierend auf Zeitreihendatenanalyse mit OpenVINO und AIxBoard

Autor: Feng Wei

 Einführung

Nach fünf Jahren Entwicklungszeit ist Intel OpenVINO im Bereich der visuellen Analyse künstlicher Intelligenz weit verbreitet. In den letzten Jahren hat künstliche Intelligenz auf der Grundlage von Deep Learning und neuronalen Netzen in zahlreichen Bereichen wie Bildverarbeitung, Audio und natürlicher Sprache große Erfolge erzielt. Auch im Hinblick auf die Analyse von Zeitreihensignalen zeigt Deep Learning eine Überlegenheit gegenüber herkömmlichen Analysemethoden.

In diesem Artikel soll vorgestellt werden, wie eine Lösung zur Erfassung, Speicherung und Analyse von Zeitreihensignalen auf Basis der Entwicklungskits OpenVINO und AIxBoard aufgebaut werden kann, indem der Fall einer Echtzeitvorhersage der Verkehrsgeschwindigkeit auf einem Autobahnnetz simuliert wird.

 AIxBoard

AIxBoard

 Das Intel Digital Development Kit AIxBoard ist ein AI-basiertes eingebettetes Entwicklungsboard mit IA-Architektur. Es ist klein in der Größe und leistungsstark in der Funktion. Es kann mehrere neuronale Netze parallel in Anwendungen wie Bildklassifizierung, Objekterkennung, Segmentierung und Sprachverarbeitung ausführen. Es handelt sich um einen leistungsstarken Kleincomputer für professionelle Hersteller und Entwickler. Mit Hilfe der OpenVINO-Tool-Suite verfügen CPU und iGPU über starke KI-Fähigkeiten.

Die in diesem Artikel vorgestellten Lösungen laufen alle auf AIxBoard.

Datensatz

Der in diesem Dokument verwendete Datensatz stammt aus der PeMS-Verkehrsdatenbank des kalifornischen Verkehrsministeriums. Diese Datenbank enthält eine große Menge realer Daten, die auf Autobahnen in Kalifornien gesammelt wurden. Die in diesem Beispiel verwendete PeMSD7-Teilmenge enthält 44 Arbeitstage an Daten, die von 228 Geschwindigkeitssensoren gesammelt wurden, die im Autobahnnetz von Distrikt 7 in Kalifornien installiert sind. Diese Sensoren erfassen alle 30 Sekunden die Vorbeifahrtgeschwindigkeit des Straßenabschnitts, auf dem sie sich befinden. Die endgültigen Daten sind die durchschnittliche Verkehrsgeschwindigkeit alle 5 Minuten.

Kalifornien, Bezirk 7

Die folgende Abbildung zeigt die Verkehrsgeschwindigkeitskurven, die drei Tage lang von drei zufällig ausgewählten Sensoren erfasst wurden. Die Ordinate in der Abbildung ist die Vorbeifahrtgeschwindigkeit, die Einheit ist km/h. Die Abszisse ist die Zeit und jeder Punkt repräsentiert 5 Minuten. Aus der Abbildung ist leicht zu erkennen, dass die Verkehrsgeschwindigkeit des Straßenabschnitts, in dem sich jeder Sensor befindet, einer relativ offensichtlichen Regel unterliegt, wenn sich die Tageszeit ändert. Allerdings gibt es erhebliche Unterschiede in den jeweiligen Gesetzen verschiedener Straßenabschnitte.

 Geschwindigkeitsdatenbeispiele

Für eine oder mehrere Variablen ist die Vorhersage möglicher Werte, die in der Zukunft auftreten können, basierend auf den beobachteten Werten im vergangenen Zeitraum ein typisches Problem bei der Vorhersage von Zeitreihendaten. In diesem Fall hoffen wir, die Verkehrsgeschwindigkeit in der Zukunft basierend auf der Verkehrsgeschwindigkeit jedes Straßenabschnitts im vergangenen Zeitraum vorhersagen zu können.

 Zeitreihendatenprognose

Modelltraining

Traditionelle statistische Modelle wie das ARIMA-Modell und seine verschiedenen Variantenmodelle haben bemerkenswerte Ergebnisse bei der Zeitreihenvorhersage erzielt. Solche traditionellen Modelle sind jedoch häufig durch Annahmen zur Datenstationarität eingeschränkt. Beim Umgang mit mehreren Variablen kann die Beziehung zwischen Variablen nicht im Modell widergespiegelt werden. In diesem Beispiel wird beispielsweise die geografische Zuordnung der Straßenabschnitte, auf denen sich die einzelnen Sensoren befinden, im herkömmlichen Modell ignoriert. [1]

In diesem Artikel wird das in [2] eingeführte vereinfachte Modell der Graphfaltung plus LSTM übernommen. Das Modell erstellt zunächst einen ungerichteten Graphen basierend auf dem Abstand zwischen Sensoren und verwendet die Graphenfaltung als erste Schicht des Modells. Mit der LSTM-Schicht kann das Modell gleichzeitig räumliche und zeitliche Informationen lernen.

 Modell

Wir haben Daten von 26 Sensoren im PeMSD7-Datensatz extrahiert und sie in Training (50 %), Validierung (20 %) und Test (30 %) aufgeteilt. Ein Teil der Testdaten wird als Eingabe für das Datensimulationsmodul verwendet.

Einzelheiten zum spezifischen Modelltraining finden Sie in [2].

Modellumstellung

Der mit OpenVINO gelieferte Modelloptimierer kann die von verschiedenen Frameworks wie Pytorch und Tensorflow trainierten Modelle in das von OpenVINO Runtime benötigte Zwischenformat (IR) konvertieren. Die spezifische Konvertierungsmethode wird in der offiziellen OpenVINO-Dokumentation ausführlich erläutert. [3]

Lösungsarchitektur

Diese Lösung übernimmt die Microservice-Architektur und jedes Modul verfügt über ein eigenes Docker-Image. Alle Microservices werden mit Docker Compose verwaltet.

 

Softwarelösung

Datensimulation

Der analoge Sensorsensor veröffentlicht analoge Verkehrsgeschwindigkeitsdaten an das EMQX-Modul. Die simulierten Daten stammen aus dem Testteil des PeMSD7-Datensatzes. Das Simulationsmodul extrahiert die aktuelle Geschwindigkeit, die dem Datensatz gemäß der Systemzeit entspricht, plus eine kleine Menge zufällig verteilter Fehler als Eingabe für das gesamte System.

 Datensammlung

Als groß angelegter verteilter MQTT-Nachrichtenserver kann [EMQX] (emqx.io) riesige IoT-Geräte effizient und zuverlässig verbinden, Nachrichten und Ereignisstromdaten in Echtzeit verarbeiten und verteilen und beim Aufbau geschäftskritischer IoT- und Cloud-Anwendungen helfen.

Wir verwenden direkt das offizielle Docker-Image von EMQX, um das Datenerfassungsmodul zu erstellen. Verwenden Sie EMQX als MQTT-Broker, um die vom analogen Sensor veröffentlichten Geschwindigkeitsdaten zu akzeptieren. Durch die Konfiguration der Regel-Engine leitet EMQX die empfangenen Geschwindigkeitsdaten zur Speicherung an TDengine weiter.

Datenspeicher

In diesem Beispiel verwenden wir das offizielle Docker-Image der Zeitreihendatenbank [TDengine] (taosdata.com) zur Datenspeicherung. TDengine ist eine cloudnative Open-Source-Zeitreihendatenbank, die für Szenarien wie das Internet der Dinge, das industrielle Internet, das Finanzwesen sowie die IT-Betriebs- und Wartungsüberwachung entwickelt und optimiert wurde.

Nach einer einfachen Konfiguration können Daten über EMQX in TDengine geschrieben werden, und Grafana kann auch zum Anzeigen der in TDengine gespeicherten Daten verwendet werden.

 Analysemodul

Das Analysemodul (gcrnn) integriert OpenVINO™- und TDengine-Clients. In jedem Analyseprozess verwenden wir den TDengine-Client, um die Verkehrsgeschwindigkeit jedes gespeicherten Straßenabschnitts abzufragen, verwenden die Datenaggregationsfunktion von TDengine, um den Durchschnittswert aller 5 Minuten in der letzten Stunde zu erhalten, und verwenden den generierten Tensor als Eingabe für OpenVINO Runtime. Verwenden Sie dann den TDengine-Client, um die OpenVINO Runtime-Inferenzausgabe – also die vom Modell vorhergesagte zukünftige Verkehrsgeschwindigkeit – in TDengine zu schreiben. Durch regelmäßige Wiederholung dieses Vorgangs kann die zukünftige Verkehrsgeschwindigkeit jedes Straßenabschnitts in Echtzeit vorhergesagt werden.

Datenanzeige

Das Datenanzeigemodul verwendet direkt das offizielle Docker-Image von Grafana. Um eine wiederholte Konfiguration der Datenquelle und des Dashboards zu vermeiden, kann hier die Profiling-Funktion von Grafana verwendet werden, um dem Grafana-Container zu ermöglichen, tdengine beim Start über die Konfigurationsdatei als Standarddatenquelle festzulegen, und das vorbereitete Dashboard kann ebenfalls geladen werden. [4]

Nach längerem Laufen können Sie einen Effekt beobachten, der der Abbildung unten ähnelt.

Grafana-Dashboard

Die erste Spalte in der Abbildung enthält die Echtzeitdaten, die von mehreren zufällig ausgewählten Sensoren gesendet werden, und den vorhergesagten Wert nach kurzer Zeit mithilfe der Argumentation des Gcrnn-Moduls. In den folgenden vier Liniendiagrammen ist die gelbe Kurve die von gcrnn vorhergesagte Verkehrsgeschwindigkeit und die grüne Kurve die tatsächliche Verkehrsgeschwindigkeit. Es ist ersichtlich, dass die Vorhersageergebnisse, die durch die Schlussfolgerung unter Verwendung des einfachen Modells in diesem Beispiel erhalten wurden, relativ nahe an den tatsächlichen Daten liegen.

 Zusammenfassen

In diesem Artikel werden der grundlegende Prozess und die Werkzeuge zum Aufbau der Sammlung, Speicherung und Analyse von Zeitreihensignalen vorgestellt, indem der Fall der Erfassung der Geschwindigkeit des Schnellstraßennetzverkehrs und der Echtzeitvorhersage simuliert wird, und es wird die Fähigkeit von OpenVINO® demonstriert, Zeitreihensignale auf der Grundlage von Deep Learning zu analysieren.

Verweise

[1] <https://arxiv.org/abs/1709.04875> „Spatio-Temporal Graph Convolutional Networks: Ein Deep-Learning-Framework für Verkehrsprognosen“

[2] <https://keras.io/examples/timeseries/timeseries_traffic_forecasting/> „Verkehrsvorhersage mit graphischen neuronalen Netzen und LSTM“

[3] <https://docs.openvino.ai/cn/2022.1/openvino_docs_MO_DG_Deep_Learning_Model_Optimizer_DevGuide.html> „Verwenden des Modelloptimierers zum Konvertieren von Modellen“

[4] <https://grafana.com/docs/grafana/latest/administration/provisioning> „Provision Grafana“

おすすめ

転載: blog.csdn.net/gc5r8w07u/article/details/131703433