Commit committed

This commit is contained in:
Simon
2023-12-04 22:06:44 +01:00
parent 518ecc14a3
commit baf5b3876f
13 changed files with 179 additions and 134 deletions
+8
View File
@@ -0,0 +1,8 @@
Processing
Language
Tesseract
Postprocessing
Preprocessing
Pre-
Postprocessing-Schritte
CER
+1
View File
@@ -0,0 +1 @@
{"rule":"AUSTRIAN_GERMAN_SPELLER_RULE","sentence":"^\\QUm 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\" (kurz: CER) und \"Word Error Rate\" (kurz: WER) zurückgegriffen.\\E$"}
+3
View File
@@ -0,0 +1,3 @@
{
"ltex.language": "de-AT"
}
+3 -3
View File
@@ -1,7 +1,7 @@
\chapter{Einleitung}
\label{cha:Einleitung}
\section{Einleitung}
\section{Motivation}
Die in Salzburg ansässige COPA-DATA GmbH bietet die Softwareplattform zenon an, die als umfassende Gesamtlösung Unternehmen in zahlreichen Anwendungsgebieten bei der Automatisierung ihrer Herstellungsprozesse unterstützt.
@@ -17,10 +17,10 @@ Mithilfe von optischer Texterkennung (engl. optical character recognition, "OCR"
Die konkrete Herausforderung bei der Texterkennung mittels OCR besteht aus dem Finden eines passenden Texterkennungs-Frameworks, der Einbindung der im Rahmen dieser Bachelorarbeit entwickelten Prototypbibliothek in das bestehende "ScreenshotManager" Basisprogramms und nicht zuletzt dem korrekten und zuverlässigen Erkennen der erwarteten bzw. bis dahin unbekannten Schlagworte in den bestehenden Bilddateien und denen, die in Zukunft hochgeladen werden. Um bestmögliche Ergebnisse zu erzielen, ist das automatische Verändern der Bilddaten (Thresholds, Anpassen der Kontrastwerte, Farbe, Helligkeit, etc.) dabei unumgänglich.
Weiters bildet die Verknüpfung der Schlagworte mit den entsprechenden Screenshots unter Rücksichtnahme auf die Sprache der hochgeladenen Grafik die Basis des Schlagwortsystems. Es ist ein geeignetes Speichersystem notwendig, um bei der Vielzahl an gespeicherten Screenshots performant nach Schlagwörtern suchen zu können. Die OCR-Funktionalität und auch die Ablagestruktur der Schlagwortinformation muss modular aufgebaut sein, um zukünftig hinzukommende Dokumentationssprachen beziehungsweise neue Schlagwörter, beispielsweise bei Anpassung des Corporate Brandings, ohne großen Konfigurations- oder gar Entwicklungsaufwand unterstützen zu können.
Weiters bildet die Verknüpfung erkannter Texte mit den entsprechenden Screenshots unter Rücksichtnahme auf die Sprache der hochgeladenen Grafik die Basis des Schlagwortsystems. Es ist ein geeignetes Speichersystem notwendig, um bei der Vielzahl an gespeicherten Screenshots performant nach Schlagwörtern suchen zu können. Die OCR-Funktionalität und auch die Ablagestruktur der Schlagwortinformation muss modular aufgebaut sein, um zukünftig hinzukommende Dokumentationssprachen beziehungsweise neue Schlagwörter, beispielsweise bei Anpassung des Corporate Brandings, ohne großen Konfigurations- oder gar Entwicklungsaufwand unterstützen zu können.
Auch die Integration mit dem intern eingesetzten Content-Management-Systems (kurz "CMS") "Author-It" muss gegeben sein, wobei die Verwaltung und Verknüpfung der Bilddateien mit dem Author-It System aufwendiger ist, als die für die Bachelorarbeit relevante Ablage der Schlagwortinformation.
\section{Fragestellung}
Ziel dieser Bachelorarbeit ist es, herauzufinden, welche Vorgehensweisen bei der Texterkennung zu den besten Ergebnissen führen. Dazu werden die Ergebnisse, beeinflusst durch verschiedene Bildverarbeitungsschritte sowie Filtermethoden anhand gängiger Fehlermetriken für Texterkennungssysteme in einer prototypischen Implementierung verglichen.
Ziel dieser Bachelorarbeit ist es, herauzufinden, welche Vorgehensweisen bei der Texterkennung zu den besten Ergebnissen führen. Dazu werden die Resultate der Bild- und Textverarbeitung anhand gängiger Fehlermetriken für Texterkennungssysteme verglichen.
+61 -1
View File
@@ -5,6 +5,66 @@
Seit einigen Jahren wird optische Texterkennung in der Informationstechnik dazu verwendet, Texte in verschiedensten Grafiken als solche zu erkennen und zu extrahieren. In diesem Kontext sticht besonders die seit 2005 quelloffene "Tesseract OCR Engine" \cite{tessdoc} hervor, die mit mittlerweile über 50.000 Sternen auf der Website GitHub eine der größten OCR Engines darstellt.
Es gibt zahlreiche Werke, die sich mit der Funktionsweise von optischen Texterkennungswerkzeugen wie Tesseract befassen. Empfehlungen zur Verbesserung des zu verarbeitenden Ursprungsbildes wurden in der Literatur, wie auch in der Tesseract Dokumentation \cite{tessdoc} bisher nur oberflächlich behandelt.
Es gibt zahlreiche Werke, die sich mit der Funktionsweise von optischen Texterkennungswerkzeugen wie Tesseract befassen. Empfehlungen zur Verbesserung des zu verarbeitenden Ursprungsbildes wurden in der Literatur, wie auch in der Tesseract Dokumentation \cite{tessdoc} bisher nur oberflächlich behandelt.
Für die Filterung der Ergebnisdaten werden unter anderem Vorgehensweisen aus dem gut erforschten Themengebiet des Natural Language Processing verwendet.
\section{Vergleichsmetriken}
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 (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 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 relativ 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.
+5
View File
@@ -0,0 +1,5 @@
\chapter{Optical Character Recognition}
\label{cha:OCR}
\input{chapters/c03_preprocessing}
\input{chapters/c03_postprocessing}
-98
View File
@@ -1,98 +0,0 @@
\chapter{Konzept}
\label{cha:Konzept}
\section{Preprocessing}
Beim sogenannten "Preprocessing" werden die zu verarbeitenden Bilder gemäß nachfolgender Methoden für die Texterkennung vorbereitet. Ziel der Vorbereitung ist es, Texte im Bild für die Texterkennungs-Engine lesbar zu machen. Während störende Elemente wie Bildrauschen aus dem Bild entfernt werden sollen, werden Texte ungeachtet der Hinter- bzw. Vordergrundfarbe mit maximalem Kontrast hervorgehoben und von interferierenden "Nicht-Text Elementen" wie Formen oder graphischen Symbolen isoliert.
\subsection{Stand der Technik}
Die im Rahmen dieser Bachelorarbeit verwendete Texterkennungs-Engine Tesseract basiert seit der Major-Version 4 auf einem neuralen Netzwerk, durch welches mithilfe von sprachspezifischen Trainingsdaten Texte in Bildern erkannt werden können \cite{tessdoc}. Damit dieses neurale Netzwerk gut arbeiten kann, ist es wichtig, aus unterschiedlichen Ausgangsdaten möglichst einheitliche Bilder zu generieren, die den Trainingsdaten ähnlich sehen (TODO Quelle, generell neurale Netzwerke, eig. Hausverstand?)
Verwendet man moderne Tesseract-Implementierungen, sind in diesen oft bereits rudimentäre Bildverarbeitungswerkzeuge verfügbar (TODO: Quelle). 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 in den meisten Fällen gut für Tesseract geeignetes Bild, nichtsdetotrotz ist es jedoch sinnvoll, die Bildverarbeitungsschritte individuell auf die erwarteten Eingangsdaten anzupassen, um die bestmöglichen Ergebnisse zu erhalten.
\subsection{Annahmen}
Um die Texterkennung mittels Tesseract weiter zu verbessern, ist es notwendig, das Preprocessing zu spezifizieren indem die Breite an möglichen Eingangsdaten durch Annahmen beschränkt wird.
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 gachtet werden muss. Auch kommt es besonders oft vor, dass zu verarbeitende Inhalte sehr eng abgeschnitten wurden, was wahrscheinlich auf das Aufnahmeverfahre mittels per Maus gezogenem Rechteck zurückzuführen ist.
Um die Ergebnisse der Texterkennung zu optimieren, wurde eine Auswahl an Bildverarbeitungsalgorithmen bestimmt. Anhand einer durch den Menschen verschlagworteten Vergleichsmenge können diese Algorithmen nun mittels der Fehlermetriken A, B und C (TODO: metriken) verglichen werden, um den besten zu ermitteln.
\subsection{Gegenüberstellung}
Die folgende Gliederung an Preprocessing-Schritten basiert auf der empfohlenen Vorgehensweise zur Verbesserung der Output-Qualität laut Tesseract-Dokumentation \cite{tessdoc}. Da Screenshots gemäß der oben getroffenen Annahmen weder perspektivische Fehler, noch ein Rauschen aufweisen, werden verschiedene Bildverarbeitungskonzepte in folgenden Kategorien verglichen:
\subsubsection{Skalierung}
TODO Quelle
Durch Skalierung werden Bilder vergrößert oder verkleinert, während das Seitenverhältnis erhalten bleibt.
Da Tesseract für optimale Ergebnisse Eingangsbilder mit einer Mindestauflösung von 300 dpi benötigt \cite{tessdoc}, werden Screenshots automatisch hochzuskalieren, falls sie die benötigte Auflösung nicht erreichen.
Für die Skalierung gibt es in der Bildverarbeitung eine vielzahl an Algorithmen: [TODO:] (Am Ende wird es der Lanczos2)
\subsubsection{Dilation und Erosion}
Dilation und Erosion werden in der Bildverarbeitung zum vergrößern und verkleinern von Objekten verwendet. Bei der Dilation werden Objekte in einem Bild nach einem gewissen Schema erweitert. Bei der Erosion hingegen werden Objekte verkleinert, um unerwünschte Details zu entfernen.
TODO: Quelle
Diese Operationen eignen sich besonders dafür, eine einheitliche Schriftdicke zu gewährleisten. Zu dünne Symbole können mittels Dilation dicker, zu dicke mittels Erosion dünner gemacht werden.
\subsubsection{Rahmen}
Weist ein Bild zu üppige einfärbige Ränder auf, kann es passieren, dass Tesseract die Datei als "leer" erkennt und den Texterkennungsvorgang vorzeitig abbricht.
Befindet sich der Text jedoch zu nah am Rand des Bildes, kommt es vor, dass die Texte nicht richtig erkannt werden können.
\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.
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 von Textelementen
(
TODO:
[Erläuterung der Gründe und Beispiele warum bzw. in welchen Fällen das Preprocessing versagt]
[Beispiele: Auswirkungen der verschiedenen Methodiken auf unterschiedliche Ausgangsbilder]
)
\section{Postprocessing}
Beim "Postprocessing" werden die durch die Texterkennung ermittelten Biltinhalte gefiltert und aufbereitet. Durch die Filterung könenn die Ergebnisdaten beispielsweise durch das Entfernen von Füllwörtern auf das für den Nutzer wesentliche reduziert und durch Praktiken wie unscharfes Zuweisen Begriffe etwaige Fehler ausgebessert werden.
\subsection{Stand der Technik}
Heutzutage werden vor allem im Gebiet des Natural Language Processing (TODO:) mächtige Werkzeuge zur Analyse von Textbasierten Daten verwendet.
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:
TODO: NLP Folien durchlesen.
\subsection{Gegenüberstellung}
TODO:
[Auflistung einiger Methodiken, mit vor und nachteilen und bildern]
[Erläuterung der verwendeten Methodiken und Erläuterung warum sie sich so gut für Screenshots eignen]
[Auswirkungen der verschiedenen Methodiken auf unterschiedliche Ausgangsdaten]
Durch den Vergleich ist ersichtlich, dass sich der XXX in Kombination mit dem Algoritmus YYY am besten für das Ermitteln von relevanten Schlagworten aus Screenshots von Benutzeroberflächen eignet. Durch die Kombination beschränkt sich die Menge an gefilterten Wörtern ausschließlich auf Füllwörter, die nicht inhaltsspezifisch sind, während durch das Fuzzy Matching kleinere Fehler, verursacht durch die Texterkennung, ausgebessert werden können.
\section{Datenbankentwurf}
+24
View File
@@ -0,0 +1,24 @@
\section{Postprocessing}
\subsection{Grundlagen}
Heutzutage werden vor allem im Gebiet des Natural Language Processing (TODO:) mächtige Werkzeuge zur Analyse von textbasierten Daten verwendet.
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:
TODO: NLP Folien durchlesen.
\subsection{Gegenüberstellung}
TODO:
[Auflistung einiger Methodiken, mit vor und nachteilen und bildern]
[Erläuterung der verwendeten Methodiken und Erläuterung warum sie sich so gut für Screenshots eignen]
[Auswirkungen der verschiedenen Methodiken auf unterschiedliche Ausgangsdaten]
Durch den Vergleich ist ersichtlich, dass sich der XXX in Kombination mit dem Algoritmus YYY am besten für das Ermitteln von relevanten Schlagworten aus Screenshots von Benutzeroberflächen eignet. Durch die Kombination beschränkt sich die Menge an gefilterten Wörtern ausschließlich auf Füllwörter, die nicht inhaltsspezifisch sind, während durch das Fuzzy Matching kleinere Fehler, verursacht durch die Texterkennung, ausgebessert werden können.
\subsection{Analyse}
+70
View File
@@ -0,0 +1,70 @@
\section{Preprocessing}
Beim sogenannten "Preprocessing" werden die zu verarbeitenden Bilder gemäß nachfolgender Methoden für die Texterkennung vorbereitet. Ziel der Vorbereitung ist es, Texte im Bild für die Texterkennungs-Engine lesbar zu machen. Während störende Elemente wie Bildrauschen aus dem Bild entfernt werden sollen, werden Texte ungeachtet der Hinter- bzw. Vordergrundfarbe mit maximalem Kontrast hervorgehoben und von interferierenden "Nicht-Text Elementen" wie Formen oder graphischen Symbolen isoliert.
\subsection{Grundlagen}
Die im Rahmen dieser Bachelorarbeit verwendete Texterkennungs-Engine Tesseract basiert seit der Major-Version 4 auf einem neuronalen Netz, durch welches mithilfe von sprachspezifischen Trainingsdaten Texte in Bildern erkannt werden können \cite{tessdoc}. Es ist somit wichtig, unabhängig von der Diversität der Ausgangsdaten möglichst einheitliche Bilder zu generieren, die den Trainingsdaten des neuronalen Netzes ähnlich sehen (TODO Quelle, generell neurale Netzwerke, eig. Hausverstand?).
Verwendet man moderne Tesseract-Implementierungen, sind in diesen oft bereits rudimentäre Bildverarbeitungswerkzeuge verfügbar (TODO: Quelle). 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, nichtsdetotrotz ist es jedoch sinnvoll, die Bildverarbeitungsschritte individuell auf die erwarteten Eingangsdaten anzupassen, um die bestmöglichen Ergebnisse zu erhalten.
\subsubsection{Annahmen}
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.
\subsection{Gegenüberstellung}
Um die Ergebnisse der Texterkennung zu optimieren, wurde eine Auswahl an Bildverarbeitungsalgorithmen bestimmt. Anhand einer durch den Menschen verschlagworteten Vergleichsmenge können diese Algorithmen nun mittels der Fehlermetriken A, B und C (TODO: metriken) verglichen werden, um den besten zu ermitteln.
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{Skalierung}
TODO Quelle
Durch Skalierung werden Bilder vergrößert oder verkleinert, während das Seitenverhältnis erhalten bleibt.
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 auf die entsprechende Auflösung skaliert werden.
Für die Skalierung gibt es in der Bildverarbeitung eine Vielzahl an Algorithmen: [TODO:] (Am Ende wird es der Lanczos2)
\subsubsection{Dilation und Erosion}
Dilation und Erosion werden in der Bildverarbeitung zum Vergrößern und Verkleinern von Objekten verwendet. Bei der Dilation werden Objekte in einem Bild nach einem gewissen Schema erweitert. Bei der Erosion hingegen werden Objekte verkleinert, um unerwünschte Details zu entfernen.
TODO: Quelle
Diese Operationen eignen sich besonders dafür, eine einheitliche Schriftdicke zu gewährleisten. Zu dünne Symbole können mittels Dilation dicker, zu dicke mittels Erosion dünner gemacht werden.
\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.
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 von Textelementen
(
TODO:
[Erläuterung der Gründe und Beispiele warum bzw. in welchen Fällen das Preprocessing versagt]
[Beispiele: Auswirkungen der verschiedenen Methodiken auf unterschiedliche Ausgangsbilder]
)
\subsection{Analyse}
+2
View File
@@ -0,0 +1,2 @@
\chapter{Schlagwortsuche}
\label{cha:Schlagwortsuche}
-30
View File
@@ -1,30 +0,0 @@
\chapter{Implementierung}
\label{cha:Implementierung}
\section{Processing Framework}
Hier wird die Implementierung des processing frameworks beschrieben, anhand dessen die unterschiedlichen Datenverarbeitungsschritte aneinander gereiht werden können.
\section{Preprocessing}
Hier wird die Implementierung der Preprocessing-Schritte beschrieben.
\subsection{Image Threshold Filter}
\subsection{Resize Filter}
\subsection{Binarization Filter}
\section{Postprocessing}
Hier wird die Implementierung der Postprocessing-Schritte beschrieben.
\subsection{Regular Expression Filter}
\subsection{Confidence Filter}
\subsection{Fuzzy Match Filter}
\section{Datenbank}
Hier wird die Datenbankstruktur (folgend dem Datenbankentwurf) beschrieben.
BIN
View File
Binary file not shown.
+2 -2
View File
@@ -62,8 +62,8 @@
\include{chapters/c01_einleitung}
\include{chapters/c02_grundlagen}
\include{chapters/c03_konzept}
\include{chapters/c04_implementierung}
\include{chapters/c03}
\include{chapters/c04_Schlagwortsuche}
\include{chapters/c99_literatur}
%%%-----------------------------------------------------------------------------