Minor fixes
This commit is contained in:
@@ -3,4 +3,4 @@
|
||||
|
||||
Das Ziel dieser Bachelorarbeit ist das Ermitteln einer Vorgehensweise für Texterkennung in Screenshots von grafischen Oberflächen. Verschiedene Algorithmen zur Bildbearbeitung vor der Texterkennung oder Nachbearbeitung \bzw Filterung der Ergebnisdaten werden evaluiert. Die Ergebnisdaten werden anschließend anhand von festgelegten Qualitätskriterien aus der programmatischen Sprach- und Schrifterkennung, beispielsweise der \hyperref[metriken_cer]{Zeichenfehler-} oder \hyperref[metriken_wer]{Wortfehlerrate} analysiert und miteinander verglichen \mcite{karpinski2018metrics}.
|
||||
|
||||
Die prototypische Implementierung dient als Basis für jegliche Tests und Analysen, anhand derer die Algorithmen automatisch evaluiert werden. Die entwickelten Komponenten werden als Bibliotheken zur Verfügung gestellt, um die Texterkennung inklusive automatischer Bildverarbeitung und Filterung der erkannten Inhalte \bzw Schlagworte später in anderen Anwendungen weiterverwenden zu können.
|
||||
Die prototypische Implementierung dient als Basis für die nachfolgenden Tests und Analysen, anhand derer die Algorithmen automatisch evaluiert werden. Alle entwickelten Komponenten werden als Bibliotheken zur Verfügung gestellt, um die Texterkennung inklusive automatischer Bildverarbeitung und Filterung der erkannten Inhalte \bzw Schlagworte später in anderen Anwendungen weiterverwenden zu können.
|
||||
@@ -50,7 +50,7 @@ Nach der Normalisierung werden Duplikate innerhalb der erkannten Textdaten entfe
|
||||
\begin{figure}[ht]
|
||||
\centering
|
||||
\begin{minipage}{0.49\textwidth}
|
||||
\lstinputlisting[firstnumber=33,linerange={33-41}]{include/postprocessing/normalize.json}
|
||||
\lstinputlisting[firstnumber=33,linerange={33-40}]{include/postprocessing/normalize.json}
|
||||
\end{minipage}
|
||||
\hfill
|
||||
\begin{minipage}{0.49\textwidth}
|
||||
@@ -70,11 +70,11 @@ Zusätzlich kann dieser Filter an die Anforderung des Zielsystems angepasst werd
|
||||
\begin{figure}[ht]
|
||||
\centering
|
||||
\begin{minipage}{0.49\textwidth}
|
||||
\lstinputlisting[firstnumber=14,linerange={14-22}]{include/postprocessing/duplicates.json}
|
||||
\lstinputlisting[firstnumber=16,linerange={16-20}]{include/postprocessing/duplicates.json}
|
||||
\end{minipage}
|
||||
\hfill
|
||||
\begin{minipage}{0.49\textwidth}
|
||||
\lstinputlisting[firstnumber=11,linerange={11-19}]{include/postprocessing/wordlength.json}
|
||||
\lstinputlisting[firstnumber=15,linerange={15-18}]{include/postprocessing/wordlength.json}
|
||||
\end{minipage}
|
||||
\caption{Auszug aus den Ergebnisdaten der Texterkennung aus \ref{fig:screenshot_postprocessing} nach der Wortlängenfilterung. Alle Wörter, die kürzer sind als der Schwellenwert, werden aus den Ergebnisdaten entfernt.}
|
||||
\label{fig:screenshot_postprocessing_wortlänge}
|
||||
@@ -88,11 +88,11 @@ Nachdem die zu filternden Textdaten durch vorherige Schritte vorverarbeitet wurd
|
||||
\begin{figure}[ht]
|
||||
\centering
|
||||
\begin{minipage}{0.49\textwidth}
|
||||
\lstinputlisting[firstnumber=7,linerange={7-19}]{include/postprocessing/duplicates.json}
|
||||
\lstinputlisting[firstnumber=14,linerange={14-19}]{include/postprocessing/duplicates.json}
|
||||
\end{minipage}
|
||||
\hfill
|
||||
\begin{minipage}{0.49\textwidth}
|
||||
\lstinputlisting[firstnumber=2,linerange={2-14}]{include/postprocessing/regex.json}
|
||||
\lstinputlisting[firstnumber=10,linerange={10-15}]{include/postprocessing/regex.json}
|
||||
\end{minipage}
|
||||
\caption{Auszug aus den Ergebnisdaten der Texterkennung aus \ref{fig:screenshot_postprocessing} nach der Filterung mit Regular Expressions. Findet der sprachabhängige Filter keine Treffer, wird das Wort aus den Ergebnisdaten entfernt.}
|
||||
\label{fig:screenshot_postprocessing_regex}
|
||||
|
||||
@@ -67,7 +67,7 @@ Das Erzeugen eines Binärbildes ist durch Anwendung von Segmentierungsverfahren
|
||||
|
||||
Ein häufig für die Bildsegmentierung genutztes Verfahren ist die feste Schwellenwertmethode, auf Englisch auch "Fixed Thresholding" genannt. Bei diesem Bildverarbeitungsverfahren wird ein manuell vordefinierter Grenzwert auf das gesamte Bild angewandt. Liegt ein Pixelwert über dem festgelegten Schwellenwert, gilt dieser als Teil des Vordergrunds, andernfalls als Hintergrund \mcite{sahoo1988survey}. Somit können Objekte, also die einzelnen Buchstaben in den Grafikdateien, von ihrem Hintergrund getrennt werden.
|
||||
|
||||
Das fixe Thresholding benötigt durch den fest definierten Schwellenwert einen geringen Berechnungsaufwand und weist eine hohe Performance auf. Besonders bei Screenshotdateien kann es vorkommen, dass die eigentlich bunten grafischen Elemente der Benutzeroberfläche aufgrund ihrer Helligkeit über dem Schwellenwert liegen. Dadurch werden sie, genau wie der Text, als Vordergrund wahrgenommen und die gesamte Fläche wird einfärbig. Somit können jegliche Texte innerhalb dieser Fläche nicht vom Texterkennungssystem erkannt werden und die Qualität und Menge der erkannten Daten wird stark reduziert. Der Unterschied der Ergebnisdaten ist besonders im Vergleich von \autoref{thresholding_fixed_vergleich_gut} \bzw \autoref{thresholding_fixed_vergleich_schlecht} ersichtlich.
|
||||
Das fixe Thresholding benötigt durch den fest definierten Schwellenwert einen geringen Berechnungsaufwand und weist eine hohe Performance auf \mcite{todo}. Besonders bei Screenshotdateien kann es vorkommen, dass die eigentlich bunten grafischen Elemente der Benutzeroberfläche aufgrund ihrer Helligkeit über dem Schwellenwert liegen. Dadurch werden sie, genau wie der Text, als Vordergrund wahrgenommen und die gesamte Fläche wird einfärbig. Somit können jegliche Texte innerhalb dieser Fläche nicht vom Texterkennungssystem erkannt werden und die Qualität und Menge der erkannten Daten wird stark reduziert. Der Unterschied der Ergebnisdaten ist besonders im Vergleich von \autoref{thresholding_fixed_vergleich_gut} \bzw \autoref{thresholding_fixed_vergleich_schlecht} ersichtlich.
|
||||
|
||||
\begin{figure}[ht]
|
||||
\centering
|
||||
|
||||
@@ -33,7 +33,7 @@ Die zu verarbeitenden Bilder im Kontext dieser Bachelorarbeit sind ausschließli
|
||||
\subsubsection{Optimieren von Daten für Tesseract}
|
||||
\label{annahmen_bild_optimal}
|
||||
|
||||
Für die Verwendung von Tesseract ist es wichtig, unabhängig von der Diversität der Ausgangsdaten möglichst einheitliche Bilder zu erzeugen \mcite{tessdoc}. Während störende Elemente wie Bildrauschen aus dem Bild entfernt werden, sollen Texte ohne Einfluss der eigentlichen Hinter- bzw. Vordergrundfarbe gut zu erkennen sein. Auch eine deutliche Abgrenzung von Formen oder grafischen Symbolen ist von großer Wichtigkeit \mcite{sporici2020improving} \mcite{mursari2021effectiveness}. Wurde ein Screenshot ideal vorbereitet, wie in \autoref{fig:screenshot_comparison_optimal} gezeigt, verschwinden farbige Hintergrundflächen und grafische Dekorationselemente. Übrig bleibt nur der gut lesbare textuelle Inhalt des Bildes.
|
||||
Für die Verwendung von Tesseract ist es wichtig, unabhängig von der Diversität der Ausgangsdaten möglichst einheitliche Bilder zu erzeugen \mcite{tessdoc}. Während störende Elemente wie Bildrauschen aus dem Bild entfernt werden, sollen Texte ohne Einfluss der eigentlichen Hinter- bzw. Vordergrundfarbe gut zu erkennen sein. Auch eine deutliche Abgrenzung von Formen oder grafischen Symbolen ist von großer Wichtigkeit \mcite{sporici2020improving} \mcite{mursari2021effectiveness}. Wie in \autoref{fig:screenshot_comparison_optimal} gezeigt, sollen farbige Hintergrundflächen und grafische Dekorationselemente verschwinden. Übrig bleibt optimalerweise nur der gut lesbare textuelle Inhalt des Bildes.
|
||||
|
||||
\begin{figure}[ht]
|
||||
\centering
|
||||
|
||||
@@ -49,11 +49,11 @@ Die für die prototypische Implementierung verwendeten Bibliotheken stellen Komp
|
||||
\subsubsection{Fremdbibliotheken}
|
||||
\label{components_external}
|
||||
|
||||
In der prototypischen Implementierung, geschrieben in der Programmiersprache \csharp, wurden in Referenz an die in \autoref{technologien} vorgestellten Technologien und Werkzeuge folgende NuGet-Bibliotheken als Basis für die Implementierung verwendet:
|
||||
In der prototypischen Implementierung, entwickelt in \csharp .NET, wurden in Referenz an die in \autoref{technologien} vorgestellten Technologien und Werkzeuge folgende NuGet-Bibliotheken als Basis für die Implementierung verwendet.
|
||||
|
||||
\begin{itemize}
|
||||
\item \textbf{Magick.NET}\\Version: 13.1.0\\Lizenz: Apache-2.0\\\url{https://www.nuget.org/packages/Magick.NET.Core}
|
||||
\item \textbf{Tesseract}\\Version: 5.2.0\\Lizenz: Apache-2.0\\\url{https://www.nuget.org/packages/Tesseract}
|
||||
\item\textbf{Magick.NET} \mcite{nuget_magicknet}\\Version: 13.1.0\\Lizenz: Apache-2.0\\
|
||||
\item\textbf{Tesseract} \mcite{nuget_tesseract}\\Version: 5.2.0\\Lizenz: Apache-2.0\\
|
||||
\end{itemize}
|
||||
|
||||
\subsubsection{Verarbeitungsketten}
|
||||
|
||||
@@ -125,6 +125,20 @@
|
||||
date = {2023-05-23},
|
||||
language = {eng}
|
||||
}
|
||||
@online{nuget_magicknet,
|
||||
title = {Magick.NET - NuGet},
|
||||
url = {https://www.nuget.org/packages/Magick.NET.Core},
|
||||
urldate = {2024-02-12},
|
||||
date = {2023-05-23},
|
||||
language = {eng}
|
||||
}
|
||||
@online{nuget_tesseract,
|
||||
title = {Tesseract - NuGet},
|
||||
url = {https://www.nuget.org/packages/Tesseract},
|
||||
urldate = {2024-02-12},
|
||||
date = {2023-05-23},
|
||||
language = {eng}
|
||||
}
|
||||
@article{islam2017survey,
|
||||
title = {A survey on optical character recognition systems},
|
||||
author = {Islam, Noman and Islam, Zeeshan and Noor, Nazia},
|
||||
|
||||
Reference in New Issue
Block a user