文字照合/認識関数

文字照合/認識ツールは、登録フォントを使用してテキスト文字列の読み取りや照合を行います。文字照合/認識ツールには次の関数があります。

:  
  • TrainFontReadTextVerifyText の各関数は、In-Sight ファームウェア 4.x.x を搭載した In-Sight ビジョンシステムのみで使用可能です。In-Sight ファームウェア 5.1.0 以上を実行している In-Sight ビジョンシステムでは使用できません。モデル一覧およびサポートされているファームウェアバージョンについては、「ファームウェアバージョン」を参照してください。
  • レガシー関数である ReadTextTrainFont および VerifyText 関数の代わりに、OCRMax 関数を使用することを推奨します。OCRMax 関数には拡張性能機能が搭載されています。

概要

In-Sight Explorer には、画像内の英数字テキスト文字列を調べるための光学式文字照合 (OCV) と光学式文字認識 (OCR) の 2 つの異なる方法があります。使用するのは、OCRMax 関数OCRMaxSettings 関数ReadText 関数TrainFont 関数、および VerifyText 関数です。

:  OCRMax 関数および OCRMaxSettings 関数は、In-Sight ファームウェアバージョン 4.7.0 以降を実行する In-Sight ビジョンシステムにのみ対応しています。

OCRMax 関数および OCRMaxSettings 関数

OCRMax 関数は、セグメンテーションと分類のプロセスを通じて OCR を実行します。セグメンテーションは、最初に実行され、しきい値技術を使用してテキスト行を含むとみなされる画像内の領域を特定します。テキストを文字にセグメンテーションした後、文字を登録し、フォントデータベースとして格納します。分類は、実行時に行われ、関数がセグメンテーションを実行した後に、検出されたテキストの「読み取り」を担います。これは、セグメンテーションされた文字の画像と登録された文字のフォントを比較することで実行されます。

:  OCRMax 関数は自己完結型の関数です。つまり、OCRMaxSettings 関数を使用せずにセグメンテーションと分類を実行できます。OCRMaxSettings 関数は、非常に難しいアプリケーション向けの高度なセグメンテーションおよび分類パラメータを提供し、設定をプログラムで制御して、リモートデバイスからのパラメータの調整をサポートします。

セグメント化

セグメンテーションプロセスでは、OCRMax 関数が ROI 内のテキスト行の位置を判別し、テキストの角度、傾き、および極性を計算します。その後、領域を正規化し、不要なノイズを除去してから、前景ピクセルと背景ピクセルに 2 値化します。2 値化画像内でブロブ解析を実行し、文字フラグメントを生成します。各文字フラグメントが単一のブロブを表します。文字フラグメントをグループ化して文字を形成し、その文字に文字矩形を割り当てます。

ROI 内のテキスト行は、個々の文字の画像に分割され、各文字は編集不可の文字矩形で囲まれます。ROI は、テキスト行のおよその位置、角度、傾きを定義します。必要に応じて、[セグメント] タブの [角度範囲] および [スキュー範囲] パラメータを使用して、偏差を補正できます。

:  OCRMax 関数が汎用目的の文字列検索機能ではない点を理解することが重要です。ROI が大きい複雑な画像内の文字列は検出できません。ROI は、テキスト行の直近に設定する必要があります。

分類

セグメンテーションが完了すると、文字はフォントデータベースに登録され、実行時の画像で文字の分類が開始されます。分類では、セグメンテーションされた文字画像を入力として使用し、対応する文字を判別します。テキスト行のセグメンテーションされた文字画像をすべて分類することで、テキスト行全体の文字列全体が返されます。

分類は登録後に実行され、入力された文字の文字列またはユーザ割り当ての値に基づいて、個々の文字にタイトルが割り当てられます。文字の集合が登録され 1 つのフォントにグループ化されると、実行時の画像がフォント内の文字と比較され、最適一致の文字と得点が返されます。

各文字は、分類対象文字の 1 つ以上の例の中から登録されます。文字は、1 つのフォントにグループ化され、OCRMax 関数の データ構造体に格納されます。フォントには、すべての登録文字が含まれます。各文字は、名前、文字矩形の画像、およびその中の情報 (テキストのインクなど) から構成されます。

結果

実行時の画像内で読み取った文字の名前のほかに、追加情報も渡します。また、文字のステータス、文字分類得点、可能な代替文字、およびコンフュージョン得点もレポートします。分類得点は、実行時画像内の文字と登録インスタンスとの一致の度合いを示しています。コンフュージョン得点は、分類得点 (最高得点の登録インスタンス) と次に高い分類得点 (異なるクラスの最高得点の登録インスタンス。可能な代替文字としても使用される、[コンフュージョン] の出力) との差として計算されます。

[検査モード] (読み取りまたは認識と照合) に応じて、結果品質を示すステータスを出力します ([読み取り (Bad)]、[読み取り (Good)]、[無視]、[コンフュージョン]、[ミスマッチ]、[コンフュージョンミスマッチ]、[No read]、および [検証失敗])。認識と照合ステータスは、得点とコンフュージョン得点がそれぞれ [アクセプトしきい値] パラメータと [コンフュージョンしきい値] パラメータの範囲内の場合にのみ返されます。

ReadText 関数、TrainFont 関数、および VerifyText 関数

:  レガシー関数である ReadTextTrainFont および VerifyText 関数の代わりに、OCRMax 関数を使用することを推奨します。OCRMax 関数には拡張性能機能が搭載されています。

ReadText 関数、TrainFont 関数、および VerifyText 関数は、OCV/OCR 機能を分担しています。使用する関数は、テキスト文字列内の文字が既知 (照合) か未知 (認識) かによって決まります。

OCV と OCR のどちらについても、照合または認識する可能性のあるすべての文字の登録モデルを含んでいるフォントが必要です。フォントは、テキスト文字列を個別のセグメントに分割し、各セグメントから文字のサンプル(インスタンスと呼ばれます)を抽出することによって、登録されます。同じ文字の複数のインスタンスを抽出して、1 つの文字モデルに入れることができます。文字モデルの集合全体によって、フォントデータベースが定義されます。

OCV の使用時には、テキスト文字列の各位置の文字がユーザ登録フォントの対応する文字モデルと比較されます。照合に合格するには、モデルと比較される各文字の一致得点が、(1) 最小アクセプトしきい値を超え、(2) フォント内のほかのすべての文字モデルと比較した場合の一致得点を超える必要があります。

OCR の使用時には、テキスト文字列の各文字がユーザ登録フォントのすべての文字モデルと比較されます。必要に応じて、文字モデルの比較数を小さな文字サブセットに制限して、読み取り速度と精度を向上させることができます。最高一致得点を持つ文字モデルによって、各文字の同一性が決定されます。読み取りに合格するには、テキスト文字列の各文字の一致得点が、(1) 最小アクセプトしきい値を超え、(2) 2 番目の一致得点を持つ文字モデルの得点と指定した別のアクセプトしきい値を合わせた値を超える必要があります。

フォントの登録について

フォント登録では、未知のテキストの認識(OCR)、およびテキストの照合(OCV)のために使用される文字モデル(A、B、C、5、$ など)を定義します。実世界画像アプリケーションで発生する可能性があるわずかな差異の影響を打ち消すことができるように、多くの場合、文字モデルの複数のインスタンスが登録されます。アプリケーションで必要となる各文字についてのモデルを確立した後は、In-Sight センサは、既知または未知の文字をこれらの文字モデルと比較することができます。[OCV/OCR フォントの登録] ダイアログは、フォントデータベースの文字モデルの定義および維持に使用します。