More fixes + title page
This commit is contained in:
@@ -5,7 +5,7 @@ Die in Salzburg ansässige COPA-DATA GmbH bietet die Softwareplattform zenon an,
|
||||
|
||||
Die zenon-Plattform kann sowohl vom Kunden selbst, als auch durch das Professional Services Team individuell auf Kundenanforderungen zugeschnitten und in bestehende Prozesse eingebunden werden. Den Grundstein für die hohe Anpassungsfähigkeit bildet die Produktdokumentation, in der Schnittstellendokumentation, Anleitungen und Beispiele in verschiedensten Sprachen, Formaten und mit kundenspezifischen Erweiterungen umfassend sowohl für Mitarbeiter, als auch für Kunden festgehalten sind.
|
||||
|
||||
In der Produktdokumentation werden, besonders in Hinblick auf die grafischen Tools wie die zenon Engineering Studio Entwicklungsumgebung oder die zenon Service Engine, zahlreiche Grafiken wie \autoref{annahmen_bild_eigenschaften_beispiel} verwendet, um Beispiele verständlicher zu machen und Anleitungen übersichtlicher zu gestalten. Um bei dem großen Funktionsumfang der zenon-Tools, den vielen Sprachen, Anpassungen und den unterschiedlichen Themengebieten innerhalb der Dokumentation nicht den Überblick zu verlieren, benötigt das interne "Technical Content and Translation" Team unterstützend zu dem intern verwendeten CMS eine dedizierte Anwendung zur Verwaltung von sprachabhängigen Bilddateien.
|
||||
In der Produktdokumentation werden, besonders in Hinblick auf die grafischen Tools wie die zenon Engineering Studio Entwicklungsumgebung oder die zenon Service Engine, zahlreiche Grafiken wie \autoref{bild_eigenschaften_beispiel} verwendet, um Beispiele verständlicher zu machen und Anleitungen übersichtlicher zu gestalten. Um bei dem großen Funktionsumfang der zenon-Tools, den vielen Sprachen, Anpassungen und den unterschiedlichen Themengebieten innerhalb der Dokumentation nicht den Überblick zu verlieren, benötigt das interne "Technical Content and Translation" Team unterstützend zu dem intern verwendeten CMS eine dedizierte Anwendung zur Verwaltung von sprachabhängigen Bilddateien.
|
||||
|
||||
\begin{figure}[ht]
|
||||
\centering
|
||||
@@ -23,7 +23,7 @@ In der Produktdokumentation werden, besonders in Hinblick auf die grafischen Too
|
||||
\end{minipage}\hfill
|
||||
\end{minipage}
|
||||
\caption{Beispielhafte Auswahl typischer Dialogscreenshots.}
|
||||
\label{annahmen_bild_eigenschaften_beispiel}
|
||||
\label{bild_eigenschaften_beispiel}
|
||||
\end{figure}
|
||||
|
||||
Während das Programm auch die Basisfunktionalität, das Speichern, Bearbeiten, Löschen, Abrufen beziehungsweise das generelle Verwalten von Screenshots und der zugehörigen Metainformation abdecken soll, konzentriert sich diese Bachelorarbeit primär auf die Kategorisierungsfunktionalität der Bildinhalte.
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
\chapter{Grundlagen}
|
||||
\label{Grundlagen}
|
||||
\label{grundlagen}
|
||||
|
||||
Für einen technischen Überblick und als Grundlage für die Auswahl der innerhalb dieser Bachelorarbeit verwendeten Algorithmen, wird im folgenden Kapitel näher auf \hyperref[grundlagen_texterkennungssysteme]{Texterkennungssysteme}, Grundlagen zur \hyperref[grundlagen_preprocessing]{Vorverarbeitung}, \hyperref[grundlagen_postprocessing]{Nachbearbeitung} sowie die verwendeten \hyperref[metriken]{Metriken} zum Vergleich eingegangen.
|
||||
|
||||
|
||||
@@ -6,10 +6,10 @@ Für optimale OCR-Ergebnisse ist es notwendig, die zu verarbeitenden Bilddaten z
|
||||
\subsection{Eigenschaften von Screenshots}
|
||||
\label{grundlagen_bild_eigenschaften}
|
||||
|
||||
Die zu verarbeitenden Bilder im Kontext dieser Bachelorarbeit sind ausschließlich digitale Bildschirmaufnahmen von grafischen Benutzeroberflächen. Es kann also angenommen werden, dass die Screenshots keine Transparenz aufweisen, die Perspektive der Aufnahme nicht verzerrt ist und im Normalfall nicht mit Bildrauschen zu rechnen ist, weshalb Rauschfilterung \mcite{kumar2017noise} nicht notwendig ist. Auch der Kontrast ist in den meisten Fällen ausreichend, um die relevanten Inhalte zu erkennen. Weiters ist bei der Bildverarbeitung auf farbige Hintergrundflächen zu achten, mit deren Unterstützung Bildschirmelemente in modernen grafischen Oberflächen oft markiert, gruppiert oder getrennt werden. Nach Sichtung des zu verarbeitenden Bilddatensatzes fällt auf, dass manche Screenshots durch das Selektieren mit der Maus sehr eng abgeschnitten wurden. Das ist bei dem Preprocessing ebenfalls zu berücksichtigen. Eine beispielhafte Auswahl typischer Screenshots findet sich in \autoref{grundlagen_bild_eigenschaften_beispiel}.
|
||||
Die zu verarbeitenden Bilder im Kontext dieser Bachelorarbeit sind ausschließlich digitale Bildschirmaufnahmen von grafischen Benutzeroberflächen. Es kann also angenommen werden, dass die Screenshots keine Transparenz aufweisen, die Perspektive der Aufnahme nicht verzerrt ist und im Normalfall nicht mit Bildrauschen zu rechnen ist, weshalb Rauschfilterung \mcite{kumar2017noise} nicht notwendig ist. Auch der Kontrast ist in den meisten Fällen ausreichend, um die relevanten Inhalte zu erkennen. Weiters ist bei der Bildverarbeitung auf farbige Hintergrundflächen zu achten, mit deren Unterstützung Bildschirmelemente in modernen grafischen Oberflächen oft markiert, gruppiert oder getrennt werden. Nach Sichtung des zu verarbeitenden Bilddatensatzes fällt auf, dass manche Screenshots durch das Selektieren mit der Maus sehr eng abgeschnitten wurden. Das ist bei dem Preprocessing ebenfalls zu berücksichtigen. Eine beispielhafte Auswahl typischer Screenshots findet sich in \autoref{bild_eigenschaften_beispiel}.
|
||||
|
||||
\subsection{Optimieren von Daten für Tesseract}
|
||||
\label{grundlagen_bild_optimal}
|
||||
\label{bild_optimal}
|
||||
|
||||
Für die Verwendung von Tesseract ist es wichtig, unabhängig von der Diversität der Ausgangsdaten möglichst einheitliche Bilder zu erzeugen \mcite{tessdoc}. Während störende Elemente wie Bildrauschen aus dem Bild entfernt werden, sollen Texte ohne Einfluss der eigentlichen Hinter- bzw. Vordergrundfarbe gut zu erkennen sein. Auch eine deutliche Abgrenzung von Formen oder grafischen Symbolen ist von großer Wichtigkeit \mcite{sporici2020improving} \mcite{mursari2021effectiveness}. Wie in \autoref{fig:screenshot_comparison_optimal} gezeigt, sollen farbige Hintergrundflächen und grafische Dekorationselemente verschwinden. Übrig bleibt optimalerweise nur der gut lesbare textuelle Inhalt des Bildes.
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
\section{Überblick Texterkennungssysteme}
|
||||
\label{grundlagen_texerkennungssysteme}
|
||||
\label{grundlagen_texterkennungssysteme}
|
||||
|
||||
Optische Texterkennung wird in der Informationstechnik eingesetzt, um Textinhalte aus gedruckten oder digital rasterisierten Medien zu extrahieren. Dieses Verfahren kann für diverse Anwendungsgebiete genutzt werden, wie beispielsweise für Handschrifterkennung \mcite{rakshit2010recognition} oder für das Ablesen von Nummernschildern eines Autos \mcite{asif2014overview, anyline_home}. Auf dem Markt gibt es dafür bereits viele kommerzielle Komplettlösungen wie "Anyline" \mcite{anyline_home}, "IronOCR" \mcite{ironocr_home}, "Google Cloud Vision" \mcite{gcv_home}, "Amazon Textract" \mcite{textract_home} oder "Microsoft Azure Computer Vision" \mcite{azurevision_home}, die oftmals gute Ergebnisse mit geringen Fehlerraten erzielen und sich in bestehende Prozesse oder Anwendungen integrieren lassen \mcite{the_old_bailey_and_ocr, cc_platforms_comparison}.
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
\section{Algorithmen zur Nachbearbeitung}
|
||||
\label{algorithmen_postprocessing}
|
||||
|
||||
Die extrahierten Textdaten aus den verarbeiteten Bilddaten werden später in einer schlagwortbasierten Suchfunktion verwendet. Um Redundanz innerhalb des Datensets zu reduzieren und falsch erkannte Ergebnisdaten zu verhindern, müssen die Ergebnisdaten der Texterkennung im Rahmen der Nachbearbeitung (\engl{Postprocessing}) gemäß \autoref{annahmen_postprocessing} weiterverarbeitet werden.
|
||||
Die extrahierten Textdaten aus den verarbeiteten Bilddaten werden später in einer schlagwortbasierten Suchfunktion verwendet. Um Redundanz innerhalb des Datensets zu reduzieren und falsch erkannte Ergebnisdaten zu verhindern, müssen die Ergebnisdaten der Texterkennung im Rahmen der Nachbearbeitung (\engl{Postprocessing}) gemäß \autoref{grundlagen_postprocessing} weiterverarbeitet werden.
|
||||
|
||||
\subsection{Filterung anhand der Genauigkeit}
|
||||
\label{algorithmen_confidence}
|
||||
|
||||
@@ -2,9 +2,9 @@
|
||||
\section{Algorithmen zur Vorverarbeitung}
|
||||
\label{algorithmen_preprocessing}
|
||||
|
||||
Wie bereits in \autoref{annahmen_preprocessing} beschrieben, werden die zu verarbeitenden Bilder bei der Vorverarbeitung (\engl{Preprocessing}) für die Texterkennung vorbereitet, um die Qualität der erkannten Textdaten zu verbessern.
|
||||
Wie bereits in \autoref{grundlagen_preprocessing} beschrieben, werden die zu verarbeitenden Bilder bei der Vorverarbeitung (\engl{Preprocessing}) für die Texterkennung vorbereitet, um die Qualität der erkannten Textdaten zu verbessern.
|
||||
|
||||
Verwendet man moderne Tesseract-Implementierungen, sind in diesen oft bereits rudimentäre Bildverarbeitungswerkzeuge verfügbar \mcite{tessdoc}. Mit diesen Werkzeugen werden die eingespeisten Bilder -- sofern nicht bereits im richtigen Format -- automatisch für die Texterkennung vorbereitet. Ohne weitere Einstellungen zu treffen, bewirkt diese Bildverarbeitung ein Umwandeln der Eingangsgrafiken in ein meist gut für Tesseract geeignetes Bild. Es ist jedoch zu beachten, dass die Bildverarbeitungsschritte individuell auf die erwarteten Eingangsdaten anzupassen sind. So können die Bilddaten den in \autoref{annahmen_bild_optimal} definierten optimalen Tesseract-Eingangsdaten angenähert werden.
|
||||
Verwendet man moderne Tesseract-Implementierungen, sind in diesen oft bereits rudimentäre Bildverarbeitungswerkzeuge verfügbar \mcite{tessdoc}. Mit diesen Werkzeugen werden die eingespeisten Bilder -- sofern nicht bereits im richtigen Format -- automatisch für die Texterkennung vorbereitet. Ohne weitere Einstellungen zu treffen, bewirkt diese Bildverarbeitung ein Umwandeln der Eingangsgrafiken in ein meist gut für Tesseract geeignetes Bild. Es ist jedoch zu beachten, dass die Bildverarbeitungsschritte individuell auf die erwarteten Eingangsdaten anzupassen sind. So können die Bilddaten den in \autoref{bild_optimal} definierten optimalen Tesseract-Eingangsdaten angenähert werden.
|
||||
|
||||
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:
|
||||
|
||||
@@ -68,7 +68,7 @@ Das Erzeugen eines Binärbildes ist durch Anwendung von Segmentierungsverfahren
|
||||
|
||||
Ein häufig für die Bildsegmentierung genutztes Verfahren ist die feste Schwellenwertmethode, im Englischen auch "Fixed Thresholding" genannt. Bei diesem Bildverarbeitungsverfahren wird ein manuell vordefinierter Grenzwert auf das gesamte Bild angewandt. Liegt ein Pixelwert über dem festgelegten Schwellenwert, gilt dieser als Teil des Vordergrunds, andernfalls als Hintergrund \mcite{sahoo1988survey}. Somit können Objekte, also die einzelnen Buchstaben in den Grafikdateien, von ihrem Hintergrund getrennt werden.
|
||||
|
||||
Das fixe Schwellenwertfahren benötigt durch den fest definierten Schwellenwert einen geringen Berechnungsaufwand und weist eine hohe Performance auf \mcite{todo}. Besonders bei Screenshotdateien kann es vorkommen, dass die eigentlich bunten grafischen Elemente der Benutzeroberfläche aufgrund ihrer Helligkeit über dem Schwellenwert liegen. Dadurch werden sie, genau wie der Text, als Vordergrund wahrgenommen und die gesamte Fläche wird einfärbig. Somit können jegliche Texte innerhalb dieser Fläche nicht vom Texterkennungssystem erkannt werden und die Qualität und Menge der erkannten Daten wird stark reduziert. Der Unterschied der Ergebnisdaten ist besonders im Vergleich von \autoref{thresholding_fixed_vergleich_gut} \bzw \autoref{thresholding_fixed_vergleich_schlecht} ersichtlich.
|
||||
Durch den globalen, fixen Schwellenwert ohne Berücksichtigung von Pixelnachbarschaften \etc weist das fixe Schwellenwertfahren einen geringen Berechnungsaufwand und daher eine hohe Performance auf \mcite{sahoo1988survey}. Besonders bei Screenshotdateien kann es vorkommen, dass die eigentlich bunten grafischen Elemente der Benutzeroberfläche aufgrund ihrer Helligkeit über dem Schwellenwert liegen. Dadurch werden sie, genau wie der Text, als Vordergrund wahrgenommen und die gesamte Fläche wird einfärbig. Somit können jegliche Texte innerhalb dieser Fläche nicht vom Texterkennungssystem erkannt werden und die Qualität und Menge der erkannten Daten wird stark reduziert. Der Unterschied der Ergebnisdaten ist besonders im Vergleich von \autoref{thresholding_fixed_vergleich_gut} \bzw \autoref{thresholding_fixed_vergleich_schlecht} ersichtlich.
|
||||
|
||||
\begin{figure}[ht]
|
||||
\centering
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
\section{Texterkennungssystem}
|
||||
\label{konzept_texterkennungssystem}
|
||||
|
||||
Wie bereits in \autoref{texerkennungssysteme} beschrieben, ist die Nutzung vieler OCR-Anwendungen \bzw Dienstleistungen kostenpflichtig und die genaue innere Vorgehensweise dieser Programme ist nicht öffentlich bekannt \mcite{textract_pricing, gcv_pricing, azurevision_pricing}. Aufgrund dieser Tatsachen ist die Wahl des Texterkennungssystems für die prototypische Implementierung dieser Bachelorarbeit auf die quelloffene und kostenlose Tesseract Open Source OCR Engine gefallen.
|
||||
Wie bereits in \autoref{grundlagen_texterkennungssysteme} beschrieben, ist die Nutzung vieler OCR-Anwendungen \bzw Dienstleistungen kostenpflichtig und die genaue innere Vorgehensweise dieser Programme ist nicht öffentlich bekannt \mcite{textract_pricing, gcv_pricing, azurevision_pricing}. Aufgrund dieser Tatsachen ist die Wahl des Texterkennungssystems für die prototypische Implementierung dieser Bachelorarbeit auf die quelloffene und kostenlose Tesseract Open Source OCR Engine gefallen.
|
||||
|
||||
\section{Bildbearbeitungswerkzeug}
|
||||
\label{konzept_bildbearbeitungswerkzeug}
|
||||
|
||||
@@ -18,7 +18,7 @@ Die für die prototypische Implementierung verwendeten Bibliotheken stellen Komp
|
||||
\subsection{Fremdbibliotheken}
|
||||
\label{components_external}
|
||||
|
||||
In der prototypischen Implementierung, entwickelt in \csharp .NET, wurden in Referenz an die in \autoref{technologien} vorgestellten Technologien und Werkzeuge folgende NuGet-Bibliotheken als Basis für die Implementierung verwendet.
|
||||
In der prototypischen Implementierung, entwickelt in \csharp .NET, wurden in Referenz an die in \autoref{grundlagen} vorgestellten Technologien und Werkzeuge folgende NuGet-Bibliotheken als Basis für die Implementierung verwendet.
|
||||
|
||||
\begin{itemize}
|
||||
\item\textbf{Magick.NET} \mcite{nuget_magicknet}\\Version: 13.1.0\\Lizenz: Apache-2.0\\
|
||||
@@ -168,7 +168,7 @@ var preprocessing = new ProcessorChainConfiguration<MagickImage, MagickImage>()
|
||||
\label{prg:preprocessor_definition}
|
||||
\end{program}
|
||||
|
||||
Wurde der übergebene Screenshot vom Texterkennungssystem verarbeitet, müssen nun die Ergebnisse gefiltert werden. Dazu werden zunächst die Metadaten der einzelnen Wörter betrachtet und alle Elemente mit einer Confidence unter einem Schwellenwert von 50\% verworfen. Danach werden die erkannten Texte mittels der \csharp-Funktion \lstinline{ToLower()} normalisiert und anschließend auf Duplikate untersucht. Wurden alle Duplikate verworfen, werden die Wörter mittels sprachabhängigen Regular Expressions untersucht. Gemäß den Annahmen in \autoref{annahmen_mehrsprachigkeit} wurde ein simpler englischer (\lstinline|[\w'\-]{2,}|) sowie deutscher (\lstinline|[\w'\-äöüÄÖÜß]{2,}|) Sprachfilter festgelegt.
|
||||
Wurde der übergebene Screenshot vom Texterkennungssystem verarbeitet, müssen nun die Ergebnisse gefiltert werden. Dazu werden zunächst die Metadaten der einzelnen Wörter betrachtet und alle Elemente mit einer Confidence unter einem Schwellenwert von 50\% verworfen. Danach werden die erkannten Texte mittels der \csharp-Funktion \lstinline{ToLower()} normalisiert und anschließend auf Duplikate untersucht. Wurden alle Duplikate verworfen, werden die Wörter mittels sprachabhängigen Regular Expressions untersucht. Gemäß den Rahmenbedingungen in \autoref{grundlagen_mehrsprachigkeit} wurde ein simpler englischer (\lstinline|[\w'\-]{2,}|) sowie deutscher (\lstinline|[\w'\-äöüÄÖÜß]{2,}|) Sprachfilter festgelegt.
|
||||
|
||||
\begin{program}[!ht]
|
||||
\begin{CsCode}[numbers=none]
|
||||
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Reference in New Issue
Block a user