(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-09-27
(45)【発行日】2024-10-07
(54)【発明の名称】情報処理装置、サーバ、システム、情報処理方法、およびプログラム
(51)【国際特許分類】
G06V 30/412 20220101AFI20240930BHJP
G06V 30/12 20220101ALI20240930BHJP
G06V 20/62 20220101ALI20240930BHJP
G06T 7/00 20170101ALI20240930BHJP
【FI】
G06V30/412
G06V30/12 B
G06V20/62
G06T7/00 350B
(21)【出願番号】P 2020095330
(22)【出願日】2020-06-01
【審査請求日】2023-05-22
(31)【優先権主張番号】P 2019200837
(32)【優先日】2019-11-05
(33)【優先権主張国・地域又は機関】JP
(73)【特許権者】
【識別番号】000001007
【氏名又は名称】キヤノン株式会社
(74)【代理人】
【識別番号】110001243
【氏名又は名称】弁理士法人谷・阿部特許事務所
(72)【発明者】
【氏名】木村 満夫
【審査官】小池 正彦
(56)【参考文献】
【文献】特開2018-195022(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06V 30/412
G06V 30/12
G06V 20/62
G06T 7/00
(57)【特許請求の範囲】
【請求項1】
画像の画像データを文字認識処理することによって得られた前記画像内の文字列と前記文字列が認識された文字領域
に関する情報とが含まれる処理結果と、
予め定義された所定の項目のそれぞれに対応する文字列および文字領域に関する情報が出力されるように学習された学習モデルに
対して前記処理結果を入力
することによって出力された、前記所定の項目
のそれぞれに対応する前記画像内の文字列および文字領域
に関する情報と、を含む抽出結果
を取得する取得手段と、
前記抽出結果に基づき、
前記所定の項目
のそれぞれに対応する文字列を表示部に表示する表示制御手段と、
前記表示部に表示された前記所定の項目のうちの何れかの項目に対応する文字列を修正する指示を、ユーザから受け付ける受付手段と、
修正後の文字列と前記処理結果とに基づいて、ユーザが修正の指示をした項目に対応する文字領域を決定し、前記決定に基づき前記抽出結果を修正する修正手段と、
前記学習モデルが学習するためのデータとして、前記修正手段によって修正された前記抽出結果を出力する出力手段と、
を有することを特徴とする情報処理装置。
【請求項2】
前記修正手段は、
前記文字認識処理によって認識された前記画像内の文字領域のうち、前記修正後の文字列と同じである文字列が認識された前記文字領域を、前記ユーザが修正の指示をした項目に対応する文字領域として決定する
ことを特徴とする請求項1に記載の情報処理装置。
【請求項3】
前記修正手段は、
前記文字認識処理において認識された文字列のうち前記修正後の文字列との編集距離が所定の値以下である文字列が1つである場合、前記文字認識処理において認識された前記画像内の文字領域のうち、編集距離が前記所定の値以下である前記文字列が認識された文字領域を、前記ユーザが修正の指示をした項目に対応する文字領域として決定する
ことを特徴とする請求項1または2に記載の情報処理装置。
【請求項4】
前記所定の値は1であることを特徴とする請求項3に記載の情報処理装置。
【請求項5】
前記修正手段は、
前記ユーザが修正の指示をした項目に対応する、前記学習モデルの出力結果に基づき抽出された文字列と、前記修正後の文字列と、の差が所定の範囲内である場合、前記抽出結果における、前記ユーザが修正の指示をした項目に対応する文字領域を修正しない
ことを特徴とする請求項1から4のいずれか1項に記載の情報処理装置。
【請求項6】
前記所定の範囲内である場合とは、前記学習モデルの出力結果に基づき抽出された文字列と、前記修正後の文字列との編集距離が1以下である場合である
ことを特徴とする請求項5に記載の情報処理装置。
【請求項7】
前記ユーザが修正の指示をした項目に対応する前記画像内の位置として、ユーザが前記表示部にタッチするタッチ位置を受け付ける第2の受付手段と、
前記タッチ位置と前記修正後の文字列と前記処理結果とに基づき、ユーザが修正の指示をした項目に対応する前記文字領域を決定し、前記決定に基づき前記抽出結果を修正する第2の修正手段と、をさらに有する
ことを特徴とする請求項1から6のいずれか1項に記載の情報処理装置。
【請求項8】
前記第2の修正手段は、
前記タッチ位置に基づく前記画像内の位置と、前記文字認識処理によって認識された前記画像内のそれぞれの文字領域の位置と、の距離を導出し、前記距離が所定の範囲内である前記文字領域のうち、前記修正後の文字列との編集距離が最小である文字列が前記文字認識処理によって認識された前記文字領域を、前記ユーザが修正の指示をした項目に対応する文字領域と決定する
ことを特徴とする請求項7に記載の情報処理装置。
【請求項9】
前記修正手段によって前記ユーザが修正の指示をした項目に対応する文字領域が決定できない場合、前記第2の修正手段は、前記ユーザが修正の指示をした項目に対応する文字領域を決定し、
前記出力手段は、前記第2の修正手段が、前記ユーザが修正の指示をした項目に対応する文字領域を決定した場合、前記学習モデルが学習するためのデータとして、前記第2の修正手段による決定に基づき修正された前記抽出結果を出力する
ことを特徴とする請求項7または8に記載の情報処理装置。
【請求項10】
前記出力手段は、
前記第2の修正手段によって前記ユーザが修正の指示をした項目に対応する文字領域を決定できない場合、前記学習するためのデータを出力しない
ことを特徴とする請求項9に記載の情報処理装置。
【請求項11】
前記画像は、原稿をスキャンして得られたスキャン画像であり、前記画像の画像データを、前記文字認識処理を行うサーバに送信する画像データ送信手段をさらに有する
こと特徴とする請求項1から10のいずれか1項に記載の情報処理装置。
【請求項12】
前記取得手段
で取得される前記抽出結果は、前記画像の画像データを前記文字認識処理することによって得られた
前記画像内の文字列と、前記画像内における前記文字列が認識された領域である文字領域と、前記文字列の何れ
が前記所定の項目
それぞれに対応する
かを示す値と、がそれぞれ関連づけられているテーブル
であり、
前記出力手段は、前記テーブルが修正された場合、修正が反映された前記テーブルを前記学習するためのデータとして出力する
ことを特徴とする請求項1から11のいずれか1項に記載の情報処理装置。
【請求項13】
画像の画像データを文字認識処理する文字認識手段と、
前記文字認識手段で前記文字認識処理することによって得られた前記画像内の文字列と前記文字列が認識された文字領域
に関する情報とが含まれる処理結果
と、前記学習モデルに
対して前記処理結果を入力することによって出力された
、前記所定の項目
のそれぞれに対応する前記画像内の文字列および文字領域
に関する情報と、を含む前記抽出結果を、請求項1から12のいずれか1項に記載の情報処理装置に送信する送信手段と、
前記情報処理装置から、前記学習モデルが学習するためのデータを取得して、前記学習するためのデータに基づき、前記学習モデルを学習させる学習手段と、
有することを特徴とするサーバ。
【請求項14】
ユーザが修正の指示をした項目における修正後の文字列と、前記ユーザが修正の指示をした項目に対応する前記画像内の位置としてユーザが表示部にタッチしたタッチ位置と、
を取得する修正結果取得手段と、
前記タッチ位置と前記修正後の文字列と前記処理結果とに基づき、前記ユーザが修正の指示をした項目に対応する文字領域を決定して、決定に基づき前記抽出結果を修正する第3の修正手段と、をさらに有し、
前記学習手段は、
前記情報処理装置から前記学習するためのデータが出力されない場合、前記第3の修正手段によって修正された前記抽出結果に基づき、前記学習モデルに学習させる
ことを特徴とする請求項
13に記載のサーバ。
【請求項15】
情報処理装置と、サーバと、を有するシステムであって、
前記サーバは、
画像の画像データを文字認識処理する文字認識手段と、
前記文字認識手段で文字認識処理することによって得られた前記画像内の文字列と前記文字列が認識された文字領域に関する情報とが含まれる処理結果と、予め定義された所定の項目のそれぞれに対応する文字列および文字領域に関する情報が出力されるように学習された学習モデルに対して前記処理結果を入力することによって出力された、前記所定の項目のそれぞれに対応する前記画像内の文字列および文字領域に関する情報と、を含む抽出結果を、前記情報処理装置に送信する送信手段と、
を有し、
前記情報処理装置は
前記送信手段から送信された前記抽出結果
を取得する取得手段と、
前記抽出結果に基づき、
前記所定の項目
のそれぞれに対応する文字列を表示部に表示する表示制御手段と、
前記表示部に表示された前記所定の項目のうちの何れかの項目に対応する文字列を修正する指示を、ユーザから受け付ける受付手段と、
修正後の文字列と前記処理結果とに基づいて、ユーザが修正の指示をした項目に対応する文字領域を決定し、前記決定に基づき前記抽出結果を修正する修正手段と、
前記学習モデルが学習するためのデータとして、前記修正手段によって修正された前記抽出結果を出力する出力手段と、を有し、
前記サーバは
、
前記情報処理装置
の前記出力手段から出力された、前記学習モデルが学習するためのデータ
に基づき、前記学習モデルを学習させる学習手段
を更に有する、
ことを特徴とするシステム。
【請求項16】
画像の画像データを文字認識処理することによって得られた前記画像内の文字列と前記文字列が認識された文字領域
に関する情報とが含まれる処理結果と、
予め定義された所定の項目のそれぞれに対応する文字列および文字領域に関する情報が出力されるように学習された学習モデルに前記処理結果を入力
することによって出力された、前記所定の項目
のそれぞれに対応する前記画像内の文字列および文字領域
に関する情報と、を含む抽出結果
を取得する取得ステップと、
前記抽出結果に基づき、
前記所定の項目
のそれぞれに対応する文字列を表示部に表示する表示制御ステップと、
前記表示部に表示された前記所定の項目のうちの何れかの項目に対応する文字列を修正する指示を、ユーザから受け付ける受付ステップと、
修正後の文字列と前記処理結果とに基づいて、ユーザが修正の指示をした項目に対応する文字領域を決定し、前記決定に基づき前記抽出結果を修正する修正ステップと、
前記学習モデルが学習するためのデータとして、前記修正ステップにおいて修正された前記抽出結果を出力する出力ステップと、
を有することを特徴とする情報処理方法。
【請求項17】
コンピュータを、請求項1から
12のいずれか1項に記載の情報処理装置の各手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、OCR処理結果に基づき所定の項目に対応する文字列を抽出する技術に関する。
【背景技術】
【0002】
紙の帳票に記載されている特定の情報をユーザがコンピュータに入力する業務がある。また、その入力業務を支援するための入力支援システムがある。入力支援システムでは、帳票をスキャナで読み取ることによって得られた画像データに対して文字認識処理が行われ、その文字認識結果から入力に必要な情報が抽出される。
【0003】
特許文献1には、入力に必要な情報が表示されている画像上の領域をユーザが指定することにより、文字認識結果の修正作業を行う技術が記載されている。
【先行技術文献】
【特許文献】
【0004】
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、特許文献1の技術では、文字認識結果を修正するために、入力に必要な情報が表示されている画像上の領域をマウスなどの入力装置を用いて指定する必要があり、ユーザにとっては煩雑な操作が要求される。特に、MFPに備え付けられているタッチパネル、または携帯端末のように入力装置における画面のサイズが小さい場合、ピンチによる画面の拡大、スワイプによる画面のスクロールといった操作が必要となり、ユーザの操作はより煩雑になる。
【0006】
本開示の技術は、文字認識結果に基づく処理をする際のユーザ操作の手間を抑制することを目的とする。
【課題を解決するための手段】
【0007】
本開示に係る情報処理装置は、画像の画像データを文字認識処理することによって得られた前記画像内の文字列と前記文字列が認識された文字領域に関する情報とが含まれる処理結果と、予め定義された所定の項目のそれぞれに対応する文字列および文字領域に関する情報が出力されるように学習された学習モデルに対して前記処理結果を入力することによって出力された、前記所定の項目のそれぞれに対応する前記画像内の文字列および文字領域に関する情報と、を含む抽出結果を取得する取得手段と、前記抽出結果に基づき、前記所定の項目のそれぞれに対応する文字列を表示部に表示する表示制御手段と、前記表示部に表示された前記所定の項目のうちの何れかの項目に対応する文字列を修正する指示を、ユーザから受け付ける受付手段と、修正後の文字列と前記処理結果とに基づいて、ユーザが修正の指示をした項目に対応する文字領域を決定し、前記決定に基づき前記抽出結果を修正する修正手段と、前記学習モデルが学習するためのデータとして、前記修正手段によって修正された前記抽出結果を出力する出力手段と、を有することを特徴とする。
【発明の効果】
【0008】
本開示の技術によれば、文字認識結果に基づく処理をする際のユーザ操作の手間を抑制することができる。
【図面の簡単な説明】
【0009】
【
図2】キーバリュー抽出サーバのハードウェア構成の一例を示す図である。
【
図3】MFPのハードウェア構成の一例を示す図である。
【
図4】キーバリュー抽出サーバの機能構成の一例を示す図である。
【
図6】スキャナで読み取られた文書の画像の一例である。
【
図8】キーに対応する文字領域を決定する処理を示すシーケンス図である。
【
図9】操作パネルに表示される画面を示す図である。
【
図10】スキャナで読み取られた文書の画像の一例である。
【
図12】スキャナで読み取られた文書の画像の一例である。
【
図14】修正されたキーバリュー抽出結果の一例である。
【
図15】操作パネルに表示される画面の遷移を説明する図である。
【
図16】キーバリュー抽出サーバの機能構成の一例を示す図である。
【
図17】キーに対応する文字領域を決定する処理を示すシーケンス図である。
【
図19】操作パネルに表示される画面の遷移を説明する図である。
【
図20】キーに対応する文字領域を決定する処理を示すシーケンス図である。
【発明を実施するための形態】
【0010】
以下、本実施形態を実施するための形態について図面を参照して説明する。なお、実施形態は、本開示の技術を限定するものではなく、また、実施形態で説明されている全ての構成が課題を解決するための手段に必須であるとは限らない。また、以下の実施形態では好ましい実施形態について説明するが、以下の実施形態に限定されず、その要旨の範囲内で種々の変形および変更が可能である。
【0011】
<実施形態1>
[システム構成]
図1は、本実施形態に係る入力支援システムの全体構成を示す図である。
図1を用いて入力支援システム100について説明する。本実施形態の入力支援システム100は、企業の会計業務を処理するサービス(会計サービス)を提供する会計サーバ103に、必要なデータをユーザに代わって入力する入力支援を行うためのシステムであるものとして説明する。なお、入力支援システムによる入力支援は会計サービスに限られず、一般の帳票入力業務を支援するシステムとして利用することができる。
【0012】
MFP(Multifunction Peripheral)300は、ネットワークに接続が可能な情報処理装置としても機能する画像形成装置である。MFP300は、紙文書を画像データにするスキャン機能を備える。
【0013】
キーバリュー抽出サーバ200は、紙文書のスキャン画像から、所定の項目(キー)に対応する文字列等の情報(バリュー)を抽出する情報処理装置として機能するサーバである。項目は、本実施形態の場合、会計サービスで必要とされる項目が挙げられる。キーバリュー抽出サーバ200は、例えば、請求書の画像から「日付」の項目に対応するバリューである文字列「2019/06/12」を抽出する。
【0014】
会計サーバ103は、請求書等の所定の帳票の情報が入力されることで会計処理を行う会計サービスを提供するサーバである。MFP300、キーバリュー抽出サーバ200、会計サーバ103は、インターネット104を介して接続されている。
【0015】
[ハードウェア構成]
図2は、キーバリュー抽出サーバ200、会計サーバ103の基本的なハードウェア構成を示すブロック図である。
【0016】
CPU(Central Processing Unit)201は、各種のプログラムを実行し、様々な機能を実現するユニットである。RAM(Random Access Memory)202は、各種の情報を記憶するユニットである。RAM202は、CPU201の一時的な作業記憶領域としても利用される。ROM(Read Only Memory)203は、各種のプログラム等を記憶するユニットである。例えば、CPU201は、ROM203に記憶されているプログラムをRAM202にロードしてプログラムを実行する。
【0017】
外部記憶部207は、例えばフラッシュメモリ、HDD(Hard Disk Drive)又はSSD(Solid State Disk)等で構成され、各種のプログラムを記憶する。CPU201は、外部記憶部に記憶されているプログラムに基づき処理を実行する。これにより、
図4に示されるようなキーバリュー抽出サーバ200を構成する機能構成及び後述するシーケンスにおける各ステップの処理が実現される。
【0018】
Input/Outputインターフェース204は、ディスプレイ装置のような出力装置、キーボード、マウスといった入力装置とのインターフェースを提供するユニットである。
【0019】
NIC(Network Interface Card)205は、キーバリュー抽出サーバ200、会計サーバ103をネットワークに接続するためのユニットである。上述したユニットは、バス206を介してデータの送受信を行うことが可能となるように構成されている。
【0020】
図3は、MFP300の基本的なハードウェア構成を示すブロック図である。
図3のCPU301、RAM302、ROM303、NIC304は、それぞれ、
図2のCPU201、RAM202、ROM203、NIC205と同様であるため説明は省略する。
【0021】
スキャナ305は、紙文書を画像データに変換する入力ユニットである。プリンタエンジン306は、画像データの印刷を行う出力ユニットである。操作パネル307は、ユーザからのタッチ操作を受け付ける入力ユニット(入力部)であり、MFP300の情報をディスプレイに表示する出力ユニット(表示部)である。上述したユニットは、バス308を介してデータの送受信を行うことが可能となるように構成されている。
【0022】
[キーバリュー抽出サーバの機能構成]
図4は、キーバリュー抽出サーバ200の機能構成を示した図である。
図4を用いて、キーバリュー抽出サーバ200の機能について説明する。
【0023】
画像データ取得部401は、NIC205を介して、MFP300から原稿を読み取ることによって得られたスキャン画像の画像データを取得する。OCR部402は、文字認識処理部であり、画像データが示す画像において文字列が含まれる領域である文字領域を特定し、その文字領域に対して文字認識処理(OCR処理)を行う。OCR部402は、文字認識処理の結果として、少なくとも画像における文字領域の位置情報と文字領域に含まれる文字列とを出力する。
【0024】
キーバリュー抽出部403は、OCR部402による文字認識処理の結果に含まれる、キー(項目)に対応するバリュー(文字列)を、抽出するための処理を行う。キー(項目)は入力支援システム100が行う入力支援に応じて予め定義されている。このキー(項目)に対応するバリュー(文字列)をキーバリューともよぶ。キーバリュー抽出部403は、文字認識処理の処理結果と抽出ルール409とを用いて、キーバリューを抽出する。
【0025】
本実施形態の抽出ルール409は、文字認識処理の処理結果の特徴に基づき、それぞれの項目に対応する文字列が出力されるように機械学習された学習モデルであるものとして説明する。文字認識処理の処理結果の特徴には、(1)文字認識された文字列から得られる特徴、(2)文字領域の矩形情報、(3)文字列の周囲にある文字列から得られる特徴、が含まれる。
【0026】
キーバリュー抽出部403が所定の項目に対応する文字列および文字領域を抽出するために、抽出ルール409には、OCR部402の文字認識処理の処理結果である文字領域と文字領域で認識された文字列とが入力される。その結果、抽出ルール409は夫々の項目に対応する夫々の文字列および文字領域が出力されるように学習されている。このためキーバリュー抽出部403は、その出力結果に基づき所定の項目に対応する文字列および文字領域を抽出することができる。または、抽出ルール409は項目に対応する文字列および文字領域に関連する値を出力するように学習されており、キーバリュー抽出部403は、その出力された値に基づき項目に対応する文字列および文字領域を抽出してもよい。
【0027】
抽出ルール409は、例えば、入力データと教師データとを紐付け、SVM(Support Vector Machine)などのアルゴリズムを用いて学習させることで生成された学習モデルである。なお、SVMに限らず決定木またはニューラルネットワークのアルゴリズムを利用してもよい。
【0028】
また、キーバリュー抽出部403は、抽出結果として、それぞれの項目と項目に対応する文字列および文字領域とが関連付けられているデータであるキーバリュー抽出結果を生成する。キーバリュー抽出結果送信部405は、OCR部402が文字認識処理をした処理結果とキーバリュー抽出結果とをMFP300に送信する。キーバリュー抽出結果の詳細については後述する。
【0029】
本実施形態では、キーバリュー抽出部403によって項目に対応する文字列または文字領域が誤って抽出された場合、MFP300を介して、ユーザが、その項目に対応する正しい文字列および文字領域に修正するように指示することが可能である。修正結果取得部406は、MFP300から、ユーザの指示に基づき修正された項目に対応する正しい文字列および文字領域を示すデータ(修正結果)を取得する。
【0030】
学習部407は、修正結果取得部406が取得した修正結果に基づき、抽出ルール409を学習させる。本実施形態の抽出ルール409は、入力支援システム100を利用するそれぞれのユーザの業務に適した抽出ルール409となるように学習部407が抽出ルール409をさらに学習させることができる。
【0031】
例えば、学習部407は、OCR部402が文字認識処理をした処理結果を入力データとして抽出ルール409に入力して、ある項目に対応する文字列および文字領域を示す値を出力させる。そしてその出力結果と、その項目に対応する実際の正しい文字列および文字領域を示す値とのずれ量を算出する。学習部407は、そのずれ量が小さくなるように、抽出ルール409中のパラメータ等を更新する。項目に対応する実際の正しい文字列および文字領域を示すデータを教師データとよぶ。また教師データ等の学習のためのデータを用いて抽出ルール409のパラメータを更新することを学習とよぶ。
【0032】
本実施形態では、学習部407の学習では、修正結果取得部406が取得する修正結果である、所定の項目と夫々の項目に対応する文字領域および文字列とが対応付けられているデータが、教師データとして使用される場合がある。このため、抽出ルール409によってある項目に対応する文字列または文字領域が誤って出力された場合は、正しい文字列および文字領域が出力されるように、抽出ルール409に学習させることができる。
【0033】
なお、抽出ルール409は学習モデルに限られない。他にも、例えば、抽出ルール409は、帳票の種類ごとに夫々の項目に対応する文字領域の座標およびサイズが関連付けられているテーブルであってもよい。この場合、不図示の修正部が、修正結果取得部406が取得した修正結果に基づき、所定の項目を示す文字列が含まれる文字領域の座標およびサイズの値を修正する。このように、文字認識処理することによって得られた文字列のうち、項目に対応する文字列を抽出するための処理が正しく行われるように処理を行われる。
【0034】
領域決定部404は、ユーザによって修正された項目に対応する文字列と、ユーザが指示したスキャン画像内の位置と、に基づき項目に対応する正しい文字領域を決定(特定)し、キーバリュー抽出結果を修正する。詳細は後述する。
【0035】
キーバリュー抽出結果送信部405は、MFP300にキーバリュー抽出結果を送信する。キーバリューデータ送信部408は、NIC205を介して、それぞれの項目と項目に対応する文字列を会計サーバ103に送信する。
【0036】
図4の各部の機能は、キーバリュー抽出サーバ200のCPUがROMに記憶されているプログラムコードをRAMに展開し実行することにより実現される。または、
図4の各部の一部または全部の機能をASICや電子回路等のハードウェアで実現してもよい。
【0037】
[MFPの機能構成]
図5は、MFP300の機能構成を示した図である。
図5を用いて、MFP300の機能について説明する。
【0038】
UI部501は、操作パネル307に、ユーザに所定の通知をするための画面を表示させる表示制御部としての機能と、操作パネル307を介してユーザからの入力を受け付ける受付部としての機能を有する。
【0039】
スキャン実行部502は、スキャナ305によって原稿を読み込むことによって得られたデータを画像データに変換する。画像データ送信部503は、NIC304を介して、原稿の画像データをキーバリュー抽出サーバ200に送信する。
【0040】
キーバリュー抽出結果取得部504は、NIC304を介してキーバリュー抽出サーバ200からキーバリュー抽出結果を取得する。
【0041】
領域決定部506は、UI部501を介してユーザによって修正の指示がされた項目に対応する修正後の文字列を取得し、取得した修正後の文字列に基づきその項目に対応する正しい文字領域を決定する。領域決定部506は、決定された文字領域をキーバリュー抽出結果に反映させてキーバリュー抽出結果を修正する。詳細は後述する。
【0042】
修正結果送信部505は、UI部501を介してユーザが行った修正に基づき修正されたキーバリュー抽出結果を、NIC304を介してキーバリュー抽出サーバ200に送信(出力)する。修正されたキーバリュー抽出結果は、学習部407が学習するためのデータとして使用される。
【0043】
このように本実施形態のMFP300は、キーバリュー抽出サーバ200から送信されたキーバリュー抽出結果に基づき、所定の処理を行う情報処理装置としても機能する。
【0044】
図5の各部の機能は、MFP300のCPUがROMに記憶されているプログラムコードをRAMに展開し実行することにより実現される。または、
図5の各部の一部または全部の機能をASICや電子回路等のハードウェアで実現してもよい。
【0045】
[キーバリュー抽出結果について]
図6は、MFP300のスキャン実行部502によってスキャンされた紙文書の画像データが示す画像の一例を示す図である。
図6に示すように、画像は、例えば、見積書のように、会計サーバ103に入力する情報が記載された紙文書(原稿)を読み取ることによって得られたスキャン画像の画像データである。
【0046】
図7は、文字認識処理を行った結果認識された文字領域および文字列と、認識された文字領域および文字列のうち予め定義された項目に対応する文字列および文字領域であることを示す値と、が含まれるキーバリュー抽出結果700を示す図である。
【0047】
キーバリュー抽出結果700は、文字領域(列701)、文字領域で認識された文字列を示す文字認識結果(列702)、および項目の名称を示すラベル(列703)を保持する各列のデータがレコード単位(行単位)で関連付けて保持されている。またレコードは、文字領域ごとに生成されている。
【0048】
列701の文字領域は、画像における文字列を含む矩形領域である文字領域の位置情報を保持する列である。位置情報として、文字領域の位置を示す座標の値と文字領域のサイズを示す値が保持される。画像内の座標は原点が左上で、縦がy方向、横がx方向に延びる座標系を用いており、列701には、左側から順に、x方向の座標、y方向の座標、x方向のサイズ(幅)の値、y方向のサイズ(高さ)の値、がそれぞれ保持されている。
【0049】
列702は、文字領域に対してOCR処理をした結果認識された文字列を保持する列である。列701と列702とに保持されている情報は、画像データに対してOCR部402による文字認識処理の処理結果である。
【0050】
列703は、項目(キー)の名称を示す値を保持するための列である。夫々の項目の名称を示す値をラベルとよぶ。会計システムにおける項目は、会計サーバ103で必要とされる項目であり、本実施形態における項目は、スキャンされた文書のタイトル、請求先の電話番号、文書の管理番号、文書の発行日、金額の総額の5項目であるものとして説明する。このように、本実施形態では、キーバリュー抽出結果には、文字認識処理の処理結果が含まれているものとして説明するが、文字認識処理の処理結果は別のデータとして生成されてもよい。
【0051】
列703には、文書のタイトルを示す項目に対応する文字列および文字領域を保持するレコードには「タイトル」の値(ラベル)が付与される。請求先の電話番号の項目には「電話番号」の値が付与される。文書の管理番号の項目には「番号」の値が付与される。文書の発行日の項目には「日付」の値が付与される。金額の総額の項目には「金額」の値が付与される。
【0052】
キーバリュー抽出部403は、列701の文字領域と列702の文字列とを抽出ルール409に入力して、夫々の項目に対応する文字列および文字領域を出力させる。キーバリュー抽出部403は、抽出ルール409の出力結果に基づき、文字認識処理の処理結果における文字列および文字領域を有するレコードのうち、夫々の項目に対応するレコードに、該当する項目の名称を示すためラベルを付与する。こうしてキーバリュー抽出結果700が生成される。キーバリュー抽出結果700はMFP300に送信される。
【0053】
図7のキーバリュー抽出結果700の行704~708における文字認識結果の文字列は、項目(キー)に対応する文字列(バリュー)として抽出された文字列である。このため行704~708における列703には抽出対象の項目であることを示すラベルが付与されている。
【0054】
図7に示すキーバリュー抽出結果700は、キーバリュー抽出部403がキーバリューを正しく抽出し、列703に正しいラベルが保持されている例である。しかしながら、列703のラベルは、項目に対応するレコードとは異なるレコードに付与されてしまうことがある。つまり抽出ルール409は誤って項目に対応する文字列および文字領域を出力することがある。例えば、請求先の電話番号を項目として設定してある場合、請求先以外の電話番号をその項目に対応する文字列として出力されてしまうことが考えられる。この場合は、項目に対応する文字列をユーザが入力して修正することが可能である。また、項目に対応する正しい文字領域についてもユーザが画面をタッチして指示することが可能である。
【0055】
学習部407は、項目に対応する正しい文字列と、項目に対応する正しい文字領域とを含む教師データがあれば、抽出ルール409を学習させて抽出ルール409を更新させることができる。このように、抽出ルール409を学習させることで、正しいキーバリューが抽出されるように抽出ルール409を更新することができる。しかし、MFP300に備え付けられている操作パネル307の画面のサイズが小さいことがある。このため、ユーザが正しい文字領域を、操作パネル307を介して指示しようとすると、ユーザの操作が煩雑になる虞がある。
【0056】
そこで本実施形態では、ユーザが入力した項目に対応する正しい文字列に基づき、その項目に対応する文字領域を決定して、決定された文字領域を学習のためのデータとして出力する形態を説明する。また、項目に対応する文字列が含まれる文字領域を、ユーザが操作パネル307をタッチして指示する場合、そのタッチ位置が正確でない場合であっても項目に対応する正しい文字領域を決定する形態を説明する。
【0057】
[文字抽出処理および修正処理について]
図8は、本実施形態の入力支援システムにおける処理を示すシーケンス図である。
図8のシーケンス図で示されるそれぞれの装置における処理は、それぞれ装置のCPUがROMに記憶されているプログラムコードをRAMに展開し実行することにより行われる。また、
図8におけるステップの一部または全部の機能をASICや電子回路等のハードウェアで実現してもよい。なお、各処理の説明における記号「S」は、当該フローにおけるステップであることを意味する。なお、説明の便宜上、ユーザの動作にも「S」を付して説明する。
【0058】
S801においてユーザは、MFP300のスキャナ305に原稿(紙文書)をセットして、スキャン開始の指示をする。本ステップにおけるユーザの操作をトリガーに入力支援システムにおける処理は開始される。
【0059】
S802においてMFP300のスキャン実行部502は、紙文書のスキャンを実行し、紙文書の画像データを生成する。画像データ送信部503は、キーバリュー抽出サーバ200に生成された画像データを送信する。
【0060】
S803において画像データ取得部401は、MFP300から送信された画像データを取得し、OCR部402がその画像データに対して文字認識処理を実行する。
【0061】
S804においてキーバリュー抽出部403は、抽出ルール409に文字認識処理の処理結果を入力して出力された結果に基づき、予め定義された夫々の項目に対応する文字列および文字領域を抽出する。そして、キーバリュー抽出部403は、文字認識処理の処理結果に含まれるレコードのうち、項目に対応する文字領域および文字列を含むレコードには、その項目の名称を示すラベルを付与して、
図7に示すキーバリュー抽出結果700を生成する。キーバリュー抽出結果送信部405は、生成されたキーバリュー抽出結果700をMFP300に送信する。
【0062】
S805においてMFP300のキーバリュー抽出結果取得部504は、文字認識処理の処理結果が含まれるキーバリュー抽出結果700を取得する。また、MFP300のUI部501は、操作パネル307に、取得されたキーバリュー抽出結果に基づき、夫々の項目と項目に対応する夫々の文字列とを表示する。
【0063】
図9は、本ステップによってMFP300の操作パネル307に表示される画面901を示す図である。画面901は、キーバリューの抽出結果をユーザが確認および修正するために表示される。バリュー表示欄902~906は、キー表示欄912~916に表示される項目に対応する文字列を表示する表示欄である。
【0064】
S806においてユーザは、MFP300の操作パネル307に表示される画面901から、それぞれの項目に対応する文字列の抽出結果を確認し、文字列に誤りがあれば修正する。
【0065】
MFP300の操作パネル307に表示されている画面901のバリュー表示欄902~906のいずれかをユーザがタッチすると、画面901から編集モードに切り替わる。編集モードでは、ユーザはタッチしたバリュー表示欄の項目の正しい文字列を入力して、バリュー表示欄の文字列を修正することができる。つまり、ユーザは、修正するバリュー表示欄をタッチすることで、修正する項目を指示することができる。ユーザが修正の入力後にユーザが登録ボタン907を押下すると、UI部501が修正後の文字列で登録を受け付ける。
【0066】
例えば、画面901ではキー表示欄916に表示されている「電話番号」のバリューとして「098-765-4321」が抽出結果として表示されている。
図6の矩形605に示すように正しく抽出されるべき請求先の電話番号の文字列は「0123-45-6789」であるとする。この場合、ユーザは、バリュー表示欄906をタッチしてから「0123-45-6789」を入力して、項目に対応する文字列を修正することができる。
【0067】
このようなユーザが修正を必要とするキーバリューの抽出の誤りの原因については、項目に対応する文字領域が誤って抽出されている場合がある。または、ユーザが修正を必要とするキーバリューの抽出の誤りの原因については、項目に対応する文字領域は正しく抽出されていたがその文字領域に対する文字認識が誤っている場合がある。
【0068】
S807においてMFP300の領域決定部506は、修正前の項目に対応する文字認識結果の文字列と、修正後の文字列との差が所定の範囲内(許容範囲内)かを判定する。本実施形態では、キーバリュー抽出部403が抽出した修正前の項目に対応する文字列とユーザが修正した修正後の文字列との間の編集距離(レーベンシュタイン距離)が閾値以下である場合、所定の範囲内と判定する。閾値は、例えば1である。
【0069】
例えば、S804においてキーバリュー抽出部403が抽出した、ある項目に対応する修正前の文字列が「0123-45-6788」であり、ユーザが修正した修正後の文字列が「0123-45-6789」の場合、編集距離は1となる。このため閾値が1であれば、項目に対応する修正前の文字列と修正後の文字列との差は所定の範囲内と判定される。
【0070】
文字列の差が所定の範囲内である場合(S807がYES)、キーバリューの抽出の誤りの原因については、項目に対応する文字領域は正しく抽出されているものの、文字領域に対する文字認識処理が誤っていたためと考えられる。このため、後述する項目に対応する正しい文字領域の決定は行わずにS815に進む。
【0071】
文字列の差が所定の範囲内ではない場合(S807がNO)、キーバリューの抽出の誤りの原因については、項目に対応する文字領域が誤って抽出されたためと考えられる。この場合S808に進み、領域決定部506は、画像データの全体を文字認識処理した処理結果から、修正後の文字列と同じである文字列を決定し、その文字列が認識された文字領域を項目に対応する正しい文字領域として決定する。本実施形態では、キーバリュー抽出結果に文字認識処理した処理結果が含まれているため、領域決定部506は、キーバリュー抽出結果から、項目に対応する正しい文字領域を決定する。なお、ここで、同じとは、文字が全く同じものに限定されず、同じとみなせるものも含むものとする。
【0072】
図10は、S802においてMFP300のスキャン実行部502によってスキャンされたスキャン画像であり、
図6とは異なる紙文書のスキャン画像の一例を示す図である。
図11は、
図10の画像データに対して文字認識とキーバリュー抽出を行った結果を示す、
図7とは別の、キーバリュー抽出結果である。
図10および
図11を用いて、S808の処理について説明する。
【0073】
図11の行1102~1106は、項目を示すラベルが付与された文字認識処理の処理結果(文字領域および文字認識結果)含むレコードである。
図10の点線矩形1001~1005は、項目に対応する抽出された文字領域であることを示している。しかしながら、
図11のキーバリュー抽出結果にはキーバリュー抽出部403による抽出の誤りが含まれている。具体的には、ラベルが「電話番号」である項目に対応する文字領域および文字列として、行1106のレコードに電話番号のラベルが保持されているが、このラベルの付与は正しく無いものとする。このため、S806において「電話番号」に対応する正しい文字列である「0123-45-6789」がユーザによって入力されたものとする。また、S807においてユーザが入力した修正後の文字列「0123-45-6789」と誤って抽出された行1106の文字認識結果「098-765-4321」とは許容範囲内と判定されなかったためS808に処理が遷移しているものとする。
【0074】
S808において領域決定部506は、列1108の文字認識結果に保持されている全ての文字列に対して、ユーザが修正した修正後の文字列との編集距離を導出する。編集距離が所定の値以下である文字認識結果の文字列が1つの場合、領域決定部506は、その所定の値以下の文字列と修正後の文字列とは同じであるとみなして、項目に対応する正しい文字領域が決定できたと判定する。所定の値は例えば1である。
【0075】
図11の列1101は、各行の文字認識結果の文字列とユーザによる修正後の文字列「0123-45-6789」との編集距離を保持する列である。
図11では、列1101において編集距離が1以下であるのは、行1107に保持されている文字認識結果のみである。つまり、編集距離が所定の値である1以下の文字列が1つだけである。このため、
図11の例では、「電話番号」の項目に対応する正しい文字領域は、行1107の文字領域であるものとして決定できることになる。
図10の点線矩形1006は、
図11の行1107の文字領域に対応する文字領域である。
【0076】
このように、本実施形態では、項目に対応する文字領域が誤って抽出された場合、項目に対応する正しい文字領域に修正するために、ユーザがキーバリュー抽出結果または文字認識処理の処理結果から正しい文字領域を探して指定する必要はない。ユーザがその項目に対応する正しい文字列の入力に応じて、その修正後の文字列に基づき領域決定部506がその項目に対応する文字領域を決定することができる。
【0077】
S809では、S808においてユーザが入力した修正後の文字列に基づき、項目に対応する文字領域が決定できたかが判定される。例えば、修正後の文字列との編集距離が所定の値以下の文字列が複数ある場合、または編集距離が所定の値以下の文字列が無かった場合は、S808では、ユーザが修正指示した項目(誤って抽出された項目)に対応する正しい文字領域は決定されない。この場合は、正しい文字領域が決定されないと判定される。
【0078】
正しい文字領域が決定されない場合(S809がNO)、S810においてUI部501は、操作パネル307に、スキャンした原稿の画像データに基づきプレビュー画像を表示させる。そして、UI部501は、ユーザが修正指示した項目に対応する正しい文字領域を、操作パネル307上のプレビュー画像にタッチして指示するように、ユーザに促す。
【0079】
S811においてユーザは、修正後の文字列が記載されている、ユーザが修正指示した項目の正しい文字領域の位置を、MFP300の操作パネル307に表示されているプレビュー画面上をタッチして指示する。
【0080】
S812においてMFP300のUI部501は、ユーザのタッチを受け付け、操作パネル307のタッチ位置を検知する。そして、UI部501は、操作パネル307に画面1505(
図15参照)を表示させ、ユーザによる登録ボタン907の押下を受け付ける。このとき表示される画面1505では、ユーザによって修正が指示された項目に対応するバリュー表示欄には修正後の文字列が表示される。
【0081】
修正結果送信部505は、ユーザがタッチした操作パネル307上のタッチ位置に基づき、画像の座標にマッピングしたタッチ位置座標に変換してタッチ位置座標を決定する。修正結果送信部505は、S806でユーザが入力した修正後の文字列と、タッチ位置座標とを、キーバリュー抽出サーバ200に送信する。
【0082】
S813においてキーバリュー抽出サーバ200の修正結果取得部406は、MFP300から送信されたタッチ位置座標と修正後の文字列とその項目とを取得する。キーバリュー抽出サーバ200の領域決定部404は、タッチ位置座標と修正後の文字列とに基づき、ユーザが修正指示した項目に対応する正しい文字領域を決定する。
【0083】
図12は、S802においてMFP300のスキャン実行部502によってスキャンされたスキャン画像であり、
図6および
図10とは異なる紙文書のスキャン画像の一例を示す図である。
図13は、
図12の画像データに対して文字認識とキーバリュー抽出を行った結果であり、
図7および
図11とは別の、キーバリュー抽出結果を示すテーブルである。
図12および
図13を用いて、S810からS813の処理を説明する。
【0084】
図13の行1302~1306は、所定の項目に対応する文字列(文字領域)として項目を示すラベルが付与された文字認識処理の処理結果を含むレコードである。しかしながら、列1312の「電話番号」は、正しい文字列(文字領域)に付与されていないものとする。
【0085】
このため、キーバリュー抽出部403によって「電話番号」である項目の文字列が「098-765-4321」として抽出されたものの、ユーザによって「電話番号」である項目の文字列が「0123-45-6789」に修正されたものとする。
図13の列1311には、ユーザの入力による修正後の文字列「0123-45-6789」と文字認識結果の文字列との編集距離が保持されている。
図13の例では、編集距離が1以下の文字列が2つあるため、S808において領域決定部506は電話番号の項目に対応する正しい文字領域が決定できなかったことになる。このため処理はS810に遷移している。
【0086】
図12に示すタッチ位置1210は、ユーザがS811においてタッチした位置であり、S812においてそのタッチ位置座標は、(x,y)=(1110,493)と決定されている。
【0087】
S813においてキーバリュー抽出サーバ200の領域決定部404は、タッチ位置座標と、キーバリュー抽出結果のテーブルのすべて行の文字領域との距離を導出する。領域決定部404は、その距離が所定の値以下の文字領域のうち、修正後の文字列との編集距離が最小の文字列が認識された文字領域を、ユーザが修正指示した項目に対応する文字領域と決定する。所定の値は例えば100である。
【0088】
図13の列1301は、文字領域の位置とユーザがタッチした画像内のタッチ位置との距離を保持する列であり、タッチ位置座標が(1110,493)の場合の文字領域との距離を示している。行1307~1310は、タッチ位置座標との距離が所定の値である100以下の文字領域を有するレコードである。このうち、領域決定部404は、列1311の編集距離が最小である行1308の文字領域が、ユーザが修正指示した項目である「電話番号」の項目に対応する正しい文字領域と決定する。なお、最小のものが2つ以上ある場合は、距離が一番小さいほうの文字領域を正しい文字領域として決定されてもよい。
【0089】
このように、本実施形態では、ユーザが修正指示した項目に対応する正しい文字領域をユーザが画像をタッチして指示する場合、タッチ位置座標だけでなく修正後の文字列との編集距離についても考慮して、その項目に対応する文字領域を決定する。
【0090】
例えば、
図13ではタッチ位置座標との距離が一番小さい文字領域は「TEL:」の文字列が認識された行1307の文字領域であるが、これは項目に対応する文字領域ではない。このように単にタッチ位置座標に基づき項目に対応する文字領域を決定すると、画面が小さい場合などユーザが正確にタッチできない場合は、正しい文字領域を決定できない虞がある。本実施形態によればこのようにユーザが正確にタッチできない場合でも、項目に対応する文字領域を決定することができる。
【0091】
S814において領域決定部404は、S813で項目に対応する正しい文字領域が決定できたかどうかを判定する。
【0092】
S813で正しい文字領域が決定された場合(S814がYES)、S808で正しい文字領域が決定された場合(S809がYES)、はS815に進む。
【0093】
S815において学習部407は、領域決定部404、506によって決定された項目に対応する正しい文字領域の位置情報を示すデータを教師データとして用いて抽出ルール409に学習させる。抽出ルール409は、教師データに含まれる文字認識結果の特徴を抽出し学習することによって更新される。
【0094】
S808またはS813においてユーザが修正指示した項目に対応する正しい文字領域を決定できた場合、領域決定部404、506は、正しい文字領域を含むレコードにラベルが付与されるようにキーバリュー抽出結果は修正される。
【0095】
図14は、
図11のキーバリュー抽出結果におけるラベルが、S808の処理結果に基づきMFP300にて修正された後のキーバリュー抽出結果を示す図である。領域決定部506は、「電話番号」が項目である文字領域は行1107における文字領域であると決定している。このため領域決定部506は、
図14に示すように列1401において「電話番号」が行1107に付与されるようにキーバリュー抽出結果を修正する。
【0096】
S813で項目に対応する文字領域が決定された場合も同様に、領域決定部404は、
図13のキーバリュー抽出結果において列1312における「電話番号」が行1308に付与されるようにキーバリュー抽出結果を修正する。このように領域決定部404、506は、決定した正しい文字領域をキーバリュー抽出結果に反映させてキーバリュー抽出結果を修正する機能も有する。
【0097】
S815における学習では、例えば、
図14のような修正後のキーバリュー抽出結果が学習のためのデータとして用いられる。
図14の修正後のキーバリュー抽出結果をそのまま教師データとして使用して学習されてもよいし、または、修正後のキーバリュー抽出結果を加工して教師データまたは入力データとして用いて学習してもよい。
【0098】
S814で正しい文字領域が決定されなかった場合(S814がNO)、S816に進む。例えばタッチ位置座標との距離が所定の値以内の文字領域が存在しなかった場合は、S814で、文字領域が決定できなかったと判定される。この場合は、ユーザが修正指示した項目に対応する正しい文字領域が決定できかったため、S815の学習のためのステップへは進まないでS816に進む。このため、項目に対応する誤った文字領域が含まれているデータを学習のためのデータとして使われないようにすることができる。
【0099】
S816においてキーバリューデータ送信部408は、項目と夫々の項目に対応する文字列のデータを会計サーバ103に送信する。文字認識結果またはラベルが修正されたキーバリュー抽出結果が会計サーバ103に送信されてもよいし、修正後のキーバリュー抽出結果から、ラベルが付与されているレコードを抽出して、会計サーバ103で利用するデータのみを送信してもよい。
【0100】
図15は、
図8のフローの各ステップにおいて、MFP300の操作パネル307に表示される画面の遷移を示している。
【0101】
画面1501は、S805の処理の結果表示される画面901と同じ画面である。画面1502は、S806においてユーザ操作1506によって、画面1501の電話番号の文字列が修正された後の画面を示している。
【0102】
画面1503は、ユーザの入力した文字列から正しい文字領域が決定できなかった場合にS810において表示される、スキャンされた原稿の画像データのプレビュー画像を示している。画面1504は、S811において、ユーザ操作1507によって、修正指示された項目に対応する正しい文字領域がタッチされる様子を示している。画面1505は、S811の後に表示される画面であり、ユーザ操作1508によって、登録ボタン907が押下される様子を示している。
【0103】
図15の矢印は、画面遷移を示している。画面1501は画面1502に遷移し、S807またはS809でYESと判定された場合、画面1502から画面1505に遷移する。S807およびS809でNOと判定された場合、画面1502から画面1503に遷移する。画面1503は画面1504に遷移し、画面1504は画面1505に遷移する。
【0104】
図8のシーケンス図では、ユーザによってキーバリューの修正が行われる場合についてのフローを説明した。例えばS806でユーザによってキーバリューが修正されない場合は、キーバリューは正しく抽出できたことになる。この場合であっても、キーバリュー抽出結果を学習のためのデータとして用いて抽出ルール409に学習させてもよい。
【0105】
以上説明したように本実施形態によれば、ユーザが入力した項目に対応する修正後の文字列に基づいて、その項目に対応する正しい文字領域を決定することができる。このため、ユーザが項目に対応する文字領域を入力するような煩雑な操作を行う必要がないため、ユーザビリティを向上させることができる。
【0106】
また、所定の項目に対応する正しい文字領域をユーザが画面をタッチして指定する場合であっても、ユーザがタッチした文書画像上のタッチ位置に加えてユーザによる修正後の文字列にも基づいて項目に対応する正しい文字領域を決定する。このため、タッチ位置が正確でない場合であっても項目に対応する正しい文字領域を決定することが可能となる。
【0107】
なお、ユーザが修正指示した項目に対応する正しい文字領域の決定を、S808ではMFP300の領域決定部506が行い、S813ではキーバリュー抽出サーバ200の領域決定部404が行うものとして説明した。他にも、どちら一方の決定領域部だけがS808とS813との両方のステップにおいて項目に対応する正しい文字領域を決定する処理を行ってもよい。例えば、MFP300の領域決定部506が、S808だけでなくS813において項目に対応する文字領域を決定する形態でもよい。または、キーバリュー抽出サーバ200の領域決定部404が、S813だけでなくS808において項目に対応する文字領域を決定する形態でもよい。また、キーバリュー抽出サーバ200の領域決定部404は、MFP300から項目に対応する正しい文字領域の位置情報を取得できない場合に項目に対応する正しい文字領域を決定する処理を行ってもよい。
【0108】
本実施形態では、文字認識処理を行う画像データはスキャン画像であるものとして説明した。他にも例えば、文字認識処理を行う画像データは、電子データとして生成された文書の画像であってもよい。
【0109】
<実施形態2>
実施形態1では、MFP300がスキャンすることによって得られた画像データの全ての文字領域に対して文字認識処理を実行し、その結果に基づきキーバリューを抽出する形態を説明した。しかし、文字認識処理による処理負荷を軽減させる等の理由により、画像データの一部の文字領域に対してのみ文字認識処理が行われ、その文字認識処理の結果に基づきキーバリューを抽出する場合がある。このため本実施形態では、このような場合において、ユーザの修正した文字列に基づき修正対象の項目に対応する正しい文字領域を決定する方法を説明する。本実施形態は、実施形態1からの差分を中心に説明する。特に明記しない部分については実施形態1と同じ構成および処理である。
【0110】
[キーバリュー抽出サーバの機能構成]
図16は、本実施形態のキーバリュー抽出サーバ200の機能構成を示した図である。実施形態1と同一の構成については、同じ符号を付して説明を省略する。本実施形態のキーバリュー抽出サーバ200は、文字領域検出部1601をさらに有する。
【0111】
文字領域検出部1601は、画像データが示すスキャン画像内に存在する文字領域を検出する処理を行う。文字領域の検出方法は、例えば、ある閾値で2値化を行った画像から文字と推測される矩形領域を抽出する方法等、既知の方法を適用すればよい。
【0112】
また、本実施形態のキーバリュー抽出部1602は、文字領域検出部1601の処理した結果得られた文字領域の位置情報を学習モデル(不図示)に入力することで出力された結果から、スキャン画像の帳票種別を推定する。学習モデルは、画像内の文字領域の位置およびサイズの特徴に基づき、その画像の帳票種別が出力されるように機械学習された学習モデルである。他にも例えば、キーバリュー抽出部403は、データベースに記憶されている帳票の種別ごとの文字領域のレイアウトと、文字領域検出部1601が処理した結果得られた文字領域のレイアウトと、の一致度を算出することにより、帳票の種別を推定してもよい。
【0113】
そして、本実施形態のキーバリュー抽出部1602は、帳票の種別を用いて、キー(項目)に対応する文字列であるキーバリューが含まれる文字領域を抽出する。
【0114】
本実施形態の抽出ルール1603は、帳票の種類と画像内の文字領域の特徴とに基づき、夫々の項目の文字列が含まれる文字領域が特定可能な情報が出力されるように学習されている学習モデルであるものとして説明を行う。キーバリュー抽出部1602は、帳票の種別と文字領域検出部1601の処理した結果得られたスキャン画像の文字領域の位置等の情報とを、抽出ルール1603に入力して出力された結果に基づき、スキャン画像における夫々の項目の文字領域を抽出する。
【0115】
または、抽出ルール1603は、帳票の種類ごとに、夫々の項目の文字領域の位置を示す座標およびサイズ等の位置情報が記憶されているデータベースであってもよい。その場合は例えば、キーバリュー抽出部1602は、抽出ルール1603に保存されている、ある項目の文字領域の位置と同じまたは近傍にあるスキャン画像内における文字領域を、その項目に対応する文字領域として抽出してもよい。
【0116】
または、抽出ルール1603は、画像内の文字領域の特徴のみに基づき、夫々の項目の文字領域を特定する情報が出力されるように学習されている学習モデルであってもよい。その場合、帳票の種別の推定は行われなくてもよい。つまり、キーバリュー抽出部1602は、文字領域検出部1601の処理した結果得られたスキャン画像の文字領域の位置等の情報を、抽出ルール1603に入力して出力された結果に基づき、スキャン画像における夫々の項目の文字領域を抽出してもよい。
【0117】
そしてキーバリュー抽出部1602が抽出した夫々の項目の文字領域に対して、OCR部402が文字認識処理を行う。そして、その結果得られた文字列を夫々の項目に対応する文字列として出力する。
【0118】
[文字抽出処理および修正処理について]
図17は、本実施形態の入力支援システムにおける処理を示すシーケンス図である。S1701~1702は、S801~S802と同一であるため説明は省略する。
【0119】
S1703において画像データ取得部401は、MFP300から送信されたスキャン画像の画像データを取得し、文字領域検出部1601は、取得された画像データの文字領域を検出する。
【0120】
S1704においてキーバリュー抽出部1602は、検出された文字領域の情報に基づき、画像データの帳票種別を推定する。そしてS1705においてキーバリュー抽出部1602は、抽出ルール1603を用いて、予め定義された夫々の項目に対応する文字領域を抽出する。
【0121】
S1706においてOCR部402は、S1705において検出された、夫々の項目に対応する文字領域に対してのみ文字認識処理を実行して、夫々の項目の文字列であるキーバリューを抽出する。本実施形態では、キーバリューを抽出するための文字認識処理は一部の文字領域に対して行われる。このためキーバリュー抽出時の処理負荷を抑制することができる。
【0122】
そして、キーバリュー抽出部1602は、夫々の項目に対応する文字領域および文字列を含むレコード(行)には、その項目の名称を示すラベルを付与して、
図18に示すキーバリュー抽出結果1800を生成する。キーバリュー抽出結果送信部405は、生成されたキーバリュー抽出結果1800をMFP300に出力する。
【0123】
図18のキーバリュー抽出結果1800は
図6の帳票画像に対してS1702~1706の処理が行われた結果得られるキーバリュー抽出結果1800である。列1801~1803に保持される内容は、列701~703と同様である。行1804~1808における文字認識結果の文字列は、項目に対応する文字列として抽出された文字列(キーバリュー)である。このため行1804~1808における列1803には抽出対象の項目であることを示すラベルが付与される。
【0124】
また、
図18に示すように、本ステップでは、項目に対応する文字領域以外の文字領域には文字認識処理されていないため、行1804~1808以外の行における列1802の文字認識結果には文字列が無いことを示す「―」が保持されている。
【0125】
S1707~S1709は、S805~S807と同様であるため説明を省略する。
【0126】
S1709において、ユーザによる修正後の文字列と、当初のキーバリュー抽出結果における修正対象の項目の文字列と、との差が所定の範囲内である場合(S1709がYES)、S1713に進む。つまり、この場合、項目に対応する文字領域はS1705で正しく抽出されていたことになる。このため、後述する、ユーザが修正指示した修正対象の項目に対応する正しい文字領域の決定は行わずにS1713の学習のステップに進む。
【0127】
S1709において、ユーザによる修正後の文字列と、当初のキーバリュー抽出結果における修正対象の項目の文字列と、の差が所定の範囲内ではない場合(S1709がNO)、S1710に進む。つまりこの場合は修正対象の項目に対応する文字領域がS1705で誤って抽出されていると考えられる。このため、修正対象の項目に対応する正しい文字領域を決定する処理が行われる。修正結果送信部505は、S1708でユーザが入力した修正後の文字列を、キーバリュー抽出サーバ200に送信する。
【0128】
S1710において修正結果取得部406は、MFP300から送信された修正結果の文字列を取得する。そして、OCR部402は、S1703において検出されたスキャン画像の全ての文字領域に対して文字認識処理を実行する。
【0129】
本実施形態では、S1709でユーザによる修正後の文字列とキーバリュー抽出結果における修正対象の項目の文字列との差が所定の範囲内ではないと判定された場合のみ、全ての文字領域に文字認識処理がされる。その結果、
図18のキーバリュー抽出結果1800における列1802の文字認識結果に「―」が保持されていた箇所に、本ステップで文字認識の結果得られた文字列が保持されるように、キーバリュー抽出結果1800が更新される。
【0130】
S1711においてキーバリュー抽出サーバ200の領域決定部404は、S1710で認識された全ての文字認識結果の文字列に対して、ユーザによる修正後の文字列との編集距離を算出する。そして領域決定部404は、その編集距離に基づき、修正対象の項目の文字領域を決定する。例えば、編集距離が1以下の文字認識結果が一つだけだった場合、正しい文字領域が決定できたと判断される。
【0131】
例えば、
図10の画像がS1702においてMFP300のスキャン実行部502によってスキャンすることによって得られたスキャン画像であるとする。またユーザが、修正対象の項目である電話番号の項目の文字列を「0123-45-6789」に修正したものとする。この場合、
図10のスキャン画像から検出された全ての文字領域に対して文字認識処理された結果得られた夫々の文字列と、修正後の文字列「0123-45-6789」と、の編集距離が算出される。
【0132】
図11は、全ての文字領域に対して文字認識処理が行われた結果得られた文字列が列1108の文字認識結果に追加され、また列1101には前述した編集距離が追加されたキーバリュー抽出結果である。
図11では、編集距離が1以下の文字列は、行1107における列1108の文字認識結果に保持されている「0123-45-6789」のみである。このため
図11では、行1107における文字領域が正しい文字領域として決定される。
【0133】
S1712において領域決定部404は、S1711で修正対象の項目に対応する正しい文字領域が決定できたかどうかを判定する。S1711で正しい文字領域が決定された場合(S1712がYES)は、S1713に進む。
【0134】
S1713において学習部407は、S1711で決定された文字領域の特徴を抽出し学習することによって学習モデルが更新される。または、抽出ルール1603がデータベースの場合は領域決定部404によって決定された文字領域の位置情報が、修正対象の項目に対応する文字領域として関連付けられるように抽出ルール1603を修正して更新する。
【0135】
S1711で正しい文字領域が決定されなかった場合(S1712がNO)、学習のためのステップであるS1713へは進まないでS1714に進む。このため、項目に対応する誤った文字領域が含まれているデータを学習のためのデータとして使われないようにすることができる。S1714のステップの詳細はS816と同様であるため説明を省略する。
【0136】
図19は、
図17のフローの各ステップにおいて、MFP300の操作パネル307に表示される画面の遷移を示している。画面1901は、S1707の処理の結果表示される画面である。画面1902は、S1708においてユーザ操作1903によって、画面1901の電話番号の文字列が修正された後の画面を示している。画面1904は、S1708の後に表示される画面であり、ユーザ操作1905によって、登録ボタンが押下される様子を示している。
図19の矢印は、画面遷移を示している。画面1901は画面1902に遷移し、画面1902は画面1904に遷移する。
【0137】
以上説明したように本実施形態によれば、一部の文字領域に対して文字認識処理をすることによりキーバリューを抽出する場合においても、ユーザが入力した修正後の文字列に基づいて、修正対象の項目に対応する正しい文字領域を決定することができる。このため、ユーザが項目に対応する文字領域を入力するような煩雑な操作を行う必要がないため、ユーザビリティを向上させることができる。
【0138】
なお、キーバリュー抽出サーバ200が、文字領域を検出して文字認識処理をするものとして説明したが、MFP300が文字領域検出部およびOCR部と同様の機能を有していてもよい。その場合、上述のシーケンス図で説明した文字領域の検出および文字認識処理は、MFP300で行われてもよい。
【0139】
<実施形態3>
実施形態3では実施形態2と同様に、スキャン画像の一部の文字領域にのみ実行された文字認識処理の結果に基づきキーバリューを抽出する場合における、修正対象の項目の正しい文字領域を決定する方法を説明する。ただし実施形態3では、ユーザが画面をタッチした位置も使用して、修正対象の項目に対応する正しい文字領域を決定する方法について説明する。本実施形態は、実施形態2からの差分を中心に説明する。特に明記しない部分については実施形態2と同じ構成および処理である。
【0140】
図20は、本実施形態の入力支援システムにおける処理を示すシーケンス図である。S2001~2009は、S1701~S1709と同一であるため説明は省略する。
【0141】
本実施形態では、ユーザによる修正後の文字列とキーバリュー抽出結果における修正対象の項目の文字列との差が所定の範囲内ではない場合(S2009がNO)、S2010~S2015の処理が行われる。S2010~S2012までの処理は、S810~S812の処理と同様である。
【0142】
即ち、S2010においてUI部501は、スキャンした原稿(帳票)の画像データに基づきプレビュー画像を操作パネル307に表示させる。そして、UI部501は、ユーザが修正指示した修正対象の項目に対応する正しい文字領域を、操作パネル307上のプレビュー画像にタッチして指示するように、ユーザに促す。
【0143】
S2011においてユーザは、修正後の文字列が記載されている、ユーザが修正指示した項目の正しい文字領域の位置を、MFP300の操作パネル307に表示されているプレビュー画面上をタッチして指示する。
【0144】
S2012においてMFP300のUI部501は、ユーザのタッチを受け付け、操作パネル307のタッチ位置を検知する。修正結果送信部505は、ユーザがタッチした操作パネル307上のタッチ位置に基づき、画像の座標にマッピングしたタッチ位置座標に変換してタッチ位置座標を決定する。そして、UI部501は、操作パネル307に画面1505を表示させ、ユーザによる登録ボタンの押下を受け付ける。修正結果送信部505は、ユーザが入力した修正後の文字列と、タッチ位置座標とを、キーバリュー抽出サーバ200に送信する。
【0145】
S2013においてキーバリュー抽出サーバ200のOCR部402は、S2003において検出された全ての文字領域に対して文字認識処理を実行する。
【0146】
S2014の処理はS813と同様である。つまり、S2014においてキーバリュー抽出サーバ200の修正結果取得部406は、MFP300から送信されたタッチ位置座標と修正後の文字列と修正対象の項目とを取得する。キーバリュー抽出サーバ200の領域決定部404は、タッチ位置座標と、キーバリュー抽出結果のすべて行の文字領域との距離を導出する。領域決定部404は、その距離が所定の値以下の文字領域のうち、修正後の文字列との編集距離が最小の文字列が認識された文字領域を、修正対象の項目に対応する正しい文字領域として決定する。所定の値は例えば100である。
【0147】
例えば、
図12に示すタッチ位置1210は、ユーザがS2011においてタッチした位置であり、S2012においてそのタッチ位置座標は、(x,y)=(1110,493)と決定されたものとする。
【0148】
図13は、
図12の画像データに対して、文字領域検出と文字認識処理とキーバリュー抽出とを行った結果である。列1312の「電話番号」のラベルは、正しい文字領域に付与されていないものとする。
図13の列1311には、ユーザの入力による修正後の文字列「0123-45-6789」と
図13の文字認識結果の文字列との編集距離が保持されている。
【0149】
図13の列1301は、文字領域の位置とユーザがタッチした画像内のタッチ位置との距離を保持する列であり、タッチ位置座標が(1110,493)の場合の文字領域との距離を示している。行1307~1310は、タッチ位置座標との距離が所定の値である100以下の文字領域を有するレコードである。行1307~1310のうち、領域決定部404は、列1311の編集距離が最小である行1308の文字領域が、ユーザが修正指示した項目である「電話番号」の項目に対応する正しい文字領域と決定する。
【0150】
S2015~2017は、S1712~S1714と同様の処理であるため説明は省略する。
【0151】
なお、本実施形態に実施形態2の方法を組み合わせて適用してもよい。例えば、実施形態2の
図17のシーケンス図において、S1711で正しい文字領域を決定できなかった場合、S2010~S2012が行われて、S2013の文字認識処理はスキップして、S2014~S2017の処理が行われてもよい。
【0152】
以上説明したように本実施形態によれば、一部の文字領域に対して文字認識処理をすることによりキーバリューを抽出する場合においても、ユーザが入力した修正後の文字列に基づいて、項目に対応する正しい文字領域を決定することができる。このため、ユーザが項目に対応する文字領域を入力するような煩雑な操作を行う必要がないため、ユーザビリティを向上させることができる。
【0153】
<その他の実施形態>
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
【符号の説明】
【0154】
300 MFP
501 UI部
504 キーバリュー抽出結果取得部
506 領域決定部
505 修正結果送信部