(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-05-21
(45)【発行日】2024-05-29
(54)【発明の名称】情報処理装置、入力データ誤り推定方法及びプログラム
(51)【国際特許分類】
G06V 30/12 20220101AFI20240522BHJP
G06V 30/148 20220101ALI20240522BHJP
【FI】
G06V30/12 C
G06V30/148
(21)【出願番号】P 2020136792
(22)【出願日】2020-08-13
【審査請求日】2023-03-17
(73)【特許権者】
【識別番号】000136136
【氏名又は名称】株式会社PFU
(74)【代理人】
【識別番号】100145838
【氏名又は名称】畑添 隆人
(74)【代理人】
【識別番号】100103137
【氏名又は名称】稲葉 滋
(74)【代理人】
【識別番号】100216367
【氏名又は名称】水谷 梨絵
(72)【発明者】
【氏名】深沢 克夫
(72)【発明者】
【氏名】▲鬘▼谷 俊介
【審査官】新井 則和
(56)【参考文献】
【文献】特開2002-366899(JP,A)
【文献】特開昭62-145485(JP,A)
【文献】特開平03-191491(JP,A)
【文献】特開2001-285716(JP,A)
【文献】特開平05-128299(JP,A)
【文献】特開平09-274645(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06V 30/12
G06V 30/148
(57)【特許請求の範囲】
【請求項1】
文書に記載された1以上の文字からなる文字列に係る画像である文字列画像を取得する文字列画像取得手段と、
前記文書に記載された文字列に係る文字列テキストデータを取得する入力データ取得手段と、
前記文字列画像から切り出された文字領域を、複数パターン生成する文字領域生成手段と、
複数パターンの前記文字領域の夫々と前記文字列テキストデータ中の文字との間の編集コストを、前記文字領域に係る文字認識候補を用いて算出する、編集コスト算出手段と、
算出された前記編集コストに基づいて、前記文字列テキストデータ中の各文字に対応するパターンの前記文字領域を決定し、該文字列テキストデータ中の各文字と前記文字領域とを対応付ける対応付け手段と、
前記対応付け手段による対応付け結果に基づき、前記文字列テキストデータの誤りを推定する誤り推定手段と、
を備える情報処理装置。
【請求項2】
前記文字列画像から複数の文字候補領域を抽出する文字候補領域抽出手段を更に備え、
前記文字領域生成手段は、1又は隣接する複数の前記文字候補領域からなる文字領域を複数パターン生成する、
請求項1に記載の情報処理装置。
【請求項3】
前記編集コスト算出手段は、前記編集コストに基づいて、前記文字列テキストデータと前記文字候補領域の並びである文字候補領域列との編集コストである総編集コストを算出し、
前記対応付け手段は、前記編集コストに基づき算出された前記総編集コストが最小となるような、前記文字列テキストデータ中の各文字に対応するパターンの前記文字領域を決定し、該文字列テキストデータ中の各文字と前記文字領域とを対応付ける、
請求項2に記載の情報処理装置。
【請求項4】
前記編集コスト算出手段は、動的計画法に基づき、前記総編集コストを算出する、
請求項3に記載の情報処理装置。
【請求項5】
前記文字領域生成手段は、前記文字領域の幅高さ比が所定の値以下になる範囲内で、隣接する複数の前記文字候補領域を結合することで、前記複数の文字候補領域からなる文字領域を生成する、
請求項2から4の何れか一項に記載の情報処理装置。
【請求項6】
前記幅高さ比は、前記文字候補領域の並びである文字候補領域列全体の高さを用いて算出される、
請求項5に記載の情報処理装置。
【請求項7】
前記編集コスト算出手段は、前記文字列テキストデータ中の文字が、前記文字領域に係る文字認識候補の何れかと一致する場合、該文字領域と該文字列テキストデータ中の文字との間の前記編集コストが小さくなるよう、該編集コストを算出する、
請求項1から6の何れか一項に記載の情報処理装置。
【請求項8】
前記編集コスト算出手段は、前記文字列テキストデータの文字が一致する前記文字領域の文字認識候補の優先度が高いほど、該文字領域と該文字列テキストデータ中の文字との間の前記編集コストが小さくなるよう、該編集コストを算出する、
請求項7に記載の情報処理装置。
【請求項9】
前記編集コスト算出手段は、前記文字領域と前記文字列テキストデータ中の文字との間の前記編集コストを、該文字領域の幅高さ比の最小値を1とした上で、該文字領域の二乗を用いて算出する、
請求項1から8の何れか一項に記載の情報処理装置。
【請求項10】
前記文字列テキストデータは、前記文書に記載された文字列についての認識結果、又は、ユーザにより前記文書を参照することで入力された、該文書に記載された文字列に係るテキストデータである、
請求項1から9の何れか一項に記載の情報処理装置。
【請求項11】
前記文字候補領域抽出手段は、前記文字列画像について文字の切れ目となる箇所を検出することで、前記文字候補領域を抽出する、
請求項2から
6の何れか一項に記載の情報処理装置。
【請求項12】
前記文字候補領域抽出手段は、前記文字列画像について、ラベリングによる孤立領域の抽出、黒画素のX軸分布の算出、X軸の線密度分布の算出、または、これら2以上の組み合わせに基づき、前記文字の切れ目となる箇所を検出する、
請求項11に記載の情報処理装置。
【請求項13】
前記文字候補領域抽出手段は、抽出された前記文字候補領域の数が、前記文字列テキストデータの文字数未満である場合、幅高さ比が所定の値以上である横長の文字候補領域について、更に文字候補領域の切り出しを行う、
請求項2から
6、11及び12の何れか一項に記載の情報処理装置。
【請求項14】
前記文字候補領域抽出手段は、抽出された前記文字候補領域の数が、前記文字列テキストデータの文字数未満である場合、抽出された複数の該文字候補領域のうち、幅高さ比が最も大きい該文字候補領域を選択し、選択された該文字候補領域について、更に文字候補領域の切り出しを行う処理を、該文字候補領域の数が、前記文字列テキストデータの文字数になるまで繰り返し実行する、
請求項2から
6、11及び12の何れか一項に記載の情報処理装置。
【請求項15】
前記誤り推定手段は、前記対応付け手段による対応付け結果において、前記文字列テキストデータ中の文字と、該文字と対応する前記文字領域に係る文字認識候補とが不一致であること、該文字列テキストデータに、該文字領域に対応付かない文字があること、または、該文字列テキストデータに対応付かない前記文字領域があることを検出することにより、該文字列テキストデータの誤りを推定する、
請求項1から14の何れか一項に記載の情報処理装置。
【請求項16】
前記誤り推定手段は、任意に設定された候補順位までの文字認識候補について、前記文字列テキストデータ中の文字と、該文字と対応する前記文字領域に係る文字認識候補とが不一致であることを検出する、
請求項15に記載の情報処理装置。
【請求項17】
前記文字列テキストデータの誤りが推定されたことの表示を行う表示手段を更に備える、
請求項1から16の何れか一項に記載の情報処理装置。
【請求項18】
前記文字列テキストデータにおいて、誤りが推定された箇所を修正する修正手段を更に備える、
請求項1に記載の情報処理装置。
【請求項19】
コンピュータが、
文書に記載された1以上の文字からなる文字列に係る画像である文字列画像を取得する文字列画像取得ステップと、
前記文書に記載された文字列に係る文字列テキストデータを取得する入力データ取得ステップと、
前記文字列画像から切り出された文字領域を、複数パターン生成する文字領域生成ステップと、
複数パターンの前記文字領域の夫々と前記文字列テキストデータ中の文字との間の編集コストを、前記文字領域に係る文字認識候補を用いて算出する、編集コスト算出ステップと、
算出された前記編集コストに基づいて、前記文字列テキストデータ中の各文字に対応するパターンの前記文字領域を決定し、該文字列テキストデータ中の各文字と前記文字領域とを対応付ける対応付けステップと、
前記対応付け手段による対応付け結果に基づき、前記文字列テキストデータの誤りを推定する誤り推定ステップと、
を実行する方法。
【請求項20】
コンピュータを、
文書に記載された1以上の文字からなる文字列に係る画像である文字列画像を取得する文字列画像取得手段と、
前記文書に記載された文字列に係る文字列テキストデータを取得する入力データ取得手段と、
前記文字列画像から切り出された文字領域を、複数パターン生成する文字領域生成手段と、
複数パターンの前記文字領域の夫々と前記文字列テキストデータ中の文字との間の編集コストを、前記文字領域に係る文字認識候補を用いて算出する、編集コスト算出手段と、
算出された前記編集コストに基づいて、前記文字列テキストデータ中の各文字に対応するパターンの前記文字領域を決定し、該文字列テキストデータ中の各文字と前記文字領域とを対応付ける対応付け手段と、
前記対応付け手段による対応付け結果に基づき、前記文字列テキストデータの誤りを推定する誤り推定手段と、
として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、入力データの誤りを推定するための技術に関する。
【背景技術】
【0002】
従来、画像入力部により文字情報を光学的に読取り、その文字情報をキー入力部からキー入力し、画像入力部により読取られ文字認識部で文字認識されたデータとキー入力されたデータとを文字照合部で比較し、比較結果が一致を示したとき、そのデータを正しいデータとして出力し、不一致を示したときには、そのデータの修正が必要である旨を表示部で告知し、この告知後にキー入力されたデータを正しいデータとして出力する技術が提案されている(特許文献1を参照)。
【0003】
また、文字の切り出し位置が文字列全体で最適な場合に最小となるような関数を多入力一出力の演算子をネットワーク上に結合させた濃度平滑化ネットワーク部と切出位置推定ネットワーク部による並列演算によって最小化し、切り出し誤りと思われる部分の各前記演算子毎の処理パラメータをパラメータ変更部で、初期の出力値を初期値設定部で決めてやることでよりロバストで高速な処理を達成する技術が提案されている(特許文献2を参照)。
【0004】
また、金融カードのデジタル画像に光学式文字認識アルゴリズムを適用して、前記カードに関連するユーザの抽出された名前を取得し、抽出されたユーザ名に関連する可能性が高い記憶されたユーザデータからの名前を特定し、抽出された名前を一連のセグメントに分割し、特定された名前を一連のセグメントに分割し、抽出された名前の一連のセグメントを特定された名前の一連のセグメントと比較し、抽出された名前のセグメントから特定された名前の一連のセグメントまでの編集距離を計算し、編集距離が構成された閾値未満であると判定し、特定された名前に基づいて抽出された名前の1つまたは複数のセグメントを訂正する方法が提案されている(特許文献3を参照)。
【0005】
また、フィールドデータ表示部と、データ入力部と、ディスプレイ装置とを有し、フィールドデータ表示部は、検証の対象となるデータをディスプレイ装置の所定の表示フィールドと該表示フィールドに対応する入力フィールドに表示してカーソルを該入力フィールドの検証の開始位置に設定し、データ入力部は、実行キーが押下されると検証の対象となるデータを入力フィールドに表示して実行キー押下毎に該入力フィールドに表示中のデータの一桁ずつをカーソル移行させて読込み、打鍵によるデータ入力の場合は該打鍵入力されるデータを読込み、読込んだ該データを検証の対象となるデータと比較照合することを特徴とするエントリデータの検証処理方式が提案されている(特許文献4を参照)。
【0006】
また、入力文字列パターンから1文字毎の文字パターンを切り出す文字切り出し手段と、切り出された個々の文字パターンを予め用意した標準文字パターンと比較して候補文字を選択する文字認識手段と、上記候補文字を組合せて文字列を生成する文字列生成手段と、上記文字列について予め単語辞書中に用意した単語と文字位置のずれおよび一部の文字の不一致を許容して照合を行い、候補単語を選択する単語検索手段と、上記候補単語と上記文字列の比較を行い、一致が得られた場合は当該単語を最終的な候補単語と決定し、一致が得られない場合は、該不一致部より誤って文字切り出しが行われた部分を推定して、上記文字切り出し手段に対して上記入力文字列パターンの再切り出しを指示する単語比較手段と、を備えた単語読み取り方式が提案されている(特許文献5を参照)。
【先行技術文献】
【特許文献】
【0007】
【文献】特開平06-274679号公報
【文献】特開平06-176197号公報
【文献】特表2018-523188号公報
【文献】特公平08-10420号公報
【文献】特公平08-023875号公報
【発明の概要】
【発明が解決しようとする課題】
【0008】
従来、帳票等の紙文書に記載されている内容をシステム等に入力するデータエントリー業務では、紙文書のイメージデータを確認しながらの手作業によるデータ入力(イメージデータエントリー)や、OCR(Optical Character Recognition)を使用したデータ入力、または両者(手作業による入力およびOCR入力補助)を併用することによるデータ入力が行われている。しかし、データ入力の際に、誤入力や文字の抜け、文字の二重入力等が発生することにより、入力データに誤りが生じる場合がある。
【0009】
従来、このような入力データの誤りを検出するため、複数人による入力確認作業や、複数のOCRを用いた入力確認作業、入力内容を所定の条件と比較することによる確認作業等が行われているが、これらの方法では、コスト面の問題や、誤りを検出できる内容(項目)の制約等から、誤り検出を効率良く行うことが困難であった。
【0010】
本開示は、上記した問題に鑑み、入力データの誤りを効率良く推定することを課題とする。
【課題を解決するための手段】
【0011】
本開示の一例は、文書に記載された1以上の文字からなる文字列に係る画像である文字列画像を取得する文字列画像取得手段と、前記文書に記載された文字列に係る文字列テキストデータを取得する入力データ取得手段と、前記文字列画像から切り出された文字領域を、複数パターン生成する文字領域生成手段と、複数パターンの前記文字領域の夫々と前記文字列テキストデータ中の文字との間の編集コストを、前記文字領域に係る文字認識候補を用いて算出する編集コスト算出手段と、算出された前記編集コストに基づいて、前記文字列テキストデータ中の各文字に対応するパターンの前記文字領域を決定し、該文字列テキストデータ中の各文字と前記文字領域とを対応付ける対応付け手段と、前記対応付け手段による対応付け結果に基づき、前記文字列テキストデータの誤りを推定する誤り推定手段と、を備える情報処理装置である。
【0012】
本開示は、情報処理装置、システム、コンピュータによって実行される方法又はコンピュータに実行させるプログラムとして把握することが可能である。また、本開示は、そのようなプログラムをコンピュータその他の装置、機械等が読み取り可能な記録媒体に記録したものとしても把握できる。ここで、コンピュータ等が読み取り可能な記録媒体とは、データやプログラム等の情報を電気的、磁気的、光学的、機械的又は化学的作用によって蓄積し、コンピュータ等から読み取ることができる記録媒体をいう。
【発明の効果】
【0013】
本開示によれば、入力データの誤りを効率良く推定することが可能となる。
【図面の簡単な説明】
【0014】
【
図1】実施形態に係るシステムの構成を示す概略図である。
【
図2】実施形態に係る情報処理装置の機能構成の概略を示す図である。
【
図3】実施形態に係る文字候補領域の例を示す図である。
【
図4】実施形態に係るDPを用いた編集コストの算出例を示す図である。
【
図5】実施形態に係る文字領域の例を示す図である。
【
図6】実施形態に係る編集コストの算出例を示す図である。
【
図7】実施形態に係る入力データと文字候補領域(文字領域)とのDPマトリクスの例を示す図である。
【
図8】実施形態に係る入力データの確認修正画面の一例を示す図である。
【
図9】実施形態に係る入力データ誤り推定処理の流れの概要を示すフローチャートである。
【発明を実施するための形態】
【0015】
以下、本開示に係る情報処理装置、方法及びプログラムの実施の形態を、図面に基づいて説明する。但し、以下に説明する実施の形態は、実施形態を例示するものであって、本開示に係る情報処理装置、方法及びプログラムを以下に説明する具体的構成に限定するものではない。実施にあたっては、実施の態様に応じた具体的構成が適宜採用され、また、種々の改良や変形が行われてよい。
【0016】
本実施形態では、本開示に係る情報処理装置、方法及びプログラムを、帳票や伝票等の紙文書に係る、手入力またはOCR入力補助による入力データ(エントリーデータ)を取得し、当該入力データの誤りを推定するシステムにおいて実施した場合の実施の形態について説明する。但し、本開示に係る情報処理装置、方法及びプログラムは、入力データの誤りを推定するための技術について広く用いることが可能であり、本開示の適用対象は、実施形態において示した例に限定されない。
【0017】
<システムの構成>
図1は、本実施形態に係るシステムの構成を示す概略図である。本実施形態に係るシステムは、ネットワークに接続されることで互いに通信可能な情報処理装置1及び文書読取装置9を備える。
【0018】
情報処理装置1は、CPU(Central Processing Unit)11、ROM(Read Only Memory)12、RAM(Random Access Memory)13、EEPROM(Electrically Erasable and Programmable Read Only Memory)やHDD(Hard Disk Drive)等の記憶装置14、NIC(Network Interface Card)15等の通信ユニット、キーボードやタッチパネル等の入力デバイス16及びディスプレイ等の出力デバイス17、等を備えるコンピュータである。但し、情報処理装置1の具体的なハードウェア構成に関しては、実施の態様に応じて適宜省略や置換、追加が可能である。また、情報処理装置1は、単一の筐体からなる装置に限定されない。情報処理装置1は、所謂クラウドや分散コンピューティングの技術等を用いた、複数の装置によって実現されてよい。情報処理装置1は、クラウドサーバー等であってもよい。
【0019】
文書読取装置9は、文書を読み取り、文書のイメージ(文書画像)を取得する装置であり、文字認識(OCR)機能を有するスキャナや複合機に例示される。なお、文書読取装置9は、文書イメージを取得可能であれば、これらに限定されるものではなく、OCR機能を有さないスキャナや複合機であってもよく、また、デジタルカメラやスマートフォン等の撮像装置であってもよい。文書読取装置9は、帳票等の紙文書を読み取り、読み取り結果である文書画像(文書イメージ)を、通信ユニット(図示省略)を介して情報処理装置1に送信する。なお、文書読取装置9は、
図1に示されるように情報処理装置1と無線接続されるものに限らず、情報処理装置1と有線接続されてもよい。また、文書画像は、記録媒体を介して情報処理装置1に受け渡しされてもよい。
【0020】
なお、本実施形態に係る情報処理装置1は、文書読取装置9から文書画像を取得するが、これに限定されるものではなく、自装置内の記憶装置14に予め記憶された文書画像を取得するようにしてもよい。また、情報処理装置1は、ネットワークを介して、他の情報処理装置から文書画像を取得するようにしてもよい。これらの場合、本開示に係るシステムは、文書読取装置9を備えなくてもよい。
【0021】
図2は、本実施形態に係る情報処理装置1の機能構成の概略を示す図である。情報処理装置1は、記憶装置14に記録されているプログラムが、RAM13に読み出され、CPU11によって実行されて、情報処理装置1に備えられた各ハードウェアが制御されることで、画像取得部21、文字認識部22、入力データ取得部23、文字候補領域抽出部24、文字領域生成部25、編集コスト算出部26、対応付け部27、誤り推定部28、表示部29及び修正部30を備える情報処理装置として機能する。
【0022】
なお、本実施形態及び後述する他の実施形態では、情報処理装置1の備える各機能は、汎用プロセッサであるCPU11によって実行されるが、これらの機能の一部又は全部は、1又は複数の専用プロセッサによって実行されてもよい。また、本実施形態では、記憶装置14に記録されたOCRアプリケーションがCPU11によって実行されることで、文字認識機能(文字認識部22)が実行されるが、他の機能に係るプログラムと同一のプログラムにより文字認識機能が実行されてもよい。
【0023】
本実施形態に係る情報処理装置1は、帳票等の紙文書に記載された1以上の文字からなる文字列に係る文字列テキストデータ(以下、「入力データ」と称する)を取得する。また、情報処理装置1は、文字列画像において文字の切れ目を検出することで、文字の切り出し候補となる文字候補領域(文字矩形)を複数抽出し、当該文字候補領域からなる文字領域を、複数パターン生成する。そして、情報処理装置1は、複数パターンの文字領域の夫々と入力データ中の文字との間の編集コストを、当該文字領域に係る文字認識候補(1文字認識結果)を用いて算出する。情報処理装置1は、当該編集コストに基づき、入力データ中の各文字に対応するパターンの文字領域を決定し、これらを対応付けた結果に基づき、入力データ中の誤り(誤り箇所)を推定する。
【0024】
画像取得部21は、文字読取装置9から、帳票等の文字が記載された文書(紙文書等)がイメージ化された文書イメージ(文書画像)を取得する。また、画像取得部21は、取得した文書画像において、文字列が記載された領域を特定し、当該領域に係る画像である文字列画像(フィールドイメージ)を抽出(取得)する。文書画像において文字部分を特定する方法には、ラベリングにより孤立領域を抽出する方法や黒画素の線密度分布の変化点を用いる方法等の、種々の既知の方法を用いることが可能である。なお、本実施形態では、情報処理装置1は、文字読取装置9から文書画像を取得するが、これに限定されるものではなく、文字読取装置9または他の情報処理装置から、文書画像から抽出された、各文字列についての文字列画像を取得するようにしてもよい。
【0025】
文字認識部22は、文書画像に対して文字認識(OCR)処理を行うことで、文書に印字または手書きされた各文字を文字認識した結果である文書データを取得する。文書の認識結果である文書データは、文書に記載された各文字についての文字認識結果を含むものであれば、認識対象である当該文書と同様のフォーマットにより構成されるか否かは問わない。また、文書データは、コンピュータで編集可能な文字データ(電子データ)であり、WordファイルやExcelファイル等に例示される。なお、文字認識処理は、AI(Artificial Intelligence)を用いた文字認識処理であってもよい。また、文字認識部22は、文字列画像(行イメージ等)を認識することで、各文字列についての文字列認識結果を取得するようにしてもよい。
【0026】
また、文字認識部22は、後述する文字候補領域に基づく文字領域に対して文字認識(OCR)を行うことで、各文字領域について、文字認識時の認識候補である文字認識候補を取得する。ここで、文字候補領域は、文字列画像について文字の切れ目となる箇所を検出することで抽出された領域(イメージ)であり、文字領域は、1又は隣接する複数の文字候補領域からなる領域(イメージ)である。文字認識部22は、各文字領域について、任意に設定された候補位置(候補順位)までの文字認識候補(例えば、候補順位第1位から第10位までの文字認識候補)を取得する。
【0027】
入力データ取得部23は、帳票等の文書に記載された文字列に係るエントリーデータである文字列テキストデータ(入力データ)を取得する。なお、文字列テキストデータは、文字コード等で構成される電子化されたテキストデータである。本実施形態では、文書に記載された文字列についてのOCRによる認識結果が、システムに入力されるOCRエントリーデータ(入力データ)として取得される。例えば、入力データ取得部23は、文字認識部22により取得された文書データから、対象となる文字列についての認識結果を抽出し、抽出された文字列認識結果を、入力データとして取得する。
【0028】
入力データ取得部23は、例えば、帳票が有する入力項目に係る入力データ(文字列認識結果)を取得する場合、文字認識部22により取得された文書データ(帳票データ)内の入力項目に対応する入力領域を指定することで、入力項目毎の文字列認識結果を取得(抽出)する。具体的には、帳票データが、項目名や入力項目毎に割り振られた項目コードと認識結果とが対応づく形で構成されている場合、入力データ取得部23は、帳票の入力項目名や入力項目毎に割り振られた項目コード等に基づき帳票データ内を検索することで、入力項目に対応する入力内容についての文字列認識結果を抽出する。入力項目(記載項目)は、帳票に入力(記載)される項目であり、「住所」、「名前」、「コメント欄」等の項目に例示される。
【0029】
入力データ取得部23は、例えば、帳票データから、入力項目「住所」に対応する入力内容の文字列認識結果(文字列テキストデータ)として「君群馬県太田市高林北町26」を抽出する。このように、入力データ取得部23は、文字認識部22から文書データを取得し、取得した文書データから、文書に記載された文字列についての文字列認識結果を取得することが可能である。
【0030】
なお、入力データ取得部23は、文字認識部22から、対象となる文字列についての文字列認識結果を取得するようにしてもよい。また、本実施形態では、文書画像(文字列画像)に対して文字認識処理が行われることで、文書の内容を電子化する方法を例示しており、そのため、エントリーデータである入力データは、文書に記載された文字列についての認識結果としたが、これに限定されるものではない。例えば、ユーザが、帳票等の紙文書や文書画像(文字列画像)を参照(確認)しながら文書の内容を手入力する(イメージデータエントリー)ことで、文書の内容を電子化するようにしてもよい。この場合、エントリーデータである入力データは、ユーザにより入力された、文書に記載された文字列に係るテキストデータとなる。この場合、入力データ取得部23は、手入力されたテキストデータの入力を受け付け、入力データとして取得する。なお、ユーザにより手入力されたデータを入力データとする場合は、文字認識部22は、文書画像(または文字列画像)に対して文字認識処理を行うことによる文書データの生成を行わなくてもよい。
【0031】
文字候補領域抽出部24は、文字列画像について文字の切れ目となる箇所を検出することで、文字列画像から複数の文字候補領域を抽出し(切り出し)、記憶装置14に記憶する。文字候補領域は、文字列画像から、文字列を構成する各文字に係る領域(イメージ)を切り出すための候補領域である。本実施形態では、文字候補領域は、文字に係る部分(黒画素)を囲む矩形領域であるが、他の形を有する領域であってもよい。本実施形態では、文字候補領域抽出部24は、文字列画像に対して、2値化処理(白、黒の2諧調に変換する処理)を行い、2値化処理が行われた文字列画像に対して、例えば、(1)ラベリングによる孤立領域の抽出、(2)黒画素のX軸分布の算出、(3)X軸の線密度分布(線密度の変化点)の算出、または、これら2以上の組み合わせによる処理を行うことで、文字の切れ目となる箇所を検出する。
【0032】
ここで、ラベリングとは、2値化処理が行われた画像(2値画像)において、画素の連結成分(連結領域)毎に一意の番号(ラベル)を付与する処理であり、ラベリングにより、文字部分に相当する孤立領域を抽出することが可能となる。また、黒画素のX軸(横軸)分布とは、縦方向(Y軸方向)に2値画像を走査したときに、黒画素がどの程度存在するかを示す分布であり、黒画素の数が所定値以下になる箇所等を文字の切れ目として検出することが可能である。また、X軸(横軸)の線密度とは、縦方向(Y軸方向)に2値画像を走査したときに、走査方向に対して垂直方向(X軸方向)に横切る線分がどの程度存在するかを表わす値であり、X軸の線密度が大きく変化する箇所(変化点)等を、文字の切れ目として検出することが可能である。文字候補領域抽出部24は、例えば、(1)から(3)の方法のいずれか又はこれらの組み合わせに基づき、文字列画像において文字の切れ目を検出する。なお、文字の切れ目を検出する方法はこれらに限定されず、他の既知の方法を用いるようにしてもよい。
【0033】
なお、後述するが、複数の文字候補領域を組み合わせることで、文字候補領域に基づく文字領域を複数パターン生成し、入力データの各文字に対応する文字領域(1文字)を探すため、文字候補領域を切り出す際、文字列の1文字ずつを正確に切り出す必要はない。文字(文字領域)の切り出し位置の誤りを少なくし、入力データの各文字と文字領域とを適切に対応付けるために、文字の切れ目である可能性がある箇所を出来るだけ多めに検出し、抽出される文字候補領域を増やすことが望ましい。
【0034】
例えば、抽出された文字候補領域の数が、入力データの文字数未満である場合、入力データ中の文字が文字領域(文字候補領域)と対応付かない等、入力データの文字と文字候補領域とが適切に対応付かない場合がある。そのため、入力データと文字領域とを適切に対応付けるため、文字候補領域抽出部24は、文字候補領域の数が、入力データの文字数未満である場合、矩形の幅高さ比(高さに対する幅の比率)が所定の値(R1)以上である横長の文字候補領域について、更に文字候補領域の切り出しを行うようにしてもよい。文字候補領域抽出部24は、例えば、矩形の幅高さ比が所定の値(R1)以上である横長の文字候補領域を、複数の領域(例えば、2つの領域)に分割する。
【0035】
また、文字候補領域抽出部24は、抽出された文字候補領域の数が、入力データの文字数未満である場合、抽出された複数の文字候補領域のうち、幅高さ比が最も大きい文字候補領域を選択し、選択された文字候補領域について、更に文字候補領域の切り出しを行う処理を、文字候補領域の数が、入力データの文字数になるまで繰り返し実行するようにしてもよい。例えば、矩形の幅高さ比が最も大きい(最も横長の)文字候補領域を選択し、当該文字候補領域を複数の領域(例えば、2つの領域)に分割する。
【0036】
図3は、本実施形態に係る文字候補領域の例を示す図である。
図3に示された例では、「群馬県太田市高林北町236」が記載された文字列画像31から、矩形で示された複数の文字候補領域32(文字候補領域32-1~32-23)が抽出されている。なお、
図3に示された例では、上述した(1)から(3)の全ての方法を用いることで、文字候補領域が抽出されている。
【0037】
文字領域生成部25は、文字列画像から、文字列中の各文字として参照される領域(1文字に係る領域)である文字領域を、複数パターン生成し(切り出し)、記憶装置14に記憶する。文字領域生成部25は、1又は隣接する複数の文字候補領域に基づき、文字領域を複数パターン生成する。具体的には、文字領域生成部25は、文字候補領域単体、又は隣接する複数の文字候補領域を結合した領域を、文字領域として生成する。例えば、文字領域は、
図3における、文字候補領域32-1単体や、文字候補領域32-1及び32-2から構成される領域(結合領域)等に例示される。
【0038】
なお、極端に横長の文字領域は、1文字のみを含む領域である可能性が低い(複数の文字を含む可能性が高い)ため、文字候補領域生成部25は、結合した際の文字領域の幅高さ比が所定の値(R2)以下になる範囲内で、隣接する複数の文字候補領域を結合するようにしてもよい。つまり、文字領域の幅高さ比がR2を超えない範囲で複数の文字候補領域を結合する。なお、所定の値(R2)は、前述した、文字候補領域の切り出しを更に行う際に用いられる所定の値(R1)と同一の値であっても、異なる値であっても良い。文字領域の生成方法については、詳細を後述する。
【0039】
編集コスト算出部26は、入力データ中の文字と、文字領域生成部25により生成された複数パターンの文字領域の夫々との間の編集コストを、文字領域に係る文字認識候補を用いて算出する。また、編集コスト算出部26は、入力データ中の文字と複数パターンの文字領域夫々との間の編集コストに基づき、入力データと文字候補領域の並びである文字候補領域列との編集コストである総編集コストを算出する。本実施形態では、編集コスト算出部26は、動的計画法(Dynamic Programming、以下DP)に基づき総編集コストを算出することで、入力データと文字候補領域列との総編集コストの最小値(最小コスト)を算出することが可能である。
【0040】
図4は、本実施形態に係るDPを用いた編集コストの算出例を示す図である。本実施形態では、DPマトリクスにおいて、X軸に各文字候補領域を、Y軸に入力データの各文字を配置することで、文字候補領域からなる文字領域と入力データ中の文字との編集コストを算出する。以下、
図4に示されたDPマトリクスを用いて、ノード(x,y)における編集コストであるC(x,y)の算出例を示す。
【0041】
図4に示されるように、ノード(x,y)に到達するパス(DPパス)には、水平パスa、垂直パスb、及び複数の斜めパスcの、複数のパスが存在する。水平パスaは、文字候補領域が入力データの文字と対応付かず、文字候補領域を1つスキップするパスである。垂直パスbは、入力データ中の文字が文字候補領域と対応付かず、入力データの1文字をスキップするパスである。斜めパスcは、入力データ中の文字と文字領域(文字候補領域)が対応付くパスである。
【0042】
ノード(x,y)は、1~x番目の文字候補領域からなる文字候補領域列と、入力データ中の1~y番目の文字からなるテキストデータとを対応付けるノードである。ノード(x,y)における編集コストC(x,y)は、1~x番目の文字候補領域からなる文字候補領域列と、入力データ中の1~y番目の文字からなるテキストデータの編集コストであり、以下の式を用いて算出される。なお、水平パスに係る編集コストをC_HOR、垂直パスに係る編集コストをC_VER、結合する文字候補領域の数(最大値)をnとする。
【0043】
C(x,y)=min(C(x-1,y)+C_HOR,
C(x,y-1)+C_VER,
where i=1 to n:
C(x-i,y-1)
+cost(C(x,y),C(x-i,y-1))) (式1)
【0044】
式1に示された通り、水平パスaを通りノード(x,y)に到達するパスの編集コスト(式1の1行目)、垂直パスbを通りノード(x,y)に到達するパスの編集コスト(式1の2行目)、及び、斜めパスcを通りノード(x,y)に到達するパスの編集コスト(式1の3~5行目)のうち、最小となる編集コストが、ノード(x,y)に係る編集コストC(x,y)として決定される。ノード(x-1,y)、ノード(x,y-1)、ノード(x-i,y-1)は夫々、水平パスa、垂直パスb、斜めパスcに係る直前ノードである。
【0045】
本実施形態では、水平パスaに係るコスト(C_HOR)及び垂直パスbに係るコスト(C_VER)を定数とするが、これに限定されるものではなく、変数であってもよい。例えば、水平パスに係るコストの場合、スキップする文字候補領域のサイズ(矩形の面積)と、他の文字候補領域の平均サイズ(スキップする文字候補領域を除いた他の文字候補領域の矩形面積の平均)に基づき、コストを算出するようにしてもよい。例えば、以下の式を用いて、水平パスに係るコスト(C_HOR)を算出することができる。なお、サイズ比(=(スキップする文字候補領域の面積)÷(他の文字候補領域の平均面積)をr、A、Bを定数とし、「|r-1|」は「r-1」の絶対値を示す。
【0046】
C_HOR=A÷|r-1| r≠1の場合
C_HOR=B r=1の場合 (式2)
【0047】
例えば、スキップする文字候補領域に係る画像が、文字列に無関係な点や線(所謂、ゴミ)等である場合、当該文字候補領域に係るサイズは、他の文字候補領域の平均サイズからかけ離れる傾向にある。そのため、式2のように、スキップする文字候補領域のサイズが他の文字候補領域の平均サイズからかけ離れるほど、水平パスに係るコストが低くなるよう算出(設定)することで、文字列に無関係な点や線等に係る文字候補領域をスキップするパスが選択されやすくすることが可能となる。なお、サイズ比が1の場合、つまり、スキップする文字候補領域のサイズが他の文字候補領域の平均サイズと一致する場合は、定数Aよりも十分に大きな値を水平パスのコスト(定数B)とすることで、他の文字候補領域の平均サイズと同一のサイズを有する文字候補領域をスキップするパスを、選択されにくくすることが可能となる。
【0048】
斜めパスcに係るコスト(cost(C(x,y),C(x-i,y-1)))は、ノード(x-i,y-1)からノード(x,y)に到達するためのコストであり、x-n+1~xの範囲の文字候補領域を順次結合することで生成した複数パターンの文字領域と、入力データ中のy番目の文字との間の編集コストである。具体的には、文字領域生成部25が、xの文字候補領域からなる文字領域、x-1~xの文字候補領域からなる文字領域、…、x-n+1~xの文字候補領域からなる文字領域を生成し、編集コスト算出部26は、生成された文字領域の夫々と、入力データ中のy番目の文字との間の編集コスト(対応付けに係る編集コスト)を算出することで、斜めパスc夫々に係るコストを算出する。
【0049】
例えば、n=3の場合、文字領域生成部25は、xの文字候補領域からなる文字領域、x-1~xの文字候補領域からなる文字領域、及びx-2~xの文字候補領域からなる文字領域を生成する。この場合、ノード(x-3,y-1)からノード(x,y)への斜めパスに係るコストは、x-2~xの文字候補領域からなる文字領域と入力データ中のy番目の文字との間の編集コストである。また、ノード(x-2,y-1)からノード(x,y)への斜めパスに係るコストは、x-1~xの文字候補領域からなる文字領域と入力データ中のy番目の文字との間の編集コストである。さらに、ノード(x-1,y-1)からノード(x,y)への斜めパスに係るコストは、xの文字候補領域からなる文字領域と入力データ中のy番目の文字との間の編集コストである。ここで、文字候補領域を結合する数の上限を示す数nは、文字領域の幅高さ比に基づき決定される。
【0050】
図5は、本実施形態に係る文字領域の例を示す図である。文字領域生成部25は、例えば、ノード(x,y)に係る編集コストを算出する際、文字候補領域(x)を、文字候補領域(x)から文字列画像先頭よりの文字候補領域(x-1)、文字候補領域(x-2)、…と順次結合していく。この際、文字領域生成部25は、結合した領域(文字領域)の幅高さ比を算出し、この幅高さ比が所定の値(R2)を超えない範囲で文字候補領域を結合するよう、文字候補領域を結合する数の上限nを決定する。例えば、文字候補領域(x)と文字候補領域(x-1)を結合した場合、及び文字候補領域(x-2)~文字候補領域(x)を結合した場合は、幅高さ比が所定の値未満であるのに対し、文字候補領域(x-3)~文字候補領域(x)を結合した場合は、幅高さ比が所定の値を超える場合、文字候補領域の結合数の上限nは3(文字候補領域(x-2)~文字候補領域(x))と決定される。
【0051】
図5に示した例では、文字候補領域32-1~32-3を包含し、これらの文字候補領域に外接する矩形である文字領域33が点線の枠で示されている。
図5において、点線で示された文字領域に係る幅高さ比が、所定の値未満であると判断されたことにより、これらの文字候補領域が1の文字領域として結合されている。
【0052】
なお、文字領域生成部25は、文字領域の幅高さ比を算出する際に用いる幅及び高さを、それぞれ、文字領域(
図5の点線の枠)の幅と、
図5における文字候補領域列の高さ34とする。このように、幅高さ比を算出する際に用いる高さに文字候補領域列全体の高さ34を用いることで、「-(ハイフン)」のように横長の文字の場合であっても、幅高さ比が極端に大きく算出されてしまうことを防ぎ、文字候補領域を適切に結合することが可能である。
【0053】
文字領域生成部25は、抽出された文字候補領域32を全て囲む枠(
図5の枠35)を生成することで、文字候補領域列の高さ34を求める。但し、文字候補領域32を全て囲む枠の上辺及び下辺は、2値化された文字列画像を横方向(X軸方向)に走査し、黒画素の数が一定値以下になった箇所(辺)とする。
図5に示された例では、例えば、文字候補領域32を全て囲む枠の上辺が、「県」及び「高」に係る文字候補領域の上辺より下部に位置している。これは、文字候補領域32を全て囲む枠の上辺においては、「県」及び「高」の領域に係る黒画素しか交差(存在)しておらず、X軸方向の黒画素の数が一定値以下になったためである。このように、文字候補領域列の高さ34を、X軸方向に走査した際に存在する黒画素の数を考慮することで算出することにより、不自然に文字部分から飛び出した線や点(所謂、ゴミ)が文字列画像に含まれていた場合にも、不自然につながった黒画素を含めて文字列の高さを算出することを防止し、適切な文字列の高さを算出することが可能となる。
【0054】
編集コスト算出部26は、斜めパスcに係る編集コストを、対応付けを行う文字領域に係る、OCRを用いた1文字認識結果(文字認識候補)に基づき、算出する。具体的には、編集コスト算出部26は、入力データ中の文字が、対応する文字領域に係る文字認識候補の何れかと一致する場合、当該文字領域と入力データ中の当該文字との間の編集コスト(斜めパスcに係る編集コスト)が小さくなるよう、編集コストを算出する。この際、入力データの文字が一致する文字領域の文字認識候補の優先度が高いほど、当該文字領域と入力データ中の当該文字との間の編集コストが小さくなるよう、編集コストを算出する。斜めパスcに係る編集コスト(cost(C(x,y),C(x-i,y-1)))は、例えば、以下の式を用いて算出することができる。なお、一致した文字認識候補の優先度に基づく重み付け値をcand_pos、文字領域の幅高さ比をwh、MATCH_COFを定数とする。
【0055】
cost(C(x,y),C(x-i,y-1))
=cand_pos×MATCH_COF×wh×wh (式3)
【0056】
cand_posは、入力データ中の文字が、該文字に対応付ける文字領域に係る文字認識候補の何れかと一致する場合に、その一致した文字認識候補の候補順位(優先度)に基づき算出される重み付け値であり、例えば、cand_pos=候補順位-1として算出され、入力データ中の文字が、対応する文字領域に係る文字認識候補第1位の文字と一致する場合、cand_pos=0として算出される。つまり、一致する文字認識候補の優先度が高いほど、cand_posの値が小さく算出される。よって、cand_posをコストに乗じることで斜めパスcに係る編集コストを算出することにより、一致する文字領域の文字認識候補の優先度が高いほど、文字領域と入力データ中の文字との間の編集コストが小さくなるよう、編集コストを算出することが可能である。つまり、入力データ中の文字と類似する文字領域ほど、当該文字と対応付けを行う文字領域として選択されやすくすることが可能である。
【0057】
MATCH_COFは、定数であり、水平パスに係る編集コストや垂直パスに係る編集コストとのバランスを考慮し、任意に設定可能である。
【0058】
whは、文字領域の幅高さ比であり、文字候補領域を結合する際に使用した文字領域に係る幅高さ比と同様である。式3のように、文字領域の幅高さ比whの二乗をコストに乗じることで、文字領域が横長であるほど、斜めパスcに係る編集コストを高く算出することができる。これにより、矩形が横長であるため、1文字に係る領域(1文字のみを含む領域)である可能性が低いと判断される文字領域との対応付けを行ったパスを、選択されにくくすることが可能となる。なお、文字領域が正方形より横長である場合に斜めパスcに係る編集コストが増えるようにするため、当該編集コストを算出する際に使用する幅高さ比whの最小値を1と設定するようにしてもよい。これにより、例えば「1」のように縦に細長い文字領域であるため、幅高さ比が1未満となり、当該文字領域に係る斜めパスcの編集コストが小さく算出されてしまうことを防ぐことが可能である。
【0059】
なお、入力データ中の文字が、対応する文字領域に係る文字認識候補の何れにも一致しない場合は、以下の式を用いることで、斜めパスcに係る編集コスト(cost(C(x,y),C(x-i,y-1)))を算出することができる。なお、RPLを定数とする。
【0060】
cost(C(x,y),C(x-i,y-1))=RPL×wh×wh (式4)
【0061】
RPLは、定数であり、任意に設定可能である。また、whは、式3で説明した文字領域の幅高さ比と同一である。なお、斜めパスcに係る編集コストの算出方法は上述した式3及び式4に限定されるものではなく、適宜変更が可能である。例えば、式3及び式4ではコストに文字領域の幅高さ比whの二乗を乗じているが、whを乗じる等任意に変更可能である。また、cand_posは、一致する文字認識候補の優先度が高いほど、値が小さくなるような変換処理が行われた重み付け値であれば、上述した計算式に限定されるものではない。
【0062】
図6は、本実施形態に係る編集コストの算出例を示す図である。以下、
図6を用いて、具体的な編集コストの算出例を示す。
図6に示された例では、ノード(3,2)に到達する複数のパスに係る編集コストが算出されることで、ノード(3,2)に係る編集コストC(3,2)が決定される。なお、ノード(3,2)は、文字候補領域32-1~32-3からなる文字領域列と、入力データ中の文字列「君群」とを対応付けるノード(箇所)である。ノード(3,2)に到達するには複数のパスがあり、編集コスト算出部26は、これら複数のパス夫々に係る編集コストを算出し、最小となるコストを、ノード(3,2)に係る編集コストとして決定する。以下、ノード(3,2)に到達するパス1~パス5夫々についての、編集コストの算出方法を示す。なお、ノード(3,2)の直前ノードに係る編集コストの値には、以下と同様に、当該ノードに到達する各パスの編集コストが算出され、算出された編集コストのうち最小値と判定されたコスト値が用いられる。
【0063】
<パス1>:「群」の画像の「羊」部分(文字候補領域32-3)をスキップするパスAを通過するパス(直前ノードは、ノード(2,2))
式1(1行目)を用いることで、当該パスに係る編集コストは、以下の通り算出される。
C(2,2)+C_HOR
【0064】
<パス2>:入力データ中の「群」の文字をスキップするパスBを通過するパス(直前ノードは、ノード(3,1))
式1(2行目)を用いることで、当該パスに係る編集コストは、以下の通り算出される。
C(3,1)+C_VER
【0065】
<パス3>:入力データ中の「群」の文字と、「群」の画像の「尹」、「口」、「羊」部分(文字候補領域32-1~32-3)からなる文字領域「群」とを対応付けるパスCを通過するパス(直前ノードは、ノード(0,1))
式1(3~5行目)及び式3を用いることで、当該パスに係る編集コストは、以下の通り算出される。
C(0,1)+cand_pos×MATCH_COF×wh×wh
この場合、文字領域「群」に係る文字認識候補の第1位が「群」であることにより、例えば、cand_posが0と算出される。
【0066】
<パス4>:入力データ中の「群」の文字と、「群」の画像の「口」、「羊」部分(文字候補領域32-2~32-3)からなる文字領域「口羊」とを対応付けるパスDを通過するパス(直前ノードは、ノード(1,1))
式1(3~5行目)及び式3を用いることで、当該パスに係る編集コストは、以下の通り算出される。
C(1,1)+cand_pos×MATCH_COF×wh×wh
この場合、文字領域「口羊」に係る文字認識候補の第7位が「群」であることにより、例えば、cand_posが6と算出される。また、例えば、文字領域「口羊」の幅高さ比が1未満である場合、whには最小値である1が用いられる。
【0067】
<パス5>:入力データ中の「群」の文字と、「群」の画像の「羊」部分(文字候補領域32-3)からなる文字領域「羊」とを対応付けるパスEを通過するパス(直前ノードは、ノード(2,1))
この場合、文字領域「羊」に係る文字認識候補に、対応する入力データ中の「群」の文字が含まれていないため、式1(3~5行目)及び式4を用いることで、当該パスに係る編集コストが、以下の通り算出される。
C(2,1)+RPL×wh×wh
なお、例えば、文字領域「羊」の幅高さ比が1未満である場合、whには最小値である1が用いられる。また、直前ノードに係るコスト(C(2,1))は、入力データ中の「君」の文字と、「群」の画像の「尹」、「口」部分(文字候補領域32-1~32-2)からなる文字領域「尹口」との間の編集コストであり、例えば、文字領域「尹口」に係る文字認識候補の第1位が「君」であることにより、0として算出される。
【0068】
編集コスト算出部26は、例えば、パス1~パス5に係る編集コストのうち、パス3に係る編集コストが最小であると判定すると、ノード(3,2)に係る編集コストをパス3に係る編集コストと決定し、ノード(3,2)に到達するために用いられるパスを、パス3と決定する。つまり、ノード(3,2)に最小コストで到達するためのパスは、ノード(0,1)を経由してノード(3,2)に至るパスであり、つまり、入力データ中の「君」の字をスキップした後に、入力データ中の「群」の文字を文字領域「群」と対応付けるパスであると決定される。編集コスト算出部26は、DPマトリクスにおける全てのノードについて、上述した方法と同様に、ノードに係る編集コストを算出する。
【0069】
図7は、本実施形態に係る入力データと文字候補領域(文字領域)とのDPマトリクスの例を示す図である。編集コスト算出部26は、
図7に示されたDPマトリクスにおける各ノードについての編集コストを順次算出していくことで、最終的に、右上ノード(ノード(23,13))に係る編集コストを算出することができる。DPマトリクス(動的計画法)を用いて算出された右上ノードに係る編集コストは、入力データ「君群馬県太田市高林北町26」と、「群馬県太田市高林北町236」が記載された文字列画像(文字候補領域列)との間の編集コストである総編集コストの最小値である。
【0070】
図7に示されたDPマトリクスでは、右上ノードに係る編集コスト(最小値)が算出された際のDPパスが矢印で示されている。つまり、矢印で示されたDPパスが、入力データと文字候補領域列との間の編集コストを最小にするパスであり、このパスにおける入力データ中の文字と文字領域との対応付けが、最も妥当な(最適な)対応付けであると判定される。編集コスト算出部26は、右上ノードに係る編集コスト(最小値)が算出された際のDPパスを、最適パスとして記憶しておく。
【0071】
対応付け部27は、編集コストに基づいて、入力データ中の各文字に対応するパターンの文字領域を決定し、入力データ中の各文字と文字領域とを対応付ける。具体的には、対応付け部27は、入力データと文字候補領域列との間の編集コストである総編集コストが最小となるような、入力データ中の各文字に対応するパターンの文字領域を決定し、入力データ中の各文字と文字領域とを対応付ける。
【0072】
つまり、対応付け部27は、右上ノードに係る編集コスト(総編集コストの最小値)が算出された際のDPパス(最適パス)に基づき、総編集コストが最小となるような、入力データ中の各文字に対応するパターンの文字領域を決定する。例えば、対応付け部27は、
図7における矢印で示されたDPパスに基づき、入力データ中の「群」の文字に対応するパターンの文字領域を、文字候補領域32-1~32-3からなる文字領域「群」であると決定する。同様にして、対応付け部27は、入力データ中の「馬」、「県」、「太」、「田」、「市」、「高」、「林」、「北」、「町」、「2」、「6」の文字に対応するパターンの文字領域を、夫々、文字領域「馬」、「県」、「太(2つの文字候補領域からなる文字領域)」、「田(2つの文字候補領域からなる文字領域)」、「市(2つの文字候補領域を含む領域)」、「高(2つの文字候補領域を含む領域)」、「林(2つの文字候補領域を含む領域)」、「北(2つの文字候補領域を含む領域)」、「町(3つの文字候補領域を含む領域)」、「2」、「6」であると決定する。
【0073】
対応付け部27は、このように、入力データ中の各文字に対応するパターンの文字領域を決定すると、入力データ中の各文字と、対応するパターンとして決定された文字領域とを対応付ける。
【0074】
誤り推定部28は、対応付け部27による対応付け結果に基づき、入力データに誤りがあるか否かを推定する。つまり、誤り推定部28は、対応付け結果に基づき、入力データにおいて、誤りの可能性がある箇所を検知する。具体的には、誤り推定部28は、対応付け部27による対応付け結果において、(a)入力データ中の文字と、当該文字と対応する文字領域に係る文字認識候補とが不一致であること、(b)入力データに、文字領域に対応付かない文字があること(
図7の垂直パスに相当)、(c)入力データに対応付かない文字領域があること(
図7の水平パスに相当)、のいずれかを検出することにより、入力データに誤りがあると推定する。なお、(a)は、入力データ中の文字の誤記の可能性があること、(b)は、入力データ中の文字の誤挿入(文字の二重入力等)の可能性があること、(c)は、入力データ中の文字の入力漏れ(入力し忘れ等)の可能性があることに対応している。
【0075】
例えば、誤り推定部28は、
図7における矢印で示されたDPパスを参照し、水平パス(文字候補領域「3」をスキップするパス)が存在することで、「3」の画像に係るテキストデータが入力されておらず、入力データに誤りがあると推定する。また、同様に、誤り推定部28は、
図7のDPパスを参照し、垂直パス(入力データ中の文字「君」をスキップするパス)が存在することで、入力データ中の「君」の文字が誤って入力されており、入力データに誤りがあると推定する。
【0076】
なお、誤り推定部28は、上述の(a)の場合、任意に設定された候補順位までの文字認識候補と、入力データ中の文字とが不一致であるか否かを検出するようにしてもよい。例えば、入力データの文字が、当該文字と対応付けられた文字領域の文字認識候補第1位から第5位までに含まれていない場合に、当該入力データの文字に誤りがあると推定してもよい。また、例えば、入力データの文字が、当該文字と対応付けられた文字領域の文字認識候補第1位と一致していない場合に、誤りであるとの推定をしてもよい。
【0077】
例えば、
図7のDPパスにより、入力データ中の文字「北」は、文字領域「北」と対応付いているが、文字領域「北」の文字認識候補に、入力データ中の文字「北」と一致する文字がないため、誤り推定部28により、入力データ中の文字「北」は、誤りであると推定される(誤りの可能性がある誤り候補として検出される)。また、例えば、候補順位5位までの文字認識候補と一致しない場合に誤りと推定するよう設定された場合、
図7の文字認識候補の表に示されたように、入力データ中の「馬」は、対応付いた文字領域「馬」の文字認識候補第1位~5位に含まれていない(文字認識候補第9位と一致する)ため、当該文字「馬」は、誤りであると推定される。さらに、例えば、候補順位1位の文字認識候補と一致しない場合に誤りと推定するよう設定した場合、入力データ中の文字「高」も、文字領域「高」の文字認識候補第2位としか一致しないことにより、誤りであると推定される。このように、誤りを推定する際に、どの候補順位までを考慮するかは、任意に設定することが可能である。
【0078】
表示部29は、情報処理装置1における出力デバイス17を介して、種々の表示処理を実行する。表示部29は、例えば、ユーザが帳票に記載された文字列に係る入力データ(エントリーデータ)を確認、修正する画面(確認修正画面)等を生成し、ディスプレイ等の出力デバイス17を介して、生成された画面を表示(出力)する。また、表示部29は、誤り推定部28により、入力データに誤りがあると推定されると、入力データにおいて誤りの可能性があることの通知(表示)を行う。表示部29は、例えば、入力データや文字列画像を確認する画面において、入力データ中の、誤りがあると推定された文字をハイライトで表示したり、文字列画像中の、誤りがあると推定された文字に対応する部分に係る画像の色を変更したりすることで、入力データにおいて誤り(誤り箇所)が推定されたことの通知(警告)を行う。
【0079】
図8は、本実施形態に係る入力データの確認修正画面の一例を示す図である。
図8に示されるように、確認修正画面において、データエントリーの対象となる文字列画像と当該文字列画像に係る入力データとを上下に並べて表示することで、ユーザ(オペレータ)が文字列画像と入力データとを比較する際に、視線移動を少なくすることが可能となり、確認修正作業を効率良く行うことが可能となる。
【0080】
例えば、
図8に示された例では、文字列画像31である「群馬県太田市高林北町」、「山梨県南巨摩郡身延町」と、各文字列画像に係る入力データ36である「君群馬県太田市…」、「山梨県南巨摩群…」がそれぞれ上下に並べて表示されている。誤り推定部28により、入力データ「君群馬県太田市…」の1文字目の「君」が誤りであると推定されると、表示部29は、
図8に示されるように、1文字目の「君」の部分をハイライトで表示するようにしてもよい。なお、確認修正画面は、
図8に示された画面形式や表示項目に限定されず、例えば、確認修正画面に、文字列画像と及び入力データと併せて、他の情報が表示されるようにしてもよい。
【0081】
なお、入力データが、ユーザにより手入力されたテキストデータである場合、
図8に示された確認修正画面上の入力データ36に係る入力欄に、ユーザがテキストデータを入力し、当該入力を決定する指示(例えば、Enterボタンの押下)が実行されることで、入力データの誤りを推定する処理が実行され、入力データにおいて誤り(誤り箇所)が推定されたことの警告が表示されるようにしてもよい。
【0082】
修正部30は、入力データにおいて、誤りの可能性のある箇所を修正する(文字の修正、文字の挿入、文字の削除)。修正部30は、例えば、入力データ中の、誤りが推定された文字を、当該文字に対応する文字領域に係る文字認識候補第1位の文字に置き換えることで修正を行うようにしてもよい。また、修正部30は、誤り推定部28により、入力データに対応付かない文字領域があることを検出した場合、当該文字領域に係る文字認識候補第1位の文字を入力データの対応する箇所に挿入することで修正を行うようにしても良い。さらに、修正部30は、誤り推定部28により、入力データに、文字領域に対応付かない文字があることを検出した場合、入力データ中の文字領域に対応付かない文字を削除することで修正を行うようにしてもよい。
【0083】
<処理の流れ>
次に、本実施形態に係る情報処理装置1によって実行される処理の流れを説明する。なお、以下に説明する処理の具体的な内容及び処理順序は、本開示を実施するための一例である。具体的な処理内容及び処理順序は、本開示の実施の態様に応じて適宜選択されてよい。
【0084】
図9は、本実施形態に係る入力データ誤り推定処理の流れの概要を示すフローチャートである。本フローチャートに示された処理は、文書読取装置9によって送信された文書画像が受信されたことを契機として実行される。
【0085】
ステップS101では、文字列画像が取得される。画像取得部21は、文書読取装置9により送信された文書画像を取得し、文書画像から、文字が記載された領域に係る画像である文字列画像を取得する。その後、処理はステップS102へ進む。
【0086】
ステップS102では、入力データ(文字列テキストデータ)が取得される。文字認識部22は、ステップS101で取得された文字列画像(文書画像)に対して文字認識処理を行うことで、当該文書に記載された文字を文字認識した結果である文書データを取得する。そして、入力データ取得部23は、文字認識部22により取得された文書データから、対象となる文字列についての認識結果を抽出することで、入力データを取得する。例えば、入力データ取得部23は、文書データから、
図3に示された文字列画像31に対する文字認識結果であるテキストデータ「君群馬県太田市高林北町26」を抽出し、当該文字認識結果を、データエントリーに用いる入力データとして取得する。その後、処理はステップS103へ進む。
【0087】
ステップS103では、文字列画像から文字候補領域が抽出される。文字候補領域抽出部24は、ステップS101で取得された文字列画像について文字の切れ目となる箇所を検出することで、文字列画像から複数の文字候補領域を抽出する。例えば、文字候補領域抽出部24は、
図3に示された文字列画像31から、文字候補領域32-1~32-23を抽出する。その後、処理はステップS104へ進む。
【0088】
ステップS104~S105では、入力データと文字候補領域列とのDP照合(動的計画法による、2つの入力のコストが最小となる対応付けを効率的に求める処理)が行われる。ステップS104では、入力データと文字候補領域列との編集コスト(最小値)が算出される。編集コスト算出部26は、DPマトリクスにおいて、ステップS102で取得された入力データと、ステップS103で取得された文字候補領域の並び(文字候補領域列)とを、夫々X軸、Y軸に配置することにより、入力データと文字候補領域列との総編集コスト(最小値)を算出する。
【0089】
ステップS104では、文字領域生成部25により、ステップS103で取得された文字候補領域からなる文字領域が複数パターン生成され、編集コスト算出部26により、当該複数パターンの文字領域の夫々と入力データ中の文字との間の編集コストを、文字領域に係る文字認識候補を用いて算出することで、DPマトリクスの各ノードに係る編集コストC(x,y)を算出する。なお、文字領域に係る文字認識候補は、ステップS104において、文字認識部22が、生成された文字領域に対して文字認識処理を行うことで、取得される。
【0090】
そして、編集コスト算出部26は、DPマトリクスにおける各ノードについての編集コストを順次算出することで、最終的に、DPマトリクスにおける右上ノードに係る編集コスト、即ち、入力データと文字候補領域列との総編集コスト(最小値)を算出(取得)する。この際、編集コスト算出部26は、右上ノードに係る編集コスト(最小値)が算出された際のDPパス(
図7に矢印で示されたパス)を、最適パスとして記憶する。その後、処理はステップS105へ進む。
【0091】
ステップS105では、入力データ中の文字と文字領域とが対応付けられる。対応付け部27は、ステップS104において総編集コスト(最小値)が算出された際のDPパス(最適パス)に基づき、入力データ中の各文字に対応するパターンの文字領域を決定することで、入力データ中の各文字と文字領域とを対応付ける。例えば、
図7のDPマトリクスにおいて、入力データ中の「群」の文字と、3つの文字候補領域からなる文字領域「群」とを対応付ける斜めパス(斜め方向の矢印)が選択されているため、対応付け部27は、「群」の文字に対応する文字領域として文字領域「群」を決定し、文字「群」と文字領域「群」とを対応付ける。その後、処理はステップS106へ進む。
【0092】
ステップS106では、入力データに誤りがあると推定されたか否か(誤りの可能性があるか否か)が判定される。誤り推定部28は、ステップS105における、入力データ中の文字と文字領域との対応付け結果に基づき、入力データに誤りがあるか推定する。例えば、誤り推定部28は、対応付け結果から、入力データ中の文字「君」が文字領域と対応付いていないこと(入力データ中の文字の誤挿入)や、文字領域(文字候補領域)「3」が入力データ中の文字と対応付いていないこと(入力データ中の文字の入力漏れ)を検出することで、入力データに誤りがあると推定する。また、例えば、誤り推定部28は、入力データ中の文字「北」が、ステップS105で該文字と対応付けられた文字領域「北」に係る文字認識候補に含まれていないこと(入力データ中の文字の誤記)を検出することで、入力データに誤りがあると推定する。入力データに誤りがあると推定されていない場合(ステップ106:NO)、本フローチャートに示された処理は終了する。一方、入力データに誤りがあると推定された場合(ステップS106:YES)、処理はステップS107へ進む。
【0093】
ステップS107では、警告、及び/又は、誤りが推定された箇所(誤りの可能性がある)箇所の修正が行われる。表示部29は、例えば、確認修正画面において、ステップS106で誤りが推定された箇所をハイライト表示等にすることで、入力データに誤りがあると推定されたことの通知(警告)を行う。また、この警告と併せて、または、警告に代えて、修正部30は、ステップS106で誤りが推定された文字を修正する。その後、本フローチャートに示された処理は終了する。
【0094】
但し、ステップS102とステップS103は、順不同である。また、本フローチャートに示された処理は、文書画像に記載された、データエントリーの対象となる全ての文字列に対して、実行されるようにしてもよい。また、入力データが、ユーザにより手入力されたテキストデータである場合は、ユーザから文書に記載された文字列に係るテキストデータの入力を受け付けたことを契機として、本フローチャートに示された処理が実行されるようにしてもよい。
【0095】
上述の通り、本実施形態に係るシステムでは、文字列画像から文字領域を切り出し、入力データの各文字と文字領域とを対応付けることで、入力データの誤りを推定する。一方、従来の、入力データを複数人により目視で確認する方法は、有効な方法ではあるものの、人件費(コスト)が膨大にかかるという問題があった。
【0096】
また、従来、入力データを取得する際に使用したOCRとは別のOCRを用意し、この別のOCRにも項目のイメージデータ(文字列画像)を認識させることで、認識結果を比較する方法がある。しかし、OCRの認識精度が低い場合、人による手入力の場合に比べて、入力(認識)の誤りが多くなるため、正確に入力データの誤りを検出することができない。また2つのOCRが同様の認識傾向を有する場合、認識結果が同様の内容になるため、比較することによる効果が得られにくい。そのため、OCRによる出力を別のOCRの出力と比較する場合は、高い認識精度を持ち、かつ、互いに認識傾向の異なる2つのOCRを用意する必要があり、技術面やコスト面等の理由から、実現することが困難であった。
【0097】
さらに、従来、入力内容が、所定の条件((1)データベースに登録された単語に一致すること、(2)住所辞書、知識辞書、n-gram辞書等による文字並びを満たすこと、(3)数値データの場合、合計チェック、上下限チェック等のルールを満たすこと、等)を満たすか否かを判断することで誤りを検出する方法がある。しかし、アンケートのコメント欄や、住所に含まれるマンション名や部屋番号等について、このような条件を設定することは困難であるため、この方法を適用できない場合があった。
【0098】
しかし、本実施形態に係るシステムによれば、文字列画像から文字領域を切り出し、入力データの各文字と文字領域とを対応付けることで、入力データの誤りを推定することができるため、複数人での目視確認にかかる人件費等のコスト面の問題や、誤りを推定できる項目(内容)の制限等がなく、入力データの誤りを効率良く推定することが可能である。また、誤りが推定された箇所をユーザに通知したり、誤りが推定された箇所を自動的に修正したりすることで、入力データ中の誤りを減少させることも可能である。また、本実施形態に係るシステムでは、文字認識候補を取得する際、OCRによる、文字領域に係る文字認識処理(1文字認識処理)が可能であればよいため、上述した、OCRによる出力を別のOCRの出力と比較する場合に要求されるような高い認識精度を有するOCRでなくても、誤り推定が可能となる。
【0099】
<その他のバリエーション(1)>
本実施形態に係るシステムでは、情報処理装置1における文字認識部22により、文字認識処理が行われることとしたが、これに限定されるものではなく、
図1における文書読取装置9により、文字認識処理が行われるようにしても良い。この場合、情報処理装置1は、文字認識部22を備えなくてよい。本バリエーションでは、文書読取装置9は、文書を読み取ることで文書画像を取得し、当該文書画像に対して文字認識処理を行うことで、文書データを生成(取得)する。そして、入力データ取得部23は、文書読取装置9で生成された文書データを取得し、対象となる文字列についての認識結果を取得することで、文字列テキストデータ(入力データ)を取得する。
【0100】
また、本バリエーションでは、文書読取装置9は、文字領域生成部25により生成された複数パターンの文字領域を取得し、文字領域夫々について文字認識処理を行うことで、文字領域に係る文字認識候補を取得する。編集コスト算出部26は、文書読取装置9により取得された文字認識候補を取得することで、編集コストを算出する。
【0101】
<その他のバリエーション(2)>
本実施形態に係るシステムでは、情報処理装置1における文字認識部22により、文字認識処理が行われることとしたが、これに限定されるものではなく、
図1における文書読取装置9と情報処理装置1との間に接続された文字認識装置(情報処理装置)8により、文字認識処理が行われるようにしても良い。この場合、情報処理装置1は、文字認識部22を備えなくてよい。
【0102】
文字認識装置8は、CPU、ROM、RAM、EEPROMやHDD等の記憶装置、NIC等の通信ユニット、等を備えるコンピュータである。本バリエーションでは、文字認識装置8は、文書読取装置9で取得された文書画像を取得し、当該文書画像に対して文字認識処理を行うことで、文書データを生成(取得)する。そして、入力データ取得部23は、文字認識装置8で生成された文書データを取得し、対象となる文字列についての認識結果を取得することで、文字列テキストデータ(入力データ)を取得する。
【0103】
また、本バリエーションでは、文字認識装置8は、文字領域生成部25により生成された複数パターンの文字領域を取得し、文字領域夫々について文字認識処理を行うことで、文字領域に係る文字認識候補を取得する。編集コスト算出部26は、文字認識装置8により取得された文字認識候補を取得することで、編集コストを算出する。
【符号の説明】
【0104】
1 情報処理装置
31 文字列画像
32 文字候補領域
33 文字領域
34 文字候補領域列の高さ
36 文字列テキストデータ(入力データ)