Durchsetzung von Diesel Fahrverboten als Beispiel für Machine- und Deep-Learning-Anwendungen
Wir zeigen euch in dieser Artikelreihe anhand des Beispiels “Erkennung von Umweltplaketten an Fahrzeugen” unterschiedliche Machine- und Deep-Learning-Ansätze. In diesem Artikel geben wir eine Übersicht über die Situation, die Ansätze und das Vorgehen.
Automatisierte Erkennung von Umweltplaketten im fließenden Verkehr.
Die Links zu allen Teilen finden sich hier:
>codecentric.ai Homepage
>Deep Diesel – Teil 1: Machine und Deep Learning zur Erkennung von Umweltplaketten
>Deep Diesel – Teil 2: Machine-Learning-Dieselfilter HOG Detektor
>Deep Diesel – Teil 3: Deep-Learning-Dieselfilter mit der AWS DeepLens
>codecentric.ai youtube channel für regelmäßige Machine- und Deeplearning Updates
Gerade beschäftigt der Diesel-Skandal, beziehungsweise ein mögliches Diesel-Fahrverbot, das ganze Land – Dieselfahrer, Kommunen, Hersteller, Verbände und Betroffene. Auch mich – als Noch-Dieselfahrer – treibt das Thema um, da ich durch die Umweltzone pendle. Da ich ohnehin kaum einen Einfluss auf die weitere Entwicklung habe, versuche ich erst einmal, das Beste daraus zu machen. Soviel vorab – mir passt die Aufgabenstellung persönlich nicht wirklich, da ich auch ein ca. drei Jahre altes EURO-5-Dieselfahrzeug fahre und es auch gerne uneingeschränkt weiter fahren würde. Auf der anderen Seite sehe ich auch ein, dass sich etwas an der Gesamtsituation in den Städten ändern muss und nutze das Thema als Spielfeld zur Evaluierung von Machine-Learning- und Deep-Learning-Algorithmen.
I am not welcome any more…
Diese Artikelserie soll an einem praktischen Beispiel verschiedene Machine- und Deep-Learning-Verfahren demonstrieren und deren Vor- und Nachteile darstellen. Dabei werden sich die unterschiedlichen Teile mit verschiedenen Algorithmen, Libraries und Devices auseinandersetzen. Der Fokus liegt hierbei eher auf der Vermittlung von praktischen Erkenntnissen und Erfahrungen anhand eines relevanten Beispiels als auf einer methodisch korrekten, wissenschaftlichen Herangehensweise.
Die folgenden Teile sind geplant:
Part 1 – Deep Diesel: Intro (dieser Teil)
Part 2 – Machine-Learning-Dieselfilter
Part 3 – Deep-Learning-Dieselfilter auf Basis der AWS Deep Lens
Diesel-Fahrverbot auf Basis der grünen und blauen Plakette
Seit einiger Zeit wird über die Umweltbelastung im urbanen Raum durch Dieselfahrzeuge debattiert. In diesem Zuge werden Fahrverbote kontrovers diskutiert. Auch wenn diese durch das Bundesverwaltungsgericht Leipzig generell rechtlich legitimiert worden sind, stellt sich die Frage nach der Durchsetzbarkeit dieser Maßnahme. Selbst mit einer diskutierten blauen Plakette ist die Überprüfung der in den urbanen Raum einströmenden Fahrzeuge nur schwer ohne massive Behinderungen umsetzbar, da die betroffenen Fahrzeuge bisher nur durch die Polizei im Einzelverfahren kontrolliert werden können. Daher liegt die Vermutung nahe, dass die Kommunen die Kontrollen wahrscheinlich primär im ruhenden Verkehr, und dort wiederum nur im öffentlichen Parkraum, durch die Ordnungsämter durchführen werden. In diesem Moment sind die Fahrzeuge aber bereits im städtischen Raum unterwegs und tragen dort zur Luftverschmutzung bei.
Das Szenario für Städte
Der Use Case, anhand dessen wir die unterschiedlichen Systeme evaluieren wollen, ist ein unterstützendes System für die mobile, städtische Verkehrskontrolle auf Basis aktueller Computer-Vision-Algorithmen, die eine Identifikation nicht autorisierter Fahrzeuge unterstützt. Um das Vorgehen zu simplifizieren, beginnen wir mit der Erkennung der grünen Plakette. Dies ist vorerst ausreichend, da wir in unserem Szenario davon ausgehen, dass die blaue Plakette früher oder später eingeführt wird und somit bei der Einfahrt in die Städte insbesondere grüne Plaketten identifiziert werden sollen. Darüber hinaus können wir über erweiterte Trainingssets auf die Erkennung weiterer Plaketten generalisieren.
Bei der Beschäftigung mit dem Thema kann man kaum einen Spaziergang machen, ohne dass der Blick über die Windschutzscheiben der Fahrzeuge streift. Dabei fällt auf, dass ein signifikanter Anteil der Autos keine Umweltplakette hat (geschätzt im einstelligen Prozentbereich). Die Detektion fehlender Plaketten ist im ersten Schritt außen vor, müsste jedoch auch gehandhabt werden. Theoretisch könnten Fahrzeuge über Fabrikat, Typ-Kennzeichnung und Auspuffrohr (bei Dieseln oft nach unten gebogen) auf der Aufnahe des Fahrzeughecks klassifiziert werden – dies ist aber ein recht hochdimensionales Problem, das immens viele Trainingsdaten erfordert und eher impraktikabel erscheint. Ein Auslesen von Nummernschildern und ein Live-Abgleich mit der Zulassungsdatenbank wäre mit Sicherheit möglich – aber vollkommen unverhältnismäßig und nicht wünschenswert, da maximal invasiv in die Privatsphäre – und könnte zur Erstellung von Bewegungsprofilen genutzt werden. Idealerweise sollte ein solches System vollkommen offline funktionieren und keine Daten speichern.
Der Ansatz soll so umgesetzt werden, dass eine Free-floating-traffic-Randbedingung eingehalten werden kann – der fließende, innerstädtische Verkehr (bis 70km/h) soll durch die laufende Kontrolle nicht beeinflusst werden, also ohne Kollision in die Stadt strömen können.
Machine Learning und Deep Learning
Wenn wir Machine Learning und Deep Learning in den Artikeln als separate Methoden darstellen, ist das nur halb richtig. Eigentlich ist Deep Learning ein spezielles Teilgebiet des Machine Learnings. Machine Learning nutzt Verfahren, Algorithmen zu trainieren, um Entscheidungen zu treffen. Beispielsweise ein Algorithmus, der zu einer Regel auf Basis von RGB-Farbkanälen in einem Entscheidungsbaum führt (R<50,G>200,B<50) → Grüne Plakette ; (R<50,G<50,B<200) → Blaue Plakette ;… oder in unserem Fall charakteristische Strukturelemente für die Regions of Interest identifiziert.
Wenn wir von Deep Learning sprechen, referenzieren wir das Thema neuronale Netze und deren Training. Die Entscheidungen eines neuronalen Netzes sind teilweise nicht so einfach nachzuvollziehen. Zu dem Thema “Was ist Deep Learning?” werden auf unserem YouTube-Kanal codecentric.ai demnächst einige Videos folgen.
Ein Beispiel für Detektion von Objekten mit tiefen neuronalen Netzen (Deep Learning) findet ihr auf unserem youtube Kanal.
Mit dem Laden des Videos akzeptieren Sie die Datenschutzerklärung von YouTube.
Mehr erfahren
YouTube immer entsperren
Vorgehen und erwartete Ergebnisse
Bei beiden Themen sind ähnliche Schritte notwendig, um einen funktionierenden Object Detector zu implementieren.
- Trainingsdaten sammeln
- Labeling der Daten
- Training und Parametrisierung des Algorithmus
- Testing des Classifiers
- Auswertung der Live-Daten
Das Sammeln der Trainingsdaten für den PoC geschieht auf unseren Firmenparkplätzen und primär mit den Firmenwagen. Dabei haben wir vorher speziell darauf hingewiesen, wann und wo wir Fotos von den Fahrzeugen gemacht haben.
Das Labeling der Daten wird manuell vorgenommen und gibt den Algorithmen Beispiele, welche Objekte auf den Bilder identifiziert werden sollen. Ergebnis ist eine Liste der zu identifizierenden Objekte auf einem Bild mit Benennung und Koordinaten der sogenannten Bounding Box.
Beispiel für das Labeling von Objekten der Klasse „4 – Grün“
Wenn die Trainingsdaten vorliegen, wird der Classifier parametrisiert und trainiert. Es wird ein Modell abgeleitet, welches die Charakteristika der zu erkennenden Bildobjekte wiedergibt. Auf die spezifischen Modelle, die in den angewandten Classifiern genutzt werden, wird in den Folgeartikeln eingegangen.
Die Performance wird über das Testen des Classifiers mit Testdaten quantifiziert, die sich von den Trainingsdaten unterscheiden. Auch die Testdaten müssen gelabelt werden. Wie viele Objekte wurden korrekt erkannt? Wie viele Bildausschnitte wurden fälschlicherweise als Objekt erkannt (false positive)? Wie viele Objekte wurden nicht erkannt (false negative)?
Wurde das Modell mit einer hinreichenden Performance auf den Testdaten trainiert, kann der Classifier eingesetzt werden. Dies sollte in unserem Fall in real time oder near time geschehen. Das heißt, wir wollen einen Video-Stream klassifizieren lassen. Die Erkennung der Objekte geschieht auf Einzelbild-Ebene. Wir müssen an die Daten kommen und diese durch unseren Classifier bewerten lassen.
Unser Implementierungsplan
Um möglichst schnell einen ersten funktionierenden PoC testen zu können, wollen wir zuerst mit einem Machine-Learning-Algorithmus beginnen. Wir haben uns für den Start für einen einen HOG Detector (Histogram of Oriented Gradients ) entschieden, der sich primär auf die geometrischen Eigenschaften des Objekts bezieht. Der große Vorteil bei diesem Detector ist, dass nur sehr wenige Trainingsdaten benötigt werden. Auf die von uns erwarteten großen Nachteile des HOG Detectors werden wir im Artikel zur Implementierung eingehen. Unsere Implementierung werden wir auf dlib aufsetzen, die einen umfangreichen Werkzeugkasten unterschiedlicher Classifier mitbringt. dlib ist insbesondere für Starter im Umfeld von Computer Vision zu empfehlen, und wir werden im nächsten Artikel einige Implementierungshinweise geben.
Danach ist geplant, einen Überblick über die Erkennung mit der AWS Deep Lens zu geben. Die Deep Lens ist für uns insbesondere interessant, da sie für unsere Zwecke ein einfaches Testbed darstellt und sogar über WLAN die Distanz zu unserem eigenen Dummy-Kontrollpunkt überbrücken kann. Welches Verfahren zur Objekterkennung verwendet werden soll, ist noch nicht klar. Insbesondere wollen wir Erfahrungen mit dem Gerät sammeln, das wir von der re:invent 2017 mitgebracht haben und das bisher noch nicht in Deutschland verfügbar ist.
Erwartete Herausforderungen
Die Haupt-Herausforderung wird für uns sicherlich das Sammeln relevanter Trainingsdaten sein. Für den HOG Detector werden in der Regel nur wenige Daten gebraucht, für das Training von Deep-Learning Algorithmen hingegen viele Trainingsdaten. Gegebenenfalls wird auch die Implementierung des Deep-Learning-Ansatzes daran scheitern. A priori erwarten wir, dass die Berücksichtigung von sich ändernden Umweltbedingungen, wie Reflektionen, schlechte Lichtverhältnisse, Nässe, Spiegelungen eher schwer im Rahmen des PoCs machbar sein wird.
Regen, Reflektion oder Bewegungsunschärfe stören die Objekterkennung
Der Bereich Performance-Optimierung der Erkennung ist generell ein aufwändiger und langwieriger Prozess und wird von uns für den PoC nicht weiter verfolgt. Es sollte aber klar sein, dass sich diese in jedem Fall an Implementierungen dieser Art anschließt.
Die Links zu allen Teilen finden sich hier:
>codecentric.ai Homepage
>Deep Diesel – Teil 1: Machine und Deep Learning zur Erkennung von Umweltplaketten
>Deep Diesel – Teil 2: Machine-Learning-Dieselfilter HOG Detektor
>Deep Diesel – Teil 3: Deep-Learning-Dieselfilter mit der AWS DeepLens
>codecentric.ai youtube channel für regelmäßige Machine- und Deeplearning Updates
Weitere Beiträge
von Kai Herings
Dein Job bei codecentric?
Jobs
Agile Developer und Consultant (w/d/m)
Alle Standorte
Weitere Artikel in diesem Themenbereich
Entdecke spannende weiterführende Themen und lass dich von der codecentric Welt inspirieren.
Gemeinsam bessere Projekte umsetzen.
Wir helfen deinem Unternehmen.
Du stehst vor einer großen IT-Herausforderung? Wir sorgen für eine maßgeschneiderte Unterstützung. Informiere dich jetzt.
Hilf uns, noch besser zu werden.
Wir sind immer auf der Suche nach neuen Talenten. Auch für dich ist die passende Stelle dabei.
Blog-Autor*in
Kai Herings
Du hast noch Fragen zu diesem Thema? Dann sprich mich einfach an.
Du hast noch Fragen zu diesem Thema? Dann sprich mich einfach an.