Im Rahmen dieser wissenschaftlichen Arbeit soll untersucht werden, wie neuronale Netze und Deep Learning im Bereich autonomes Fahren eingesetzt werden können. Hierdurch können Probleme gelöst werden, die sich durch den Einsatz zukunftsweisender Technik ergeben und bis heute die Präsenz menschlichen Verstandes voraussetzen. Um dies zu bewerkstelligen, wird ein neuronales Netzwerk mittels Deep Learning und dem Bosch Small Traffic Lights Datensatz trainiert, bis eine zufriedenstellende Genauigkeit erreicht wurde.
In den kommenden Jahren und Jahrzehnten wird sich das Autofahren stark verändern. Vielleicht übernehmen Computer das Führen des Fahrzeugs gar komplett. Bereits heute sind Fahrzeuge in der Lage einzelne Bereiche wie das automatisierte Bremsen und Beschleunigen in Stausituationen vollständig selbständig abzudecken. Möglich machen das im Fahrzeug verbaute Sensoren und die intelligente Vernetzung von Systemen.
Bis sich die Fahrzeuge jedoch vollständig ohne Eingreifen eines Menschen durch die vollständige Vernetzung aller Verkehrsteilnehmer in der Öffentlichkeit bewegen können ist die Interaktion des Fahrzeugs mit der Verkehrsregeltechnik unabdingbar. Hierzu zählt insbesondere die Identifikation und die entsprechende Reaktion auf Lichtsignalanlagen. Doch wie kann sichergestellt werden, dass Ampeln mit unterschiedlichem Aussehen bei verschiedenen Licht- und Wetterverhältnissen zuverlässig erkannt werden?
Inhaltsverzeichnis
Abkürzungsverzeichnis
Abbildungsverzeichnis
Tabellenverzeichnis
1 Einleitung
1.1 Problemstellung
1.2 Zielsetzung und Vorgehensweise
2 Grundlagen
2.1 Big Data
2.1.1 Definition
2.1.2 Labels
2.2 Maschinelles Lernen
2.2.1 Einführung
2.2.2 Supervised Learning
2.2.3 Unsupervised Learning
2.2.4 Deep Learning
3 Datenvorverarbeitung
3.1 Beschaffung der Daten
3.2 Labels
4 Modellerstellung
4.1 Deep Learning Framework
4.1.1 TF Record
4.1.2 TensorBoard
4.1.3 Konfiguration mittels Pipeline
4.2 Convolutional Neural Network
4.2.1 Einführung
4.2.2 Neuron
4.2.3 Convolution
4.2.4 Rectifier Linear Unit
4.2.5 Pooling
4.2.6 Flattening
4.2.7 Fully Connected
4.2.8 Softmax
4.3 R-CNN
4.3.1 Einführung
4.3.2 Selective Search
4.3.3 Support Vector Machine
4.3.4 Probleme
4.4 Fast R-CNN
4.4.1 Einführung
4.4.2 RoI Pooling
4.5 Faster R-CNN
4.5.1 Anchor
4.5.2 Region Proposal Network
4.6 Messgrößen
4.6.1 Intersection over Union
4.6.2 Mean Average Precision
5 Vorhersage
5.1 GPU statt CPU
5.2 Training
5.3 Evaluierung
5.4 Zustand des Modells zum Abgabetermin
6 Fazit
Literatur- und Internetverzeichnis
Abkürzungsverzeichnis
Abbildung in dieser Leseprobe nicht enthalten
Abbildungsverzeichnis
Abbildung 1: Unsupervised learning: Clustern mit K-means
Abbildung 2: Verzeichnisstruktur der Quelldaten
Abbildung 3: Darstellung der Bounding-Boxes in YAML
Abbildung 4: Importbereich des Konvertierungsscripts
Abbildung 5: Label Map Dictionary im Python Konvertierungsscript
Abbildung 6: Python Script zur Konvertierung des Datensatzes
Abbildung 7: Verlauf der Lernrate, dargestellt als Liniendiagramm in TensorBoard
Abbildung 8: Verlauf des Classification-Loss als Liniendigramm in TensorBoard
Abbildung 9: Modell-Evaluierungsbild Step
Abbildung 10: Modell-Evaluierungsbild Step
Abbildung 11: Syntaktische Darstellung der Pipeline.config
Abbildung 12: Phasen von CNN
Abbildung 13: Aufbau eines künstlichen Neurons
Abbildung 14: Vorgangsweise von Convolution
Abbildung 15: Ausführung der letzten Convolution Operation
Abbildung 16: Matrixveränderung nach ReLU
Abbildung 17: Bildveränderung nach ReLU
Abbildung 18: Max Pooling
Abbildung 19: Pooled Feature Map
Abbildung 20: Vorgehensweise von Flattening
Abbildung 21: Vollvernetzte Architektur
Abbildung 22: Modulunterteilung bei R-CNN
Abbildung 23: Vorgehensweise von Selective Search
Abbildung 24: Trennung von Klassen anhand der Hyperebene
Abbildung 25: Eingabe Feature Map für RoI
Abbildung 26: Projektion von Regionsvorschlag auf Feature Map
Abbildung 27: RoI Pooling Bereiche innerhalb der Feature Map
Abbildung 28: Vergleich der Bounding Boxen
Abbildung 29: Darstellung der Überlappung und des gemeinsamen Bereichs
Abbildung 30: Vergleich des technischen Aufbaus einer CPU mit dem einer GPU
Abbildung 31: Gegenüberstellung Training mit CPU / GPU
Abbildung 32: Ausgabe in der Konsole während des Trainings
Abbildung 33: PowerShell Hilfs-Script zum Start des Trainings
Abbildung 34: Konsolenausgabe der Evaluierung
Abbildung 35: Visualisiertes Trainingsergebnis mittels TensorBoard
Tabellenverzeichnis
Tabelle 1: Übersicht der Eigenschaften der Markierer
Tabelle 2: Konfigurationsübersicht der Pipeline.config
Tabelle 3: Schichtenarchitektur
Tabelle 4: Übersicht der Eingabeparameter für das Training
Tabelle 5: Übersicht der Eingabeparameter für die Evaluierung
1 Einleitung
1.1 Problemstellung
In den kommenden Jahren und Jahrzehnten wird sich das Autofahren stark verändern. Vielleicht übernehmen Computer das Führen des Fahrzeugs gar komplett. Bereits heute sind Fahrzeuge in der Lage einzelne Bereiche wie das automatisierte Bremsen und Beschleunigen in Stausituationen vollständig selbständig abzudecken. Möglich machen das im Fahrzeug verbaute Sensoren und die intelligente Vernetzung von Systemen.
Bis sich die Fahrzeuge jedoch vollständig ohne Eingreifen eines Menschen durch die vollständige Vernetzung aller Verkehrsteilnehmer in der Öffentlichkeit bewegen können ist die Interaktion des Fahrzeugs mit der Verkehrsregeltechnik unabdingbar. Hierzu zählt insbesondere die Identifikation und die entsprechende Reaktion auf Lichtsignalanlagen.
Doch wie kann sichergestellt werden, dass Ampeln mit unterschiedlichem Aussehen bei verschiedenen Licht- und Wetterverhältnissen zuverlässig erkannt werden?
1.2 Zielsetzung und Vorgehensweise
Im Rahmen dieser wissenschaftlichen Arbeit soll untersucht werden, wie neuronale Netze und Deep Learning eingesetzt werden können um Problemstellungen, die sich durch den Einsatz zukunftsweisender Technik, hier das autonome Fahren, ergeben und bis heute die Präsenz menschlichen Verstands voraussetzen, zu lösen.
Um dies zu bewerkstelligen wird ein neuronales Netzwerk mittels Deep Learning und dem Bosch Small Traffic Lights Datensatz trainiert, bis eine zufriedenstellende Genauigkeit erreicht wurde. Als erstrebenswert wurde ein Wert von über 36% Genauigkeit in Anlehnung an die gegebene Baseline aus anderen Projekten (https://github.com/bosch-ros-pkg/bstld) definiert.
Diese Arbeit ist in sechs Kapitel unterteilt. In Kapitel zwei werden grundlegende Definitionen erläutert. Im darauffolgenden Kapitel drei wird auf Beschaffung der notwendigen Daten sowie auf deren Aufbau eingegangen. In Kapitel vier wird auf die technische Umsetzung des Lernvorgangs mittels Machine Learning Framework und auf die theoretischen Grundlagen des verwendeten Modells eingegangen. Kapitel fünf befasst sich mit der technischen Umsetzung des Trainings sowie der Evaluierung, zeigt Vorteile bei der Nutzung von GPU-basiertem Training auf und geht auf das Ergebnis dieser Arbeit ein. Im finalen Kapitel erfolgt die Zusammenfassung und das Fazit.
2 Grundlagen
2.1 Big Data
Im Zeitalter der zunehmenden Vernetzung von Geräten wird eine riesige Menge an Daten generiert. Diese gesammelten Daten müssen von Unternehmen und Behörden gespeichert werden, da sie für einen gewissen Zeitraum eine Nachweisbarkeit leisten müssen. Das Speichern und Analysieren der Datenmengen stellen eine Herausforderung dar. Big Data ist in diesem Zusammenhang das Schlüsselwort zur Bewältigung dieses Problems.1
2.1.1 Definition
Dennoch ist nicht gleich alles Big Data nur weil es eine große Datenmenge ist. Big Data wird durch die drei folgenden V‘s definiert:
- Volume: Die Datenmengen sind zu groß, um sie mit herkömmlichen Methoden zu verarbeiten.
- Variety: Die Daten kommen in unterschiedlichen Formen d. h. sowohl strukturiert als auch unstrukturiert. Verschiedene Daten wie z. B. Datenbanken, Bilder, Videos, Dokumente oder auch XML Dateien.
- Velocity: Es kommen ständig neue Daten von unterschiedlichen Quellen, die in Echtzeit verarbeitet werden müssen.
Anhand der drei V‘s kann somit eine Abgrenzung zu verwandten Themen gezogen werden.2
2.1.2 Labels
Daten sind die Ressource des maschinellen Lernens. Ohne Daten gibt es auch kein maschinelles Lernen. Die Daten können jedes Format haben. Sei es strukturiert als auch unstrukturiert. Es werden zwischen markierten- (labeled) und unmarkierten Daten (unlabeled) unterschieden.3
Als unmarkierte Daten bezeichnet man die Rohdaten, die sowohl natürlichen Ursprungs als auch menschlich geschaffen sein können. Diese Daten sind leicht zugänglich, da es sie in Mengen gibt z. B. in Form von Videodaten, Audiospuren oder Fotos. Standardmäßig unterliegt den Daten keine Interpretation. Erst wenn ihnen eine Bedeutung zugesprochen wird, werden sie zu markierten Daten, da sie dann mit einem Label oder Tag versehen werden. Das Label oder Tag, auch als Markierer bezeichnet, gibt hierbei Details zu den Daten. Fotos können Markierer haben, die das Bild beschreiben. Dies kann z. B. ein Löwe, eine Sonne oder ein Baum sein. Bei Videodaten können es Personen, Themen des Inhalts, Sprache etc. sein. Solcherlei Daten sind nicht so leicht zugänglich und teuer, da sie meist durch Menschenhand markiert werden müssen.4
Für markierte als auch für unmarkierte Daten gibt es passende Lernalgorithmen, mit denen ein Mehrwert generiert werden kann. Grob unterteilt werden diese Algorithmen in 2 Lernmodelle bzw. Lerntechniken. Diese sind „Supervised Learning” und “Unsupervised Learning”.5
2.2 Maschinelles Lernen
2.2.1 Einführung
Um die vielen Daten, die von den Geräten erzeugt werden, auszuwerten und darin Muster zu erkennen bedarf es dem maschinellen Lernen. Die traditionellen mathematischen Modelle können dies nicht, da diese nicht auf situative Entscheidungen bzw. einen Lerneffekt ausgelegt sind. Ein klassisches mathematisches Modell nimmt die Eingabe, verarbeitet diese nach einem vordefinierten Schema und gibt ein Ergebnis aus, das bei Wiederholung immer dasselbe sein wird, ganz gleich, ob es den Erwartungen entspricht. Im Gegensatz zum maschinellen Lernen, bei dem das Ergebnis definiert und das Modell so lange trainiert wird, bis das entsprechende Ergebnis erreicht wird, kann bei den klassischen mathematischen Methoden kein angepasstes Ergebnis auf Basis eines Lernvorgangs erwartet werden. Um solch ein Modell zu trainieren, werden deshalb eine Vielzahl von Daten benötigt.6
Das Maschinelle Lernen ist daher auch ein Teilgebiet der künstlichen Intelligenz, die es dem Computer erlaubt von Daten zu lernen, ohne dass dies explizit programmiert werden muss. Um es mit anderen Worten zu sagen: Der Computer bzw. das Modell programmiert sich anhand einer Vielzahl von Daten selbst.7
2.2.2 Supervised Learning
Beim Supervised Learning lernen die Algorithmen, welche unter diese Kategorie fallen, aus einem Trainingsdatensatz. Dieser wird in diesem Kontext auch als gelabeltes Datenset bezeichnet, da die richtige Antwort oder die gewünschte Ausgabe bereits bekannt ist. Der Algorithmus versucht Vorhersagen anhand des gegebenen Datensatzes zu treffen und wird ggf. vom "Vorgesetzten" korrigiert. Das Lernen stoppt, wenn der Algorithmus ein akzeptables Leistungsniveau erreicht hat. Es gibt zwei Arten von Supervised Learning: Klassifikation und Regression.8
Die Klassifizierung hat zum Ziel definierte diskrete Klassen auszugeben. Jede Ausgabe in Form eines Klassenlabels wird einer Klasse oder eine Kategorie zugeordnet. Um diese Ausgabe zu erzeugen muss das Modell eine allgemeine Regel, anhand der Beziehung zwischen Ein- und Ausgabe, lernen. Dies ermöglicht dem Modell dann Klassen von nicht markierten Daten vorherzusagen d. h. völlig neue Daten, welche noch nicht zum Training verwendet worden sind.9
Regressionsmodelle werden zur Lösung verschiedener Probleme eingesetzt, z.B. zur Vorhersage des Aktienkurses. Solche Modelle sind darauf ausgelegt, neue Werte anhand von Eingangsdaten vorherzusagen. In Abgrenzung zu den Klassifikationsmodellen ist die Ausgabe hier eine numerische Zahl und keine diskrete Klasse oder Kategorie. Es nimmt die Eingangsdaten und die dazugehörigen Ausgangsdaten historischer Werte. Anhand dieser werden die Beziehungen und Assoziationen zwischen Ein- und Ausgangsdaten gelernt. Durch dieses Wissen kann das Modell Vorhersagen für neue Daten generieren.10
2.2.3 Unsupervised Learning
Beim Unsupervised Learning gibt es keinen Trainer oder Supervisor, wie der Name bereits vermuten lässt. Es wird weder die Ausgabe noch die spezifische Eingabe gezeigt, die erforderlich ist, um eine bestimmte Ausgabe zu erreichen d. h., die Daten sind nicht gelabelt. Die Maschine lernt auf der Grundlage ihrer eigenen Fähigkeiten, sie entscheidet, was die Eingabe und die Ausgabe sein soll.11 Lernmethoden, die unter diese Kategorie fallen, sind die Reduzierung der Dimensionalität, Erkennung von Anomalien, Assoziationsanalyse und das Clustern. Beim Clustern versucht die Maschine Muster, Ähnlichkeiten und Beziehungen zwischen den Rohdaten zu finden und diese wie in Abbildung 1 dargestellt, in verschiedenen Clustergruppen einzuteilen. Ein bekannter Clustering Algorithmus ist das „K-Means-Clustering“.12
Abbildung 1: Unsupervised learning: Clustern mit K-means
Abbildung in dieser Leseprobe nicht enthalten
Quelle: Eigene Darstellung
Das Ziel ist es die unterliegende Struktur der Daten zu modellieren, um interessante Zusammenhänge bzw. Gruppierungen darzustellen. Hierdurch wird versucht eine Sichtbarkeit der Zusammenhänge einzelner Daten zu visualisieren, um daraus weitere Schlüsse ziehen zu können.13
2.2.4 Deep Learning
Durch die gestiegene Rechenleistung und den größeren Speicher können nun Architekturen angewandt werden, die auf mehrere Schichten von neuronalen Netzen ausgelegt sind. Diese Architekturen werden als Deep Neural Networks oder zu Deutsch auch als tiefe neuronale Netze bezeichnet. Zusätzlich zu den herkömmlichen Lernalgorithmen, die es schon seit längerer Zeit gibt, können nun komplexere Aufgaben durch den Einsatz von Deep Learning Techniken bewältigt werden.14
Deep Learning bietet im Vergleich zu herkömmlichen Lernalgorithmen drei entscheidende Vorteile:
1. Einfachheit:
Es ist eine modulare Architektur bei den Neuronen und Schichten Blockweise hinzugefügt werden können.
2. Skalierung:
Die Modelle können sich an sehr große Datensätze anpassen.
3. Transfer:
Wenn ein Model auf ein Problem trainiert worden ist, kann dieses auch für ähnliche Problemstellungen verwendet werden, da die generieten Features Allgemein genug sind.
Anhand dieser einfachen Implementierung, Erweiterbarkeit, Skalierung, Annahme von komplexen Problemen und dem Transfer auf weitere ähnliche Problemstellungen, haben sich die Deep Neural Networks als der aktuelle Stand der Technik herauskristallisiert.15
3 Datenvorverarbeitung
Der Schritt Datenvorverarbeitung transformiert die Ursprungsdaten in ein Format, das von datenverarbeitenden Algorithmen verstanden werden kann. Die gesammelten Daten können inkonsistent, nicht vollständig oder fehlerhaft sein, weshalb die Datenvorverarbeitung einen wichtigen Schritt bei der Vorbereitung für nachfolgende Aufgaben darstellt.
3.1 Beschaffung der Daten
Die benötigten Daten zum Trainieren eines Deep Learning Models können vollständig, das bedeutet, dass die Bilder bereits mit Markierern angereichert sind, aus dem Internet heruntergeladen werden. Der in diesem Projekt verwendete Datensatz „Bosch Small Traffic Lights Dataset“ kann von der Website der Heidelberger Universität bezogen werden.
Der von Bosch bereitgestellte Datensatz ist sehr präzise mit Informationen versehen und dient laut eigenen Angaben dazu das autonome Fahren, vor allem im urbanen Bereich, zu unterstützen. Eine besondere Stärke dieses Datensatzes ist das Trainieren des künstlichen neuronalen Netzwerks auf kleine Objekte auf großen Bildern.
Der hier beschriebene gesamte Datensatz besteht aus insgesamt ca. 13.000 Bildern der bereits im Verhältnis 40/60 auf Trainings- und Testsatz aufgeteilt wurde. Im Original beinhaltet der Trainingsdatensatz 15 verschiedene Labels und ca. 10.000 markierte Ampeln. Der Testdatensatz beinhaltet lediglich vier Labels (Rot, Grün, Gelb und Aus) bei ca. 13.500 markierten Ampeln.
Der Testdatensatz wurde unabhängig vom Trainingsdatensatz in derselben Region aufgenommen.16
Um effizienter mit dem beschriebenen Datensatz arbeiten zu können wurde die Verzeichnisstruktur der Quelldaten wie in Abbildung 2 zu sehen angepasst.
Abbildung 2: Verzeichnisstruktur der Quelldaten
Abbildung in dieser Leseprobe nicht enthalten
Quelle: Eigene Darstellung
Sämtliche Unterordner des Trainings- und Testdatensatzes wurden unter dem jeweiligen Schlagwort zusammengeführt. Hierbei wurden die Rohbilder in den Unterordner „Images“ verschoben. Beschreibende Dateien verbleiben im Stammverzeichnis des jeweiligen Datensatzes.
3.2 Labels
Die Labels dieses Datensatzes werden in YAML-Dateien ausgeliefert. In diesen YAML-Dateien wird eine Liste von Boxen einem Pfad zugeordnet. Jede Box-Angabe repräsentiert eine Bounding-Box, also einen durch vier Linien eingegrenzten Bereich, auf der unter „Path“ angegebenen Bilddatei.
Wie in Abbildung 3 zu sehen enthält jede Box eine bestimmte Anzahl von Parametern bzw. Eigenschaften.
Abbildung 3: Darstellung der Bounding-Boxes in YAML
Abbildung in dieser Leseprobe nicht enthalten
Quelle: Eigene Darstellung
Tabelle 1: Übersicht der Eigenschaften der Markierer
Abbildung in dieser Leseprobe nicht enthalten
Quelle: Eigene Darstellung
Da das Ziel dieser Arbeit explizit das Erkennen von Ampelanlagen und nicht die Klassifizierung derselben ist, wurden die originalen Labels durch das universelle Label „TrafficLight“ ersetzt. Das Ziel dieser Maßnahme war die Erhöhung der Erkennungsrate (mAP) von Ampelanlagen auf Eingabebildern, um so eine Grundlage für spätere wissenschaftliche Arbeiten, die eine präzisere Vorhersage zum Ziel haben, zu schaffen.
4 Modellerstellung
4.1 Deep Learning Framework
Tensorflow ist ein von Google entwickeltes Open Source Framework für maschinelles Lernen und Deep Learning. Seine flexible Struktur erlaubt den Einsatz auf verschiedenen Plattformen, von CPU’s und GPU’s bis hin zu mobilen Endgeräten.17
Im Gegensatz zu High Level Frameworks wie „SciKit Learn“ welches nur bestimmte Algorithmen implementiert bietet Tensorflow weitreichendere Konfigurationsmöglichkeiten in Bezug auf Deep Learning.18
Im Laufe des Einarbeitungsprozesses wurde entschieden ein vortrainiertes Modell zu verwenden, auf die Bedingungen dieser wissenschaftlichen Arbeit anzupassen und mit dem zur Verfügung stehenden Datensatz zu trainieren. Da eine große Anzahl vortrainierter Tensorflow-Graphen zur freien Verwendung existieren (https://github.com/tensorflow/models/blob/master/research/object_detection/g3doc/detection_model_zoo.md) fiel die Wahl des Frameworks schlussendlich auf Tensorflow.
4.1.1 TF Record
Tensorflow nutzt, anders als beim herkömmlichen Machine Learning, ein spezielles Dateiformat zur Eingabe von Daten. In den so genannten Tensorflow Records werden sämtliche Eingabedaten, d.h. in diesem speziellen Fall Bilder und die unter Punkt xx benannten Eingabeparameter, in einer einzigen Datei abgespeichert. Dies hat den Vorteil, dass die Input Pipeline mit einer größeren Performance arbeiten und so das eigentliche Training des Modells mit weniger Verzögerungen stattfinden kann.
Vom Performancegewinn abgesehen ist Tensorflow auf vielfältige Weise dahingehend optimiert mit Tensorflow Record Dateien zu arbeiten. Unter anderem ist es möglich verschiedene Datensätze einfach miteinander zu kombinieren. Außerdem ist das Framework, speziell die Import- und Vorverarbeitungsschnittstelle für diesen Dateityp optimiert.19
Um die Daten in das nötige Format zu konvertieren wurde ein eigens dafür entwickeltes Python-Script verwendet.
Im Kopfbereich des Scripts sind alle nötigen Imports definiert (siehe Abbildung 4). Um korrekt mit den Tensorflow-Modulen arbeiten zu können ist es wichtig die Unterverzeichnisse „research“ und „research/slim“ jeweils mittels dem Befehl „sys.path.append(‚xxx‘)“ temporär an die Umgebungsvariable „Path“ anzufügen, da ansonsten der benötigte Import des „dataset_util“ Moduls nicht funktionieren kann.
Abbildung 4: Importbereich des Konvertierungsscripts
Abbildung in dieser Leseprobe nicht enthalten
Quelle: Eigene Darstellung
Im weiteren Verlauf ist es notwendig den im Annotation-File (YAML-File) vorkommenden Text-Labels eindeutige ID’s zuzuweisen, so dass TensorFlow diese während des Trainings- und Evaluierungsvorgangs identifizieren kann. In dieser Arbeit wurde hierzu ein Python-Dictionary zur Hilfe genommen (siehe Abbildung 5).
Abbildung 5: Label Map Dictionary im Python Konvertierungsscript
Abbildung in dieser Leseprobe nicht enthalten
Quelle: Eigene Darstellung
Mittels diesem Dictionary ist es im späteren Verlauf möglich auf einfache Weise mittels der Syntax „LABEL_CLASSES[‚Text der Label-Klasse in der YAML-Datei‘]“ auf die ID des jeweiligen Wertes zuzugreifen.
Im Hauptteil des Scripts werden die eigentlichen Daten eingelesen, kodiert, evaluiert und schließlich in das gewünschte Ausgangsdateiformat, die TF-Record-Datei, geschrieben.
Als besonders wichtig hat sich hierbei der Algorithmus zur Evaluierung der Daten herausgestellt. In frühen Versionen des Konvertierungsscripts wurde zwar die gewünschte TF-Record-Datei korrekt erstellt, jedoch kam es im Verlauf des Trainingsvorgangs immer wieder zu unerwarteten, kritischen Fehlern, die den Abbruch des Trainings zur Folge hatten. Nach langwierigen Untersuchungen stellte sich heraus, dass die verwendeten Daten teilweise fehlerhaft waren. Aus diesem Grund war es nötig eine Methode zu entwickeln, die solche Fehler in den Daten erkennen und deren Verarbeitung verhindern kann.
Um dies zu gewährleisten müssen die Koordinaten jeder einzelnen Box auf Plausibilität geprüft werden (siehe Abbildung 6).
Abbildung 6: Python Script zur Konvertierung des Datensatzes
Abbildung in dieser Leseprobe nicht enthalten
Quelle: Eigene Darstellung
Hierbei werden die *-Min Koordinaten den *-Max Koordinaten gegenübergestellt und hinsichtlich ihres Wertes geprüft. Ist der Wert der *-Min Koordinate größer als der Wert des *-Max Koordinate, so liegt ein Fehler vor und die Box wird ignoriert. Ebenso wird eine Box ignoriert, sollte der Wert der *-Min Koordinate kleiner Null oder der Wert der *-Max Koordinate größer der maximalen Ausprägung (Höhe, Breite des Bildes) sein.
Das Korrigieren anstelle des Ignorierens einer Box stellt indes keine Option dar, da eine falsche Korrektur unweigerlich dazu führen würde das Modell mit falschen Daten zu trainieren.
Um ein möglichst präzises Ergebnis erzielen zu können wurden die Daten des Datensatzes auf unterschiedliche Weise aufbereitet, konvertiert, trainiert und verglichen.
Folgende Datensätze wurden verwendet und gegenübergestellt:
- RGB Bilder, 1 Label, Standardkonfiguration
- Bilder in Graustufen, 1 Label, Standardkonfiguration
- RGB Bilder, 1 Label, Angepasste Konfiguration
4.1.2 TensorBoard
Das TensorBoard ist ein zusätzliches Tool zur Visualisierung des Trainings- und Evaluierungsprozesses eines Deep Learning Modells. Es bietet die Möglichkeit den Trainings- und Evaluierungsfortschritt mittels verschiedener Diagramme grafisch darzustellen. Neben Kenngrößen wie der „Mean Average Precision (mAP)“ und der „Intersection Over Union (IOU), dem Verlauf der Lernrate (siehe Abbildung 7) und den Loss-Werten (siehe Abbildung 8) können beispielsweise Bilder angezeigt werden, auf denen eine Object Detection im Rahmen des Evaluierungsprozesses durchgeführt wurde (siehe Abbildung 9 und Abbildung 10). Auf diese Weise ist es möglich den Fortschritt des Modells anhand realer Ausgabedaten zu begutachten.
Abbildung 7: Verlauf der Lernrate, dargestellt als Liniendiagramm in TensorBoard
Abbildung in dieser Leseprobe nicht enthalten
Quelle: Tensorboard
Der hier dargestellte Verlauf der Lernrate bestätigt die Pipeline-Konfiguration. Bis zu Durchgang 900.000 bleibt die Lernrate konstant bei ca. 0,0003 (Standardkonfiguration).
Abbildung 8: Verlauf des Classification-Loss als Liniendigramm in TensorBoard
Abbildung in dieser Leseprobe nicht enthalten
Quelle: Tensorboard
Abbildung 9: Modell-Evaluierungsbild Step 43935
Abbildung in dieser Leseprobe nicht enthalten
Quelle: Bosch Small Traffic Lights Datensatz
Abbildung 10: Modell-Evaluierungsbild Step 47483
Abbildung in dieser Leseprobe nicht enthalten
Quelle: Bosch Small Traffic Lights Datensatz
Wie anhand von Abbildung 9 und Abbildung 10 zu sehen ist, kann der Trainingsfortschritt mittels TensorBoard visuell dargestellt werden. Hierbei wird das trainierte Modell auf die Bilder des Evaluierungsdatensatzes angewendet und die Ergebnisse (Ort und Wahrscheinlichkeit) entsprechend auf dem Bild eingezeichnet (hier in grün). Des Weiteren können, je nach Konfiguration, die Boxen nach Markierung (die so genannten „Ground-Truth-Boxes) zusätzlich eingezeichnet werden (hier schwarz). Auf diese Weise ist es möglich die Qualität des Modells auf Grundlage des betrachteten Bildes zu bewerten.
[...]
1 Vgl. Berman, J. (2013), S. 3ff.
2 Vgl. Berman, J. (2013), S. 5ff.
3 Vgl. Gollapudi, S. (2016), S. 6.
4 Vgl. Gollapudi, S. (2016), S. 7.
5 Vgl. Gollapudi, S. (2016), S. 8.
6 Vgl. Sarkar, D., Bali, R., Sharma, T. (2017), S. 6–9.
7 Vgl. Khan, S., et al. (2018), S. 5.
8 Vgl. Gollapudi, S. (2016), S. 18.
9 Vgl. Sarkar, D., Bali, R., Sharma, T. (2017), S. 36.
10 Vgl. Sarkar, D., Bali, R., Sharma, T. (2017), S. 36f.
11 Vgl. Gollapudi, S. (2016), S. 18f.
12 Vgl. Sarkar, D., Bali, R., Sharma, T. (2017), S. 38f.
13 Vgl. Khan, S., et al. (2018), S. 5.
14 Vgl. Moolayil, J. (2018), S. 3ff.
15 Vgl. Khan, S., et al. (2018), S. 6.
16 Vgl. Behrendt, K., Novak, L. (2017)
17 Vgl. Google Brain Team (2018)
18 Vgl. Litzel N. (2018)
19 Vgl. Gamauf, T. (2018)
- Citation du texte
- Julian Springer (Auteur), 2019, Ampelerkennung beim autonomen Fahren. Einsatzgebiet für neuronale Netze und Deep Learning, Munich, GRIN Verlag, https://www.grin.com/document/500498
-
Téléchargez vos propres textes! Gagnez de l'argent et un iPhone X. -
Téléchargez vos propres textes! Gagnez de l'argent et un iPhone X. -
Téléchargez vos propres textes! Gagnez de l'argent et un iPhone X. -
Téléchargez vos propres textes! Gagnez de l'argent et un iPhone X. -
Téléchargez vos propres textes! Gagnez de l'argent et un iPhone X. -
Téléchargez vos propres textes! Gagnez de l'argent et un iPhone X. -
Téléchargez vos propres textes! Gagnez de l'argent et un iPhone X. -
Téléchargez vos propres textes! Gagnez de l'argent et un iPhone X. -
Téléchargez vos propres textes! Gagnez de l'argent et un iPhone X. -
Téléchargez vos propres textes! Gagnez de l'argent et un iPhone X. -
Téléchargez vos propres textes! Gagnez de l'argent et un iPhone X. -
Téléchargez vos propres textes! Gagnez de l'argent et un iPhone X. -
Téléchargez vos propres textes! Gagnez de l'argent et un iPhone X. -
Téléchargez vos propres textes! Gagnez de l'argent et un iPhone X. -
Téléchargez vos propres textes! Gagnez de l'argent et un iPhone X.