- スキャン画像または写真の前処理
- 短いテキスト断片の認識
- 認識されたデータの処理
シナリオの実装
このトピックで提供されるコードサンプルは、Windows 固有です。
手順 1. ABBYY FineReader Engine の読み込み
手順 1. ABBYY FineReader Engine の読み込み
ABBYY FineReader Engine を使用するには、まず Engine オブジェクトを作成する必要があります。Engine オブジェクトは ABBYY FineReader Engine のオブジェクト階層における最上位のオブジェクトであり、各種グローバル設定、一部の処理メソッド、およびその他のオブジェクトを作成するためのメソッドを提供します。Engineオブジェクトを作成するには、InitializeEngine関数を使用します。Engineオブジェクトを読み込むその他の方法 (Win) も参照してください。
C#
C++ (COM)
ステップ 2. シナリオ用の設定を読み込む
ステップ 2. シナリオ用の設定を読み込む
最適な設定は、Engine オブジェクトの LoadPredefinedProfile メソッドを使用して選択できます。このメソッドは、入力パラメーターとしてプロファイル名を受け取ります。あらかじめ定義された FieldLevelRecognition プロファイルを使用すると、このシナリオに最適な設定を選択できます。プロファイルの詳細については、Working with Profiles を参照してください。処理に使用する設定を変更する場合は、対応する Parameter オブジェクトを使用してください。詳細については、以下の Additional optimization セクションを参照してください。
C#
C++ (COM)
ステップ 3. 画像を読み込み、前処理する
ステップ 3. 画像を読み込み、前処理する
ABBYY FineReader Engine には、複数ページのドキュメントを処理するための FRDocument オブジェクトがあります。ドキュメントの画像を読み込んで前処理するには、FRDocument オブジェクトを作成し、そこに画像を追加する必要があります。方法は次のいずれかです。
- Engine オブジェクトの CreateFRDocumentFromImage メソッドを使用して FRDocument オブジェクトを作成します。このメソッドは FRDocument オブジェクトを作成し、指定したファイルから画像を読み込みます。
- Engine オブジェクトの CreateFRDocument メソッドを使用して FRDocument オブジェクトを作成し、その後、作成した FRDocument オブジェクトにファイルから画像を追加します (FRDocument オブジェクトの AddImageFile、AddImageFileWithPassword、または AddImageFileWithPasswordCallback メソッドを使用) 。
C#
C++ (COM)
ステップ 4. 認識するfieldの設定
ステップ 4. 認識するfieldの設定
ここでは、fieldを含むブロックを作成し、各ブロックについて種類と内部データの既知の特性を指定する必要があります。Analyzeメソッドを使用して文書のレイアウト解析を実行するか、認識するfieldを含むブロックを手動で追加します。手順については、Working with Layout and Blocksを参照してください。各fieldには、認識用のパラメーターを個別に指定できます。たとえば、fieldにテキストが含まれている場合は、ITextBlock::RecognizerParamsプロパティを使用します。
- RecognizerParamsobjectのTextTypesプロパティを使用して、テキストの種類を設定します。たとえば、fieldに郵便番号形式で書かれた数字が含まれている場合は、TT_Indexテキストタイプを使用します。
- SetPredefinedTextLanguageメソッドを使用して言語を設定します。fieldに含まれる情報の種類がわかっている場合は、special predefined languages (Windows のみ) が役立つことがあります。たとえば、fieldに米国内の住所が含まれている場合は、English_US_Address定義済み言語を選択します。これにより、テキストをより確実に認識できるようになります。
- 以下のステップ 6 で説明するように、認識結果をさらに検証するために認識候補を使用する必要がある場合は、RecognizerParamsobjectのSaveCharacterRecognitionVariantsプロパティとSaveWordRecognitionVariantsプロパティを設定します。この設定は、手書き文字または手書き風文字のテキストには使用できない点に注意してください。
C#
C++ (COM)
ステップ 5. 認識
ステップ 5. 認識
ステップ 6. 認識されたデータの操作
ステップ 6. 認識されたデータの操作
認識されたテキストフラグメントにアクセスするには、Text オブジェクトを使用します (このオブジェクトは、テキストブロックに対して ITextBlock::Text プロパティ経由で取得できます) 。フラグメント内の段落のコレクションを取得するには Paragraphs プロパティを使用し、個々の段落にアクセスするには IParagraphs::Item メソッドを使用します。IParagraph::Text プロパティでは、段落の認識済みテキストにアクセスできます。段落内の単語のコレクションを取得するには IParagraph::Words を使用できます。コレクション内の個々の単語にアクセスするには IWords::Item メソッドを使用します。IWord::Text プロパティは、認識された単語を含む行を返します。単語の認識候補を取得するには、Word オブジェクトの GetRecognitionVariants メソッド、または Paragraph オブジェクトの GetWordRecognitionVariants メソッドを使用します。個々の文字の属性には、Paragraph オブジェクトの GetCharParams メソッドを介してアクセスできます。このメソッドでは、認識された文字のパラメーターを含む CharParams オブジェクトにアクセスできます。文字の認識候補には、ICharParams::CharacterRecognitionVariants プロパティからアクセスできます。テキストの操作に関する詳細は、Text の操作 を参照してください。投票アルゴリズムで Engine を使用する方法については、Voting API の使用 を参照してください。FRDocument オブジェクトの使用が完了したら、このオブジェクトが使用していたすべてのリソースを解放してください。IFRDocument::Close メソッドを使用します。
ステップ 7. ABBYY FineReader Engine のアンロード
ステップ 7. ABBYY FineReader Engine のアンロード
ABBYY FineReader Engine での作業が完了したら、Engine オブジェクトをアンロードする必要があります。これを行うには、エクスポートされた DeinitializeEngine 関数を使用します。
C#
C++ (COM)
必要なリソース
追加の最適化
- 認識
- 言語の使用
組み込みの認識言語やカスタム認識言語の使用方法。 - 辞書の使用
認識精度を向上させるための辞書の使用方法。 - スペースを含む単語の認識
スペースを含む単語 (New York など) を認識するための辞書の使用方法。 - 手書き文字の認識
ICR (Intelligent Character Recognition) の使用方法。 - チェックマークの認識
チェックマークおよびチェックマークのグループの認識設定。 - ABBYY FineReader Engine の特殊な定義済み言語 - Windows
特殊な言語単位 (住所、日付と時刻、人名など) を含む認識言語の一覧です。これらの言語は field の認識に使用できます。
- 言語の使用
- 認識データの操作
- Text の操作
認識されたテキスト、段落、単語、文字の操作。 - Voting API の使用
単語および文字の認識候補の操作。
- Text の操作
