(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024096039
(43)【公開日】2024-07-11
(54)【発明の名称】文脈を用いた文字認識の方法、装置、およびシステム
(51)【国際特許分類】
G06V 30/194 20220101AFI20240704BHJP
G06T 7/00 20170101ALI20240704BHJP
G06F 40/129 20200101ALI20240704BHJP
【FI】
G06V30/194
G06T7/00 350C
G06F40/129
【審査請求】有
【請求項の数】20
【出願形態】OL
【外国語出願】
(21)【出願番号】P 2023218190
(22)【出願日】2023-12-25
(31)【優先権主張番号】18/092,005
(32)【優先日】2022-12-30
(33)【優先権主張国・地域又は機関】US
(71)【出願人】
【識別番号】519448326
【氏名又は名称】コニカ ミノルタ ビジネス ソリューションズ ユー.エス.エー., インコーポレイテッド
(74)【代理人】
【識別番号】110001254
【氏名又は名称】弁理士法人光陽国際特許事務所
(72)【発明者】
【氏名】シュイ, ティン
【テーマコード(参考)】
5B064
5B109
5L096
【Fターム(参考)】
5B064AA01
5B064BA01
5B064DA27
5B109LA01
5B109VB11
5L096BA17
5L096CA02
5L096DA02
5L096HA11
(57)【要約】 (修正有)
【課題】ニューラルネットワークベースの言語モデル(LM)によって提供される文脈を使用し、画像における文字認識を向上させるニューラルネットワークベースの光学文字認識(OCR)の方法、システムおよび装置を提供する。
【解決手段】コンピューティングシステム500において、ファジーOCRシステム520は、スキャンシステム510からの入力画像を受信し、視覚的に類似した文字の集約クラスを使用して、視覚的に類似した文字の最も可能性の高い集約クラスを識別する。その集約クラスは、LMへの入力として使用されるが、一実施形態では、入力画像から、十分な文脈を提供するために、例えば、単語、フレーズ、文、段落など、テキストの一部を利用して、視覚的に類似した文字の集約クラスから正しい文字を識別する。
【選択図】
図5
【特許請求の範囲】
【請求項1】
入力されたスキャン画像に応じて、ニューラルネットワークベースの光学文字認識(OCR)を実行し、視覚的に類似した文字の複数の出力クラスを含むOCR出力を提供し、前記複数の出力クラスから最も可能性の高い出力クラスを識別することと、
ニューラルネットワークベースの言語モデルおよび前記識別された最も可能性の高い出力クラスを使用し、テキストの一部分であって、前記識別された最も可能性の高い出力クラスにおける前記複数の視覚的に類似した文字のうちいずれを出力すべきかの決定に使用できる文脈を得るのに十分な部分を検討することと、
前記検討に応じて、認識されたテキストとして、前記複数の視覚的に類似した文字から選択された1文字を出力することと、を備える、コンピュータ実装方法。
【請求項2】
テキストの前記一部分が、文の一部または全部である、請求項1に記載のコンピュータ実装方法。
【請求項3】
テキストの前記一部分が、段落の一部または全部である、請求項1に記載のコンピュータ実装方法。
【請求項4】
テキストの前記一部分が、前記複数の視覚的に類似した文字から選択された1文字が現れる単語である、請求項1に記載のコンピュータ実装方法。
【請求項5】
前記ニューラルネットワークベースのOCRシステムおよび前記ニューラルネットワークベースの言語モデル全てが同じニューラルネットワークの一部である、請求項1に記載のコンピュータ実装方法。
【請求項6】
辞書または視覚的に類似した文字のリストの参照および既存のOCRエンジンの混同行列の参照からなる群から選択された方法によって、前記出力クラスを設計することを更に備える、請求項1に記載のコンピュータ実装方法。
【請求項7】
前記ニューラルネットワークベースのOCRモデルが、畳み込みニューラルネットワーク(CNN)、双方向長短期記憶(BiLSTM)、コネクショニスト時間的分類(CTC)損失、またはそれらの組み合わせからなる群から選択される、請求項1に記載のコンピュータ実装方法。
【請求項8】
前記ニューラルネットワークベースの言語モデルが、クロスエントロピー損失計算を使用して重みを更新することで訓練される、請求項7に記載のコンピュータ実装方法。
【請求項9】
前記視覚的に類似した文字が、日本語または中国語である、請求項1に記載のコンピュータ実装方法。
【請求項10】
前記ニューラルネットワークベースのOCRモデルが、ResNet、インセプションベースのCNNバックボーン、2層双方向LSTM、およびコネクショニスト時間的分類(CTC)損失からなる群から選択された損失計算を使用して重みを更新することで訓練される、請求項7に記載のコンピュータ実装方法。
【請求項11】
入力されたスキャン画像を分析し、視覚的に類似したテキスト文字の複数の出力クラスを含むOCR出力を提供し、前記複数の出力クラスから最も可能性の高い出力クラスを識別するニューラルネットワークベースの光学文字認識(OCR)システムと、
ニューラルネットワークベースの言語モデルであって、前記識別された最も可能性の高い出力クラスを使用して、前記識別された最も可能性の高い出力クラスにおける視覚的に類似した文字のうちいずれを出力すべきかの決定に使用できる文脈を得るのに十分なテキストの一部分を検討し、認識されたテキストとして、前記視覚的に類似した文字から選択された1文字を出力する、ニューラルネットワークベースの言語モデルと、を備える、コンピュータ実装装置。
【請求項12】
テキストの前記一部分が、文の一部または全部である、請求項11に記載のコンピュータ実装装置。
【請求項13】
テキストの前記一部分が、段落の一部または全部である、請求項11に記載のコンピュータ実装装置。
【請求項14】
テキストの前記一部分が、前記視覚的に類似した文字から選択された1文字が現れる単語である、請求項11に記載のコンピュータ実装装置。
【請求項15】
前記ニューラルネットワークベースのOCRシステムおよび前記ニューラルネットワークベースの言語モデルが全て同じニューラルネットワークの一部である、請求項11に記載のコンピュータ実装装置。
【請求項16】
辞書または視覚的に類似した文字のリストの参照および既存のOCRエンジンの混同行列の参照からなる群から選択された方法を使用して、前記出力クラスが設計されている、請求項11に記載のコンピュータ実装装置。
【請求項17】
前記ニューラルネットワークベースのOCRモデルが、畳み込みニューラルネットワーク(CNN)、双方向長短期記憶(BiLSTM)、コネクショニスト時間的分類(CTC)損失、またはそれらの組み合わせからなる群から選択される、請求項11に記載のコンピュータ実装装置。
【請求項18】
前記ニューラルネットワークベースの言語モデルが、クロスエントロピー損失計算を使用して重みを更新することで訓練される、請求項17に記載のコンピュータ実装装置。
【請求項19】
前記視覚的に類似した文字が、日本語または中国語である、請求項11に記載のコンピュータ実装装置。
【請求項20】
前記ニューラルネットワークベースのOCRモデルが、ResNet、インセプションベースのCNNバックボーン、2層双方向LSTM、およびコネクショニスト時間的分類(CTC)損失からなる群から選択された損失計算を使用して重みを更新することで訓練される、請求項17に記載のコンピュータ実装装置。
【発明の詳細な説明】
【関連出願の相互参照】
【0001】
本出願の態様は、2021年6月30日に出願された「コンテンツアウェアおよびスタイルアウェアデータ拡張を用いた手書き文字認識方法および装置」と題する米国特許出願第17/364,641号に関する。本願は、この出願の全てを参照によりその全体が組み込まれる。
【技術分野】
【0002】
本発明の態様は、手書き文字認識に限定されない文字認識に関し、より詳細には光学文字認識(OCR)に関する。さらに、本発明の態様は、文字順と単語の文脈を用いた文字認識に関する。
【背景技術】
【0003】
一般に文字認識では、文字の生成方法(手書き、タイプ)、使用フォント、文字が表示される紙の品質、文字を含むテキストの入力品質によって、文字が互いによく似て見えることがある。その結果、OCRの結果として出力された単語は、異なる解釈をされる可能性がある。正しい解釈もあれば、そうでない解釈もあり得る。正確な解釈には、単に正確な文字の解釈以上のものが必要となり得る。文字によっては、ある日本語の文字のように、個々の文字である場合と、それらが組み合わさって別の文字になっている場合とで、似たように見えることがある。似たような外見の異なる文字は、実質的には同じことを意味していても、その文字が異なる時代背景からできたために、意味合いが異なる場合がある。
【発明の概要】
【発明が解決しようとする課題】
【0004】
単語中に現れる文字や字の解釈を補助する方法を提供し、文字の外観のみに基づく解釈を補強することができれば便利である。
【課題を解決するための手段】
【0005】
以上のことから、本発明の1つの態様は、OCRシステムを使用して読み取られる単語に現れる文字および/または字に文脈を提供することである。
【0006】
本発明の別の態様は、文脈の学習を容易にし、文書画像中の単語の解釈の質を向上させるために、言語モデル(LM)用の訓練セットを提供することである。
【図面の簡単な説明】
【0007】
次に、本発明の実施形態による様々な態様を、以下の図面を参照して詳細に説明する。
【0008】
【
図1】
図1は、入力されたOCRテキストの単純な画像例を示す。
【
図2C】
図2Cは、第1の列に文字順の行、第2の列に
図2Aの表、第3の列に
図2Bの表、第4の列に文字順の各々に対するファジーグラウンドトゥルースを有する表である。
【
図3A】
図3Aは、実施形態によるファジーOCRシステムと言語モデルを訓練するための上位レベルフローチャートを示す。
【
図3B】
図3Bは、実施形態によるファジーOCRシステムと言語モデルを訓練するための上位レベルフローチャートを示す。
【
図4A】
図4Aは、実施形態によるファジーOCR操作の上位レベルフローチャートを示す。
【
図4B】
図4Bは、実施形態によるファジーOCR操作の上位レベルフローチャートを示す。
【
図4C】
図4Cは、実施形態によるファジーOCR操作の上位レベルフローチャートを示す。
【
図5】
図5は、実施形態による文字認識システムの構成を示す上位レベルブロック図である。
【発明を実施するための形態】
【0009】
本発明の実施形態によれば、コンピュータ実装方法は、入力されたスキャン画像に応じて、ニューラルネットワークベースの光学文字認識(OCR)を実行し、視覚的に類似した文字の複数の出力クラスを含むOCR出力を提供することと、ニューラルネットワークベースの言語モデルを使用し、テキストの一部分であって、前記複数の視覚的に類似した文字のうちいずれを出力すべきかの決定に使用できる文脈を得るのに十分な部分内の前記視覚的に類似した文字を検討することと、前記検討に応じて、認識されたテキストとして、前記視覚的に類似した文字から選択された1文字を出力することと、を備える。
【0010】
また、本発明の実施形態は、入力されたスキャン画像を分析し、視覚的に類似した文字の複数の出力クラスを含むOCR出力を提供するニューラルネットワークベースの光学文字認識(OCR)システムと、視覚的に類似した文字のうちいずれを出力すべきかの決定に使用できる文脈を得るのに十分なテキストの一部分内の前記視覚的に類似した文字を検討し、認識されたテキストとして、前記視覚的に類似した文字から選択された1文字を出力するニューラルネットワークベースの言語モデルと、を備えるコンピュータ実装装置を提供する。
【0011】
本明細書に記載の本発明による実施形態は、少なくとも以下の利点を提供する。
●本質的に紛らわしい文字や文字の組み合わせのOCR精度を向上
●スキャンの品質が読みやすさに影響を与える際のOCR精度を向上
●読み取りにくいテキスト、その他、選択されたフォントや手書きスタイルなどのOCR精度を向上
●作者のミス(例えばスペルミスや文法ミス)があっても正しく文字を認識し、作者の意図を推測可能
●例えば、漢字(旧体字,異体字)のような代替文字形式や、異なる時代背景からの同じ言語のアルファベットをグループ化することにより文字を正規化
【0012】
本明細書に記載の本発明による実施形態は、少なくとも以下の利点を提供する。
●OCRエンジンの出力クラスから、様々なもっともらしい解釈/書き起こしの集約体である集約クラスについての見込みを得ることができ、それらは、類似しているために混乱を招く可能性のある択一的な外観を持つ文字で構成され得る
●各集約クラスは、1つまたは複数のメンバー文字列(文字から構成され得る文字列で、そのうちのいくつかは個々にそれ自体が文字であるか、または組み合わせて他の文字から構成される可能性がある)を持つことができる
●各メンバー文字列は、1文字または複数の文字を含み得る
●集約クラスは複数存在し得る(一実施形態では、10個、場合によってはそれ以上)
●集約クラスは、読み方向(左から右、右から左、上下など)に基づいて設計することができ、読み方向が異なると文字順が異なるため、集約クラスの設計も異なる
●従来の文字クラスを集約クラスに集約することで、出力クラス数と訓練データ量を削減し、モデル精度と学習収束率を向上
【0013】
一実施形態では、テキスト認識システムは、双方向LSTM(CRNN)と組み合わせた畳み込みニューラルネットワーク(CNN)、および変換器ニューラルネットワーク(CNN+変換器)と組み合わせたCNNからなる群から選択されるニューラルネットワークベースのモデルで構成され得る。
【0014】
一実施形態では、CRNNはコネクショニスト時間分類(CTC)損失計算を用いて学習され得る。一実施形態では、CNN+変換器は、クロスエントロピー損失計算を用いて学習され得る。
【0015】
次に、日本語には非常に多くの文字が含まれているため、日本語と日本語の文字(ひらがな、カタカナ、漢字)に焦点をあて、文脈に応じた曖昧性解消の例の多くを提供する。この後の説明には、これらの例のいくつかが含まれる。当業者であれば、本明細書で説明する技術およびアプローチは、事実上あらゆるアルファベットおよび/またはあらゆる言語に適用可能であり、有用であることを理解するであろう。例えば、英語では「naan」(インドのパン)と「noon」(真昼)はまったく異なる意味を持つ。しかし、フォントや手書きのスタイル、スキャンの品質などによって、OCRシステムも含め、2つの単語が非常に似て見えることがある。文中の単語を見れば、2つの単語を区別するのに必要な文脈を知ることができる。
【0016】
本発明の態様は、文字のクラスを集約し、認識選択の曖昧さを無くすために文脈情報に依存することによるOCR精度の向上に関する。その結果、OCRプロセスは、逐語的認識から文脈における認識、すなわち「理解による認識」へと進歩する。
【0017】
現在、ほとんどすべてのOCRソフトウェアは、視覚的な外観のみに基づいてテキストを認識している。その結果、本質的に似ている文字や、印刷や手書きの文字が悪いと、OCRエラーが発生することがある。OCRソフトウェアは、日本語や中国語のような表語文字システムを扱うとき、少なくとも一部では、一般的に使用される文字の非常に大規模なセットであり、テキストにスペースがないために、さらに大きな困難に遭遇する可能性がある。さらに、中国語(日本語では漢字)は多くの場合、いくつかの部分または部首から構成されており、そのうちの1つまたは複数が単独で1つの文字になることもある。これらの言語にはスペースが存在しないため、このような文字の組み合わせは、手書き文字認識にとって独特な課題となる。その結果、1つの文字が複数の文字列として解釈されることも十分にあり得る。文字を読む順番も、例えば左から右、右から左、上から下、あるいはこれらの組み合わせなど、さまざまである。現代のほとんどの使用例では、日本語と中国語の文字は左から右に読まれるが、状況によっては上から下に読まれることもある。その結果、上下に配置された漢字の中には、同じ漢字を左から右に読むと曖昧にならないのに、上から下に読むと曖昧になるものがある。
【0018】
文字固有のあいまいさに加えて、外的要因もOCRの精度に影響を与える得る。原稿は、スキャンや写真が悪かったり(ファックスでは頻繁に起こる)、汚れていたり、他のノイズの影響を受けていたりする可能性がある。手書きの文章は、書き手の語学力、書く速さ、書く場所の大きさ、紙やペンの状態などによって、判読できなくなることがある。
【0019】
判読できない文字や読みにくい文字が書かれた文章を読む場合、判読できない文字が現れる文脈(単語や文)が、文字を解読するための重要な手がかりとなる。したがって、一実施形態では、個々の文字の認識は、OCRエンジンから別途学習された言語モデル(LM)に引き継ぐことができる。複数の実施形態では、本明細書で説明するように、LMは特定のアプリケーションやタスクに合わせて微調整することができる。
【0020】
複数の実施形態では、所与の集約クラスに2つ以上の解釈が存在することがある。
【0021】
テキスト認識の場合、OCRモデルの各文字または出力クラスは、特定のUnicodeポイントに対応し得る。例えば、https://unicode.org/charts/(web.archive.orgの2022年12月20日のエントリ)を参照されたい。一実施形態では、日本語OCRは、日本語がひらがな、カタカナ、および漢字(中国語)の3つのカテゴリの文字で構成されているため、焦点となり得る。日本語のテキストにはASCII文字(ローマ字、数字、句読点など)も含まれ得る。ある意味で、日本語は英語と中国語のスーパーセットと見ることができる。ひらがなやカタカナのデザインは漢字や部首からヒントを得ているため、紛らわしいケースが多く存在する。その一例がカタカナの「カ」(ユニコード値U+30AB)と漢字の「力」(ユニコード値U+529B、力の意)である。特定のフォントが使用されているため、ここでは若干異なって見えるかもしれないが、すべてのフォントで見え方が異なるわけではない。また、手書きの場合、ストロークがまったく同じであるため、文字の区別が難しいこともある。もうひとつの例は、カタカナの「ニ」(ユニコード値U+30CB)と漢字の「二」(ユニコード値U+4E8C、2を意味する)である。結局のところ、これらの文字は機能的には同じであり、発音も書き方も同じである。例えば、https://en.wikipedia.org/wiki/Ni_(kana)(web.archive.orgの2022年9月22日のエントリ)を参照されたい。
【0022】
前述の例は、カタカナと漢字の混同の可能性を示している。しかし、当業者であれば、日本語の文字のカテゴリのうちのいずれか2つ、あるいは3つすべての間に潜在的な混同が存在し得ることを理解するだろう。日本語の文字カテゴリ自体にも混同があり得る。混同される可能性のある漢字と混同される可能性のある日本語の文字の例は、以下のリンクで見ることができる。https://en.wiktionary.org/wiki/Appendix:Easily_confused_Chinese_characters;(web.archive.orgの2022年10月18日のエントリ)https://en.wiktionary.org/wiki/Appendix:Easily_confused_Japanese_kana;(web.archive.orgの2022年10月18日のエントリ)
【0023】
ひらがなやカタカナの半濁点や濁点は、文字そのものに比べて小さいため、OCRのエラーにつながることが多い。例えば、「ぼ」、「ぽ」、「ほ」は異なる文字であるが、「半濁点」や「濁点」が明らかでない場合、OCRエンジンは混乱することがある。
【0024】
本発明の態様は、スキャン前に文字が「手書きされた」という要件を解除するか、スキャン品質が理想的でない場合(ファックス文書の場合など)、様々な状況において手書き文字の認識精度を向上させるのに役立つ。
【0025】
手書き文字認識では、書き手の意図とは異なる書き方で書かれたテキストがサンプルとして存在することがよくある。書き手の言語能力や言語障壁、あるいは単に書き手の不注意が原因で、実際に書かれた文章が正しくない(しかし正しい文章に近い)場合がある。従来のOCRエンジンは、書き手が別の意図を持っていても、実際に書かれていることを認識することがある。認識システムが正しい単語を推測できれば、ユーザ体験はより良いものになるだろう。
【0026】
図1では、2つの手書きテキスト行がある。一番上の行は「好学生」とも「女子学生」とも読める。「女子学生」の場合は、「好学生」の一文字目を構成する2文字が分離されている。画像スキャンの質によっては、2つの文字は一緒にされるかもしれないし、別々にされるかもしれない。どちらの読みが正しいかは、その用語が使われた文の文脈から判断することができる。この特定の例では、2つの用語の意味が類似しているため、より多くの文脈が必要な場合となり得る。例えば、生徒の性別が重要かどうかを判断するために、十分な文脈を提供することが役に立つかもしれない。
【0027】
また、
図1では、下の行は「姓名」(フルネーム)とも読めるが、「女生名」(女子生徒の名前)とも読める。「女生名」の場合は、「姓名」の一文字目を構成する2文字が分離される。この場合も、スキャンの質によっては、「女生名」の最初の2文字が一緒になることもあるし、別々になることもある。どちらの読みが正しいかは、その用語が使われた文の文脈または語群から判断することができる。ここでもまた、2つの用語の意味が類似しているため、より多くの文脈が必要な場合となり得る。
【0028】
更に、例えば、英語では「naan」(インドのパン)と「noon」(真昼)はまったく異なる意味を持つ。しかし、フォントや手書きのスタイル、スキャンの品質などによって、OCRシステムにも、2つの単語が非常に似て見えることがある。文中の単語を見れば、2つの単語を区別するのに必要な文脈を知ることができる。この2つの単語は意味が大きく異なるため、上記の好学生/女子学生の例とは対照的に、必要な文脈の数はより少なくなる。
【0029】
別の例として、「字」に似た「学」という字がある。これらの文字を処理するOCRシステムは、例えば、文字の上部の書き方が悪かったり、不鮮明であったり、OCRシステムのノイズによって両文字の上部が同じように見えたりすると、混乱しやすい。
【0030】
これらの例から、当業者であれば、文字の最初の認識を、限られた数の選択肢に絞り込むことが可能であることを理解できるだろう。最終的な判断は、文脈の理解次第となり得る。したがって、一実施形態では、いわゆる「ファジーOCRモデル」が2段階でテキストを認識する。最初の段階では、認識モデルがテキストの行画像(OCRモデルは通常、一度に1行のテキストを認識する)を、集約クラスのシーケンスに書き起こし、各集約クラスは、可能な解釈(そのために混同し得る解釈も)を含む。その後、一実施形態では、最終的な認識結果を生成するために、(文書自体からの)文脈情報および/または(選択肢が現れるより大きな文脈からの)事前情報を利用することによって、集約クラス内の各選択肢の曖昧性解消のために、別の言語モデルを使用することができる。
【0031】
図2Aは、8つの異なる文字を含んでいる。これらの文字はそれぞれ、Unicodeの値に対応する出力クラスに属する。
図2Bは、
図2Aの明瞭な文字を、先に言及したように、集約クラスと呼ばれる7つのクラスに分割したものである。「集約クラス」というヘッダーの下、左側には個々の文字が並んでいる。集約クラス1から4の文字については、表現は1つしかないので、それらの集約クラスは1つのオプションしか含まず、したがって1つの文字からなる1つの文字列しか含まない。集約クラス5から7については、複数の可能性がある。集約クラス5については、前述のように、少なくとも2つの視覚的に類似した表現があり、そのうちの1つは、
図2Aに記載されている8番目の文字である。5番目の文字と8番目の文字は視覚的に似ているので、同じ集約クラスであるクラス5に入れられ、それぞれ1文字の2つの文字列が含まれる。集約クラス6と7のそれぞれについて、文字を一緒に配置したもの(左側)と、文字を別々に配置したもの(右側)の2つの選択肢がある。集約クラス6は2つの文字列を持ち、一方は文字が一緒に配置され、他方は文字が別々に配置されている(
図2Aの文字1、2に対応)。集約クラス7も、文字が一緒に配置された文字列と、文字が別々に配置された文字列(
図2Aの文字1と文字3に対応)の2つを持つ。したがって、集約クラス6と7のそれぞれも、1文字と2文字の2つの文字列を持つ。
【0032】
別の態様では、漢字/中国語の文字には長い歴史があることが理解されよう。その結果、これらの文字の1つまたは複数が時間をかけて進化し、複数の別形態を持つようになった可能性がある。意味、用法、発音は同じでも、各異体字は異なるUnicodeポイントを有する可能性がある。例えば、下記は、同じ字の3つの異体字である(これらの異体字はすべて「家庭」を意味する)。1つ目は日本で最も一般的に使われているもので、2つ目はあまり一般的でないもので、日本での使用はほとんど非推奨となっており、3つ目は、簡体字と繁体字で現在使用されている。3つの異体字は互いに似ており、日本語や中国語の中で同じように機能する。その結果、3つの異体字を1つの文字クラス(たとえば、
図2Bのように集約されたクラスだが、3つの選択肢がある)に統一し、言語や使用例に基づいて適切なものを選択することが有益である。このような漢字の統一は、OCRの出力クラス数を減らし、間接的に認識精度を高めることもできる。(一般的に、出力クラスの数が多ければ多いほど、基礎となる機械学習システムを訓練するために、より多くの訓練tが必要となる。クラスを集約する能力は、出力クラスの数を減らし、したがって必要な訓練サンプルの数を減らす。)
【0033】
【0034】
一般的に、集約クラスのメンバーの数は、それらのメンバーを解釈する方法がいくつあるかによって異なり得る。
【0035】
図2Cは、
図2Aの文字列に対応する入力文字を取り込み、その文字を3つの異なる方法で処理する。最初の列(左側)は入力画像の文字そのものであり、それぞれの行は個々の文字で構成されている。これらは画像サンプルのグランドトゥルースと考えることができる。第2列では、
図2Aと同様に、個々の文字がクラスに従って識別される。これらは、OCRモデルによって見られるグラウンドトゥルースと考えることができる。ある意味で、これらは、当業者が理解するように、ワンホットベクトルのテンソルと考えることができる。第3列では、個々の文字が
図2Bの集約クラスで配置されている。第3列は、下から3行目において、最後の文字が(
図2Aのように)クラス8ではなく、(
図2Bのように)集約クラス5に置かれていることを除けば、ほぼ第2列と同じである。この第3列は、「中間的グラウンドトゥルース」と考えることができる。第4列では、すべての画像が、ファジーOCRモデルへの入力として、「グラウンドトゥルース」を構成する集約クラスに配置される。
【0036】
図2Cをよく見ると、1行目には4つの入力文字があり、クラス1、2、5、3(2列目)、およびインデックス集約クラス1、2、5、3(3列目)に個別に対応している。第4列のファジーグラウンドトゥルースを得るには、そのグループの最初の2文字を1文字と見ることも、2文字と見ることもできる。このような見方は、集約クラス6に相当する。したがって、ファジーグラウンドトゥルースでは、4つの入力文字は集約クラス6、5、3に対応する。
【0037】
同様に、次の行を見ると、3つの入力文字は、クラス6、5、3(2列目)、およびインデックス集約クラス6、5、3(3列目)に個別に対応している。結局のところ、ファジーグラウンドトゥルースでは、入力文字も同様に集約クラス6、5、3に対応する。次の行では、2つの入力文字は、クラス7、4(2列目)、およびインデックス集約クラス7、4(3列目)に個別に対応している。ファジーグラウンドトゥルースでは、2つの入力文字も集約クラス7、4に対応する。同様のパターンは、最初の列の文字を
図2Aのクラス列の文字、および
図2Bの集約クラス列の文字と比較することにより、
図2Cの表の残りの行についても容易に見ることができる。
図2Cの入力テキスト行画像では、1、2および1、3のインデックスは、それぞれ6および7に変換され得る。その結果、OCRモデルは「女子学生」と「好学生」、「姓名」と「女生名」、「好女子」と「好好」を同じものとして認識するように学習する可能性がある。
【0038】
図3Aと
図3Bは、実施形態によるファジーOCRモデルと言語モデルの訓練の上位レベルの概要を提供する。
図3Aでは、310において、
図2Bおよび
図2Cに関して上述したタイプの集約クラスが設計される。320において、これらの集約クラスは、グランドトゥルースデータ(テキスト)をファジーグランドトゥルースデータ(テキスト)に変換するために使用される。
図3Bでは、340において、
図2Bおよび
図2Cに関して上述したタイプの集約クラスが設計される。一実施形態では、
図3Aの310と
図3Bの340から得られる設計された集約クラスは同じであってもよい。一実施形態では、350において、集約クラスでマスクされた言語モデリングが使用され、言語モデルの訓練サンプルを生成する。360において、訓練サンプルは言語モデルの訓練に使用される。
【0039】
図4Aは、実施形態による上位レベルのフローチャートである。
図4Aでは、410において、入力画像(テキストとして、実際には複数の画像である)が受信される。420において、ファジーOCRが実行される。本明細書でさらに記載されるように、ファジーOCRの性能の一部として、各出力クラスは集約クラスになる。
図2Bおよび
図2Cに関して前述したように、各集約クラスは、空ではない文字列のセットであってもよく、各文字列は、単一の文字であっても、複数の文字列であってもよい。各文字列は、可能性のある書き起こしである。
【0040】
ファジーOCRモデルを訓練する前に、訓練サンプルのグランドトゥルースを「ファジー」グランドトゥルースに変換する必要がある。
図2Cを参照すればわかるように、この変換は2段階のプロセスである。最初のステップでは、入力テキスト文字列は、集約クラスのインデックスのシーケンスにマッピングされ得る。結合/分離された文字の解釈を可能にするために、インデックスのシーケンスは、そのようなシーケンスを含む集約クラスにマッピングすることができる。訓練後、ファジーOCRモデルは、集約クラスのどの文字列が最も可能性の高いものかを決定することなく、正しい集約クラスを最も可能性の高いものとする。
【0041】
再び
図4Aを見ると、ファジーOCRを実行した後、430において、どの文字列が最も可能性が高いかを解決するために、本明細書で記載されているタイプの1つのニューラル言語モデルであり得る言語モデルが、ファジーOCR出力で実行される。このようにして、440において、認識されたテキストが出力される。
【0042】
前述のファジーOCRモデルの訓練は、
図4Bを参照してもわかる。450において、訓練サンプルのグランドトゥルースを入力することができる。455において、
図2Bおよび
図2Cに見られるように、入力されたグラウンドトゥルーステキストは、集約クラスのインデックスのシーケンスにマッピングされる。460において、インデックスは、集約クラスのシーケンスに変換される。465において、最も高い可能性がシーケンスの各集約クラスに割り当てられる。
【0043】
一実施形態では、
図4Aの465における最も高い可能性の割り当ては、入力画像における文字の視覚情報または外観に大きく依存し得る。集約クラスの選択肢のさらに曖昧さをなくすために、意味的な文脈が利用されることがある。
図4Cは、
図4Bの465から最も高い可能性の集約クラスを使用して、認識されたテキストを出力する言語モデルの動作の一部として、より詳細にその文脈に焦点を当てたフローチャートである。集約クラスに割り当てられた最も高い可能性が、必ずしもその集約クラスが正解を含むものであるとは限らないことを認識し、集約クラスの文字が出現する単語の周辺の1つまたは複数の単語または文を調べ、文脈を提供することができる。したがって、
図4Cでは、470において、
図4Bの465からの特定の集約クラスの文脈の量を選択できる。文字の最終的な識別を行うニューラルネットワークシステムの訓練の一部には、正しい文字の識別を行うのに十分である最も可能性の高い文脈の量を事前に決定することが含まれ得る。475において、システムは文脈を検討する。480において、システムは、認識されたテキストの一部となる文字の選択を決定する。485において、選択された文字を含む、認識されたテキストが出力される。
【0044】
一実施形態では、ファジーOCRモデルの集約された出力クラスは、意図されたアルファベットのすべての文字が正確に1つの集約クラスに属するように、意図されたアルファベット(ひらがな、カタカナ、漢字、または別のアルファベット)のパーティションを形成することができる。
【0045】
実施形態によっては、ファジーOCRシステムが出力する集約クラスは、いくつかの方法のいずれかで得ることができる。例えば、1つまたは複数の辞書や、混同する可能性のある文字のリストを参照することができる。この参照では、横書き(左から右、または右から左へ進むテキストの場合)であれ、縦書き(上から下へ進むテキストの場合)であれ、文字間のスペーシングは解決されないことに注意すべきである。一実施形態では、同じ訓練データで学習された従来のOCRモデルの混同行列またはエラーパターンを参照することができる。一実施形態では、集約クラスの設計は、経験に基づいて行うことができ、例えば、隣接する文字を統合すべきか分離すべきかをシステムが識別できるようにしてよい。
【0046】
当業者であれば、集約クラスの数が入力画像サンプルの品質に大きく依存し得ることを理解するであろう。画像サンプルの品質は、画像の生成の品質、および/または画像のスキャンの品質に基づいて変化し得る。画像サンプルの品質が高ければ高いほど、集約クラスは、単一の文字列のみを含む出力クラス(すなわち非集約クラス)に近いものになる可能性が高くなる。
【0047】
ファジーOCRに使用するモデルを選択する際、実施形態によっては、任意のエンコーダ・デコーダベースのニューラルアーキテクチャを選択することができる。これは、出力クラスのみが汎化されるためである。一実施形態において、1つのOCRモデルアーキテクチャは、畳み込みニューラルネットワーク(CNN)、双方向長期短期記憶(BiLSTM)、およびコネクショニスト時間分類(CTC)損失の組み合わせであり得る。より具体的な実施形態では、ファジーOCRを訓練するために、ResNetまたはInceptionベースのCNNバックボーンを、CTC損失を持つ2層の双方向LSTMとともに使用することができる。学習ハイパーパラメータは、経験的に、またはグリッド検索やランダム検索によって決定することができる。訓練は、ResNet、インセプションベースのCNNバックボーン、2層双方向LSTM、およびコネクショニスト時間分類(CTC)損失からなる群から選択される損失計算を使用して重みを更新することによって達成することができる。
【0048】
一実施形態では、LMを訓練するために、Transformerによる双方向のエンコード表現(BERT)などのニューラル言語モデルが、それに続く事前訓練を提供することができる。一実施形態では、集約クラス内の候補文字列を曖昧性解消するLMが目標であることを念頭に置くと、BERTの事前学習タスクの1つである、いわゆるマスク言語モデリングと類似点がある。一実施形態では、マスクされた言語モデリングにおいて、訓練データジェネレータは、トークン(つまり、トークン化後の有用な文字列、日本語と中国語では文字だけ)の位置の15%をランダムに選択する。実施形態によっては、マスキングは15%以上になることもある。いくつかの実施形態では、マスキングの量は40%に近づくか、あるいは40%を超えることさえある。一実施形態では、トークンは、1)例えば80%の時間、マスクトークンに置き換えられるか、2)10%の時間、ランダムトークンに置き換えられるか、3)10%の時間、変更されないままである。その後、システムはマスクされたトークンを予測するように訓練され得る。一実施形態では、1)は、集約クラスからトークンをランダムに選択できるように変更することができる。
【0049】
学習されたLMの推論時間中、複数の文字列(トークン)を含む集約クラスである各トークンについて、LMは最も可能性の高い文字列を予測するよう求められ、これが最終的な認識結果として選択される。
【0050】
一実施形態では、集約クラスの曖昧性解消は、文脈を考慮して、各集約クラスで最も可能性の高い文字列を選択することによって得ることができる。実施形態によっては、文脈は、入力される文書のアプリケーションロジックやルールだけでなく、言語自体から来ることもある。
【0051】
異なる実施形態によれば、文脈はいくつもの方法で起こり得る。題材に関しては、網羅的ではないが例示的なリストとして、文学(さまざまな国・地域の文学を含む)、経済学(マクロ経済学/ミクロ経済学などを含む)、金融、法律、歴史、医学、哲学、政治、科学(生物学、物理学、化学、天文学、数学など)、工学(電気、土木、機械、構造、品質、価値など)、スポーツ(サッカー、テニス、野球、ラグビー、フットボールなど)、心理学/精神医学および関連分野、投資、コンピューターサイエンス/プログラミング、宗教/神学(特定の宗教に特化したサブ分野を含む)などを含む。当業者であれば、他の専門分野や下位分野も実質的な文脈を提供できることを理解するだろう。この非網羅的なリストから、例えば、患者記録(医療)が提供する文脈は、スポーツ用品が提供する文脈とは異なることを、当業者は理解するであろう。
【0052】
上記の例にあるような主題の文脈に加え、時代や歴史的背景が異なれば、登場する単語や文章、文字も異なる。文法、構文、用法は世紀によって異なる場合もあり得る。一実施形態では、訓練セットは、これらの異なる時代または歴史的期間の1つまたは複数の文書または文書の一部から構成される。いくつかの例では、発明の態様は、異なる国や地域に有効に適用され、方言が異なるため、異なる文法や構文が作用することがある。当業者であれば、他の分野および/またはサブ分野も実質的な文脈を提供できることを理解するだろう。
【0053】
図5は、とりわけ、スキャンシステム510からのスキャン画像を入力として受け入れ、それらの入力に対してOCRを実行することができるコンピューティングシステム500の上位レベルのブロック図である。一実施形態において、スキャンシステム510は、スキャン画像をコンピューティングシステム500に直接出力することができるスキャン装置512を含み得、あるいは、スキャンシステム510の一部であり得る処理システム514を介してそうすることができる。
【0054】
一実施形態において、ファジーOCRシステム520は、上記に記載されたタイプのニューラルネットワークから構成され得、スキャンシステム510からスキャンされた画像を受信し得る。スキャンされた画像には、視覚的に類似した文字が多数存在するタイプの文字が含まれている可能性がある。ファジーOCRシステム520はまた、不揮発性記憶装置530に記憶され、直接またはクラウドもしくはネットワーク540を介して受信された、文字の集約クラスに関するデータを受信することができる。ファジーOCRシステム520は、先に記載したように、最も可能性の高い集約されたクラスを言語モデル550に提供する。ファジーOCRシステム520の一部であってもなくてもよい言語モデル550は、最も可能性の高い集約された文字のクラスを、集約クラスの文字が取り出されたスキャン画像の十分な部分と組み合わせて使用して、集約クラスから正しい文字または文字のグループを選択することができる。言語モデル550がファジーOCRシステム520から分離されている場合、言語モデル550は、直接またはクラウドもしくはネットワーク540を介してファジーOCR520と通信することができる。言語モデル550は、直接、またはクラウドやネットワーク540を介して、不揮発性記憶装置530と通信することができる。
【0055】
不揮発性記憶装置530は、特に、訓練データとグラウンドトゥルースデータを記憶することができる。本明細書の他の箇所で示したように、非網羅的なリストとして、訓練データは、任意の数の主題領域、歴史的時代などからのデータから構成され得る。当業者であれば、他のタイプの訓練データもあり得ることを理解するだろう。
【0056】
処理システム514、ファジーOCRシステム520、および言語モデル550のいずれかまたはすべては、マルチコア、マルチGPUプロセッサであってもよい1つまたは複数のプロセッサと、1つまたは複数のプロセッサが実行する1つまたは複数のプログラムを格納する不揮発性記憶装置と、および/または本明細書で記載される処理を実行するために不揮発性記憶装置から1つまたは複数のプログラムを受信することができる揮発性記憶装置とから構成され得る。
【0057】
以上、本発明の態様による実施形態を説明したが、本発明は、これらの実施形態または態様に限定されるものと考えてはならない。当業者であれば、添付の特許請求の範囲の範囲および精神の範囲内で、本発明の変更を理解するであろう。
【手続補正書】
【提出日】2024-04-04
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
入力されたスキャン画像に応じて、ニューラルネットワークベースの光学文字認識(OCR)を実行し、視覚的に類似した文字の複数の出力クラスを含むOCR出力を提供し、前記複数の出力クラスから最も可能性の高い出力クラスを識別することと、
ニューラルネットワークベースの言語モデルおよび前記識別された最も可能性の高い出力クラスを使用し、テキストの一部分であって、前記識別された最も可能性の高い出力クラスにおける前記複数の視覚的に類似した文字のうちいずれを出力すべきかの決定に使用できる文脈を得るのに十分な部分を検討することと、
前記検討に応じて、認識されたテキストとして、前記複数の視覚的に類似した文字から選択された1文字を出力することと、を備える、コンピュータ実装方法。
【請求項2】
テキストの前記一部分が、文の一部または全部である、請求項1に記載のコンピュータ実装方法。
【請求項3】
テキストの前記一部分が、段落の一部または全部である、請求項1又は2に記載のコンピュータ実装方法。
【請求項4】
テキストの前記一部分が、前記複数の視覚的に類似した文字から選択された1文字が現れる単語である、請求項1又は2に記載のコンピュータ実装方法。
【請求項5】
前記ニューラルネットワークベースのOCRシステムおよび前記ニューラルネットワークベースの言語モデル全てが同じニューラルネットワークの一部である、請求項1又は2に記載のコンピュータ実装方法。
【請求項6】
辞書または視覚的に類似した文字のリストの参照および既存のOCRエンジンの混同行列の参照からなる群から選択された方法によって、前記出力クラスを設計することを更に備える、請求項1又は2に記載のコンピュータ実装方法。
【請求項7】
前記ニューラルネットワークベースのOCRモデルが、畳み込みニューラルネットワーク(CNN)、双方向長短期記憶(BiLSTM)、コネクショニスト時間的分類(CTC)損失、またはそれらの組み合わせからなる群から選択される、請求項1又は2に記載のコンピュータ実装方法。
【請求項8】
前記ニューラルネットワークベースの言語モデルが、クロスエントロピー損失計算を使用して重みを更新することで訓練される、請求項7に記載のコンピュータ実装方法。
【請求項9】
前記視覚的に類似した文字が、日本語または中国語である、請求項1又は2に記載のコンピュータ実装方法。
【請求項10】
前記ニューラルネットワークベースのOCRモデルが、ResNet、インセプションベースのCNNバックボーン、2層双方向LSTM、およびコネクショニスト時間的分類(CTC)損失からなる群から選択された損失計算を使用して重みを更新することで訓練される、請求項7に記載のコンピュータ実装方法。
【請求項11】
入力されたスキャン画像を分析し、視覚的に類似したテキスト文字の複数の出力クラスを含むOCR出力を提供し、前記複数の出力クラスから最も可能性の高い出力クラスを識別するニューラルネットワークベースの光学文字認識(OCR)システムと、
ニューラルネットワークベースの言語モデルであって、前記識別された最も可能性の高い出力クラスを使用して、前記識別された最も可能性の高い出力クラスにおける視覚的に類似した文字のうちいずれを出力すべきかの決定に使用できる文脈を得るのに十分なテキストの一部分を検討し、認識されたテキストとして、前記視覚的に類似した文字から選択された1文字を出力する、ニューラルネットワークベースの言語モデルと、を備える、コンピュータ実装装置。
【請求項12】
テキストの前記一部分が、文の一部または全部である、請求項11に記載のコンピュータ実装装置。
【請求項13】
テキストの前記一部分が、段落の一部または全部である、請求項11又は12に記載のコンピュータ実装装置。
【請求項14】
テキストの前記一部分が、前記視覚的に類似した文字から選択された1文字が現れる単語である、請求項11又は12に記載のコンピュータ実装装置。
【請求項15】
前記ニューラルネットワークベースのOCRシステムおよび前記ニューラルネットワークベースの言語モデルが全て同じニューラルネットワークの一部である、請求項11又は12に記載のコンピュータ実装装置。
【請求項16】
辞書または視覚的に類似した文字のリストの参照および既存のOCRエンジンの混同行列の参照からなる群から選択された方法を使用して、前記出力クラスが設計されている、請求項11又は12に記載のコンピュータ実装装置。
【請求項17】
前記ニューラルネットワークベースのOCRモデルが、畳み込みニューラルネットワーク(CNN)、双方向長短期記憶(BiLSTM)、コネクショニスト時間的分類(CTC)損失、またはそれらの組み合わせからなる群から選択される、請求項11又は12に記載のコンピュータ実装装置。
【請求項18】
前記ニューラルネットワークベースの言語モデルが、クロスエントロピー損失計算を使用して重みを更新することで訓練される、請求項17に記載のコンピュータ実装装置。
【請求項19】
前記視覚的に類似した文字が、日本語または中国語である、請求項11又は12に記載のコンピュータ実装装置。
【請求項20】
前記ニューラルネットワークベースのOCRモデルが、ResNet、インセプションベースのCNNバックボーン、2層双方向LSTM、およびコネクショニスト時間的分類(CTC)損失からなる群から選択された損失計算を使用して重みを更新することで訓練される、請求項17に記載のコンピュータ実装装置。
【外国語明細書】