Initial commit, based on expose

This commit is contained in:
Simon
2023-10-22 14:34:17 +02:00
commit ba944905a6
25 changed files with 2742 additions and 0 deletions
+8
View File
@@ -0,0 +1,8 @@
\chapter{Forschungsstand}
\label{cha:Forschungsstand}
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.
+4
View File
@@ -0,0 +1,4 @@
\chapter{Fragestellung}
\label{cha: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.
+46
View File
@@ -0,0 +1,46 @@
\chapter{Vorläufige Gliederung}
\label{cha:Vorläufige Gliederung}
\begin{enumerate}
\item Einleitung, Aufgabenstellungen und Ziele
\item Themengrundlagen und Forschungsstand
\item Konzept / Design
\begin{enumerate}[label*=\arabic*.]
\item Texterkennung
\begin{enumerate}[label*=\arabic*.]
\item Vergleich verschiedener Bildtransformationstechniken
\item Konzepte zur Filterung der Ergebnisdaten
\end{enumerate}
\item Datenbankstruktur
\begin{enumerate}[label*=\arabic*.]
\item Entwicklung einer Struktur für das Verbinden von Schlagwörtern mit Datenbankobjekten
\end{enumerate}
\item Programmaufbau
\begin{enumerate}[label*=\arabic*.]
\item Beschreibung der Bibliotheksarchitektur
\item Schnittstellenbeschreibung
\item Konzept für Vor- und Nachbearbeitung der Daten
\item Entwurf der unscharfen Suche in den Ergebnisdaten
\end{enumerate}
\end{enumerate}
\item Prototypische Umsetzung
\begin{enumerate}[label*=\arabic*.]
\item Texterkennung
\begin{enumerate}[label*=\arabic*.]
\item Module für "Bildvorbereitung"
\item Module für Nachbearbeitung der Ergebnisdaten
\begin{itemize}
\item Filtern von erkannten Textdaten
\item Erkennen von Schlüsselwörtern durch unscharfe Suche
\end{itemize}
\end{enumerate}
\item Datenbankstruktur
\item Anbindung an bestehenden "ScreenshotManager"
\begin{enumerate}[label*=\arabic*.]
\item Einbinden der Bibliothek
\item GUI-Prototyp für Bild-Upload
\item \raggedright Verknüpfung der Schlagwortdatenbank mit bestehender Datenbankstruktur
\end{enumerate}
\end{enumerate}
\item Zusammenfassung und Erfahrungen
\end{enumerate}
+46
View File
@@ -0,0 +1,46 @@
\chapter{Literatur}
\label{cha:Literatur}
\section{Optical Character Recognition}
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}
\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}
\end{itemize}
\section{Datenbankdesign und UML}
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}
\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}
\end{itemize}
+28
View File
@@ -0,0 +1,28 @@
\chapter{Postprocessing}
\label{cha:Postprocessing}
% Preprocessing: Vorbereiten der Screenshots für die Bildverarbeitung
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.
\section{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.
\subsubsection{Vergleich}
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 TODO: in Kombination mit dem TODO: Algoritmus 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.
+39
View File
@@ -0,0 +1,39 @@
\chapter{Preprocessing (Probekapitel)}
\label{cha:Preprocessing}
% Preprocessing: Vorbereiten der Screenshots für die Bildverarbeitung
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 (TODO: QUELLE). 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.
\section{Stand der Technik}
Die im Rahmen dieser Bachelorarbeit verwendete Texterkennungs-Engine Tesseract verfügt in der aktuellen Version (TODO: VERSION) (TODO: QUELLE) über ein neurales Netzwerk, mit dem auf Basis von sprachspezifischen Trainingsdaten (TODO: QUELLE) Texte in Bildern erkannt werden können.
Laut der Tesseract-Dokumentation gibt es gemäß dem derzeitigen Stand der Technik eine empfohlene Vorgehensweise bei der Vorbereitung von Bildern für die Texterkennung. Jede Methodik bietet dabei wiederum je nach Eigenschaften der Bilddatei verschiedene Vor- und Nachteile:
TODO:
[Auflistung einiger Methodiken, mit vor und nachteilen und bildern]
Verwendet man moderne Tesseract-Implementierungen, sind in diesen oft bereits rudimentäre Bildverarbeitungswerkzeuge verfügbar. Mit diesen Werkzeugen werden die eingespeisten Bilder - sofern nicht bereits im richtigen Format - meist automatisch für die Texterkennung vorbereitet.
Diese initialie Bildverarbeitung, das sogenannte "Preprocessing", folgt in der aktuellen Tesseract-Version folgendem Schema:
TODO: Tesseract-eigenes Preprocessing
(TODO: [Erläuterung der Gründe und Beispiele warum bzw. in welchen Fällen das Preprocessing versagt])
Ohne weitere Einstellungen zu treffen, bewirkt die oben beschriebene Bildverarbeitung zwar ein Umwandeln der Eingangsgrafiken in ein grundsätzlich gutes (TODO: das ist universell aber halt kaka)
\subsection{Optimierung}
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 sowohl 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.
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.
\subsubsection{Vergleich}
[Erläuterung der verwendeten Methodiken und Erläuterung warum sie sich so gut für Screenshots eignen]
[Auswirkungen der verschiedenen Methodiken auf unterschiedliche Ausgangsbilder]
+24
View File
@@ -0,0 +1,24 @@
\chapter{Problemstellung}
\label{cha:Problemstellung}
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.
Die zenon-Plattform kann sowohl vom Kunden selbst, als auch durch das Professional Services Team individuell auf Kundenanforderungen zugeschnitten und in bestehende Prozesse und vor allem Software eingebunden werden. Den Grundstein für die hohe Anpassbarkeit 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 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 "Author-It" eine dedizierte Anwendung zur Verwaltung von sprachabhängigen Bilddateien.
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 mittles OCR besteht
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.
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.
+17
View File
@@ -0,0 +1,17 @@
\chapter{Zeitplan}
\label{cha:Zeitplan}
\begin{table}[!ht]
\begin{tabularx}{\textwidth}{ll>{\raggedright\arraybackslash}X}
\textbf{Datum} & \textbf{Meilenstein} & \textbf{Beschreibung} \\
\toprule
31.07.2023 & Expose & Themenfindung, Literaturrecherche, Definition der Forschungsfrage \\
31.08.2023 & Recherche & Schnittstellendefinition, Datenbankdesign \\
15.09.2023 & Preprocessing & Vergleich verschiedenster Bild\-manipulations\-methoden, anschließendes Sammeln und Auswerten der Daten. Danach Implementierung in Beispielbibliothek \\
31.09.2023 & Postprocessing & Vergleich und Auswerten der Ergebnisse der verschiedenen Filterstrategien, inklusive unscharfer Suche nach Schlüsselwörtern. Anschließende Implementierung in der Beispielbibliothek \\
31.11.2023 & Auswertung & Auswertung der extrahierten Textdaten mithilfe der Beispielbibliothek: Qualität der Ergebnisse, Anteil erkannter Worte und Laufzeit der Texterkennung \\
01.12.2023 & Erster Entwurf & \\
31.12.2023 & Finale Abgabe & \\
\end{tabularx}
\caption{Zeitplan}
\end{table}