(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2022016830
(43)【公開日】2022-01-25
(54)【発明の名称】文字列認識装置、文字列認識方法、及びプログラム
(51)【国際特許分類】
G06V 30/26 20220101AFI20220118BHJP
G06T 7/00 20170101ALI20220118BHJP
G06V 30/14 20220101ALI20220118BHJP
【FI】
G06K9/72 Z
G06T7/00 350C
G06K9/20 340K
【審査請求】未請求
【請求項の数】14
【出願形態】OL
(21)【出願番号】P 2020119790
(22)【出願日】2020-07-13
(71)【出願人】
【識別番号】517332845
【氏名又は名称】Arithmer株式会社
(74)【代理人】
【識別番号】100079108
【弁理士】
【氏名又は名称】稲葉 良幸
(74)【代理人】
【識別番号】100109346
【弁理士】
【氏名又は名称】大貫 敏史
(74)【代理人】
【識別番号】100117189
【弁理士】
【氏名又は名称】江口 昭彦
(74)【代理人】
【識別番号】100134120
【弁理士】
【氏名又は名称】内藤 和彦
(72)【発明者】
【氏名】平田 朋義
【テーマコード(参考)】
5B029
5B064
5L096
【Fターム(参考)】
5B029AA01
5B029BB02
5B029CC28
5B064AA01
5B064AB03
5B064BA01
5B064CA08
5B064EA18
5B064EA19
5L096BA17
5L096EA35
5L096HA11
5L096KA04
(57)【要約】
【課題】文書画像における文字列の認識処理の精度を改善すること。
【解決手段】文字列認識装置100は、文書画像から文字列の画像を抽出する抽出部12と、一又は複数の文字を推定する文字認識モデル3に、抽出した文字列の画像を入力することによって候補文字列を推定する推定部13と、候補文字列から第1文字を含むように切り出された文字列の並びの第1出現確率と、文字列において第1文字を第1文字とは異なる第2文字に変換した場合の文字列の並びの第2出現確率と、に基づいて第1文字を第2文字に変換するか否かを判断する判断部16と、判断部16の判断結果と候補文字列とに基づいて、文字列の画像に対応する文字列を認識する認識部18と、を備える。
【選択図】
図6
【特許請求の範囲】
【請求項1】
文書画像から文字列の画像を抽出する抽出部と、
一又は複数の文字を推定する文字推定モデルに、抽出した前記文字列の画像を入力することによって候補文字列を推定する推定部と、
前記候補文字列から第1文字を含むように切り出された文字列の並びの第1出現確率と、当該文字列において前記第1文字を当該第1文字とは異なる第2文字に変換した場合の文字列の並びの第2出現確率と、に基づいて前記第1文字を前記第2文字に変換するか否かを判断する判断部と、
前記判断部の判断結果と前記候補文字列とに基づいて、前記文字列の画像に対応する文字列を認識する認識部と、
を備える、文字列認識装置。
【請求項2】
前記文字列は、手書き文字を含む手書き文字列である、
請求項1に記載の文字列認識装置。
【請求項3】
前記文字列は、等幅の文字を含む文字列である、
請求項1又は2に記載の文字列認識装置。
【請求項4】
前記候補文字列から、前記文字推定モデルが前記候補文字列に含まれる文字ごとに出力した推定確率に基づいて前記第1文字を特定する特定部を更に備える、
請求項1から請求項3のいずれか一項に記載の文字列認識装置。
【請求項5】
前記判断部は、前記文字推定モデルが前記第1文字に対して出力した第1推定確率、及び、前記第1出現確率と、前記文字推定モデルが前記第2文字に対して出力した第2推定確率、及び、前記第2出現確率と、に基づいて前記第1文字を前記第2文字に変換するか否かを判断する、
請求項1から請求項4のいずれか一項に記載の文字列認識装置。
【請求項6】
前記文書画像に含まれ得る一又は複数の文字列が登録されたデータベースから切り出された、所定数の文字で構成された一又は複数の文字列と、当該文字列の並びの出現確率と、を関連付けた文字列辞書を取得する取得部を更に備え、
前記判断部は、前記文字列辞書に基づいて、前記第1出現確率と前記第2出現確率とを算出する、
請求項1から請求項5のいずれか一項に記載の文字列認識装置。
【請求項7】
前記判断部は、前記候補文字列から、前記第1文字の配置が異なるように、異なる複数の文字列を切り出す、
請求項1から請求項6のいずれか一項に記載の文字列認識装置。
【請求項8】
前記第1出現確率が前記第2出現確率より低い場合に、前記第1文字を前記第2文字に変換する変換部を更に備える、
請求項1から請求項7のいずれか一項に記載の文字列認識装置。
【請求項9】
前記第1文字を含む前記文字列、及び、前記第2文字に変換した場合の前記文字列は、共通の文字数で構成される、
請求項1から請求項8のいずれか一項に記載の文字列認識装置。
【請求項10】
前記判断部は、前記第1文字が前記第2文字に変換された前記候補文字列のうち第3文字を含むように切り出された文字列の並びの第3出現確率と、当該文字列において前記第3文字を当該第3文字とは異なる第4文字に変換した場合の文字列の並びの第4出現確率と、に基づいて前記第3文字を前記第4文字に変換するか否かを判断する、
請求項1から請求項9のいずれか一項に記載の文字列認識装置。
【請求項11】
前記判断部は、
前記候補文字列から、前記第1文字の配置が異なるように、異なる複数の文字列を切り出し、当該異なる複数の文字列に対応する複数の前記第1出現確率を算出し、
当該異なる複数の文字列において前記第1文字を前記第2文字に変換した文字列に対応する複数の前記第2出現確率を算出し、
前記文字推定モデルが前記第1文字に対して出力した第1推定確率と、複数の前記第1出現確率と、前記文字推定モデルが前記第2文字に対して出力した第2推定確率と、複数の前記第2出現確率とに基づいて、前記第1文字を前記第2文字に変換するか否かを判断する、
請求項1から10のいずれか一項に記載の文字列認識装置。
【請求項12】
前記文字推定モデルは、畳み込みニューラルネットワークにより構成される、
請求項1から請求項11のいずれか一項に記載の文字列認識装置。
【請求項13】
文字列を認識するコンピュータが実行する文字列認識方法であって、
文書画像から前記文字列の画像を抽出するステップと、
一又は複数の文字を推定する文字推定モデルに、抽出した前記文字列の画像を入力することによって候補文字列を推定するステップと、
前記候補文字列から第1文字を含むように切り出された文字列の並びの第1出現確率と、当該文字列において前記第1文字を当該第1文字とは異なる第2文字に変換した場合の文字列の並びの第2出現確率と、に基づいて前記第1文字を前記第2文字に変換するか否かを判断するステップと、
前記判断するステップの判断結果と前記候補文字列とに基づいて、前記文字列の画像に対応する文字列を認識するステップと、を含む、
文字列認識方法。
【請求項14】
文字列を認識するコンピュータを、
文書画像から前記文字列の画像を抽出する抽出部と、
一又は複数の文字を推定する文字推定モデルに、抽出した前記文字列の画像を入力することによって候補文字列を推定する推定部と、
前記候補文字列から第1文字を含むように切り出された文字列の並びの第1出現確率と、当該文字列において前記第1文字を当該第1文字とは異なる第2文字に変換した場合の文字列の並びの第2出現確率と、に基づいて前記第1文字を前記第2文字に変換するか否かを判断する判断部と、
前記判断部の判断結果と前記候補文字列とに基づいて、前記文字列の画像に対応する文字列を認識する認識部と、
して機能させるプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、文字列認識装置、文字列認識方法、及びプログラムに関する。
【背景技術】
【0002】
従来、入力文字と、様々な文字が記録された辞書と、のパターンマッチングにより認識結果候補文字を決定する手法が知られている。
【0003】
例えば、特許文献1には、入力文字を認識する文字列認識装置が記載されている。文字列認識装置は、各文字について特徴量空間における距離に基づいてクラスタリングを行い、文字ごとに、字形が似た文字を集めた文字リストを作成する。文字列認識装置は、作成された文字リストを用いて、光学的文字認識処理、つまりОCR(Optical Character Recognition)処理の結果を補正する。
【先行技術文献】
【特許文献】
【0004】
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、特許文献1に記載されている従来の文字認識技術は、必ずしも文字列を高精度に読み取るためのものではない。
【0006】
そこで、本発明のいくつかの態様はかかる事情に鑑みてなされたものであり、文書画像における文字列の認識処理の精度を改善することができる文字列認識技術を提供することを目的とする。
【課題を解決するための手段】
【0007】
本発明の一態様に係る文字列認識装置は、文書画像から文字列の画像を抽出する抽出部と、一又は複数の文字を推定する文字推定モデルに、抽出した文字列の画像を入力することによって候補文字列を推定する推定部と、候補文字列から第1文字を含むように切り出された文字列の並びの第1出現確率と、文字列において第1文字を第1文字とは異なる第2文字に変換した場合の文字列の並びの第2出現確率と、に基づいて第1文字を第2文字に変換するか否かを判断する判断部と、判断部の判断結果と候補文字列とに基づいて、文字列の画像に対応する文字列を認識する認識部と、を備える。
【0008】
本発明の一態様に係る文字列認識方法は、文字列を認識するコンピュータが実行する文字列認識方法であって、文書画像から文字列の画像を抽出するステップと、一又は複数の文字を推定する文字推定モデルに、抽出した文字列の画像を入力することによって候補文字列を推定するステップと、候補文字列から第1文字を含むように切り出された文字列の並びの第1出現確率と、文字列において第1文字を第1文字とは異なる第2文字に変換した場合の文字列の並びの第2出現確率と、に基づいて第1文字を第2文字に変換するか否かを判断するステップと、判断するステップの判断結果と候補文字列とに基づいて、文字列の画像に対応する文字列を認識するステップと、を含む。
【0009】
本発明の一態様に係るプログラムは、文字列を認識するコンピュータを、文書画像から文字列の画像を抽出する抽出部と、一又は複数の文字を推定する文字推定モデルに、抽出した文字列の画像を入力することによって候補文字列を推定する推定部と、候補文字列から第1文字を含むように切り出された文字列の並びの第1出現確率と、文字列において第1文字を第1文字とは異なる第2文字に変換した場合の文字列の並びの第2出現確率と、に基づいて第1文字を第2文字に変換するか否かを判断する判断部と、判断部の判断結果と候補文字列とに基づいて、文字列の画像に対応する文字列を認識する認識部と、して機能させる。
【0010】
なお、本発明において、「部」とは、単に物理的手段を意味するものではなく、その「部」が有する機能をソフトウェアによって実現する場合も含む。また、1つの「部」や装置が有する機能が2つ以上の物理的手段や装置により実現されても、2つ以上の「部」や装置の機能が1つの物理的手段や装置により実現されても良い。
【発明の効果】
【0011】
本発明によれば、文書画像における文字列の認識処理の精度を改善することができる。
【図面の簡単な説明】
【0012】
【
図1】一実施形態に係る文字列認識装置の一例を示す概略構成図(システム構成図)である。
【
図2】一実施形態に係る証券の一例を示す図である。
【
図3】一実施形態に係る文字列認識処理における推定処理の一例を示す概念図である。
【
図4】一実施形態に係る文字列認識処理における修正処理の一例を示す概念図である。
【
図5】一実施形態に係る文字列認識処理における修正処理及び認識処理の一例を示す概念図である。
【
図6】一実施形態に係る文字列認識処理の一例を示すフローチャートである。
【
図7】一実施形態に係るコンピュータのハードウェア構成の一例を示す図である。
【
図8】一実施形態に係る文字列認識装置の他の一例を示す概略構成図である。
【発明を実施するための形態】
【0013】
以下、添付図面を参照しながら本発明の実施の形態について説明する。以下の実施の形態は、本発明を説明するための例示であり、本発明をその実施の形態のみに限定する趣旨ではない。また、本発明は、その要旨を逸脱しない限り、様々な変形が可能である。さらに、各図面において同一の構成要素に対しては可能な限り同一の符号を付し、重複する説明は省略する。
【0014】
図1は、本発明の一実施形態に係る文字列認識装置の概略構成図(システム構成図)である。
図1に示すように、文字列認識装置100は、文書に関する画像(文書画像)における一又は複数の手書き文字を含む手書き文字列を認識する装置である。ただし、文字列認識装置100は手書き文字列を認識するものに限定されず、活字文字列を認識するものであってもよい。文字列認識装置100は、例えばサーバ装置等の情報処理装置である。文字列認識装置100は、例えば、ラップトップ又はノートブック型コンピュータ等の他の情報処理装置であってもよい。
【0015】
「文書」とは、文字列が記入された書類をいう。「文書」は、帳簿や伝票の総称である帳票を含む。帳票とは、例えば、証券会社等が扱う証券、申請書、又は、契約書等の書類を含む。「文書」は、帳票の他、免許証、マイナンバーカード、又は、会員証等の文字列が記入された他の書類等を含んでもよい。
【0016】
文字列認識装置100は、例示的に、文書画像における手書き文字列を認識するための情報処理を実行する情報処理部1と、一又は複数の手書き文字を推定する文字推定モデル3と、文書画像に含まれ得る一又は複数の文字列が登録されたコーパス5(データベース)と、コーパス5から切り出された、所定数N(Nは、例えば2以上の整数である。)の文字で構成された一又は複数の文字列を格納するN文字列辞書7(文字列辞書)と、を備える。
【0017】
文字列認識装置100は、文書画像における手書き文字以外の文字(例えば活字)を認識してもよい。また、文字推定モデル3、コーパス5、又は、N文字列辞書7の少なくとも一つは、文字列認識装置100とは別個の装置、又は、データベースとして構成されてもよい。文字推定モデル3、コーパス5及びN文字列辞書7の詳細については、
図3及び
図4を参照して後述する。
【0018】
図2は、一実施形態に係る証券の一例を示す図である。
図2に示すように、証券Cは、例えば、特定の保険会社「○○損害保険株式会社」の自動車保険証券である。
【0019】
証券Cは、手書き文字が記入されたフィールドとして、例えば、少なくとも「保険契約者」に含まれる住所フィールド20を含む。住所フィールド20は、文字列認識装置100で手書き文字を認識するフィールドを例示したものであって、証券Cは住所フィールド20の他にも手書き文字が記載されたフィールドを有してもよい。例えば、証券Cは、「保険契約者」に含まれる氏名フィールドと、「ご契約内容」に含まれる、保険の開始日及び保険の満期日を手書きで記入するための保険期間フィールド(不図示)と、を有してもよい。証券Cは、「ご契約のお車」に含まれる、車台番号を手書きで記入するための車台番号フィールド(不図示)、及び、登録番号を手書きで記入するための登録番号フィールド(不図示)等を更に有してもよい。文字列認識装置100は、他のフィールドの手書き文字を認識してもよい。
【0020】
図1に戻り、情報処理部1は、機能的に、例えば、文書画像取得部11、文字列抽出部12(抽出部)、候補文字列推定部13(推定部)、変換候補文字特定部14(特定部)、N文字列辞書生成部15(取得部)、変換判断部16(判断部)、変換部17、及び、文字列認識部18(認識部)を含んで構成されている。なお、情報処理部1の上記各部は、例えば、メモリやハードディスク等の記憶領域を用いたり、記憶領域に格納されているプログラムをプロセッサが実行したりすることにより実現することができる。
【0021】
文書画像取得部11は、証券Cの文書画像を取得する。文書画像取得部11は、例えば、文書画像取得部11は、
図7を参照して後述する入出力インターフェース44の一例であるカメラ等の撮像装置で撮像することによって生成される文書画像を取得してもよい。
【0022】
図3から
図5を参照して、一実施形態に係る文字列認識処理の一例を説明する。
図3は、一実施形態に係る文字列認識処理における推定処理の一例を示す概念図である。
図3に示すように、
図1に示す文字列抽出部12は、
図2に示す証券Cから手書き文字を含む手書き文字列HCS「東京都中野区新井」の画像を抽出する。
図1に示す候補文字列推定部13は、文字推定モデル3に、文字列抽出部12が抽出した手書き文字列HCSの画像を入力することによって、初期読取結果として、手書き文字列HCS「東京都中野区新井」の画像に対して、確からしい候補文字列CS「東小都串野区新井」を推定する。
【0023】
文字推定モデル3は、例えばニューラルネットワーク構造を備える。文字推定モデル3は、例えば畳み込みニューラルネットワーク、つまりCNN(Convolutional Neural Network)により構成される。CNNでは、例えば、証券Cにおける一又は複数のフィールドに含まれる手書き文字列の画像に関する特徴量マップ等を算出することによって候補文字列を推定してもよい。また、文字推定モデル3には、CNNに加えて、リカレントニューラルネットワーク、つまりRNN(Recurrent Neural Network)が更に結合されてもよい。文字推定モデル3は、RNNを用いて、特徴量マップから得られた複数の連続的な特徴データの前後関係を踏まえて文字列インデックス等を算出してもよい。なお、文字推定モデル3におけるネットワーク構造は上記以外の構成を採用してもよい。また、ニューラルネットワークについても、CNN及びRNN以外のニューラルネットワークを採用してもよい。
【0024】
図4は、一実施形態に係る文字列認識処理における修正処理(変換処理)の一例を示す概念図である。本実施形態における修正処理は、以下の三つのステップを含む。
図4に示すように、本実施形態における修正処理は、例えば、ステップ(1)CNN(文字推定モデル3)を用いた推定確度(推定確率)の出力、ステップ(2)N文字列辞書DB7を用いた出現確度(出現確率)の出力、及び、ステップ(3)変換候補文字の確度の出力を含む。より具体的には、本実施形態における修正処理は、ステップ(1)で出力した推定確度と、ステップ(2)で出力した出現確度とに基づいて、文字ごとの確度を出力(算出)する(ステップ(3))。そして、本実施形態における修正処理において、ステップ(3)で出力した文字ごとの確度に基づいて、推定した文字(例えば「串」)を変換候補文字(例えば、「中」)に変換するか否か判断する。
【0025】
まず、ステップ(1)について具体的に説明する。
図4に示すように、CNNは、
図3に示す手書き文字列HCS「東京都中野区新井」の画像から候補文字列CS「東小都串野区新井」を推定する際に、手書き文字列HCS「東京都中野区新井」の画像に含まれる各文字の推定文字候補ごとに推定確度EA(推定確率)を出力する。CNNは、例えば、手書き文字列HCS「東京都中野区新井」の画像に含まれる文字「中」の画像に対する推定文字候補(例えば、「串」、「中」、「虫」、「Φ」…等)ごとに推定確度EA(推定確率)を出力する。
図4の例では、CNNは、推定確度を、「串」について0.55、「中」について0.30、「虫」について0.09、及び、「Φ」について0.05と出力する。また、
図4に示すように、CNNは、推定文字候補(例えば、「串」、「中」、「虫」、「Φ」…等)ごとに推定確度EAを出力する際に、推定確度EAの総和が「1」になるように当該推定確度EAを算出する。
【0026】
同様に、CNNは、例えば、手書き文字列HCS「東京都中野区新井」の画像に含まれる各文字「東」、「京」、「都」、「野」、「区」、「新」及び「井」の画像のそれぞれに対する推定文字候補ごとに推定確度EAを出力する。CNNは、例えば、手書き文字列HCS「東京都中野区新井」の画像に含まれる各文字の画像のそれぞれに対する推定文字候補ごとに出力した推定確度EAに基づいて、候補文字列CS「東小都串野区新井」を推定する。CNNは、例えば、推定確度EAがより高い推定文字候補(例えば、手書き文字列HCS「東京都中野区新井」の画像に含まれる文字「中」の画像に関しては、推定確度が0.55と最も高い「串」)を推定文字とする。
【0027】
変換候補文字特定部14は、候補文字列CS「東小都串野区新井」から、文字推定モデル3が候補文字列CS「東小都串野区新井」に含まれる文字(例えば、「東」、「小」、「都」等)ごとに出力した推定確度EAに基づいて変換候補文字(第1文字)を特定する。例えば、CNNは、候補文字列CS「東小都串野区新井」を推定した際に、候補文字列CS「東小都串野区新井」に含まれる文字ごとに以下のとおり推定確度EAを出力済である。例えば、CNNは、「東」の推定確度はEA=0.85、「小」の推定確度はEA=0.65、「都」の推定確度はEA=0.87、「串」の推定確度はEA=0.55、「野」の推定確度はEA=0.90、「区」の推定確度はEA=0.91、「新」の推定確度はEA=0.76、「井」の推定確度はEA=0.82と出力する。
【0028】
変換候補文字特定部14は、候補文字列CS「東小都串野区新井」に含まれる文字のうち少なくとも一部の文字を変換候補文字として特定する。例えば、変換候補文字特定部14は、所定の推定確度(例えば、0.80)以下の文字、
図3の例では「串」、「小」及び「新」の3つの文字を変換候補文字として特定してもよい。変換候補文字特定部14は、他の手法を用いて変換候補文字を特定してもよい。
【0029】
変換候補文字特定部14は、一又は複数の変換候補文字のうち、変換判断部16の処理対象となる順番を判定してもよい。
図3に示すように、変換候補文字特定部14は、「新」、「串」及び「小」の3つの変換候補文字のうち、例えば推定確度の低い順、つまり「串」、「小」、「新」の順に変換判断部16の処理対象としてもよい。この構成によれば、推定確度に基づいて、必要に応じて変換処理を実行できるので、任意に変換候補文字を選択する場合に比べて、手書き文字列の認識の精度を向上させることができる。
【0030】
次に、本実施形態における修正処理に含まれる、ステップ(2)「N文字列辞書DB7を用いた出現確度(出現確率)の出力」について具体的に説明する。
図1に示す変換判断部16は、候補文字列CS「東小都串野区新井」から、「串」の配置が異なるように、異なる複数の文字列を切り出す。
図4に示すように、変換判断部16は、例えば、パターンPT1「小都串」、パターンPT3「都串野」、及びパターンPT5「串野区」というように異なる複数のパターンで文字列を切り出す。
【0031】
変換判断部16は、各パターンの文字列のそれぞれにおいて「串」(第1文字)を、「串」の変換候補文字(第2文字)である「中」、「虫」又は「Φ」等に変換した場合の文字列を生成する。
図4に示すように、変換判断部16は、パターンPT1「小都串」に関して、「小都串」に加えて、「小都中」、「小都虫」、及び「小都Φ」…を生成する。ここで、「串」を含む文字列(「小都串」)、及び、変換候補文字である「中」、「虫」又は「Φ」に変換した場合の文字列(「小都中」、「小都虫」、又は「小都Φ」)は、共通の文字数(例えば3文字)で構成される。
【0032】
本実施形態においては「串」の変換候補文字として、所定の推定確度以上の文字である「中」、「虫」及び「Φ」の3つの文字が特定されているが、これに限られない。「串」の変換候補文字は、一つ、二つ、又は四つ以上であってもよい。また、候補文字列CS「東小都串野区新井」において、変換候補文字である「中」、「虫」及び「Φ」ではなく「串」が採用されたのは、上記したとおり、候補文字列CSにおいて、「中」、「虫」又は「Φ」が採用される場合に比べて「串」が採用される場合の推定確度が高かったためである。
【0033】
変換判断部16は、同様に、パターンPT3「都串野」に関して、「都串野」に加えて、「都中野」、「都虫野」、及び「都Φ野」…を生成する。また、変換判断部16は、パターンPT5「串野区」に関して、「串野区」に加えて、「中野区」、「虫野区」、及び「Φ野区」…を生成する。
【0034】
N文字列辞書生成部15は、文書画像に含まれ得る一又は複数の文字列が登録されたコーパス5から切り出された、N個(Nは所定数であり、例えば、3である。)の文字で構成された一又は複数の文字列と、当該文字列の並びの出現確率と、を関連付けたN文字列辞書DB7を取得する。
図4に示すように、N文字列辞書生成部15は、例えば、日本語コーパス5から3文字ずつの複数の文字列を切り出して、3文字の文字列ABCの並びの出現回数を算出する。N文字列辞書生成部15は、例えば、文字列ABCの並びの出現回数を、コーパス5を参照して算出してもよいし、他の外部のデータベース又は辞書を参照して算出してもよい。N文字列辞書生成部15は、算出した出現回数に基づいて、文字列ABCに関して、文字Aと文字Bの後に文字Cが位置する確率、文字Aと文字Cとの間に文字Bが位置する確率、及び、文字Bと文字Cの前に文字Aが位置する確率を算出することによって、文字列ABCの出現確率を算出する。このように、N文字列辞書生成部15は、切り出した一又は複数の文字列と、当該文字列の並びの出現確率と、を関連付けたN文字列辞書DB7を生成(取得)する。N文字列辞書DB7は、情報処理部1の記憶領域に記憶される。なお、N文字列辞書DB7は文字列認識装置100の外部の装置で生成されて、文字列認識装置100のN文字列辞書生成部15により、当該外部の装置から取得されるものでもよい。
【0035】
コーパス5は、例えば、都道府県名、市区町村名、地域名、及び建物名の可能な組み合わせが階層化されて登録されている住所コーパスが含まれる。各都道府県名の下位階層には、当該都道府県に属する市区町村名が含まれる。同様に、各市区町村名の下位階層には、当該市区町村に属する地域名が含まれる。住所コーパスにはさらに、行政上の変更があった都道府県名、市区町村名および地域名について、旧名称と現名称とが対応付けられて登録されてもよい。
【0036】
なお、コーパス5には、住所に特化した住所コーパスの他、氏名、車名、職業、保険期間、車台番号、及び登録番号等に特化した各種コーパスが含まれてもよい。また、コーパス5には、証券等の記載事項に特化したコーパスの他、法律分野や他の分野に特化した各種コーパスを含んでもよい。このようにコーパス5及びN文字列辞書DB7は、文字列認識装置100の認識対象の内容に応じて様々な種類のものを採用可能である。
【0037】
図1に示す変換判断部16は、
図4に示すように、候補文字列CS「東小都串野区新井」から「串」を含むように切り出された文字列(例えば「小都串」、「都串野」及び「串野区」…)の並びの第1出現確率(例えば、「0.30」、「0.25」、及び「0.15」…)と、当該文字列において「串」を「串」とは異なる文字「中」、「虫」又は「Φ」等に変換した場合の文字列(例えば、「小都中」、「小都虫」、「小都Φ」、「都中野」、「都虫野」、「都Φ野」、「中野区」、「虫野区」、及び「Φ野区」…)の並びの第2出現確率(例えば、「0.30」、「0.25」、「0.05」、「0.50」、「0.15」、「0.05」、「0.80」、「0.15」、「0.05」…)と、を算出する。また、変換判断部16は、上記各パターンPT1、PT3及びPT5の文字列に対して算出した出現確度の総和が「1」になるように当該出現確率を算出する。変換判断部16は、例えば、文字列「小都串」、「小都中」、「小都虫」、「小都Φ」…のそれぞれの出現確度の総和が「1」になるように当該出現確度を算出する。
【0038】
次に、本実施形態における修正処理に含まれる、ステップ(3)「変換候補文字の確度の出力」について具体的に説明する。ステップ(3)では、ステップ(1)で出力した推定確度と、ステップ(2)で出力した出現確度とに基づいて、文字ごとの確度を出力(算出)する。そして、本実施形態における修正処理において、ステップ(3)で出力した文字ごとの確度に基づいて、推定した文字(例えば「串」)を変換候補文字(例えば、「中」)に変換するか否かを判断する。
【0039】
より具体的には、変換判断部16は、「串」、「中」、「虫」及び「Φ」…の文字ごとに確度を出力する。
図4に示すように、変換判断部16は、例えば文字「串」に関して、ステップ(1)で出力した推定文字「串」の推定確度「0.55」(第1推定確率)と、ステップ(2)で出力した、「小都串」、「都串野」、及び「串野区」それぞれの出現確度「0.30」、「0.25」及び「0.15」(第1出現確率)と、を用いて「串」の確度「0.385」を出力する。同様に、変換判断部16は、「中」、「虫」及び「Φ」…のそれぞれの推定確度(第2推定確率)と、ステップ(2)で出力したそれぞれの出現確率(第2出現確率)とから、それぞれの確度、つまり、「0.48」、「0.1375」及び「0.0075」を出力する。変換判断部16は、「串」、「中」、「虫」及び「Φ」…の文字ごとに出力した上記確度を比較することによって、例えば、推定文字「串」について、当該「串」の確度よりも確度の高い変換候補文字「中」に変換すると判断する。
【0040】
なお、変換判断部16は、ステップ(2)の結果に基づいて推定文字「串」を変換候補文字に変換するか否か判断してもよい。具体的には、変換判断部16は、第1出現確率と第2出現確率とを比較することによって、例えば推定文字「串」を変換候補文字「中」、「虫」又は「Φ」に変換するか否かを判断する。例えば、変換判断部16は、文字列の並びの第1出現確率(例えば、「小都串」における「0.30」、「都串野」における「0.25」、及び「串野区」における「0.15」)と比較して第2出現確率のうち、「中野区」における「0.80」が最も出現確率が高いため、候補文字列CS「東小都串野区新井」のうち「串」を「中」に変換すると判断する。よって、
図4に示すように、変換部17は、「串」を含む文字列に関連付けられた第1出現確率が、「中」を含む文字列に関連づけられた第2出現確率より低い場合に、「串」を「中」に変換する。つまり、変換部17は、候補文字列CS「東小都串野区新井」を、後述する
図5に示す修正後文字列AS1「東小都中野区新井」に変換する。なお、変換判断部16における比較処理においては、出現確率を比較対象としているが、これに限られない。変換判断部16における比較処理において、出現数等の他の情報を比較対象としてもよい。
【0041】
図5は、一実施形態に係る文字列認識処理における修正処理及び認識処理の一例を示す概念図である。
図5に示すように、変換判断部16は、修正後文字列AS1「東小都中野区新井」において、「串」を除く「新」及び「小」の2つの変換候補文字のうち、「串」の次に推定確度の低い「小」の変換を行うか否かを判断する。
【0042】
変換判断部16は、
図4で説明した「串」を「中」に変換した際の修正処理と同様に、「小」を、変換候補文字である「京」、「木」又は「子」等に変換するか否かを判断する。変換判断部16は、「小」、「京」、「木」又は「子」…に関して、
図4に示す上記ステップ(1)から(3)を実行して、推定文字「小」を変換候補文字「京」、「木」又は「子」…に変換するか否かを判断する。また、変換判断部16は、「串」が「中」に変換された修正後文字列AS1「東小都中野区新井」において「小」(第3文字)を含むように切り出された文字列の並びの第3出現確率と、当該文字列において「小」を「小」とは異なる文字「京」、「木」又は「子」等(第4文字)に変換した場合の文字列の並びの第4出現確率と、に基づいて「小」を「京」、「木」又は「子」等に変換するか否かを判断してもよい。
【0043】
図5の例では、変換部17は、「小」、「京」、「木」又は「子」…に関する上記ステップ(1)から(3)の実行結果に基づいて、修正後文字列AS1「東小都中野区新井」において「小」を「京」に変換する。つまり、変換部17は、修正後文字列AS1「東小都中野区新井」を修正後文字列AS3「東
京都中野区新井」(変換部分に下線付加)に変換する。
【0044】
最後に、変換判断部16は、「新」、「折」、「親」又は「薪」…に関して、
図4に示す上記ステップ(1)から(3)を実行して、推定文字「新」を変換候補文字「折」、「親」又は「薪」…に変換するか否かを判断する。また、変換判断部16は、「小」が「京」に変換された修正後文字列AS3「東京都中野区新井」において「新」を含むように切り出された文字列の並びの出現確率と、当該文字列において「新」を「新」とは異なる文字「折」、「親」又は「薪」等に変換した場合の文字列の並びの出現確率と、に基づいて「新」を「折」、「親」又は「薪」等に変換するか否かを判断してもよい。
図5の例では、変換判断部16は、「新」、「折」、「親」又は「薪」…に関する上記ステップ(1)から(3)の実行結果に基づいて、「新」については、変換候補文字である「折」、「親」又は「薪」等に変換しないと判断した。
【0045】
文字列認識部18は、変換判断部16の判断結果と、候補文字列とに基づいて、文書画像から抽出された、
図3に示す手書き文字列HCS「東京都中野区新井」の画像を認識する。
図3から
図5を参照して説明したように、推定された候補文字列CS「東小都串野区新井」に含まれる一又は複数の文字のそれぞれが、必要に応じて繰り返し変換されることによって、より適切な文字列が生成される。よって、文字列認識部18は、上記のような変換処理が繰り返し実行されることによって、手書き文字列HCS「東京都中野区新井」の画像を、認識文字列RS「東京都中野区新井」として認識する。
【0046】
(文字列認識処理の動作)
図6は、一実施形態に係る文字列認識処理の一例を示すフローチャートである。
図6に示すように、
図1に示す文字列認識装置100は、
図2に示す証券Cから、
図3に示す手書き文字列HCS「東京都中野区新井」の画像を抽出する(ステップS1)。文字列認識装置100は、
図1に示す文字推定モデル3に、抽出された手書き文字列HCSの画像を入力することによって、
図3に示す、手書き文字列HCS「東京都中野区新井」の画像に対して確からしい候補文字列CS「東小都串野区新井」を推定する(ステップS3)。また、文字推定モデル3は候補文字列CS「東小都串野区新井」を推定する際に、手書き文字列HCS「東京都中野区新井」の画像に含まれる各文字の推定文字候補ごとに推定確度を出力する。
【0047】
文字列認識装置100は、候補文字列CS「東小都串野区新井」から一又は複数の文字を変換候補文字として特定する(ステップS5)。文字列認識装置100は、候補文字列CS「東小都串野区新井」から、一の変換候補文字「串」の配置が異なるように、異なる複数の文字列を切り出す。
図4に示すように、文字列認識装置100は、例えば、パターンPT1「小都串」、パターンPT3「都串野」、及びパターンPT5「串野区」というように異なる複数のパターンで文字列を切り出す(ステップS7)。
【0048】
文字列認識装置100は、
図4に示すように、候補文字列CS「東小都串野区新井」から「串」を含むように切り出された文字列(例えば「小都串」、「都串野」及び「串野区」…)の並びの第1出現確率(例えば、「0.30」、「0.25」、及び「0.15」…)と、当該文字列において「串」を「串」とは異なる他の文字「中」、「虫」又は「Φ」等に変換した場合の文字列(例えば、「小都中」、「小都虫」、「小都Φ」、「都中野」、「都虫野」、「都Φ野」、「中野区」、「虫野区」、及び「Φ野区」…)の並びの第2出現確率(例えば、「0.30」、「0.25」、「0.05」、「0.50」、「0.15」、「0.05」、「0.80」、「0.15」、「0.05」…)と、を算出する(ステップS9)。
【0049】
文字列認識装置100は、一の変換候補文字「串」の確度が他の文字「中」、「虫」及び「Φ」…の確度より低いか否かを判断する(ステップS11)。
図4に示すように、文字列認識装置100は、一の変換候補文字「串」の確度「0.385」を出力する。同様に、文字列認識装置100は、「中」、「虫」及び「Φ」…のそれぞれの確度、つまり、「0.48」、「0.1375」及び「0.0075」を出力する。文字列認識装置100は、「串」、「中」、「虫」及び「Φ」…の文字ごとに出力した上記確度を比較する。上記例では、「串」の確度「0.385」は、他の変換候補文字「中」の確度「0.48」よりも低いため(ステップS11においてYes)、ステップS13に進む。他方で、Noの場合は、ステップS15に進む。
【0050】
文字列認識装置100は、一の変換候補文字である「串」を、別の変換候補文字の一つである「中」に変換する。つまり、
図4に示すように、文字列認識装置100は、候補文字列CS「東小都串野区新井」を修正後文字列AS1「東小都
中野区新井」(変換部分に下線付加)に変換する(ステップS13)。
【0051】
文字列認識装置100は、特定された変換候補文字「串」、「小」、及び「新」のすべての変換判断処理が完了した否かを判断する(ステップS15)。すべての変換候補文字の変換判断が完了した場合(Yesの場合)は、ステップS17に進む。Noの場合は、ステップS7に戻り、例えば、「串」の次に推定確度が低い「中」を含む文字列に関する変換判断処理を実行する。「中」を含む文字列に関する変換判断処理が完了したら、「中」の次に推定確度が低い「新」を含む文字列に関する変換判断処理を実行する。
【0052】
文字列認識装置100は、変換判断処理の結果と、候補文字列とに基づいて、文書画像から抽出された、
図3に示す手書き文字列HCS「東京都中野区新井」の画像を認識する(ステップS17)。
【0053】
以上、本発明の一実施形態によれば、文字列認識装置100は、文字推定モデル3に、抽出した手書き文字列の画像を入力することによって候補文字列を推定する。文字列認識装置100は、候補文字列から第1文字を含むように切り出された文字列の並びの第1出現確率と、当該文字列において第1文字を第2文字に変換した場合の文字列の並びの第2出現確率と、に基づいて第1文字を第2文字に変換するか否かを判断する。文字列認識装置100は、この判断結果と候補文字列とに基づいて、手書き文字列の画像に対応する文字列を認識する。よって、手書き文字列の画像から推定された候補文字列を必要に応じて修正した上で、当該手書き文字列を認識する。したがって、文書画像における手書き文字列の認識処理の精度を改善することができる。
【0054】
文字列認識装置100は、手書き文字列から推定された候補文字列を繰り返し修正してもよい。具体的には、文字列認識装置100は、手書き文字列から推定された
図3に示す候補文字列CS「東小都串野区新井」において、複数の変換候補文字(例えば「串」、「中」)のそれぞれを順に修正した上で、当該手書き文字列を認識する。したがって、文書画像における手書き文字列の認識処理の精度をより改善することができる。
【0055】
図7は、本発明の実施形態に係るコンピュータのハードウェア構成の一例を示す図である。
図7を参照して、
図1に示す文字列認識装置100、及び、
図8に示す文字列認識装置100Aを構成するのに用いることができるコンピュータのハードウェア構成の一例について説明する。
【0056】
図7に示すように、コンピュータ40は、ハードウェア資源として、主に、プロセッサ41と、主記録装置42と、補助記録装置43と、入出力インターフェース44と、通信インターフェース45とを備えており、これらはアドレスバス、データバス、コントロールバス等を含むバスライン46を介して相互に接続されている。なお、バスライン46と各ハードウェア資源との間には適宜インターフェース回路(図示せず)が介在している場合もある。
【0057】
プロセッサ41は、コンピュータ全体の制御を行う。プロセッサ41は、例えば、
図1及び
図8に示す情報処理部1に相当する。主記録装置42は、プロセッサ41に対して作業領域を提供し、SRAM(
Static
Random
Access
Memory)やDRAM(
Dynamic
Random
Access
Memory)等の揮発性メモリである。補助記録装置43は、ソフトウェアであるプログラム等やデータ等を格納する、HDDやSSD、フラッシュメモリ等の不揮発性メモリである。当該プログラムやデータ等は、任意の時点で補助記録装置43からバスライン46を介して主記録装置42へとロードされる。補助記録装置43は、例えば、
図1及び
図8に示すコーパス5、及び、N文字辞書DB7に相当する。
【0058】
入出力インターフェース44は、情報を提示すること及び情報の入力を受けることの一方又は双方を行うものであり、カメラ、キーボード、マウス、ディスプレイ、タッチパネル・ディスプレイ、マイク、スピーカ、温度センサ等である。通信インターフェース45は、
図8に示す通信ネットワークNと接続されるものであり、通信ネットワークNを介してデータを送受する。通信インターフェース45と通信ネットワークNとは、有線又は無線で接続されうる。通信インターフェース45は、ネットワークに係る情報、例えば、Wi-Fiのアクセスポイントに係る情報、通信キャリアの基地局に関する情報等も取得することがある。
【0059】
上に例示したハードウェア資源とソフトウェアとの協働により、コンピュータ40は、所望の手段として機能し、所望のステップを実行し、所望の機能を実現させることできることは、当業者には明らかである。
【0060】
なお、上記各実施形態は、本発明の理解を容易にするためのものであり、本発明を限定して解釈するものではない。本発明はその趣旨を逸脱することなく、変更/改良され得るとともに、本発明にはその等価物も含まれる。また、本発明は、上記各実施形態に開示されている複数の構成要素の適宜な組み合わせにより種々の開示を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素は削除してもよい。さらに、異なる実施形態に構成要素を適宜組み合わせてもよい。
【0061】
図8は、
図1に示す文字列認識装置100が備える文字推定モデル3が分離されて構成された文字列認識装置100Aの一例を示す図である。文字列認識装置100Aは、文字推定モデル3からの出力データに基づいて候補文字列を推定する。文字列認識装置100Aと文字推定モデル3とが通信ネットワークNを介してデータの送受信が可能なように構成される。この態様によれば、
図1に示す文字列認識装置100を、文字列認識装置100A及び文字推定モデル3という別個の装置として構成可能である。
【0062】
図1に示す文書画像取得部11は、
図2に示す証券Cをカメラ等の撮像装置を含む外部装置(不図示)で撮像することによって生成される画像データを、所定の通信ネットワークを介して取得してもよい。通信ネットワークは、例えばインターネット等を含む情報処理に係る通信回線又は通信網であり、その具体的な構成は、文字列認識装置100と外部装置との間でデータの送受信が可能なように構成されていれば特に制限されない。
【0063】
上記各実施形態における文字列認識装置は、等幅の文字の文字列の認識処理に好適である。例えば国語テスト等におけるマス目に記入された文字の認識処理に適用することが好ましい。上記各実施形態における文字列認識装置においては、日本語の手書き文字列に関する認識処理を実行するが、日本語以外の英文字、ハングル文字、又はアラビア文字等の他の言語の手書き文字に関する認識処理を実行してもよい。さらに、文字列認識装置100は、「一」(漢字のイチ)又は「‐」(ハイフン)等の形状の似た文字を適切に区別する必要がある場合にも好ましい。この場合は、手書き文字列に限らず、活字文字列であっても両者を区別して認識することが可能である。
【符号の説明】
【0064】
1…情報処理部、3…文字推定モデル、5…コーパス、7…N文字列辞書DB(データベース)、11…文書画像取得部、12…文字列抽出部、13…候補文字列推定部、14…変換候補文字特定部、15…N文字列辞書生成部、16…変換判断部、17…変換部、18…文字列認識部、41…プロセッサ、42…主記録装置、43…補助記録装置、44…入出力インターフェース、45…通信インターフェース、46…バスライン、100,100A…文字列認識装置