(57)【特許請求の範囲】
【請求項１】
プロセッサで、文書の画像を、前記文書中の個々の文字に対応する局所的な部分画像に分割するステップと、
前記プロセッサで、基準部分画像に対する前記部分画像のうち１番目の部分画像の視覚的相関を求めるステップであって、該視覚的相関を求めるステップは、
変形部分画像を求めるために前記基準部分画像に対応する空間的向きを持つように前記部分画像のうち前記１番目の部分画像を変形することと、
前記変形部分画像の周囲にマージンを付加することと、
前記マージンで定義される境界内における、前記変形部分画像に相対的な前記基準部分画像の種々の位置について、前記変形部分画像と前記基準部分画像との間の相関値を計算することと、
前記相関値のうち最も大きい相関値を、前記基準部分画像に対する前記部分画像のうち前記１番目の部分画像の前記視覚的相関として割り当てることと、
によりなされる、ステップと、
前記プロセッサで、前記部分画像それぞれを、前記基準部分画像に対する前記部分画像それぞれの前記視覚的相関に基づいてクラスタに分類するステップであって、前記基準部分画像と前記クラスタに分類される前記部分画像それぞれとの間の前記視覚的相関が相関閾値を超える、ステップと、
前記プロセッサで、前記クラスタに分類された前記部分画像に基づいて前記クラスタの指定文字を識別するステップと、
前記プロセッサで、前記指定文字を、前記クラスタに分類された前記部分画像それぞれに関連付けられた前記文書の画像中の位置に関連付けるステップと、
を含む方法。
【請求項２】
前記指定文字が、光学文字認識エンジンを使用せずに識別される、請求項１に記載の方法。
【請求項３】
前記クラスタに関連付けられた代表部分画像を人間の点検者に提示することと、
前記人間の点検者から前記指定文字を示すフィードバックを受け取ることと、
により、前記クラスタの前記指定文字を識別するステップをさらに含む、請求項１に記載の方法。
【請求項４】
前記指定文字が、前記クラスタに関連付けられた代表部分画像の光学文字認識に基づいて識別される、請求項１に記載の方法。
【請求項５】
前記代表部分画像が、前記クラスタに分類された前記部分画像のうち１番目の部分画像に対応する、請求項４に記載の方法。
【請求項６】
前記代表部分画像が、前記クラスタに分類された前記部分画像それぞれの合成である、請求項４に記載の方法。
【請求項７】
前記クラスタの代表部分画像の光学文字認識分析の出力に基づいて、前記指定文字の信頼性を判定するステップと、
前記指定文字が信頼できると判定された場合、自動的に前記指定文字を前記クラスタに割り当てるステップと、
をさらに含む、請求項１に記載の方法。
【請求項８】
プロセッサで、文書の画像を、前記文書中の個々の文字に対応する局所的な部分画像に分割するステップと、
前記プロセッサで、前記部分画像それぞれを、基準部分画像に対する前記部分画像それぞれの視覚的相関に基づいてクラスタに分類するステップであって、前記基準部分画像と前記クラスタに分類される前記部分画像それぞれとの間の前記視覚的相関が相関閾値を超える、ステップと、
前記プロセッサで、前記クラスタに分類された前記部分画像に基づいて前記クラスタの指定文字を識別するステップと、
前記プロセッサで、前記指定文字を、前記クラスタに分類された前記部分画像それぞれに関連付けられた前記文書の画像中の位置に関連付けるステップと、
前記クラスタの代表部分画像の光学文字認識分析の出力に基づいて、前記指定文字の信頼性を判定するステップと、
前記指定文字が信頼できると判定された場合、自動的に前記指定文字を前記クラスタに割り当てるステップと、
前記指定文字が信頼できないと判定された場合、前記代表部分画像を、以前に人間の点検者によって検証された記憶されている指定文字に関連付けられた記憶されている部分画像と比較するステップと、
前記代表部分画像と前記記憶されている部分画像との間の視覚的相関が前記相関閾値を超える場合、前記記憶されている指定文字を、自動的に前記クラスタの前記指定文字として割り当てるステップと、
を含む、方法。
【請求項９】
前記指定文字が信頼できないと判定された場合、前記指定文字を検証するように人間の点検者を促すステップをさらに含む、請求項７に記載の方法。
【請求項１０】
プロセッサで、文書の画像を、前記文書中の個々の文字に対応する局所的な部分画像に分割するステップと、
前記プロセッサで、前記部分画像それぞれを、基準部分画像に対する前記部分画像それぞれの視覚的相関に基づいてクラスタに分類するステップであって、前記基準部分画像と前記クラスタに分類される前記部分画像それぞれとの間の前記視覚的相関が相関閾値を超える、ステップと、
前記プロセッサで、前記クラスタに分類された前記部分画像に基づいて前記クラスタの指定文字を識別するステップと、
前記プロセッサで、前記指定文字を、前記クラスタに分類された前記部分画像それぞれに関連付けられた前記文書の画像中の位置に関連付けるステップと、
前記クラスタの代表部分画像の光学文字認識分析の出力に基づいて、前記指定文字の信頼性を判定するステップであり、前記クラスタの代表部分画像の光学文字認識分析で生成された位置誤差値が位置誤差閾値を満たさない場合に、前記指定文字が信頼できないと判定され、前記位置誤差値は、前記代表部分画像の中で識別された前記指定文字の境界の位置と前記代表部分画像の境界との差に相当する、ステップと、
前記指定文字が信頼できないと判定された場合、前記指定文字を検証するように人間の点検者を促すステップと、
前記指定文字が信頼できると判定された場合、自動的に前記指定文字を前記クラスタに割り当てるステップと、
を含む、方法。
【請求項１１】
前記光学文字認識分析で生成された信頼度値が信頼度の閾値を満たさない場合に、前記指定文字が信頼できないと判定される、請求項９に記載の方法。
【請求項１２】
プロセッサで、文書の画像を、前記文書中の個々の文字に対応する局所的な部分画像に分割するステップと、
前記プロセッサで、前記部分画像それぞれを、基準部分画像に対する前記部分画像それぞれの視覚的相関に基づいてクラスタに分類するステップであって、前記基準部分画像と前記クラスタに分類される前記部分画像それぞれとの間の前記視覚的相関が相関閾値を超える、ステップと、
前記プロセッサで、前記クラスタに分類された前記部分画像に基づいて前記クラスタの指定文字を識別するステップと、
前記プロセッサで、前記指定文字を、前記クラスタに分類された前記部分画像それぞれに関連付けられた前記文書の画像中の位置に関連付けるステップと、
前記クラスタの代表部分画像の光学文字認識分析の出力に基づいて、前記指定文字の信頼性を判定するステップであり、前記光学文字認識分析で生成された信頼度値が信頼度の閾値を満たさない場合に、前記指定文字が信頼できないと判定される、ステップと、
前記指定文字が信頼できないと判定された場合、前記指定文字を検証するように人間の点検者を促すステップであり、前記指定文字を検証するように前記人間の点検者を促すステップが、
前記信頼度値が前記信頼度の閾値を満たさず、且つ確定閾値を満たす場合に、前記指定文字を前記代表部分画像と並べて表示し、前記指定文字が前記代表部分画像に対応することを確定するように前記人間の点検者に要求することと、
前記信頼度値が前記確定閾値を満たさない場合に、前記代表部分画像を表示し、前記代表部分画像を識別するように前記人間の点検者に要求することと、
を含む、ステップと、
前記指定文字が信頼できると判定された場合、自動的に前記指定文字を前記クラスタに割り当てるステップと、
を含む、方法。
【請求項１３】
プロセッサで、文書の画像を、前記文書中の個々の文字に対応する局所的な部分画像に分割するステップと、
前記プロセッサで、前記部分画像それぞれを、基準部分画像に対する前記部分画像それぞれの視覚的相関に基づいてクラスタに分類するステップであって、前記基準部分画像と前記クラスタに分類される前記部分画像それぞれとの間の前記視覚的相関が相関閾値を超える、ステップと、
前記プロセッサで、前記クラスタに分類された前記部分画像に基づいて前記クラスタの指定文字を識別するステップと、
前記プロセッサで、前記指定文字を、前記クラスタに分類された前記部分画像それぞれに関連付けられた前記文書の画像中の位置に関連付けるステップと、
前記クラスタの代表部分画像の光学文字認識分析の出力に基づいて、前記指定文字の信頼性を判定するステップであり、前記代表部分画像の中にある前景画素であり、且つ前記代表部分画像の中で識別された前記指定文字の境界よりも外にある前景画素の量が画素閾値を満たさない場合に、前記指定文字が信頼できないと判定される、ステップと、
前記指定文字が信頼できないと判定された場合、前記指定文字を検証するように人間の点検者を促すステップと、
前記指定文字が信頼できると判定された場合、自動的に前記指定文字を前記クラスタに割り当てるステップと、
を含む、方法。
【請求項１４】
プロセッサを介して実装される画像分析器であって、
文書の画像を、前記文書中の個々の文字に対応する局所的な部分画像に分割し、
基準部分画像に対する前記部分画像のうち１番目の部分画像の視覚的相関を求め、該視覚的相関を求めることは、
変形部分画像を求めるために前記基準部分画像に対応する空間的向きを持つように前記部分画像のうち前記１番目の部分画像を変形することと、
前記変形部分画像の周囲にマージンを付加することと、
前記マージンで定義される境界内における、前記変形部分画像に相対的な前記基準部分画像の種々の位置について、前記変形部分画像と前記基準部分画像との間の相関値を計算することと、
前記相関値のうち最も大きい相関値を、前記基準部分画像に対する前記部分画像のうち前記１番目の部分画像の前記視覚的相関として割り当てることと、
によりなされ、
前記部分画像それぞれを、前記基準部分画像に対する前記部分画像それぞれの前記視覚的相関に基づいてクラスタに分類し、前記基準部分画像と前記クラスタに分類される前記部分画像それぞれとの間の前記視覚的相関が相関閾値を超える、画像分析器と、
前記プロセッサを介して実装される文字識別器であって、前記クラスタに分類された前記部分画像に基づいて前記クラスタの指定文字を識別する、文字識別器と、
前記プロセッサを介して実装される符号化テキスト生成器であって、前記指定文字を、前記クラスタに分類された前記部分画像それぞれに関連付けられた前記文書の画像中の位置に関連付ける、符号化テキスト生成器と、
を備える装置。
【請求項１５】
前記文字識別器が、
前記クラスタの代表部分画像の光学文字認識分析の出力に基づいて、前記指定文字の信頼性を判定し、
前記指定文字が信頼できると判定された場合、自動的に前記指定文字を前記クラスタに割り当てる、請求項１４に記載の装置。
【請求項１６】
前記指定文字が信頼できないと判定された場合、前記文字識別器が、前記指定文字を検証するように人間の点検者を促す、請求項１５に記載の装置。
【請求項１７】
命令を備えた有形のコンピュータ可読記憶媒体であって、該命令は、実行されると機械に、少なくとも、
文書の画像を、前記文書中の個々の文字に対応する局所的な部分画像に分割するステップと、
基準部分画像に対する前記部分画像のうち１番目の部分画像の視覚的相関を求めるステップであって、該視覚的相関を求めるステップは、
変形部分画像を求めるために前記基準部分画像に対応する空間的向きを持つように前記部分画像のうち前記１番目の部分画像を変形することと、
前記変形部分画像の周囲にマージンを付加することと、
前記マージンで定義される境界内における、前記変形部分画像に相対的な前記基準部分画像の種々の位置について、前記変形部分画像と前記基準部分画像との間の相関値を計算することと、
前記相関値のうち最も大きい相関値を、前記基準部分画像に対する前記部分画像のうち前記１番目の部分画像の前記視覚的相関として割り当てることと、
によりなされる、ステップと、  前記部分画像それぞれを、前記基準部分画像に対する前記部分画像それぞれの前記視覚的相関に基づいてクラスタに分類するステップであって、前記基準部分画像と前記クラスタに分類される前記部分画像それぞれとの間の前記視覚的相関が相関閾値を超える、ステップと、
前記クラスタに分類された前記部分画像に基づいて前記クラスタの指定文字を識別するステップと、
前記指定文字を、前記クラスタに分類された前記部分画像それぞれに関連付けられた前記文書の画像中の位置に関連付けるステップと、
を実行させる、有形のコンピュータ可読記憶媒体。
【請求項１８】
前記命令は、さらに前記機械に、
前記クラスタの代表部分画像の光学文字認識分析の出力に基づいて、前記指定文字の信頼性を判定するステップと、
前記指定文字が信頼できると判定された場合、自動的に前記指定文字を前記クラスタに割り当てるステップと、
を実行させる、請求項１７に記載の有形のコンピュータ可読記憶媒体。
【請求項１９】
前記命令は、さらに前記機械に、前記指定文字が信頼できないと判定された場合、前記指定文字を検証するように人間の点検者を促すステップを実行させる、請求項１８に記載の有形のコンピュータ可読記憶媒体。
【発明の詳細な説明】
【開示の分野】
【０００１】
[0001]本開示は一般にはテキストの抽出に関し、より詳細には、画像化された文書からテキストを抽出する方法及び装置に関する。
【背景】
【０００２】
[0002]個人、事業体、及び／又は他のエンティティが、文書（又は他の物）中のテキストの画像を機械符号化されたテキストに変換したいと考える種々の状況や理由が存在する。例えば、画像化されたテキストを機械符号化されたテキストに変換することにより、テキストの電子的な編集、検索、データベースへの編成及び／又は記憶等が可能になる。画像化されたテキストの識別と符号化を、本明細書ではテキストの抽出と呼ぶ。
【図面の簡単な説明】
【０００３】
【図１】[0003]図１は、本開示の教示により実装される例示的なデータ処理機能を含む例示的環境の概略図である。
【０００４】
【図２】[0004]図２は、図１の例示的なデータ処理機能の例示的実装のブロック図である。
【０００５】
【図３】[0005]図３は、本明細書に開示される教示による、２つの例示的な文字の部分画像の比較を説明する図である。
【図４】[0005]図４は、本明細書に開示される教示による、２つの例示的な文字の部分画像の比較を説明する図である。
【図５】[0005]図５は、本明細書に開示される教示による、２つの例示的な文字の部分画像の比較を説明する図である。
【０００６】
【図６】[0006]図６は、実際のレシートから切り出された文字の例示的な部分画像を示す図である。
【０００７】
【図７】[0007]図７は、誤って数字の「１」と識別された数字の「４」の例示的な部分画像の図である。
【０００８】
【図８】[0008]図８は、図１及び／又は図２の例示的なデータ処理機能を実装するために実行できる例示的な機械可読命令を表すフローチャートである。
【図９】[0008]図９は、図１及び／又は図２の例示的なデータ処理機能を実装するために実行できる例示的な機械可読命令を表すフローチャートである。
【図１０】[0008]図１０は、図１及び／又は図２の例示的なデータ処理機能を実装するために実行できる例示的な機械可読命令を表すフローチャートである。
【図１１】[0008]図１１は、図１及び／又は図２の例示的なデータ処理機能を実装するために実行できる例示的な機械可読命令を表すフローチャートである。
【図１２】[0008]図１２は、図１及び／又は図２の例示的なデータ処理機能を実装するために実行できる例示的な機械可読命令を表すフローチャートである。
【図１３】[0008]図１３は、図１及び／又は図２の例示的なデータ処理機能を実装するために実行できる例示的な機械可読命令を表すフローチャートである。
【０００９】
【図１４】[0009]図１４は、図１及び／又は図２の例示的なデータ処理機能を実装する図８〜図１３の例示的な機械可読命令を実行するように構成された例示的なプロセッサプラットフォームのブロック図である。
【詳細な説明】
【００１０】
[0010]手作業によるテキストの抽出には、人間が文書の画像（又は文書の紙コピー）を点検して、テキストを手作業でタイプ入力することが伴う。手作業による抽出は、精度が高いが、費用が甚大になり、時間がかかる可能性がある。光学文字認識（ＯＣＲ）は、コンピュータを使用して、画像ベースのテキスト文書を自動的に検出、識別、及び符号化する技術である。ＯＣＲを使用したテキストの抽出は一般に手作業による抽出よりも速度が高く低費用であるが、ＯＣＲは精度が劣り、誤りが生じやすい。さらに、ＯＣＲ技術の精度は、抽出しようとする元のテキストの印刷が不良であったり、元のテキストの画像の品質が低い場合には低下する。例えば、ＯＣＲエンジンは、比較的精度の高い平面スキャナを使用して画像化された印刷が鮮明な雑誌記事のテキストは認識することができても、同じＯＣＲエンジンが、品質の低いＰＯＳ（point-of-sale）プリンタを使用して印刷され、良好でない照明条件下で手持ちカメラを使用して画像化されたレシートのテキストを認識する際には、精度がはるかに下がる場合があり、これは、特にレシートに皺がついていて平らに置かれていない場合にそうである。
【００１１】
[0011]したがって、例によっては、比較的高い精度が要求される場合には、ＯＣＲ単独では不十分である。ＯＣＲを行ってから手作業による点検で誤りを修正することが可能な場合がある。しかし、そのような事例の多くでは、手作業による点検は、直接手作業で抽出する場合と同じ位の費用及び／又は時間がかかる可能性、及び／又は利益がわずかである可能性がある。さらに、コンピュータを利用したテキスト抽出（例えばＯＣＲを使用する）は、技術が進歩するにつれて時間と共に向上する可能性が高いが、それでもなお、手作業による点検を必要とし得る誤りが少なくともいくつかは生じる可能性が高い。したがって、ＯＣＲの精度に関わらず、テキスト抽出時に手作業による点検の量を減らす必要がある。
【００１２】
[0012]本明細書に開示される例は、認識対象の画像化されたテキスト中にある共通する個々の文字（例えば、文字、数字、又は記号）間の視覚的な類似性を利用して、テキスト抽出の精度及び／又は効率を高める。例えば、テキストの集まりの中にある小文字の「ｈ」は、例えば同じテキスト中の大文字の「Ｔ」（又は他の文字）よりも、テキスト中の小文字の「ｈ」の他のインスタンスと視覚的に似ている。このことに基づいて、テキスト中の文字を、視覚的に似た文字のクラスタに分類することができる。より詳細には、例によっては、画像化されたテキストを、テキストの個々の文字に対応する、より小さい局所的な部分画像に分割してから、その部分画像同士を比較し、比較に従ってクラスタに分類する。例えば、文字「ｈ」と視覚的に相関する文字の部分画像の群が１つのクラスタになり、一方、文字「Ｔ」と視覚的に相関する文字の部分画像の別の群は別のクラスタになり、他も同様である。異なる文字の中には、見た目が似ているために同じクラスタに分類される可能性がある文字もあるが（例えば、大文字の「Ｉ」と、小文字の「ｌ」、及び数字の「１」）、各文字は、他の文字から区別するのに十分なだけ見た目が異なっているため、大半のクラスタは、実質的に１つのみの特定の文字に対応する部分画像を含む。
【００１３】
[0013]事例によっては、例えば、テキストの印刷の不具合、テキストの画像化の不具合、及び／又は部分画像の形成の不具合が原因となって、同じ文字に対応する２つの部分画像間にわずかな差異が生じることがある。そのため、例によっては、一定の閾値を超える視覚的相関があることに基づいて部分画像をクラスタに分類することにより、同じ文字に対応する任意の２つの部分画像間の小さい変動を見込んでおく。ただし、例によっては、テキストの印刷や画像化に不具合がある結果、同じ文字に対応する２つの部分画像が、異なるクラスタに分類するのに十分なほど見た目が異なってしまうこともある。例えば、１つの特定の文字「ｈ」の縦線又はアセンダ（ascender（上に突き出した部分））の上部が印刷不良であり（例えば、かすれている、不完全、又は完全に欠落している等）、別の文字「ｈ」は曲線部分又は肩部分が印刷不良であり、一方、第３の文字「ｈ」には筋又は線が走っている（プリンタの印字ヘッドに残っているインクで生じる）とする。それらの文字はそれぞれ同じ文字（小文字の「ｈ」）に対応するものの、印刷の不具合のために、それらの文字のうちどの２つ文字の部分画像も、視覚的相関が所定の閾値を超えず、その結果、各部分画像がそれぞれ独自のクラスタに入れられる可能性がある。したがって、例によっては、同じ文字に対応するクラスタが複数生じる可能性がある。すなわち、各クラスタは実質的に１つのみの特定の文字に固有の部分画像を含んでいるが、部分画像のクラスタの総数が、本開示の教示に従って分析される画像化された文書にある実際に異なる文字の総数を超える可能性がある。
【００１４】
[0014]本明細書に開示される教示によると、上記のクラスタへの部分画像の分類は、画像に基づいて部分画像を視覚的に比較することに基づいている。そのため、クラスタは特定の文字に対応するものの、クラスタに対応する特定の文字の識別は指定されない場合がある（例えばまだ機械符号化されていない）。しかし、部分画像の各クラスタは特定の文字に対応するので、そのクラスタを代表する１つの部分画像の文字を識別することを使用して、そのクラスタにある部分画像すべてに対応する文字を識別することができる。特定のクラスタの部分画像に対応すると識別された文字を、本明細書ではそのクラスタの指定文字と呼ぶ。例えば、１単語当たり平均５文字と想定すると、１０００ワードの文書は約５０００文字を含んでいることになる（句読記号は含まない）。そのような例では、５０００文字の中に、小文字の「ｈ」のインスタンスが、数百ではないにしろ、数十個存在する可能性がある。文字「ｈ」のすべてのインスタンスを１つのクラスタに分類すると、１つの代表部分画像からそのクラスタの指定文字として文字「ｈ」を識別することを、そのクラスタにあるすべての部分画像に適用することができる。言うまでもなく、上記のように、文字「ｈ」のインスタンスの中には見た目が十分に異なるものがあるために、それらに対応する部分画像が別々のクラスタに分類される可能性もある。しかし、文字「ｈ」に対応するクラスタの数は、それでも、画像化された文書中にある文字「ｈ」のインスタンスの総数よりもはるかに少ない可能性が高い。それに対して、完全に手作業で行われるテキスト抽出（ＯＣＲエンジンを使用しない）では、文字ｈのすべてのインスタンス（加えて、５０００文字のうちすべての他の文字と句読点）を人間の点検者が識別してタイプ入力する必要がある。
【００１５】
[0015]より一般的には、画像化された文書を符号化するために識別すべき部分画像のクラスタの総数は、その文書で使用されている一意の文字の総数と、各一意の文字がその特定文字の異なるインスタンスの見た目のばらつきに基づいて（例えば、使用されている異なるフォント、一部の文字の印刷エラー、及び／又は分析対象の文書若しくはテキストを撮影する際に生じるエラーに基づいて）分類され得る異なるクラスタの数とに対応する。例えば、英語のテキストの大半は、２６個の大文字、２６個の小文字、１０個の数字、及び３２個の記号に対応する、最大で９４種類の一意の文字（標準的なキーボードで利用できるもの）を含んでいる。各文字の見かけが異なっていて最大でＮ通りに異なるクラスタに分類され得る場合、任意の特定の画像化されたテキストから生じる可能性のある異なるクラスタの最大数は、Ｎ×９４になる。Ｎ（特定の文字が分類され得る異なるクラスタの最大数）が１０に等しいとすると、任意の画像化されたテキストのクラスタの総数は、わずか９４０クラスタ（１０×９４）である。したがって、本明細書に開示されるクラスタを利用すると、従来の手作業によるテキスト抽出手法を使用して５０００文字すべてとそれに関連する句読点を個々に識別するのではなく、上記で参照した５０００文字の文書全体を人間の点検者（ＯＣＲエンジンを使用しない）によって符号化することができ、点検者が行う文字の識別は最大でも９４０回であり、その後それをテキスト全体に反映させる。事例によっては、文字識別の総数はそれよりも大幅に少ない可能性がある。その理由は、テキストが存在し得る９４種の文字すべてを含んでいる可能性は低く、一部の文字（例えばピリオドやカンマ）は、取り得る見た目の形が比較的少ない可能性が高く（Ｎよりもはるかに少ない）、その結果クラスタ数が少なくなるためである。
【００１６】
[0016]類似する見た目に基づいて部分画像をクラスタに分類してから対応する文字を識別することの利点は、画像化されたテキストがさらに多くの文字を含んでいる場合にさらに明白になる。例えば、文書が上記の例の１０倍の長さである（約５０，０００文字を含む）場合でも、対応するクラスタを識別する部分画像のクラスタは９４０個に過ぎない（例えば、上記の例と同様に、任意の文字に対応するクラスタの最大数がＮ＝１０であると仮定する）。５，０００文字のテキストに関連するクラスタと５０，０００文字のテキストに関連するクラスタとの違いは、５０，０００文字のテキストのクラスタは、概して、５，０００文字のテキストよりも多くの部分画像を含んでいる点である。人間の点検者から見ると、クラスタを代表する１つの部分画像の識別を、そのクラスタの大きさに関係なくクラスタ中のあらゆる部分画像に適用できるので、長いテキストの文字を抽出する（符号化する）ための時間も費用も増大しない。したがって、５，０００文字を識別する必要がある場合でも、５０，０００文字を識別する必要がある場合でも、行う文字の指定は最大で９４０回（Ｎ＝１０と想定）に過ぎない。
【００１７】
[0017]本明細書に開示される教示は、文書のバッチのテキスト抽出にも拡張することができる。すなわち、画像化されたテキストは単一の独立した文書に対応する場合もあるが、同じ原理が、画像化されたテキストが複数の個別の文書及び／又は種々の文書に対応する場合にも該当する。例えば、それぞれが５０，０００文字を含んでいる１００個の文書を共に画像化し、分析するとする。そのような例では、符号化すべき文字は合計５，０００，０００字あるが、１００個の文書すべてを符号化するために識別すべき特定の文字に関連付けられた異なるクラスタは、やはり約Ｎ×９４個にとどまる。１００個の画像化された文書を分析して、５，０００，０００文字それぞれに対応する５，０００，０００個の部分画像を対応するクラスタに正しく分類するには多少の時間及び／又は費用がかかるが、この費用は、そのような分析が本明細書に開示されるように自動化されるため、無視することができる。
【００１８】
[0018]上記の例では手作業によるテキスト抽出の費用が大幅に低減するが、ＯＣＲ技術を実装して各クラスタに指定すべき適切な文字を識別する場合には、人間の点検者の関与をさらに大幅に減らすことができる。言うまでもなく、ＯＣＲ方法が完全に正確であれば、手作業による点検は全く必要ない。しかし、ＯＣＲ技術は多少の誤りの余地を含んでいる。多くの文字はＯＣＲを使用して正確に識別することができるが、一般には、識別することができない、又は識別されてもその信頼度が比較的低い文字が少なくともいくつか存在する。そのため、本明細書に開示されるいくつかの例では、ＯＣＲエンジンを使用して行われたクラスタの指定文字の識別の信頼性を分析する。そのような例では、指定文字の識別の信頼性が比較的高い（例えば閾値を上回る）場合、指定文字は、手作業による点検を行わずに、クラスタの各部分画像に自動的に割り当てられる。一方、指定文字の識別の信頼性が比較的低い（例えば閾値を下回る）場合には、ＯＣＲエンジンで識別された指定文字にフラグを立てて、手作業による点検及び／又は確定を行うことができる。
【００１９】
[0019]上記のように部分画像のクラスタ分類と併せてＯＣＲ技術を使用すると、上記で述べた純粋に手作業でクラスタを点検する場合の時間の節約に加えて、人間の点検者の関与を大きく減らすことができる。例えば、ＯＣＲエンジンが全時間の８０％で十分な信頼性（例えば閾値を上回る）で指定文字を識別できるとする。そのようなシナリオでは、上記の指定文字を識別すべきクラスタが９４０個あり得る例では、１８８個（２０％）だけを手作業で点検すればよい。これは、完全に手作業によるテキスト抽出では５，０００，０００文字の識別を行うのと比べると著しい改善である。５，０００，０００文字を従来のＯＣＲ方法を使用して分析することにより、完全に手作業による点検を減らすことは可能であるが、この例ではＯＣＲの精度が８０％に過ぎないため、識別の信頼性が十分でなく、したがって手作業による点検を必要とする文字が、なお１，０００，０００字（５，０００，０００字の２０％）残る。したがって、本明細書に開示されるように文字の部分画像を、類似する見た目を持つ画像のクラスタに分類することは、ＯＣＲ技術を使用するかどうかに関係なく、望ましい精度を達成しつつ、手作業によるテキスト抽出の費用を大幅に減らす見込みがある。言うまでもなく、ＯＣＲを使用すれば、費用及び／又は人間の点検者の必要をさらに減らす助けとなる。言い換えると、本明細書に開示される教示は、ＯＣＲ技術の精度、さらにはＯＣＲ技術の使用に依存してテキスト抽出時の人間の点検者の関与を減らすものではないが、どのような精度のＯＣＲ技術でも、人間の点検者の関与をさらに減らす効果がある。したがって、時間と共にＯＣＲ技術が開発され、向上するのに伴って、その技術を明細書に開示される教示に従ってすみやかに実装して、人間の点検者の関与量をさらに減らすことができる。
【００２０】
[0020]また、例によっては、ＯＣＲの使用で確実に識別できない可能性のある文字に対応する部分画像のクラスタの指定文字を手作業で識別した結果をデータベースに保存しておき、将来追加的な文書を分析する時に参照する。すなわち、本明細書に開示される教示を、ある特定の時に１つ又は複数の画像化された文書（例えば１つのバッチ）に適用するのに加えて、手作業によるクラスタの指定文字の識別を使用して、後に分析される対応するクラスタにある部分画像に指定される文字を自動的に識別することができる。言い換えると、手作業で行われた特定の部分画像に指定される文字の識別を、分析すべき多くの異なる文書にある多数の類似する部分画像（例えば閾値内にある同じ見た目を持つ）のインスタンスに適用することができ、それは同時に分析する場合（例えば１つのバッチ）でも、ある時間にわたって分析する場合（例えば複数の連続したバッチ）でも構わない。
【００２１】
[0021]本明細書に開示される例示的な方法は、プロセッサで、文書の画像を、文書中の個々の文字に対応する局所的な部分画像に分割するステップを含む。例示的な方法は、プロセッサで、基準部分画像に対する部分画像それぞれの視覚的相関に基づいて、部分画像それぞれをクラスタに分類するステップをさらに含む。基準部分画像と、クラスタに分類される部分画像それぞれとの間の視覚的相関は、相関閾値を超える。例示的な方法は、プロセッサで、クラスタに分類された部分画像に基づいてクラスタの指定文字を識別するステップも含む。例示的な方法は、プロセッサで、指定文字を、クラスタに分類された部分画像それぞれに関連付けられた文書の画像中の位置に関連付けるステップをさらに含む。
【００２２】
[0022]例示的な装置は、文書の画像を、文書中の個々の文字に対応する局所的な部分画像に分割し、基準部分画像に対する部分画像それぞれの視覚的相関に基づいて、部分画像それぞれをクラスタに分類する、プロセッサを介して実装される画像分析器を備える。基準部分画像と、クラスタに分類される部分画像それぞれとの間の視覚的相関は、相関閾値を超える。例示的な装置は、クラスタに分類された部分画像に基づいてクラスタの指定文字を識別する、プロセッサを介して実装される文字識別器をさらに備える。例示的な装置は、指定文字を、クラスタに分類された部分画像それぞれに関連付けられた文書の画像中の位置に関連付ける、プロセッサを介して実装される符号化テキスト生成器も備える。
【００２３】
[0023]例示的な命令は、実行されると機械に、少なくとも、文書の画像を、文書中の個々の文字に対応する局所的な部分画像に分割させる。例示的な命令はさらに、機械に、基準部分画像に対する部分画像それぞれの視覚的相関に基づいて、部分画像それぞれをクラスタに分類させる。基準部分画像と、クラスタに分類される部分画像それぞれとの間の視覚的相関は、相関閾値を超える。また、例示的な命令は、機械に、クラスタに分類された部分画像に基づいてクラスタの指定文字を識別させる。また、例示的な命令は、機械に、指定文字を、クラスタに分類された部分画像それぞれに関連付けられた文書の画像中の位置に関連付けさせる。
【００２４】
[0024]図１は、本明細書に開示される教示を実装することができる例示的シナリオを示す。図の例では、小売店１０２が商品又はサービスを消費者１０４に販売する。購入の一部として、小売店１０２は消費者１０４にレシート１０６を提供する場合がある。例によっては、消費者１０４は市場調査パネルの消費者パネリストである。消費者パネリストは、パネル員の人口統計学的特徴に結びつけることができる市場データ（例えば購入された商品、購入の数量、価格、購入の場所等に関する）をパネル員から収集するために市場調査エンティティ１０８によって維持管理されるパネルに登録された消費者１０４である。すなわち、市場調査エンティティ１０８は、監視されること、及び／又は他の形で市場調査エンティティ１０８にフィードバックを提供することに同意する人（例えば消費者パネリスト１０４）を登録する。登録時に、市場調査エンティティ１０８は、登録する人（例えば消費者パネリスト１０４）から人口統計学的情報を受け取り、後に、そのパネリストに関連付けられた市場データと、種々の人口統計学的市場との間に相関付けを行えるようにする。人は、例えば電話による面接やオンライン調査に回答する等の適切な方式で、パネリストになることができる。それに加えて、又はそれに代えて、要求される任意の方法（例えば、無作為の選択、統計的な選択、電話による要請、インターネット広告、調査、ショッピングモールにおける広告、製品パッケージ等）を使用して人に連絡を取り、及び／又は参加させる場合もある。
【００２５】
[0025]例によっては、個人が消費者パネリストとして登録されると、市場調査エンティティ１０８は、レシートが処理及び分析されるデータ処理機能１１０でレシート（例えばレシート１０６）のコピーを収集することにより、その消費者パネリストの購買行動を追跡及び／又は監視する。例によっては、パネリスト１０４は、レシート１０６の画像１１２を撮影して、その画像を市場調査エンティティ１０８のデータ処理機能１１０に転送するように要求される。画像１１２は、任意の適切な手段を使用して撮影し、データ処理機能１１０に転送することができる。例えば、パネリスト１０４は、手持ち型デバイス（例えばタブレットやスマートフォン等）を使用してレシート１０６の写真を撮り、得られた画像１１２をデータ処理機能１１０に（例えばワイヤレスセルラーネットワークを通じて）送信することができる。レシートの写真を撮ることは消費者パネリスト１０４にとっては簡便である可能性があるが、消費者パネリスト１０４によって撮影された画像１１２は、例えば、レシートがカメラの視野に対して正しい向きになっていない（例えば、図の例に示すように、画像１１２中のレシート１０６が画像１１２に対して向きが合っていない）、照明が十分でない、カメラの焦点が合っていない等の理由で品質が低い可能性があるため、後に行われるテキスト抽出で問題を呈する可能性がある。そのような状況では、ＯＣＲ技術の精度率は、許容できる精度を達成するために人間の点検者を使用する必要が高まるような精度率になる可能性がある。他の例では、パネリスト１０４がスキャナを使用してレシート１０６を読み取り、得られた画像１１２をデータ処理機能１１０に（例えばインターネットを通じて）送信する。他の例では、オンラインで購入が行われ、レシート１０６が電子的に生成される場合がある（例えば電子メールを介してパネリスト１０４に送付される）。そのような例では、レシートの電子コピーをデータ処理機能１１０に転送することができる。
【００２６】
[0026]図の例には１つのみのレシート１０６を示すが、パネリスト１０４は任意数のレシートを撮影し、それをデータ処理機能１１０に転送することができる。例によっては、同じ小売店１０２のレシートが複数ある場合もある。他の例では、パネリスト１０４は、複数の異なる小売店から購入し、したがってそれらの小売店のレシートのコピーをデータ処理機能１１０に提供することができる。さらに、図１には１人のみのパネリスト１０４を示すが、例によっては、複数の消費者がパネリストとして登録し、購入したそれぞれの小売店から受け取ったレシートを提供する場合もある。したがって、例によっては、データ処理機能１１０は、１人又は複数の消費者パネリストから提供された、１つ又は複数の小売店を発行元とするレシートの画像を複数受け取る場合がある。
【００２７】
[0027]それに加えて、又はそれに代えて、図の例に示すように、小売店１０２は、消費者がパネリストであるかどうかに関係なく、消費者のレシートのコピー又は画像１１４を直接データ処理機能１１０に提供する場合もある。すなわち、レシート画像１１４は、パネリスト１０４（及び／又は他のパネリスト）によって開始された取引と、パネリストでない他の消費者によって開始された取引の両方に対応する可能性がある。したがって、例によっては、データ処理機能１１０は、特定の小売店１０２からレシート画像の多量のバッチを分析と処理のために受け取る可能性がある。言うまでもなく、事例によっては、小売店１０２は電子形態のレシート情報を利用できることもあり、その結果テキストの抽出が不要になる。
【００２８】
[0028]例によっては、レシート画像がパネリストから受け取られる場合（例えばレシート画像１１２）でも、小売店１０２から受け取られる場合（例えばレシート画像１１４）でも、またその両方の場合でも、データ処理機能１１０は、レシート画像１１２、１１４にある個々の文字に対応する部分画像をクラスタに分類し、クラスタごとに指定文字を識別し、対応するクラスタにあるすべての部分画像に指定文字を適用することに基づいて、同じようにレシートを分析する。データ処理機能１１０は一度に１つのレシート画像を処理することができるが、例によっては、レシート画像は、２枚以上のレシートからなるバッチで分析して、大量処理の利益を活用する。例えば、１バッチ当たりのレシート数が多いほど、任意のクラスタにある部分画像の数は多くなるが、そのバッチ全体から生成されるクラスタの総数は、バッチにあるレシートの数に関係なく、ほぼ同じままである可能性が高い。そのため、バッチに識別すべき指定文字の総数は、バッチの大きさに関係なく、ほぼ一定している可能性がある。
【００２９】
[0029]分析する特定のバッチに含まれるレシートが多いほど、個々のレシートに固有の印刷エラー及び／又は正常に印刷されたテキストからの他の逸脱（例えば偶発的なインクの染み）があり、その結果、バッチ中のすべての他の文字と視覚的に異なった文字が生成される可能性がある。そのため、例によっては、大きいバッチに含まれるクラスタの総数は、小さいバッチよりも若干多くなる可能性がある。しかし、そのような逸脱から生じる付加的なクラスタは、（大きいバッチに含まれる）他のレシートにあるすべての文字を他のレシートと同時に識別することで得られる効率と比べれば、比較的少ない。
【００３０】
[0030]より重要な点として、バッチに含まれる複数のレシートが、異なるフォントを使用する異なる種類のプリンタで印刷された場合には、ある種類のレシート（例えば第１のフォントを使用して第１の種類のプリンタで印刷されたレシート）にある文字の多くが、別の種類のレシート（例えば第２のフォントを使用して第２の種類のプリンタで印刷されたレシート）にある文字と視覚的に似ていない可能性が比較的高くなる。そのようなシナリオでは、各種類のレシートが、もう一方の種類のレシートの文字に対応しない独自のクラスタの組を生じさせる可能性があり、その結果、レシートをまとめて１つのバッチにしても、各種類のレシートのバッチを個別に分析する場合を上回る著しい効率は得られない。したがって、例によっては、プリンタの種類及び／又はレシートで使用されているフォントに基づいて、異なるレシートは異なるバッチに編成する。例によっては、特定の事業体は、すべての顧客のレシートを生成する際に同じ種類のＰＯＳプリンタを使用する可能性が高いと想定して、レシートの発行元である事業体（例えばレシート１０６を発行する小売店１０２）に基づいて、レシートのバッチを分析する。しかし、他の例では、データ処理機能１１０は、発行元を区別せずに（例えばパネリスト１０４が訪れたすべての小売店で得た何枚かのレシートを提供する場合）、異なる発行元からの様々なレシートを１つのバッチで分析する場合もある。データ処理機能を実装する例示的な方式については、下記で図２との関連でさらに詳細に開示する。図１にはレシート画像１１２、１１４のテキスト抽出を示すが、本明細書に開示される教示は、任意種類のデジタル的に画像化されたテキストのテキストを抽出する（例えば符号化する）ために好適に適合することができる。
【００３１】
[0031]図２は、図１の例示的なデータ処理機能１１０の例示的実装のブロック図である。例示的なデータ処理機能１１０は、例示的な通信インターフェース２０２、例示的なバッチ指定器２０４、例示的な画像分析器２０６、例示的な文字識別器２０８、例示的なユーザインターフェース２１０、例示的な符号化テキスト生成器２１２、及び例示的な文字識別データベース２１４を備えている。
【００３２】
[0032]本明細書に開示される教示を実装して任意種類の画像化されたテキストを抽出することができるが、説明のために、図２は、上記で図１との関連で説明したように消費者パネリスト及び／又は小売店から受け取られたレシートにテキスト抽出を行う文脈で説明する。そのため、図２の例では、データ処理機能１１０は、消費者パネリスト１０４及び／又は小売店１０２と通信するための例示的な通信インターフェース２０２を備える。例によっては、通信インターフェース２０２は、消費者パネリスト１０４及び／又は小売店１０２からレシートの画像（例えば画像１１２、１１４）を受信する。さらに、例によっては、通信インターフェース２０２は、以前に収集されたレシートに関して（例えば送付されたレシート画像１１４から処理されたマーケティングデータについての小売店への報告）、並びに／又は、今後収集されるレシートに関して（例えばレシート画像を撮影及び／若しくは転送することを要求する命令）、パネリスト及び／又は小売店にフィードバック及び／又は命令を送信することができる。
【００３３】
[0033]図２の例では、データ処理機能１１０は、通信インターフェース２０２で受信されたレシートをバッチ分析のために振り分ける適切なバッチを指定する例示的なバッチ指定器２０４を備える。例によっては、小売店１０２及び／又はパネリスト１０４からのレシート画像１１２、１１４の１回の送信が、１つの独立したバッチに指定される。他の例では、ある期間にわたって受信されたレシートを集めて１つのバッチにしてから分析する。他の例では、バッチ指定器２０４は、レシート画像１１２、１１４に対応する大元の発行元（例えば各レシートを発行する小売店）を識別し、異なる発行元からのレシートは異なるバッチに入れる。例によっては、バッチ指定器２０４は、レシート画像１１２、１１４の提供元である小売店１０２及び／又はパネリスト１０４からの入力に基づいて、大元の発行元を識別する。他の例では、バッチ指定器２０４は、レシート画像の分析（例えばレシートにあるロゴ及び／又は商標の検出）に基づいて、大元の発行元を識別する。
【００３４】
[0034]図２の例では、データ処理機能１１０は、分析対象のレシート画像１１２、１１４にある各文字に対応する局所的な部分画像を識別する、又は切り出す例示的な画像分析器２０６を備える。レシート画像１１２、１１４等の画像化された文書中の個々の文字を切り離すプロセスを、本明細書では分割（segmentation）と呼ぶ。いくつかの知られた分割技術がある。一例として、画像分析器２０６はレシート画像の各画素を分析して、テキストの背景に相当する、最も多く見られるグレーレベル（画像がグレースケールであると想定する）を識別する。そのような例によっては、画像分析器２０６は次いで、最も多く見られるグレーレベルの指定範囲内にある値を持つすべての画素を「０」の値（白色に相当する）に設定し、すべての他の画素を「１」の値（黒に相当する）に設定することにより、画像を２値の白黒画像に変換し、黒の画素が文字に相当する。そのような例では、画像分析器２０６は、ｆｌｏｏｄ  ｆｉｌｌアルゴリズムを使用して、白黒画像中のつながった構成部分各々を見つける。例によっては、個々の文字は白い画素によって隣接する文字から隔てられていると想定して、１つ１つのつながった構成部分を個別の文字として扱う。画像分析器２０６は、そのような構成部分それぞれの境界を算出して、識別された構成部分で表される文字の境界を求める。例によっては、構成部分の境界が隣接する構成部分の境界よりも小さい場合、及び／又は隣接する構成部分の境界と位置が一致しない場合は、その境界で囲まれた小さいエリアは、１つの文字の異なる部分（例えば小文字の「ｉ」の点と棒や、印刷不良部分で分断された文字の２つの部分）に対応すると識別し、それらを一緒に分類して、完全な文字に対応する境界を形成することができる。例によっては、構成部分（特定の文字に相当する）の境界を算出することは、構成部分の大きさと、白黒画像中での構成部分の位置の両方を求めることを含む。そのようにして、各文字の位置が指定されるため、文字が一旦識別されると、レシート画像中の該当する位置に指定文字を適用することができる。そして、計算された各構成部分の境界を元のレシート画像１１２、１１４に（同じ大きさで、同じ位置に）適用して、各レシート画像にある各文字の部分画像を切り出す。言うまでもなく、画像分析器２０６は、上記の例に加えて、又はそれに代えて他の適切な分割技術を使用してレシート画像１１２、１１４の各文字に対応する部分画像を切り出すことができる。
【００３５】
[0035]レシート画像１１２、１１４を分割して切り出された部分画像にすることに加えて、例によっては、画像分析器２０６は、部分画像同士の視覚的な比較の分析に基づいて、部分画像をクラスタに分類する。例によっては、画像分析器２０６は、２つの部分画像間の視覚的相関が閾値を超える時に、その２つの異なる部分画像を共通のクラスタに分類する。例によっては、画像分析器２０６は、２つの部分画像のうち第１の部分画像を基準部分画像として扱い、第２の部分画像を第１の部分画像と比較することにより、２つの部分画像間の視覚的相関を計算する。２つの部分画像間の視覚的相関を計算する例示的なプロセスについて、図３〜図５との関連で説明する。
【００３６】
[0036]図３の例では、第１の部分画像３０２（数字の「４」に対応する）が基準部分画像であり、それを第２の部分画像３０４（同じく数字の「４」に対応する）と比較する。説明のために、部分画像３０２、３０４の文字は輪郭だけで表している。しかし、大半の文字は、通例、印刷された時には塗りつぶされている。実際のレシートからとった実際の文字の例示的な部分画像を図６に示す。図３の例では、基準部分画像３０２の数字の「４」は、長方形の境界３０６で示されるように縦向きであるが、下部の隅３０８が欠落している。例によっては、欠落した隅３０８は、数字の「４」のその部分が印刷不良であることに起因する可能性がある。それに対して、第２の画像３０４の数字の「４」は完全に印刷されているが、境界３１０の形状が長方形でないことで示されるように、見た目が歪んでいる。例によっては、第２の部分画像３０４の数字の「４」の変則的な形状は、第２の部分画像３０４が取得されたレシートの撮影プロセスに起因する可能性がある。例えば、レシートは、レシートの画像を撮影するカメラの視野に対して斜めに置かれていた、並びに／又は、撮影時にレシートが折りたたまれていたため、折り目ができていたため、及び／若しくは皺ができていたために、文字のうち一部が歪んでしまった可能性がある。
【００３７】
[0037]例によっては、図３に示す２つの部分画像を比較するために、画像分析器２０６はまず、図４に示すように、第２の部分画像３０４を曲げるか、変形させて変形部分画像４０２にする。例によっては、変形部分画像４０２は、第１の部分画像３０２（すなわち、第２の部分画像が比較される基準部分画像）に概ね対応する形状又は空間的向きを有する。部分画像中の文字（数字の「４」）がまだ識別されていないため、例によっては、変形は、各部分画像中の特定の内容ではなく、部分画像３０２、３０４の境界３０６、３１０の分析に基づく。
【００３８】
[0038]第２の部分画像３０２が変形部分画像４０２に変形されると、例示的な画像分析器２０６は、変形部分画像４０２の周囲に、指定数の画素からなるマージン４０４を追加する。マージン４０４は、変形部分画像４０２と基準画像３０２との比較を容易にするためのいくらかのかさ上げ又はゆとりを提供する。その理由は、各部分画像３０２、３０４中の文字は、各自の境界３０６、３１０に対してわずかに異なる位置にある可能性があるためである。例によっては、画像分析器２０６は、マージン４０４で定義されるエリア内における変形部分画像４０２に対する基準部分画像３０２の複数の位置それぞれで、基準部分画像３０２と変形画像４０２との間の類似度を示す相関値を計算する。例えば、図４に示すように、第１の比較４０８では、基準部分画像３０２（点線で表される）はマージン４０４の左上の隅に位置するのに対して、第２の比較４１０では、基準部分画像３０２は、マージン４０４の右下の隅に位置している。
【００３９】
[0039]例によっては、画像分析器２０６は、画素単位の画像の比較に基づいて、部分画像３０２、４０２の相対位置ごとに相関値を計算する。例によっては、相関値は０と１の間であり、１は、部分画像同士が完全に相関している（すなわち部分画像が全く同じで、正確に位置が一致する）ことを意味する。図の例では、部分画像３０２、４０２は、マージン４０４で定義される範囲内の各相対位置（例えば、２つの画像を一度に１画素又は複数画素ずつ互いに対してずらす）で比較される。例によっては、各相対位置で計算された相関値を比較し、最も高い相関値を、第１の部分画像３０２（すなわち基準部分画像）と、第２の部分画像３０４（変形部分画像４０２が生成される元になった部分画像）との間の視覚的相関を表す値として選択する。図の例から理解できるように、第１の比較４０８では基準部分画像３０２の数字の「４」は、変形部分画像４０２の数字の「４」よりも高い位置に、且つその左側にあるのに対して、第２の比較４１０では、基準部分画像３０２の数字の「４」は、変形部分画像４０２の数字の「４」よりも低い位置に、且つその右側にある。そのため、第１の比較と第２の比較４０８、４１０それぞれの相関値は、基準部分画像３０２の数字の「４」が、変形部分画像４０２の数字の「４」の位置とより一致している場合（例えば図の２つの両端の間のどこか）に相当する相関値よりも小さくなる。
【００４０】
[0040]マージン４０４は、変形部分画像４０２の周囲に設けて、基準部分画像３０２と変形部分画像４０２のそれぞれ異なる相対位置が、２つの画像間で可能な最も高い相関値に対応する、位置が最も一致する位置を確実に囲むようにする。例えば、図５に示すように、マージン４０４がないと、基準部分画像３０２は変形部分画像４０２の左上の隅に位置するものの、基準部分画像３０２の数字の「４」は、変形部分画像４０２の数字の「４」ほど高い位置に置くことも、またそれと同じほど左に置くこともできない。したがって、マージン４０４がないと、２つの部分画像３０２、４０２間の位置が最も一致する位置が比較されず、各画像の数字の「４」がほぼ一致する時の相関値よりも低い相関値が、第１及び第２の部分画像３０２、３０４間の視覚的相関の値として割り当てられることになる。
【００４１】
[0041]上記のように、例によっては、画像分析器２０６は、２つの部分画像の間の視覚的相関（上記のように計算される最大の相関値に基づいて求められる）に基づいて、２つの部分画像が同じクラスタに属するのに十分に相関しているかどうかを判定する。例えば、２つの部分画像は、それらの視覚的相関が相関閾値を超える時に同じクラスタに分類される。相関閾値の値は任意の適切な値とすることができる（例えば、０．８、０．８５、０．９等）。図３〜図５に示す例では、２つの部分画像にわずかな差異があるので、第１の部分画像３０２と第２の部分画像３０４との間の視覚的相関は１未満になる。しかし、同じクラスタに分類するのに十分なだけ見た目が似ている可能性がある（例えば視覚的相関が相関閾値を超える）。それに対して、第２の部分画像３０４が数字の「３」に対応する場合には、計算される最大の相関値が相関閾値を超える可能性は低いため、２つの部分画像が同じクラスタに分類される可能性は非常に低い。この点をさらに説明するために、実際の部分画像６０１、６０２、６０３、６０４、６０５、６０６、６０７を図６に示す。０．８５の閾値の値に基づくと、最初の５つの部分画像６０１〜６０５（すべて数字の「８」に対応する）は、共通のクラスタ６０８に分類するのに十分に見た目が似ている。それに対して、６番目の部分画像６０６（数字の「３」に対応する）と７番目の部分画像６０７（Ｂの文字に対応する）は、クラスタ６０８の部分画像６０１〜６０５と十分に相関しないため、クラスタ６０８から除外される。
【００４２】
[0042]例によっては、異なるクラスタを識別するために、画像分析器２０６は、分析対象の画像化された文書（例えば図１のレシート画像１１２、１１４）の中で切り出された各部分画像を比較する。例によっては、重複を回避するために、追加的な各部分画像は、すでに識別された、各クラスタの１つの基準部分画像だけと比較される。例によっては、クラスタの基準部分画像は、クラスタに識別された最初の部分画像である。例えば、図６の部分画像６０１〜６０７が左から右へと順番に分析される場合には、１番目の部分画像６０１が自動的に第１のクラスタ（例えばクラスタ６０８）の基準部分画像に指定される。そのような例では、画像分析器２０６はその後、２番目の部分画像６０２を１番目の部分画像６０１と比較して、２番目の部分画像が１番目の部分画像６０３と同じクラスタ６０８に属すると判定する。例によっては、３番目の部分画像６０３は、１番目及び２番目の部分画像６０１、６０２両方と比較する場合もある。しかし、例によっては、３番目の部分画像は、クラスタ６０８に指定された基準部分画像である１番目の部分画像６０１と比較するが、クラスタに含まれる２番目の部分画像６０２等の他の部分画像とは比較しない。同じ手法を４番目及び５番目の部分画像６０４、６０５にも適用することができる。画像分析器２０６が６番目の部分画像６０６を１番目の部分画像６０１と比較し、６番目の部分画像６０６が第１のクラスタ６０８に属さないと判定すると、画像分析器２０６は、６番目の部分画像６０６を対応する基準部分画像とする新しいクラスタを作成することができる。そのような例では、７番目の部分画像６０７は、１番目の部分画像６０１（第１のクラスタ６０８の基準部分画像）と比較され、６番目の部分画像６０６（第２のクラスタの基準部分画像）と比較され、そしてそれら最初の２つのクラスタと視覚的な差異があるために、新しいクラスタの基準部分画像に指定される。
【００４３】
[0043]例によっては、クラスタの基準部分画像は、すでにクラスタに分類されている部分画像の移動平均として生成される、部分画像の合成に対応する。そのような例では、図６の最初の２つの部分画像６０１、６０２が第１のクラスタに分類された後に、２つの部分画像６０１、６０２を平均して合成部分画像を生成し、３番目の部分画像６０３はその合成部分画像と比較される。その後、合成部分画像は、３番目の部分画像６０３の画素値に基づいて更新され、その後４番目の部分画像６０４等と比較される。
【００４４】
[0044]レシート画像１１２、１１４を切り出された部分画像に分割し、その部分画像をそれぞれのクラスタに分類することに加えて、例によっては、画像分析器２０６は、文字が識別され、クラスタに指定された後に、そのクラスタにある部分画像を分析する。下記でより詳しく説明するように、例によっては、部分画像がクラスタに分類された後に、それらの部分画像によって表される文字を識別し、そのクラスタにあるすべての部分画像についての指定文字とする。このクラスタ規模の指定は、あるクラスタに分類された部分画像はすべて同じ文字に対応するという前提に基づく。しかし、文字の中には、視覚的な差異が比較的小さいことが分かっている文字の組があり、その結果、それらの異なる文字が同じクラスタに分類される可能性がある。例えば、大文字の「Ｐ」と大文字の「Ｒ」は、文字の右下の部分が、「Ｒ」は脚部分を含むのに対して、「Ｐ」には脚部分がない点を除いては、見た目が似ている。そのために、そのような例では、クラスタの指定文字が大文字の「Ｐ」又は大文字の「Ｒ」のどちらかに対応すると識別された場合、画像分析器２０６は、そのクラスタにある各部分画像は、右下の部分に特に着目して分析することにより、脚部分が存在するかどうか（「Ｒ」に対応する）を判定し、その指定文字がその特定の部分画像に対して正しいことを確定するか、又はその特定の部分画像の文字の指定を適宜修正することができる。
【００４５】
[0045]事例によっては、小さな視覚的差異は、文字自体の性質から生じることがある。例えば、視覚的差異が比較的小さい文字の組には、文字「Ｒ」と「Ｐ」、数字の「６」と文字「Ｇ」、数字の「０」と文字「Ｏ」、数字の「１」と文字「ｌ」等がある。他のシナリオでは、小さな視覚的差異は、部分的に印刷された文字から生じることがある。例えば、一方の文字が部分的に印刷された場合に視覚的差異が比較的小さくなる文字の組には、数字の「８」と「３」、文字「Ｆ」と「Ｅ」、文字「Ｅ」と「Ｌ」、数字の「７」とフォワードスラッシュ（／）記号がある。さらに、例によっては、文字の組の中には、文字の一方に見た目の欠陥があることから生じる、比較的小さい視覚的差異を持つものがある。例えば、欠陥のあるフォワードスラッシュ（／）記号は、文字「Ｘ」のように見えることがある。１つのクラスタに分類される可能性のある他の文字の組を識別し、適切に分析して、特定の部分画像の文字の指定が間違っている可能性を低減することができる。例によっては、そのような文字に対応するクラスタは、上記の「Ｒ／Ｐ」の例で説明したように、部分画像の特定の領域に着目することによって分析する。それに加えて、又はそれに代えて、例によっては、画像分析器２０６は、クラスタの個々の部分画像を再度比較して部分画像間の視覚的相関を判定するが、その際には、部分画像を最初にクラスタに分類した時よりも高い相関閾値を適用することもできる。
【００４６】
[0046]図２の例では、データ処理機能１１０は、画像分析器２０６によって生成された部分画像の各クラスタの指定文字を識別する例示的な文字識別器２０８を備えている。例によっては、クラスタにある部分画像の数に関係なく、クラスタ全体に１つの指定文字が指定される。そのようにして、１回の文字の識別を、多くの異なる部分画像に対応する文字の多数のインスタンスに反映及び／又は適用することにより、画像化された文書（例えばレシート画像１１２、１１４）が機械符号化される効率を大幅に上げることができる。
【００４７】
[0047]例によっては、文字識別器２０８は、クラスタに対応する１つの代表部分画像に基づいて、そのクラスタの指定文字を識別する。例によっては、代表部分画像は、他の部分画像が同じクラスタに属することを判定する際に画像分析器２０６によってそれらの部分画像が比較された基準部分画像に相当する。言うまでもなく、クラスタ中のすべての部分画像は視覚的に似ているので、クラスタ中のどの部分画像を代表部分画像として使用してもよい。例によっては、代表部分画像は、クラスタ中の部分画像の一部又はすべての合成に相当する。すなわち、例によっては、指定文字を識別する前に、文字識別器２０８が、合成に含まれる各部分画像の中の対応する各画素位置の画素値を平均することによって、部分画像の合成を生成する。例によっては、対応する画素位置は、最大の相関値が識別された部分画像の相対位置に対応する部分画像同士を位置合わせすることに基づく。状況によっては、そのようにして生成された合成部分画像は、クラスタの特定の部分画像に出現する可能性のあるノイズ及び／又はぼやけを低減し、その結果、合成部分画像が明瞭になり、したがってその部分画像で表される文字を分析及び／又は認識しやすくなる。例によっては、画像分析器２０６は、上記のように部分画像をクラスタに分類しながら合成部分画像を生成することもできる。例えば、クラスタに追加的な部分画像が識別されるたびに、新たに識別された部分画像に基づいて合成部分画像が更新される。そのような例では、更新された合成部分画像を、クラスタへの分類について分析される後続の部分画像と比較する基準部分画像として使用することもある。
【００４８】
[0048]例によっては、文字識別器２０８は、ユーザインターフェース２１０（例えば任意種のコンピュータ端末２１６と通信状態にある）を介してフィードバックを人間の点検者に促すことによって、クラスタの指定文字を識別する。すなわち、例によっては、文字識別器２０８は、クラスタの代表部分画像を端末２１６で人間の点検者に表示し、部分画像で表された文字の識別を確定するように人間の点検者を促す。したがって、例によっては、文字識別器２０８は、光学文字認識（ＯＣＲ）エンジンを使用せずに指定文字を識別する。そのような例では、クラスタの指定文字は、識別が正確であるか、及び／又はそのクラスタが１つのみの文字に限定されるかを検証するための冗長性として人間の点検者に提供される２つ以上の代表部分画像に基づいて識別される。すなわち、例によっては、代表部分画像に加えて、クラスタにある部分画像の複数を点検者に表示することもできる。それに加えて、又はそれに代えて、例によっては、例えば部分画像がそこから切り出されたレシート画像１１２、１１４（又はその一部）を表示することにより、クラスタにある部分画像の１つ又は複数を、状況と併せて点検者に表示することもできる。そのような例では、部分画像を識別する、又は範囲を識別（例えば強調表示や、境界線で識別する等）して、点検者が画像中で部分画像の位置を識別するのを支援することもできる。例によっては、端末２１６は、データ処理機能１１０と同じ位置にある場合がある。他の例では、端末２１６は、データ処理機能１１０から遠隔にある場合もある。
【００４９】
[0049]文字識別器２０８は、ＯＣＲを使用せずに（例えば純粋に人間の点検者からのフィードバックに基づいて）指定文字を識別することができるが、例によっては、文字識別器２０８は、代表部分画像のＯＣＲ分析に基づいて指定文字を識別する。したがって、例によっては、文字識別器２０８はＯＣＲエンジンを具備及び／又は実装する。そのような例では、例示的な文字識別器２０８は、ＯＣＲエンジンで判定された指定文字の信頼性を判定する。すなわち、文字識別器２０８は、ＯＣＲエンジンから提供された文字の指定が信頼できるかどうかを判定する。例によっては、指定文字が信頼できる場合は、それ以上分析を行わずに、指定文字がクラスタの各部分画像に自動的に割り当てられる。しかし、例によっては、指定文字が信頼できない場合（例えば指定に疑問の余地がある場合）、文字識別器２０８は、人間の点検者に指定の確認を要求することができる。例えば、文字識別器２０８は、ＯＣＲエンジンによって分析された代表部分画像を、ＯＣＲエンジンで識別された指定文字と共に、ユーザインターフェース２１０を介して端末２１６で人間の点検者に提供し、その指定を確定する（例えばキーボードのエンターキーやスペースバーを押す）か、又は指定を修正する（例えば代表部分画像に対応する該当キーを押す）ように点検者に要求することができる。例によっては、確認を求める代わりに、文字識別器２０８は、代表部分画像を提供し、ＯＣＲエンジンで判定された指定文字は提供せずに、文字を識別する（例えば該当するキーを押す）ように人間の点検者に要求することもできる。例によっては、確認は、比較的信頼性の高い（しかし自動的に受け入れるには信頼性が十分でない）指定文字に要求し、一方、点検者による直接の識別は、比較的信頼性が低い文字の指定に要求することができる。例によっては、特定のクラスタについて２つ以上の代表部分画像を冗長性のためにＯＣＲを使用して分析して、指定文字の識別が正確であるかどうかを検証し、指定文字の信頼性を向上させるか、及び／又はそのクラスタが１つのみの文字に限定されることを検証することができる。
【００５０】
[0050]例によっては、文字識別器２０８は、ＯＣＲエンジンの１つ又は複数の出力が対応する閾値を超えるかどうかに基づいて、指定文字が信頼できるかどうかを判定する。例えば、ＯＣＲエンジンは、識別された文字ごとに、（１）その文字の指定、及び（２）その指定の信頼度値、の２つの出力を提供することができる。例によっては、信頼度値は０と１の間の数字であり、１が１００％の信頼度を表す。例によっては、文字の指定は、信頼度値が信頼度の閾値を上回る時に信頼することができる。信頼度の閾値は任意の適切な値（例えば０．８、０．８５、０．９等）とすることができる。
【００５１】
[0051]例によっては、ＯＣＲエンジンは、識別された各文字の位置情報を出力するように問い合わせられる場合がある。例によっては、位置情報は、その文字が識別された画像中の指定文字の境界の位置を示す。すなわち、ＯＣＲエンジンによって出力される位置情報は、境界が指定文字に対して定義される点を除いて、分割時に求められる部分画像の境界の位置に相当する。指定文字が、分析対象の部分画像で表される実際の文字に対応する場合、ＯＣＲエンジンから出力された位置情報は、部分画像の境界に近いはずである。しかし、ＯＣＲエンジンが間違った文字を指定していた場合は、ＯＣＲエンジンから出力される位置情報と部分画像の境界との間には多少の差異がある可能性がある。したがって、例によっては、文字識別器２０８は、ＯＣＲエンジンから出力された位置情報と部分画像の境界との間の差異の量を示す位置誤差値を計算する。
【００５２】
[0052]例えば、図７に、印刷不良（図の例では薄い色の網掛け）部分７０４がある数字の「４」に対応する例示的な部分画像７０２を示す。部分画像７０２の境界は、対応する位置ラベル（０，０）、（ｍ，０）、（０，ｎ）、及び（ｍ，ｎ）を持つ隅７０６、７０８、７１０、７１２によって識別される。図の例では、ＯＣＲエンジンは、部分画像７０２の指定文字を誤って数字の「１」と識別している。指定文字は、対応する位置ラベル（ｘ０，ｙ０）、（ｘ１，ｙ１）、（ｘ２，ｙ２）、及び（ｘ３，ｙ３）を持つ隅７１６、７１８、７２０、７２２で識別される指定文字境界７１４を有する。例によっては、文字識別器２０８は、指定文字に対応する部分画像中のエリア（例えば指定文字境界７１４で定義されるエリア）の位置と、部分画像の境界（例えば部分画像７０２の境界）との間の合計差に基づいて、位置誤差値を計算する。より具体的には、例によっては、文字識別器２０８は、縦と横両方向の、部分画像７０２の隅７０６、７０８、７１０、７１２それぞれと、それに対応する指定文字境界７１４の隅７１６、７１８、７２０、７２２との間の位置の合計差に基づいて、位置誤差値を計算する。図７を参照して数学的に表現すると、位置誤差値は、｜０−ｘ０｜＋｜０−ｙ０｜＋｜ｍ−ｘ１｜＋｜０−ｙ１｜＋｜ｍ−ｘ２｜＋｜ｎ−ｙ２｜＋｜０−ｘ３｜＋｜ｎ−ｙ３｜、と計算することができる。最大の位置誤差は、部分画像７０２の幅（ｍ）と高さ（ｎ）との和の２倍に等しい。したがって、例によっては、上記計算の隅の位置の差を最大位置誤差で割ることによって、位置誤差値を０と１の間に正規化する。例によっては、文字の指定は、位置誤差値が位置誤差閾値を下回る時に信頼できると考える。位置誤差閾値は、任意の適切な値（位置誤差値を０と１の間に正規化する場合には、例えば０．１、０．１５、０．２等）とすることができる。例によっては、各部分画像の境界は、固定された幅（ｍ）及び固定された高さ（ｙ）で定義され、位置誤差閾値は、幅と高さの和の２倍よりも小さい任意の値に定義することができ、計算結果を０〜１の間に正規化する必要がなくなる。
【００５３】
[0053]それに加えて、又はそれに代えて、文字識別器２０８は、指定文字境界７１４よりも外側にあるが部分画像７０２の中にある前景画素の存在に基づいて、指定文字の信頼性を判定する。例によっては、前景画素は、背景ではなく、部分画像内の文字の印刷部分に関連付けられた画素に対応する閾値を満たす画素値を持つ画素として識別される。例えば、印刷されたテキストが、明るい色（例えば白）の背景の上にある暗い色（例えば黒）である場合、前景画素は、暗い色の画素を示す閾値を満たす画素値を持つ画素に相当する。逆に、印刷されたテキストが、暗い色（例えば黒）の背景の上にある明るい色（例えば白）である場合には、前景画素は、明るい色の画素を示す閾値を満たす画素値を持つ画素に相当する。具体例として、図７は、印刷されたテキストの暗い色（例えば黒）と、明るい色の背景（例えば白）を示している。図７の部分画像７０２の中の数字の「４」の印刷不良部分７０４が少なくとも一部分は印刷されていると仮定すると、印刷不良部分７０４のエリア７２４は、指定文字境界７１４の外側にある前景画素（例えば暗い色の画素）を含むことになる。指定文字に対応するエリア（すなわち指定文字境界７１４で定義されるエリア）よりも外側にある前景画素は、そのエリアは、その部分画像で表される文字全体は含まない可能性があることを示唆する。したがって、そのようなシナリオでは、文字識別器２０８は指定文字が信頼できないと判定することができる。言うまでもなく、例によっては、実際に実際の文字に対応しない、指定文字境界７１４の外側にある迷い画素が存在する可能性もある。そのような例では、文字識別器２０８は、指定文字境界７１４の外側にある前景画素の量（例えば、絶対数及び／又は指定文字境界７１４の外側にあるエリア全体に対する比）が閾値を超える時に、指定文字が信頼できないと判定することもできる。
【００５４】
[0054]例によっては、文字識別器２０８は、（１）信頼度値が信頼度の閾値を超える時、（２）位置誤差値が位置誤差の閾値未満である時、及び／又は（３）指定文字に対応するエリアの外側にある前景画素の量が画素閾値未満である時、の１つ又は複数の時に、指定文字が信頼できると判定することができる。例によっては、文字識別器２０８が指定文字が信頼できると判定するには、上記条件の２つ以上が満たされなければならない。例によっては、指定文字が信頼できるためには、上記の条件すべてが満たされなければならない。
【００５５】
[0055]例によっては、句読点（例えばカンマ、ピリオド、ダッシュ等）等の特定の文字は、部分画像（分析対象の特定のフォントに基づいて固定の高さ及び／又は幅に正規化される場合もある）の境界に関連付けられた空間の全体は満たさない。そのような例では、表される文字に対応するエリア（例えば図７に示す指定文字境界７１４）が、部分画像の境界よりもはるかに小さくなることがあり、その結果、正しい文字が識別されても位置誤差値が比較的高くなることがある。したがって、例によっては、信頼度値が適切な閾値を上回る時には、位置誤差値を、その指定文字に予想される位置誤差値と比較する。言うまでもなく、信頼度値が低ければ、指定文字は、位置誤差値に関係なく、信頼できないと判断することができる。
【００５６】
[0056]図２の例では、データ処理機能１１０は、分析対象の画像化されたテキスト（例えば図１のレシート画像１１２、１１４）に対応する機械符号化テキストを生成する例示的な符号化テキスト生成器２１２を備えている。例によっては、符号化テキスト生成器２１２は、特定のクラスタの指定文字（文字識別器２０８によって判定された）を、そのクラスタに含まれるそれぞれの部分画像（画像分析器２０６によって判定された）に対応する画像化テキスト中の位置に関連付ける。そのようにすると、文字の各インスタンスの見た目が共通のクラスタに分類するのに十分に似ている限り、１つの指定文字の識別（例えば人間によって点検された代表部分画像、及び／又はＯＣＲエンジンで分析された代表部分画像に基づく）を、画像化された文書中の当該文字の複数のインスタンスに適用することができる。クラスタが大きい場合（複数のレシートを分析する場合に生じる可能性がある）には、人間の点検者にとって時間の節減が大きくなる可能性がある。さらに、指定文字のＯＣＲ識別が信頼できる場合には、人間の点検者は全く必要でない可能性もある。
【００５７】
[0057]例によっては、符号化テキスト生成器２１２は、抽出されたテキストに状況に応じた修正を加える。すなわち、例によっては、各クラスタの指定文字がすべて、画像化された文書（例えばレシート画像１１２、１１４）の対応する部分画像に関連付けられて、その結果、テキストがすべて符号化されると、例示的な符号化テキスト生成器２１２は、状況に合わせてテキストを分析して誤りを識別する。例えば、特定の文字列が（例えば辞書の参照に基づいて）認識可能な単語を形成していない場合、符号化テキスト生成器２１２は、個々の文字を分析して、それが誤って識別されている可能性があるか、及び変化させて認識可能な単語を形成することができるかどうかを判定することができる。同様に、文字列がすべての文字と１つの非文字（例えば記号の数）を含んでいる場合、符号化テキスト生成器２１２は、非文字の記号を分析して、認識可能な単語を形成するにはそれが文字であるべきかどうかを判定することができる。別の例として、文字列「１０Ｘ１４／２０１５」は、最初のスラッシュ記号の（／）の代わりに文字「Ｘ」となっている点以外は、ほぼ日付の形式になっている。そのような例では、符号化テキスト生成器２１２は、文字列の形式を識別し、誤って識別された文字「Ｘ」を修正することができる。そのようにして画像化された文書を状況に合わせて分析すると、符号化テキスト生成器２１２がレシート画像１１２、１１４に対応する完全な機械符号化テキスト文書を生成する前に、最終的な誤りを検出して修正することができる。
【００５８】
[0058]図２の例では、データ処理機能１１０は、後に参照するためにそれぞれのクラスタの指定文字及び／又は代表部分画像を記憶する例示的な文字識別データベース２１４を備えている。これは、クラスタの指定文字が当初信頼できないと識別されて、人間の点検者が確定しなければならなかった場合、及び／又は正しい文字を指定しなければならなかった場合に特に好都合である。点検者が指定文字を検証した後、検証された指定文字とそれに関連付けられた代表部分画像は、文字識別データベース２１４に記憶することができる。そのため、後に、その指定文字に関連付けられたクラスタに対応する別の部分画像が発生した場合、新しい部分画像は指定文字に直接関連付けることができ、その特定の部分画像に関して点検者に再度検証を求めずに済む。したがって、部分画像のＯＣＲ分析の精度が時間と共に向上することができ、それによって、画像化された文書を手作業で点検する必要をさらに減らすことができる。
【００５９】
[0059]図１のデータ処理機能１１０を実装する例示的な方式を図２に示すが、図２に示す要素、プロセス、及び／又はデバイスの１つ又は複数は、組み合わせる、分割する、構成を変える、省略する、除去する、及び／又はその他の形で実装することもできる。さらに、例示的な通信インターフェース２０２、例示的なバッチ指定器２０４、例示的な画像分析器２０６、例示的な文字識別器２０８、例示的なユーザインターフェース２１０、例示的な符号化テキスト生成器２１２、例示的な文字識別データベース２１４、及び／又はより包括的には図１の例示的なデータ処理機能１１０は、ハードウェア、ソフトウェア、ファームウェア、並びに／又は、ハードウェア、ソフトウェア、及び／若しくはファームウェアの組み合わせによって実装することができる。したがって、例えば、例示的な通信インターフェース２０２、例示的なバッチ指定器２０４、例示的な画像分析器２０６、例示的な文字識別器２０８、例示的なユーザインターフェース２１０、例示的な符号化テキスト生成器２１２、例示的な文字識別データベース２１４、及び／又はより包括的には例示的なデータ処理機能１１０はいずれも、１つ又は複数のアナログ若しくはデジタル回路、論理回路、（１つ又は複数の）プログラム可能プロセッサ、（１つ又は複数の）特定用途集積回路（ＡＳＩＣ）、（１つ又は複数の）プログラム可能論理デバイス（ＰＬＤ）、及び／又は（１つ又は複数の）利用者書き換え可能論理デバイス（ＦＰＬＤ）で実装することができる。本特許の装置クレーム又はシステムクレームが純粋にソフトウェア及び／又はファームウェアによる実装を包含すると解釈する場合、例示的な通信インターフェース２０２、例示的なバッチ指定器２０４、例示的な画像分析器２０６、例示的な文字識別器２０８、例示的なユーザインターフェース２１０、例示的な符号化テキスト生成器２１２、及び／又は例示的な文字識別データベース２１４の少なくとも１つは、ソフトウェア及び／又はファームウェアを記憶した、メモリ、デジタル多用途ディスク（ＤＶＤ）、コンパクトディスク（ＣＤ）、Ｂｌｕ−ｒａｙ（登録商標）ディスク等の有形のコンピュータ可読記憶装置又は記憶ディスクを含むものと明示的に定義する。さらに、図１の例示的なデータ処理機能１１０は、図２に示すものに加えて、又はそれに代えて、１つ又は複数の要素、プロセス、及び／若しくは機器を含むことができ、並びに／又は、図示される要素、プロセス、及び機器のいずれか若しくはすべてのうち２つ以上を含むことができる。
【００６０】
[0060]図１及び／又は図２の例示的なデータ処理機能１１０を実装する例示的な機械可読命令を表すフローチャートを図８〜図１３に示す。この例では、機械可読命令は、下記で図１４との関連で説明する例示的なプロセッサプラットフォーム１４００に示されるプロセッサ１４１２等のプロセッサによって実行されるプログラムを含む。プログラムは、プロセッサ１４１２に関連付けられた、ＣＤ−ＲＯＭ、フロッピー（登録商標）ディスク、ハードドライブ、デジタル多用途ディスク（ＤＶＤ）、Ｂｌｕ−ｒａｙ（登録商標）ディスク、又はメモリ等の有形のコンピュータ可読記憶媒体に記憶されたソフトウェアとして実現することができるが、プログラムの全体及び／又はその一部分は、代わりに、プロセッサ１４１２以外のデバイスで実行するか、及び／又は、ファームウェア若しくは専用ハードウェアとして実現することもできる。さらに、例示的なプログラムについては図８〜１３に示すフローチャートを参照して説明するが、例示的なデータ処理機能１１０を実装する多くの他の方法を代わりに使用することができる。例えば、ブロックの実行順序を変えること、及び／又は、記載されるブロックの一部を変更、削除、若しくは組み合わせることができる。
【００６１】
[0061]上述のように、図８〜図１３の例示的プロセスは、ハードディスクドライブ、フラッシュメモリ、読出し専用メモリ（ＲＯＭ）、コンパクトディスク（ＣＤ）、デジタル多用途ディスク（ＤＶＤ）、キャッシュ、ランダムアクセスメモリ（ＲＡＭ）等の有形のコンピュータ可読記憶媒体、並びに／又は、情報が任意の時間にわたり記憶される（例えば長期間の記憶、恒久的な記憶、瞬時の記憶、一時的な緩衝のための記憶、及び／若しくは情報をキャッシュするための記憶）他の記憶装置若しくは記憶ディスクに記憶された、符号化命令（例えばコンピュータ可読命令及び／又は機械可読命令）を使用して実装することができる。本明細書で使用される用語「有形のコンピュータ可読記憶媒体」は、任意種類のコンピュータ可読記憶装置及び／又は記憶ディスクを含み、伝搬信号を除外し、伝送媒体を除外するものと明示的に定義される。本明細書で使用される場合、「有形のコンピュータ可読記憶媒体」と「有形の機械可読記憶媒体」は同義で使用される。それに加えて、又はそれに代えて、図８〜図１３の例示的プロセスは、ハードディスクドライブ、フラッシュメモリ、読出し専用メモリ、コンパクトディスク、デジタル多用途ディスク、キャッシュ、ランダムアクセスメモリ等の非一時的なコンピュータ可読及び／又は機械可読媒体、並びに／又は、情報が任意の時間にわたり記憶される（例えば長期間の記憶、恒久的な記憶、瞬時の記憶、一時的な緩衝のための記憶、及び／若しくは情報をキャッシュするための記憶）他の記憶装置若しくは記憶ディスクに記憶された、符号化命令（例えばコンピュータ可読命令及び／又は機械可読命令）を使用して実装することもできる。本明細書で使用される用語「非一時的なコンピュータ可読媒体」は、任意種類のコンピュータ可読記憶装置及び／又は記憶ディスクを含み、伝搬信号を除外し、伝送媒体を除外するものと明示的に定義される。本明細書で使用される場合、「少なくとも」という表現が請求項のプリアンブルで移行語として使用される場合には、用語「を含む（comprising）」がオープンエンドであるのと同様にオープンエンドの意である。
【００６２】
[0062]フローチャートを詳細に参照すると、図８の例示的プログラムはブロック８０２で開始し、例示的な通信インターフェース２０２が、１つ又は複数のテキストベースの文書の画像（例えば図１のレシート画像１１２、１１４）を受け取る。ブロック８０４で、例示的なバッチ指定器２０４が、分析のためにバッチに含める画像を識別する。例によっては、受け取られたすべての画像が１つのバッチに含められる。他の例では、画像は、例えば、異なる発行元（例えばそれらのテキストベースの文書が作成された異なる小売店）に基づいて、別々のバッチに分けることができる。ブロック８０６で、例示的な画像分析器２０６が、画像を、個々の文字に対応する部分画像に分割する。ブロック８０８で、例示的な画像分析器２０６が、視覚的に似ている部分画像をクラスタに分類する。ブロック８０８の実装に関する追加的な詳細は、下記で図９との関連で述べる。
【００６３】
[0063]ブロック８１０で、例示的な文字識別器２０８が、クラスタの代表部分画像を選択する。例によっては、代表部分画像は、クラスタの部分画像の１つに相当する。例によっては、代表部分画像は、クラスタにある部分画像のうち複数の部分画像からなる合成部分画像に相当する。ブロック８１２で、例示的な文字識別器２０８が、クラスタの代表部分画像に基づいて、クラスタの指定文字を識別する。ブロック８１２の実装に関する追加的な詳細は、下記で図１１との関連で述べる。ブロック８１４で、例示的な符号化テキスト生成器２１２が、指定文字を、それに対応する、１つ又は複数のテキストベース文書の画像中のその文字の位置それぞれに関連付ける。例によっては、指定文字が関連付けられる対応する位置は、そのクラスタに分類された各部分画像の、１つ又は複数の文書中での位置に対応する。
【００６４】
[0064]ブロック８１６で、例示的な符号化テキスト生成器２１２が、指定文字が、視覚的な差異が最小である文字の組に対応するかどうか、したがって、別の文字と間違えられている可能性が比較的高い文字であるかどうかを判定する。例示的な符号化テキスト生成器２１２が、指定文字が、視覚的な差異が最小の文字の組に対応すると判定した場合、制御はブロック８１８に進み、例示的な符号化テキスト生成器２１２が、クラスタにある各部分画像を分析して、各部分画像が割り当てられているクラスタを確定するか、又は修正する。その後制御はブロック８２０に進む。例示的な符号化テキスト生成器２１２が、指定文字が、視覚的な差異が最小の文字の組に対応しないと判定した場合（ブロック８１６）、制御は直接ブロック８２０に進む。
【００６５】
[0065]ブロック８２０で、例示的な符号化テキスト生成器２１２が、識別すべき文字がさらにあるかどうかを判定する。さらにある場合は、制御がブロック８０８に戻る。そうでない場合、制御はブロック８２２に進み、例示的な符号化テキスト生成器２１２が、抽出されたテキストに、状況に応じた修正を加える。ブロック８２４で、例示的な符号化テキスト生成器２１２が、１つ又は複数のテキストベース文書の画像に対応する完全な機械符号化テキスト文書を生成し、その後図８の例示的プログラムが終了する。
【００６６】
[0066]上述のように、図９は、視覚的に類似する部分画像をクラスタに分類する図８のブロック８０８を実装する例示的プログラムを説明する図である。例示的プログラムはブロック９０２で開始し、例示的な画像分析器２０６が、第１のクラスタに割り当てられた１番目の部分画像を基準画像として取得する。ブロック９０４で、例示的な画像分析器２０６が、まだクラスタに割り当てられていない別の部分画像を識別する。ブロック９０６で、例示的な画像分析器２０６が、識別された部分画像とそのクラスタの基準部分画像との視覚的相関を計算する。ブロック９０６の実装に関する追加的な詳細は、下記で図１０との関連で述べる。
【００６７】
[0067]ブロック９０８で、例示的な画像分析器２０６が、視覚的相関が相関閾値を満たす（例えば相関閾値以上である）かどうかを判定する。満たさない場合、制御はブロック９１０に進み、例示的な画像分析器２０６が、検査する別の既存クラスタがあるかどうかを判定する。別の既存クラスタがある場合、制御はブロック９０６に戻って、識別された部分画像と、当該別の既存クラスタの基準部分画像との視覚的相関を計算する。例示的な画像分析器２０６が、別の既存クラスタがないと判定した場合（ブロック９１０）、制御はブロック９１２に進み、例示的な画像分析器２０６が、識別された部分画像を新しいクラスタに割り当て、その後制御は下記のブロック９１６に進む。そして、制御はブロック９１６に進み、例示的な画像分析器２０６が、これまでにクラスタに割り当てられていない別の部分画像があるかどうかを判定する。ある場合、制御はブロック９０４に戻って、別の識別された部分画像に処理を繰り返す。そうでない場合、図９の例示的プログラムは終了し、戻って図８の例示的プログラムを完了する。
【００６８】
[0068]ブロック９０８に戻り、例示的な画像分析器２０６が、視覚的相関が相関閾値を満たすと判定した場合は、制御はブロック９１４に進み、例示的な画像分析器２０６が、識別された部分画像を既存のクラスタに割り当てる。その後、制御はブロック９１６に進んで別の部分画像に処理を繰り返すか、又は終了して戻って図８の例示的プログラムを完了する。
【００６９】
[0069]上述のように、図１０は、識別された部分画像と既存クラスタの基準部分画像との間の視覚的相関値を計算する図９のブロック９０６を実装する例示的プログラムを説明する図である。例示的プログラムはブロック１００２で開始し、例示的な画像分析器２０６が、識別された部分画像を変形して、空間的に基準部分画像に対応させる。ブロック１００４で、例示的な画像分析器２０６が、変形部分画像にマージンを付加する。ブロック１００６で、例示的な画像分析器２０６が、第１の相対位置における部分画像同士の類似度を示す第１の相関値を計算する。ブロック１００８で、例示的な画像分析器２０６が、それらの部分画像間の視覚的相関を第１の相関値に設定する。
【００７０】
[0070]ブロック１０１０で、例示的な画像分析器２０６が、それらの部分画像の別の相対位置についての別の相関値を計算する。ブロック１０１２で、例示的な画像分析器２０６が、最も新しく計算された相関値が視覚的相関より大きいかどうかを判定する。大きい場合は、制御がブロック１０１４に進み、例示的な画像分析器２０６が、部分画像間の視覚的相関を、最新の相関値として設定する。次いで制御はブロック１０１６に進み、例示的な画像分析器２０６が、それらの部分画像の別の相対位置があるかどうかを判定する。ある場合は制御がブロック１０１０に戻って、当該別の相対位置に処理を繰り返す。そうでない場合は、例示的な処理は終了し、戻って図９の例示的プログラムを完了する。ブロック１０１２に戻り、例示的な画像分析器２０６が、最も新しく計算された相関値が視覚的相関より大きくないと判定した場合は、制御は直接ブロック１０１６に進む。
【００７１】
[0071]上述のように、図１１は、クラスタの代表部分画像に基づいてクラスタの指定文字を識別する図８のブロック８１２を実装する例示的プログラムを説明する図である。例示的プログラムはブロック１１０２で開始し、例示的な文字識別器２０８が、光学文字認識（ＯＣＲ）エンジンを使用するかどうかを決定する。使用する場合は、制御がブロック１１０４に進み、例示的な文字識別器２０８が、クラスタの代表部分画像のＯＣＲ分析に基づいて、クラスタの指定文字を識別する。ブロック１１０６で、例示的な文字識別器２０８が、ＯＣＲの出力を分析して、指定文字の信頼性を判定する。ブロック１１０６の実装に関する追加的な詳細は、下記で図１２との関連で述べる。
【００７２】
[0072]ブロック１１０８で、例示的な文字識別器２０８が、指定文字が信頼できるかどうかを判定する。信頼できる場合は、指定文字がそのクラスタに自動的に受け付けられるため、図１１の例示的プログラムは終了し、戻って図８の例示的プログラムを完了する。しかし、例示的な文字識別器２０８が指定文字が信頼できないと判定した場合（ブロック１１０８）、制御はブロック１１１０に進む。ブロック１１１０で、例示的な文字識別器２０８は、代表部分画像が、保存されているクラスタ（例えば文字識別データベース２１４に記憶されている）に対応するかどうかを判定する。対応する場合は、制御がブロック１１１２に進み、例示的な文字識別器２０８が、指定文字が、保存されているクラスタの指定文字に対応すると識別し、その後図１１の例示的プログラムは終了し、戻って図８の例示的プログラムを完了する。
【００７３】
[0073]ブロック１１０２に戻り、例示的な文字識別器２０８がＯＣＲエンジンを使用しないと決定した場合、制御はブロック１１１４に進み、例示的な文字識別器２０８が、クラスタの指定文字を識別するユーザ入力を取得する。ブロック１１１４の実装に関する追加的な詳細は、下記で図１３との関連で述べる。ブロック１１１６で、例示的な文字識別データベース２１４が、ユーザから入力されたクラスタの指定文字の識別を記憶し、その後図１１の例示的プログラムは終了し、戻って図８の例示的プログラムを完了する。ブロック１１１０に戻り、例示的な文字識別器２０８が、代表部分画像が、保存されているクラスタに対応しないと判定した場合、制御はブロック１１１４に進んで、上記で概説したように進行する。
【００７４】
[0074]上述のように、図１２は、ＯＣＲの出力を分析して指定文字の信頼性を判定する図１１のブロック１１０６を実装する例示的プログラムを説明する図である。例示的プログラムはブロック１２０２で開始し、例示的な文字識別器２０８が指定文字の識別の信頼度値を取得する。ブロック１２０４で、例示的な文字識別器２０８が、信頼度値が信頼度の閾値を満たす（例えば閾値以上である）かどうかを判定する。満たさない場合、制御はブロック１２１８に進み、例示的な文字識別器２０８が指定文字を信頼できないと識別し、その後戻って図１１の例示的プログラムを完了する。例示的な文字識別器２０８が、信頼度値が信頼度の閾値を満たすと判定した場合、制御はブロック１２０６に進む。
【００７５】
[0075]ブロック１２０６で、例示的な文字識別器２０８が、代表部分画像内の指定文字の境界の配置を示す位置情報を取得する。ブロック１２０８で、例示的な文字識別器２０８が位置情報に基づいて位置誤差値を計算する。ブロック１２１０で、例示的な文字識別器２０８が、位置誤差値が位置誤差閾値を満たす（例えば閾値未満である）かどうかを判定する。満たさない場合、制御はブロック１２１８に進み、例示的な文字識別器２０８が、指定文字を信頼できないと識別し、その後戻って図１１の例示的プログラムを完了する。例示的な文字識別器２０８が位置誤差値が位置誤差閾値を満たすと判定した場合、制御はブロック１２１２に進む。
【００７６】
[0076]ブロック１２１２で、例示的な文字識別器２０８が、代表部分画像の中にあるが指定文字の境界よりも外側にある前景画素の量を判定する。ブロック１２１４で、例示的な文字識別器２０８が、前景画素の量が画素閾値を満たす（例えば閾値未満である）かどうかを判定する。満たさない場合、制御はブロック１２１８に進み、例示的な文字識別器２０８が、指定文字を信頼できないと識別し、その後戻って図１１の例示的プログラムを完了する。例示的な文字識別器２０８が、前景画素の量が画素閾値を満たすと判定した場合（ブロック１２１４）、制御はブロック１２１６に進み、例示的な文字識別器２０８が、指定文字を信頼できると識別し、その後戻って図１１の例示的プログラムを完了する。
【００７７】
[0077]上述のように、図１３は、クラスタの指定文字を識別するユーザ入力を取得する図１１のブロック１１１４を実装する例示的プログラムを説明する図である。例示的プログラムはブロック１３０２で開始し、例示的なユーザインターフェース２１０が、クラスタの代表部分画像を表示する。ブロック１３０４で、例示的な文字識別器２０８が、クラスタの指定文字の識別の信頼度値（例えばＯＣＲエンジンから出力される）が、確定閾値を満たす（例えば閾値以上である）かどうかを判定する。例によっては、確定閾値は、信頼度の閾値（それを上回ると指定文字が信頼できると識別される）より低いが、指定文字が正しい穏当な見込みがまだあるのには十分に高い。そのような例では、指定文字は正しいと想定されるが、人間の点検者に依拠してその指定を確定することもある。例えば、信頼度の閾値は０．８５に設定し、一方、確定閾値は０．７に設定することができる。例によっては、確定閾値を下回る信頼度値は信頼性が十分に低いことから、ＯＣＲエンジンで識別された信頼できない指定文字は点検者に提示せずに、人間の点検者に依拠して正しい指定文字を識別する。
【００７８】
[0078]したがって、例示的な文字識別器２０８が、クラスタの指定文字の識別の信頼度値が確定閾値を満たすと判定した場合（ブロック１３０４）、制御はブロック１３０８に進む。ブロック１３０８で、ユーザインターフェース２１０が、代表部分画像と並べて指定文字を表示する。ブロック１３１０で、例示的な文字識別器２０８が、指定文字が代表部分画像に対応することを確定するように人間の点検者を促す。例によっては、人間の点検者は、識別の動作（例えばキーボードのエンターキー又はスペースバー）を行うことにより、指定文字を確定することができる。そのように指定文字を確定する際に点検者が行う識別の動作を設けることにより、点検者の効率を上げることができる。例えば、人間の点検者によって確定すべき指定文字の大半は、信頼度値が比較的高い（確定閾値を上回っている）ため、正しい可能性が高い。そのため、人間の点検者は、確定の動作（例えばスペースバーを押す）を行うだけでよく、それ以上の手間は必要ない。万一指定文字が正しくない場合には、点検者は、追加的な処置を取らなければならない（例えば正しい文字を指定する）が、信頼度値が比較的高い（確定閾値を上回っている）ため、これが発生するのはごくまれである。
【００７９】
[0079]ブロック１３１２で、例示的な文字識別器２０８が、人間の点検者が、指定文字が代表部分画像に対応すると確定したかどうかを判定する。確定した場合は、制御がブロック１３１４に進み、例示的な文字識別器２０８が、ＯＣＲエンジンで識別された指定文字に基づいてクラスタの指定文字を識別し、その後制御は戻って図１１の例示的プログラムを完了する。例示的な文字識別器２０８が、人間の点検者が指定文字が代表部分画像に対応すると確定しなかったと判定した場合（ブロック１３１２）、制御はブロック１３１６に進み、例示的な文字識別器２０８が、人間の点検者によって入力された指定に基づいてクラスタの指定文字を識別する。すなわち、ＯＣＲエンジンが判定した指定文字が正しくなく、その結果、人間の点検者がそれを確定しない場合は、人間の点検者が代表部分画像に対応する正しい文字を入力することができ、それがその後そのクラスタの指定文字として使用される。その後、図１３の例示的プログラムは終了し、戻って図１１の例示的プログラムを完了する。
【００８０】
[0080]ブロック１３０４に戻り、例示的な文字識別器２０８が、クラスタの指定文字の識別の信頼度値が確定閾値を上回らないと判定した場合、制御はブロック１３０６に進む。ブロック１３０６で、例示的な文字識別器２０８は、代表部分画像に対応する指定文字を識別するように人間の点検者を促す。制御は次いでブロック１３１６に進み、例示的な文字識別器２０８が、人間の点検者によって入力された指定に基づいてクラスタの指定文字を識別し、その後図１３の例示的プログラムは終了し、戻って図１１の例示的プログラムを完了する。
【００８１】
[0081]図１４は、図１及び／又は図２の例示的なデータ処理機能１１０を実装する図８〜図１３の命令を実行することが可能な例示的なプロセッサプラットフォーム１４００のブロック図である。プロセッサプラットフォーム１４００は、例えば、サーバ、パーソナルコンピュータ、モバイルデバイス（例えば携帯電話、スマートフォン、アイパッド（登録商標）（ｉＰａｄ）等のタブレット）、携帯情報端末（ＰＤＡ）、インターネット機器、又は他の種類のコンピューティングデバイスである可能性がある。
【００８２】
[0082]図の例のプロセッサプラットフォーム１４００は、プロセッサ１４１２を備える。図の例のプロセッサ１４１２はハードウェアである。例えば、プロセッサ１４１２は、任意の所望のファミリー又は製造者の、１つ又は複数の集積回路、論理回路、マイクロプロセッサ、又はコントローラによって実装することができる。
【００８３】
[0083]図の例のプロセッサ１４１２は、ローカルメモリ１４１３（例えばキャッシュ）を備える。図の例では、プロセッサ１４１２は、図２の例示的な通信インターフェース２０２、例示的なバッチ指定器２０４、例示的な画像分析器２０６、例示的な文字識別器２０８、例示的なユーザインターフェース２１０、及び／又は例示的な符号化テキスト生成器２１２を実装する。図の例のプロセッサ１４１２は、揮発性メモリ１４１４及び不揮発性メモリ１４１６を含むメインメモリと、バス１４１８を介して通信状態にある。揮発性メモリ１４１４は、同期ダイナミックランダムアクセスメモリ（ＳＤＲＡＭ）、ダイナミックランダムアクセスメモリ（ＤＲＡＭ）、ＲＡＭＢＵＳダイナミックランダムアクセスメモリ（ＲＤＲＡＭ）、及び／又は任意の他の種類のランダムアクセスメモリデバイスによって実装することができる。不揮発性メモリ１４１６は、フラッシュメモリ及び／又は任意の他の所望の種類のメモリデバイスによって実装することができる。メインメモリ１４１４、１４１６へのアクセスは、メモリコントローラによって制御される。
【００８４】
[0084]図の例のプロセッサプラットフォーム１４００は、インターフェース回路１４２０も備える。インターフェース回路１４２０は、Ｅｔｈｅｒｎｅｔ（登録商標）インターフェース、ユニバーサルシリアルバス（ＵＳＢ）、及び／又はＰＣＩエクスプレスインターフェース等、任意種類のインターフェース規格で実装することができる。
【００８５】
[0085]図の例では、１つ又は複数の入力装置１４２２がインターフェース回路１４２０に接続されている。（１つ又は複数の）入力装置１４２２で、ユーザはプロセッサ１４１２にデータ及びコマンドを入力することができる。（１つ又は複数の）入力装置は、例えば、オーディオセンサ、マイクロフォン、カメラ（静止画若しくは動画）、キーボード、ボタン、マウス、タッチ画面、トラックパッド、トラックボール、アイソポイント（isopoint）、及び／又は音声認識システムによって実装することができる。
【００８６】
[0086]１つ又は複数の出力装置１４２４も、図の例のインターフェース回路１４２０に接続されている。出力装置１４２４は、例えば、表示装置（例えば発光ダイオード（ＬＥＤ）、有機発光ダイオード（ＯＬＥＤ）、液晶ディスプレイ、陰極管ディスプレイ（ＣＲＴ）、タッチ画面、触覚出力装置、発光ダイオード（ＬＥＤ）、プリンタ、及び／又はスピーカ）によって実装することができる。したがって、図の例のインターフェース回路１４２０は、通例、グラフィクスドライバカード、グラフィクスドライバチップ、又はグラフィクスドライバプロセッサを含む。
【００８７】
[0087]図の例のインターフェース回路１４２０は、ネットワーク１４２６（例えばＥｔｈｅｒｎｅｔ接続、デジタル加入者回線（ＤＳＬ）、電話線、同軸ケーブル、携帯電話システム等）を介して、外部の機械（例えば任意種のコンピューティング機器）とのデータ交換を助ける、送信器、受信器、トランシーバ、モデム、及び／又はネットワークインターフェースカード等の通信装置も含む。
【００８８】
[0088]図の例のプロセッサプラットフォーム１４００は、ソフトウェア及び／又はデータを記憶する１つ又は複数の大容量記憶装置１４２８も備えている。例えば、大容量記憶装置１４２８は、例示的な文字識別データベース２１４を含むことができる。そのような大容量記憶装置１４２８の例には、フロッピーディスクドライブ、ハードドライブディスク、コンパクトディスクドライブ、Ｂｌｕ−ｒａｙディスクドライブ、ＲＡＩＤシステム、及びデジタル多用途ディスク（ＤＶＤ）ドライブが含まれる。
【００８９】
[0089]図８〜図１３の符号化命令１４３２は、大容量記憶装置１４２８、揮発性メモリ１４１４、不揮発性メモリ１４１６、及び／又は、ＣＤやＤＶＤ等の取り外し可能な有形のコンピュータ可読記憶媒体に記憶することができる。
【００９０】
[0090]上述から、上記で開示された例示的な方法及び装置は、人間の点検者を使用して厳格に実現される場合と、ＯＣＲ技術を使用して行われる場合の両方でテキスト抽出の効率を大幅に上げることが認識されよう。より詳細には、本明細書に開示される例は、似た文字からなるクラスタ全体に文字を１回だけ指定することを使用して、テキスト抽出で大量処理の利益を利用できるようにする。さらに、（人間の点検者かＯＣＲエンジンのいずれかによって）一度に認識される文字のクラスタは、１つの文書から生成することも、複数の文書のバッチから生成することもできる。さらに、人間の点検者が、ＯＣＲエンジンで確実に識別できなかった特定の文字を識別すると、それと似たような見た目の文字を分析する時に参照するためにその文字の指定を記憶しておくことができ、その結果、人間の点検者が文字を二度識別する必要なしに、自動的な文字の指定を実現することができる。
【００９１】
[0091]特定の例示的な方法、装置、及び製造品を本明細書に開示したが、本特許の包含範囲はそれらに限定されない。逆に、本特許は、本特許の特許請求の範囲に正当に該当するすべての方法、装置、及び製造品を包含する。
［発明の項目］
［項目１］
プロセッサで、文書の画像を、前記文書中の個々の文字に対応する局所的な部分画像に分割するステップと、
前記プロセッサで、前記部分画像それぞれを、基準部分画像に対する前記部分画像それぞれの視覚的相関に基づいてクラスタに分類するステップであって、前記基準部分画像と前記クラスタに分類される前記部分画像それぞれとの間の前記視覚的相関が相関閾値を超える、ステップと、
前記プロセッサで、前記クラスタに分類された前記部分画像に基づいて前記クラスタの指定文字を識別するステップと、
前記プロセッサで、前記指定文字を、前記クラスタに分類された前記部分画像それぞれに関連付けられた前記文書の画像中の位置に関連付けるステップと、
を含む方法。
［項目２］
前記指定文字が、光学文字認識エンジンを使用せずに識別される、項目１に記載の方法。
［項目３］
前記クラスタに関連付けられた代表部分画像を人間の点検者に提示することと、
前記人間の点検者から前記指定文字を示すフィードバックを受け取ることと、
により、前記クラスタの前記指定文字を識別するステップをさらに含む、項目１に記載の方法。
［項目４］
前記指定文字が、前記クラスタに関連付けられた代表部分画像の光学文字認識に基づいて識別される、項目１に記載の方法。
［項目５］
前記代表部分画像が、前記クラスタに分類された前記部分画像のうち１番目の部分画像に対応する、項目４に記載の方法。
［項目６］
前記代表部分画像が、前記クラスタに分類された前記部分画像それぞれの合成である、項目４に記載の方法。
［項目７］
変形部分画像を求めるために前記基準部分画像に対応する空間的向きを持つように前記部分画像のうち１番目の部分画像を変形することと、
前記変形部分画像の周囲にマージンを付加することと、
前記マージンで定義される境界内における、前記変形部分画像に相対的な前記基準部分画像の種々の位置について、前記変形部分画像と前記基準部分画像との間の相関値を計算することと、
前記相関値のうち最も大きい相関値を、前記基準部分画像に対する前記部分画像のうち前記１番目の部分画像の前記視覚的相関として割り当てることと、
により、前記基準部分画像に対する前記部分画像のうち１番目の部分画像の前記視覚的相関を求めるステップをさらに含む、項目１に記載の方法。
［項目８］
前記クラスタの代表部分画像の光学文字認識分析の出力に基づいて、前記指定文字の信頼性を判定するステップと、
前記指定文字が信頼できると判定された場合、自動的に前記指定文字を前記クラスタに割り当てるステップと、
をさらに含む、項目１に記載の方法。
［項目９］
前記指定文字が信頼できないと判定された場合、前記代表部分画像を、以前に人間の点検者によって検証された記憶されている指定文字に関連付けられた記憶されている部分画像と比較するステップと、
前記代表部分画像と前記記憶されている部分画像との間の視覚的相関が前記相関閾値を超える場合、前記記憶されている指定文字を、自動的に前記クラスタの前記指定文字として割り当てるステップと、
をさらに含む、項目８に記載の方法。
［項目１０］
前記指定文字が信頼できないと判定された場合、前記指定文字を検証するように人間の点検者を促すステップをさらに含む、項目８に記載の方法。
［項目１１］
前記クラスタの代表部分画像の光学文字認識分析で生成された位置誤差値が位置誤差閾値を満たさない場合に、前記指定文字が信頼できないと判定され、前記位置誤差値は、前記代表部分画像の中で識別された前記指定文字の境界の位置と前記代表部分画像の境界との差に相当する、項目１０に記載の方法。
［項目１２］
前記光学文字認識分析で生成された信頼度値が信頼度の閾値を満たさない場合に、前記指定文字が信頼できないと判定される、項目１０に記載の方法。
［項目１３］
前記指定文字を検証するように前記人間の点検者を促すステップが、
前記信頼度値が前記信頼度の閾値を満たさず、且つ確定閾値を満たす場合に、前記指定文字を前記代表部分画像と並べて表示し、前記指定文字が前記代表部分画像に対応することを確定するように前記人間の点検者に要求することと、
前記信頼度値が前記確定閾値を満たさない場合に、前記代表部分画像を表示し、前記代表部分画像を識別するように前記人間の点検者に要求することと、
を含む、項目１２に記載の方法。
［項目１４］
前記代表部分画像の中にある前景画素であり、且つ前記代表部分画像の中で識別された前記指定文字の境界よりも外にある前景画素の量が画素閾値を満たさない場合に、前記指定文字が信頼できないと判定される項目１０に記載の方法。
［項目１５］
プロセッサを介して実装される画像分析器であって、文書の画像を、前記文書中の個々の文字に対応する局所的な部分画像に分割し、前記部分画像それぞれを、基準部分画像に対する前記部分画像それぞれの視覚的相関に基づいてクラスタに分類し、前記基準部分画像と前記クラスタに分類される前記部分画像それぞれとの間の前記視覚的相関が相関閾値を超える、画像分析器と、
前記プロセッサを介して実装される文字識別器であって、前記クラスタに分類された前記部分画像に基づいて前記クラスタの指定文字を識別する、文字識別器と、
前記プロセッサを介して実装される符号化テキスト生成器であって、前記指定文字を、前記クラスタに分類された前記部分画像それぞれに関連付けられた前記文書の画像中の位置に関連付ける、符号化テキスト生成器と、
を備える装置。
［項目１６］
前記文字識別器が、
前記クラスタの代表部分画像の光学文字認識分析の出力に基づいて、前記指定文字の信頼性を判定し、
前記指定文字が信頼できると判定された場合、自動的に前記指定文字を前記クラスタに割り当てる、項目１５に記載の装置。
［項目１７］
前記指定文字が信頼できないと判定された場合、前記文字識別器が、前記指定文字を検証するように人間の点検者を促す、項目１６に記載の装置。
［項目１８］
命令を備えた有形のコンピュータ可読記憶媒体であって、該命令は、実行されると機械に、少なくとも、
文書の画像を、前記文書中の個々の文字に対応する局所的な部分画像に分割するステップと、
前記部分画像それぞれを、基準部分画像に対する前記部分画像それぞれの視覚的相関に基づいてクラスタに分類するステップであって、前記基準部分画像と前記クラスタに分類される前記部分画像それぞれとの間の前記視覚的相関が相関閾値を超える、ステップと、
前記クラスタに分類された前記部分画像に基づいて前記クラスタの指定文字を識別するステップと、
前記指定文字を、前記クラスタに分類された前記部分画像それぞれに関連付けられた前記文書の画像中の位置に関連付けるステップと、
を実行させる、有形のコンピュータ可読記憶媒体。
［項目１９］
前記命令は、さらに前記機械に、
前記クラスタの代表部分画像の光学文字認識分析の出力に基づいて、前記指定文字の信頼性を判定するステップと、
前記指定文字が信頼できると判定された場合、自動的に前記指定文字を前記クラスタに割り当てるステップと、
を実行させる、項目１８に記載の有形のコンピュータ可読記憶媒体。
［項目２０］
前記命令は、さらに前記機械に、前記指定文字が信頼できないと判定された場合、前記指定文字を検証するように人間の点検者を促すステップを実行させる、項目１９に記載の有形のコンピュータ可読記憶媒体。
【符号の説明】
【００９２】
１０２  小売店
１０４  消費者
１０６  レシート
１０８  市場調査エンティティ
１１０  データ処理機能
１１２、１１４  画像
２０２  通信インターフェース
２０４  バッチ指定器
２０６  画像分析器
２０８  文字識別器
２１０  ユーザインターフェース
２１２  符号化テキスト生成器
２１４  文字識別データベース
２１６  端末
３０２、３０４、４０２、６０１、６０２、６０３、６０４、６０５、６０６、６０７  部分画像
６０８  クラスタ
３０６、３１０  境界
３０８、７０６、７０８、７１０、７１２、７１６、７１８、７２０、７２２  隅
４０４  マージン
１４１２  プロセッサ
１４１３  ローカルメモリ
１４１４  揮発性メモリ
１４１６  不揮発性メモリ
１４１８  バス
１４２０  インターフェース回路
１４２２  入力装置
１４２４  出力装置
１４２６  ネットワーク
１４２８  大容量記憶装置
１４３２  符号化命令
【図１】
0006366024.tif 000002
【図２】
0006366024.tif 000003
【図３】
0006366024.tif 000004
【図４】
0006366024.tif 000005
【図５】
0006366024.tif 000006
【図６】
0006366024.tif 000007
【図７】
0006366024.tif 000008
【図８】
0006366024.tif 000009
【図９】
0006366024.tif 000010
【図１０】
0006366024.tif 000011
【図１１】
0006366024.tif 000012
【図１２】
0006366024.tif 000013
【図１３】
0006366024.tif 000014
【図１４】
0006366024.tif 000015