todays changes

This commit is contained in:
Simon
2024-01-04 16:59:41 +01:00
parent d01bf6179a
commit 9020114fbd
26 changed files with 211 additions and 164 deletions
+9
View File
@@ -6,3 +6,12 @@ Preprocessing
Pre-
Postprocessing-Schritte
CER
Texterkennungsframework
Engines
Thresholding
Interpolationsmethoden
Skalierungsmethoden
Thresholding-Algorithmen
Confidence
Expressions
Regular
+2
View File
@@ -1 +1,3 @@
{"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$"}
{"rule":"DE_AGREEMENT","sentence":"^\\QDiese stellt mit mittlerweile über 50.000 Sternen auf der Repository-Hosting Plattform GitHub eines der beliebtesten Texterkennungssysteme dar \\E(?:Dummy|Ina|Jimmy-)[0-9]+\\Q \\E(?:Dummy|Ina|Jimmy-)[0-9]+\\Q.\\E$"}
{"rule":"DE_AGREEMENT","sentence":"^\\QAußerdem stellt sie mit mittlerweile über 50.000 Sternen auf der Repository-Hosting Plattform GitHub eines der beliebtesten Texterkennungssysteme dar \\E(?:Dummy|Ina|Jimmy-)[0-9]+\\Q \\E(?:Dummy|Ina|Jimmy-)[0-9]+\\Q.\\E$"}
-5
View File
@@ -1,5 +0,0 @@
\chapter{Optical Character Recognition}
\label{cha:OCR}
\input{chapters/c03_preprocessing}
\input{chapters/c03_postprocessing}
-25
View File
@@ -1,25 +0,0 @@
\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}
-85
View File
@@ -1,85 +0,0 @@
\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)
TODO zeige Algorithmus variante 1 + erklärung algorithmus + zugehörige WER und CER
TODO zeige Algorithmus variante 2 + erklärung algorithmus + zugehörige WER und CER
TODO zeige Algorithmus variante 3 + erklärung algorithmus + zugehörige WER und CER
\subsubsection{Dilation und Erosion}
TODO remove??
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}
TODO zeige Rahmen variante 1 + zugehörige WER und CER
TODO zeige Rahmen variante 2 + zugehörige WER und CER
TODO zeige Rahmen variante 3 + zugehörige WER und CER
TODO Wie oben zu sehen verändern unterschiedliche Rahmengrößen das Verhältnis an richtig erkannten Texten nur wenig. ...
\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 zeige Vorgehen variante 1 + erklärung algorithmus + zugehörige WER und CER
TODO zeige Vorgehen variante 2 + erklärung algorithmus + zugehörige WER und CER
TODO zeige Vorgehen variante 3 + erklärung algorithmus + zugehörige WER und CER
(
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
@@ -1,2 +0,0 @@
\chapter{Schlagwortsuche}
\label{cha:Schlagwortsuche}
@@ -0,0 +1,3 @@
\section{Fragestellung}
Ziel dieser Bachelorarbeit ist es, herauszufinden, 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.
@@ -0,0 +1,7 @@
\section{Herausforderungen}
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 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.
+6
View File
@@ -0,0 +1,6 @@
\chapter{Einleitung}
\label{ch:Einleitung}
\input{chapters/c10_einleitung/motivation}
\input{chapters/c10_einleitung/herausforderungen}
\input{chapters/c10_einleitung/fragestellung}
@@ -1,6 +1,3 @@
\chapter{Einleitung}
\label{cha: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.
@@ -11,16 +8,4 @@ In der Produktdokumentation werden, besonders in Hinblick auf die grafischen Too
Während das Programm auch die Basisfunktionalität, das effiziente 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.
Mithilfe von optischer Texterkennung (engl. optical character recognition, "OCR") soll es den Mitarbeitern möglich gemacht werden, hochgeladene Screenshots und Grafiken innerhalb von kürzester Zeit aufgrund ihrer Inhalte zu verschlagworten und auf eine bestehende Liste von Schlagworten (engl. "Keywords" beziehungsweise "Tags") zu prüfen.
\section{Herausforderungen}
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 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 Resultate der Bild- und Textverarbeitung anhand gängiger Fehlermetriken für Texterkennungssysteme verglichen.
Mithilfe von optischer Texterkennung (engl. optical character recognition, "OCR") soll es den Mitarbeitern möglich gemacht werden, hochgeladene Screenshots und Grafiken innerhalb von kürzester Zeit aufgrund ihrer Inhalte zu verschlagworten und auf eine bestehende Liste von Schlagworten (engl. "Keywords" beziehungsweise "Tags") zu prüfen.
+5
View File
@@ -0,0 +1,5 @@
\chapter{Grundlagen}
\label{ch:Grundlagen}
\input{chapters/c20_grundlagen/stand_der_technik}
\input{chapters/c20_grundlagen/technologien}
@@ -0,0 +1,13 @@
\section{Stand der Technik}
\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}.
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.
\subsection{Filterung der Ergebnisdaten}
Das Themengebiet des Natural Language Processing beschäftigt sich mit der Interaktion zwischen menschlicher Sprache und Computern. Natural Language Processing kombiniert Techniken aus der Informatik, Linguistik und dem maschinellen Lernen, um mit menschlicher Sprache umzugehen und beispielsweise Textanalyse, Übersetzungen, Spracherkennung oder Dialogsysteme möglich zu machen. Durch die große Aufmerksamkeit und die häufige Nutzung der Technologien -- beispielsweise in digitalen Sprachassistenten -- sowie dem Aufkommen von neuronalen Netzwerken wurden in diesem Forschungsgebiet in den letzten Jahren immer wieder Fortschritte erzielt.
Dadurch gibt es zahlreiche wissenschaftliche Ressourcen, die als Grundlage für die in dieser Bachelorarbeit verwendeten Vorgehensweise zur Interpretation und Extraktion relevanter Schlagworte aus den erkannten Freitextdaten dienen.
+11
View File
@@ -0,0 +1,11 @@
\section{Verwendete Technologien}
\subsection{Texterkennungssystem}
Die Nutzung der in \autoref{ch: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}.
\subsection{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.
@@ -0,0 +1,7 @@
\section{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.
[TODO: Beispiel-Screenshots]
@@ -0,0 +1,6 @@
\chapter{Optische Texterkennung}
\label{ch:OCR}
\input{chapters/c30_optische_texterkennung/akzeptanzkriterien}
\input{chapters/c30_optische_texterkennung/preprocessing}
\input{chapters/c30_optische_texterkennung/postprocessing}
@@ -0,0 +1,23 @@
\section{Postprocessing}
\subsection{Grundlagen}
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{Verwendete Vorgehensweisen}
\subsubsection{Filterung anhand der Confidence}
[TODO]
\subsubsection{Filterung anhand der Wortlänge}
[TODO]
\subsubsection{Sprachabhängige Filterung mittels Regular Expressions}
[TODO]
@@ -0,0 +1,53 @@
\section{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.
\subsection{Verwendete Algorithmen}
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] 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.
+3
View File
@@ -0,0 +1,3 @@
\section{Analyse}
[TODO]
+6
View File
@@ -0,0 +1,6 @@
\chapter{Vergleich}
\label{ch:Vergleich}
\input{chapters/c40_vergleich/metriken}
\input{chapters/c40_vergleich/vorgehensweise}
\input{chapters/c40_vergleich/analyse}
@@ -1,21 +1,9 @@
\chapter{Grundlagen}
\label{cha:Grundlagen}
\section{Stand der Technik}
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.
Für die Filterung der Ergebnisdaten werden unter anderem Vorgehensweisen aus dem gut erforschten Themengebiet des Natural Language Processing verwendet.
\section{Vergleichsmetriken}
\label{sec: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}
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.
@@ -0,0 +1,3 @@
\section{Vorgehensweise}
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.
@@ -1,4 +1,4 @@
\chapter{Zusammenfassung}
\label{cha:Zusammenfassung}
\label{ch:Zusammenfassung}
Hier werden die Ergebnisse der Bachelorarbeit zusammengefasst und die Ergebnisse besprochen.
@@ -1,5 +1,5 @@
\chapter{Literatur}
\label{cha:Literatur}
\label{ch:Literatur}
\section{Optical Character Recognition}
BIN
View File
Binary file not shown.
+33 -15
View File
@@ -1,19 +1,36 @@
%%% Dateikodierung: UTF-8
%%% äöüÄÖÜß <-- keine deutschen Umlaute hier? UTF-faehigen Editor verwenden!
%%% Magic Comments zum Setzen der korrekten Parameter in kompatiblen IDEs
% !TeX encoding = utf8
% !TeX program = pdflatex
% !TeX spellcheck = de_DE
% !BIB program = biber
\documentclass[bachelor,german,smartquotes, proposal]{hgbthesis}
% Zulässige Optionen in [..]:
% Typ der Arbeit: 'diploma', 'master' (default), 'bachelor', 'internship'
% Zusätzlich für ein Thesis-Exposé: 'proposal' (für 'bachelor' und 'master')
% Hauptsprache: 'german' (default), 'english'
% Option zur Umwandlung in typografische Anführungszeichen: 'smartquotes'
% APA Zitierstil: 'apa'
%%%-----------------------------------------------------------------------------
\newcommand{\includeImgFloat}[6]{
\begin{wrapfigure}{#1}{#2}
\includegraphics{#3}
\caption[#4]{#4\footnotemark}
\label{#6}
\end{wrapfigure}
\footnotetext{Source: \url{#5}}
}
\newcommand{\includeImg}[6]{
\begin{figure}[#1]
\begin{center}
\includegraphics[#2]{#3}
\caption[#4]{#4\footnotemark}
\label{#6}
\end{center}
\end{figure}
\footnotetext{Source: #5}
}
\newcommand{\subsubsubsection}[1]{
\noindent\textbf{\underline{#1}}\\
}
%%%-----------------------------------------------------------------------------
\RequirePackage[utf8]{inputenc} % bei Verw. von lualatex oder xelatex entfernen!
@@ -60,11 +77,12 @@
\mainmatter % Hauptteil (ab hier arab. Seitenzahlen)
%%%-----------------------------------------------------------------------------
\include{chapters/c01_einleitung}
\include{chapters/c02_grundlagen}
\include{chapters/c03}
\include{chapters/c04_Schlagwortsuche}
\include{chapters/c99_literatur}
\include{chapters/c10_einleitung/index}
\include{chapters/c20_grundlagen/index}
\include{chapters/c30_optische_texterkennung/index}
\include{chapters/c40_vergleich/index}
\include{chapters/c80_zusammenfassung/index}
\include{chapters/c90_literatur/index}
%%%-----------------------------------------------------------------------------
\backmatter % Schlussteil (Quellenverzeichnis und dgl.)
+16
View File
@@ -158,4 +158,20 @@
language = {eng}
}
@online{tessrepo,
title = {Tesseract Repository},
url = {https://github.com/tesseract-ocr/tesseract},
date = {2023-05-23},
urldate = {2024-01-04},
language = {eng}
}
@online{todo,
title = {TODO: MISSING SOURCE},
url = {https://example.com/todo},
date = {2023-05-23},
urldate = {2024-01-04},
language = {eng}
}