- 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。はじめに
- テクニカル サポート
- 用語集
複数の静的テキスト値を設定します。類似の値のある静的テキストを検索
文書のすべてまたは大部分の画像にある文書、表、フィールド、またはテキストのさまざまなタイトルを検出するために、FlexiLayout Studioでは特殊な 静的テキスト 要素が使用されます。同じFlexiLayoutで処理する異なる画像に同じ名前の異なるバリエーションがある(例えば、フィールド「請求書番号」に「 請求書 」、「 請求書: 」、「 請求書No. 」などのバリエーションがある)場合、違いが句読点だけだったとしても、可能なすべての静的テキスト値を指定する必要があります。
これは、以下の理由により必要です:
- 指定された値に対応する仮説を生成するため。例えば、バリエーション「 請求書: 」を指定せずにバリエーション「 請求書 」のみを指定する場合、コロンはフィールド名の仮説には含まれません。名前の右で検索される請求書番号の検索領域に含められるかもしれません。数字の検索で数字以外の文字または指定されていない文字が許容されている場合、その列は請求書番号を記述する要素の仮説に入ります。
- テキストを検索 ウィンドウで指定されていない文字の仮説へのペナルティを回避するため。例えば、値「 請求書: 」が テキストを検索 セクションで指定され、名前「 請求書# 」も処理された画像にある場合、要素でエラーが許容されていることを条件に、仮説は生成されますが、その質にはペナルティが科されます(この例ではFlexiLayoutは少なくとも1エラーを許容)。
- 「 請求書|請求書: 」のような仮説のバリエーションが使用できる場合、長い仮説が若干品質の高い仮説に割り当てられるため、仮説「 請求書: 」が好ましいです。「 : 」のバリエーションが指定されている場合、「 : 」のないものには0.001のペナルティが課されます。文字列「 請求書 」は「 請求書: 」のサブ文字列であるためです。他のサブ文字列である短い名前文字列にペナルティを科すと、長い仮説が勝者になります。
静的テキスト要素の値を指定することが、いかにして「請求書番号」フィールドとフィールド自体の名前を検出するのに役立つかを見るために、サンプルプロジェクト StaticText.fsp を使ってみましょう(フォルダ %public%\ABBYY\FlexiCapture\12.0\Samples\FLS\Tips and Tricks\Variants of StaticText )。
プロジェクトには5ページあります:
- ページ1 - フィールド「請求書番号」の名前は「請求書」;
- ページ2 – フィールド「請求書番号」の名前は「請求書:」;
- ページ3 - フィールド「請求書番号」の名前は「請求書#:」;
- ページ4 – フィールド「請求書番号」の名前は「請求書-」;
- ページ5 – フィールド「請求書番号」の名前は「請求書:」であるもののページには単語「請求書」の存在するフィールド「請求日」もあり。
名前 InvoiceHeader の 静的テキスト 要素の プロパティ ダイアログボックスで、処理された文書にありそうなフィールドの名前をすべて指定しました。この場合、これらは上記の値です。名前の大文字小文字は検索目的には無関係です: Invoice|Invoice:|Invoice#:|Invoice- .
注意:
要素の検索を迅速にするために、すべてのバリエーションはスペースなしで書かれます。スペースの有無は、仮説の質には影響しません。
わかりやすいように、請求書番号は常に名前の右にあるとします。請求書番号を検索するために、名前 InvoiceNumber の 文字列 要素が作成されています。そのアルファベットおよび検索制限は、 関係 フィールドで指定されます。これらの設定は簡単なので、ここでは触れません。プロジェクトで調べることができます。
テキストブロック 請求書 がFlexiLayoutツリーに作成されました。要素 InvoiceNumber はブロックの ソース要素 として指定されています。
分析手順を実行した後、フィールド名と請求書番号はすべてのページで正常に検出されます。
すべての静的テキスト値を一時的に削除してみましょう。最初に InvoiceHeader 要素から( 請求書 )を削除しましょう。次にFlexiLayoutをすべてのページと再び合致させてみましょう。名前と請求書番号がページ1でのみ正常に検出されたことがわかります。名前が指定された値( 請求書 )と完全に合致するためです。ページ2-4では、名前の一部が請求書番号になっています。ページ5では、番号フィールドの場所を特定する際にエラーが発生しました。
削除された値を復元しましょう。単語 請求書 が2回発生するページ5の分析結果を見ます。表示の通り、 InvoiceHeader 要素で5つの仮説が生成されました。最も高い質( 連鎖品質 = 1 、この場合は 検索前品質 に等しいです)は名前「請求書」の仮説に割り当てられました。値「請求書」および「請求書d」でも仮説が生成されました。これらの文字列は、一定割合のエラーが許容されている、 InvoiceHeader 要素で指定された値の派生であるためです。これらの仮説にはペナルティが科された(上記の可能なすべての静的テキスト値のリスト化に対する論拠参照)ため、最終的な質は低くなります。
4/13/2021 11:12:35 AM