many small fixes

This commit is contained in:
Simon
2024-02-28 21:32:40 +01:00
parent 24c92fd599
commit 4c7860e332
19 changed files with 72 additions and 68 deletions

View File

@@ -59,3 +59,5 @@ unimodalen
Nachbearbeitungskette
schlagwortbasierten
Screenshotdaten
zenon-Produktpalette
Processings

View File

@@ -4,7 +4,7 @@ Diese Bachelorarbeit konzentriert sich auf eines der vielen Anwendungsgebiete de
Dazu wird eine Auswahl von Algorithmen für die Aufbereitung der Bilder \bzw Filterung der Ergebnisdaten der Texterkennung getroffen, welche in ihrer Grundfunktion erklärt werden. Der Einfluss der gewählten Algorithmen auf die Ergebnisse der Texterkennung wird anschließend anhand gängiger Metriken für die Sprach- und Texterkennung objektiv miteinander verglichen.
Durch den Vergleich der Ergebnisdaten in dem automatisch generierten Bericht wird deutlich, dass die Analyse verschiedener Bilder mit nur einem Verfahren nicht zu optimalen Ergebnissen führt. Unter den gewählten Vorgehensweisen gibt es innerhalb der überprüften Stichprobe keinen klaren "Sieger". Besonders bei der Binarisierung, konkret bei Anwendung der unterschiedlichen Schwellenwertverfahren, müssen die Parameter individuell auf die unterschiedlichen Bildmerkmale angepasst werden, um keine wichtigen Details zu verlieren. Für die automatisierte Texterkennung ist es also sinnvoll, den verwendeten Algorithmus manuell auf Basis der Eingangsdaten zu bestimmen oder die Ergebnisdaten mehrerer Algorithmen automatisch zu kombinieren. So können möglichst viele Details eingefangen und das Endergebnis der Texterkennung innerhalb des Bildes optimiert werden.
Durch den Vergleich der Ergebnisdaten in dem automatisch generierten Bericht wird deutlich, dass die Analyse verschiedener Bilder mit nur einem Verfahren nicht zu optimalen Ergebnissen führt. Besonders bei der Binarisierung, konkret bei Anwendung der unterschiedlichen Schwellenwertverfahren, müssen die Parameter individuell auf die unterschiedlichen Bildmerkmale angepasst werden, um keine wichtigen Details zu verlieren. Für die automatisierte Texterkennung ist es also sinnvoll, den verwendeten Algorithmus manuell auf Basis der Eingangsdaten zu bestimmen oder die Ergebnisdaten mehrerer Algorithmen automatisch zu kombinieren. So können möglichst viele Details eingefangen und das Endergebnis der Texterkennung innerhalb des Bildes optimiert werden.
Für weitere Forschung oder Anpassung an spezifische Anforderungen kann die prototypische Implementierung \bzw deren Komponenten wiederverwendet werden. Durch den modularen Aufbau ist es möglich, neue Funktionalität hinzuzufügen oder bestehende zu verändern. Somit kann selbst nach Änderung der Anzeigesprache oder einer farblichen Neugestaltung der grafischen Oberfläche stets mit wenig Aufwand die ideale Vorgehensweise zur Texterkennung ermittelt werden.

View File

@@ -5,7 +5,7 @@ This bachelor's thesis focuses on one of the many fields of optical character re
For this purpose, a selection of algorithms for image processing and filtering of the resulting data is made. After explaining the selected algorithms in their basic function, they are objectively compared using common metrics for speech and text recognition.
By comparing the resulting data in the automatically generated report, it becomes apparent that analyzing different pictures using just one method does not lead to optimal results. Amongst the chosen approaches, there is no clear "winner" in the examined sample. In order to not lose any important details, specifically when working with binarization techniques such as thresholding, the chosen parameters must match the individual characteristics of the picture. Therefore, for automated text recognition, it is sensible to either manually determine the algorithm to be used based on the input data or to automatically combine the results of multiple algorithms. This way, as many details as possible can be captured and the end results of text recognition within the image can be optimized.
By comparing the resulting data in an automatically generated report, it becomes apparent that analyzing different pictures using just one method does not lead to satisfying results. In order to not lose any important details, specifically when working with binarization techniques such as thresholding, the chosen parameters must match the individual characteristics of the picture. Therefore, for automated text recognition, it is sensible to either manually determine the algorithm to be used based on the input data or to automatically combine the results of multiple algorithms. This way, as many details as possible can be captured and the end results of text recognition within the image can be optimized.
For further research or adaptation to specific requirements, the prototypical implementation or its respective components are designed to be reused. Due to the modular structure of the automated comparison system, it is possible to add new functionality or edit the existing features. As a result, the ideal text recognition approach can always be determined with little effort, even after changing the display language or after a complete redesign of the graphical user interface.
The prototypical implementation and its respective components are designed to be reusable for further research or adaptation to specific requirements. Due to the modular structure of the automated comparison system, it is possible to add new functionality and to edit existing features. As a result, a satisfying text recognition approach can always be determined with little effort, even after changing the display language or after a complete redesign of the graphical user interface.
\end{english}

View File

@@ -1,6 +1,6 @@
\section{Zielsetzung}
\label{ziele}
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}.
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 sowie Nachbearbeitung \bzw Filterung der Ergebnisdaten sollen evaluiert werden. Die Ergebnisdaten sollen 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} werden.
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.
Eine prototypische Implementierung dient als Basis für die nachfolgenden Tests und Analysen, anhand derer die Algorithmen automatisch evaluiert werden sollen. Alle entwickelten Komponenten sollen als Bibliotheken zur Verfügung gestellt werde, um die Texterkennung inklusive automatischer Bildverarbeitung und Filterung der erkannten Inhalte \bzw Schlagworte später in anderen Anwendungen weiterverwenden zu können.

View File

@@ -5,17 +5,17 @@ Die in Salzburg ansässige COPA-DATA GmbH bietet die Softwareplattform zenon an,
Die zenon-Plattform kann sowohl vom Kunden selbst, als auch durch das Professional Services Team individuell auf Kundenanforderungen zugeschnitten und in bestehende Prozesse eingebunden werden. Den Grundstein für die hohe Anpassungsfähigkeit bildet die Produktdokumentation, in der Schnittstellendokumentation, Anleitungen und Beispiele in verschiedensten Sprachen, Formaten und mit kundenspezifischen Erweiterungen umfassend sowohl für Mitarbeiter, als auch für Kunden festgehalten sind.
In der Produktdokumentation werden, besonders in Hinblick auf die grafischen Tools wie die zenon Engineering Studio Entwicklungsumgebung oder die zenon Service Engine, zahlreiche Grafiken wie \autoref{bild_eigenschaften_beispiel} verwendet, um Beispiele verständlicher zu machen und Anleitungen übersichtlicher zu gestalten. Um bei dem großen Funktionsumfang der zenon-Tools, den vielen Sprachen, Anpassungen und den unterschiedlichen Themengebieten innerhalb der Dokumentation nicht den Überblick zu verlieren, benötigt das interne "Technical Content and Translation" Team unterstützend zu dem intern verwendeten CMS eine dedizierte Anwendung zur Verwaltung von sprachabhängigen Bilddateien.
In der Produktdokumentation werden, besonders in Hinblick auf die grafischen Werkzeuge wie die zenon Engineering Studio Entwicklungsumgebung oder die zenon Service Engine, zahlreiche Grafiken wie \autoref{bild_eigenschaften_beispiel} verwendet, um Beispiele verständlicher zu machen und Anleitungen übersichtlicher zu gestalten. Um bei dem großen Funktionsumfang der zenon-Produktpalette, den vielen Sprachen, Anpassungen und den unterschiedlichen Themengebieten innerhalb der Dokumentation den Überblick zu behalten, benötigt das interne "Technical Content and Translation"-Team unterstützend zu dem intern verwendeten Inhaltsverwaltungssystem eine dedizierte Anwendung zur Verwaltung von sprachabhängigen Bilddateien.
\begin{figure}[ht]
\centering
\begin{minipage}{0.66\textwidth}
\includegraphics[width=\textwidth]{include/screenshots/driver_brpvi_offlineimport_004.png}
\begin{minipage}{0.50\textwidth}
\includegraphics[width=\textwidth]{include/screenshots/historian_assistent_001.png}
\end{minipage}
\hfill
\begin{minipage}{0.3\textwidth}
\begin{minipage}{0.49\textwidth}
\begin{minipage}{\textwidth}
\includegraphics[width=\textwidth]{include/screenshots/historian_assistent_001.png}
\includegraphics[width=\textwidth]{include/screenshots/driver_brpvi_offlineimport_004.png}
\end{minipage}\hfill
\vfill
\begin{minipage}{\textwidth}
@@ -28,4 +28,4 @@ In der Produktdokumentation werden, besonders in Hinblick auf die grafischen Too
Während das Programm auch die Basisfunktionalität, das Speichern, Bearbeiten, Löschen, Abrufen beziehungsweise das generelle Verwalten von Screenshots und der zugehörigen Metainformation abdecken soll, konzentriert sich diese Bachelorarbeit primär auf die Kategorisierungsfunktionalität der Bildinhalte.
Mithilfe von optischer Texterkennung (\engl{Optical character recognition}, \kurz{OCR}) soll es den Mitarbeitern möglich gemacht werden, hochgeladene Screenshots und Grafiken aufgrund ihrer Inhalte zu verschlagworten, um sie später anhand dieser suchen zu können.
Mithilfe von optischer Texterkennung (\engl{Optical Character Recognition}, \kurz{OCR}) sollen Mitarbeiter hochgeladene Screenshots und Grafiken aufgrund ihrer Inhalte verschlagworten können, um sie später anhand dieser zu finden.

View File

@@ -1,10 +1,10 @@
\section{Aufbau}
\label{aufbau}
Zunächst wird in \autoref{grundlagen} der technische Grundstein für die Bachelorarbeit gelegt. Informationen zur Vorgehensweise und den wichtigsten Punkten bei der \hyperref[grundlagen_preprocessing]{Vorverarbeitung} und \hyperref[grundlagen_postprocessing]{Nachbearbeitung} werden erarbeitet und dienen als Basis für die spätere Entscheidungsfindung in \autoref{konzept}. Weiters werden die Metriken erklärt, die für den Vergleich der Qualität der Texterkennungsergebnisse notwendig sind.
In \autoref{grundlagen} wird der technische Grundstein für die Bachelorarbeit gelegt. Informationen zur Vorgehensweise und zu den wichtigsten Punkten bei der \hyperref[grundlagen_preprocessing]{Vorverarbeitung} und \hyperref[grundlagen_postprocessing]{Nachbearbeitung} werden erarbeitet und dienen als Basis für die spätere Entscheidungsfindung in \autoref{konzept}. Weiters werden die Metriken erklärt, die für den Vergleich der Qualität der Texterkennungsergebnisse notwendig sind.
Sind die Rahmenbedingungen geklärt, ist gemäß \autoref{konzept} eine begründete Auswahl an verwendeten \hyperref[algorithmen_preprocessing]{Algorithmen} und \hyperref[konzept_texterkennungssystem]{Technologien} zu treffen. Verschiedene Algorithmen werden verglichen und auf ihre Stärken und Schwächen in Bezug auf Screenshotdaten untersucht. Die geeigneten Algorithmen werden anschließend in \autoref{implementierung} für den Vergleich verwendet.
Sind die Rahmenbedingungen geklärt, ist gemäß \autoref{konzept} eine begründete Auswahl an verwendeten \hyperref[algorithmen_preprocessing]{Algorithmen} und \hyperref[konzept_texterkennungssystem]{Technologien} zu treffen. Verschiedene Algorithmen werden verglichen und auf ihre Stärken und Schwächen in Bezug auf Screenshot\-daten untersucht. Die geeigneten Algorithmen werden anschließend in \autoref{implementierung} für den Vergleich verwendet.
Nach Bestimmung des Konzepts wird in der prototypischen \hyperref[implementierung]{Implementierung} ein Programm geschaffen, welches verschiedene Algorithmen anhand einer Stichprobe, bestehend aus beispielhaft ausgewählten Screenshots, vergleicht. Mittels der flexiblen Komponenten ist eine spätere Anpassung des Programmablaufs \bzw die Implementierung weiterer Algorithmen einfach, was schnelles Prototyping und Testen fördert. Das Ergebnis ist ein automatisch generierter Bericht, anhand dessen die Ergebnisdaten untersucht werden können.
Basierend auf dem Konzept wird in der prototypischen \hyperref[implementierung]{Implementierung} ein Programm geschaffen, welches verschiedene Algorithmen anhand einer Stichprobe, bestehend aus beispielhaft ausgewählten Screenshots, vergleicht. Mittels der flexiblen Komponenten soll eine spätere Anpassung des Programmablaufs \bzw die Implementierung weiterer Algorithmen einfach sein, was schnelles Prototyping und Testen fördern soll. Das Ergebnis ist ein automatisch generierter Bericht, anhand dessen die Ergebnisdaten untersucht werden können.
Schlussendlich müssen die in \hyperref[implementierung]{Implementierung} generierten Daten evaluiert werden. Dazu werden die jeweiligen Sektionen des Berichts in \autoref{evaluierung} einzeln betrachtet und die Ergebnisse verglichen.

View File

@@ -1,7 +1,7 @@
\chapter{Optische Texterkennung}
\label{grundlagen}
Für einen technischen Überblick und als Grundlage für die Auswahl der innerhalb dieser Bachelorarbeit verwendeten Algorithmen, wird im folgenden Kapitel näher auf \hyperref[grundlagen_texterkennungssysteme]{Texterkennungssysteme}, Grundlagen zur \hyperref[grundlagen_preprocessing]{Vorverarbeitung}, \hyperref[grundlagen_postprocessing]{Nachbearbeitung} sowie die verwendeten \hyperref[metriken]{Metriken} zum Vergleich eingegangen.
Für einen technischen Überblick und als Grundlage für die Auswahl der innerhalb dieser Bachelorarbeit verwendeten Algorithmen wird im folgenden Kapitel näher auf \hyperref[grundlagen_texterkennungssysteme]{Texterkennungssysteme}, Grundlagen zur \hyperref[grundlagen_preprocessing]{Vorverarbeitung}, \hyperref[grundlagen_postprocessing]{Nachbearbeitung} sowie die verwendeten \hyperref[metriken]{Metriken} zum Vergleich eingegangen.
\input{chapters/c20_grundlagen/texterkennungssysteme}
\input{chapters/c20_grundlagen/preprocessing}

View File

@@ -8,11 +8,11 @@ Sowohl die Character- als auch die Word Error Rate sind häufig genutzte Verglei
\subsection{Word Error Rate}
\label{metriken_wer}
Die Wortfehlerrate (\engl{Word Error Rate}, \kurz{WER}) beschreibt den prozentualen Anteil der falsch erkannten oder fehlenden Wörter eines Textes im Vergleich zu einer Referenz, welche im Falle der folgenden Vergleiche immer alle sichtbaren Texte im Bild repräsentiert. Je niedriger die WER, desto genauer ist der OCR-Vorgang. Um die WER zu berechnen, bildet man die Summe aller notwendigen Ersetzungen, Entfernungen und Einfügungen, um aus dem erkannten Text den Referenztext bilden zu können und setzt sie mit der Gesamtwortanzahl im Referenztext in Verhältnis \mcite{levenshtein1966binary, park2008empirical, karpinski2018metrics}.
Die Wortfehlerrate (\engl{Word Error Rate}, \kurz{WER}) beschreibt den prozentualen Anteil der falsch erkannten oder fehlenden Wörter eines Textes im Vergleich zu einer Referenz, welche im Falle der folgenden Vergleiche immer alle sichtbaren Texte im Bild repräsentiert. Je niedriger die WER, desto genauer ist der OCR-Vorgang. Um die WER zu berechnen, bildet man die Summe aller notwendigen Ersetzungen, Entfernungen und Einfügungen, um aus dem erkannten Text den Referenztext bilden zu können und setzt sie mit der Gesamtwortanzahl im Referenztext in Verhältnis. \mcite{levenshtein1966binary, park2008empirical, karpinski2018metrics}
\subsubsection{Berechnung}
Die mathematische Formel für die Word Error Rate lautet somit wie folgt \mcite{karpinski2018metrics}:
Die mathematische Formel für die Word Error Rate lautet wie folgt \mcite{karpinski2018metrics}:
\begin{center}
\[
@@ -41,7 +41,7 @@ Die Zeichenfehlerrate (\engl{Character Error Rate}, \kurz{CER}) beschreibt die A
\subsubsection{Berechnung}
Das Verfahren zur Ermittlung der CER gleicht im Wesentlichen dem der WER. Die mathematische Formel lautet somit wie folgt \mcite{karpinski2018metrics}:
Das Verfahren zur Ermittlung der CER gleicht im Wesentlichen dem der WER, bezieht sich allerdings auf die einzelnen Zeichen eines Wortes. Die mathematische Formel lautet wie folgt \mcite{karpinski2018metrics}:
\begin{center}
\[
@@ -61,4 +61,4 @@ wobei die einzelnen Komponenten folgende Größen darstellen:
Die CER fasst in einem Wert zusammen, wie viele Änderungen auf Zeichenebene notwendig sind, um aus dem erkannten Wort das Referenzwort zu bilden. Es ist dabei wie bei der WER nicht relevant, in welcher Reihenfolge diese Zeichen auftreten. Ebenso gibt es keine gesonderte Gewichtung für Ersetzungen, Löschungen oder Einfügungen, wodurch besonders bei kurzen Wörtern auch kleinere Abweichungen bereits zu einer hohen CER führen können.
Durch den detaillierten Vergleich der einzelnen Wörter auf Zeichenebene stellt die CER jedenfalls ein ausreichend gutes Komplement zur WER dar, um in den folgenden Vergleichen genutzt werden zu können.
Durch den detaillierten Vergleich der einzelnen Wörter auf Zeichenebene stellt die CER ein ausreichend gutes Komplement zur WER dar und wird in den folgenden Vergleichen ebenfalls verwendet werden.

View File

@@ -1,9 +1,9 @@
\section{Nachbearbeitung}
\label{grundlagen_postprocessing}
Das Themengebiet des Natural Language Processing beschäftigt sich mit der Interaktion zwischen menschlicher Sprache und Computern. Techniken aus der Informatik, Linguistik und dem maschinellen Lernen werden kombiniert, um mit menschlicher Sprache umzugehen und beispielsweise Textanalyse, Übersetzungen, Spracherkennung oder Dialogsysteme möglich zu machen \mcite{chowdhary2020natural}. Durch die große Aufmerksamkeit und die vielseitige Nutzung der Technologien -- von automatischer Rechtschreibkontrolle bis hin zu digitalen Sprachassistenten -- sowie dem Aufkommen von neuronalen Netzwerken wurden in diesem Forschungsgebiet immer wieder Fortschritte erzielt \mcite{kalyanathaya2019advances, church1995}
Auch die Nachbearbeitung der erkannten Textdaten spielt eine wesentliche Rolle. Hier werden Konzepte aus dem Themengebiet des Natural Language Processings angewandt, welches sich mit der Interaktion zwischen menschlicher Sprache und Computern beschäftigt. Durch die Kombination von Techniken aus der Informatik, Linguistik und dem maschinellen Lernen werden beispielsweise Textanalyse, Übersetzungen, Spracherkennung oder Dialogsysteme möglich \mcite{chowdhary2020natural}. Durch die große Aufmerksamkeit und die vielseitige Nutzung der Technologien sowie dem Aufkommen von neuronalen Netzwerken wurden in diesem Forschungsgebiet immer wieder Fortschritte erzielt \mcite{kalyanathaya2019advances, church1995}
Dadurch gibt es zahlreiche wissenschaftliche Ressourcen, die als Grundlage für die Vorgehensweise zur Interpretation und Extraktion relevanter Schlagworte aus den erkannten Freitextdaten dienen.
Dadurch gibt es zahlreiche wissenschaftliche Ressourcen, welche als Grundlage für die Vorgehensweise zur Interpretation und Extraktion relevanter Schlagworte aus den erkannten Freitextdaten dienen.
\subsection{Schlagworte}
\label{grundlagen_schlagworte}
@@ -13,11 +13,11 @@ Für die spätere Suche von Screenshots sollen relevante Schlagworte aus den erk
\subsection{Mehrsprachigkeit}
\label{grundlagen_mehrsprachigkeit}
Das Textverarbeitungssystem muss in der Lage sein, mehrsprachige Bilddateien einlesen und interpretieren zu können. 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. Für die weitere Beschreibung der generellen Vorgehensweise und Tests werden in den folgenden Schritten jedoch nur deutsche oder englische Inhalte verwendet.
Das Textverarbeitungssystem muss in der Lage sein, mehrsprachige Bilddateien einlesen und interpretieren zu können. 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. Für die weitere Beschreibung der generellen Vorgehensweise und Tests wird sich in den folgenden Schritten jedoch auf deutsche und englische Inhalte beschränkt.
\subsubsection{Filtern von Symbolen}
Bei der Texterkennung kann es vorkommen, dass grafische Elemente als diverse Unicode-Symbole erkannt werden. Wie in \autoref{fig:screenshot_postprocessing}, wird oftmals versucht, grafische Dekorationselemente textuell nachzubilden. Auch finden sich in den ungefilterten Ergebnisdaten oft Aufzählungszeichen wie "•" oder unterschiedliche Varianten von Bindestrichen "". Diese Zeichen sind gemäß Anwendungsanforderungen nicht relevant für die Schlagwortsuche und können somit entfernt \bzw ignoriert werden.
Bei der Texterkennung kann es vorkommen, dass grafische Elemente als diverse Unicode-Symbole erkannt werden. Wie in \autoref{fig:screenshot_postprocessing} versuchen Texterkennungssysteme oftmals, grafische Dekorationselemente textuell nachzubilden. Auch finden sich in den ungefilterten Ergebnisdaten Aufzählungszeichen wie "•" oder unterschiedliche Varianten von Bindestrichen "". Diese Zeichen sind gemäß Anwendungsanforderungen nicht relevant für die Schlagwortsuche und können somit entfernt \bzw ignoriert werden.
\begin{figure}[ht]
\centering

View File

@@ -1,17 +1,17 @@
\section{Vorverarbeitung}
\label{grundlagen_preprocessing}
Für optimale OCR-Ergebnisse ist es notwendig, die zu verarbeitenden Bilddaten zunächst für die Texterkennung vorzubereiten.
Im Folgenden wird beschrieben, wie die zu verarbeitenden Bilddaten für optimale OCR-Ergebnisse vorzubereiten sind.
\subsection{Eigenschaften von Screenshots}
\label{grundlagen_bild_eigenschaften}
Die zu verarbeitenden Bilder im Kontext dieser Bachelorarbeit sind ausschließlich digitale Bildschirmaufnahmen von grafischen Benutzeroberflächen. Es kann also angenommen werden, dass die Screenshots keine Transparenz aufweisen, die Perspektive der Aufnahme nicht verzerrt ist und im Normalfall nicht mit Bildrauschen zu rechnen ist, weshalb Rauschfilterung \mcite{kumar2017noise} nicht notwendig ist. Auch der Kontrast ist in den meisten Fällen ausreichend, 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 markiert, gruppiert oder getrennt werden. Nach Sichtung des zu verarbeitenden Bilddatensatzes fällt auf, dass manche Screenshots durch das Selektieren mit der Maus sehr eng abgeschnitten wurden. Das ist bei dem Preprocessing ebenfalls zu berücksichtigen. Eine beispielhafte Auswahl typischer Screenshots findet sich in \autoref{bild_eigenschaften_beispiel}.
Die zu verarbeitenden Bilder im Kontext dieser Bachelorarbeit sind ausschließlich digitale Bildschirmaufnahmen von grafischen Benutzeroberflächen. Es kann daher angenommen werden, dass die Screenshots keine Transparenz aufweisen, die Perspektive der Aufnahme nicht verzerrt ist und im Normalfall nicht mit Bildrauschen zu rechnen ist, weshalb Rauschfilterung \mcite{kumar2017noise} nicht notwendig ist. Auch wird angenommen, dass der Kontrast in den meisten Fällen ausreicht, die relevanten Inhalte zu erkennen. Weiters ist bei der Bildverarbeitung auf farbige Hintergrundflächen zu achten, mit deren Unterstützung Bildschirmelemente oft markiert, gruppiert oder getrennt werden. Nach Sichtung des zu verarbeitenden Bilddatensatzes fällt auf, dass manche Screenshots durch das Selektieren mit der Maus sehr eng abgeschnitten wurden. Das ist bei der Datenverarbeitung ebenfalls zu berücksichtigen. Eine beispielhafte Auswahl typischer Screenshots findet sich in \autoref{bild_eigenschaften_beispiel}.
\subsection{Optimieren von Daten für Tesseract}
\label{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}. 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.
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, während nur der gut lesbare textuelle Inhalt des Bildes übrig bleiben soll.
\begin{figure}[hb]
\centering

View File

@@ -1,9 +1,9 @@
\section{Überblick Texterkennungssysteme}
\label{grundlagen_texterkennungssysteme}
Optische Texterkennung wird in der Informationstechnik eingesetzt, um Textinhalte aus gedruckten oder digital rasterisierten Medien zu extrahieren. Dieses Verfahren kann für diverse Anwendungsgebiete genutzt werden, wie beispielsweise für Handschrifterkennung \mcite{rakshit2010recognition} oder für das Ablesen von Nummernschildern eines Autos \mcite{asif2014overview, anyline_home}. Auf dem Markt gibt es dafür bereits viele kommerzielle Komplettlösungen wie "Anyline" \mcite{anyline_home}, "IronOCR" \mcite{ironocr_home}, "Google Cloud Vision" \mcite{gcv_home}, "Amazon Textract" \mcite{textract_home} oder "Microsoft Azure Computer Vision" \mcite{azurevision_home}, die oftmals gute Ergebnisse mit geringen Fehlerraten erzielen und sich in bestehende Prozesse oder Anwendungen integrieren lassen \mcite{the_old_bailey_and_ocr, cc_platforms_comparison}.
Optische Texterkennung wird in der Informationstechnik eingesetzt, um Textinhalte aus gedruckten oder digital rasterisierten Medien zu extrahieren. Dieses Verfahren kann für diverse Anwendungsgebiete genutzt werden, wie beispielsweise für Handschrifterkennung \mcite{rakshit2010recognition} oder für das Ablesen von Nummernschildern eines Autos \mcite{asif2014overview, anyline_home}. Auf dem Markt gibt es dafür kommerzielle Komplettlösungen wie "Anyline" \mcite{anyline_home}, "IronOCR" \mcite{ironocr_home}, "Google Cloud Vision" \mcite{gcv_home}, "Amazon Textract" \mcite{textract_home} oder "Microsoft Azure Computer Vision" \mcite{azurevision_home}, die oftmals gute Ergebnisse mit geringen Fehlerraten erzielen und sich in bestehende Prozesse oder Anwendungen integrieren lassen \mcite{the_old_bailey_and_ocr, cc_platforms_comparison}.
Besonders Open-Source-Software zur Texterkennung erfreut sich großer Beliebtheit. So verfügt das GitHub-Repository der "Tesseract Open Source OCR Engine" (kurz: Tesseract) derzeit neben über 56000 Sternen auf GitHub auch über eine aktive Community, die das Projekt ständig weiterentwickelt \mcite{tessrepo}. Tesseract ist seit 2005 unter der Freie-Software-Lizenz "Apache 2.0" lizenziert \mcite{Smith2007} und basiert seit der Major-Version 4 auf einem neuronalen Netz, durch welches mithilfe von sprachspezifischen Trainingsdaten Texte in Bildern erkannt werden können \mcite{tessdoc}.
Ein Beispiel für Open-Source-Software zur Texterkennung ist die "Tesseract Open Source OCR Engine" (kurz: Tesseract). Das zugehörige Repository hat verfügt neben über 56000 Sternen auf GitHub auch über eine aktive Community, die das Projekt ständig weiterentwickelt \mcite{tessrepo}. Tesseract ist seit 2005 unter der Freie-Software-Lizenz "Apache 2.0" lizenziert \mcite{Smith2007} und basiert seit der Major-Version 4 auf einem neuronalen Netz, durch welches mithilfe von sprachspezifischen Trainingsdaten Texte in Bildern erkannt werden können \mcite{tessdoc}.
Heutige Texterkennungssysteme arbeiten oft mit einer Kombination aus neuralen Netzwerken und fortgeschrittenen Bildverarbeitungsalgorithmen, um Texte zu erkennen. Zahlreiche wissenschaftliche Werke wie beispielsweise \mcite{eikvil1993optical} oder \mcite{islam2017survey} erklären die grundlegende Funktionsweise von optischen Texterkennungswerkzeugen. Die genauen Schritte zur richtigen Vorbereitung der Bilddaten -- besonders in Bezug auf Screenshots -- werden jedoch oftmals nur oberflächlich behandelt.
Aktuelle Texterkennungssysteme arbeiten oft mit einer Kombination aus neuralen Netzwerken und fortgeschrittenen Bildverarbeitungsalgorithmen, um Texte zu erkennen. Zahlreiche wissenschaftliche Werke wie beispielsweise \mcite{eikvil1993optical} oder \mcite{islam2017survey} erklären die grundlegende Funktionsweise von optischen Texterkennungswerkzeugen. Die genauen Schritte zur richtigen Vorbereitung der Bilddaten -- besonders in Bezug auf Screenshots -- werden jedoch oftmals nur oberflächlich behandelt.

View File

@@ -1,12 +1,12 @@
\section{Algorithmen zur Nachbearbeitung}
\label{algorithmen_postprocessing}
Die extrahierten Textdaten aus den verarbeiteten Bilddaten werden später in einer schlagwortbasierten Suchfunktion verwendet. Um Redundanz innerhalb des Datensets zu reduzieren und falsch erkannte Ergebnisdaten zu verhindern, müssen die Ergebnisdaten der Texterkennung im Rahmen der Nachbearbeitung (\engl{Postprocessing}) gemäß \autoref{grundlagen_postprocessing} weiterverarbeitet werden.
Die extrahierten Textdaten aus den verarbeiteten Bilddaten werden in einer schlagwortbasierten Suchfunktion verwendet. Um Redundanz innerhalb des Datensets zu reduzieren und falsch erkannte Ergebnisdaten zu verhindern, müssen die Ergebnisdaten der Texterkennung im Rahmen der Nachbearbeitung (\engl{Postprocessing}) gemäß \autoref{grundlagen_postprocessing} weiterverarbeitet werden.
\subsection{Filterung anhand der Genauigkeit}
\label{algorithmen_confidence}
Tesseract stellt im Rahmen der Texterkennung neben den erkannten Texten auch die jeweiligen Metadaten zur Verfügung. Auch die geschätzte Genauigkeit (\engl{Confidence}) wird für jedes erkannte Wort mit angegeben. Sie bestimmt, mit welcher Sicherheit ein Texterkennungssystem das jeweilige Wort erkannt hat, wobei Wörter mit hoher Confidence eher richtig, mit niedriger Confidence eher falsch erkannt wurden.
Tesseract stellt im Rahmen der Texterkennung neben den erkannten Texten die jeweiligen Metadaten zur Verfügung. Auch die geschätzte Genauigkeit (\engl{Confidence}) wird für jedes erkannte Wort mit angegeben. Sie bestimmt, mit welcher Sicherheit ein Texterkennungssystem das jeweilige Wort erkannt hat, wobei Wörter mit hoher Confidence eher richtig, mit niedriger Confidence eher falsch erkannt wurden.
Wie in \autoref{fig:screenshot_postprocessing_confidence} gezeigt, prüft der Confidence-Filter die jeweiligen Wörter auf ihre Metadaten und verwirft jene, deren Confidence unter einem fixen Schwellenwert liegt. Je nach Einstellung \bzw "Härte" des Filters wird die Anzahl der falsch erkannten Inhalte innerhalb der Schlagwortmenge drastisch reduziert. Ist der Filter zu streng eingestellt, werden jedoch insgesamt weniger Worte in die Ergebnisse mit aufgenommen und es kann vorkommen, dass auch ursprünglich korrekt erkannte Wörter aufgrund eines niedrigen Confidence-Wertes verworfen werden.
@@ -26,7 +26,7 @@ Wie in \autoref{fig:screenshot_postprocessing_confidence} gezeigt, prüft der Co
\subsection{Normalisierung}
\label{algorithmen_normalisierung}
Um die aus der Texterkennung gewonnenen Daten zunächst für die weitere Filterung vorzubereiten, ist es sinnvoll, die Redundanz der Daten möglichst zu reduzieren und die einzelnen Wörter zu normalisieren \bzw zu standardisieren. Beispielsweise kann durch das Umwandeln aller Textdaten in Kleinbuchstaben die Variation der Daten eingeschränkt werden, ohne jedoch für die Suche relevante Information zu verlieren. Diese Methode wurd auch in \autoref{fig:screenshot_postprocessing_normalisierung} angewandt.
Um die aus der Texterkennung gewonnenen Daten zunächst für die weitere Filterung vorzubereiten, ist es sinnvoll, die Redundanz der Daten möglichst zu reduzieren und die einzelnen Wörter zu normalisieren. Beispielsweise kann durch das Umwandeln aller Textdaten in Kleinbuchstaben die Variation der Daten eingeschränkt werden, ohne jedoch für die Suche relevante Information zu verlieren. Diese Methode wurd auch in \autoref{fig:screenshot_postprocessing_normalisierung} angewandt.
\begin{figure}[ht]
\centering
@@ -41,10 +41,10 @@ Um die aus der Texterkennung gewonnenen Daten zunächst für die weitere Filteru
\label{fig:screenshot_postprocessing_normalisierung}
\end{figure}
\subsection{Vermeidung von Duplikaten}
\subsection{Entfernung von Duplikaten}
\label{algorithmen_duplikate}
Nach der Normalisierung werden Duplikate innerhalb der erkannten Textdaten entfernt, um die Effizienz der nachfolgenden Filterverfahren zu erhöhen. In den Daten aus \autoref{fig:screenshot_postprocessing_duplikate} wird die Liste an erkannten Wörtern stark gekürzt und die Redundanz damit verringert. Es treten keine Duplikate mehr auf.
Nach der Normalisierung werden Duplikate innerhalb der erkannten Textdaten entfernt, um die Effizienz der nachfolgenden Filterverfahren zu erhöhen. In den Daten aus \autoref{fig:screenshot_postprocessing_duplikate} wird die Liste an erkannten Wörtern stark gekürzt und die Redundanz damit verringert.
\begin{figure}[ht]
\centering

View File

@@ -4,9 +4,9 @@
Wie bereits in \autoref{grundlagen_preprocessing} beschrieben, werden die zu verarbeitenden Bilder bei der Vorverarbeitung (\engl{Preprocessing}) für die Texterkennung vorbereitet, um die Qualität der erkannten Textdaten zu verbessern.
Verwendet man moderne Tesseract-Implementierungen, sind in diesen oft bereits rudimentäre Bildverarbeitungswerkzeuge verfügbar \mcite{tessdoc}. Mit diesen Werkzeugen werden die eingespeisten Bilder -- sofern nicht bereits im richtigen Format -- automatisch für die Texterkennung vorbereitet. Ohne weitere Einstellungen zu treffen, bewirkt diese Bildverarbeitung ein Umwandeln der Eingangsgrafiken in ein meist gut für Tesseract geeignetes Bild. Es ist jedoch zu beachten, dass die Bildverarbeitungsschritte individuell auf die erwarteten Eingangsdaten anzupassen sind. So können die Bilddaten den in \autoref{bild_optimal} definierten optimalen Tesseract-Eingangsdaten angenähert werden.
In einigen Tesseract-Implementierungen sind bereits rudimentäre Bildverarbeitungswerkzeuge verfügbar \mcite{tessdoc}. Mit diesen Werkzeugen werden die eingespeisten Bilder -- sofern nicht bereits im richtigen Format vorhanden -- automatisch für die Texterkennung vorbereitet. Ohne weitere Einstellungen zu treffen, bewirkt diese Bildverarbeitung ein Umwandeln der Eingangsgrafiken in ein meist gut für Tesseract geeignetes Bild. Es ist jedoch zu beachten, dass die Bildverarbeitungsschritte individuell auf die erwarteten Eingangsdaten anzupassen sind. So können die Bilddaten den in \autoref{bild_optimal} definierten optimalen Tesseract-Eingangsdaten angenähert werden.
Die folgenden Preprocessing-Schritte basieren auf der empfohlenen Vorgehensweise zur Verbesserung der Output-Qualität laut Tesseract-Dokumentation \mcite{tessdoc}. Gemäß den obigen Annahmen werden jedoch weder perspektivische Fehler, noch ein eventuelles Rauschen korrigiert. Konkret werden folgende Bildverarbeitungsschritte verglichen:
Die folgenden Vorverarbeitungsschritte basieren auf der empfohlenen Vorgehensweise zur Verbesserung der Output-Qualität laut Tesseract-Dokumentation \mcite{tessdoc}. Gemäß den Annahmen in \autoref{grundlagen} werden jedoch weder perspektivische Fehler, noch ein eventuelles Rauschen korrigiert.
\subsection{Resampling}
\label{algorithmen_resampling}
@@ -50,10 +50,12 @@ Befindet sich Text zu nah am Rand des Bildes, wird dieser nicht immer richtig er
\label{fig:rahmen_groß}
\end{figure}
Für die weitere Vorgehensweise ist es sinnvoll, alle Bilder mit einem schmalen Rahmen zu umgeben. So wird sichergestellt, dass sich die Texte nicht zu nah am Bildrand befinden und Fehler in der Texterkennung werden reduziert.
\subsection{Binarisierung}
\label{algorithmen_binarisierung}
Das Erzeugen eines Binärbildes ist durch Anwendung von Segmentierungsverfahren möglich. Schwellenwertverfahren (\engl{Thresholding}) bilden eine Untergruppe der Segmentierungsverfahren und werden genutzt, um Graustufenbilder Pixel für Pixel in binarisierte Ergebnisbilder mit zwei Segmenten, also einem Vordergrund und einem Hintergrund umzuwandeln. Der dazu notwendige Schwellenwert kann entweder fest definiert oder anhand von verschiedensten Algorithmen automatisch \bzw halbautomatisch ermittelt werden. Ziel ist es, durch die Binarisierung textuelle Bildinhalte unabhängig von der eigentlichen Vorder- und Hintergrundfarbe mit ausreichendem Kontrast darzustellen. Dadurch ist das Texterkennungssystem in der Lage, die einzelnen Textelemente und deren Inhalte besser zu identifizieren und zu verarbeiten. ImageMagick bietet eine Vielzahl an Thresholding-Algorithmen, von denen im Folgenden jene ausgewählt wurden:
Das Erzeugen eines Binärbildes ist durch Anwendung von Segmentierungsverfahren möglich. Schwellenwertverfahren (\engl{Thresholding}) bilden eine Untergruppe der Segmentierungsverfahren und werden genutzt, um Graustufenbilder Pixel für Pixel in binarisierte Ergebnisbilder mit zwei Segmenten, also einem Vordergrund und einem Hintergrund umzuwandeln. Der dazu notwendige Schwellenwert kann entweder fest definiert oder anhand von verschiedensten Algorithmen automatisch \bzw halbautomatisch ermittelt werden. Ziel ist es, durch die Binarisierung textuelle Bildinhalte unabhängig von der eigentlichen Vorder- und Hintergrundfarbe mit ausreichendem Kontrast darzustellen. Dadurch ist das Texterkennungssystem in der Lage, die einzelnen Textelemente und deren Inhalte besser zu identifizieren und zu verarbeiten. ImageMagick bietet eine Vielzahl an Schwellenwert-Algorithmen, von denen nachfolgend jene genauer beschrieben werden:
\begin{itemize}
\item Feste Schwellenwertmethode
@@ -68,7 +70,7 @@ Das Erzeugen eines Binärbildes ist durch Anwendung von Segmentierungsverfahren
Ein häufig für die Bildsegmentierung genutztes Verfahren ist die feste Schwellenwertmethode, im Englischen 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.
Durch den globalen, fixen Schwellenwert ohne Berücksichtigung von Pixelnachbarschaften \etc weist das fixe Schwellenwertfahren einen geringen Berechnungsaufwand und daher eine hohe Performance auf \mcite{sahoo1988survey}. 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.
Durch den globalen, fixen Schwellenwert ohne Berücksichtigung von Pixelnachbarschaften weist das fixe Schwellenwertfahren einen geringen Berechnungsaufwand und daher eine hohe Performance auf \mcite{sahoo1988survey}. 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} und \autoref{thresholding_fixed_vergleich_schlecht} ersichtlich.
\begin{figure}[ht]
\centering
@@ -91,7 +93,7 @@ Durch den globalen, fixen Schwellenwert ohne Berücksichtigung von Pixelnachbars
\subsection{Adaptive Schwellenwertmethode}
\label{thresholding_adaptive}
Die adaptive Schwellenwertmethode gehört zu den halbautomatischen Schwellenwertalgorithmen. Bei diesem Verfahren wird der Schwellenwert auf Basis der lokalen Eigenschaften eines Bildbereichs angepasst, der durch die manuell festgelegte sogenannte "Blockgröße" definiert wird. Diese bestimmt die Seitenlänge des Rechtecks, innerhalb dessen ein fester Schwellenwert ermittelt wird \mcite{sahoo1988survey}. Durch diese dynamische Berechnung können im Gegensatz zur \hyperref[thresholding_fixed]{festen Schwellenwertmethode} verschiedenfarbige Texte auf Hintergründen unterschiedlicher Helligkeit besser abgegrenzt werden und die Menge an erkanntem Text wird erhöht, wie in \autoref{thresholding_adaptive_vergleich_gut} ersichtlich. Wird die Blockgröße falsch gewählt, können jedoch Artefakte auftreten, welche bei entsprechender Menge, wie im Falle von \autoref{thresholding_adaptive_vergleich_schlecht}, die Texterkennung negativ beeinflusst.
Die adaptive Schwellenwertmethode gehört zu den halbautomatischen Schwellenwertalgorithmen. Bei diesem Verfahren wird der Schwellenwert auf Basis der lokalen Eigenschaften eines Bildbereichs angepasst, der durch die manuell festgelegte sogenannte "Blockgröße" definiert wird. Diese bestimmt die Seitenlänge des Rechtecks, innerhalb dessen ein fester Schwellenwert ermittelt wird. Durch diese dynamische Berechnung können im Gegensatz zur \hyperref[thresholding_fixed]{festen Schwellenwertmethode} verschiedenfarbige Texte auf Hintergründen unterschiedlicher Helligkeit besser abgegrenzt werden und die Menge an erkanntem Text wird erhöht, wie in \autoref{thresholding_adaptive_vergleich_gut} ersichtlich. Wird die Blockgröße falsch gewählt, können jedoch Artefakte auftreten, welche bei entsprechender Menge, wie im Falle von \autoref{thresholding_adaptive_vergleich_schlecht}, die Texterkennung negativ beeinflussen \mcite{sahoo1988survey}.
\begin{figure}[ht]
\centering
@@ -177,7 +179,7 @@ Enthält ein Bild jedoch starkes Hintergrundrauschen oder weist es lokale Hellig
\subsection{Schwellenwertmethode nach Kapur}
\label{thresholding_kapur}
Die Schwellenwertmethode nach Kapur, Sahoo und Wong \mcite{kapur1985new} zielt darauf ab, einen Schwellenwert zu finden, der die Entropie zwischen den Vorder- und Hintergrundregionen maximiert. Wie in \autoref{thresholding_kapur_vergleich_gut} und \autoref{thresholding_kapur_vergleich_schlecht} zu sehen, liefert die Verwendung dieses Schwellenwertverfahrens gute Ergebnisse bei Bildern mit starker Varianz der Vorder- und Hintergrundkontraste \bzw einer breiten Helligkeitsverteilung.
Die Schwellenwertmethode nach Kapur \mcite{kapur1985new} zielt darauf ab, einen Schwellenwert zu finden, der die Entropie zwischen den Vorder- und Hintergrundregionen maximiert. Wie in \autoref{thresholding_kapur_vergleich_gut} und \autoref{thresholding_kapur_vergleich_schlecht} zu sehen, liefert die Verwendung dieses Schwellenwertverfahrens gute Ergebnisse bei Bildern mit starker Varianz der Vorder- und Hintergrundkontraste \bzw einer breiten Helligkeitsverteilung.
\begin{figure}[ht]
\centering

View File

@@ -1,9 +1,9 @@
\section{Texterkennungssystem}
\label{konzept_texterkennungssystem}
Wie bereits in \autoref{grundlagen_texterkennungssysteme} beschrieben, ist die Nutzung vieler OCR-Anwendungen \bzw Dienstleistungen kostenpflichtig und die genaue innere Vorgehensweise dieser Programme ist nicht öffentlich bekannt \mcite{textract_pricing, gcv_pricing, azurevision_pricing}. Aufgrund dieser Tatsachen ist die Wahl des Texterkennungssystems für die prototypische Implementierung dieser Bachelorarbeit auf die quelloffene und kostenlose Tesseract Open Source OCR Engine gefallen.
Wie bereits in \autoref{grundlagen_texterkennungssysteme} beschrieben, ist die Nutzung vieler OCR-Anwendungen \bzw Dienstleistungen kostenpflichtig und die genaue innere Vorgehensweise dieser Programme ist nicht öffentlich bekannt \mcite{textract_pricing, gcv_pricing, azurevision_pricing}. Aufgrund dieser Tatsachen wird als Texterkennungssystems für die prototypische Implementierung dieser Bachelorarbeit die quelloffene und kostenlose Tesseract Open Source OCR Engine verwendet.
\section{Bildbearbeitungswerkzeug}
\label{konzept_bildbearbeitungswerkzeug}
Als Werkzeug für die Durchführung der notwendigen Bildbearbeitungsschritte wurde aufgrund persönlicher Erfahrungen die Softwarebibliothek "ImageMagick" \mcite{imagemagick} gewählt. Sie ist umfassend dokumentiert, flexibel und kann Dank der Unterstützung für eine Vielzahl von Programmiersprachen direkt in Programme eingebunden werden. Viele in der Bildverarbeitung genutzte Operationen sind bereits implementiert, was schnelles Prototyping vereinfacht. Dadurch ist die Bibliothek eine ideale Wahl für die Realisierung von Bildbearbeitungsschritten in der prototypischen Implementierung, sie kann jedoch auch durch eine andere Implementierung ersetzt werden.
Als Werkzeug für die Durchführung der notwendigen Bildbearbeitungsschritte wurde aufgrund persönlicher Erfahrungen die Softwarebibliothek "ImageMagick" \mcite{imagemagick} gewählt. Sie ist umfassend dokumentiert, flexibel und kann aufgrund der Unterstützung für eine Vielzahl von Programmiersprachen direkt in Programme eingebunden werden. Viele für die Bildverarbeitung notwendige Operationen sind bereits implementiert, was schnelles Prototyping vereinfacht. Deshalb wird die Bibliothek für die Realisierung von Bildbearbeitungsschritten in der prototypischen Implementierung verwendet, kann jedoch auch durch eine andere Implementierung ersetzt werden.

View File

@@ -1,7 +1,7 @@
\chapter{Implementierung}
\chapter{Prototypische Implementierung}
\label{implementierung}
In der prototypischen Implementierung werden die in \autoref{grundlagen} \bzw \autoref{konzept} angeführten Algorithmen zu Verarbeitungsketten zusammengefügt. Anhand einer Stichprobe wird anschließend ein automatisierter Bericht generiert, welche detaillierte Informationen über Gesamtergebnisse der Texterkennung mit den jeweiligen Bildern und den verwendeten Algorithmen in Bezug setzt.
In der prototypischen Implementierung werden die in \autoref{grundlagen} \bzw \autoref{konzept} angeführten Algorithmen zu Verarbeitungsketten zusammengefügt. Anhand einer Stichprobe wird ein automatisierter Bericht generiert, welcher detaillierte Informationen über Gesamtergebnisse der Texterkennung mit den jeweiligen Bildern und den verwendeten Algorithmen in Bezug setzt.
\section{Komponenten und Bibliotheken}
\label{components}
@@ -10,7 +10,7 @@ Die für die prototypische Implementierung verwendeten Bibliotheken stellen Komp
\begin{figure}[ht]
\centering
\includegraphics[width=.9\textwidth]{include/flowcharts/flow_overview.png}
\includegraphics[width=\textwidth]{include/flowcharts/flow_overview.png}
\caption{Beispielhafter Ablauf eines Texterkennungsprogramms}
\label{fig:overview_diagram}
\end{figure}
@@ -18,7 +18,7 @@ Die für die prototypische Implementierung verwendeten Bibliotheken stellen Komp
\subsection{Fremdbibliotheken}
\label{components_external}
In der prototypischen Implementierung, entwickelt in \csharp .NET, wurden in Referenz an die in \autoref{grundlagen} vorgestellten Technologien und Werkzeuge folgende NuGet-Bibliotheken als Basis für die Implementierung verwendet.
Die prototypische Implementierung erfolgt in \csharp .NET. Entsprechend der in \autoref{grundlagen} und \autoref{konzept} vorgestellten Technologien und Werkzeuge werden folgende NuGet-Bibliotheken als Basis für die Implementierung verwendet:
\begin{itemize}
\item\textbf{Magick.NET} \mcite{nuget_magicknet}\\Version: 13.1.0\\Lizenz: Apache-2.0\\
@@ -138,14 +138,14 @@ Für den Ablauf der Bildverarbeitung und der anschließenden Ergebnisfilterung w
\begin{figure}[ht]
\centering
\includegraphics[width=.9\textwidth]{include/flowcharts/flow_preprocessing.png}
\includegraphics[width=\textwidth]{include/flowcharts/flow_preprocessing.png}
\caption{Beispielhafter Ablauf der Vorverarbeitungskette}
\label{fig:preprocessor_diagram}
\end{figure}
\begin{figure}[ht]
\centering
\includegraphics[width=.9\textwidth]{include/flowcharts/flow_postprocessing.png}
\includegraphics[width=\textwidth]{include/flowcharts/flow_postprocessing.png}
\caption{Beispielhafter Ablauf der Nachbearbeitungskette}
\label{fig:postprocessor_diagram}
\end{figure}
@@ -168,7 +168,7 @@ var preprocessing = new ProcessorChainConfiguration<MagickImage, MagickImage>()
\label{prg:preprocessor_definition}
\end{program}
Wurde der übergebene Screenshot vom Texterkennungssystem verarbeitet, müssen nun die Ergebnisse gefiltert werden. Dazu werden zunächst die Metadaten der einzelnen Wörter betrachtet und alle Elemente mit einer Confidence unter einem Schwellenwert von 50\% verworfen. Danach werden die erkannten Texte mittels der \csharp-Funktion \lstinline{ToLower()} normalisiert und anschließend auf Duplikate untersucht. Wurden alle Duplikate verworfen, werden die Wörter mittels sprachabhängigen Regular Expressions untersucht. Gemäß den Rahmenbedingungen in \autoref{grundlagen_mehrsprachigkeit} wurde ein simpler englischer (\lstinline|[\w'\-]{2,}|) sowie deutscher (\lstinline|[\w'\-äöüÄÖÜß]{2,}|) Sprachfilter festgelegt.
Nach Verarbeitung des übergebenen Screenshots durch das Texterkennungssystem werden die Ergebnisse gefiltert. Dazu werden zunächst die Metadaten der einzelnen Wörter betrachtet und alle Elemente mit einer Confidence unter einem Schwellenwert von 50\% verworfen. Danach werden die erkannten Texte mittels der \csharp-Funktion \lstinline{ToLower()} normalisiert und anschließend auf Duplikate untersucht. Wurden alle Duplikate verworfen, werden die Wörter mittels sprachabhängigen Regular Expressions untersucht. Gemäß den Rahmenbedingungen in \autoref{grundlagen_mehrsprachigkeit} wird ein simpler englischer (\lstinline|[\w'\-]{2,}|) sowie deutscher (\lstinline|[\w'\-äöüÄÖÜß]{2,}|) Sprachfilter festgelegt.
\begin{program}[!ht]
\begin{CsCode}[numbers=none]
@@ -184,7 +184,7 @@ var postprocessing = new ProcessorChainConfiguration<ScanResult, ScanResult>()
\subsection{Lookup}
Die "Lookup" Bibliothek abstrahiert das Speichern von Schlüssel-Wert-Paaren. Dabei kann flexibel zwischen verschiedenen Speicherimplementierungen gewechselt werden. So ist es beispielsweise möglich, die Werte in einer Listenstruktur im Arbeitsspeicher, in einer Datei oder -- mittels der EntityFramework-Bibliothek, welche von der .NET Foundation entwickelt wird -- in einer Datenbank persistent abzulegen. Unabhängig von der Ablagestruktur im Hintergrund können Lookups mittels einer gemeinsamen Schnittstelle, abgebildert in Programm \ref{prg:lookup_interface}, manipuliert werden.
Die "Lookup" Bibliothek abstrahiert das Speichern von Schlüssel-Wert-Paaren. Dabei kann flexibel zwischen verschiedenen Speicherimplementierungen gewechselt werden. So ist es beispielsweise möglich, die Werte in einer Listenstruktur im Arbeitsspeicher, in einer Datei oder -- mittels der .NET EntityFramework-Bibliothek -- in einer Datenbank persistent abzulegen. Unabhängig von der Ablagestruktur im Hintergrund können Lookups mittels einer gemeinsamen Schnittstelle, abgebildet in Programm \ref{prg:lookup_interface}, manipuliert werden.
\begin{program}[!ht]
\begin{CsCode}[numbers=none]
@@ -210,12 +210,12 @@ IDisposable
\subsection{Optische Texterkennung}
Die OCR-Bibliothek beinhaltet elementare Funktionen für die Texterkennung. Sie enthält Funktionen zur Bearbeitung von Bildern mittels Magick.NET inklusive anschließender Verarbeitung mittels Tesseract. Kernkomponenten wie das Texterkennungssystem werden automatisch auf Basis der Eingabeparameter konfiguriert und die Verwendung der Ergebnisdaten in externen Programmteilen wird durch die Zurverfügungstellung von Datenmodellen für die Ergebnisdaten vereinfacht. Außerdem enthält die Bibliothek eine Reihe von vordefinierten Verarbeitungsketten \bzw Prozessoren für die Bild- und Textverarbeitung.
Die OCR-Bibliothek beinhaltet elementare Funktionen für die Texterkennung. Sie enthält Funktionen zur Bearbeitung von Bildern mittels Magick.NET inklusive anschließender Verarbeitung mittels Tesseract. Kernkomponenten wie das Texterkennungssystem werden automatisch auf Basis der Eingabeparameter konfiguriert und die Verwendung der Ergebnisdaten in externen Programmteilen wird durch die zur Verfügung gestellten Modelle für die Ergebnisdaten vereinfacht. Außerdem enthält die Bibliothek eine Reihe von vordefinierten Verarbeitungsketten \bzw Prozessoren für die Bild- und Textverarbeitung.
\subsection{Automatische Berichterstellung}
\label{components_reportgenerator}
Mithilfe des ReportGenerator-Frameworks wird die automatische Berichterstellung für unterschiedlichste Ausgabeformate abstrahiert. Durch die mitgelieferten Schnittstellendefinitionen ist es möglich, eigene Ausgabeformate zu definieren. Der gesamte Funktionsumfang des ReportGenerators, beispielsweise das Erstellen von Tabellen oder das Anlegen und Überschriften, kann durch die Implementierung von Interfaces wie Programm \ref{prg:reportgenerator_interface} an die jeweilige Syntax und Dokumentstruktur angepasst werden.
Mithilfe des ReportGenerator-Frameworks wird die automatische Berichterstellung für unterschiedlichste Ausgabeformate abstrahiert. Durch die mitgelieferten Schnittstellendefinitionen ist es möglich, eigene Ausgabeformate zu definieren. Der gesamte Funktionsumfang des ReportGenerators, beispielsweise das Erstellen von Tabellen oder das Anlegen von Überschriften, kann durch die Implementierung von Interfaces wie in Programm \ref{prg:reportgenerator_interface} an die jeweilige Syntax und Dokumentstruktur angepasst werden.
\begin{program}[!ht]
\begin{CsCode}[numbers=none]
@@ -244,19 +244,19 @@ Als Ausgangsdaten für die Durchführung wurde eine zufällige Auswahl an Dokume
\begin{figure}[ht]
\centering
\fbox{\includegraphics[width=.7\textwidth]{include/screenshots/driver_SEL_Options_002.png}}
\fbox{\includegraphics[width=.5\textwidth]{include/screenshots/driver_SEL_Options_002.png}}
\caption{Ein gut für die Texterkennung geeigneter Screenshot. Die wesentlichen Inhalte weisen einen guten Kontrast zum Hintergrund auf und befinden sich in Bereichen mit gleichmäßiger Helligkeit.}
\label{fig:screenshot_beispiel_gut}
\end{figure}
\begin{figure}[ht]
\centering
\fbox{\includegraphics[width=.7\textwidth]{include/screenshots/editor_startpage_project-exist_001.png}}
\fbox{\includegraphics[width=\textwidth]{include/screenshots/editor_startpage_project-exist_001.png}}
\caption{Ein schlecht lesbarer Screenshot. Aufgrund der vielen Symbole und der bunten Flächen stellt dieses Bild eine Herausforderung für das Texterkennungssystem dar.}
\label{fig:screenshot_beispiel_schlecht}
\end{figure}
Die textuellen Inhalte aller ausgewählten Bilder wurden anschließend manuell extrahiert und für den programmatischen Vergleich in einer Datei im selben Verzeichnis wie die Quellbilddatei festgehalten. Ein Beispiel dafür ist der Screenshot "zrs\_ZAMS\_filter-alarmgroup\_001" in \autoref{fig:screenshot_verschlagwortet}, welcher insgesamt 15 verschiedene Wörter beinhaltet.
Die textuellen Inhalte aller ausgewählten Bilder wurden manuell extrahiert und für den programmatischen Vergleich in einer Datei im selben Verzeichnis wie die Quellbilddatei festgehalten. Ein Beispiel dafür ist der Screenshot "zrs\_ZAMS\_filter-alarmgroup\_001" in \autoref{fig:screenshot_verschlagwortet}, welcher insgesamt 15 verschiedene Wörter beinhaltet.
\begin{figure}[ht]
\centering
@@ -277,7 +277,7 @@ Die prototypische Implementierung besteht neben den oben genannten Komponenten a
\subsection{Texterkennung}
Zu Beginn der Ausführung des Kommandozeilenprogramms wird für jedes zu verarbeitende Bild abhängig von den definierten Schwellenwertverfahren eine Reihe von Prozessoren angelegt. Dazu wurde der statische Teil der Bildverarbeitungskette gemäß \autoref{processor_chain_image} innerhalb der "EvaluationProcessor" Klasse definiert, wie in Programm \ref{prg:processor_definition_dynamic} auszugsweise dargestellt. Lediglich die zu evaluierenden Prozessoren für die jeweiligen Schwellwertverfahren können außerhalb der Klasse dynamisch definiert werden. Der EvaluationProcessor legt die erzeugten Ergebnisdaten, bestehend aus den gefundenen Wörtern und zugehörigen Metadaten wie die Confidence, auf Dateiebene ab. Um überprüfen zu können, welches Bild schlussendlich an das Texterkennungssystem übergeben wurde, werden auch die verarbeiteten Bilder nach der Binarisierung gespeichert.
Zu Beginn der Ausführung des Kommandozeilenprogramms wird für jedes zu verarbeitende Bild abhängig von den definierten Schwellenwertverfahren eine Reihe von Prozessoren angelegt. Dazu wird der statische Teil der Bildverarbeitungskette gemäß \autoref{processor_chain_image} innerhalb der "EvaluationProcessor" Klasse definiert, wie in Programm \ref{prg:processor_definition_dynamic} auszugsweise dargestellt. Lediglich die zu evaluierenden Prozessoren für die jeweiligen Schwellwertverfahren können außerhalb der Klasse dynamisch definiert werden. Der EvaluationProcessor legt die erzeugten Ergebnisdaten, bestehend aus den gefundenen Wörtern und zugehörigen Metadaten wie die Confidence, auf Dateiebene ab. Um überprüfen zu können, welches Bild an das Texterkennungssystem übergeben wird, werden auch die verarbeiteten Bilder nach der Binarisierung gespeichert.
\begin{program}[!ht]
\begin{CsCode}[numbers=none]
@@ -306,7 +306,7 @@ Ist die Erstellung der Bildbearbeitungsprozessoren abgeschlossen, wird jeder ein
\subsection{Vergleich mit Soll-Daten}
Wurden die in den jeweiligen Screenshots erkannten Textdaten abgelegt, werden diese Daten im zweiten Kommandozeilenprogramm "ReportGenerator" nun mit den manuell verschlagworteten Daten verglichen und die Ergebnisse in einen Bericht (\engl{Report}) gespeichert.
Wurden die in den jeweiligen Screenshots erkannten Textdaten abgelegt, werden diese Daten im zweiten Kommandozeilenprogramm "ReportGenerator" mit den manuell verschlagworteten Daten verglichen und die Ergebnisse in einen Bericht (\engl{Report}) gespeichert.
Als zentrale Komponente für den Vergleich spielt die Berechnung der in \autoref{metriken} erklärten Metriken eine wesentliche Rolle. Wie in Programm \ref{prg:distance_levenshtein} ersichtlich, wird die Distanz zwischen zwei \csharp-Enumerables, seien es zwei Strings oder zwei Listen, über das Verfahren nach Levenshtein berechnet.
@@ -352,4 +352,4 @@ public static double GetDistance<T>(T reference, T? hypothesis)
\label{prg:distance_levenshtein}
\end{program}
Nach der Ermittlung der jeweiligen Distanzen auf Wort- \bzw Bildbasis werden sie mit den jeweiligen Ursprungsbildern, Prozessoren und den verwendeten Algorithmen in Bezug gesetzt. Die so aufbereiteten Ergebnisse werden anschließend an den ReportGenerator übergeben und in einen Bericht zusammengefasst.
Nach der Ermittlung der jeweiligen Distanzen auf Wort- \bzw Bildbasis werden sie mit den jeweiligen Ursprungsbildern, Prozessoren und den verwendeten Algorithmen in Bezug gesetzt. Die so aufbereiteten Ergebnisse werden anschließend an den ReportGenerator übergeben und in einem Bericht zusammengefasst.

View File

@@ -1,16 +1,16 @@
\chapter{Evaluierung}
\label{evaluierung}
Nachdem die vorbereiteten Bilddaten an das Texterkennungssystem gemäß \autoref{implementierung} übergeben und die Ergebnisse ermittelt wurden, werden die extrahierten Textdaten nun mit den manuell erstellten "Soll-Daten" verglichen. Anhand der Statistik kann festgestellt werden, welche Vorgehensweise zu der besten Qualität führt. Um die Ergebnisse zu visualisieren, erstellt der in \autoref{components_reportgenerator} beschriebene "ReportGenerator" auf Basis der Bilddateinamen automatisch einen Bericht mit den Vergleichsdaten in Tabellenform. Der erstellte Bericht wird in verschiedene Kategorien unterteilt.
Nachdem die vorbereiteten Bilddaten an das Texterkennungssystem gemäß \autoref{implementierung} übergeben und die Ergebnisse ermittelt wurden, werden die extrahierten Textdaten mit den manuell erstellten "Soll-Daten" verglichen. Anhand der Statistik kann festgestellt werden, welche Vorgehensweise zu der besten Qualität führt. Um die Ergebnisse zu visualisieren, erstellt der in \autoref{components_reportgenerator} beschriebene "ReportGenerator" auf Basis der Bilddateinamen automatisch einen Bericht mit den Vergleichsdaten in Tabellenform. Der erstellte Bericht wird in verschiedene Kategorien unterteilt.
\section{Verarbeitungsstatistik}
In der Sektion "Processor Stats" (siehe \autoref{tbl:report_detailed_processorstats}), welche die Verarbeitungsstatistik enthält, wird die Gesamtwortfehlerrate pro Bild mit dem jeweiligen Prozessor in Verhältnis gesetzt. Anhand der Metriken ist zu erkennen, dass gewisse Bilder aufgrund ihrer Eigenschaften (niedrige Auflösung, schwierige Farbgebung, etc.) von allen Prozessoren gleichermaßen schlecht erkannt werden. Jedoch fallen auch Spezialfälle auf: So werden beispielsweise die Textdaten in den Dialog-Knöpfen des Bilds "worldview\_zoom\_steps\_001" Dank eines falsch gewählten Schwellenwerts unkenntlich gemacht. Die Texterkennung schlägt fehl.
In der Sektion "Processor Stats" (siehe \autoref{tbl:report_detailed_processorstats}), welche die Verarbeitungsstatistik enthält, wird die Gesamtwortfehlerrate pro Bild mit dem jeweiligen Prozessor in Verhältnis gesetzt. Anhand der Metriken ist zu erkennen, dass gewisse Bilder aufgrund ihrer Eigenschaften (niedrige Auflösung, schwierige Farbgebung) von allen Prozessoren gleichermaßen schlecht erkannt werden. Jedoch fallen auch Spezialfälle auf: So werden beispielsweise die Textdaten in den Dialog-Knöpfen des Bilds "worldview\_zoom\_steps\_001" aufgrund eines falsch gewählten Schwellenwerts unkenntlich gemacht. Die Texterkennung schlägt fehl.
\begin{table}[!ht]
\centering
\input{include/figures/fig_AutoThresholdProcessor(Kapur)_1.tex}
\caption{Auszug aus der "Processor Stats" Tabelle im generierten Bericht. Die Eigenschaften der Originalbilder im Vergleich zu den verarbeiteten Bildern geben Aufschluss über die Arbeitsweise und Effektivität des Prozessors.}
\caption{Auszug aus der "Processor Stats" Tabelle im generierten Bericht. Die Eigenschaften der Originalbilder im Vergleich zu den verarbeiteten Bildern geben Aufschluss über die Arbeitsweise und Effektivität des Prozessors. Im obersten Bild sind die Inhalte gut zu erkennen, wogegen in der untersten Reihe nach der Filterung nur wenige Artefakte zurückbleiben.}
\label{tbl:report_detailed_processorstats}
\end{table}
@@ -35,18 +35,18 @@ Die Sektion "Scan Results" (siehe \autoref{tbl:report_detailed_scanresults_stats
\section{Prozessoren im Überblick}
\label{report_processingsummary}
Neben dem Detailvergleich beinhaltet der generierte Bericht auch die "Processing Summary". Diese Kategorie zeigt eine kurze Übersicht aller Ergebnisse. Je nach Rubrik wird jeweils der Median \bzw Durchschnitt der \hyperref[metriken_cer]{Character Error Rate} und \hyperref[metriken_wer]{Word Error Rate} berechnet.
Neben dem Detailvergleich beinhaltet der generierte Bericht auch die "Processing Summary". Diese Kategorie zeigt eine kurze Übersicht aller Ergebnisse. Je nach Rubrik wird jeweils der Median \bzw Durchschnitt der \hyperref[metriken_cer]{Character Error Rate} undder \hyperref[metriken_wer]{Word Error Rate} berechnet.
Auf Basis der Daten in \autoref{tbl:report_summary_wer}, \autoref{tbl:report_summary_cer} und \autoref{tbl:report_summary_time} lässt sich der Gesamterfolg der Bildvorbereitung \bzw der darauf folgenden Filterung feststellen.
Beispielsweise eignet sich die Dreiecks-Schwellenwertmethode, wie in \autoref{thresholding_triangle} vermutet, nicht für die Texterkennung. In der Detailübersicht zeigt sich, dass für die Bilder oft ein Schwellenwert gewählt wurde, der die Texterkennung unmöglich macht. Bei Anwendung des fixen Schwellenwertverfahrens werden mit dem richtigen Schwellenwert durchschnittlich sehr gute Ergebnisse erzielt \bzw beim Verfahren nach Otsu oft ein geeigneter Schwellenwert gewählt, wodurch ein gutes Ausgangsbild für die Texterkennung entsteht.
Die Dreiecks-Schwellenwertmethode, wie in \autoref{thresholding_triangle} vermutet, eignet sich beispielsweise nicht für die Texterkennung. In der Detailübersicht zeigt sich, dass für die Bilder oft ein Schwellenwert gewählt wird, der die Texterkennung unmöglich macht. Bei Anwendung des fixen Schwellenwertverfahrens werden mit dem richtigen Schwellenwert durchschnittlich sehr gute Ergebnisse erzielt. Beim Verfahren nach Otsu wird oft ein geeigneter Schwellenwert gewählt, wodurch in den meisten Fällen ein gutes Ausgangsbild für die Texterkennung entsteht.
Während die Fehlerquoten der Texterkennung mit Vorbereitung der Daten die der Texterkennung ohne Vorbereitung in den meisten Fällen unterbieten, ist das Ergebnis insgesamt unzufriedenstellend. Selbst bei Verwendung des fixen Schwellenwertverfahrens mit einem Wert von 40 \% werden durchschnittlich Ergebnisse mit einer Wortfehlerrate von mindestens 46 \% \bzw 1,5 falsch erkannten Zeichen pro Wort erreicht. Die relativ hohe Standardabweichung von 26 \% lässt auf eine hohe Streuung der Ergebnisdaten, also unregelmäßig gute Erfolge schließen.
Obwohl die Fehlerquoten der Texterkennung mit Vorbereitung der Daten niedriger sind als die der Texterkennung ohne Vorbereitung, ist das Ergebnis insgesamt unzufriedenstellend. Selbst bei Verwendung des fixen Schwellenwertverfahrens mit einem Wert von 40 \% werden durchschnittlich Ergebnisse mit einer Wortfehlerrate von mindestens 46 \% \bzw 1,5 falsch erkannten Zeichen pro Wort erreicht. Die relativ hohe Standardabweichung von 26 \% lässt auf eine hohe Streuung der Ergebnisdaten, also unregelmäßig gute Erfolge schließen.
\begin{table}[!ht]
\centering
\input{include/figures/fig_WER_1}
\caption{Auszug aus der "Processing Summary" Tabelle im generierten Bericht: Auflistung der Verfahren mit den durchschnittlich besten und schlechtesten Ergebnissen auf Basis der Word Error Rate. Die jeweilige Verarbeitungsmethode ist in der Spalte "Processor" zu finden, die Wortfehlerrate und die Standardabweichung in "Time" und "Deviation".}
\caption{Auszug aus der "Processing Summary" Tabelle im generierten Bericht: Auflistung der Verfahren mit den durchschnittlich besten und schlechtesten Ergebnissen auf Basis der Word Error Rate. Die jeweilige Verarbeitungsmethode ist in der Spalte "Processor" zu finden, die Wortfehlerrate und die Standardabweichung in "Error" und "Deviation".}
\label{tbl:report_summary_wer}
\end{table}

View File

@@ -1,8 +1,8 @@
\chapter{Zusammenfassung}
\label{zusammenfassung}
Im Rahmen dieser Bachelorarbeit wurde sich intensiv mit der Anwendung von optischer Texterkennung für die Verschlagwortung von Oberflächenscreenshots auseinandergesetzt. Das Ziel, eine Vorgehensweise für die automatisierte Verschlagwortung von Bilddateien zu entwickeln und die Anwendbarkeit verschiedener Algorithmen zur Bildbearbeitung und Texterkennung zu evaluieren, wurde erreicht. Insgesamt wurden die Grundlagen moderner Bildverarbeitung \bzw der Funktionsweise von Texterkennungssystemen aufgearbeitet. Das Ergebnis ist ein universelles System zur Analyse der Vergleichswerte, das auch die Integration weiterer Algorithmen ermöglicht. Dies erlaubt eine kontinuierliche Verbesserung und Anpassung des Texterkennungssystems an neue Anforderungen.
Im Rahmen dieser Bachelorarbeit setzt sich mit der Anwendung von optischer Texterkennung für die Verschlagwortung von Oberflächenscreenshots auseinandergesetzt. Das Ziel, eine Vorgehensweise für die automatisierte Verschlagwortung von Bilddateien zu entwickeln und die Anwendbarkeit verschiedener Algorithmen zur Bildbearbeitung und Texterkennung zu evaluieren, wurde erreicht. Insgesamt wurden die Grundlagen moderner Bildverarbeitung \bzw der Funktionsweise von Texterkennungssystemen aufgearbeitet. Das Ergebnis ist ein universelles System zur Analyse der Vergleichswerte, das auch die Integration weiterer Algorithmen ermöglicht. Dies erlaubt eine kontinuierliche Verbesserung und Anpassung des Texterkennungssystems an neue Anforderungen.
Aufgrund der Auswahl und Parametrisierung der ersten Tests beträgt die resultierende Fehlerrate in etwa 40\%. Nach Abschluss der Bachelorarbeit wird es jedoch weitere Optimierungsversuche geben. Das nächste Ziel ist es, eine Wortfehlerrate von 20\% nicht zu überschreiten, um eine zuverlässige Erkennung der Texte zu gewährleisten. Dazu werden weitere Bildbearbeitungsmethoden, beispielsweise Kantendetektoren \mcite{liu2006multiscale}, in Verbindung mit sogenanntem "Fuzzy Matching" \mcite{cayrol1982fuzzy} für die Erkennung der Schlagworte verwendet. Ebenso gibt es unter Verwendung der bereits implementierten Algorithmen noch Verbesserungspotential. Beispielsweise könnten mehrfach gefundene Wörter, die in der aktuellen Version des Prototyps einfach verworfen werden, zur Ermittlung der Wichtigkeit eines Schlagwortes genutzt werden.
Aufgrund der Auswahl und Parametrisierung der ersten Tests beträgt die resultierende Fehlerrate in etwa 40\%. Nach Abschluss der Bachelorarbeit wird es weitere Optimierungsversuche geben. Das nächste Ziel ist es, eine Wortfehlerrate von 20\% nicht zu überschreiten, um eine zuverlässige Erkennung der Texte zu gewährleisten. Dazu werden weitere Bildbearbeitungsmethoden, beispielsweise Kantendetektoren \mcite{liu2006multiscale} in Verbindung mit sogenanntem "Fuzzy Matching" \mcite{cayrol1982fuzzy} für die Erkennung der Schlagworte verwendet. Ebenso gibt es unter Verwendung der bereits implementierten Algorithmen noch Verbesserungspotential. Beispielsweise könnten mehrfach gefundene Wörter, die in der aktuellen Version des Prototyps einfach verworfen werden, zur Ermittlung der Wichtigkeit eines Schlagwortes genutzt werden.
Nach Abschluss der Optimierungsversuche wird das gewonnene Wissen weiter in den Schreenshot-Manager einfließen und die Texterkennungsfunktionalität in das Programm integriert. Die gefundenen mehrsprachigen Schlagworte werden in Zukunft für jedes Bild ermittelt und in einer Datenbank abgelegt, um ein einfaches und effizientes Suchen innerhalb der Anwendung zu ermöglichen.

BIN
main.pdf

Binary file not shown.

View File

@@ -53,7 +53,7 @@
\newcommand*{\fullref}[1]{\hyperref[{#1}]{\autoref*{#1} \nameref*{#1}}}
\newcommand{\csharp}{C\#}
\newcommand{\csharp}{C\#\ }
\newcommand{\engl}[1]{engl. \textit{#1}}
\newcommand{\kurz}[1]{kurz: \textit{#1}}
\newcommand{\fluentcite}[1]{\citetitle{#1}, \citeauthor{#1} \citeyear{#1} \mcite{#1}}