(57)【要約】【課題】帳票の分類に用いる定義体の個々の定義におけるデータ量を少なくし、帳票の分類処理を効率よく行う。【解決手段】帳票の画像から水平方向に伸びる線分を抽出した第１の成分画像と垂直方向に伸びる線分を抽出した第２の成分画像とを生成し、第１の成分画像を複数のブロックに分割し、各ブロックの線分の有無に基づいて第１の成分画像における線分の分布の特徴を示す第１の特徴値を生成するとともに、第２の成分画像を複数のブロックに分割し、各ブロックの線分の有無に基づいて第２の成分画像における線分の分布の特徴を示す第２の特徴値を生成し、予め定義体に登録された帳票の定義における第１の特徴値と生成した第１の特徴値との差分、及び帳票の定義における第２の特徴値と生成した第２の特徴値との差分に基づいて、画像内の帳票の種別を識別して分類する処理をコンピュータに実行させるプログラムである。【選択図】図１３
2020016969.tif 000002
【特許請求の範囲】
【請求項１】
帳票の画像から、水平方向に伸びる線分を抽出した第１の成分画像と、垂直方向に伸びる線分を抽出した第２の成分画像とを生成し、
前記第１の成分画像をメッシュ状の複数のブロックに分割し、前記複数のブロックのそれぞれにおける前記水平方向に伸びる線分の有無に基づいて、前記第１の成分画像における前記水平方向に伸びる線分の分布の特徴を示す第１の特徴値を生成するとともに、前記第２の成分画像をメッシュ状の複数のブロックに分割し、前記複数のブロックのそれぞれにおける前記垂直方向に伸びる線分の有無に基づいて、前記第２の成分画像における前記垂直方向に伸びる線分の分布の特徴を示す第２の特徴値を生成し、
予め定義体に登録された帳票の定義における第１の特徴値と生成した前記第１の特徴値との差分、及び前記帳票の定義における第２の特徴値と生成した前記第２の特徴値との差分に基づいて、前記画像内の帳票の種別を識別して分類する、
処理をコンピュータに実行させることを特徴とするプログラム。
【請求項２】
前記第１の特徴値を生成する処理は、前記第１の成分画像についての前記複数のブロックを、水平方向に並んだ複数のブロックを１組として複数の組に分割し、該複数の組毎に、前記水平方向に伸びる線分を含むブロックの割合を算出し、算出した前記割合と対応する１桁の値を割り当てる処理を含み、
前記第２の特徴値を生成する処理は、前記第２の成分画像についての前記複数のブロックを、垂直方向に並んだ複数のブロックを１組として複数の組に分割し、該複数の組毎に、前記垂直方向に伸びる線分を含むブロックの割合を算出し、算出した前記割合と対応する１桁の値を割り当てる処理を含む、
ことを特徴とする請求項１に記載のプログラム。
【請求項３】
前記画像内の帳票の種別を識別して分類する処理は、
前記帳票の定義における前記第１の特徴値と生成した前記第１の特徴値とにおける同一桁の値同士で算出した差分の絶対値の和と、該差分の絶対値を算出した桁の数とに基づいて水平成分の差分を算出するとともに、前記帳票の定義における前記第２の特徴値と生成した前記第２の特徴値とにおける同一桁の値同士で算出した差分の絶対値の和と、該差分の絶対値を算出した桁の数とに基づいて垂直成分の差分を算出し、
算出した前記水平成分の差分及び前記垂直成分の差分が閾値よりも小さくなる前記帳票の定義を、前記画像内の帳票と対応する定義であると判定する処理を含む
ことを特徴とする請求項１に記載のプログラム。
【請求項４】
前記画像内の帳票の種別を識別して分類する処理は、
前記帳票の定義における前記第１の特徴値と生成した前記第１の特徴値との桁数が同一であり、かつ前記帳票の定義における前記第２の特徴値の桁数が生成した前記第２の特徴値の桁数よりも大きい場合に、前記第２の特徴値に基づいて部分照合をする処理を含む
ことを特徴とする請求項１に記載のプログラム。
【請求項５】
前記定義体には、１種類の帳票に対する定義として、前記第１の成分画像及び前記第２の成分画像をメッシュ状の複数のブロックに分割する際の１個のブロックのサイズを変更して生成した複数組の前記第１の特徴値と前記第２の特徴値との組が格納されており、
前記画像内の帳票の種別を識別して分類する処理では、複数組の前記第１の特徴値と前記第２の特徴値との組のうちの、前記第１の成分画像及び前記第２の成分画像を前記複数のブロックに分割したときの１個のブロックのサイズと対応する前記第１の特徴値と前記第２の特徴値との組を選択して前記差分を算出する
ことを特徴とする請求項１に記載のプログラム。
【請求項６】
前記画像内の帳票の種別を識別して分類する処理において分類することができなかった前記帳票の画像、前記第１の特徴値、及び前記第２の特徴値を保持し、
前記分類することができなかった複数の帳票の画像についての前記第１の特徴値同士の差分及び前記第２の特徴値同士の差分に基づいて、分類することができなかった前記複数の帳票の画像のうち同一の帳票についての画像を抽出し、該同一の帳票についての前記画像から生成した前記第１の特徴値及び前記第２の特徴値を新たな定義として前記定義体に登録する処理を更に含む
ことを特徴とする請求項１に記載のプログラム。
【請求項７】
前記定義体には、前記第１の特徴値及び前記第２の特徴値とともに、前記帳票の画像における該帳票の特徴を示す部分イメージの位置及び該部分イメージのデータが登録されており、
前記画像内の帳票の種別を識別して分類する処理は、前記第１の特徴値についての前記差分及び前記第２の特徴値についての前記差分が閾値以下であり、かつ前記定義における前記部分イメージと前記帳票の画像における前記部分イメージとの類似度が閾値以上となる前記帳票の定義を、前記画像内の帳票と対応する定義であると判定する処理を含む
ことを特徴とする請求項１に記載のプログラム。
【請求項８】
前記第１の特徴値を生成する処理では、前記水平方向に伸びる線分を含むブロックの割合と対応する前記１桁の値として１６進数における１桁の値を割り当て、
前記第２の特徴値を生成する処理では、前記垂直方向に伸びる線分を含むブロックの割合と対応する前記１桁の値として１６進数における１桁の値を割り当てる
ことを特徴とする請求項２に記載のプログラム。
【請求項９】
帳票の画像から、水平方向に伸びる線分を抽出した第１の成分画像と、垂直方向に伸びる線分を抽出した第２の成分画像とを生成する成分画像生成部と、
前記第１の成分画像及び前記第２の成分画像のそれぞれをメッシュ状の複数のブロックに分割する画像分割部と、
前記第１の成分画像についての前記複数のブロックのそれぞれにおける前記水平方向に伸びる線分の有無に基づいて、前記第１の成分画像における前記水平方向に伸びる線分の分布の特徴を示す第１の特徴値を生成するとともに、前記第２の成分画像についての前記複数のブロックのそれぞれにおける前記垂直方向に伸びる線分の有無に基づいて、前記第２の成分画像における前記垂直方向に伸びる線分の分布の特徴を示す第２の特徴値を生成する特徴値算出部と、
予め定義体に登録された帳票の定義における第１の特徴値と生成した前記第１の特徴値との差分、及び前記帳票の定義における第２の特徴値と生成した前記第２の特徴値との差分に基づいて、前記画像内の帳票の種別を識別して分類する照合部と
を備えることを特徴とする帳票分類装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラム及び帳票分類装置に関する。
【背景技術】
【０００２】
コンピュータ等を利用した帳票分類装置において画像内の帳票の種別を自動的に分類する方法として、画像から抽出した帳票内の罫線等の線分のレイアウトと、予め用意された定義体に格納された線分のレイアウト情報とを照合して分類する方法が知られている。この種の分類方法では、複数種類の帳票のそれぞれについて、画像内での線分の位置等を示すレイアウト情報を作成し、帳票毎の定義として定義体に格納している。例えば、１本の線分のレイアウト情報は、該線分の一端の座標と他端の座標とを含む。
【０００３】
また、罫線等の線分のレイアウト情報に基づいて帳票を分類する際に、罫線などから抽出した連結部分の重心を特徴点とし、該特徴点を用いて回転、拡大、縮小に対して不変な量である特徴量（ハッシュ値）を算出し、該特徴量に基づいて帳票の種別を分類する方法が知られている（例えば、特許文献１を参照）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００８−２４５１４７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
帳票内の罫線等の線分のレイアウト情報に基づいて画像内の帳票を分類する場合、帳票毎に、多数の線分のそれぞれについての位置等を示す情報を抽出し、それらを１まとめにした定義を定義体に格納することとなる。このため、１種類の帳票に含まれる線分の数が多くなるほど該１種類の帳票に対する定義のデータ量が多くなる。また、近年、私製の帳票の増加に伴い、定義体に格納する定義の種類が増加する傾向にある。したがって、線分のレイアウト情報を定義とする場合、予め用意する定義体のデータ量が膨大になる。
【０００６】
定義体のデータ量が膨大になると、画像内の帳票を分類する際に、１種類の定義において照合に用いる情報が多くなり、照合処理に要する時間が長時間化する。
【０００７】
１つの側面において、本発明は、帳票の分類に用いる定義体の個々の定義におけるデータ量を少なくし、帳票の分類処理を効率よく行うことを目的とする。
【課題を解決するための手段】
【０００８】
本発明に係る第１の側面であるプログラムは、帳票の画像から、水平方向に伸びる線分を抽出した第１の成分画像と、垂直方向に伸びる線分を抽出した第２の成分画像とを生成し、前記第１の成分画像をメッシュ状の複数のブロックに分割し、前記複数のブロックのそれぞれにおける前記水平方向に伸びる線分の有無に基づいて、前記第１の成分画像における前記水平方向に伸びる線分の分布の特徴を示す第１の特徴値を生成するとともに、前記第２の成分画像をメッシュ状の複数のブロックに分割し、前記複数のブロックのそれぞれにおける前記垂直方向に伸びる線分の有無に基づいて、前記第２の成分画像における前記垂直方向に伸びる線分の分布の特徴を示す第２の特徴値を生成し、予め定義体に登録された帳票の定義における第１の特徴値と生成した前記第１の特徴値との差分、及び前記帳票の定義における第２の特徴値と生成した前記第２の特徴値との差分に基づいて、前記画像内の帳票の種別を識別して分類する処理をコンピュータに実行させるプログラムである。
【０００９】
本発明に係る第２の側面である帳票分類装置は、帳票の画像から、水平方向に伸びる線分を抽出した第１の成分画像と、垂直方向に伸びる線分を抽出した第２の成分画像とを生成する成分画像生成部と、前記第１の成分画像及び前記第２の成分画像のそれぞれをメッシュ状の複数のブロックに分割する画像分割部と、前記第１の成分画像についての前記複数のブロックのそれぞれにおける前記水平方向に伸びる線分の有無に基づいて、前記第１の成分画像における前記水平方向に伸びる線分の分布の特徴を示す第１の特徴値を生成するとともに、前記第２の成分画像についての前記複数のブロックのそれぞれにおける前記垂直方向に伸びる線分の有無に基づいて、前記第２の成分画像における前記垂直方向に伸びる線分の分布の特徴を示す第２の特徴値を生成する特徴値算出部と、予め定義体に登録された帳票の定義における第１の特徴値と生成した前記第１の特徴値との差分、及び前記帳票の定義における第２の特徴値と生成した前記第２の特徴値との差分に基づいて、前記画像内の帳票の種別を識別して分類する照合部とを備える帳票分類装置である。
【発明の効果】
【００１０】
本発明によれば、帳票の分類に用いる定義体の個々の定義におけるデータ量を少なくし、帳票の分類処理を効率よく行うことが可能となる。
【図面の簡単な説明】
【００１１】
【図１】帳票分類システムの構成を示す図である。
【図２】一実施形態に係る帳票分類装置の機能的構成を示す図である。
【図３】定義として利用する帳票の特徴値を説明する図である。
【図４】定義体の内容を示す図である。
【図５】定義体を作成する処理を説明するフローチャートである。
【図６】成分画像分割処理の内容を説明するフローチャートである。
【図７Ａ】ブロック値設定処理の内容を説明するフローチャート（その１）である。
【図７Ｂ】ブロック値設定処理の内容を説明するフローチャート（その２）である。
【図８】特徴値算出処理の内容を説明するフローチャートである。
【図９】第１の成分画像についてのブロック値Ｑの算出方法を説明する図である。
【図１０】第１の成分画像についてのブロック値Ｑから第１の特徴値を生成する方法を説明する図である。
【図１１】第２の成分画像についてのブロック値Ｑの算出方法を説明する図である。
【図１２】第２の成分画像についてのブロック値Ｑから第２の特徴値を生成する方法を説明する図である。
【図１３】帳票を分類する処理を説明するフローチャートである。
【図１４】照合処理の内容を説明するフローチャートである。
【図１５】水平成分差分算出処理の内容を説明するフローチャートである。
【図１６】垂直成分差分算出処理の内容を説明するフローチャートである。
【図１７Ａ】照合処理の具体例を説明する図（その１）である。
【図１７Ｂ】照合処理の具体例を説明する図（その２）である。
【図１７Ｃ】照合処理の具体例を説明する図（その３）である。
【図１８】定義体の第１の変形例を説明する図である。
【図１９】分類の対象となる帳票の別の例を説明する図である。
【図２０】未処理の帳票と処理済みの帳票との特徴値の例を説明する図である。
【図２１Ａ】照合処理の変形例を説明するフローチャート（その１）である。
【図２１Ｂ】照合処理の変形例を説明するフローチャート（その２）である。
【図２２】部分照合の手順を説明する図である。
【図２３】帳票分類装置が行う学習処理を説明するフローチャートである。
【図２４】定義として利用する部分イメージの例を示す図である。
【図２５】定義体の第２の変形例を示す図である。
【図２６】特徴値及び部分イメージを利用した照合処理を説明するフローチャートである。
【図２７】コンピュータのハードウェア構成を示す図である。
【発明を実施するための形態】
【００１２】
図１は、帳票分類システムの構成を示す図である。
【００１３】
図１のように、帳票分類システム１は、帳票分類装置２と、スキャナ装置３と、入力装置４と、表示装置５と、サーバ装置６とを含む。
【００１４】
帳票分類装置２は、スキャナ装置３等により作成された帳票の画像と、画像内における帳票の特徴値を示す情報（定義）に基づいて、該画像内の帳票の種類を識別して分類する装置である。スキャナ装置３は、紙媒体である帳票をデジタルデータ化して出力する装置である。スキャナ装置３は、帳票の画像を作成する装置の一例である。入力装置４は、帳票分類装置２に文字情報や制御に関する命令等の各種情報を入力する装置である。表示装置５は、帳票の画像や分類結果を含む各種情報を表示する装置である。
【００１５】
サーバ装置６は、帳票の分類に使用する定義が格納された定義体を保持する装置である。帳票分類装置２は、通信ネットワーク７を介してサーバ装置６と通信可能に接続される。帳票分類装置２は、サーバ装置６から最新の定義体を取得して保持し、該定義体に格納された定義に基づいてスキャナ装置３等から取得した画像内の帳票を分類する。
【００１６】
なお、図１では省略しているが、帳票分類システム１は、帳票分類装置２、スキャナ装置３、入力装置４、及び表示装置５の組を複数組含む。
【００１７】
図２は、一実施形態に係る帳票分類装置の機能的構成を示す図である。
【００１８】
図２のように、帳票分類装置２は、スキャナ制御部２１０と、特徴値生成部２２０と、照合部２３０と、表示制御部２４０と、通信制御部２５０と、主制御部２６０と、記憶部２９０とを備える。
【００１９】
スキャナ制御部２１０は、帳票分類装置２に接続されたスキャナ装置３の動作を制御し、帳票の画像（デジタルデータ）を取得する。
【００２０】
特徴値生成部２２０は、スキャナ装置３等から取得した帳票の画像における帳票の特徴を示す値（特徴値）を生成する処理を行う。特徴値生成部２２０は、帳票の特徴を示す値として、画像内の水平方向に伸びる線分の分布の特徴を示す第１の特徴値と、画像内の垂直方向に伸びる線分の分布の特徴を示す第２の特徴値とを生成する。特徴値生成部２２０は、成分画像作成部２２１と、画像分割部２２２と、ブロック値設定部２２３と、特徴値算出部２２４とを含む。
【００２１】
成分画像作成部２２１は、帳票の画像から、帳票の要素における水平方向成分を抽出した第１の成分画像と、帳票の要素における垂直方向成分を抽出した第２の成分画像とを作成する。ここで、帳票の要素は、帳票内の罫線、文字列、図形等の、帳票の識別に利用可能な情報である。また、帳票の要素における水平方向成分は、帳票の要素のうち帳票の画像における水平方向に伸びる成分である。水平方向に伸びる成分は、例えば、罫線における水平方向に伸びる線分、及び文字における横線（横画）等である。また、帳票の要素における垂直方向成分は、帳票の要素のうち帳票の画像における垂直方向に伸びる成分である。垂直方向に伸びる線分は、例えば、罫線における垂直方向に伸びる線分、及び文字における縦線（縦画）等である。
【００２２】
画像分割部２２２は、第１の成分画像及び第２の成分画像のそれぞれを、メッシュ状に分割する。画像分割部２２２は、例えば、第１の成分画像及び第２の成分画像のそれぞれを、８×８画素を１個のブロックとして複数のブロックに分割する。
【００２３】
ブロック値設定部２２３は、第１の成分画像における各ブロック及び第２の成分画像における各ブロックのそれぞれに対し、抽出した線分を含むブロックであるか否かを判定して該判定結果に応じた値（ブロック値）Ｑを設定する。
【００２４】
例えば、ブロック値設定部２２３は、第１の成分画像におけるＮ×Ｍ個のブロックのうち、水平方向に伸びる線分を含むブロックのブロック値Ｑを「１」とし、水平方向に伸びる線分を含まないブロックのブロック値Ｑを「０」とする。ここで、ブロック値設定部２２３は、１個のブロックを水平方向に並ぶ複数の領域に分割し、該複数の領域のうち線分を示す画素を含む領域の割合に基づいて、水平方向に伸びる線分を含むブロックであるか否かを判定する。例えば、１個のブロックにおける複数の領域のうち線分を示す画素を含む領域の割合が０．５以上である場合、ブロック値設定部２２３は、該ブロックを水平方向に伸びる線分を含むブロックであると判定する。
【００２５】
また、例えば、ブロック値設定部２２３は、第２の成分画像におけるＮ×Ｍ個のブロックのうち、垂直方向に伸びる線分を含むブロックのブロック値Ｑを「１」とし、垂直方向に伸びる線分を含まないブロックのブロック値Ｑを「０」とする。ここで、ブロック値設定部２２３は、１個のブロックを垂直方向に並ぶ複数の領域に分割し、該複数の領域のうち線分を示す画素を含む領域の割合に基づいて、垂直方向に伸びる線分を含むブロックであるか否かを判定する。例えば、１個のブロックにおける複数の領域のうち線分を示す画素を含む領域の割合が０．５以上である場合、ブロック値設定部２２３は、該ブロックを垂直方向に伸びる線分を含むブロックであると判定する。
【００２６】
特徴値算出部２２４は、第１の成分画像についてのブロック値に基づいて第１の特徴値を算出するとともに、第２の成分画像についてのブロック値に基づいて第２の特徴値を算出する。特徴値算出部２２４は、例えば、第１の成分画像についてのＮ×Ｍ個のブロックを、Ｎ×１ブロックを１行とするＭ個の行に分割し、行毎に、算出したブロック値Ｑが１であるブロックの割合と対応する１６進数の１桁の値を算出する。また、特徴値算出部２２４は、算出した各行の１６進数での値を第１の成分画像における行の並び順に整列させ、整列させたＭ桁の値の先頭に１６進数であることを示す２桁の値（０ｘ）を付加した第１の特徴値を生成する。一方、特徴値算出部２２４は、例えば、第２の成分画像についてのＮ×Ｍ個のブロックを、１×Ｍブロックを１列とするＮ個の列に分割し、列毎に、算出したブロック値Ｑが１であるブロックの割合と対応する１６進数の１桁の値を算出する。また、特徴値算出部２２４は、算出した各列の１６進数での値を第２の成分画像における列の並び順に整列させ、整列させたＮ桁の値の先頭に１６進数であることを示す２桁の値（０ｘ）を付加した第２の特徴値を生成する。
【００２７】
照合部２３０は、特徴値生成部２２０で生成した特徴値と、記憶部２９０に記憶させた定義体２９１に格納された定義の特徴値とを照合し、分類の対象となっている画像内の帳票の種別を識別し、取得した画像を帳票の種別毎に分類する。照合部２３０は、第１の特徴値における先頭の２桁（０ｘ）を除くＭ桁の値について、桁毎に差分の絶対値を算出し、該Ｍ桁分の差分の絶対値に基づいて分類の対象となっている画像から生成した第１の特徴値と定義の第１の特徴値との差分を算出する。同様に、照合部２３０は、第２の特徴値における先頭の２桁（０ｘ）を除くＮ桁の値について、桁毎に差分の絶対値を算出し、該Ｎ桁分の差分の絶対値に基づいて分類の対象となっている画像から生成した第２の特徴値と定義の第２の特徴値との差分を算出する。照合部２３０は、第１の特徴値（水平成分）の差分及び第２の特徴値（垂直成分）の差分が閾値以下となる定義を、分類の対象となっている画像内の帳票の種別と対応した定義であると判定する。照合部２３０は、照合結果を記憶部２９０の分類結果２９３に格納する。
【００２８】
表示制御部２４０は、取得した帳票の画像、照合結果、及び定義体に登録された定義を含む各種データを表示装置５に表示させる際の制御を行う。通信制御部２５０は、通信ネットワーク７を介してサーバ装置６と通信を行い、例えば、サーバ装置６が保持している定義体６９０を取得する。また、通信制御部２５０は、例えば、記憶部２９０に記憶させた分類結果２９３、及び取得した帳票の画像等の各種データを、サーバ装置６或いは他の外部装置に送信する。
【００２９】
主制御部２６０は、帳票分類装置２における各種処理（動作）の全体的な制御を行う。主制御部２６０は、例えば、スキャナ制御部２１０、特徴値生成部２２０、照合部２３０、表示制御部２４０、及び通信制御部２５０のそれぞれが行う処理（動作）の開始タイミングやデータの受け渡しのタイミング等の制御を行う。
【００３０】
記憶部２９０は、定義体２９１、処理データ２９２、及び分類結果２９３を含む各種データを記憶する。処理データ２９２は、特徴値生成部２２０が第１の特徴値及び第２の特徴値を生成する処理において算出する成分画像、ブロック値Ｑ、及び１６進数の値等の、一時的に保持する中間データである。
【００３１】
本実施形態の帳票分類装置２では、帳票の画像に含まれる罫線等の要素における水平方向に伸びる成分（線分）の分布の特徴を数値化した第１の特徴値と、該要素における垂直方向に伸びる成分（線分）の分布の特徴を数値化した第２の特徴値とに基づいて、帳票の種類を識別し分類する。
【００３２】
図３は、定義として利用する帳票の特徴値を説明する図である。
【００３３】
図３には、帳票の画像１０と、第１の成分画像１２と、第１の特徴値における特徴部分１４Ｈと、第２の成分画像１５と、第２の特徴値における特徴部分１４Ｖとを示している。
【００３４】
画像１０には、定義体２９１に定義を登録する帳票１１が写っている。画像１０内には、帳票１１の輪郭１１０１、帳票１１内の罫線１１０２，１１０３，１１０４，及び１１０５のように、画像１０内の水平方向に伸びる線分、及び画像１０内の垂直方向に伸びる線分を多数含む。本実施形態の帳票分類システム１では、まず、帳票１１の画像１０から、水平方向に伸びる線分を抽出した第１の成分画像１２と、垂直方向に伸びる線分を抽出した第２の成分画像１５とを作成する。
【００３５】
第１の成分画像１２内には、図３に示した４本の線分１３０１〜１３０４を含む、多数の水平方向に伸びる線分が分布しており、該線分の分布は、画像１０内の帳票１１における水平方向に伸びる線分（横線）の分布と対応している。すなわち、第１の成分画像１２内における水平方向に伸びる線分の分布は、画像１０内の帳票１１における罫線のレイアウトに応じて変化する。このため、本実施形態の帳票分類システム１では、第１の成分画像１２をメッシュ状（すなわち複数のブロック）に分割し、線分を含むブロックの分布に応じた固有の値により第１の成分画像１２内の水平方向に伸びる線分の分布の特徴を示す。
【００３６】
例えば、メッシュサイズ（１個のブロックのサイズ）をｕ×ｕ画素として第１の成分画像１２をメッシュ状に分割すると、第１の成分画像１２はＮ×Ｍ（水平方向×垂直方向）個のブロックに分割される。本実施形態の帳票分類システム１では、第１の成分画像１２におけるＮ×Ｍ個のブロックを、水平方向に並んだＮ個のブロック（Ｎ×１個のブロック）を１行とするＭ個の領域に分割し、領域毎に線分を含むブロックの割合を算出する。その後、Ｍ個の領域のそれぞれに対し、算出した線分を含むブロックの割合と対応する１桁の値（ハッシュ値）を割り当てる。割り当てる値は、例えば、１６進法における１桁の値（０〜９及びＡ〜Ｆの１６通りの値）とする。線分を含むブロックの割合は、１０進数では０から１までの実数となる。このため、例えば、１０進数における０及び１がそれぞれ０及び１５となるよう、１０進数で算出した線分を含むブロックの割合を１６進数の１桁の値に変換（スケーリング）する。すなわち、第１の成分画像１２における１つの領域に割り当てられる１６進数の１桁の値は、該１つの領域における線分を含むブロックの割合が同一であれば、領域内のブロックの総数Ｎによらず、同一の値となる。
【００３７】
このようにすると、水平方向に並んだＮ個のブロックのうちの水平方向に伸びる線分を含むブロックの数が同じである複数の領域には、全て同じ１桁の値が割り当てられる。例えば、図３の第１の成分画像１２を水平方向に並ぶ１４個のブロックを１行とする複数の領域に分割した場合、最上位の領域及び最下位の領域は、それぞれ、１４個のブロック全てが線分を含むブロックとなる。このため、当該２つの領域は、線分を含むブロックの割合が１０進数で「１」となる。ここで、１０進数における０及び１がそれぞれ０及び１５となるようスケーリングをすると、１４個のブロックの全てが線分を含むブロックである場合の線分を含むブロックの割合は１０進数で「１５」となる。したがって、第１の成分画像１２における最上位の領域及び最下位の領域には、それぞれ、１６進数の「Ｆ」という値が割り当てられる。
【００３８】
また、例えば、図３の第１の成分画像１２における上から２番目（２行目）の領域及び３番目（３行目）の領域は、それぞれ、１４個のブロックのうち１３個のブロックが線分を含むブロックとなっている。このため、当該２つの領域における線分を含むブロックの割合は１０進数で「０．９３（＝１３／１４）」となる。ここで、１０進数における０及び１がそれぞれ０及び１５となるようスケーリングをすると、１４個のブロックのうち１３個のブロックが線分を含むブロックである場合の線分を含むブロックの割合は１０進数で「１４（≒０．９３×１５）」となる。したがって、図３の第１の成分画像１２における上から２番目（２行目）の領域及び３番目（３行目）の領域には、それぞれ、１０進数の「１４」と対応する１６進数の「Ｅ」が割り当てられる。
【００３９】
一方、第２の成分画像１５内には、図３に示した６本の線分１６０１〜１６０６を含む、多数の垂直方向に伸びる線分が分布しており、該線分の分布は、画像１０内の帳票１１における垂直方向に伸びる線分（縦線）の分布と対応している。すなわち、第２の成分画像１５内における垂直方向に伸びる線分の分布は、画像１０内の帳票１１における罫線のレイアウトに応じて変化する。このため、本実施形態の帳票分類システム１では、第２の成分画像１５をメッシュ状（すなわち複数のブロック）に分割し、線分を含むブロックの分布に応じた固有の値により第２の成分画像１５内の垂直方向に伸びる線分の分布の特徴を示す。
【００４０】
例えば、第１の成分画像１２と同様、メッシュサイズ（１個のブロックのサイズ）をｕ×ｕ画素として第２の成分画像１５をメッシュ状に分割すると、第２の成分画像１５はＮ×Ｍ（水平方向×垂直方向）個のブロックに分割される。本実施形態の帳票分類システム１では、第２の成分画像１５におけるＮ×Ｍ個のブロックを、垂直方向に並んだＭ個のブロック（１×Ｍ個のブロック）を１列とするＮ個の領域に分割し、領域毎に線分を含むブロックの割合を算出する。その後、Ｎ個の領域のそれぞれに対し、算出した線分を含むブロックの割合と対応する１桁の値（ハッシュ値）を割り当てる。割り当てる値は、第１の成分画像１２の各領域に割り当てる値と同様、１６進法における１桁の値（０〜９及びＡ〜Ｆの１６通りの値）とする。すなわち、第２の成分画像１５における１つの領域に割り当てられる１６進数の１桁の値は、該１つの領域における線分を含むブロックの割合が同一であれば、領域内のブロックの総数Ｍによらず、同一の値となる。
【００４１】
このようにすると、垂直方向に並んだＭ個のブロックのうちの垂直方向に伸びる線分を含むブロックの数が同じである複数の領域には、全て同じ１桁の値が割り当てられる。例えば、図３の第２の成分画像１５を垂直方向に並ぶ８個のブロックを１列とする複数の領域に分割した場合、左端の領域及び右端の領域は、それぞれ、８個のブロック全てが線分を含むブロックとなる。このため、当該２つの領域は、線分を含むブロックの割合が１０進数で「１」となる。よって、１０進数における０及び１がそれぞれ０及び１５となるようスケーリングをすると、当該２つ領域における線分を含むブロックの割合は１０進数で「１５」となる。したがって、第２の成分画像１５における左端の領域及び右端の領域には、それぞれ、１６進数の「Ｆ」という値が割り当てられる。
【００４２】
また、例えば、図３の第２の成分画像１５における左から２番目（２列目）の領域は、８個のブロックのうち７個のブロックが線分を含むブロックとなっている。このため、当該領域における線分を含むブロックの割合は１０進数で「０．８７５（＝７／８）」となる。よって、１０進数における０及び１がそれぞれ０及び１５となるようスケーリングをすると、左から２番目の領域における線分を含むブロックの割合は１０進数で「１３（≒０．８７５×１５）」となる。したがって、図３の第２の成分画像１５における左から２番目（２列目）の領域には、１０進数の「１３」と対応する１６進数の「Ｄ」が割り当てられる。
【００４３】
帳票の画像１０内の水平方向に伸びる線分の分布、より具体的には、線分の数、並びに各線分の位置及び長さの組み合わせは、帳票毎に異なる。すなわち、２枚の画像１０に写っている帳票が同一の帳票１１である場合、２枚の画像１０のそれぞれから作成した第１の成分画像１２のそれぞれを同数のブロックに分割すると、各行における線分を含むブロックの割合が略同一となる。これに対し、２枚の画像１０に写っている帳票が異なる帳票である場合、２枚の画像１０のそれぞれから作成した第１の成分画像１２のそれぞれを同数のブロックに分割すると、線分を含むブロックの割合が全く異なる割合となる行が含まれる。よって、各行における線分を含むブロックの割合を示す第１の特徴値を照合することで、水平方向に伸びる線分の分布が同一であるか否かを判別することが可能となる。
【００４４】
同様に、２枚の画像１０のそれぞれから作成した第２の成分画像１５のそれぞれを同数のブロックに分割し、上記の要領で第２の特徴値を生成すると、第２の特徴値を照合することで、垂直方向に伸びる線分の分布が同一であるか否かを判別することが可能となる。
【００４５】
すなわち、２枚の画像１０に写っている帳票が同一の帳票である場合には、該２枚の画像１０のそれぞれから生成した第１の特徴値同士及び第２の特徴値同士は略同一の値となる。したがって、分類の対象となる画像１０から生成した第１の特徴値及び第２の特徴値のそれぞれが、ある定義の第１の特徴値及び第２の特徴値と略同一の値である場合、画像１０の帳票は、該定義の帳票であると判定することが可能となる。
【００４６】
このように、本実施形態に係る帳票分類システム１では、画像内の帳票における罫線等の要素についての水平方向に伸びる成分（線分）の分布の特徴を示すＭ桁の数値と、垂直方向に伸びる成分の分布の特徴を示すＮ桁の数値とを、定義として利用する。このため、本実施形態に係る帳票分類システム１では、例えば、帳票内の多数の線分のそれぞれについての線分の位置等を示す情報を定義として利用する場合に比べ、１種類の帳票に対する定義のデータ量を少なくすることが可能となる。
【００４７】
図４は、定義体の内容を示す図である。
【００４８】
帳票分類装置２が参照する定義体２９１には、例えば、図４のように、帳票毎に上記の方法により算出した２＋Ｍ桁の数値と２＋Ｎ桁の数値との組が、テーブル形式で複数組登録されている（格納されている）。定義体２９１における定義ＩＤは、罫線のレイアウトや寸法が異なる複数種類の帳票を識別する情報であり、例えば、定義体２９１に登録した定義のそれぞれに登録順に割り当てられる通し番号である。また、定義体２９１における特徴値（ハッシュ値）は、上記の方法で算出した、画像内の帳票における罫線等の要素についての水平方向に伸びる成分の分布の特徴を示す第１の特徴値、及び垂直方向に伸びる成分の分布の特徴を示す第２の特徴値である。
【００４９】
特徴値（ハッシュ値）を１６進数の値とした場合、第１の特徴値及び第２の特徴値は、それぞれ、図４のように先頭に１６進数であることを示す２桁の値「０ｘ」が付加されている。このため、第１の成分画像をＮ×Ｍ個のブロックに分割して生成した第１の特徴値は、Ｍ個の領域のそれぞれにおける線分を含むブロックの割合を示すＭ桁の値（ハッシュ値）の先頭に「０ｘ」を付加した２＋Ｍ桁の値となる。同様に、第２の成分画像をＮ×Ｍ個のブロックに分割して生成した第２の特徴値は、２＋Ｎ桁の値となる。
【００５０】
また、画像１０の画素数は帳票１１の寸法に応じて変化するため、所定のメッシュサイズ（ｕ×ｕ画素）で画像１０を分割した場合のブロック数は、画像１０内の帳票１１の寸法に応じて変化する。このため、定義体２９１には、第１の特徴値の桁数及び第２の特徴値の桁数の組み合わせが異なる定義が格納される。すなわち、本実施形態の帳票分類システム１では、分類の対象となる画像１０から生成した第１の特徴値の桁数と第２の特徴値の桁数との組み合わせに基づいて、定義体２９１に格納された定義のなかから照合する定義を絞り込む（選別する）ことが可能となる。このため、本実施形態の帳票分類装置２では、照合部２３０による照合処理を効率よく行うことが可能となる。
【００５１】
本実施形態の帳票分類装置２が参照する上記の定義体２９１は、例えば、帳票分類装置２自身により作成することが可能である。以下、図５〜図８を参照し、帳票分類装置２により定義体を作成する場合に帳票分類装置２が行う処理について説明する。
【００５２】
図５は、定義体を作成する処理を説明するフローチャートである。図６は、成分画像分割処理の内容を説明するフローチャートである。図７Ａは、ブロック値設定処理の内容を説明するフローチャート（その１）である。図７Ｂは、ブロック値設定処理の内容を説明するフローチャート（その２）である。図８は、特徴値算出処理の内容を説明するフローチャートである。
【００５３】
帳票分類装置２は、例えば、定義体を作成する処理、及び画像内の帳票を分類する処理のどちらの処理を行うかの選択を受け付け可能な状態で待機する。そして、オペレータが帳票分類装置２に接続された入力装置４を操作し、定義体を作成する処理が選択されると、帳票分類装置２は、図５のフローチャートに沿った処理を行う。
【００５４】
帳票分類装置２は、まず、帳票の画像を取得する（ステップＳ１１）。ステップＳ１１の処理は、例えば、スキャナ制御部２１０が行う。スキャナ制御部２１０は、既知の制御方法に従い、スキャナ装置３から帳票の画像（デジタルデータ）１０を取得する。なお、ステップＳ１１の処理は、例えば、予めスキャナ装置３やデジタルカメラ等によりデジタルデータ化して外部装置（記憶装置）等に記憶させておいた帳票の画像を該外部装置から読み出す処理であってもよい。
【００５５】
次に、帳票分類装置２は、取得した画像１０から、水平方向に伸びる線分を抽出した第１の成分画像１２と、垂直方向に伸びる線分を抽出した第２の成分画像１５とを作成する（ステップＳ１２）。ステップＳ１２の処理は、特徴値生成部２２０の成分画像作成部２２１が行う。成分画像作成部２２１は、画像処理の分野における既知の線分抽出方法に従い、第１の成分画像１２及び第２の成分画像１５を作成する。例えば、成分画像作成部２２１は、まず、Sobelフィルタ等を利用した二値化処理により、帳票の画像１０内の画素を罫線等の帳票の要素を示す画素とそれ以外の画素とに分別する。その後、成分画像作成部２２１は、二値化した帳票の画像データから、水平方向に伸びる線分のうち長さ（画素数）が閾値以上となる線分を抽出して第１の成分画像１２を作成する。また、成分画像作成部２２１は、二値化した帳票の画像データから、垂直方向に伸びる線分のうち長さ（画素数）が閾値以上となる線分を抽出して第２の成分画像１５を作成する。
【００５６】
次に、帳票分類装置２は、第１の成分画像１２及び第２の成分画像１５のそれぞれをメッシュ状に分割する成分画像分割処理（ステップＳ１３）を行う。ステップＳ１３の成分画像分割処理は、特徴値生成部２２０の画像分割部２２２が行う。画像分割部２２２は、例えば、成分画像における分割の始点とする画素の位置と、メッシュサイズ（１個のブロックとする水平方向及び垂直方向の画素数）とに基づいて、成分画像を複数のブロックに分割する。例えば、画像分割部２２２は、帳票の画像１０における左上角部の画素を始点とし、画像１０を８×８画素毎の複数のブロックに分割する。なお、成分画像分割処理において、画像分割部２２２は、例えば、成分画像における各画素がどのブロックに属するかを示す情報を生成してもよいし、１つの成分画像のデータを、ブロック毎の複数の画像データに分割してもよい。
【００５７】
次に、帳票分類装置２は、第１の成分画像１２及び第２の成分画像１５の各ブロックに対し線分の有無を示す値を設定するブロック値設定処理（ステップＳ１４）を行う。ステップＳ１４のブロック値設定処理は、特徴値生成部２２０のブロック値設定部２２３が行う。ブロック値設定部２２３は、ブロック内のｕ×ｕ画素における線分を示す画素の数に基づいて、線分を含むブロックであるか否かを判定する。例えば、第１の成分画像１２のブロックの場合、ブロック値設定部２２３は、ブロック内を水平方向に並ぶ複数の領域に分割し、該複数の領域のうちの線分を示す画素を含む領域の割合が閾値以上であるブロックは線分を含むブロックであると判定する。また、例えば、第２の成分画像１２のブロックの場合、ブロック値設定部２２３は、ブロック内を垂直方向に並ぶ複数の領域に分割し、該複数の領域のうちの線分を示す画素を含む領域の割合が閾値以上であるブロックは線分を含むブロックであると判定する。閾値は、例えば、０．５とする。ブロック値設定部２２３は、例えば、線分を含むブロックの値Ｑを「１」とし、線分を含まないブロックの値Ｑを「０」とする。
【００５８】
次に、帳票分類装置２は、各ブロックの値Ｑに基づいて、水平方向に伸びる線分の分布の特徴を示す第１の特徴値と垂直方向に伸びる線分の分布の特徴を示す第２の特徴値とを算出する特徴値算出処理（ステップＳ１５）を行う。ステップＳ１５の特徴値算出処理は、特徴値生成部２２０の特徴値算出部２２４が行う。特徴値算出部２２４は、第１の成分画像１２における各ブロックの値Ｑに基づいて、Ｎ×１個のブロックの行毎に、線分を含むブロックの割合と対応する１６進数の１桁の値（ハッシュ値）を算出する。その後、特徴値算出部２２４は、算出したＭ個の値を行の並び順に並べ先頭に「０ｘ」を付加した第１の特徴値を生成する。特徴値算出部２２４は、例えば、下記数式（１）により算出した１０進数の値Ｚ又は値Ｚを整数値化した値Ｚ’を１６進数に変換し、該１６進数の値を水平方向に伸びる成分を含むブロックの割合と対応するハッシュ値とする。
Ｚ＝（ＬＱ／Ｎ）×１５      ・・・（１）
【００５９】
数式（１）におけるＬＱは、Ｎ個のブロックのうちの線分を含むブロック（Ｑ＝１のブロック）の数である。数式（１）により算出した値Ｚが整数ではない（小数点以下の値が０ではない）場合、特徴値算出部２２４は、例えば、小数点以下の値を四捨五入して整数値化した値Ｚ’を１６進数に変換する。
【００６０】
また、特徴値算出部２２４は、第２の成分画像１５における各ブロックの値Ｑに基づいて、１×Ｍ個のブロックの列毎に、線分を含むブロックの割合と対応する１６進数の１桁の値（ハッシュ値）を算出し、算出したＮ個の値を列の並び順に並べ先頭に「０ｘ」を付加した第２の特徴値を生成する。特徴値算出部２２４は、例えば、下記数式（２）により算出した１０進数の値Ｚ又は値Ｚを整数値化した値Ｚ’を１６進数に変換し、該１６進数の値を垂直方向に伸びる成分を含むブロックの割合と対応するハッシュ値とする。
Ｚ＝（ＬＱ／Ｍ）×１５      ・・・（２）
【００６１】
数式（２）におけるＬＱは、Ｍ個のブロックのうちの線分を含むブロック（Ｑ＝１のブロック）の数である。数式（２）により算出した値Ｚが整数ではない（小数点以下の値が０ではない）場合、特徴値算出部２２４は、例えば、小数点以下の値を四捨五入して整数値化した値Ｚ’を１６進数に変換する。
【００６２】
次に、帳票分類装置２は、定義ＩＤを採番し、画像内の帳票の特徴値（ハッシュ値）を定義体２９１に格納する（ステップＳ１６）。ステップＳ１６の処理は、例えば、特徴値算出部２２４が行う。特徴値算出部２２４は、例えば、既に定義体２９１に格納されている定義の数に基づいて、現在行っている処理により新たに定義体２９１に格納する定義に対する定義ＩＤの番号を決定し、該定義ＩＤに、第１の特徴値及び第２の特徴値を対応付けて定義体２９１に格納する。なお、１６進数の１桁の値を整列させた第１の特徴値及び第２の特徴値を作成した場合、定義体２９１に格納される特徴値の先頭には、１６進数の値であることを示す「０ｘ」という２桁の値が付加されている（図４を参照）。
【００６３】
上記のステップＳ１１〜Ｓ１６の処理を終えると、帳票分類装置２は、定義体２９１を作成する処理を続けるか否かを判定する（ステップＳ１７）。例えば、帳票分類装置２は、ステップＳ１１〜Ｓ１６の処理を終えると、処理を続けるか否かの選択を受け付け可能な状態で待機する。そして、オペレータが帳票分類装置２に接続された入力装置４を操作し、処理を続けることが選択されると（ステップＳ１７；ＹＥＳ）、帳票分類装置２は、ステップＳ１１〜Ｓ１６の処理を実行する。一方、処理を終了することが選択されると（ステップＳ１７；ＮＯ）、帳票分類装置２は、定義体２９１を作成する処理を終了する。定義体２９１を作成する処理を終了した後、帳票分類装置２は、例えば、定義体２９１を作成する処理、及び画像内の帳票を分類する処理のどちらの処理を行うかの選択を受け付け可能な状態で待機する。
【００６４】
なお、複数枚の帳票を連続してデジタルデータ化することが可能なスキャナ装置３から帳票の画像を取得する場合等、定義（第１の特徴値及び第２の特徴値）を作成する帳票の画像を複数枚連続して取得可能な場合、帳票分類装置２は、ステップＳ１１〜Ｓ１７の処理を複数回自動で繰り返してもよい。
【００６５】
このように、本実施形態の帳票分類装置２は、取得した帳票の画像１０から第１の成分画像１２及び第２の成分画像１５を作成した後、作成した成分画像のそれぞれを複数のブロックに分割する成分画像分割処理（ステップＳ１３）を行う。成分画像分割処理は、画像分割部２２２が行う。画像分割部２２２は、成分画像分割処理として、例えば、図６のフローチャートに沿った処理を行う。図６は、成分画像分割処理の内容を説明するフローチャートである。
【００６６】
成分画像分割処理を開始すると、画像分割部２２２は、まず、メッシュサイズ（１個のブロックの画素数）を設定する（ステップＳ１３０１）。ステップＳ１３０１の処理では、画像分割部２２２は、予め定められたメッシュサイズ（例えば、８×８画素）に設定する。
【００６７】
次に、画像分割部２２２は、メッシュサイズに基づいて複数のブロックに分割した成分画像におけるブロックと画素との対応関係を保持する領域を記憶部２９０のバッファ内に確保する（ステップＳ１３０２）。ステップＳ１３０２の処理では、画像分割部２２２は、記憶部２９０における処理データ２９２を保持するバッファ内に、ブロックと画素との対応関係を保持する領域を確保する。
【００６８】
次に、画像分割部２２２は、設定したメッシュサイズに基づいて第１の成分画像１２を複数のブロックに分割し、ブロックと画素との対応関係をバッファに格納する（ステップＳ１３０３）。例えば、設定したメッシュサイズが８×８画素である場合、画像分割部２２２は、第１の成分画像１２を８×８画素毎の複数のブロックに分割する。その後、画像分割部２２２は、例えば、ブロック毎に、第１の成分画像１２における位置を示す情報と、ブロック内に含まれる６４個の画素の値（線分を示す画素か否かを示す値）とを対応付けてバッファに格納する。
【００６９】
次に、画像分割部２２２は、設定したメッシュサイズに基づいて第２の成分画像１５を複数のブロックに分割し、ブロックと画素との対応関係をバッファに格納する（ステップＳ１３０４）。例えば、設定したメッシュサイズが８×８画素である場合、画像分割部２２２は、第２の成分画像１５を８×８画素毎の複数のブロックに分割する。その後、画像分割部２２２は、例えば、ブロック毎に、第２の成分画像１５における位置を示す情報と、ブロック内に含まれる６４個の画素の値（線分を示す画素か否かを示す値）とを対応付けてバッファに格納する。
【００７０】
ステップＳ１３０３及びＳ１３０４の処理を終えると、画像分割部２２２は、１つの帳票の画像１０から作成した第１の成分画像１２及び第２の成分画像１５の組に対する成分画像分割処理を終了する。
【００７１】
なお、ステップＳ１３０３の処理とステップＳ１３０４の処理とは、順序が逆であってもよい。また、画像分割部２２２は、ステップＳ１３０３の処理とステップＳ１３０４の処理とを並列に行ってもよい。
【００７２】
成分画像分割処理が終了すると、帳票分類装置２は、次に、ブロック値設定処理（ステップＳ１４）を行う。ブロック値設定処理は、ブロック値設定部２２３が行う。ブロック値設定部２２３は、ブロック値設定処理として、例えば、図７Ａ及び図７Ｂのフローチャートに沿った処理を行う。図７Ａは、ブロック値設定処理の内容を説明するフローチャート（その１）である。図７Ｂは、ブロック値設定処理の内容を説明するフローチャート（その２）である。
【００７３】
ブロック値設定処理を開始すると、ブロック値設定部２２３は、まず、図７Ａのように、線分を含むブロックであるか否かの判定に利用する閾値ＴＨを設定する（ステップＳ１４０１）。ステップＳ１４０１では、ブロック値設定部２２３は、例えば、帳票の画像１０の解像度やノイズの程度に基づいて、予め定められた複数通りの閾値ＴＨのうちのいずれかを選択する。なお、ステップＳ１４０１の処理は、例えば、オペレータが入力装置４を操作して閾値ＴＨを選択することや、閾値ＴＨ（数値）を入力することが可能な処理であってもよい。
【００７４】
次に、ブロック値設定部２２３は、各ブロックの線分の有無を示すブロック値Ｑを保持する領域をバッファ内に確保する（ステップＳ１４０２）。本実施形態では、線分を含むブロックの値Ｑを「１」とし、線分を含まないブロックの値Ｑを「０」とする。
【００７５】
次に、ブロック値設定部２２３は、第１の成分画像１２を選択し（ステップＳ１４０３）、第１の成分画像１２の各ブロックにブロック値Ｑを設定する第１のループ処理（ステップＳ１４０４〜Ｓ１４１０）を行う。
【００７６】
第１のループ処理において、ブロック値設定部２２３は、まず、ブロックを１つ選択し、該ブロックに対するブロック値Ｑを「０」に設定する（ステップＳ１４０４）。すなわち、ステップＳ１４０４において、ブロック値設定部２２３は、選択したブロックが線分を含まないブロックであると見做す。
【００７７】
次に、ブロック値設定部２２３は、ｕ×ｕ画素のブロック内を１×ｕ画素のｕ個の領域（列）に分割する（ステップＳ１４０５）。メッシュサイズが８×８画素の場合、ブロック値設定部２２３は、８×８画素のブロック内を、１×８画素の８個の領域に分割する。なお、ステップＳ１４０５の処理は、ブロック値設定部２２３が１個のブロック内を水平方向に並ぶ複数の領域に分割する処理の一例である。
【００７８】
次に、ブロック値設定部２２３は、分割したｕ個の領域のうち線分を示す画素を含む領域の割合Ｋを算出し（ステップＳ１４０６）、Ｋ≧ＴＨであるか否かを判定する（ステップＳ１４０７）。ステップＳ１４０６の処理では、ブロック値設定部２２３は、１個の領域に含まれる１×ｕ個の画素のうちの１個でも線分を示す画素であれば、領域内の位置によらず、当該領域が線分を示す画素を含む領域であると認識する。
【００７９】
Ｋ≧ＴＨである場合（ステップＳ１４０７；ＹＥＳ）、ブロック値設定部２２３は、ブロック値Ｑを「１」に変更し（ステップＳ１４０８）、ブロックとブロック値Ｑとを対応付けてバッファに格納する（ステップＳ１４０９）。一方、Ｋ＜ＴＨである場合（ステップＳ１４０７；ＮＯ）、ブロック値設定部２２３は、ステップＳ１４０８の処理を省略し、ブロックとブロック値Ｑ（＝０）とを対応付けてバッファに格納する（ステップＳ１４０９）。
【００８０】
ステップＳ１４０９の処理を終えると、ブロック値設定部２２３は、次に、第１の成分画像１２についての複数のブロックの全てを選択したか否かを判定する（ステップＳ１４１０）。選択していないブロックがある場合（ステップＳ１４１０；ＮＯ）、ブロック値設定部２２３は、ステップＳ１４０４以降の処理を繰り返す。そして、全てのブロックが選択済みである場合（ステップＳ１４１０；ＹＥＳ）、ブロック値設定部２２３は、第１のループ処理（ステップＳ１４０４〜Ｓ１４１０）を終了する。第１のループ処理を終了した後、ブロック値設定部２２３は、図７Ｂのように、第２の成分画像を選択し（ステップＳ１４１１）、第２の成分画像１５の各ブロックにブロック値Ｑを設定する第２のループ処理（ステップＳ１４１２〜Ｓ１４１８）を行う。
【００８１】
第２のループ処理において、ブロック値設定部２２３は、まず、ブロックを１つ選択し、該ブロックに対するブロック値Ｑを「０」に設定する（ステップＳ１４１２）。すなわち、ステップＳ１４１２において、ブロック値設定部２２３は、選択したブロックが線分を含まないブロックであると見做す。
【００８２】
次に、ブロック値設定部２２３は、ｕ×ｕ画素のブロック内をｕ×１画素のｕ個の領域（行）に分割する（ステップＳ１４１３）。メッシュサイズが８×８画素の場合、ブロック値設定部２２３は、８×８画素のブロック内を、８×１画素の８個の領域に分割する。なお、ステップＳ１４１３の処理は、ブロック値設定部２２３が１個のブロック内を垂直方向に並ぶ複数の領域に分割する処理の一例である。
【００８３】
次に、ブロック値設定部２２３は、分割したｕ個の領域のうち線分を示す画素を含む領域の割合Ｋを算出し（ステップＳ１４１４）、Ｋ≧ＴＨであるか否かを判定する（ステップＳ１４１５）。ステップＳ１４１４の処理では、ブロック値設定部２２３は、１個の領域に含まれるｕ×１個の画素のうちの１個でも線分を示す画素であれば、領域内の位置によらず、当該領域が線分を示す画素を含む領域であると認識する。
【００８４】
Ｋ≧ＴＨである場合（ステップＳ１４１５；ＹＥＳ）、ブロック値設定部２２３は、ブロック値Ｑを「１」に変更し（ステップＳ１４１６）、ブロックとブロック値Ｑとを対応付けてバッファに格納する（ステップＳ１４１７）。一方、Ｋ＜ＴＨである場合（ステップＳ１４１５；ＮＯ）、ブロック値設定部２２３は、ステップＳ１４１６の処理を省略し、ブロックとブロック値Ｑ（＝０）とを対応付けてバッファに格納する（ステップＳ１４１７）。
【００８５】
ステップＳ１４１７の処理を終えると、ブロック値設定部２２３は、次に、第２の成分画像１５についての複数のブロックの全てを選択したか否かを判定する（ステップＳ１４１８）。選択していないブロックがある場合（ステップＳ１４１８；ＮＯ）、ブロック値設定部２２３は、ステップＳ１４１２以降の処理を繰り返す。そして、全てのブロックが選択済みである場合（ステップＳ１４１８；ＹＥＳ）、ブロック値設定部２２３は、第２のループ処理（ステップＳ１４１２〜Ｓ１４１８）を終了する。第２のループ処理を終了すると、ブロック値設定部２２３は、１つの帳票の画像１０から作成した第１の成分画像１２及び第２の成分画像１５に対するブロック値設定処理を終了する。
【００８６】
なお、ステップＳ１４０３〜Ｓ１４１０の処理と、ステップＳ１４１１〜Ｓ１４１８の処理とは、順序が逆であってもよい。また、ブロック値設定部２２３は、ステップＳ１４０３〜Ｓ１４１０の処理と、ステップＳ１４１１〜Ｓ１４１８の処理とを並列に行ってもよい。
【００８７】
ブロック値設定処理を終了すると、帳票分類装置２は、次に、特徴値算出処理（ステップＳ１５）を行う。特徴値算出処理は、特徴値算出部２２４が行う。特徴値算出部２２４は、特徴値算出処理として、例えば、図８のフローチャートに沿った処理を行う。図８は、特徴値算出処理の内容を説明するフローチャートである。
【００８８】
特徴値算出処理を開始すると、特徴値算出部２２４は、まず、第１の成分画像についてのＮ×Ｍ個のブロックのブロック値Ｑに基づいて第１の特徴値を生成する処理（ステップＳ１５０１〜Ｓ１５０４）を行う。第１の特徴値を生成する処理では、特徴値算出部２２４は、まず、第１の成分画像についてのＮ×Ｍ個のブロックのブロック値Ｑを読み込む（ステップＳ１５０１）。
【００８９】
次に、特徴値算出部２２４は、Ｎ×Ｍ個のブロックにおけるＮ×１個のブロックを１行とし、行毎にＱ＝１であるブロックの数ＬＱを１０進法で計数する（ステップＳ１５０２）。
【００９０】
次に、特徴値算出部２２４は、行毎に、１０進数でＺ＝（ＬＱ／Ｎ）×１５を算出し、値Ｚの小数点以下を四捨五入して整数値Ｚ’に変換する（ステップＳ１５０３）。
【００９１】
次に、特徴値算出部２２４は、行毎に算出した整数値Ｚ’のそれぞれを１６進数の値に変換して整列させ第１の特徴値を生成する（ステップＳ１５０４）。ステップＳ１５０３において算出される整数値Ｚ’は、０から１５までの１６通りの整数のいずれかとなる。このため、整数値Ｚ’を１６進数に変換した値は、０〜９及びＡ〜Ｅのいずれかの１桁の値となる。したがって、整数値Ｚ’を１６進数に変換して行の並び順に整列させた値は、Ｍ桁の値となる。また、ステップＳ１５０４において、特徴値算出部２２４は、Ｍ桁の値の先頭に、１６進数であることを示す２桁の値（０ｘ）を付加する。このため、ステップＳ１５０４において生成される第１の特徴値は、２＋Ｍ桁の値となる。
【００９２】
第１の特徴値の生成を終えると、特徴値算出部２２４は、次に、第２の成分画像についてのＮ×Ｍ個のブロックのブロック値Ｑに基づいて第２の特徴値を生成する処理（ステップＳ１５０５〜Ｓ１５０８）を行う。第２の特徴値を生成する処理では、特徴値算出部２２４は、まず、第２の成分画像についてのＮ×Ｍ個のブロックのブロック値Ｑを読み込む（ステップＳ１５０５）。
【００９３】
次に、特徴値算出部２２４は、Ｎ×Ｍ個のブロックにおける１×Ｍ個のブロックを１列とし、列毎にＱ＝１であるブロックの数ＬＱを１０進法で計数する（ステップＳ１５０６）。
【００９４】
次に、特徴値算出部２２４は、列毎に、１０進数でＺ＝（ＬＱ／Ｍ）×１５を算出し、値Ｚの小数点以下を四捨五入して整数値Ｚ’に変換する（ステップＳ１５０７）。
【００９５】
次に、特徴値算出部２２４は、列毎に算出した整数値Ｚ’のそれぞれを１６進数の値に変換して整列させ第２の特徴値を生成する（ステップＳ１５０８）。整数値Ｚ’を１６進数に変換して列の並び順に整列させた値は、Ｎ桁の値となる。また、ステップＳ１５０８において、特徴値算出部２２４は、Ｎ桁の値の先頭に、１６進数であることを示す２桁の値（０ｘ）を付加する。このため、ステップＳ１５０８において生成される第２の特徴値は、２＋Ｎ桁の値となる。
【００９６】
第１の特徴値及び第２の特徴値を生成すると、特徴値算出部２２４は、１つの帳票の画像１０から作成した第１の成分画像１２及び第２の成分画像１５に対する特徴値算出処理を終了する。
【００９７】
なお、ステップＳ１５０１〜Ｓ１５０４の処理と、ステップＳ１５０５〜Ｓ１５０８の処理とは、順序が逆であってもよい。また、特徴値算出部２２４は、ステップＳ１５０１〜Ｓ１５０４の処理と、ステップＳ１５０５〜Ｓ１５０８の処理とを並列に行ってもよい。
【００９８】
定義体２９１を作成する処理を行っている場合、帳票分類装置２は、特徴値算出処理（ステップＳ１５）の後、定義ＩＤを採番し、生成した第１の特徴値及び第２の特徴値を定義体２９１に格納する（ステップＳ１６）。
【００９９】
このように、本実施形態に係る帳票分類装置２等の定義体２９１を作成する装置は、帳票の画像１０における水平方向に伸びる線分の分布の特徴を示す第１の特徴値と垂直方向に伸びる線分の分布の特徴を示す第２の特徴値とを生成し、定義体２９１に格納する。
【０１００】
ここで、図９〜図１２を参照し、第１の特徴値及び第２の特徴値の生成方法について具体的に説明する。なお、以下の説明では、上記のブロック値設定処理及び特徴値算出処理という分け方ではなく、第１の成分画像１２から第１の特徴値を算出する（生成する）処理、及び第２の成分画像１５から第２の特徴値を算出する（生成する）処理に分ける。
【０１０１】
図９は、第１の成分画像についてのブロック値Ｑの算出方法を説明する図である。図１０は、第１の成分画像についてのブロック値Ｑから第１の特徴値を生成する方法を説明する図である。図１１は、第２の成分画像についてのブロック値Ｑの算出方法を説明する図である。図１２は、第２の成分画像についてのブロック値Ｑから第２の特徴値を生成する方法を説明する図である。
【０１０２】
図９の（ａ）には、第１の成分画像１２における２８×１２画素の部分領域１２０１を拡大して示している。なお、部分領域１２０１内の２８×１２画素（マス）のうち、網掛けを付した画素（マス）は、水平方向の成分（線分）を示す画素である。
【０１０３】
本実施形態の帳票分類装置２は、第１の線分画像１２を複数のブロック（メッシュ状）に分割し、ブロック毎に、線分の有無を示すブロック値Ｑを設定する。メッシュサイズを８×８画素に設定して第１の成分画像１２を分割すると、部分領域１２０１には、例えば、図９の（ａ）のように、上から３番目及び左から３番目となる位置の画素を始点（左上角部）とする第１のブロックＢ１が設定される。このとき、部分領域１２０１における第１のブロックＢ１の右方には、第２のブロック（図示せず）及び第３のブロックＢ３が設定される。
【０１０４】
第１の成分画像１２についてのブロック値Ｑを設定する処理において、帳票分類装置２のブロック値設定部２２３は、１個のブロックを、１×ｕ画素を１個の領域（１列）とする、水平方向に並んだｕ個の領域に分割し、該ｕ個の領域のうちの線分を示す画素を含む領域の割合Ｋを算出する（ステップＳ１４０５及びＳ１４０６）。例えば、図９の（ａ）の部分領域１２０１における第１のブロックＢ１には、水平方向に伸びる線分１３１１を示す画素が存在し、かつ当該画素が第１のブロックＢ１の右端から左方に７画素（７列）連続している。すなわち、第１のブロックＢ１を処理の対象とした場合、第１のブロックＢ１内の８個の列のうち７個の列に、線分を示す画素が含まれる。よって、ブロック値設定部２２３は、第１のブロックＢ１の線分を示す画素を含む領域の割合Ｋとして、Ｋ＝７／８＝０．８７５を算出する。
【０１０５】
第１のブロックＢ１についての割合Ｋを算出した後、ブロック値設定部２２３は、算出した割合Ｋが閾値ＴＨ以上（Ｋ≧ＴＨ）であるか否かを判定する（ステップＳ１４０７）。ここで、閾値ＴＨを０．５とすると、第１のブロックＢ１についての割合Ｋ（＝０．８７５）と閾値ＴＨとの大小関係は、Ｋ＞ＴＨとなる。このため、ブロック値設定部２２３は、第１のブロックＢ１のブロック値Ｑを「１」とする（ステップＳ１４０８）。
【０１０６】
第１のブロックＢ１に対しブロック値設定部２２３が行う上記の処理の内容をまとめると、例えば、図９の（ｂ）に示したテーブル１７Ａにおけるブロック番号ｍ１の欄１７０１のようになる。ここで、テーブル１７Ａのブロック番号は、第１の成分画像１２についてのＮ×Ｍ個のブロックを識別する通し番号である。ブロック値設定部２２３は、第１のブロックＢ１のブロック値Ｑを「１」とした後、例えば、テーブル１７Ａにおけるブロック番号ｍ１とブロック値Ｑ（＝１）とを対応付けてバッファに格納する（ステップＳ１４０９）。
【０１０７】
また、図９の（ａ）の部分領域１２０１における第３のブロックＢ３は、１×８画素を１列とする８個の領域（列）に分割すると、左端の列に、水平方向に伸びる線分１３１１を示す画素が含まれる。また、第３のブロックＢ３における、右端の列には水平方向に伸びる線分１３１２及び線分１３１３を示す画素が含まれ、右から２番目の列には水平方向に伸びる線分１３１２を示す画素が含まれる。すなわち、第３のブロックＢ３には、水平方向に伸びる線分を示す画素を含む列が３個（列）存在する。このため、ブロック値設定部２２３は、第３のブロックＢ３における線分を示す画素を含む領域の割合Ｋとして、Ｋ＝３／８＝０．３７５を算出する。しかしながら、算出した割合Ｋ（＝０．３７５）は、閾値ＴＨ（＝０．５）よりも小さい。このため、ブロック値設定部２２３は、ステップＳ１４０８の処理を省略し、第３のブロックＢ３のブロック値Ｑを「０」のままとする。
【０１０８】
第３のブロックＢ３に対しブロック値設定部２２３が行う上記の処理の内容をまとめると、例えば、図９の（ｂ）に示したテーブル１７Ａにおけるブロック番号ｍ３の欄１７０２のようになる。ブロック値設定部２２３は、第３のブロックＢ３のブロック値Ｑを「０」にすることが確定した後、例えば、テーブル１７Ａにおけるブロック番号ｍ３とブロック値Ｑ（＝０）とを対応付けてバッファに格納する（ステップＳ１４０９）。
【０１０９】
本実施形態の帳票分類装置２におけるブロック値設定部２２３は、第１の成分画像１２をｕ×ｕ画素毎に分割して得られるＮ×Ｍ個のブロックのそれぞれに対し、上記のステップＳ１４０４〜Ｓ１４０９の処理を行う。例えば、図９の（ａ）の部分領域１２０１における第１のブロックＢ１と第３のブロックＢ３との間に設定される第２のブロック（図示せず）に対しブロック値設定部２２３が行うステップＳ１４０４〜Ｓ１４０９の処理の内容をまとめると、テーブル１７におけるブロック番号ｍ２の欄のようになる。すなわち、第２のブロックについてのブロック値Ｑは「１」となるため、ブロック値設定部２２３は、例えば、テーブル１７Ａにおけるブロック番号ｍ２とブロック値Ｑ（＝１）とを対応付けてバッファに格納する（ステップＳ１４０９）。
【０１１０】
第１の成分画像１２についてのＮ×Ｍ個のブロックのそれぞれに、水平方向に伸びる線分の有無を示すブロック値Ｑ（０又は１）を設定した後、帳票分類装置２は、算出したブロック値Ｑに基づいて第１の特徴値を生成する。
【０１１１】
第１の成分画像１２についてのＮ×Ｍ個のブロックのそれぞれにブロック値Ｑを設定すると、例えば、図１０の（ａ）のようなブロック値Ｑのマップ１２Ｍが得られる。なお、図１０の（ａ）のマップ１２Ｍは、第１の成分画像１２を１４×８個のブロックに分割し各ブロックにブロック値Ｑを設定した場合に得られるマップの一例である。図１０の（ａ）のマップ１２Ｍは、１つのマスが１つのブロックに対応しており、マスの中の数字（０又は１）がブロック値Ｑを示している。
【０１１２】
特徴値算出部２２４は、マップ１２Ｍにおける１４×８個のブロックを、行方向（水平方向）に並ぶ１４個のブロックを１組として８個の領域Ｒ１〜Ｒ８に分割し、領域毎に、水平方向の線分を含むブロックの割合を示す１６進数の値を算出する（ステップＳ１５０２〜Ｓ１５０４）。図１０の（ａ）のマップ１２Ｍに基づいて、８個の領域Ｒ１〜Ｒ８のそれぞれに対する１６進数の値を算出すると、図１０の（ｂ）のテーブル１７Ｂのような結果が得られる。
【０１１３】
マップ１２Ｍにおける最上位の行（行番号Ｒ１の行）に含まれる１４個のブロックは、ブロック値Ｑが全て「１」となっている。このため、テーブル１７Ｂのように、マップ１２Ｍにおける行番号Ｒ１の行は、Ｑ＝１のブロックの数ＬＱが「１４」となる。したがって、１０進法でマップ１２Ｍにおける行番号Ｒ１の行について値Ｚ＝（ＬＱ／Ｎ）×１５を算出し整数値Ｚ’に変換すると、Ｚ’＝１５となる。よって、マップ１２Ｍにおける行番号Ｒ１の行についての整数値Ｚ’を１６進数に変換した値は「Ｆ」となる。
【０１１４】
また、マップ１２Ｍにおける上から２番目の行（行番号Ｒ２の行）は、１４個のブロックのうち１１個のブロックのブロック値Ｑが「１」となっている。このため、マップ１２Ｍにおける行番号Ｒ２の行は、テーブル１７Ｂのように、Ｑ＝１のブロックの数ＬＱが「１１」となる。したがって、１０進法でマップ１２Ｍにおける行番号Ｒ２の行について値Ｚ＝（ＬＱ／Ｎ）×１５を算出し整数値Ｚ’に変換すると、Ｚ’＝１２（Ｚ＝１１．８）となる。よって、マップ１２Ｍにおける行番号Ｒ２の行についての整数値Ｚ’を１６進数に変換した値は「Ｃ」となる。
【０１１５】
また、マップ１２Ｍにおけるその他の行（行番号Ｒ３〜Ｒ８の行）のそれぞれについて同様の処理を行うと、各行の１６進数の値は、それぞれ、テーブル１７Ｂに示した値となる。よって、特徴値算出部２２４は、テーブル１７Ｂにおける各行の１６進数の値を行番号の順に並べた８桁の値１４Ｈ（「ＦＣＣＢＢ９９Ｆ」）の先頭に「０ｘ」を付加した第１の特徴値「０ｘＦＣＣＢＢ９９Ｆ」を生成する（ステップＳ１５０４）。
【０１１６】
次に、図１１及び図１２を参照し、第２の成分画像に基づく第２のハッシュ値の生成方法を具体的に説明する。図１１は、第２の成分画像についてのブロック値Ｑの算出方法を説明する図である。図１２は、第２の成分画像についてのブロック値Ｑから第２の特徴値を生成する方法を説明する図である。
【０１１７】
図１１の（ａ）には、第２の成分画像１５における１２×２０画素の部分領域１５０１を拡大して示している。なお、部分領域１５０１内の１２×２０画素（マス）のうち、網掛けを付した画素（マス）は、垂直方向の線分を示す画素である。
【０１１８】
本実施形態の帳票分類装置２は、第２の線分画像１５を複数のブロック（メッシュ状）に分割し、ブロック毎に、線分の有無を示すブロック値Ｑを設定する。メッシュサイズを８×８画素に設定して第２の成分画像１５を分割すると、部分領域１５０１には、例えば、図１１の（ａ）のように、上から３番目及び左から３番目となる位置の画素を始点（左上角部）とする第１のブロックＢ４が設定される。このとき、部分領域１５０１における第１のブロックＢ４の下方には、第２のブロックＢ５及び第３のブロック（図示せず）が設定される。
【０１１９】
第２の成分画像１５についてのブロック値Ｑを設定する処理において、帳票分類装置２のブロック値設定部２２３は、１個のブロックを、ｕ×１画素を１個の領域（１行）とする、水平方向に並ぶｕ個の領域に分割し、該ｕ個の領域のうちの線分を示す画素を含む領域の割合Ｋを算出する（ステップＳ１４１３及びＳ１４１４）。例えば、図１１の（ａ）の第１のブロックＢ４における上から３行分の領域には、垂直方向に伸びる線分１６１１を示す画素が含まれる。また、第１のブロックＢ４における下から３行分の領域には、垂直方向に伸びる線分１６１２を示す画素及び線分１６１３を示す画素が含まれる。すなわち、第１のブロックＢ４を処理の対象とした場合、第１のブロックＢ４内の８個の行のうち６個の行に、線分を示す画素が含まれる。よって、ブロック値設定部２２３は、第１のブロックＢ４の線分を示す画素を含む領域の割合Ｋとして、Ｋ＝６／８＝０．７５を算出する。
【０１２０】
第１のブロックＢ４についての割合Ｋを算出した後、ブロック値設定部２２３は、算出した割合Ｋが閾値ＴＨ以上（Ｋ≧ＴＨ）であるか否かを判定する（ステップＳ１４１５）。ここで、閾値ＴＨを０．５とすると、第１のブロックＢ４についての割合Ｋ（＝０．７５）と閾値ＴＨとの大小関係は、Ｋ＞ＴＨとなる。このため、ブロック値設定部２２３は、第１のブロックＢ４のブロック値Ｑを「１」とする（ステップＳ１４１６）。
【０１２１】
第１のブロックＢ４に対しブロック値設定部２２３が行う上記の処理の内容をまとめると、例えば、図１１の（ｂ）に示したテーブル１７Ｃにおけるブロック番号ｎ１の欄１７０４のようになる。ここで、テーブル１７Ｃのブロック番号は、第２の成分画像１５についてのＮ×Ｍ個のブロックを識別する通し番号である。ブロック値設定部２２３は、第１のブロックＢ４のブロック値Ｑを「１」とした後、例えば、テーブル１７Ｃにおけるブロック番号ｎ１とブロック値Ｑ（＝１）とを対応付けてバッファに格納する（ステップＳ１４１７）。
【０１２２】
また、図１１の（ａ）の部分領域１５０１における第２のブロックＢ５は８×１画素を１行とする８個の領域（行）に分割すると、全ての領域に、水平方向に伸びる線分１６１２を示す画素及び線分１６１３を示す画素が含まれる。すなわち、第２のブロックＢ５には、垂直方向に伸びる線分を示す画素を含む行が８個（行）存在する。このため、ブロック値設定部２２３は、第２のブロックＢ５における線分を示す画素を含む領域の割合Ｋとして、Ｋ＝８／８＝１を算出する。算出した割合Ｋ（＝１）は、閾値ＴＨ（＝０．５）よりも大きい。このため、ブロック値設定部２２３は、第２のブロックＢ５のブロック値Ｑを「１」とする。
【０１２３】
第２のブロックＢ２に対しブロック値設定部２２３が行う上記の処理の内容をまとめると、例えば、図１１の（ｂ）に示したテーブル１７Ｃにおけるブロック番号ｎ２の欄１７０５のようになる。ブロック値設定部２２３は、第２のブロックＢ５のブロック値Ｑを「１」とした後、例えば、テーブル１７Ｃにおけるブロック番号ｎ２とブロック値Ｑ（＝１）とを対応付けてバッファに格納する（ステップＳ１４１７）。
【０１２４】
本実施形態の帳票分類装置２におけるブロック値設定部２２３は、第２の成分画像１５をｕ×ｕ画素毎に分割して得られるＮ×Ｍ個のブロックのそれぞれに対し、上記のステップＳ１４１２〜Ｓ１４１７の処理を行う。
【０１２５】
第２の成分画像１２についてのＮ×Ｍ個のブロックのそれぞれに、垂直方向に伸びる線分の有無を示すブロック値Ｑ（０又は１）を設定した後、帳票分類装置２は、算出したブロック値Ｑに基づいて第２の特徴値を生成する。
【０１２６】
第２の成分画像１５についてのＮ×Ｍ個のブロックのそれぞれにブロック値Ｑを設定すると、例えば、図１２の（ａ）のようなブロック値Ｑのマップ１５Ｍが得られる。なお、図１２の（ａ）のマップ１５Ｍは、第２の成分画像１２を１４×８個のブロックに分割し各ブロックにブロック値Ｑを設定した場合に得られるマップの一例である。図１２の（ａ）のマップ１５Ｍは、１つのマスが１つのブロックに対応しており、マスの中の数字（０又は１）がブロック値Ｑを示している。
【０１２７】
特徴値算出部２２４は、マップ１５Ｍにおける１４×８個のブロックを、列方向（垂直方向）に並ぶ８個のブロックを１組として１４個の領域Ｃ１〜Ｃ１４に分割し、領域毎に、垂直方向の線分を含むブロックの割合を示す１６進数の値を算出する（ステップＳ１５０６〜Ｓ１５０８）。図１２の（ａ）のマップ１５Ｍに基づいて、１４個の領域Ｃ１〜Ｃ１４のそれぞれに対する１６進数の値を算出すると、図１２の（ｂ）のテーブル１７Ｄのような結果が得られる。
【０１２８】
マップ１５Ｍにおける左端の列（列番号Ｃ１の列）に含まれる８個のブロックは、ブロック値Ｑが全て「１」となっている。このため、テーブル１７Ｂのように、マップ１５Ｍにおける列番号Ｃ１の列は、Ｑ＝１のブロックの数ＬＱが「８」となる。したがって、１０進法でマップ１５Ｍにおける列番号Ｃ１の列について値Ｚ＝（ＬＱ／Ｍ）×１５を算出し整数値Ｚ’に変換すると、Ｚ’＝１５となる。よって、マップ１５Ｍにおける列番号Ｃ１の列についての整数値Ｚ’を１６進数に変換した値は「Ｆ」となる。
【０１２９】
また、マップ１５Ｍにおける左から２番目の列（列番号Ｃ２の列）は、８個のブロックのうち２個のブロックのブロック値Ｑが「１」となっている。このため、マップ１５Ｍにおける列番号Ｃ２の列は、テーブル１７Ｂのように、Ｑ＝１のブロックの数ＬＱが「２」となる。したがって、１０進法でマップ１５Ｍにおける列番号Ｃ２の行について値Ｚ＝（ＬＱ／Ｍ）×１５を算出し整数値Ｚ’に変換すると、Ｚ’＝４（Ｚ＝３．８）となる。よって、マップ１５Ｍにおける列番号Ｃ２の列についての整数値Ｚ’を１６進数に変換した値は「４」となる。
【０１３０】
また、マップ１５Ｍにおけるその他の列（列番号Ｃ３〜Ｃ１４の列）のそれぞれについて同様の処理を行うと、各列の１６進数の値は、それぞれ、テーブル１７Ｄに示した値となる。よって、特徴値算出部２２４は、テーブル１７Ｄにおける各列の１６進数の値を列番号の順に並べた１４桁の値１４Ｖ（「Ｆ４９４Ｂ８８・・・４Ｆ」）の先頭に「０ｘ」を付加した第２の特徴値「０ｘＦ４９４Ｂ８８・・・４Ｆ」を生成する（ステップＳ１５０８）。
【０１３１】
帳票における水平方向に伸びる線分の分布及び垂直方向に伸びる線分の分布は、帳票毎に異なる。このため、上記の処理により得られるブロック値Ｑのマップ１２Ｍ及び１５ＭにおけるＱ＝０のブロックとＱ＝１のブロックとの配列は、帳票毎に異なる。よって、上記の処理により生成される第１の特徴値と第２の特徴値との組み合わせは、帳票毎に異なる。したがって、第１の特徴値と第２の特徴値とを帳票に固有の定義とすることで、該２つの特徴値の一致する度合いに基づいて、画像内の帳票の種別を識別することが可能となる。
【０１３２】
以上の処理により複数種類の帳票のそれぞれについての定義（第１の特徴値及び第２の特徴値）を記憶部２９０の定義体２９１に格納した後、帳票分類装置２は、定義体２９１を利用した帳票の分類を行うことが可能となる。なお、帳票分類装置２が作成した定義体２９１は、サーバ装置６に転送し、複数の帳票分類装置２で共用することができるようにしてもよい。また、定義体２９１を作成する処理は、帳票分類装置２に限らず、帳票分類装置２における特徴値生成部２２０と同等の機能を持つ他の情報処理装置（例えばサーバ装置６）が行ってもよい。
【０１３３】
次に、図１３〜図１６を参照し、帳票分類装置２が上記の定義体２９１を利用して行う帳票の分類処理について説明する。
【０１３４】
図１３は、帳票を分類する処理を説明するフローチャートである。図１４は、照合処理の内容を説明するフローチャートである。図１５は、水平成分差分算出処理の内容を説明するフローチャートである。図１６は、垂直成分差分算出処理の内容を説明するフローチャートである。
【０１３５】
本実施形態に係る帳票分類装置２は、帳票を分類する処理を開始すると、図１３のように、まず、分類の対象とする帳票の画像を取得する（ステップＳ２１）。ステップＳ２１の処理は、例えば、スキャナ制御部２１０が行う。ステップＳ２１の処理として、スキャナ制御部２１０は、例えば、定義体２９１を作成する処理におけるステップＳ１１と同様の処理を行う。
【０１３６】
次に、帳票分類装置２は、取得した画像１０から、水平方向に伸びる線分を抽出した第１の成分画像１２と、垂直方向に伸びる線分を抽出した第２の成分画像１５とを作成する（ステップＳ２２）。ステップＳ２２の処理は、特徴値生成部２２０の成分画像作成部２２１が行う。ステップＳ２２の処理として、成分画像作成部２２１は、例えば、定義体２９１を作成する処理におけるステップＳ１２と同じ処理を行う。
【０１３７】
次に、帳票分類装置２は、第１の成分画像１２及び第２の成分画像１５のそれぞれをメッシュ状に分割する成分画像分割処理（ステップＳ２３）を行う。ステップＳ２３の成分画像分割処理は、特徴値生成部２２０の画像分割部２２２が行う。ステップＳ２３の処理として、画像分割部２２２は、例えば、定義体２９１を作成する処理における成分画像分割処理（ステップＳ１３）と同じ処理（例えば、図６のステップＳ１３０１〜Ｓ１３０４）を行う。
【０１３８】
次に、帳票分類装置２は、第１の成分画像１２及び第２の成分画像１５の各ブロックに線分の有無を示すブロック値Ｑを設定するブロック値設定処理（ステップＳ２４）を行う。ステップＳ２４のブロック値設定処理は、特徴値生成部２２０のブロック値設定部２２３が行う。ステップＳ２４の処理として、ブロック値設定部２２３は、例えば、定義体２９１を作成する処理におけるブロック値設定処理（ステップＳ１４）と同じ処理（例えば、図７ＡのステップＳ１４０１〜Ｓ１４１０、及び図７ＢのステップＳ１４１１〜Ｓ１４１８）を行う。
【０１３９】
次に、帳票分類装置２は、ブロック値Ｑに基づいて、水平方向に伸びる線分の分布の特徴を示す第１の特徴値と、垂直方向に伸びる線分の分布の特徴を示す第２の特徴値とを算出する特徴値算出処理（ステップＳ２５）を行う。ステップＳ２５の特徴値算出処理は、特徴値生成部２２０の特徴値算出部２２４が行う。ステップＳ２５の処理として、特徴値算出部２２４は、例えば、定義体２９１を作成する処理における特徴値算出処理（ステップＳ１５）と同じ処理（例えば、図８のステップＳ１５０１〜Ｓ１５０８）を行う。
【０１４０】
次に、帳票分類装置２は、現在分類の対象となっている帳票の特徴値と、定義体２９１に格納された定義（特徴値）とを照合する照合処理（ステップＳ２６）を行う。ステップＳ２６の照合処理は、照合部２３０が行う。照合部２３０は、分類の対象となっている帳票についての第１の特徴値及び第２の特徴値を、定義体２９１に格納された定義（第１の特徴値及び第２の特徴値）のそれぞれと比較し、特徴値の組み合わせが一致する定義があるか否かを判定する。照合部２３０は、特徴値の組み合わせが一致する定義が検出された場合、或いは全ての定義の特徴値の組み合わせが一致しなかった場合に、照合処理を終了する。
【０１４１】
次に、帳票分類装置２は、照合処理において特徴値が一致した定義が検出されたか否かを判定する（ステップＳ２７）。ステップＳ２７の判定は、照合部２３０が行う。特徴値が一致した定義がある場合（ステップＳ２７；ＹＥＳ）、照合部２３０は、特徴値が一致した定義と対応付けて帳票の画像を保持する（ステップＳ２８）。一方、特徴値が一致する定義がなかった場合（ステップＳ２７；ＮＯ）、照合部２３０は、帳票の画像及び特徴値を未分類の帳票として保持する（ステップＳ２９）。
【０１４２】
ステップＳ２８及びＳ２９のいずれかの処理を終えると、帳票分類装置２は、照合処理の結果を出力し（ステップＳ３０）、１つの帳票の画像に基づいて帳票を分類する処理を終了する。ステップＳ３０の処理は、例えば、表示制御部２４０が行う。表示制御部２４０は、例えば、分類の対象となっている帳票に対する照合処理の結果を示す画面データを生成し表示装置５に表示させる。
【０１４３】
照合処理の結果を出力した後、帳票分類装置２は、帳票を分類する処理を続けるか否かを判定する（ステップＳ３１）。ステップＳ３１の判定は、例えば、帳票分類装置２における主制御部２６０が行う。帳票を分類する処理を続ける場合（ステップＳ３１；ＹＥＳ）、帳票分類装置２は、ステップＳ２１以降の処理を繰り返す。処理を終了する場合（ステップＳ３１；ＮＯ）、帳票分類装置２は、帳票を分類する処理を終了する。
【０１４４】
このように、本実施形態に係る帳票分類装置２は、帳票を分類する処理を行う場合には、定義体２９１を作成する処理と同様の手順で第１の特徴値及び第２の特徴値を算出した（生成した）後、定義体２９１の定義と照合する照合処理（ステップＳ２６）を行う。照合処理は、上記のように、照合部２３０が行う。照合部２３０は、照合処理として、例えば、図１４のフローチャートに沿った処理を行う。図１４は、照合処理の内容を説明するフローチャートである。
【０１４５】
照合処理を開始すると、照合部２３０は、図１４のように、分類の対象となっている画像に基づいて生成した特徴値と一致する定義（特徴値）を定義体２９１内で探索する探索処理（ステップＳ２６１０〜Ｓ２６６０）を行う。ステップＳ２６１０〜Ｓ２６６０の探索処理は、分類の対象となっている画像に基づいて生成した第１の特徴値及び第２の特徴値と特徴値の組み合わせが一致する定義が定義体２９１から検出された場合、又は一致する定義が定義体２９１に登録されていないことが確定した場合に終了する。
【０１４６】
探索処理では、照合部２３０は、まず、定義体２９１から定義を１つ選択して読み込み（ステップＳ２６１０）、分類する画像と読み込んだ定義との、第１の特徴値の桁数及び第２の特徴値の桁数が同じであるか否かを判定する（ステップＳ２６２０）。ステップＳ２６１０の処理では、照合部２３０は、所定の選択規則に従って、定義体２９１に登録された複数の定義のなかからまだ選択していない定義の１つを選択し、該定義（第１の特徴値及び第２の特徴値）を読み込む。ステップＳ２６２０の判定では、照合部２３０は、分類する画像に基づいて生成した第１の特徴値と定義体２９１から読み込んだ第１の特徴値との桁数が一致し、かつ分類する画像に基づいて生成した第２の特徴値と定義体２９１から読み込んだ第２の特徴値との桁数が一致するか否かを判定する。第１の特徴値の桁数が一致しない又は第２の特徴値の桁数が一致しない場合（ステップＳ２６２０；ＮＯ）、照合部２３０は、ステップＳ２６３０〜Ｓ２６５０の処理を省略し、現在行っている照合処理において全ての定義を選択したか否かを判定する（ステップＳ２６６０）。選択していない定義がある場合（ステップＳ２６６０；ＮＯ）、照合部２３０は、ステップＳ２６１０以降の処理を繰り返す。一方、全ての定義が選択済みである場合（ステップＳ２６６０；ＹＥＳ）、照合部２３０は、探索処理を終了し、特徴値が一致する定義がないことを示す情報を生成して保持する（ステップＳ２６８０）。ステップＳ２６８０の処理では、照合部２３０は、例えば、照合結果を示すフラグＦＨの値を特徴値が一致する定義がないことを示す値（例えば「０」）とする。
【０１４７】
説明をステップＳ２６２０の判定処理に戻す。第１の特徴値の桁数が一致し、かつ第２の特徴値の桁数が一致した場合（ステップＳ２６２０；ＹＥＳ）、照合部２３０は、次に、水平成分差分算出処理（ステップＳ２６３０）と、垂直成分差分算出処理（ステップＳ２６４０）とを行う。
【０１４８】
ステップＳ２６３０の水平成分差分算出処理は、第１の特徴値に基づいて、分類の対象となっている帳票の画像と定義との水平方向に伸びる線分の分布の差分（差異の度合いを示す値）を算出する処理である。水平成分差分算出処理では、照合部２３０は、照合する２つの第１の特徴値における同じ桁の値の差分の絶対値を算出し、各桁の差分（絶対値）の和について特徴を示す値の桁数で除した値を、水平方向に伸びる成分の分布の差分として算出する。ここで、特徴を示す値の桁数は、第１の特徴値における先頭の２桁（０ｘ）を除いた値の桁数である。
【０１４９】
ステップＳ２６４０の垂直成分差分算出処理は、第２の特徴値に基づいて、分類の対象となっている帳票の画像と定義との垂直方向に伸びる線分の差分を算出する処理である。垂直成分差分算出処理では、照合部２３０は、照合する２つの第２の特徴値における同じ桁の値の差分の絶対値を算出し、各桁の差分（絶対値）の和について特徴量を示す値の桁数で除した値を、垂直方向に伸びる成分の分布の差分として算出する。ここで、特徴を示す値の桁数は、第２の特徴値における先頭の２桁（０ｘ）を除いた値の桁数である。
【０１５０】
なお、ステップＳ２６３０の処理とステップＳ２６４０の処理とは、順序が逆であってもよい。また、照合部２３０は、ステップＳ２６３０の処理とステップＳ２６４０の処理とを並列に行ってもよい。
【０１５１】
ステップＳ２６３０及びＳ２６４０の処理を終えると、照合部２３０は、水平成分の差分及び垂直方向の差分が閾値以下であるか否かを判定する（ステップＳ２６５０）。水平成分の差分及び垂直方向の差分がいずれも閾値以下である場合（ステップＳ２６５０；ＹＥＳ）、照合部２３０は、探索処理を終了し、特徴値が一致する定義があることを示す情報を生成して保持する（ステップＳ２６７０）。ステップＳ２６７０の処理では、照合部２３０は、例えば、照合結果を示すフラグＦＨの値を特徴値が一致する定義があることを示す値（例えば「１」）とする。
【０１５２】
一方、水平成分の差分又は垂直方向の差分が閾値よりも大きい場合（ステップＳ２６５０；ＮＯ）、照合部２３０は、次に、現在行っている照合処理において全ての定義を選択したか否かを判定する（ステップＳ２６６０）。選択していない定義がある場合（ステップＳ２６６０；ＮＯ）、照合部２３０は、ステップＳ２６１０以降の探索処理を繰り返す。そして、全ての定義が選択済みである場合（ステップＳ２６６０；ＹＥＳ）、照合部２３０は、探索処理を終了し、特徴値が一致する定義がないことを示す情報を生成して保持する（ステップＳ２６８０）。
【０１５３】
ステップＳ２６７０又はステップＳ２６８０の処理を終えると、照合部２３０は、照合処理（図１３のステップＳ２６）を終了する。照合処理を終了した後、照合部２３０は、フラグＦＨの値に基づいて、図１３のフローチャートにおけるステップＳ２７以降の処理を行う。
【０１５４】
このように、本実施形態の帳票分類装置２における照合部２３０は、水平成分差分算出処理により算出した第１の特徴値の差分と、垂直成分差分算出処理により算出した第２の特徴値の差分とに基づいて、分類の対象となる画像に含まれる帳票の種別を特定する。照合部２３０は、水平成分差分算出処理として、例えば、図１５のフローチャートに沿った処理を行う。また、照合部２３０は、垂直成分差分算出処理として、例えば、図１６のフローチャートに沿った処理を行う。図１５は、水平成分差分算出処理の内容を説明するフローチャートである。図１６は、垂直成分差分算出処理の内容を説明するフローチャートである。
【０１５５】
水平成分差分算出処理を開始すると、照合部２３０は、図１５のように、まず、第１の特徴値（２＋Ｍ桁）における先頭の２桁（０ｘ）を削除する（ステップＳ２６３１）。すなわち、ステップＳ２６３１では、照合部２３０は、第１の特徴値から水平方向の成分（線分）の分布の特徴を示すＭ桁の値を抽出する。
【０１５６】
次に、照合部２３０は、比較するＭ桁の値における桁位置を指定する変数ｍの値を「１」とし、差分の絶対値の和ＳＨの値を「０」とする（ステップＳ２６３２）。ここで、変数ｍの値及び差分の絶対値の和ＳＨの値は、それぞれ、１０進数で表される値とする。
【０１５７】
次に、照合部２３０は、分類の対象となる画像から生成したＭ桁の特徴値における先頭からｍ桁目の値と、定義体２９１から読み込んだ定義のＭ桁の特徴値における先頭からｍ桁目の値との差分の絶対値Ｓｍを算出する（ステップＳ２６３３）。ステップＳ２６３３では、照合部２３０は、例えば、差分の絶対値Ｓｍを１０進数で算出する。
【０１５８】
次に、照合部２３０は、算出した差分の絶対値Ｓｍ（１０進数）を差分の絶対値の和ＳＨに加算する（ステップＳ２６３４）。
【０１５９】
次に、照合部２３０は、変数ｍが第１の特徴値における水平方向の線分の分布の特徴を示す値の総桁数Ｍ以上（すなわちｍ≧Ｍ）であるか否かを判定する（ステップＳ２６３５）。ｍ＜Ｍの場合（ステップＳ２６３５；ＮＯ）、照合部２３０は、変数ｍに１を加算し（ステップＳ２６３６）、ステップＳ２６３３以降の処理を行う。一方、ｍ≧Ｍの場合（ステップＳ２６３５；ＹＥＳ）、照合部２３０は、水平成分の差分ΔＳＨ＝ＳＨ／Ｍを算出し（ステップＳ２６３７）、水平成分差分算出処理を終了する。
【０１６０】
また、垂直成分差分算出処理を開始すると、照合部２３０は、図１６のように、まず、第２の特徴値（２＋Ｎ桁）における先頭の２桁（０ｘ）を削除する（ステップＳ２６４１）。すなわち、ステップＳ２６４１では、照合部２３０は、第２の特徴値から垂直方向の線分の分布の特徴を示すＮ桁の値を抽出する。
【０１６１】
次に、照合部２３０は、比較するＮ桁の値における桁位置を指定する変数ｎの値を「１」とし、差分の絶対値の和ＳＶの値を「０」とする（ステップＳ２６４２）。ここで、変数ｎの値及び差分の絶対値の和ＳＶの値は、それぞれ、１０進数で表される値とする。
【０１６２】
次に、照合部２３０は、分類の対象となる画像から生成したＮ桁の特徴値における先頭からｎ桁目の値と、定義体２９１から読み込んだ定義のＮ桁の特徴値における先頭からｎ桁目の値との差分の絶対値Ｓｎを算出する（ステップＳ２６４３）。ステップＳ２６４３では、照合部２３０は、例えば、差分の絶対値Ｓｎを１０進数で算出する。
【０１６３】
次に、照合部２３０は、算出した差分の絶対値Ｓｎ（１０進数）を差分の絶対値の和ＳＶに加算する（ステップＳ２６４４）。
【０１６４】
次に、照合部２３０は、変数ｎが第２の特徴値における垂直方向の線分の分布の特徴を示す値の総桁数Ｎ以上（すなわちｎ≧Ｎ）であるか否かを判定する（ステップＳ２６４５）。ｎ＜Ｎの場合（ステップＳ２６４５；ＮＯ）、照合部２３０は、変数ｎに１を加算し（ステップＳ２６４６）、ステップＳ２６４３以降の処理を行う。一方、ｎ≧Ｎの場合（ステップＳ２６４５；ＹＥＳ）、照合部２３０は、垂直成分の差分ΔＳＶ＝ＳＶ／Ｎを算出し（ステップＳ２６４７）、垂直成分差分算出処理を終了する。
【０１６５】
ここで、図４の定義体２９１を参照して帳票を分類する場合に本実施形態に係る帳票分類装置２の照合部２３０が行う上記の照合処理の内容を、図１７Ａ〜図１７Ｃを参照して具体的に説明する。
【０１６６】
図１７Ａは、照合処理の具体例を説明する図（その１）である。図１７Ｂは、照合処理の具体例を説明する図（その２）である。図１７Ｃは、照合処理の具体例を説明する図（その３）である。
【０１６７】
図１７Ａの（ａ）のテーブル１７Ｅには、分類の対象となる帳票の画像１０から生成した第１の特徴値及び第２の特徴値の例を示している。帳票の画像１０から第１の特徴値及び第２の特徴値を生成する際には、成分画像分割処理（ステップＳ２３）において、画像１０から作成した第１の成分画像１２及び第２の成分画像１５をそれぞれ１４×８個のブロックに分割している。このため、第１の特徴値は１０桁（２＋８桁）、第２の特徴値は１６桁（２＋１４桁）となっている。
【０１６８】
テーブル１７Ｅの第１の特徴値及び第２の特徴値を生成した後、帳票分類装置２では、照合部２３０が照合処理（ステップＳ２６）を行う。照合処理を開始すると、照合部２３０は、まず、定義体２９１に格納された定義を１つ選択して読み込み（ステップＳ２６１０）、特徴値の桁数が一致するか否かを判定する（ステップＳ２６２０）。ここで、照合部２３０が、例えば、図４の定義体２９１における定義ＩＤ＝１の定義を読み込んだとすると、特徴値の桁数の関係は、図１７Ａの（ｂ）のテーブル１７Ｆに示したような関係となる。すなわち、分類の対象となっている画像から生成した第１の特徴値が１０桁であるのに対し、定義体２９１から読み込んだ第１の特徴値は８桁である。また、分類の対象となっている画像から生成した第２の特徴値が１６桁であるのに対し、定義体２９１から読み込んだ第２の特徴値は１２桁である。したがって、照合部２３０は、分類の対象となっている画像から生成した特徴値と定義ＩＤ＝１の定義の特徴値とを照合する処理（ステップＳ２６３０〜Ｓ２６５０）を省略し、全ての定義を選択したか否かを判定する（ステップＳ２６６０）。このとき、定義体２９１には、照合部２３０がまだ選択していない定義がある。このため、照合部２３０は、次に、例えば、図４の定義体２９１における定義ＩＤ＝２の定義を読み込み、特徴値の桁数が一致するか否かを判定する（ステップＳ２６２０）。
【０１６９】
図４の定義体２９１における定義ＩＤ＝２の定義を読み込んだ場合、特徴値の桁数の関係は、図１７Ｂの（ｃ）のテーブル１７Ｇに示したような関係となる。すなわち、分類の対象となっている画像から生成した第１の特徴値及び定義体２９１から読み込んだ第１の特徴値は、いずれも１０桁である。また、分類の対象となっている画像から生成した第２の特徴値及び定義体２９１から読み込んだ第２の特徴値は、いずれも１６桁である。したがって、照合部２３０は、次に、水平成分差分算出処理（ステップＳ２６３０）及び垂直成分差分算出処理（ステップＳ２６４０）を行う。
【０１７０】
水平成分差分算出処理では、照合部２３０は、上記のように、第１の特徴値における先頭の２桁（０ｘ）を除いたＭ桁の値について、桁毎に差分の絶対値Ｓｍを算出し、差分の絶対値Ｓｍの総和ＳＨと桁数Ｍとに基づいて水平成分の差分ΔＳＨ＝ＳＨ／Ｍを算出する。テーブル１７Ｇに示した第１の特徴値同士についての水平成分の差分ΔＳＨを算出する場合、照合部２３０は、図１７Ｂの（ｄ）のテーブル１７Ｈに示したような演算を行う。
【０１７１】
照合部２３０は、各第１の特徴値における先頭の２桁（０ｘ）を削除し、桁毎に差分の絶対値Ｓｍを例えば１０進数で算出する。第１の特徴値におけるＢ〜Ｆは、それぞれ、１０進数における１１〜１５である。このため、各桁の差分の絶対値Ｓｍは、それぞれ、テーブル１７Ｈに示した値となる。したがって、差分の絶対値の和ＳＨは「１０（太線で囲んだ値）」となり、水平成分の差分ΔＳＨは「１．２５」となる。
【０１７２】
一方、垂直成分差分算出処理では、照合部２３０は、上記のように、第２の特徴値における先頭の２桁（０ｘ）を除いたＮ桁の値について、桁毎に差分の絶対値Ｓｎを算出し、差分の絶対値Ｓｎの総和ＳＶと桁数Ｎとに基づいて垂直成分の差分ΔＳＶ＝ＳＶ／Ｎを算出する。テーブル１７Ｇに示した第２の特徴値同士についての垂直成分の差分ΔＳＶを算出する場合、照合部２３０は、図１７Ｂの（ｄ）のテーブル１７Ｊに示したような演算を行う。
【０１７３】
照合部２３０は、各第２の特徴値における先頭の２桁（０ｘ）を削除し、桁毎に差分の絶対値Ｓｎを例えば１０進数で算出する。このとき、各桁の差分の絶対値Ｓｎは、それぞれ、テーブル１７Ｊに示した値となる。したがって、差分の絶対値の和ＳＶは「２０（太線で囲んだ値）」となり、垂直成分の差分ΔＳＶは「１．４５」となる。
【０１７４】
水平方向の差分ΔＳＨ及び垂直成分の差分ΔＳＶを算出した後、照合部２３０は、算出した水平方向の差分ΔＳＨ及び垂直成分の差分ΔＳＶが閾値以下であるか否かを判定する（ステップＳ２６５０）。ステップＳ２６５０における判定閾値は、適宜設定可能であるが、例えば、１よりも小さい正の値とすることが好ましい。水平方向の差分ΔＳＨ及び垂直成分の差分ΔＳＶが「１」である場合、分類の対象となる画像から生成した特徴値と定義から読み込んだ特徴値との間には、各桁に平均で「１」の差が生じていることとなる。このため、水平方向の差分ΔＳＨが「１」よりも大きい場合、分類の対象である画像内の帳票と定義の帳票とでは、水平方向に伸びる線分の分布の特徴の一致度が低いといえる。同様に、垂直方向の差分ΔＳＶが「１」よりも大きい場合、分類の対象である画像内の帳票と定義の帳票とでは、垂直方向に伸びる線分の分布の特徴の一致度が低いといえる。
【０１７５】
上記のような観点からステップＳ２６５０における判定閾値を「０．５」とした場合、分類の対象である画像から生成した特徴値と定義ＩＤ＝２の定義の特徴値とに基づいて算出した水平成分の差分ΔＳＨ及び垂直成分の差分ΔＳＶは、いずれも閾値よりも大きくなる（ステップＳ２６５０；ＮＯ）。したがって、照合部２３０は、次に、全ての定義を選択したか否かを判定する（ステップＳ２６６０）。このとき、定義体２９１には、照合部２３０がまだ選択していない定義がある。このため、照合部２３０は、次に、例えば、図４の定義体２９１における定義ＩＤ＝３の定義を読み込み、特徴値の桁数が一致するか否かを判定する（ステップＳ２６２０）。
【０１７６】
図４の定義体２９１における定義ＩＤ＝３の定義を読み込んだ場合、特徴値の桁数の関係は、図１７Ｃの（ｅ）のテーブル１７Ｋに示したような関係となる。すなわち、分類の対象となっている画像から生成した第１の特徴値及び定義体２９１から読み込んだ第１の特徴値は、いずれも１０桁である。また、分類の対象となっている画像から生成した第２の特徴値及び定義体２９１から読み込んだ第２の特徴値は、いずれも１６桁である。したがって、照合部２３０は、次に、水平成分差分算出処理（ステップＳ２６３０）及び垂直成分差分算出処理（ステップＳ２６４０）を行う。
【０１７７】
水平成分差分算出処理においてテーブル１７Ｋに示した第１の特徴値同士についての水平成分の差分ΔＳＨを算出する場合、照合部２３０は、図１７Ｃの（ｆ）のテーブル１７Ｌに示したような演算を行う。
【０１７８】
照合部２３０は、各第１の特徴値における先頭の２桁（０ｘ）を削除し、桁毎に差分の絶対値Ｓｍを例えば１０進数で算出する。このとき、各桁の差分の絶対値Ｓｍは、それぞれ、テーブル１７Ｌに示した値となる。したがって、差分の絶対値の和ＳＨは「２（太線で囲んだ値）」となり、水平成分の差分ΔＳＨは「０．２５」となる。
【０１７９】
一方、垂直成分差分算出処理においてテーブル１７Ｋに示した第２の特徴値同士についての垂直成分の差分ΔＳＶを算出する場合、照合部２３０は、図１７Ｃの（ｆ）のテーブル１７Ｍに示したような演算を行う。
【０１８０】
照合部２３０は、各第２の特徴値における先頭の２桁（０ｘ）を削除し、桁毎に差分の絶対値Ｓｎを例えば１０進数で算出する。このとき、各桁の差分の絶対値Ｓｎは、それぞれ、テーブル１７Ｍに示した値となる。したがって、差分の絶対値の和ＳＶは「４（太線で囲んだ値）」となり、垂直成分の差分ΔＳＶは「０．２９」となる。
【０１８１】
水平方向の差分ΔＳＨ及び垂直成分の差分ΔＳＶを算出した後、照合部２３０は、算出した水平方向の差分ΔＳＨ及び垂直成分の差分ΔＳＶが閾値以下であるか否かを判定する（ステップＳ２６５０）。ステップＳ２６５０における判定閾値を「０．５」とした場合、分類の対象である画像から生成した特徴値と定義ＩＤ＝３の定義の特徴値とに基づいて算出した水平成分の差分ΔＳＨ及び垂直成分の差分ΔＳＶは、いずれも閾値よりも小さくなる（ステップＳ２６５０；ＹＥＳ）。したがって、照合部２３０は、特徴値が一致する定義があることを示す情報を生成して保持し（ステップＳ２６７０）、照合処理を終了する。
【０１８２】
以上説明したように、本実施形態に係る帳票分類装置２は、帳票の画像１０における、水平方向に伸びる線分の分布の特徴を示す第１の特徴値と、垂直方向に伸びる線分の分布の特徴を示す第２の特徴値とに基づいて、画像内の帳票を分類する。しかも、第１の特徴値及び第２の特徴値は、それぞれ、帳票の画像１０をｕ×ｕ画素のブロック毎に分割し、ブロック内の線分の有無に基づいて生成した数桁〜十数桁の値である。このため、本実施形態の帳票分類装置２では、定義体２９１に格納する１つの帳票の定義についてのデータ量を、複数の線分のそれぞれについての画像内の位置等を示す値を含む定義のデータ量と比べて大幅に少なくすることが可能となる。したがって、本実施形態の帳票分類装置２では、分類の対象となる画像から生成した特徴値と１つの定義とを照合する際の演算量（演算回数）を、複数の線分のそれぞれについての画像内の位置等を示す値を含む定義と照合する場合と比べて大幅に少なくすることが可能となる。よって、本実施形態の帳票分類装置２によれば、帳票の分類処理を効率よく行うことが可能となり、画像内の帳票を分類する処理により帳票分類装置２にかかる負荷を軽減することが可能となる。
【０１８３】
また、本実施形態に係る帳票分類装置２は、例えば、多数の定義を登録することによる定義体２９１の肥大化を抑制し、定義体２９１の記憶（格納）に必要な記憶領域の増大を抑制することが可能となる。
【０１８４】
また、分類の対象となる画像１０では、例えば、帳票の罫線にかすれがあり、１本の線分が２本以上の線分に分断された状態になることもある。このような場合、複数の線分のそれぞれについての画像内の位置等を示す値を含む定義を参照した照合処理では、画像内の線分と定義の線分とを正しく対応付けることができず、画像内の帳票の分類に失敗することがある。これに対し、本実施形態の帳票分類装置２では、上記のように、ｕ×ｕ画素のブロック毎に帳票の要素である罫線等の線分の有無を判定して生成した特徴値を定義として利用する。すなわち、本実施形態の帳票分類装置２では、画像内の線分と定義内の線分とを１対１で対応付けて帳票の種別を特定するのではなく、帳票内の線分の分布の特徴の類似性に基づいて帳票の種別を特定し分類する。このため、本実施形態の帳票分類装置２では、分類の対象となる画像において帳票の罫線がかすれて１本の線分が複数の線分に分断されている場合にも、帳票を正しく分類することが可能となる。
【０１８５】
例えば、図１１の（ａ）に示した部分領域１５０１における第１のブロックＢ４の左から２列目の１×８画素の列には、線分１６１１を示す画素と線分１６１２を示す画素との間に、線分を示す画素ではない白色の画素がある。このとき、白色の画素の上側で連続している線分１６１１と、下側で連続している線分１６１２とは、帳票（紙媒体）では１本の連続した線分となっていることもある。しかしながら、線分毎に位置等を示す情報を定義する場合、線分１６１１と線分１６１２とが１本の連続した線分であっても、線分１６１１の位置等を示す情報と線分１６１２の位置等を示す情報とを生成してしまう。この場合、分類の対象となる画像内における第１のブロックＢ４内で当該２つの線分１６１１及び１６１２が１本の連続した線分となっている場合、画像内の線分と定義の線分とを正しく対応付けることができない。逆に、線分１６１１及び線分１６１２が１本の連続した線分であるとして位置等を示す情報を生成した場合、分類の対象となる画像１０内における２本の線分のうちの一方の線分（例えば、下側の線分１６１２）を定義内の線分と対応付けることができない。このため、画像内の線分と定義内の線分との一致率が低下し、画像内の帳票を誤った種別に分類してしまう可能性がある。
【０１８６】
これに対し、本実施形態に係る帳票分類装置２では、上記のように、第１のブロックＢ４を８×１画素を１行とする８個の行に分割し、該８個の行のうちの線分を示す画素を含む行の割合に基づいて、第１のブロックＢ４内の線分の有無を判定する。このため、第１のブロックＢ４の左から２列目の１×８画素により示される２つの線分１６１１及び１６１２が帳票において２つの異なる線分であるか１本の線分であるかによらず、帳票分類装置２は、第１のブロックＢ４が線分を含むブロックであると認識する。すなわち、本実施形態に係る帳票分類装置２では、例えば、第１のブロックＢ４の左から２列目の１×８画素が全て線分を示す画素であったとしても、第１のブロックＢ４のブロック値Ｑは変わらない。したがって、分類の対象となる画像内の帳票と照合する定義の帳票とが同一である場合には、第２の特徴値における第１のブロックＢ４を含む列と対応した桁の値の差分が大きくなるようなことはない。よって、本実施形態の帳票分類装置２では、分類の対象となる画像の帳票における罫線にかすれ等が生じている場合にも、帳票を正しく分類することが可能となる。
【０１８７】
なお、図４の定義体２９１は、本実施形態に係る帳票分類装置２が参照する定義体２９１の一例に過ぎない。本実施形態に係る帳票分類装置２が参照する定義体２９１は、例えば、１種類の帳票に対する定義として、複数組の第１の特徴値と第２の特徴値との組を格納した（登録した）ものであってもよい。１種類の帳票に対し複数組の定義を作成する場合、例えば、解像度の異なる複数の画像を取得し、画像毎にメッシュサイズを変えて第１の特徴値及び第２の特徴値を生成する。
【０１８８】
図１８は、定義体の第１の変形例を説明する図である。
【０１８９】
図１８の（ａ）のテーブル１７Ｎは、１種類の帳票に対し複数組の定義を作成する場合の、画像の解像度ＲＳ（ｄｐｉ）と、メッシュサイズとの対応関係の例を示している。帳票分類装置２が取得する帳票の画像は、画像の作成に用いるスキャナ装置３の種類（機種）等の違いにより解像度が異なる場合がある。すなわち、帳票分類装置２が取得する帳票の画像は、同一帳票の画像であっても、解像度に応じて帳票全体を表現するのに要する画素数が変化する。解像度によらず同一のメッシュサイズで帳票の画像を分割した場合、解像度が低い場合の特徴値の桁数は、解像度が高い場合の特徴値の桁数よりも少なくなる。特徴値の桁数が少なくなると、その分、照合処理における水平成分の差分ΔＳＨ及び垂直成分の差分ΔＳＶの精度が低くなり、照合結果に誤りが生じる可能性がある。このため、成分画像をメッシュ状に分割する際のメッシュサイズを、テーブル１７Ｎのように、画像の解像度に応じて変更し、解像度毎の特徴値の桁の差が小さくなるようにしてもよい。
【０１９０】
このように、画像の解像度に応じた複数組の定義を格納する場合、例えば、図１８の（ｂ）の定義体２９１Ａのように、１種類の帳票に対する定義として、第１の特徴値と第２の特徴値との組が３組格納される。このような定義体２９１Ａを作成した場合、帳票分類装置２は、成分画像分割処理（図１３のステップＳ２３）において、テーブル１７Ｎを参照し、画像の解像度と対応するメッシュサイズで第１の成分画像及び第２の成分画像を分割する。また、帳票分類装置２は、照合処理（図１３のステップＳ２６）において、１種類の帳票に対する複数の定義のなかから画像の解像度と対応する定義を読み込んで照合する。
【０１９１】
このような定義体２９１Ａを作成した場合にも、１種類の帳票に対する定義のデータ量は、帳票内の線分毎に位置等を示す情報を定義する場合のデータ量と比べて少なくなる。更に、画像の解像度毎にメッシュサイズを変更していることにより、例えば、解像度ＲＳがＲＳ＜２００（ｄｐｉ）である画像から生成した特徴値の桁数と、解像度ＲＳが２００（ｄｐｉ）≦ＲＳ＜３００（ｄｐｉ）である画像から生成した特徴値の桁数との差を小さくすることができるため、解像度ＲＳがＲＳ＜２００（ｄｐｉ）である画像から生成した特徴値により照合する際の精度の低下を抑制することが可能となる。
【０１９２】
なお、テーブル１７Ｎには、ＲＳ＜２００（ｄｐｉ）、２００（ｄｐｉ）≦ＲＳ＜３００（ｄｐｉ）、及び３００（ｄｐｉ）≦ＲＳ＜４００（ｄｐｉ）の３通りを示しているが、解像度の範囲は、これに限らず、適宜変更可能である。また、各解像度の範囲におけるメッシュサイズの組み合わせは、テーブル１７Ｎに示した６×６画素、８×８画素、及び１０×１０画素に限らず、適宜変更可能である。
【０１９３】
また、本実施形態の帳票分類装置２が参照する定義体２９１は、上記のように、１種類の帳票に対する定義のデータ量を、線分毎に位置等を示す情報を定義する場合のデータ量と比べて少なくすることが可能である。このため、例えば、ある１種類の帳票についての未処理の状態の特徴値と、処理済みの状態の特徴値とを定義として定義体２９１に格納しても、定義体２９１の肥大化を抑制することが可能となる。
【０１９４】
また、本実施形態の帳票分類装置２が参照する定義体２９１は、上記のように、水平方向に伸びる線分の分布の特徴と垂直方向に伸びる線分の分布の特徴とに基づいて、画像内の帳票を分類する。このため、例えば、ある１種類の帳票についての定義（特徴値）と、該１種類の帳票における一部分を切り離した帳票の画像から生成した特徴値との部分照合も容易に行うことが可能となる。
【０１９５】
図１９は、分類の対象となる帳票の別の例を説明する図である。
【０１９６】
図１９の（ａ）には、ある１種類の帳票についての未処理の状態の帳票１１の画像１０Ａを示している。画像１０Ａ内の帳票１１は、例えば、公共料金等の支払に使用される帳票であり、支払手続後に顧客に渡される顧客控え部１１Ａと、支払手続後に金融機関等が保管する店舗控え部１１Ｂとを含む。この種の帳票１１は、顧客が支払手続をする前には顧客控え部１１Ａと店舗控え部１１Ｂとが一体化されている。そして、顧客が支払手続をすると、帳票１１は、顧客控え部１１Ａと店舗控え部１１Ｂとの境界に設けられた切り取り線１１９９により、顧客控え部１１Ａと、店舗控え部１１Ｂとに分離される。このような帳票が分類の対象に含まれる場合、例えば、図１９の（ｂ）のように、店舗控え部１１Ｂのみを含む画像１０Ｂを取得して特徴値を生成し、定義体２９１の定義と照合することもある。
【０１９７】
画像内の線分の位置及び長さを示す情報を定義とした場合、画像１０Ａにおける店舗控え部１１Ｂ内の罫線１１０４〜１１０７の位置は、画像１０Ｂにおける店舗控え部１１Ｂ内の罫線１１０４〜１１０７の位置とは異なる。このため、画像内の線分の位置及び長さを示す情報を定義とした場合、画像１０Ａ内の帳票１１に対する定義とは別に、画像１０Ｂ内の帳票（店舗控え部）１１Ｂに対する定義が必要となる。
【０１９８】
なお、本実施形態に係る定義体２９１においても、画像１０Ａに基づいて生成した特徴値と、画像１０Ｂに基づいて生成した特徴値との２種類の定義を格納することは可能である。該２種類の定義を定義体２９１に格納した場合、帳票分類装置２は、分類の対象となる画像内の帳票が未処理の帳票１１であれば、２つの定義のうち、特徴値の桁数が一致する画像１０Ａに基づいて作成した定義（特徴値）のみと照合する。また、分類の対象となる画像内の帳票が処理済みの帳票１１Ｂであれば、帳票分類装置２は、２つの定義のうち、特徴値の桁数が一致する画像１０Ｂに基づいて作成した定義（特徴値）のみと照合する。
【０１９９】
更に、本実施形態に係る帳票分類装置２では、定義体２９１に格納する定義の特徴を利用し、例えば、画像１０Ｂに基づいて生成した特徴値と、画像１０Ａに基づいて生成した特徴値（定義）とを照合することにより、画像１０Ｂ内の帳票１１Ｂを分類することも可能である。
【０２００】
図２０は、未処理の帳票と処理済みの帳票との特徴値の例を説明する図である。
【０２０１】
図２０のテーブル１７Ｐには、図１９の（ａ）の画像１０Ａに基づいて生成した第１の特徴値及び第２の特徴値と、図１９の（ｂ）の画像１０Ｂに基づいて生成した第１の特徴値及び第２の特徴値とを示している。テーブル１７Ｐにおける帳票の状態は、帳票１１が顧客控え部１１Ａを含むか否かを示している。未処理は帳票１１が顧客控え部１１Ａを含む状態であり、処理済みは顧客控え部１１Ａを含まない状態（切り離された状態）である。
【０２０２】
画像１０Ａに基づいて第１の特徴値を生成する場合、及び画像１０Ｂに基づいて第１の特徴値を生成する場合には、各画像から生成した成分画像を垂直方向に並ぶ複数の領域に分割し、領域毎の線分の有無の特徴を算出する。このため、顧客控え部１１Ａの有無が各領域の線分の有無の特徴に影響を与える。したがって、未処理の場合の第１の特徴値と処理済みの場合の第１の特徴値とは、テーブル１７Ｐのように、桁数は同一となるが、特徴を示す３桁目以降の値には差異が生じる。
【０２０３】
一方、画像１０Ａに基づいて第２の特徴値を生成する場合、及び画像１０Ｂに基づいて第２の特徴値を生成する場合には、各画像から生成した成分画像を水平方向に並ぶ複数の領域に分割し、領域毎の線分の有無の特徴を算出する。このため、顧客控え部１１Ａの有無によらず、店舗控え部１１Ｂ内の各領域の線分の有無の特徴は、画像１０Ａと画像１０Ｂとで略同一となる。したがって、未処理の場合の第２の特徴値と処理済みの場合の第２の特徴値とは、テーブル１７Ｐのように、未処理の場合の第２の特徴値は桁数が多くなるが、店舗控え部１１Ｂと対応する領域の値同士は略同一となる。テーブル１７Ｐでは、未処理の場合の第２の特徴値における８桁目（先頭の０ｘを含む）以降の各桁の値が、処理済みの場合の第２の特徴値における３桁目（先頭の０ｘを含む）以降の各桁の値と一致している。したがって、本実施形態の帳票分類装置２では、例えば、未処理の場合の定義を利用した部分照合により、処理済みの帳票を分類することが可能となる。すなわち、本実施形態に係る帳票分類装置２の照合部２３０は、図１４のフローチャートに沿った照合処理の代わりに、図２１Ａ及び図２１Ｂのフローチャートに沿った照合処理を行ってもよい。
【０２０４】
図２１Ａは、照合処理の変形例を説明するフローチャート（その１）である。図２１Ｂは、照合処理の変形例を説明するフローチャート（その２）である。
【０２０５】
照合処理の変形例では、照合部２３０は、図２１Ａのように、分類の対象となっている画像に基づいて生成した特徴値と一致する定義（特徴値）を定義体２９１内で探索する探索処理（ステップＳ２６１０〜Ｓ２６６０）を行う。なお、照合処理の変形例における探索処理は、後述するように、部分照合を行う処理を含む。ステップＳ２６１０〜Ｓ２６６０の探索処理は、分類の対象となっている画像に基づいて生成した第１の特徴値と第２の特徴値との組み合わせと一致する定義が定義体２９１から検出された場合、又は一致する定義が定義体２９１に登録されていないことが確定した場合に終了する。
【０２０６】
探索処理では、照合部２３０は、まず、定義体２９１から定義を１つ選択して読み込み（ステップＳ２６１０）、分類する画像と読み込んだ定義との、第１の特徴値の桁数及び第２の特徴値の桁数が同じであるか否かを判定する（ステップＳ２６２０）。ステップＳ２６１０の処理では、照合部２３０は、所定の選択規則に従って、定義体２９１に登録された複数の定義のなかからまだ選択していない定義の１つを選択し、該定義（第１の特徴値及び第２の特徴値）を読み込む。ステップＳ２６２０の判定では、照合部２３０は、分類する画像に基づいて生成した第１の特徴値と定義体２９１から読み込んだ第１の特徴値との桁数が一致し、かつ分類する画像に基づいて生成した第２の特徴値と定義体２９１から読み込んだ第２の特徴値との桁数が一致するか否かを判定する。
【０２０７】
第１の特徴値の桁数が一致し、かつ第２の特徴値の桁数が一致した場合（ステップＳ２６２０；ＹＥＳ）、照合部２３０は、次に、水平成分差分算出処理（ステップＳ２６３０）及び垂直成分差分算出処理（ステップＳ２６４０）を行う。その後、照合部２３０は、水平成分の差分及び垂直成分の差分が閾値以下であるか否かを判定する（ステップＳ２６５０）。水平成分の差分及び垂直方向の差分がいずれも閾値以下である場合（ステップＳ２６５０；ＹＥＳ）、照合部２３０は、探索処理を終了し、特徴値が一致する定義があることを示す情報を生成して保持する（ステップＳ２６７０）。ステップＳ２６７０の処理では、照合部２３０は、例えば、照合結果を示す値Ｄを特徴値が一致する定義があることを示す値（例えば「１」）とする。
【０２０８】
一方、水平成分の差分又は垂直方向の差分が閾値よりも大きい場合（ステップＳ２６５０；ＮＯ）、照合部２３０は、次に、現在行っている照合処理において全ての定義を選択したか否かを判定する（ステップＳ２６６０）。選択していない定義がある場合（ステップＳ２６６０；ＮＯ）、照合部２３０は、ステップＳ２６１０以降の探索処理を繰り返す。そして、全ての定義が選択済みである場合（ステップＳ２６６０；ＹＥＳ）、照合部２３０は、探索処理を終了する。
【０２０９】
説明をステップＳ２６２０の判定に戻す。第１の特徴値の桁数が一致しない又は第２の特徴値の桁数が一致しない場合（ステップＳ２６２０；ＮＯ）、照合部２３０は、次に、第１の特徴値の桁数が同じで、第２の特徴値の桁数は定義の桁数が分類対象である画像の桁数以上であるか否かを判定する（ステップＳ２６２１）。第１の特徴値の桁数が異なる、或いは第２の特徴値の桁数は定義の桁数が分類対象である画像の桁数よりも少ない場合（ステップＳ２６２１；ＮＯ）、照合部２３０は、次に、ステップＳ２６６０の判定を行う。これに対し、第１の特徴値の桁数が同じであり、かつ第２の特徴値の桁数は定義の桁数が分類対象である画像の桁数以上である場合（ステップＳ２６２１；ＹＥＳ）、照合部２３０は、図２１ＢのステップＳ２６２２以降の部分照合処理を行う。
【０２１０】
部分照合処理では、照合部２３０は、まず、桁位置のシフト量を示す変数ｔを「０」とし、第２の特徴値の先頭２桁（０ｘ）を削除する（ステップＳ２６２２）。
【０２１１】
次に、照合部２３０は、分類対象である画像についての第２の特徴値における桁位置を指定する変数ｎの値を「１」とし、差分の絶対値の和ＳＶＰの値を「０」とする（ステップＳ２６２３）。ここで、変数ｎの値及び差分の絶対値の和ＳＶＰの値は、それぞれ、１０進数で表される値とする。
【０２１２】
次に、照合部２３０は、分類の対象となる画像から生成した第２の特徴値（Ｎ桁）における先頭からｎ桁目の値と、定義体２９１から読み込んだ定義の第２の特徴値（Ｎ’桁）における先頭からｎ＋ｔ桁目の値との差分の絶対値Ｓｎを算出する（ステップＳ２６２４ａ）。ステップＳ２６２４ａでは、照合部２３０は、例えば、差分の絶対値Ｓｎを１０進数で算出する。
【０２１３】
次に、照合部２３０は、算出した差分の絶対値Ｓｎ（１０進数）を差分の絶対値の和ＳＶＰに加算する（ステップＳ２６２４ｂ）。
【０２１４】
次に、照合部２３０は、変数ｎが分類の対象となる画像から生成した第２の特徴値における垂直方向の成分（線分）の分布の特徴を示す値の総桁数Ｎ以上（すなわちｎ≧Ｎ）であるか否かを判定する（ステップＳ２６２４ｃ）。ｎ＜Ｎの場合（ステップＳ２６２４ｃ；ＮＯ）、照合部２３０は、変数ｎに１を加算し（ステップＳ２６２４ｄ）、ステップＳ２６２４ａ以降の処理を行う。一方、ｎ≧Ｎの場合（ステップＳ２６２４ｃ；ＹＥＳ）、照合部２３０は、次に、垂直成分の差分ΔＳＶＰ＝ＳＶＰ／Ｎを算出し（ステップＳ２６２５）、算出した差分ΔＳＶＰが閾値ＴＨＰ以下であるか否かを判定する（ステップＳ２６２６）。ΔＳＶＰ≦ＴＨＰの場合（ステップＳ２６２６；ＹＥＳ）、照合部２３０は、部分一致する定義があることを示す情報を生成して保持し（ステップＳ２６２９ａ）、部分照合処理を終了する。部分照合処理を終了すると、照合部２３０は、図２１ＡのステップＳ２６６０の判定を行う。
【０２１５】
これに対し、ΔＳＶＰ＞ＴＨＰの場合（ステップＳ２６２６；ＮＯ）、照合部２３０は、次に、現在の値ｎ＋ｔが定義体２９１から読み込んだ定義の第２の特徴値の桁数Ｎ’以上であるか否かを判定する（ステップＳ２６２７）。ｎ＋ｔ＜Ｎ’の場合（ステップＳ２６２７；ＮＯ）、照合部２３０は、変数ｔに１を加算し（ステップＳ２６２８）、ステップＳ２６２３以降の処理を繰り返す。一方、ｎ＋ｔ≧Ｎ’の場合（ステップＳ２６２７；ＹＥＳ）、照合部２３０は、部分一致する定義がないことを示す情報を生成して保持し（ステップＳ２６２９ｂ）、部分照合処理を終了する。部分照合処理を終了すると、照合部２３０は、図２１ＡのステップＳ２６６０の判定を行う。
【０２１６】
ステップＳ２６６０では、照合部２３０は、現在処理の対象となっている特徴値と照合可能な全ての定義を選択したか否かを判定する。選択していない定義がある場合（ステップＳ２６６０；ＮＯ）、照合部２３０は、ステップＳ２６１０以降の処理を繰り返す。一方、全ての定義を選択済みである場合（ステップＳ２６６０；ＹＥＳ）、照合部２３０は、次に、ステップＳ２６２２以降の部分照合処理において部分一致した定義があるか否かを判定する（ステップＳ２６６２）。部分一致した定義がある場合（ステップＳ２６６２；ＹＥＳ）、照合部２３０は、部分一致する定義があることを示す情報を生成して保持し（ステップＳ２６６４）、照合処理を終了する。ステップＳ２６６４の処理では、照合部２３０は、例えば、照合結果を示す値Ｄを特徴値が一致する定義があることを示す値（例えば「１」）とする。一方、部分一致した定義がない場合（ステップＳ２６６２；ＮＯ）、照合部２３０は、特徴値が一致する定義がないことを示す情報を生成して保持し（ステップＳ２６８０）、照合処理を終了する。ステップＳ２６８０の処理では、照合部２３０は、例えば、照合結果を示す値Ｄを特徴値が一致する定義がないことを示す値（例えば「０」）とする。
【０２１７】
次に、図２２を参照し、部分照合の手順を具体的に説明する。
【０２１８】
図２２は、部分照合の手順を説明する図である。
【０２１９】
図２２の（ａ）のテーブル１７Ｑには、分類の対象である画像１０から生成した第１の特徴値及び第２の特徴値と、定義体２９１から読み出した定義の第１の特徴値及び第２の特徴値との例を示している。テーブル１７Ｑに示した第１の特徴値の桁数は、分類対象と定義とで同一である。また、テーブル１７Ｑに示した第２の特徴値の桁数は、定義の桁数が分類対象の桁数よりも多い。したがって、図２１Ａ及び図２１Ｂのフローチャートに沿った照合処理を行う場合、照合部２３０は、図２１ＢのステップＳ２６２２以降の部分照合処理を行う。
【０２２０】
このとき、照合部２３０は、まず、変数ｔを０とし、分類の対象である画像から生成した第２の特徴値（０ｘを除く）の１桁目からＮ桁目まで値と、定義の第２の特徴値（０ｘを除く）の１桁目からＮ桁目までの値との差分の絶対値Ｓｎを桁毎に算出する。すなわち、図２２の（ｂ）のデータ１７１１のように、分類の対象である画像から生成した第２の特徴値（０ｘを除く）の１桁目から９桁目までの値と、定義の第２の特徴値（０ｘを除く）の１桁目から９桁目までの値との差分の絶対値Ｓｎを桁毎に算出する。その後、照合部２３０は、差分の絶対値Ｓｎ（Ｓ１〜Ｓ９）の総和ＳＶＰ＝５１と、桁数９とに基づいて、水平成分の差分ΔＳＶＰ＝５．６７を算出する。閾値ＴＨＰは、例えば、ステップＳ２６５０の判定閾値と同様、０．５等の１よりも小さい値とするため、ｔ＝０の場合、ΔＳＶＰ＞ＴＨＰとなる（ステップＳ２６２６；ＮＯ）。このため、照合部２３０は、次に、ｔ＝１として、ステップＳ２６２３以降の処理を繰り返す。
【０２２１】
ｔ＝１とした場合、ステップＳ２６２４ａ〜Ｓ２６２４ｄの処理では、分類の対象である画像から生成した第２の特徴値（０ｘを除く）の１桁目からＮ桁目まで値と、定義の第２の特徴値（０ｘを除く）の２桁目からＮ＋１桁目までの値との差分の絶対値Ｓｎを桁毎に算出する。すなわち、図２２の（ｃ）のデータ１７１２のように、分類の対象である画像から生成した第２の特徴値（０ｘを除く）の１桁目から９桁目までの値と、定義の第２の特徴値（０ｘを除く）の２桁目から１０桁目までの値との差分の絶対値Ｓｎを桁毎に算出する。この場合、水平成分の差分ΔＳＶＰ＝５．７８、すなわちΔＳＶＰ＞ＴＨＰとなる（ステップＳ２６２６；ＮＯ）。このため、照合部２３０は、次に、ｔ＝２として、ステップＳ２６２３以降の処理を繰り返す。
【０２２２】
繰り返しの説明は省略するが、ｔ＝２からｔ＝４の場合も、それぞれ、ΔＳＶＰ＞ＴＨＰとなる（ステップＳ２６２６；ＮＯ）。このため、照合部２３０は、次に、ｔ＝５として、ステップＳ２６２３以降の処理を繰り返す。
【０２２３】
ｔ＝５とした場合、ステップＳ２６２４ａ〜Ｓ２６２４ｄの処理では、分類の対象である画像から生成した第２の特徴値（０ｘを除く）の１桁目からＮ桁目まで値と、定義の第２の特徴値（０ｘを除く）の６桁目からＮ＋５桁目までの値との差分の絶対値Ｓｎを桁毎に算出する。すなわち、図２２の（ｄ）のデータ１７１３のように、分類の対象である画像から生成した第２の特徴値（０ｘを除く）の１桁目から９桁目までの値と、定義の第２の特徴値（０ｘを除く）の６桁目から１４桁目までの値との差分の絶対値Ｓｎを桁毎に算出する。この場合、水平成分の差分ΔＳＶＰ＝０、すなわちΔＳＶＰ＜ＴＨＰとなる（ステップＳ２６２６；ＹＥＳ）。このため、照合部２３０は、部分一致する定義があることを示す情報を生成して保持し（ステップＳ２６２９ａ）、図２１Ｂの部分照合処理を終了する。部分照合処理を終了した後、照合部２３０は、図２１ＡのステップＳ２６６０の判定を行う。
【０２２４】
このように、図２１Ａ及び図２１Ｂのフローチャートに沿った照合処理を行うことで、帳票の一部を切り離した処理済みの帳票についての定義が定義体２９１に格納されていない場合にも、部分照合により処理済みの帳票を正しく分類することが可能となる。
【０２２５】
また、本実施形態に係る帳票分類装置２では、上記のように、特徴値が定義と一致しなかった帳票の画像１０及び生成した特徴値を、未分類の帳票として保持する（図１３のステップＳ２９）。このため、本実施形態に係る帳票分類装置２では、例えば、未分類の帳票についての特徴値に基づいて帳票の種別を学習することが可能である。
【０２２６】
図２３は、帳票分類装置が行う学習処理を説明するフローチャートである。
【０２２７】
図２３のフローチャートに沿った学習処理は、例えば、帳票分類装置２の照合部２３０、或いは図２には示していない学習部が行う。以下の説明では、学習処理は、照合部２３０が行うとする。学習処理を開始すると、照合部２３０は、図２３のように、まず、記憶部２９０の分類結果２９３から、未分類である帳票の画像についての特徴値の組を１組選択して読み込む（ステップＳ５１）。
【０２２８】
次に、照合部２３０は、記憶部２９０の分類結果２９３から、未分類である帳票の画像についての別の特徴値の組を１組選択して読み込む（ステップＳ５２）。
【０２２９】
次に、照合部２３０は、選択中の２組の特徴値の組は、第１の特徴値の桁数及び第２の特徴値の桁数が同じであるか否かを判定する（ステップＳ５３）。第１の特徴値の桁数又は第２の特徴値の桁数が一致しない場合（ステップＳ５３；ＮＯ）、照合部２３０は、ステップＳ５４〜Ｓ５７の処理を省略し、次に、選択可能な全ての特徴値の組を選択したか否かを判定する（ステップＳ５８）。
【０２３０】
第１の特徴値の桁数が一致し、かつ第２の特徴値の桁数が一致する場合（ステップＳ５３；ＹＥＳ）、照合部２３０は、水平成分差分算出処理（ステップＳ５４）及び垂直成分差分算出処理（ステップＳ５５）を行う。その後、照合部２３０は、水平成分の差分ΔＳＨ及び垂直成分の差分ΔＳＶが閾値以下であるか否かを判定する（ステップＳ５６）。ステップＳ５４、Ｓ５５、及びＳ５６の処理は、それぞれ、図１４のフローチャートにおけるステップＳ２６３０、Ｓ２６４０、及びＳ２６５０の処理と同じでよい。すなわち、照合部２３０は、ステップＳ５４の処理として、例えば、図１５のステップＳ２６３１〜Ｓ２６３７の処理を行う。また、照合部２３０は、ステップＳ５５の処理として、例えば、図１６のステップＳ２６４１〜Ｓ２６４７の処理を行う。
【０２３１】
水平成分の差分ΔＳＨ及び垂直成分の差分ΔＳＶがいずれも閾値以下である場合（ステップＳ５６；ＹＥＳ）、照合部２３０は、選択中の特徴値の組のペアについての情報を保持する（ステップＳ５７）。その後、照合部２３０は、選択可能な全ての特徴値の組を選択したか否かを判定する（ステップＳ５８）。また、水平成分の差分ΔＳＨ及び垂直成分の差分ΔＳＶがいずれかが閾値よりも大きい場合（ステップＳ５６；ＮＯ）、照合部２３０は、ステップＳ５７の処理を省略して、ステップＳ５８の判定を行う。
【０２３２】
ステップＳ５８の判定処理では、照合部２３０は、ステップＳ５１で選択して読み込んだ未分類である帳票と比較可能な別の特徴値の組のなかに未選択のものがあるか否かを判定する。選択していない特徴値の組がある場合（ステップＳ５８；ＮＯ）、照合部２３０は、ステップＳ５２以降の処理を繰り返す。一方、選択可能な全ての特徴値の組を選択済みである場合（ステップＳ５８；ＹＥＳ）、照合部２３０は、次に、ステップＳ５１において未分類である全ての特徴値の組を選択したか否かを判定する（ステップＳ５９）。選択していない特徴値の組がある場合（ステップＳ５９；ＮＯ）、照合部２３０は、ステップＳ５１以降の処理を繰り返す。そして、全ての特徴値の組が選択済みである場合（ステップＳ５９；ＹＥＳ）、照合部２３０は、特徴値の組のペアについての情報を、定義体を管理する管理装置に送信し（ステップＳ６０）、学習処理を終了する。ステップＳ６０では、照合部２３０は、例えば、未分類であるが特徴値が同一である複数の帳票についての情報をサーバ装置６等に送信する。当該情報を受信した管理装置（サーバ装置６）の管理者は、例えば、未分類である帳票についての特徴値を新たな定義としてサーバ装置６の定義体６９０に格納する（登録する）。これにより、未分類であった帳票のうち出現頻度の高い帳票に対する定義を追加した最新の定義体を、サーバ装置６を介して、複数の帳票分類装置２に提供することが可能となる。
【０２３３】
また、本実施形態に係る定義体２９１に格納する定義は、第１の特徴値及び第２の特徴値に限らず、例えば、帳票の画像１０内に含まれる帳票の特徴部分を切り出した部分イメージ（ユニーク情報）を含む定義であってもよい。
【０２３４】
図２４は、定義として利用する部分イメージの例を示す図である。図２５は、定義体の第２の変形例を示す図である。
【０２３５】
本実施形態に係る定義体２９１には、図２４のように、画像１０内の帳票における水平方向の線分の分布の特徴を示す値１４Ｈを含む第１の特徴値と、垂直方向の線分の分布の特徴を示す値１４Ｖを含む第２の特徴値とを帳票１１の定義として格納する。
【０２３６】
しかしながら、近年、私製の帳票の増加に伴い、第１の特徴値及び第２の特徴値の類似度の高い複数種類の別種の帳票も存在する。このため、第１の特徴値及び第２の特徴値のみで帳票を分類した場合、帳票の種類によっては分類精度が低くなる可能性がある。
【０２３７】
このため、本実施形態に係る帳票分類装置２では、第１の特徴値及び第２の特徴値に加え、帳票の画像１０内に含まれる帳票の特徴部分を切り出した部分イメージ（ユニーク情報）１１９０を含む定義を定義体２９１に登録してもよい。
【０２３８】
定義に含む部分イメージ１１９０は、帳票の画像１０内の、第１の特徴値及び第２の特徴値が類似している複数種類の帳票を識別可能なユニーク情報を含む部分領域とする。例えば、図２４の部分イメージ１１９０は、帳票１１を識別する帳票番号（１０）が印刷された領域を含む矩形領域となっている。部分イメージ１１９０を定義の１つとして定義体２９１に登録しておくことにより、第１の特徴値及び第２の特徴値の組み合わせが類似した複数の定義のなかから、部分イメージ１１９０も一致する定義を抽出することが可能となる。
【０２３９】
部分イメージ１１９０を定義の１つとして定義体に登録する場合、例えば、図２５に示すように、第１の特徴値及び第２の特徴値とともに、部分イメージ１１９０の始点の座標及び終点の座標と、部分イメージ１１９０のファイル名とを格納した定義体２９１Ｂを作成する。ここで、部分イメージ１１９０の始点の座標及び終点の座標は、それぞれ、図２４に示したように、画像１０における部分イメージ１１９０として切り出す矩形領域の左上角部となる画素の座標、及び右下角部となる画素の座標とする。また、ファイル名は、定義体を作成する際に取得した帳票の画像１０から切り出した部分イメージ１１９０を識別することが可能な情報であればよい。画像１０から切り出した部分イメージ１１９０は、例えば、定義体２９１とともに記憶部２９０に格納しておく。
【０２４０】
図２６は、特徴値及び部分イメージを利用した照合処理を説明するフローチャートである。
【０２４１】
図２６のフローチャートに沿った照合処理は、帳票分類装置２の照合部２３０が行う。照合処理を開始すると、照合部２３０は、まず、定義体２９１から定義を１つ選択して読み込み（ステップＳ２６１０）、分類する画像と読み込んだ定義との、第１の特徴値の桁数及び第２の特徴値の桁数が同じであるか否かを判定する（ステップＳ２６２０）。第１の特徴値の桁数が一致しない又は第２の特徴値の桁数が一致しない場合（ステップＳ２６２０；ＮＯ）、照合部２３０は、ステップＳ２６３０〜Ｓ２６５０の処理を省略し、現在行っている照合処理において全ての定義を選択したか否かを判定する（ステップＳ２６６０）。選択していない定義がある場合（ステップＳ２６６０；ＮＯ）、照合部２３０は、ステップＳ２６１０以降の処理を繰り返す。一方、全ての定義が選択済みである場合（ステップＳ２６６０；ＹＥＳ）、照合部２３０は、探索処理を終了し、特徴値が一致する定義がないことを示す情報を生成して保持する（ステップＳ２６８０）。ステップＳ２６８０の処理では、照合部２３０は、例えば、照合結果を示すフラグＦＨの値を特徴値が一致する定義がないことを示す値（例えば「０」）とする。
【０２４２】
説明をステップＳ２６２０の判定処理に戻す。第１の特徴値の桁数が一致し、かつ第２の特徴値の桁数が一致した場合（ステップＳ２６２０；ＹＥＳ）、照合部２３０は、次に、水平成分差分算出処理（ステップＳ２６３０）と、垂直成分差分算出処理（ステップＳ２６４０）とを行う。その後、照合部２３０は、水平成分の差分ΔＳＨ及び垂直方向の差分ΔＳＶが閾値以下であるか否かを判定する（ステップＳ２６５０）。水平成分の差分又は垂直方向の差分が閾値よりも大きい場合（ステップＳ２６５０；ＮＯ）、照合部２３０は、次に、現在行っている照合処理において全ての定義を選択したか否かを判定する（ステップＳ２６６０）。
【０２４３】
一方、水平成分の差分及び垂直方向の差分がいずれも閾値以下である場合（ステップＳ２６５０；ＹＥＳ）、照合部２３０は、次に、分類の対象である帳票の画像１０から部分イメージを切り出す（ステップＳ２６５２）。ステップＳ２６５２では、照合部２３０は、定義体２９１Ｂから読み出した定義における始点の座標及び終点の座標に基づいて、画像１０内の部分イメージを切り出す。
【０２４４】
次に、照合部２３０は、画像１０から切り出した部分イメージと、定義の部分イメージとを照合し（ステップＳ２６５４）、両者が一致するか否かを判定する（ステップＳ２６５６）。ステップＳ２６５４では、照合部２３０は、画像処理の分野における既知の照合方法に従い、例えば、画像１０から切り出した部分イメージと、定義の部分イメージと類似度（一致度）を算出する。ステップＳ２６５６では、照合部２３０は、例えば、算出した部分イメージの類似度が閾値以上であるか否かにより、両者が一致するか否かを判定する。部分イメージが一致していない場合（ステップＳ２６５６；ＮＯ）、照合部２３０は、ステップＳ２６６０の判定を行う。一方、部分イメージが一致した場合（ステップＳ２６５６；ＹＥＳ）、照合部２３０は、探索処理を終了し、特徴値が一致する定義があることを示す情報を生成して保持する（ステップＳ２６７０）。ステップＳ２６７０の処理では、照合部２３０は、例えば、照合結果を示すフラグＦＨの値を特徴値が一致する定義があることを示す値（例えば「１」）とする。
【０２４５】
ステップＳ２６７０又はステップＳ２６８０の処理を終えると、照合部２３０は、照合処理（図１３のステップＳ２６）を終了する。照合処理を終了した後、照合部２３０は、フラグＦＨの値に基づいて、図１３のフローチャートにおけるステップＳ２７以降の処理を行う。
【０２４６】
本実施形態に係る定義体２９１に格納する定義（第１の特徴量及び第２の特徴量）は、上記のように、線分毎に位置等を示す情報を定義した場合に比べて、１種類の帳票についての定義のデータ量が非常に少ない。このため、帳票の画像１０におけるユニーク情報を示す部分イメージ１１９０を定義に加えることによる定義体２９１の肥大化を抑制することが可能である。更に、部分イメージ１１９０を定義に加えることにより、第１の特徴量及び第２の特徴量の類似度が高い複数種類の別種の帳票を部分イメージの照合により正しく分類することが可能となる。
【０２４７】
以上説明したように、本実施形態に係る帳票分類装置２によれば、１種類の帳票についての定義のデータ量を非常に少なくすることが可能となり、定義体２９１の記憶に必要な記憶領域の増大を抑制することが可能となる。また、本実施形態に係る帳票分類装置２によれば、定義体の個々の定義におけるデータ量を非常に少なくすることが可能であるため、分類の対象である画像と定義との照合を短時間で効率よく行うことが可能となる。更に、本実施形態に係る帳票分類装置２によれば、帳票の画像内の部分イメージを利用した照合処理を行うことにより、特徴値の類似度が高い複数種類の別種の帳票も正しく分類することが可能となる。
【０２４８】
なお、帳票分類装置２が行う上記の各種処理は、それぞれ、本実施形態の要旨を逸脱しない範囲において適宜変更可能である。
【０２４９】
また、本実施形態に係る帳票分類装置２の機能的構成は、図２に示した構成に限らず、適宜変更可能である。例えば、帳票分類装置２は、図２３のフローチャートに沿った学習処理を行う学習処理部を含んでもよい。更に、本実施形態に係る帳票分類装置２は、画像１０内の帳票１１の種別を特定して分類するだけでなく、例えば、帳票１１内の文字を認識する処理等を行うことが可能な装置であってもよい。
【０２５０】
加えて、本実施形態に係る帳票分類装置２は、コンピュータと、該コンピュータに実行させるプログラムとにより実現可能である。以下、図２７を参照し、コンピュータとプログラムとにより実現される帳票分類装置２について説明する。
【０２５１】
図２７は、コンピュータのハードウェア構成を示す図である。
【０２５２】
図２７に示すように、コンピュータ５０は、ＣＰＵ（Central Processing Unit）５００１と、メモリ５００２と、補助記憶装置５００３と、入力インタフェース５００４と、表示処理装置５００５と、通信制御装置５００６と、媒体駆動装置５００７とを備える。コンピュータ５０におけるこれらの要素５００１〜５００７は、バス５０１０により相互に接続されており、要素間でのデータの受け渡しが可能になっている。
【０２５３】
ＣＰＵ ５００１は、オペレーティングシステムを含む各種のプログラムを実行することによりコンピュータ５０の全体の動作を制御するプロセッサである。例えば、ＣＰＵ ５００１は、図５のステップＳ１１〜Ｓ１７の各ステップの処理を含む定義体作成プログラム、及び図１３のステップＳ２１〜Ｓ３１の各ステップの処理を含む帳票分類プログラムを実行する。定義体作成プログラム及び帳票分類プログラムにおける成分画像分割処理は、例えば、図６のステップＳ１３０１〜Ｓ１３０４の各ステップの処理を含む処理としてサブルーチン化されている。また、定義体作成プログラム及び帳票分類プログラムにおけるブロック値設定処理は、例えば、図７ＡのステップＳ１４０１〜Ｓ１４１０及び図７ＢのステップＳ１４１１〜Ｓ１４１８の各ステップの処理を含む処理としてサブルーチン化されている。また、定義体作成プログラム及び帳票分類プログラムにおける特徴値算出処理は、例えば、図８のステップＳ１５０１〜Ｓ１５０８の各ステップの処理を含む処理としてサブルーチン化されている。
【０２５４】
更に、帳票分類プログラムにおける照合処理は、例えば、図１４〜図１６に示したフローチャートにおける各ステップの処理を含む処理としてサブルーチン化されている。なお、帳票分類プログラムにおける照合処理は、例えば、図２１Ａ及び図２１Ｂ、並びに図１５及び図１６に示したフローチャートにおける各ステップの処理を含む処理としてサブルーチン化されていてもよい。
【０２５５】
また、ＣＰＵ ５００１は、例えば、図２３のステップＳ５１〜Ｓ６０の各ステップの処理を含む学習プログラムを実行する。
【０２５６】
メモリ５００２は、図示しないＲＯＭ（Read Only Memory）及びＲＡＭ（Random Access Memory）を含む。メモリ５００２のＲＯＭには、例えば、コンピュータ５０の起動時にＣＰＵ ５００１が読み出す所定の基本制御プログラム等が予め記録されている。また、メモリ５００２のＲＡＭは、ＣＰＵ ５００１が、各種のプログラムを実行する際に必要に応じて作業用記憶領域として使用する。メモリ５００２のＲＡＭは、例えば、帳票の画像１０、第１の成分画像１２及び第２の成分画像１５、ブロック値Ｑ、差分の絶対値の和ＳＨ及びＳＶ等の一時的な記憶に利用可能である。
【０２５７】
補助記憶装置５００３は、例えば、ＨＤＤ（Hard Disk Drive）等の磁気ディスク、及びフラッシュメモリ等の不揮発性メモリである。補助記憶装置５００３には、ＣＰＵ ５００１によって実行される各種のプログラムや各種のデータ等を記憶させることができる。補助記憶装置５００３は、例えば、上記の定義体作成プログラム、帳票分類プログラム、及び学習プログラム等の記憶に利用可能である。また、補助記憶装置５００３は、例えば、定義体２９１、帳票の画像１０、第１の成分画像及び第２の成分画像、ブロック値Ｑ、差分の絶対値の和ＳＨ及びＳＶ、並びに第１の特徴値及び第２の特徴値等の記憶に利用可能である。
【０２５８】
入力インタフェース５００４は、キーボード装置、マウス装置、及びタッチパネル装置等の入力装置４、並びにスキャナ装置３から入力される情報を受け付けるインタフェース装置である。
【０２５９】
表示処理装置５００５は、液晶表示装置等の表示装置５の表示画面の制御等を行う。表示処理装置５００５は、例えば、コンピュータ５０の動作状態や、帳票の画像１０、照合結果（分類結果）等を示す画面データを作成して表示装置５に表示させる。
【０２６０】
通信制御装置５００６は、コンピュータ５０を通信ネットワークに接続し、通信ネットワークを介したコンピュータ５０と他の電子機器との各種通信を制御する装置である。通信制御装置５００６は、例えば、サーバ装置６との通信を制御し該サーバ装置６から定義体６９０（図２を参照）を取得することに利用可能である。
【０２６１】
媒体駆動装置５００７は、可搬型記録媒体５１に記録されているプログラムやデータの読み出し、補助記憶装置５００３に記憶されたデータ等の可搬型記録媒体５１への書き込みを行う。可搬型記録媒体５１としては、例えば、Secure  Digital（ＳＤ）規格のメモリカード（フラッシュメモリ）がある。可搬型記録媒体５１は、上記の定義体作成プログラム、帳票分類プログラム、及び学習プログラムの記録に利用可能である。また、可搬型記録媒体５１は、例えば、定義体２９１、帳票の画像１０、第１の成分画像及び第２の成分画像、ブロック値Ｑ、差分の絶対値の和ＳＨ及びＳＶ、並びに第１の特徴値及び第２の特徴値等の記憶に利用可能である。
【０２６２】
更に、コンピュータ５０が媒体駆動装置５００７として利用可能な光ディスクドライブを搭載している場合、当該光ディスクドライブで認識可能な各種の光ディスクを可搬型記録媒体５１として利用可能である。可搬型記録媒体５１として利用可能な光ディスクには、例えば、Compact Disc（ＣＤ）、Digital Versatile Disc（ＤＶＤ）、Blu-ray Disc（Blu-rayは登録商標）等がある。
【０２６３】
コンピュータ５０は、オペレータが入力装置４を操作して定義体作成プログラムの開始命令を入力すると、ＣＰＵ ５００１が補助記憶装置５００３等から図５のフローチャートにおける各ステップの処理を含む定義体作成プログラムを読み出して実行する。定義体作成プログラムを実行している間、ＣＰＵ ５００１は、図２に示した帳票分類装置２におけるスキャナ制御部２１０、特徴値生成部２２０、及び主制御部２６０として機能（動作）する。また、定義体作成プログラムを実行している間、コンピュータ５０のメモリ５００２のＲＡＭ及び補助記憶装置５００３、並びに可搬型記録媒体５１等の記録媒体は、図２に示した帳票分類装置２における記憶部２９０として機能する。
【０２６４】
また、コンピュータ５０は、オペレータが入力装置４を操作して帳票分類プログラムの開始命令を入力すると、ＣＰＵ ５００１が補助記憶装置５００３等から図１３のフローチャートにおける各ステップの処理を含む帳票分類プログラムを読み出して実行する。帳票分類プログラムを実行している間、ＣＰＵ ５００１は、図２に示した帳票分類装置２におけるスキャナ制御部２１０、特徴値生成部２２０、照合部２３０、及び主制御部２６０として機能（動作）する。また、帳票分類プログラムを実行している間、コンピュータ５０のメモリ５００２のＲＡＭ及び補助記憶装置５００３、並びに可搬型記録媒体５１等の記録媒体は、図２に示した帳票分類装置２における記憶部２９０として機能する。
【０２６５】
更に、コンピュータ５０は、例えば、帳票分類プログラムを終了したタイミングで、図２３のフローチャートにおける各ステップの処理を含む学習プログラムを読み出して実行する。学習プログラムを実行している間、ＣＰＵ ５００１は、図２に示した帳票分類装置２における照合部２３０及び主制御部２６０として機能（動作）する。また、学習プログラムを実行している間、コンピュータ５０のメモリ５００２のＲＡＭ及び補助記憶装置５００３、並びに可搬型記録媒体５１等の記録媒体は、図２に示した帳票分類装置２における記憶部２９０として機能する。
【０２６６】
なお、帳票分類装置２として動作させるコンピュータ５０は、図２７に示した要素５００１〜５００８の全てを含む必要はなく、用途や条件に応じて一部の要素を省略することも可能である。例えば、コンピュータ５０は、媒体駆動装置５００７が省略されたものであってもよい。
【符号の説明】
【０２６７】
１  帳票分類システム
２  帳票分類装置
２１０  スキャナ制御部
２２０  特徴値生成部
２２１  成分画像作成部
２２２  画像分割部
２２３  ブロック値設定部
２２４  特徴値算出部
２３０  照合部
２４０  表示制御部
２５０  通信制御部
２６０  主制御部
２９０  記憶部
２９１，２９１Ａ，２９１Ｂ，６９０  定義体
２９２  処理データ
２９３  分類結果
３  スキャナ装置
４  入力装置
５  表示装置
６  サーバ装置
７  通信ネットワーク
５０  コンピュータ
５００１  ＣＰＵ
５００２  メモリ
５００３  補助記憶装置
５００４  入力インタフェース
５００５  表示処理装置
５００６  通信制御装置
５００７  媒体駆動装置
５０１０  バス
５１  可搬型記録媒体
【図１】
2020016969.tif 000003
【図２】
2020016969.tif 000004
【図３】
2020016969.tif 000005
【図４】
2020016969.tif 000006
【図５】
2020016969.tif 000007
【図６】
2020016969.tif 000008
【図７Ａ】
2020016969.tif 000009
【図７Ｂ】
2020016969.tif 000010
【図８】
2020016969.tif 000011
【図９】
2020016969.tif 000012
【図１０】
2020016969.tif 000013
【図１１】
2020016969.tif 000014
【図１２】
2020016969.tif 000015
【図１３】
2020016969.tif 000016
【図１４】
2020016969.tif 000017
【図１５】
2020016969.tif 000018
【図１６】
2020016969.tif 000019
【図１７Ａ】
2020016969.tif 000020
【図１７Ｂ】
2020016969.tif 000021
【図１７Ｃ】
2020016969.tif 000022
【図１８】
2020016969.tif 000023
【図１９】
2020016969.tif 000024
【図２０】
2020016969.tif 000025
【図２１Ａ】
2020016969.tif 000026
【図２１Ｂ】
2020016969.tif 000027
【図２２】
2020016969.tif 000028
【図２３】
2020016969.tif 000029
【図２４】
2020016969.tif 000030
【図２５】
2020016969.tif 000031
【図２６】
2020016969.tif 000032
【図２７】
2020016969.tif 000033