(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-12-22
(45)【発行日】2024-01-05
(54)【発明の名称】画像処理装置の制御方法、プログラム及び画像処理装置
(51)【国際特許分類】
G06V 30/00 20220101AFI20231225BHJP
G06V 30/24 20220101ALI20231225BHJP
G06V 30/412 20220101ALI20231225BHJP
【FI】
G06V30/00 Z
G06V30/24 620D
G06V30/412
(21)【出願番号】P 2019187926
(22)【出願日】2019-10-11
【審査請求日】2022-10-07
(73)【特許権者】
【識別番号】000001007
【氏名又は名称】キヤノン株式会社
(74)【代理人】
【識別番号】110002767
【氏名又は名称】弁理士法人ひのき国際特許事務所
(72)【発明者】
【氏名】相馬 英智
【審査官】新井 則和
(56)【参考文献】
【文献】特開2019-169026(JP,A)
【文献】特開2019-040467(JP,A)
【文献】特開平08-263587(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06V 30/00
G06V 30/24
G06V 30/412
(57)【特許請求の範囲】
【請求項1】
画像処理装置の制御方法であって、
スキャン文書
画像の文字に対して、文字認識処理を行うことにより
第1の文字認識結果の文字列
を生成する文字認識工程と、
前記スキャン文書画像の文書分類を行い、抽出する項目を選択する選択工程と、
前記項目の文字種の制約に基づいて再文字認識処理を行い前記第1の文字認識結果を更新する再文字認識工程と、
前記更新した第1の文字認識結果に、前記項目の文字種の制約に応じた文字認識誤りパターン辞書から得た第2の文字認識結果を追加する追加工程と、
文字種の制約に応じた辞書及び文字パターンを用いて、前記第2の文字認識結果が追加された第1の文字認識結果を補正する補正工程
とを有することを特徴とする画像処理装置の制御方法。
【請求項2】
ユーザにより修正された項目値の内容から文字認識誤りパターンを抽出し登録する登録工程を有する
ことを特徴とする請求項1に記載の画像処理装置の制御方法。
【請求項3】
前記選択工程は、文書分類の内容、文書画像内の配置及び抽出項目の情報を利用して抽出する項目を選択する
ことを特徴とする請求項1又は2に記載の画像処理装置の制御方法。
【請求項4】
前記再文字認識工程は、文字種の制約が設定されている場合に行うことを特徴とする請求項1~3のいずれか1項に記載の画像処理装置の制御方法。
【請求項5】
請求項1~4のいずれか1項に記載の画像処理装置の制御方法を、コンピュータに実行させるためのプログラム。
【請求項6】
請求項5に記載のプログラムがインストールされた画像処理装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、スキャン文書画像に記載されたデータの入力作業を行うための画像処理装置の制御方法、プログラム及びそのプログラムがインストールされた画像処理装置に関する。
【背景技術】
【0002】
近年、プリント機能、複写機能、ファクシミリ機能などの多機能を備えた複合機(Multi Function Printer:MFP)等にイメージスキャナを備え付けることが一般化している。また、コンパクトカメラ、スマートフォンに代表されるモバイル機器にデジタルカメラ等を備え付けることも一般化している。これにより、スキャナなどを用いて、手書き文字や活字を含む文書から、光学的にスキャンあるいは撮影した画像(スキャン文書画像)を作成することが容易になった。
さらに、スキャン文書画像に対して、文字認識処理(Optical Character Recognition:OCR)を行い、コンピュータが利用可能な文字コードに変換する技術が広く使われるようになってきている。文字認識処理を用いることで、一般的なオフィスで実施されている経費精算作業に代表される、帳票などの紙媒体からデジタルデータへの変換を伴うデータ入力作業を自動化することできるようになった。これにより、データ入力作業における生産性の向上が図られている。
【0003】
しかし、一般的に、紙媒体自体の状態の劣化や、スキャンや撮影の状況などにより、スキャン文書画像の品質や文字画像の状態に劣化やばらつきが生じることは避けられないため、文字認識処理により正しい結果を常に取得することは困難である。そこで、文字認識処理において誤認識された文字に対して正しい記載内容を推定する補正処理等が行われることがある。
【0004】
例えば、特許文献1には、文字読み取り処理において、正解テキストとの比較結果を用いて、文字認識結果を照合する方法が開示されている。このような補正処理を行うことにより、文字認識結果の正解率を向上させることができるため、文字認識結果に含まれる誤認識される文字の割合を低下させることが可能である。
しかし、特許文献1のような補正処理を行ったとしても、正解テキストのような辞書に存在しない未知の文字認識の誤りが発生する場合があるため、補正処理により誤認識された文字を完全に修復することができない。そのため、データ入力作業においては、スキャンした文書に対する文字認識処理の結果を、ユーザが確認して、誤認識された文字については修正を行う必要がある
【0005】
例えば、特許文献2では、オペレータが修正した文字に関する情報を修正履歴として保存しておき、これを利用して読取結果の中から誤読された文字を自動的に検索して表示する方法が開示されている。この方法によれば、オペレータが修正した文字認識結果の誤りパターンを収集することで、辞書に存在しない未知の文字認識の誤りについても補正処理を行うことができる。
【0006】
しかし、過去の文字認識結果の誤りパターン情報の情報量が多くなってしまうと、補正処理に要する処理時間が増大し、ユーザによるデータ入力作業の効率化による時間短縮を阻害するという問題が生じる。そのため、補正処理において大量の文字認識結果の誤りパターン情報を安易に利用することは、処理効率の観点から好ましくない。
【先行技術文献】
【特許文献】
【0007】
【文献】特開平9―251518号公報
【文献】特開平5-314303号公報
【発明の概要】
【発明が解決しようとする課題】
【0008】
本発明は、以上のような事情に鑑みてなされたものであり、文字認識結果の補正処理における処理効率を向上させ、補正処理に要する処理時間を短縮することを目的とする。
【課題を解決するための手段】
【0009】
本発明は、 画像処理装置の制御方法であって、スキャン文書画像の文字に対して、文字認識処理を行うことにより第1の文字認識結果の文字列を生成する文字認識工程と、前記スキャン文書画像の文書分類を行い、抽出する項目を選択する選択工程と、前記項目の文字種の制約に基づいて再文字認識処理を行い前記第1の文字認識結果を更新する再文字認識工程と、前記更新した第1の文字認識結果に、前記項目の文字種の制約に応じた文字認識誤りパターン辞書から得た第2の文字認識結果を追加する追加工程と、文字種の制約に応じた辞書及び文字パターンを用いて、前記第2の文字認識結果が追加された第1の文字認識結果を補正する補正工程を有することを特徴とする。
【発明の効果】
【0010】
本発明によれば、文字認識結果の補正処理に要する処理時間の短縮を実現でき、これにより、データ入力業務におけるユーザの作業負担の軽減が可能となる。
【図面の簡単な説明】
【0011】
【
図1】データ入力システムのシステム構成を示す図である。
【
図2】データ入力システムの機能と情報の流れの概略を示す図である。
【
図4】処理の全体的な流れを示すフローチャートである。
【
図5】文字認識結果の例を示した表と、ラティス構造の例である。
【
図6】文字認識結果の割当処理を示すフローチャートである。
【
図7】文字認識結果の割当処理を説明するための表である。
【
図8】項目値の補正処理示すフローチャートである。
【
図9】項目値の再文字認識について説明するための図である。
【
図10】文字認識誤りパターンを用いたラティス構造の更新について説明するための図である。
【
図11】補正用の辞書・文字パターンを使用した補正処理の結果について説明するための図である。
【
図12】ユーザによる修正に基づく、文字認識誤りパターン情報抽出処理を示すフローチャートである。
【
図14】ユーザによる修正の結果を説明するための表である。
【
図15】実施例2における、文字認識結果の割当処理を説明するための表である。
【発明を実施するための形態】
【0012】
以下に、図面を参照して、本発明を実施するための実施例について説明する。ただし、以下に説明する実施例はあくまで例示であり、本発明の範囲をそれらに限定する趣旨のものではない。また、以下の実施例で説明されている特徴の組み合わせのすべてが本発明の解決手段に必須のものとは限らない。
【0013】
<実施例1>
以下、図面を用いて、本発明の実施例について説明する。
図1に、本実施例に係るデータ入力システム100のシステム構成の概略である。典型的には、データ入力システム100は、複合機(MFP)から構成される。以下、
図1のデータ入力システムに示された各デバイスについて説明する。
CPU(Central Processing Unit)101は、データ入力システムにおける大部分の制御や処理を実行する。CPU101が実行する制御や処理は、後述するROM102やRAM103上のプログラムによって指示される。CPU101自身の機能や計算機プログラムの機能により、CPU101は複数の計算機プログラムを並列に動作させることもできる。
ROM(Read Only Memory)102は、CPU101による制御の手順を記憶させた計算機プログラムやデータを格納する。
RAM(Random Access Memory)103は、CPU101が処理するための制御プログラムを格納するとともに、CPU101が各種制御を実行する際の様々なデータの作業領域を提供する。
【0014】
入力装置104は、ユーザによる各種入力操作環境を提供するキーボードやマウスである。入力装置104は、ユーザからの各種入力操作環境を提供するものであれば、タッチパネル、スタイラスペン等、何でもよい。また、音声認識やジェスチャー操作による入力を提供するものでもよい。
バス105は、データ入力システム内の各デバイスに接続されているアドレスバス、データバスなどであり、各デバイス間の情報交換・通信機能を提供する。これにより、各デバイスは連携して動作することができる。
外部記憶装置106は、各種データ等を記憶する。外部記憶装置106は、ハードディスクやフロッピーディスク、光ディスク、磁気ディスク、磁気テープ、不揮発性のメモリカード等の記録媒体と、記憶媒体を駆動し情報を記録するドライブなどで構成される。保管された計算機プログラムやデータの全体や一部は、キーボード等の指示や、各種計算機プログラムの指示により、必要な時にRAM103上に呼び出される。
【0015】
NCU(Network Control Unit)107は、他のコンピュータ装置等と通信を行うための通信装置である。NCU107は、ネットワーク(LAN)等を介して、遠隔地に存在する不図示の装置と通信し、本実施例のプログラムやデータを共有することを可能とする。通信手段としては、RS232CやUSB、IEEE1394、P1284、SCSI、モデム、Ethernet(登録商標)などの有線通信や、Bluetooth(登録商標)、赤外線通信、IEEE802.11a/b/n等の無線通信等、何でもよい。すなわち、データ入力システムと接続されているデバイスとの通信手段を備えるものであれば何でもよい。
GPU(Graphics Processing Unit)108は、CPU101などにより与えられた表示指示や計算指示に従い、表示内容の画像の作成や表示位置などの計算を行い、その計算結果を表示装置109へ送信して描画させる。また、GPU108は、バス105を経由して、計算結果をCPU101に返信することで、CPU101と連携した計算処理を行うこともできる。
【0016】
表示装置109は、ディスプレイなどで構成され、各種入力操作の状態やそれに応じた計算結果などを、ユーザに対して表示する。
スキャナ110は、文書上の画像を読み取り、画像データに変換する。スキャナ110は、NCU107の通信機能を介して接続されてもよいし、それ以外の独自の外部I/Fを介して接続される形態でもよい。
【0017】
以上のデータ入力システムのシステム構成は、あくまでも、本実施例における一例であり、本発明におけるシステム構成はこれに限定されるものでない。また、システム内の各デバイスにより示された内部構成は、いわゆるハードウェアである必要はなく、仮想的にソフトウエアで作り出されたものでもよい。
また、データ入力システムを構成する内部構成は、単一のシステム内に備えられることには限られず、複数のシステムに分散して備えられてもよい。この場合、各システムにおけるNCU107を利用した情報交換・共有等を行い連携させることで、各システムをサーバやクライアント等として構成する方法で実現しても構わない。すなわち、このような複数のシステムである場合、各内部構成が物理的に異なる場所にあって、LANやインターネットなどを介して連携動作する場合でもよいし、また、仮想的にソフトウエアで作り出されたものが含まれていても構わない。さらに、複数のサーバやPCクライアント等の各システムの全部もしくは一部を、単一の内部構成において共有して動作させるような利用方法であっても構わない。
【0018】
図2に、本実施例のデータ入力システムにおける主な機能と情報の流れの概略を示す。
スキャン文書画像201は、紙などの媒体に手書き文字が記載されたり活字が印刷されたりした文書を光学的にスキャンすることによって得られた画像情報である。スキャン文書画像201は、スキャナ110で文書に対してスキャンが行われることにより取得される。スキャン文書画像201は、基本的に、外部記憶装置106やRAM103に格納され、外部記憶装置106にある場合には、利用時にRAM103にコピーされる。
【0019】
文書画像解析部210は、スキャン文書画像201の解析処理を行い、スキャン文書画像201上の手書き文字や活字(以下、まとめて「文字」という)のテキスト情報や、イラストや写真などの画像情報を抽出する機能部分である。
文書画像解析部210は、後述する文書画像処理211と文字認識処理212の機能と、文字認識辞書213の情報を有している。
【0020】
文書画像処理211は、スキャン文書画像201に対して、画像の解析が行いやすいように、画像全体の濃度や色の調整、画像の二値化、表などの罫線の削除を行う機能の処理部分である。文書画像処理211は、基本的に、外部記憶装置106やROM102に格納された処理プログラムやデータがRAM103にコピーされて、CPU101やGPU108を利用して実行されることで実現される。
【0021】
文字認識処理212は、文書画像処理211の結果に対して、文字画像領域を検索し、文字画像領域内から文字画像を取得し、取得した文字画像に対応する文字コードを取得する機能の処理部分である。文字認識処理212は、基本的に、外部記憶装置106やROM102に格納された処理プログラムやデータがRAM103にコピーされて、CPU101やGPU108を利用して実行されることで実現される。
【0022】
また、文字認識処理212は、文字認識の対象となる文字の近傍にある文字を集めて、文字列の記載方向を推定し、文字認識結果として文字列を取得する。文字認識結果により取得された文字列の情報には、文字列の記載方向と、文字列のスキャン文書画像201内における位置とサイズの領域情報と、文字列を構成する文字毎の文字コード列情報を生成する。文字コード列情報には、文字認識処理により取得された文字コードと、文字画像としての類似度などに基づいた文字コード毎の尤度が含まれる。文字コード列で、最尤度の文字コードを最尤文字と呼び、最尤文字のみから構成された文字列を最尤候補文字列と呼ぶ。
文字認識処理212は、スキャン文書画像201の全体について文字認識処理を行う以外にも、スキャン文書画像201内の一部の領域に対してのみ文字認識処理を行うことが可能である。また、文字認識処理を行う際に、文字の種類、使用言語、文字列の記載方向等の制約を与えることも可能である。
【0023】
文字認識辞書213は、文字認識処理212において、文字画像に対応する文字コードを決定するために使用されるデータである。文字認識辞書213は、基本的に、外部記憶装置106やROM102に格納され、RAM103にコピーされて利用される。
【0024】
文字認識結果情報202は、文書画像解析部201による処理結果として取得された情報である。文字認識結果情報202は、主に、文字認識処理212の出力である文字認識結果と、文書画像処理211の処理結果である画像によって構成される。文字認識結果情報202は、外部記憶装置106やRAM103に格納され、利用時に外部記憶装置106にある場合には、RAM103にコピーされ利用される。
【0025】
特定情報抽出部220は、文字認識結果情報202に対して解析処理を行い、必要な情報の抽出を行う機能部分である。
特定情報抽出部220は、後述する文書分類・抽出項目選択処理221、項目名・項目値推定処理223、辞書・文字パターン突合処理225の機能を有している。また、特定情報抽出部220は、後述する文書分類データ(抽出項目データ)212、項目名・項目値制約データ214、文字認識誤りパターン辞書216、辞書・文字パターンデータ217の情報を有している。なお、本実施例における「項目」や「項目値」については、3を用いて後述する。
【0026】
文書分類・抽出項目選択処理221は、文字認識結果情報202内の文字認識結果から得られる記載内容や、文書画像内の配置(レイアウト)から、スキャン文書画像201の文書分類を行う。また、文書分類の内容に応じて、スキャン文書画像201から抽出する情報である抽出項目を決定する。すなわち、文書分類の内容として、例えば、レシート、領収書、請求書、納品書、報告書、見積り等に分類するとともに、その文書分類の内容に応じて、例えば、合計金額や日付等の抽出項目を決定する。文書分類・抽出項目選択処理221は、基本的に、外部記憶装置106やROM102に格納された処理プログラムやデータで構成され、RAM103にコピーされて、CPU101やGPU108を利用して実行・利用されることで実現される。
【0027】
文書分類データ(抽出項目データ)212は、文書分類・抽出項目選択処理221が、文書分類を行うために使用するデータである。文書分類データ(抽出項目データ)212は、各文書分類の内容と、文書分類毎の文書画像内の配置(レイアウト)に関する情報と、各文書分類の内容によって決まる抽出項目の情報を格納したものである。文書分類データ(抽出項目データ)212は、外部記憶装置106やRAM103に格納され、利用時に外部記憶装置106にある場合には、RAM103にコピーされ利用される。
【0028】
項目名・項目値推定処理223は、抽出項目について、項目値に該当すると推定される文字認識結果を文字認識結果情報202の中から検索して割当を行う。項目名・項目値推定処理223は、基本的に、外部記憶装置106やROM102に格納された処理プログラムやデータで構成され、RAM103にコピーされて、CPU101やGPU108を利用して実行・利用されることで実現される。
【0029】
項目名・項目値制約データ214は、項目名・項目値推定処理223で検索を行うための項目名・項目値の制約に関する情報である。項目名・項目値の制約としては、項目名や項目値毎の文字種や用語等の文字認識結果に関する制約や、スキャン文書画像内の絶対・相対配置(レイアウト)等の制約が含まれる。項目名・項目値制約データ214は、外部記憶装置106やRAM103に格納され、利用時に外部記憶装置106にある場合には、RAM103にコピーされ利用される。
【0030】
辞書・文字パターン突合処理225は、文字認識誤りパターン辞書216と辞書・文字パターンデータ217を利用して、項目値の文字認識結果に対して補正処理を行う。辞書・文字パターン突合処理225は、基本的に、外部記憶装置106やROM102に格納された処理プログラムやデータで構成され、RAM103にコピーされて、CPU101やGPU108を利用して実行・利用されることで実現される。
【0031】
なお、文字認識処理においては、一般的に、スキャンされた紙媒体自体の劣化や、スキャン時の環境等の影響を受けるため、誤認識を完全になくすことは難しい。しかし、文字認識結果に誤りがあると、スキャン文書画像201から抽出した情報を再利用する際に問題が生じてしまう。そのため、辞書文字パターン突合処理225は、可能な限り、文字認識結果の補正処理を行うが、それでも、誤認識を減少させることはできても、完全になくすことは非常に難しい。
【0032】
文字認識誤りパターン辞書216は、文字認識処理における典型的な誤りパターンを収集した情報である。誤りパターンは、文字認識処理212と文字認識結果情報202に対して、様々なサンプルデータでの文字認識を行わせ、その正解結果と文字認識結果を対比することで、事前に登録しておく。また、実際にデータ入力作業を行う際に抽出された誤りパターンも収集され、追加される。文字認識処理における誤りパターンについては、詳しい説明は後述する。文字認識誤りパターン辞書216は、外部記憶装置106やRAM103に格納され、利用時に外部記憶装置106にある場合には、RAM103にコピーされ利用される。
【0033】
辞書・文字パターンデータ217は、抽出対象の項目の項目値を補正する際に用いられる情報である。項目値の記載内容(文字列)が事前に分かっている場合、あるいは、予想できる場合には、その記載内容を辞書・文字パターンデータ217として事前に作成しておく。そして、辞書文字パターン突合処理225は、辞書・文字パターンデータ217を利用して、項目値に対応する記載内容を推定する。辞書・文字パターンデータ217は、外部記憶装置106やRAM103に格納され、利用時に外部記憶装置106にある場合には、RAM103にコピーされ利用される。
【0034】
項目値情報203は、特定情報抽出部220で抽出された各項目の項目値の値である。項目値情報203は、外部記憶装置106やRAM103に格納され、利用時に外部記憶装置106にある場合には、RAM103にコピーされ利用される。
【0035】
特定情報修正部230は、ユーザに確認あるいは修正を行わせるために、項目値情報203の内容をユーザに提供する。また、ユーザが行う修正により正しい項目値の値を取得して、文字認識処理の誤りパターン情報を取得し、利用できるようにする。特定情報修正部230は、後述するユーザによる項目値の確認・修正処理231と、文字認識の誤りパターン情報抽出処理232の機能を有している。
【0036】
ユーザによる項目値の確認・修正処理231は、項目値情報203の内容をユーザに提供し、項目値の確認あるいは誤りの修正を行う。これにより、正しい項目値の値を取得する。ユーザによる項目値の確認・修正処理231は、外部記憶装置106やROM102に格納された処理プログラムやデータで構成され、RAM103にコピーされて、CPU101やGPU108を利用して実行・利用されることで実現される。
【0037】
文字認識誤りパターン情報抽出処理232は、ユーザにより修正された内容(正しい項目値)と、修正される前の文字認識結果から、文字認識誤りパターン情報を抽出する。ここで抽出された文字認識誤りパターン情報は、文字認識誤りパターン辞書216に登録され、以降、利用されるようになる。
図2における矢印251は、この情報の流れを示している。文字認識誤りパターン情報抽出処理232は、外部記憶装置106やROM102に格納された処理プログラムやデータで構成され、RAM103にコピーされて、CPU101やGPU108を利用して実行・利用されることで実現される。
【0038】
文書抽出情報204は、特定情報修正部230で取得された正しい項目値の情報である。文書抽出情報204は、外部記憶装置106やRAM103に格納され、利用時に外部記憶装置106にある場合には、RAM103にコピーされ利用される。
【0039】
文書抽出情報利用部240は、文書抽出情報204を利用する機器、アプリケーション、サービスなどである。文書抽出情報利用部240には様々な機器、アプリケーション、サービスなどが存在し、文書抽出情報204を利用するものであれば、いかなるものであっても適用可能である。
【0040】
以上述べてきた機能や処理の流れは、あくまでも、本実施例における一例であり、本発明においては、特にこれに限定されるものでない。特に、上記の機能は、複数の装置で分担して実行してもよく、また、複数の機器で同じ機能を分散して実行してもよい。
【0041】
図3は、本実施例において用いられるスキャン文書画像201の元になる文書300の一例である。以下の説明では、これを用いて説明をする。
この例では、文書300の種別は、帳票の一種である請求書である。文書内には、文書の内容を示す単位として区別可能な項目が複数含まれている。そして、各項目について、その内容を示す項目値が記載されている。例えば、
図3の文書300には、文書タイトル301、作成日付302、請求先名称303、請求元情報304、請求金額305、請求内容306、請求元の振込先情報307などの各種項目が含まれている。
【0042】
文書タイトル301は、文書300のタイトルが記載された項目である。
作成日付302、請求先名称303、請求元情報304、請求金額305、請求内容306、請求元の振込先情報307について、それぞれ、それらに対応する項目値が記載されている。例えば、作成日付302の項目は、それに対応する日付(ここでは、「2019年2月1日」)が項目値として記載されている。
【0043】
また、例えば、請求元情報304は、請求元の名称、住所、電話番号のような、区別可能な複数の項目から構成される。同様に、請求内容306も、請求内容の品名、数量、単価、金額と、小計、消費税、合計金額のような、区別可能な複数の項目から構成される。同様に、請求元の振込先情報307も、請求元の振込先の銀行名、支店名、口座番号、口座名義のような、区別可能な複数の項目から構成される。
【0044】
図4は、本実施例における処理の全体的な流れを示すフローチャートである。以下、
図4のフローチャートにしたがって、説明を行う。なお、本フローチャートにおける各処理は、CPU101が、ROM102やRAM103上のプログラムを用いることによって、実行される。
【0045】
まず、S401において、CPU101は、スキャナ110を用いて文書300のスキャンを行い、スキャン文書画像201を取得する。この処理は、
図2におけるスキャン文書画像201の取得に相当する。
次に、S402において、CPU101は、スキャン文書画像201を二値化する処理を行う。この処理は、
図2におけるスキャン文書画像201に対する文書画像処理211に相当する。
次に、S403において、CPU101は、スキャン文書画像201から罫線を除去する。この処理も、
図2におけるスキャン文書画像201に対する文書画像処理211に相当する。
【0046】
次に、S404において、CPU101は、スキャン文書画像201について、文字認識処理(OCR処理)を行い、文字認識結果を生成する。文字認識結果には、
図5を用いて後述するように、文書上に記載された複数の文字列が含まれる。文書認識処理は、
図2におけるスキャン文書画像201に対する文字認識処理212に相当する。そして、この処理により、
図2における文字認識結果情報202が生成される。
なお、
図3に示した文書300を用いた文字認識処理の結果の例については、
図5を用いて後述する。
【0047】
次に、S405において、CPU101は、文書の分類を行い、分類された文書の種別に応じて選択された項目を抽出する抽出項目選択処理を行う。項目とは、前述したように、文書の内容を示す区別可能な単位である。抽出項目選択処理は、
図2における文字認識結果情報202に対する文書分類・抽出項目選択処理221に相当する。
【0048】
次に、S406において、CPU101は、抽出された各項目に対応する文字認識結果を割り当てる割当処理を行う。すなわち、S405で抽出された各項目について、S404で生成された文字認識結果の検索を行い、各項目の項目値に該当する文字列を割り当てる。割当処理は、
図2における項目名・項目値推定処理223に相当する。
なお、割当処理の詳細については、
図6のフローチャートを用いて後述する。また、
図3に示した文書300を用いた場合の割当処理の結果については、
図7の表を用いて後述する。
【0049】
次に、S407において、CPU101は、項目値に割り当てられた文字認識結果を、文字認識誤りパターンなどを用いて補正する、項目値の補正処理を行う。この処理は、
図2における辞書・文字パターン突合処理225に相当する。
なお、補正処理の詳細については、
図8のフローチャートを用いて後述する。また、
図3に示した文書300を用いた場合の補正処理の結果については、
図11の表を用いて後述する。
【0050】
次に、S408において、CPU101は、ユーザにより修正された項目値の内容から、文字認識誤りパターン情報を抽出し登録する、文字認識誤りパターン情報抽出処理を行う。文字認識誤りパターン情報抽出処理では、まず、S407で補正された各項目値の文字認識結果をユーザに提示し、その内容の確認もしくは修正を行わせる。次に、ユーザにより修正された修正前の文字と、それに対応する修正後の文字とを、文字認識誤りパターン情報として抽出し、これを登録する。文字認識誤りパターン情報抽出処理は、
図2におけるユーザによる項目値の確認・修正処理231と、文字認識誤りパターン情報抽出処理232に相当する。
文字認識誤りパターン情報抽出処理の詳細については、
図12のフローチャートを用いて後述する。また、
図3に示した文書300を用いた場合の文字認識誤りパターン情報抽出処理の結果については、
図14の表を用いて後述する。
【0051】
次に、S409において、CPU101は、抽出した文字認識誤りパターン情報を出力する。この処理は、
図2における文書抽出情報204を作成し、文書抽出情報利用部240に提供する処理に相当する。
S409の処理が終了したら、本フローチャートは終了する。
【0052】
次に、
図5を用いて、文字認識処理により得られる文字認識結果について説明する。
図5(a)は、
図3に示した文書300に対する文字認識結果を表形式により示したものである。これは、
図4のフローチャートのS404における文字認識処理により取得される。
文字認識結果は、文字列単位で管理される。そして、
図5(a)中の「文字認識結果ID」として示されているように、文字列毎に識別番号として文字認識結果IDが付与される。
【0053】
また、各文字認識結果は、
図5(a)中の「文書画像内位置-サイズ」として示されているように、スキャン文書画像内の位置とサイズの情報を有している。
また、各文字認識結果は、文字列を構成する文字毎に、文字コードと位置・座標情報を有している。文字コードは、各文字認識結果は、文字列を構成する文字毎に、最尤候補に加えて、最尤候補より尤度が低い下位候補の情報を含んでいる。なお、
図5(a)中では、「文字認識結果(最尤候補文字列)」として、各文字認識結果について、最尤候補の文字コードの文字列のみを示している。
【0054】
なお、文字認識処理を行う際には、文書上に記載された文字の種類、使用言語、文字列の記載方向等の特性に応じて、文字認識結果として利用可能な文字種などについての制約を課すことができる。文字認識処理を行う際の制約とは、例えば、文字認識結果として、全文字種が利用可能である、金額文字種のみが可能である、などの制約である。ただし、ここでは特に制約を課していないため、
図5(a)中では「利用文字認識制約」として全文字種と記載されている。
【0055】
図5(a)の例では、「文字認識結果ID」の「1」は、
図3に示した文書300では文書タイトル301の文字認識結果に対応する。また、「文字認識結果ID」の「10」は、文書300の請求元情報304内の電話番号に対応する。
同様に、「文字認識結果ID」の「20」と「21」は、それぞれ、文書300の請求金額305内の「御請求金額」と金額に対応する。
また、「文字認識結果ID」の「30」と「31」は、それぞれ、文書300の請求内容306内の「合計」と合計金額に対応する。
【0056】
図5(b)と(c)は、文字認識結果として得られた下位候補を含む、文字認識結果のラティス構造の例を示している。
図5(b)は、「文字認識結果ID」の「1」についての文字認識結果である。
開始点511は文字認識結果の開始を示す印であり、終了点512は文字認識結果の終了を示す印である。開始点511から終了点512の間に、文字認識結果である文字列が配置される。
矢印513は、文字の列の流れを示している。文字列514は、最尤候補の文字521~524の文字列(最尤候補文字列)を示している。
【0057】
図5(a)の「文字認識結果(最尤候補文字列)」は、最尤候補文字列514に基づいて記載されている。なお、
図5(a)の「文字認識結果(最尤候補文字列)」において、
図3に示した文書300の記載と一致しない最尤候補の文字については、太文字で強調している。
【0058】
図5(c)は、「文字認識結果ID」の「21」についての文字認識結果である。
図5(b)では最尤候補の文字のみからなるラティス構成を示したが、
図5(c)では下位候補の文字も含んだラティス構造を示している。
図5(b)と同様に、開始点531は文字認識結果の開始を示す印であり、終了点532は文字認識結果の終了を示す印である。開始点531から終了点532の間に、文字認識結果である文字列が配置される。
矢印533は、文字の列の流れを示している。文字列534は、最尤候補の文字541~547の文字列(最尤候補文字列)を示している。
【0059】
また、最尤候補の文字541に対して下位候補の文字551が示されている。また、最尤候補の文字542に対して下位候補の文字552と553が示されている。同様に、最尤候補の文字543に対して下位候補の文字554が、最尤候補の文字544に対して下位候補の文字555が、最尤候補の文字546に対して下位候補の文字556が、それぞれ、示されている。
【0060】
図6は、
図4のフローチャートのS406において行われる、各抽出項目に対して文字認識結果を項目値として割り当てる割当処理の詳細を示すフローチャートである。割当処理の結果として、各抽出項目の項目値となる文字認識結果が特定され、全抽出項目の項目値の文字認識情報が得られる。以下、
図6のフローチャートに従って、割当処理について説明する。なお、本フローチャートにおける各処理は、CPU101が、ROM102やRAM103上のプログラムを用いることによって、実行される。
【0061】
まず、S601において、CPU101は、文書上における項目値の記載位置の情報が「固定」であるか「可変」であるかを判定する。この判定は、
図4のフローチャートのS405の抽出項目選択処理で分類された文書の種別に基づいて抽出された各項目の項目値の記載位置に基づいて行われる。
項目値の記載位置が「固定」である場合、S602へ進む。「可変」の場合、S603へ進む。
【0062】
項目値の記載位置が固定である場合、S602において、CPU101は、記載位置に基づいて文字認識結果を項目値として割り当てる。すなわち、項目値の記載位置が固定した範囲内にあるため、その範囲内の文字認識結果を検索して、文字列があれば、それを項目値として割り当てる。
S602の処理が終了したら、S608へ進む。
【0063】
項目値の記載位置が可変である場合、S603において、CPU101は、項目名の検索を行う。すなわち、
図4のフローチャートのS405の抽出項目選択処理で抽出された項目の項目名の文字列に一致あるいは類似する文字列を文字認識結果の中から検索する。
【0064】
次に、S604において、CPU101は、S603で項目名の検索結果があったか否かを判定する。
項目名の検索結果があった場合、S605へ進む。項目名の検索結果がなかった場合、S608へ進む。
【0065】
項目名の検索結果があった場合、S605において、CPU101は、検索結果に基づいて項目値の検索を行う。この検索は、
図4のフローチャートのS405の抽出項目選択処理で抽出された項目の情報に含まれる、文書画像内における項目名の位置に対する項目値の相対方向に関する情報に基づいて行われる。なお、項目名の位置に対する項目値の相対方向の情報は複数指定されている場合があるため、その場合は先頭から検索を行っていき、該当する文字列があれば、それを優先候補とする。
S605の処理が終了したら、S606へ進む。
【0066】
S606において、CPU101は、S605で項目値の検索結果があったか否かを判定する。
項目値の検索結果があった場合、S607へ進む。項目値の検索結果がなかった場合、S608へ進む。
項目値の検索結果があった場合、S607において、CPU101は、検索結果の文字認識結果を項目値として割り当てる。
S607の処理が終了したら、S608へ進む。
【0067】
S608において、CPU101は、項目値の割り当てができたか否かを判定する。
項目値の割り当てができた場合、S610へ進む。項目値の割り当てができなかった場合、S609へ進む。
項目値の割り当てができなかった場合、S609において、CPU101は、項目値に該当する文字認識結果情報は該当なしとする。
S609の処理が終了したら、本フローチャートは終了する。
項目値の割り当てができた場合、S610において、CPU101は、割り当てられた文字認識結果から、項目値の文字認識結果情報を作成する。
S610の処理が終了したら、本フローチャートは終了する。
【0068】
次に、
図7を用いて、割当処理によって項目値に対して文字認識結果が割り当てられる過程について説明する。
図7(a)は、
図3に示した文書300についての抽出項目の例を、表形式により示したものである。これは、
図4のフローチャートのS405の抽出項目選択処理の結果として得られるものである。
文書300について
図4のフローチャートのS404で文字認識処理により得られた文字認識結果(
図5(a))に対し、S405の抽出項目選択処理を行うと、文書の種別として、「請求書」が得られる。そして、文書が請求書である場合、抽出項目として、
図7(a)に示したような項目が抽出される。
【0069】
各抽出項目には、識別をするための「抽出項目ID」が付与される。「抽出項目」は、抽出すべき項目であり、文書内に記載されたものである。したがって、基本的に、その記載内容は文字認識結果として得られている。ただし、文書によっては抽出項目の項目値が記載されていない場合があり、また、記載されていても、それに該当する文字認識結果に誤りを含んでいる場合もあり得る。
各抽出項目は、「項目値の位置」として、文書上における項目値の記載位置に関する情報を有している。項目値の位置が「固定」である場合は、項目値の記載位置として、文書中の特定された位置(範囲)の情報が含まれる(ただし、
図7(a)では不表示)。一方、項目値の位置が「可変」である場合は、項目値の記載位置に関する情報は含まれない。その代わりに、「項目名の文字列」の情報と「項目名の位置に対する項目値の相対方向」の情報が含まれる。
【0070】
帳票のような文書では、一般的に、抽出項目の項目値(例えば、金額)が記載される場合、何の項目値であるかを特定するために、その項目名(例えば、「請求金額」)が記載されている。これを利用して、項目値に該当する文字認識結果を検索するために、
図6の割当処理が行われる。
なお、「項目値の文字列」に複数の文字列がある場合は、それぞれに検索が行われ、先頭に記載されている方から優先的に検索結果とする。また、「項目名の位置」が「固定」である場合は、「項目名の文字列」と「項目名の位置に対する項目名の相対位置」に関する情報はないため、「(なし)」になっている。
【0071】
図7(b)は、文書300に対して得られた文字認識結果(
図5(a))に対し、
図6のフローチャートのS603で項目名の検索を行った結果の例を表形式で示したものである。
「抽出項目ID」が「4」~「10」の抽出項目については、
図7(a)に示したように、「項目名の位置」が「可変」で、「項目値の文字列」が指定されているため、「項目名の文字認識結果(最尤候補文字列)」に検索した結果の項目名が記載されている。また、「項目名の文字認識時の制約」として、その文字認識処理を行った際の制約が記載されている。
なお、抽出項目IDが「1」~「3」の抽出項目については、
図7(a)に示されているように、「項目名の位置」が「固定」であるため、「項目名の文字認識結果(最尤候補文字列)」と「項目名の文字認識時の制約」は「(なし)」になっている。
【0072】
図7(c)は、文書300に対して得られた文字認識結果(
図5(a))に対し、
図6のフローチャートのS610で作成された文字認識結果情報の例を表形式で示したものである。
抽出項目毎に、「項目値の文字認識結果(最尤候補文字列)」に、項目値として検索した文字認識結果が記載されている。また、「項目名の文字認識時の制約」に、その文字認識処理を行った際の制約が記載されている。
なお、「抽出項目ID」が「1」~「3」の抽出項目については、「項目名の位置」が「固定」であるため、「項目値の文字認識結果(最尤候補文字列)」には、文書中の特定された位置(範囲)の情報に基づいて検索された結果が記載されている。
【0073】
図8は、
図4のフローチャートのS407で行われる、項目値に割り当てられた文字認識結果を補正する項目値の補正処理を示すフローチャートである。補正処理の結果として、各抽出項目の項目値となる文字認識結果に対して補正が行われる。以下、
図8のフローチャートに従って、補正処理について説明する。なお、本フローチャートにおける各処理は、CPU101が、ROM102やRAM103上のプログラムを用いることによって、実行される。
【0074】
S801において、CPU101は、項目値として得られた文字認識結果に対し、再文字認識処理を行うか否かを判定する。この判定は、
図4のフローチャートのS405での文書分類結果により選択された項目の情報に含まれる、各項目の補正方法に関する情報である「項目値の再文字認識制約」(後述の
図9(a)を参照)に基づいて行われる。
「項目値の再文字認識制約」において、再文字認識処理を行う際の文字種等の制約が設定されている場合、再文字認識処理が必要であるとして、S802へ進む。制約が設定されていない場合、再文字認識処理が不要であるとして、S804へ進む。
【0075】
再文字認識処理が必要である場合、S802において、CPU101は、項目値の再文字認識処理を行う際の設定を行う。すなわち、「項目値の再文字認識の制約」に記載された情報に基づいて、再文字認識処理の制約を設定する。
S802の処理が終了したら、S803へ進む。
【0076】
S803において、CPU101は、項目値の再文字認識処理(OCR処理)を行う。これにより、文字認識結果が更新される。再文字認識処理の詳細については、
図9を用いて後述する。
S803の処理が終了したら、S804へ進む。
【0077】
S804において、CPU101は、項目値として得られた文字認識結果または再文字認識結果(以下、まとめて「(再)文字認識結果」という)に対し、辞書・文字パターンなどの補正用のパターン情報を用いた補正を行うか否かを判定する。この判定は、
図4のフローチャートのS405で抽出された項目の情報に含まれる、各項目の補正方法に関する情報である「項目値補正の辞書・文字パターン設定」(後述の
図9(a)を参照)の有無に基づいて行われる。
辞書・文字パターン設定がある場合、辞書・文字パターンを用いた補正を行うため、S805へ進む。辞書・文字パターン設定がない場合、辞書・文字パターンを用いた補正を行うことなく、本フローチャートの処理は終了する。
【0078】
S805において、CPU101は、項目値の(再)文字認識結果に対して、文字認識誤りパターン辞書(後述の
図10を参照)を用いて、(再)文字認識結果に文字(列)を追加する処理を行う。すなわち、(再)文字認識処理の際の制約に対応して、使用する文字認識誤りパターン辞書を切り替え、その中から一致する文字認識誤りパターンを見つけて、(再)文字認識結果として得られたラティス構造に追加する処理を行う。
なお、文字認識誤りパターン辞書に基づくラティス構造の追加の詳細については、
図10を用いて後述する。
S805の処理が終了したら、S806へ進む。
【0079】
S806において、CPU101は、補正用の辞書・文字パターン(後述の
図11を参照)を選択する。すなわち、辞書及び文字パターンは(再)文字認識処理を行った際に用いた制約毎に用意されており、ここでは、制約に対応した辞書及び文字パターンが選択される。
なお、文字認識処理の際の制約毎に用意された辞書及び文字パターンの詳細については、
図11を用いて後述する。
S806の処理が終了したら、S807へ進む。
【0080】
S807において、CPU101は、項目毎の辞書・文字パターンを用いた補正を行う。これにより、文字認識結果が更新される。
S807の処理が終了したら、本フローチャートの処理は終了する。
【0081】
ここで、
図9を用いて、項目値の再文字認識処理について説明する。
図9(a)は、
図3で示した文書300に対する項目値の再文字認識処理の例を、表形式を用いて示したもので、
図4のフローチャートのS405の抽出項目選択処理により得られる結果の一部である。
文書300に対して得られた文字認識結果(
図5(a))に対し、
図4のフローチャートのS405の抽出項目選択処理を行うと、文書の種別とともに、
図9(a)に示されるような情報が得られる。すなわち、各項目値について、再文字認識処理する際の制約や、辞書・文字パターンを用いた補正を行う際の設定に関する情報が得られる。
【0082】
図9(a)に示されるように、各抽出項目には、識別をするための「抽出項目ID」が付与される。また、各抽出項目には、「項目値の再文字認識の制約」として、各項目の文字認識結果について、再文字認識処理を行う際の制約が含まれる。また、「項目値補正の辞書・文字パターン設定」として、補正処理を行う際の辞書・文字パターン設定が含まれる。
【0083】
「項目値の再文字認識の制約」で、文字種等の制約がなされている場合、その制約に基づいて、項目値の文字認識結果に対して、再文字認識処理が行われる。なお、再文字認識処理が不要な場合は、「項目値の再文字認識の制約」は「(なし)」となっている。
また、「項目値補正の辞書・文字パターン設定」で、辞書・文字パターンが設定されている場合、設定されている内容で、(再)文字認識結果に対して補正処理が行われる。なお、補正処理が不要な場合は、「項目値補正の辞書・文字パターン設定」は「(なし)」となっている。
【0084】
図9(b)は、
図9(a)の「項目値の再文字認識の制約」で指定される文字種等の制約の例を表形式で示したものである。各制約には、識別をするための「文字認識制約ID」が付与される。また、「文字認識制約内容」として、使用可能な文字の集合が記載されている。
例えば、「文字認識制約ID」が「1」の「全文字種」では、「文字認識制約内容」が「(制限なし)」であり、すなわち、再文字認識処理においてすべての文字が使用可能となっている。また、「文字認識制約ID」が「3」の「金額文字種」では、「文字認識制約内容」として「0」から「9」の数字、「,」、「¥」、「円」が記載されており、再文字認識処理においてこれらの文字のみが使用可能であることが示されている。
【0085】
図9(c)は、文字認識結果(
図5(a))に対し、
図8のフローチャートのS803で再文字認識処理を行った場合の結果の例を表形式で示したものである。ここでは、
図7(c)で示した「項目値の文字認識結果(最尤候補文字列)」に対し、「項目値の再文字認識の制約」を設定して再文字認識処理を行った結果が「項目値の(再)文字認識結果(最尤候補文字列)」として示されている。
【0086】
例えば、「抽出項目ID」の「6」の「合計金額」の「項目値の(再)文字認識結果」では、アルファベット「I」として誤認識されていた文字が、使用可能な文字を制約して再文字認識処理を行うことにより、数字の「1」に補正されたことが示されている。
なお、再文字認識処理を行わない項目値については、
図7(c)で示した元の「項目値の文字認識結果(最尤候補文字列)」のままとなっている。
【0087】
次に、
図10を用いて、文字認識処理の際の制約毎に作成された文字認識誤りパターン辞書を使用した補正処理について説明する。
図10(a)と(b)は、
図8のフローチャートのS805で使用する文字認識誤りパターン辞書の例を、表形式を使って示したものである。文字認識誤りパターン辞書は、文字認識処理の際の制約毎に事前に用意されているもので、文字認識処理の際の制約に応じて異なる辞書が使用される。
【0088】
図10(a)は、文字認識処理の際の制約が「全文字種」である場合に使用される文字認識誤りパターン辞書1001である。また、
図10(b)は、文字認識処理の際の制約が「金額文字種」である場合に使用される文字認識誤りパターン辞書1002である。いずれの文字認識誤りパターン辞書も、各文字認識誤りパターンとして、識別をするための「誤りパターンID」と、「文字認識結果」の文字(列)と、「補正結果」の文字(列)を有する。
本実施例では、各文字認識誤りパターン辞書は、「補正結果」として、対応する文字認識処理の際の制約に応じて使用可能な文字のみから構成される。これにより、不必要な「補正結果」の追加が抑止され、辞書・文字パターンを用いた補正処理を効率よく行うことができる。
【0089】
図10(c)と(d)は、文字認識処理の際の制約毎の文字認識誤りパターン辞書に基づいて、文字認識結果に対し、補正結果を追加することにより更新されたラティス構造を示している。
図10(c)は、
図5(b)の文字認識結果(「抽出項目ID」の「1」の項目値)に対して、
図10(a)の文字認識処理の際の制約が「全文字種」である場合に使用される文字認識誤りパターン辞書1001に基づいて補正処理を行ったラティス構造である。
「抽出項目ID」の「1」については、
図9(a)の「項目値の再文字認識の制約」(「なし」)に従い、再文字認識処理は行われないため、
図10(c)のラティス構造は
図5(b)の内容をすべて含んでいる。すなわち、
図5(b)中の文字521から524と、
図10(b)中の文字1021から1024は、それぞれ同じ文字である。
【0090】
しかし、
図9(a)の「項目値補正の辞書・文字パターン設定」に従い、文字認識処理の際の制約が「全文字種」である場合の文字認識誤りパターン辞書1001を用いた補正処理が行わる。ここでは、文字1021と1022からなる文字列(「言青」)が、
図10(a)の「誤りパターンID」の「1」の「文字認識結果」と一致している。そのため、
図10(c)のラティス構造には、「誤りパターンID」の「1」の「補正結果」である文字1061が、文字1021と1022からなる文字列の下位候補として追加されている。これにより、「請」を「言」と「青」に分割して誤認識してしまう文字認識結果の誤りパターンを補正することができる。
【0091】
図10(d)は、同様に、
図5(c)の文字認識結果(「抽出項目ID」の「6」の項目値)に対し、文字認識処理の際の制約が「金額文字種」である場合に使用される文字認識誤りパターン辞書1002に基づいて補正処理を行ったラティス構造である。
「抽出項目ID」の「6」については、
図9(a)の「項目値の再文字認識の制約」(「金額文字種」)に従って再文字認識処理が行われたため、
図5(c)ラティス構造における文字の一部が削除されている。すなわち、
図5(c)の文字541、552、553、554、555、556は、「項目値の再文字認識の制約」の利用可能な文字でないため、
図10(d)のラティス構造においては削除されている。なお、
図10(d)中の、文字1042から1047は、
図5(c)中の文字542から547と、それぞれ同じ文字である。
【0092】
ただし、
図5(c)中の最尤候補だった文字541が削除されたことにより、下位候補の文字551に対応する文字1051が最尤候補に繰り上がっている。
さらに、文字1045(「6」)が、
図10(b)の文字認識誤りパターン辞書1002における「誤りパターンID」の「1」の「文字認識結果」と一致している。そのため、文字認識誤りパターン辞書1002の「誤りパターンID」の「1」の「補正結果」である「5」が、文字1071として文字1045の下位候補に追加されている。
【0093】
次に、
図11を用いて、項目毎の補正用の辞書・文字パターンを使用した補正処理について説明する。
図11(a)と(b)は、
図8のフローチャートのS806で使用する項目毎の補正用の辞書と文字パターンを、表形式を用いて示したものである。補正用の辞書・文字パターンは、抽出項目の内容に応じて事前に作成されており、抽出項目の「項目値補正の辞書・文字パターン設定」(
図9(a)を参照)に応じて選択され使用される。
【0094】
図11(a)は、補正用の辞書1101の例を、表形式を用いて示したものである。この例では、抽出項目は、文書の種別が「請求書」である場合の文書タイトルである。このように、文書タイトルとして一般的に用いられ得る文字列には、通常は多数あるため、各文字列には、それらを識別するために「辞書項目ID」が付与される。また、「標準文字列」として、文書中で請求書の文書タイトルとして一般的に用いられ得る標準的な文字列が記載されている。
【0095】
図11(b)は、補正用の文字パターン1102の例を、表形式を用いて示したものである。この例では、抽出項目は、「請求金額」や「合計金額」などであり、これらに対応する項目値である「金額」として記載される文字列の文字パターンを示している。ここでは、文字パターンの「記載規則」として「正規表現」が用いられていることが示されている。そして、「文字パターン規則」として、正規表現で用いられる文字パターンが示されている。すなわち、正規表現で用いられる文字パターンは、1つ以上の数字の列の後に「,」があり、そのあとに1つ以上の数字の列がある文字列であり、文字列の先頭に「¥」があってもよく、また、その文字列の末尾に「円」があってもよいことが示されている。
【0096】
図11(c)は、
図8のフローチャートのS807で、
図9(c)に示した(再)文字認識結果に対して、補正用の辞書・文字パターンを用いて補正された結果を、表形式を用いて示したものである。
各抽出項目について、使用される補正用の辞書・文字パターンは、
図9(a)の各抽出項目について「項目値補正の辞書・文字パターン設定」で指定されたものである。そして、「項目値」として、補正用の辞書・文字パターンを用いて補正された結果が示されている。また、「補正内容」として、補正用の辞書・文字パターンを用いた補正前と補正後の内容が示されている。また、「項目値の(再)文字認識の制約」として、(再)文字認識処理を行った際の制約が示されている。
【0097】
例えば、「抽出項目ID」が「1」の「文書タイトル」の場合、
図10(c)に示した文字認識誤りパターンが追加されたラティス構造の中から、補正用の辞書1101の中の「標準文字列」にある一致する文字列(「請求書」)が検出される。
すなわち、
図10(c)のラティス構造の開始点1011から終了点1012の間にある、文字1061、1023、1024で構成される文字列に「請求書」がある。これは補正用の辞書1101の「辞書項目ID」の「1」の「標準文字列」である「請求書」と一致している。そのため、
図11(c)に示したように、「抽出項目ID」が「1」の「文書タイトル」の項目値は、「請求書」に補正されている。
【0098】
また、例えば、「抽出項目ID」が「6」の合計金額の場合、
図10(d)に示した文字認識誤りパターンが追加されたラティス構造の中から、補正用の文字パターン1102の中の「文字パターン規則」に一致する文字列が検出される。
すなわち、
図10(d)のラティス構造の開始点1031から終了点1032の間にある、文字1051、1042、1043、1044、1045、1046、1047で構成される文字列「10,162円」は、「文字パターン規則」に一致する。そのため、
図11(c)に示したように、「抽出項目ID」が「6」の項目値は、「10,162円」となっている。
【0099】
このように、補正用の辞書・文字パターンを使用した補正処理においては、(再)文字認識結果に対して、項目毎に対応した補正用の辞書や文字パターンを用いて補正を行う。しかし、
図10(d)に示したように、文字認識結果における誤りがすべて解消されるとは限らない。この場合は、最も尤度の高い文字列(例えば、「10,162円」)が選択される。このため、
図4のフローチャートで示したように、補正処理の後、ユーザによる項目値の修正が行われる。
なお、最も類似した文字列を算出する手法としては、文字認識結果の尤度や、文字の連接尤度、文字パターンや辞書内の文字の一致度などを使用する様々なものが知られている。例えば、文字列の動的計画法を用いた編集距離計算手法や、ビタビアルゴリズムなどが周知である。本発明においては、これらのいずれの手法を用いても構わない。
【0100】
図12は、
図4のフローチャートのS408で行われる、ユーザによる項目値の修正に基づいて、文字認識誤りパターン情報を抽出し登録する、文字認識誤りパターン情報抽出処理の詳細を示すフローチャートである。この処理において各抽出項目の項目値の確認・修正がユーザによって行われると、その修正内容に基づいて文字認識の誤りパターン情報が抽出され、登録される。以下、
図12のフローチャートに従って、文字認識誤りパターン情報抽出処理について説明する。なお、本フローチャートにおける各処理は、CPU101が、ROM102やRAM103上のプログラムを用いることによって、実行される。
【0101】
S1201において、CPU101は、抽出項目の項目値をユーザに提示するためのユーザインターフェースとして、確認・修正用画面を表示する。項目値を提示する際は、ユーザが容易に確認できるように、文書画像上で文字認識結果が存在する領域の近傍を含む画像と、抽出項目の項目値の文字列とを、並べて表示する。なお、表示される確認・修正用画面の例については、
図13を用いて後述する。
S1201の処理が終了したら、S1202へ進む。
【0102】
S1202において、CPU101は、表示した抽出項目の項目値に対し、ユーザが確認又は修正した結果を取得する。
ユーザが確認して修正が必要ないと判断した場合、ユーザが確認・修正用画面上で修正不要の旨を指示することにより、修正が不要であることを直接的に取得することができる。また、一定時間が経過するなどにより、修正が不要であることを間接的に取得することもできる。一方、ユーザが確認・修正用画面上で修正をした場合は、修正が必要であることと、修正内容を直接的に取得することができる。
S1202の処理が終了したら、S1203へ進む。
【0103】
S1203において、CPU101は、S1202でユーザによる修正が行われたか否かを判定する。
ユーザによる修正が行われた場合、S1204へ進む。修正が行われなかった場合、本フローチャートの処理は終了する。
【0104】
ユーザによる修正が行われた場合、S1204において、CPU101は、ユーザにより修正された項目値を文字認識誤りパターン情報として抽出し、文字認識誤りパターン情報を文字認識処理の際の制約と対応付ける。すなわち、ユーザにより修正された文字(列)と修正前の文字(列)とを対応させて文字認識誤りパターン情報として抽出し、文字認識誤りパターン情報を文字認識処理の際の制約と対応付ける。あるいは、ユーザによる項目値の編集履歴情報から、ユーザにより修正された部分を文字認識誤りパターン情報として抽出し、文字認識誤りパターン情報を文字認識処理の際の制約と対応付けてもよい。
これにより、文字認識処理において誤認識された文字(列)と、ユーザにより修正された正しい文字(列)とが対応付けられた文字認識誤りパターン情報が、文字認識処理の制約毎に、新たに作成される。
S1204の処理が終了したら、S1205へ進む。
【0105】
次に、S1205からS1207において、新たに作成された文字認識誤りパターン情報が文字認識誤りパターン辞書に登録される。これにより、文字認識処理の際の制約毎に文字認識誤りパターン情報が文字認識誤りパターン辞書に登録され、以後の文字認識処理において、文字認識処理の際の制約に応じて効率の良い文字認識誤りパターン情報の利用が可能となる。
【0106】
S1205において、CPU101は、S1204で生成された新しい文字認識誤りパターン情報を登録すべき文字認識誤りパターン辞書が存在するか否かを判定する。
文字認識誤りパターン情報を登録すべきすべての文字認識誤りパターン辞書が存在する場合、S1207へ進む。登録すべき文字認識誤りパターン辞書に存在しないものがある場合は、S1206へ進む。
【0107】
S1206において、登録すべき文字認識誤りパターン辞書に存在しないものがある場合CPU101は、不足している文字認識誤りパターン辞書を作成する。この処理が行われるのは、新しい、あるいは、使用されたことのない制約により文字認識処理の際に文字認識誤りパターン情報が抽出された場合である。この場合、文字認識処理を行う際の制約に対応する文字認識誤りパターン辞書が作成される。
S1206の処理が終了したら、S1207へ進む。
【0108】
S1207において、CPU101は、新しい文字認識誤りパターン情報を、その文字認識処理の際の制約に応じて該当する文字認識誤りパターン辞書に登録する。これにより、以後、文字認識処理の際の制約毎に文字認識誤りパターン辞書を利用することができるため、文字認識処理の際の制約に応じて効率の良い補正処理を行うことが実現される。
S1207の処理が終了したら、本フローチャートは終了する。
【0109】
図13は、
図12のフローチャートのS1201でユーザに提供されるユーザインターフェースである確認・修正用画面1300の例である。
図13の画面は、マルチウィンドウのGUI環境で、使用されることを想定している。確認・修正用画面上で、
図4のフローチャートのS407で得られた抽出項目の項目値の文字列に対して、
図2のスキャン文書画像201と突き合わせて、正しい項目値が抽出されているか否かを、ユーザに確認してもらう。そして、抽出された項目値に誤りがあった場合、ユーザに修正してもらう。以下、
図13に示した例を用いて、確認・修正用画面1300について説明する。
【0110】
確認・修正用画面1300は、ディスプレイなどの表示装置109においてウィンドウとして表示される。確認・修正用画面1300には、抽出項目の項目値の確認・修正作業をするため画面である旨を示すタイトル1301が表示される。
一時保存ボタン1302が押下されると、確認・修正用画面1300上での確認・修正作業の内容が一時保存され、確認・修正作業を一時的に終了させ、確認・修正用画面1300が閉じられる。この後、確認・修正用画面1300が開かれると、一時保存された作業内容が再び表示され、確認・修正作業を再開することができるようになる。
完了ボタン1303が押下されると、確認・修正用画面1300での確認・修正作業の内容を作業結果として保存した後、確認・修正用画面1300が閉じられて、確認・修正作業が終了する。
【0111】
表示領域1310には、
図3に示したような文書300のスキャン文書画像の全体が表示される。
表示領域1320には、
図4のフローチャートのS407で得られた抽出項目の項目値が表示される。ユーザは表示領域1320において項目値の確認・修正を行うことができる。
【0112】
図13の例では、表示領域1320には、
図4のフローチャートのS407で得られた4つの抽出項目に関する情報が各ボックス1330、1340、1350、1360に表示されている。この例のように、抽出項目の項目値が多数あるために表示しきれない場合には、スクロールバー1321が表示される。ユーザはスクロールバー1321を操作することにより、表示領域1320においてすべての抽出項目の項目値に対して確認・修正作業をすることができる。
【0113】
最初のボックス1330には、抽出項目「文書タイトル」の項目値に関する情報が表示されている。同様に、各ボックス1340、1350、1360には、抽出項目「電話番号」、「合計金額」、「請求元の振込先銀行・支店名」のそれぞれの項目に関する情報がそれぞれ表示されている。
1331には抽出項目の名称が表示されており、ボックス1330が「文書タイトル」の項目値に関するものであることを示している。1332には、文書画像内の位置・サイズに基づいて切り抜かれたスキャン文書画像201の項目値の領域が、部分画像として表示されている。1333には、1332に表示された部分画像を文字認識処理した項目値の文字列が表示されている。1332に表示された文字列は、ユーザが確認・修正することができる。
1333に表示された文字列が編集されない場合、文字認識結果が正しいとユーザが確認したこととなる。一方、1333に表示された文字列を編集して内容を変更した場合は、ユーザが修正を行ったこととなる。これは、他のボックス1340、1350、1360に表示された項目値についても同様である。
【0114】
図13に示された画面では、カーソル1334が1333の位置にあり、また、ボックス1330の枠が太枠として強調して表示されている。これは、ユーザが確認・修正作業する抽出項目として、1330の「文書タイトル」が選択されている状態にあることを示している。これに合わせて、1332に表示されている部分画像について、スキャン文書画像201における位置が確認しやすいように、表示領域1310内に表示されたスキャン文書画像201上に点線で示されている。
この状態において、ユーザは、カーソル1334が位置している抽出項目「文書タイトル」の項目値(「請求書」)を編集することができる。
このようにして、ユーザは、確認・修正用画面1300において、全抽出項目の項目値の確認・修正を行うことができる。
【0115】
図14(a)は、
図12のフローチャートのS1202で取得される、ユーザによる修正内容の例を表形式で示したものである。
図14(a)に示されるように、「抽出項目ID」毎に、「項目値の出力結果(ユーザ修正前)」と「ユーザ修正後の項目値」が記録されており、また、それらを比較した「修正内容」が検出されている。また、「項目値の文字認識制約」の情報も含まれている。
「項目値の出力結果(ユーザ修正前)」は、
図11(c)で示した項目値と同じものである。この例では、「抽出項目名ID」の「5」、「6」、「10」において、文字認識処理の誤りで、再文字認識処理や辞書・文字パターンを用いた補正処理で修正できなかったものが、ユーザによって修正されたことが示されている。また、ユーザにより修正された内容が、「項目値の文字認識の制約」と対応付けられて、「修正内容」として示されている。
【0116】
図14(b)は、
図14(a)の「修正内容」と「項目値の文字認識の制約」に基づいて抽出された文字認識誤りパターン情報の例を表形式で示したものである。
各文字認識誤りパターン情報は、それらを識別するために「誤りパターンの追加ID」が付与される。そして、「文字認識の制約」毎に、文字認識処理による誤った「文字認識結果」と、ユーザによる「修正結果」が記載されている。「文字認識結果」と「修正結果」は
図10(a)や(b)に示したものに対応し、「文字認識の制約」は
図9などに示したものに対応する。
これにより、文字認識処理の際の制約毎に文字認識誤りパターン辞書を利用することができるため、文字認識処理の際の制約に応じて効率の良い文字認識誤りパターン情報の利用が実現される。
【0117】
以上のとおり、本実施例によれば、文字認識処理の際の制約毎に、文字認識誤りパターン情報を記憶した辞書を用いることにより、文字認識結果の補正処理における処理効率を高め、処理時間の短縮を実現することができる。さらに、ユーザによる修正に基づいて文字認識誤りパターン情報を収集することにより、効率的な補正処理を実現することができる。これにより、データ入力業務の効率化による時間短縮に貢献し、ユーザの作業負担を軽減に貢献できる。
【0118】
<実施例2>
前述のとおり、実施例1では、例えば、
図3に示した文書300に記載されている「口座番号」については、「請求元の振込先口座番号」として、一つの項目として取り扱った。しかし、「口座番号」は、文書300に記載されているように、口座種別である「普通」、「当座」と口座番号である数字列という、区別可能な複数の単位がまとめて記載されたものである。そのため、実施例1では、このような項目値については、文字認識結果をそれぞれの単位に分割し、文字認識処理の際の制約や、補正用の辞書・文字パターンの設定を、単位毎に行う必要があった。
このため、例えば、「口座番号」のように、区別可能な複数の単位がまとめて記載されている項目については、割当処理において、単位毎に分割し、別々の項目として抽出する方が好ましい。ただし、これらの単位の内容は、互いに密接に関連しているため、補正処理においては一括して行う方がよい。
【0119】
図15を用いて、本実施例における割当処理によって項目値に対して文字認識結果が割り当てられる過程について説明する。
図15(a)は、実施例1における
図7(a)を置き換えたものである。
図15(a)の「抽出項目ID」の「1」から「10」は、
図7(a)の「抽出項目ID」の「1」から「10」にそれぞれ対応する。ただし、
図7(a)の「抽出項目ID」の「8」と「9」は分割されて削除され、
図15(a)では、その代わりに、「抽出項目ID」の「14」から「17」が追加されている。また、「抽出項目ID」の「11」から「13」も追加されている。
【0120】
なお、
図15(a)の「基準の位置に対する項目値の相対方向」では、相対方向だけでなく、その基準位置が指定できるようになっている。これにより、すでに検索された項目値の位置を基準にした相対方向の指定が可能である。
例えば、「抽出項目ID」の「11」の抽出項目である「請求元郵便番号」は、「抽出項目ID」の「3」の抽出項目である「請求書名称」の位置を基準にして、「下」方向にあることが指定されている。このようにすることで、項目値に対する文字認識結果の割当処理をより詳細に行うことができる。
【0121】
また、
図15(b)は、実施例1における
図9(a)を置き換えたものである。
図15(a)と同様に、
図15(b)の「抽出項目ID」の「1」から「10」は、
図9(a)の「抽出項目ID」の「1」から「10」にそれぞれ対応する。ただし、
図9(a)の「抽出項目ID」の「8」と「9」は分割されて削除され、
図15(b)では、その代わりに、「抽出項目ID」の「14」から「17」が追加されている。また、「抽出項目ID」の「11」から「13」も追加されている。
【0122】
図15(b)では、項目がより細かい単位に分割されたため、「項目値の再文字認識の制約」がより詳細に設定されている。例えば、
図9(a)の「抽出項目ID」の「9」の「請求元の振込先口座番号」は、
図15(b)では「抽出項目ID」の「16」の「請求元の振込先口座種別」と「抽出項目ID」の「17」の「請求元の振込先口座番号」に分割されている。これにより、「請求元の振込先口座種別」と「請求元の振込先口座番号」について、再文字認識処理の際の制約として、それぞれ、「口座種別文字種」と「数字文字種」が設定されている。
【0123】
また、「抽出項目ID」の「11」の「請求元郵便番号」と「抽出項目ID」の「12」の「請求元住所地名」については、同一の補正用の辞書「住所地名」を用いて、一括した補正処理が行われる。これは、住所地名と郵便番号には一義的な関係があるためであり、一括した補正処理を行うことにより、両方の項目値を矛盾なく補正することができる。
同様に、「抽出項目ID」の「14」の「請求元の振込先銀行名」と「抽出項目ID」の「15」の「請求元の振込先銀行支店名」についても、両者には密接な関係があるため、同一の補正用の辞書を用いた一括した補正処理が行われる。
以上のように、実施例2によれば、文字認識結果に対する補正処理をさらに正確に行うことができる。
【0124】
<その他の実施例>
本発明は、上述の実施例の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
また、本発明は、複数の機器から構成されるシステムに適用しても、1つの機器からなる装置に適用してもよい。
本発明は上述の実施例に限定されるものではなく、本発明の趣旨に基づき種々の変形が可能であり、それらを本発明の範囲から除外するものではない。すなわち、上述した各実施例及びその変形例を組み合わせた構成もすべて本発明に含まれるものである。
【符号の説明】
【0125】
100 データ入力システム