Lenkzeit-Pausen aus Telemetriedaten erkennen
Ob eine gesetzlich vorgeschriebene Pause tatsächlich stattgefunden hat, ließ sich aus den Fahrzeugdaten nur von Hand und lückenhaft nachvollziehen. Wir haben ein Modell gebaut, das die Pause direkt in der Zeitreihe erkennt, und es auf einem gelabelten Fahrzeugdatensatz geprüft.
- Branche
- Nutzfahrzeughersteller, Konzern
- Auftragsform
- Projekt über einen Engineering-Dienstleister als Auftraggeber
- Gebaut
- Hierarchisches Time-Series-Clustering mit Dynamic Time Warping, SVM-Klassifikation, regelbasierte Nachbearbeitung
- Gerechnet auf
- AWS, drei Docker-Pipelines in ECR, SageMaker Processing Jobs auf ml.m5.4xlarge, zwei S3-Buckets, Steuerung über pypyr
- Belegt
- 97,97 % Accuracy auf 19.272 bewerteten Zeitreihen, 391 Fehlklassifikationen
- Zeitraum
- Herbst 2022 bis Februar 2023
- Stand
- Proof of Concept, abgeschlossen und dokumentiert am 13. Februar 2023. Danach kein Eintrag in der Projektakte.
Ausgangslage
Gesetzlich geregelt, betrieblich schwer nachweisbar. Lenk- und Ruhezeiten von Lkw-Fahrern stehen im Gesetz. Ob eine Pause tatsächlich stattgefunden hat, stand aber nirgends in den Daten. Dort stand nur, was die Sensoren des Fahrzeugs gerade gemeldet hatten. Wer es nachvollziehen wollte, ging die Telemetrie von Hand durch, und auch dann blieben Lücken.
Der Fachbereich hatte eine naheliegende Annahme: Zündung an heißt keine Pause, Zündung aus heißt Pause. Sie bildet ab, dass im Stand die Zündung aus sein muss. Als einzige Regel erzeugt sie zu viele Fehler.
Der eigentliche Gegner war aber die Datenlage. Die Liste daneben zeigt, woran die Auswertung vorher scheiterte.
So sah ein einzelner Fahrzeugtag aus: erst Messpunkte dicht an dicht, dann größere Abstände, dann eine Strecke, auf der gar kein Wert steht.
Was die Telemetrie mitbrachte
- Nicht alle Messwerte lagen zu jedem Zeitpunkt vor.
- Die Abtastrate war nicht konstant, mitten am Tag sprang die Zeit, und das je nach Fahrzeug unterschiedlich.
- Die Tage hatten unterschiedlich viele Messpunkte.
- Labels gab es keine, also nichts, woran sich ein Ergebnis hätte prüfen lassen.
Was wir gebaut haben
Wir haben in einem Projekt für einen Engineering-Dienstleister gearbeitet, dessen Kunde ein Nutzfahrzeughersteller ist. Gebaut haben wir ein Modell, das die Pause in der Zeitreihe erkennt, statt sie aus einer Einzelmessung abzuleiten.
Der Weg dahin hatte sechs Stationen.
Die beiden Gruppen liegen in den ausgewählten Merkmalen weit genug auseinander, dass eine Linie dazwischen passt, und genau diese Linie lernt die SVM.
Vom Rohsignal zur Klassifikation
- Merkmalsauswahl. Korrelationsanalyse und Hauptkomponentenanalyse zeigten: drei Merkmale reichen, die Gruppen sind darin klar trennbar. Im Lauf, der am Ende gefahren wurde, waren es Geschwindigkeit, Zündung, Tankfüllstand und Kilometerstand.
- Resampling auf eine gleichmäßige Abtastung, weil das gewählte Verfahren äquidistante Daten braucht. Die Aufbereitung kostet Material, aus 9.734 Datensätzen wurden 9.128.
- Hierarchisches Time-Series-Clustering mit Dynamic Time Warping als Metrik. Es zerlegt eine Fahrt in Manöver, das Manöver ist die kleinste Einheit, die Fahrt eine Kombination daraus.
- SVM als Klassifikator darauf, gewählt, weil sie mit wenigen hundert gelabelten Datenpunkten auskommt. Kernel poly, C 0.1, gamma 2, gefunden über eine Rastersuche mit fünffacher Kreuzvalidierung.
- Zweistufiges Training. Das Clustering unüberwacht auf dem großen unlabelten Bestand, die SVM überwacht auf dem später gelieferten gelabelten Fahrzeugdatensatz.
- Nachbearbeitung. Davor lag die Trefferquote für die Klasse keine Pause bei 95,96 Prozent, danach bei 98,94 Prozent. Dazwischen liegt eine einzige Regel: Bewegt sich das Fahrzeug, ist es keine Pause.
| Baustein | Wofür |
|---|---|
| Drei Docker-Pipelines in ECR | Datenaufbereitung, Training und Inferenz |
| SageMaker Processing Jobs, ml.m5.4xlarge | die Rechenläufe |
| Zwei S3-Buckets | Datensätze und Ergebnisse |
| pypyr-Pipelines und Konfigurationsdateien | Steuerung der Läufe |
Was heute läuft
Das Modell entscheidet auf der Zeitreihe, nicht auf der einzelnen Messung. Geprüft haben wir es auf einem gelabelten Fahrzeugdatensatz, trainiert und bewertet mit fünffacher Kreuzvalidierung. Abgeschlossen und dokumentiert ist die Erprobung am 13. Februar 2023.
19.272 Zeitreihen gingen in die Bewertung ein, 97,97 Prozent davon ordnete das Modell richtig zu. Die Tabelle daneben zeigt die Werte im Einzelnen.
| Auf dem gelabelten Testdatensatz | Wert |
|---|---|
| Bewertete Zeitreihen | 19.272 |
| Richtig klassifiziert | 97,97 Prozent |
| Fehlklassifikationen | 391 |
Das beweist
Aus lückenhaften Maschinendaten wird ein prüfbares Ergebnis, wenn Sie die Aufbereitung ernst nehmen. Und die letzten Prozentpunkte kommen öfter aus einer Regel, die im Betrieb ohnehin bekannt ist, als aus einem größeren Modell. Wenn bei Ihnen Sensordaten anfallen, aus denen sich bisher niemand eine belastbare Aussage zutraut, liegt die Arbeit genau davor. Wie eine dauerhaft laufende Anlage überwacht wird, steht im Bericht zur Anlagenüberwachung.
Was den Balken hier neigt, sind knapp drei Prozentpunkte für die Klasse „keine Pause“, und die kamen aus dem einen Satz: Bewegt sich das Fahrzeug, ist es keine Pause.