more words written

This commit is contained in:
Simon
2024-01-07 16:56:29 +01:00
parent c2b8c78e62
commit d15c0253bb
11 changed files with 87 additions and 46 deletions
+4
View File
@@ -36,3 +36,7 @@ Lanczos
Lanczos-Methode
Skalierungsverfahrens
Resamplings
Segmentierungsverfahren
tessdoc
tessrepo
Textfilterungsschritten
@@ -3,7 +3,7 @@
\subsection{Texterkennungssysteme}
Optische Texterkennung wird in der Informationstechnik unter anderem dazu verwendet, Texte in verschiedensten Dokumenten oder Grafiken als solche zu erkennen und zu extrahieren. Auf dem Markt gibt es dafür bereits viele kommerzielle Komplettlösungen wie "IronOCR", "Google Cloud Vision", "Amazon Textract" oder "Microsoft Azure Computer Vision", die oftmals sehr gute Ergebnisse erzielen und sich gut in bestehende Prozesse oder Anwendungen integrieren lassen \cite{todo}.
Optische Texterkennung wird in der Informationstechnik unter anderem dazu verwendet, Texte in verschiedensten Dokumenten oder Grafiken als solche zu erkennen und zu extrahieren. Auf dem Markt gibt es dafür bereits viele kommerzielle Komplettlösungen wie "IronOCR", "Google Cloud Vision", "Amazon Textract" oder "Microsoft Azure Computer Vision", die oftmals sehr gute Ergebnisse erzielen und sich gut in bestehende Prozesse oder Anwendungen integrieren lassen \mcite{todo}.
Heutige Texterkennungssysteme arbeiten oft mit neuralen Netzwerken sowie fortgeschrittenen Bildverarbeitungsalgorithmen, um Text in Bilddateien zu erkennen und zu extrahieren. Während es zahlreiche wissenschaftliche Werke zur grundlegenden Funktionsweise von optischen Texterkennungswerkzeugen gibt, wurden die genauen Schritte zur richtigen Vorbereitung der Bilddaten -- besonders in Bezug auf Screenshots -- nur oberflächlich behandelt.
+4 -2
View File
@@ -2,11 +2,13 @@
\label{technologien}
\subsection{Texterkennungssystem}
\label{texterkennungssystem}
Die Nutzung der in \autoref{einleitung} erwähnten Anwendungen \bzw Dienstleistungen ist kostenpflichtig und die genaue Vorgehensweise dieser Programme ist nicht öffentlich bekannt.
Aufgrund dieser Tatsachen ist die Wahl des Texterkennungssystems für die prototypische Implementierung dieser Bachelorarbeit auf die seit 2005 unter der Freie-Software-Lizenz "Apache 2.0" veröffentlichten "Tesseract Open Source OCR Engine" (kurz: Tesseract) gefallen. Diese 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}. Außerdem stellt sie mit mittlerweile über 50.000 Sternen auf der Repository-Hosting Plattform GitHub eines der beliebtesten Texterkennungssysteme dar \cite{tessdoc} \cite{tessrepo}.
Aufgrund dieser Tatsachen ist die Wahl des Texterkennungssystems für die prototypische Implementierung dieser Bachelorarbeit auf die seit 2005 unter der Freie-Software-Lizenz "Apache 2.0" veröffentlichten "Tesseract Open Source OCR Engine" (kurz: Tesseract) gefallen. Diese 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}. Außerdem stellt sie mit mittlerweile über 50.000 Sternen auf der Repository-Hosting-Plattform GitHub eines der beliebtesten Texterkennungssysteme dar \mcite{tessdoc} \mcite{tessrepo}.
\subsection{Bildbearbeitungswerkzeug}
\label{bildbearbeitungswerkzeug}
Als Werkzeug für die Durchführung der notwendigen Bildbearbeitungsschritte wurde die Softwarebibliothek "ImageMagick" gewählt. Sie ist umfassend dokumentiert, flexibel und lässt sich gut in gängige Programmiersprachen einbinden. ImageMagick ist umfassend dokumentiert und unterstützt eine Vielzahl unterschiedlicher Bildformate. Viele in der Bildverarbeitung genutzte Operationen sind außerdem bereits implementiert, was schnelles Prototyping vereinfacht und die Bibliothek zu einer idealen Wahl für die Realisierung von Bildbearbeitungsschritten in der prototypischen Implementierung macht.
Als Werkzeug für die Durchführung der notwendigen Bildbearbeitungsschritte wurde die Softwarebibliothek "ImageMagick" gewählt. Sie ist umfassend dokumentiert, flexibel und lässt sich gut in gängige Programmiersprachen einbinden. Viele in der Bildverarbeitung genutzte Operationen sind außerdem bereits implementiert, was schnelles Prototyping vereinfacht und die Bibliothek zu einer idealen Wahl für die Realisierung von Bildbearbeitungsschritten in der prototypischen Implementierung macht.
@@ -1,20 +1,24 @@
\subsection{Postprocessing}
\label{algorithmen_postprocessing}
Da die verarbeiteten Bilddaten \bzw deren extrahierte Textdaten später durch eine Schlagwort-basierte Suchfunktion durch den Nutzer auffindbar sein müssen, müssen die Ergebnisdaten im Rahmen des Postprocessings weiterverarbeitet werden. Ziel ist es, die Redundanz innerhalb des Datensets zu reduzieren. Ebenso sollen falsch erkannte Ergebnisdaten identifiziert und aus der Schlagwortmenge entfernt werden.
\subsubsection{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.
% TODO Beispielhafter Vergleich der Daten vor bzw. nach Anwendung des Filters
\subsubsection{Vermeidung von Duplikaten}
\label{algorithmen_duplikate}
Nach der Normalisierung werden Duplikate innerhalb der erkannten Textdaten entfernt. Dies verringert ebenfalls die Redundanz der Textdaten und steigert die Effizienz der nachfolgenden Filterverfahren.
% TODO Beispielhafter Vergleich der Daten vor bzw. nach Anwendung des Filters
\subsubsection{Filterung anhand der Genauigkeit}
\label{algorithmen_confidence}
Tesseract stellt im Rahmen der Texterkennung auch immer Metadaten zu den erkannten Texten zur Verfügung. Bei erkannten Wörtern wird beispielsweise immer eine Genauigkeit (\engl{Confidence}) 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.
@@ -23,6 +27,7 @@ Der Confidence-Filter prüft die jeweiligen Wörter auf ihre Metadaten und verwi
% TODO Beispielhafter Vergleich der Daten vor bzw. nach Anwendung des Filters
\subsubsection{Filterung anhand der Wortlänge}
\label{algorithmen_wortlänge}
Verarbeitet das Texterkennungssystem Texte mit unregelmäßigen Abständen oder grafischen Artefakten in der Schrift, werden statt des eigentlichen Wortes fälschlicherweise oft relativ kurze Symbolkombinationen erkannt. Um diese Kombinationen aus den Ergebnisdaten zu entfernen, können Zeichenketten mithilfe des Wortlängenfilters ungeachtet ihres Inhaltes verworfen werden.
@@ -31,6 +36,7 @@ Zusätzlich kann dieser Filter an die Anforderung des Zielsystems angepasst werd
% TODO Beispielhafter Vergleich der Daten vor bzw. nach Anwendung des Filters
\subsubsection{Sprachabhängige Filterung mittels Regular Expressions}
\label{algorithmen_regex}
Nachdem die zu filternden Textdaten durch vorherige Schritte weitestgehend vorverarbeitet wurden, werden die Ergebnisdaten ein letztes Mal mithilfe von regulären Ausdrücken (\engl{Regular Expressions}) durchsucht. Aufgrund der guten Erweiterbarkeit der Regular Expressions ist es einfach, für jede Sprache einen individuellen Filter anzulegen, der den jeweiligen Zeichensatz beschriftet und unbekannte Sonderzeichen oder Symbole entfernt. So sind beispielsweise im Deutschen Umlaute erlaubt, während häufig auftretende, jedoch unerwünschte Symbole wie das phonetische Zeichen "æ" explizit entfernt werden können.
@@ -1,44 +1,43 @@
\subsection{Preprocessing}
\label{algorithmen_preprocessing}
Beim sogenannten "Preprocessing" werden die zu verarbeitenden Bilder für die Texterkennung vorbereitet, um die Qualität der erkannten Textdaten zu verbessern.
Beim sogenannten "Preprocessing" werden die zu verarbeitenden Bilder 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 \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 sich den in \autoref{annahmen_bild_optimal} definierten optimalen Tesseract-Eingangsdaten anzunähern.
Verwendet man moderne Tesseract-Implementierungen, sind in diesen oft bereits rudimentäre Bildverarbeitungswerkzeuge verfügbar \mcite{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 sich den in \autoref{annahmen_bild_optimal} definierten optimalen Tesseract-Eingangsdaten anzunähern.
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:
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:
\subsubsection{Resampling}
\label{algorithmen_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.
Bei Resampling wird die Bildauflösung durch "Neuabtastung" verändert. Um die für Tesseract optimale \mcite{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. [TODO: Beispielbild für Bilineare Skalierung oder nearest-neighbor hier einfügen]. Unter den verschiedenen Resampling-Filtern, die ImageMagick bereitstellt, haben sich insbesondere die Bikubische Interpolation und das Lanczos-Verfahren als für die Texterkennung mit Tesseract geeignet erwiesen \cite{todo}:
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. [TODO: Beispielbild für Bilineare Skalierung oder nearest-neighbor hier einfügen]. Unter den verschiedenen Resampling-Filtern, die ImageMagick bereitstellt, haben sich insbesondere die Bikubische Interpolation und das Lanczos-Verfahren als für die Texterkennung mit Tesseract geeignet erwiesen \mcite{todo}:
\subsubsubsection{Bikubische Interpolation}
\label{algo:bicubic_interpolation}
Die Bikubische Interpolation stellt eine Erweiterung der Kubischen Spline Interpolation dar. Für die Berechnung des Ergebniswertes eines Pixels werden bei diesem Verfahren sowohl Pixel aus der ersten, als auch aus der zweiten Nachbarschaft berücksichtigt, wodurch -- zu lasten der Laufzeitperformanz -- eine hohe Detailtreue erhalten werden kann. Mithilfe von Streuparametern kann beeinflusst werden, wie stark die Übergänge zwischen einzelnen Pixeln geglättet werden \bzw wie scharf die Kanten im berechneten Ergebnisbild sind. Abhängig von der Qualität der Ausgangsdaten können Skalierungsartefakte dadurch weitestgehend vermieden werden.
% TODO
Beschreibung Funktionsweise
% TODO Beschreibung Funktionsweise
% TODO
Vergleichsbilder (Zeige eine grafik und einen text-screenshot. Hier fällt auf, dass die grafik gut aussieht, aber text eher verschwommen wird, was schlecht für tesseract ist)
% TODO Vergleichsbilder (Zeige eine grafik und einen text-screenshot. Hier fällt auf, dass die grafik gut aussieht, aber text eher verschwommen wird, was schlecht für tesseract ist)
Bei Verwendung der Bikubischen Interpolation als Resampling-Algorithmus fällt auf, dass Bilder und Grafiken durch die Glättung für das menschliche Auge ansprechender wirken. Tesseract jedoch profitiert stark von klaren Texten und hohen Kontrasten, weswegen diese Art des Resamplings keine ideale Basis für die nächsten Preprocessingschritte bildet.
\subsubsubsection{Lanczos Filterung}
\label{algorithmen_lanczos}
Das Lanczos-Verfahren erlaubt es, Bilder beim Resampling präzise zu rekonstruieren. Es verwendet eine Fensterfunktion, basierend auf dem nichtnormierten Sinus Cardinalis, auch bekannt als Samplingfunktion \(sinc(x)\) und erzeugt im Gegensatz zur \hyperref[algo:bicubic_interpolation]{Bikubischen Interpolation} weniger stark geglättete Ergebnisse, dafür sind diese jedoch meist schärfer. Durch die Verwendung der aufwändigen Samplingfunktion ist Resampling nach der Lanczos-Methode vergleichsweise rechenintensiv.
% TODO
Vergleichsbilder
% TODO Vergleichsbilder
[TODO Figure: Details und Konturen werden gut beibehalten]
% TODO neutral bleiben! Entfernen oder verschieben
% TODO Figure: Details und Konturen werden gut beibehalten
Aufgrund der höheren Bildschärfe und den dadurch deutlich klareren Texten fällt die Wahl des Skalierungsverfahrens für die weiteren Schritte auf die Lanczos-Methode.
\subsubsection{Rahmen}
\label{algorithmen_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.
@@ -49,25 +48,51 @@ Befindet sich Text zu nah am Rand des Bildes, kommt es vor, dass dieser nicht ri
\label{fig:bsp_rahmen_großs}
\end{figure}
\subsubsection{Thresholding und Binarisierung}
\subsubsection{Binarisierung}
\label{algorithmen_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.
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 fix definiert oder anhand von verschiedensten Algorithmen ermittelt werden. Ziel ist es, durch die Binarisierung textuelle Bildinhalte unabhängig von der eigentlichen Vorder- und Hintergrundfarbe mit ausreichendem Kontrast darzustellen. Somit 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, deren Eignung in \autoref{Vergleich} verglichen wird.
ImageMagick bietet eine Vielzahl an Thresholding-Algorithmen, deren Eignung in \autoref{vergleich} verglichen wird.
\subsubsubsection{Feste Schwellenwertmethode}
\label{thresholding_fixed}
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.
Ein häufig für die Bildsegmentierung genutztes Verfahren ist die 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, gilt er als Teil des Vordergrunds, andernfalls als Hintergrund. Somit können Objekte, 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.
Obwohl das fixe Thresholding durch seine Simplizität einen relativ geringen Berechnungsaufwand benötigt und daher eine hohe Performance aufweist, sind die Ergebnisdaten abhängig von dem Schwellenwert und dem Ausgangsbild meist 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\%.
% TODO Vergleichsbilder
\subsubsubsection{Adaptives Thresholding}
\subsubsubsection{Adaptive Schwellenwertmethode}
\label{thresholding_adaptive}
\subsubsubsection{Dreiecks-Thresholding}
Bei der adaptiven Schwellenwertmethode wird der Schwellenwert auf Basis der lokalen Eigenschaften eines Bildbereichs angepasst, der durch die sogenannte "Blockgröße" definiert wird. Innerhalb eines Blocks wird schließlich ein fixer Schwellenwert ermittelt. Dadurch 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.
\subsubsubsection{Thresholding nach Otsu}
% TODO Vergleichsbilder
\subsubsubsection{Thresholding nach Kapur}
\subsubsubsection{Dreiecks-Schwellenwertmethode}
\label{thresholding_triangle}
Das Dreiecks-Schwellenwertverfahren verwendet das Histogramm eines Bildes, um einen globalen Schwellenwert zu ermitteln. Innerhalb des Histogramms wird eine Linie vom Höchstwert (\engl{Peak}) zum Minimum gezeichnet und ermittelt die Normale mit der maximalen Länge. Dieses Verfahren erzielt die besten Ergebnisse, wenn die zu extrahierenden Elemente Intensitätswerte aufweisen, die an der Basis des ermittelten Peaks liegen. Für Screenshots von UI-Elementen mit komplexer Struktur und farblich stark variierenden Komponenten ist es eher nicht geeignet.
% TODO Vergleichsbilder
\subsubsubsection{Schwellenwertmethode nach Otsu}
\label{thresholding_otsu}
Bei dem Schwellenwertverfahren nach Otsu wird der globale Schwellenwert für ein Bild anhand des jeweiligen Histogramms ermittelt. Aufgrund dieser Eigenschaften funktioniert das Verfahren am besten, wenn das Histogramm des Bildes eine bimodale Verteilung aufweist, also zwei klare Spitzen hat. % TODO Beispielbild eines optimalen histogramms.
Enthält ein Bild jedoch starkes Hintergrundrauschen, funktioniert die Schwellenwertermittlung nur unzuverlässig. Weist es lokale Helligkeitsunterschiede auf, wie es bei grafischen Oberflächen mit ihren unterschiedlich eingefärbten Oberflächensektionen oft der Fall ist, entstehen Dank der Bestimmung eines einzelnen globalen Wertes für das gesamte Bild ähnliche Probleme wie bei der \hyperref[thresholding_fixed]{fixen Schwellenwertmethode}.
% TODO Vergleichsbilder
\subsubsubsection{Schwellenwertmethode nach Kapur}
\label{thresholding_kapur}
Die Schwellenwertmethode nach Kapur, Sahoo und Wong zielt darauf ab, einen Schwellenwert zu finden, der die Entropie zwischen den Vorder- und Hintergrundregionen maximiert.
% TODO kurzer Mathematischer Exkurs
Dieses Schwellenwertverfahren liefert gute Ergebnisse bei Bildern mit starker Varianz der Vorder- und Hintergrundkontraste \bzw eine breite Helligkeitsverteilung aufweist.
% TODO Vergleichsbilder
+5 -1
View File
@@ -4,6 +4,7 @@
Um die Texterkennung mittels Tesseract und die anschließende Filterung der Ergebnisdaten zu verbessern, ist es sinnvoll, Anwendungsspezifische Annahmen für den Verarbeitungsablauf festzulegen.
\subsection*{Preprocessing}
\label{annahmen_preprocessing}
\subsubsection*{Eigenschaften von Screenshots}
\label{annahmen_bild_eigenschaften}
@@ -15,13 +16,14 @@ Im Falle dieser Bachelorarbeit handelt es sich bei den zu verarbeitenden Bildern
\subsubsection*{Optimieren von Daten für Tesseract}
\label{annahmen_bild_optimal}
Für die Verwendung von Tesseract ist es wichtig, unabhängig von der Diversität der Ausgangsdaten möglichst einheitliche Bilder zu generieren, die den Trainingsdaten des neuronalen Netzes ähnlich sehen \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.
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 \mcite{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.
% TODO Textbeschreibung, welche Eigenschaften die Eingangsdaten am besten haben sollten
% TODO Beispielbilder: So sollen die Daten optimalerweise aussehen
\subsection*{Postprocessing}
\label{annahmen_postprocessing}
\subsubsection*{Filtern von Symbolen}
@@ -30,12 +32,14 @@ Bei der Texterkennung kommt es manchmal vor, dass grafische Elemente als Unicode
% TODO Zeigen ungefilterter Ergebnisdaten
\subsubsection*{Mehrsprachigkeit}
\label{annahmen_mehrsprachigkeit}
Eine weitere Anforderung an das Textverarbeitungssystem ist außerdem das Einlesen und Interpretieren mehrsprachiger Bilddateien. So sollen beispielsweise Bilder mit englischen, deutschen oder italienischen Inhalten zugeführt und die Ergebnisdaten richtig verarbeitet werden können. Um eine Filterung für verschiedene Zeichensätze zu ermöglichen und eine Unterstützung für Sprachen mit nicht-lateinischen Schriften zu gewährleisten, werden dynamische Sprachfilter verwendet, die individuell an die jeweilige Sprache angepasst werden können. Um die Ergebnisdaten nicht unnötig aufzubauschen, werden für die initialen Tests und die Beschreibung der generellen Vorgehensweise im Rahmen dieser Bachelorarbeit werden jedoch nur deutsche oder englische Inhalte verarbeitet.
% TODO Postprocessing, NLP Folien
\subsubsection*{Schlagworte}
\label{annahmen_schlagworte}
Für die spätere Suche von Screenshots sollen relevante Schlagworte aus den erkannten Textdaten extrahiert werden. Ein Wort eignet sich dann als Schlagwort, wenn es in relevantem Bezug zum jeweiligen Bild steht und dabei idealerweise eine wichtige Aktion oder Information widerspiegelt. Inhalte, die direkt in der grafischen Benutzeroberfläche ersichtlich sind, eignen sich demnach besonders gut als Suchworte. Damit die Menge an Schlagwörtern allerdings nicht zu unspezifisch wird, sollte es vermieden werden, allgemeine sogenannte Stoppwörter (\engl{Stop words}) ohne besondere Semantik, wie "und", "oder", in das Ergebnis mit aufzunehmen. Sie beinhalten keine spezifische Information und fördern aufgrund ihrer Häufigkeit das Auftreten von Verwechslungen.
@@ -1,4 +1,4 @@
\subsection{Testaufbau}
\label{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{metriken} beschriebenen Fehlermetriken miteinander verglichen werden.
Der Testaufbau im Rahmen der Implementierung, beschrieben in \autoref{implementierung}, erlaubt ein dynamisches Verketten von verschiedenen Bildverarbeitungs- und Textfilterungsschritten. Für einen objektiven Vergleich zwischen den unterschiedlichen Vorgehensweisen und Algorithmen wird eine Grundabfolge der jeweiligen Schritte in einer "Processing-Pipeline" definiert. Die Ergebnisse können schließlich anhand der in \autoref{metriken} beschriebenen Fehlermetriken mit einer durch den Menschen verschlagworteten Vergleichsmenge abgeglichen werden.
+13 -13
View File
@@ -7,17 +7,17 @@
Die Bachelorarbeit basiert auf folgender Einstiegsliteratur zum Thema OCR und Tesseract Engine:
\begin{itemize}
\item An Overview of the Tesseract OCR Engine \cite{Smith2007}
\item Advances in Character Recognition \cite{DingXiaoqing2012AiCR}
\item Optical Character Recognition Systems for Different Languages with Soft Computing \cite{ChaudhuriArindam2017OCRS}
\item Character recognition systems : a guide for students and practioners \cite{2007Crs}
\item Soft computing and signal processing \cite{2022Scas}
\item An Overview of the Tesseract OCR Engine \mcite{Smith2007}
\item Advances in Character Recognition \mcite{DingXiaoqing2012AiCR}
\item Optical Character Recognition Systems for Different Languages with Soft Computing \mcite{ChaudhuriArindam2017OCRS}
\item Character recognition systems : a guide for students and practioners \mcite{2007Crs}
\item Soft computing and signal processing \mcite{2022Scas}
\end{itemize}
\noindent Auch auf der Website des Tesseract-Projektes beziehungsweise im Wiki des GitHub-Repositories finden sich nebst zahlreichen Publikationen zur Tesseract Engine selbst auch wichtige Information zur richtigen Verwendung von Tesseract:
\begin{itemize}
\item Tesseract Documentation \cite{tessdoc}
\item Tesseract Documentation \mcite{tessdoc}
\end{itemize}
@@ -26,19 +26,19 @@ Die Bachelorarbeit basiert auf folgender Einstiegsliteratur zum Thema OCR und Te
Neben dem in der FH Oberösterreich vermittelten Wissen bildet unter anderem folgende Einstiegsliteratur die Basis für das Datenbankdesign und die UML-Diagramme:
\begin{itemize}
\item Datenbanksysteme - Eine Einführung \cite{KemperAlfons2015D:eE}
\item Datenbanken-Implementierungstechniken \cite{SaakeGunter2011D-I:}
\item The unified modeling language user guide \cite{BoochGrady1999Tuml}
\item UML : Database Modeling Workbook \cite{BlahaMichael2013U:dm}
\item UML \& data modeling : a reconciliation \cite{HayDavidC2011U}
\item Datenbanksysteme - Eine Einführung \mcite{KemperAlfons2015D:eE}
\item Datenbanken-Implementierungstechniken \mcite{SaakeGunter2011D-I:}
\item The unified modeling language user guide \mcite{BoochGrady1999Tuml}
\item UML : Database Modeling Workbook \mcite{BlahaMichael2013U:dm}
\item UML \& data modeling : a reconciliation \mcite{HayDavidC2011U}
\end{itemize}
\section{Approximate String Matching}
Für das Approximate String Matching, das fuer eine bessere Einteilung des erkannten Texts in bestehende Schlagworte sorgen soll, wird unter Anderem auf folgende Publikationen zurückgegriffen:
\begin{itemize}
\item A Guided Tour to Approximate String Matching \cite{Navarro2000}
\item Practical Methods for Approximate String Matching \cite{Hyyr2003PracticalMF}
\item A Guided Tour to Approximate String Matching \mcite{Navarro2000}
\item Practical Methods for Approximate String Matching \mcite{Hyyr2003PracticalMF}
\end{itemize}
+2 -2
View File
@@ -19,8 +19,8 @@
- Vergleich (Testaufbau abstrakt!)
- ~~Metriken~~
- Grundsätzliches Konzept hinter Pipeline
- Verwendete Algorithmen (neutral!)
- Preprocessing
- ~~Verwendete Algorithmen (neutral!)~~
- ~~Preprocessing~~
- ~~Postprocessing~~
- Durchführung
- Implementierung
BIN
View File
Binary file not shown.
+1 -1
View File
@@ -3,7 +3,7 @@
% !TeX spellcheck = de_DE
% !BIB program = biber
\documentclass[bachelor,german,smartquotes, proposal]{hgbthesis}
\documentclass[bachelor,german,smartquotes]{hgbthesis}
\RequirePackage[utf8]{inputenc} % bei Verw. von lualatex oder xelatex entfernen!