Zum Hauptinhalt springen
Eine Hypothese ist eine Annahme des Programms, dass das bzw. die erkannten Objekte einem bestimmten Element entsprechen, d. h. die für das Element festgelegten Eigenschaften und Suchkriterien erfüllen.
Im Suchbereich des Elements kann es mehrere Objekte oder Objektsätze geben, die alle dem Element entsprechen. In diesem Fall formuliert das Programm für jedes erkannte Objekt eine Hypothese.
Hypothesen zeichnen sich durch ihre Qualität aus. Die Qualität einer Hypothese gibt an, wie gut das erkannte Objekt der Beschreibung im entsprechenden Element entspricht, und ist ein numerischer Wert zwischen 0 und 1. Die Qualität einer Hypothese wird als [ Qualität der Vorsuche ]*[ Qualität der Nachsuche ] berechnet, wobei
  • die Qualität der Vorsuche die Qualität der Einstellungen ist, die im Dialogfeld Properties und im Feld „Erweiterte Vorsuchbeziehungen“ vorgenommen wurden
  • die Qualität der Nachsuche das Ergebnis der Anwendung der im Feld „Erweiterte Nachsuchbeziehungen“ festgelegten Bedingungen ist.
Die Qualität einer Hypothese für ein Gruppenelement wird berechnet, indem die Qualitäten der Hypothesen aller enthaltenen Elemente miteinander multipliziert werden. Für optionale Elemente formuliert das Programm eine Nullhypothese. Eine Nullhypothese ist eine Hypothese, die das Programm formuliert, wenn es im Suchbereich keine Objekte erkennt, die einem optionalen Element entsprechen. Das bedeutet: Wenn das Programm keine Objekte findet, die einem optionalen Element entsprechen, beendet es das Matching des FlexiLayout nicht, sondern formuliert eine Nullhypothese und weist ihr eine Qualität zu, die der Benutzer beim Erstellen des optionalen Elements festgelegt hat. Der Einfachheit halber verwenden wir den Begriff Hypothese auch für die Menge von Objekten, die zu einer bestimmten Hypothese gehören.

Hypothesen: ein praktisches Beispiel

Angenommen, wir müssen zwei Elemente erstellen, mit denen wir zwei statische Texte auf unseren Bildern finden. Der erste statische Text ist „mother“, der zweite statische Text ist „father“, und wir wissen, dass sich der Text „father“ immer unter dem Text „mother“ befindet. Das erste Element vom Typ Static Text, StaticText1, wird verwendet, um nach dem Text „mother“ zu suchen, und das zweite Element vom Typ Static Text, StaticText2, wird verwendet, um nach dem Text „father“ zu suchen. Außerdem nehmen wir an, dass beide Elemente optional sind und die Qualität der Nullhypothesen für jedes von ihnen auf 0.97 gesetzt ist. Für den Suchbereich von StaticText1 werden wir keine Einschränkungen festlegen. Da wir wissen, dass sich der Text „father“ immer unter dem Text „mother“ befindet, können wir festlegen, dass sich StaticText2 immer unter StaticText1 befinden muss. Dazu geben wir die entsprechende Einschränkung auf der Registerkarte Relations im Dialogfeld Properties des Elements StaticText2 ein: Below: SearchElements.StaticText1;. Die folgende Abbildung zeigt die Ergebnisse des Matchings des FlexiLayout mit einem Bild, auf dem das Wort „mother“ zweimal vorkommt (oberhalb und unterhalb des Wortes „father“) und im Wort „mother“, das sich oberhalb des Wortes „father“ befindet, ein OCR-Fehler aufgetreten ist. Beim Matching des FlexiLayout wurden zwei Hypothesen für das Element StaticText1 erzeugt. Die erste Hypothese entspricht dem Wort „mother“, das mit einem OCR-Fehler erkannt wurde und sich oberhalb des Wortes „father“ befindet, und hat eine Qualität von 0.98. Die zweite Hypothese entspricht dem Wort „mother“, das sich unterhalb des Wortes „father“ befindet, und hat eine Qualität von 1. In dieser Stufe ist die Qualität jeder Kette dieselbe wie die Qualität der entsprechenden Hypothese. Daher besteht die beste Kette aus den Hypothesen mit einer Qualität von 1. Da wir dem Programm vorgegeben haben, unterhalb des Elements StaticText1 nach StaticText2 zu suchen, und da das Programm zwei Hypothesen für das Element StaticText1 erzeugt hat, versucht es nun, den erforderlichen statischen Text in zwei Suchbereichen zu finden. Wenn das Programm die zweite Hypothese mit einer Qualität von 1 weiterverfolgt, die das Wort „mother“ unterhalb des Wortes „father“ gefunden hat, wird es das Element StaticText2 unterhalb des Elements StaticText1 nicht finden und folglich eine Nullhypothese mit einer Qualität von 0.97 erzeugen. Die Qualität der resultierenden Hypothesenkette wird 1x0.97=0.97 sein. Wenn das Programm die erste Hypothese mit einer Qualität von 0.98 weiterverfolgt, die das Wort „mother“ oberhalb des Wortes „father“ gefunden hat, wird es das Element StaticText2 unterhalb des Elements StaticText1 erfolgreich erkennen und eine Hypothese mit einer Qualität von 1 erzeugen. Die Qualität der resultierenden Hypothesenkette wird 0.98x1=0.98 sein. Als Ergebnis wählt das Programm die Kette mit einer Gesamtqualität von 0.98 aus.