(57)【要約】【課題】２値化タイプのプロセス、セグメント化、および認識を結合して単一のプロセスにする、低解像度の撮影されたドキュメントの光学式文字認識（ＯＣＲ）用のグローバル最適化フレームワークを提供する。【解決手段】このフレームワークは、大量のデータ上でトレーニングされる機械学習アプローチを含む。コンボリューショナルニューラルネットワークを採用して、複数の位置において分類関数を計算し、２値化を不要とする中間調の入力を受け入れることができる。このフレームワークは、前処理、レイアウト分析、文字認識、および単語認識を活用して、高い認識率を出力する。またこのフレームワークは、ダイナミックプログラミングおよび言語モデルも採用して、希望の出力に到達する。【選択図】図１
2011008802.tif 000002
【特許請求の範囲】
【請求項１】
低解像度のカメラで取得されたドキュメントのＯＣＲを促すシステムであって、
イメージ内のシンボルのセグメント化を促すセグメント化コンポーネントと、
文字の文字列内における文字の処理を促す言語モデルと、
前記文字の文字列を単語として認識することを促すダイナミックプログラミングコンポーネントと
を含むことを特徴とするシステム。
【請求項２】
前記ダイナミックプログラミングコンポーネントは、所与の単語の外枠を囲む長方形にどの単語が配置されるかを判断することを特徴とする請求項１に記載のシステム。
【請求項３】
前記言語モデルは、レキシコン全体をスキャンし、前記レキシコンの各単語に対する確率を評価し、最も可能性の高い単語を出力する辞書モデルであることを特徴とする請求項１に記載のシステム。
【請求項４】
前記言語モデルは、文字認識器の観察のシーケンスの最も可能性の高い解釈を作成するニュートラル言語であることを特徴とする請求項１に記載のシステム。
【請求項５】
前記言語モデルは、レキシコンを検討することによってダイナミックプログラミングの最適化をインターリーブして、最も可能性の高い単語を算出することを特徴とする請求項１に記載のシステム。
【請求項６】
請求項１のシステムを実行するためのコンピュータ実効可能命令をその上に格納していることを特徴とするコンピュータ可読媒体。
【請求項７】
請求項１のシステムを採用することを特徴とするコンピュータ。
【請求項８】
前記文字および前記単語の少なくとも１つを認識することに関連した１つまたは複数の観察に基づく推論を自動的に行う分類子をさらに含むことを特徴とする請求項１に記載のシステム。
【請求項９】
カメラで取得されたドキュメントの低解像度のＯＣＲを実行する方法のためのコンピュータ実行可能命令を有するコンピュータ可読媒体であって、前記方法は、
複数の撮像されたシンボルを有する撮影されたドキュメントを受け取るステップと、
レイアウト分析を実行して、前記ドキュメント上の前記撮像されたシンボルの関連付けられた配置を検出するステップと、
前記撮像されたシンボル間のスペースを検出することによって、前記関連付けられた配置を前記撮像されたシンボルの１つまたは複数のセットへと分解するステップと、
前記撮像されたシンボルのセットを別々の撮像されたシンボルへとセグメント化するステップと、
水平位置における撮像された各シンボル用のスコアをより高い水平解像度で計算するステップと、
前記水平位置における前記撮像された各シンボルの前記スコアを合計してトータルスコアを出すステップであって、そのトータルスコアを使用して１つの単語を決定するステップと、
前記撮像されたシンボルのセットの１つを表す前記単語を出力するステップと
を含むことを特徴とするコンピュータ可読媒体。
【請求項１０】
前記別々のシンボルの単純な特徴を比較的高い解像度で抽出する行為と、
前記単純な特徴をより複雑な特徴へ比較的粗い解像度で変換する行為とをさらに含み、
前記抽出する行為と変換する行為の少なくとも１つは、コンボリューショナルニューラルネットワークによって実行されることを特徴とする請求項９に記載のコンピュータ可読媒体。
【請求項１１】
ラインである前記関連付けられた配置における前記シンボルのセットを、ダイナミックプログラミングを使用して位置決めするステップをさらに含むことを特徴とする請求項９に記載のコンピュータ可読媒体。
【請求項１２】
セグメント化する行為、抽出する行為、および変換する行為は実質的に同時に実行されることを特徴とする請求項９に記載のコンピュータ可読媒体。
【請求項１３】
所与の水平位置における前記撮像されたシンボルから認識されたシンボルを作成するように機械学習アルゴリズムをトレーニングするステップをさらに含むことを特徴とする請求項９に記載のコンピュータ可読媒体。
【請求項１４】
前記機械学習アルゴリズム用のトレーニングセットを作成するステップをさらに含み、その作成する行為は、
紙メディア上および電子メディア上の双方のドキュメントの集合を印刷する行為、および
前記紙メディアの各文字の位置を対応する撮像されたシンボルの位置にマッチさせて、ラベル付き文字イメージのデータベースを作成する行為の少なくとも１つをさらに含むことを特徴とする請求項１３に記載のコンピュータ可読媒体。
【請求項１５】
間隔フィルタによって前記シンボル間の間隔を検出するステップと、
ラインフィルタを使用して前記シンボルのラインを検出するステップと、
前記間隔フィルタおよび前記ラインフィルタの双方の結果に基づいてテキスト領域を画定するステップと
をさらに含むことを特徴とする請求項９に記載のコンピュータ可読媒体。
【請求項１６】
前記シンボル間の間隔に関連付けられたピクセル上で連結成分分析を実行するステップをさらに含むことを特徴とする請求項９に記載のコンピュータ可読媒体。
【請求項１７】
撮影されたドキュメントの低解像度のＯＣＲを実行する方法であって、
前記撮影されたドキュメントを前処理して、前記撮影されたドキュメント内にもたらされた欠陥用の調整を行うステップと、
前記ドキュメントのレイアウトを分析して、テキストのラインについて判断するステップと、
前記テキストのラインを個々の単語へと分割するステップと、
前記個々の単語のそれぞれ用の外枠を表示するステップと、
機械学習分類アルゴリズムを使用して、前記個々の単語のそれぞれにおける文字を認識するステップと、
ダイナミックプログラミングアルゴリズムによって前記個々の単語を認識して、個々の単語のどれが所与の位置に当てはまるかを判断するステップと
を含むことを特徴とする方法。
【請求項１８】
句読点を認識するステップをさらに含むことを特徴とする請求項１７に記載の方法。
【請求項１９】
前記撮影されたドキュメントをホワイトバランシングアルゴリズムによって前処理して、前記ドキュメントの領域にわたるコントラストを最大化するステップをさらに含むことを特徴とする請求項１７に記載の方法。
【請求項２０】
前記機械学習分類アルゴリズムは、コンボリューショナルニューラルネットワークおよびサポートベクトルマシンの１つであることを特徴とする請求項１７に記載の方法。
【請求項２１】
再利用される計算の量を最大化する構造へと辞書をアレンジする行為、および
前記個々の単語の文字に対する観察の最適な割り当てを決定するために前記構造が検討される際にダイナミックプログラミングテーブルを作成する行為の少なくとも１つをさらに含むことを特徴とする請求項１７に記載の方法。
【請求項２２】
前記構造はトライ構造であることを特徴とする請求項２１に記載の方法。
【請求項２３】
第１の単語を認識するために、前記第１の単語および第２の単語をペアとして分析するステップをさらに含むことを特徴とする請求項１７に記載の方法。
【請求項２４】
第１および第２の言語モデルを採用することによって、前記第１の言語モデルを使用しても単語出力を作成できない場合に、前記第２の言語モデルが自動的に採用されるようにするステップをさらに含むことを特徴とする請求項１７に記載の方法。
【請求項２５】
ブースティングを使用して自動的に計算されるしきい値に従って単語内における文字間の間隔を検出するステップをさらに含むことを特徴とする請求項１７に記載の方法。
【請求項２６】
連結成分の相対的な幾何学的な関係をテストすることによって前記テキストのラインを検出するステップをさらに含むことを特徴とする請求項１７に記載の方法。
【請求項２７】
前記連結成分のますます大きくなるセット上で統計値を作成するステップをさらに含むことを特徴とする請求項２６に記載の方法。
【請求項２８】
前記機械学習分類アルゴリズムをトレーニングイメージによってトレーニングするステップをさらに含み、このトレーニングは、
入力ウィンドウ内で前記トレーニングイメージを無作為にジッタするステップ、および  前記入力ウィンドウ内で前記トレーニングイメージの明るさおよびコントラストを無作為に変更するステップの少なくとも１つを含むことを特徴とする請求項１７に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は光学式文字認識（ＯＣＲ）に関し、より詳細には、低解像度のデバイスによって撮像されたドキュメントの処理を改善するＯＣＲソフトウェアに関する。
【背景技術】
【０００２】
エレクトロニクスにおける技術的進歩によって、カメラのサイズ、重量、コスト、および消費電力が急速に削減されている。したがって携帯電話、ＰＤＡ、ノート型コンピュータなどのモバイルコンピューティングデバイスは、今やそのサブコンポーネントとして設計されている小型で安価な低解像度のデジタルカメラを使用して情報を取り込むことができる。このような安価で多用途のカメラによって、現在ではスキャナなどの面倒な周辺デバイスを使用せずにさまざまなドキュメントを容易に撮影することができる。今や書籍および法律関係書類から請求書および名刺にわたるドキュメントを携帯電話、ＰＤＡ、およびラップトップコンピュータ上に瞬時に撮影することができる。
【０００３】
しかし、このような撮影されたドキュメントの光学式文字認識（ＯＣＲ）は、異なる問題を提示している。紙からデジタル表示への変換およびその逆の変換は、デスクトップコンピュータおよび適切な周辺スキャニングデバイスを利用すれば簡単である。対照的に、モバイルコンピューティングのサポートに適したテクノロジの急速な進化によって、現在ではこのようなデバイスによるそうしたドキュメントのイメージ化がより複雑になっている。たとえば、適切な周辺デバイスに接続されていない場合、ドキュメントの印刷およびスキャンは極めて困難である。モバイルプリンタは重く、消費電力が多く、高価である。ポータブルスキャナも同様に扱いにくい。さらに、これらの低解像度のカメラは、スタンドアロンであるかモバイルコンピューティングデバイスに組み込まれているかを問わず、このような撮影されたドキュメントのＯＣＲに対して新たな問題を提示している。従来の印刷された文字によるシステムは、最初にイメージを２値化し、文字をセグメント化し、次いでその文字を認識することによって進行する。これらのシステムはこうしたステップを分離しているため、望ましい水準よりもかなり低い認識率しか達成できず、これによってこのようなデバイスの機能を使用する誘因は低下している。これらの低解像度のカメラを使用する場合、認識プロセスから独立して良質の２値化や文字のセグメント化を行うことは実質的に不可能であるため、ＯＣＲプロセスはよりいっそう複雑になる。セグメント化は、ＯＣＲエンジンが、スキャンされピクセル化されたイメージのピクセルを文字へと編成する際に発生する。
【０００４】
ドキュメントデータを取り込んで処理するＯＣＲ機能をこのようなモバイルテクノロジに提供できるようになるならば、人々は内蔵のカメラを使用して、レストランの勘定書、興味深い記事、レポート、本の表紙、名刺、スクリーンショット、壁に投影されたスライド、地図などにわたる多くの異なるタイプのドキュメントを撮影するであろうと予想される。このようなデジタルドキュメントは、いったん電子形態にすれば、後で大量に保存し、インデックスを作成し、アーカイブに保管し、編集し、さらには印刷して元に戻すことができるため、さまざまなドキュメントを取り込む誘因は高い。さらに情報労働者にとって、これは豊富な機会を提供する。
【０００５】
現在の安価な（たとえば約５０ドルの）カメラでは、１回の露出でドキュメントの全ページを１１ポイントのフォントで取り込み、文字認識から独立して文字のセグメント化を行うだけの十分な解像度は提供されない。低解像度のカメラによるイメージは非常にぼやけており、画質も極めて貧弱であるため、２値化、セグメント化、および認識を独立して行うことはできないが、依然として高い認識率を維持している。たとえば低解像度では、文字「ｏ」の中央の列は、文字の間でカットされる候補としては、多くの他のそのようなカット候補よりも優れている場合が多い。セグメント化の問題に効果的に対処できなければ、良好なパフォーマンスを望むことはできない。低解像度のＯＣＲにおける改善は、高解像度のカメラの利益にもなり、これによってユーザは、さらに遠くから焦点が外れた状態で撮影できるようになる。
【発明の開示】
【発明が解決しようとする課題】
【０００６】
したがって必要とされているものは、低解像度のシンボルを解像できるＯＣＲ機能である。
【課題を解決するための手段】
【０００７】
以降では、本発明の複数の態様について基本的な理解を提供するために本発明の簡略化した概要を提示する。この概要は、本発明を網羅的に概観したものではない。また本発明の鍵となる／重要な要素を明らかにすることや、本発明の範囲を画定することを意図するものではない。この概要の唯一の目的は、以降で提示されるさらに詳細な説明への前置きとして本発明のいくつかの発想を簡略化した形態で提示することである。
【０００８】
本明細書で開示され特許請求される本発明は、その一態様において、機械学習テクノロジ（たとえばコンボリューショナルニューラルネットワーク(convolutional neural network）、ダイナミックプログラミング(dynamic programming) 、および言語モデルを組み合わせることによってこれらの問題を同時に解決するアーキテクチャを含み、これらが組み合わさって、カメラで取得されたシンボルおよびドキュメント用の低解像度のＯＣＲ機能を実現するのに必要なステップを提供する。コンボリューショナルニューラルネットワークに基づいて大量のデータ上でトレーニングした機械学習アプローチを使用することによって、最大の堅牢性が促進される。
【０００９】
本発明は、撮影されたページ上のシンボルを認識するために連携する複数の部分から構成される。コンボリューショナルニューラルネットワークに基づく文字認識器(character recognizer)を使用して、入力イメージ内の所与の位置にどの文字が当てはまりそうかを予測する。グローバルレイアウト分析コンポーネント(global layout analysis component)は、ページ上におけるテキストのラインの位置を見つけ出し、これらのテキストのラインの外枠を囲む長方形のリストを返すタスクを実行する。レイアウトアナライザ(layout analyzer)はこのラインを個々の単語へとさらに分割し、各単語を囲む外枠を表示する。これらをすべて結び付けるのが単語認識器であり、これは、ページ上の所与の長方形内で最も可能性の高い単語を見つけ出す。単語認識とは、ダイナミックプログラミングを使用して解決される最適化の問題である。
【００１０】
本発明の別の態様では、中間調のイメージから直接テキストのラインを検出するアルゴリズムが提供される。
【００１１】
前述の目的および関連する目的を達成するため、本明細書では後述の説明および添付の図面と併せて本発明の特定の例示的な態様について説明する。しかしこれらの態様は、本発明の原理を採用できるさまざまな方法のごく一部を示したものであり、本発明はそうした態様およびその均等物をすべて含むことを意図している。本発明の他の利点および新奇な特徴は、後述する本発明の詳細な説明を図面と併せて考察すれば明らかになるであろう。
【図面の簡単な説明】
【００１２】
【図１】本発明によるカメラで取得されたドキュメントの低解像度のＯＣＲ用のグローバル最適化フレームワークであるシステムを示す図である。
【図２】本発明の低解像度のＯＣＲシステムの主要なオペレーションを示す流れ図である。
【図３】未加工のドキュメントと、カメラを使用した取り込み後の撮像されたドキュメントとのサンプルを示す図である。
【図４】本発明による前処理の前および後のサンプルテキストおよびドキュメントの単語を示す図である。
【図５】本発明による前処理トレーニング用の１つの方法を示す図である。
【図６】本発明によるラベル付きデータを作成するための前処理を示すフローチャートである。
【図７】スキャンされてグラウンドトゥルースビットマップに対して位置合わせされたサンプルテキストを示す図である。
【図８】本発明によるレイアウト分析用の方法を示す図である。
【図９】本発明によるテキスト検出用の方法を示すフローチャートである。
【図１０】本発明によるテキスト検出フィルタの結果を示す図である。
【図１１】元のカメライメージと、本発明による第２のレンダリングにおけるようにそのカメライメージに追加されたテキストディテクタの出力とを比較して示す図である。
【図１２】本発明による文字間の間隔を検出するためのプロセスを示すフローチャートである。
【図１３】本発明による間隔検出を使用するライン抽出用に処理されたサンプルテキストを示す図である。
【図１４】本発明による単語間のスペースを検出するための方法を示す図である。
【図１５】本発明によるコンボリューショナルニューラルネットワークをトレーニングするための一実施態様を示すフローチャートである。
【図１６】本発明による低解像度の印刷されたテキストのＯＣＲ用のコンボリューショナルニューラルネットワークを示す図である。
【図１７】本発明によるコンボリューショナルニューラルネットワークに基づく文字認識器を使用して文字を認識するためのプロセスを示すフローチャートである。
【図１８】本発明によるコンボリューショナルニューラルネットワーク用のトレーニング方法を示す図である。
【図１９】本発明による単語を認識するためのダイナミックプログラミングを示す図である。
【図２０】本発明による単語のセグメント化のサンプルを示す図である。
【図２１】言語モデルをまったく使用しない場合にダイナミックプログラミングの問題の部分解を保持するために使用される本発明によるダイナミックプログラミングのテーブルを示す図である。
【図２２】特定の単語内の文字に対する観察の最適な割り当てを決定するために使用される本発明による辞書モデルの最適化用のダイナミックプログラミングのテーブルのサンプルを示す図である。
【図２３】本発明によるトライベースの辞書検索を示す図である。
【図２４】本発明による句読点検出の方法を示す図である。
【図２５】本発明のアーキテクチャによる撮像されたサンプルの結果を示す図である。
【図２６】本発明のアーキテクチャによる撮像されたテキストの一部と言語モデルの比較を示す図である。
【図２７】開示されたアーキテクチャを実行するように動作できるコンピュータを示すブロック図である。
【図２８】本発明による典型的なコンピューティング環境を示すブロック概略図である。
【発明を実施するための最良の形態】
【００１３】
図面を参照して本発明について説明する。図面では、同様の要素を指すために全体を通して同様の参照番号が使用されている。以降の説明では、説明上の目的から、本発明の完全な理解を提供するために多くの特定の詳細について述べる。しかし、これらの特定の詳細を伴わずに本発明を実施できることは明らかである。他の例では、本発明の説明を容易にするために、よく知られた構造およびデバイスがブロック図の形態で示されている。
【００１４】
本出願で使用される「コンポーネント」および「システム」という用語は、ハードウェア、ハードウェアとソフトウェアの組合せ、ソフトウェア、または実行中のソフトウェアのいずれかのコンピュータ関連のエンティティを指すことを意図している。たとえばコンポーネントは、プロセッサ上で実行されているプロセス、プロセッサ、オブジェクト、実行ファイル、実行スレッド、プログラム、および／またはコンピュータとすることができるが、これらには限定されない。実例としては、サーバ上で実行されているアプリケーションおよびそのサーバの双方をコンポーネントとすることができる。１つまたは複数のコンポーネントは、１つのプロセスおよび／または実行スレッド内に常駐することができ、１つのコンポーネントは、１台のコンピュータに集中させるか、および／または複数のコンピュータに分散することができる。
【００１５】
本明細書で使用される「推論する」または「推論」という用語は、一般にイベントおよび／またはデータを介して取り込まれた一式の観察からシステム、環境、および／またはユーザの状態を論理的に考えるまたは推測するプロセスを指す。たとえば推論を採用して特定のコンテキストまたはアクションを識別することができ、あるいは状態にわたる確率分布を作成することもできる。推論とは確率的である、すなわちデータおよびイベントの考察に基づいて興味ある状態にわたる確率分布を算出することであると言うことができる。また推論とは、一式のイベントおよび／またはデータからより高位のイベントを構成するために採用される技術を指す場合もある。こうした推論の結果、複数のイベントが時間的に密接に関連しているか否か、イベントおよびデータが１つまたは複数のイベントソースおよびデータソースに由来するか否かを問わず、一式の観察されたイベントおよび／または蓄積されたイベントデータから新たなイベントまたはアクションが構築される。
【００１６】
（カメラで取得されたドキュメントのＯＣＲ）
本発明によって、低解像度のシンボルイメージおよび／またはドキュメントイメージを使用する場合のシンボルおよびテキストの取り込みおよび正確な光学式文字認識（ＯＣＲ）が容易になる。このような機能は、シンボル、テキスト、および／またはドキュメントが劣化し、そのメディアが何らかの形で損傷または汚損しており、その関連するシンボルの認識がさらに困難な場合などの状況に対して応用することもできる。
【００１７】
次いで図１を参照すると、本発明によるカメラで取得されたドキュメントの低解像度のＯＣＲ用のグローバル最適化フレームワークであるシステム１００が示されている。このシステム１００は、少なくともコンボリューショナルニューラルネットワーク１０２、ダイナミックプログラミングコンポーネント１０４、および言語モデル１０６を同時に組み合わせることによって、従来技術における問題を解決する。したがって、システム１００によって取り込まれ処理されるドキュメント１０８にとって、認識率は非常に高く、結果としてユーザに適した出力デジタル表示１１０が作成される。
【００１８】
コンボリューショナルニューラルネットワーク１０２は、１つの位置の部分的な結果を隣接する位置の計算において再利用することによって、複数の位置における分類関数(classification function)を効率よく計算することができる。ニューラルネットワークは中間調の入力を処理できるため、これはさらに容易になる。大量のデータ上でトレーニングされる機械学習アプローチを使用して、堅牢なシステムが提供される。コンボリューショナルニューラルネットワーク１０２が採用されるのは、これが複数の位置における分類関数を効率よく計算し、大量のトレーニングデータによって十分に拡張し、Ｈｉｄｄｅｎ  Ｍａｒｋｏｖ  Ｍｏｄｅｌ（ＨＭＭ）アルゴリズムと組み合わせることを容易にする確率を出力し、中間調の入力を受け入れ、これによって２値化が不要になるためである。異なる照明条件、フォント、サイズ、カメラ、アングル、焦点などにおいてデータを収集することによって、機械学習アルゴリズムは、これらの要因によって変わることのない分類子を構築するタスクを実行する。
【００１９】
ダイナミックプログラミングコンポーネント１０４を利用して、単語認識の最適化を解決する。単語認識器はダイナミックプログラミングコンポーネント１０４を使用して、レイアウト分析によって返された所与の単語の外枠を囲む長方形の位置にどの単語が配置されるかを判断する。ダイナミックプログラミングは、元の問題の下位問題に対する一連の最適な解を構築することによって、問題に対する最適な解を見つけ出す。これによって、グローバルな最適の解を決定する際に、最適な下位問題を見つけ出すための計算の多くを再利用することが容易になる。
【００２０】
言語モデルコンポーネント１０６によって、文字および単語の認識が容易になる。
【００２１】
次いで図２を参照すると、本発明の低解像度のＯＣＲシステムの主要なオペレーション２００の流れ図が示されている。最初に前処理関数２０２を実行して、さらなる処理に備えてドキュメントイメージを取り込む。グローバルレイアウト分析関数２０４は、取り込まれたドキュメント上のテキストのラインの位置を見つけ出し、これらのテキストのラインの外枠を囲む長方形のリストを返すタスクを実行する。次いでレイアウトアナライザは、そのラインを個々の単語へとさらに分割し、各単語を囲む外枠を表示する。文字認識器２０６を採用して、入力イメージ内の所与の位置にどの文字が当てはまりそうかを予測する。一実施態様では、コンボリューショナルニューラルネットワークに基づく文字認識器を使用することによって、文字認識および他の機能が容易になる。これらをすべて結び付けるのが単語認識器２０８であり、これは、ドキュメント上の所与の長方形内で最も可能性の高い単語を見つけ出す。単語認識とは、ダイナミックプログラミングを使用して解決される最適化の問題である。
【００２２】
次いで図３を参照すると、未加工のドキュメント３００と、カメラを使用した取り込み後の撮像されたドキュメント３０２とのサンプルが示されている。撮像されたドキュメント３０２は、カメラの低解像度の性能に応じて、背景色はより暗く、テキストはぼやけている。
【００２３】
（前処理）
次いで図４を参照すると、本発明による前処理の前および後のサンプルテキストおよびドキュメントの単語が示されている。スキャンされたドキュメントから、ユーザがカメラ（たとえばウェブカメラ）を使用してドキュメントを取り込む際に一般的に遭遇することになる複数の問題を見て取ることができる。たとえば、カメラがドキュメントに近すぎた場合、ドキュメントの表面に対する回転軸および焦点軸(focal axis)の位置合わせが正しくなかった場合、および照明が不適切または不均一であった場合などである。回転による位置合わせによって、テキストのラインはイメージ内において完全に水平ではなくなる。カメラがドキュメントに対してまっすぐに向いていない場合、視野のゆがみによって視野によるひずみが生じる。その上、光学的な質が相対的に貧弱なことによって、多量のひずみが発生するおそれがある。照明に関する問題のいくつかは、イメージ内の領域またはブロックにわたって局所的にコントラストを最大化しようと努める適応可能なホワイトバランシングアルゴリズム(whitebalancing algorithm)でイメージを前処理することによって緩和される。このプロセスは、ドキュメントイメージがＯＣＲ処理のためにシステムに提示されるたびに実行することができる。
【００２４】
（トレーニング）
次いで図５を参照すると、本発明による前処理トレーニング用の１つの方法が示されている。説明を簡単にするために、本明細書においてたとえばフローチャートの形態で示されている１つまたは複数の方法は、一連の行為として記載および説明されているが、本発明によれば、いくつかの行為は、本明細書で記載および説明したものとは異なる順序で、および／または他の行為と共に発生することができるため、本発明は行為の順序には限定されないことを理解および認識されたい。たとえば方法とは、別の形態として状態遷移などの相互に関連した一連の状態またはイベントとして表すこともできることを当業者なら理解および認識するであろう。さらに、本発明による方法を実施する上で、説明したすべての行為が必要となるわけではない場合もある。
【００２５】
次の前処理は、ニューラルネットワークに基づくシステムを初期化するために１回実行されるという点で、図４の前処理とは異なる。５００において、ラベル付きデータが作成される。５０２では、ニューラルネットワークの文字認識器がトレーニングされる。そしてプロセスは終了ブロックに到達する。ニューラルネットワークに基づく文字認識器をトレーニングするには、ラベル付きトレーニングデータの大規模なコーパスが必要となる。このようなコーパスは、スキャンされたページに人間が注釈を付け、ページ上の各文字に対する位置およびＡＳＣＩＩコードを識別することによって構築することができる。しかし場合によっては、これは非常に時間がかかり、エラーが発生しやすいプロセスである。したがってラベル付きデータを作成するために、半自動化されたメカニズムを提供する。
【００２６】
次いで図６を参照すると、本発明によるラベル付きデータを作成するための前処理のフローチャートが示されている。本発明のデータ取得システムは、ページ上の各文字に対する外枠を囲む長方形と文字コードを記録する特別のプリンタドライバ、およびこれらの外枠を囲む長方形とスキャンされたイメージとの位置合わせを補助するツールから構成される。６００において、プリンタドライバが提供される。６０２では、このプリンタドライバによってドキュメントが処理される。６０４では、ドキュメントの高解像度のビットマップを作成し、ドキュメント上の各文字に対する幾何学的な情報を記録することによって、グラウンドトゥルースデータ（ＧＴＤ）が作成される。ドキュメントおよび高解像度のビットマップは、各文字が正しくラベル付けされ、その位置が知られている場合、「グラウンドトゥルース」(ground truth)である。６０６では、高解像度のビットマップが印刷され、カメラシステムでスキャンされる。６０８では、スキャンされたページ上の各文字に対する位置を得るために、スキャンされたイメージがグラウンドトゥルースビットマップに対して位置合わせされる。この調整ステップを行うために、６１０において、スキャンされたイメージとグラウンドトゥルースビットマップの間の対応する位置が、ドキュメント上の４つのポイントのそれぞれに対して識別される。６１２では、最も適切な透視変換を計算して、スキャンされたイメージをレンダリングされたイメージにマップする。６１４では、スキャンされたイメージがゆがめられ、必要に応じて、レンダリングされたイメージに対して位置合わせされる。そしてプロセスは終了ブロックに到達する。
【００２７】
残念なことに、スキャンされたイメージを調整するために透視変換を使用することは、外枠を囲む長方形をスキャンされた文字に位置合わせする上で常に十分であるとは限らない。よりよく適合させるために、各文字をそれぞれの方向に最大で５ピクセルまで変形し、最小二乗距離測度(least squares distance measure)を使用して最良の適合状態を記録する。次いで、各トレーニング例用の、ゆがめられ、スキャンされたイメージ内の位置として、対応するオフセットの外枠を囲む長方形を使用する。  
次いで図７を参照すると、スキャンされてグラウンドトゥルースビットマップに対して位置合わせされたサンプルテキストが示されている。示されているのは、（図６で説明した）透視変換を使用して、文字の外枠を囲む長方形をスキャンされたイメージに対して位置合わせした結果である。スキャンされたテキスト７００は、グラウンドトゥルースデータ７０２に対して位置合わせされる。
【００２８】
（レイアウト分析）
次いで図８を参照すると、本発明によるレイアウト分析用の方法が示されている。８００では、カメラによるイメージ化用にドキュメントを受け取る。８０２では、レイアウト分析が、単語、ライン、および列を見つけ出すことによって、ページ上のテキストのレイアウトを検出する。８０４に示されているように、ライン情報を使用して、ラインに沿った文字をセグメント化し、拡大縮小し、文字分類アルゴリズムに提示することができる。そしてプロセスは終了ブロックに到達する。スキャンされたイメージ内では、連結成分分析(connected components analysis)など、簡単だが信頼できるイメージ処理オペレーションを使用して、この種のレイアウト分析を進めることができる。次いでこれらの連結成分は、レイアウトプロセスへの基本的な入力として使用される。
【００２９】
前に指摘したように、オフィス環境内のカメラから取り込まれたドキュメントイメージは、スキャナなどの周辺コンピューティングデバイス上で撮像されたドキュメントとはまったく異なっている。写真において使用される照明を制御できない結果、コントラストおよび明るさに大きなばらつきが生じる。これらのばらつきによって、単純なテキスト検出アルゴリズムにとって問題が提示されている。連結成分分析は、入力としてバイナリイメージ（すなわち黒および白）を必要とする。したがって、テキストを背景の紙から確実に分離する適応可能なしきい値アルゴリズム(thresholding algorithm)を構築することが困難になる場合がある。コントラストおよび強度の双方におけるばらつきによって、テキストのいくつかが背景の中に消える一方で、他のテキストは文字の非常に大きなブロックの中に吸収されるおそれがある。
【００３０】
次いで図９を参照すると、本発明によるテキスト検出用の方法のフローチャートが示されている。一実施態様では、テキスト検出は次のように進行する。９００において、入力イメージ内の各位置に対して２つの線形フィルタが適用される。９０２では、各フィルタにしきい値が割り当てられる。このしきい値を上回る値の位置は「テキスト」と呼ばれ、下回る値の位置は「非テキスト」と呼ばれる。９０４では、双方のフィルタによってテキストであると判定された位置が、テキストである可能性のある領域として使用され、保持される。そしてプロセスは終了ブロックに到達する。
【００３１】
一実施態様では、しきい値を実験的に決定した（７ピクセルのライン高さおよび１ピクセルの文字間隔に対して、１００および６０００）。別の実施態様では、さらなる機能を組み込むことができ、「ブースティング」(boosting)を使用して、しきい値を自動的に計算することができる。ブースティングとは、当てずっぽうよりもごくわずかでも円滑に機能する必要のある分類子を首尾一貫して作成する任意の学習アルゴリズムのパフォーマンスを改善するための一般的な方法である。
【００３２】
次いで図１０を参照すると、本発明によるテキスト検出フィルタの結果を示す図１０００が示されている。第１のフィルタが、文字間の間隔を見つけ出すために、テキスト「Ｎｏｗ  ｉｓ」上で動作している。ここでは、文字「ｏ」と「ｗ」の間に間隔が検出されている。第２のフィルタが、関連するラインを見つけ出すために、同じテキスト上で動作している。したがって第２のフィルタは、単語「Ｎｏｗ」の上下にスペースを検出している。
【００３３】
次いで図１１を参照すると、元のカメライメージ１１００が、本発明による第２のレンダリング１１０２におけるようにそのカメライメージに追加されたテキストディテクタ(text detector)の出力と比較して示されている。第２のレンダリングの白いエリアは、検出されたテキストを示している。
【００３４】
次いで図１２を参照すると、本発明による文字間の間隔を検出するためのプロセスのフローチャートが示されている。結果としては、１２００に示されているように、双方のフィルタが文字間の間隔を大ざっぱに検出する。１２０２では、連結成分（ＣＣ）分析が「間隔ピクセル」(gap pixel)上で計算される。１２０４では、結果として生じる「間隔ＣＣ」上でレイアウト分析が実行される。次いで１２０６に示されているように、間隔ＣＣが、その相対的な幾何学的関係をテストすることによってグループ分けされる。たとえば間隔ＣＣが相対的に同じサイズであり、水平に近接して位置合わせされている場合、ラインが検出される。テストでは、現在のライン内のＣＣの高さおよび幅のメジアンなどの堅牢な統計値を使用し、アルゴリズムは複数のパスを実行する。１２０８では、ますます大きくなるＣＣのセットおよび多くのドキュメントにわたってしきい値を決定する。そしてプロセスは終了ブロックに到達する。
【００３５】
ますます大きくなるＣＣのセット上で統計値が収集されるにつれて、グループ分けのテストはより積極的に行われる。数十のドキュメントのコーパスにわたって、しきい値を実験的に決定する。間隔ＣＣが一定であるならば、間隔ＣＣの外枠を囲む長方形の相対的な位置のみが比較されるため、ライン検出ステップが縮尺およびアルファベットによって変わることはない。
【００３６】
次いで図１３を参照すると、本発明による間隔検出を使用するライン抽出用に処理されたサンプルテキスト１３００が示されている。基本的にシステムは、検出されたテキストのラインを長方形の外枠で囲む。この２段組みのドキュメントでは、ライン検出の結果、各列の検出されたラインがそれぞれ長方形の外枠で囲まれている。１段組みのドキュメントならば、ページにわたって広がるテキストの各ラインが長方形の外枠で囲まれ、そのラインが検出されたことを示すであろう。
【００３７】
次いで図１４を参照すると、本発明による単語間のスペースを検出するための方法が示されている。１４００において、テキストのラインが検出される。テキストのラインが検出されると、１４０２に示されているように、これらのラインは、ドキュメント内の各単語を含むページの領域へとさらに分割される。１４０４に示されているように、各ラインにおける単語間のスペースの位置が識別され、これらのスペースを使用してラインが分割される。スペースを見つけ出すために、ラインの外枠を囲む長方形を横断する空白の縦の列が検出される。１４０６では、列内のすべてのピクセルが何らかのしきい値よりも明るい場合、その列が空白として分類される。このしきい値は、現在のラインの中央を水平に横切ってスキャンし、このスキャンラインに沿ったピクセルにとっての明るさの最小値および最大値を見つけ出し、そこからしきい値を計算することによって決定される。一実施態様では、明るさが（明るさの最小値＋３×明るさの最大値）／４を上回るピクセルが、空白ピクセルとして分類される。次いで１４０８では、スペースファインダ(space finder)がテキストのラインにわたってスキャンを行い、空白ピクセルの列を検出し、これらのスペースの位置を使用してラインを単語へと分割する。次いで１４１０では、単語が文字認識器に送られる。そしてプロセスは終了ブロックに到達する。
【００３８】
（文字認識器）
次いで図１５を参照すると、本発明によるコンボリューショナルニューラルネットワークに基づく文字認識器をトレーニングするためのプロセスのフローチャートが示されている。低解像度のＯＣＲシステムの中核をなすものが、コンボリューショナルニューラルネットワークに基づく文字認識器である。１５００では、第１のコンボリューショナル層が提供され、単純な特徴(feature)を比較的高い解像度で抽出する。１５０２では、第２のコンボリューショナル層が提供され、単純な特徴を複雑な特徴へと比較的粗い解像度で変換する。１５０４では、完全に連結された層がさらに２つ提供され、学習用の多目的の分類子を形成する。１５０６では、４つの層が同時にトレーニングされる。１５０８では、ネットワークをトレーニングして、クロスエントロピ(cross entropy)を最小化する。そしてプロセスは終了ブロックに到達する。
【００３９】
次いで図１６を参照すると、本発明による低解像度の印刷されたテキストのＯＣＲ用のコンボリューショナルニューラルネットワーク１６００の図が示されている。コンボリューショナルネットワークの一般的な戦略は、単純な特徴を比較的高い解像度で抽出し、次いで単純な特徴をより複雑な特徴へと比較的粗い解像度で変換することである。より粗い解像度を作成する１つの方法は、２つの因子によって層の二段抽出(sub-sample)を行うことである。ネットワーク１６００は、データを受け取るための２９×２９ピクセルの受容野を有する入力イメージ１６０２を含む。第１の層１６０４は通常、ＸおよびＹデリバティブ(X and Y derivative)、ローパス、Ｘ−Ｙデリバティブ(X-Y derivative)などの非常に粗い特徴を抽出する。第１の層１６０４は、５つの１３×１３ピクセルの特徴ディテクタニューロン(five 13x13 pixel feature detector neurons)（またはマップ）を使用して、入力イメージ１６０２をスキャンする。特徴はデータ上で学習されるため、トレーニングが完了するまで特徴によって実際に何が生じるかを予測するのは困難である。第２のコンボリューショナル層１６０６は、さらにいっそう複雑な特徴を粗い解像度で抽出する。第２の層１６０６は、５０の５×５ピクセルの特徴ディテクタニューロンを使用して、第１の層１６０４の出力をスキャンする。情報を分類層（１６０８および１６１０）まで運ぶだけの十分な特徴がある限り、特徴の数は重要ではない。この時点では、特徴は非常に多くのユニットに分散しているため、特徴を解釈するのは困難である。特徴はループ、交差(intersection)、湾曲(curvature)などであると仮定することができる。最初の２つの層（１６０４および１６０６）は、トレーニング可能な特徴エクストラクタ(feature extractor)とみなすことができる。最後の２つの層（１６０８および１６１０）は完全に連結されており、２層の完全に連結されたニューラルネットワークはいかなる機能も学習できるため、多目的の分類子を形成しているとみなすことができる。この４つの層（１６０４、１６０６、１６０８、および１６１０）は同時にトレーニングされる。次いでネットワーク１６００をトレーニングして、クロスエントロピを最小化する。
【００４０】
一実施態様では、第１のコンボリューショナル層１６０４用の５つの特徴および第２のコンボリューショナル層１６０６用の５０の特徴の選択が、本発明の低解像度の印刷されたＯＣＲを含む広範なイメージに基づく文字認識にとって適切であることが、このコンボリューショナルアーキテクチャに関するこれまでの経験によって示されている。この実施態様では、完全に連結された層（１６０８および１６１０）用に７６の出力ユニットおよび７６０の隠れユニット(hidden unit)を使用した。隠れユニットの数は変更することができ、この数を制御することによって、分類子全体のキャパシティおよび一般化を制御する。しかし、さらなる最適化のために他の値も採用できることを当業者なら理解できるはずである。
【００４１】
次いで図１７を参照すると、本発明によるコンボリューショナルニューラルネットワークに基づく文字認識器を使用して文字を認識するためのプロセスのフローチャートが示されている。１７００において、トレーニングされたニューラルネットワークが提供される。１７０２では、文字イメージのビットマップが入力される。この場合、ビットマップは２９×２９ピクセルの受容野である。１７０４では、イメージによってどの文字が表されている可能性が高いかを示す確率のリストをネットワークが出力する。そしてプロセスは終了ブロックに到達する。
【００４２】
次いで図１８を参照すると、本発明によるコンボリューショナルニューラルネットワーク用のトレーニング方法が示されている。１８００において、トレーニングイメージのデータベースから文字例を得ることによって、システムがトレーニングされる。次いで１８０２では、トレーニングイメージが入力ウィンドウ内で無作為にジッタ(jitter)している。１８０４では、トレーニングイメージの明るさおよびコントラストが無作為に変更される。１８０６では、トレーニングの各エポック(epoch)（またはパターンの完全なセットに対するエクスポージャ(exposure)）用に、各文字について無作為にジッタされコントラストを調整された１つの例がネットワークに提示される。そしてプロセスは終了ブロックに到達する。一実施態様では、トレーニングデータベースは、１５ページのドキュメントテキストから取られた５７，５５５文字を含む。
【００４３】
（単語認識器）
次いで図１９を参照すると、本発明による単語を認識するためのダイナミックプログラミングが示されている。文字認識器は、各文字がニューラルネットワークの入力ウィンドウ内に現れてその中央に配置される確率を各位置において提供する。レイアウトアナライザは、ページ上の各単語の外枠を囲む長方形を識別する。残念なことに、ページ上における個々の文字用の位置は不明であり、したがって、最良の推測を読み取るための各文字にわたる文字認識器のセンタリングは不可能である。実際に文字認識器は、どの「文字」が任意の所与のビットマップに当てはまる可能性が最も高いかを、それが実際に文字であるか否かを問わずに適切に報告するであろう。
【００４４】
１９００において、単語認識器への入力時に一連の文字認識器の観察が受け取られる。単語をスキャンし、可能性のあるそれぞれの有効な文字位置において文字認識器を呼び出すことによって、観察が行われる。１９０２では、有効な文字位置が定義される。１９０４に示されているように、有効な文字位置を定義するために、システムは単語を小さな断片または間隔に分割し、こうした断片または間隔は、１つの文字用に認められている可能な最小のサイズに設定されている。一実施態様では、この間隔は２ピクセルの幅である。１９０６に示されているように、単語は、１つの文字用の可能な最小のサイズを表す間隔へと分割されるため、１つの文字を表す間隔の結合されたシーケンスを見つけ出すには、（たとえば、最大で４つの間隔までを結合した）複数の間隔を連結することが必要となる場合がある。１９０８では、すべての有効な間隔のシーケンスに対する文字認識器の結果がテーブルに投入される。次いで１９１０では、単語認識器は、この認識器の出力のシーケンスと特定の単語を一致させるよう試みる。そしてプロセスは終了ブロックに到達する。
【００４５】
単語認識器はダイナミックプログラミングアルゴリズムを使用して、レイアウト分析ステップによって返された所与の単語の外枠を囲む長方形にどの単語が配置されるかを判断する。ダイナミックプログラミングは、元の問題の下位問題に対する一連の最適な解を構築することによって、問題に対する最適な解を見つけ出す。これによって、グローバルな最適の解を決定する際に、最適な下位問題を見つけ出すための計算の多くを再利用することが可能になる。
【００４６】
次いで図２０を参照すると、本発明による単語のセグメント化のサンプル２０００が示されている。小さいハッシュマーク２００２は、単語をセグメント化するための間隔のサイズを示している。大きいハッシュマーク２００４は、単語「ｐｒｉｖａｔｅ」および「ｃｅｒｔａｉｎｌｙ」内の各文字用に実際に使用されている間隔を示している。
【００４７】
（言語モデル）
一実施態様では、単語認識器は特定の言語モデルを組み込まれていない（ニュートラル言語である）が、単純に文字認識器の観察のシーケンスに対して最も可能性の高い解釈を作成することを試みる。この認識器は、最大化される目的関数が単純に文字スコア(character score)の合計である単純な１次元のダイナミックプログラミングアルゴリズムを使用する。文字スコアとは、（文字認識器によって返されるような）最も可能性の高い文字用の確率であり、最も可能性の高い文字の平均の幅がこの文字用に検討されているイメージの部分の幅からどの程度異なっているかに依存する倍率をかけたものである。ダイナミックプログラミングのテーブル内の各セルは、解のそのエンドポイント(endpoint)用の文字、前の文字に戻るリンク、およびその時点までの解用の累積スコアを含む。（リバース(reverse)された）最も可能性の高い文字列は、最後のエントリからテーブル内をトレースバック(trace back)することによってリカバ(recover)される。
【００４８】
次いで図２１を参照すると、言語モデルをまったく使用しない場合にダイナミックプログラミングの問題の部分解を保持するために使用される本発明によるダイナミックプログラミングのテーブルが示されている。ダイナミックプログラミングは通常、テーブル内の各セルが元の問題の下位問題を表す場合にテーブルに書き込みを行うことによって進行する。たとえば（１次元の）テーブル２１００が、ダイナミックプログラミングの問題の部分解を保持するために使用されると仮定する。テーブル２１００は、入力されたシーケンス内における各間隔用のセル２１０２を含む。これらの各セル２１０２はエンドポイントを表し、これは、そのセルに対応する間隔で終端する単語の部分に対する最適な解である。それぞれの解は、（関連付けられている矢印によって示されているように）より小さい下位問題に対する最適な解という観点から表される。この例では、単語は「ＦＯＯＤ」と認識される。各セル２１０２は、その特定の下位問題の適合性の測度(measure)と、この文字の前に位置する単語の部分に対する最適な解を表すテーブル２１００内の前のセルに戻るポインタとを含む。テーブル２１００が完全に記入されると、最後のセル２１０４は観察の全シーケンスに対する最適な単語を表す。
【００４９】
次いで図２２を参照すると、特定の単語内の文字に対する観察の最適な割り当て２２０２を決定するために使用される本発明による辞書モデルの最適化用のダイナミックプログラミングのテーブルのサンプル２２００が示されている。一実施態様では、単語認識器は、所与の入力されたイメージにマッチする可能性が最も高いのはどの単語かを単語の辞書の中から見つけ出すよう試みる。そのイメージを表現するのに十分ふさわしい単語がレキシコン(lexicon)にない場合、システムは前の方法に戻る。
【００５０】
第１の実施態様では、辞書に基づく認識器のバージョンが採用されており、これは単純にレキシコン全体を直線的にスキャンし、各単語に対する確率を評価し、最も可能性の高い単語を出力する。第２の実施態様は代替構成を示しており、これはダイナミックプログラミングの最適化を辞書の検討(traversal)によってインターリーブ(interleave)して、最も可能性の高い単語をより迅速に算出することができる。
【００５１】
この問題では、ダイナミックプログラミングのテーブル２２００内の各列は、入力されたシーケンス内の特定の位置（間隔）において終端する下位問題を表し、テーブルの各行は問題の単語からの文字を表す。テーブル２２００の列ｃおよび行ｒにおけるエントリは、間隔ｃにおいて終端し、かつ行ｒによって表される文字で終端する部分的に認識された単語を表す。このテーブルの位置に保存されるのが、前の文字およびその文字が終端する間隔へ戻るポインタ、ならびに累積スコアである。
【００５２】
単語認識器の第２の実施態様向けにも同様のスコアリング方法が使用される。すなわち、現在のセルによって暗示されている文字に観察がマッチする確率に、文字の間隔の幅および平均の幅に依存する倍率をかける方法である。やはり累積スコアは、現在のセルに対するスコアに、前の部分解を表すセルに対する累積スコアを足したものである。テーブルの書き込みが完了すると、その単語に対する最適なスコアが最後の（右上の）セル内に保存される。次いでこのスコアは、単語内の文字数で割ることによって正規化される。この正規化を行わなければ、相対的に貧弱なスコアの文字を有する長い単語が高いスコアを蓄積し、非常に良好な文字スコアを有する短い単語が駆逐されるおそれがある。したがって、各文字に対するスコアを最大化することが望ましい。
【００５３】
辞書内の多くの単語が他の単語と接頭辞を共有しているため、各単語に対してこの共有された情報を計算することによって作業の重複が発生する。たとえばダイナミックプログラミングのテーブルを採用して、単語「ＦＯＯＬ」に対するスコアを割り出すと仮定する。これは、前の「ＦＯＯＤ」の例と最初の３行が同じである。したがって、共通の接頭辞を有する単語に対するスコアを計算する場合は、これらの同一の行を共有する方法が望ましい。
【００５４】
最初の文字以外のいかなる文字も最初の間隔を満たすことはできないため、満たす必要がないセルもあり、各文字は最大で４つの間隔しか対応できない点に留意されたい。最適なパスは、観察された最高の値を有するセルに沿って移動する矢印によって表される。
【００５５】
次いで図２３を参照すると、本発明によるトライベースの辞書検索の図２２００が示されている。トライ(trie)とは（ｒｅＴＲＩＥｖａｌに由来し）、あらゆる共通の接頭辞に対して１つのノードが存在する文字列を保存するためのデータ構造またはｋ−ａｒｙ位置ツリー構造(k-ary position tree structure)である。文字列は余分なリーフノードに保存される。トライは、空値の作成(makenull)、検索、挿入、および削除のような基本的なオペレーションを実行できる辞書の抽象データ型（ＡＤＴ）を実装するために使用される。これは、符号化および圧縮、ならびに正規表現の検索および概算の文字列のマッチング(approximate string matching)に使用することができる。
【００５６】
解は、辞書が検討される時点で（図２２の）テーブル２２００の１つの行を作成および評価する。再利用される計算の量を最大化する順序で辞書を検討するために、辞書はトライ構造２３００へとアレンジされる。トライ２３００内の任意のノード２３０２は、単語の一部または完全な単語（あるいはその両方、「ｆｏｏｌ」は単語であり、また「ｆｏｏｌｉｓｈ」の接頭辞でもある）を表す。辞書トライが検討されるにつれて、ダイナミックプログラミングのテーブルが構築されていく。ノードにアクセスすると、トライ内のそのノードによって表される文字に対応する新しい「行」２３０４が、この仮想テーブル２３００用に作成され、その行にスコアが記入される。
【００５７】
したがって、結果として生じるトライ２３００はトップレベルの「Ｆ」ノードを有し、そこには図２２の辞書テーブル２２００用の値の「Ｆ」行が関連付けられている。下に検討を続けると、第２のノード（第１の「Ｏ」ノード）は、関連付けられたテーブル２２００の第１の「Ｏ」行を有する。先へ進むと、第３のノード（第２の「Ｏ」ノード）は、テーブル２２００から関連付けられた対応する行を有する。この第３のノードは、単語「ＦＯＯＤ」用の「Ｄ」ノードに対応する第１の分岐と、単語「ＦＯＯＬ」用の「Ｌ」ノードに対応する第２の分岐とを有する。「Ｄ」ノードは、テーブル２２００からの「Ｄ」行に関連付けられている。同様だが、より低い行の評価がなされ、「Ｌ」ノードに関連付けられる。
【００５８】
このオペレーションに必要なコンテキストは前の行だけであり、これはパラメータとして再帰的なトライ検討ルーチンに渡されることに留意されたい。問題のノードが完全な単語を表す場合、行内の最後のエントリを観察して、その単語内の文字に対するスコアの合計を割り出すことができる。再び文字スコアの合計を単語の長さで割って、最終的な単語のスコアを得る。トライの検討が終了すると、得られた最も高いスコアの単語が返される。
【００５９】
計算を著しく加速するいくつかの発見的な最適化がある。第１に、単語の最初の文字である可能性の高い文字から始まる単語のみにアクセスすることである。この最適化によって、特に最初の文字が同じでない単語に関して、スピードが数倍加速する。別の加速は、結果的にスコアの高い単語に結び付きそうもないトライ内のリンクを辿らずにすむように検索から余分なものを除去することによって実現する。所与のノードにおける単語の接頭辞の文字に対する平均のスコア（列の最後のエントリ内の値を文字数で割ったもの）が何らかのしきい値を下回る場合、単語の残りの文字のスコアがいかに良好であっても、その平均がそれまでに見られた最良の単語をしのぐほどに良好であることは決してないと想定される。この第２の最適化は、結果を著しく犠牲にすることなく大幅な加速を提供する。
【００６０】
句読点は、辞書に基づく単語認識器に対して問題を提示する。すなわち句読点を伴う単語は、レキシコン内に存在することができない。次いで図２４を参照すると、本発明による句読点検出の方法が示されている。２４００に示されているように、認識位置のシーケンスが単語認識器に渡される前に、システムは単語の最後の文字が句読点である可能性を判定する。もしそうであれば、文字認識器を使用して、特定の句読点を識別する。２４０２に示されているように、最後の文字が句読点かどうかを判定するために、システムは、可能性のある最後の文字の位置のそれぞれにとって最も可能性の高い文字を見る。２４０４では、最も可能性の高い文字のそれぞれに対してスコアが作成される。２４０６では、各スコアが所定のしきい値と比較される。２４０８では、システムはスコアがしきい値を超えているかどうかを判定する。これらの文字認識器の出力中の最も高いスコアがしきい値を上回った場合、フローは２４１０に進み、その文字が最も可能性の高い句読点かどうかも検討する。双方の場合、フローは２４１２に進み、それは句読点の付いた単語と想定される。次いで２４１４に示されているように、その単語の残りは、辞書に基づく認識器に送られる。２４１６では、単語認識器の結果に句読点が付加される。そしてプロセスは終了ブロックに到達する。スコアがしきい値を超えない場合、または超えても句読点とはみなされない場合、フローは２４０８および２４１０から終了ブロックに進む。
【００６１】
次いで図２５を参照すると、本発明のアーキテクチャによる撮像されたサンプル２５０２の結果２５００が示されている。撮像されたテキスト２５０２と処理された結果２５００を横に並べて比較するためのウィンドウ２５０６を作成するユーザインターフェースによって処理が容易になる。この例では、システムは１１８の文字および句読点のうち１０４を正しくＯＣＲした。関連する単語の断片が辞書にない場合は、ハイフネーションが無視されれば、結果はさらに良好となる。この特定のインターフェースにおいては、ユーザは、言語モデルなし、頻度モデル(frequency model)、および辞書モデルから選択することができる。
【００６２】
次いで図２６を参照すると、本発明のアーキテクチャによる撮像されたテキストの一部と言語モデルの比較が示されている。左側では辞書モデルが使用されており、モデルを使用していない右側に示されているケースよりも、かなり高い認識率を示している。
【００６３】
（分類子）
前に示したように、本発明は、本発明のさまざまな態様を実行するためにさまざまな人工知能ベースのスキームを採用することができる。たとえば、文字が句読点であるかどうかを判断するためのしきい値を決定するためのプロセスは、自動分類子のシステムおよびプロセスを介して容易にすることができる。
【００６４】
分類子は、入力属性ベクトル、ｘ＝（ｘ１、ｘ２、ｘ３、ｘ４、ｘｎ）を、入力がクラスに属するという信頼性にマップする関数、すなわちｆ（ｘ）＝信頼性（クラス）である。こうした分類は、（たとえば分析の有用性およびコストを考慮に入れた）確率的および／または統計に基づく分析を採用して、ユーザが自動的に実行したいと望むアクションを予測または推論することができる。
【００６５】
サポートベクトルマシン（ＳＶＭ）は、採用できる分類子の一例である。ＳＶＭは、可能な入力のスペース内に超曲面を見つけ出すことによって機能し、この超曲面は、非トリガイベントからトリガ基準を分離することを試みる。これによって、トレーニングデータに近いが一致してはいないデータをテストするために分類が直観的に修正される。他の指定されたモデル分類手法および指定されていないモデル分類手法は、たとえばナイーブベイズ、ベイジアンネットワーク、決定木を含み、異なるパターンの独立性を提供する確率的な分類モデルを採用することができる。本明細書で使用される分類は、優先順位のモデルを作成するために利用される統計的回帰も含む。
【００６６】
本明細書から容易に理解できるように、本発明は、（たとえば包括的なトレーニングデータを介して）明確にトレーニングされている分類子、ならびに（たとえばユーザのふるまいを観察すること、外部からの情報を受け取ることによって）暗黙のうちにトレーニングされている分類子を採用することができる。たとえばＳＶＭは、分類子コンストラクタおよび機能選択モジュール内の学習すなわちトレーニング局面を介して構成される。したがって（１つまたは複数の）分類子を使用して、認識されたシンボルをより良好に解像するためにドキュメントの実質的なコンテキストを判断すること、現在の単語が正しい確率を高めるために連字や三重文字などの処理を実行することなど、複数の機能を自動的に実行することができる。たとえば単語が最初に「ｗｏｓｄ」と認識された場合、前または次の単語（連字）を処理することもできる。次の単語がプロセッサであれば、「ｗｏｓｄ」は「ｗｏｒｄ」となるべきである可能性が高まる。
【００６７】
別の実施態様では、単語の内容を分析して、認識率を高めることができる。たとえば単語がｍｏｎｅｙであり、その後に認識された単語がｓｅｃｕｒｉｔｉｅｓである場合、内容は金融や有価証券などを扱っている可能性があると推論することができる。したがってシステムは、用語および／またはこのような用語の解像に関連する機能を含む１つまたは複数の言語モデルを自動的に有効にすることができる。さらに、このような言語モデルのモジュール化によって、データに対する要件を削減することが容易になり、新奇なアーキテクチャを採用しているコンピューティングデバイスが、主に金融の環境において利用される場合、そのデバイスには、このような（１つまたは複数の）言語モジュールのみをインストールまたは利用可能にすればよい。これは、インストール先のデバイスの保存能力および／または処理能力に過度に負担をかけるおそれがある全分野対応型の言語モデル(catchall language model)を提供することとは対照的である。
【００６８】
さらに別の実施態様では、分類子を採用して、解像されるシンボルの数を見積もることができ、たとえばシンボルの数が２つである場合、その単語は代名詞または冠詞である可能性が高いと推論することができる。したがって他の言語モデルを有効にする前に、このような関連する単語の前処理を採用することができる。
【００６９】
また分類子を使用して、認識される句読点および他のシンボルを判定するために使用されるしきい値を自動的に調整することもできる。この調整は、ＯＣＲプロセスの進行時に正しく認識された内容に基づくことができる。すなわち、履歴に基づいてしきい値に自動的に影響を与えるフィードバックメカニズムが存在する。
【００７０】
また内容の重要性に基づいて、しきい値を自動的に調整することもできる。たとえばＯＣＲプロセスが進行するにつれて、認識された単語と法的な契約書類との関連性が高まる一方であると判断された場合、（たとえば医療記録用としても）分類子はシステムに働きかけ、しきい値を上げて精度を高めることができ、必要とあればプロセスを戻すことさえできる。その一方で、内容は買い物リストとの関連性が高いと判断された場合、ＯＣＲプロセスを続行するにつれて、しきい値を緩和することができる。
【００７１】
分類子の多くの他の使用法は、シンボルのサイズ、句読点のタイプ、文の長さ、シンボルの文字列内のシンボルの位置に関連するシンボルのタイプなどに基づいて推論を行うことを含む。
【００７２】
新奇なアーキテクチャは、文字認識用にコンボリューショナルニューラルネットワークを採用することに限定されないことに留意されたい。ドキュメント上の各位置における結果を計算または完全に分類するプロセスを採用し、コンボリューショナル処理を伴わないダイナミックプログラミングを得ることもできる。しかし堅牢性の低い実施態様では、これはシステムパフォーマンスに影響を与えるおそれがある。
【００７３】
次いで図２７を参照すると、開示されたアーキテクチャを実行するように動作できるコンピュータのブロック図が示されている。本発明のさまざまな態様のためにさらなるコンテキストを提供するため、図２７および以降の考察は、本発明のさまざまな態様を実施できる適切なコンピューティング環境２７００の簡潔で全般的な説明を提供することを意図している。ここまでは、１つまたは複数のコンピュータ上で実行できるコンピュータ実行可能命令という一般的なコンテキストで本発明について説明したが、本発明は他のプログラムモジュールと組み合わせて、および／またはハードウェアとソフトウェアの組合せとして実装できることを当業者なら理解するであろう。
【００７４】
一般にプログラムモジュールは、特定のタスクを実行したり特定の抽象データ型を実装したりするルーチン、プログラム、コンポーネント、データ構造などを含む。さらに本発明の方法は、シングルプロセッサコンピュータシステムまたはマルチプロセッサコンピュータシステム、ミニコンピュータ、メインフレームコンピュータ、ならびにパーソナルコンピュータ、ハンドヘルドコンピューティングデバイス、マイクロプロセッサベースの家庭用電化製品またはプログラム可能な家庭用電化製品などを含む他のコンピュータシステム構成と共に実施することができ、そのそれぞれは、１つまたは複数の関連するデバイスと動作可能に結合できることを当業者なら理解するであろう。
【００７５】
説明されている本発明の態様は、通信ネットワークを介してリンクされるリモート処理デバイスによって特定のタスクが実行される分散コンピューティング環境において実施することもできる。分散コンピューティング環境では、プログラムモジュールは、ローカルメモリストレージデバイスおよびリモートメモリストレージデバイスの双方に配置することができる。
【００７６】
コンピュータは通常、さまざまなコンピュータ可読メディアを含む。コンピュータ可読メディアは、コンピュータによってアクセス可能な、揮発性メディアおよび不揮発性メディア、ならびに取り外し式メディアおよび固定式メディアの双方を含む利用可能な任意のメディアとすることができる。たとえばコンピュータ可読メディアはコンピュータストレージメディアおよび通信メディアを含むことができるが、これらには限定されない。コンピュータストレージメディアは、コンピュータ可読命令、データ構造、プログラムモジュール、または他のデータなどの情報を記憶するための任意の方法または技術において実装できる揮発性メディアおよび不揮発性メディア、ならびに取り外し式メディアおよび固定式メディアの双方を含む。コンピュータストレージメディアは、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリまたは他のメモリ技術、ＣＤ−ＲＯＭ、デジタル多用途ディスク（ＤＶＤ）または他の光ディスクストレージ、磁気カセット、磁気テープ、磁気ディスクストレージまたは他の磁気ストレージデバイス、あるいは希望の情報を記憶するために使用可能で、コンピュータによってアクセス可能な他の任意のメディアを含むが、これらには限定されない。
【００７７】
通信メディアは通常、コンピュータ可読命令、データ構造、プログラムモジュール、または搬送波や他の伝送メカニズムなどの変調されたデータ信号内の他のデータを具体化し、何らかの情報伝達メディアを含む。「変調されたデータ信号」という用語は、情報をその信号内で符号化するような方法で設定または変更されたその特性の１つまたは複数を有する信号を意味する。たとえば通信メディアは、有線ネットワークや直接有線接続などの有線メディアと、音波メディア、ＲＦメディア、赤外線メディア、および他の無線メディアなどの無線メディアとを含むが、これらには限定されない。また上記のいずれの組合せも、コンピュータ可読メディアの範囲内に含まれるものである。
【００７８】
図２７を参照すると、本発明のさまざまな態様を実装するための典型的な環境２７００が示されており、この環境２７００はコンピュータ２７０２を含み、コンピュータ２７０２は、処理装置２７０４、システムメモリ２７０６、およびシステムバス２７０８を含む。システムバス２７０８は、システムメモリ２７０６などを含むシステムコンポーネントを処理装置２７０４に結合する。処理装置２７０４は、さまざまな市販のプロセッサのいずれにすることもできる。処理装置２７０４として、デュアルマイクロプロセッサおよび他のマルチプロセッサアーキテクチャを採用することもできる。
【００７９】
システムバス２７０８は、（メモリコントローラを伴う、または伴わない）メモリバス、ペリフェラルバス、およびさまざまな市販のバスアーキテクチャのいずれかを使用するローカルバスへとさらに相互接続できる複数のタイプのバス構造のいずれにすることもできる。システムメモリ２７０６は、読み取り専用メモリ（ＲＯＭ）２７１０およびランダムアクセスメモリ（ＲＡＭ）２７１２を含む。基本入出力システム（ＢＩＯＳ）は、ＲＯＭ、ＥＰＲＯＭ、ＥＥＰＲＯＭなどの不揮発性メモリ２７１０内に格納されており、このＢＩＯＳは、起動中などにコンピュータ２７０２内の要素間における情報伝達を補助する基本ルーチンを含む。またＲＡＭ２７１２は、データをキャッシュに格納するためのスタティックＲＡＭなどの高速ＲＡＭを含むこともできる。
【００８０】
コンピュータ２７０２は、内蔵型ハードディスクドライブ（ＨＤＤ）２７１４（たとえばＥＩＤＥ、ＳＡＴＡ）（この内蔵型ハードディスクドライブ２７１４は、適切な筐体（図示せず）に入れて外付けとして使用するように構成することもできる）、（たとえば、取り外し式ディスケット２７１８との間で読み取りや書き込みを行うための）磁気フロッピー（登録商標）ディスクドライブ（ＦＤＤ）２７１６、および（たとえばＣＤ−ＲＯＭディスク２７２２を読み取る、またはＤＶＤなどの他の大容量光メディアとの間で読み取りや書き込みを行うための）光ディスクドライブ２７２０をさらに含む。ハードディスクドライブ２７１４、磁気ディスクドライブ２７１６、および光ディスクドライブ２７２０は、それぞれハードディスクドライブインターフェース２７２４、磁気ディスクドライブインターフェース２７２６、および光ディスクドライブインターフェース２７２８によって、システムバス２７０８に接続することができる。インターフェース２７２４は、外付けドライブの実施態様向けには、ユニバーサルシリアルバス（ＵＳＢ）およびＩＥＥＥ１３９４インターフェース技術の少なくとも１つまたは両方を含む。
【００８１】
これらのドライブおよびその関連するコンピュータ可読メディアは、データ、データ構造、コンピュータ実行可能命令などの不揮発性の記憶を提供する。コンピュータ２７０２用に、これらのドライブおよびメディアは、適切なデジタル形式での任意のデータの記憶を提供する。上記のコンピュータ可読メディアの説明は、ＨＤＤ、取り外し式磁気ディスケット、およびＣＤやＤＶＤなどの取り外し式光メディアを指しているが、Ｚｉｐドライブ、磁気カセット、フラッシュメモリカード、カートリッジなど、コンピュータによって読み取り可能な他のタイプのメディアも典型的な動作環境内で使用できること、またさらに任意のそうしたメディアは、本発明の方法を実行するためのコンピュータ実行可能命令を含むことができることを当業者なら理解するはずである。
【００８２】
オペレーティングシステム２７３０、１つまたは複数のアプリケーションプログラム２７３２、他のプログラムモジュール２７３４、およびプログラムデータ２７３６など、複数のプログラムモジュールをドライブおよびＲＡＭ２７１２内に格納することができる。これらのオペレーティングシステム、アプリケーション、モジュール、および／またはデータのすべてまたは一部は、ＲＡＭ２７１２内のキュッシュに格納することもできる。
【００８３】
本発明はさまざまな市販のオペレーティングシステムまたはオペレーティングシステムの組合せと共に実装できることを理解することができる。
【００８４】
ユーザは、たとえばキーボード２７３８およびマウス２７４０等のポインティングデバイスなど、１つまたは複数の有線／無線入力デバイスを介してコンピュータ２７０２にコマンドおよび情報を入力することができる。他の入力デバイス（図示せず）は、マイクロフォン、ＩＲリモートコントローラ、ジョイスティック、ゲームパッド、スタイラスペン、タッチスクリーンなどを含むことができる。これらの入力デバイスおよび他の入力デバイスは、システムバス２７０８に結合されている入力デバイスインターフェース２７４２を介して処理装置２７０４に接続される場合が多いが、パラレルポート、ＩＥＥＥ１３９４シリアルポート、ゲームポート、ＵＳＢポート、ＩＲインターフェースなどの他のインターフェースによって接続することもできる。
【００８５】
またモニタ２７４４や他のタイプのディスプレイデバイスも、ビデオアダプタ２７４６などのインターフェースを介してシステムバス２７０８に接続される。モニタ２７４４に加えて、コンピュータは通常、スピーカ、プリンタなどの他の周辺出力デバイス（図示せず）を含む。
【００８６】
コンピュータ２７０２は、（１つまたは複数の）リモートコンピュータ２７４８などの１つまたは複数のリモートコンピュータへの有線および／または無線通信を介した論理接続を使用して、ネットワーク化された環境内で動作することができる。（１つまたは複数の）リモートコンピュータ２７４８は、ワークステーション、サーバコンピュータ、ルータ、パーソナルコンピュータ、ポータブルコンピュータ、マイクロプロセッサベースの娯楽機器、ピアデバイス、または他の一般的なネットワークノードとすることができ、説明を簡潔にするためにメモリストレージデバイス２７５０しか示していないが、通常はコンピュータ２７０２に関連して説明した要素の多くまたはすべてを含む。示されている論理接続は、ローカルエリアネットワーク（ＬＡＮ）２７５２および／またはより大きなネットワーク、たとえばワイドエリアネットワーク（ＷＡＮ）２７５４への有線／無線接続性を含む。こうしたＬＡＮおよびＷＡＮのネットワーキング環境は、オフィス、および企業においてよく見受けられ、イントラネットなどの企業規模のコンピュータネットワークを容易にし、そのすべては、全世界規模の通信ネットワーク、たとえばインターネットに接続することができる。
【００８７】
ＬＡＮネットワーキング環境において使用する場合、コンピュータ２７０２は、有線および／または無線通信ネットワークインターフェースまたはアダプタ２７５６を介してローカルネットワーク２７５２に接続される。このアダプタ２７５６は、ＬＡＮ２７５２への有線または無線通信を容易にすることができ、ＬＡＮ２７５２は、無線アダプタ２７５６と通信するための無線アクセスポイントをその上に配置して含むこともできる。ＷＡＮネットワーキング環境において使用する場合、コンピュータ２７０２はモデム２７５８を含むことができ、またはＬＡＮ上の通信サーバに接続され、あるいはインターネットを介してなど、ＷＡＮ２７５４上で通信を確立するための他の手段を有する。モデム２７５８は、内蔵型または外付け型および有線または無線のデバイスとすることができ、シリアルポートインターフェース２７４２を介してシステムバス２７０８に接続される。ネットワーク化された環境では、コンピュータ２７０２またはその一部に関連して示されているプログラムモジュールをリモートメモリ／ストレージデバイス２７５０内に格納することができる。示したネットワーク接続は代表的なものであり、コンピュータ間に通信リンクを確立する他の手段を使用できることが理解できるであろう。
【００８８】
コンピュータ２７０２は、無線通信内に動作可能に配置された任意のワイヤレスデバイスまたはエンティティ、たとえばプリンタ、スキャナ、デスクトップおよび／またはポータブルコンピュータ、携帯情報端末、通信衛星、無線で検出可能なタグに関連付けられた任意の設備または場所（たとえば売店、ニューススタンド、化粧室）、ならびに電話と通信するように動作することができる。これは、少なくともＷｉ−ＦｉおよびＢｌｕｅｔｏｏｔｈ（商標）無線技術を含む。したがって通信は、従来のネットワークと同様に事前に定義された構造とするか、または単に少なくとも２つのデバイス間のその場限りの通信とすることができる。
【００８９】
Ｗｉ−Ｆｉ、すなわちＷｉｒｅｌｅｓｓ  Ｆｉｄｅｌｉｔｙによって、家庭のソファー、ホテルの部屋のベッド、または仕事中の会議室からインターネットへの無線接続が可能となる。Ｗｉ−Ｆｉは携帯電話のような無線技術であり、たとえばコンピュータなどのデバイスが基地局から一定範囲内のどこでも屋内および屋外のデータを送信および受信できるようにする。Ｗｉ−Ｆｉネットワークは、安全で信頼できる高速な無線接続性を提供するために、ＩＥＥＥ８０２．１１（ａ、ｂ、ｇなど）と呼ばれる無線技術を使用している。Ｗｉ−Ｆｉネットワークは、コンピュータを相互に、インターネットに、および（ＩＥＥＥ８０２．３またはイーサネット（登録商標）を使用する）有線ネットワークに接続するために使用することができる。Ｗｉ−Ｆｉネットワークは、無認可の２．４および５ＧＨｚの無線帯域内で、１１Ｍｂｐｓ（８０２．１１ｂ）または５４Ｍｂｐｓ（８０２．１１ａ）のデータ転送速度で、あるいは双方の帯域（デュアルバンド）を含む製品と共に動作し、これによって、多くのオフィスで使用されている基本的な１０ＢａｓｅＴ有線イーサネット（登録商標）ネットワークと同様の実際のパフォーマンスを提供することができる。
【００９０】
次いで図２８を参照すると、本発明による典型的なコンピューティング環境２８００の概略ブロック図が示されている。システム２８００は、１つまたは複数のクライアント２８０２を含む。（１つまたは複数の）クライアント２８０２は、ハードウェアおよび／またはソフトウェア（たとえばスレッド、プロセス、コンピューティングデバイス）とすることができる。（１つまたは複数の）クライアント２８０２は、たとえば本発明を採用することによって（１つまたは複数の）クッキーおよび／または関連するコンテキスト情報を格納することができる。またシステム２８００は、１つまたは複数のサーバ２８０４も含む。（１つまたは複数の）サーバ２８０４は、ハードウェアおよび／またはソフトウェア（たとえばスレッド、プロセス、コンピューティングデバイス）とすることもできる。サーバ２８０４は、たとえば本発明を採用することによって変換を実行するためのスレッドを格納することができる。クライアント２８０２とサーバ２８０４の間の１つの可能な通信は、複数のコンピュータプロセスの間で伝送されるように適合されたデータパケットの形態とすることができる。このデータパケットは、たとえばクッキーおよび／または関連するコンテキスト情報を含むことができる。システム２８００は、通信フレームワーク２８０６（たとえば、インターネットなどの全世界規模の通信ネットワーク）を含み、これを使用して（１つまたは複数の）クライアント２８０２と（１つまたは複数の）サーバ２８０４の間の通信を容易にすることができる。
【００９１】
通信は、（光ファイバを含む）有線および／または無線技術を介して容易に行うことができる。（１つまたは複数の）クライアント２８０２は、１つまたは複数のクライアントデータストア２８０８に動作可能に接続されており、これを使用して、（１つまたは複数の）クライアント２８０２のローカルな情報（たとえば、（１つまたは複数の）クッキーおよび／または関連するコンテキスト情報）を保存することができる。同様に（１つまたは複数の）サーバ２８０４は、１つまたは複数のサーバデータストア２８１０に動作可能に接続されており、これを使用して、サーバ２８０４のローカルな情報を保存することができる。
【００９２】
ここまで説明してきた内容には、本発明の実施例が含まれる。もちろん、本発明について説明するためにコンポーネントまたは方法に関して考え得るすべての組合せを記載することは不可能だが、本発明に関して多くのさらなる組合せおよび並べ替えが可能であることを当業者なら認識することができる。したがって本発明は、添付の特許請求の範囲の趣旨および範囲内に収まる変更、修正、および変形形態をすべて包含することを意図している。
【符号の説明】
【００９３】
１００  ＯＣＲシステム
１０２  コンボリューショナルニューラルネットワーク
１０４  ダイナミックプログラミング
１０６  言語モデル
１０８  ドキュメント
１１０  デジタル表示
２０２  前処理
２０４  レイアウト分析
２０６  文字認識
２０８  単語認識
２７０４  処理装置
２７０６  システムメモリ
２７０８  バス
２７１４  内蔵型ハードディスクドライブ
２７１４  外付け型ハードディスクドライブ
２７１６  フロッピー（登録商標）ディスクドライブ
２７１８  ディスク
２７２０  ＣＤドライブ
２７２２  ディスク
２７２４  インターフェース
２７２６  インターフェース
２７２８  インターフェース
２７３０  オペレーティングシステム
２７３２  アプリケーション
２７３４  モジュール
２７３６  データ
２７３８  キーボード
２７４０  マウス
２７４２  入力デバイスインターフェース
２７４４  モニタ
２７４６  ビデオアダプタ
２７４８  リモートコンピュータ（群）
２７５０  メモリ／ストレージ
２７５６  ネットワークアダプタ
２７５８  モデム
２８０２  クライアント（群）
２８０４  サーバ（群）
２８０６  通信フレームワーク
２８０８  クライアントデータストア（群）
２８１０  サーバデータストア（群）
【図１】
2011008802.tif 000003
【図２】
2011008802.tif 000004
【図３】
2011008802.tif 000005
【図４】
2011008802.tif 000006
【図５】
2011008802.tif 000007
【図６】
2011008802.tif 000008
【図７】
2011008802.tif 000009
【図８】
2011008802.tif 000010
【図９】
2011008802.tif 000011
【図１０】
2011008802.tif 000012
【図１１】
2011008802.tif 000013
【図１２】
2011008802.tif 000014
【図１３】
2011008802.tif 000015
【図１４】
2011008802.tif 000016
【図１５】
2011008802.tif 000017
【図１６】
2011008802.tif 000018
【図１７】
2011008802.tif 000019
【図１８】
2011008802.tif 000020
【図１９】
2011008802.tif 000021
【図２０】
2011008802.tif 000022
【図２１】
2011008802.tif 000023
【図２２】
2011008802.tif 000024
【図２３】
2011008802.tif 000025
【図２４】
2011008802.tif 000026
【図２５】
2011008802.tif 000027
【図２６】
2011008802.tif 000028
【図２７】
2011008802.tif 000029
【図２８】
2011008802.tif 000030