(57)【要約】      （修正有）【課題】人工ニューラルネットワーク（ＡＮＮ）をトレーニングおよび利用するための方法および装置を提供する。【解決手段】演算装置は、テキストを含むトレーニング文書を受信し、トレーニング文書を解析し、トレーニングデータ項目を決定する。トレーニングデータ項目はそれぞれ、トレーニング文書内のテキストに関連するトレーニングラベルと、そのテキストの位置情報とを含む。ＡＮＮは、トレーニングデータ項目と、トレーニング文書を使用してテキストを認識するようにトレーニングし、その後、トレーニング文書とは異なる第２のテキストを含むアプリケーション文書のテキストを予測する要求を受信する。第２のテキストの予測は、トレーニング済みのＡＮＮをアプリケーション文書に適用することによって決定し、その後、第２のテキストに関連する情報を出力として提供する。【選択図】図３
2020173808.tif 000002
【特許請求の範囲】
【請求項１】
人工ニューラルネットワーク（ＡＮＮ）のトレーニングおよび利用のための方法であって、
演算装置において、テキストを含むトレーニング文書を受信すること；
前記演算装置を使用して前記トレーニング文書を解析し、前記トレーニング文書内のテキストに関連するトレーニングラベルと、前記トレーニングラベルに関連する前記トレーニング文書内のテキストの位置を示す位置情報とを含む複数のトレーニングデータ項目を決定すること；
前記複数のトレーニングデータ項目と前記トレーニング文書を含むトレーニング入力とを使用して文書内のテキストを認識するようにＡＮＮをトレーニングすること；
ＡＮＮのトレーニングを行った後、前記トレーニング文書とは異なる、第２のテキストを含むアプリケーション文書内のテキストを予測する要求を受信すること；
前記トレーニング済みのＡＮＮを前記アプリケーション文書に適用することによって前記第２のテキストの予測を決定すること；および
前記第２のテキストの前記予測を決定した後、前記第２のテキストに関連する情報を出力として提供すること
を含む方法。
【請求項２】
前記トレーニング文書はページ記述言語（ＰＤＬ）を使用して指定され、前記トレーニング文書を解析して前記複数のトレーニングデータ項目を決定することは、前記トレーニング文書のＰＤＬを解析して前記複数のトレーニングデータ項目を決定することを含む、請求項１に記載の方法。
【請求項３】
前記トレーニング文書のＰＤＬを解析して前記複数のトレーニングデータ項目を決定することは、前記トレーニング文書のＰＤＬを解析して前記トレーニングラベルに関連する前記トレーニング文書内の前記テキストの位置を示す境界ボックスを含む位置情報を決定することを含む、請求項２に記載の方法。
【請求項４】
前記複数のトレーニングデータ項目と前記トレーニング入力とを使用して文書内のテキストを認識するようにＡＮＮをトレーニングすることは、
前記トレーニング文書のＰＤＬを使用して前記トレーニング文書の電子コピーを生成すること；
前記トレーニング済みのＡＮＮを前記トレーニング文書に適用することによって前記トレーニング文書の前記テキストの予測を決定すること；および
前記複数のトレーニングデータ項目に基づいて前記トレーニング文書の前記テキストの前記予測の精度を決定すること
を含む、請求項２又は３に記載の方法。
【請求項５】
前記複数のトレーニングデータ項目に基づいて前記トレーニング文書の前記テキストの前記予測の前記精度を決定することは、
前記複数のトレーニングデータ項目のうちの、前記トレーニング文書内の第１のテキストに関連する第１のトレーニングラベルと、前記トレーニング文書内の前記第１のテキストの第１の位置を示す第１の位置情報とを含む第１のトレーニングデータ項目を決定すること；
テキストの前記予測内の前記第１の位置にある第１の予測されたテキストを決定すること；および
前記第１のテキストに関連する前記第１のトレーニングラベルと前記第１の予測されたテキストとの比較に基づいて、前記トレーニング文書のテキストの前記予測の前記精度を決定すること
を含む、請求項４に記載の方法。
【請求項６】
前記第１のテキストに関連する前記第１のトレーニングラベルと前記第１の予測されたテキストとの比較に基づいて、前記トレーニング文書のテキストの前記予測の前記精度を決定することは、
前記第１のテキストが前記第１の予測されたテキストと一致するか否かを決定すること；および
前記第１のテキストが前記第１の予測されたテキストと一致していることを決定した後、テキストの前記予測の精度を高めること
を含む、請求項５に記載の方法。
【請求項７】
前記トレーニング文書の前記ＰＤＬを使用して前記トレーニング文書の前記電子コピーを生成することは、前記トレーニング文書の前記ＰＤＬおよび１つ以上のデータ拡張技術を使用して前記トレーニング文書の前記電子コピーを生成することを含む、請求項４から６のいずれか一項に記載の方法。
【請求項８】
前記１つ以上のデータ拡張技術は、前記トレーニング文書の前記電子コピーの少なくとも一部を歪ませる技術、前記トレーニング文書の前記電子コピーの少なくとも一部を回転させる技術、前記トレーニング文書の前記電子コピーの少なくとも一部にノイズを混入する技術、および前記トレーニング文書の前記電子コピーの少なくとも一部をフィルタリングする技術のうち１つ以上を含む、請求項７に記載の方法。
【請求項９】
前記トレーニング文書の前記ＰＤＬを使用して前記トレーニング文書の前記電子コピーを生成することは、
前記トレーニング文書の紙コピーを印刷すること、および
前記トレーニング文書の前記紙コピーをスキャンして前記トレーニング文書の前記電子コピーを生成すること
を含む、請求項４から８のいずれか一項に記載の方法。
【請求項１０】
前記トレーニング文書の前記ＰＤＬを解析することは、前記トレーニング文書が、複数の異なるフォントを使用するテキスト、複数の異なる色を使用するテキスト、複数の異なるサイズを使用するテキスト、複数の異なるスタイルを使用するテキスト、および複数の背景色を利用する複数のページのうち少なくとも１つを含むように、前記トレーニング文書の前記ＰＤＬを変更すること
を含む、請求項２から９のいずれか一項に記載の方法。
【請求項１１】
前記複数のトレーニングデータ項目とトレーニング入力とを使用して文書内のテキストを認識するようにＡＮＮをトレーニングすることは、前記トレーニング入力に基づいて特徴ベクトルを決定することを含む、請求項１から１０のいずれか一項に記載の方法。
【請求項１２】
演算装置であって、
１つ以上のプロセッサーと
少なくともコンピューター可読命令を記憶している非一時的データ記憶装置とを含み、前記コンピューター可読命令が１つ以上のプロセッサーによって実行されることによって、
テキストを含むトレーニング文書を受信すること；
前記トレーニング文書を解析して、前記トレーニング文書内のテキストに関連するトレーニングラベルと、前記トレーニングラベルに関連する前記トレーニング文書内のテキストの位置を示す位置情報とを含む複数のトレーニングデータ項目を決定すること；
前記複数のトレーニングデータ項目と前記トレーニング文書を含むトレーニング入力とを使用して文書内のテキストを認識するように人工ニューラルネットワーク（ＡＮＮ）をトレーニングすること；
ＡＮＮのトレーニングを行った後、前記トレーニング文書とは異なる、第２のテキストを含むアプリケーション文書内のテキストを予測する要求を受信すること；
前記トレーニング済みのＡＮＮを前記アプリケーション文書に適用することによって前記第２のテキストの予測を決定すること；および
前記第２のテキストの前記予測を決定した後、前記第２のテキストに関連する情報を出力として提供すること
を含むタスクを実行する、演算装置。
【請求項１３】
製品であって、少なくともコンピューター可読命令を記憶している非一時的データ記憶装置を含み、前記コンピューター可読命令が演算装置の１つ以上のプロセッサーによって実行されると、前記演算装置が
テキストを含むトレーニング文書を受信すること；
前記トレーニング文書を解析して、前記トレーニング文書内のテキストに関連するトレーニングラベルと、前記トレーニングラベルに関連する前記トレーニング文書内のテキストの位置を示す位置情報とを含む複数のトレーニングデータ項目を決定すること；
前記複数のトレーニングデータ項目と前記トレーニング文書を含むトレーニング入力とを使用して文書内のテキストを認識するように人工ニューラルネットワーク（ＡＮＮ）をトレーニングすること；
ＡＮＮのトレーニングを行った後、前記トレーニング文書とは異なる、第２のテキストを含むアプリケーション文書内のテキストを予測する要求を受信すること；
前記トレーニング済みのＡＮＮを前記アプリケーション文書に適用することによって前記第２のテキストの予測を決定すること；および
前記第２のテキストの前記予測を決定した後、前記第２のテキストに関連する情報を出力として提供すること
を含むタスクを実行する、製品。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ページ記述言語ジョブの解析によるニューラルネットワーク用光学式文字認識トレーニングデータの生成に関する。
【０００２】
本出願は、２０１９年４月８日に出願の米国特許出願第１６／３７８４７０号に対する優先権を主張する。この内容全体を本明細書において援用する。
【背景技術】
【０００３】
印刷装置の数および地理的フットプリントは世界的に増加しており、ネットワークへの接続も増加し続けている。ネットワークは、多くの印刷装置を含みうる。そのような印刷装置は、様々な特徴、機能、および性能を有しうる。例えば、カラーで印刷の可能な印刷装置もあれば、そうでないものもある。また別の例を挙げると、用紙の両面への印刷を可能にする両面印刷ハードウェアを備えた印刷装置もあれば、片面への印刷のみが可能な印刷装置もある。
【０００４】
また、一部の印刷装置には、光学式文字認識（ＯＣＲ）機能が備えられている。光学式文字認識は、タイプまたは印刷されたテキストを機械的に符号化されたテキストに変換するものであり、スキャンした文書または文書の写真からの変換である場合が多い。光学式文字認識は、多くのアプリケーションにおいて電子データの入力に広く使用されているツールである。従来の光学式文字認識は、パターンマッチング、画像相関法、グリフ分解、特徴検出などの技術を含む。広範な人間工学を利用することにより、テキスト内の入力グリフの分離やグリフ機能の設計ができる。
【発明の概要】
【課題を解決するための手段】
【０００５】
第１の態様において、人工ニューラルネットワーク（ＡＮＮ）をトレーニングおよび利用する方法が提供される。ある演算装置は、テキストを含むトレーニング文書を受信する。この演算装置は、トレーニング文書を解析し、複数のトレーニングデータ項目を決定する。複数のトレーニングデータ項目の各トレーニングデータ項目には、トレーニング文書内のテキストに関連するトレーニングラベルと、トレーニングラベルに関連するトレーニング文書内のテキストの位置を示す位置情報とが含まれる。ＡＮＮは、複数のトレーニングデータ項目とトレーニング入力とを使用して文書内のテキストを認識するようにトレーニングされ、トレーニング入力にはトレーニング文書が含まれる。ＡＮＮのトレーニングを行った後、トレーニング文書とは異なるアプリケーション文書のテキストを予測する要求を受信する。このアプリケーション文書は第２のテキストを含む。第２のテキストの予測は、トレーニング済みのＡＮＮをアプリケーション文書に適用することによって決定される。第２のテキストの予測が決定された後、第２のテキストに関連する情報が出力として提供される。
【０００６】
第２の態様において、演算装置が提供される。演算装置は、１つ以上のプロセッサーと、非一時的なデータ記憶装置とを含む。非一時的データ記憶装置は、少なくともコンピューター可読命令を記憶しており、コンピューター可読命令は、１つ以上のプロセッサーによって実行されると、演算装置にタスクを実行させる。タスクは、テキストを含むトレーニング文書を受信すること、トレーニング文書を解析して複数のトレーニングデータ項目（複数のトレーニングデータ項目の各トレーニングデータ項目は、トレーニング文書内のテキストに関連するトレーニングラベルと、トレーニングラベルに関連するトレーニング文書内のテキストの位置を示す位置情報を含む）を決定すること、複数のトレーニングデータ項目とトレーニング入力（トレーニング文書を含む）とを使用して、文書内のテキストを認識するようにＡＮＮをトレーニングすること、ＡＮＮをトレーニングした後、トレーニング文書とは異なるアプリケーション文書（第２のテキストを含む）のテキストを予測する要求を受信すること、トレーニング済みのＡＮＮをアプリケーション文書に適用することによって第２のテキストの予測を決定すること、および、第２のテキストの予測を決定した後、第２のテキストに関連する情報を出力として提供することを含む。
【０００７】
第３の態様において、製品が提供される。製品は、少なくともコンピューター可読命令を記憶している非一時的データ記憶装置を含み、コンピューター可読命令は、１つ以上の処理装置によって実行されると、演算装置にタスクを実行させる。タスクは、テキストを含むトレーニング文書を受信すること、トレーニング文書を解析して複数のトレーニングデータ項目（複数のトレーニングデータ項目の各トレーニングデータ項目は、トレーニング文書内のテキストに関連するトレーニングラベルと、トレーニングラベルに関連するトレーニング文書内のテキストの位置を示す位置情報を含む）を決定すること、複数のトレーニングデータ項目とトレーニング入力（トレーニング文書を含む）とを使用して、文書内のテキストを認識するようにＡＮＮをトレーニングすること、ＡＮＮをトレーニングした後、トレーニング文書とは異なるアプリケーション文書（第２のテキストを含む）のテキストを予測する要求を受信すること、トレーニング済みのＡＮＮをアプリケーション文書に適用することによって第２のテキストの予測を決定すること、および、第２のテキストの予測を決定した後、第２のテキストに関連する情報を出力として提供することを含む。
【０００８】
その他の態様、実施形態、および実装は、添付の図面を適宜参照しながら以下の詳細な説明を読むことにより、当業者には明らかになるであろう。
【図面の簡単な説明】
【０００９】
【図１】例示的実施形態による印刷ネットワークの図である。
【図２】例示的実施形態による演算装置を示すブロック図である。
【図３】例示的実施形態による教師付き学習パイプラインの図である。
【図４】例示的な実施形態による、図３の教師付き学習パイプラインにおけるトレーニングデータ生成部を示す。
【図５】例示的実施形態による、光学式文字認識のためのパイプラインの図である。
【図６Ａ】例示的実施形態による、図５のパイプラインの検出畳み込みニューラルネットワーク（ＣＮＮ）の図である。
【図６Ｂ】例示的実施形態による、図５のパイプラインの検出ＣＮＮの別の図である。
【図６Ｃ】例示的実施形態による、図５のパイプラインの検出ＣＮＮの別の図である。
【図７】例示的実施形態によるシナリオを示す。図３のパイプラインにおいて、例えばＰＤＬ入力の予測モデル出力が生成される。
【図８】例示的実施形態による方法のフローチャートを示す。
【発明を実施するための形態】
【００１０】
以下の詳細な説明では、本明細書の一部を成す添付の図面を参照する。図中、類似の記号は通常、類似の構成要素を示すが、文脈から異なる解釈がなされる場合はこの限りではない。詳細な説明、図、および特許請求の範囲に記載の例示的な実施形態は、限定を意図するものではない。本明細書に提示される主題の範囲から逸脱することなく、他の実施形態を利用することができ、他の変更を行うことができる。本明細書に一般的に記載され、図面に示される本開示の態様は、多種多様な異なる構成で配置、置換、組み合わせ、分離、設計することができ、それらがすべて明示的に本明細書に包含されることは、容易に理解されよう。
【００１１】
（序論）
本明細書では、光学文字認識（ＯＣＲ）において人工ニューラルネットワーク（ＡＮＮ）および機械学習（ＭＬ）を利用するための技術および装置について説明する。ＡＮＮは、現在のＯＣＲ技術に対して優位性のある精度でテキスト画像内のテキストを予測するために、多数のテキスト画像（例えば、数百、数千、あるいはそれ以上の画像）を使用してトレーニングすることができる。テキスト画像は、１つ以上のテキスト項目、例えば文字、数字、単語、文、段落、符号、表語文字などを描いた画像である。このようなテキスト画像は、様々なソースおよび／またはアプリケーションから得ることができる。得られたテキスト画像は、光学式文字認識を行う方法についてＡＮＮをトレーニングするために、提供することができる。
【００１２】
人工ニューラルネットワークは、演算を大まかにモデル化できる「ノード」または結合された演算単位の集合体を含みうる。ＡＮＮの結合されたノードは、数値などの信号を相互に送信することができる。各ノードは、１つ以上の入力信号を受信し、入力信号に重み付けを行い、重み付けされた入力信号を組み合わせて１つ以上の出力信号を生成することができる。入力信号の重みは、出力信号に対する入力信号の効果を増減させる数値でありうる。
【００１３】
ＡＮＮは、１つ以上の「層」またはノード群を有することができる。１つ以上の「層」またはノード群としては、入力ノードの１つ以上の層、１つ以上の隠れ層に配置されたノード、および出力ノードの１つ以上の層が含まれるが、これらに限定されない。入力層と出力層との間にある層は「隠れ層」と呼ばれるが、これは、これらの中間層がＡＮＮの外部の実体からは見えない、すなわち隠されていることによる。ＡＮＮ層のその他の例としては、入力を畳み込む（例えば、ダウンサンプリングする）ＡＮＮの畳み込み層の外部にある実体から入力を受け取る入力層およびそのような外部の実体へと出力を提供する出力層、入力に対して活性化関数を適用する活性化（例えばＲＥＬＵ）層、入力を結合するプーリング層、ならびに層内の各ノードが入力として先の層からのすべての出力を受け取る全結合層が含まれるが、これらに限定されない。
【００１４】
ＡＮＮは、１つ以上のタスクを学習するようにトレーニングできる。トレーニング中、ＡＮＮは、タスクのパフォーマンスに関するＡＮＮによるフィードバックを提供する損失関数に基づいて、ノード内の重みを調整できる。ＡＮＮがトレーニング済みとみなされると、トレーニング済みのＡＮＮは「モデル」と呼ばれる。ＡＮＮは、トレーニング前およびトレーニング中に、対応する入力テキスト画像に描かれたテキストの予測を生成できる。例えば、入力画像に「火炎放射器」という単語の描写が含まれる場合、ＡＮＮは、入力画像に描かれたテキストが「火炎放射器」であることを予測する出力を生成できる。
【００１５】
ＡＮＮのトレーニングは、教師付き学習を含みうる。教師付き学習では、１つ以上のトレーニングデータ項目から構成されるラベル付きトレーニングデータから１つ以上のタスクを実行するための関数をＡＮＮに推測させる。いくつかの例において、トレーニングデータ項目には、少なくとも入力オブジェクトと、入力オブジェクトに対してＡＮＮが関数を実行した結果の「ラベル付け」または識別を行うことのできる望ましい出力値とが含まれる。トレーニングデータ項目の望ましい出力値は、「データラベル」と呼ばれる。
【００１６】
ＡＮＮがＯＣＲを学習するための教師付き学習は、１つ以上のテキスト画像に対応するトレーニングデータ項目でラベル付けすることを含みうる。ＡＮＮは入力としてテキスト画像を受け取り、テキスト画像内のテキストを予測することができる。テキスト画像用のトレーニングデータ項目は、テキスト画像でＯＣＲを行うためのＡＮＮのトレーニングに有用なテキスト画像に関する情報を含みうる。例えば、「ＡＢＣ１」を描写するテキスト画像「画像１」は、テキスト「ＡＢＣ１」を示すデータラベル、テキストの１つ以上の色、テキストの１つ以上のフォントおよび／もしくはフォントサイズ、テキスト画像内のテキストの１つ以上の位置、ならびに／またはテキスト画像「画像１」でＯＣＲを行うためのＡＮＮのトレーニングに有用なその他の情報を有しうる。教師付き学習において、予測されたテキストをトレーニングデータ項目のデータラベル内のテキストと比較して、ＡＮＮがテキスト画像内のテキストを正しく認識したか否かを決定できる。多数のテキスト画像に描写された大量のテキストのトレーニングデータ項目を手動で生成することは、時間および／または費用のかかるプロセスとなりうる。
【００１７】
いくつかの例では、印刷ネットワークにおける大多数またはすべての印刷ジョブが、ページ記述言語（ＰＤＬ）を利用している。ＰＤＬの例としては、ＰｏｓｔＳｃｒｉｐｔ（登録商標）、Ｐｒｉｎｔｅｒ  Ｃｏｎｔｒｏｌ  Ｌａｎｇｕａｇｅ（ＰＣＬ（登録商標））、Ｐａｇｅ  Ｄｅｓｃｒｉｐｔｉｏｎ  Ｆｏｒｍａｔ（ＰＤＦ）、Ｋｙｏｃｅｒａ  ＰＤＦ（ＫＰＤＦ）、およびＥｘｔｅｎｄｅｄ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ（ＸＭＬ）Ｐａｐｅｒ  Ｓｐｅｃｉｆｉｃａｔｉｏｎ（ＸＰＳ）が挙げられるが、これらに限定されない。ＰＤＬでは、テキスト、画像、シェーディング、ベクトル描画などのプリミティブオブジェクトを正確に定義することができる。例えば、各テキスト文字について、ＰＤＬは文字コード、文字の位置、フォントサイズ、フォントスタイル（例えばプレーンテキスト／標準、太字、斜体、下線、取り消し線）、フォント色、および／または文字に関するその他の情報を含みうる。
【００１８】
入力ＰＤＬファイルを処理して、ＡＮＮをトレーニングするための１つ以上のテキスト画像を生成することができる。また、入力ＰＤＬファイルを演算装置によって解析し、対応する生成テキスト画像に対応する１つ以上のトレーニングデータ項目を生成することもできる。より具体的には、トレーニング文書用の入力ＰＤＬファイルの解析および／または別の処理を行うことによって、テキスト文字、位置情報、文字コード、フォントサイズ、フォントスタイル、フォント色、および／またはテキストに関するその他の情報などのテキスト情報を抽出することができる。このテキスト情報を使用して、生成されたテキスト画像用のトレーニングデータ項目を生成することができる。トレーニングデータ項目は、１つ以上のトレーニングデータ項目ファイルに保存できる。
【００１９】
トレーニングデータ項目の生成は、１つ以上のテキスト関連レベル（文字レベル、単語レベル、行レベル、段落レベル、ページレベルなど）で実行することができ、このテキスト関連レベルは、ＯＣＲをモデル化するためのＡＮＮのトレーニング方法によって異なる。例えば、ＯＣＲによっては文字を個別に認識する必要があるため、文字ごとに境界ボックス情報などのテキスト位置情報を抽出することの可能なＰＤＬ解析ツールもある。別の例として、ＯＣＲには単語レベルで文字を認識するものもあり、そのＰＤＬ解析ツールには、単語ごとにテキスト位置情報を抽出するための単語検出および辞書後処理を含めることができる。また別の例として、機械学習（ＭＬ）ベースのＯＣＲモデルには、トレーニング可能な機能としてテキスト位置検出などの前処理が組み込まれているものもある。この例では、テキスト位置情報はＡＮＮによって行われる予測の一部であってもよく、抽出されたテキスト位置情報は、ＯＣＲの学習の一部としてテキスト位置検出を学習させる目的でＡＮＮをトレーニングするために使用するトレーニングデータ項目に含まれてもよい。その他の例もありうる。
【００２０】
例えば、トレーニング文書用のトレーニングデータ項目は、トレーニング文書内のテキストに関連するトレーニングラベルと、トレーニング文書内のテキストの位置を示す位置情報とを含みうる。トレーニングデータ項目ファイルの生成に使用される入力ＰＤＬファイルをレンダリング、印刷、スキャンすることによって、トレーニングデータ項目ファイルに対応するレンダリングファイルを生成することができる。
【００２１】
レンダリングされたファイルおよび対応するトレーニングデータ項目ファイルの内容を使用し、１つ以上のＡＮＮをトレーニングしてＯＣＲを学習させることができる。トレーニング中に、対応するトレーニングデータ項目ファイルの位置情報を使用して、レンダリングされたファイルからテキスト画像を含む長方形のボックスを切り出すことができる。切り出されたテキスト画像ボックスは、対応するトレーニングデータ項目ファイル内の対応するテキストラベルと対にすることができる。また、切り出されたテキスト画像ボックスは、ＯＣＲを学習するためのトレーニングデータとしてＡＮＮに提供することもできる。ＡＮＮは、切り出されたテキスト画像ボックス内のテキストを予測し、対応する予測出力を提供することができる。教師付き学習において、予測されたテキストを対応するテキストラベルと比較し、この比較に基づいてＡＮＮを調整することができる。例えば、予測テキストが対応するテキストラベルと一致する場合には報酬入力が提供され、予測テキストが対応するテキストラベルと一致しない場合には罰則入力が提供される。
【００２２】
入力ＰＤＬおよびレンダリングされたページを作成および／または変更して、ＯＣＲを学習する目的でＡＮＮをトレーニングするためのＯＣＲトレーニングデータセットを充実させることができる。例えば、スキュー、回転、ノイズ、および／またはフィルタリングなどのデータ拡張技術をレンダリングファイルに適用して、部分的にまたは完全に拡張した（例えば歪曲、回転などを行った）新しいレンダリングファイルを生成できる。さらに、ＰＤＬはプログラミング言語であるため、位置、サイズ、スタイル、色、背景の異なるフォントのページを使用して入力ＰＤＬを作成および／または変更することにより、ＯＣＲモデルの堅牢性を向上させることができる。
【００２３】
例えば、ＰＤＬファイルを処理して解析し、テキスト画像とそれに対応するトレーニングデータ項目を自動的に生成し、バッチジョブとして実行することにより、１つ以上のアプリケーションの印刷ジョブに関連する数百、数千、またはそれ以上のレンダリングされたページとそれに対応するトレーニングデータ項目ファイルを生成できる。様々なアプリケーション（Ｗｏｒｄ、Ｅｘｃｅｌ、Ｏｕｔｌｏｏｋ、Ｖｉｓｉｏなど）からのＰＤＬ入力および／または印刷ジョブのレンダリングページは、ＡＮＮをトレーニングするための様々なテキスト特徴を提供することでＡＮＮにおけるＯＣＲモデルの過学習を効果的に削減する上で有用である。テキスト特徴としては、テキスト色、背景色、テキストフォント、テキストサイズ、テキストスタイル、文字関連特徴、テキスト位置、フォント効果、フォントスタイル、テキスト方向、句読点、およびページサイズに関する特徴が挙げられるが、これらに限定されない。自動処理および／またはバッチ処理を使用することにより、レンダリングされた多数のページとそれに対応するトレーニングデータ項目ファイルを、人間が面倒なラベリングを行うことなく、ＯＣＲトレーニングデータセットに容易に追加できる。
【００２４】
また、テキスト画像とトレーニングデータ項目とがいずれも入力ＰＤＬファイルから生成されるため、入力ＰＤＬファイルを特別に作成および／または変更することによって、テキスト画像のテキスト特徴を含めたり、変更したり、除外したりできる。次いで、これらの特別に作成および／または変更されたＰＤＬファイルを使用して、ＡＮＮをトレーニングするためのテキスト画像とそれに対応するトレーニングデータ項目の特別なトレーニングデータセットを生成することができる。例えば、比較的大量の（または比較的少量の）非標準フォント色および／または背景色のトレーニングデータセット、比較的大量の（または比較的少量の）特定のフォント効果およびスタイルを有するテキストのトレーニングデータセットなどである。これらの特定のトレーニングデータセットを生成し、使用することで、これらの特定のトレーニングデータセットでトレーニングされたＡＮＮのパフォーマンスを改善および／または向上させることができる。いくつかの例では、本明細書に記載の技術を使用して、数百万（またはそれ以上）のテキスト画像およびそれに対応するトレーニングデータ項目を生成することができる。
【００２５】
本明細書に記載の技術を使用して、ＯＣＲを学習する目的でＡＮＮをトレーニングするためのトレーニングデータ項目を生成するという課題を解決することができる。本明細書に記載の技術は、ＰＤＬファイルを処理および解析して、ＡＮＮの教師付きトレーニング用のテキスト画像およびそれに対応するトレーニングデータ項目を自動的に生成することによって、光学式文字認識のためのＡＮＮのトレーニングを、実用性の高いものとする。さらに、複数の異なるアプリケーションから供給されたＰＤＬファイルを含むＰＤＬファイルの処理、変更、および解析によって生成された多様なテキスト画像でトレーニングされた柔軟なＡＮＮを使用することにより、ＡＮＮベースの光学文字認識技術の信頼性、柔軟性、および精度を高めることができる。
【００２６】
（印刷システムの例）
図１は、例示的な実施形態による印刷ネットワーク１００を示す図である。印刷ネットワーク１００は、印刷装置（ＰＤ）１１０、１１２、１１４、コンピューター１２０、１２２、および１つ以上のサーバー１３０を含み、これらはすべてネットワーク１４０を使用して相互に接続されている。いくつかの例において、印刷ネットワーク１００の有する演算装置、サーバー、および／または印刷デバイスは、図１に示されるものと比較して多い、少ない、かつ／または種類が異なることがある。
【００２７】
印刷装置１１０、１１２、１１４は、元は紙の上でまたは電子的に利用可能であった文書および／またはファイルをスキャン、印刷、コピー、電子メール、報告、通信および／またはその他の処理を行うように構成された装置を含みうる。印刷装置１１０、１１２、１１４のうち１つ以上によって処理された後、文書および／またはファイルは、要求に応じて、紙の上でまたは電子的に利用可能となる。すなわち、印刷装置１１０、１１２、１１４は、紙文書ＰＤまたは電子文書ＥＤの処理を、少なくとも、ＰＤの内容を表す電子文書ＥＤ１の作成（例えば、ＰＤのスキャンによるＥＤ１の作成）；ＰＤの１つ以上の紙コピーの作成；ＥＤおよび／もしくはＥＤ１の１つ以上のコピーの、１種類以上の紙への印刷；ＥＤおよび／もしくはＥＤ１の、１つ以上の電子コピーの作成；ＥＤおよび／もしくはＥＤ１の形式の変更（例えば、ＯＣＲスキャンの実行、ＥＤおよび／またはＥＤ１の保存に使用するファイル形式の変換）；印刷装置１１０、１１２、１１４以外の装置によるＥＤおよび／もしくはＥＤ１の使用やＥＤおよび／もしくはＥＤ１へのアクセスを可能とするリモートアクセス可能な記憶装置（例えば、文書ボックスなど）の維持；ならびに／またはＥＤおよび／もしくはＥＤ１の内容についての別のデバイスとの通信によって行うことができる。
【００２８】
文書ボックスは、印刷装置、印刷サーバー、または別の装置上で実体（例えば、ユーザー、管理者、会社、別の種類の実体など）に割り当てられた記憶装置であり、実体は文書、ファイル、および／またはその他のデータを維持できる。いくつかの実施形態において、文書ボックスは、アドレス帳および／または装置アカウント記憶装置などの個人データ用記憶装置を伴うかつ／または含むことができる。文書ボックス、アドレス帳、および装置アカウント記憶装置には、１つ以上の文書、ファイル、個人データ、および/または連絡先、使用状況、および使用制限などの他のデータを保存することができる。
【００２９】
いくつかの実施形態において、印刷装置１１０、１１２、１１４は、他のタスクおよび／または他の処理も実行することができる。印刷装置１１０、１１２、１１４は、色、速度、演算能力、機能性、ネットワーク接続性、および／または他の機能が異なる様々な製造者の製品を含みうるる。
【００３０】
例示の実施形態では、印刷装置１１０、１１２、１１４のいくつかまたはすべてを、１つ以上の、場合によっては異なるネットワークプロトコルを介してネットワーク１４０に接続することができる。データは、印刷装置１１０、１１２、１１４、コンピューター１２０、１２２、およびサーバー１３０の相互間で、コンピューター、演算装置、印刷装置、サーバー、およびネットワーク１４０間の有線および／または無線リンクを介して伝送することができる。印刷ネットワーク１００内の装置間の各データ送信の形式は、テキスト形式、画像形式、拡張マークアップ言語（ＸＭＬ）、簡易ネットワーク管理プロトコル（ＳＮＭＰ）形式、データベーステーブル、フラットファイル形式、または別の形式を含む様々な異なる形式の１つ以上を含みうる。
【００３１】
コンピューター、演算装置、サーバー、および印刷装置間の通信としては、コンピューター１２０、１２２、および／またはサーバー１３０が、印刷のために印刷ジョブおよび／または印刷ジョブ部分のデータを印刷装置１１０、１１２、１１４に送信し、印刷装置１１０、１１２、１１４が、警告、状態、エラー、装置情報、着色剤使用情報、メインテナンスイベント情報、および／または他のメッセージをコンピューター１２０、１２２、および／またはサーバー１３０に送信して、その他の装置に対して着色剤の使用、メインテナンス、エラー、および／または当該装置におけるその他の条件、例えば待機中、印刷中、休止中、紙詰まり、用紙残量低下または用紙切れ、トナー残量低下またはトナー切れなどを通知する通信が挙げられる。コンピューター１２０、１２２、および／またはサーバー１３０間の他の通信も可能であり、放射状グラデーションカラーリングを使用して画像をレンダリングする要求およびそれに関連する応答などが可能であるが、これらに限定されない。
【００３２】
コンピューター１２０、１２２は、印刷ネットワーク１００を構成するためのデータ（および関連するであろうソフトウェア）を作成、取得、更新、表示、および／または削除できる。印刷ネットワーク１００を構成するためのデータの例としては、印刷ネットワーク１００内の装置を構成するためのデータ、例えば、印刷装置１１０、１１２、１１４のデータ、ネットワークプロトコルを構成するためのデータ（例えば、ファイル転送プロトコル（ＦＴＰ）、ハイパーテキスト転送プロトコル（ＨＴＴＰ）、Ｊａｖａ  Ｍｅｓｓａｇｅ  Ｓｅｒｖｉｃｅ  （ＪＭＳ）、京セラページ記述言語（ＫＰＤＬ（登録商標））、Ｐｒｉｖａｔｅ  Ｃｏｍｍｕｎｉｃａｔｉｏｎｓ  Ｔｅｃｈｎｏｌｏｇｙ（ＰＣＴ）、Ａｄｏｂｅ（登録商標）ポータブルドキュメントフォーマット（ＰＤＦ）、Ｓｉｍｐｌｅ  Ｏｂｊｅｃｔ  Ａｃｃｅｓｓ  Ｐｒｏｔｏｃｏｌ（ＳＯＡＰ）、Ｓｈｏｒｔ  Ｍｅｓｓａｇｅ  Ｓｅｒｖｉｃｅ（ＳＭＳ）、Ｓｉｍｐｌｅ  Ｍｅｓｓａｇｅ  Ｔｒａｎｓｆｅｒ  Ｐｒｏｔｏｃｏｌ（ＳＭＴＰ）、ＳＮＭＰ、Ｔｒａｎｓｆｅｒ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ／Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ（ＴＣＰ／ＩＰ）、Ｕｓｅｒ  Ｄａｔａｇｒａｍ  Ｐｒｏｔｏｃｏｌ（ＵＤＰ）、  Ｌｉｇｈｔｗｅｉｇｈｔ  Ｄｉｒｅｃｔｏｒｙ  Ａｃｃｅｓｓ  Ｐｒｏｔｏｃｏｌ（ＬＤＡＰ）、  Ｍｅｓｓａｇｅ  Ｑｕｅｕｅ（ＭＱ）、および／または他のプロトコル）、クライアントおよび／またはサーバーのアクセス管理関連のデータ（例えば、ネットワーク１４０および／またはクラウドベースサービスの機能の一部または全部にアクセスするためのパスワード、署名、認証情報、証明書、サブスクリプション、ライセンス、および／またはトークン、ソフトウェアおよび／またはソリューション）ならびに印刷ネットワーク１００の装置／サーバーのカスタマイズ、構成、および管理アプリケーションのデータが挙げられるが、これらに限定されない。特に、コンピューター１２０、１２２は、印刷装置の着色剤使用に関する表示および／または着色剤使用に関する予測を含む、印刷装置の維持に関する表示を提供することができ、印刷装置は、印刷装置１１０、１１２、１１４を含みうるが、これらに限定されない。
【００３３】
１つ以上のサーバー１３０は、印刷ネットワーク１００に関連する、特に印刷装置１１０、１１２、１１４などの印刷装置に関連するデータに関するパターン、傾向、および／または特徴を学習するための機能を保存、更新、削除、検索、および提供することができる。学習したパターン、傾向、および／または特徴に基づいて、サーバー１３０は、印刷装置に関する予測などの出力を生成することができる。印刷装置に関する予測は、印刷装置による着色剤使用の予測を含むが、これに限定されない。サーバー１３０に保存されたデータは、装置情報、着色剤使用情報、メンテナンスイベント情報、および／または印刷ネットワーク１００に関連するデバイスに関連するその他の情報を含みうる。保存されたデータは、特定の装置、着色剤の使用、メンテナンスイベント、および／またはその他の情報に関する情報を要求する受信クエリに応じて、サーバー１３０から取得することができる。
【００３４】
いくつかの実施形態において、サーバー１３０は、１つ以上の文書ソリューションおよび管理印刷サービスのための機能の一部または全部に関連するサービスなど、さらなる（または代替の）サービスも提供することができる。例えば、ソリューションおよびサービスのアカウント処理およびメンテナンスの機能、文書ワークフローの機能などであり、例えば、処理フォーム、ハードコピー署名、クライアント認証／アクセス機能、ユーザーインターフェース機能、印刷ネットワーク１００内の装置を含むローカルネットワークおよび／またはリモートネットワークベースの記憶装置管理などである。例えば、サーバー１３０はさらに、印刷サーバーに関連する機能を提供できる。印刷サーバーは、ジョブの処理（例えば、ジョブ関連データのスプール、ジョブのルート化、ジョブのユーザーおよび／またはサーバー関連アカウント処理の提供、ジョブに関連する認証および承認規則の検証／施行）を行い、印刷ネットワーク１００の印刷装置に関連するデータを保存することができる。印刷サーバーによって処理されるジョブとしては、印刷ジョブ／印刷要求；文書、ファイル、および／もしくは関連データ（例えば、電子メール内のデータ、ＳＭＳメッセージなど）の通信；文書およびファイルに関連する要求（例えば、１つ以上の文書およびファイルの作成、書式設定、スキャン、書式再設定、変換、アクセス、更新、および／または削除）；文書ワークフローのジョブ；ならびに／または印刷装置に関するエラー／不具合報告に関する情報の処理（例えば、印刷（およびおそらくは他の）装置１１０、１１２、１１４に関するエラー／不具合報告に関するトラブルチケットの作成、再調査、更新、割り当て、再割り当て、通信、および／または削除）が挙げられるが、これらに限定されない。上記データは、ジョブの処理に使用されるデータ（例えば、印刷ジョブ用スプールデータ、ファイル関連要求用ファイルなど）、アクセス管理関連データ、サーバー１３０によって提供される、印刷装置に関する主要な識別特性および／または機種依存情報、およびおそらくは他のデータを含みうる。
【００３５】
図２は、例示的な実施形態による演算装置２００を示す概略ブロック図である。演算装置２００は、１つ以上の入力装置２０２、１つ以上の出力装置２０４、１つ以上のプロセッサー２０６、およびメモリ２０８を含みうる。いくつかの実施形態において、演算装置２００は、本明細書に記載の１つ以上の機能および／または、例えば少なくとも人工ニューラルネットワーク、畳み込みニューラルネットワーク、回帰型ニューラルネットワーク、パイプライン３００、５００、方法４００、８００、およびシナリオ７００の文脈で説明される機能の一部または全部に関連する機能を実行するように構成されうる。
【００３６】
入力装置２０２は、ユーザー入力装置、ネットワーク入力装置、センサー、および／または他のタイプの入力装置を含みうる。例えば、入力装置２０２は、タッチスクリーン、キーボード、キーパッド、マウス、トラックボール、ジョイスティック、カメラ、音声認識モジュール、および／または他の同様の装置などのユーザー入力デバイスを含みうる。ネットワーク入力装置は、有線ネットワークレシーバーおよび／またはトランシーバーを含むことができ、当該有線ネットワークレシーバーおよび／またはトランシーバーとしては、イーサネットトランシーバー、ユニバーサルシリアルバス（ＵＳＢ）トランシーバー、またはツイストペアワイヤ、同軸ケーブル、光ファイバーリンク、またはネットワーク１４０の有線部分などの有線ネットワークのような同様の物理的接続を介して通信するように構成可能な同様のトランシーバーなど、および／または無線ネットワークレシーバーおよび／またはトランシーバー、例えばＢｌｕｅｔｏｏｔｈ（登録商標）トランシーバー、Ｚｉｇｂｅｅ（登録商標）トランシーバー、Ｗｉ−Ｆｉ（登録商標）トランシーバー、ＷｉＭＡＸ（登録商標）トランシーバー、無線広域ネットワーク（ＷＷＡＮ）トランシーバー、および／またはネットワーク１４０の無線部分などの無線ネットワークを介して通信するように構成可能な同様の無線トランシーバーなどが挙げられる。センサーは、演算装置２００の環境内の条件を測定し、当該環境に関するデータを提供するよう構成された装置を含みうる。そのようなデータとしては、位置データ、速度（速度、方向）データ、加速度データ、および演算装置２００の環境に関するその他のデータが含まれるが、これらに限定されない。センサーの例としては、全地球測位システム（ＧＰＳ）センサー、位置センサー、ジャイロスコープ、加速度計、磁力計、カメラ、光センサー、赤外線センサー、およびマイクが挙げられるが、これらに限定されない。他の入力装置２０２も可能である。
【００３７】
出力装置２０４は、ユーザー表示装置、可聴出力デバイス、ネットワーク出力装置、および／または他のタイプの出力装置を含みうる。ユーザー表示デバイスには、１つ以上の印刷コンポーネント、液晶ディスプレイ（ＬＣＤ）、発光ダイオード（ＬＥＤ）、レーザ光、デジタル光処理（ＤＬＰ）技術を使用する表示、陰極線管（ＣＲＴ）、電球、および／または他の同様の装置を含みうる。可聴出力装置は、スピーカ、スピーカジャック、音声出力ポート、音声出力装置、ヘッドフォン、イヤホン、および／または他の同様の装置を含みうる。ネットワーク出力装置は、有線ネットワークレシーバーおよび／またはトランシーバーを含むことができ、当該有線ネットワークレシーバーおよび／またはトランシーバーとしては、イーサネットトランシーバー、ユニバーサルシリアルバス（ＵＳＢ）トランシーバー、またはツイストペアワイヤ、同軸ケーブル、光ファイバーリンク、またはネットワーク１４０の有線部分などの有線ネットワークのような同様の物理的接続を介して通信するように構成可能な同様のトランシーバーなど、および／または無線ネットワークレシーバーおよび／またはトランシーバー、例えばＢｌｕｅｔｏｏｔｈ（登録商標）トランシーバー、Ｚｉｇｂｅｅ（登録商標）トランシーバー、Ｗｉ−Ｆｉ（登録商標）トランシーバー、ＷｉＭＡＸ（登録商標）トランシーバー、無線広域ネットワーク（ＷＷＡＮ）トランシーバー、および／またはネットワーク１４０の無線部分などの無線ネットワークを介して通信するように構成可能な同様の無線トランシーバーなどが挙げられる。他のタイプの出力装置としては、振動装置、触覚フィードバック装置、および例えば赤外線または紫外線を出射する装置などの不可視光発光デバイスが挙げられるが、これらに限定されない。他の出力装置２０４も可能である。
【００３８】
プロセッサー２０６は、１つ以上の汎用プロセッサー、中央処理装置（ＣＰＵ）、ＣＰＵコア、および／または１つ以上の専用プロセッサー（例えば、グラフィックス処理装置（ＧＰＵ）、デジタル信号プロセッサー（ＤＳＰ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、特定用途向け集積回路（ＡＳＩＣ）、追加のグラフィックス関連回路／プロセッサーなど）を含みうる。プロセッサー２０６は、メモリ２０８内にあるコンピューター可読命令２１０および／または本明細書で説明される他の命令を実行するように構成できる。
【００３９】
メモリ２０８は、プロセッサー２０６の少なくとも１つによって読み取りおよび／またはアクセスすることのできるデータおよび／または命令を記憶するように構成された１つ以上のコンピューター可読記憶媒体を含みうる。１つ以上のコンピューター可読記憶媒体は、プロセッサー２０６の少なくとも１つと、全体的または部分的に一体化することのできる、光学、磁気、有機または他のメモリまたはディスク記憶コンポーネントなどの１つ以上の揮発性および／または不揮発性記憶コンポーネントを含みうる。コンピューター可読記憶媒体は、レジスタメモリ、プロセッサーキャッシュ、および／またはランダムアクセスメモリ（ＲＡＭ）などデータを短期間記憶する１つ以上のコンポーネントを含みうる。コンピューター可読記憶媒体は、プログラムコードおよび／またはデータを長期にわたって記憶する非一時的コンピューター可読媒体、例えば、読み出し専用メモリ（ＲＯＭ）、光ディスクまたは磁気ディスク、コンパクトディスク読み出し専用メモリ（ＣＤ−ＲＯＭ）などの二次または持続的長期記憶媒体を含みうる。いくつかの実施形態において、メモリ２０８は単一の物理デバイス（例えば、１つの光学、磁気、有機または他のメモリまたはディスク記憶ユニット）を使用して実装されうるが、他の実施形態において、メモリ２０８は２つ以上の物理デバイスを使用して実装されうる。
【００４０】
特に、メモリ２０８は、コンピューター可読命令２１０を記憶することができ、当該可読命令は、プロセッサー２０６によって実行されると、少なくとも本明細書に記載の装置、ネットワーク、方法、図、画像、方程式、および／またはシナリオの機能の一部または全部など（これらに限定されない）の機能を演算装置に実行させる。いくつかの実施形態において、コンピューター可読命令２１０は、少なくともニューラルネットワークソフトウェア２１２のための命令を含みうる。ニューラルネットワークソフトウェア２１２は、ニューラルネットワーク関連および／または機械学習アルゴリズム関連の機能、例えば少なくとも人工ニューラルネットワーク、畳み込みニューラルネットワーク、回帰型ニューラルネットワーク、パイプライン３００、５００（機械学習アルゴリズム３４０および／または予測モデル３６０を含むが、これらに限定されない）、方法４００、８００、およびシナリオ７００の文脈で説明される機能の一部または全部を提供するためのソフトウェアおよび／またはファームウェアを含みうる。
【００４１】
（光学文字認識においてニューラルネットワークを使用するための技術）
図３は、例示的な実施形態による教師付き学習パイプライン３００の図である。教師付き学習パイプライン３００は、トレーニングデータ生成部３１０、トレーニング入力３２０、１つ以上の特徴ベクトル３２２、１つ以上のトレーニングデータ項目３３０、機械学習アルゴリズム３４０、実際の入力３５０、１つ以上の実際の特徴ベクトル３５２、予測モデル３６０、および１つ以上の予測モデル出力３７０を含む。教師付き学習パイプライン３００は、当該教師付き学習パイプライン３００の一部または全部のソフトウェアを１つ以上の処理装置上で実行すること、および／または他の回路（例えば、当該教師付き学習パイプライン３００の一部または全部を実行するための特別なハードウェア）を使用することにより実装できる。
【００４２】
動作中、教師付き学習パイプライン３００は、トレーニング段階と予測段階の２つの段階を含みうる。トレーニング段階は、１つ以上のタスクを学習する機械学習アルゴリズム３４０を含みうる。予測段階は、予測モデル３６０を含みうる。この予測モデル３６０は、機械学習アルゴリズム３４０のトレーニング済みバージョンであってもよく、１つ以上のタスクを遂行するための予測を行う。いくつかの例において、機械学習アルゴリズム３４０および／または予測モデル３６０は、人工ニューラルネットワーク（ＡＮＮ）、ディープニューラルネットワーク、畳み込みニューラルネットワーク（ＣＮＮ）、回帰型ニューラルネットワーク、サポートベクターマシン（ＳＶＭ）、ベイジアンネットワーク、遺伝的アルゴリズム、線形分類器、非線形分類器、カーネル法に基づくアルゴリズム、ロジスティック回帰アルゴリズム、線形判別分析アルゴリズム、および／または主成分分析アルゴリズムを含みうるが、これらに限定されない。
【００４３】
教師付き学習パイプライン３００のトレーニング段階において、トレーニングデータ生成部３１０は、トレーニング入力３２０およびトレーニングデータ項目３３０を生成することができる。トレーニング入力３２０を処理して、１つ以上の特徴ベクトル３２２を決定することができる。いくつかの例では、トレーニング入力３２０を前処理することができる。例えば、光学式文字認識タスクの場合、トレーニング入力３２０の一部として提供される入力画像（テキスト画像を含む）内のテキストおよび／または他のオブジェクトの境界ボックスおよび／または他の位置情報を計算するために、トレーニング入力３２０の前処理を行ってもよい。いくつかの例では、トレーニングデータ生成部３１０は、トレーニング入力３２０および/またはトレーニングデータ項目を生成する目的で使用されない。
【００４４】
いくつかの例において、トレーニング入力３２０の一部または全部は、１つ以上の電子トレーニング文書および／または１つ以上の紙のトレーニング文書を含む。電子トレーニング文書は、１つ以上のテキスト画像、テキストを含まない画像、およびページ定義言語を使用して符号化された文書が含みうるが、これらに限定されない。いくつかの例では、トレーニング入力３２０の一部または全部が、紙のトレーニング文書をスキャンして対応する電子文書とすることにより生成される。いくつかの例では、トレーニング入力３２０の一部または全部の生成が、１つ以上の電子トレーニング文書のうち少なくとも１つを紙（例えば、ページ記述言語を使用して表現される文書）に印刷し、当該少なくとも１つの電子トレーニング文書の印刷版をスキャンして対応する電子文書とすることで、おそらくは当該少なくとも１つの電子トレーニング文書の電子コピーを生成することによって行われる。
【００４５】
特徴ベクトル３２２を機械学習アルゴリズム３４０に提供することで、１つ以上のタスクの学習を行うことができる。１つ以上のタスクを実行した後、機械学習アルゴリズム３４０は、特徴ベクトル３２２およびおそらくはトレーニング入力３２０に基づいて、１つ以上の出力を生成しうる。トレーニング中、トレーニングデータ項目３３０を使用して、機械学習アルゴリズム３４０の出力の精度について評価を行うことができ、この評価に基づいて機械学習アルゴリズム３４０を更新することができる。機械学習アルゴリズム３４０のトレーニングは、機械学習アルゴリズム３４０が１つ以上のタスクを実行するようにトレーニングされたとみなされるまで継続できる。トレーニングを終えた機械学習アルゴリズム３４０は、予測モデル３６０のような予測モデルとみなすことができる。
【００４６】
教師付き学習パイプライン３００の予測段階において、実際の入力３５０から１つ以上の実際の特徴ベクトル３５２を生成しうる。いくつかの例において、実際の入力３５０の一部または全部が、１つ以上の実際の電子文書および／または１つ以上の実際の紙の文書を含む。実際の電子文書は、１つ以上のテキスト画像、テキストを含まない画像、およびページ定義言語を使用して符号化された文書を含みうるが、これらに限定されない。いくつかの例において、実際の入力３５０の一部または全部は、実際の紙の文書をスキャンして対応する電子文書とすることにより生成される。いくつかの例において、実際の入力３５０の一部または全部の生成は、１つ以上の実際の電子文書のうち少なくとも１つを紙（例えば、ページ記述言語を使用して表現される文書）に印刷し、当該少なくとも１つの実際の電子文書の印刷版をスキャン（または他の方法によって変換）して対応する電子文書とすることで、おそらくは当該少なくとも１つの実際の電子文書の電子コピーを生成することによって行われる。
【００４７】
次いで、実際の入力３５０を、実際の特徴ベクトル３５２を介して予測モデル３６０に提供することができる。予測モデル３６０は、実際の入力３５０に基づいて、予測などの１つ以上の出力を生成できる。予測モデル３６０の出力は、次いで予測モデル出力３７０として提供されうる。いくつかの例において、予測モデル３６０は、１つ以上の予測を行う要求を受信し、この要求の受信がトリガとなって、予測モデル３６０は、実際の入力３５０および／または実際の特徴ベクトル３５２に基づいて予測モデル出力３７０を生成することができる。これらの例のいくつかにおいて、要求は実際の入力３５０を含むことがあり、かつ／または実際の入力３５０を参照しうる。
【００４８】
いくつかの例では、１つ以上のトレーニング演算装置上で機械学習アルゴリズム３４０のトレーニングを行うことができ、同じトレーニング演算装置上で予測モデル３６０を実行することができる。いくつかの例では、機械学習アルゴリズム３４０は、トレーニング演算装置上でトレーニングできる。次いで、トレーニング後、トレーニングを終えた機械学習アルゴリズム３４０を予測モデル３６０として、当該トレーニング演算装置から、実際の入力３５０に対して予測モデル３６０を実行して予測モデル出力３７０を生成することの可能な１つ以上の他の演算装置へと伝送することができる。
【００４９】
教師付き学習パイプライン３００の使用例において、上記１つ以上のタスクは、光学文字認識に関連する１つ以上のタスク、例えば１つ以上の入力画像のテキストを認識することであってもよい。このとき、トレーニング入力３２０はトレーニング文書を含みうる。トレーニング文書は、テキスト画像を含みうる１つ以上の画像である、そのような１つ以上の画像を表す、かつ/またはそのような１つ以上の画像を含むものでありうる。すなわち、トレーニング文書は、テキストおよび/またはテキストの描写を含みうる。いくつかの例において、トレーニング文書は、処理によってテキストおよびおそらくはトレーニング入力３２０のための他の画像を生成しうるＰＤＬ形式の文書を含む。いくつかの例では、ＰＤＬ形式の文書を解析することにより、トレーニングデータ項目３３０の一部または全部を生成できる。
【００５０】
より詳細には、トレーニング入力３２０のトレーニング文書は、ＰＤＬ形式の文書Ｄ＿ＰＤＬでありうる。トレーニングデータ生成部３１０は、Ｄ＿ＰＤＬのＰＤＬを処理して、Ｄ＿ＰＤＬを表す／描写する１つ以上の画像を生成することができ、そのような画像はトレーニング入力３２０の一部として提供されうる。トレーニングデータ生成部３１０は、Ｄ＿ＰＤＬのＰＤＬを解析して、トレーニングデータ項目３３０のうち１つ以上のトレーニングデータ項目を生成することもできる。トレーニングデータ生成部３１０がＤ＿ＰＤＬを解析することにより生成されたトレーニングデータ項目を含むトレーニングデータ項目３３０は、１つ以上のトレーニングラベルおよび位置情報を含みうるが、含まれるものはこれらに限定されない。トレーニングラベルは、対応する文書、画像、またはトレーニング入力３２０の他の部分に存在するテキストに関連する。位置情報は、対応する文書、画像、またはトレーニング入力３２０の他の部分に存在するテキストの１つ以上の位置を示しうる。いくつかの例において、トレーニングデータ生成部３１０は、Ｄ＿ＰＤＬの解析および／またはその他の処理を行うことによって、特徴ベクトル３２２のうち１つ以上の特徴ベクトルを生成することもできる。
【００５１】
特徴ベクトル３２２は、トレーニング入力３２０の態様を表す１つ以上のベクトルでありうる。特徴ベクトル３２２において表すことができる例示的な特徴としては、テキスト画像の１つ以上のテキスト特徴が挙げられる。テキスト特徴としては、テキスト色、背景色、テキストフォント、テキストサイズ、テキストスタイル、文字関連特徴、テキスト位置、フォント効果、フォントスタイル、テキスト方向、句読点、およびページサイズに関する特徴を含みうるが、これらに限定されない。
【００５２】
次いで、特徴ベクトル３２２を、機械学習アルゴリズム３４０への入力として提供することができる。いくつかの実施形態において、トレーニング入力３２０と特徴ベクトル３２２はいずれも、機械学習アルゴリズム３４０への入力として提供される。いくつかの実施形態において、トレーニング入力３２０は、特徴ベクトル３２２を使用することなく、直接機械学習アルゴリズム３４０へと提供される。トレーニング中、機械学習アルゴリズム３４０は、トレーニング入力３２０および／または特徴ベクトル３２２に作用して、トレーニング入力３２０および／または特徴ベクトル３２２の光学文字認識に関する１つ以上の予測を生成する。すなわち、入力された文書中のテキストの予測を生成する。
【００５３】
テキストの予測は、１つ以上の文字、単語、および／または他のテキスト単位の予測を含みうるが、これらに限定されない。テキストの予測は、対応する入力画像、例えばトレーニング入力３２０のテキスト画像または実際の入力３５０のテキスト画像などに描かれたテキストの電子的表現を含みうる。テキストの電子的表現は、１つ以上のテキスト形式、例えば、プレーンテキスト形式（例えば、Ｕｎｉｃｏｄｅ形式、Ａｍｅｒｉｃａｎ  Ｓｔａｎｄａｒｄ  Ｃｏｄｅ  ｆｏｒ  Ｉｎｆｏｒｍａｔｉｏｎ  Ｉｎｔｅｒｃｈａｎｇｅ（ＡＳＣＩＩ）形式）、文書形式（例えば、Ｍｉｃｒｏｓｏｆｔ（登録商標）Ｗｏｒｄ形式）、ｈＯＣＲに基づく形式などを使用して書式設定できる。ｈＯＣＲは、拡張マークアップ言語（ＸＭＬ）に基づく、ＯＣＲから取得した書式付きテキストのデータ表現のオープン標準であり、テキスト、スタイル、レイアウト情報、認識信頼性メトリックおよびその他の情報の符号化を可能にする。
【００５４】
いくつかの例において、テキストの予測は、信頼値および/または予測されたテキストの精度に関連する他のデータを含みうる。信頼値は、テキストの出力予測決定の一部として、機械学習アルゴリズム３４０によって決定される。例えば、０〜１００の範囲の信頼値を、テキストの出力予測について決定し、おそらくはテキストの出力予測とともに出力することができる。ここで、信頼値０は、テキストの出力予測において機械学習アルゴリズム３４０に信頼性が皆無（０％）であることを示す。信頼値１００は、テキストの出力予測において機械学習アルゴリズム３４０が確かな（１００％の）信頼を有することを示し、０と１００との間の値は、テキストの出力予測における信頼性のパーセンテージを示す。テキスト、テキストの電子的表現、および信頼値の予測を表現および／または提供する他の技術も可能である。
【００５５】
テキストの予測は、テキストの予測をトレーニングデータ項目３３０のデータ、例えばトレーニング入力３２０のテキストを表すデータラベルおよび／または特徴ベクトル３２２によって表されるデータラベルなどと比較することにより評価できる。例えば、テキストの予測によって、「ＡＢＣ」というテキストがトレーニング入力３２０の入力画像ＴＲＡＩＮ＿ＩＭＧ１内にあることが示され、ＴＲＡＩＮ＿ＩＭＧ１のトレーニングデータ項目３３０のデータラベルによって、ＴＲＡＩＮ＿ＩＭＧ１のテキストが「ＡＢＯ」であることが示される場合、テキストのこの予測では、ＴＲＡＩＮ＿ＩＭＧ１内のテキストの３文字のうち２文字が正しく認識されたこととなり、ＴＲＡＩＮ＿ＩＭＧ１におけるこのテキストの予測の精度は、正解２文字／全３文字＝６６．６７％の精度と決定される。いくつかの例では、ＡＮＮによって決定された信頼値をテキストの予測の精度値と比較し、信頼値の正確性の評価および／またはトレーニング中のＡＮＮの更新に役立てることができる。いくつかの例では、テキストの予測を、トレーニング入力３２０の対応するテキストを表すトレーニングデータ項目３３０のデータラベルと比較することができる。テキストの予測が、トレーニングデータ項目３３０のデータラベルに対応するテキストと一致する場合に、テキストの予測の精度は高まり、一致しない場合には、テキストの予測の精度は低くなりうる。
【００５６】
機械学習アルゴリズム３４０のトレーニングは、１つ以上のトレーニング終了基準が発生するまで続行されうる。トレーニング終了基準は、機械学習アルゴリズム３４０が入力画像のある特定数ＩＮ（例えば、ＩＮ＝１，１０，１００，１０００，５０００，５００００，１０００００００など）のテキスト単位について予測を完了したという基準、トレーニング入力３２０の各項目のテキスト単位についてある特定回数ＩＴ回（例えば、ＩＴ＝１，２，３，．．．など）の予測を完了したという基準、あるいは、トレーニング入力の最終数Ｎのテキスト単位についてしきい値精度値を超える精度で予測を完了したという基準（例えば、Ｎ＝１，１０，２５，５０，１００，１０００など、しきい値精度は５０％，９０％，９５％，９９％，９９．９％など）が含まれるが、これに限定されない。
【００５７】
トレーニングを終えた機械学習アルゴリズム３４０は、予測モデル３６０として作用しうる。予測モデル３６０は、実際の入力３５０および／または特徴ベクトル３５２を入力、例えば入力テキスト画像として、光学文字認識タスクを実行することができる。次いで、予測モデル３６０は、予測モデル出力３７０の一部または全部として、実際の入力３５０に存在するテキストの１つ以上の予測を生成することができる。すなわち、予測モデル３６０は、実際の入力３５０内のテキストを認識し、認識されたテキストを、提供されたテキストの予測として、予測モデル出力３７０として示すことができる。いくつかの例において、予測モデル３６０は、実際の入力３５０のテキストを認識する要求を受信し、それに応じて実際の入力３５０のテキストの１つ以上の予測を生成し、このテキストの予測を予測モデル出力３７０として提供することができる。ＯＣＲを実行する際の予測フェーズ／予測モデル３６０の使用については、少なくともＯＣＲパイプライン５００および少なくとも図５との関連においてより詳細に説明する。
【００５８】
図４は、例示的な実施形態による、教師付き学習パイプライン３００におけるトレーニングデータ生成部３１０を示す。トレーニングデータ生成部３１０は、方法４００を実行し、トレーニング入力３２０および／またはトレーニングデータ項目３３０の一部または全部を生成することができる。
【００５９】
方法４００は、ブロック４１０から開始されうるが、ここでトレーニングデータ生成部３１０はＰＤＬ入力を受信できる。例えば、トレーニング入力３２０は、ＰＤＬを含む１つ以上のトレーニング文書を含みうる。トレーニング入力３２０内のＰＤＬを含むこれらのトレーニング文書は、ＰＤＬ入力と呼ばれこともある。
【００６０】
ブロック４１２において、トレーニングデータ生成部３１０は、ＰＤＬ入力を変更するか否かを決定しうる。トレーニングデータ生成部３１０は、ＰＤＬ入力の一部または全部を変更すべきか否かの決定を、ＰＤＬ入力の変更に関連するユーザー入力に基づいて、ＰＤＬ入力の１つ以上の特徴に基づいて、ＰＤＬ入力のランダム選択（例えば、トレーニング入力３２０から所定数Ｎまたは所定パーセンテージＭ％のファイル、文書、またはその他の部分を無作為に選択すること（ただしＮおよびＭはいずれも０よりも大きく、Ｍは１００以下である））に基づいて、ＰＤＬ入力の決定性選択（例えば、ＰＤＬ入力から最初（または最後）のＮおよび／またはＭ％のファイル、文書、またはその他の部分を選択すること、ＰＤＬ入力の中央からＮおよび／またはＭ％のファイル、文書、またはその他の部分を選択すること、ＰＤＬ入力のＰ番目毎のファイル、文書、またはその他の部分を選択すること（ただしＰは０よりも大きい））に基づいて、ＰＤＬ入力内のデータに基づいて（例えば、ＰＤＬ入力に変更の必要があることを示すタグまたは他の指標に基づいて、ＰＤＬ入力の１つ以上の特徴（すべてが緑色のテキストであるかつ／または少なくとも所定のサイズを有するＰＤＬ入力は変更の必要がある）に基づいて）、行いうる。場合により、トレーニングデータ生成部３１０が、ＰＤＬ入力のすべてを変更するという決定を下すこともある。例えば、ＰＤＬ入力は、図３に関連して先に言及したテキスト特徴などの１つ以上のテキスト特徴を含む、除外する、および／または変更するように変更されうる。
【００６１】
例えば、トレーニングデータエンジニアおよび／またはトレーニングデータ生成部３１０は、機械学習アルゴリズム３４０用のトレーニングデータが十分なフォントバリエーションを有していないという決定を下すことができる。その場合、トレーニングデータ生成部３１０は、ユーザー入力（例えば、トレーニングデータエンジニアからの入力）および／または他の情報（例えば、機械学習アルゴリズム３４０用のトレーニングデータ内のフォントバリエーションの測定値）に基づいて、ＰＤＬ入力のフォントタイプを変更できる。より具体的には、ＰＤＬ入力に、特定のフォント（たとえば「Ｔｉｍｅｓ  Ｎｅｗ  Ｒｏｍａｎ」）の１ページしか存在しないと仮定する。これはトレーニング入力３２０に十分なフォントバリエーションとは言えない。この場合、トレーニングデータ生成部３１０は、ＰＤＬ入力の一部として特定のフォントを使用してより多くのトレーニングデータを生成することおよび／またはより一般的には、内容は同一であるが異なるフォントタイプを使用したより多くのトレーニングデータを生成することが可能である。トレーニングデータ生成部３１０を使用してＰＤＬ入力を変更する多くの他の例もありうる。
【００６２】
トレーニングデータ生成部３１０がＰＤＬ入力の変更を行うと決定した場合、トレーニングデータ生成部３１０はブロック４１４に進みうる。そうでない場合、トレーニングデータ生成部３１０はＰＤＬ入力の変更を行わないことを決定し、ブロック４２０へと進む。
【００６３】
ブロック４１４において、トレーニングデータ生成部３１０は、ＰＤＬ入力に対する１つ以上の変更を決定し、それに応じて当該１つ以上の変更を行うようにＰＤＬ入力を変更することができる。いくつかの例において、変更には、ＰＤＬ入力の１つ以上のテキスト特徴の変更が含まれうる。いくつかの例において、ＰＤＬ入力を変更することは、複数の異なるフォントを使用するテキスト、複数の異なる色を使用するテキスト、複数の異なるサイズを使用するテキスト、複数の異なるスタイルを使用するテキスト、および複数の背景色を利用する複数のページの１つ以上を含むようにＰＤＬ入力を変更することを含みうる。いくつかの例において、ＰＤＬ入力を変更することは、ＰＤＬ入力を使用して生成された電子文書が増強されるようにＰＤＬ入力を変更することを含み、このような増強については、ブロック４４２および４４４に関連して以下で説明する。いくつかの例において、ＰＤＬ入力を変更することは、１つ以上のＰＤＬ命令および／またはＰＤＬを使用して書式設定された文書を追加することを含みうる。その例としては、第１のＰＤＬ入力文書を受信し、第１のＰＤＬ入力文書を第２のＰＤＬ文書にコピーし、第２のＰＤＬ文書を変更し、ブロック４１４の出力として第１および第２のＰＤＬ文書のいずれもを提供することが挙げられる。１つ以上のＰＤＬ命令および／またはＰＤＬを使用して書式設定された文書を追加することの別の例を挙げると、トレーニングデータ生成部３１０は、ＰＤＬ入力とは関係のない１つ以上のＰＤＬ命令および／または文書、例えば機械学習アルゴリズム３４０をトレーニングするための特定のテストケースを表すＰＤＬ命令および／または文書を追加しうる。次いで、ＰＤＬ入力とは関係のない当該１つ以上のＰＤＬ命令および／または文書は、ブロック４１４の出力として提供されうる。ＰＤＬ入力の他の変更も可能である。
【００６４】
ブロック４２０において、トレーニングデータ生成部３１０は、ＰＤＬ入力を解析して位置情報（例えば、境界ボックス）および関連テキストを決定しうる。ブロック４２０におけるＰＤＬ入力は、ブロック４１０で受信され、ブロック４１４で変更された可能性のあるＰＤＬ入力を含みうる。位置情報は、ＰＤＬ入力内（またはより一般的には、トレーニング入力３２０内）のテキストの１つ以上の位置を示しうる。位置情報の一例は、ＰＤＬ入力によって表されるテキストの１つ以上の文字、単語、および／または他のテキスト単位を位置付ける位置および／または境界ボックスである。境界ボックスは、テキストが配置される長方形の領域、例えば、テキストが配置されている長方形の領域の左上隅と右下隅を指定しうる。関連テキストは、ＰＤＬを使用してＰＤＬ入力で指定されたテキストおよび／またはＰＤＬ入力内の他のテキスト、例えば、ＰＤＬ入力のＰＤＬ命令によって書式設定／参照される画像内のテキストでありうる。関連テキストは、位置情報と関連付けることができ、例えば、位置情報によって、関連テキストを検索する／見出すためにＰＤＬ入力内の１つ以上の位置を指定することができる。変更されていないＰＤＬ入力を含みうるＰＤＬ入力を解析して位置情報および関連テキストを決定することにより、トレーニング入力３２０を、１つ以上のデータセットに保存可能な数千の既存のアプリケーションＰＤＬ文書に基づくものとすることができる。次いで、これらの既存のアプリケーションＰＤＬファイル（のデータセット）を解析して位置情報および関連テキストを決定することにより、トレーニングデータ生成部３１０は、以下で説明するように、トレーニングデータ項目３３０を生成してトレーニング入力３２０を生成できるため、機械学習アルゴリズム３４０をトレーニングしながら既存のアプリケーションＰＤＬを利用できる。
【００６５】
ブロック４３０において、トレーニングデータ生成部３１０は、位置情報および／または関連テキストに基づいてトレーニングデータ項目３３０を決定しうる。例えば、ブロック４２０においてＰＤＬ入力を解析することにより決定された位置情報および／または関連テキストを保存および／または別の方法で使用することによって、トレーニングデータ項目３３０を作成および／または更新することができる。トレーニングデータ項目３３０におけるトレーニングデータ項目ＴＤＩ１は、ＰＤＬ入力内（またはより一般的には、トレーニング入力３２０内）にテキストＴ１およびテキストＴ１の１つ以上の位置Ｌｏｃ１を指定する位置情報を保存できる。すなわち、トレーニングデータ項目ＴＤＩ１は、ＰＤＬ入力内の位置Ｌｏｃ１を指定する位置情報を関連付けて、ＰＤＬ入力内のテキストＴ１を検索する／見出すことができる。例えば、文書ＴＥＳＴＤＯＣ１のＰＤＬ入力が、「印刷装置」という単語がＴＥＳＴＤＯＣの第１ページの左上隅（ＵＬＨＣ）から７２ピクセル右、７２ピクセル下に書き込まれる、すなわち第１ページののＵＬＨＣに関して（７２，７２）の位置に書き込まれるとする。このとき、トレーニングデータ生成部３１０は、文書ＴＥＳＴＤＯＣ１のＰＤＬ入力を解析して、文書ＴＥＳＴＤＯＣ１の第１ページのテキスト「印刷装置」の位置情報（７２，７２）を決定することができる。文書ＴＥＳＴＤＯＣ１のＰＤＬ入力を解析した後、トレーニングデータ生成部３１０は、トレーニングデータ項目ＴＤＩ＿ＴＥＳＴＤＯＣ１を作成または更新して、位置情報（７２，７２）および関連テキスト「印刷装置」をＴＤＩ＿ＴＥＳＴＤＯＣ１の一部として保存できる。関連する一例において、文書ＴＥＳＴＤＯＣ１の第１ページのテキスト「印刷装置」を囲む境界ボックスの右下隅が、第１ページのＵＬＨＣに対して（８９，１５５）の位置にあるとする。このとき、トレーニングデータ生成部３１０は、文書ＴＥＳＴＤＯＣ１のＰＤＬ入力を解析して、テキスト「印刷装置」の境界ボックス［（７２，７２）（８９，１５５）］を位置情報として決定し、次いで境界ボックス［（７２，７２）（８９，１５５）］をＴＤＩ＿ＴＥＳＴＤＯＣ１の一部としての関連テキスト「印刷装置」の位置情報として保存できる。他の例もありうる。
【００６６】
ブロック４２０と４３０の手続きを組み合わせることにより、トレーニングデータ生成部３１０は、（ブロック４２０において）ＰＤＬ入力を解析し、（ブロック４３０において）トレーニングデータ項目３３０を決定できると考えられる。位置情報および／または関連テキストに基づいてトレーニングデータ項目３３０を決定する他の技術も可能である。
【００６７】
ブロック４４０において、トレーニングデータ生成部３１０は、ＰＤＬ入力からトレーニング入力３２０の少なくとも一部を決定することができる。例えば、トレーニングデータ生成部３１０は、ＰＤＬ入力を処理して、１つ以上の電子文書および／または紙文書を生成することができる。例えば、ＰＤＬ入力を１つ以上のファイルおよび／または紙に印刷できる。次いで、生成された１つ以上の電子文書および／または紙文書は、トレーニング入力３２０の一部または全部として使用できる。ＰＤＬ入力からトレーニング入力３２０の少なくとも一部を決定するための他の技術も可能である。
【００６８】
ブロック４４２において、トレーニングデータ生成部３１０は、トレーニング入力３２０を増強するか否かを決定しうる。トレーニングデータ生成部３１０は、トレーニング入力３２０の一部または全部を増強すべきか否かの決定を、トレーニング入力３２０の増強に関連するユーザー入力に基づいて、トレーニング入力３２０の１つ以上の特徴に基づいて、トレーニング入力３２０のランダム選択（例えば、トレーニング入力３２０から所定数Ｎまたは所定パーセンテージＭ％のファイル、文書、またはその他の部分を無作為に選択すること（ただしＮおよびＭはいずれも０よりも大きく、Ｍは１００以下である））に基づいて、トレーニング入力３２０の決定性選択（例えば、トレーニング入力３２０から最初（または最後）のＮおよび／またはＭ％のファイル、文書、またはその他の部分を選択すること、トレーニング入力３２０の中央からＮおよび／またはＭ％のファイル、文書、または文書のＰＤＬ入力のその他の部分を選択すること、トレーニング入力３２０のＰ番目毎のファイル、文書、またはその他の部分を選択すること（ただしＰは０よりも大きい））に基づいて、トレーニング入力３２０内のデータに基づいて（例えば、トレーニング入力３２０に修正の必要があることを示すタグまたは他の指標に基づいて、トレーニング入力３２０の１つ以上の特徴（すべてが緑色のテキストであるかつ／または少なくとも所定のサイズを有するトレーニング入力３２０は増強の必要がある）に基づいて）、行いうる。場合により、トレーニングデータ生成部３１０が、トレーニング入力３２０のすべてを増強するという決定を下すこともある。トレーニング入力を増強するための例示的なデータ拡張技術は、ブロック４４４に関連して以下で説明する。トレーニングデータ生成部３１０がトレーニング入力３２０の増強を決定した場合、トレーニングデータ生成部３１０はブロック４４４に進みうる。
【００６９】
例えば、トレーニングデータエンジニアおよび／またはトレーニングデータ生成部３１０が、トレーニング入力３２０が傾斜したページ、すなわち軸が様々な角度となっているページを十分に有していないという決定を下すと仮定する。その場合、トレーニングデータ生成部３１０は、ユーザー入力（例えば、トレーニングデータエンジニアからの入力）および／または他の情報（例えば、トレーニング入力３２０内の傾斜したページの測定値）に基づいて、トレーニング入力３２０を増強できる。この例では、トレーニングデータ生成部３１０は、トレーニング入力３２０の元のページに１つ以上のアフィン変換を適用して、より多くの傾斜したページを生成することができる。トレーニングデータ生成部３１０を使用してトレーニング入力３２０を増強する多くの他の例もありうる。
【００７０】
ブロック４４４において、トレーニングデータ生成部３１０は、トレーニング入力３２０の一部または全部に対して１つ以上のデータ拡張技術を実行することにより、トレーニング入力３２０を増強できる。データ拡張技術は、トレーニング入力３２０内の１つ以上の特定の電子文書の一部または全部を変更することを含みうる。１つ以上のデータ拡張技術は、トレーニング入力３２０内の特定の電子文書の少なくとも一部を歪ませる技術、トレーニング入力３２０内の特定の電子文書の少なくとも一部を回転させる技術、トレーニング入力３２０内の特定の電子文書の少なくとも一部にノイズを混入する技術、およびトレーニング入力３２０内の特定の電子文書の少なくとも一部をフィルタリングする技術を含みうるが、これらに限定されない。トレーニング入力３２０内の１つ以上の特定の電子文書は、トレーニング入力３２０から無作為に選択することも、それ以外の方法で選択することもできる。例えば、トレーニング入力３２０から１つ以上の文書を無作為に選択する、トレーニング入力３２０からＮ番目毎（Ｎ＞１）の文書を選択する、トレーニング入力３２０からすべての文書を選択する、トレーニング入力３２０から最初のＮ個（Ｎ＞０）の文書を選択する、トレーニング入力３２０から最後のＮ個（Ｎ＞０）の文書を選択するなどが可能である。
【００７１】
いくつかの例において、トレーニングデータ生成部３１０は、トレーニング入力３２０に１つ以上の増強された文書を追加することにより、トレーニング入力３２０を増強することができる。その例としては、トレーニング入力３２０の一部として第１の入力文書を受信し、第１の入力文書を第２の入力文書にコピーし、第２の入力文書に対して先に言及したデータ拡張技術の１つ以上を実行することにより第２の入力文書を増強し、ブロック４１４の出力として第１の入力文書と増強された第２の入力文書のいずれもを提供することが挙げられる。１つ以上の増強された文書をトレーニング入力３２０に追加することの別の例を挙げると、トレーニングデータ生成部３１０は、トレーニング入力３２０とは関係のない１つ以上の増強された文書、例えば、機械学習アルゴリズム３４０をトレーニングするための特定のテストケースを表す増強された文書を追加しうる。次いで、トレーニング入力３２０とは関係のない当該１つ以上の増強された文書は、ブロック４４４の出力として提供されうる。トレーニング入力３２０の他の増強もありうる。
【００７２】
ブロック４５０において、トレーニングデータ生成部３１０は、トレーニング入力３２０およびトレーニングデータ項目３３０を出力として提供することができる。ブロック４５０の完了により、方法４００は完了しうる。
【００７３】
いくつかの例において、方法４００は、特徴ベクトル３２２の少なくとも一部を生成することをさらに含みうる。例えば、ブロック４２０において、トレーニングデータ生成部３１０は、ＰＤＬ入力を解析して位置情報および／または関連テキストを決定する。また、トレーニングデータ生成部３１０は、ＰＤＬ入力を解析して、トレーニング入力３２０、例えばトレーニング入力３２０のＰＤＬ入力に基づく部分の態様を表す特徴ベクトル３２２に使用できるＰＤＬ入力の１つ以上のテキスト特徴および／または他の特徴を決定することもできる。これらの例のいくつかでは、ブロック４５０において、トレーニングデータ生成部３１０は、生成した特徴ベクトル３２２の少なくとも一部を出力として提供することもできる。
【００７４】
図５は、例示的な実施形態による、光学式文字認識のためのＯＣＲパイプライン５００の図である。いくつかの例において、ＯＣＲパイプライン５００は、教師付き学習パイプライン３００の予測段階に関連および／または教師付き学習パイプライン３００の予測段階を実装しうる。ＯＣＲパイプライン５００は、実際の入力３５０、実際の特徴ベクトル３５２、前処理５１０、予測モデル３６０、後処理５５０、および予測モデル出力３７０を含む。ＯＣＲパイプライン５００の一部または全部は、ＯＣＲパイプライン５００の一部または全部のソフトウェアを１つ以上の処理装置上で実行すること、および／または他の回路（例えば、ＯＣＲパイプライン５００の一部または全部を実行するための特別なハードウェア）を使用することにより実装できる。
【００７５】
動作中、ＯＣＲパイプライン５００は、実際の入力３５０を受信することで開始しうる。特に、ＯＣＲパイプライン５００への実際の入力３５０は、１つ以上の実際の電子文書および／または１つ以上の実際の紙文書を含むことができ、紙文書は、少なくとも図３の内容に関して上述されたように、スキャンして対応する電子文書とすることができる。いくつかの例において、実際の入力３５０はＰＤＬ形式の１つ以上の文書を含みうる。そのようなＰＤＬ形式の文書は、実際の入力３５０の実際の電子文書の一部としてその後使用できる電子文書に印刷できる。実際の電子文書は、テキスト画像を含みうる１つ以上の画像である、そのような１つ以上の画像を表す、かつ／またはそのような１つ以上の画像を含むものでありうる。すなわち、実際の電子文書は、テキストおよび/またはテキストの描写を含みうる。
【００７６】
実際の入力３５０を受信した後、ＯＣＲパイプライン５００は、実際の入力３５０に基づいて１つ以上の実際の特徴ベクトル３５２を生成できる。実際の特徴ベクトル３５２は、実際の入力３５０の態様を表しうる。実際の特徴ベクトル３５２において表すことができる例示的な特徴としては、テキスト画像の１つ以上のテキスト特徴が挙げられる。テキスト特徴としては、テキスト色、背景色、テキストフォント、テキストサイズ、テキストスタイル、文字関連特徴、テキスト位置、フォント効果、フォントスタイル、テキスト方向、句読点、およびページサイズに関する特徴を含みうるが、これらに限定されない。
【００７７】
実際の特徴ベクトル３５２を生成した後、ＯＣＲパイプライン５００は、受信した実際の入力３５０および／または実際の特徴ベクトル３５２を前処理５１０することにより続行できる。前処理５１０は、教師付き学習パイプライン３００のトレーニング段階について上述したものと同様の前処理を含みうる。すなわち、実際の入力３５０を前処理して、実際の入力３５０内のテキストおよび／または関連オブジェクト（例えば、テキスト画像）の位置を特定できる。特に、実際の入力３５０を前処理して、実際の入力３５０内のテキストおよび／または関連オブジェクトの境界ボックスおよびおそらくは他の位置情報を計算することができる。いくつかの例では、実際の入力３５０の前処理中に、実際の特徴ベクトル３５２からのデータを使用できる。
【００７８】
前処理５１０の後、ＯＣＲパイプライン５００は、前処理された実際の入力３５０内のテキストを認識するための予測モデル３６０の使用に進みうる。図５は、ＯＣＲパイプライン５００の予測モデル３６０が、検出モデル５２０、分類器モデル５３０、および認識モデル５４０を含みうることを示す。予測モデル３６０は、前処理された実際の入力３５０を前処理５１０から受け取ると、最初に検出モデル５２０を利用して、前処理された実際の入力３５０内のテキストを検出する。次いで、予測モデル３６０は、分類器モデル５３０を利用して、検出モデル５２０によって見出されたテキストを分類する。予測モデル３６０は、認識モデル５４０を利用して、分類器モデル５３０によって分類されたテキストを認識し、認識したテキストに関する認識モデル５４０による結果を、前処理された実際の入力３５０内で認識されたテキストの予測として出力する。
【００７９】
検出モデル５２０は、テキストを認識するために、実際の特徴ベクトル３５２に対して回帰５２４およびセグメント化５２６を実行するためのトレーニングされた検出畳み込みニューラルネットワーク（ＣＮＮ）５２２を含む。畳み込みニューラルネットワークは、その入力層で提供される入力がテキスト画像などの画像関連入力であると想定するＡＮＮであり、画像処理および／または他の画像関連タスク用に編成された隠れ層を含む。回帰５２４は、実際の入力３５０において受信したテキスト画像および／または他の画像内、例えばテキストが配置されている（おそらく前処理５１０の間に決定されたであろう）境界ボックス内でテキストがどのように「位置付け」られているかすなわち相対的に配置されているかを決定することを含みうる。例えば、テキストを湾曲していたり、境界ボックスの垂直軸および／または水平軸に揃えられていたり、境界ボックスの垂直軸および／または水平軸に対して傾いていることがある。したがって、境界ボックス内のテキストの位置付けを決定することは、境界ボックス内のテキストを認識することの一部である。したがって、トレーニングされた検出ＣＮＮ５２２を利用して回帰５２４を実行することで、実際の入力３５０で受信したテキスト画像、文書、および／または他の入力内のテキストの位置付けを決定することができる。
【００８０】
セグメント化５２６は、実際の入力３５０で受信したテキスト画像および／またはテキストを含む他の画像の、１つ以上の領域または区分を決定することを含みうる。いくつかの例において、セグメント化５２６は、テキストを含む境界ボックスの区分を決定することを含みうる。したがって、トレーニングされた検出ＣＮＮ５２２を利用してセグメント化５２６を実行することで、実際の入力３５０として受け取ったテキスト画像、文書、および／またはテキストを含む他の入力内の部分を決定することができる。
【００８１】
図６Ａは、検出モデル５２０としてテキスト検出を実行するようにトレーニングすることの可能な検出ＣＮＮ５２２ａの図である。検出ＣＮＮ５２２ａは、ＣＮＮ層６１２で前処理された入力（ＰＰＩ）６１０を受信する。ＣＮＮ層６１２、６１４、６１６、６３２、６３４、６３６、６４０、６４２、６４４、６６２、６６４、６６６、６７０、６７２、６７４のうち１つ以上のようなＣＮＮ層は、畳み込み、活性化、およびプーリングのタスクを、それぞれＣＮＮ層の１つ以上の畳み込み層、ＣＮＮ層の１つ以上の活性化層、およびＣＮＮ層の１つ以上のプーリング層を使用して実行できる。畳み込み層は、それぞれの入力をフィルタリングするために１つ以上のフィルタを学習することができる。各フィルターは、活性化層への入力のサブセットに対して機能する。例えば、畳み込み層への入力が、Ｚ種類の異なる色の入力を有するＸ×Ｙピクセルの入力を表す場合（例えば、サイズがＸ×Ｙピクセルであり、Ｚ＝１のグレースケール画像、Ｚ＝３の赤−緑−青（ＲＧＢ）画像、Ｚ＝４のシアン−マゼンタ−黄−黒（ＣＭＹＫ）画像のいずれかであるテキスト画像の場合）、畳み込み層への入力は、入力ピクセル数×色数がＸ×Ｙ×Ｚというボリュームとみなすことができる。畳み込み層のフィルタは、Ｘ×Ｙ×Ｚのボリュームの一部、例えばＸ１×Ｙ１×Ｚ１ピクセル／色（ただしＸ１≦Ｘ、Ｙ１≦Ｙ、Ｚ１≦Ｚ）をフィルタ処理できる。例えば、ＣＮＮ層６１２への入力がＣＭＹＫ形式（Ｚ＝４）の１００×１００ピクセルのテキスト画像であり、ＣＮＮ層６１２の畳み込み層が１００×１００×４ピクセル／色の入力ボリュームを受け取り、この１００×１００×４のボリュームに対して３×３×３のフィルタで畳み込みを行うよう作用すると仮定する。入力ボリュームとフィルタの他の多くの例もありうる。
【００８２】
入力ボリュームに対してフィルタによる畳み込みを行うために、畳み込み層は入力ボリュームの幅および高さにわたってフィルタをスライドさせ、フィルタのエントリと入力ボリューム上でのフィルタの各位置における入力との間でドット積の演算を行いうる。畳み込み層は入力ボリュームの幅と高さにわたってフィルターをスライドさせるため、畳み込み層は、入力ボリュームのあらゆる空間位置におけるフィルターの応答を提供する２次元の活性化マップを生成するとみなすことができる。
【００８３】
畳み込み層の出力（例えば、上記の活性化マップ）は、活性化層への入力として提供しうる。活性化層は、入力層（例えば、畳み込み層）の出力を後続の層に提供するか否かを決定しうる。例えば、活性化マップの値が［０，１］の範囲にあり、０．４を超える活性化マップ値のみが後続の層に提供されると仮定する。その後、活性化層は、［０，０．４］〜０の範囲の活性化マップ値（活性化なしを表す）をマッピングし、さらに［０．４，１］〜１の範囲の活性化マップ値（活性化を表す）をマッピングする。より一般的には、ＣＮＮ層の畳み込み層は、シグモイド／ロジスティック活性化関数、双曲線正接活性化関数、正規化線形ユニット（ＲｅＬＵ）活性化関数、または畳み込み層の出力を後続の層に提供すべきか否かを決定する別の活性化関数などの活性化関数をモデル化できる。ＣＮＮ層は、入力をフィルタリングしてタスク（例えば、テキストの検出および／または分類）を実行するために、畳み込み層と活性化層の対を１つ以上含みうる。
【００８４】
畳み込み層と活性化層の対による出力は、プーリング層へと提供されうる。プーリング層は、畳み込み層と活性化層によって提供されるフィルタリング済みの入力をダウンサンプリングできる。プーリング層は、畳み込みに関しての上記の説明と同様に、入力ボリューム上でプーリングフィルタをスライドさせうる。プーリングフィルタは、サンプリングされたピクセル／色に対して関数を効果的に実行することができる。例えば、プーリングフィルタによってサンプリングされたピクセル／色の最大値を決定し、プーリングフィルタによってサンプリングされたピクセル／色の平均値を決定し、フィルタの出力として関数の出力を提供することができる。例えば、プーリングフィルタが２×２×１ピクセル／色の入力ボリュームの最大値を計算する場合、プーリングフィルタは２×２×１の入力ボリュームにおける４つの値を１つの出力（最大）値へと減らす。これにより、２×２×１の入力ボリュームを１つの値にダウンサンプリングする。すなわち、入力のＸ座標とＹ座標の両方で２分の１のダウンサンプリングを行う。プーリングフィルタの他の多くの例もありうる。したがって、ＣＮＮ層は、ＣＮＮ層への入力に関する特徴を抽出するために、畳み込み層、活性化層、およびプーリング層を使用して、入力に対して選択的なフィルタリングおよびダウンサンプリングを行いうる。結果として得られるＣＮＮ層の出力は、特徴ベクトルとして表しうる。
【００８５】
いくつかの例では、プーリング層を使用して入力をアップサンプリングできる。例えば、プーリング層は、それぞれが入力と同一である複数の出力を提供できる。例えば、単一のピクセル／色入力Ｉ＿ＵＰＳＡＭを、２×２×１というボリュームのピクセル／色を出力するアップサンプリングプーリング層が受け取ることができる。この出力はそれぞれ、Ｉ＿ＵＰＳＡＭの値またはＩ＿ＵＰＳＡＭに基づく別の値（例えば、Ｉ＿ＵＰＳＡＭに重み付けまたはフィルタリングを行った値）を有しうる。したがって、アップサンプリングプーリング層は、ピクセル／色入力Ｉ＿ＵＰＳＡＭを４倍にアップサンプリングして、２×２×１ピクセル／色というボリュームを生成する。
【００８６】
いくつかの例において、アップサンプリングを実行するプーリング層は、関連する入力に関する情報、例えば別の層からスキップ接続を介して受信した入力などを受信することができる。スキップ接続は、ＡＮＮの１つ以上の層を回避すなわち「スキップ」するような、ＡＮＮの層間の接続である。スキップ接続を介して受信した入力は、アップサンプリングプーリング層によるアップサンプリングされた出力の計算に使用できる特徴に関する情報を提供しうる。例えば、図６Ｂに関して言えば、ＣＮＮ層６３２からＣＮＮ層６４４へのスキップ接続は、前処理された入力６３０に関する「粗い」入力、すなわちこの入力がＣＮＮ層６３２によってダウンサンプリングされる以前の入力を、ＣＮＮ層６４４に提供できる。アップサンプリングプーリング層は、非スキップ接続から入力を受信することもでき、先の例を続けると、上記のＩ＿ＵＰＳＡＭ値のような「精度の高い」入力をＣＮＮ層６４２から受信できる。次いで、アップサンプリングプーリング層は、粗い入力と精度の高い入力とを組み合わせて出力を生成できる。これは例えば、畳み込み転置操作（逆畳み込みとも呼ばれる）であり、フィルターを使用して粗入力の各色／ピクセルに対する精度の高い入力の重み付けを行い、重み付けされた精度の高い入力と粗入力とを（例えば、乗算および／または加算により）組み合わせてアップサンプリングプーリング層のアップサンプリングされた出力を生成するものである。アップサンプリングのための他の技術ならびに/またはダウンサンプリングのためのプーリング層の他の例およびアップサンプリングのためのプーリング層の他の例もありうる。
【００８７】
例えば、前処理された入力６１０は、前処理５１０を介して提供される前処理された実際の入力３５０でありうる。ＣＮＮ層６１２は、前処理された入力６１０を処理して（例えば、前処理された入力６１０にフィルタリングおよびダウンサンプリングを行い、第１の特徴ベクトルとして）、前処理された入力６１０内のテキストの出力予測（ＯＰ）６２２を結果として生成し、ＣＮＮ層６１４に対して入力（例えば、第１の特徴ベクトル）を提供することができる。ＣＮＮ層６１４は、ＣＮＮ層６１２に提供された入力６１２を処理して（例えば、ＣＮＮ層６１２によって提供された入力にフィルタリングおよびダウンサンプリングを行い、第２の特徴ベクトルとして）、前処理された入力６１０内のテキストの出力予測（ＯＰ）６２４を結果として生成し、ＣＮＮ層６１６に対して入力（例えば、第２の特徴ベクトル）を提供することができる。ＣＮＮ層６１６は、ＣＮＮ層６１２によって提供された入力を処理して（例えば、ＣＮＮ層６１４によって提供された入力にフィルタリングおよびダウンサンプリングを行って）、前処理された入力６１０内のテキストの出力予測６２６を結果として生成することができる。このとき、検出ＣＮＮ５２２ａの出力は、出力予測６２２、６２４、６２６のうちの１つ以上でありうる。
【００８８】
いくつかの例において、検出ＣＮＮ５２２ａの出力および／または出力予測６２２、６２４、６２６は、前処理された入力６１０を１つ以上のテキスト文字、例えば、「Ａ」，「Ｂ」，．．．「Ｚ」，「ａ」，「ｂ」，．．．「ｚ」，「０」，「１」，．．．「９」，「！」などとして分類できる。検出ＣＮＮ５２２ａの出力および／または出力予測６２２、６２４、６２６は、前処理された入力６１０をテキスト文字がないものとして分類することもできる。すなわち、前処理された入力６１０に対して「文字なし」という分類も有する。次いで、検出ＣＮＮ５２２ａの出力が「文字なし」以外の場合、例えば、前処理された入力を「Ｑ」として分類する入力であった場合、前処理された入力６１０内のテキストが検出ＣＮＮ５２２ａによって検出されたとみなされうる。また、検出ＣＮＮ５２２ａの出力が「文字なし」の出力である場合、例えば、前処理された入力６１０が、すべて同色であるピクセル群を表し、したがってテキスト文字を表さない場合、検出ＣＮＮ５２２ａによっても、処理された入力６１０内にテキストは検出されないとみなされうる。
【００８９】
図６Ｂは、検出モデル５２０としてテキスト検出を実行するようにトレーニングすることのできる検出ＣＮＮ５２２ｂの図である。検出ＣＮＮ５２２ｂは、ＣＮＮ層６３２で前処理された入力６３０を受信する。例えば、前処理された入力６３０は、前処理５１０を介して提供される前処理された実際の入力３５０でありうる。ＣＮＮ層６３２は、前処理された入力を処理して（例えば、前処理された入力６１０にフィルタリングおよびダウンサンプリングを行って、第４の特徴ベクトルとして）、ＣＮＮ層６３４および６４４に対して入力（例えば、第４の特徴ベクトル）を提供することができる。ＣＮＮ層６３４は、ＣＮＮ層６３２によって提供された入力を処理して（例えば、ＣＮＮ層６３２によって提供された入力にフィルタリングおよびダウンサンプリングを行い、第５の特徴ベクトルとして）、ＣＮＮ層６３６および６４２に対して入力（例えば、第５の特徴ベクトル）を提供することができる。ＣＮＮ層６３６は、ＣＮＮ層６３４によって提供された入力を処理して（例えば、ＣＮＮ層６３４によって提供された入力にフィルタリングおよびダウンサンプリングを行い、第６の特徴ベクトルとして）、ＣＮＮ層６４０に対して入力（例えば、第６の特徴ベクトル）を提供することができる。いくつかの例において、ＣＮＮ層６３２からＣＮＮ層６４４へと提供される入力、ＣＮＮ層６３４からＣＮＮ層６４２に提供される入力、および／またはＣＮＮ層６３４からＣＮＮ層６４０に提供される入力は、対になったＣＮＮ層間のスキップ接続として作用しうる。
【００９０】
検出ＣＮＮ５２２ｂのＣＮＮ層６４０は、ＣＮＮ層６３４に提供された入力を処理して（例えば、第６の特徴ベクトルにアップサンプリングを行い、結果として得られた特徴を第７の特徴ベクトルとして）、前処理された入力６３０内のテキストの出力予測６５０を結果として生成し、ＣＮＮ層６１４に対して入力（例えば、第７の特徴ベクトル）を提供することができる。ＣＮＮ層６４２は、ＣＮＮ層６４０および６３４によって提供された入力を処理して（例えば、ＣＮＮ層６３４によって提供されたデータを使用して、第７の特徴ベクトルに対してフィルタリングおよびアップサンプリングを行い、第８の特徴ベクトルを生成し）、前処理された入力６３０内のテキストの出力予測６５２を結果として生成し、ＣＮＮ層６４４に対して入力（例えば、第８の特徴ベクトル）を提供することができる。ＣＮＮ層６４４は、ＣＮＮ層６４２および６３２によって提供された入力を処理して（例えば、ＣＮＮ層６３２によって提供されたデータを使用して、第８の特徴ベクトルに対してフィルタリングおよびアップサンプリングを行い）、前処理された入力６３０内のテキストの出力予測６５４を結果として生成することができる。このとき、検出ＣＮＮ ５２２ｂの出力は、出力予測６５０、６５２、６５４のうち１つ以上でありうる。
【００９１】
図６Ｃは、検出モデル５２０としてテキスト検出を実行できるようトレーニングすることの可能な検出ＣＮＮ５２２ｃの図である。図６Ｃは、検出ＣＮＮ５２２ｃと同様の動作を示す。検出ＣＮＮ５２２ｃの前処理された入力６６０が検出ＣＮＮ５２２ｂの前処理された入力６３０の役割を果たし、ＣＮＮ層６６２、６６４、６６６、６７０、６７２、６７４がそれぞれ、ＣＮＮ層６３２、６３４、６３６、６４０、６４２、６４４の役割を果たす。ただしＣＮＮ層６７０および６７２は、出力予測を提供しない点が異なっている。検出ＣＮＮ５２２ｃでは、ＣＮＮ層６７４のみが出力予測６８０を提供し、検出ＣＮＮ５２２ｃの出力が出力予測６８０となる。
【００９２】
図５に戻ると、予測モデル３６０の分類器モデル５３０は、テキストを分類するために訓練されうる。分類器モデル５３０は、分類されつつあるテキストの一部が特定のテキスト文字を表す確率、例えば、テキスト文字が特定のＡＳＣＩＩ値またはＵｎｉｃｏｄｅ値を有する確率を決定できる。より具体的には、ＡＳＣＩＩは１２８文字（拡張ＡＳＣＩＩの場合は２５６文字）を符号化し、分類器モデル５３０は少なくとも１２８（または２５６）の出力Ｏ0．．．Ｏ127（拡張ＡＳＣＩＩの場合はＯ0．．．Ｏ255）を有しうる。Ｏxは、分類器モデル５３０への入力の現在の部分が、ＡＳＣＩＩ値がｘである入力文字を表す確率である。すなわち、現在の部分が文字「Ｑ」を表す場合、ネットワークはＯ65．．．Ｏ90を出力し、出力される大文字の確率は、例えば、Ｏ65（「Ａ」を表す）が０．１％、Ｏ66（「Ｂ」を表す）が２％、Ｏ67（「Ｃ」を表す）が０．０１％．．．Ｏ81（「Ｑ」を表す）が８９％．．．、Ｏ90（「Ｚ」を表す）が１．１％のようになる。いくつかの例において、分類器モデル５３０は別の出力を提供することがある。例えば、ＡＳＣＩＩのＯ128（拡張ＡＳＣＩＩの場合はＯ256）は、「文字なし」の出力であり、分類されつつあるテキストの一部がＡＳＣＩＩ文字（または拡張ＡＳＣＩＩ文字）でない確率とともに示される。分類器モデル５３０の他の出力もありうる。
【００９３】
教師付き学習中に、予測値とグラウンドトゥルース値（例えば、トレーニングデータ項目のデータラベル）との間の不一致を測定する損失関数を使用して、分類器モデル５３０をトレーニングすることができる。より詳細には、トレーニング分類器モデル５３０の損失関数ＬＦ１は、予測値とトレーニングデータ項目のデータラベルとの間の「ユークリッド距離」を表す平均二乗誤差（ＭＳＥ）値に基づくものでありうる。すなわち、この「Ｑ」の例における大文字の場合、損失関数ＬＦ１によれば、Ｏ65（「Ａ」を表す）が０％、Ｏ66（「Ｂ」を表す）が０％、Ｏ67（「Ｃ」を表す）が０％．．．Ｏ81（「Ｑ」を表す）が１００％．．．Ｏ90（「Ｚ」を表す）が０％のように値が決定されうる。損失関数の出力を、分類器モデル５３０の各層の勾配により逆伝播させ、誤差値を減らすために各層のパラメーターをどの程度調整すればよいかを決定できる。誤差値は例えば、｜Ｏx−ＬＦ１（Ｏx）｜（Ｌ１ノルム）または｜｛Ｏx−ＬＦ１（Ｏx）｝2｜1/2（Ｌ２ノルム）のような、ＯxとＬＦ１（Ｏx）との差に基づいて計算された誤差値である。他の損失関数も可能である。例えば、損失関数は、交差エントロピー損失および/または他の値に基づくものであってもよい。
【００９４】
すなわち、分類器モデル５３０は、各入力画像の各部分にわたって反復してエラー値を減少させるようノードの重みを調整することにより、描写された文字を分類する（また、それによって光学文字認識を実行する）方法を学習しうる。分類器モデル５３０のトレーニングは、エラー値がしきい値を下回った時点で、例えば、Ｏ0．．．Ｏ127（拡張ＡＳＣＩＩの場合はＯ0．．．Ｏ255）を足し合わせたエラー値合計ＳＥＶを、所定数ＮＥＶ（たとえば、１，１０，１０００，５０００）の入力画像について足し合わせた値が、しきい値エラー値ＴＥＶ未満となった時点で完了しうる（すなわち、ＳＥＶが直近のＮＥＶの入力画像についての合計であるとき、ＳＥＶ＜ＴＶであればトレーニングが完了する）。分類器モデル５３０のトレーニングの完了時を決定するる他の技術も可能である。
【００９５】
認識モデル５４０は、トレーニングされた認識ＣＮＮ５４２およびトレーニングされた回帰型ニューラルネットワーク５４４を含みうる。認識ＣＮＮ５４２は、分類器モデル５３０の出力Ｏxに基づいて、どの文字が分類器モデルによって認識されたかを決定できる。文字「Ｑ」に関する上記の分類例の続きであるが、分類子モデル５３０が「Ｑ」を入力として受信し、次いで上記の出力、例えば、Ｏ65（「Ａ」を表す）が０．１％、Ｏ66（「Ｂ」を表す）が２％、Ｏ67（「Ｃ」を表す）が０．０１％、…Ｏ81（「Ｑ」を表す）が８９％．．．Ｏ90（「Ｚ」を表す）が１．１％を出力すると仮定する。認識ＣＮＮ５４２は、分類器モデル５３０の出力Ｏxを受信し、Ｏ81（「Ｑ」を表す）が最も高い確率を有するという決定を下し、したがって、分類器モデル５３０が文字「Ｑ」を認識したという決定を下す。
【００９６】
回帰型ニューラルネットワーク５４４は、ＡＮＮのノード間に接続を有し、そのような接続によって時系列に沿った有向グラフが形成されるＡＮＮである回帰型ニューラルネットワークを含みうる。回帰型ニューラルネットワーク５４４は、１つ以上のメモリ層を使用して、過去の入力／イベント、例えば以前に受信した文字／テキスト項目に関する情報を保存できる。ノードおよび／またはメモリ層の間のこのような接続により、回帰型ニューラルネットワーク５４４は経時的な動的挙動、すなわち時間の経過に伴う挙動の変化を示しうる。
【００９７】
トレーニングされた回帰型ニューラルネットワーク５４４は、コネクショニスト時系列分類５４６およびアテンション５４８を含む機能を利用して、その入力（例えば認識ＣＮＮ５４２の出力など）に基づくテキスト認識を行うことができる。回帰型ニューラルネットワーク５４４の観点から見れば、認識ＣＮＮ５４２からの入力は、認識された文字、またはより一般的にはテキスト項目の時系列と考えられる。したがって、トレーニングされた回帰型ニューラルネットワーク５４４は、認識されたテキスト項目の時系列からテキストを予測すること、例えば認識されたテキスト項目の時系列からテキストの単語を予測することができる。
【００９８】
コネクショニスト時系列分類５４６は、トレーニングされた回帰型ニューラルネットワーク５４４の一部として、かつ／またはトレーニングされた回帰型ニューラルネットワーク５４４によって使用されることで、回帰型ニューラルネットワーク５４４によって受信された入力をセグメント化するための、例えば認識されたテキスト項目の時系列を単語、句、文などにセグメント化するための入力を提供する。アテンション５４８は、回帰型ニューラルネットワーク５４４のメモリ層からリコールされた過去の入力およびコネクショニスト時系列分類５４６からの入力をセグメント化するための入力に「アテンション」または重みを割り当てることができ、認識されたテキスト項目の時系列からより良いテキスト予測が行えるようにこれらの入力の重み付けの仕方を決定する。
【００９９】
予測モデル３６０が前処理された実際の入力３５０のテキストを認識した後、ＯＣＲパイプライン５００は、予測モデル３６０の出力の後処理５５０の実行に進むことができる。例えば、認識モデル５４０が文字（または単語）レベルで出力を提供する場合、後処理５５０は、出力をテキストの単語（または句／文）に書式を再設定することを含みうる。別の例を挙げると、認識モデル５４０が認識されたテキストおよび認識されたテキストの確率に関する出力を提供する場合、後処理５５０は、認識されたテキストに関する出力と認識されたテキストの確率に関する出力とを組み合わせて、予測モデル出力３７０として提供されるテキストと確率の両方を含む１つの共通出力とすることを含みうる。関連する一例において、認識モデル５４０が認識されたテキストおよび認識されたテキストの確率に関する出力を提供する場合、後処理５５０は、これらの出力からの選択を行うことを含みうる。例えば、認識されたテキストの確率に関する出力が不要である場合、後処理５５０は、認識されたテキストに関する出力のみを出力される予測モデル出力３７０として選択することができる。
【０１００】
予測モデル３６０の出力の後処理５５０が完了した後、ＯＣＲパイプライン５００は、予測モデルの出力３７０に進むことができる。ＯＣＲパイプライン５００は、予測モデル出力３７０の一部または全部を保存し、予測モデル出力３７０の一部または全部を１つ以上の他の演算装置に伝送し、予測モデル出力３７０の一部または全部を表示し、かつ／または別の方法で予測モデル出力３７０の一部または全部を供給することにより、予測モデル出力３７０を提供することができる。
【０１０１】
いくつかの例では、予測モデル３６０および／またはＯＣＲパイプライン５００の一部または全部を具体化するための特定のハードウェア（例えば、特定用途向け集積回路（ＡＳＩＣ）、グラフィックス処理装置（ＧＰＵ）、テンソル処理ユニット（ＴＰＵ））、および／または他の回路）を構築することができる。例えば、予測モデル３６０および／またはＯＣＲパイプライン５００の役割を果たす特定のハードウェアは、一般に光学文字認識を実行する装置、例えばスキャン／印刷装置などで光学文字認識を実行するために使用される１つ以上の「ＯＣＲチップ」として具体化されうる。
【０１０２】
図７は、例示的な実施形態による、教師付き学習パイプライン３００がトレーニングされ、関連するＯＣＲパイプライン５００がＰＤＬ入力に基づいて予測モデル出力７４０を生成するシナリオ７００を示す。シナリオ７００において、トレーニングデータ生成部３１０は、入力ＰＤＬファイルを処理することによりレンダリングされたＰＤＬ７２０を生成し、入力ＰＤＬファイルを解析してトレーニングデータ項目７３０を構成する値を決定することにより関連するトレーニングデータ項目７３０を生成する。図７は、レンダリングされたＰＤＬ７２０が、グレーのページのほぼ中央にある黒い文字「ＡＢＣ」を表すことを示している。
【０１０３】
図７はまた、トレーニングデータ項目７３０が、レンダリングされたＰＤＬ７２０が「ＡＢＣ」という「テキスト」を有すること、テキスト色は「０，０，０，２５５」（黒いテキスト色を示すためにＣＭＹＫを使用して表現）であること、テキストフォントが「Ｈｅｌｖｅｔｉｃａ」であること、テキストフォントサイズが「４８」であること、「テキスト境界ボックス（ＢＢｏｘ）が７５，６４，１６５，１００」であること、テキストの回転は「０」度と指定されていること、および背景色がＣＭＹＫで「０，０，０，１２８」と表現された、例えば灰色の背景であることを含むレンダリングされたＰＤＬ７２０に関する情報を提供することを示している。
【０１０４】
シナリオ７００において、境界ボックスは、四隅のうち２つ、すなわち境界ボックスの左上隅と右下隅によって指定される。各隅は、ピクセル位置「ＸＹ」で指定される。「Ｘ」の値は、ページ（この場合は、レンダリングされたＰＤＬ７２０によって示されるページ）の左上隅を「０」として始まり、左上隅から右に移動するにつれて増加するピクセルで指定される。「Ｙ」の値は、ページの左上隅を「０」として始まり、左上隅から下に移動するにつれて増加するピクセルで示される。したがって、トレーニングデータ項目７３０「７５，６４，１６５，１００」で指定される境界ボックスは、その左上隅が「７５，６４」、すなわちレンダリングされたＰＤＬ７２０のページの左上隅から右へ７５ピクセル、下へ６４ピクセルの位置にあり、その右下隅は「１６５，１００」、すなわちレンダリングされたＰＤＬ７２０のページの左上隅から右へ１６５ピクセル、下へ１００ピクセルの位置にある。
【０１０５】
シナリオ７００は続くが、ここで機械学習アルゴリズム３４０は、レンダリングされたＰＤＬ７２０に部分的に基づいてトレーニングされ、トレーニング中にトレーニングデータ項目７３０が入力として提供される。機械学習アルゴリズム３４０がトレーニングされた後、機械学習アルゴリズム３４０は予測モデル３６０とみなされ、ＯＣＲパイプライン５００の一部として利用される。
【０１０６】
シナリオ７００はＯＣＲパイプライン５００に進み、レンダリングされたＰＤＬ７２０を実際の入力３５０の一部として受け取る。実際の特徴ベクトル３５２が実際の入力３５０から生成され、実際の入力の前処理５１０が実行された後、前処理された実際の入力および実際の特徴ベクトル３５２が予測モデル３６０に提供される。次いで、予測モデル３６０は、ＯＣＲパイプライン５００に関連して上述したように、前処理された実際の入力および実際の特徴ベクトル３５２に作用して、シナリオ７００の予測モデル出力７４０を生成し、レンダリングされたＰＤＬで認識されるテキストの出力を提供する。
【０１０７】
シナリオ７００において、予測モデル３６０の予測モデル出力３７０は、後処理５５０によって後処理されて、ｈＯＣＲに類似した形式の出力を生成する。この後処理された出力は、図７において予測モデル出力７４０として示されている。ｈＯＣＲと同様に、予測モデル出力７４０は、図７に示す「＜ｐ  ｃｌａｓｓ＝‘ｏｃｒ＿ｐａｒ’  ｌａｎｇ＝‘ｅｎｇ’  ｔｉｔｌｅ＝“ｔｒａｉｎｉｎｇ１”＞」のような「＜ｐ．．．．＞」（段落）タグを使用して段落の境界を示すことができ、ｈＯＣＲで示され認識されたテキスト行を「＜ｓｐａｎ．．．＞」タグと「ｏｃｒ＿ｌｉｎｅ」という「ｃｌａｓｓ」を使用して示すことができる。
【０１０８】
予測モデル出力７４０の例において、スパンタグは「＜ｓｐａｎ  ｃｌａｓｓ＝‘ｏｃｒｘ＿ｗｏｒｄ’  ｔｉｔｌｅ＝‘ｂｂｏｘ  ７３  ６２  １６８  ９９；ｘ＿ｗｃｏｎｆ９３’＞ＡＢＣ＜／ｓｐａｎ＞」である。ｃｌａｓｓ「ｏｃｒ＿ｗｏｒｄ」によって、ＯＣＲを使用して認識された単語に関連するスパンが示される。また、左上隅のＸＹ座標が「７３  ６２」、右下隅のＸＹ座標が「１６８  ９９」である「ｂｂｏｘ」（境界ボックス）を伴う「タイトル」を有することと、信頼値「ｘ＿ｗｃｏｎｆ」が９３すなわち９３％であることと、予測されたテキストが「ＡＢＣ」であることとが、「＜ｓｐａｎ．．．＞」と＜／ｓｐａｎ＞との間に示される。他のシナリオにおいては、予測モデル出力の他の形式もありうる。予測モデル出力７４０が生成された後、ＯＣＲパイプライン５００が予測モデル出力７４０を予測モデル出力３７０の一部として提供することにより、シナリオ７００は終了する。
【０１０９】
（動作方法の例）
図８に、例示的実施形態による方法８００のフローチャートを示す。方法８００は、人工ニューラルネットワークのトレーニングおよび利用のために使用できる。方法８００は、演算装置２００などの演算装置によって実行できる。
【０１１０】
図８は、方法８００がブロック８１０から開始可能であることを示す。ブロック８１０において、演算装置は、少なくとも図３、４および７に関連して本明細書で説明したように、テキストを含むトレーニング文書を受信できる。
【０１１１】
ブロック８２０において、演算装置は、トレーニング文書を解析して、複数のトレーニングデータ項目を決定することができる。複数のトレーニングデータ項目の各トレーニングデータ項目はそれぞれ、少なくとも図３、４および７に関連して本明細書で説明したように、トレーニング文書内のテキストに関連するトレーニングラベルと、トレーニングラベルに関連するトレーニング文書内のテキストの位置を示す位置情報とを含む。
【０１１２】
ブロック８３０において、少なくとも図３、４および７に関連して本明細書で説明したように、複数のトレーニングデータ項目と、トレーニング文書を含むトレーニング入力とを使用して、文書内のテキストを認識するようにＡＮＮをトレーニングすることができる。
【０１１３】
ブロック８４０では、ＡＮＮのトレーニングを行った後、トレーニング文書とは異なるアプリケーション文書のテキストを予測する要求が受信されうる。このアプリケーション文書は、少なくとも図５に関連して本明細書で説明したように、第２のテキストを含む。
【０１１４】
ブロック８５０において、第２のテキストの予測は、少なくとも図５、６Ａ、６Ｂ、６Ｃ、および７に関連して本明細書で説明したように、トレーニング済みのＡＮＮをアプリケーション文書に適用することにより決定されうる。
【０１１５】
ブロック８６０では、少なくとも図５および７に関連して本明細書で説明したように、第２のテキストの予測が決定された後、この第２のテキストに関連する情報が出力として提供されうる。
【０１１６】
いくつかの例では、ＰＤＬを使用してトレーニング文書を指定できる。この場合、少なくとも図３および４に関連して本明細書で説明したように、トレーニング文書の解析によって複数のトレーニングデータ項目を決定することは、トレーニング文書のＰＤＬを解析して複数のトレーニングデータ項目を決定することを含みうる。
【０１１７】
いくつかの例において、トレーニング文書のＰＤＬを解析して複数のトレーニングデータ項目を決定することは、少なくとも図３および４に関連して本明細書で説明したように、トレーニング文書のＰＤＬの解析によってトレーニングラベルに関連するトレーニング文書内のテキストの位置を示す境界ボックスを含みうる位置情報を決定することを含みうる。
【０１１８】
いくつかの例では、複数のトレーニングデータ項目とトレーニング入力とを使用して文書内のテキストを認識するようにＡＮＮをトレーニングすることは、少なくとも図３および４に関連して本明細書で説明したように、トレーニング文書のＰＤＬを使用してトレーニング文書の電子コピーを生成し、トレーニング済みのＡＮＮをトレーニング文書に適用することにより、トレーニング文書のテキストの予測を決定し、複数のトレーニングデータ項目に基づいてトレーニング文書のテキストの予測の精度を決定することを含みうる。
【０１１９】
いくつかの例において、複数のトレーニングデータ項目に基づいてトレーニング文書のテキストの予測の精度を決定することは、少なくとも図３および４に関連して本明細書で説明したように、複数のトレーニングデータ項目のうちの第１のトレーニングデータ項目（この第１のトレーニングデータ項目は、トレーニング文書内の第１のテキストに関連する第１のトレーニングラベルと、トレーニング文書内の第１のテキストの第１の位置を示す第１の位置情報とを含みうる）を決定すること、テキストの予測内の第１の位置にある第１の予測されたテキストを決定すること、および第１のテキストに関連する第１のトレーニングラベルと第１の予測されたテキストとの比較に基づいてトレーニング文書のテキストの予測の精度を決定することを含みうる。
【０１２０】
いくつかの例において、第１のテキストに関連する第１のトレーニングラベルと第１の予測されたテキストとの比較に基づいてトレーニング文書のテキストの予測の精度を決定することは、少なくとも図３および４に関連して本明細書で説明したように、第１のテキストが第１の予測されたテキストと一致するか否かを決定すること、および第１のテキストが第１の予測されたテキストと一致していることを決定した後、テキストの予測の精度を高めることを含みうる。
【０１２１】
いくつかの例において、トレーニング文書のＰＤＬを使用してトレーニング文書の電子コピーを生成することは、少なくとも図３および４に関連して本明細書で説明したように、トレーニング文書のＰＤＬおよび１つ以上のデータ拡張技術を使用してトレーニング文書の電子コピーを生成することを含みうる。
【０１２２】
いくつかの例において、１つ以上のデータ拡張技術は、少なくとも図３および４に関連して本明細書で説明したように、トレーニング文書の電子コピーの少なくとも一部を歪ませる技術、トレーニング文書の電子コピーの少なくとも一部を回転させる技術、トレーニング文書の電子コピーの少なくとも一部にノイズを混入する技術、およびトレーニング文書の電子コピーの少なくとも一部をフィルタリングする技術のうち１つ以上を含みうる。
【０１２３】
いくつかの例において、トレーニング文書のＰＤＬを使用してトレーニング文書の電子コピーを生成することは、少なくとも図３および４に関連して本明細書で説明したように、トレーニング文書の紙コピーを印刷すること、およびこのトレーニング文書の紙コピーをスキャンしてトレーニング文書の電子コピーを生成することを含みうる。
【０１２４】
いくつかの例において、トレーニング文書のＰＤＬを解析することは、少なくとも図３および４に関連して本明細書で説明したように、トレーニング文書のＰＤＬを変更して、複数の異なるフォントを使用するテキスト、複数の異なる色を使用するテキスト、複数の異なるサイズを使用するテキスト、複数の異なるスタイルを使用するテキスト、および複数の背景色を利用する複数のページの少なくとも１つを含むようにすることを含みうる。
【０１２５】
いくつかの例において、複数のトレーニングデータ項目とトレーニング入力とを使用して文書内のテキストを認識するようにＡＮＮをトレーニングすることは、少なくとも図３、４および７に関連して本明細書で説明したように、トレーニング入力に基づいて特徴ベクトルを決定することを含みうる。
【０１２６】
詳細な説明、図、および特許請求の範囲に記載されている例示的な実施形態は、限定を意図するものではない。本明細書に提示される主題の精神および範囲から逸脱することなく、他の実施形態を利用することができ、他の変更を行うことができる。本明細書に一般的に記載され、図面に示される本開示の態様は、多種多様な異なる構成で配置、置換、組み合わせ、分離、設計することができ、それらがすべて明示的に本明細書に包含されることは、容易に理解されよう。
【０１２７】
図面に示し、本明細書中で説明した任意のまたはすべてのラダー図、シナリオ、およびフローチャートにおいて、各ブロックおよび／または通信は、例示の実施形態に沿った情報の処理および／または情報の伝送を表しうる。別の実施形態もこれらの例示的な実施形態の範囲内に含まれる。そのような別の実施形態において、例えば、ブロックとして記載された機能、伝送、通信、要求、応答および／またはメッセージは、その機能性に応じて、示されたあるいは説明された順序とは異なる順序で実行されてもよく、実質的に同時にあるいは逆の順序での実行も含まれる。さらに、より多くの、あるいはより少ないブロックおよび／または機能を本明細書中で説明した任意のラダー図、シナリオ、およびフローチャートとともに使用してもよく、そのようなラダー図、シナリオ、およびフローチャートは、部分的にまたは全体的に互いに組み合わされてもよい。
【０１２８】
情報の処理を表すブロックは、方法または技術における特定の論理機能を実行するよう構成することの可能な回路に対応する場合がある。それに代えてまたは加えて、情報の処理を表すブロックは、プログラムコード（関連データを含む）のモジュール、セグメント、または一部に対応する場合がある。プログラムコードは、方法または技術における特定の論理機能または動作を実装するための、プロセッサーによって実行可能な１つ以上の命令を含んでいてもよい。プログラムコードおよび／または関連データは、ディスクもしくはハードドライブを含む記憶装置のような任意のタイプのコンピューター可読媒体または他の記憶媒体に記憶されてもよい。
【０１２９】
コンピューター可読媒体は、レジスタメモリ、プロセッサーキャッシュ、およびランダムアクセスメモリ（ＲＡＭ）のようなデータを短期間記憶するコンピューター可読媒体のような非一時的コンピューター可読媒体も含みうる。コンピューター可読媒体はまた、プログラムコードおよび／またはデータを長期にわたって記憶する非一時的コンピューター可読媒体、例えば、読み出し専用メモリ（ＲＯＭ）、光ディスクまたは磁気ディスク、コンパクトディスク読み出し専用メモリ（ＣＤ−ＲＯＭ）などの二次または持続的長期記憶媒体を含みうる。コンピューター可読媒体は、任意の他の揮発性または不揮発性記憶システムであってもよい。コンピューター可読媒体は、例えば、コンピューター可読記憶媒体、または有形の記憶装置とみなされうる。
【０１３０】
様々な態様および実施形態を本明細書で開示したが、他の態様および実施形態も当業者には明らかであろう。本明細書で開示した様々な態様および実施形態は、例示を目的とするものであり、限定を意図するものではない。真の範囲は、以下の特許請求の範囲によって示される。
【図１】
2020173808.tif 000003
【図２】
2020173808.tif 000004
【図３】
2020173808.tif 000005
【図４】
2020173808.tif 000006
【図５】
2020173808.tif 000007
【図６Ａ】
2020173808.tif 000008
【図６Ｂ】
2020173808.tif 000009
【図６Ｃ】
2020173808.tif 000010
【図７】
2020173808.tif 000011
【図８】
2020173808.tif 000012