自動検出では、認識されたテキスト片の種類を判定します。自動検出は、RecognizerParams オブジェクト の TextTypes プロパティが複数の定数に設定されている場合に開始されます。このモードは主にフォーム認識向けに設計されています。一般的な Optical Character Recognition (OCR) では、どうしても必要な場合にのみ使用することを推奨します。
自動検出が有効な場合、ABBYY FineReader Engine はまず、指定されたブロックまたはブロックのグループ内のテキストの種類を判定しようとします (これらのブロックでは、RecognizerParams オブジェクト の TextTypes プロパティが複数の定数に設定されています) 。ABBYY FineReader Engine は、TextTypes プロパティで指定された定数の中から選択します。このプロパティには、認識に使用できるテキストタイプを表す TextTypeEnum enumeration 定数の OR 結合が含まれます。たとえば、これが TT_Normal | TT_Index に設定されている場合、ABBYY FineReader Engine は、テキストには通常の活字テキストと郵便番号形式で記述された数字のみが含まれているものと見なし、その他のすべての種類は無視します。自動検出時には、ABBYY FineReader Engine は TextTypes プロパティで指定されたすべてのテキストタイプに対して認識を実行します。その後、OCR の結果が比較され、ABBYY FineReader Engine は最も良い結果を最終結果として選択します。
自動検出は、すべて同じ種類のテキストを含むブロックのセットに対して使用してください。ブロックごとに個別のテキストタイプを選択する必要がある場合は、各ブロックに対して RecognizeBlocks メソッドを呼び出し、RecognizerParams オブジェクトに使用可能なテキストタイプを列挙する必要があります。
1 つのブロックに異なる種類のテキストが含まれている場合、認識はすべてのテキストタイプに対して実行されますが、選択される結果は 1 つだけです。そのため、ブロック内のテキスト全体が同じ種類のテキストであるかのように認識されます。したがって、複数の種類のテキストを含むブロックの認識結果は、1 種類のテキストだけを含むブロックの認識結果と異なる場合があります。より良い Optical Character Recognition (OCR) 結果を得るには、テキストの種類ごとに別々のブロックを作成してください。
自動検出の速度と精度は、TextTypes プロパティで指定するテキストタイプのセットによって決まります。自動検出が最も高速になるのは、TT_Normal、TT_Matrix、TT_Typewriter、TT_OCR_A、TT_OCR_B の組み合わせです (これを「高速自動検出セット」と呼びます) 。この場合、認識エンジンが起動されるのは 1 回だけで、自動検出は Optical Character Recognition (OCR) の実行中に行われ、テキストタイプの判定にはブロックではなく個々の単語が使用されます。指定されているテキストタイプが 1 つだけの場合、自動検出は実行されません。Engine は、指定されたテキストタイプに対応する認識エンジンを起動します。
「高速自動検出セット」に含まれないテキストでは、テキストタイプは個々の単語ではなくブロック単位で検出されます。つまり、使用可能なテキストタイプのセットに TT_Normal、TT_Matrix、TT_Typewriter、TT_OCR_A、TT_OCR_B 以外のテキストタイプが含まれていると、自動検出は遅くなります。この場合、Engine は予備 Optical Character Recognition (OCR) を複数回実行する必要があります。まず「高速自動検出セット」のタイプに対して 1 回、その後は追加された各テキストタイプごとに 1 回ずつ予備認識を実行します。次に、それらの結果を比較して、最適なテキストタイプが選択されます。
- TextTypes プロパティで指定するテキストタイプの数は、できるだけ少なくしてください。
- TextTypes プロパティが TT_Handwritten と TT_Index のいずれかの組み合わせに設定されている場合、RecognizerParams オブジェクト の TrainUserPatterns プロパティを TRUE に設定することはできません。
RecognizerParams
TextTypeEnum