(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024154426
(43)【公開日】2024-10-30
(54)【発明の名称】輪郭セグメント化を使用したテキスト認識機
(51)【国際特許分類】
G06V 30/14 20220101AFI20241023BHJP
G06V 30/262 20220101ALI20241023BHJP
【FI】
G06V30/14 340K
G06V30/262
【審査請求】未請求
【請求項の数】20
【出願形態】OL
【外国語出願】
(21)【出願番号】P 2024067071
(22)【出願日】2024-04-17
(31)【優先権主張番号】18/302,493
(32)【優先日】2023-04-18
(33)【優先権主張国・地域又は機関】US
(71)【出願人】
【識別番号】500520743
【氏名又は名称】ザ・ボーイング・カンパニー
【氏名又は名称原語表記】The Boeing Company
(74)【代理人】
【識別番号】110002077
【氏名又は名称】園田・小林弁理士法人
(72)【発明者】
【氏名】チョプラ, シーマ
(72)【発明者】
【氏名】クリシュナン, アラヴィンダン
(72)【発明者】
【氏名】バチリ, ヴィノード クマール レディ
(72)【発明者】
【氏名】クマール, カルシク カリヤン
【テーマコード(参考)】
5B029
5B064
【Fターム(参考)】
5B029AA01
5B029BB02
5B029CC21
5B029EE08
5B064AA01
5B064AB02
5B064AB13
5B064AB17
5B064DA27
5B064EA18
(57)【要約】 (修正有)
【課題】輪郭検出を使用したテキスト認識のためのコンピューティングデバイス及びテキスト認識のための方法を提供する。
【解決手段】コンピューティングシステム100において、コンピューティングデバイス102は、テキスト認識プログラム112内に記憶された指令を記憶する非揮発性メモリ112に連結されたプロセッサ104を備え、前記指令が、プロセッサによって実行されると、プロセッサに、画像を含むデータファイルを受信することと、画像内の少なくとも1つの輪郭を認識することと、少なくとも1つの輪郭を複数のセグメントに区切ることと、複数のセグメントの各セグメントにおけるテキスト文字を認識することとを行わせる。
【選択図】
図1
【特許請求の範囲】
【請求項1】
テキスト認識のためのコンピューティングデバイス(102)であって、前記コンピューティングデバイス(102)が、
指令を記憶する記憶媒体に連結されたプロセッサ(104)を備え、前記指令が、前記プロセッサ(104)によって実行されると、前記プロセッサ(104)に、
画像(114)を含むデータファイルを受信することと、
前記画像(114)内の少なくとも1つの輪郭(118)を認識することと、
前記少なくとも1つの輪郭(118)を複数のセグメント(122)に区切ることと、
前記複数のセグメント(122)の各セグメント内のテキスト文字(126)を認識することと
を行わせる、コンピューティングデバイス(102)。
【請求項2】
前記指令が前記プロセッサ(104)によって実行されると、前記プロセッサ(104)に、
認識された前記テキスト文字(126)のうちの少なくとも2つを付加して、単語を形成することと、
前記単語に対して単語修正(214)を行い、修正された単語を生成することと、
前記修正された単語を出力することと
をさらに行わせる、請求項1に記載のコンピューティングデバイス(102)。
【請求項3】
前記認識されたテキスト文字(126)のうちの少なくとも2つが、所定の空間位置差異閾値に基づいて付加される、請求項2に記載のコンピューティングデバイス(102)。
【請求項4】
前記少なくとも1つの輪郭(118)が、複数の輪郭(118)を含み、前記指令が、前記プロセッサ(104)によって実行されると、前記プロセッサ(104)に、前記複数の輪郭(118)をフィルタリングして、前記複数の輪郭(118)における非テキスト輪郭を除去することをさらに行わせる、請求項1に記載のコンピューティングデバイス(102)。
【請求項5】
前記少なくとも1つの輪郭(118)を認識することが、複数の隣接ピクセルを特定することを含み、各隣接ピクセルが、別の隣接ピクセルに対して所定の空間距離閾値内にあり、各隣接ピクセルが、所定のピクセル値閾値を超えるピクセル値を含む、請求項1に記載のコンピューティングデバイス(102)。
【請求項6】
前記少なくとも1つの輪郭(118)を区切ることが、
前記少なくとも1つの輪郭(118)における輪郭(118)が刻まれた境界ボックス(308)を特定することと、
前記境界ボックス(308)を分割することと
を含む、請求項1に記載のコンピューティングデバイス(102)。
【請求項7】
前記境界ボックス(308)が、所定のピクセル幅値に基づいて分割される、請求項6に記載のコンピューティングデバイス(102)。
【請求項8】
前記少なくとも1つの輪郭(118)が、複数の輪郭(118)を含み、前記少なくとも1つの輪郭(118)を区切ることが、
複数の境界ボックス(308)を特定することであって、前記複数の輪郭(118)の各輪郭(118)が、前記複数の境界ボックス(308)の別の境界ボックス(308)内に刻まれる、複数の境界ボックス(308)を特定することと、
所定のピクセル幅値に基づいて、前記複数の境界ボックス(308)の各境界ボックス(308)をセグメントのセットに分割することと
を含み、前記所定のピクセル幅値が、前記複数の境界ボックス(308)の最小幅に基づいて決定される、請求項1に記載のコンピューティングデバイス(102)。
【請求項9】
前記テキスト文字(126)が、テキスト分類機械学習モデルを使用して認識される、請求項1に記載のコンピューティングデバイス(102)。
【請求項10】
前記テキスト分類機械学習モデルが、畳み込みニューラルネットワークを含む、請求項9に記載のコンピューティングデバイス(102)。
【請求項11】
テキスト認識のための方法(400)であって、
画像(114)を含むデータファイルを受信すること(402)と、
前記画像(114)内の少なくとも1つの輪郭(118)を認識すること(404)と、
前記少なくとも1つの輪郭(118)を複数のセグメント(122)に区切ること(408)と、
前記複数のセグメント(122)の各セグメント内のテキスト文字(126)を認識すること(410)と
を含む方法(400)。
【請求項12】
所定の空間位置差異閾値を満たす少なくとも2つの認識されたテキスト文字(126)を特定することと、
前記少なくとも2つの認識されたテキスト文字(126)を付加して、単語を形成すること(412)と、
前記単語に対して単語修正(214)を行い、修正された単語を生成すること(414)と、
前記修正された単語を出力することと
を含む、請求項11に記載の方法(400)。
【請求項13】
前記少なくとも1つの輪郭(118)が、複数の輪郭(118)を含み、前記方法が、前記複数の輪郭(118)をフィルタリングして、前記複数の輪郭(118)における非テキスト輪郭を除去することをさらに含む、請求項11に記載の方法(400)。
【請求項14】
前記少なくとも1つの輪郭(118)を区切ること(408)が、
前記少なくとも1つの輪郭(118)における輪郭(118)が刻まれた境界ボックス(308)を特定することと、
所定のピクセル幅値に基づいて、前記境界ボックス(308)を分割することと
を含む、請求項11に記載の方法(400)。
【請求項15】
テキスト分類畳み込みニューラルネットワークを使用して、前記テキスト文字(126)が認識される(410)、請求項11に記載の方法(400)。
【請求項16】
テキスト認識のためのコンピューティングデバイス(102)であって、前記コンピューティングデバイス(102)が、
指令を記憶する記憶媒体に連結されたプロセッサ(104)を備え、前記指令が、前記プロセッサ(104)によって実行されると、前記プロセッサ(104)に、
画像(114)を含むデータファイルを受信することと、
前記画像(114)内の複数の輪郭(118)を認識することと、
前記複数の輪郭(118)をフィルタリングして、前記画像(114)の非テキスト部分に対応する輪郭を除去することと、
前記複数の輪郭(118)における残った輪郭(118)の各々を1つ又は複数のセグメント(122)に区切ることと、
テキスト分類機械学習モデルを使用して、各々の仕切られたセグメント(122)におけるテキスト文字(126)を認識することと、
認識された前記テキスト文字(126)を出力することと
を行わせる、コンピューティングデバイス(102)。
【請求項17】
前記指令が、前記プロセッサ(104)によって実行されると、前記プロセッサ(104)に、
所定の空間位置差異閾値を満たす少なくとも2つの認識されたテキスト文字(126)を特定することと、
前記少なくとも2つの認識されたテキスト文字(126)を付加して、単語を形成することと、
前記単語に対して単語修正(214)を行い、修正された単語を生成することと、
前記修正された単語を出力することと
をさらに行わせる、請求項16に記載のコンピューティングデバイス(102)。
【請求項18】
前記複数の輪郭(118)が、テキスト分類機械学習モデルを使用してフィルタリングされる、請求項16に記載のコンピューティングデバイス(102)。
【請求項19】
前記残った輪郭(118)の各々を区切ることが、
前記残った輪郭(118)における輪郭(118)が刻まれた境界ボックス(308)を特定することと、
所定のピクセル幅値に基づいて、前記境界ボックス(308)を分割することと
を含む、請求項16に記載のコンピューティングデバイス(102)。
【請求項20】
前記テキスト文字(126)が、テキスト分類畳み込みニューラルネットワークを使用して認識される、請求項16に記載のコンピューティングデバイス(102)。
【発明の詳細な説明】
【技術分野】
【0001】
[0001]本発明の分野は、概して、テキスト認識、より具体的には、輪郭検出を使用したテキスト認識に関する。
【背景技術】
【0002】
[0002]実文書のデジタル化は、ビジネスや個人的なワークフローなどの様々な目的でしばしば行われる。典型的に、スキャン装置の使用により、デジタル化プロセスで実文書がデジタル画像ファイルに変換される。スキャンされた画像データは、概して、実文書を単なる画像データとして表す。つまり、実文書にテキストが存在していたとしても、スキャンされた画像データは任意のテキストデータを含まない。より多くの機能性を確保するために、テキスト認識プロセスを画像からテキストを抽出して、テキストエディター及びワードプロセッシングアプリケーションによって編集、検索、操作等が可能な機械可読フォーマットに落とし込むことができる。このようなプロセスは、典型的に、自動化電子アルゴリズムとして実装される。自動化電子アルゴリズムでは、機械視覚技法を用いて、画像データに存在するデータを認識し、認識されたテキストを機械可読テキストデータに変換するテキスト分類を実行する。
【発明の概要】
【0003】
[0003]テキスト認識のためのコンピューティングデバイスの実施例が提供される。コンピューティングデバイスは、指令を記憶する記憶媒体に連結されたプロセッサを備えており、当該指令は、プロセッサによって実行されると、プロセッサに、画像を含むデータファイルを受信することと、画像内の少なくとも1つの輪郭を認識することと、少なくとも1つの輪郭を複数のセグメントに区切ることと、複数のセグメントの各セグメント内のテキスト文字を認識することとを行わせる。
【0004】
[0004]別の態様は、テキスト認識のための方法を提供する。当該方法は、画像を含むデータファイルを受信することと、画像内の少なくとも1つの輪郭を認識することと、少なくとも1つの輪郭を複数のセグメントに区切ることと、複数のセグメントの各セグメント内のテキスト文字を認識することとを含む。
【0005】
[0005]別の態様は、テキスト認識のためのコンピューティングデバイスを提供する。コンピューティングデバイスは、指令を記憶する記憶媒体に連結されたプロセッサを備えており、前記指令は、プロセッサによって実行されると、プロセッサに、画像を含むデータファイルを受信することと、画像内の複数の輪郭を認識することと、複数の輪郭をフィルタリングして、画像の非テキスト部分に対応する輪郭を除去することと、複数の輪郭における残った輪郭の各々を1つ又は複数のセグメントに区切ることと、テキスト分類機械学習モデルを使用して、各々の仕切られたセグメントにおけるテキスト文字を認識することと、認識されたテキスト文字を出力することと
を行わせる。
【0006】
[0006]この「発明の概要」は、以下の「発明を実施するための形態」でさらに詳細に記載される選ばれた概念を単純な形態で紹介するために提供されている。この「発明の概要」は、特許請求される発明の主題の主要な機能又は重要な機能を特定することを意図しておらず、特許請求される発明の主題の範囲を限定するために使用されることも意図していない。さらには、特許請求される発明の主題は、本開示の任意の部分に記載されている任意の又はすべての欠点を解決する実装形態に限定されていない。
【図面の簡単な説明】
【0007】
【
図1】テキスト認識のための例示的なコンピューティングシステムの概略図を示す。
【
図2A】画像からテキストを抽出するための例示的なテキスト認識フレームワークを示す。
【
図2B】画像からテキストを抽出するための例示的なテキスト認識フレームワークを示す。
【
図3】画像内の単語の例示的なテキスト認識プロセスを示す。
【
図4】輪郭検出及びセグメント化を用いた、テキスト認識のための例示的な方法のフロー図を示す。
【
図5】本明細書に記載された1つ又は複数の方法及びプロセスを実行し得る例示的なコンピューティング環境の概略図を示す。
【発明を実施するための形態】
【0008】
[0012]現在のテキスト認識のソリューションは、ロバスト性を欠いており、特定の文書及びテキストを処理するときにのみ秀でている。概して、このようなソリューションは、現代の印刷文書では典型的に見られる、明確かつ明瞭な外形を有するテキストや、間隔が規則的な文字群に対して良好に機能するように設計されている。しかし、かようなソリューションは、分析される画像の品質が、求められるフォーマットから逸れる(例えば、異なるフォント、サイズ、及び明瞭さのテキスト)と、正確さが損なわれる。例えば、にじんだテキストや手書きのテキストを有する文書は、現代のテキスト認識ソリューションでは変換が困難である場合がある。このような使用例には、古い文書及び/又は技術文書が関わることが多い。ほとんどの現代のテキスト認識ソリューションは、光学認識及びコンピュータ視覚技法を用いて文字ごとにテキストを抽出する技法に依存しており、文字間の余白を検出ことによって文字を分離する。しかし、このようなソリューションは、特定の種類のテキストに対して効果的ではない。例えば、重複する文字、すなわち、所定の閾値内で互いに隣接する、輪郭を有する文字は、かようなソリューションを用いて構文解析することが困難であり得る。上述した使用例では、文字の重複はよく起きることかもしれないが、現代のテキスト認識ソリューションでは、このような事例で適切なレベルの正確性を発揮することに失敗する。
【0009】
[0013]上述の検討を考慮して、輪郭検出及びセグメント化を利用したテキスト認識方法の実施例が提供される。画像から様々な品質及び特性のテキスト(重複文字のあるテキストを含む)を抽出するために、様々な機械視覚技法及び/又は機械学習技法を用いた、安定したテキスト認識機を実装することが可能である。手書きのテキスト、にじんだテキスト、特定のフォントなどの様々な理由により、スキャンされた文書には重複文字が生じる。画像からテキストを認識し、構文解析するために、様々な輪郭検出及びセグメント化技法を用いたテキスト認識機を実装することが可能である。このような実装形態は、重複する文字と重複しない文字の両方に対してテキスト認識を可能とする。
【0010】
[0014]
図1は、テキスト認識のための例示的なコンピューティングシステム100の概略図を示す。コンピューティングシステム100は、コンピューティングデバイス102を含む。コンピューティングデバイス102は、プロセッサ104(例えば、中央処理装置、又は「CPU」)、入出力(I/O)モジュール106、揮発性メモリ108、及び非揮発性メモリ110を含む。種々の構成要素が互いに動作可能に連結されている。非揮発性メモリ110は、テキスト認識プログラム112を格納している。テキスト認識プログラム112は、プロセッサ104によって実行するための、本明細書に記載された様々なソフトウェアモジュールに対する指令を含む。
【0011】
[0015]テキスト認識プログラム112内に記憶された指令は、プロセッサ104によって実行されると、プロセッサ104に、画像データ114の受信を含むテキスト認識プロセスを開始させる。画像データ114は、様々な手段を通して、受信又は提供され得る。幾つかの実装形態では、画像データ114は、遠隔デバイスなどの外部源からのファイルとして受信される。幾つかの実装形態では、画像データ114は、局所的供給源から提供され、例えば、局所的なストレージ又は局所的な画像スキャン装置から取り込まれる。種々のフォーマットのファイルを、テキスト認識プログラム112によって使用する適切な画像フォーマットフォーマットに変換することが可能である。例えば、幾つかの実装形態では、ISO32000として規格化されたポータブルドキュメントフォーマット(.pdf)のファイルは、テキスト認識プログラム112によって利用される前に、別のフォーマットに変換される。
【0012】
[0016]テキスト認識プログラム112は、画像データ114から輪郭データ118を生成するための輪郭検出モジュール116を含む。輪郭データ118は、様々な方法で表され得る。幾つかの実装形態では、輪郭データ118は、画像データ114からの所与の画像について、輪郭検出モジュール116によって認識された1つ又は複数の輪郭を示す。各輪郭は、概して、所与の画像で発見された単一の文字、複数の文字、又は非テキスト生成物を表す。幾つかの実装形態では、輪郭データ118から非テキスト輪郭を除去するために、フィルタリングプロセスが適用される。複数の文字を表す輪郭は、重複する文字の存在を示す場合がある。
【0013】
[0017]様々な方法で輪郭検出モジュール116を実装することができる。幾つかの実装形態では、輪郭検出モジュール116は、所定の空間閾値の内部で空間的に隣接する一群のピクセルを見つけることによって、画像データ114からの画像などの所与の画像内の1つ又は複数の輪郭を認識するための閾値輪郭検出アルゴリズムを利用する。隣接ピクセルは、閾値を超えるピクセルを見つけ、群化することによって、特定され得る。この閾値は、同一の群にある閾値を超える別のピクセルに近接する非空白ピクセルを示す。例えば、幾つかの実装形態では、画像データ114から分析されるべき画像は、グレースケール画像であるか、又はグレースケール画像に変換され、ピクセルの値はそのグレースケール値を示す。輪郭検出アルゴリズムは、画像を走査して、閾値を満たすピクセルを見つけるために実装され得る。そのピクセルから、近接閾値内で閾値を満たす他のピクセルが、ピクセル群に追加される。このようなピクセルを特定するための近接閾値は、用途に応じて変動し得る空間距離に基づき得る。幾つかの実装形態では、近接閾値は、1つのピクセルである。このような場合、2つのピクセルは、互いに直接隣接している場合に、隣接しているといえる。新しいピクセルが見つからなくなるまでプロセスが繰り返され、ピクセル群が輪郭であると特定される。アルゴリズムは、画像の走査を続けて様々な輪郭を特定し得る。
【0014】
[0018]テキスト認識プログラム112は、輪郭データ118内の輪郭からセグメント化データ122を生成するための輪郭区切りモジュール120を含む。セグメント化データ122は、様々な方法で表され得る。幾つかの実装形態では、セグメント化データ122は、所与の輪郭について輪郭区切りモジュール120によって生成された1つ又は複数のセグメントを詳述する。したがって、輪郭データ118が1つより多くの輪郭を含む場合、異なるセットのセグメント化データを生成するために各輪郭を区切ることができる。各セットのセグメント化データは、1つ又は複数のセグメントを詳述する。各セグメントは、概して、所与の輪郭におけるテキスト文字を表す。したがって、1つより多くのセグメントを含むセグメント化データ118は、複数の文字(例えば、重複文字を表す輪郭)を有する輪郭を表し得る。
【0015】
[0019]様々な方法で輪郭検出モジュール120を実装することができる。幾つかの実装形態では、輪郭区切りモジュール120は、各輪郭のための境界ボックスを生成し、当該輪郭は、境界ボックスに刻まれている。輪郭区切りモジュール120は、所定のピクセル幅値に基づいてその境界ボックスを分割することによって、輪郭を区切ることができる。例えば、境界ボックスを複数のサブ境界ボックスに分割することができ、これにより、輪郭が複数のセグメントに区切られ、各セグメントは所定のピクセル幅値を有する。所定のピクセル幅値は、所与の画像について決定された文字ピクセル幅に対応し得る。したがって、各セグメントは、別のテキスト文字に対応する。
【0016】
[0020]文字ピクセル幅は、様々な方法で決定され得る。幾つかの実装形態では、最小ピクセル幅を有する境界ボックスが伴う輪郭は、文字ピクセル幅を決定するために使用される。当該境界ボックスのピクセル幅値をそのピクセル高さ値と比較することができ、当該高さ幅比を、境界ボックスが単一の文字を表すか否かを推論するために使用することが可能である。幾つかの実装形態では、1未満の高さ幅比を有する境界ボックスは、単一の文字を表し得る。複数の所定のピクセル幅値を利用することが可能である。例えば、種々の高さの境界ボックスが、所与の画像について種々のフォントサイズのテキストを表し得る。このような場合、所与の境界ボックスに対してどの所定のピクセル幅値を選択するかは、当該境界ボックスのピクセル高さ値に依存し得る。例えば、同様のピクセル高さ値を有する輪郭に対して同一の所定のピクセル幅値を使用することができる。初期的な所定の幅値に関連する境界ボックスの高さ幅比に基づいて、複数の所定のピクセル幅値を画定することができる。高さ幅比が類似したままであるように、初期的な所定のピクセル幅値に関連する境界ボックスの高さ幅比に基づいて、当該境界ボックスから種々の高さを有する別の輪郭に対して異なる所定のピクセル幅値を決定することができる。容易に理解できるように、このようなアルゴリズムは、例えば、重複文字の場合のように、関連する輪郭が複数の文字を表すと示唆する高さ幅比を有する境界ボックスを除外することができる。
【0017】
[0021]テキスト認識プログラム112は、セグメント化データ122内のセグメントから認識されたテキスト文字126を生成するためのテキスト分類モジュール124を含む。テキスト文字は、シンボル、数字、文字等であってもよい。テキスト文字のセットが、任意の所与のアルファベットに対して定義され得る。テキスト分類モジュール124は、セグメント化データ122内の各セグメントに対してテキスト文字126を認識するために実装され得る。上述のように、1つより多くの輪郭が検出される場合に、複数のセットのセグメント化データが提供され得る。テキスト分類モジュール124は、複数のセットのセグメント化データの各セグメントに対して認識されたテキスト文字126を生成するように実装され得る。
【0018】
[0022]様々な方法でテキスト分類モジュール124を実装することができる。幾つかの実装形態では、テキスト分類モジュール124は、機械学習モデルを含む。機械学習モデルは、各セグメント画像を取り上げて、対応する予測テキスト文字を出力する画像分類のために実装され得る。機械学習モデルは、可能性のあるテキスト文字のセットに対応する所定のセットの可能性のある分類に従って、予測を出力するように設計され得る。例えば、36文字のセットが、10のアラビア数字と26文字のラテンアルファベットを表すように定義され得る。1つ又は複数のアルファベットに対して、任意の他のセットを定義してもよい。畳み込みニューラルネットワーク(CNN)及び残余ネットワーク(ResNets)を含む様々なタイプの機械学習アーキテクチャを使用することができるが、これらに限定されない。機械学習モデルは、文字テキスト分類のために訓練することができる。幾つかの実装形態では、機械学習モデルは、所定のセットのテキスト文字の画像を含む訓練データを使用して、訓練される。訓練データは、変換されたテキスト文字の画像をさらに含み得る。所与のテキスト文字の複数の変種を含む訓練画像データを生成するために、様々な変換及び論理操作を適用することができる。変換の例としては、ストレッチング、スケーリング、及びスキューイングが含まれるが、これらに限定されない。他の変種の訓練データも実装してもよい。例えば、種々のフォントのテキスト文字を有する訓練データを利用することが可能である。
【0019】
[0023]
図1は、所与の入力画像について、認識されたテキスト文字を生成するためのプロセスを詳述する。当該プロセスは、所与の入力画像からテキストを抽出するための概略的なフレームワークの一部として実装され得る。当該フレームワークは、追加の又は代替的なステップを含み得る。例えば、認識されたテキスト文字を生成するためのプロセスは、所与の画像のすべてのテキストが認識されるまで繰り返されてもよく、テキスト付加ステップは、認識されたテキスト文字から単語を生成するために実装されてもよい。幾つかの実装形態では、フレームワークは、輪郭検出プロセスの間に生成された非テキスト輪郭を除去する輪郭フィルタリングステップを含む。
【0020】
[0024]
図2A及び
図2Bは、画像からテキストを抽出するための例示的なテキスト認識フレームワーク200を示す。境界ボックス及び輪郭などの、
図2A及び
図2Bに示す様々な構成要素は、縮尺どおりには描かれていないことを理解されたい。フレームワーク200は、様々なタイプの文書からテキストを抽出可能な、ロバスト性を備えるテキスト認識機として実装され得る。例えば、フレームワーク200は、大量のフォーマットされたテキストを含む印刷文書に加えて、配線図などの技術文書からもテキストを抽出することができる。フレームワーク200は、様々な手段により提供され得る画像データ202からプロセスが開始される。例えば、画像データ202は、遠隔又はローカルソースから提供され得る。幾つかの実装形態では、画像データ202は、画像走査装置によって提供される。画像データ202は、異なるファイルフォーマットから変換された画像でもあり得る。
【0021】
[0025]フレームワーク200は、画像データ202内の1つ又は複数の輪郭を認識する輪郭検出ステップ204を含み、各輪郭は、概して、文字、複数の文字、又は非テキスト生成物を表す。輪郭検出ステップ204は、様々なプロセスを使用して実行され得る。幾つかの実装形態では、輪郭検出ステップ204は、閾値輪郭検出アルゴリズムを実行する。閾値輪郭検出アルゴリズムは、隣接ピクセルの群を見つけることにより、輪郭を検出するよう実装され得る。隣接ピクセルは、同じ群にある別のピクセルに対して近接閾値内にある、閾値を超えるピクセルを見つけ、群化することによって特定され得る。任意の他の輪郭検出アルゴリズムを実装することができ、それには、端部検出アルゴリズムが含まれるが、それに限定されない。
【0022】
[0026]フレームワーク200は、任意選択的に、画像データ202内の非テキスト要素に対応する、検出された輪郭を除去するための輪郭フィルタリングステップ206を含み得る。図示された実施例では、画像データ202は、配線図の画像を含む。以前実行された輪郭検出ステップ204は、配線構成要素に対応する輪郭、並びに配線図内のシンボル及びアルファベットテキスト文字を検出することができる。配線構成要素及びシンボルに対応する輪郭は、テキスト分類が実行される前に、検出された輪郭のセットから除去され得る非テキスト要素である。
【0023】
[0027]様々な方法で輪郭フィルタリングステップ206を実行することができる。幾つかの実装形態では、非テキスト輪郭を決定するために、輪郭の周りの境界ボックスの寸法が使用される。例えば、大きすぎたり、テキストとして典型的ではない高さ幅比を含んだりする境界ボックスは、非テキスト要素として分類され得る。図示の実施例では、境界ボックス207は、画像のサイズに比して大きな境界ボックスである。したがって、境界ボックス207に刻まれた輪郭は、おそらくテキスト要素ではない。輪郭をフィルタリングする他の方法には、除去されるべき非テキスト輪郭を選択するようにユーザに促すマニュアル選択が含まれる。別の方法には、機械学習モデルの使用が含まれる。幾つかの実装形態では、実装される機械学習モデルは、産業固有の又はドメイン固有の特定のアプリケーションに関連する訓練データを使用して、テキスト及び非テキスト要素を認識するように訓練される。例えば、図示の実施例では、配線図構成要素及びシンボルを認識するために訓練された機械学習モデルは、配線図の画像のテキスト及び非テキスト要素を検出するために実装され得る。
【0024】
[0028]フレームワーク200は、輪郭をそれぞれテキスト文字を表すセグメントに区切るための輪郭区切りステップ208を含む。区切りは、各輪郭に対して、その境界ボックスを分割することにより行うことが可能であり、これにより、輪郭がセグメントに分割される。場合によっては、輪郭が単一のテキスト文字を表すので、区切りが行われない(例えば、セグメントが輪郭全体を包含する)。境界ボックスは、所定のピクセル幅値に従って分割され得る。幾つかの実装形態では、所定のピクセル幅値は、文字ピクセル幅に対応する。例えば、種々のテキストを有する画像の場合に、複数の所定のピクセル幅値を利用することができる。
【0025】
[0029]文字ピクセル幅は、様々な方法で決定され得る。幾つかの実装形態では、単一のテキスト文字を表す輪郭に概して対応する、最小ピクセル幅値を有する境界ボックスが伴う輪郭は、文字ピクセル幅を決定するために使用される。画像が単一のテキスト文字に対応する輪郭を含まない場合、例えば、すべてのテキスト文字が少なくとも1つの他のテキスト文字と重複する場合、境界ボックスの高さ幅比を使用して文字幅を決定することができる。例えば、所与のテキストサイズにおいて高さは典型的に一定であるので、同様の高さの複数の境界ボックス高さ幅比同士を比較して、文字幅を推定かつ判断することができる。
【0026】
[0030]フレームワーク200は、テキスト分類ステップ210を含む。テキスト分類ステップ210では、区切られた境界ボックスによって画定された各セグメントが分析され、テキスト文字として認識される。テキスト文字は、シンボル、数字、文字等であってもよい。幾つかの実装形態では、使用可能なテキスト文字を含むアルファベットが定義され、セグメントが、画定されたアルファベットのうちのテキスト文字に分類される。例えば、36文字のセットが、10のアラビア数字と26文字のラテンアルファベットを表すように定義され得る。文字テキスト分類プロセスは、様々な方法で実行することができる。幾つかの実装形態では、文字テキスト分類を実行するために機械学習モデルが実装される。CNN及びResNetsを含む文字テキスト分類のために任意の機械学習アーキテクチャを利用することができる。このようなモデルの訓練は、様々な訓練データセットを使用して実行することもできる。例えば、テキスト文字の画像を含む訓練データ、及びこのようなテキスト文字の様々な変換は、機械学習モデルの訓練のために使用され得る。
【0027】
[0031]フレームワーク200は、認識されたテキスト文字を付加するためのテキスト付加ステップ212を含む。認識されたテキスト文字を付加して「単語」を形成することができる。「単語」は、概して、セットの中の文字間に任意の空白がない文字のセットを表す。付加プロセスは、様々なアルゴリズムを使用して実行され得る。幾つかの実装形態では、認識されたテキスト文字は、その各々のセグメントが対応する分割された境界ボックスの位置に基づき得る。例えば、あるアルゴリズムは、画像を走査するように実装され得る。境界ボックスに達すると、境界ボックスのX及びY位置座標を記録することができる。初期境界ボックスの所定の閾値内のX及びY位置座標を有する他の境界ボックスは、同じ「単語」内にあると決定され得る。
【0028】
[0032]境界ボックスが同一の「単語」の一部であるか否かを特定するための閾値は、 文字ピクセル幅及びテキストの言語を含む様々な要因に依存し得る。例えば、左から右へと書く言語の場合、初期境界ボックスを見つけるために、画像の左から右へのラスタースキャンを実行することができる。走査が継続し、初期境界ボックスの同じY座標内に別の境界ボックスが見つかった場合、新しい境界ボックスのテキスト文字が初期境界ボックスと同じ列にあると推定することができる。境界ボックスが、(閾値内で)Y座標が一定し、X座標が増加するということは、その境界ボックスのテキスト文字が同一の単語の一部であることを示す。新しい境界ボックスのX座標が、初期境界ボックスのX座標から文字幅未満しか離れていない場合、2つの境界ボックスのテキスト文字が同一の「単語」内にあると特定することができる。他の新しい境界ボックスが見つからなくなるまで、第2の境界ボックスでプロセスを繰り返してもよい。容易に理解できるであろうが、上述のステップを実行するために、任意のアルゴリズムを実行することができる。例えば、初期境界ボックスの右側のX座標を、新しい境界ボックスの左側のX座標と比較するために使用することができる。両者の間の差が文字ピクセル幅未満である場合、2つの境界ボックスを付加することができる。追加的に又は代替的に、重複文字が同じ「単語」の一部であると推定するようにアルゴリズムをデフォルト設定することができる。
【0029】
[0033]フレームワーク200は、任意選択的に、単語修正ステップ214を含み得る。様々な出力された認識テキスト216を使用して、テキスト付加ステップ212で生成された付加された単語に対して単語修正を実行することができる。単語修正ステップ214が実行されない場合、付加されたテキストが認識されたテキスト216として出力される。幾つかの実装形態では、単語修正を実行するために、自然言語処理技法が実装される。例えば、文字テキスト分類が行われている間、数字の「0」と文字の「O」の分類に混同が生じることがよくある。自然言語処理技法により、これらの間違いを修正することができる。例えば、数字の「0」は、通常は文字間に現れないので、この場合、文字の「O」と修正することができる。さらに、自然言語処理技法を用いて、例えば、文構造や文法を修正するなど、近傍の単語からの文脈に基づいて、単語を修正することができる。幾つかの実装形態では、自然言語処理を実施して予測された出力テキストを提供するために、機械学習モデルが実装される。
【0030】
[0034]追加的に又は代替的に、単語修正プロセスのために単語リポジトリ218を利用することができる。単語リポジトリ218は、最初は空であってもよく、時間が経ってテキスト認識機が成熟するにつれて単語が追加される。幾つかの実装形態では、単語リポジトリ218には、最初に1つ又は複数の辞書が備わる。辞書の例としては、特定の言語の辞書、技術用語辞書、特定の領域固有の辞書、及びカスタム化された辞書が挙げられる。フレームワーク200がしばしば類似の文書に対して使用される場合に、このような実装形態が有用であり得る。例えば、産業固有の又は領域固有の一連の文書では、他の文脈では意味をなさない単語が繰り返し登場することがある。
図2A及び
図2Bに示す画像では、領域固有の単語構造/フォーマット(例えば、数字が3つ連続した後に文字が後続する場合)を有する配線図を示す。テキスト認識機が実装されるにつれて、経時的にこのような単語を単語リポジトリに追加することができ、それにより、将来の用途においてより優れた単語認識及び単語修正が可能となる。
【0031】
[0035]単語修正プロセスの別の態様は、信頼スコアの使用を含み得る。文字テキスト分類プロセスの間、文字テキスト分類の予測された正確性に基づいて、信頼スコアを計算することができる。例えば、画像分類機械学習モデルを使用することにより、予測の正確性を示す信頼スコアに沿って予測を出力することができる。幾つかの実装形態では、単語修正プロセスは、信頼スコアに沿って予想された単語を出力する。様々なソースから、結果的に低い信頼スコアとなり得る。例えば、重複文字の輪郭が等幅のセグメントに区切られる実装形態では、ある特定の文字は、他の文字に対して異なる幅を有する(例えば、数字の「1」は他のテキスト文字に比べて幅が狭い)ことにより、理想的な形でセグメント化される場合がある。信頼スコアは、様々な方法で単語修正プロセスに用いられ得る。幾つかの実装形態では、低信頼スコアがユーザに示され、ユーザ入力を用いた修正が行われ得る。幾つかの実装形態では、信頼スコアは、単語修正を実行するために、機械学習モデルを使用するなどして、自然言語処理技法の組み合わせで使用される。
【0032】
[0036]
図2A及び
図2Bは、テキスト認識プロセスの概略図を示す。より具体的な実施例として、
図3は、
図2A及び
図2Bに示す画像の単語302に対する例示的なテキスト認識プロセス300を示す。境界ボックス及び輪郭などの、
図3に示す様々な構成要素は、縮尺どおりには描かれていないことを理解されたい。第1のステップでは、画像データが提供される304。画像データは、単語302を含む画像を含む。図示の実施例では、単語302は、「D430」である。画像データは、上述の任意のプロセスを使用して提供され得る。
【0033】
[0037]輪郭検出ステップ306が、提供された画像データに対して実行され、検出された輪郭が刻まれた境界ボックスが生成される。上述の任意のプロセスを使用して輪郭検出を実行することができる。図示の実施例では、単語302において2つの異なる輪郭が検出され、2つの対応する境界ボックスが生成される。文字「D」が隣接する文字と重複しておらず、第1の輪郭によって表される。残りの文字「430」は重複文字であり、第2の輪郭によって表される。第1の境界ボックス308が第1の輪郭の周りに生成され、第2の境界ボックス310が第2の輪郭の周りに生成される。
【0034】
[0038]輪郭区切りステップ312が検出された輪郭及び生成された境界ボックスに対して実行される。上述の任意のプロセスを使用して輪郭区切りを実行することができる。図示の実施例では、文字「D」及びその関連する輪郭が単一の文字であると特定され、したがって、第1の輪郭が区切られない。第2の輪郭の境界ボックス310の(その高さに対する)幅は、第2の輪郭が1つより多くの文字を表していることを示す。したがって、第2の輪郭及びその境界ボックス310が区切られる。境界ボックス310は、所定のピクセル幅値に基づいて区切られる。例えば、単一の文字を表すために特定された第1の境界ボックス308のピクセル幅値は、第2の境界ボックス310を分割するために使用され得る。図示の実施例では、第2の境界ボックス310のピクセル幅が3つの文字を表すように特定され、第2の境界ボックス310が3つのサブ境界ボックス314A-314Cに区切られる。このような特定は、第1の境界ボックス308のピクセル幅(文字ピクセル幅値)と第1の及び第2の境界ボックス308、310の(所定の閾値内の)高さの類似性に基づいて行われ得る。この情報により、第2の輪郭が表す文字の数を第2の境界ボックス310のピクセル幅を使用して推定することができる。
【0035】
[0039]幾つかの実施形態では、余白分離(例えば、文字を分離する1つ又は複数の余白ピクセル)を含む文字を取得するために、同じ文書画像又は関連する文書画像上の文字の初期認識が行われ得る。認識された文字は、潜在的な重複文字を含む輪郭(すなわち、複数の文字を有する輪郭)に対応する前に、所定のピクセル幅値を取得するために使用され得る。さらに、同じ文書画像内の文字の幅をキャプチャすることにより、潜在的な重複文字を有する境界ボックスサイズに応じて認識された文字の高さ幅比をスケーリングすることができる。
【0036】
[0040]区切られた境界ボックス内の各文字を認識するために、テキスト分類ステップ316が実行される。上述の任意のプロセスを使用して、テキスト分類を実行することができる。図示の実施例では、境界ボックス308が文字「D」として認識され、サブ境界ボックス314が文字「4」として認識され、サブ境界ボックス314Bが文字「3」として認識され、サブ境界ボックス314Cが文字「0」として認識される。
【0037】
[0041]互いに対する近接度に基づいて認識された文字を付加して単語を形成するために、テキスト付加ステップ318が実行される。上述の任意のプロセスを使用して、テキスト付加を実行することができる。図示の実施例では、境界ボックスの空間位置が、所定の閾値内にあると特定され、ひいては、付加されて単語を形成する。例えば、境界ボックスのY座標又は垂直位置が所定の閾値内にあると特定されると、文字が同一列にあることが示される。さらに、区切られた第2の輪郭間で水平寸法に任意の空白が欠如していると、文字「4」、「3」、及び「0」が同じ単語の一部であると特定される。第1の輪郭の第1の境界ボックス308と最も近い境界ボックス314との間の空白が所定の閾値未満であると、文字「D」も他の3つの文字と同様に同じ単語の一部であると特定される。図示の実施例では、所定の閾値は単一の文字のピクセル幅であり、これは第1の境界ボックス308のピクセル幅である。
【0038】
[0042]付加されたテキストを修正するために、任意選択的に単語修正ステップ320を実行してもよい。上述の任意のプロセスを使用して、単語修正を実行することができる。図示の実施例では、単語「D430」が正しい単語であると特定され、認識されたテキスト322として出力される。
【0039】
[0043]
図4は、輪郭検出及びセグメント化を用いた、テキスト認識のための例示的な方法400のフロー図を示す。ステップ402では、方法400は、画像を含むデータファイルを受信することを含む。
【0040】
[0044]ステップ404では、方法400は、画像内の少なくとも1つの輪郭を認識することを含む。幾つかの実装形態では、画像内の複数の輪郭が認識される。様々な方法で輪郭の認識を実行することができる。例示的なプロセスには、閾値輪郭検出アルゴリズムの使用が含まれる。このようなプロセスは、所定の閾値内で空間的に隣接している一群のピクセルを見つけることによって輪郭を認識するために実装され得る。まずは、非余白ピクセルを示す、閾値を超えるピクセルを見つけ、そのピクセルを群に加えることによって、隣接ピクセルを特定することができる。次いで、アルゴリズムは、その群の中のピクセルに対して近接閾値内にある閾値を超える他のピクセルを見つけようとする。このプロセスは、もはや新しいピクセルが見つからなくなるまで継続し、当該一群のピクセルが一群の隣接ピクセルであると特定されると、輪郭が形成される。近接閾値は、様々な方法によって決定することができる。近接閾値は、空間距離に基づいて決定することができるが、空間距離は用途に応じて変動し得る。異なる輪郭の認識において、新しい群のピクセルに対してこのプロセスを繰り返すことができる。
【0041】
[0045]ステップ406では、方法400は、任意選択的に、画像内の複数の輪郭をフィルタリングし、非テキスト部分を除去することを含み得る。複数の輪郭が認識される場合、非テキストに対応する輪郭を除去するためにフィルタリングステップを実行することができる。例えば、技術文書では非テキスト生成物が存在する場合があり、このような生成物の輪郭は、テキスト部分の輪郭と同様に認識される。非テキスト部分に対応する輪郭の特定は、様々な方法で行うことができる。幾つかの実装形態では、このような輪郭の特定は、ユーザ入力を通して提供される。幾つかの実装形態では、輪郭がテキストを表すか否かを予測するために、機械学習モデルが実装される。例えば、所与の輪郭の画像をテキスト分類畳み込みニューラルネットワークに入力し、所与の輪郭がテキスト文字に対応するか否かを判断することができる。非テキスト輪郭を特定するために他の種類の機械学習モデルを実装することも可能である。
【0042】
[0046]ステップ408では、方法400は、少なくとも1つの輪郭を複数のセグメントに区切ることを含む。区切りプロセスは、各輪郭に対して行うことができる。幾つかの実装形態では、輪郭が刻まれた境界ボックスを生成することによって、輪郭の区切りが行われる。境界ボックスを分割して、輪郭を複数のセグメントに区切ることができる。幾つかの実装形態では、境界ボックスは、所定のピクセル幅値に基づいて分割され、結果的に等幅のセグメントが生じ得る。所定のピクセル幅値は、所与の画像について決定された文字幅に対応し得る。
【0043】
[0047]文字幅は、様々な方法で決定され得る。幾つかの実装形態では、文字幅を決定するために最小ピクセル幅を有する境界ボックスが使用される。当該境界ボックスのピクセル幅値をその高さ値と比較することもでき、当該高さ幅比を、境界ボックス内の輪郭が単一の文字を表すか否かを推論するために使用することが可能である。幾つかの実装形態では、1未満の高さ幅比を有する境界ボックスは、単一の文字を表し得る。所与の画像に対して複数の所定のピクセル幅値を利用することができる。このような場合、所与の輪郭に対してどの所定のピクセル幅値を利用するべきかの選択は、輪郭が刻まれる境界ボックスの高さ値に左右され得る。例えば、同様の高さ値を有する境界ボックスに対して同一の所定のピクセル幅値を使用することができる。所与の文字の所定のピクセル幅に従って輪郭を区切ることにより、文字間に任意の余白分離が入らずに(例えば、文字間に任意の余白ピクセルがない状態で)文字をセグメント化することができる。
【0044】
[0048]ステップ410では、方法400は、複数のセグメントの各セグメント内のテキスト文字を認識することを含む。幾つかの実装形態では、各セグメント内のテキスト文字を認識することは、文字分類機械学習モデルを使用して実行される。機械学習モデルは、各セグメント画像を取り上げて、対応する予測テキスト文字を出力する画像分類のために実装され得る。機械学習モデルは、可能性のあるテキスト文字のセットに対応する所定のセットの可能性のある分類に従って、予測を出力するように設計され得る。CNN及びResNetsを含む様々なタイプの機械学習アーキテクチャを使用することができるが、これらに限定されない。幾つかの実装形態では、機械学習モデルは、所定のセットのテキスト文字の画像を含む訓練データを使用して、訓練される。訓練データは、様々な論理操作が適用される、変換されたテキスト文字の画像をさらに含み得る。変換の例としては、ストレッチング、スケーリング、及びスキューイングが含まれるが、これらに限定されない。
【0045】
[0049]ステップ412では、方法400は、任意選択的に、認識されたテキスト文字のうちの少なくとも2つを付加して単語を形成することを含む。付加プロセスは、様々なアルゴリズムを使用して実行され得る。幾つかの実装形態では、認識されたテキスト文字は、所定の空間位置差異閾値に基づいて付加される。例えば、認識されたテキスト文字は、それぞれのセグメントが対応する分割された境界ボックスの位置に基づいて付加され得る。境界ボックスのX座標などの境界ボックスの空間的差異が所定の空間位置差異閾値内にあれば、関連する認識されたテキスト文字を付加することができる。所定の空間位置差異閾値は、様々な方法で特定され得る。幾つかの実装形態では、所定の空間位置差異閾値は文字幅である。例えば、所定の空間位置差異閾値は、最小幅を含む境界ボックスの幅に基づき、単一のテキスト文字を表するようにみなされ得る。
【0046】
[0050]ステップ414では、方法400は、任意選択的に、修正された単語を生成するために、単語に対して単語修正を実行することを含む。幾つかの実装形態では、単語修正を実行するために、自然言語処理技法が実装される。例えば、自然言語処理を用いて、例えば、文構造や文法を修正するなど、近傍の単語からの文脈に基づいて、単語を修正することができる。幾つかの実装形態では、自然言語処理を実施して予測された出力テキストを提供するために、機械学習モデルが実装される。
【0047】
[0051]追加的に又は代替的に、単語修正プロセスのために単語リポジトリを利用することができる。幾つかの実装形態では、単語リポジトリは、最初は空白であり、経時的にテキスト認識機が成熟するにつれて、ユーザ入力を通して又は自動的に単語が追加される。幾つかの実装形態では、単語リポジトリには、最初に1つ又は複数の辞書が備わる。辞書の例としては、一般的な辞書、技術用語辞書、特定の領域固有の辞書、及びカスタム化された辞書が挙げられる。経時的に実装されたテキスト認識機が成熟するにつれて、単語を単語リポジトリに追加することができる。
【0048】
[0052]追加的に又は代替的に、単語修正プロセスにおいて信頼スコアを利用することが可能である。文字テキスト分類プロセスの間、文字テキスト分類の予測された正確性に基づいて、信頼スコアを計算することができる。例えば、画像分類機械学習モデルを使用することにより、予測の正確性を示す信頼スコアに沿って予測を出力することができる。信頼スコアは、単語修正を実行するために、機械学習モデルを使用するなどして、自然言語処理技法の組み合わせで使用され得る。幾つかの実装形態では、単語修正プロセスは、信頼スコアに沿って予想された単語を出力する。信頼スコアは、様々な方法で単語修正プロセスに用いられ得る。例えば、低い信頼スコアをユーザに示すことができ、マニュアル修正を実行することができる。
【0049】
[0053]本明細書に記載されたテキスト認識機及び関連するフレームワークは、様々なタイプの文書(典型的な印刷文書及び技術文書を含む)からのテキスト抽出においてロバスト性のあるプロセスを提供する。現代のテキスト認識ソリューションに比べて、本明細書に記載された実装形態は、テキスト分類及び重複文字の抽出を可能とする。当該プロセスの1つ又は複数のステップで機械学習モデルを使用することにより、テキスト認識機は、経時的に性能を向上させることができ、ドメイン固有の実装形態における効率化がさらに可能となる。
【0050】
[0054]幾つかの実施形態では、本明細書に記載された方法及びプロセスは、1つ又は複数のコンピューティングデバイスの1つのコンピューティングシステムに関係してもよい。具体的には、このような方法及びプロセスは、コンピュータアプリケーションプログラム若しくはサービス、アプリケーションプログラミングインターフェース(API)、ライブラリ、及び/又はその他のコンピュータプログラム製品として実装されてもよい。
【0051】
[0055]
図5は、上述の1つ又は複数の方法及びプロセスを実行し得るコンピューティングシステム500の非限定的な実施形態を概略的に示す。コンピューティングシステム500は、簡略的な形態で示される。コンピューティングシステム500は、上述され
図1に示されたコンピュータデバイス102を具現化し得る。コンピューティングシステム500は、1つ又は複数のパソコン、サーバコンピュータ、タブレットコンピュータ、家庭用エンターテイメント機器、ネットワークコンピューティングデバイス、ゲームデバイス、モバイルコンピューティングデバイス、モバイル通信デバイス(例えば、スマートフォン)、及び/又は他のコンピューティングデバイス、並びにスマート腕時計やヘッドマウント拡張現実デバイスなどの携帯型コンピューティングデバイスの形態をとり得る。
【0052】
[0056]コンピューティングシステム500は、ロジックプロセッサ502、揮発性メモリ504、及び非揮発性記憶デバイス506を含む。コンピューティングシステム500は、任意選択的に、ディスプレイサブシテム508、入力サブシステム510、通信サブシステム512、及び/又は
図5に図示されない他の構成要素を含む。
【0053】
[0057]ロジックプロセッサ502は、指令を実行するように構成された1つ又は複数の物理デバイスを含む。例えば、ロジックプロセッサ502は、1つ又は複数のアプリケーション、プログラム、ルーチン、ライブラリ、オブジェクト、コンポーネント、データ構造体、又はその他のロジック構築体の一部である、指定を実行するよう構成され得る。かかる指令は、課題を実行し、データタイプを実装し、1つ若しくは複数の構成要素の状態を変換し、技術的な効果を達成し、又はさもなければ所望の結果に到達するために、実装され得る。
【0054】
[0058]ロジックプロセッサ502は、ソフトウェア指令を実行するように構成された1つ又は複数の物理的なプロセッサ(ハードウェア)を含み得る。追加的に又は代替的に、ロジックプロセッサ502は、ハードウェア実装ロジック又はファームウェア指令を実行するために構成された1つ又は複数のハードウェアロジック回路又はファームウェアデバイスを含み得る。ロジックプロセッサ502のプロセッサは、シングルコア又はマルチコアであってもよく、プロセッサで実行される指令は、連続処理、並列処理、及び/又は分散処理のために構成され得る。ロジックプロセッサ502の個々の構成要素は、任意選択的に、2つ以上の別々のデバイス間に分配されてもよく、これらは、遠隔に位置してもよく、及び/又は連携処理を行うよう構成されてもよい。ロジックプロセッサ502の態様を仮想化し、クラウドコンピューティング構成で設定された遠隔アクセス可能ネットワークコンピューティングデバイスによって実行してもよい。このような場合、これらの仮想化された態様は、様々な異なるマシンの種々の物理的ロジックプロセッサにおいて実行されてもよいことを理解されよう。
【0055】
[0059]非揮発性記憶デバイス506は、ロジックプロセッサによって実行可能な指令を保持し、上述の方法及びプロセスを実装するように構成された1つ又は複数の物理的デバイスを含む。このような方法及びプロセスが実装された場合、例えば、種々のデータを保持するために、非揮発性記憶デバイス506の状態を変換することができる。
【0056】
[0060]非揮発性記憶デバイス506は、取り外し可能な及び/又はビルトインされた物理的デバイスを含み得る。非揮発性記憶デバイス506は、光学メモリ(例えば、CD、DVD、HD-DVD等)、半導体メモリ(例えば、ROM、EPROM、EEPROM、フラッシュメモリ等)、及び/又は磁気メモリ(例えば、ハードディスクドライブ、フロッピーディスクドライブ、テープドライブ、MRAM等)、又は他の大容量記憶技術を含み得る。非揮発性記憶デバイス506は、非揮発性デバイス、動的デバイス、静的デバイス、読み出し/書き込みデバイス、読取り専用デバイス、シーケンシャルアクセスデバイス、ロケーションアドレス指定可能デバイス、ファイルアドレス指定可能デバイス、及び/又はコンテンツアドレス指定可能デバイスを含み得る。非揮発性記憶デバイス506は、電力が供給されなくなっても、指令を保持するように構成されていることを理解されよう。
【0057】
[0061]揮発性メモリ504は、ランダムアクセスメモリを含む物理的デバイスを含み得る。揮発性メモリ504は、典型的に、ソフトウェア指令の処理中に情報を一時的に記憶するために、ロジックプロセッサ502によって利用される。揮発性メモリ504は、典型的に、電力が供給されなくなると、継続して指令を記憶しないことを理解されたい。
【0058】
[0062]ロジックプロセッサ502、揮発性メモリ504、及び非揮発性記憶デバイス506の態様は、1つ又は複数のハードウェア-ロジック構成要素に統合されてもよい。かかるハードウェアロジックコンポーネントは、例えば、フィールドプログラマブルゲートアレイ(FPGA)、特定プログラム向け集積回路/特定用途向け集積回路(PASIC/ASIC)、特定プログラム向け標準製品/特定用途向け標準製品(PSSP/ASSP)、システムオンチップ(SOC)、及びコンプレックスプログラマブルロジックデバイス(CPLD)を含み得る。
【0059】
[0063]「モジュール」、「プログラム」、及び「エンジン」といった単語は、揮発性メモリの一部を使用する特定の機能(その機能には、プロセッサが機能を実行するように特にプロセッサを設定する変換処理が関わる)を実行するために、プロセッサによって、典型的にソフトウェアに実装されているコンピューティングシステム500の態様を説明するように使用され得る。したがって、モジュール、プログラム、又はエンジンは、揮発性メモリ504の一部を使用して、非揮発性記憶デバイス506によって保持された指令を実行するロジックプロセッサ502を介して、インスタンス化され得る。種々のモジュール、プログラム、及び/又はエンジンは、同一のアプリケーション、サービス、コードブロック、オブジェクト、ライブラリ、ルーチン、API、機能等からインスタンス化されてもよいことを理解されたい。同様に、同一のモジュール、プログラム、及び/又はエンジンは、異なるアプリケーション、サービス、コードブロック、オブジェクト、ライブラリ、ルーチン、API、機能等からインスタンス化されてもよい。「モジュール」、「プログラム」、及び/又は「エンジン」といった用語は、個々の実行可能なデータファイル、ライブラリ、ドライバ、スクリプト、データベース記録等又はこれらの群を包含し得る。
【0060】
[0064]ディスプレイサブシステム508が含まれている場合、非揮発性記憶デバイス506によって保持されたデータの視覚表示を提示するように使用され得る。視覚表示は、グラフィカルユーザインターフェース(GUI)の形態をとり得る。ここに記載された方法及びプロセスは、非揮発性記憶デバイスによって保持されたデータを変更し、ひいては、非揮発性記憶デバイスの状態を変換する。ディスプレイサブシステム508の状態は、下層データの変更を視覚的に表すように変換され得る。ディスプレイサブシステム508は、1つ又は複数のディスプレイデバイスを含み得る。このようなディスプレイデバイスは、共有エンクロージャの中でロジックプロセッサ502、揮発性メモリ504、及び/若しくは非揮発性記憶デバイス506と組み合わされてもよく、又はこのようなディスプレイデバイスは、周辺ディスプレイデバイスであってもよい。
【0061】
[0065]入力サブシステム510が含まれる場合、入力サブシステム510は、キーボード、マウス、トラックパッド、タッチセンサ式ディスプレイ、カメラ、又はマイクロホンなどの1つ又は複数のユーザ入力デバイスを含むか、又はこれらとインターフェース接続してもよい。
【0062】
[0066]通信サブシステム512が含まれる場合、通信サブシステム512は、ここに記載された様々なコンピューティングデバイスを互いに通信的に連結したり、様々なコンピューティングデバイスを他のデバイスと通信的に連結したりするように構成されてもよい。通信サブシステム512は、1つ又は複数の異なる通信プロトコルと互換性がある有線及び/又は無線の通信デバイスを含み得る。非限定的な実施例では、通信サブシステムは、無線セルラネットワーク、又は有線若しくは無線のローカル若しくは広域ネットワークを介した通信のために構成されてもよい。幾つかの実施形態では、通信サブシステムは、コンピューティングシステム500が、インターネットなどのネットワークを介して、他のデバイスとの間でメッセージを送受信することを可能にすることができる。
【0063】
[0067]さらに、本開示は以下の条項に係る構成を含む。
【0064】
[0068]条項1
テキスト認識のためのコンピューティングデバイスであって、指令を記憶する記憶媒体に連結されたプロセッサであって、前記指令が、前記プロセッサによって実行されると、前記プロセッサに、画像を含むデータファイルを受信することと、前記画像内の少なくとも1つの輪郭を認識することと、前記少なくとも1つの輪郭を複数のセグメントに区切ることと、前記複数のセグメントの各セグメント内のテキスト文字を認識することとを行わせる、コンピューティングデバイス。
【0065】
[0069]条項2
前記指令が前記プロセッサによって実行されると、前記プロセッサに、認識された前記テキスト文字のうちの少なくとも2つを付加して、単語を形成することと、前記単語に対して単語修正を行い、修正された単語を生成することと、前記修正された単語を出力することとを行わせる、条項1に記載のコンピューティングデバイス。
【0066】
[0070]条項3
前記認識されたテキスト文字のうちの少なくとも2つが、所定の空間位置差異閾値に基づいて付加される、条項2に記載のコンピューティングデバイス。
【0067】
[0071]条項4
前記少なくとも1つの輪郭が、複数の輪郭を含み、前記指令が、前記プロセッサによって実行されると、前記プロセッサに、前記複数の輪郭をフィルタリングして、前記複数の輪郭における非テキスト輪郭を除去することをさらに行わせる、条項1から3に記載のコンピューティングデバイス。
【0068】
[0072]条項5
前記少なくとも1つの輪郭を認識することが、複数の隣接ピクセルを特定することを含み、各隣接ピクセルが、別の隣接ピクセルに対して所定の空間距離閾値内にあり、各隣接ピクセルが、所定のピクセル値閾値を超えるピクセル値を含む、条項1から4に記載のコンピューティングデバイス。
【0069】
[0073]条項6
前記少なくとも1つの輪郭を区切ることが、前記少なくとも1つの輪郭における輪郭が刻まれた境界ボックスを特定することと、前記境界ボックスを分割することとを含む、条項1から5に記載のコンピューティングデバイス。
【0070】
[0074]条項7
前記境界ボックスが、所定のピクセル幅値に基づいて分割される、条項6に記載のコンピューティングデバイス。
【0071】
[0075]条項8
前記少なくとも1つの輪郭が、複数の輪郭を含み、前記少なくとも1つの輪郭を区切ることが、複数の境界ボックスを特定することであって、前記複数の輪郭の各輪郭が、前記複数の境界ボックスの別の境界ボックス内に刻まれる、複数の境界ボックスを特定することと、所定のピクセル幅値に基づいて、前記複数の境界ボックスの各境界ボックスをセグメントのセットに分割することとを含み、前記所定のピクセル幅値が、前記複数の境界ボックスの最小幅に基づいて決定される、条項1から7に記載のコンピューティングデバイス。
【0072】
[0076]条項9
前記テキスト文字が、テキスト分類機械学習モデルを使用して認識される、条項1から8に記載のコンピューティングデバイス。
【0073】
[0077]条項10
前記テキスト分類機械学習モデルが、畳み込みニューラルネットワークを含む、条項9に記載のコンピューティングデバイス。
【0074】
[0078]条項11
テキスト認識のための方法であって、画像を含むデータファイルを受信することと、前記画像内の少なくとも1つの輪郭を認識することと、前記少なくとも1つの輪郭を複数のセグメントに区切ることと、前記複数のセグメントの各セグメント内のテキスト文字を認識することとを含む方法。
【0075】
[0079]条項12
所定の空間位置差異閾値を満たす少なくとも2つの認識されたテキスト文字を特定することと、前記少なくとも2つの認識されたテキスト文字を付加して、単語を形成することと、前記単語に対して単語修正を行い、修正された単語を生成することと、前記修正された単語を出力することとを含む、請求項11に記載の方法。
【0076】
[0080]条項13
前記少なくとも1つの輪郭が、複数の輪郭を含み、前記方法が、前記複数の輪郭をフィルタリングして、前記複数の輪郭における非テキスト輪郭を除去することをさらに含む、条項11又は12に記載の方法。
【0077】
[0081]条項14
前記少なくとも1つの輪郭を区切ることが、前記少なくとも1つの輪郭における輪郭が刻まれた境界ボックスを特定することと、所定のピクセル幅値に基づいて、前記境界ボックスを分割することとを含む、条項11から13に記載の方法。
【0078】
[0082]条項15
前記テキスト文字が、テキスト分類畳み込みニューラルネットワークを使用して認識される、条項11から14に記載の方法。
【0079】
[0083]条項16
テキスト認識のためのコンピューティングデバイスであって、前記コンピューティングデバイスが、指令を記憶する記憶媒体に連結されたプロセッサを備え、前記指令が、前記プロセッサによって実行されると、前記プロセッサに、画像を含むデータファイルを受信することと、前記画像内の複数の輪郭を認識することと、前記複数の輪郭をフィルタリングして、前記画像の非テキスト部分に対応する輪郭を除去することと、前記複数の輪郭における残った輪郭の各々を1つ又は複数のセグメントに区切ることと、テキスト分類機械学習モデルを使用して、各々の仕切られたセグメントにおけるテキスト文字を認識することと、前記認識されたテキスト文字を出力することとを含む、コンピューティングデバイス。
【0080】
[0084]条項17
前記指令が、前記プロセッサによって実行されると、前記プロセッサに、
所定の空間位置差異閾値を満たす少なくとも2つの認識されたテキスト文字を特定することと、前記少なくとも2つの認識されたテキスト文字を付加して、単語を形成することと、前記単語に対して単語修正を行い、修正された単語を生成することと、前記修正された単語を出力することとをさらに行わせる、条項16に記載のコンピューティングデバイス。
【0081】
[0085]条項18
前記複数の輪郭が、テキスト分類機械学習モデルを使用してフィルタリングされる、条項16又は17に記載のコンピューティングデバイス。
【0082】
[0086]条項19
前記残った輪郭の各々を区切ることが、前記残った輪郭における輪郭が刻まれた境界ボックスを特定することと、所定のピクセル幅値に基づいて、前記境界ボックスを分割することとを含む、条項16から18に記載のコンピューティングデバイス。
【0083】
[0087]条項20
前記テキスト文字が、テキスト分類畳み込みニューラルネットワークを使用して認識される、条項16から19に記載のコンピューティングデバイス。
【0084】
部品リスト:
コンピューティングシステム 100
コンピューティングデバイス 102
プロセッサ 104
入出力(I/O)モジュール 106
揮発性メモリ 108
非揮発性メモリ 110
テキスト認識プログラム 112
画像データ 114
輪郭検出モジュール 116
輪郭データ 118
輪郭区切りモジュール 120
セグメント化データ 122
テキスト分類モジュール 124
テキスト文字 126
フレームワーク 200
画像データ 202
検出ステップ 204
輪郭フィルタリングステップ 206
境界ボックス 207
輪郭区切りステップ 208
テキスト分類ステップ 210
テキスト付加ステップ 212
単語修正ステップ 214
認識されたテキスト 216
単語リポジトリ 218
テキスト認識プロセス 300
単語 302
第1のステップ 304
輪郭検出ステップ 306
第1の境界ボックス 308
第2の境界ボックス 310
輪郭区切りステップ 312
サブ境界ボックス 314A-314C
テキスト分類ステップ 316
テキスト付加ステップ 318
単語修正ステップ 320
方法 400
ステップ 402
ステップ 404
ステップ 406
ステップ 408
ステップ 410
ステップ 412
ステップ 414
コンピューティングシステム 500
ロジックプロセッサ 502
揮発性メモリ 504
非揮発性記憶デバイス 506
ディスプレイサブシステム 508
入力サブシステム 510
通信サブシステム 512
【外国語明細書】