(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-08-05
(45)【発行日】2024-08-14
(54)【発明の名称】ページ記述言語ジョブの解析によるニューラルネットワーク用光学式文字認識トレーニングデータの生成
(51)【国際特許分類】
G06V 30/194 20220101AFI20240806BHJP
G06T 7/00 20170101ALI20240806BHJP
【FI】
G06V30/194
G06T7/00 350C
(21)【出願番号】P 2020069048
(22)【出願日】2020-04-07
【審査請求日】2023-03-29
(32)【優先日】2019-04-08
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】000006150
【氏名又は名称】京セラドキュメントソリューションズ株式会社
(74)【代理人】
【識別番号】110003443
【氏名又は名称】弁理士法人TNKアジア国際特許事務所
(74)【代理人】
【識別番号】100168583
【氏名又は名称】前井 宏之
(72)【発明者】
【氏名】スー ドンペイ
【審査官】千葉 久博
(56)【参考文献】
【文献】特開2019-46269(JP,A)
【文献】特開2011-8802(JP,A)
【文献】特開2002-237940(JP,A)
【文献】米国特許出願公開第2019/0026550(US,A1)
【文献】Joost van Beusekom, 外2名,"Automated OCR Ground Truth Generation",2008 The Eighth IAPR International Workshop on Document Analysis Systems,IEEE,2008年09月16日,p.111-117
(58)【調査した分野】(Int.Cl.,DB名)
G06V 30/194
G06T 7/00
(57)【特許請求の範囲】
【請求項1】
人工ニューラルネットワーク(ANN)のトレーニングおよび利用のための方法であって、
演算装置において、テキストを含むトレーニング文書を受信すること;
前記演算装置を使用して前記トレーニング文書を解析し、前記トレーニング文書内のテキストに関連するトレーニングラベルと、前記トレーニングラベルに関連する前記トレーニング文書内のテキストの位置を示す位置情報とを含む複数のトレーニングデータ項目を決定すること;
前記複数のトレーニングデータ項目と前記トレーニング文書を含むトレーニング入力とを使用して文書内のテキストを認識するようにANNをトレーニングすること;
ANNのトレーニングを行った後、前記トレーニング文書とは異なる、第2のテキストを含むアプリケーション文書内のテキストを予測する要求を受信すること;
前記トレーニング済みのANNを前記アプリケーション文書に適用することによって前記第2のテキストの予測を決定すること;および
前記第2のテキストの前記予測を決定した後、前記第2のテキストに関連する情報を出力として提供すること
を含
み、
前記トレーニング文書はページ記述言語(PDL)を使用して指定され、前記トレーニング文書を解析して前記複数のトレーニングデータ項目を決定することは、前記トレーニング文書のPDLを解析して前記複数のトレーニングデータ項目を決定することを含み、
前記複数のトレーニングデータ項目と前記トレーニング入力とを使用して文書内のテキストを認識するようにANNをトレーニングすることは、
前記トレーニング文書のPDLを使用して前記トレーニング文書の電子コピーを生成すること;
前記トレーニング済みのANNを前記トレーニング文書に適用することによって前記トレーニング文書の前記テキストの予測を決定すること;および
前記複数のトレーニングデータ項目に基づいて前記トレーニング文書の前記テキストの前記予測の精度を決定すること
を含み、
テキストの前記予測は信頼値を含み、
前記信頼値は、テキストの出力予測決定の一部として、機械学習アルゴリズムによって決定され、テキストの出力予測とともに出力され、前記予測の精度の値と比較することにより、前記信頼値の正確性の評価および/またはトレーニング中のANNの更新に使用される、方法。
【請求項2】
前記トレーニング文書のPDLを解析して前記複数のトレーニングデータ項目を決定することは、前記トレーニング文書のPDLを解析して前記トレーニングラベルに関連する前記トレーニング文書内の前記テキストの位置を示す境界ボックスを含む位置情報を決定することを含む、請求項
1に記載の方法。
【請求項3】
前記複数のトレーニングデータ項目に基づいて前記トレーニング文書の前記テキストの前記予測の前記精度を決定することは、
前記複数のトレーニングデータ項目のうちの、前記トレーニング文書内の第1のテキストに関連する第1のトレーニングラベルと、前記トレーニング文書内の前記第1のテキストの第1の位置を示す第1の位置情報とを含む第1のトレーニングデータ項目を決定すること;
テキストの前記予測内の前記第1の位置にある第1の予測されたテキストを決定すること;および
前記第1のテキストに関連する前記第1のトレーニングラベルと前記第1の予測されたテキストとの比較に基づいて、前記トレーニング文書のテキストの前記予測の前記精度を決定すること
を含む、請求項
1または請求項2に記載の方法。
【請求項4】
前記第1のテキストに関連する前記第1のトレーニングラベルと前記第1の予測されたテキストとの比較に基づいて、前記トレーニング文書のテキストの前記予測の前記精度を決定することは、
前記第1のテキストが前記第1の予測されたテキストと一致するか否かを決定すること;および
前記第1のテキストが前記第1の予測されたテキストと一致していることを決定した後、テキストの前記予測の精度を高めること
を含む、請求項
3に記載の方法。
【請求項5】
前記トレーニング文書の前記PDLを使用して前記トレーニング文書の前記電子コピーを生成することは、前記トレーニング文書の前記PDLおよび1つ以上のデータ拡張技術を使用して前記トレーニング文書の前記電子コピーを生成することを含む、請求項
1から
請求項4のいずれか一項に記載の方法。
【請求項6】
前記1つ以上のデータ拡張技術は、前記トレーニング文書の前記電子コピーの少なくとも一部を歪ませる技術、前記トレーニング文書の前記電子コピーの少なくとも一部を回転させる技術、前記トレーニング文書の前記電子コピーの少なくとも一部にノイズを混入する技術、および前記トレーニング文書の前記電子コピーの少なくとも一部をフィルタリングする技術のうち1つ以上を含む、請求項
5に記載の方法。
【請求項7】
前記トレーニング文書の前記PDLを使用して前記トレーニング文書の前記電子コピーを生成することは、
前記トレーニング文書の紙コピーを印刷すること、および
前記トレーニング文書の前記紙コピーをスキャンして前記トレーニング文書の前記電子コピーを生成すること
を含む、請求項
1から
請求項6のいずれか一項に記載の方法。
【請求項8】
前記トレーニング文書の前記PDLを解析することは、前記トレーニング文書が、複数の異なるフォントを使用するテキスト、複数の異なる色を使用するテキスト、複数の異なるサイズを使用するテキスト、複数の異なるスタイルを使用するテキスト、および複数の背景色を利用する複数のページのうち少なくとも1つを含むように、前記トレーニング文書の前記PDLを変更すること
を含む、請求項
1から
請求項7のいずれか一項に記載の方法。
【請求項9】
前記複数のトレーニングデータ項目とトレーニング入力とを使用して文書内のテキストを認識するようにANNをトレーニングすることは、前記トレーニング入力に基づいて特徴ベクトルを決定することを含む、請求項
1から
請求項8のいずれか一項に記載の方法。
【請求項10】
演算装置であって、
1つ以上のプロセッサーと
少なくともコンピューター可読命令を記憶している非一時的データ記憶装置とを含み、前記コンピューター可読命令が1つ以上のプロセッサーによって実行されることによって、
テキストを含むトレーニング文書を受信すること;
前記トレーニング文書を解析して、前記トレーニング文書内のテキストに関連するトレーニングラベルと、前記トレーニングラベルに関連する前記トレーニング文書内のテキストの位置を示す位置情報とを含む複数のトレーニングデータ項目を決定すること;
前記複数のトレーニングデータ項目と前記トレーニング文書を含むトレーニング入力とを使用して文書内のテキストを認識するように人工ニューラルネットワーク(ANN)をトレーニングすること;
ANNのトレーニングを行った後、前記トレーニング文書とは異なる、第2のテキストを含むアプリケーション文書内のテキストを予測する要求を受信すること;
前記トレーニング済みのANNを前記アプリケーション文書に適用することによって前記第2のテキストの予測を決定すること;および
前記第2のテキストの前記予測を決定した後、前記第2のテキストに関連する情報を出力として提供すること
を含
み、
前記トレーニング文書はページ記述言語(PDL)を使用して指定され、前記トレーニング文書を解析して前記複数のトレーニングデータ項目を決定することは、前記トレーニング文書のPDLを解析して前記複数のトレーニングデータ項目を決定することを含み、
前記複数のトレーニングデータ項目と前記トレーニング入力とを使用して文書内のテキストを認識するようにANNをトレーニングすることは、
前記トレーニング文書のPDLを使用して前記トレーニング文書の電子コピーを生成すること;
前記トレーニング済みのANNを前記トレーニング文書に適用することによって前記トレーニング文書の前記テキストの予測を決定すること;および
前記複数のトレーニングデータ項目に基づいて前記トレーニング文書の前記テキストの前記予測の精度を決定すること
を含み、
テキストの前記予測は信頼値を含み、
前記信頼値は、テキストの出力予測決定の一部として、機械学習アルゴリズムによって決定され、テキストの出力予測とともに出力され、前記予測の精度の値と比較することにより、前記信頼値の正確性の評価および/またはトレーニング中のANNの更新に使用されること、
を含むタスクを実行する、演算装置。
【請求項11】
製品であって、
少なくともコンピューター可読命令を記憶している非一時的データ記憶装置を含み、
前記コンピューター可読命令
は、演算装置の1つ以上のプロセッサーによって実行さ
れ、前記演算装置
に
テキストを含むトレーニング文書を受信すること;
前記トレーニング文書を解析して、前記トレーニング文書内のテキストに関連するトレーニングラベルと、前記トレーニングラベルに関連する前記トレーニング文書内のテキストの位置を示す位置情報とを含む複数のトレーニングデータ項目を決定すること;
前記複数のトレーニングデータ項目と前記トレーニング文書を含むトレーニング入力とを使用して文書内のテキストを認識するように人工ニューラルネットワーク(ANN)をトレーニングすること;
ANNのトレーニングを行った後、前記トレーニング文書とは異なる、第2のテキストを含むアプリケーション文書内のテキストを予測する要求を受信すること;
前記トレーニング済みのANNを前記アプリケーション文書に適用することによって前記第2のテキストの予測を決定すること;および
前記第2のテキストの前記予測を決定した後、前記第2のテキストに関連する情報を出力として提供すること
を含み、
前記トレーニング文書はページ記述言語(PDL)を使用して指定され、前記トレーニング文書を解析して前記複数のトレーニングデータ項目を決定することは、前記トレーニング文書のPDLを解析して前記複数のトレーニングデータ項目を決定することを含み、
前記複数のトレーニングデータ項目と前記トレーニング入力とを使用して文書内のテキストを認識するようにANNをトレーニングすることは、
前記トレーニング文書のPDLを使用して前記トレーニング文書の電子コピーを生成すること;
前記トレーニング済みのANNを前記トレーニング文書に適用することによって前記トレーニング文書の前記テキストの予測を決定すること;および
前記複数のトレーニングデータ項目に基づいて前記トレーニング文書の前記テキストの前記予測の精度を決定すること
を含み、
テキストの前記予測は信頼値を含み、
前記信頼値は、テキストの出力予測決定の一部として、機械学習アルゴリズムによって決定され、テキストの出力予測とともに出力され、前記予測の精度の値と比較することにより、前記信頼値の正確性の評価および/またはトレーニング中のANNの更新に使用されること、
を含むタスクを実行
させる、製品。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ページ記述言語ジョブの解析によるニューラルネットワーク用光学式文字認識トレーニングデータの生成に関する。
【0002】
本出願は、2019年4月8日に出願の米国特許出願第16/378470号に対する優先権を主張する。この内容全体を本明細書において援用する。
【背景技術】
【0003】
印刷装置の数および地理的フットプリントは世界的に増加しており、ネットワークへの接続も増加し続けている。ネットワークは、多くの印刷装置を含みうる。そのような印刷装置は、様々な特徴、機能、および性能を有しうる。例えば、カラーで印刷の可能な印刷装置もあれば、そうでないものもある。また別の例を挙げると、用紙の両面への印刷を可能にする両面印刷ハードウェアを備えた印刷装置もあれば、片面への印刷のみが可能な印刷装置もある。
【0004】
また、一部の印刷装置には、光学式文字認識(OCR)機能が備えられている。光学式文字認識は、タイプまたは印刷されたテキストを機械的に符号化されたテキストに変換するものであり、スキャンした文書または文書の写真からの変換である場合が多い。光学式文字認識は、多くのアプリケーションにおいて電子データの入力に広く使用されているツールである。従来の光学式文字認識は、パターンマッチング、画像相関法、グリフ分解、特徴検出などの技術を含む。広範な人間工学を利用することにより、テキスト内の入力グリフの分離やグリフ機能の設計ができる。
【発明の概要】
【課題を解決するための手段】
【0005】
第1の態様において、人工ニューラルネットワーク(ANN)をトレーニングおよび利用する方法が提供される。ある演算装置は、テキストを含むトレーニング文書を受信する。この演算装置は、トレーニング文書を解析し、複数のトレーニングデータ項目を決定する。複数のトレーニングデータ項目の各トレーニングデータ項目には、トレーニング文書内のテキストに関連するトレーニングラベルと、トレーニングラベルに関連するトレーニング文書内のテキストの位置を示す位置情報とが含まれる。ANNは、複数のトレーニングデータ項目とトレーニング入力とを使用して文書内のテキストを認識するようにトレーニングされ、トレーニング入力にはトレーニング文書が含まれる。ANNのトレーニングを行った後、トレーニング文書とは異なるアプリケーション文書のテキストを予測する要求を受信する。このアプリケーション文書は第2のテキストを含む。第2のテキストの予測は、トレーニング済みのANNをアプリケーション文書に適用することによって決定される。第2のテキストの予測が決定された後、第2のテキストに関連する情報が出力として提供される。
【0006】
第2の態様において、演算装置が提供される。演算装置は、1つ以上のプロセッサーと、非一時的なデータ記憶装置とを含む。非一時的データ記憶装置は、少なくともコンピューター可読命令を記憶しており、コンピューター可読命令は、1つ以上のプロセッサーによって実行されると、演算装置にタスクを実行させる。タスクは、テキストを含むトレーニング文書を受信すること、トレーニング文書を解析して複数のトレーニングデータ項目(複数のトレーニングデータ項目の各トレーニングデータ項目は、トレーニング文書内のテキストに関連するトレーニングラベルと、トレーニングラベルに関連するトレーニング文書内のテキストの位置を示す位置情報を含む)を決定すること、複数のトレーニングデータ項目とトレーニング入力(トレーニング文書を含む)とを使用して、文書内のテキストを認識するようにANNをトレーニングすること、ANNをトレーニングした後、トレーニング文書とは異なるアプリケーション文書(第2のテキストを含む)のテキストを予測する要求を受信すること、トレーニング済みのANNをアプリケーション文書に適用することによって第2のテキストの予測を決定すること、および、第2のテキストの予測を決定した後、第2のテキストに関連する情報を出力として提供することを含む。
【0007】
第3の態様において、製品が提供される。製品は、少なくともコンピューター可読命令を記憶している非一時的データ記憶装置を含み、コンピューター可読命令は、1つ以上の処理装置によって実行されると、演算装置にタスクを実行させる。タスクは、テキストを含むトレーニング文書を受信すること、トレーニング文書を解析して複数のトレーニングデータ項目(複数のトレーニングデータ項目の各トレーニングデータ項目は、トレーニング文書内のテキストに関連するトレーニングラベルと、トレーニングラベルに関連するトレーニング文書内のテキストの位置を示す位置情報を含む)を決定すること、複数のトレーニングデータ項目とトレーニング入力(トレーニング文書を含む)とを使用して、文書内のテキストを認識するようにANNをトレーニングすること、ANNをトレーニングした後、トレーニング文書とは異なるアプリケーション文書(第2のテキストを含む)のテキストを予測する要求を受信すること、トレーニング済みのANNをアプリケーション文書に適用することによって第2のテキストの予測を決定すること、および、第2のテキストの予測を決定した後、第2のテキストに関連する情報を出力として提供することを含む。
【0008】
その他の態様、実施形態、および実装は、添付の図面を適宜参照しながら以下の詳細な説明を読むことにより、当業者には明らかになるであろう。
【図面の簡単な説明】
【0009】
【
図1】例示的実施形態による印刷ネットワークの図である。
【
図2】例示的実施形態による演算装置を示すブロック図である。
【
図3】例示的実施形態による教師付き学習パイプラインの図である。
【
図4】例示的な実施形態による、
図3の教師付き学習パイプラインにおけるトレーニングデータ生成部を示す。
【
図5】例示的実施形態による、光学式文字認識のためのパイプラインの図である。
【
図6A】例示的実施形態による、
図5のパイプラインの検出畳み込みニューラルネットワーク(CNN)の図である。
【
図6B】例示的実施形態による、
図5のパイプラインの検出CNNの別の図である。
【
図6C】例示的実施形態による、
図5のパイプラインの検出CNNの別の図である。
【
図7】例示的実施形態によるシナリオを示す。
図3のパイプラインにおいて、例えばPDL入力の予測モデル出力が生成される。
【
図8】例示的実施形態による方法のフローチャートを示す。
【発明を実施するための形態】
【0010】
以下の詳細な説明では、本明細書の一部を成す添付の図面を参照する。図中、類似の記号は通常、類似の構成要素を示すが、文脈から異なる解釈がなされる場合はこの限りではない。詳細な説明、図、および特許請求の範囲に記載の例示的な実施形態は、限定を意図するものではない。本明細書に提示される主題の範囲から逸脱することなく、他の実施形態を利用することができ、他の変更を行うことができる。本明細書に一般的に記載され、図面に示される本開示の態様は、多種多様な異なる構成で配置、置換、組み合わせ、分離、設計することができ、それらがすべて明示的に本明細書に包含されることは、容易に理解されよう。
【0011】
(序論)
本明細書では、光学文字認識(OCR)において人工ニューラルネットワーク(ANN)および機械学習(ML)を利用するための技術および装置について説明する。ANNは、現在のOCR技術に対して優位性のある精度でテキスト画像内のテキストを予測するために、多数のテキスト画像(例えば、数百、数千、あるいはそれ以上の画像)を使用してトレーニングすることができる。テキスト画像は、1つ以上のテキスト項目、例えば文字、数字、単語、文、段落、符号、表語文字などを描いた画像である。このようなテキスト画像は、様々なソースおよび/またはアプリケーションから得ることができる。得られたテキスト画像は、光学式文字認識を行う方法についてANNをトレーニングするために、提供することができる。
【0012】
人工ニューラルネットワークは、演算を大まかにモデル化できる「ノード」または結合された演算単位の集合体を含みうる。ANNの結合されたノードは、数値などの信号を相互に送信することができる。各ノードは、1つ以上の入力信号を受信し、入力信号に重み付けを行い、重み付けされた入力信号を組み合わせて1つ以上の出力信号を生成することができる。入力信号の重みは、出力信号に対する入力信号の効果を増減させる数値でありうる。
【0013】
ANNは、1つ以上の「層」またはノード群を有することができる。1つ以上の「層」またはノード群としては、入力ノードの1つ以上の層、1つ以上の隠れ層に配置されたノード、および出力ノードの1つ以上の層が含まれるが、これらに限定されない。入力層と出力層との間にある層は「隠れ層」と呼ばれるが、これは、これらの中間層がANNの外部の実体からは見えない、すなわち隠されていることによる。ANN層のその他の例としては、入力を畳み込む(例えば、ダウンサンプリングする)ANNの畳み込み層の外部にある実体から入力を受け取る入力層およびそのような外部の実体へと出力を提供する出力層、入力に対して活性化関数を適用する活性化(例えばRELU)層、入力を結合するプーリング層、ならびに層内の各ノードが入力として先の層からのすべての出力を受け取る全結合層が含まれるが、これらに限定されない。
【0014】
ANNは、1つ以上のタスクを学習するようにトレーニングできる。トレーニング中、ANNは、タスクのパフォーマンスに関するANNによるフィードバックを提供する損失関数に基づいて、ノード内の重みを調整できる。ANNがトレーニング済みとみなされると、トレーニング済みのANNは「モデル」と呼ばれる。ANNは、トレーニング前およびトレーニング中に、対応する入力テキスト画像に描かれたテキストの予測を生成できる。例えば、入力画像に「火炎放射器」という単語の描写が含まれる場合、ANNは、入力画像に描かれたテキストが「火炎放射器」であることを予測する出力を生成できる。
【0015】
ANNのトレーニングは、教師付き学習を含みうる。教師付き学習では、1つ以上のトレーニングデータ項目から構成されるラベル付きトレーニングデータから1つ以上のタスクを実行するための関数をANNに推測させる。いくつかの例において、トレーニングデータ項目には、少なくとも入力オブジェクトと、入力オブジェクトに対してANNが関数を実行した結果の「ラベル付け」または識別を行うことのできる望ましい出力値とが含まれる。トレーニングデータ項目の望ましい出力値は、「データラベル」と呼ばれる。
【0016】
ANNがOCRを学習するための教師付き学習は、1つ以上のテキスト画像に対応するトレーニングデータ項目でラベル付けすることを含みうる。ANNは入力としてテキスト画像を受け取り、テキスト画像内のテキストを予測することができる。テキスト画像用のトレーニングデータ項目は、テキスト画像でOCRを行うためのANNのトレーニングに有用なテキスト画像に関する情報を含みうる。例えば、「ABC1」を描写するテキスト画像「画像1」は、テキスト「ABC1」を示すデータラベル、テキストの1つ以上の色、テキストの1つ以上のフォントおよび/もしくはフォントサイズ、テキスト画像内のテキストの1つ以上の位置、ならびに/またはテキスト画像「画像1」でOCRを行うためのANNのトレーニングに有用なその他の情報を有しうる。教師付き学習において、予測されたテキストをトレーニングデータ項目のデータラベル内のテキストと比較して、ANNがテキスト画像内のテキストを正しく認識したか否かを決定できる。多数のテキスト画像に描写された大量のテキストのトレーニングデータ項目を手動で生成することは、時間および/または費用のかかるプロセスとなりうる。
【0017】
いくつかの例では、印刷ネットワークにおける大多数またはすべての印刷ジョブが、ページ記述言語(PDL)を利用している。PDLの例としては、PostScript(登録商標)、Printer Control Language(PCL(登録商標))、Page Description Format(PDF)、Kyocera PDF(KPDF)、およびExtended Markup Language(XML)Paper Specification(XPS)が挙げられるが、これらに限定されない。PDLでは、テキスト、画像、シェーディング、ベクトル描画などのプリミティブオブジェクトを正確に定義することができる。例えば、各テキスト文字について、PDLは文字コード、文字の位置、フォントサイズ、フォントスタイル(例えばプレーンテキスト/標準、太字、斜体、下線、取り消し線)、フォント色、および/または文字に関するその他の情報を含みうる。
【0018】
入力PDLファイルを処理して、ANNをトレーニングするための1つ以上のテキスト画像を生成することができる。また、入力PDLファイルを演算装置によって解析し、対応する生成テキスト画像に対応する1つ以上のトレーニングデータ項目を生成することもできる。より具体的には、トレーニング文書用の入力PDLファイルの解析および/または別の処理を行うことによって、テキスト文字、位置情報、文字コード、フォントサイズ、フォントスタイル、フォント色、および/またはテキストに関するその他の情報などのテキスト情報を抽出することができる。このテキスト情報を使用して、生成されたテキスト画像用のトレーニングデータ項目を生成することができる。トレーニングデータ項目は、1つ以上のトレーニングデータ項目ファイルに保存できる。
【0019】
トレーニングデータ項目の生成は、1つ以上のテキスト関連レベル(文字レベル、単語レベル、行レベル、段落レベル、ページレベルなど)で実行することができ、このテキスト関連レベルは、OCRをモデル化するためのANNのトレーニング方法によって異なる。例えば、OCRによっては文字を個別に認識する必要があるため、文字ごとに境界ボックス情報などのテキスト位置情報を抽出することの可能なPDL解析ツールもある。別の例として、OCRには単語レベルで文字を認識するものもあり、そのPDL解析ツールには、単語ごとにテキスト位置情報を抽出するための単語検出および辞書後処理を含めることができる。また別の例として、機械学習(ML)ベースのOCRモデルには、トレーニング可能な機能としてテキスト位置検出などの前処理が組み込まれているものもある。この例では、テキスト位置情報はANNによって行われる予測の一部であってもよく、抽出されたテキスト位置情報は、OCRの学習の一部としてテキスト位置検出を学習させる目的でANNをトレーニングするために使用するトレーニングデータ項目に含まれてもよい。その他の例もありうる。
【0020】
例えば、トレーニング文書用のトレーニングデータ項目は、トレーニング文書内のテキストに関連するトレーニングラベルと、トレーニング文書内のテキストの位置を示す位置情報とを含みうる。トレーニングデータ項目ファイルの生成に使用される入力PDLファイルをレンダリング、印刷、スキャンすることによって、トレーニングデータ項目ファイルに対応するレンダリングファイルを生成することができる。
【0021】
レンダリングされたファイルおよび対応するトレーニングデータ項目ファイルの内容を使用し、1つ以上のANNをトレーニングしてOCRを学習させることができる。トレーニング中に、対応するトレーニングデータ項目ファイルの位置情報を使用して、レンダリングされたファイルからテキスト画像を含む長方形のボックスを切り出すことができる。切り出されたテキスト画像ボックスは、対応するトレーニングデータ項目ファイル内の対応するテキストラベルと対にすることができる。また、切り出されたテキスト画像ボックスは、OCRを学習するためのトレーニングデータとしてANNに提供することもできる。ANNは、切り出されたテキスト画像ボックス内のテキストを予測し、対応する予測出力を提供することができる。教師付き学習において、予測されたテキストを対応するテキストラベルと比較し、この比較に基づいてANNを調整することができる。例えば、予測テキストが対応するテキストラベルと一致する場合には報酬入力が提供され、予測テキストが対応するテキストラベルと一致しない場合には罰則入力が提供される。
【0022】
入力PDLおよびレンダリングされたページを作成および/または変更して、OCRを学習する目的でANNをトレーニングするためのOCRトレーニングデータセットを充実させることができる。例えば、スキュー、回転、ノイズ、および/またはフィルタリングなどのデータ拡張技術をレンダリングファイルに適用して、部分的にまたは完全に拡張した(例えば歪曲、回転などを行った)新しいレンダリングファイルを生成できる。さらに、PDLはプログラミング言語であるため、位置、サイズ、スタイル、色、背景の異なるフォントのページを使用して入力PDLを作成および/または変更することにより、OCRモデルの堅牢性を向上させることができる。
【0023】
例えば、PDLファイルを処理して解析し、テキスト画像とそれに対応するトレーニングデータ項目を自動的に生成し、バッチジョブとして実行することにより、1つ以上のアプリケーションの印刷ジョブに関連する数百、数千、またはそれ以上のレンダリングされたページとそれに対応するトレーニングデータ項目ファイルを生成できる。様々なアプリケーション(Word、Excel、Outlook、Visioなど)からのPDL入力および/または印刷ジョブのレンダリングページは、ANNをトレーニングするための様々なテキスト特徴を提供することでANNにおけるOCRモデルの過学習を効果的に削減する上で有用である。テキスト特徴としては、テキスト色、背景色、テキストフォント、テキストサイズ、テキストスタイル、文字関連特徴、テキスト位置、フォント効果、フォントスタイル、テキスト方向、句読点、およびページサイズに関する特徴が挙げられるが、これらに限定されない。自動処理および/またはバッチ処理を使用することにより、レンダリングされた多数のページとそれに対応するトレーニングデータ項目ファイルを、人間が面倒なラベリングを行うことなく、OCRトレーニングデータセットに容易に追加できる。
【0024】
また、テキスト画像とトレーニングデータ項目とがいずれも入力PDLファイルから生成されるため、入力PDLファイルを特別に作成および/または変更することによって、テキスト画像のテキスト特徴を含めたり、変更したり、除外したりできる。次いで、これらの特別に作成および/または変更されたPDLファイルを使用して、ANNをトレーニングするためのテキスト画像とそれに対応するトレーニングデータ項目の特別なトレーニングデータセットを生成することができる。例えば、比較的大量の(または比較的少量の)非標準フォント色および/または背景色のトレーニングデータセット、比較的大量の(または比較的少量の)特定のフォント効果およびスタイルを有するテキストのトレーニングデータセットなどである。これらの特定のトレーニングデータセットを生成し、使用することで、これらの特定のトレーニングデータセットでトレーニングされたANNのパフォーマンスを改善および/または向上させることができる。いくつかの例では、本明細書に記載の技術を使用して、数百万(またはそれ以上)のテキスト画像およびそれに対応するトレーニングデータ項目を生成することができる。
【0025】
本明細書に記載の技術を使用して、OCRを学習する目的でANNをトレーニングするためのトレーニングデータ項目を生成するという課題を解決することができる。本明細書に記載の技術は、PDLファイルを処理および解析して、ANNの教師付きトレーニング用のテキスト画像およびそれに対応するトレーニングデータ項目を自動的に生成することによって、光学式文字認識のためのANNのトレーニングを、実用性の高いものとする。さらに、複数の異なるアプリケーションから供給されたPDLファイルを含むPDLファイルの処理、変更、および解析によって生成された多様なテキスト画像でトレーニングされた柔軟なANNを使用することにより、ANNベースの光学文字認識技術の信頼性、柔軟性、および精度を高めることができる。
【0026】
(印刷システムの例)
図1は、例示的な実施形態による印刷ネットワーク100を示す図である。印刷ネットワーク100は、印刷装置(PD)110、112、114、コンピューター120、122、および1つ以上のサーバー130を含み、これらはすべてネットワーク140を使用して相互に接続されている。いくつかの例において、印刷ネットワーク100の有する演算装置、サーバー、および/または印刷デバイスは、
図1に示されるものと比較して多い、少ない、かつ/または種類が異なることがある。
【0027】
印刷装置110、112、114は、元は紙の上でまたは電子的に利用可能であった文書および/またはファイルをスキャン、印刷、コピー、電子メール、報告、通信および/またはその他の処理を行うように構成された装置を含みうる。印刷装置110、112、114のうち1つ以上によって処理された後、文書および/またはファイルは、要求に応じて、紙の上でまたは電子的に利用可能となる。すなわち、印刷装置110、112、114は、紙文書PDまたは電子文書EDの処理を、少なくとも、PDの内容を表す電子文書ED1の作成(例えば、PDのスキャンによるED1の作成);PDの1つ以上の紙コピーの作成;EDおよび/もしくはED1の1つ以上のコピーの、1種類以上の紙への印刷;EDおよび/もしくはED1の、1つ以上の電子コピーの作成;EDおよび/もしくはED1の形式の変更(例えば、OCRスキャンの実行、EDおよび/またはED1の保存に使用するファイル形式の変換);印刷装置110、112、114以外の装置によるEDおよび/もしくはED1の使用やEDおよび/もしくはED1へのアクセスを可能とするリモートアクセス可能な記憶装置(例えば、文書ボックスなど)の維持;ならびに/またはEDおよび/もしくはED1の内容についての別のデバイスとの通信によって行うことができる。
【0028】
文書ボックスは、印刷装置、印刷サーバー、または別の装置上で実体(例えば、ユーザー、管理者、会社、別の種類の実体など)に割り当てられた記憶装置であり、実体は文書、ファイル、および/またはその他のデータを維持できる。いくつかの実施形態において、文書ボックスは、アドレス帳および/または装置アカウント記憶装置などの個人データ用記憶装置を伴うかつ/または含むことができる。文書ボックス、アドレス帳、および装置アカウント記憶装置には、1つ以上の文書、ファイル、個人データ、および/または連絡先、使用状況、および使用制限などの他のデータを保存することができる。
【0029】
いくつかの実施形態において、印刷装置110、112、114は、他のタスクおよび/または他の処理も実行することができる。印刷装置110、112、114は、色、速度、演算能力、機能性、ネットワーク接続性、および/または他の機能が異なる様々な製造者の製品を含みうるる。
【0030】
例示の実施形態では、印刷装置110、112、114のいくつかまたはすべてを、1つ以上の、場合によっては異なるネットワークプロトコルを介してネットワーク140に接続することができる。データは、印刷装置110、112、114、コンピューター120、122、およびサーバー130の相互間で、コンピューター、演算装置、印刷装置、サーバー、およびネットワーク140間の有線および/または無線リンクを介して伝送することができる。印刷ネットワーク100内の装置間の各データ送信の形式は、テキスト形式、画像形式、拡張マークアップ言語(XML)、簡易ネットワーク管理プロトコル(SNMP)形式、データベーステーブル、フラットファイル形式、または別の形式を含む様々な異なる形式の1つ以上を含みうる。
【0031】
コンピューター、演算装置、サーバー、および印刷装置間の通信としては、コンピューター120、122、および/またはサーバー130が、印刷のために印刷ジョブおよび/または印刷ジョブ部分のデータを印刷装置110、112、114に送信し、印刷装置110、112、114が、警告、状態、エラー、装置情報、着色剤使用情報、メインテナンスイベント情報、および/または他のメッセージをコンピューター120、122、および/またはサーバー130に送信して、その他の装置に対して着色剤の使用、メインテナンス、エラー、および/または当該装置におけるその他の条件、例えば待機中、印刷中、休止中、紙詰まり、用紙残量低下または用紙切れ、トナー残量低下またはトナー切れなどを通知する通信が挙げられる。コンピューター120、122、および/またはサーバー130間の他の通信も可能であり、放射状グラデーションカラーリングを使用して画像をレンダリングする要求およびそれに関連する応答などが可能であるが、これらに限定されない。
【0032】
コンピューター120、122は、印刷ネットワーク100を構成するためのデータ(および関連するであろうソフトウェア)を作成、取得、更新、表示、および/または削除できる。印刷ネットワーク100を構成するためのデータの例としては、印刷ネットワーク100内の装置を構成するためのデータ、例えば、印刷装置110、112、114のデータ、ネットワークプロトコルを構成するためのデータ(例えば、ファイル転送プロトコル(FTP)、ハイパーテキスト転送プロトコル(HTTP)、Java Message Service (JMS)、京セラページ記述言語(KPDL(登録商標))、Private Communications Technology(PCT)、Adobe(登録商標)ポータブルドキュメントフォーマット(PDF)、Simple Object Access Protocol(SOAP)、Short Message Service(SMS)、Simple Message Transfer Protocol(SMTP)、SNMP、Transfer Control Protocol/Internet Protocol(TCP/IP)、User Datagram Protocol(UDP)、 Lightweight Directory Access Protocol(LDAP)、 Message Queue(MQ)、および/または他のプロトコル)、クライアントおよび/またはサーバーのアクセス管理関連のデータ(例えば、ネットワーク140および/またはクラウドベースサービスの機能の一部または全部にアクセスするためのパスワード、署名、認証情報、証明書、サブスクリプション、ライセンス、および/またはトークン、ソフトウェアおよび/またはソリューション)ならびに印刷ネットワーク100の装置/サーバーのカスタマイズ、構成、および管理アプリケーションのデータが挙げられるが、これらに限定されない。特に、コンピューター120、122は、印刷装置の着色剤使用に関する表示および/または着色剤使用に関する予測を含む、印刷装置の維持に関する表示を提供することができ、印刷装置は、印刷装置110、112、114を含みうるが、これらに限定されない。
【0033】
1つ以上のサーバー130は、印刷ネットワーク100に関連する、特に印刷装置110、112、114などの印刷装置に関連するデータに関するパターン、傾向、および/または特徴を学習するための機能を保存、更新、削除、検索、および提供することができる。学習したパターン、傾向、および/または特徴に基づいて、サーバー130は、印刷装置に関する予測などの出力を生成することができる。印刷装置に関する予測は、印刷装置による着色剤使用の予測を含むが、これに限定されない。サーバー130に保存されたデータは、装置情報、着色剤使用情報、メンテナンスイベント情報、および/または印刷ネットワーク100に関連するデバイスに関連するその他の情報を含みうる。保存されたデータは、特定の装置、着色剤の使用、メンテナンスイベント、および/またはその他の情報に関する情報を要求する受信クエリに応じて、サーバー130から取得することができる。
【0034】
いくつかの実施形態において、サーバー130は、1つ以上の文書ソリューションおよび管理印刷サービスのための機能の一部または全部に関連するサービスなど、さらなる(または代替の)サービスも提供することができる。例えば、ソリューションおよびサービスのアカウント処理およびメンテナンスの機能、文書ワークフローの機能などであり、例えば、処理フォーム、ハードコピー署名、クライアント認証/アクセス機能、ユーザーインターフェース機能、印刷ネットワーク100内の装置を含むローカルネットワークおよび/またはリモートネットワークベースの記憶装置管理などである。例えば、サーバー130はさらに、印刷サーバーに関連する機能を提供できる。印刷サーバーは、ジョブの処理(例えば、ジョブ関連データのスプール、ジョブのルート化、ジョブのユーザーおよび/またはサーバー関連アカウント処理の提供、ジョブに関連する認証および承認規則の検証/施行)を行い、印刷ネットワーク100の印刷装置に関連するデータを保存することができる。印刷サーバーによって処理されるジョブとしては、印刷ジョブ/印刷要求;文書、ファイル、および/もしくは関連データ(例えば、電子メール内のデータ、SMSメッセージなど)の通信;文書およびファイルに関連する要求(例えば、1つ以上の文書およびファイルの作成、書式設定、スキャン、書式再設定、変換、アクセス、更新、および/または削除);文書ワークフローのジョブ;ならびに/または印刷装置に関するエラー/不具合報告に関する情報の処理(例えば、印刷(およびおそらくは他の)装置110、112、114に関するエラー/不具合報告に関するトラブルチケットの作成、再調査、更新、割り当て、再割り当て、通信、および/または削除)が挙げられるが、これらに限定されない。上記データは、ジョブの処理に使用されるデータ(例えば、印刷ジョブ用スプールデータ、ファイル関連要求用ファイルなど)、アクセス管理関連データ、サーバー130によって提供される、印刷装置に関する主要な識別特性および/または機種依存情報、およびおそらくは他のデータを含みうる。
【0035】
図2は、例示的な実施形態による演算装置200を示す概略ブロック図である。演算装置200は、1つ以上の入力装置202、1つ以上の出力装置204、1つ以上のプロセッサー206、およびメモリ208を含みうる。いくつかの実施形態において、演算装置200は、本明細書に記載の1つ以上の機能および/または、例えば少なくとも人工ニューラルネットワーク、畳み込みニューラルネットワーク、回帰型ニューラルネットワーク、パイプライン300、500、方法400、800、およびシナリオ700の文脈で説明される機能の一部または全部に関連する機能を実行するように構成されうる。
【0036】
入力装置202は、ユーザー入力装置、ネットワーク入力装置、センサー、および/または他のタイプの入力装置を含みうる。例えば、入力装置202は、タッチスクリーン、キーボード、キーパッド、マウス、トラックボール、ジョイスティック、カメラ、音声認識モジュール、および/または他の同様の装置などのユーザー入力デバイスを含みうる。ネットワーク入力装置は、有線ネットワークレシーバーおよび/またはトランシーバーを含むことができ、当該有線ネットワークレシーバーおよび/またはトランシーバーとしては、イーサネットトランシーバー、ユニバーサルシリアルバス(USB)トランシーバー、またはツイストペアワイヤ、同軸ケーブル、光ファイバーリンク、またはネットワーク140の有線部分などの有線ネットワークのような同様の物理的接続を介して通信するように構成可能な同様のトランシーバーなど、および/または無線ネットワークレシーバーおよび/またはトランシーバー、例えばBluetooth(登録商標)トランシーバー、Zigbee(登録商標)トランシーバー、Wi-Fi(登録商標)トランシーバー、WiMAX(登録商標)トランシーバー、無線広域ネットワーク(WWAN)トランシーバー、および/またはネットワーク140の無線部分などの無線ネットワークを介して通信するように構成可能な同様の無線トランシーバーなどが挙げられる。センサーは、演算装置200の環境内の条件を測定し、当該環境に関するデータを提供するよう構成された装置を含みうる。そのようなデータとしては、位置データ、速度(速度、方向)データ、加速度データ、および演算装置200の環境に関するその他のデータが含まれるが、これらに限定されない。センサーの例としては、全地球測位システム(GPS)センサー、位置センサー、ジャイロスコープ、加速度計、磁力計、カメラ、光センサー、赤外線センサー、およびマイクが挙げられるが、これらに限定されない。他の入力装置202も可能である。
【0037】
出力装置204は、ユーザー表示装置、可聴出力デバイス、ネットワーク出力装置、および/または他のタイプの出力装置を含みうる。ユーザー表示デバイスには、1つ以上の印刷コンポーネント、液晶ディスプレイ(LCD)、発光ダイオード(LED)、レーザ光、デジタル光処理(DLP)技術を使用する表示、陰極線管(CRT)、電球、および/または他の同様の装置を含みうる。可聴出力装置は、スピーカ、スピーカジャック、音声出力ポート、音声出力装置、ヘッドフォン、イヤホン、および/または他の同様の装置を含みうる。ネットワーク出力装置は、有線ネットワークレシーバーおよび/またはトランシーバーを含むことができ、当該有線ネットワークレシーバーおよび/またはトランシーバーとしては、イーサネットトランシーバー、ユニバーサルシリアルバス(USB)トランシーバー、またはツイストペアワイヤ、同軸ケーブル、光ファイバーリンク、またはネットワーク140の有線部分などの有線ネットワークのような同様の物理的接続を介して通信するように構成可能な同様のトランシーバーなど、および/または無線ネットワークレシーバーおよび/またはトランシーバー、例えばBluetooth(登録商標)トランシーバー、Zigbee(登録商標)トランシーバー、Wi-Fi(登録商標)トランシーバー、WiMAX(登録商標)トランシーバー、無線広域ネットワーク(WWAN)トランシーバー、および/またはネットワーク140の無線部分などの無線ネットワークを介して通信するように構成可能な同様の無線トランシーバーなどが挙げられる。他のタイプの出力装置としては、振動装置、触覚フィードバック装置、および例えば赤外線または紫外線を出射する装置などの不可視光発光デバイスが挙げられるが、これらに限定されない。他の出力装置204も可能である。
【0038】
プロセッサー206は、1つ以上の汎用プロセッサー、中央処理装置(CPU)、CPUコア、および/または1つ以上の専用プロセッサー(例えば、グラフィックス処理装置(GPU)、デジタル信号プロセッサー(DSP)、フィールドプログラマブルゲートアレイ(FPGA)、特定用途向け集積回路(ASIC)、追加のグラフィックス関連回路/プロセッサーなど)を含みうる。プロセッサー206は、メモリ208内にあるコンピューター可読命令210および/または本明細書で説明される他の命令を実行するように構成できる。
【0039】
メモリ208は、プロセッサー206の少なくとも1つによって読み取りおよび/またはアクセスすることのできるデータおよび/または命令を記憶するように構成された1つ以上のコンピューター可読記憶媒体を含みうる。1つ以上のコンピューター可読記憶媒体は、プロセッサー206の少なくとも1つと、全体的または部分的に一体化することのできる、光学、磁気、有機または他のメモリまたはディスク記憶コンポーネントなどの1つ以上の揮発性および/または不揮発性記憶コンポーネントを含みうる。コンピューター可読記憶媒体は、レジスタメモリ、プロセッサーキャッシュ、および/またはランダムアクセスメモリ(RAM)などデータを短期間記憶する1つ以上のコンポーネントを含みうる。コンピューター可読記憶媒体は、プログラムコードおよび/またはデータを長期にわたって記憶する非一時的コンピューター可読媒体、例えば、読み出し専用メモリ(ROM)、光ディスクまたは磁気ディスク、コンパクトディスク読み出し専用メモリ(CD-ROM)などの二次または持続的長期記憶媒体を含みうる。いくつかの実施形態において、メモリ208は単一の物理デバイス(例えば、1つの光学、磁気、有機または他のメモリまたはディスク記憶ユニット)を使用して実装されうるが、他の実施形態において、メモリ208は2つ以上の物理デバイスを使用して実装されうる。
【0040】
特に、メモリ208は、コンピューター可読命令210を記憶することができ、当該可読命令は、プロセッサー206によって実行されると、少なくとも本明細書に記載の装置、ネットワーク、方法、図、画像、方程式、および/またはシナリオの機能の一部または全部など(これらに限定されない)の機能を演算装置に実行させる。いくつかの実施形態において、コンピューター可読命令210は、少なくともニューラルネットワークソフトウェア212のための命令を含みうる。ニューラルネットワークソフトウェア212は、ニューラルネットワーク関連および/または機械学習アルゴリズム関連の機能、例えば少なくとも人工ニューラルネットワーク、畳み込みニューラルネットワーク、回帰型ニューラルネットワーク、パイプライン300、500(機械学習アルゴリズム340および/または予測モデル360を含むが、これらに限定されない)、方法400、800、およびシナリオ700の文脈で説明される機能の一部または全部を提供するためのソフトウェアおよび/またはファームウェアを含みうる。
【0041】
(光学文字認識においてニューラルネットワークを使用するための技術)
図3は、例示的な実施形態による教師付き学習パイプライン300の図である。教師付き学習パイプライン300は、トレーニングデータ生成部310、トレーニング入力320、1つ以上の特徴ベクトル322、1つ以上のトレーニングデータ項目330、機械学習アルゴリズム340、実際の入力350、1つ以上の実際の特徴ベクトル352、予測モデル360、および1つ以上の予測モデル出力370を含む。教師付き学習パイプライン300は、当該教師付き学習パイプライン300の一部または全部のソフトウェアを1つ以上の処理装置上で実行すること、および/または他の回路(例えば、当該教師付き学習パイプライン300の一部または全部を実行するための特別なハードウェア)を使用することにより実装できる。
【0042】
動作中、教師付き学習パイプライン300は、トレーニング段階と予測段階の2つの段階を含みうる。トレーニング段階は、1つ以上のタスクを学習する機械学習アルゴリズム340を含みうる。予測段階は、予測モデル360を含みうる。この予測モデル360は、機械学習アルゴリズム340のトレーニング済みバージョンであってもよく、1つ以上のタスクを遂行するための予測を行う。いくつかの例において、機械学習アルゴリズム340および/または予測モデル360は、人工ニューラルネットワーク(ANN)、ディープニューラルネットワーク、畳み込みニューラルネットワーク(CNN)、回帰型ニューラルネットワーク、サポートベクターマシン(SVM)、ベイジアンネットワーク、遺伝的アルゴリズム、線形分類器、非線形分類器、カーネル法に基づくアルゴリズム、ロジスティック回帰アルゴリズム、線形判別分析アルゴリズム、および/または主成分分析アルゴリズムを含みうるが、これらに限定されない。
【0043】
教師付き学習パイプライン300のトレーニング段階において、トレーニングデータ生成部310は、トレーニング入力320およびトレーニングデータ項目330を生成することができる。トレーニング入力320を処理して、1つ以上の特徴ベクトル322を決定することができる。いくつかの例では、トレーニング入力320を前処理することができる。例えば、光学式文字認識タスクの場合、トレーニング入力320の一部として提供される入力画像(テキスト画像を含む)内のテキストおよび/または他のオブジェクトの境界ボックスおよび/または他の位置情報を計算するために、トレーニング入力320の前処理を行ってもよい。いくつかの例では、トレーニングデータ生成部310は、トレーニング入力320および/またはトレーニングデータ項目を生成する目的で使用されない。
【0044】
いくつかの例において、トレーニング入力320の一部または全部は、1つ以上の電子トレーニング文書および/または1つ以上の紙のトレーニング文書を含む。電子トレーニング文書は、1つ以上のテキスト画像、テキストを含まない画像、およびページ定義言語を使用して符号化された文書が含みうるが、これらに限定されない。いくつかの例では、トレーニング入力320の一部または全部が、紙のトレーニング文書をスキャンして対応する電子文書とすることにより生成される。いくつかの例では、トレーニング入力320の一部または全部の生成が、1つ以上の電子トレーニング文書のうち少なくとも1つを紙(例えば、ページ記述言語を使用して表現される文書)に印刷し、当該少なくとも1つの電子トレーニング文書の印刷版をスキャンして対応する電子文書とすることで、おそらくは当該少なくとも1つの電子トレーニング文書の電子コピーを生成することによって行われる。
【0045】
特徴ベクトル322を機械学習アルゴリズム340に提供することで、1つ以上のタスクの学習を行うことができる。1つ以上のタスクを実行した後、機械学習アルゴリズム340は、特徴ベクトル322およびおそらくはトレーニング入力320に基づいて、1つ以上の出力を生成しうる。トレーニング中、トレーニングデータ項目330を使用して、機械学習アルゴリズム340の出力の精度について評価を行うことができ、この評価に基づいて機械学習アルゴリズム340を更新することができる。機械学習アルゴリズム340のトレーニングは、機械学習アルゴリズム340が1つ以上のタスクを実行するようにトレーニングされたとみなされるまで継続できる。トレーニングを終えた機械学習アルゴリズム340は、予測モデル360のような予測モデルとみなすことができる。
【0046】
教師付き学習パイプライン300の予測段階において、実際の入力350から1つ以上の実際の特徴ベクトル352を生成しうる。いくつかの例において、実際の入力350の一部または全部が、1つ以上の実際の電子文書および/または1つ以上の実際の紙の文書を含む。実際の電子文書は、1つ以上のテキスト画像、テキストを含まない画像、およびページ定義言語を使用して符号化された文書を含みうるが、これらに限定されない。いくつかの例において、実際の入力350の一部または全部は、実際の紙の文書をスキャンして対応する電子文書とすることにより生成される。いくつかの例において、実際の入力350の一部または全部の生成は、1つ以上の実際の電子文書のうち少なくとも1つを紙(例えば、ページ記述言語を使用して表現される文書)に印刷し、当該少なくとも1つの実際の電子文書の印刷版をスキャン(または他の方法によって変換)して対応する電子文書とすることで、おそらくは当該少なくとも1つの実際の電子文書の電子コピーを生成することによって行われる。
【0047】
次いで、実際の入力350を、実際の特徴ベクトル352を介して予測モデル360に提供することができる。予測モデル360は、実際の入力350に基づいて、予測などの1つ以上の出力を生成できる。予測モデル360の出力は、次いで予測モデル出力370として提供されうる。いくつかの例において、予測モデル360は、1つ以上の予測を行う要求を受信し、この要求の受信がトリガとなって、予測モデル360は、実際の入力350および/または実際の特徴ベクトル352に基づいて予測モデル出力370を生成することができる。これらの例のいくつかにおいて、要求は実際の入力350を含むことがあり、かつ/または実際の入力350を参照しうる。
【0048】
いくつかの例では、1つ以上のトレーニング演算装置上で機械学習アルゴリズム340のトレーニングを行うことができ、同じトレーニング演算装置上で予測モデル360を実行することができる。いくつかの例では、機械学習アルゴリズム340は、トレーニング演算装置上でトレーニングできる。次いで、トレーニング後、トレーニングを終えた機械学習アルゴリズム340を予測モデル360として、当該トレーニング演算装置から、実際の入力350に対して予測モデル360を実行して予測モデル出力370を生成することの可能な1つ以上の他の演算装置へと伝送することができる。
【0049】
教師付き学習パイプライン300の使用例において、上記1つ以上のタスクは、光学文字認識に関連する1つ以上のタスク、例えば1つ以上の入力画像のテキストを認識することであってもよい。このとき、トレーニング入力320はトレーニング文書を含みうる。トレーニング文書は、テキスト画像を含みうる1つ以上の画像である、そのような1つ以上の画像を表す、かつ/またはそのような1つ以上の画像を含むものでありうる。すなわち、トレーニング文書は、テキストおよび/またはテキストの描写を含みうる。いくつかの例において、トレーニング文書は、処理によってテキストおよびおそらくはトレーニング入力320のための他の画像を生成しうるPDL形式の文書を含む。いくつかの例では、PDL形式の文書を解析することにより、トレーニングデータ項目330の一部または全部を生成できる。
【0050】
より詳細には、トレーニング入力320のトレーニング文書は、PDL形式の文書D_PDLでありうる。トレーニングデータ生成部310は、D_PDLのPDLを処理して、D_PDLを表す/描写する1つ以上の画像を生成することができ、そのような画像はトレーニング入力320の一部として提供されうる。トレーニングデータ生成部310は、D_PDLのPDLを解析して、トレーニングデータ項目330のうち1つ以上のトレーニングデータ項目を生成することもできる。トレーニングデータ生成部310がD_PDLを解析することにより生成されたトレーニングデータ項目を含むトレーニングデータ項目330は、1つ以上のトレーニングラベルおよび位置情報を含みうるが、含まれるものはこれらに限定されない。トレーニングラベルは、対応する文書、画像、またはトレーニング入力320の他の部分に存在するテキストに関連する。位置情報は、対応する文書、画像、またはトレーニング入力320の他の部分に存在するテキストの1つ以上の位置を示しうる。いくつかの例において、トレーニングデータ生成部310は、D_PDLの解析および/またはその他の処理を行うことによって、特徴ベクトル322のうち1つ以上の特徴ベクトルを生成することもできる。
【0051】
特徴ベクトル322は、トレーニング入力320の態様を表す1つ以上のベクトルでありうる。特徴ベクトル322において表すことができる例示的な特徴としては、テキスト画像の1つ以上のテキスト特徴が挙げられる。テキスト特徴としては、テキスト色、背景色、テキストフォント、テキストサイズ、テキストスタイル、文字関連特徴、テキスト位置、フォント効果、フォントスタイル、テキスト方向、句読点、およびページサイズに関する特徴を含みうるが、これらに限定されない。
【0052】
次いで、特徴ベクトル322を、機械学習アルゴリズム340への入力として提供することができる。いくつかの実施形態において、トレーニング入力320と特徴ベクトル322はいずれも、機械学習アルゴリズム340への入力として提供される。いくつかの実施形態において、トレーニング入力320は、特徴ベクトル322を使用することなく、直接機械学習アルゴリズム340へと提供される。トレーニング中、機械学習アルゴリズム340は、トレーニング入力320および/または特徴ベクトル322に作用して、トレーニング入力320および/または特徴ベクトル322の光学文字認識に関する1つ以上の予測を生成する。すなわち、入力された文書中のテキストの予測を生成する。
【0053】
テキストの予測は、1つ以上の文字、単語、および/または他のテキスト単位の予測を含みうるが、これらに限定されない。テキストの予測は、対応する入力画像、例えばトレーニング入力320のテキスト画像または実際の入力350のテキスト画像などに描かれたテキストの電子的表現を含みうる。テキストの電子的表現は、1つ以上のテキスト形式、例えば、プレーンテキスト形式(例えば、Unicode形式、American Standard Code for Information Interchange(ASCII)形式)、文書形式(例えば、Microsoft(登録商標)Word形式)、hOCRに基づく形式などを使用して書式設定できる。hOCRは、拡張マークアップ言語(XML)に基づく、OCRから取得した書式付きテキストのデータ表現のオープン標準であり、テキスト、スタイル、レイアウト情報、認識信頼性メトリックおよびその他の情報の符号化を可能にする。
【0054】
いくつかの例において、テキストの予測は、信頼値および/または予測されたテキストの精度に関連する他のデータを含みうる。信頼値は、テキストの出力予測決定の一部として、機械学習アルゴリズム340によって決定される。例えば、0~100の範囲の信頼値を、テキストの出力予測について決定し、おそらくはテキストの出力予測とともに出力することができる。ここで、信頼値0は、テキストの出力予測において機械学習アルゴリズム340に信頼性が皆無(0%)であることを示す。信頼値100は、テキストの出力予測において機械学習アルゴリズム340が確かな(100%の)信頼を有することを示し、0と100との間の値は、テキストの出力予測における信頼性のパーセンテージを示す。テキスト、テキストの電子的表現、および信頼値の予測を表現および/または提供する他の技術も可能である。
【0055】
テキストの予測は、テキストの予測をトレーニングデータ項目330のデータ、例えばトレーニング入力320のテキストを表すデータラベルおよび/または特徴ベクトル322によって表されるデータラベルなどと比較することにより評価できる。例えば、テキストの予測によって、「ABC」というテキストがトレーニング入力320の入力画像TRAIN_IMG1内にあることが示され、TRAIN_IMG1のトレーニングデータ項目330のデータラベルによって、TRAIN_IMG1のテキストが「ABO」であることが示される場合、テキストのこの予測では、TRAIN_IMG1内のテキストの3文字のうち2文字が正しく認識されたこととなり、TRAIN_IMG1におけるこのテキストの予測の精度は、正解2文字/全3文字=66.67%の精度と決定される。いくつかの例では、ANNによって決定された信頼値をテキストの予測の精度値と比較し、信頼値の正確性の評価および/またはトレーニング中のANNの更新に役立てることができる。いくつかの例では、テキストの予測を、トレーニング入力320の対応するテキストを表すトレーニングデータ項目330のデータラベルと比較することができる。テキストの予測が、トレーニングデータ項目330のデータラベルに対応するテキストと一致する場合に、テキストの予測の精度は高まり、一致しない場合には、テキストの予測の精度は低くなりうる。
【0056】
機械学習アルゴリズム340のトレーニングは、1つ以上のトレーニング終了基準が発生するまで続行されうる。トレーニング終了基準は、機械学習アルゴリズム340が入力画像のある特定数IN(例えば、IN=1,10,100,1000,5000,50000,10000000など)のテキスト単位について予測を完了したという基準、トレーニング入力320の各項目のテキスト単位についてある特定回数IT回(例えば、IT=1,2,3,...など)の予測を完了したという基準、あるいは、トレーニング入力の最終数Nのテキスト単位についてしきい値精度値を超える精度で予測を完了したという基準(例えば、N=1,10,25,50,100,1000など、しきい値精度は50%,90%,95%,99%,99.9%など)が含まれるが、これに限定されない。
【0057】
トレーニングを終えた機械学習アルゴリズム340は、予測モデル360として作用しうる。予測モデル360は、実際の入力350および/または特徴ベクトル352を入力、例えば入力テキスト画像として、光学文字認識タスクを実行することができる。次いで、予測モデル360は、予測モデル出力370の一部または全部として、実際の入力350に存在するテキストの1つ以上の予測を生成することができる。すなわち、予測モデル360は、実際の入力350内のテキストを認識し、認識されたテキストを、提供されたテキストの予測として、予測モデル出力370として示すことができる。いくつかの例において、予測モデル360は、実際の入力350のテキストを認識する要求を受信し、それに応じて実際の入力350のテキストの1つ以上の予測を生成し、このテキストの予測を予測モデル出力370として提供することができる。OCRを実行する際の予測フェーズ/予測モデル360の使用については、少なくともOCRパイプライン500および少なくとも
図5との関連においてより詳細に説明する。
【0058】
図4は、例示的な実施形態による、教師付き学習パイプライン300におけるトレーニングデータ生成部310を示す。トレーニングデータ生成部310は、方法400を実行し、トレーニング入力320および/またはトレーニングデータ項目330の一部または全部を生成することができる。
【0059】
方法400は、ブロック410から開始されうるが、ここでトレーニングデータ生成部310はPDL入力を受信できる。例えば、トレーニング入力320は、PDLを含む1つ以上のトレーニング文書を含みうる。トレーニング入力320内のPDLを含むこれらのトレーニング文書は、PDL入力と呼ばれこともある。
【0060】
ブロック412において、トレーニングデータ生成部310は、PDL入力を変更するか否かを決定しうる。トレーニングデータ生成部310は、PDL入力の一部または全部を変更すべきか否かの決定を、PDL入力の変更に関連するユーザー入力に基づいて、PDL入力の1つ以上の特徴に基づいて、PDL入力のランダム選択(例えば、トレーニング入力320から所定数Nまたは所定パーセンテージM%のファイル、文書、またはその他の部分を無作為に選択すること(ただしNおよびMはいずれも0よりも大きく、Mは100以下である))に基づいて、PDL入力の決定性選択(例えば、PDL入力から最初(または最後)のNおよび/またはM%のファイル、文書、またはその他の部分を選択すること、PDL入力の中央からNおよび/またはM%のファイル、文書、またはその他の部分を選択すること、PDL入力のP番目毎のファイル、文書、またはその他の部分を選択すること(ただしPは0よりも大きい))に基づいて、PDL入力内のデータに基づいて(例えば、PDL入力に変更の必要があることを示すタグまたは他の指標に基づいて、PDL入力の1つ以上の特徴(すべてが緑色のテキストであるかつ/または少なくとも所定のサイズを有するPDL入力は変更の必要がある)に基づいて)、行いうる。場合により、トレーニングデータ生成部310が、PDL入力のすべてを変更するという決定を下すこともある。例えば、PDL入力は、
図3に関連して先に言及したテキスト特徴などの1つ以上のテキスト特徴を含む、除外する、および/または変更するように変更されうる。
【0061】
例えば、トレーニングデータエンジニアおよび/またはトレーニングデータ生成部310は、機械学習アルゴリズム340用のトレーニングデータが十分なフォントバリエーションを有していないという決定を下すことができる。その場合、トレーニングデータ生成部310は、ユーザー入力(例えば、トレーニングデータエンジニアからの入力)および/または他の情報(例えば、機械学習アルゴリズム340用のトレーニングデータ内のフォントバリエーションの測定値)に基づいて、PDL入力のフォントタイプを変更できる。より具体的には、PDL入力に、特定のフォント(たとえば「Times New Roman」)の1ページしか存在しないと仮定する。これはトレーニング入力320に十分なフォントバリエーションとは言えない。この場合、トレーニングデータ生成部310は、PDL入力の一部として特定のフォントを使用してより多くのトレーニングデータを生成することおよび/またはより一般的には、内容は同一であるが異なるフォントタイプを使用したより多くのトレーニングデータを生成することが可能である。トレーニングデータ生成部310を使用してPDL入力を変更する多くの他の例もありうる。
【0062】
トレーニングデータ生成部310がPDL入力の変更を行うと決定した場合、トレーニングデータ生成部310はブロック414に進みうる。そうでない場合、トレーニングデータ生成部310はPDL入力の変更を行わないことを決定し、ブロック420へと進む。
【0063】
ブロック414において、トレーニングデータ生成部310は、PDL入力に対する1つ以上の変更を決定し、それに応じて当該1つ以上の変更を行うようにPDL入力を変更することができる。いくつかの例において、変更には、PDL入力の1つ以上のテキスト特徴の変更が含まれうる。いくつかの例において、PDL入力を変更することは、複数の異なるフォントを使用するテキスト、複数の異なる色を使用するテキスト、複数の異なるサイズを使用するテキスト、複数の異なるスタイルを使用するテキスト、および複数の背景色を利用する複数のページの1つ以上を含むようにPDL入力を変更することを含みうる。いくつかの例において、PDL入力を変更することは、PDL入力を使用して生成された電子文書が増強されるようにPDL入力を変更することを含み、このような増強については、ブロック442および444に関連して以下で説明する。いくつかの例において、PDL入力を変更することは、1つ以上のPDL命令および/またはPDLを使用して書式設定された文書を追加することを含みうる。その例としては、第1のPDL入力文書を受信し、第1のPDL入力文書を第2のPDL文書にコピーし、第2のPDL文書を変更し、ブロック414の出力として第1および第2のPDL文書のいずれもを提供することが挙げられる。1つ以上のPDL命令および/またはPDLを使用して書式設定された文書を追加することの別の例を挙げると、トレーニングデータ生成部310は、PDL入力とは関係のない1つ以上のPDL命令および/または文書、例えば機械学習アルゴリズム340をトレーニングするための特定のテストケースを表すPDL命令および/または文書を追加しうる。次いで、PDL入力とは関係のない当該1つ以上のPDL命令および/または文書は、ブロック414の出力として提供されうる。PDL入力の他の変更も可能である。
【0064】
ブロック420において、トレーニングデータ生成部310は、PDL入力を解析して位置情報(例えば、境界ボックス)および関連テキストを決定しうる。ブロック420におけるPDL入力は、ブロック410で受信され、ブロック414で変更された可能性のあるPDL入力を含みうる。位置情報は、PDL入力内(またはより一般的には、トレーニング入力320内)のテキストの1つ以上の位置を示しうる。位置情報の一例は、PDL入力によって表されるテキストの1つ以上の文字、単語、および/または他のテキスト単位を位置付ける位置および/または境界ボックスである。境界ボックスは、テキストが配置される長方形の領域、例えば、テキストが配置されている長方形の領域の左上隅と右下隅を指定しうる。関連テキストは、PDLを使用してPDL入力で指定されたテキストおよび/またはPDL入力内の他のテキスト、例えば、PDL入力のPDL命令によって書式設定/参照される画像内のテキストでありうる。関連テキストは、位置情報と関連付けることができ、例えば、位置情報によって、関連テキストを検索する/見出すためにPDL入力内の1つ以上の位置を指定することができる。変更されていないPDL入力を含みうるPDL入力を解析して位置情報および関連テキストを決定することにより、トレーニング入力320を、1つ以上のデータセットに保存可能な数千の既存のアプリケーションPDL文書に基づくものとすることができる。次いで、これらの既存のアプリケーションPDLファイル(のデータセット)を解析して位置情報および関連テキストを決定することにより、トレーニングデータ生成部310は、以下で説明するように、トレーニングデータ項目330を生成してトレーニング入力320を生成できるため、機械学習アルゴリズム340をトレーニングしながら既存のアプリケーションPDLを利用できる。
【0065】
ブロック430において、トレーニングデータ生成部310は、位置情報および/または関連テキストに基づいてトレーニングデータ項目330を決定しうる。例えば、ブロック420においてPDL入力を解析することにより決定された位置情報および/または関連テキストを保存および/または別の方法で使用することによって、トレーニングデータ項目330を作成および/または更新することができる。トレーニングデータ項目330におけるトレーニングデータ項目TDI1は、PDL入力内(またはより一般的には、トレーニング入力320内)にテキストT1およびテキストT1の1つ以上の位置Loc1を指定する位置情報を保存できる。すなわち、トレーニングデータ項目TDI1は、PDL入力内の位置Loc1を指定する位置情報を関連付けて、PDL入力内のテキストT1を検索する/見出すことができる。例えば、文書TESTDOC1のPDL入力が、「印刷装置」という単語がTESTDOCの第1ページの左上隅(ULHC)から72ピクセル右、72ピクセル下に書き込まれる、すなわち第1ページののULHCに関して(72,72)の位置に書き込まれるとする。このとき、トレーニングデータ生成部310は、文書TESTDOC1のPDL入力を解析して、文書TESTDOC1の第1ページのテキスト「印刷装置」の位置情報(72,72)を決定することができる。文書TESTDOC1のPDL入力を解析した後、トレーニングデータ生成部310は、トレーニングデータ項目TDI_TESTDOC1を作成または更新して、位置情報(72,72)および関連テキスト「印刷装置」をTDI_TESTDOC1の一部として保存できる。関連する一例において、文書TESTDOC1の第1ページのテキスト「印刷装置」を囲む境界ボックスの右下隅が、第1ページのULHCに対して(89,155)の位置にあるとする。このとき、トレーニングデータ生成部310は、文書TESTDOC1のPDL入力を解析して、テキスト「印刷装置」の境界ボックス[(72,72)(89,155)]を位置情報として決定し、次いで境界ボックス[(72,72)(89,155)]をTDI_TESTDOC1の一部としての関連テキスト「印刷装置」の位置情報として保存できる。他の例もありうる。
【0066】
ブロック420と430の手続きを組み合わせることにより、トレーニングデータ生成部310は、(ブロック420において)PDL入力を解析し、(ブロック430において)トレーニングデータ項目330を決定できると考えられる。位置情報および/または関連テキストに基づいてトレーニングデータ項目330を決定する他の技術も可能である。
【0067】
ブロック440において、トレーニングデータ生成部310は、PDL入力からトレーニング入力320の少なくとも一部を決定することができる。例えば、トレーニングデータ生成部310は、PDL入力を処理して、1つ以上の電子文書および/または紙文書を生成することができる。例えば、PDL入力を1つ以上のファイルおよび/または紙に印刷できる。次いで、生成された1つ以上の電子文書および/または紙文書は、トレーニング入力320の一部または全部として使用できる。PDL入力からトレーニング入力320の少なくとも一部を決定するための他の技術も可能である。
【0068】
ブロック442において、トレーニングデータ生成部310は、トレーニング入力320を増強するか否かを決定しうる。トレーニングデータ生成部310は、トレーニング入力320の一部または全部を増強すべきか否かの決定を、トレーニング入力320の増強に関連するユーザー入力に基づいて、トレーニング入力320の1つ以上の特徴に基づいて、トレーニング入力320のランダム選択(例えば、トレーニング入力320から所定数Nまたは所定パーセンテージM%のファイル、文書、またはその他の部分を無作為に選択すること(ただしNおよびMはいずれも0よりも大きく、Mは100以下である))に基づいて、トレーニング入力320の決定性選択(例えば、トレーニング入力320から最初(または最後)のNおよび/またはM%のファイル、文書、またはその他の部分を選択すること、トレーニング入力320の中央からNおよび/またはM%のファイル、文書、または文書のPDL入力のその他の部分を選択すること、トレーニング入力320のP番目毎のファイル、文書、またはその他の部分を選択すること(ただしPは0よりも大きい))に基づいて、トレーニング入力320内のデータに基づいて(例えば、トレーニング入力320に修正の必要があることを示すタグまたは他の指標に基づいて、トレーニング入力320の1つ以上の特徴(すべてが緑色のテキストであるかつ/または少なくとも所定のサイズを有するトレーニング入力320は増強の必要がある)に基づいて)、行いうる。場合により、トレーニングデータ生成部310が、トレーニング入力320のすべてを増強するという決定を下すこともある。トレーニング入力を増強するための例示的なデータ拡張技術は、ブロック444に関連して以下で説明する。トレーニングデータ生成部310がトレーニング入力320の増強を決定した場合、トレーニングデータ生成部310はブロック444に進みうる。
【0069】
例えば、トレーニングデータエンジニアおよび/またはトレーニングデータ生成部310が、トレーニング入力320が傾斜したページ、すなわち軸が様々な角度となっているページを十分に有していないという決定を下すと仮定する。その場合、トレーニングデータ生成部310は、ユーザー入力(例えば、トレーニングデータエンジニアからの入力)および/または他の情報(例えば、トレーニング入力320内の傾斜したページの測定値)に基づいて、トレーニング入力320を増強できる。この例では、トレーニングデータ生成部310は、トレーニング入力320の元のページに1つ以上のアフィン変換を適用して、より多くの傾斜したページを生成することができる。トレーニングデータ生成部310を使用してトレーニング入力320を増強する多くの他の例もありうる。
【0070】
ブロック444において、トレーニングデータ生成部310は、トレーニング入力320の一部または全部に対して1つ以上のデータ拡張技術を実行することにより、トレーニング入力320を増強できる。データ拡張技術は、トレーニング入力320内の1つ以上の特定の電子文書の一部または全部を変更することを含みうる。1つ以上のデータ拡張技術は、トレーニング入力320内の特定の電子文書の少なくとも一部を歪ませる技術、トレーニング入力320内の特定の電子文書の少なくとも一部を回転させる技術、トレーニング入力320内の特定の電子文書の少なくとも一部にノイズを混入する技術、およびトレーニング入力320内の特定の電子文書の少なくとも一部をフィルタリングする技術を含みうるが、これらに限定されない。トレーニング入力320内の1つ以上の特定の電子文書は、トレーニング入力320から無作為に選択することも、それ以外の方法で選択することもできる。例えば、トレーニング入力320から1つ以上の文書を無作為に選択する、トレーニング入力320からN番目毎(N>1)の文書を選択する、トレーニング入力320からすべての文書を選択する、トレーニング入力320から最初のN個(N>0)の文書を選択する、トレーニング入力320から最後のN個(N>0)の文書を選択するなどが可能である。
【0071】
いくつかの例において、トレーニングデータ生成部310は、トレーニング入力320に1つ以上の増強された文書を追加することにより、トレーニング入力320を増強することができる。その例としては、トレーニング入力320の一部として第1の入力文書を受信し、第1の入力文書を第2の入力文書にコピーし、第2の入力文書に対して先に言及したデータ拡張技術の1つ以上を実行することにより第2の入力文書を増強し、ブロック414の出力として第1の入力文書と増強された第2の入力文書のいずれもを提供することが挙げられる。1つ以上の増強された文書をトレーニング入力320に追加することの別の例を挙げると、トレーニングデータ生成部310は、トレーニング入力320とは関係のない1つ以上の増強された文書、例えば、機械学習アルゴリズム340をトレーニングするための特定のテストケースを表す増強された文書を追加しうる。次いで、トレーニング入力320とは関係のない当該1つ以上の増強された文書は、ブロック444の出力として提供されうる。トレーニング入力320の他の増強もありうる。
【0072】
ブロック450において、トレーニングデータ生成部310は、トレーニング入力320およびトレーニングデータ項目330を出力として提供することができる。ブロック450の完了により、方法400は完了しうる。
【0073】
いくつかの例において、方法400は、特徴ベクトル322の少なくとも一部を生成することをさらに含みうる。例えば、ブロック420において、トレーニングデータ生成部310は、PDL入力を解析して位置情報および/または関連テキストを決定する。また、トレーニングデータ生成部310は、PDL入力を解析して、トレーニング入力320、例えばトレーニング入力320のPDL入力に基づく部分の態様を表す特徴ベクトル322に使用できるPDL入力の1つ以上のテキスト特徴および/または他の特徴を決定することもできる。これらの例のいくつかでは、ブロック450において、トレーニングデータ生成部310は、生成した特徴ベクトル322の少なくとも一部を出力として提供することもできる。
【0074】
図5は、例示的な実施形態による、光学式文字認識のためのOCRパイプライン500の図である。いくつかの例において、OCRパイプライン500は、教師付き学習パイプライン300の予測段階に関連および/または教師付き学習パイプライン300の予測段階を実装しうる。OCRパイプライン500は、実際の入力350、実際の特徴ベクトル352、前処理510、予測モデル360、後処理550、および予測モデル出力370を含む。OCRパイプライン500の一部または全部は、OCRパイプライン500の一部または全部のソフトウェアを1つ以上の処理装置上で実行すること、および/または他の回路(例えば、OCRパイプライン500の一部または全部を実行するための特別なハードウェア)を使用することにより実装できる。
【0075】
動作中、OCRパイプライン500は、実際の入力350を受信することで開始しうる。特に、OCRパイプライン500への実際の入力350は、1つ以上の実際の電子文書および/または1つ以上の実際の紙文書を含むことができ、紙文書は、少なくとも
図3の内容に関して上述されたように、スキャンして対応する電子文書とすることができる。いくつかの例において、実際の入力350はPDL形式の1つ以上の文書を含みうる。そのようなPDL形式の文書は、実際の入力350の実際の電子文書の一部としてその後使用できる電子文書に印刷できる。実際の電子文書は、テキスト画像を含みうる1つ以上の画像である、そのような1つ以上の画像を表す、かつ/またはそのような1つ以上の画像を含むものでありうる。すなわち、実際の電子文書は、テキストおよび/またはテキストの描写を含みうる。
【0076】
実際の入力350を受信した後、OCRパイプライン500は、実際の入力350に基づいて1つ以上の実際の特徴ベクトル352を生成できる。実際の特徴ベクトル352は、実際の入力350の態様を表しうる。実際の特徴ベクトル352において表すことができる例示的な特徴としては、テキスト画像の1つ以上のテキスト特徴が挙げられる。テキスト特徴としては、テキスト色、背景色、テキストフォント、テキストサイズ、テキストスタイル、文字関連特徴、テキスト位置、フォント効果、フォントスタイル、テキスト方向、句読点、およびページサイズに関する特徴を含みうるが、これらに限定されない。
【0077】
実際の特徴ベクトル352を生成した後、OCRパイプライン500は、受信した実際の入力350および/または実際の特徴ベクトル352を前処理510することにより続行できる。前処理510は、教師付き学習パイプライン300のトレーニング段階について上述したものと同様の前処理を含みうる。すなわち、実際の入力350を前処理して、実際の入力350内のテキストおよび/または関連オブジェクト(例えば、テキスト画像)の位置を特定できる。特に、実際の入力350を前処理して、実際の入力350内のテキストおよび/または関連オブジェクトの境界ボックスおよびおそらくは他の位置情報を計算することができる。いくつかの例では、実際の入力350の前処理中に、実際の特徴ベクトル352からのデータを使用できる。
【0078】
前処理510の後、OCRパイプライン500は、前処理された実際の入力350内のテキストを認識するための予測モデル360の使用に進みうる。
図5は、OCRパイプライン500の予測モデル360が、検出モデル520、分類器モデル530、および認識モデル540を含みうることを示す。予測モデル360は、前処理された実際の入力350を前処理510から受け取ると、最初に検出モデル520を利用して、前処理された実際の入力350内のテキストを検出する。次いで、予測モデル360は、分類器モデル530を利用して、検出モデル520によって見出されたテキストを分類する。予測モデル360は、認識モデル540を利用して、分類器モデル530によって分類されたテキストを認識し、認識したテキストに関する認識モデル540による結果を、前処理された実際の入力350内で認識されたテキストの予測として出力する。
【0079】
検出モデル520は、テキストを認識するために、実際の特徴ベクトル352に対して回帰524およびセグメント化526を実行するためのトレーニングされた検出畳み込みニューラルネットワーク(CNN)522を含む。畳み込みニューラルネットワークは、その入力層で提供される入力がテキスト画像などの画像関連入力であると想定するANNであり、画像処理および/または他の画像関連タスク用に編成された隠れ層を含む。回帰524は、実際の入力350において受信したテキスト画像および/または他の画像内、例えばテキストが配置されている(おそらく前処理510の間に決定されたであろう)境界ボックス内でテキストがどのように「位置付け」られているかすなわち相対的に配置されているかを決定することを含みうる。例えば、テキストを湾曲していたり、境界ボックスの垂直軸および/または水平軸に揃えられていたり、境界ボックスの垂直軸および/または水平軸に対して傾いていることがある。したがって、境界ボックス内のテキストの位置付けを決定することは、境界ボックス内のテキストを認識することの一部である。したがって、トレーニングされた検出CNN522を利用して回帰524を実行することで、実際の入力350で受信したテキスト画像、文書、および/または他の入力内のテキストの位置付けを決定することができる。
【0080】
セグメント化526は、実際の入力350で受信したテキスト画像および/またはテキストを含む他の画像の、1つ以上の領域または区分を決定することを含みうる。いくつかの例において、セグメント化526は、テキストを含む境界ボックスの区分を決定することを含みうる。したがって、トレーニングされた検出CNN522を利用してセグメント化526を実行することで、実際の入力350として受け取ったテキスト画像、文書、および/またはテキストを含む他の入力内の部分を決定することができる。
【0081】
図6Aは、検出モデル520としてテキスト検出を実行するようにトレーニングすることの可能な検出CNN522aの図である。検出CNN522aは、CNN層612で前処理された入力(PPI)610を受信する。CNN層612、614、616、632、634、636、640、642、644、662、664、666、670、672、674のうち1つ以上のようなCNN層は、畳み込み、活性化、およびプーリングのタスクを、それぞれCNN層の1つ以上の畳み込み層、CNN層の1つ以上の活性化層、およびCNN層の1つ以上のプーリング層を使用して実行できる。畳み込み層は、それぞれの入力をフィルタリングするために1つ以上のフィルタを学習することができる。各フィルターは、活性化層への入力のサブセットに対して機能する。例えば、畳み込み層への入力が、Z種類の異なる色の入力を有するX×Yピクセルの入力を表す場合(例えば、サイズがX×Yピクセルであり、Z=1のグレースケール画像、Z=3の赤-緑-青(RGB)画像、Z=4のシアン-マゼンタ-黄-黒(CMYK)画像のいずれかであるテキスト画像の場合)、畳み込み層への入力は、入力ピクセル数×色数がX×Y×Zというボリュームとみなすことができる。畳み込み層のフィルタは、X×Y×Zのボリュームの一部、例えばX1×Y1×Z1ピクセル/色(ただしX1≦X、Y1≦Y、Z1≦Z)をフィルタ処理できる。例えば、CNN層612への入力がCMYK形式(Z=4)の100×100ピクセルのテキスト画像であり、CNN層612の畳み込み層が100×100×4ピクセル/色の入力ボリュームを受け取り、この100×100×4のボリュームに対して3×3×3のフィルタで畳み込みを行うよう作用すると仮定する。入力ボリュームとフィルタの他の多くの例もありうる。
【0082】
入力ボリュームに対してフィルタによる畳み込みを行うために、畳み込み層は入力ボリュームの幅および高さにわたってフィルタをスライドさせ、フィルタのエントリと入力ボリューム上でのフィルタの各位置における入力との間でドット積の演算を行いうる。畳み込み層は入力ボリュームの幅と高さにわたってフィルターをスライドさせるため、畳み込み層は、入力ボリュームのあらゆる空間位置におけるフィルターの応答を提供する2次元の活性化マップを生成するとみなすことができる。
【0083】
畳み込み層の出力(例えば、上記の活性化マップ)は、活性化層への入力として提供しうる。活性化層は、入力層(例えば、畳み込み層)の出力を後続の層に提供するか否かを決定しうる。例えば、活性化マップの値が[0,1]の範囲にあり、0.4を超える活性化マップ値のみが後続の層に提供されると仮定する。その後、活性化層は、[0,0.4]~0の範囲の活性化マップ値(活性化なしを表す)をマッピングし、さらに[0.4,1]~1の範囲の活性化マップ値(活性化を表す)をマッピングする。より一般的には、CNN層の畳み込み層は、シグモイド/ロジスティック活性化関数、双曲線正接活性化関数、正規化線形ユニット(ReLU)活性化関数、または畳み込み層の出力を後続の層に提供すべきか否かを決定する別の活性化関数などの活性化関数をモデル化できる。CNN層は、入力をフィルタリングしてタスク(例えば、テキストの検出および/または分類)を実行するために、畳み込み層と活性化層の対を1つ以上含みうる。
【0084】
畳み込み層と活性化層の対による出力は、プーリング層へと提供されうる。プーリング層は、畳み込み層と活性化層によって提供されるフィルタリング済みの入力をダウンサンプリングできる。プーリング層は、畳み込みに関しての上記の説明と同様に、入力ボリューム上でプーリングフィルタをスライドさせうる。プーリングフィルタは、サンプリングされたピクセル/色に対して関数を効果的に実行することができる。例えば、プーリングフィルタによってサンプリングされたピクセル/色の最大値を決定し、プーリングフィルタによってサンプリングされたピクセル/色の平均値を決定し、フィルタの出力として関数の出力を提供することができる。例えば、プーリングフィルタが2×2×1ピクセル/色の入力ボリュームの最大値を計算する場合、プーリングフィルタは2×2×1の入力ボリュームにおける4つの値を1つの出力(最大)値へと減らす。これにより、2×2×1の入力ボリュームを1つの値にダウンサンプリングする。すなわち、入力のX座標とY座標の両方で2分の1のダウンサンプリングを行う。プーリングフィルタの他の多くの例もありうる。したがって、CNN層は、CNN層への入力に関する特徴を抽出するために、畳み込み層、活性化層、およびプーリング層を使用して、入力に対して選択的なフィルタリングおよびダウンサンプリングを行いうる。結果として得られるCNN層の出力は、特徴ベクトルとして表しうる。
【0085】
いくつかの例では、プーリング層を使用して入力をアップサンプリングできる。例えば、プーリング層は、それぞれが入力と同一である複数の出力を提供できる。例えば、単一のピクセル/色入力I_UPSAMを、2×2×1というボリュームのピクセル/色を出力するアップサンプリングプーリング層が受け取ることができる。この出力はそれぞれ、I_UPSAMの値またはI_UPSAMに基づく別の値(例えば、I_UPSAMに重み付けまたはフィルタリングを行った値)を有しうる。したがって、アップサンプリングプーリング層は、ピクセル/色入力I_UPSAMを4倍にアップサンプリングして、2×2×1ピクセル/色というボリュームを生成する。
【0086】
いくつかの例において、アップサンプリングを実行するプーリング層は、関連する入力に関する情報、例えば別の層からスキップ接続を介して受信した入力などを受信することができる。スキップ接続は、ANNの1つ以上の層を回避すなわち「スキップ」するような、ANNの層間の接続である。スキップ接続を介して受信した入力は、アップサンプリングプーリング層によるアップサンプリングされた出力の計算に使用できる特徴に関する情報を提供しうる。例えば、
図6Bに関して言えば、CNN層632からCNN層644へのスキップ接続は、前処理された入力630に関する「粗い」入力、すなわちこの入力がCNN層632によってダウンサンプリングされる以前の入力を、CNN層644に提供できる。アップサンプリングプーリング層は、非スキップ接続から入力を受信することもでき、先の例を続けると、上記のI_UPSAM値のような「精度の高い」入力をCNN層642から受信できる。次いで、アップサンプリングプーリング層は、粗い入力と精度の高い入力とを組み合わせて出力を生成できる。これは例えば、畳み込み転置操作(逆畳み込みとも呼ばれる)であり、フィルターを使用して粗入力の各色/ピクセルに対する精度の高い入力の重み付けを行い、重み付けされた精度の高い入力と粗入力とを(例えば、乗算および/または加算により)組み合わせてアップサンプリングプーリング層のアップサンプリングされた出力を生成するものである。アップサンプリングのための他の技術ならびに/またはダウンサンプリングのためのプーリング層の他の例およびアップサンプリングのためのプーリング層の他の例もありうる。
【0087】
例えば、前処理された入力610は、前処理510を介して提供される前処理された実際の入力350でありうる。CNN層612は、前処理された入力610を処理して(例えば、前処理された入力610にフィルタリングおよびダウンサンプリングを行い、第1の特徴ベクトルとして)、前処理された入力610内のテキストの出力予測(OP)622を結果として生成し、CNN層614に対して入力(例えば、第1の特徴ベクトル)を提供することができる。CNN層614は、CNN層612に提供された入力612を処理して(例えば、CNN層612によって提供された入力にフィルタリングおよびダウンサンプリングを行い、第2の特徴ベクトルとして)、前処理された入力610内のテキストの出力予測(OP)624を結果として生成し、CNN層616に対して入力(例えば、第2の特徴ベクトル)を提供することができる。CNN層616は、CNN層612によって提供された入力を処理して(例えば、CNN層614によって提供された入力にフィルタリングおよびダウンサンプリングを行って)、前処理された入力610内のテキストの出力予測626を結果として生成することができる。このとき、検出CNN522aの出力は、出力予測622、624、626のうちの1つ以上でありうる。
【0088】
いくつかの例において、検出CNN522aの出力および/または出力予測622、624、626は、前処理された入力610を1つ以上のテキスト文字、例えば、「A」,「B」,...「Z」,「a」,「b」,...「z」,「0」,「1」,...「9」,「!」などとして分類できる。検出CNN522aの出力および/または出力予測622、624、626は、前処理された入力610をテキスト文字がないものとして分類することもできる。すなわち、前処理された入力610に対して「文字なし」という分類も有する。次いで、検出CNN522aの出力が「文字なし」以外の場合、例えば、前処理された入力を「Q」として分類する入力であった場合、前処理された入力610内のテキストが検出CNN522aによって検出されたとみなされうる。また、検出CNN522aの出力が「文字なし」の出力である場合、例えば、前処理された入力610が、すべて同色であるピクセル群を表し、したがってテキスト文字を表さない場合、検出CNN522aによっても、処理された入力610内にテキストは検出されないとみなされうる。
【0089】
図6Bは、検出モデル520としてテキスト検出を実行するようにトレーニングすることのできる検出CNN522bの図である。検出CNN522bは、CNN層632で前処理された入力630を受信する。例えば、前処理された入力630は、前処理510を介して提供される前処理された実際の入力350でありうる。CNN層632は、前処理された入力を処理して(例えば、前処理された入力610にフィルタリングおよびダウンサンプリングを行って、第4の特徴ベクトルとして)、CNN層634および644に対して入力(例えば、第4の特徴ベクトル)を提供することができる。CNN層634は、CNN層632によって提供された入力を処理して(例えば、CNN層632によって提供された入力にフィルタリングおよびダウンサンプリングを行い、第5の特徴ベクトルとして)、CNN層636および642に対して入力(例えば、第5の特徴ベクトル)を提供することができる。CNN層636は、CNN層634によって提供された入力を処理して(例えば、CNN層634によって提供された入力にフィルタリングおよびダウンサンプリングを行い、第6の特徴ベクトルとして)、CNN層640に対して入力(例えば、第6の特徴ベクトル)を提供することができる。いくつかの例において、CNN層632からCNN層644へと提供される入力、CNN層634からCNN層642に提供される入力、および/またはCNN層634からCNN層640に提供される入力は、対になったCNN層間のスキップ接続として作用しうる。
【0090】
検出CNN522bのCNN層640は、CNN層634に提供された入力を処理して(例えば、第6の特徴ベクトルにアップサンプリングを行い、結果として得られた特徴を第7の特徴ベクトルとして)、前処理された入力630内のテキストの出力予測650を結果として生成し、CNN層614に対して入力(例えば、第7の特徴ベクトル)を提供することができる。CNN層642は、CNN層640および634によって提供された入力を処理して(例えば、CNN層634によって提供されたデータを使用して、第7の特徴ベクトルに対してフィルタリングおよびアップサンプリングを行い、第8の特徴ベクトルを生成し)、前処理された入力630内のテキストの出力予測652を結果として生成し、CNN層644に対して入力(例えば、第8の特徴ベクトル)を提供することができる。CNN層644は、CNN層642および632によって提供された入力を処理して(例えば、CNN層632によって提供されたデータを使用して、第8の特徴ベクトルに対してフィルタリングおよびアップサンプリングを行い)、前処理された入力630内のテキストの出力予測654を結果として生成することができる。このとき、検出CNN 522bの出力は、出力予測650、652、654のうち1つ以上でありうる。
【0091】
図6Cは、検出モデル520としてテキスト検出を実行できるようトレーニングすることの可能な検出CNN522cの図である。
図6Cは、検出CNN522cと同様の動作を示す。検出CNN522cの前処理された入力660が検出CNN522bの前処理された入力630の役割を果たし、CNN層662、664、666、670、672、674がそれぞれ、CNN層632、634、636、640、642、644の役割を果たす。ただしCNN層670および672は、出力予測を提供しない点が異なっている。検出CNN522cでは、CNN層674のみが出力予測680を提供し、検出CNN522cの出力が出力予測680となる。
【0092】
図5に戻ると、予測モデル360の分類器モデル530は、テキストを分類するために訓練されうる。分類器モデル530は、分類されつつあるテキストの一部が特定のテキスト文字を表す確率、例えば、テキスト文字が特定のASCII値またはUnicode値を有する確率を決定できる。より具体的には、ASCIIは128文字(拡張ASCIIの場合は256文字)を符号化し、分類器モデル530は少なくとも128(または256)の出力O
0...O
127(拡張ASCIIの場合はO
0...O
255)を有しうる。O
xは、分類器モデル530への入力の現在の部分が、ASCII値がxである入力文字を表す確率である。すなわち、現在の部分が文字「Q」を表す場合、ネットワークはO
65...O
90を出力し、出力される大文字の確率は、例えば、O
65(「A」を表す)が0.1%、O
66(「B」を表す)が2%、O
67(「C」を表す)が0.01%...O
81(「Q」を表す)が89%...、O
90(「Z」を表す)が1.1%のようになる。いくつかの例において、分類器モデル530は別の出力を提供することがある。例えば、ASCIIのO
128(拡張ASCIIの場合はO
256)は、「文字なし」の出力であり、分類されつつあるテキストの一部がASCII文字(または拡張ASCII文字)でない確率とともに示される。分類器モデル530の他の出力もありうる。
【0093】
教師付き学習中に、予測値とグラウンドトゥルース値(例えば、トレーニングデータ項目のデータラベル)との間の不一致を測定する損失関数を使用して、分類器モデル530をトレーニングすることができる。より詳細には、トレーニング分類器モデル530の損失関数LF1は、予測値とトレーニングデータ項目のデータラベルとの間の「ユークリッド距離」を表す平均二乗誤差(MSE)値に基づくものでありうる。すなわち、この「Q」の例における大文字の場合、損失関数LF1によれば、O65(「A」を表す)が0%、O66(「B」を表す)が0%、O67(「C」を表す)が0%...O81(「Q」を表す)が100%...O90(「Z」を表す)が0%のように値が決定されうる。損失関数の出力を、分類器モデル530の各層の勾配により逆伝播させ、誤差値を減らすために各層のパラメーターをどの程度調整すればよいかを決定できる。誤差値は例えば、|Ox-LF1(Ox)|(L1ノルム)または|{Ox-LF1(Ox)}2|1/2(L2ノルム)のような、OxとLF1(Ox)との差に基づいて計算された誤差値である。他の損失関数も可能である。例えば、損失関数は、交差エントロピー損失および/または他の値に基づくものであってもよい。
【0094】
すなわち、分類器モデル530は、各入力画像の各部分にわたって反復してエラー値を減少させるようノードの重みを調整することにより、描写された文字を分類する(また、それによって光学文字認識を実行する)方法を学習しうる。分類器モデル530のトレーニングは、エラー値がしきい値を下回った時点で、例えば、O0...O127(拡張ASCIIの場合はO0...O255)を足し合わせたエラー値合計SEVを、所定数NEV(たとえば、1,10,1000,5000)の入力画像について足し合わせた値が、しきい値エラー値TEV未満となった時点で完了しうる(すなわち、SEVが直近のNEVの入力画像についての合計であるとき、SEV<TVであればトレーニングが完了する)。分類器モデル530のトレーニングの完了時を決定するる他の技術も可能である。
【0095】
認識モデル540は、トレーニングされた認識CNN542およびトレーニングされた回帰型ニューラルネットワーク544を含みうる。認識CNN542は、分類器モデル530の出力Oxに基づいて、どの文字が分類器モデルによって認識されたかを決定できる。文字「Q」に関する上記の分類例の続きであるが、分類子モデル530が「Q」を入力として受信し、次いで上記の出力、例えば、O65(「A」を表す)が0.1%、O66(「B」を表す)が2%、O67(「C」を表す)が0.01%、…O81(「Q」を表す)が89%...O90(「Z」を表す)が1.1%を出力すると仮定する。認識CNN542は、分類器モデル530の出力Oxを受信し、O81(「Q」を表す)が最も高い確率を有するという決定を下し、したがって、分類器モデル530が文字「Q」を認識したという決定を下す。
【0096】
回帰型ニューラルネットワーク544は、ANNのノード間に接続を有し、そのような接続によって時系列に沿った有向グラフが形成されるANNである回帰型ニューラルネットワークを含みうる。回帰型ニューラルネットワーク544は、1つ以上のメモリ層を使用して、過去の入力/イベント、例えば以前に受信した文字/テキスト項目に関する情報を保存できる。ノードおよび/またはメモリ層の間のこのような接続により、回帰型ニューラルネットワーク544は経時的な動的挙動、すなわち時間の経過に伴う挙動の変化を示しうる。
【0097】
トレーニングされた回帰型ニューラルネットワーク544は、コネクショニスト時系列分類546およびアテンション548を含む機能を利用して、その入力(例えば認識CNN542の出力など)に基づくテキスト認識を行うことができる。回帰型ニューラルネットワーク544の観点から見れば、認識CNN542からの入力は、認識された文字、またはより一般的にはテキスト項目の時系列と考えられる。したがって、トレーニングされた回帰型ニューラルネットワーク544は、認識されたテキスト項目の時系列からテキストを予測すること、例えば認識されたテキスト項目の時系列からテキストの単語を予測することができる。
【0098】
コネクショニスト時系列分類546は、トレーニングされた回帰型ニューラルネットワーク544の一部として、かつ/またはトレーニングされた回帰型ニューラルネットワーク544によって使用されることで、回帰型ニューラルネットワーク544によって受信された入力をセグメント化するための、例えば認識されたテキスト項目の時系列を単語、句、文などにセグメント化するための入力を提供する。アテンション548は、回帰型ニューラルネットワーク544のメモリ層からリコールされた過去の入力およびコネクショニスト時系列分類546からの入力をセグメント化するための入力に「アテンション」または重みを割り当てることができ、認識されたテキスト項目の時系列からより良いテキスト予測が行えるようにこれらの入力の重み付けの仕方を決定する。
【0099】
予測モデル360が前処理された実際の入力350のテキストを認識した後、OCRパイプライン500は、予測モデル360の出力の後処理550の実行に進むことができる。例えば、認識モデル540が文字(または単語)レベルで出力を提供する場合、後処理550は、出力をテキストの単語(または句/文)に書式を再設定することを含みうる。別の例を挙げると、認識モデル540が認識されたテキストおよび認識されたテキストの確率に関する出力を提供する場合、後処理550は、認識されたテキストに関する出力と認識されたテキストの確率に関する出力とを組み合わせて、予測モデル出力370として提供されるテキストと確率の両方を含む1つの共通出力とすることを含みうる。関連する一例において、認識モデル540が認識されたテキストおよび認識されたテキストの確率に関する出力を提供する場合、後処理550は、これらの出力からの選択を行うことを含みうる。例えば、認識されたテキストの確率に関する出力が不要である場合、後処理550は、認識されたテキストに関する出力のみを出力される予測モデル出力370として選択することができる。
【0100】
予測モデル360の出力の後処理550が完了した後、OCRパイプライン500は、予測モデルの出力370に進むことができる。OCRパイプライン500は、予測モデル出力370の一部または全部を保存し、予測モデル出力370の一部または全部を1つ以上の他の演算装置に伝送し、予測モデル出力370の一部または全部を表示し、かつ/または別の方法で予測モデル出力370の一部または全部を供給することにより、予測モデル出力370を提供することができる。
【0101】
いくつかの例では、予測モデル360および/またはOCRパイプライン500の一部または全部を具体化するための特定のハードウェア(例えば、特定用途向け集積回路(ASIC)、グラフィックス処理装置(GPU)、テンソル処理ユニット(TPU))、および/または他の回路)を構築することができる。例えば、予測モデル360および/またはOCRパイプライン500の役割を果たす特定のハードウェアは、一般に光学文字認識を実行する装置、例えばスキャン/印刷装置などで光学文字認識を実行するために使用される1つ以上の「OCRチップ」として具体化されうる。
【0102】
図7は、例示的な実施形態による、教師付き学習パイプライン300がトレーニングされ、関連するOCRパイプライン500がPDL入力に基づいて予測モデル出力740を生成するシナリオ700を示す。シナリオ700において、トレーニングデータ生成部310は、入力PDLファイルを処理することによりレンダリングされたPDL720を生成し、入力PDLファイルを解析してトレーニングデータ項目730を構成する値を決定することにより関連するトレーニングデータ項目730を生成する。
図7は、レンダリングされたPDL720が、グレーのページのほぼ中央にある黒い文字「ABC」を表すことを示している。
【0103】
図7はまた、トレーニングデータ項目730が、レンダリングされたPDL720が「ABC」という「テキスト」を有すること、テキスト色は「0,0,0,255」(黒いテキスト色を示すためにCMYKを使用して表現)であること、テキストフォントが「Helvetica」であること、テキストフォントサイズが「48」であること、「テキスト境界ボックス(BBox)が75,64,165,100」であること、テキストの回転は「0」度と指定されていること、および背景色がCMYKで「0,0,0,128」と表現された、例えば灰色の背景であることを含むレンダリングされたPDL720に関する情報を提供することを示している。
【0104】
シナリオ700において、境界ボックスは、四隅のうち2つ、すなわち境界ボックスの左上隅と右下隅によって指定される。各隅は、ピクセル位置「XY」で指定される。「X」の値は、ページ(この場合は、レンダリングされたPDL720によって示されるページ)の左上隅を「0」として始まり、左上隅から右に移動するにつれて増加するピクセルで指定される。「Y」の値は、ページの左上隅を「0」として始まり、左上隅から下に移動するにつれて増加するピクセルで示される。したがって、トレーニングデータ項目730「75,64,165,100」で指定される境界ボックスは、その左上隅が「75,64」、すなわちレンダリングされたPDL720のページの左上隅から右へ75ピクセル、下へ64ピクセルの位置にあり、その右下隅は「165,100」、すなわちレンダリングされたPDL720のページの左上隅から右へ165ピクセル、下へ100ピクセルの位置にある。
【0105】
シナリオ700は続くが、ここで機械学習アルゴリズム340は、レンダリングされたPDL720に部分的に基づいてトレーニングされ、トレーニング中にトレーニングデータ項目730が入力として提供される。機械学習アルゴリズム340がトレーニングされた後、機械学習アルゴリズム340は予測モデル360とみなされ、OCRパイプライン500の一部として利用される。
【0106】
シナリオ700はOCRパイプライン500に進み、レンダリングされたPDL720を実際の入力350の一部として受け取る。実際の特徴ベクトル352が実際の入力350から生成され、実際の入力の前処理510が実行された後、前処理された実際の入力および実際の特徴ベクトル352が予測モデル360に提供される。次いで、予測モデル360は、OCRパイプライン500に関連して上述したように、前処理された実際の入力および実際の特徴ベクトル352に作用して、シナリオ700の予測モデル出力740を生成し、レンダリングされたPDLで認識されるテキストの出力を提供する。
【0107】
シナリオ700において、予測モデル360の予測モデル出力370は、後処理550によって後処理されて、hOCRに類似した形式の出力を生成する。この後処理された出力は、
図7において予測モデル出力740として示されている。hOCRと同様に、予測モデル出力740は、
図7に示す「<p class=‘ocr_par’ lang=‘eng’ title=“training1”>」のような「<p....>」(段落)タグを使用して段落の境界を示すことができ、hOCRで示され認識されたテキスト行を「<span...>」タグと「ocr_line」という「class」を使用して示すことができる。
【0108】
予測モデル出力740の例において、スパンタグは「<span class=‘ocrx_word’ title=‘bbox 73 62 168 99;x_wconf93’>ABC</span>」である。class「ocr_word」によって、OCRを使用して認識された単語に関連するスパンが示される。また、左上隅のXY座標が「73 62」、右下隅のXY座標が「168 99」である「bbox」(境界ボックス)を伴う「タイトル」を有することと、信頼値「x_wconf」が93すなわち93%であることと、予測されたテキストが「ABC」であることとが、「<span...>」と</span>との間に示される。他のシナリオにおいては、予測モデル出力の他の形式もありうる。予測モデル出力740が生成された後、OCRパイプライン500が予測モデル出力740を予測モデル出力370の一部として提供することにより、シナリオ700は終了する。
【0109】
(動作方法の例)
図8に、例示的実施形態による方法800のフローチャートを示す。方法800は、人工ニューラルネットワークのトレーニングおよび利用のために使用できる。方法800は、演算装置200などの演算装置によって実行できる。
【0110】
図8は、方法800がブロック810から開始可能であることを示す。ブロック810において、演算装置は、少なくとも
図3、4および7に関連して本明細書で説明したように、テキストを含むトレーニング文書を受信できる。
【0111】
ブロック820において、演算装置は、トレーニング文書を解析して、複数のトレーニングデータ項目を決定することができる。複数のトレーニングデータ項目の各トレーニングデータ項目はそれぞれ、少なくとも
図3、4および7に関連して本明細書で説明したように、トレーニング文書内のテキストに関連するトレーニングラベルと、トレーニングラベルに関連するトレーニング文書内のテキストの位置を示す位置情報とを含む。
【0112】
ブロック830において、少なくとも
図3、4および7に関連して本明細書で説明したように、複数のトレーニングデータ項目と、トレーニング文書を含むトレーニング入力とを使用して、文書内のテキストを認識するようにANNをトレーニングすることができる。
【0113】
ブロック840では、ANNのトレーニングを行った後、トレーニング文書とは異なるアプリケーション文書のテキストを予測する要求が受信されうる。このアプリケーション文書は、少なくとも
図5に関連して本明細書で説明したように、第2のテキストを含む。
【0114】
ブロック850において、第2のテキストの予測は、少なくとも
図5、6A、6B、6C、および7に関連して本明細書で説明したように、トレーニング済みのANNをアプリケーション文書に適用することにより決定されうる。
【0115】
ブロック860では、少なくとも
図5および7に関連して本明細書で説明したように、第2のテキストの予測が決定された後、この第2のテキストに関連する情報が出力として提供されうる。
【0116】
いくつかの例では、PDLを使用してトレーニング文書を指定できる。この場合、少なくとも
図3および4に関連して本明細書で説明したように、トレーニング文書の解析によって複数のトレーニングデータ項目を決定することは、トレーニング文書のPDLを解析して複数のトレーニングデータ項目を決定することを含みうる。
【0117】
いくつかの例において、トレーニング文書のPDLを解析して複数のトレーニングデータ項目を決定することは、少なくとも
図3および4に関連して本明細書で説明したように、トレーニング文書のPDLの解析によってトレーニングラベルに関連するトレーニング文書内のテキストの位置を示す境界ボックスを含みうる位置情報を決定することを含みうる。
【0118】
いくつかの例では、複数のトレーニングデータ項目とトレーニング入力とを使用して文書内のテキストを認識するようにANNをトレーニングすることは、少なくとも
図3および4に関連して本明細書で説明したように、トレーニング文書のPDLを使用してトレーニング文書の電子コピーを生成し、トレーニング済みのANNをトレーニング文書に適用することにより、トレーニング文書のテキストの予測を決定し、複数のトレーニングデータ項目に基づいてトレーニング文書のテキストの予測の精度を決定することを含みうる。
【0119】
いくつかの例において、複数のトレーニングデータ項目に基づいてトレーニング文書のテキストの予測の精度を決定することは、少なくとも
図3および4に関連して本明細書で説明したように、複数のトレーニングデータ項目のうちの第1のトレーニングデータ項目(この第1のトレーニングデータ項目は、トレーニング文書内の第1のテキストに関連する第1のトレーニングラベルと、トレーニング文書内の第1のテキストの第1の位置を示す第1の位置情報とを含みうる)を決定すること、テキストの予測内の第1の位置にある第1の予測されたテキストを決定すること、および第1のテキストに関連する第1のトレーニングラベルと第1の予測されたテキストとの比較に基づいてトレーニング文書のテキストの予測の精度を決定することを含みうる。
【0120】
いくつかの例において、第1のテキストに関連する第1のトレーニングラベルと第1の予測されたテキストとの比較に基づいてトレーニング文書のテキストの予測の精度を決定することは、少なくとも
図3および4に関連して本明細書で説明したように、第1のテキストが第1の予測されたテキストと一致するか否かを決定すること、および第1のテキストが第1の予測されたテキストと一致していることを決定した後、テキストの予測の精度を高めることを含みうる。
【0121】
いくつかの例において、トレーニング文書のPDLを使用してトレーニング文書の電子コピーを生成することは、少なくとも
図3および4に関連して本明細書で説明したように、トレーニング文書のPDLおよび1つ以上のデータ拡張技術を使用してトレーニング文書の電子コピーを生成することを含みうる。
【0122】
いくつかの例において、1つ以上のデータ拡張技術は、少なくとも
図3および4に関連して本明細書で説明したように、トレーニング文書の電子コピーの少なくとも一部を歪ませる技術、トレーニング文書の電子コピーの少なくとも一部を回転させる技術、トレーニング文書の電子コピーの少なくとも一部にノイズを混入する技術、およびトレーニング文書の電子コピーの少なくとも一部をフィルタリングする技術のうち1つ以上を含みうる。
【0123】
いくつかの例において、トレーニング文書のPDLを使用してトレーニング文書の電子コピーを生成することは、少なくとも
図3および4に関連して本明細書で説明したように、トレーニング文書の紙コピーを印刷すること、およびこのトレーニング文書の紙コピーをスキャンしてトレーニング文書の電子コピーを生成することを含みうる。
【0124】
いくつかの例において、トレーニング文書のPDLを解析することは、少なくとも
図3および4に関連して本明細書で説明したように、トレーニング文書のPDLを変更して、複数の異なるフォントを使用するテキスト、複数の異なる色を使用するテキスト、複数の異なるサイズを使用するテキスト、複数の異なるスタイルを使用するテキスト、および複数の背景色を利用する複数のページの少なくとも1つを含むようにすることを含みうる。
【0125】
いくつかの例において、複数のトレーニングデータ項目とトレーニング入力とを使用して文書内のテキストを認識するようにANNをトレーニングすることは、少なくとも
図3、4および7に関連して本明細書で説明したように、トレーニング入力に基づいて特徴ベクトルを決定することを含みうる。
【0126】
詳細な説明、図、および特許請求の範囲に記載されている例示的な実施形態は、限定を意図するものではない。本明細書に提示される主題の精神および範囲から逸脱することなく、他の実施形態を利用することができ、他の変更を行うことができる。本明細書に一般的に記載され、図面に示される本開示の態様は、多種多様な異なる構成で配置、置換、組み合わせ、分離、設計することができ、それらがすべて明示的に本明細書に包含されることは、容易に理解されよう。
【0127】
図面に示し、本明細書中で説明した任意のまたはすべてのラダー図、シナリオ、およびフローチャートにおいて、各ブロックおよび/または通信は、例示の実施形態に沿った情報の処理および/または情報の伝送を表しうる。別の実施形態もこれらの例示的な実施形態の範囲内に含まれる。そのような別の実施形態において、例えば、ブロックとして記載された機能、伝送、通信、要求、応答および/またはメッセージは、その機能性に応じて、示されたあるいは説明された順序とは異なる順序で実行されてもよく、実質的に同時にあるいは逆の順序での実行も含まれる。さらに、より多くの、あるいはより少ないブロックおよび/または機能を本明細書中で説明した任意のラダー図、シナリオ、およびフローチャートとともに使用してもよく、そのようなラダー図、シナリオ、およびフローチャートは、部分的にまたは全体的に互いに組み合わされてもよい。
【0128】
情報の処理を表すブロックは、方法または技術における特定の論理機能を実行するよう構成することの可能な回路に対応する場合がある。それに代えてまたは加えて、情報の処理を表すブロックは、プログラムコード(関連データを含む)のモジュール、セグメント、または一部に対応する場合がある。プログラムコードは、方法または技術における特定の論理機能または動作を実装するための、プロセッサーによって実行可能な1つ以上の命令を含んでいてもよい。プログラムコードおよび/または関連データは、ディスクもしくはハードドライブを含む記憶装置のような任意のタイプのコンピューター可読媒体または他の記憶媒体に記憶されてもよい。
【0129】
コンピューター可読媒体は、レジスタメモリ、プロセッサーキャッシュ、およびランダムアクセスメモリ(RAM)のようなデータを短期間記憶するコンピューター可読媒体のような非一時的コンピューター可読媒体も含みうる。コンピューター可読媒体はまた、プログラムコードおよび/またはデータを長期にわたって記憶する非一時的コンピューター可読媒体、例えば、読み出し専用メモリ(ROM)、光ディスクまたは磁気ディスク、コンパクトディスク読み出し専用メモリ(CD-ROM)などの二次または持続的長期記憶媒体を含みうる。コンピューター可読媒体は、任意の他の揮発性または不揮発性記憶システムであってもよい。コンピューター可読媒体は、例えば、コンピューター可読記憶媒体、または有形の記憶装置とみなされうる。
【0130】
様々な態様および実施形態を本明細書で開示したが、他の態様および実施形態も当業者には明らかであろう。本明細書で開示した様々な態様および実施形態は、例示を目的とするものであり、限定を意図するものではない。真の範囲は、以下の特許請求の範囲によって示される。