\section{Annahmen}
\label{annahmen}

Um die Texterkennung mittels Tesseract und die anschließende Filterung der Ergebnisdaten zu verbessern, ist es sinnvoll, Anwendungsspezifische Annahmen für den Verarbeitungsablauf festzulegen.

\subsection*{Preprocessing}
\label{annahmen_preprocessing}

\subsubsection*{Eigenschaften von Screenshots}
\label{annahmen_bild_eigenschaften}

Im Falle dieser Bachelorarbeit handelt es sich bei den zu verarbeitenden Bildern ausschließlich um digitale Bildschirmaufnahmen von grafischen Benutzeroberflächen. Da die  Es kann also angenommen werden, dass die Screenshots keine Transparenz aufweisen, die Perspektive der Aufnahme nicht verzerrt ist und der Kontrast in den meisten Fällen ausreicht, um die relevanten Inhalte zu erkennen. Weiters ist bei der Bildverarbeitung auf farbige Hintergrundflächen zu achten, mit deren Unterstützung Bildschirmelemente in modernen grafischen Oberflächen oft  gruppiert oder getrennt werden. Nach Sichtung des zu verarbeitenden Bilddatensatzes fällt zudem auf, dass die manche Screenshots durch das Selektieren mit der Maus sehr eng abgeschnitten wurden. Auch das ist bei der Vorverarbeitung zu berücksichtigen.

\begin{figure}[ht]
  \centering
  \begin{minipage}{0.66\textwidth}
    \includegraphics[width=\textwidth]{include/screenshots/driver_brpvi_offlineimport_004.png}
  \end{minipage}
  \hfill
  \begin{minipage}{0.3\textwidth}
    \begin{minipage}{\textwidth}
      \includegraphics[width=\textwidth]{include/screenshots/historian_assistent_001.png}
    \end{minipage}\hfill
    \vspace{\baselineskip}
    \begin{minipage}{\textwidth}
      \includegraphics[width=\textwidth]{include/screenshots/driver_archdrv_variablendefinition_001.png}
    \end{minipage}\hfill
  \end{minipage}
  \caption{Beispielhafte Auswahl typischer Dialogscreenshots.}
  \label{annahmen_bild_eigenschaften_beispiel}
\end{figure}

\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 generieren, die den Trainingsdaten des neuronalen Netzes ähnlich sehen. Während störende Elemente wie Bildrauschen aus dem Bild entfernt werden sollen, sollen Texte unabhängig von der Hinter- bzw. Vordergrundfarbe gut zu erkennen und leicht von Formen oder grafischen Symbolen abzugrenzen sein \mcite{sporici2020improving} \mcite{mursari2021effectiveness}.

\begin{figure}[ht]
  \begin{minipage}{0.4\textwidth}
    \fbox{\includegraphics[width=\textwidth]{include/screenshots/command-processing_screentypes_controlgroup_005.png}}
  \end{minipage}
  \hspace{0.1\textwidth}
  \begin{minipage}{0.4\textwidth}
    \fbox{\includegraphics[width=\textwidth]{\detokenize{include/results/ThresholdProcessor(40\%).00.command-processing_screentypes_controlgroup_005.png}}}
  \end{minipage}
  \caption{Ein optimales Ergebnisbild. Jegliche farblichen Flächen wurden durch die Bildverarbeitung entfernt. Übrig bleibt klar lesbarer Text mit einem hohen Kontrast zum Hintergrund.}
  \label{fig:screenshot_comparison_optimal}
\end{figure}

\subsection*{Postprocessing}
\label{annahmen_postprocessing}

\subsubsection*{Filtern von Symbolen}

Bei der Texterkennung kommt es manchmal vor, dass grafische Elemente als Unicode-Symbole erkannt werden. Beispielsweise finden sich in den ungefilterten Ergebnisdaten oft Aufzählungszeichen "•" oder diverse Varianten von Bindestrichen "‒". Diese Zeichen sind gemäß Anwendungsanforderungen nicht relevant für die Schlagwortsuche und können somit entfernt \bzw ignoriert werden.

\begin{figure}[t]
  \centering
  \begin{minipage}{0.45\textwidth}
    \includegraphics[width=0.90\textwidth]{include/postprocessing/source.png}
  \end{minipage}
  \hfill
  \begin{minipage}{0.5\textwidth}
    \lstinputlisting[firstnumber=100,linerange={100-110}]{include/postprocessing/source.json}
  \end{minipage}
  \caption{Auszug aus den ungefilterten Ergebnisdaten bei Durchführung der Texterkennung in dem gezeigten Screenshot.}
  \label{fig:screenshot_postprocessing}
\end{figure}

\subsubsection*{Mehrsprachigkeit}
\label{annahmen_mehrsprachigkeit}

Eine weitere Anforderung an das Textverarbeitungssystem ist außerdem das Einlesen und Interpretieren mehrsprachiger Bilddateien. So sollen beispielsweise Bilder mit englischen, deutschen oder italienischen Inhalten zugeführt und die Ergebnisdaten richtig verarbeitet werden können. Um eine Filterung für verschiedene Zeichensätze zu ermöglichen und eine Unterstützung für Sprachen mit nicht-lateinischen Schriften zu gewährleisten, werden dynamische Sprachfilter verwendet, die individuell an die jeweilige Sprache angepasst werden können. Um die Ergebnisdaten nicht unnötig zu verkomplizieren, werden für die initialen Tests und die Beschreibung der generellen Vorgehensweise im Rahmen dieser Bachelorarbeit jedoch nur deutsche oder englische Inhalte verarbeitet.

\subsubsection*{Schlagworte}
\label{annahmen_schlagworte}

Für die spätere Suche von Screenshots sollen relevante Schlagworte aus den erkannten Textdaten extrahiert werden. Ein Wort eignet sich dann als Schlagwort, wenn es in relevantem Bezug zum jeweiligen Bild steht und dabei idealerweise eine wichtige Aktion oder Information widerspiegelt. Inhalte, die direkt in der grafischen Benutzeroberfläche ersichtlich sind, eignen sich demnach besonders gut als Suchworte. Damit die Menge an Schlagwörtern allerdings nicht zu unspezifisch wird, sollte es vermieden werden, allgemeine sogenannte Stoppwörter (\engl{Stop words}) ohne besondere Semantik, wie "und", "oder", in das Ergebnis mit aufzunehmen. Sie beinhalten keine spezifische Information und fördern aufgrund ihrer Häufigkeit das Auftreten von Verwechslungen.
