Feedback adjustments

This commit is contained in:
Simon
2024-02-12 22:29:32 +01:00
parent 1fac9a4661
commit fd6198e809
15 changed files with 88 additions and 22 deletions
+1
View File
@@ -55,3 +55,4 @@ Catmull-Rom
Hermite
Hermite-Interpolation
Nearest-Neighbor
unimodalen
+1 -1
View File
@@ -8,4 +8,4 @@ Um die Forschungsfrage zu beantworten, wird eine Auswahl von Algorithmen für di
Die Analyse aller Ergebnisdaten im Bericht erteilt Aufschluss darüber, welche Algorithmen in welchen Szenarien die besten Ergebnisse liefern. Die größte Auswirkung auf die Ergebnisdaten hat der Austausch des Thresholding- \bzw Binarisierungsverfahrens: Werden unpassende Parameter oder Verfahren genutzt, wird nur ein Bruchteil des verfügbaren Texts erkannt. Wird das passende Verfahren gewählt, wird ein Großteil der Daten korrekt vom Texterkennungssystem erkannt.
Für weitere Forschung oder Anpassung an spezifische Anforderungen kann die protoypischen Implementierung \bzw die jeweiligen Komponenten wiederverwendet werden. Durch den modularen Aufbau des automatischen Vergleichssystems kann selbst nach Änderung der Anzeigesprache oder einer farblichen Neugestaltung der grafischen Oberfläche stets mit wenig Aufwand die ideale Vorgehensweise zur Texterkennung ermittelt werden.
Für weitere Forschung oder Anpassung an spezifische Anforderungen kann die prototypische Implementierung \bzw die jeweiligen Komponenten wiederverwendet werden. Durch den modularen Aufbau des automatischen Vergleichssystems kann selbst nach Änderung der Anzeigesprache oder einer farblichen Neugestaltung der grafischen Oberfläche stets mit wenig Aufwand die ideale Vorgehensweise zur Texterkennung ermittelt werden.
+2 -2
View File
@@ -1,7 +1,7 @@
\section{Motivation}
\label{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.
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 \mcite{copa-data_zenon}.
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.
@@ -9,4 +9,4 @@ In der Produktdokumentation werden, besonders in Hinblick auf die grafischen Too
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.
Mithilfe von optischer Texterkennung (engl. optical character recognition, "OCR") soll es den Mitarbeitern möglich gemacht werden, hochgeladene Screenshots und Grafiken aufgrund ihrer Inhalte zu verschlagworten, um sie später anhand dieser suchen zu können.
Mithilfe von optischer Texterkennung (\engl{Optical character recognition}, \kurz{OCR}) soll es den Mitarbeitern möglich gemacht werden, hochgeladene Screenshots und Grafiken aufgrund ihrer Inhalte zu verschlagworten, um sie später anhand dieser suchen zu können.
@@ -3,9 +3,9 @@
\subsection{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 oder für das Ablesen von Nummernschildern eines Autos \mcite{asif2014overview}. 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 gute Ergebnisse mit geringen Fehlerraten erzielen und sich in bestehende Prozesse oder Anwendungen integrieren lassen \mcite{the_old_bailey_and_ocr, cc_platforms_comparison}.
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 oder für das Ablesen von Nummernschildern eines Autos \mcite{asif2014overview}. Auf dem Markt gibt es dafür bereits viele kommerzielle Komplettlösungen wie "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}.
Heutige Texterkennungssysteme arbeiten oft mit einer Kombination aus neuralen Netzwerken und fortgeschrittenen Bildverarbeitungsalgorithmen, um Texte zu erkennen. Während es zahlreiche wissenschaftliche Werke zur grundlegenden Funktionsweise von optischen Texterkennungswerkzeugen gibt (beispielsweise \fluentcite{eikvil1993optical} oder \fluentcite{islam2017survey}), werden die genauen Schritte zur richtigen Vorbereitung der Bilddaten -- besonders in Bezug auf Screenshots -- oftmals nur oberflächlich behandelt.
Heutige Texterkennungssysteme arbeiten oft mit einer Kombination aus neuralen Netzwerken und fortgeschrittenen Bildverarbeitungsalgorithmen, um Texte zu erkennen. Während es zahlreiche wissenschaftliche Werke zur grundlegenden Funktionsweise von optischen Texterkennungswerkzeugen gibt (beispielsweise \mcite{eikvil1993optical} oder \mcite{islam2017survey}), werden die genauen Schritte zur richtigen Vorbereitung der Bilddaten -- besonders in Bezug auf Screenshots -- oftmals nur oberflächlich behandelt.
\subsection{Filterung der Ergebnisdaten}
@@ -106,7 +106,15 @@ Die adaptive Schwellenwertmethode gehört zu den halbautomatischen Schwellenwert
\subsubsubsection{Dreiecks-Schwellenwertmethode}
\label{thresholding_triangle}
Das Dreiecks-Schwellenwertverfahren verwendet die Häufigkeitsverteilung der Helligkeitswerte eines Bildes, um einen globalen Schwellenwert zu ermitteln \mcite{zack1977automatic}. Werden diese Helligkeitswerte in einem Diagramm dargestellt, spricht man von einem Histogramm. Für das Thresholding wird innerhalb des Histogramms eine Linie vom Höchstwert (\engl{Peak}) zum Minimum gezeichnet und die Normale mit der maximalen Länge ermittelt. 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.
Das Dreiecks-Schwellenwertverfahren verwendet die Häufigkeitsverteilung der Helligkeitswerte eines Bildes, um einen globalen Schwellenwert zu ermitteln \mcite{zack1977automatic}. Werden diese Helligkeitswerte in einem Diagramm dargestellt, spricht man von einem Histogramm, wie in \autoref{unimodal_histogram} zu sehen. Für das Thresholding wird innerhalb des Histogramms eine Linie vom Höchstwert (\engl{Peak}) zum Minimum gezeichnet und die Normale mit der maximalen Länge ermittelt. 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.
\begin{figure}[ht]
\centering
\fbox{\includegraphics[width=0.49\textwidth]{include/images_external/unimodal-histogram.png}}
\caption{Beispiel eines unimodalen Histogramms mit einem deutlichen Spitzenwert \mcite{unimodal-histogram}}
\label{unimodal_histogram}
\end{figure}
\begin{figure}[ht]
\centering
+1 -1
View File
@@ -33,7 +33,7 @@ Die zu verarbeitenden Bilder im Kontext dieser Bachelorarbeit sind ausschließli
\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 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}. Wurde ein Screenshot ideal vorbereitet, wie in \autoref{fig:screenshot_comparison_optimal} gezeigt, verschwinden farbige Hintergrundflächen und grafische Dekorationselemente. Übrig bleibt nur der gut lesbare textuelle Inhalt des Bildes.
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}. Wurde ein Screenshot ideal vorbereitet, wie in \autoref{fig:screenshot_comparison_optimal} gezeigt, verschwinden farbige Hintergrundflächen und grafische Dekorationselemente. Übrig bleibt nur der gut lesbare textuelle Inhalt des Bildes.
\begin{figure}[ht]
\centering
+1 -1
View File
@@ -1,4 +1,4 @@
\section{Analyse}
\section{Evaluierung}
\label{analyse}
Nachdem die vorbereiteten Bilddaten an das Texterkennungssystem gemäß \autoref{implementierung} übergeben und die Ergebnisse ermittelt wurden, werden die extrahierten Textdaten nun mit den manuell erstellten "Soll-Daten" verglichen. Anhand der Statistik kann festgestellt werden, welche Vorgehensweise zu der besten Qualität führt. Um die Ergebnisse zu visualisieren, erstellt der in \autoref{components_reportgenerator} beschriebene "ReportGenerator" auf Basis der Bilddateinamen automatisch einen Bericht mit den Vergleichsdaten in Tabellenform. Der erstellte Bericht wird in verschiedene Kategorien unterteilt.
+1 -1
View File
@@ -1,4 +1,4 @@
\chapter{Durchführung}
\chapter{Implementierung}
\label{durchführung}
\input{chapters/c40_durchführung/implementierung}
+3 -13
View File
@@ -1,18 +1,8 @@
\chapter{Zusammenfassung}
\label{zusammenfassung}
\section{Fazit}
Im Rahmen dieser Bachelorarbeit wurde sich intensiv mit der Anwendung von optischer Texterkennung für die Verschlagwortung von Oberflächenscreenshots auseinandergesetzt. Das Ziel, eine Vorgehensweise für die automatisierte Verschlagwortung von Bilddateien zu entwickeln und die Anwendbarkeit verschiedener Algorithmen zur Bildbearbeitung und Texterkennung zu evaluieren, wurde erreicht. Insgesamt wurden die Grundlagen moderner Bildverarbeitung \bzw der Funktionsweise von Texterkennungssystemen aufgearbeitet. Das Ergebnis ist ein universelles System zur Analyse der Vergleichswerte, das auch die Integration weiterer Algorithmen ermöglicht. Dies erlaubt eine kontinuierliche Verbesserung und Anpassung des Texterkennungssystems an neue Anforderungen.
Im Rahmen dieser Bachelorarbeit wurde sich intensiv mit der Anwendung von optischer Texterkennung für die Verschlagwortung von Oberflächenscreenshots auseinandergesetzt.
Aufgrund der Auswahl und Parametrisierung der ersten Tests beträgt die resultierende Fehlerrate in etwa 40\%. Nach Abschluss der Bachelorarbeit wird es jedoch weitere Optimierungsversuche geben. Das nächste Ziel ist es, eine Wortfehlerrate von 20\% nicht zu überschreiten, um eine zuverlässige Erkennung der Texte zu gewährleisten. Dazu werden weitere Bildbearbeitungsmethoden, beispielsweise Kantendetektoren, in Verbindung mit sogenanntem "Fuzzy Matching" für die Erkennung der Schlagworte verwendet. Ebenso gibt es unter Verwendung der bereits implementierten Algorithmen noch Verbesserungspotential. Beispielsweise könnten mehrfach gefundene Wörter, die in der aktuellen Version des Prototyps einfach verworfen werden, zur Ermittlung der Wichtigkeit eines Schlagwortes genutzt werden.
Das Ziel, eine Vorgehensweise für die automatisierte Verschlagwortung von Bilddateien zu entwickeln und die Anwendbarkeit verschiedener Algorithmen zur Bildbearbeitung und Texterkennung zu evaluieren, wurde erfolgreich umgesetzt. Obwohl die Wahl und Parametrisierung der ersten Tests, resultierend in einer Fehlerrate von ca. 40\%, noch Raum für Verbesserungen bieten, wurde ein universelles System zur Analyse der Vergleichswerte geschaffen, das auch die Integration weiterer Algorithmen ermöglicht. Dies erlaubt eine kontinuierliche Verbesserung und Anpassung des Texterkennungssystems an neue Anforderungen.
\section{Erkenntnisse}
Durch die detaillierte Auseinandersetung mit den unterschiedlichen Bild- und Textverarbeitungsverfahren und dem Vergleich mittels diverser Metriken habe ich ein besseres Verständnis für die Bildverarbeitung und die Funktionsweise von Texterkennungssystemen erlangt. Dieses gewonnene Wissen wird weiter in den Screenshot-Manager einfließen und möglicherweise auch in zukünftigen Kundenprojekten mit Fokus auf optischer Texterkennung Anwendung finden.
\section{Nächste Schritte und Ausblick}
Nach Abschluss der Bachelorarbeit wird die Texterkennungsfunktionalität in das Screenshot-Manager Tool integriert. Durch Verwendung der entwickelten Bibliotheken bleibt das System konfigurierbar und kann weiter optimiert werden. Das nächste Ziel ist es, eine Wortfehlerrate von 20\% nicht zu überschreiten, um eine zuverlässige Erkennung der Textdaten zu gewährleisten. Dazu werden weitere Bildbearbeitungsmethoden, beispielsweise Kantendetektoren, in Verbindung mit sogenanntem "Fuzzy Matching" für die Erkennung der Schlagworte verwendet.
Ich freue mich bereits darauf, meinen Kollegen den Arbeitsalltag durch die Verwendung der Texterkennungsfunktionalität im Screenshot-Manager ein wenig zu erleichtern.
Nach Abschluss der Optimierungsversuche wird das gewonnene Wissen weiter in den Schreenshot-Manager einfließen und die Texterkennungsfunktionalität in das Programm integriert. Die gefundenen mehrsprachigen Schlagworte werden in Zukunft für jedes Bild ermittelt und in einer Datenbank abgelegt, um ein einfaches und effizientes Suchen innerhalb der Anwendung zu ermöglichen.
Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.8 KiB

After

Width:  |  Height:  |  Size: 5.7 KiB

+22
View File
@@ -0,0 +1,22 @@
flowchart LR
OCR["Texterkennung\n(Tesseract)"]
Pre -->|Bilddaten| OCR
OCR -->|Schlagworte| Post
%% Einlesen --> Pre
%% Post --> Ausgabe
subgraph Pre[Vorverarbeitung]
direction TB
Pre1[Skalierung] --> Pre2
Pre2[Thresholding] --> Pre3
Pre3[Binarisierung]
end
subgraph Post[Nachbearbeitung]
direction TB
Post1[Normalisierung] --> Post2
Post2[Längenfilterung] --> Post3
Post3[Duplikatfilterung] --> Post4
Post4[RegEx-Filterung]
end
Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

BIN
View File
Binary file not shown.
+3
View File
@@ -108,6 +108,9 @@
\backmatter % Schlussteil (Quellenverzeichnis und dgl.)
%%%-----------------------------------------------------------------------------
\listoffigures
\listoftables
\MakeBibliography % Quellenverzeichnis
%%%-----------------------------------------------------------------------------
+42
View File
@@ -83,6 +83,13 @@
date = {2023-05-23},
language = {eng}
}
@online{textract_home,
title = {Amazon Textract - Homepage},
url = {https://aws.amazon.com/textract},
urldate = {2024-02-12},
date = {2023-05-23},
language = {eng}
}
@online{gcv_pricing,
title = {Google Cloud Vision - Pricing},
url = {https://cloud.google.com/vision/pricing},
@@ -90,6 +97,13 @@
date = {2023-05-23},
language = {eng}
}
@online{gcv_home,
title = {Google Cloud Vision - Homepage},
url = {https://cloud.google.com/vision},
urldate = {2024-02-12},
date = {2023-05-23},
language = {eng}
}
@online{azurevision_pricing,
title = {Azure AI Vision - Pricing},
url = {https://azure.microsoft.com/en-gb/pricing/details/cognitive-services/computer-vision/},
@@ -97,6 +111,27 @@
date = {2023-05-23},
language = {eng}
}
@online{azurevision_home,
title = {Azure AI Vision - Homepage},
url = {https://azure.microsoft.com/en-us/products/ai-services/ai-vision},
urldate = {2024-02-12},
date = {2023-05-23},
language = {eng}
}
@online{ironocr_home,
title = {IronOCR for .NET - Homepage},
url = {https://ironsoftware.com/csharp/ocr/},
urldate = {2024-02-12},
date = {2023-05-23},
language = {eng}
}
@online{copa-data_zenon,
title = {COPA-DATA zenon - Homepage},
url = {https://www.copadata.com/en/product/zenon-software-platform-for-industrial-automation-energy-automation/},
urldate = {2024-02-12},
date = {2023-05-23},
language = {eng}
}
@online{tessrepo,
title = {Tesseract Repository},
url = {https://github.com/tesseract-ocr/tesseract},
@@ -236,6 +271,13 @@
volume = 10,
number = 3,
}
@image{unimodal-histogram,
author = "Wikimedia Commons",
title = "Histogram of tips given in a restaurant",
year = "2014",
urldate = {2024-02-12},
url = "https://commons.wikimedia.org/wiki/File:Tips-histogram1.png",
}
@image{bimodal-histogram,
author = "Wikimedia Commons",
title = "Example of a histogram exhibiting bimodalty",