Hypotheses and trees of hypotheses
Hypothesen und Suchoptimierung
Beim Abgleich eines FlexiLayouts entsteht ein verzweigter Hypothesenbaum. Erfahren Sie, wie Breitensuche und die Einstellung Number of surviving hypotheses das Matching schnell halten.
Beim Abgleich des FlexiLayouts mit einem Bild versucht FlexiLayout Studio, auf dem Bild die Objekte zu finden, die den Elementen im FlexiLayout entsprechen. Anschließend bewertet es, wie gut ein bestimmtes Objekt zu seinem Element passt.
Ein Schätzwert ist eine Zahl zwischen 0 und 1. Eine Quality von 1 bedeutet, dass das erkannte Objekt zu 100 % übereinstimmt. Wenn die Quality nicht 0 ist, werden beim Abgleich des FlexiLayouts Regionen für die Blocks erstellt.
FlexiLayout Studio sucht nacheinander nach Elementen, und zwar in der Reihenfolge, in der sie im FlexiLayout-Baum von oben nach unten angeordnet sind. Für jedes Element kann es im Suchbereich mehrere passende Objekte (oder Objektmengen) finden.
FlexiLayout Studio formuliert für jedes Objekt im Suchbereich eine Hypothese und schätzt deren Quality: Je besser die Übereinstimmung, desto höher die Quality der Hypothese.
Die Position des erkannten Objekts bestimmt die Position der Objekte, die im FlexiLayout-Baum weiter unten stehen. FlexiLayout Studio verwendet jede Hypothese des aktuellen Elements als Ausgangspunkt für die Suche nach den nachfolgenden Elementen weiter unten im Baum.
Dadurch verzweigen sich die Hypothesen für die Elemente, sodass ein Hypothesenbaum entsteht, der sehr viel mehr Verzweigungen enthält als der Elementbaum.
Wenn mehrere Elemente zu einem Gruppenelement zusammengefasst sind, wird die gesamte Gruppe als ein Element betrachtet, für das mehrere Hypothesen formuliert werden. Die Quality eines Gruppenelements wird berechnet, indem die Quality der Hypothesen für die Bestandteilelemente miteinander multipliziert wird.
Das gesamte FlexiLayout kann als ein Gruppenelement betrachtet werden, dessen Quality berechnet werden kann, indem die Quality der Hypothesen für alle seine Elemente miteinander multipliziert wird.
Beim Abgleich des FlexiLayouts mit Bildern muss FlexiLayout Studio den besten vollständigen Hypothesenzweig finden. Ein Zweig ist vollständig, wenn er alle Elemente enthält, vom obersten bis zum untersten Element.
Eine allgemeine Lösung bestünde darin, alle möglichen Kombinationen von Hypothesen für alle Elemente zu berücksichtigen, daraus sämtliche möglichen vollständigen Zweige zu bilden und den Zweig mit der höchsten Quality auszuwählen. Das ist jedoch nicht praktikabel, da es zu viel Zeit in Anspruch nehmen würde.
Außerdem kann es bei einer relativ großen Anzahl von Elementen und nur näherungsweise definierten Suchbereichen zu einer kombinatorischen Explosion kommen, wodurch die Anzahl der Hypothesen unkontrollierbar anwächst.
FlexiLayout Studio verwendet mehrere Methoden zur Optimierung der Suche, um die Anzahl der Hypothesen so gering wie möglich zu halten.
Jedes Element im FlexiLayout hat einen wichtigen Parameter namens Number of surviving hypotheses. Verwenden Sie diesen Parameter, um die Anzahl der Hypothesen zu begrenzen, die FlexiLayout Studio bei der Suche nach dem nachfolgenden Element verwenden kann.
Standardmäßig ist dieser Parameter für einfache Elemente auf 5 und für Gruppenelemente auf 1 gesetzt. Das bedeutet: Wenn FlexiLayout Studio für ein bestimmtes Element 15 Hypothesen findet, wählt es die fünf besten aus und lässt die anderen 10 Hypothesenketten unvollständig.
Gruppenelemente werden in der Regel zuverlässiger erkannt als einfache Elemente. Daher erweist sich die beste Hypothese für ein Gruppenelement gewöhnlich als die richtige.
In den meisten Fällen gibt es in FlexiLayout Studio mehrere unvollständige Hypothesenketten und folglich mehrere mögliche Suchrichtungen. Die beste Hypothese wird mithilfe des klassischen „Breitensuche“-Algorithmus ermittelt. Dieser Algorithmus bedeutet, dass FlexiLayout Studio immer versucht, die Kette zu vervollständigen, die im jeweiligen Moment die beste Quality hat, unabhängig von ihrer Länge.
Angenommen, ein FlexiLayout beschreibt 30 Elemente, für die zwei Hypothesenketten erstellt wurden: eine Kette aus 29 Elementen mit einer geschätzten Quality von 0,89 und eine Kette aus 2 Elementen mit einer geschätzten Quality von 0,92.
FlexiLayout Studio versucht, die kürzere Kette zu vervollständigen, die hinsichtlich der Quality besser ist, bis die Quality all ihrer Erweiterungen schlechter wird als die Quality der ersten Kette.
Im Fall eines Gruppenelements verwendet FlexiLayout Studio eine Qualitysoptimierung. Wenn es für ein bestimmtes Gruppenelement eine ideale vollständige Hypothesenkette findet (das heißt, die Quality dieser Kette ist 1), ignoriert es alle anderen Varianten.
Die Gesamtzahl der Hypothesen für jedes Element ist auf 10.000 begrenzt.
