(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-12-22
(45)【発行日】2024-01-05
(54)【発明の名称】画像処理装置、その制御方法及びプログラム
(51)【国際特許分類】
G06V 30/412 20220101AFI20231225BHJP
G06Q 10/10 20230101ALI20231225BHJP
G06F 40/157 20200101ALI20231225BHJP
G06V 30/14 20220101ALI20231225BHJP
【FI】
G06V30/412
G06Q10/10
G06F40/157
G06V30/14 340K
(21)【出願番号】P 2019148523
(22)【出願日】2019-08-13
【審査請求日】2022-08-15
(73)【特許権者】
【識別番号】000001007
【氏名又は名称】キヤノン株式会社
(74)【代理人】
【識別番号】110001243
【氏名又は名称】弁理士法人谷・阿部特許事務所
(72)【発明者】
【氏名】母里 南陽
【審査官】片岡 利延
(56)【参考文献】
【文献】特開2008-134683(JP,A)
【文献】特開2007-233913(JP,A)
【文献】特開2018-128996(JP,A)
【文献】特開2019-079147(JP,A)
【文献】おかんの毎日と食事(patapataokan),“今年の健康診断の結果は?^_^;”,[online],2012年09月07日,https://patapataokan.blog.jp/archives/1322284.html
【文献】Grow Rich Slowly,“[意外と重要!]数字には必ず単位を明記しましょう”,[online],2017年09月14日,https://growrichslowly.net/clarify-unit/
【文献】とうすけろぐ,“[Excel]今日の日付を一瞬で入力する方法”,[online],2016年09月28日,https://tosk.hatenablog.com/entry/2016/09/28/234736
(58)【調査した分野】(Int.Cl.,DB名)
G06V 30/412
G06Q 10/10
G06F 40/157
G06V 30/14
(57)【特許請求の範囲】
【請求項1】
帳票を光学的に読み取って生成された帳票画像に対し画像解析を行う画像処理装置であって、
前記帳票画像に対する文字認識処理の結果に基づき、前記帳票内の所定のキーワードに対応するバリューを表す文字列とその単位を表す文字列を抽出する抽出手段と、
前記抽出手段にて前記帳票画像から前記単位の文字列を抽出できなかった場合、抽出されたバリューの文字列から、前記単位の文字列を推定する推定手段と、
前記画像処理装置と異なる外部装置で取り扱い可能なバリューの単位の書式に関する情報を、当該外部装置から取得する取得手段と、
前記抽出手段にて前記帳票画像から前記単位の文字列を抽出できた場合は、前記取得手段で取得した情報に基づき、前記抽出手段による抽出結果を、前記外部装置で取り扱い可能なバリューの単位の書式と適合するように変換し、
前記抽出手段にて前記帳票画像から前記単位の文字列を抽出できなかった場合は、前記推定手段で推定された前記単位の文字列と前記取得手段で取得した情報とに基づき、前記抽出手段による抽出結果を、前記外部装置で取り扱い可能なバリューの単位の書式と適合するように変換する変換手段と、
前記変換手段による変換後の抽出結果のデータを、前記外部装置に出力する通信手段と、
を有することを特徴とする画像処理装置。
【請求項2】
帳票を光学的に読み取って生成された帳票画像に対し画像解析を行う画像処理装置であって、
前記帳票画像に対する文字認識処理の結果に基づき、前記帳票内の所定のキーワードに対応するバリューを表す文字列とその単位を表す文字列を抽出する抽出手段と、
前記帳票が複数ページで構成されている場合であって、前記抽出手段にてあるページの帳票画像から前記単位の文字列を抽出できなかった場合、他のページの帳票画像から前記単位の文字列を推定する推定手段と、
前記画像処理装置と異なる外部装置で取り扱い可能なバリューの単位の書式に関する情報を、当該外部装置から取得する取得手段と、
前記抽出手段にて前記帳票画像から前記単位の文字列を抽出できた場合は、前記取得手段で取得した情報に基づき、前記抽出手段による抽出結果を、前記外部装置で取り扱い可能なバリューの単位の書式と適合するように変換し、
前記抽出手段にて前記帳票画像から前記単位の文字列を抽出できなかった場合は、前記推定手段で推定された前記単位の文字列と前記取得手段で取得した情報とに基づき、前記抽出手段による抽出結果を、前記外部装置で取り扱い可能なバリューの単位の書式と適合するように変換する変換手段と、
前記変換手段による変換後の抽出結果のデータを、前記外部装置に出力する通信手段と、
を有することを特徴とする画像処理装置。
【請求項3】
帳票を光学的に読み取って生成された帳票画像に対し画像解析を行う画像処理装置であって、
前記帳票画像に対する文字認識処理の結果に基づき、前記帳票内の所定のキーワードに対応するバリューを表す文字列とその単位を表す文字列を抽出する抽出手段と、
前記画像処理装置と異なる外部装置で取り扱い可能なバリューの単位の書式に関する情報を、当該外部装置から取得する取得手段と、
前記抽出手段にて前記帳票画像から前記単位の文字列を抽出できた場合は、前記取得手段で取得した情報に基づき、前記抽出手段による抽出結果を、前記外部装置で取り扱い可能なバリューの単位の書式と適合するように変換し、
前記抽出手段にて前記帳票画像から前記単位の文字列を抽出できなかった場合は、前記所定のキーワードに対応するバリューの単位の文字列として予め定義された単位を表す文字列を取得して、当該取得した予め定義された単位を表す文字列と前記取得手段で取得した情報とに基づき、前記抽出手段による抽出結果を、前記外部装置で取り扱い可能なバリューの単位の書式と適合するように変換する変換手段と、
前記変換手段による変換後の抽出結果のデータを、前記外部装置に出力する通信手段と、
を有することを特徴とする画像処理装置。
【請求項4】
前記取得手段で取得した情報において前記所定のキーワードに対応するバリューの単位の書式が定められていない場合、前記変換手段は前記変換を行わず、
前記通信手段は、前記抽出手段にて抽出された前記所定のキーワードに対応するバリューとその単位を表す文字列のデータを、外部装置に出力する、
ことを特徴とする請求項1乃至3のいずれか1項に記載の画像処理装置。
【請求項5】
前記抽出手段は、前記帳票画像に対する文字認識処理の結果に基づき特定された前記帳票の種類に基づいて、前記所定のキーワードを決定し、当該決定されたキーワードに対応する前記バリューとその単位を表す文字列を抽出することを特徴とする請求項1乃至4のいずれか1項に記載の画像処理装置。
【請求項6】
前記抽出手段は、前記帳票の種類毎に抽出対象のキーワードを定義したテーブルを参照して、前記所定のキーワードを決定することを特徴とする請求項5に記載の画像処理装置。
【請求項7】
前記抽出手段は、前記帳票画像に対する領域分割処理によって得られた複数の領域のうち前記所定のキーワードの文字列を含む領域から、前記単位を表す文字列を抽出することを特徴とする請求項1乃至6のいずれか1項に記載の画像処理装置。
【請求項8】
前記抽出手段は、前記帳票画像に対する領域分割処理によって得られた複数の領域のうち前記所定のキーワードに対応するバリューの文字列を含む領域から、前記単位の文字列を抽出することを特徴とする請求項1乃至6のいずれか1項に記載の画像処理装置。
【請求項9】
前記抽出手段は、前記帳票画像に対する領域分割処理によって得られた複数の領域のうち、前記所定のキーワードの文字列と前記所定のキーワードに対応するバリューの文字列とを含む表オブジェクトの右上の近傍領域から、前記単位の文字列を抽出することを特徴とする請求項1乃至6のいずれか1項に記載の画像処理装置。
【請求項10】
前記抽出手段によって抽出された前記所定のキーワードに対応するバリューの単位の文字列の書式が、前記外部装置で取り扱い可能なバリューの単位の書式に適合しない場合において、単位表記のみが適合しない場合、前記変換手段は、単位表記のみを適合するように変換することを特徴とする請求項1乃至9のいずれか1項に記載の画像処理装置。
【請求項11】
帳票を光学的に読み取って生成された帳票画像に対し画像解析を行う画像処理装置であって、
前記画像処理装置は、
前記帳票画像に対する文字認識処理の結果に基づき、前記帳票内の所定のキーワードに対応するバリューを表す文字列とその単位を表す文字列を抽出する抽出手段と、
前記画像処理装置と異なる外部装置で取り扱い可能なバリューの単位の書式に関する情報を、当該外部装置から取得する取得手段と、
前記取得手段で取得した情報に基づき、前記抽出手段による抽出結果を、前記外部装置で取り扱い可能なバリューの単位の書式と適合するように変換する変換手段と、
前記変換手段による変換後の抽出結果のデータを、前記外部装置に出力する通信手段と、を有し、
前記外部装置は、前記通信手段を介して受信した前記データを当該データが抽出された帳票画像と紐付けて登録するための記憶手段を有し、
前記画像処理装置の前記変換手段は、前記取得手段で取得した情報において前記所定のキーワードに対応するバリューの単位の書式が定められておらず、かつ、前記光学的に読み取って生成された帳票画像が前記記憶手段に登録済みの帳票画像と同じ種類の帳票画像である場合、前記抽出手段による抽出結果を、前記記憶手段に登録済みの帳票画像と紐付けて登録されている前記データの単位の書式と適合するように変換する、
ことを特徴とする画像処理装置。
【請求項12】
前記変換手段は、
前記抽出手段にて前記帳票画像から前記単位の文字列を抽出できた場合、前記取得手段で取得した情報に基づき、前記外部装置で取り扱い可能なバリューの単位の書式で定められている単位表記と適合するように、前記所定のキーワード毎に設けられた係数を用いて、前記抽出手段にて抽出された前記バリューの文字列を変換する
ことを特徴とする請求項1乃至3のいずれか1項に記載の画像処理装置。
【請求項13】
コンピュータを、請求項1乃至
12のいずれか1項に記載の画像処理装置として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、帳票から文字列を抽出して登録する技術に関する。
【背景技術】
【0002】
現在、領収書等の紙メディアのデータをデジタル化し、PC等に取り込む際に使用する機器として、イメージングスキャナや複合機等の画像読取装置が知られている。これら画像読取装置では、文字だけのモノクロ原稿や、雑誌等のカラー原稿、現像された写真等が、スキャン対象となる。画像読取装置を使用した情報処理システムの一つとして、スキャン画像から所定の項目(キーワード)に対応する数値等(バリュー)を抽出し、管理サーバへ登録する情報処理システムが存在する。このようなシステムのユースケースとしては、会計処理システムが挙げられる。請求書や納品書など、会計処理対象の帳票をスキャンし、得られたスキャン画像内に存在する日付や請求金額等の文字列を自動抽出して管理サーバに自動登録することにより、日付や請求金額等を手作業で入力する手間を省くことができる。そして、世の中には、業種や発行元によって様々な種類・形式の帳票が存在する。そのため、上記のような情報処理システムにおいては、多様な帳票に対応するため、スキャンを行った帳票の種類・形式を特定し分類した後に、登録対象のキーワードに対応するバリューを抽出するのが一般的である。
【0003】
ここで、キーワードの中には、例えば領収書や請求書における金額や、健康診断結果票における身長・体重など、単位を持つものが少なくない。しかし、例えば金額であれば「円」、「千円」、「百万円」、診断項目の1つである白血球数の単位では「μl」、「千/m」といった具合に、単位には様々な書式が存在し、同じ種類の帳票であっても、帳票毎に異なる単位書式が採用されている場合がある。このような項目に関して、その単位書式を考慮せずに数値を抽出して登録してしまうと、それが管理サーバ側で扱う単位書式と異なっている場合には誤った数値が登録されることになってしまう。こうなるとユーザは、誤った数値を修正しなければならず、ユーザにとって手間が増えるだけでなくミスの原因にもなる。また、同一種類の帳票でありながら、帳票間では異なっている単位書式をそのままにしてバリューを抽出し登録した場合には、登録結果の検索・比較・集計といった作業が困難になってしまう。この点、特許文献1には、帳票のスキャン画像から抽出した地域情報で特定される地域が、画像処理装置の設置場所の地域と異なる場合、設置場所の地域に対応する単位又は表記方式となるように変換する技術が開示されている。
【先行技術文献】
【特許文献】
【0004】
【発明の概要】
【発明が解決しようとする課題】
【0005】
上記特許文献1の技術は、帳票のスキャン画像から得られた地域情報が示す地域が画像処理装置の設置場所と異なる場合に単位書式の変換を行うものである。したがって、同一地域で使用されている同一種類の帳票において、帳票毎に異なる単位書式が使用されているようなケースには対応できない。
【課題を解決するための手段】
【0006】
本開示に係る画像処理装置は、帳票を光学的に読み取って生成された帳票画像に対し画像解析を行う画像処理装置であって、前記帳票画像に対する文字認識処理の結果に基づき、前記帳票内の所定のキーワードに対応するバリューを表す文字列とその単位を表す文字列を抽出する抽出手段と、前記抽出手段にて前記帳票画像から前記単位の文字列を抽出できなかった場合、抽出されたバリューの文字列から、前記単位の文字列を推定する推定手段と、前記画像処理装置と異なる外部装置で取り扱い可能なバリューの単位の書式に関する情報を、当該外部装置から取得する取得手段と、前記抽出手段にて前記帳票画像から前記単位の文字列を抽出できた場合は、前記取得手段で取得した情報に基づき、前記抽出手段による抽出結果を、前記外部装置で取り扱い可能なバリューの単位の書式と適合するように変換し、前記抽出手段にて前記帳票画像から前記単位の文字列を抽出できなかった場合は、前記推定手段で推定された前記単位の文字列と前記取得手段で取得した情報とに基づき、前記抽出手段による抽出結果を、前記外部装置で取り扱い可能なバリューの単位の書式と適合するように変換する変換手段と、前記変換手段による変換後の抽出結果のデータを、前記外部装置に出力する通信手段と、を有することを特徴とする。
【発明の効果】
【0007】
本開示の技術によれば、帳票内の所定のキーワードに対応するバリューを抽出して管理サーバ等に登録する際に、バリューの単位の書式を揃えて登録することができる。
【図面の簡単な説明】
【0008】
【
図3】サーバ装置のハードウェア構成を示すブロック図
【
図7】画像解析処理の大まかな流れを示すフローチャート
【
図9】キー・バリュー抽出処理の詳細を示すフローチャート
【
図10】(a)はキー領域内に単位を表す文字列が含まれている場合の一例を示す図、(b)は近傍領域内に単位を表す文字列が含まれている場合の一例を示す図
【
図13】単位変換処理によって登録結果が変わる様子を説明する図
【発明を実施するための形態】
【0009】
以下、本発明を実施するための形態について図面を用いて説明する。なお、以下の実施の形態は特許請求の範囲に係る発明を限定するものでなく、また実施の形態で説明されている特徴の組み合わせの全てが発明の解決手段に必須のものとは限らない。
【0010】
[実施形態1]
<システム構成>
図1は、本実施形態に係る、情報処理システム100の全体構成を示す図である。情報処理システム100は、MFP(Multi Function Peripheral)110と、インターネット上でクラウドサービスを提供するサーバ装置120、130a、130bを含む。なお、以下では、サーバ装置130aとサーバ装置130bとで共通する事項についての説明を行う際には、単に「サーバ装置130」と表記する場合がある。MFP110は、インターネットを介してサーバ装置120及びサーバ装置130と通信可能に接続されている。
【0011】
MFP110は、スキャン機能を有する情報処理装置の一例である。MFP110は、スキャン機能に加え印刷機能やBOX保存機能といった複数の機能を有する複合機である。サーバ装置120及び130は、共にクラウドサービスを提供する情報処理装置の一例である。本実施形態のサーバ装置120は、MFP110等の外部装置から受け取った画像データに対し、キー・バリュー抽出処理を含む所定の画像解析処理を行なうクラウドサービスを提供する。以下、サーバ装置120を「画像解析サーバ」と呼ぶこととする。サーバ装置130aは、発行済み請求書に関するデータを保存・管理するクラウドサービスを提供する。サーバ装置130bは、健康診断書に関するデータを保存・管理するクラウドサービスを提供する。以下、サーバ装置130aを「請求書DBサーバ」と呼び、サーバ装置130bを「診断書DBサーバ」と呼ぶこととする。
【0012】
なお、
図1に示す情報処理システム100の構成は一例であって、これに限定されない。例えば、MFP110が画像解析サーバ120の機能を兼ね備えていてもよい。また、画像解析サーバ120はインターネット上ではなくLAN(Local Area Network)やWAN(Wide Area Network)経由でMFP110と接続されていてもよい。また、MFP110や各サーバ装置はそれぞれ複数台存在していても構わない。例えば、領収書などの経費精算情報や企業の会計情報といった様々な分野で用いられる帳票毎に、別個の管理サーバを用意してもよい。
【0013】
<MFPのハードウェア構成>
図2は、MFP110のハードウェア構成を示すブロック図である。MFP110は、制御部210、操作部220、プリンタ部230及びスキャナ部240で構成される。制御部210は、さらに以下の各部211~218で構成され、MFP110全体の動作を制御する。CPU211は、ROM212に記憶された様々な制御プログラム(後述のソフトウェア構成図で示す各種機能に対応するプログラム)を読み出して実行する。RAM213は、CPU211の主メモリ、ワークエリア等の一時記憶領域として用いられる。なお、本実施例では1つのCPU211が1つのメモリ(RAM213またはHDD214)を用いて後述のフローチャートに示す各処理を実行するものとするが、これに限定されない。例えば、複数のCPUや複数のRAMまたはHDDを協働させて各処理を実行してもよい。HDD214は、画像データや各種プログラムを記憶する大容量記憶部である。操作部I/F215は、操作部220と制御部210とを接続するインタフェースである。操作部220は、タッチパネルやハードキーを備えており、ユーザによる操作/入力/指示を受け付ける。プリンタI/F216は、プリンタ部230と制御部210とを接続するインタフェースである。印刷用の画像データはプリンタI/F216を介して制御部210からプリンタ部230へ転送され、紙等の記録媒体上に印刷される。スキャナI/F217は、スキャナ部240と制御部210とを接続するインタフェースである。スキャナ部240は、不図示の原稿台やADF(Auto Document Feeder)にセットされた原稿を光学的に読み取って得られた画像(スキャン画像)を、スキャナI/F217を介して制御部210に入力する。スキャナ部240で生成されたスキャン画像のデータは、プリンタ部230で印刷したり(コピー出力)、HDD214に保存したり、LANを介して外部装置に送信したりすることができる。ネットワークI/F218は、制御部210(MFP110)をLANに接続するインタフェースである。MFP110は、ネットワークI/F218を用いて、スキャン画像データを画像解析サーバ120に送信したり、画像解析サーバ120から各種データを受信したりする。以上説明したMFP110のハードウェア構成は一例であり、必要に応じてその他の構成を備えるものであってもよいし、一部の構成を有していなくてもよい。
【0014】
<サーバ装置のハードウェア構成>
図3は、画像解析サーバ120、請求書DBサーバ130a及び診断書DBサーバ130bのハードウェア構成を示すブロック図である。画像解析サーバ120、請求書DBサーバ130a及び診断書DBサーバ130bは共通のハードウェア構成を有し、CPU311、ROM312、RAM313、HDD314及びネットワークI/F315で構成される。CPU311は、ROM312に記憶された制御プログラムを読み出して各種処理を実行することで、全体の動作を制御する。RAM313は、CPU311の主メモリ、ワークエリア等の一時記憶領域として用いられる。HDD314は、画像データや各種プログラムを記憶する大容量記憶部である。ネットワークI/F315は、制御部310をインターネットに接続するインタフェースである。画像解析サーバ120、請求書DBサーバ130a及び診断書DBサーバ130bは、ネットワークI/F315を介して他の装置(MFP110など)から所定のリクエストを受け、当該リクエストに応じた処理を行う。
【0015】
<画像解析サーバの詳細>
図4は、本実施形態に係る、画像解析サーバ120の機能構成を示すブロック図である。以下、
図4に沿って、MFP110から帳票のスキャン画像を受け取り、それに対するキー・バリュー抽出処理の結果を、請求書DBサーバ130a又は診断書DBサーバ130bに登録するまでの一連の処理を説明する。
【0016】
画像解析サーバ120は、通信部401、領域分割部402、OCR部403、帳票種別判定部404、キー・バリュー抽出部405、単位変換部406及びDBサーバ管理部407の各機能部を有する。
【0017】
通信部401は、ネットワークI/F315を用いて、外部装置との間で各種データや命令のやり取りを行う。具体的には、帳票のスキャン画像(以下、「帳票画像」と呼ぶ。)のデータをその解析リクエストと共にMFP110から受信したり、キー・バリュー抽出処理の結果を請求書DBサーバ130a又は診断書DBサーバ130bに登録リクエストと共に送信したりする。
【0018】
領域分割部402は、帳票画像に対し、オブジェクト単位の領域に分割する処理を行う。この場合において、帳票画像内に表オブジェクトが存在する場合は、その内部をさらに細かな単位、具体的には、列、行、セルといった単位に分割する処理がなされる。この領域分割の結果を踏まえ、OCR部403、帳票種別判別部404、バリュー抽出部405における各処理が実行される。
【0019】
OCR(Optical Character Recognition)部403は、領域分割の結果に基づき、帳票画像に対して文字認識処理を実行して、帳票画像内に含まれる文字を、所定の領域単位で認識する。
【0020】
種別判定部404は、OCR部403による文字認識結果を基に、スキャンされた帳票の種類を判別する処理(以下、「種別判定処理」と呼ぶ。)を行う。この種別判定処理では、タイトルが記載されていると思われる所定の領域(例えば帳票画像の上部)に含まれる文字列のフォントサイズが閾値以上であるなど所定の条件を満たすと、当該文字列が帳票の種類を表すものとして特定し、帳票の種類を判別する。帳票の種類毎に抽出・登録の対象となる項目(キーワード)は異なるところ、この種別判定処理で特定された帳票の種類に従って、処理対象の帳票画像におけるキーワードが決定される。
【0021】
バリュー抽出部405は、帳票内の所定のキーワードに対応する数値等(バリュー)の文字列を、帳票画像からペア(Key-Value)で抽出する処理を行う。なお、ここでいう“文字列”には、数字や記号も含まれる。抽出対象のキーワード(以下、単に「キー」と呼ぶ。)は、帳票の種類毎に定義されており、キー定義テーブル408で管理される。
図5は、本実施形態におけるキー定義テーブル408のデータ構造を示しており、「帳票種類」、「対象キー」、「デフォルト単位」、「単位バリエーション」の4列で構成されている。「帳票種類」には、帳票の種類を表す文字列が入り、ここでは“請求書”と“健康診断書”がそれぞれ格納されている。「対象キー」は、抽出対象の項目を表す文字列が、帳票の種類を表す文字列と対応付けて格納される。ここでは、“請求書”については“発行日”と“合計”が格納され、“健康診断書”については“氏名”、“受診日”、“身長”、“体重”、“白血球数”、“赤血球数”が格納されている。また、バリュー抽出部404は、上述のようにして定義されるキーが単位を持つ場合、当該単位に対応する文字列も、帳票画像から抽出する。「デフォルト単位」は、「対象キー」で定義されたキーに単位が存在する場合のデフォルト値が格納される。
図5の例では、“合計”の単位として“円”、“身長”の単位として“cm”、“体重”の単位として“kg”、“白血球数”の単位として“1000/μl”、“赤血球数”の単位として“10000/μl”が格納されている。そして、「単位バリエーション」には、デフォルト単位で定義された文字列と実質的に同じ等価な文字列の情報が格納される。
図5の例では、“円”と等価な文字列として“¥”と“JPY”が格納されている。この場合において“¥”は日本円を表す記号であり、「JPY」は“円”の国際標準の通貨コードである。
【0022】
単位変換部406は、帳票画像から抽出したバリューの文字列及びその単位の文字列を、その登録先のサーバ装置にて取り扱い可能な単位書式と整合するように変換する処理を行う。この変換には、例えば
図6に示す変換テーブルが用いられる。
図6の変換テーブルは、「単位A」、「単位B」、「係数」の3列で構成されている。「単位A」には基礎的な単位書式が示され、「単位B」には基礎的な単位書式の派生形が示される。「係数」は、「単位A」と「単位B」との間で変換をする際に適用する係数である。変換テーブルにおける各行が変換時の組み合わせを表しており、例えば、「単位A」が規定する“円”に対し、同一行の「係数」の値“1000”を掛けることで、同一行の「単位B」が規定する“千円”に変換できることを表している。逆に、「単位B」を「単位A」に変換する場合は、同一行の「係数」の値で割ればよい。
【0023】
DBサーバ管理部407は、サーバ装置130を管理する。具体的には、画像解析サーバ120に接続されているサーバ装置130(本実施形態では、請求書DBサーバ130aと診断書DBサーバ130b)一覧の管理を行う。さらには、特定のサーバ装置130からステータスを取得したり、バリュー抽出部405によるキー・バリュー抽出処理の結果をその登録リクエストと共に特定のサーバ装置130に送信する等の処理を行う。
【0024】
なお、画像解析サーバ120が有する上記構成の一部又は全部を、他の装置が有していてもよい。例えば、MFP110が上記構成の一部又は全部を搭載し、画像解析サーバ120の機能を兼任するようなシステム構成としてもよい。さらには、画像解析サーバ120が有する上記構成を、複数の装置に分散させてもよい。いずれのシステム構成においても、本実施形態を実現することは可能である。
【0025】
<帳票画像の解析処理の詳細>
続いて、画像解析サーバ120における画像解析処理について詳しく説明する。
図7は、画像解析処理の大まかな流れを示すフローチャートである。
図7のフローチャートに示す一連の処理は、CPU311が、所定の制御プログラムをHDD314などから読み出してRAM313に展開し、これを実行することによって実現される。なお、以下の説明において記号「S」はステップを表す。
【0026】
S701では、通信部401が、MFP110から解析リクエストと共に送られてきた帳票画像データを、ネットワークI/F401を用いて受信する。解析リクエストには、画像解析結果の登録先に関する情報も含まれる。ここでは、請求書DBサーバ130aを登録先として指定した解析リクエストと共に、
図8に示す帳票画像800のデータが受信されたものとする。
【0027】
続くS702では、領域分割部402が、S701で受信した帳票画像データに対して、オブジェクト単位のブロック領域に分割する領域分割処理を実行する。そして、S703では、OCR部403が、領域分割処理の結果に基づきOCR処理を実行する。さらに、S704では、種別判定部404が、OCR処理にて得られた文字認識結果を基に前述の種別判定処理を行って、帳票画像に係る帳票の種類を特定する。ここでは、タイトルが記載されていると思われる矩形領域801における文字認識結果である文字列“請求書”に従って、帳票画像800の帳票の種類が“請求書”であると特定されたものとする。
【0028】
次に、S705では、バリュー抽出部405が、帳票画像に対して、その帳票の種類に応じたキー及びバリューに対応する各文字列を抽出する処理を実行する。この際、キー(すなわち、バリュー)の単位に対応する文字列の抽出も併せて行われる。キー・バリュー抽出処理の詳細については後述する。
【0029】
そして、S706では、単位変換部406が、キー・バリュー抽出処理で得られた単位を表す文字列に関し、必要に応じて単位の書式を揃える単位変換処理を実行する。例えば、対象キー“合計”の単位を示す文字列として“円”が抽出された場合において、登録先である請求書DBサーバ130aにおける登録時の単位表記が“千円”であったとする。この場合に、単位表記を“千円”に揃えた上で、バリューの値を変更後の単位表記と整合する値に変更する処理を行う。単位変換処理の詳細については後述する。
【0030】
最後に、S707では、DBサーバ管理部405が、必要に応じて単位変換処理が施されたキー・バリュー抽出処理の結果を、対象となるサーバ装置130に登録するためのリクエスト処理を行う。本実施形態の場合、処理対象の帳票画像に対応する請求書DBサーバ130a又は診断書DBサーバ130bに対して、帳票画像のデータ及びキー・バリュー抽出処理の結果が、登録リクエスト共に送信される。ここで、登録先のルールに適合するように単位変換処理を行った場合は、単位を表す文字列のデータについては送信を省略してもよい。また、単位変換処理にて、単位表記の変更に加えてバリューを表す文字列の変更も行った場合は、単位変換後の抽出結果に加え、単位変換前の抽出結果も併せて送信される。送信後は、本フローを終了する。
【0031】
以上が、画像解析処理の大まかな内容である。なお、登録リクエストを受けた請求書DBサーバ130a又は診断書DBサーバ130bでは、抽出結果を帳票画像と紐付けて登録を行うことになるが、その際、変換前の抽出結果も一緒に登録する。ユーザは、登録先のサーバ装置130にアクセスし、帳票画像とその抽出結果とを比較することで登録内容に誤りがないかを確認することが可能である。しかし、帳票画像から抽出されたバリューの数値を変更して登録している場合、帳票画像上の数値と登録された数値とが、完全に一致しないことになる。この点、変換前の抽出結果も併せて登録しておけば、登録内容の確認作業も問題なくできるようになる。
【0032】
<キー・バリュー抽出処理>
次に、バリュー抽出部405におけるキー・バリュー抽出処理(S705)の詳細について、
図9のフローチャートを参照して説明する。
【0033】
まず、S901では、処理対象の帳票画像についての種別判定処理の結果に基づき、帳票の種類に応じたキー情報が取得される。具体的には、種別判定処理によって特定された帳票の種類に紐づいた、キーとして抽出すべき文字列の情報を、前述のキー定義テーブル407から取得する。例えば、帳票の種類が「請求書」であったとする。この場合、前述の
図5のキー定義テーブルに従って、「対象キー」に記載の“発行日”と“合計”の2つが、キー情報として取得されることになる。
【0034】
次に、S902では、S901で取得したキー情報に従って、処理対象の帳票画像に対する文字認識結果の中から、キーとバリューの各文字列が抽出される。前述の
図8の帳票画像800の場合、まず、キー情報が示す2つの文字列を含む矩形領域802と803から、それぞれ“発行日”と“合計”の文字列が抽出される。さらに、矩形領域804からは“発行日”のバリューとして“2017/8/28”の文字列が抽出され、矩形領域805からは“合計”のバリューとして“1,188,000”の文字列が抽出されることになる。こうして得られたキーとバリューの抽出結果は、RAM313に格納される。
【0035】
キーとバリューの各文字列の抽出が完了すると、S903では、抽出されたキーのうち注目するキーについて、上述のキー定義テーブルを参照し、単位が定義されているかが判定される。キー定義テーブルの「デフォルト単位」が空白であれば、注目キーは単位を持たず、単位抽出が不要である。例えば、単位が存在しない“発行日”に関しては、前述の
図5のキー定義テーブルにおいて「デフォルト単位」が空白になっている。この場合はS911へ進み、次のキーを注目キーとして処理を続行する。一方、注目キーが単位を持っている場合は、S904以降の処理にて、注目キーに関して、その単位を示す文字列を抽出する処理が実行される。
【0036】
まず、S904では、S902での抽出結果に基づき、処理対象の帳票画像の中の注目キーに対応するバリューの文字列を含む領域内に、その単位を表す文字列が含まれているかが判定される。ここで、バリューを表す文字列を含む領域(以下、「バリュー領域」と表記)は、前述の
図8の帳票画像800の例では、矩形領域804及び805である。注目キーが“合計”であるとき、そのバリュー領域である矩形領域805には、“合計”の単位を表す文字列である“¥”がその先頭に存在している。この場合、バリュー領域内に単位を表す文字列が含まれていると判定されることになる。このような判定の結果、単位を表す文字列がバリュー領域内に含まれている場合はS905に進み、含まれていない場合はS906に進む。
【0037】
そして、S905では、バリュー領域内から単位を表す文字列が検索されて抽出される。例えば、対象キー“合計”については、「デフォルト単位」である“円”に加え、「単位バリエーション」で定義された“¥”や“JPY”の文字列も検索され、“円”、“¥”、“JPY”と一致する(或いはこれらを含む)文字列が抽出されることになる。抽出された単位を表す文字列の情報はRAM313に保存される。単位の文字列の抽出後は、S911に進む。
【0038】
S906では、S902での抽出結果に基づき、処理対象の帳票画像の中の注目キーを表す文字列を含む領域内に、単位を表す文字列が含まれているかが判定される。
図10(a)に、注目キーを表す文字列を含む領域(以下、「キー領域」と表記)内に、単位を表す文字列が含まれている場合の一例を示す。
図10(a)の例において、注目キーが“白血球数”の場合、その単位を表す文字列である“千/μl”が、同一のセル(領域分割時の最小単位領域)内に存在している。このようなケースにおいて、キー領域内に単位を表す文字列が含まれていると判定されることになる。このような判定の結果、キー領域内に単位を表す文字列が含まれている場合はS907に進み、含まれていない場合はS908に進む。そして、S907では、S905と同様の手法により、キー領域内から単位を表す文字列が抽出される。
【0039】
S908では、上記キー領域及びバリュー領域の近傍領域内に、単位を表す文字列が含まれているかが判定される。ここで、近傍領域は、領域分割処理によって得られた複数の領域のうち、キー領域或いはバリュー領域に対して一定条件を満たす領域である。一定条件としては、キー領域或いはバリュー領域から一定距離以内にあること、キー領域或いはバリュー領域と高さ(y座標)が同じであること、同一の表オブジェクトに属していること、などが挙げられる。
図10(b) に、キー領域及びバリュー領域の近傍領域内に、単位を表す文字列が含まれている場合の一例を示す。
図10(b)の例において、注目キーが“売上高”、そのバリューが“100,000”であったとする。この場合、その単位を表す文字列である“千円”が、表オブジェクト全体の右上に存在している。このようなケースにおいて、キー領域内に単位を表す文字列が含まれていると判定されることになる。近傍領域内に単位を表す文字列が含まれている場合はS909に進み、含まれていない場合はS910に進む。
【0040】
S910では、注目キーに関して、その単位を表す文字列の抽出に失敗したと判断される。このように単位文字列の抽出エラーとなった後はS911に進む。そして、S911では、処理対象の帳票画像に関し、未処理のキーが存在するかどうかが判定される、未処理のキーが存在している場合はS903に戻り、次のキーを注目キーとして処理が続行される。一方、処理対象の帳票画像に関し、すべてのキーの処理が完了していれば本フローを終了する。
【0041】
以上が、本実施形態に係る、キー・バリュー抽出処理の内容である。
図11は、
図8に示す帳票画像800に対するキー・バリュー抽出処理の結果を格納したテーブル(以下、「抽出結果テーブル」と呼ぶ。)のデータ構造を示している。
図11の抽出結果テーブルは、「ID」、「帳票種類」、「対象キー」、「抽出結果(キー)」、「抽出結果(バリュー)」、「抽出結果(単位)」から構成されている。「ID」は、処理対象の帳票と対象キーとの組を一意に識別する識別子であり、同一帳票内のキーであれば、先頭の4ケタが同じ数字(ここでは“0001”)となる。「帳票種類」及び「対象キー」は、
図5に示すキー定義テーブルにおける「帳票種類」及び「対象キー」にそれぞれ相当する。「抽出結果(キー)」には、処理対象の帳票から実際に抽出された対象キーに対応する文字列(ここでは、“発行日”と“合計”)が入る。「抽出結果(バリュー)」には、「抽出結果(キー)」と対の関係となるバリューの抽出された文字列(ここでは“2017/8/28”と“1,188,000”)が入る。「抽出結果(単位)」は、対象キーに単位が存在する場合(ここでは“合計”)の当該単位を表す抽出された文字列(ここでは“¥”)が入る。「抽出結果(単位)」が空白の場合、その対象キーが単位を持たない、または単位の抽出に失敗したことを示す。
【0042】
<単位変換処理>
次に、単位変換部406における単位変換処理(S706)の詳細について、
図12のフローチャートを参照して説明する。
【0043】
まず、S1201では、前述のS902で抽出されたキーについて、そのバリュー登録時の単位の書式に関する情報(以下、「単位書式情報」と呼ぶ。)が取得される。この単位書式情報には、登録先にて取り扱い可能な単位書式に関するルールの有無、ルールが有る場合にその内容(採用されている単位表記や桁数の指定)の情報が含まれる。単位書式情報の取得は、登録先のサーバ装置130(本実施形態では、請求書DBサーバ130a又は診断書DBサーバ130b)に都度問い合わせることで取得すればよい。或いは、予め収集して画像解析サーバ120のHDD314内に保持しておいたものを読み出して取得しても構わない。
【0044】
次に、S1202では、S1201にて取得した単位書式情報に基づき、抽出されたキーのうち注目するキーの単位書式に関してルールが存在し、所定の単位表記や桁数で登録するように指定されているかどうかが判定される。ルールが存在しない、すなわち自由な単位書式での登録が可能である場合は、抽出結果をそのまま登録すればよく単位変換は不要であるので本処理を抜ける。一方、ルールが存在し、所定の単位書式での登録が指定されている場合は、S1203に進む。
【0045】
S1203では、注目キーについて抽出された単位を表す文字列が、上記ルールに適合しているかどうかが判定される。ルールに適合している場合は、やはり単位変換は不要であるため本処理を抜ける。一方、ルールに適合していない場合はS1204に進む。
【0046】
S1204では、注目キーについて抽出された文字列のうち、ルールに適合していない部分が単位表記のみであるかどうかが判定される。単位表記のみが不適合である場合とは、例えば、注目キーが“合計”で、抽出された単位を表す文字列が「¥」であるときにルールで定められた単位表記が“円”であるようなケースである。これに対し、抽出された単位を表す文字列が“千円”であれば、単位表記を“円”から“千円”に変更するだけでは足りず、抽出されたバリューの文字列についても例えば“1000”から“1”に変更することが必要となる。判定の結果、単位表記のみが不適合である場合いはS1205に進み、単位表記の変更だけではルールに適合しない場合には、S1206に進む。
【0047】
S1205では、バリューについては抽出結果をそのまま使用しても支障がないので、抽出されたバリューを表す文字列はそのままで、抽出された単位を表す文字列の表記のみをルールに適合するように変換する処理がなされる。一方、S1206では、抽出された単位を表す文字列の表記及び/又はバリューを表す文字列を、ルールに適合するように変換する処理がなされる。ここで、バリューの文字列を変換する際には、前述の
図6の変換テーブルが用いられることになる。
【0048】
そして、S1207では、処理対象の帳票画像に関し、未処理のキーが存在するかどうかが判定される、未処理のキーが存在している場合はS1202に戻り、次のキーを注目キーとして処理が続行される。一方、処理対象の帳票画像に関し、すべてのキーの処理が完了していれば本フローを終了する。
【0049】
以上が、単位変換処理の内容である。このような単位変換処理によって、サーバ装置130での登録結果が変わる様子を、
図13を参照して説明する。
図13の例では、前述の
図10(b)に示す帳票画像に対しキー・バリュー抽出処理を行い、その抽出結果1300を不図示のDBサーバに登録する場合を例に説明を行うこととする。ここで、抽出結果1300は、キーを表す文字列として“売上高”、バリューを表す文字列として“100,000”、単位を表す文字列として“千円”がそれぞれ抽出されていることを示している。
【0050】
まず、登録結果1301は、対象キー“売上高”について、DBサーバにて取り扱い可能な単位書式が“円”に指定されていたケースである。この場合、単位表記のみが不適合というわけではないので、上述のS1206において単位表記とバリューを表す文字列の双方を変換した上で登録がなされることになる。このケースでは、前述の
図6の変換テーブルによって、まず単位表記が“千円”から“円”へ変換されている。さらに、バリューを表す文字列について、対応する「係数」が“1000”であるので、抽出されたバリューを表す文字列“100,000”を千倍した“100,000,000”に変換されている。
【0051】
次に、登録結果1302は、対象キー“売上高”について、DBサーバにて取り扱い可能な単位書式が“JPY”に指定されていたケースである。この場合も、単位表記のみが不適合というわけではないのでので、上述のS1206において単位表記とバリューを表す文字列の双方を変換した上で登録がなされることになる。このケースでは、前述の
図6の変換テーブルによって、まず単位表記が“千円”から“JPY”へ変換されている。さらに、バリューを表す文字列について、対応する「係数」が“1000”であるので、抽出されたバリューを表す文字列“100,000”を千倍した“100,000,000”に変換されている。
そして、登録結果1303は、対象キー“売上高”について、DBサーバにて取り扱い可能な単位書式が特に指定されていなかったケースである。この場合、自由な単位書式で登録できるので、上記のような変換がなされることなく抽出結果がそのまま登録されている。
【0052】
<変形例1>
図9のフローで示したキー・バリュー抽出処理では、帳票画像から単位を表す文字列を取得できなかった場合に特段の処理を行っていない(前述のS910を参照)。しかし、それでは上述の単位変換処理が機能しないことになる。そこで、帳票画像から取得できなかった場合のS910において、単位を推定する処理を行うようにしてもよい。推定手法としては、例えばバリューを表す文字列から推定する方法がある。これは、
図10(a)の健康診断書における「白血球数」のように標準的な数値範囲が決まっている項目(キー)の場合に有効である。この場合、数値が4桁であれば“μl”、1桁であれば“千/μl”のように推定することが可能である。他にも、帳票が複数ページで構成されていれば他のページから推定できる場合がある。例えば、1ページ目には単位が記載されているが2ページ目には記載されていない、というケースである。この場合には、まず、単位を表す文字列の抽出に失敗した帳票画像に他のページが存在するかどうかをチェックする。そして、他のページが存在する場合には、当該他のページに対して、単位の文字列の抽出に失敗した対象キーの文字列が存在するかどうかをチェックし、存在した場合には、前述のS904以降の処理を行って、単位の文字列を抽出する。このような処理によって、単位を表す文字列を推定によって取得してもよい。さらに、上述のような推定を行うこともできない場合には、前述のキー定義テーブルの「デフォルト単位」に定義されている内容を読み出して、単位を表す文字列と見做してもよい。そして、上記のような推定を行った旨をユーザに通知するようにしてもよい。
【0053】
<変形例2>
図12のフローで示した単位変換処理では、登録先にて単位書式に関するルールが定められていなかった場合(S1202でNo)、どの帳票画像の抽出結果に対しても単位変換が行われることはない。そうなると、同じ種類の帳票間で、同一のキーに対応するバリューの単位が統一されないまま登録されるということが起き得る。すると、例えば、ユーザ毎に健康診断書を時系列に登録して診断結果の推移を管理したいといったユースケースでは、単位が統一されていないと推移の比較等がやりづらい。また、領収書や請求書に関するデータを会社単位や部門単位で登録して合計金額を集計したいといったユースケースでは、単位が統一されていないと集計作業ができない。そこで、登録先にて単位書式に関するルールが定められておらず、かつ、既に同じ種類の帳票画像の抽出結果が格納・登録されている特定カテゴリのフォルダに登録を行う場合は、既に登録されている単位書式に統一するようにしてもよい。この場合、前述の
図12のフローにおいて、以下のような処理を追加的に行えばよい。
【0054】
まず、単位書式に関するルールが存在しないと判定されると(S1202でNo)、次に、その登録先に既に同じ種類の帳票画像の抽出結果が登録されている特定カテゴリのフォルダが存在し、そこに追加登録するかどうかを判定する。この判定は、例えば、帳票画像データと共に受信した解析リクエストに含まれる、登録先フォルダのカテゴリを示すID情報を用いて行う。そして、同じ種類の帳票画像の抽出結果が登録済みの特定カテゴリのファルダに追加すると判定された場合は、上記ID情報に対応するファルダに格納されている抽出結果を取得して、登録済みの単位書式をキー毎に特定する。そして、特定された単位書式と同一の単位書式に変換してから各キーに対応するバリューの登録リクエストを行えばよい。なお、同じ種類の複数の帳票画像を同時に同一カテゴリのフォルダに登録する場合にも、本変形例に準じて処理すればよい。すなわち、複数の帳票間で単位書式が異なっている場合には、いずれか一方の単位書式に変換した上で同じフォルダに格納・登録すればよい。
【0055】
以上のとおり本実施形態によれば、帳票画像から抽出した単位を表す文字列が登録先で取扱可能な単位書式に適合していない場合、適合するように抽出結果を変換した上で登録がなされる。これにより、登録先において単位を揃えてバリューを登録することが可能となり、ユーザの確認・修正作業の手間を軽減することが可能となる。
【0056】
(その他の実施形態)
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。