Feedback, love to HS and SP

This commit is contained in:
Simon Gruber
2024-01-15 13:47:32 +01:00
parent a77f0c1f7d
commit 85077eb720
13 changed files with 977 additions and 231 deletions
@@ -1,14 +1,14 @@
\subsection{Postprocessing}
\label{algorithmen_postprocessing}
Da die verarbeiteten Bilddaten \bzw deren extrahierte Textdaten später mittels einer schlagwortbasierten Suchfunktion durch den Nutzer auffindbar sein müssen, ist es notwendig, die Ergebnisdaten im Rahmen des Postprocessings weiterzuverarbeiten. Das Ziel ist es, die Redundanz innerhalb des Datensets zu reduzieren. Ebenso sollen falsch erkannte Ergebnisdaten identifiziert und aus der Schlagwortmenge entfernt 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 des Postprocessings weiterverarbeitet werden.
\subsubsection{Filterung anhand der Genauigkeit}
\label{algorithmen_confidence}
Tesseract stellt im Rahmen der Texterkennung neben den erkannten Texten auch die jeweiligen Metadaten zur Verfügung. Auch die geschätzte Genauigkeit (\engl{Confidence}) wird für jedes erkannte Wort mit angegeben. Sie bestimmt, mit welcher Sicherheit ein Texterkennungssystem das jeweilige Wort erkannt hat, wobei Wörter mit hoher Confidence eher richtig, mit niedriger Confidence eher falsch erkannt wurden.
Der Confidence-Filter prüft die jeweiligen Wörter auf ihre Metadaten und verwirft Wörter, deren Confidence unter einem fixen Schwellenwert liegt. Je nach Einstellung \bzw "Härte" des Filters wird die Anzahl der falsch erkannten Inhalte innerhalb der Schlagwortmenge drastisch reduziert. Ist der Filter zu streng eingestellt, werden jedoch insgesamt weniger Worte in die Ergebnisse mit aufgenommen und es kann vorkommen, dass auch ursprünglich korrekt erkannte Wörter aufgrund eines niedrigen Confidence-Wertes verworfen werden.
Wie in \autoref{fig:screenshot_postprocessing_confidence} gezeigt, prüft der Confidence-Filter die jeweiligen Wörter auf ihre Metadaten und verwirft jene, deren Confidence unter einem fixen Schwellenwert liegt. Je nach Einstellung \bzw "Härte" des Filters wird die Anzahl der falsch erkannten Inhalte innerhalb der Schlagwortmenge drastisch reduziert. Ist der Filter zu streng eingestellt, werden jedoch insgesamt weniger Worte in die Ergebnisse mit aufgenommen und es kann vorkommen, dass auch ursprünglich korrekt erkannte Wörter aufgrund eines niedrigen Confidence-Wertes verworfen werden.
\begin{figure}[ht]
\centering
@@ -19,14 +19,14 @@ Der Confidence-Filter prüft die jeweiligen Wörter auf ihre Metadaten und verwi
\begin{minipage}{0.49\textwidth}
\lstinputlisting[firstnumber=2,linerange={2-14}]{include/postprocessing/confidence.detailed.json}
\end{minipage}
\caption{Auszug aus den Ergebnisdaten der Texterkennung aus \ref{fig:screenshot_postprocessing} nach der Confidence-Filterung. Alle Wörter unter dem Schwellenwert werer entfernt.}
\caption{Auszug aus den Ergebnisdaten der Texterkennung aus \ref{fig:screenshot_postprocessing} nach der Confidence-Filterung. Alle Wörter unter dem Schwellenwert werden entfernt.}
\label{fig:screenshot_postprocessing_confidence}
\end{figure}
\subsubsection{Normalisierung}
\label{algorithmen_normalisierung}
Um die aus der Texterkennung gewonnenen Daten zunächst für die weitere Filterung vorzubereiten, ist es sinnvoll, die Redundanz der Daten möglichst zu reduzieren und die einzelnen Wörter zu normalisieren \bzw zu standardisieren. Beispielsweise kann durch das Umwandeln aller Textdaten in Kleinbuchstaben die Variation der Daten eingeschränkt werden, ohne jedoch für die Suche relevante Information zu verlieren.
Um die aus der Texterkennung gewonnenen Daten zunächst für die weitere Filterung vorzubereiten, ist es sinnvoll, die Redundanz der Daten möglichst zu reduzieren und die einzelnen Wörter zu normalisieren \bzw zu standardisieren. Beispielsweise kann durch das Umwandeln aller Textdaten in Kleinbuchstaben die Variation der Daten eingeschränkt werden, ohne jedoch für die Suche relevante Information zu verlieren. Diese Methode wurd auch in \autoref{fig:screenshot_postprocessing_normalisierung} angewandt.
\begin{figure}[ht]
\centering
@@ -44,16 +44,16 @@ Um die aus der Texterkennung gewonnenen Daten zunächst für die weitere Filteru
\subsubsection{Vermeidung von Duplikaten}
\label{algorithmen_duplikate}
Nach der Normalisierung werden Duplikate innerhalb der erkannten Textdaten entfernt. Dies verringert ebenfalls die Redundanz der Textdaten und steigert die Effizienz der nachfolgenden Filterverfahren.
Nach der Normalisierung werden Duplikate innerhalb der erkannten Textdaten entfernt, um die Effizienz der nachfolgenden Filterverfahren zu erhöhen. In den Daten aus \autoref{fig:screenshot_postprocessing_duplikate} wird die Liste an erkannten Wörtern stark gekürzt und die Redundanz damit verringert. Es treten keine Duplikate mehr auf.
\begin{figure}[ht]
\centering
\begin{minipage}{0.49\textwidth}
\lstinputlisting[firstnumber=2,linerange={2-14}]{include/postprocessing/normalize.json}
\lstinputlisting[firstnumber=33,linerange={33-41}]{include/postprocessing/normalize.json}
\end{minipage}
\hfill
\begin{minipage}{0.49\textwidth}
\lstinputlisting[firstnumber=2,linerange={2-14}]{include/postprocessing/duplicates.json}
\lstinputlisting[firstnumber=14,linerange={14-22}]{include/postprocessing/duplicates.json}
\end{minipage}
\caption{Auszug aus den Ergebnisdaten der Texterkennung aus \ref{fig:screenshot_postprocessing} nach der Duplikatentfernung.}
\label{fig:screenshot_postprocessing_duplikate}
@@ -62,18 +62,18 @@ Nach der Normalisierung werden Duplikate innerhalb der erkannten Textdaten entfe
\subsubsection{Filterung anhand der Wortlänge}
\label{algorithmen_wortlänge}
Verarbeitet das Texterkennungssystem Texte mit unregelmäßigen Abständen oder grafischen Artefakten in der Schrift, werden statt des eigentlichen Wortes fälschlicherweise oft kurze Symbolkombinationen erkannt. Um diese Kombinationen aus den Ergebnisdaten zu entfernen, können Zeichenketten mithilfe des Wortlängenfilters ungeachtet ihres Inhaltes verworfen werden.
Verarbeitet das Texterkennungssystem Texte mit unregelmäßigen Abständen oder grafischen Artefakten in der Schrift, werden statt des eigentlichen Wortes fälschlicherweise oft kurze Symbolkombinationen erkannt. Um diese Kombinationen aus den Ergebnisdaten zu entfernen, können Zeichenketten, wie in \autoref{fig:screenshot_postprocessing_wortlänge} gezeigt, mithilfe des Wortlängenfilters ungeachtet ihres Inhaltes verworfen werden.
Zusätzlich kann dieser Filter an die Anforderung des Zielsystems angepasst werden. So sind beispielsweise Wörter, die weniger als zwei Zeichen beinhalten, für die Schlagwortsuche grundsätzlich nicht relevant.
Zusätzlich kann dieser Filter an die Anforderung des Zielsystems angepasst werden. So haben beispielsweise Wörter, die weniger als zwei Zeichen beinhalten, einen für die Schlagwortsuche zu geringen Informationsgehalt und werden daher entfernt.
\begin{figure}[ht]
\centering
\begin{minipage}{0.49\textwidth}
\lstinputlisting[firstnumber=2,linerange={2-14}]{include/postprocessing/normalize.json}
\lstinputlisting[firstnumber=14,linerange={14-22}]{include/postprocessing/duplicates.json}
\end{minipage}
\hfill
\begin{minipage}{0.49\textwidth}
\lstinputlisting[firstnumber=2,linerange={2-14}]{include/postprocessing/duplicates.json}
\lstinputlisting[firstnumber=11,linerange={11-19}]{include/postprocessing/wordlength.json}
\end{minipage}
\caption{Auszug aus den Ergebnisdaten der Texterkennung aus \ref{fig:screenshot_postprocessing} nach der Wortlängenfilterung. Alle Wörter, die kürzer sind als der Schwellenwert, werden aus den Ergebnisdaten entfernt.}
\label{fig:screenshot_postprocessing_wortlänge}
@@ -82,12 +82,12 @@ Zusätzlich kann dieser Filter an die Anforderung des Zielsystems angepasst werd
\subsubsection{Sprachabhängige Filterung mittels Regular Expressions}
\label{algorithmen_regex}
Nachdem die zu filternden Textdaten durch vorherige Schritte vorverarbeitet wurden, werden die Ergebnisdaten ein letztes Mal mithilfe von regulären Ausdrücken (\engl{Regular Expressions}) durchsucht. Aufgrund der guten Erweiterbarkeit der Regular Expressions kann für jede Sprache ein individueller Filter angelegt werden, der den jeweiligen Zeichensatz beschriftet und unbekannte Sonderzeichen oder Symbole entfernt. So sind beispielsweise im Deutschen Umlaute erlaubt, während häufig auftretende, jedoch unerwünschte Symbole wie das phonetische Zeichen "æ" oder mehrere hintereinandergereihte Leerzeichen explizit entfernt werden können.
Nachdem die zu filternden Textdaten durch vorherige Schritte vorverarbeitet wurden, werden die Ergebnisdaten ein letztes Mal mithilfe von regulären Ausdrücken (\engl{Regular Expressions}) durchsucht. Aufgrund der dynamischen Erweiterbarkeit der Regular Expressions kann für jede Sprache ein individueller Filter angelegt werden, der den jeweiligen Zeichensatz beschriftet und unbekannte Sonderzeichen oder Symbole entfernt. So sind beispielsweise im Deutschen Umlaute erlaubt, während häufig auftretende, jedoch unerwünschte Symbole wie das phonetische Zeichen "æ" oder mehrere hintereinandergereihte Leerzeichen explizit entfernt werden können. Die Anwendung des deutschen Sprachfilters wird in \autoref{fig:screenshot_postprocessing_regex} gezeigt.
\begin{figure}[ht]
\centering
\begin{minipage}{0.49\textwidth}
\lstinputlisting[firstnumber=2,linerange={2-14}]{include/postprocessing/duplicates.json}
\lstinputlisting[firstnumber=7,linerange={7-19}]{include/postprocessing/duplicates.json}
\end{minipage}
\hfill
\begin{minipage}{0.49\textwidth}
@@ -3,16 +3,18 @@
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{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 sinnvoll, die Bildverarbeitungsschritte individuell auf die erwarteten Eingangsdaten anzupassen. 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{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. Es ist jedoch zu beachten, dass due 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:
\subsubsection{Resampling}
\label{algorithmen_resampling}
Bei Resampling wird die Bildauflösung durch "Neuabtastung" verändert. Um die für Tesseract optimale \mcite{tessdoc} Mindestauflösung von 300 dpi zu gewährleisten, muss das Eingangsbild, sofern es die Mindestauflösung unterschreitet, zunächst entsprechend vergrößert werden.
Bei Resampling wird die Bildauflösung durch Interpolation verändert. Um die für Tesseract optimale \mcite{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. Wie in Abbildung \ref{fig:algorithmen_resampling_vergleich} zu sehen, neigen einige Filter besonders beim Hochskalieren dazu, Unschärfen oder Artefakte zu erzeugen, die die Genauigkeit der Texterkennung negativ beeinflussen können.
% TODO erkläre Interpolation
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. Wie in Abbildung \ref{fig:algorithmen_resampling_vergleich} zu sehen ist, neigen einige Filter besonders beim Hochskalieren dazu, Unschärfen oder Artefakte zu erzeugen, die die Genauigkeit der Texterkennung negativ beeinflussen können.
\begin{figure}[ht]
\centering
@@ -31,22 +33,22 @@ Da Tesseract auf klare und scharfe Kontraste angewiesen ist, um Text korrekt zu
\subcaptionbox
{Lanczos}
{\fbox{\includegraphics[width=0.24\textwidth]{include/resampling/Lanczos.png}}}
\caption{Ein Vergleich unterschiedlicher Resampling-Filter. Bei Anwendung des Lanczos-Filters bleiben Details und Konturen vergleichsweise gut erhalten und der Text ist gut lesbar.}
\caption{Ein Vergleich unterschiedlicher Resampling-Filter. Durch die Aufteilung der Fehler auf mehrere Pixel bleiben Details und Konturen bei Anwendung des Lanczos-Filters vergleichsweise gut erhalten und der Text ist gut lesbar.}
\label{fig:algorithmen_resampling_vergleich}
\end{figure}
Nach einigen Tests hat sich gezeigt, dass Bilder, die mittels des Spline-Verfahrens oder der Hermite-Interpolation skaliert wurden, weiche Konturen ohne harte Farbübergänge aufweisen. Tesseract profitiert jedoch stark von klaren Texten und hohen Kontrasten, weswegen diese Art des Resamplings keine ideale Basis für das Preprocessing bietet. Deswegen wird für die weiteren Schritte die Interpolation nach Lanczos für das Resampling verwendet.
Nach einigen Tests fällt auf, dass Bilder, die mittels des Spline-Verfahrens oder der Hermite-Interpolation skaliert wurden, weiche Konturen ohne harte Farbübergänge aufweisen. Tesseract profitiert jedoch stark von klaren Texten und hohen Kontrasten, weswegen diese Art des Resamplings keine ideale Basis für das Preprocessing bietet. Deswegen wird für die weiteren Schritte die Interpolation nach Lanczos für das Resampling verwendet.
\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 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.
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.
\begin{figure}[ht]
\centering
\fbox{\includegraphics[width=.4\textwidth]{include/bsp_rahmen_groß.png}}
\caption{Ein im Verhältnis zur Bildgröße zu großer einfärbiger Rahmen}
\label{}
\label{fig:rahmen_groß}
\end{figure}
\subsubsection{Binarisierung}
@@ -59,7 +61,7 @@ Das Erzeugen eines Binärbildes ist durch Anwendung von Segmentierungsverfahren
Ein häufig für die Bildsegmentierung genutztes Verfahren ist die feste Schwellenwertmethode, auf Englisch auch "Fixed Thresholding" genannt. Bei diesem Bildverarbeitungsverfahren wird ein manuell vordefinierter Grenzwert auf einzelne Pixelwerte angewandt. Liegt der Pixelwert über dem festgelegten Schwellenwert, gilt er als Teil des Vordergrunds, andernfalls als Hintergrund. Somit können Objekte, also die einzelnen Buchstaben in den Grafikdateien, von ihrem Hintergrund getrennt werden.
Das fixe Thresholding benötigt durch seine Simplizität einen geringen Berechnungsaufwand und weist daher eine hohe Performance auf. Allerdings kann es besonders bei Screenshotdateien 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 kann jeglicher Text innerhalb dieser Fläche nicht vom Texterkennungssystem erkannt werden und die Qualität und Menge der erkannten Textdaten wird stark reduziert.
Das fixe Thresholding benötigt durch den fest definierten Schwellenwert einen geringen Berechnungsaufwand und weist eine hohe Performance auf. 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
@@ -82,7 +84,7 @@ Das fixe Thresholding benötigt durch seine Simplizität einen geringen Berechnu
\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. Innerhalb eines Blocks wird schließlich dynamisch ein fester Schwellenwert ermittelt. Dadurch 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.
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. 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.
\begin{figure}[ht]
\centering
@@ -106,7 +108,7 @@ Die adaptive Schwellenwertmethode gehört zu den halbautomatischen Schwellenwert
\subsubsubsection{Dreiecks-Schwellenwertmethode}
\label{thresholding_triangle}
Das Dreiecks-Schwellenwertverfahren verwendet das Histogramm eines Bildes, um einen globalen Schwellenwert zu ermitteln. Innerhalb des Histogramms wird eine Linie vom Höchstwert (\engl{Peak}) zum Minimum gezeichnet und ermittelt die Normale mit der maximalen Länge. 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. Werden diese Helligkeitswerte in einem Diagramm dargestellt, spricht man von einem Histogramm. Innerhalb des Histogramms wird eine Linie vom Höchstwert (\engl{Peak}) zum Minimum gezeichnet und ermittelt die Normale mit der maximalen Länge. 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
@@ -129,8 +131,7 @@ Das Dreiecks-Schwellenwertverfahren verwendet das Histogramm eines Bildes, um ei
\subsubsubsection{Schwellenwertmethode nach Otsu}
\label{thresholding_otsu}
Bei dem Schwellenwertverfahren nach Otsu wird der globale Schwellenwert für ein Bild anhand des jeweiligen Histogramms ermittelt. Aufgrund dieser Eigenschaften funktioniert das Verfahren am besten, wenn das Histogramm des Bildes 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. 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
@@ -139,7 +140,7 @@ Bei dem Schwellenwertverfahren nach Otsu wird der globale Schwellenwert für ein
\label{bimodal_histogram}
\end{figure}
Enthält ein Bild jedoch starkes Hintergrundrauschen, funktioniert die Schwellenwertermittlung nur unzuverlässig. Weist es lokale Helligkeitsunterschiede auf, wie es bei grafischen Oberflächen mit ihren unterschiedlich eingefärbten Oberflächensektionen oft der Fall ist, entstehen Dank der Bestimmung eines einzelnen globalen Wertes für das gesamte Bild ähnliche Probleme wie bei der \hyperref[thresholding_fixed]{fixen Schwellenwertmethode}.
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.
\begin{figure}[ht]
\centering
@@ -162,11 +163,7 @@ Enthält ein Bild jedoch starkes Hintergrundrauschen, funktioniert die Schwellen
\subsubsubsection{Schwellenwertmethode nach Kapur}
\label{thresholding_kapur}
Die Schwellenwertmethode nach Kapur, Sahoo und Wong zielt darauf ab, einen Schwellenwert zu finden, der die Entropie zwischen den Vorder- und Hintergrundregionen maximiert.
% TODO kurzer Mathematischer Exkurs??
Dieses Schwellenwertverfahren liefert gute Ergebnisse bei Bildern mit starker Varianz der Vorder- und Hintergrundkontraste \bzw einer breiten Helligkeitsverteilung.
Die Schwellenwertmethode nach Kapur, Sahoo und Wong zielt darauf ab, einen Schwellenwert zu finden, der die Entropie zwischen den Vorder- und Hintergrundregionen maximiert. Wie in \autoref{thresholding_kapur_vergleich_gut} und \autoref{thresholding_kapur_vergleich_schlecht} zu sehen, liefert die Verwendung dieses Schwellenwertverfahrens gute Ergebnisse bei Bildern mit starker Varianz der Vorder- und Hintergrundkontraste \bzw einer breiten Helligkeitsverteilung.
\begin{figure}[ht]
\centering