adapted to new gliederung

This commit is contained in:
Simon
2024-01-06 13:27:33 +01:00
parent d65b2a4ce4
commit 0e0f90539c
25 changed files with 133 additions and 53 deletions
@@ -0,0 +1,5 @@
\section{Verwendete Algorithmen}
\label{sec:algorithmen}
\input{chapters/c30_konzept/algorithmen/preprocessing}
\input{chapters/c30_konzept/algorithmen/postprocessing}
@@ -0,0 +1,17 @@
\subsection{Postprocessing}
Da im Rahmen dieser Bachelorarbeit ein besonderer Fokus auf dem Verschlagworten der Inhalte liegt, um die Suche innerhalb der Screenshot-Datenbank zu verbessern, sind besonders die Vorgehensweise zur Extraktion der relevanten Daten von großem Nutzen.
Wie auch im Preprocessing gibt es auch im Postprocessing verschiedene Algorithmen, die mit den selben Ausgangsdaten unterschiedlich wertvolle Ergebnisse liefern. Daher ist es ratsam, mehrere Algorithmen zu vergleichen und den für den individuellen Use-case am besten geeignetsten zu wählen:
\subsubsection{Filterung anhand der Confidence}
% TODO
\subsubsection{Filterung anhand der Wortlänge}
% TODO
\subsubsection{Sprachabhängige Filterung mittels Regular Expressions}
% TODO
@@ -0,0 +1,75 @@
\subsection{Preprocessing}
Beim sogenannten "Preprocessing" werden die zu verarbeitenden Bilder für die Texterkennung vorbereitet, um die Qualität der erkannten Textdaten zu verbessern.
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 \cite{todo}. 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.
Verwendet man moderne Tesseract-Implementierungen, sind in diesen oft bereits rudimentäre Bildverarbeitungswerkzeuge verfügbar \cite{todo}. 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 zwar ein Umwandeln der Eingangsgrafiken in ein meist gut für Tesseract geeignetes Bild, nichtsdestotrotz ist es jedoch sinnvoll, die Bildverarbeitungsschritte individuell auf die erwarteten Eingangsdaten anzupassen, um die bestmöglichen Ergebnisse zu erhalten.
Die folgenden Preprocessing-Schritte basieren auf der empfohlenen Vorgehensweise zur Verbesserung der Output-Qualität laut Tesseract-Dokumentation \cite{tessdoc}. Gemäß den obigen Annahmen werden jedoch weder perspektivische Fehler, noch ein eventuelles Rauschen korrigiert. Konkret werden folgende Bildverarbeitungsschritte verglichen:
\subsubsection{Resampling}
Bei Resampling wird die Bildauflösung durch "Neuabtastung" verändert. Um die für Tesseract optimale \cite{tessdoc} Mindestauflösung von 300 dpi zu gewährleisten, muss das Eingangsbild, sofern es die Mindestauflösung unterschreitet, zunächst entsprechend vergrößert werden.
Da Tesseract auf klare und scharfe Kontraste angewiesen ist, um Text korrekt zu identifizieren, eignen sich nicht alle von ImageMagick zur Verfügung gestellten Skalierungsmethoden für die Weiterverarbeitung. Besonders beim Hochskalieren neigen einige Filter dazu, Unschärfen und Artefakte zu erzeugen, die die Genauigkeit der Texterkennung negativ beeinflussen können.
Unter den verschiedenen Resampling-Filtern, die ImageMagick bereitstellt, haben sich insbesondere bicubic und Lanczos als für die Texterkennung mit Tesseract geeignet erwiesen \cite{todo}:
\subsubsubsection{Bicubic Interpolation}
Der bicubic-Algorithmus zeichnet sich durch eine glatte Interpolation aus und eignet sich gut für den Erhalt von Kanten und Kontrasten.
% TODO
Beschreibung Funktionsweise
% TODO
Vergleichsbilder
\subsubsubsection{Lanczos Filterung}
Lanczos verwendet eine Fensterfunktion, die im Vergleich zu anderen Filtern weniger Unschärfen erzeugt und somit die Bildqualität besser bewahrt.
% TODO
Beschreibung Funktionsweise
% TODO
Vergleichsbilder
% TODO neutral bleiben! Entfernen oder verschieben
% Fazit: Aufgrund der besseren/klareren/schöneren Ergebnisbilder wird der Lanczos-Algorithmus für die Texterkennung genutzt. ODER Der Vergleich wird zeigen, ob bicubic oder lanczos die besseren ergebnisse liefert.
\subsubsection{Rahmen}
Befindet sich Text zu nah am Rand des Bildes, kommt es vor, dass dieser nicht richtig erkannt werden kann. Ebenso kann auch ein zu großer einfärbiger Rahmen am Rand des Bildes dazu führen, dass Bildsektionen fälschlicherweise als "leer" erkannt und übersprungen werden, wodurch der zu erkennende Text nicht in die Ergebnisdaten mit aufgenommen wird.
\begin{figure}[th]
\centering
\fbox{\includegraphics[width=0.7\linewidth]{bsp_rahmen_groß}}
\caption[Ein Screenshot mit zu großem Rahmen]{Ein im Verhältnis zur Bildgröße zu großer einfärbiger Rahmen}
\label{fig:bsp_rahmen_großs}
\end{figure}
\subsubsection{Thresholding und Binarisierung}
Die Binarisierung beschreibt den Prozess, ein Graustufenbild in ein Schwarz-Weiß-Bild umzuwandeln. Der dazu notwendige Schwellenwert kann entweder fix definiert oder anhand von verschiedensten Algorithmen ermittelt werden. Die dadurch entstehende Binarisierung hilft bei der Segmentierung und Extraktion von Objekten in einem Bild und sorgt in den Screenshots für einen ausreichenden Kontrast, unabhängig von der Vorder- und Hintergrundfarbe der Textelemente.
ImageMagick bietet eine Vielzahl an Thresholding-Algorithmen, deren Eignung in \autoref{ch:Vergleich} verglichen wird:
\subsubsubsection{Feste Schwellenwertmethode}
Ein für die Bildsegmentierung häufig genutztes Verfahren ist die sogenannte feste Schwellenwertmethode, auf Englisch auch "Fixed Thresholding" genannt. Bei diesem Bildverarbeitungsverfahren wird eine vordefinierter Grenzwert auf einzelne Pixelwerte angewandt.
Liegt der Pixelwert über dem festgelegten Schwellenwert, wird er als Teil des "Vordergrunds" betrachtet, andernfalls als "Hintergrund". Somit können Objekte, im Falle dieser Bachelorarbeit also die einzelnen Buchstaben in den Grafikdateien, von ihrem Hintergrund getrennt werden.
Obwohl das fixe Thresholding durch seine Simplizität einen relativ geringen Berechnungsaufwand benötigt und daher eine hohe Performance aufweist, sind die Ergebnisdaten bei entsprechenden Werten unzufriedenstellend. So ergibt es sich oft, 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. Dadurch kann jeglicher Text innerhalb dieser Fläche nicht vom Texterkennungssystem erkannt werden.
% TODO Neutral bleiben! Entfernen oder verschieben
% Die Auswirkungen des oben beschriebenen Verhaltens sind in den Ergebnisdaten klar ersichtlich. So führt die Verwendung dieses Verfahrens in den meisten Fällen zu einer WER bzw. CER jenseits der 60\%.
\subsubsubsection{Adaptives Thresholding}
\subsubsubsection{Dreiecks-Thresholding}
\subsubsubsection{Thresholding nach Otsu}
\subsubsubsection{Thresholding nach Kapur}
+18
View File
@@ -0,0 +1,18 @@
\section{Annahmen}
\label{sec:annahmen}
% Preprocessing
Um die Texterkennung mittels Tesseract zu verbessern, ist es sinnvoll, die mögliche Vielfalt an Preprocessing-Ausgangsdaten durch Annahmen zu beschränken.
Im Falle dieser Bachelorarbeit handelt es sich bei den zu verarbeitenden Bildern ausschließlich um 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 der Kontrast in den meisten Fällen ausreicht, um die relevanten Inhalte zu erkennen. Weiters beinhalten grafische Oberflächen oft farbige Hintergrundflächen zur Trennung von Sektionen, auf die bei etwaigem Thresholding geachtet werden muss. Nach Sichtung des zu verarbeitenden Bilddatensatzes fällt zudem auf, dass die betroffenen Inhalte durch das Selektieren mit der Maus oft sehr eng abgeschnitten wurden.
% TODO
Beispiel Screenshots
% Postprocessing
Da ... Screenshots, ... ist davon auszugehen, dass auch fremdsymbole... Außerdem: Sprachanpassung (RegEx filter)
% TODO
Postprocessing, NLP Folien
+6
View File
@@ -0,0 +1,6 @@
\chapter{Konzept}
\label{ch:konzept}
\input{chapters/c30_konzept/annahmen}
\input{chapters/c30_konzept/vergleich}
\input{chapters/c30_konzept/algorithmen/index}
+68
View File
@@ -0,0 +1,68 @@
\section{Vergleich}
\label{sec:vergleich}
\subsection{Metriken}
\label{subsec:metriken}
Um die erkannten Ergebnisse unter Verwendung der verschiedenen Pre- und Postprocessing Schritte mittels eines einheitlichen Systems vergleichen zu können, wird auf die in der optischen Texterkennung gängigen Metriken "Character Error Rate" (CER) und "Word Error Rate" (WER) zurückgegriffen.
Sowohl die CER als auch die WER sind beliebte Vergleichswerte, die ihren Ursprung in der computergestützten Sprachverarbeitung \bzw automatischen Spracherkennung (ASR) haben. Da OCR und ASR beide darauf abzielen, maschinenlesbaren Text aus nicht-strukturierten Daten zu extrahieren, sind die Prinzipien dieser Metriken auch auf die OCR anwendbar.\subsection{Word Error Rate}
Die Word Error Rate (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 teilt sie durch die Anzahl an Wörtern im Referenztext.
\subsubsection{Berechnung}
Die mathematische Formel für die Word Error Rate lautet somit wie folgt:
\begin{center}
\[
\text{WER} = \frac{S + D + I}{N}
\]
\label{formula:wer}
\end{center}
wobei die einzelnen Komponenten folgende Größen darstellen:
\begin{itemize}
\item \(S\) beschreibt die Anzahl der falsch erkannten Wörter (\engl{Substitutions})
\item \(D\) beschreibt die Anzahl der im Resultat fehlenden Wörter (\engl{Deletions})
\item \(I\) beschreibt die Anzahl der im Resultat fälschlicherweise eingefügte Wörter (\engl{Insertions})
\item \(N\) beschreibt die Gesamtanzahl der Wörter in der Referenz
\end{itemize}
\subsubsection{Vorteile und Nachteile}
Die WER spiegelt ohne großen Rechenaufwand direkt wieder, wie stark die erkannten Texte der Referenz gleichen. Hierbei werden fehlerhafte Einsetzungen, Löschungen und falsch erkannte Wörter \bzw Teilwörter gleichermaßen gewichtet. Es ist jedoch nicht möglich, die korrekte Reihenfolge der erkannten Wörter darzustellen oder bestimmte wichtige Stellen im Text höher zu gewichten als andere. Auch werden fehlerhaft erkannte Wörter, auch wenn nur ein einzelner Buchstabe falsch ist, als vollwertige Ersetzung wahrgenommen, wodurch die WER selbst bei bis auf wenige Zeichen gut erkannte Texte stark beeinflusst werden kann.
Um also ein umfassendes Bild von der Genauigkeit des Texterkennungssystems zu erhalten, ist es sinnvoll, die Ergebnisse nicht nur anhand der WER, sondern auch noch mindestens anhand einer weiteren Fehlermetrik, wie beispielsweise der CER, zu vergleichen.
\subsection{Character Error Rate}
Die Character Error Rate (CER) beschreibt die Anzahl der falsch erkannten oder fehlenden Zeichen im Vergleich eines Referenzwortes. Je niedriger die CER, desto genauer ist der OCR-Vorgang. Um die CER zu berechnen, bildet man die Summe aller notwendigen Ersetzungen, Entfernungen und Einfügungen, um aus dem erkannten Wort die Referenz bilden zu können und teilt sie durch die Anzahl an Zeichen im Referenzwort.
\subsubsection{Berechnung}
Die mathematische Formel für die Word Error Rate lautet somit wie folgt:
\begin{center}
\[
\text{CER} = \frac{S + D + I}{N}
\]
\label{formula:cer}
\end{center}
wobei die einzelnen Komponenten folgende Größen darstellen:
\begin{itemize}
\item \(S\) beschreibt die Anzahl der falsch erkannten Wörter (Substitutions)
\item \(D\) beschreibt die Anzahl der im Resultat fehlenden Wörter (Deletions)
\item \(I\) beschreibt die Anzahl der im Resultat fälschlicherweise eingefügte Wörter (Insertions)
\item \(N\) beschreibt die Gesamtanzahl der Wörter in der Referenz
\end{itemize}
\subsubsection{Vorteile und Nachteile}
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.
\subsection{Testaufbau}
\label{subsec:testaufbau}
Für einen objektiven Vergleich zwischen den unterschiedlichen Vorgehensweisen und Algorithmen wird eine Grundabfolge der jeweiligen Schritte in einer "Processing-Pipeline" definiert. Anhand einer durch den Menschen verschlagworteten Vergleichsmenge können diese Pipelines nun anhand der in \autoref{sec:metriken} beschriebenen Fehlermetriken miteinander verglichen werden.
% TODO