- ABBYY FlexiLayout Studioの導入
- ABBYY FlexiLayout Studio 12の新機能
- ABBYY FlexiLayout™ Studio 12のインストール、操作、および削除
- ABBYY FlexiLayout™ Studioインターフェース
- プロジェクト
- バッチ
- FlexiLayouts
- 多ページFlexiLayout
- 事前認識
- 要素
- ブロック
- テーブルの操作
- 仮説と仮説ツリー
- FlexiLayoutのデバッグ
- 分類
- エクスポート
-
FlexiLayout言語
- 基本概念
-
事前定義種類
- Void
- Logic
- String
- Int
- Distance
- XCoordinate
- YCoordinate
- Real
- Quality
- Area
- ImageObjectType
- DateFormats
- DayFormatVariants
- MonthFormatVariants
- YearFormatVariants
- XInterval
- YInterval
- DistInterval
- Rect
- FuzzyRect
- RectArray
- Region
- ImageObjectSet
- TextTypes
- BarcodeTypes
- BarcodeOrientations
- RecognitionMode
- Direction
- HorSearchAreaBound
- VertSearchAreaBound
- Hypothesis
- HypothesisInstances
- TableBlock
- TableBlockColumn
- TableBlockColumnArray
- TableHypothesis
- TableHypColumn
- TableColumnType
- CurrencyPositionTypes
- PageInterval
- PageArea
- PageEdge
- Page
- SearchAreaPageSetType
- IntArray
- StringArray
- IntFuzzyInterval
- DistFuzzyInterval
- AreaFuzzyInterval
- 型の変換
- 事前定義定数
- 事前定義変数
- グローバル関数
- 名前付きパラメータを扱う関数
- 高度な検索前機能
- 高度な検索後機能
- 要素プロパティの指定
- 仮説とその特性
- デバッグのための印刷
-
コツと裏技
- 質の高い/低い認識の後の日付検索
- 複数の静的テキスト値を設定します。類似の値のある静的テキストを検索
- 除外を使用した要素の除外
- グループ要素を使用したFlexiLayoutの構造と検索の最適化
- 単一行の静的テキスト要素の検索
- RestrictSearchAreaによる検索領域の制限
- 異なるOCR質の文書で既知または未知の形式の単一行フィールドを検索
- 要素の検索でのNearestおよびFuzzyQualityの使用
- グループ要素検索の最適化
- グループ要素の「オプション」プロパティ
- 数字列の検索
- 補助要素および帰無仮説を使用したFlexiLayoutの単純化
- 枠付き文字を含むテキストフィールドの記述
- 付録
-
チュートリアル
-
サンプル1。はじめに
- サンプル1。ステップ1:新しいプロジェクトの作成
- サンプル1。ステップ2:画像をバッチに追加
- サンプル1。ステップ3:FlexiLayoutプロパティの設定
- サンプル1。ステップ4:事前認識
- サンプル1。ステップ5:画像および事前認識結果の表示
- サンプル1。ステップ6:事前認識結果の分析と参照要素の選択
- サンプル1。ステップ7:文書識別子の作成
- サンプル1。ステップ8:識別子要素の試験
- サンプル1。ステップ9:識別子要素プロパティの適合
- サンプル1。ステップ10:YOUR PLANET NAME領域の説明
- サンプル1。ステップ11:PlanetNameHeader要素を使用してのYOUR PLANET NAMEの説明
- サンプル1。ステップ12:PlanetName要素を使用してのYOUR PLANET NAME領域の説明
- サンプル1。ステップ13:あなたの惑星名フィールドの試験
- サンプル1。ステップ14:PlanetNameブロックを使用してのYOUR PLANET NAME領域の説明
- サンプル1。ステップ15:NAMEフィールドの記述
- サンプル1。ステップ16:宇宙船の番号フィールドの記述
- サンプル1。ステップ17:DATE YOU ARRIVED AT THE EARTHフィールドの記述
- サンプル1。ステップ18:YOUR IDENTITY NUMBER ON THE PARTY領域の記述
- サンプル1。ステップ19:ANY TEXTフィールドの記述
- サンプル1。ステップ20: YOUR PHOTO IN FANCY DRESS領域の記述
- サンプル1。ステップ21:FlexiLayoutのエクスポート
- サンプル1。ステップ22:FlexiLayoutを ABBYY FlexiCaptureで開ける
-
サンプル2。最も簡単なレシピ
- サンプル2。ステップ1:新しいプロジェクトの作成
- サンプル2。ステップ2:画像をバッチに追加
- サンプル2。ステップ3:FlexiLayoutプロパティの設定
- サンプル2。ステップ4:事前認識
- サンプル2。ステップ5:画像および事前認識結果の表示
- サンプル2。ステップ6:文書識別子の作成
- サンプル2。ステップ7:識別子要素の試験
- サンプル2。ステップ8:検出対象のフィールドRecipe #およびレシピ名の順序の指定
- サンプル2。ステップ9:Recipe #:フィールドの記述
- サンプル2。ステップ10:Recipe要素の作成
- サンプル2。ステップ11:RecipeNumber要素の作成
- サンプル2。ステップ12:RecipeNumberブロックの作成
- サンプル2。ステップ13:レシピ名を含むフィールドの記述
- サンプル2。ステップ14:Ingredientsフィールドの記述
- サンプル2。ステップ15:調理手順を含むフィールドと調理時間を含むフィールドの記述
- サンプル2。ステップ16:CookingTimeHeader要素の作成
- サンプル2。ステップ17:CookingTime要素の作成
- サンプル2。ステップ18:CookingTimeブロックの作成
- サンプル2。ステップ19:InvertedHeader要素の作成
- サンプル2。ステップ20:Cookingフィールドの記述
- サンプル2。ステップ21:Serves要素の作成
- サンプル2。ステップ22:Portions要素の作成
- サンプル2。ステップ23:Cookingフィールドの記述
- サンプル2。ステップ24:CookingDescriptionブロックの作成
- サンプル2。ステップ25:FlexiLayoutは準備完了
-
サンプル3。請求書
- サンプル3。ステップ1:準備設定
- サンプル3。ステップ2:画像および事前認識結果の視覚的分析
- サンプル3。ステップ3:ブロック
- サンプル3。ステップ4:要素の検出順序を決める画像分析
- サンプル3。ステップ5:KwDeliveryAddress要素でDelivery Addressフィールドの名前を検出
- サンプル3。ステップ6:kwInvoiceNumber要素でInvoice Numberフィールドの名前を検出
- サンプル3。ステップ7:kwInvoiceDate要素でInvoice Dateフィールドの名前を検出
- サンプル3。ステップ8:InvoiceNumber要素でInvoice Numberフィールドを記述
- サンプル3。ステップ9:grDate、InvoiceDate、InvoiceDateAsString要素で請求日フィールドを記述
- サンプル3。ステップ10:grAddress Group要素の作成
- サンプル3。ステップ11:wgAddressRight要素でDelivery Addressフィールドの右境界を検出
- サンプル3。ステップ12:DeliveryAddress要素でDelivery Addressフィールドを記述
- サンプル3。ステップ13:画像の更なる分析
- サンプル3。ステップ14:HsTableHeaderTop要素で補助横区切りを検出
- サンプル3。ステップ15:グループのTableHeader要素で列名の検索制限を分析
- サンプル3。ステップ16:kwQuantity要素でQuantity列名を検出
- サンプル3。ステップ17:KwUnitPrice要素でUnit Price列名を検出
- サンプル3。ステップ18:KwTotal要素でTotal列名を検出
- サンプル3。ステップ19:InvertedHeader要素の作成
- サンプル3。ステップ20:種類グループのFooter要素でFooterグループを記述
- サンプル3。ステップ21:KwFooter要素で表のフッターを記述
- サンプル3。ステップ22:kwTotal要素でTotalフィールド名を記述
- サンプル3。ステップ23:kwOrigin要素でCountryフィールド名を検出
- サンプル3。ステップ24:Country要素でCountryフィールドを記述
- サンプル3。ステップ25:TotalQuantityおよびTotalAmount要素でTotalQuantityおよびTotalAmountフィールドを検出
- サンプル3。ステップ26:InvoiceTable要素で表要素を検出
- サンプル3。ステップ27:FlexiLayoutをABBYY FlexiCaptureにエクスポート
-
サンプル4。多ページ請求書
- サンプル4。ステップ1:準備設定
- サンプル4。ステップ2:画像および事前認識結果の表示
- サンプル4。ステップ3:ブロック
- サンプル4。ステップ4:要素の検出順序を決める画像を分析
-
サンプル4。ステップ5:文書ヘッダーおよびInvoiceHeaderグループ
- サンプル4。ステップ5.1:Invoice Numberフィールド名、kwInvoiceNumber要素
- サンプル4。ステップ5.2:Delivery Addressフィールド名、kwDeliveryAddress要素
- サンプル4。ステップ5.3:Invoice Dateフィールド名、kwInvoiceDate要素
- サンプル4。ステップ5.4:Invoice Numberフィールド、InvoiceNumber要素
- サンプル4。ステップ5.5:Invoice Dateフィールド、grDate、InvoiceDate、InvoiceDateAsString要素
- サンプル4。ステップ5.6:Delivery Addressフィールド、grAddress、wgAddressAbove、DeliveryAddress要素
- サンプル4。ステップ6:文書フッター、InvoiceFooterグループ
-
サンプル4。ステップ7:表列名、TableHeaderグループ
- サンプル4。ステップ7.1:Designation列の名前、kwDesignation要素
- サンプル4。ステップ7.2:ExtraQuantity列の名前、ExtraQtyTag要素
- サンプル4。ステップ7.3:Quantity列の名前、kwQuantity要素
- サンプル4。ステップ7.4:UnitPrice列の名前、kwUnitPrice要素
- サンプル4。ステップ7.5:Total列の名前、kwTotal要素
- サンプル4。ステップ7.6:Reference列の名前、kwReference要素
- サンプル4。ステップ7.7:Sales列の名前、kwSales要素
- サンプル4。ステップ7.8:Unit列の名前、kwUnit要素
- サンプル4。ステップ8:表要素、InvoiceTable要素
- サンプル4。ステップ9:TotalAmountフィールド、SumGroup グループ要素
- サンプル4。ステップ10:Companyフィールド、CompanyGroup要素、Company要素
- サンプル4。ステップ11:FlexiLayoutをエクスポートしてABBYY FlexiCaptureの文書定義に追加
-
サンプル1。はじめに
- テクニカル サポート
- 用語集
繰り返しグループ要素の追加的な検索制限
繰り返しグループ要素のプロパティダイアログボックスには、追加的な検索制限を指定できる2つのタブがあります:高度およびすべてのインスタンスで高度。高度タブで、グループの個々のインスタンスに追加的な検索制限を指定できます。すべてのインスタンスで高度タブで、グループのすべてのインスタンスに追加的な検索制限を指定できます。
プロパティダイアログボックスを表示
すべてのインスタンスの外部フィールドセクションで、グループ要素で使えるすべての方法を使用できます。例えば、既に検出されたインスタンスとの関係を指定できます:
// 前のインスタンスの下に次のインスタンスが配置されます
if SearchElements.RepeatingGroup.HasInstances then {
Below: SearchElements.RepeatingGroup.LastFound, 0 * dot;
}
すべてのインスタンスの高度な検索前関係セクションで、以下の方法を使用できます:
- MinRepetitions
- MaxRepetitions
- PaginalMode
- MinRepetitionsOnPage
- MaxRepetitionsOnPage
検索後関係セクションで、特定のインスタンスの推定値を入力できます。すべてのインスタンスの検索後関係セクションで、すべてのインスタンスの推定値を入力できます。
検索前関係セクションで、グループ要素で使えるすべての方法を使用できます。
検索後関係のサンプルコード:
// 繰り返しグループのサブ要素でのStaticText1およびStaticText2の仮説の確認。最後に検出されたインスタンスが使用されます。
if StaticText1.Width() < 200dt and StaticText2.Width() < 200dt then Quality: 0.98;
すべてのインスタンスの検索後関係のサンプルコード:
if InstancesCount() < 5 and LastFound.Pages.End <= 2 then Quality: 0.98;
要素インスタンスへのアクセス
要素インスタンスにアクセスするために以下の事前定義の名前を使用します:
- LastFound- 最後に検出されたインスタンス
- CurrentInstance- 繰り返し要素の内部を検索する現在のインスタンス
- Instance( n)– インスタンスNo. n
- AllInstances- すべてのインスタンス
繰り返しグループ要素のサブ要素には、それが要素ツリーの下にある場合でも、アクセスできます。FlexiLayout言語の以下の方法を、要素インスタンスの操作に使用することもできます:
- HasInstances- インスタンスが既に見つかっているかを確認します
- InstancesCount- 検出されたインスタンスの数を返します
要素インスタンスの検索を停止する条件
グループ(すなわち空の区域のあるグループ)の空の仮説が見つかった場合、またはそれ以上の仮説が生成できない(検索領域にそれ以上の仮説がない)場合、インスタンスの検索は止まります(所定の分岐で)。ページモードでは、この規則は1ページの検索のみに適用されます。1ページで検索が終わると、次のページになります。MinRepetitionsOnPage、MaxRepetitionsOnPage、MinRepetitions、およびMaxRepetitionsも、仮説生成に影響を及ぼします。
以下の方法を使用して、標準仮説生成を変更することができます:
- 最後に検出されたインスタンスが最後になります:
if SearchElements.RepeatingGroup.HasInstances and then DontFind;
この条件は高度な検索前関係で入力されなければいけません。 - 最後に検出されたインスタンス(またその制限を対象として作成するインスタンス)は「悪い」もので、前のインスタンスが最後になります(他の「良いインスタンスが検出された」わけでない場合):
If then Quality: 0;
この条件は高度な検索後関係で入力されなければいけません。
以下もご参照ください:
02.03.2021 8:10:49