Passer au contenu principal
Une hypothèse est une supposition de FlexiLayout Studio selon laquelle le ou les objets détectés correspondent à un élément particulier, c’est-à-dire satisfont aux propriétés et aux critères de recherche spécifiés pour cet élément.
Il peut y avoir plusieurs objets ou ensembles d’objets dans la zone de recherche de l’élément, qui correspondent tous à l’élément. Dans ce cas, FlexiLayout Studio formulera une hypothèse pour chaque objet détecté.
Par commodité, le terme hypothèse est également utilisé pour désigner l’ensemble d’objets inclus dans une hypothèse particulière.

Comment la qualité d’une hypothèse est calculée

La qualité d’une hypothèse mesure à quel point l’objet détecté correspond à la description de l’élément correspondant. Il s’agit d’une valeur numérique comprise entre 0 et 1. FlexiLayout Studio calcule la qualité d’une hypothèse comme Pre-search quality × Post-search quality, où :
  • Pre-search quality – La qualité des paramètres définis dans la boîte de dialogue Properties et dans le champ relations avancées de pré-recherche.
  • Post-search quality – Le résultat de l’application des conditions spécifiées dans le champ Advanced post-search relations.
La qualité d’une hypothèse pour un élément Group est calculée en multipliant les qualités des hypothèses de tous les éléments constitutifs.

Hypothèses nulles

Pour les éléments facultatifs, FlexiLayout Studio formule une hypothèse nulle. Une hypothèse nulle est une hypothèse formulée par FlexiLayout Studio lorsqu’il ne détecte aucun objet correspondant à un élément facultatif dans la zone de recherche. Si FlexiLayout Studio ne trouve aucun objet correspondant à un élément facultatif, il n’interrompt pas la mise en correspondance du FlexiLayout. Au lieu de cela, il formule une hypothèse nulle et lui attribue une qualité que vous définissez lors de la création de l’élément facultatif.

Hypothèses : un exemple pratique

Supposons que vous deviez créer deux éléments pour rechercher deux textes statiques sur vos images. Le premier texte statique est “mother”, le second est “father”, et le texte “father” se trouve toujours sous le texte “mother”. Créez deux éléments Static Text. Le premier, StaticText1, recherche le texte “mother”, et le second, StaticText2, recherche le texte “father”. Supposons que les deux éléments soient facultatifs et que la qualité de l’hypothèse nulle de chacun d’eux soit définie sur 0.97. Aucune contrainte n’est définie pour la zone de recherche de StaticText1. Comme le texte “father” se trouve toujours sous le texte “mother”, vous pouvez spécifier que StaticText2 doit toujours se trouver sous StaticText1. Pour ce faire, saisissez la contrainte correspondante dans l’onglet Relations de la boîte de dialogue Properties de l’élément StaticText2 : Below: SearchElements.StaticText1;. La figure suivante affiche les résultats de la mise en correspondance du FlexiLayout avec une image sur laquelle le mot “mother” apparaît deux fois (au-dessus et au-dessous du mot “father”) et où une erreur d’OCR a été commise dans le mot “mother” situé au-dessus du mot “father”.
Schéma des résultats de la mise en correspondance du FlexiLayout : le mot mother apparaît deux fois, au-dessus et au-dessous du mot father, avec une erreur d’OCR dans le mother du haut, illustrant les hypothèses de StaticText1 et StaticText2.
La mise en correspondance du FlexiLayout a généré deux hypothèses pour l’élément StaticText1. La première hypothèse correspond au mot “mother”, reconnu avec une erreur d’OCR, situé au-dessus du mot “father”, et a une qualité de 0.98. La seconde hypothèse correspond au mot “mother” situé au-dessous du mot “father” et a une qualité de 1. À ce stade, la qualité de chaque chaîne est identique à celle de l’hypothèse correspondante. La meilleure chaîne est donc celle qui contient l’hypothèse d’une qualité de 1. Comme l’élément StaticText2 doit se trouver sous l’élément StaticText1 et que FlexiLayout Studio a généré deux hypothèses pour l’élément StaticText1, il essaie maintenant de trouver le texte statique requis dans deux zones de recherche. Si FlexiLayout Studio poursuit la seconde hypothèse, d’une qualité de 1, qui a trouvé le mot “mother” sous le mot “father”, il ne parvient pas à trouver l’élément StaticText2 sous l’élément StaticText1. Par conséquent, il génère une hypothèse nulle d’une qualité de 0.97, et la qualité de la chaîne d’hypothèses obtenue est 1 × 0.97 = 0.97. Si FlexiLayout Studio poursuit la première hypothèse, d’une qualité de 0.98, qui a trouvé le mot “mother” au-dessus du mot “father”, il détecte correctement l’élément StaticText2 sous l’élément StaticText1 et génère une hypothèse d’une qualité de 1. La qualité de la chaîne d’hypothèses obtenue est 0.98 × 1 = 0.98. Par conséquent, FlexiLayout Studio sélectionne la chaîne dont la qualité globale est de 0.98.