Skip to main content
仮説とは、検出された object または object の集合が特定の要素に対応しており、つまり、その要素に指定されたプロパティと検索条件を満たしていると FlexiLayout Studio が判断したものです。
要素の 検索領域 内に、その要素に対応する object または object の集合が複数存在することがあります。この場合、FlexiLayout Studio は検出された object ごとに仮説を生成します。
便宜上、仮説 という用語は、特定の仮説に含まれる object の集合を指す意味でも使われます。

仮説の品質の計算方法

仮説の 品質 は、検出された object が対応する要素の記述にどの程度一致しているかを表すもので、0 から 1 の数値で示されます。 FlexiLayout Studio では、仮説の 品質 は Pre-search quality × Post-search quality として計算されます。ここで、
  • Pre-search qualityProperties ダイアログと Advanced pre-search relations フィールドで行った設定の 品質 です。
  • Post-search qualityAdvanced post-search relations フィールドで指定した条件を適用した結果です。
Group element の仮説の 品質 は、その構成要素すべての仮説の 品質 を掛け合わせて計算されます。

ヌル仮説

オプション要素については、FlexiLayout Studio はヌル仮説を立てます。 ヌル仮説とは、検索領域内でオプション要素に対応するオブジェクトが検出されなかった場合に、FlexiLayout Studio が立てる仮説です。 FlexiLayout Studio は、オプション要素に対応するオブジェクトが見つからなくても、FlexiLayout のマッチングを停止しません。代わりに、ヌル仮説を立て、オプション要素の作成時に設定した品質をその仮説に割り当てます。

仮説: 実践的な例

画像上の 2 つの static text を見つけるために、2 つの要素を作成する必要があるとします。1 つ目の static text は “mother”、2 つ目は “father” で、“father” というテキストは常に “mother” というテキストの下にあります。 2 つの Static Text 要素を作成します。1 つ目の StaticText1 は “mother” というテキストを探し、2 つ目の StaticText2 は “father” というテキストを探します。両方の要素は省略可能で、それぞれのヌル仮説の品質が 0.97 に設定されているものとします。 StaticText1 の検索領域には制約が設定されていません。“father” というテキストは常に “mother” というテキストの下にあるため、StaticText2 が常に StaticText1 の下に位置するよう指定できます。これを行うには、StaticText2 要素の Properties ダイアログの Relations タブで、対応する制約 Below: SearchElements.StaticText1; を入力します。 次の図は、“mother” という単語が 2 回 (“father” という単語の上と下に) 出現し、さらに “father” という単語の上にある “mother” という単語に 1 つの OCR エラーがある画像に対して、FlexiLayout をマッチングした結果を示しています。
FlexiLayout のマッチング結果を示す図。mother という単語が father という単語の上と下に 2 回現れ、上側の mother には 1 つの OCR エラーがあり、StaticText1 と StaticText2 の仮説を示しています。
FlexiLayout のマッチングにより、StaticText1 要素に対して 2 つの仮説が生成されました。1 つ目の仮説は、1 つの OCR エラーを含んで認識された “father” という単語の上にある “mother” という単語に対応し、その品質は 0.98 です。2 つ目の仮説は、“father” という単語の下にある “mother” という単語に対応し、その品質は 1 です。 この段階では、各チェーンの品質は対応する仮説の品質と同じです。したがって、最良のチェーンは品質 1 の仮説から成ります。 StaticText2 要素は StaticText1 要素の下に位置しなければならず、また FlexiLayout Studio は StaticText1 要素に対して 2 つの仮説を生成しているため、ここで 2 つの検索領域で必要な static text を探そうとします。 FlexiLayout Studio が、“father” という単語の下にある “mother” という単語を見つけた、品質 1 の 2 つ目の仮説を採用した場合、StaticText1 要素の下で StaticText2 要素を見つけることができず、その結果、品質 0.97 のヌル仮説が生成されます。結果として得られる仮説チェーンの品質は 1 × 0.97 = 0.97 になります。 FlexiLayout Studio が、“father” という単語の上にある “mother” という単語を見つけた、品質 0.98 の 1 つ目の仮説を採用した場合、StaticText1 要素の下で StaticText2 要素を正しく検出し、品質 1 の仮説を生成します。結果として得られる仮説チェーンの品質は 0.98 × 1 = 0.98 になります。 その結果、FlexiLayout Studio は全体の品質が 0.98 のチェーンを選択します。