fixed linguistics (thanks kathi)
This commit is contained in:
@@ -3,7 +3,7 @@
|
||||
|
||||
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 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.
|
||||
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 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.
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
\pagebreak
|
||||
\subsection{Postprocessing}
|
||||
\subsection{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 des Postprocessings weiterverarbeitet werden.
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
\subsection{Preprocessing}
|
||||
\subsection{Vorverarbeitung}
|
||||
\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.
|
||||
|
||||
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 zwar 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{annahmen_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:
|
||||
|
||||
@@ -40,7 +40,7 @@ Nach einigen Tests fällt auf, dass Bilder, die mittels des Spline-Verfahrens od
|
||||
\subsubsection{Rahmen}
|
||||
\label{algorithmen_rahmen}
|
||||
|
||||
Befindet sich Text zu nah am Rand des Bildes, kommt es vor, dass dieser oft nicht richtig erkannt wird. Ebenso kann auch ein zu großer einfärbiger Rahmen am Rand des Bildes die Texterkennung stören. Bei Rahmengrößen wie in \autoref{fig:rahmen_groß} kommt es vor, dass Bildsektionen fälschlicherweise als "leer" erkannt und übersprungen werden, wodurch der zu erkennende Text nicht in die Ergebnisdaten mit aufgenommen wird.
|
||||
Befindet sich Text zu nah am Rand des Bildes, kommt es vor, dass dieser nicht richtig erkannt wird. Ebenso kann auch ein zu großer einfärbiger Rahmen am Rand des Bildes die Texterkennung stören. Bei Rahmengrößen wie in \autoref{fig:rahmen_groß} kommt es vor, dass Bildsektionen fälschlicherweise als "leer" erkannt und übersprungen werden, wodurch der zu erkennende Text nicht in die Ergebnisdaten mit aufgenommen wird.
|
||||
|
||||
\begin{figure}[ht]
|
||||
\centering
|
||||
@@ -82,7 +82,7 @@ Das fixe Thresholding benötigt durch den fest definierten Schwellenwert einen g
|
||||
\subsubsubsection{Adaptive Schwellenwertmethode}
|
||||
\label{thresholding_adaptive}
|
||||
|
||||
Die adaptive Schwellenwertmethode gehört zu den halbautomatischen Schwellenwertalgorithmen. Bei diesem Verfahren wird der Schwellenwert auf Basis der lokalen Eigenschaften eines Bildbereichs angepasst, der durch die manuell festgelegte sogenannte "Blockgröße" definiert wird. Diese bestimmt die Seitenlänge des Rechtecks, innerhalb dessen ein fester Schwellenwert ermittelt wird \mcite{sahoo1988survey}. Durch diese dynamische Berechnung 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, wie in \autoref{thresholding_adaptive_vergleich_gut} ersichtlich. Wir die Blockgröße falsch gewählt, können jedoch Artefakte auftreten, welche bei entsprechender Menge, wie im Falle von \autoref{thresholding_adaptive_vergleich_schlecht}, die Texterkennung negativ beeinflusst.
|
||||
Die adaptive Schwellenwertmethode gehört zu den halbautomatischen Schwellenwertalgorithmen. Bei diesem Verfahren wird der Schwellenwert auf Basis der lokalen Eigenschaften eines Bildbereichs angepasst, der durch die manuell festgelegte sogenannte "Blockgröße" definiert wird. Diese bestimmt die Seitenlänge des Rechtecks, innerhalb dessen ein fester Schwellenwert ermittelt wird \mcite{sahoo1988survey}. Durch diese dynamische Berechnung 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, wie in \autoref{thresholding_adaptive_vergleich_gut} ersichtlich. Wird die Blockgröße falsch gewählt, können jedoch Artefakte auftreten, welche bei entsprechender Menge, wie im Falle von \autoref{thresholding_adaptive_vergleich_schlecht}, die Texterkennung negativ beeinflusst.
|
||||
|
||||
\begin{figure}[ht]
|
||||
\centering
|
||||
@@ -90,7 +90,7 @@ Die adaptive Schwellenwertmethode gehört zu den halbautomatischen Schwellenwert
|
||||
\hfill
|
||||
\fbox{\includegraphics[width=0.49\textwidth]{\detokenize{include/results/ThresholdAdaptiveProcessor(20_20).00.zrs_REPORTS_EfficencyClass_009.png}}}
|
||||
|
||||
\caption{Anwendung der adaptiven Schwellenwertmethode auf einen Beispielscreenshot. Die Blockgröße ist gut an den Bildinhalt angepasst und alle Details bleiben erhalten. Dieses Verfahren punktet hier besonders bei den Farbigen "Energy Labels", deren Textinhalte sonst mittels keinem anderen Verfahren komplett erkannt wurden.}
|
||||
\caption{Anwendung der adaptiven Schwellenwertmethode auf einen Beispielscreenshot. Die Blockgröße ist gut an den Bildinhalt angepasst und alle Details bleiben erhalten. Dieses Verfahren punktet hier besonders bei den farbigen "Energy Labels", deren Textinhalte sonst mittels keinem anderen Verfahren komplett erkannt wurden.}
|
||||
\label{thresholding_adaptive_vergleich_gut}
|
||||
\end{figure}
|
||||
|
||||
@@ -129,7 +129,7 @@ Das Dreiecks-Schwellenwertverfahren verwendet die Häufigkeitsverteilung der Hel
|
||||
\subsubsubsection{Schwellenwertmethode nach Otsu}
|
||||
\label{thresholding_otsu}
|
||||
|
||||
Das Schwellenwertverfahren nach Otsu ermittelt einen globalen Schwellenwert durch Einteilung des Bildes in zwei Klassen (Vordergrund und Hintergrund). Dazu wird für jede Position des Schwellenwerts im Histogramm die Varianz der beiden dadurch entstehenden Klassen ermittelt. Der Schwellenwert ist dann optimal, wenn die Varianz der jeweiligen KLassen minimal ist \mcite{otsu1979threshold}. Aufgrund dieser Eigenschaften funktioniert das Verfahren am besten, wenn das Histogramm des Bildes wie in \autoref{bimodal_histogram} eine bimodale Verteilung aufweist, also zwei klare Spitzen hat.
|
||||
Das Schwellenwertverfahren nach Otsu ermittelt einen globalen Schwellenwert durch Einteilung des Bildes in zwei Klassen (Vordergrund und Hintergrund). Dazu wird für jede Position des Schwellenwerts im Histogramm die Varianz der beiden dadurch entstehenden Klassen ermittelt. Der Schwellenwert ist dann optimal, wenn die Varianz der jeweiligen Klassen minimal ist \mcite{otsu1979threshold}. Aufgrund dieser Eigenschaften funktioniert das Verfahren am besten, wenn das Histogramm des Bildes wie in \autoref{bimodal_histogram} eine bimodale Verteilung aufweist, also zwei klare Spitzen hat.
|
||||
|
||||
\begin{figure}[ht]
|
||||
\centering
|
||||
@@ -138,7 +138,7 @@ Das Schwellenwertverfahren nach Otsu ermittelt einen globalen Schwellenwert durc
|
||||
\label{bimodal_histogram}
|
||||
\end{figure}
|
||||
|
||||
Enthält ein Bild jedoch starkes Hintergrundrauschen, oder weist es lokale Helligkeitsunterschiede auf, wie es bei grafischen Oberflächen mit ihren unterschiedlich eingefärbten Oberflächensektionen oft der Fall ist, wird ein Schwellenwert ermittelt, der nicht immer für alle Inhalte des Bildes optimal ist. Dank der Bestimmung eines einzelnen globalen Wertes für das gesamte Bild entstehen ähnliche Probleme wie bei der \hyperref[thresholding_fixed]{fixen Schwellenwertmethode} und die Texterkennung liefert Ergebnisse mit geringem Informationsgehalt. Die Unterschiede zwischen den Ergebnissen für gut geeignete Bilder im Vergleich zu Bildern mit großen lokalen Unterschieden sind in \autoref{thresholding_otsu_vergleich_gut} \bzw \autoref{thresholding_otsu_vergleich_schlecht} ersichtlich.
|
||||
Enthält ein Bild jedoch starkes Hintergrundrauschen oder weist es lokale Helligkeitsunterschiede auf, wie es bei grafischen Oberflächen mit ihren unterschiedlich eingefärbten Oberflächensektionen oft der Fall ist, wird ein Schwellenwert ermittelt, der nicht immer für alle Inhalte des Bildes optimal ist. Dank der Bestimmung eines einzelnen globalen Wertes für das gesamte Bild entstehen ähnliche Probleme wie bei der \hyperref[thresholding_fixed]{fixen Schwellenwertmethode}. Die Texterkennung liefert Ergebnisse mit geringem Informationsgehalt. Die Unterschiede zwischen den Ergebnissen für gut geeignete Bilder im Vergleich zu Bildern mit großen lokalen Unterschieden sind in \autoref{thresholding_otsu_vergleich_gut} \bzw \autoref{thresholding_otsu_vergleich_schlecht} ersichtlich.
|
||||
|
||||
\begin{figure}[ht]
|
||||
\centering
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
|
||||
Um die Texterkennung mittels Tesseract und die anschließende Filterung der Ergebnisdaten zu verbessern, werden anwendungsspezifische Annahmen für den Verarbeitungsablauf festgelegt.
|
||||
|
||||
\subsection{Preprocessing}
|
||||
\subsection{Vorverarbeitung}
|
||||
\label{annahmen_preprocessing}
|
||||
|
||||
\subsubsection{Eigenschaften von Screenshots}
|
||||
@@ -44,7 +44,7 @@ Für die Verwendung von Tesseract ist es wichtig, unabhängig von der Diversitä
|
||||
\label{fig:screenshot_comparison_optimal}
|
||||
\end{figure}
|
||||
|
||||
\subsection{Postprocessing}
|
||||
\subsection{Nachbearbeitung}
|
||||
\label{annahmen_postprocessing}
|
||||
|
||||
\subsubsection{Filtern von Symbolen}
|
||||
@@ -67,9 +67,9 @@ Bei der Texterkennung kann es vorkommen, dass grafische Elemente als diverse Uni
|
||||
\subsubsection{Mehrsprachigkeit}
|
||||
\label{annahmen_mehrsprachigkeit}
|
||||
|
||||
Das Textverarbeitungssystem muss in der Lage sein, mehrsprachige Bilddateien Einlesen und Interpretieren zu können. 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. Für die weitere Beschreibung der generellen Vorgehensweise und Tests werden in den folgenden Schritten jedoch nur deutsche oder englische Inhalte verwendet.
|
||||
Das Textverarbeitungssystem muss in der Lage sein, mehrsprachige Bilddateien einlesen und interpretieren zu können. 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. Für die weitere Beschreibung der generellen Vorgehensweise und Tests werden in den folgenden Schritten jedoch nur deutsche oder englische Inhalte verwendet.
|
||||
|
||||
\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 eine wichtige Aktion oder Information widerspiegelt. Inhalte, die direkt in der grafischen Benutzeroberfläche ersichtlich sind, haben daher einen hohen Informationsgehalt und eignen sich besonders gut als Suchworte. Um die Schlagwortmenge so aussagekräftig wie möglich zu halten, müssen Wörter mit geringer Bedeutung entfernt werden. Beispielsweise haben sogenannte Stoppwörter (\engl{Stop words}) wie "und" oder "oder" keine besondere Semantik und fördern aufgrund ihrer Häufigkeit das Auftreten von Verwechslungen \mcite{wilbur1992automatic}.
|
||||
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 eine wichtige Aktion oder Information widerspiegelt. Inhalte, die direkt in der grafischen Benutzeroberfläche ersichtlich sind, haben daher einen hohen Informationsgehalt und eignen sich besonders gut als Suchworte. Um die Schlagwortmenge so aussagekräftig wie möglich zu halten, müssen Wörter mit geringer Bedeutung entfernt werden. Beispielsweise haben sogenannte Stoppwörter (\engl{Stop words}) wie \textit{und} oder \textit{oder} keine besondere Semantik und fördern aufgrund ihrer Häufigkeit das Auftreten von Verwechslungen \mcite{wilbur1992automatic}.
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
\subsection{Metriken}
|
||||
\label{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 Metric", auch bekannt als "Character Error Rate" und "Word metric" oder "Word Error Rate" (\kurz{WER}) \mcite{karpinski2018metrics}, basierend auf der Levenshtein-Distanz \mcite{levenshtein1966binary} zurückgegriffen.
|
||||
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 Metric", auch bekannt als "Character Error Rate" und "Word metric" \bzw "Word Error Rate" \mcite{karpinski2018metrics}, basierend auf der Levenshtein-Distanz \mcite{levenshtein1966binary} zurückgegriffen.
|
||||
|
||||
Sowohl die Character- als auch die Word Error Rate sind häufig genutzte Vergleichswerte, die ihren Ursprung in der computergestützten Sprachverarbeitung \bzw automatischen Spracherkennung haben \mcite{wang2003word}. Da die optische Texterkennung und die automatische Spracherkennung jeweils darauf abzielen, maschinenlesbaren Text aus nicht-strukturierten Daten zu extrahieren, sind die Prinzipien dieser Metriken auch auf die optische Texterkennung anwendbar \mcite{tong1996statistical}.
|
||||
|
||||
@@ -12,7 +12,8 @@ Die Wortfehlerrate (\engl{Word Error Rate}, \kurz{WER}) beschreibt den prozentua
|
||||
|
||||
\subsubsubsection{Berechnung}
|
||||
|
||||
Die mathematische Formel für die Word Error Rate lautet somit wie folgt:
|
||||
Die mathematische Formel für die Word Error Rate lautet somit wie folgt \mcite{karpinski2018metrics}:
|
||||
|
||||
\begin{center}
|
||||
\[
|
||||
\text{WER} = \frac{S + D + I}{N}
|
||||
@@ -31,7 +32,7 @@ wobei die einzelnen Komponenten folgende Größen darstellen:
|
||||
|
||||
Die WER spiegelt ohne großen Rechenaufwand direkt wider, wie stark die erkannten Texte der Referenz gleichen. Hierbei werden fehlerhafte Einsetzungen, Löschungen und falsch erkannte Wörter \bzw Teilwörter gleichermaßen gewichtet. Es ist jedoch nicht möglich, die korrekte Reihenfolge der erkannten Wörter darzustellen oder bestimmte wichtige Stellen im Text höher zu gewichten als andere. Zudem werden fehlerhaft erkannte Wörter als vollwertige Ersetzung wahrgenommen, auch wenn nur ein einzelnes Zeichen falsch ist. Dadurch wird das Ergebnis stark beeinflusst.
|
||||
|
||||
Um die Verfälschung der Ergebniswerte durch die WER möglichst gering zu halten, muss mindestens eine weitere weitere Fehlermetrik zum Vergleich verwendet werden.
|
||||
Um die Verfälschung der Ergebniswerte durch die WER möglichst gering zu halten, muss mindestens eine weitere Fehlermetrik, beispielsweise die \hyperref[metriken_cer]{Character Error Rate}, zum Vergleich verwendet werden.
|
||||
|
||||
\subsubsection{Character Error Rate}
|
||||
\label{metriken_cer}
|
||||
@@ -40,7 +41,8 @@ Die Zeichenfehlerrate (\engl{Character Error Rate}, \kurz{CER}) beschreibt die A
|
||||
|
||||
\subsubsubsection{Berechnung}
|
||||
|
||||
Das Verfahren zur Ermittlung der CER gleicht im Wesentlichen dem der WER. Die mathematische Formel lautet somit wie folgt:
|
||||
Das Verfahren zur Ermittlung der CER gleicht im Wesentlichen dem der WER. Die mathematische Formel lautet somit wie folgt \mcite{karpinski2018metrics}:
|
||||
|
||||
\begin{center}
|
||||
\[
|
||||
\text{CER} = \frac{S + D + I}{N}
|
||||
|
||||
@@ -19,7 +19,7 @@ Als Ausgangsdaten für die Durchführung wurde eine zufällige Auswahl an Dokume
|
||||
\label{fig:screenshot_beispiel_schlecht}
|
||||
\end{figure}
|
||||
|
||||
Die textuellen Inhalte aller ausgewählten Bilder wurden anschließend manuell extrahiert und für den programmatischen Vergleich in einer Datei im selben Verzeichnis wie die Quellbilddatei festgehalten. Ein Beispiel dafür ist der Screenshot "zrs\_ZAMS\_filter-alarmgroup\_001" in \autoref{fig:screenshot_verschlagwortet}, welches insgesamt 15 verschiedene Wörter beinhaltet.
|
||||
Die textuellen Inhalte aller ausgewählten Bilder wurden anschließend manuell extrahiert und für den programmatischen Vergleich in einer Datei im selben Verzeichnis wie die Quellbilddatei festgehalten. Ein Beispiel dafür ist der Screenshot "zrs\_ZAMS\_filter-alarmgroup\_001" in \autoref{fig:screenshot_verschlagwortet}, welcher insgesamt 15 verschiedene Wörter beinhaltet.
|
||||
|
||||
\begin{figure}[ht]
|
||||
\centering
|
||||
@@ -218,7 +218,7 @@ IDisposable
|
||||
|
||||
\subsubsection{OCR}
|
||||
|
||||
Die "OCR" Bibliothek enthält elementare Komponenten für die Texterkennung mittels der oben genannten Komponenten. Sie enthält Funktionen zur Bearbeitung von Bildern mittels Magick.NET inklusive anschließender Verarbeitung mittels Tesseract. Kernkomponenten wie das Texterkennungssystem werden automatisch auf Basis der Eingabeparameter konfiguriert und die Verwendung der Ergebnisdaten in externen Programmteilen wird durch die Zurverfügungstellung von Datenmodellen für die Ergebnisdaten vereinfacht. Außerdem enthält die Bibliothek eine Reihe von vordefinierten Verarbeitungsketten \bzw Prozessoren für die Bild- und Textverarbeitung.
|
||||
Die OCR-Bibliothek beinhaltet elementare Funktionen für die Texterkennung. Sie enthält Funktionen zur Bearbeitung von Bildern mittels Magick.NET inklusive anschließender Verarbeitung mittels Tesseract. Kernkomponenten wie das Texterkennungssystem werden automatisch auf Basis der Eingabeparameter konfiguriert und die Verwendung der Ergebnisdaten in externen Programmteilen wird durch die Zurverfügungstellung von Datenmodellen für die Ergebnisdaten vereinfacht. Außerdem enthält die Bibliothek eine Reihe von vordefinierten Verarbeitungsketten \bzw Prozessoren für die Bild- und Textverarbeitung.
|
||||
|
||||
\subsubsection{Automatische Berichterstellung}
|
||||
\label{components_reportgenerator}
|
||||
@@ -252,7 +252,7 @@ Die prototypische Implementierung besteht neben den oben genannten Komponenten a
|
||||
|
||||
\subsubsection{Texterkennung}
|
||||
|
||||
Zu Beginn der Ausführung des Kommandozeilenprogramms wird für jedes zu verarbeitende Bild abhängig von den definierten Schwellenwertverfahren eine Reihe von Prozessoren angelegt. Dazu wurde der statische Teil der Bildverarbeitungskette gemäß \autoref{processor_chain_image} innerhalb der "EvaluationProcessor" Klasse definiert, wie in Programm \ref{prg:processor_definition_dynamic} auszugsweise dargestellt. Lediglich die zu evaluierenden Prozessoren für die jeweiligen Schwellwertverfahren können außerhalb der klasse dynamisch definiert werden. Der EvaluationProcessor legt die erzeugten Ergebnisdaten, bestehend aus den gefundenen Wörtern und zugehörigen Metadaten wie die Confidence, auf Dateiebene ab. Um überprüfen zu können, welches Bild schlussendlich an das Texterkennungssystem übergeben wurde, werden auch die verarbeiteten Bilder nach der Binarisierung gespeichert.
|
||||
Zu Beginn der Ausführung des Kommandozeilenprogramms wird für jedes zu verarbeitende Bild abhängig von den definierten Schwellenwertverfahren eine Reihe von Prozessoren angelegt. Dazu wurde der statische Teil der Bildverarbeitungskette gemäß \autoref{processor_chain_image} innerhalb der "EvaluationProcessor" Klasse definiert, wie in Programm \ref{prg:processor_definition_dynamic} auszugsweise dargestellt. Lediglich die zu evaluierenden Prozessoren für die jeweiligen Schwellwertverfahren können außerhalb der Klasse dynamisch definiert werden. Der EvaluationProcessor legt die erzeugten Ergebnisdaten, bestehend aus den gefundenen Wörtern und zugehörigen Metadaten wie die Confidence, auf Dateiebene ab. Um überprüfen zu können, welches Bild schlussendlich an das Texterkennungssystem übergeben wurde, werden auch die verarbeiteten Bilder nach der Binarisierung gespeichert.
|
||||
|
||||
\begin{program}[!ht]
|
||||
\begin{CsCode}[numbers=none]
|
||||
|
||||
@@ -53,8 +53,8 @@
|
||||
\newcommand*{\fullref}[1]{\hyperref[{#1}]{\autoref*{#1} \nameref*{#1}}}
|
||||
|
||||
\newcommand{\csharp}{C\#}
|
||||
\newcommand{\engl}[1]{engl. "#1"}
|
||||
\newcommand{\kurz}[1]{kurz: "#1"}
|
||||
\newcommand{\engl}[1]{engl. \textit{#1}}
|
||||
\newcommand{\kurz}[1]{kurz: \textit{#1}}
|
||||
\newcommand{\fluentcite}[1]{\citetitle{#1}, \citeauthor{#1} \citeyear{#1} \mcite{#1}}
|
||||
|
||||
%%%-----------------------------------------------------------------------------
|
||||
|
||||
Reference in New Issue
Block a user