Eine Hypothese ist eine von FlexiLayout Studio getroffene Annahme, dass das bzw. die erkannten Objekte einem bestimmten Element entsprechen, also die für das Element angegebenen Eigenschaften und Suchkriterien erfüllen.
Im Suchbereich des Elements kann es mehrere Objekte oder Objektmengen geben, die alle dem Element entsprechen. In diesem Fall formuliert FlexiLayout Studio für jedes erkannte Objekt eine Hypothese.
Der Einfachheit halber wird der Begriff Hypothese auch verwendet, um die Menge der Objekte zu bezeichnen, die in einer bestimmten Hypothese enthalten sind.
Wie die Hypothesen-Quality berechnet wird
Die Quality einer Hypothese gibt an, wie gut das erkannte Objekt mit der Beschreibung des entsprechenden Elements übereinstimmt, und ist ein numerischer Wert von 0 bis 1.
FlexiLayout Studio berechnet die Quality einer Hypothese als Pre-search quality × Post-search quality, wobei
- Pre-search quality – die Quality der im Dialogfeld Properties und im Feld Advanced pre-search relations vorgenommenen Einstellungen ist.
- Post-search quality – das Ergebnis der Anwendung der im Feld Erweiterte Nach-Suchbeziehungen angegebenen Bedingungen ist.
Die Quality einer Hypothese für ein Gruppenelement wird berechnet, indem die Qualities der Hypothesen für alle Bestandteilelemente multipliziert werden.
Für optionale Elemente formuliert FlexiLayout Studio eine Nullhypothese.
Eine Nullhypothese ist eine Hypothese, die FlexiLayout Studio formuliert, wenn im Suchbereich keine Objekte erkannt werden, die einem optionalen Element entsprechen.
Findet FlexiLayout Studio keine Objekte, die einem optionalen Element entsprechen, wird der Abgleich des FlexiLayouts nicht abgebrochen. Stattdessen formuliert es eine Nullhypothese und weist ihr die Quality zu, die Sie beim Erstellen des optionalen Elements festlegen.
Hypothesen: ein praktisches Beispiel
Angenommen, Sie müssen zwei Elemente erstellen, mit denen zwei statische Texte auf Ihren Bildern gefunden werden sollen. Der erste statische Text ist „mother“, der zweite „father“, und der Text „father“ befindet sich immer unter dem Text „mother“.
Erstellen Sie zwei Static-Text-Elemente. Das erste, StaticText1, wird verwendet, um nach dem Text „mother“ zu suchen, und das zweite, StaticText2, um nach dem Text „father“ zu suchen. Nehmen Sie an, dass beide Elemente optional sind und dass die Quality der Nullhypothese für jedes von ihnen auf 0.97 gesetzt ist.
Für den Suchbereich von StaticText1 sind keine Einschränkungen festgelegt. Da sich der Text „father“ immer unter dem Text „mother“ befindet, können Sie festlegen, dass StaticText2 immer unter StaticText1 liegen muss. Geben Sie dazu die entsprechende Einschränkung auf der Registerkarte Beziehungen im Dialogfeld Properties des Elements StaticText2 ein: Below: SearchElements.StaticText1;.
Die folgende Abbildung zeigt die Ergebnisse des Abgleichs eines FlexiLayouts mit einem Bild, auf dem das Wort „mother“ zweimal vorkommt (oberhalb und unterhalb des Wortes „father“) und bei dem im Wort „mother“ oberhalb des Wortes „father“ ein OCR-Fehler aufgetreten ist.
Beim Abgleich des FlexiLayouts 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 Quality von 0.98. Die zweite Hypothese entspricht dem Wort „mother“, das sich unterhalb des Wortes „father“ befindet, und hat eine Quality von 1.
In dieser Stufe entspricht die Quality jeder Kette der Quality der jeweiligen Hypothese. Daher besteht die beste Kette aus der Hypothese mit einer Quality von 1.
Da sich das Element StaticText2 unterhalb des Elements StaticText1 befinden muss und FlexiLayout Studio zwei Hypothesen für das Element StaticText1 erzeugt hat, versucht es nun, den erforderlichen statischen Text in zwei Suchbereichen zu finden.
Wenn FlexiLayout Studio die zweite Hypothese mit einer Quality von 1 weiterverfolgt, bei der das Wort „mother“ unterhalb des Wortes „father“ gefunden wurde, kann es das Element StaticText2 unterhalb des Elements StaticText1 nicht finden. Folglich erzeugt es eine Nullhypothese mit einer Quality von 0.97. Die Quality der resultierenden Hypothesenkette beträgt 1 × 0.97 = 0.97.
Wenn FlexiLayout Studio die erste Hypothese mit einer Quality von 0.98 weiterverfolgt, bei der das Wort „mother“ oberhalb des Wortes „father“ gefunden wurde, erkennt es das Element StaticText2 unterhalb des Elements StaticText1 erfolgreich und erzeugt eine Hypothese mit einer Quality von 1. Die Quality der resultierenden Hypothesenkette beträgt 0.98 × 1 = 0.98.
Daher wählt FlexiLayout Studio die Kette mit einer Gesamt-Quality von 0.98 aus.