(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2025005182
(43)【公開日】2025-01-16
(54)【発明の名称】帳票認識装置、及び帳票認識方法
(51)【国際特許分類】
G06V 30/412 20220101AFI20250108BHJP
G06T 7/00 20170101ALI20250108BHJP
G06T 7/90 20170101ALI20250108BHJP
G06V 10/762 20220101ALI20250108BHJP
G06V 30/418 20220101ALI20250108BHJP
【FI】
G06V30/412
G06T7/00 300F
G06T7/00 300G
G06T7/90 B
G06V10/762
G06V30/418
【審査請求】未請求
【請求項の数】7
【出願形態】OL
(21)【出願番号】P 2023105260
(22)【出願日】2023-06-27
(71)【出願人】
【識別番号】000005108
【氏名又は名称】株式会社日立製作所
(74)【代理人】
【識別番号】110001678
【氏名又は名称】藤央弁理士法人
(72)【発明者】
【氏名】高橋 寿一
(72)【発明者】
【氏名】三浦 直人
(72)【発明者】
【氏名】白井 剛
【テーマコード(参考)】
5B029
5L096
【Fターム(参考)】
5B029AA01
5B029BB02
5B029BB12
5B029BB14
5B029BB17
5B029CC26
5B029EE03
5B029EE15
5L096BA08
5L096BA18
5L096CA02
5L096DA02
5L096EA13
5L096EA14
5L096FA15
5L096JA03
5L096MA07
(57)【要約】
【課題】帳票の種類を速やかに認識する。
【解決手段】帳票認識装置であって、プロセッサと、メモリと、記憶装置と、を備え、前記記憶装置は、登録済みの前記テンプレートの局所特徴量を含むテンプレート特徴情報を記憶し、前記プロセッサは、登録済みの前記テンプレートを前記局所特徴量に基づいてクラスタに分類し、前記クラスタ毎に属する前記テンプレートの前記局所特徴量を用いてクラスタ特徴量を生成し、前記クラスタ特徴量を含むクラスタ特徴情報を前記記憶装置に格納し、認識対象の前記帳票を表す入力画像の局所特徴量を算出し、前記入力画像の前記局所特徴量、及び前記クラスタ特徴情報に基づいて前記入力画像に対応するクラスタ候補を特定し、前記クラスタ候補に属する前記テンプレートのうち、前記入力画像との前記局所特徴量の類似度が最大のものを前記入力画像に対応する対応テンプレートに決定する。
【選択図】
図1
【特許請求の範囲】
【請求項1】
テンプレートを用いて帳票を認識する帳票認識装置であって、
1以上のプロセッサと、1以上のメモリと、1以上の記憶装置と、を備え、
前記記憶装置は、登録済みの前記テンプレートの局所特徴量を含むテンプレート特徴情報を記憶し、
前記プロセッサは、
登録済みの前記テンプレートを前記局所特徴量に基づいてクラスタに分類し、前記クラスタ毎に属する前記テンプレートの前記局所特徴量を用いてクラスタ特徴量を生成し、前記クラスタ特徴量を含むクラスタ特徴情報を前記記憶装置に格納し、
認識対象の前記帳票を表す入力画像の局所特徴量を算出し、
前記入力画像の前記局所特徴量、及び前記クラスタ特徴情報に基づいて前記入力画像に対応するクラスタ候補を特定し、
前記クラスタ候補に属する前記テンプレートのうち、前記入力画像との前記局所特徴量の類似度が最大のものを前記入力画像に対応する対応テンプレートに決定することを特徴とする帳票認識装置。
【請求項2】
請求項1に記載の帳票認識装置であって、
前記テンプレート特徴情報は、前記テンプレートのサイズ、色、及び大域特徴量を含み、
前記プロセッサは、
前記入力画像のサイズ、色、及び大域特徴量のうちの少なくとも1つ、並びに前記テンプレート特徴情報に基づいて前記入力画像に対応するテンプレート候補を絞り込み、
絞り込んだ前記テンプレート候補であって、且つ前記クラスタ候補に属する前記テンプレートであり、前記入力画像との前記局所特徴量の類似度が最大のものを前記入力画像に対応する前記対応テンプレートに決定することを特徴とする帳票認識装置。
【請求項3】
請求項1に記載の帳票認識装置であって、
前記プロセッサは、前記クラスタ毎に属する前記テンプレートの前記局所特徴量のうち、同一の前記クラスタに属する他のテンプレートと対応した特徴点を連結して前記クラスタ特徴量を生成することを特徴とする帳票認識装置。
【請求項4】
請求項1に記載の帳票認識装置であって、
前記プロセッサは、前記入力画像の前記局所特徴量と前記クラスタ特徴量の類似度に基づいて前記入力画像に対応する1又は複数の前記クラスタ候補を特定する
ことを特徴とする帳票認識装置。
【請求項5】
請求項1に記載の帳票認識装置であって、
前記プロセッサは、前記入力画像の前記局所特徴量と前記クラスタ特徴量との対応点の数、及び前記対応点の平均距離の少なくとも一方を前記類似度として取得し、前記類似度に基づいて前記入力画像に対応する前記クラスタ候補を特定することを特徴とする帳票認識装置。
【請求項6】
請求項1に記載の帳票認識装置であって、
前記プロセッサは、前記入力画像の前記局所特徴量と前記クラスタ特徴量との対応点の数を前記対応点の平均距離で除算した値を前記類似度として算出し、前記類似度に基づいて前記入力画像に対応する前記クラスタ候補を特定することを特徴とする帳票認識装置。
【請求項7】
テンプレートを用いて帳票を認識する帳票認識装置が実行する帳票認識方法であって、
前記帳票認識装置は、1以上のプロセッサと、1以上のメモリと、1以上の記憶装置と、を有し、
前記帳票認識方法は、
登録済みの前記テンプレートを前記テンプレートの局所特徴量に基づいてクラスタに分類し、前記クラスタ毎に属する前記テンプレートの前記局所特徴量を用いてクラスタ特徴量を生成し、前記クラスタ特徴量を含むクラスタ特徴情報を前記記憶装置に格納するステップと、
認識対象の前記帳票を表す入力画像の局所特徴量を算出するステップと、
前記入力画像の前記局所特徴量、及び前記クラスタ特徴情報に基づいて前記入力画像に対応するクラスタ候補を特定するステップと、
前記クラスタ候補に属する前記テンプレートのうち、前記入力画像との前記局所特徴量の類似度が最大のものを前記入力画像に対応する対応テンプレートに決定するステップと、を含むことを特徴とする帳票認識方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、帳票認識装置、及び帳票認識方法に関する。
【背景技術】
【0002】
多種多様な帳票を対象にしてOCR(Optical Character Reader)を実行し、帳票に記録されている文字等を認識したり、帳票に対して文字等を入力したりする場合、対象とする帳票の種類(発行元、用途、フォーマット等)を認識する必要がある。
【0003】
帳票の種類を認識する技術に関し、例えば特許文献1には「複数のテンプレート画像から帳票画像に対応する対応テンプレート画像を選択する帳票処理装置であって、前記帳票画像における複数の特徴点と各特徴点の特徴量記述子とを算出し、当該算出結果に基づいて、前記テンプレート画像毎に、当該テンプレート画像における各特徴点に対応する複数の対応点を選択し、各特徴点と各テンプレート画像の各対応点とに基づいて、前記対応テンプレート画像を選択する選択部を有する帳票処理装置」が記載されている。
【先行技術文献】
【特許文献】
【0004】
【発明の概要】
【発明が解決しようとする課題】
【0005】
引用文献1に記載の技術では、帳票に印刷されている文字周辺から特徴が多く抽出できる局所特徴量を利用することで、罫線が無い帳票に対してもテンプレート画像を特定することができる。しかしながら、認識可能な帳票の種類を増加させるためにテンプレート画像の数を増大した場合、認識対象の帳票とテンプレート画像との照合のための処理量が増加してしまい、帳票の種類を速やかに認識できないことがある。
【0006】
本発明は前述の点に鑑みてなされたものであり、帳票の種類を速やかに認識できるようにすることを目的とする。
【課題を解決するための手段】
【0007】
本願は、前述課題の少なくとも一部を解決する手段を複数含んでいるが、その例を挙げるならば、以下の通りである。
【0008】
前述課題を解決するため、本発明の一態様に係る帳票認識装置は、テンプレートを用いて帳票を認識する帳票認識装置であって、1以上のプロセッサと、1以上のメモリと、1以上の記憶装置と、を備え、前記記憶装置は、登録済みの前記テンプレートの局所特徴量を含むテンプレート特徴情報を記憶し、前記プロセッサは、登録済みの前記テンプレートを前記局所特徴量に基づいてクラスタに分類し、前記クラスタ毎に属する前記テンプレートの前記局所特徴量を用いてクラスタ特徴量を生成し、前記クラスタ特徴量を含むクラスタ特徴情報を前記記憶装置に格納し、認識対象の前記帳票を表す入力画像の局所特徴量を算出し、前記入力画像の前記局所特徴量、及び前記クラスタ特徴情報に基づいて前記入力画像に対応するクラスタ候補を特定し、前記クラスタ候補に属する前記テンプレートのうち、前記入力画像との前記局所特徴量の類似度が最大のものを前記入力画像に対応する対応テンプレートに決定することを特徴とする。
【発明の効果】
【0009】
本発明によれば、帳票の種類を速やかに認識することが可能となる。
【0010】
前述した以外の課題、構成、及び効果は、以下の実施形態の説明により明らかにされる。
【図面の簡単な説明】
【0011】
【
図1】
図1は、本発明の一実施形態に係る帳票認識システムの構成例を示す図である。
【
図2】
図2は、テンプレート特徴情報のデータ構造の一例を示す図である。
【
図3】
図3は、テンプレート前処理情報のデータ構造の一例を示す図である。
【
図4】
図4は、テンプレート読取位置情報のデータ構造の一例を示す図である。
【
図5A】
図5Aは、テンプレートクラスタリング処理の一例を示すフローチャートである。
【
図5B】
図5Bは、テンプレートクラスタリング処理の一例を示す図である。
【
図6A】
図6Aは、テンプレート間対応点数マトリックス生成処理の一例を示すフローチャートである。
【
図6B】
図6Bは、テンプレート間対応点数マトリックスの一例を示す図である。
【
図7】
図7は、クラスタリング処理の一例を示すフローチャートである。
【
図8A】
図8Aは、テンプレート間対応点数マトリックス走査とクラスタへの登録を示す図である。
【
図8B】
図8Bは、テンプレート間対応点数マトリックス走査とクラスタへの登録を示す図である。
【
図9A】
図9Aは、クラスタ特徴量生成処理の一例を示す図である。
【
図9B】
図9Bは、クラスタ特徴量生成処理の一例を示す図である。
【
図10】
図10は、クラスタ特徴情報のデータ構造の一例を示す図である。
【
図11】
図11は、帳票認識システムによる帳票認識処理の一例を示すシーケンス図である。
【
図12】
図12は、テンプレート選択処理の一例を示すフローチャートである。
【
図13】
図13は、サイズ絞込処理の一例を示すフローチャートである。
【
図14】
図14は、色絞込処理の一例を示すフローチャートである。
【
図15】
図15は、大領域特徴量絞込処理の一例を示すフローチャートである。
【
図16】
図16は、局所特徴量絞込処理の一例を示すフローチャートである。
【
図17】
図17は、クラスタ候補絞込処理の一例を示すフローチャートである。
【
図18】
図18は、テンプレート候補絞込処理の一例を示すフローチャートである。
【
図19】
図19は、適正判定処理の一例を示すフローチャートである。
【
図20】
図20は、クラスタリング確認画面の表示例を示す図である。
【発明を実施するための形態】
【0012】
以下、本発明の一実施形態について図面に基づいて説明する。なお、一実施形態を説明するための全図において、同一の部材には原則として同一の符号を付し、その繰り返しの説明は省略する。また、以下の実施形態において、その構成要素(要素ステップ等も含む)は、特に明示した場合、及び原理的に明らかに必須であると考えられる場合等を除き、必ずしも必須ではない。また、「Aからなる」、「Aよりなる」、「Aを有する」、「Aを含む」と言うときは、特にその要素のみである旨明示した場合等を除き、それ以外の要素を排除しない。同様に、以下の実施形態において、構成要素等の形状、位置関係等に言及するときは、特に明示した場合、及び原理的に明らかにそうでないと考えられる場合等を除き、実質的にその形状等に近似、又は類似するもの等を含む。
【0013】
<本発明の一実施形態に係る帳票認識システム100の構成例>
図1は、本発明の一実施形態に係る帳票認識システム100の構成例を示している。
【0014】
帳票認識システム100は、帳票を認識する帳票認識処理に係るサービスを提供するシステムである。帳票認識システム100は、インターネット500を介してユーザ端末200、及び外部システム300と相互に接続される。
【0015】
ユーザ端末200は、帳票認識システム100によるサービスの提供を受けるユーザが使用する端末装置であり、例えば、PC(Personal Computer)等からなる。ユーザ端末200は、帳票認識処理の対象となる帳票の画像(以下、帳票画像)を帳票認識システム100に送信し、帳票認識システム100から送信された帳票認識処理の結果(帳票の種類、フォーマット、記載されている文字列等)を受信する。
【0016】
外部システム300は、帳票認識システム100からの要求に従って帳票画像に記載された文字を認識する文字認識処理を実行し、その処理結果を文字認識結果として帳票認識システム100に送信する帳票認識エンジンである。
【0017】
なお、帳票認識システム100、ユーザ端末200、及び外部システム300の接続形態は、
図1の例に限らない。例えば、帳票認識システム100は、ユーザ端末200、及び外部システム300とインターネット500以外のネットワークを介して相互に接続されてもよいし、ネットワークを介さずに直接接続されてもよい。また、ユーザ端末200、及び外部システム300の機能の少なくとも一部が、帳票認識システム100に備わっていてもよい。
【0018】
帳票認識システム100は、Webサーバ101、連携サーバ102、及びサービスサーバ103を備える。
【0019】
Webサーバ101は、インターネット500を介してユーザ端末200と接続され、ユーザ端末200から送信された帳票画像を受信し、サービスサーバ103に送信する機能と、外部システム300からの文字認識結果をユーザ端末200に送信する機能とを有する。なお、Webサーバ101は、本実施形態では、httpd(Hyper Text Transfer Protocol Daemon)にて実現される。また、Webサーバ101は、DMZ(Demilitarized Zone)に設けられている。ただし、Webサーバ101は、これらの例に限定されない。
【0020】
連携サーバ102は、インターネット500を介して外部システム300と接続される。連携サーバ102は、例えば、プロキシサーバにて実現される。
【0021】
サービスサーバ103は、Webサーバ101から送信された帳票画像を入力画像として、入力画像に対して帳票認識処理を行う。サービスサーバ103は、本発明の帳票認識装置に相当する。サービスサーバ103は、サービス制御部111、テンプレート選択処理部112、画像前処理部113、帳票認識処理部114、帳票認識結果後処理部115、及びテンプレートクラスタリング処理部116の各機能ブロックを有する。
【0022】
サービス制御部111は、サービスサーバ103の全体を制御する。
【0023】
テンプレート選択処理部112は、複数のテンプレート画像(不図示)(以下、テンプレートと略称する)、テンプレート特徴情報121、及びクラスタ特徴情報124を保持する。テンプレート特徴情報121には、各テンプレートに関する情報が記録されている(
図2を参照して後述)。クラスタ特徴情報124には、テンプレートが属する各クラスタリングに関する情報が記録されている(
図10を参照して後述)。クラスタ特徴情報124は、サービスサーバ103に登録されたテンプレートの数が所定の閾値以上となった場合、テンプレートクラスタリング処理部116によりテンプレートクラスタリング処理が実行され、その結果として生成される。
【0024】
クラスタ特徴情報124は、サービスサーバ103に登録されたテンプレートの数が所定の閾値以上となった場合、テンプレートクラスタリング処理部116によりテンプレートクラスタリング処理が実行され、その結果として生成される。なお、テンプレート(不図示)、テンプレート特徴情報121、及びクラスタ特徴情報124は、後述するサービスサーバ103を実現するコンピュータの記憶装置に格納される。
【0025】
テンプレート選択処理部112は、テンプレート特徴情報121、及びクラスタ特徴情報124を参照し、入力画像に対応するテンプレート、すなわち、入力画像に最も類似しているテンプレートを対応テンプレートとして選択するテンプレート選択処理を実行する。
【0026】
なお、入力画像には、余白が含まれていてもよい。また、入力画像の向きは特に限定されない。一方、入力画像に対応するテンプレートの余白の有無、及び向きは、外部システム300の仕様に応じて定められる。本実施形態では、テンプレートには、余白が含まれず、テンプレートの向きは、所定の向き(具体的には、テンプレート内の文字が正規の方向を向く向き)である。ただし、テンプレートの余白の有無、及び向きはこの例に限らない。例えば、外部システム300に画像の回転補正機能が備わっている場合、テンプレートの向きは特に限定されない。
【0027】
画像前処理部113は、帳票認識処理に先行し、入力画像に対して画像前処理を実行する。画像前処理は、入力画像とテンプレートとのフィッティングを行うフィッティング処理、及び対応テンプレートに応じて行う選択前処理を含む。画像前処理部113は、選択前処理に関するテンプレート前処理情報122を保持し、テンプレート前処理情報122に基づいて、実行する選択前処理を決定する。
【0028】
帳票認識処理部114は、画像前処理済みの入力画像(以下、画像前処理結果画像と称する)に対し、連携サーバ102を介して外部システム300と連携して帳票認識処理を実行する。具体的には、帳票認識処理部114は、各テンプレートにおける文字認識を行う位置を示すテンプレート読取位置情報123を保持し、テンプレート読取位置情報123に基づいて画像前処理結果画像における文字認識を行う位置を示す文字読取位置情報を生成する。そして、帳票認識処理部114は、画像前処理結果画像、及び文字読取位置情報を外部システム300に出力して文字認識処理を依頼する。また、帳票認識処理部114は、画像前処理結果画像から文字読取位置情報に応じた部分を切り出した切り出し画像を外部システム300に出力して文字認識処理を実行してもよい。
【0029】
帳票認識結果後処理部115は、帳票認識処理により得られた文字認識結果に対して行う後処理を実行する。後処理は、例えば、文字認識結果の確信度を調整する処理等である。
【0030】
テンプレートクラスタリング処理部116は、サービスサーバ103に登録されたテンプレートの数が所定の閾値以上である場合、テンプレートをその特徴量に基づいてクラスタに分類するテンプレートクラスタリング処理を実行する。
【0031】
帳票認識システム100のWebサーバ101、連携サーバ102、及びサービスサーバ103それぞれは、パーソナルコンピュータ、サーバコンピュータ等の一般的なコンピュータによって実現される。また、帳票認識システム100のWebサーバ101、連携サーバ102、及びサービスサーバ103は、物理的、又は論理的に別々のコンピュータによって実現してもよいし、単一のコンピュータで実現してもよい。
【0032】
一般的なコンピュータは、CPU(Central Processing Unit)等のプロセッサ、DRAM(Dynamic Random Access Memory)等のメモリ、HDD(Hard Disk Drive)やSSD(SolID State Drive)等の記憶装置、キーボードやマウス、メディアドライブ等の入力デバイス、ディスプレイ等の出力デバイス、NIC(Network Interface Card)等の通信モジュール(いずれも不図示)を備える。
【0033】
例えば、サービスサーバ103を実現するコンピュータにおいては、プロセッサがメモリに格納されたプログラムを実行することにより、サービスサーバ103が有するサービス制御部111、テンプレート選択処理部112、画像前処理部113、帳票認識処理部114、帳票認識結果後処理部115、及びテンプレートクラスタリング処理部116の各機能ブロックが実現される。又は、機能ブロックの少なくとも一部は、ハードウェア回路(例えば、ASIC(Application Specific Integrated Circuit)、又はFPGA(Field-Programmable Gate Array))にて実現されてもよい。
【0034】
なお、プロセッサが実行するプログラムは、予めメモリに格納しておいてもよいし、リムーバブルメディア(CD-ROM、フラッシュメモリ等、)又はインターネット500を介して所定のサーバ等からダウンロードし、非一時的記憶媒体である記憶装置に格納しておき、必要な時に、ストレージから読み出すようにしてもよい。このため、コンピュータは、リムーバブルメディアからデータを読み込むインターフェースを有するとよい。
【0035】
図2は、テンプレート特徴情報121の一例を示している。テンプレート特徴情報121には、サービスサーバ103に登録されたテンプレートに関する情報が記録されている。テンプレート特徴情報121には、テンプレートを識別するためのテンプレートIDに対応付けて、テンプレートの横幅、縦幅、色特徴量、大域特徴量、局所特徴量、付加情報、及び所属クラスタIDが記録される。
【0036】
色特徴量は、例えば、当該テンプレートのHSVヒストグラムである。大域特徴量は、例えば、当該テンプレートのハッシュ値である。局所特徴量は、1以上の特徴点と、各特徴点の特徴量記述子とから構成される。局所特徴量算出手法は、例えば、ORB(Oriented FAST and Rotated BRIEF(Binary Robust Independent Elementary Features))を採用する。ただし、KAZE(Accelerated KAZE)、BRISK(Binary Robust Invariant Scalable Keypoints)、SIFT(Scale-invariant feature transform)等の他の局所特徴量算出手法を採用してもよい。また、局所特徴量の特徴点の数は、帳票の種類に応じて変更してもよい。
【0037】
同図の場合、色特徴量、大域特徴量、及び局所特徴量には、バイナリデータが格納されているが、これらのデータ形式は任意である。
【0038】
同図の場合、付加情報には、当該テンプレートが所属するグループ(例えば、帳票の発行元等)を識別するためのグループIDが記録されているが、付加情報には任意の情報を格納できる。
【0039】
所属クラスタIDは、当該テンプレートが分類されたクラスタの識別情報である。テンプレートの数が所定の閾値よりも少なくクラスタリングが行われない場合、クラスタIDには、例えば、クラスタID=-1が格納される。
【0040】
図3は、テンプレート前処理情報122の一例を示している。テンプレート前処理情報122は、テンプレートが対応テンプレートに選択された際の入力画像に対して実行される選択前処理(地紋除去処理、ノイズ除去処理、及び二値化(モノクロ化)処理)の要否を表す情報である。テンプレート前処理情報122には、テンプレートIDに対応付けて、地紋除去処理の要否、ノイズ除去処理の要否、及び二値化処理の要否が記録される。なお、「TRUE」は当該理を実行することを意味し、「FALSE」は、当該処理を実行しないことを意味する。
【0041】
なお、地紋除去処理、ノイズ除去処理、及び二値化処理は、選択前処理の一例であり、選択前処理はこれらに限らず、例えば、他の処理を含んでもよい。
【0042】
図4は、テンプレート読取位置情報123の一例を示している。テンプレート読取位置情報123は、テンプレートに対応する入力画像に文字認識処理を行う際の読取領域を表す情報である。テンプレート読取位置情報123には、テンプレートを識別するためのテンプレートIDに対応付けて、読取領域に記録されている文字列の属性名、読取領域の所定位置(例えば、左上頂点)のX座標、及びY座標、幅、高さ、並びに付加情報が記録される。
【0043】
属性名には、例えば「銀行名」、「口座番号」等が記録される。付加情報は、文字認識処理に対して指定する情報であり、読取領域に記載されている可能性がある文字の種類(感じ、英字、ひらがな、カタカナ等)が記録される。
【0044】
<テンプレートクラスタリング処理>
図5Aは、テンプレートをクラスタに分類するテンプレートクラスタリング処理の一例を示すフローチャートである。
図5Bは、テンプレートクラスタリング処理の一例を示す図である。
【0045】
テンプレートクラスタリング処理は、テンプレート特徴情報121に登録されたテンプレートの数が所定の閾値以上になった場合にテンプレートクラスタリング処理部116によって実行される。なお、テンプレートの登録に際しては、テンプレートに関する情報(所属クラスタIDを除く)がテンプレート特徴情報121に記録されるものとする。
【0046】
はじめに、テンプレートクラスタリング処理部116が、テンプレート特徴情報121を参照し、各テンプレートの局所特徴量に基づいてテンプレート間対応点数マトリックス生成処理を実行する(ステップS501)。テンプレート間対応点数マトリックス生成処理の詳細については、
図6A、及び
図6Bを参照して後述する。
【0047】
次に、テンプレートクラスタリング処理部116が、ステップS501にて生成したテンプレート間対応点数マトリックスに基づき、対応点数が多いテンプレートどうしを同じクラスタに分類するクラスタリング処理を実行する(ステップS502)。クラスタリング処理の詳細については、
図7、
図8A、及び
図8Bを参照して後述する。
【0048】
次に、テンプレートクラスタリング処理部116が、クラスタ毎に、クラスタに属するテンプレートの局所特徴量に基づいてクラスタ特徴量を生成するクラスタ特徴量生成処理を実行し、クラスタ特徴情報124を生成する(ステップS503)。クラスタ特徴量生成処理の詳細については、
図9A、及び
図9Bを参照して後述する。
【0049】
図6Aは、ステップS501におけるテンプレート間対応点数マトリックス生成処理の一例を示すフローチャートである。
【0050】
まず、テンプレートクラスタリング処理部116が、テンプレート特徴情報121に登録されているテンプレートの数Nを取得する(ステップS601)。次に、テンプレートクラスタリング処理部116が、テンプレート間の対応点数を登録するためのN×Nのマトリックスを生成する(ステップS602)。
【0051】
次に、テンプレートクラスタリング処理部116が、ループ処理L1として、パラメータiを1からNまで1ずつインクリメントし、以下のステップS603、及びループ処理L2(ステップS604~S607)を繰り返し実行する。
【0052】
ループ処理L1では、まず、テンプレートクラスタリング処理部116が、テンプレート特徴情報121からi番目のテンプレートの局所特徴量を取得する(ステップS603)。
【0053】
次に、テンプレートクラスタリング処理部116が、ループ処理L2として、パラメータjを1からNまで1ずつインクリメントし、以下のステップS604~S607を繰り返し実行する。
【0054】
ループ処理L2では、まず、テンプレートクラスタリング処理部116が、テンプレート特徴情報121からj番目のテンプレートの局所特徴量を取得する(ステップS604)。ただし、j=iである場合、j(=i)番目のテンプレートの局所特徴量はステップS603で取得済みであるため、ステップS604は省略される。
【0055】
次に、テンプレートクラスタリング処理部116が、i番目のテンプレートの特徴点毎に、その特徴点に対応するj番目のテンプレートの特徴点を対応点候補として特定する(ステップS605)。具体的には、例えば、k近傍法を採用し、i番目のテンプレートの特徴点毎に、j番目のテンプレートの特徴点のうち類似度が高い方から所定数(例えば、2個)の特徴点を対応点候補として特定する。
【0056】
次に、テンプレートクラスタリング処理部116が、比率検査法を採用し、i番目のテンプレートの特徴点毎に、j番目のテンプレートにおける対応点候補から対応点を決定する絞り込みを行う(ステップS606)。ここで、比率検査法は、i番目のテンプレートの特徴点miと、j番目のテンプレートとの対応点候補のうち、最も類似している対応点候補nj1との類似度s1、及び次も類似している対応点候補nj2との類似度s2を算出する。そして、類似度s1,s2が以下の関係式(1)を満たす場合に、対応点候補nj1を特徴点miに対する対応点として採用する。なお、関係式(1)におけるratioは、所定の比率である。
s1<s2*ratio・・・(1)
【0057】
次に、テンプレートクラスタリング処理部116が、i番目のテンプレートに対して、ステップS606において絞り込むことができたj番目のテンプレートの対応点の数を、ステップS602で生成したN×Nのマトリックスの(i,j)に記録する(ステップS607)。この後、処理をループ処理L2の起点に戻り、ループ処理L2を終える。そして、ループ処理L1の起点に戻り、ループ処理L1を終えることにより、N×Nのマトリックスの全ての枠を埋めてテンプレート間対応点数マトリックスを完成する。
【0058】
図6Bは、完成されたテンプレート間対応点数マトリックスの一例を示す図である。図中に丸印で示すように、例えば、i=1番目のテンプレートに対するj=2番目のテンプレートの対応点の数は10、j=3番目のテンプレートの対応点の数は154であることを表している。反対に、i=2番目のテンプレートに対するj=1番目のテンプレートの対応点の数は12、i=3番目のテンプレートに対するj=1番目のテンプレートの対応点の数は134であることを表している。
【0059】
図6Bに示した例のように、同じテンプレートの組み合わせであっても基準とするテンプレートを入れ替えた場合、対応点の数は変化し得る。なお、当該マトリックスにおける(1,1)等に記録された-1は、同一テンプレートの組み合わせてあることを表している。
【0060】
図7は、ステップS502におけるクラスタリング処理の一例を示すフローチャートである。
【0061】
まず、テンプレートクラスタリング処理部116が、ループ処理L11として、パラメータiを1からNまで1ずつインクリメントし、以下のステップS701,S702、ループ処理L12、及びS706を繰り返し実行する。
【0062】
ループ処理L11では、まず、テンプレートクラスタリング処理部116が、テンプレート特徴情報121を参照し、i番目のテンプレートが既にいずれかのクラスタに属しているか否かを判定する(ステップS701)。ここで、i番目のテンプレートが既にいずれかのクラスタに属していると判定した場合(ステップS701でYES)、テンプレートクラスタリング処理部116が、ステップS702~S706をスキップし、処理をループ処理L11の起点に戻す。
【0063】
反対に、i番目のテンプレートがいずれかのクラスタにも属していないと判定した場合(ステップS701でNO)、テンプレートクラスタリング処理部116が、i番目のテンプレートをベースとする新たなクラスタCkを生成する(ステップS702)。次に、テンプレートクラスタリング処理部116が、ループ処理L12として、パラメータjを1からNまで1ずつインクリメントし、以下のステップS703~S706を繰り返し実行する。
【0064】
ループ処理L12では、まず、テンプレートクラスタリング処理部116が、テンプレート特徴情報121を参照し、j番目のテンプレートが既にいずれかのクラスタに属しているか否かを判定する(ステップS703)。ここで、j番目のテンプレートが既にいずれかのクラスタに属していると判定した場合(ステップS703でYES)、テンプレートクラスタリング処理部116が、ステップS704,S705をスキップし、処理をループ処理L12の起点に戻す。
【0065】
反対に、j番目のテンプレートがいずれかのクラスタにも属していないと判定した場合(ステップS703でNO)、テンプレートクラスタリング処理部116が、ステップS501で生成したテンプレート間対応点数マトリックス(
図6B)の(i,j)の値、及び(j,i)の値を参照し、両方の値が所定の閾値以上であるか否かを判定する(ステップS704)。当該所定の閾値は、例えば、テンプレート間対応点数マトリックスに記録されている値(テンプレートどうしの対応点の数)の平均値を採用してもよい。
【0066】
ここで、テンプレート間対応点数マトリックスの(i,j)の値、及び(j,i)の値が所定の閾値以上であると判定した場合(ステップS704でYES)、次に、テンプレートクラスタリング処理部116が、j番目のテンプレートを、i番目のテンプレートをベースとするクラスタCkに属するテンプレート候補に設定する(ステップS705)。この後、テンプレートクラスタリング処理部116が、処理をループ処理L12の起点に戻す。
【0067】
なお、ステップS704にて、テンプレート間対応点数マトリックスの(i,j)の値、及び(j,i)の値の少なくとも一方が所定の閾値よりも小さいと判定した場合(ステップS704でNO)、テンプレートクラスタリング処理部116が、ステップS705をスキップし、処理をループ処理L12の起点に戻す。
【0068】
そして、テンプレートクラスタリング処理部116が、ループ処理L12を終えた後、処理をループ処理L11の起点に戻し、ループ処理L12を終える。次に、テンプレートクラスタリング処理部116が、クラスタCkに属するテンプレート候補のうち、対応点数が多い方から順にソートし、その上位M個のテンプレート候補をクラスタCkに属するテンプレートに設定する(ステップS706)。以上がクラスタリング処理の説明である。クラスタリング処理により、登録された全てのテンプレートがいずれかのクラスタに属することになる。
【0069】
図8Aは、パラメータi=1の場合に対応するテンプレート間対応点数マトリックス走査と、1番目のテンプレートをベースとするクラスタC1への登録を示す図である。テンプレート間対応点数マトリックスの1行目に記録されている値(テンプレートどうしの対応点の数)のうち、所定の閾値(例えば、100)以上である値は(1,3)の154と、(1,5)の262であるとする。そして、(1,3)に対応する(3,1)の134と、(1,5)に対応する(5,1)の239も所定の閾値以上であるので、1番目のテンプレートをベースとするクラスタC1には、3番目と5番目のテンプレートが属することになる。
【0070】
図8Bは、パラメータi=2の場合に対応するテンプレート間対応点数マトリックス走査と、2番目のテンプレートをベースとするクラスタC2への登録を示す図である。テンプレート間対応点数マトリックスの2行目に記録されている値(テンプレートどうしの対応点の数)のうち、所定の閾値(例えば、100)以上である値は(2,4)の178と、(2,N)の120であるとする。そして、(2,4)に対応する(4,2)の166と、(2,N)に対応する(N,2)の118も所定の閾値以上であるので、2番目のテンプレートをベースとするクラスタC2には、4番目とN番目のテンプレートが属することになる。
【0071】
次に、ステップS503におけるクラスタ特徴量生成処理の詳細について説明する。
【0072】
クラスタ特徴量生成処理は、以下に説明する生成パターン1、又は生成パターン2のいずれかを採用してクラスタ特徴量を生成する。クラスタ特徴量は、1以上の特徴点と、各特徴点の特徴量記述子とから構成される。
【0073】
図9Aは、クラスタ特徴量生成処理の生成パターン1を示している。当該生成パターン1では、同一のクラスタに属する全てのテンプレートの局所特徴量を結合して、当該クラスタに対応するクラスタ特徴量を生成する。
【0074】
図9Bは、クラスタ特徴量生成処理の生成パターン2を示している。当該生成パターン2では、各テンプレートの有効な特徴点の特徴量、すなわち、同一のクラスタに属する他のテンプレートと対応する特徴点の局所特徴量だけを抽出して結合し、当該クラスタに対応するクラスタ特徴量を生成する。
【0075】
生成パターン1を採用した場合、後述するテンプレート選択処理において、入力画像に対応したいずれかのテンプレートが属するクラスタと照合することが可能となる。しかしながら、クラスタ特徴量は、当該クラスタに属するテンプレートの数の増加とともにそのデータ量が大きくなるので、テンプレート選択処理における入力画像とクラスタとの照合の処理量は、全テンプレートの局所特徴量と照合する場合と同等になり、クラスタリングの効果が得られない。
【0076】
これに対し、生成パターン2は、生成パターン1に比べて、クラスタ特徴量のデータ量を削減でき、テンプレート選択処理における入力画像とクラスタとの照合の処理量を削減できる。
【0077】
図10は、テンプレートクラスタリング処理(
図5A)により生成されたクラスタ特徴情報124の一例を示している。
【0078】
クラスタ特徴情報124は、クラスタの識別情報であるクラスタIDに対応付けて、当該クラスタに属するテンプレートの数、当該クラスタに属するテンプレートのテンプレートID、当該クラスタのクラスタ特徴量が記録される。
【0079】
<帳票認識システム100による帳票認識処理>
次に、
図11は、帳票認識システム100による帳票認識処理の一例を説明するシーケンス図である。
【0080】
帳票認識処理では、まず、ユーザ端末200が、ユーザからの所定の帳票開始処理の開始を指示する操作に応じ、帳票認識処理の実行要求をWebサーバ101に送信する(ステップS101)。次に、Webサーバ101が、当該実行要求をサービスサーバ103のサービス制御部111に送信する(ステップS102)。
【0081】
なお、当該実行要求は、帳票認識処理の対象となる1又は複数の帳票画像を含む。また、帳票画像には、当該帳票画像に関する付加情報が付与されていてもよい。付加情報は、本実施形態では、帳票画像に対応する対応テンプレートの候補であるテンプレート候補を絞り込むための情報であり、例えば、テンプレートのグループを識別するグループID、又はテンプレートを識別するテンプレートIDを示す。
【0082】
次に、サービス制御部111が、実行要求に応じ、当該実行要求に含まれる帳票画像を入力画像としてテンプレート選択処理部112に送信する(ステップS103)。次に、テンプレート選択処理部112が、入力画像に対応する対応テンプレートを選択するためのテンプレート選択処理(
図12)を実行し、その処理の過程で得られた座標変換行列(詳細後述)と、処理結果として得られた対応テンプレートのテンプレートIDをサービス制御部111に送信する(ステップS104)。
【0083】
次に、サービス制御部111が、入力画像、テンプレート選択処理にて推定された座標変換行列、及び対応テンプレートのテンプレートIDを画像前処理部113に送信する(ステップS105)。
【0084】
次に、画像前処理部113が、入力画像に対して、座標変換行列を用いたフィッティング処理と、対応テンプレートのテンプレートIDに応じた選択前処理とを含む画像前処理を実行し、画像前処理済みの画像前処理結果画像をサービス制御部111に送信する(ステップS106)。なお、画像前処理部113は、画像前処理として、フィッティング処理の後に選択前処理を実行する。フィッティング処理は、座標変換行列を用いて入力画像を変換することで、入力画像における文字の読取領域を対応テンプレートの読取領域に合わせる処理である。また、画像前処理部113は、テンプレート前処理情報122において、対応テンプレート画像のテンプレートIDに対応する要否情報が「TRUE」とされている選択前処理を実行する。
【0085】
次に、サービス制御部111が、画像前処理結果画像、及び対応テンプレートのテンプレートIDを帳票認識処理部114に送信する(ステップS107)。次に、帳票認識処理部114が、テンプレート読取位置情報123から、受信したテンプレートIDに対応するテンプレート読取位置情報を、画像前処理結果画像の読み取り領域の位置を示す文字読取位置情報として取得する。そして、帳票認識処理部114が、画像前処理結果画像、及び文字読取位置情報を含む文字認識要求を連携サーバ102に送信する(ステップS108)。
【0086】
なお、文字認識要求は、対応テンプレートのテンプレートIDに対応する属性名、及び付加情報を含んでもよい。また、帳票認識処理部114が、画像前処理結果画像から文字読取位置情報に応じた部分を切り出した切り出し画像を含む文字認識要求を連携サーバ102に送信してもよい。
【0087】
次に、連携サーバ102が、受信した文字認識要求を外部システム300に送信する(ステップS109)。次に、外部システム300が、文字認識要求に応じ、文字認識要求に含まれる文字読取位置情報を用いて、文字認識要求に含まれる画像前処理結果画像に対して文字認識処理を行い、その文字認識結果を連携サーバ102に送信する(ステップS110)。文字認識結果は、例えば、画像前処理結果画像、文字読取位置情報、画像前処理結果画像から認識した文字情報、及び文字情報の正確性を示す確信度等を含む。
【0088】
次に、連携サーバ102が、受信した文字認識結果を帳票認識処理部114に送信し(ステップS111)、帳票認識処理部114が、文字認識結果をサービス制御部111に送信し(ステップS112)、サービス制御部111が、文字認識結果を帳票認識結果後処理部115に送信する(ステップS113)。
【0089】
次に、帳票認識結果後処理部115が、文字認識結果に含まれる確信度を予め定められた補正ルールに従って補正し、確信度を補正済みの補正認識結果をサービス制御部111に送信する(ステップS114)。補正ルールは、文字情報を読み取った読取領域の属性毎に設定される。補正ルールには、例えば、属性名が「口座番号」の場合、口座番号の読取結果が7桁ではない場合に確信度を下げる等が規定されている。
【0090】
次に、サービス制御部111が、受信した補正認識結果をWebサーバ101に送信し(ステップS115)、Webサーバ101が、補正認識結果をユーザ端末200に送信する(ステップS116)。そして、ユーザ端末200が、補正認識結果を表示したり、記憶したりする。以上が、帳票認識システム100による帳票認識処理の説明である。
【0091】
<テンプレート選択処理について>
図12は、前述した帳票認識処理(
図11)のステップS104において実行されるテンプレート選択処理の一例を示すフローチャートである。
【0092】
まず、テンプレート選択処理部112が、サービス制御部111から送信された入力画像に付加情報が付与されているか否かを判定する(ステップS1201)。ここで、入力画像に付加情報が付与されていると判定した場合(ステップS1201でYES)、テンプレート選択処理部112が、当該付加情報によって絞り込まれる対応テンプレートの候補であるテンプレート候補が1つであるか否かを判定する(ステップS1202)。例えば、付加情報がテンプレートIDである場合、又は付加情報がグループIDであって、当該グループIDにより識別されるグループに含まれるテンプレートが1つである場合、テンプレート選択処理部112が、付加情報にて絞り込まれるテンプレート候補が1つであると判定する。なお、ステップS1201において、入力画像に付加情報が付与されていないと判定した場合(ステップS1201でNO)、テンプレート選択処理部112が、ステップS1202をスキップして処理をステップS1203に進める。
【0093】
ステップS1202において、当該付加情報によって絞り込まれるテンプレート候補が1つであると判定した場合(ステップS1202でYES)、テンプレート選択処理部112が、後述するステップS1203~S1207をスキップし、当該テンプレート候補を対応テンプレートとして選択し、テンプレート選択処理を終了する。
【0094】
反対に、ステップS1202において、当該付加情報によって絞り込まれるテンプレート候補が1つではないと判定した場合(ステップS1202でNO)、次に、テンプレート選択処理部112が、入力画像のサイズに基づいてテンプレート候補を絞り込むサイズ絞込処理を実行する(ステップS1203)。サイズ絞込処理の詳細については
図13を参照して後述する。
【0095】
次に、テンプレート選択処理部112が、入力画像の色に基づいて、サイズ絞込処理によって絞り込まれたテンプレート候補をさらに絞り込む色絞込処理を実行する(ステップS1204)。色絞込処理の詳細について
図14を参照して後述する。
【0096】
次に、テンプレート選択処理部112が、入力画像の大域特徴量に基づいて、色絞込処理によって絞り込まれたテンプレート候補をさらに絞り込む大域特徴量絞込処理を実行する(ステップS1205)。大域特徴量絞込処理の詳細については
図15を参照して後述する。
【0097】
次に、テンプレート選択処理部112が、入力画像における局所特徴量(複数の特徴点、及び各特徴点の特徴量記述子)を算出し、大域特徴量絞込処理にて絞り込まれたテンプレート候補毎に、当該テンプレート候補における複数の特徴点に対応する複数の対応点を選択し、各特徴点と各テンプレートの各対応点とに基づいて、対応テンプレートを選択する局所特徴量絞込処理を実行する(ステップS1206)。局所特徴量絞込処理の詳細については
図16~
図18を参照して後述する。
【0098】
次に、テンプレート選択処理部112が、局所特徴量絞込処理にて選択された対応テンプレートが適正であるか否かを判定する適正判定処理を実行する(ステップS1207)。適正判定処理の詳細については
図19を参照して後述する。以上が、テンプレート選択処理の説明である。
【0099】
なお、ステップS1203~S1205の各絞込処理は、入力画像の特徴に応じてスキップしてもよい。例えば、入力画像に余白を含む帳票画像と余白を含まない帳票画像とが混在する場合、ステップS1203のサイズ絞込処理、及びステップS1205の大域特徴量絞込処理はスキップしてもよい。また、入力画像がスキャナを用いて読み込まれた画像ではなく、スマートフォン、タブレット端末、デジタルカメラ等を用いて撮影された画像である場合、撮影環境によって画像の色味が変化してしまうため、ステップS1204の色絞込処理はスキップしてもよい。また、スキップする絞込処理は、テンプレート選択処理部112が判定してもよいし、ユーザが設定できるようにしてもよい。
【0100】
図13は、テンプレート選択処理(
図12)のステップS1203にて実行されるサイズ絞込処理の一例を示すフローチャートである。
【0101】
サイズ絞込処理では、まず、テンプレート選択処理部112が、入力画像から、当該入力画像のサイズ(横幅、及び縦幅)を取得する(ステップS1301)。
【0102】
次に、テンプレート選択処理部112が、ループ処理L21として、サービスサーバ103に登録済みの全てのテンプレートに順に着目し、以下のステップS1302~S1305を繰り返し実行する。ただし、テンプレート選択処理(
図12)のステップS1201にて入力画像に付加情報が付与されていると判定された場合には、当該付加情報によって絞り込んだテンプレート(テンプレート候補)に順に着目し、以下のステップS1302~S1305を繰り返し実行すればよい。
【0103】
ループ処理L21では、まず、テンプレート選択処理部112が、テンプレート特徴情報121から、着目中のテンプレートのサイズ(横幅、及び縦幅)を取得する(ステップS1302)。
【0104】
次に、テンプレート選択処理部112が、入力画像と着目中のテンプレートとのサイズが類似しているか否かを判定する(ステップS1303)。具体的には、テンプレート選択処理部112が、サイズに関する以下の条件式(2)、及び(3)が満たされるか否かを判定する。そして、条件式(2)、及び(3)の両方が満たされる場合、テンプレート選択処理部112が、入力画像と着目中のテンプレートとのサイズが類似していると判定する。
w×(1-X)≦W≦w×(1+X)・・・(2)
h×(1-Y)≦H≦h×(1+Y)・・・(3)
【0105】
なお、条件式(2),(3)において、Wはテンプレートの横幅、Hはテンプレートの縦幅、wは入力画像の横幅、hは入力画像の縦幅である。また、X、及びYは0以上11未満の係数である。係数X,Yは同一の値でもよいし、異なる値でもよい。
【0106】
そして、入力画像と着目中のテンプレートとのサイズが類似していると判定した場合(ステップS1303でYES)、次に、テンプレート選択処理部112が、着目中のテンプレートをテンプレート候補に選択する(ステップS1304)。反対に、入力画像と着目中のテンプレートとのサイズが類似していないと判定した場合(ステップS1303でNO)、テンプレート選択処理部112が、着目中のテンプレートをテンプレート候補から除外する(ステップS1305)。この後、テンプレート選択処理部112が、処理をループ処理L21の起点に戻し、ループ処理L21を終えた後、サイズ絞込処理を終了する。
【0107】
なお、入力画像、及びテンプレートのサイズとして、横幅、及び縦幅を採用する代わりに、アスペクト比等のサイズに関する他の指標を採用してもよい。例えば、入力画像とテンプレートとの解像度が異なる可能性がある場合、入力画像、及びテンプレートのサイズとしてアスペクト比を採用することが望ましい。なお、入力画像、及びテンプレートのサイズに関する指標は、ユーザが任意に設定できる。
【0108】
図14は、テンプレート選択処理(
図12)のステップS1204にて実行される色絞込処理の一例を示すフローチャートである。
【0109】
色絞込処理では、まず、テンプレート選択処理部112が、入力画像を解析して、入力画像の色特徴量を取得する(ステップS1401)。ここで、色特徴量は、例えば、色に関する色ヒストグラムであり、具体的には、表色系をHSV表色系としたHSVヒストグラムである。ただし、色特徴量は、HSVヒストグラムに限らず、例えば、RGB表色系やL*a*b表色系等の他の色ヒストグラムを採用してもよい。
【0110】
次に、テンプレート選択処理部112が、ループ処理L31として、前述したサイズ絞込処理にて絞り込まれたテンプレート候補に順に着目し、ステップS1402,S1403を繰り返し実行する。
【0111】
ループ処理L31では、まず、テンプレート選択処理部112が、テンプレート特徴情報121から、着目中のテンプレート候補の色特徴量である色ヒストグラムを取得する(ステップS1402)。次に、テンプレート選択処理部112が、入力画像と着目中のテンプレート候補との色ヒストグラムの類似度である色類似度を算出する(ステップS1403)。ここで、色類似度としては、例えば、バタチャリヤ(Bhattacharyya)距離を採用するが、カイ2乗距離等の他の色類似度を採用してもよい。
【0112】
次に、テンプレート選択処理部112が、処理はループ処理L31の起点に戻し、ループ処理L31を終えた後、次に、各テンプレート候補に対して算出した複数の色類似度の分散を算出する(ステップS1404)。
【0113】
次に、テンプレート選択処理部112が、色類似度の分散に基づいて、テンプレート候補を絞り込む(ステップS1405)。具体的には、テンプレート選択処理部112が、色類似度の分散に応じて、テンプレート候補の絞り込み率を設定し、当該絞り込み率に応じた個数分だけ、色類似度が高い方から順にテンプレート候補を選択することで、テンプレート候補を絞り込む。
【0114】
なお、色類似度の分散が大きいほど、色特徴量によるテンプレート候補の絞り込みが有意であると考えられるため、テンプレート選択処理部112は、色類似度の分散が大きいほど、テンプレート候補の絞り込み率を高い値に設定する。例えば、テンプレート選択処理部112が、色類似度の分散が所定の閾値以上である場合、絞り込み率を0.5に設定し、色類似度の分散が当該所定の閾値未満である場合、絞り込み率を0.125に設定する。この場合、サイズ絞込処理後のテンプレート候補の数が8000であると仮定すると、色類似度の分散が所定の閾値以上であるときにはテンプレート候補の数が4000(=8000×(1-0.5))に絞り込まれ、色類似度の分散が所定の閾値未満であるときには、テンプレート候補の数が7000(=8000×(1-0.125))に絞り込まれることになる。以上が、色絞込処理の説明である。
【0115】
図15は、テンプレート選択処理(
図12)のステップS1205にて実行される大域特徴量絞込処理の一例を示すフローチャートである。
【0116】
大域特徴量絞込処理では、まず、テンプレート選択処理部112が、入力画像を解析して、入力画像の大域特徴量を取得する(ステップS1501)。ここで、大域特徴量は、例えば、ハッシュ値であり、より具体的には、aHash、dHash、及びpHashの3種類のハッシュアルゴリズムを用いて算出される3種類のハッシュ値である。各ハッシュ値は、例えば64ビットである。ただし、ハッシュ値を算出するハッシュアルゴリズムは、上記の例に限らず、例えば、Block・Hash、Wavelet・Hash等の他のアルゴリズムを採用してもよい。なお、ハッシュ値の数や、そのビット数は前述の例に限らず任意である。
【0117】
次に、テンプレート選択処理部112が、ループ処理L41として、前述した色絞込処理にて絞り込まれたテンプレート候補に順に着目し、ステップS1502,S1503を繰り返し実行する。
【0118】
ループ処理L41では、まず、テンプレート選択処理部112が、テンプレート特徴情報121から、着目中のテンプレート候補の大域特徴量であるハッシュ値を取得する(ステップS1502)。次に、テンプレート選択処理部112が、入力画像と着目中のテンプレート候補とのハッシュ値の類似度である大域類似度を算出する(ステップS1503)。ここで、大域類似度は、例えば、ハミング距離を採用する。具体的には、テンプレート選択処理部112が、3種類のハッシュ値のそれぞれについて、ハミング距離を類似度として算出し、各類似度の統計値(重み付け和、平均値等)を大域類似度として算出する。なお、大域類似度は、ハミング距離に限らず、他の類似度を算用してもよい。
【0119】
次に、テンプレート選択処理部112が、処理はループ処理L41の起点に戻し、ループ処理L41を終えた後、次に、各テンプレート候補に対して算出した複数の大域類似度の分散を算出する(ステップS1504)。
【0120】
次に、テンプレート選択処理部112が、大域類似度の分散に基づいて、テンプレート候補を絞り込む(ステップS1505)。具体的には、テンプレート選択処理部112が、大域類似度の分散に応じて、テンプレート候補の絞り込み率を設定し、当該絞り込み率に応じた個数分だけ、大域類似度が高い方から順にテンプレート候補を選択することで、テンプレート候補を絞り込む。ここでは、大域類似度の分散が大きいほど、大域特徴量によるテンプレート候補の絞り込みが有意であると考えられるため、テンプレート選択処理部112は、大域類似度の分散が大きいほど高い値のテンプレート候補の絞り込み率を設定する。以上が、大域絞込処理の説明である。
【0121】
図16は、テンプレート選択処理(
図12)のステップS1206にて実行される局所特徴量絞込処理の一例を示すフローチャートである。
【0122】
局所特徴量絞込処理では、まず、テンプレート選択処理部112が、入力画像の局所特徴量を算出する(ステップS1601)。ただし、入力画像の局所特徴量の算出には、テンプレート特徴情報121に記録されているテンプレートの局所特徴量を算出した方法と同一の方法を用いる必要がある。
【0123】
次に、テンプレート選択処理部112が、サービスサーバ103に対して登録されているテンプレートに対してテンプレートクラスタリング処理(
図5A)が実行済みであるか否かを判定する(ステップS1602)。
【0124】
ここで、テンプレートクラスタリング処理が実行済みであると判定した場合(ステップS1602でYES)、次に、テンプレート選択処理部112が、入力画像の局所特徴量とクラスタ特徴情報124に記録されている各クラスタのクラスタ特徴量とに基づき、入力画像の特徴点と対応するクラスタのクラスタ特徴量の対応点との類似度が高いクラスタ候補を選出するクラスタ候補絞込処理を実行する(ステップS1603)。クラスタ候補絞込処理にて選出するクラスタ候補の数は1に限らず、複数であってもよい。
【0125】
図17は、クラスタ候補絞込処理の一例を示すフローチャートである。クラスタ候補絞込処理では、まず、テンプレート選択処理部112が、ループ処理L51として、クラスタ特徴情報124に記録されている各クラスタに順に着目して、ステップS1701~S1705を繰り返し実行する。
【0126】
ループ処理L51では、まず、テンプレート選択処理部112が、クラスタ特徴情報124から、着目中のクラスタのクラスタ特徴量を取得する(ステップS1701)。次に、テンプレート選択処理部112が、入力画像の特徴点毎に、当該特徴点に対応するクラスタ特徴量の特徴点を対応点として特定する(ステップS1702)。具体的には、例えば、k近傍法を用いて、入力画像の特徴点毎に、クラスタ特徴量の特徴点から、i番目のテンプレートの特徴点との類似度が高い方から所定数(例えば2)番目までの特徴点を対応点として特定する。
【0127】
次に、テンプレート選択処理部112が、入力画像の特徴点毎に、関係式(1)を用いた比率検査法を用いて対応点の絞り込みを実行する(ステップS1703)。次に、テンプレート選択処理部112が、入力画像の局所特徴量と着目中のクラスタのクラスタ特徴量との類似度が閾値以上であるか否かを判定する(ステップS1704)。
【0128】
なお、類似度の算出は、ステップS1703にて絞り込んだ対応点の数を採用してもよし、ステップS1703にて絞り込んだ対応点の平均距離値を採用してもよい。対応点の数を採用する場合、対応点の数が多い方が、類似度が高いことになる。一方、対応点の平均距離値を採用する場合、平均距離値が小さい方が、類似度が高いことになる。
【0129】
さらに、対応点の数と、その平均距離値とを組み合わせて類似度を算出してもよい。この場合、対応点の数が最大、且つ平均距離値が最小となることが望ましいため、例えば、次式(4)を用いて類似度を算出する。
類似度=対応点の数/平均距離値・・・(4)
【0130】
そして、ステップS1704にて、入力画像の局所特徴量と着目中のクラスタのクラスタ特徴量との類似度が閾値以上であると判定した場合(ステップS1704でYES)、テンプレート選択処理部112が、着目中のクラスタを入力画像に対応するクラスタ候補に選出する(ステップS1705)。反対に、入力画像の局所特徴量と着目中のクラスタのクラスタ特徴量との類似度が閾値未満であると判定した場合(ステップS1704でNO)、テンプレート選択処理部112が、ステップS1705をスキップする。
【0131】
次に、テンプレート選択処理部112が、処理をループ処理L51の起点に戻し、ループ処理L51を終えた後、クラスタ候補絞込処理を終了する。
【0132】
図16に戻る。次に、テンプレート選択処理部112が、ステップS1603のクラスタ候補絞込処理によって入力画像に対応するクラスタ候補が選出されたか否かを判定する(ステップS1604)。ここで、入力画像に対応するクラスタ候補が選出されたと判定した場合(ステップS1604でYES)、次に、テンプレート選択処理部112が、クラスタ特徴情報124を参照して、入力画像に対応するクラスタ候補に属するテンプレートを特定する(ステップS1605)。
【0133】
次に、テンプレート選択処理部112が、前述した大域特徴量絞込処理(
図15)により絞り込まれたテンプレート候補であって、且つ、クラスタ候補に属するテンプレートであるものだけにテンプレート候補を絞り込む(ステップS1606)。
【0134】
次に、テンプレート選択処理部112が、ステップS1606で絞り込んだテンプレート候補を、入力画像との類似度に基づいてさらに絞り込むテンプレート候補絞込処理を実行する(ステップS1607)。
【0135】
図18は、テンプレート候補絞込処理の一例を示すフローチャートである。テンプレート候補絞込処理では、まず、テンプレート選択処理部112が、ループ処理L61として、ステップS1606にて絞り込まれたテンプレート候補に順に着目して、ステップS1801~S1805を繰り返し実行する。
【0136】
ループ処理L61では、まず、テンプレート選択処理部112が、テンプレート特徴情報121から、着目中のテンプレート候補の局所特徴量を取得する(ステップS1801)。次に、テンプレート選択処理部112が、入力画像の特徴点毎に、当該特徴点に対応する着目中のテンプレート候補の特徴点を対応点として特定する(ステップS1802)。具体的には、k近傍法を用いて、入力画像の特徴点毎に、対象テンプレート候補の特徴点から、入力画像の特徴点との類似度が高い方から所定数(例えば2)番目までの特徴点を対応点として特定する。
【0137】
次に、テンプレート選択処理部112が、クラスタ候補絞込処理(
図17)のステップS1703と同様に、入力画像の特徴点毎に、比率検査法を用いて対応点の絞り込みを行う(ステップS1803)。
【0138】
次に、テンプレート選択処理部112が、ステップS1803で絞り込んだ対応点に対してRANSAC(Random Sample Consensus)アルゴリズムを用いてさらなる絞り込みを実行する(ステップS1804)。具体的には、以下の処理1、及び処理2を所定回数、又は後述するエラー率が所定の規定値を下回るまで繰り返し、その処理結果に基づいて、処理対象のテンプレート候補の有効対応点を選択する。
【0139】
処理1:対応点を有する入力画像の特徴点をランダムに1点以上(例えば4点)選択し、その選択した座標が対応点の座標に変換される座標変換行列を推定する。また、座標変換行列は、例えば、アフィン行列、又はホモグラフィ行列等である。
【0140】
処理2:処理1にて推定した座標変換行列を用いて、入力画像の他の特徴点(選択した特徴点以外の特徴点)の座標変換を行い、その座標変換を行った変換後特徴点毎に、変換後特徴点とその対応点(変換後特徴点の座標変換前の特徴点(他の特徴点)に対応する対応点)との距離を算出する。そして、算出した距離が所定距離以下となる他の特徴点と、処理1で選択した特徴点とを抽出する。さらに、変換後特徴点とその対応点との誤差を評価したエラー率を算出する。
【0141】
次に、テンプレート選択処理部112が、ステップS1804の結果得られた、エラー率が最も低い処理にて抽出された特徴点に対応する対応点を有効対応点として特定する(ステップS1805)。
【0142】
次に、テンプレート選択処理部112が、処理をループ処理L61の起点に戻し、ループ処理L61を終えた後、テンプレート候補絞込処理を終了する。
【0143】
図16に戻る。次に、テンプレート選択処理部112が、テンプレート候補のうち、入力画像との類似度が最大のテンプレート候補について、当該類似度が所定の閾値以上であるか否かを判定する(ステップS1608)。ここで、当該類似度が所定の閾値以上であると判定した場合(ステップS1608でYES)、次に、テンプレート選択処理部112が、入力画像との類似度が最大のテンプレート候補を、入力画像に対応する対応テンプレートに決定する(ステップS1609)。反対に、当該類似度が所定の閾値未満以上であると判定した場合(ステップS1608でNO)、次に、テンプレート選択処理部112が、入力画像に対応する対応テンプレートはないと判定する(ステップS1610)。
【0144】
なお、ステップS1602にて、テンプレート選択処理部112が、テンプレートクラスタリング処理が実行済みではないと判定した場合(ステップS1602でNO)、ステップS1603~S1605をスキップして、処理をステップS1606に進める。この場合、大域特徴量絞込処理(
図15)によって絞り込まれたテンプレート候補が、入力画像に対応する対応テンプレートに決定されることになる。
【0145】
また、ステップS1604にて、テンプレート選択処理部112が、入力画像に対応するクラスタ候補が選出されていないと判定した場合(ステップS1604でNO)、ステップS1605~S1608をスキップして、処理をステップS1610に進める。この場合、入力画像に対応する対応テンプレートはないと判定される。以上が、局所特徴量絞込処理の説明である。
【0146】
図19は、テンプレート選択処理(
図12)のステップS1207にて実行される適正判定処理の一例を示すフローチャートである。
【0147】
適正判定処理では、まず、テンプレート選択処理部112が、対応テンプレートに応じた座標変換行列である対象変換行列にて示される拡大率が許容範囲内であるか否かを判定する(ステップS1901)。当該判定では、テンプレート選択処理部112が、例えば、拡大率が100±Z[%](Zは0以上の所定の値)の範囲内であるか否かを判定する。対応変換行列は、対応テンプレートの有効対応点を選択する際に使用した座標変換行列である。
【0148】
ここで、対象変換行列にて示される拡大率が許容範囲内であると判定した場合(ステップS1901でYES)、次に、テンプレート選択処理部112が、対応テンプレートの全画素数に対する、対象変換行列を用いて入力画像を変形(座標変換)した変形画像と対応テンプレートとが重複する画素の画素数の割合であるピクセル重複率を算出する。そして、テンプレート選択処理部112が、ピクセル重複率が所定の閾値以上であるか否かを判定する(ステップS1902)。
【0149】
ここで、ピクセル重複率が所定の閾値以上であると判定した場合(ステップS1902でYES)、次に、テンプレート選択処理部112が、対応テンプレートを2値化した画像(モノクロ画像)における全ての黒画素の数に対する、変形画像を2値化した画像と対応テンプレートを2値化した画像とでどちらも同じ位置の画素、且つ黒画素である画素の数の割合である黒重複率を算出する。そして、テンプレート選択処理部112が、黒重複率が所定の閾値以上であるか否かを判定する(ステップS1903)。
【0150】
ここで、黒重複率が所定の閾値以上であると判定した場合(ステップS1903でYES)、次に、テンプレート選択処理部112が、対応テンプレートは適正なものであると判定する(ステップS1904)。
【0151】
なお、ステップS1901にて、対象変換行列にて示される拡大率が許容範囲内ではないと判定した場合(ステップS1901でNO)、ステップS1902にて、ピクセル重複率が所定の閾値未満であると判定した場合(ステップS1902でNO)、及びステップS1903にて、黒重複率が所定の閾値未満であると判定した場合(ステップS1903でNO)のいずれの場合においても、次に、テンプレート選択処理部112が、対応テンプレートは適正なものではないと判定する(ステップS1905)。以上が、適性判定処理の説明である。
【0152】
なお、適性判定処理により対応テンプレートは適正なものではないと判定された場合、
図11に示した帳票認識処理のステップS104以降の処理の代わりに、入力画像に対応する対応テンプレートが存在しない旨の通知情報をユーザ端末200に出力するようにしてもよい。
【0153】
以上に説明したテンプレート選択処理によれば、入力画像のサイズ、色、大域特徴量に基づき、入力画像に対応する対応テンプレートを段階的に絞り込み、さらに、局所特徴量に基づくクラスタに分類して対応テンプレートを決定するので、従来に比較してより早く適切な対応テンプレートを選択でき、これにより速やかに入力画像の認識処理を実行できる。
【0154】
<クラスタリング確認画面2000の表示例>
図20は、テンプレートクラスタリング処理(
図5A)の結果を表すクラスタリング確認画面2000の表示例を示している。クラスタリング確認画面2000は、サービスサーバ103に登録されたテンプレートが適切にクラスタリングされたか否かをユーザが確認するためのものであり、例えば、ユーザ端末200に表示される。
【0155】
クラスタリング確認画面2000には、クラスタ特徴情報表示欄2001、及びクラスタ特徴詳細情報表示欄2002が設けられている。
【0156】
クラスタ特徴情報表示欄2001には、クラスタ特徴情報124に記録されている各クラスタの情報の一覧が表示される。
【0157】
クラスタ特徴詳細情報表示欄2002には、クラスタの数を表示するとともに、ユーザがクラスタIDを入力してクラスタを指定するためのクラスタID入力欄2012、指定されたクラスタに属するテンプレート数、テンプレートID、及びクラスタ特徴量(特徴ベクトル)を表示するクラスタ情報表示欄2013が設けられている。
【0158】
さらに、クラスタ特徴詳細情報表示欄2002には、指定されたクラスタに属するテンプレートの一覧を表示するテンプレート表示欄2014、及びテンプレート表示欄2014にてユーザが選択したテンプレートの情報を表示するテンプレート情報表示欄2015が設けられている。
【0159】
ユーザは、クラスタリング確認画面2000により、各テンプレートが属するクラスタを確認することができ、そのクラスタリングが適切なものであるか否かを確認できる。
【0160】
本発明は、前述した実施形態に限定されるものではなく、様々な変形が可能である。例えば、前述した実施形態は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、ある実施形態の構成の一部を他の実施形態の構成に置き換えたり、追加したりすることが可能である。
【0161】
また、前述の各構成、機能、処理部、処理手段等は、それらの一部、又は全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。また、前述の各構成、機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することによりソフトウェアで実現してもよい。各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリや、ハードディスク、SSD(Solid State Drive)等の記録装置、又は、ICカード、SDカード、DVD等の記録媒体に置くことができる。また、制御線や情報線は説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線や情報線を示しているとは限らない。実際には殆ど全ての構成が相互に接続されていると考えてもよい。
【符号の説明】
【0162】
100・・・帳票認識システム
101・・・Webサーバ
102・・・連携サーバ
103・・・サービスサーバ
111・・・サービス制御部
112・・・テンプレート選択処理部
113・・・画像前処理部
114・・・帳票認識処理部
115・・・帳票認識結果後処理部
116・・・テンプレートクラスタリング処理部
121・・・テンプレート特徴情報
122・・・テンプレート前処理情報
123・・・テンプレート読取位置情報
124・・・クラスタ特徴情報
200・・・ユーザ端末
300・・・外部システム
500・・・インターネット
2000・・・クラスタリング確認画面