サンプル3。ステップ4:要素の検出順序を決める画像分析
このステップでは、以下を判断します:
- 画像のフィールドの整列にパターンはあるか?
- フィールドの検出で参照要素として使える要素はどれか?
- 最善の選択となるのはどの要素検索順序か?(それぞれの新しいステップで上記要素のみ参照できます。)
使用可能な画像を分析します。
- 文書の中央部分には、すべての画像で発生する表が含まれています。
注意:FlexiLayout Studioでは、表は、区切り線または白ギャップで視覚的に区切られた行と列の断片で構成された画像オブジェクトです、(詳細は表参照。) - 表の上にフィールドグループがあります(InvoiceHeaderと名付けられているかもしれません):Invoice Number、Invoice Date、およびDelivery Address。フィールドInvoice Numberはすべての画像で発生し、識別子フィールドとして使用可能な一方で、フィールドInvoice DateおよびDelivery Addressはオプションです。
- 表の下にフィールドグループがあります(フッターと名付けられているかもしれません):TotalQuantity、TotalAmount、およびCountry。これらのフィールドも、すべての画像で発生するわけではありません。
文書の上部で要素の検索を作成します。上のフィールドを検出するために、請求書番号、請求日、配達先住所フィールドの検索に使うすべての要素を結合した論理グループを作成します。
- 種類グループの要素を作成して名前をInvoiceHeaderと付けます。
フィールドInvoice Number、Invoice Date、およびDelivery Addressは常に左上に位置します。さらに、順序は常に同じです:Delivery Addressの次はInvoice Number、その次はInvoice Dateです(画像で発生する場合)。これらを同じ順序で探します。 - フィールドInvoice Number、Invoice Date、およびDelivery Addressの名前のキーワードの検索を記述するために、種類静的テキストの要素を使用します。InvoiceHeader要素に以下の要素を含めます:
- 静的テキストのkwDeliveryAddress要素で、フィールドDelivery Addressの名前に対応(詳細はステップ5参照);
- 静的テキストのkwInvoiceNumber要素で、フィールドInvoice Numberの名前に対応(詳細はステップ6参照);
- 静的テキストのkwDate要素で、フィールドInvoice Dateの名前に対応(詳細はステップ7参照)。
- フィールドNumberおよびフィールドInvoice Dateについては、名前の右の、対応する名前と同じ行で検索します。
InvoiceHeader要素では、以下の要素を作成します:
InvoiceHeader.grDate要素では、以下のように作成します:
- 日付種類のInvoiceDate要素で、画像の品質が良好な場合に請求日フィールドに対応(詳細はステップ9参照);
- 種類文字列のInvoiceDateAsString要素で、InvoiceDate要素が見つからなかった場合にInvoice Dateに対応(詳細はステップ9参照)。
注意:品質が悪い画像での日付探しの詳細は、コツと裏技セクションをご覧ください。
- フィールドDelivery Addressには多数行あるため、検出する段落種類の要素が必要です。ですが、この要素を作成する前に、検索領域を可能な限り制限する必要があります。検索領域の右境界については、白ギャップ種類の要素を使用します。その後、フィールドDelivery Addressの位置を記述するすべての要素をグループ要素にグループ化します:
- 要素InvoiceHeaderで、グループ要素を作成して名前をgrAddressと付けます(詳細はステップ10参照)。
grAddress要素で、以下の要素を作成します:
12.04.2024 18:16:07