diff --git a/.vscode/ltex.dictionary.de-DE.txt b/.vscode/ltex.dictionary.de-DE.txt index eff374b0d62c817490201abba36998983a3474af..01263faf6cf7f3ae1b764dd1620d81cf735ce23b 100644 --- a/.vscode/ltex.dictionary.de-DE.txt +++ b/.vscode/ltex.dictionary.de-DE.txt @@ -70,3 +70,7 @@ Jetson Nano image fehlklassifiziert +Deep-Learning +Convolutional +Deep-Learning-Methoden +unterschdilcihsten diff --git a/Bachelorarbeit.pdf b/Bachelorarbeit.pdf index e8c62179aad8b4814d341464e43975a5e819aab1..a0fc176582282bec62f6e684669374a91457b6d4 100644 Binary files a/Bachelorarbeit.pdf and b/Bachelorarbeit.pdf differ diff --git "a/bib/Glossareintr\303\244ge.tex" "b/bib/Glossareintr\303\244ge.tex" index a84e8b391c1efc2acfb8c2a8749b9e77acb5f65a..3dddf56fc00cf5accbaed4c43ebdec6793db9bc2 100644 --- "a/bib/Glossareintr\303\244ge.tex" +++ "b/bib/Glossareintr\303\244ge.tex" @@ -98,7 +98,8 @@ plural={Bildkoordinaten}, description={ Ein 3D-Koordinatensystem, das die gesamte Scene/Welt des derzeitigen Systems umfasst. - } + }, + sort={koordinaten-welt} } \newglossaryentry{Objekt-coords}{ @@ -108,7 +109,8 @@ description={ Ein 3D-Koordinatensystem welches relativ zum Fahrzeug/Objekt liegt. Es bewegt sich mit dem Fahrzeug und hat seinen Uhrsprung im/nahe am Fahrzeug. - } + }, + sort={koordinaten-fahrzeug} } \newglossaryentry{Bild-coords}{ @@ -118,7 +120,8 @@ description={ Ein Koordinatensystem welches die sicht der Kamera Widerspiegelt. X- und Y-Koordinaten korrospondieren dabei zu pixelkoordinaten und die Z-Achse stellt die Entfernung zur Kamera dar. - } + }, + sort={koordinaten-bild} } \newglossaryentry{ROI}{ diff --git a/chap/standdertechnik.tex b/chap/standdertechnik.tex index e80bb65fdb3f99ea9220e1c9e653a095a835fde8..55134644d057a9d3c4731f8db16e4f4d2fe03ee3 100644 --- a/chap/standdertechnik.tex +++ b/chap/standdertechnik.tex @@ -37,6 +37,7 @@ \label{fig: genersich} \end{figure} + \pagebreak Bei den sogenannten Features handelt es sich um spezifische, möglichst eindeutige Muster im Bild. Im Fall von Fahrspurmarkierungen sind dies meist Kannten und Ecken ebendieser. Häufig wird hier der \gls{canny} eingesetzt, der von John Canny \cite{Canny:computationAlapproachEdgeDetection} entwickelt wurde. Dieser Algorithmus ist sehr gut zum Identifizieren von Kantenpixeln @@ -60,41 +61,40 @@ Transformation wurde aber bereits im Voraus als zu rechenintensiv ausgeschlossen. - \subsection{Deep Learning Ansätze} - - Alternativ zu den traditionellen Ansätzen gibt es die neuen Deep Learning Methoden. Hier werden sogenannte \emph{Convolutional Neural - Networks} (kurz \emph{CNN}) verwendet. Diese Netzwerke bestehen aus mehreren Schichten, welche von einem Eingangsbild nacheinander - durchlaufen werden. - - \todo[inline]{ - Was ist das? \\ - Warum hier nicht? \\ - Was ist ungeeignet? - } - - % \section{Lochkamera Modell} \label{sec: pinhole model} - - % \begin{align} \label{eq: camera} - % \begin{pmatrix} - % u \\ v \\ 1 - % \end{pmatrix} - % &= - % \begin{pmatrix} - % f_x & 0 & c_x \\ - % 0 & f_y & c_y \\ - % 0 & 0 & 1 \\ - % \end{pmatrix} - % \begin{pmatrix} - % r_{11} & r_{12} &r_{13} & t_1 \\ - % r_{21} & r_{22} &r_{23} & t_2 \\ - % r_{31} & r_{32} &r_{33} & t_3 \\ - % \end{pmatrix} - % \begin{pmatrix} - % x \\ y \\ z \\ 1 - % \end{pmatrix} - % \\ - % p &= K \cdot T[RT] \cdot - % \end{align} + \subsection{Deep-Learning Ansätze} + + Alternativ zu den traditionellen Ansätzen wird in den letzten Jahren vor allem an den sogenannten Deep-Learning-Methoden geforscht. Hier + werden Neurale Netze verwendet, um Lösungen für besonders schwierigen Situationen wie extremen Lichtverhältnissen oder stark verwitterte + Spurmarkierungen zu finden. + + Diese Netzwerke können mittels eines großen Datensatzes an Bildern trainiert werden, um unter unterschiedlichsten, unvorhersehbaren + Bedingungen noch Ergebnisse zu erhalten. Dabei gilt, je größer und vielfältiger der Trainingsdatensatz, umso wahrscheinlicher erzielt das + trainierte Netzwerk gute Ergebnisse. \cite{survey:deepLeraningInLanemarkerdetection} vergleicht frei verfügbare Datensätze und liefert + eine Übersicht für welche Anwendungen diese sich eigen. + + Der generelle Detektierungsablauf ist auch bei Deep-Learning-Methoden der in \autoref{fig: genersich} dargestellte. Je nach Methode und + Netzwerk können aber mehrere Schritte vom selben Netzwerk erledigt oder mehrere Netzwerke für die einzelnen Schritte verwendet werden. + + In den letzten Jahren wurden unterschiedlichste Arten von Neuralen Netzen für die Detektion von Spurmarkierungen entwickelt und erprobt. + Vier unterschiedliche Netzwerkarten, deren Verwendungszweck und Vorteile, sowie ein Vergleich der Ergebnisse ist in + \cite{review:landeDetectionMethodes-deepLearning} nachzulesen. Dort wurden Genauigkeiten von $97\,\percent$ erreicht, allerdings war die + Generalisierung der getesteten Modelle nicht immer zuverlässig. + + Der in \cite{survey:deepLeraningInLanemarkerdetection} erstellte Vergleich kommt zu sehr ähnlichen Ergebnissen. Zusätzlich wurde hier die + Performance der Netzwerke untersucht und angegeben, wie viele Bilder pro Sekunde verarbeitet werden können. Hier haben sich einige + Methoden als sehr viel schneller herausgestellt. + + \medskip + Ein großer Nachteil aller Deep-Learning-Methoden ist die benötigen hohe Rechenleistung. Bereist das Training der Netzwerke erfordert einen + existierenden, ausreichen großen Datensatz und viel Zeit und Rechenleitung. Aber auch zur Nutzung der fertig trainierten Netzwerkes ist + wieder einiges an Rechenleitung notwendig. Hier kann zwar die GPU zu Hilfe genommen werden, es ist aber ein Nachteil gegenüber den + traditionellen Ansätzen. + + Dies ist insbesondere für den Anwendungsfall dieser Arbeit ein Problem. Die Ressourcen des JetBots sollen so wenig wie möglich belastet + werden, damit dieses mit weiten Anwendungen geteilt werden können. Da einige potenzielle Anwendungen auf die Verwendung von Neuralen + Netzen angewehten sind, ist insbesondere die GPU sehr sparsam zu benutzen. + + Daher ist für diese Arbeit die Verwendung von Deep-Learning nicht sinnvoll und findet keine Anwendung. \section{OpenCV} \label{sec: opencv}