(57)【特許請求の範囲】
【請求項１】
入力される印鑑イメージデータから円形領域を検出する円形検出部と、
前記円形領域の外周上の各座標位置において、外周の接線方向と変化度合いを示す外周ベクトルを算出する外周ベクトル算出部と、
前記外周に沿った前記外周ベクトルの変化を判定することにより、前記印鑑イメージデータ上での印鑑の重ね押しを検出する重ね押し判定部と、
を備えることを特徴とする重ね押し印検出装置。
【請求項２】
前記外周ベクトル算出部は、前記円形領域の中心座標から該中心座標を中心として３６０度を複数等分した各放射角方向に線分を伸ばしたときに該各線分が前記外周と交わるときの前記外周上の各座標を外周ベクトル座標として算出し、該算出した外周ベクトル座標毎に、該外周ベクトル座標を起点として該外周ベクトル座標に対して前記外周の所定方向に隣接する外周ベクトル座標とで定まるベクトルを前記外周ベクトルとして算出する、
ことを特徴とする請求項１に記載の重ね押し印検出装置。
【請求項３】
前記外周ベクトル算出部は、前記外周ベクトルの成分およびスカラーを算出し、
前記重ね押し判定部は、前記外周上で互いに隣接する前記外周ベクトルの組について、前記成分または前記スカラーの変位を判定することにより、前記印鑑イメージデータ上での印鑑の重ね押しを検出する、
ことを特徴とする請求項２に記載の重ね押し印検出装置。
【請求項４】
前記重ね押し判定部は、前記成分の変位が所定の成分閾値に比較して大きくかつ前記スカラーの変位が所定のスカラー閾値に比較して大きくなる前記外周上で互いに隣接する前記外周ベクトルの組が２組あるときに、前記印鑑イメージデータ上での印鑑の重ね押しを検出する、
ことを特徴とする請求項３に記載の重ね押し印検出装置。
【請求項５】
入力される印鑑イメージデータから円形領域を検出し、
前記円形領域に対応する外周上の各座標位置において、外周の接線方向と変化度合いを示す外周ベクトルを算出し、
前記外周に沿った前記外周ベクトルの変化を判定することにより、前記印鑑イメージデータ上での印鑑の重ね押しを検出する、
ことを特徴とする重ね押し印検出方法。
【請求項６】
入力される印鑑イメージデータから円形領域を検出するステップと、
前記円形領域に対応する外周上の各座標位置において、外周の接線方向と変化度合いを示す外周ベクトルを算出するステップと、
前記外周に沿った前記外周ベクトルの変化を判定することにより、前記印鑑イメージデータ上での印鑑の重ね押しを検出するステップと、
をコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、金融機関における印鑑照合システム等に用いられる重ね押し印検出装置、方法、およびプログラムに関する。
【背景技術】
【０００２】
金融機関における印鑑照合システム等において、従来、印鑑票の印鑑探索は、切出し枠内の円を検出することで実施している。
【０００３】
円の検出は一般的には、例えば図１１（ａ）に示されるように、切出し枠内の＃１、＃２、および＃３の３点の黒画素１１０１より、円の中心点座標Ｏ（ｘ，ｙ）と半径ｒを求め、円１１０２の円形度を計算する。円１１０２の中心点座標Ｏ（ｘ，ｙ）、半径ｒ、および円形度の算出には、既知の方程式を用いている。
【０００４】
このような方式により一定数のサンプリングが実施された後、円形度が高い順から印鑑候補としてオペレータに表示が行われる。オペレータは提示された印鑑候補を確認し、印鑑の判定を行う。印鑑と判定されなかった場合は、次の印鑑候補がオペレータに提示される。
【０００５】
従来の印鑑探索では、上述のように３点の座標から円に近しい図形を求めることで印鑑が検出されている。このため、下記のような２つのパターンの重ね押し印を、正常な印鑑として検出する可能性がある。
【０００６】
図１１（ｂ）は、重ね押し印パターン１の説明図である。このパターンでは、切出し枠内の＃１、＃２、および＃３の３点の黒画素１１０３より、重ねて押しされている印鑑のうちの１つの円１１０４が、正常な印鑑として検出されている。
【０００７】
図１１（ｃ）は、重ね押し印パターン２の説明図である。このパターンでは、切出し枠内の＃１、＃２、および＃３の３点の黒画素１１０５より、近い重ね押し印全体が１つの正常な印鑑の円１１０６として検出されている。
【０００８】
また、重ね押し印が検出されることで、オペレータに余分な確認作業が発生する。そのため、オペレーション効率が低下する問題がある。図１１（ｄ）の例では、印鑑票の表示において、重ね押し印が印鑑候補１として挙がっているため、正常な印鑑でないと判定する余分な作業が発生している。
【０００９】
以上のように、従来の印鑑探索技術において、重ね押し印が検出されることで正常な印鑑が検出されない場合が発生するという問題点があった。
【００１０】
三文判等の印鑑の検出精度を向上させたり（例えば特許文献１）、印鑑の印影に「かすれ」や「にじみ」がないか自動的に判定したり（例えば特許文献２）、円存在可能性領域内の座標を通る円周の接ベクトルを算出して理想勾配を算出し入力画像中の円形状の有無を判定したりする技術（例えば特許文献３）は、従来知られている。
【００１１】
しかし、従来技術では、重ね押し印を検出することはできなかった。
【先行技術文献】
【特許文献】
【００１２】
【特許文献１】特開２０１２−１８１６１９号公報
【特許文献２】特開２０１２−０４８５１３号公報
【特許文献３】特開２０１０−１３４５６４号公報
【発明の概要】
【発明が解決しようとする課題】
【００１３】
本発明は、重ね押し印を検出可能とすることで、オペレータの余分な確認作業を減らすことを目的とする。
【課題を解決するための手段】
【００１４】
態様の一例では、入力される印鑑イメージデータから円形領域を検出する円形検出部と、円形領域の外周上の各座標位置において、外周の接線方向と変化度合いを示す外周ベクトルを算出する外周ベクトル算出部と、外周に沿った外周ベクトルの変化を判定することにより、印鑑イメージデータ上での印鑑の重ね押しを検出する重ね押し判定部とを備える。
【発明の効果】
【００１５】
本発明によれば、重ね押し印を検出することで、オペレータの余分な確認作業を減らすことが可能となる。
【図面の簡単な説明】
【００１６】
【図１】本発明の実施形態による重ね押し印検出装置の構成例を示すブロック図である。
【図２】本発明の実施形態における重ね押し印の検出動作の説明図である。
【図３】外周ベクトルの計算処理の説明図である。
【図４】本発明の実施形態の動作説明図である。
【図５】本発明の実施形態を実現するコンピュータのハードウェア構成例を示す図である。
【図６】本発明の実施形態における重ね押し印検出処理の例を示す全体フローチャートである。
【図７】外周ベクトル算出処理の詳細例を示すフローチャート（その１）である。
【図８】外周ベクトル算出処理の詳細例を示すフローチャート（その２）である。
【図９】重ね押し判定処理の詳細例を示すフローチャートである。
【図１０】本発明の実施形態において使用されるテーブル構成例を示す図である。
【図１１】印鑑照合における一般的な円検出方法と従来の問題点の説明図である。
【発明を実施するための形態】
【００１７】
以下、本発明を実施するための形態について図面を参照しながら詳細に説明する。
図１は、本発明の実施形態による重ね押し印検出装置１００の構成例を示すブロック図である。この構成は、例えば金融システムにおける印鑑照合装置において、重ね押し印を検出する機能構成の例を示すものである。
【００１８】
管理部１１３は、印鑑イメージデータ１１４の入力と重ね押し印の判定結果の結果通知１１５の出力を制御する。また、管理部１１３は、円形検出部１０１、外周ベクトル座標算出部１０３、外周ベクトル座標比較部１０５、重ね押し判定部１１２に対する、データの受け渡しや、処理の繰返し動作等を制御する。
【００１９】
円形検出部１０１は、管理部１１３を介して入力された印鑑イメージデータ１１４から円形領域を検出する。具体的には、円形検出部１０１は、円形領域を検出し、その中心座標と、検出された円形領域の外周を構成する検出円外周座標を決定し、円形検出情報記憶部１０２に記憶させる。
【００２０】
外周ベクトル座標算出部１０３、外周ベクトル座標比較部１０５、成分算出部１０６、およびスカラー算出部１０８からなる部分は外周ベクトル算出部を構成し、円形領域に対応する外周上の各座標位置において、外周の接線方向と変化度合いを示す外周ベクトルを算出する。より具体的には、以下の構成を有する。
【００２１】
外周ベクトル座標算出部１０３は、円形検出部１０１が検出した中心座標を中心として３６０度を複数等分した各放射角方向に線分を伸ばしたときに、各線分が外周と交わるときの外周上の各検出円外周座標を、外周ベクトル座標として算出し、外周ベクトル座標記憶部１０４に記憶する。
【００２２】
外周ベクトル座標比較部１０５は、外周に沿って検出され外周ベクトル座標記憶部１０４に記憶されている外周ベクトル座標同士を比較することにより、各外周ベクトル座標毎に、外周ベクトル座標を起点としてその外周ベクトル座標に対して外周の所定方向（例えば反時計回り方向）に隣接する外周ベクトル座標とで定まる組を決定する。
【００２３】
成分算出部１０６は、外周ベクトル座標比較部１０５が決定した外周ベクトル座標の組から、外周ベクトルのｘ座標成分およびｙ座標成分を算出し、成分記憶部１０７に記憶させる。
【００２４】
スカラー算出部１０８は、外周ベクトル座標比較部１０５が決定した外周ベクトル座標の組から、外周ベクトルのスカラーを算出し、スカラー記憶部１０９に記憶させる。
【００２５】
成分変位判定部１１０およびスカラー変位判定部１１１は、外周上で互いに隣接する外周ベクトルの組について、成分記憶部１０７に記憶されている成分の変位およびスカラー記憶部１０９に記憶されているスカラーの変位を、それぞれ判定する。
【００２６】
重ね押し判定部１１２は、成分変位判定部１１０およびスカラー変位判定部１１１での各判定結果を総合して、重ね押し印を判定し、管理部１１３を介して結果通知１１５を出力する。より具体的には、重ね押し判定部１１２は、成分変位判定部１１０で成分の変位が所定の成分閾値に比較して大きいと判定し、かつスカラー変位判定部１１１でスカラーの変位が所定のスカラー閾値に比較して大きいと判定した外周ベクトルの組が２組あるときに、印鑑イメージデータ１１４上での印鑑の重ね押しを検出する。
【００２７】
図２は、本発明の実施形態における重ね押し印の検出動作の説明図である。印鑑の重ね押しがない場合には、図１の円形検出部１０１が検出する円形領域が真円に近くなって、その外周（＝円周）上の外周ベクトルの変化は一定となる。
【００２８】
これに対して、印鑑の重ね押しがある場合には、円形検出部１０１が検出する円形領域としては、図２に示されるように、＃１および＃２の２つの円２０１が検出される状態となり、それらの検出円２０１は＃１および＃２の２つの交点２０３で交わる。
【００２９】
＃１および＃２の２つの検出円２０１が合わさった外周上で外周ベクトルを算出すると、例えば＃ｎおよび＃ｎ＋１の隣接する外周ベクトル２０２の組では、成分およびスカラーの変位は、それほど大きくなく、それぞれ所定の成分閾値および所定のスカラー閾値の範囲内にある。
【００３０】
これに対して、＃１の交点２０３付近の＃ｉおよび＃ｉ＋１の隣接する外周ベクトル２０２の組と、＃２の交点２０３付近の＃ｋおよび＃ｋ＋１の隣接する外周ベクトル２０２の組では、外周ベクトルの変化に違いが生じて成分およびスカラーの変位は大きくなり、それぞれ所定の成分閾値および所定のスカラー閾値の範囲外となる。
【００３１】
本実施形態では、この変化の違いを検出することで、重ね押し印を検出する。
重ね押し印の特徴が検出された円形領域は、印鑑候補から除外する。外周上を一周しても重ね押し印の特徴が２回以上検出されなかった場合は、印鑑候補として残す。
【００３２】
図３は、上述の重ね押し印の検出動作を実現するための、外周ベクトルの計算処理の説明図である。
【００３３】
外周ベクトルは、図１の円形検出部１０１にて検出された、印鑑候補図形である円形領域の外周の座標の変化から計算する。
【００３４】
まず、円形検出部１０１は、図３の＃１および＃２の２つの検出円２０１の外周を構成する座標群を検出している。以下、この座標を、「検出円外周座標」と称する。この検出円外周座標は、図３に示される＃１および＃２の２つの検出円２０１の外周上の点線の各点に相当する程度の細かさで算出される。
【００３５】
次に、図１の外周ベクトル座標算出部１０３が、円形検出部１０１が検出した中心座標３０１からその中心座標３０１を中心として３６０度をｎ等分した各放射角方向に＃０〜＃ｎ−１のｎ本の線分３０２を伸ばしてゆく。具体的には、後述するように、中心座標３０１を起点として、ｘ座標値およびｙ座標値に、各放射角方向毎に予め決められているｘ差分およびｙ差分がそれぞれ順次加算されてゆく。この結果、中心座標３０１から各放射角方向に伸びてゆく線分３０２上の各座標が順次算出される。線分３０２の分割数ｎは、図１の重ね押し印検出装置１００の管理部１１３に予め環境定義設定される。
【００３６】
そして、外周ベクトル座標算出部１０３は、各線分３０２毎に、新たに算出した線分３０２上の座標が、図１の円形検出部１０１で算出され円形検出情報記憶部１０２に記憶されているいずれかの検出円外周座標３０３と一致するか否かを監視する。外周ベクトル座標算出部１０３は、その一致を検出したときに、線分３０２が円形検出部１０１で検出された円形領域の外周と交わったと判定し、その座標を外周ベクトル座標３０３として、図１の外周ベクトル座標記憶部１０４に記憶させる。外周ベクトル座標算出部１０３は、この検出動作を＃０〜＃ｎ−１の各線分３０２毎に実行することにより、＃０〜＃ｎ−１の外周ベクトル座標３０３を算出し、外周ベクトル座標記憶部１０４に記憶させる。
【００３７】
次に、図１の外周ベクトル座標比較部１０５は、上述のようにして外周ベクトル座標記憶部１０４に記憶された外周ベクトル座標３０３を、図３に示される３０３（＃０）と３０３（＃１）、３０３（＃１）と３０３（＃２）、・・・という反時計回りの順番で順次外周ベクトル座標３０３の組を決定してゆく。＃ｎ−１の外周ベクトル座標３０３に到達したら、最後に、外周ベクトル座標３０３（＃ｎ−１）と３０３（＃０）の組を決定する。
【００３８】
これらの組により、図３に示される＃０から＃ｎ−１までの各外周ベクトル３０４が算出されることになる。例えば、外周ベクトル３０４（＃ｉ）は、起点である外周ベクトル座標３０３（＃ｉ）から終点である外周ベクトル座標３０３（＃ｉ＋１）までを結ぶベクトルである。
【００３９】
図１の成分算出部１０６は、外周ベクトル座標比較部１０５が決定した外周ベクトル座標３０３の組から、外周ベクトル３０４のｘ座標成分およびｙ座標成分を算出し、成分記憶部１０７に記憶させる。具体的には、成分算出部１０６は、終点の外周ベクトル座標３０３のｘ座標値から起点の外周ベクトル座標３０３のｘ座標値を減算することにより、外周ベクトル３０４のｘ座標成分を算出する。また、成分算出部１０６は、終点の外周ベクトル座標３０３のｙ座標値から起点の外周ベクトル座標３０３のｙ座標値を減算することにより、外周ベクトル３０４のｙ座標成分を算出する。
【００４０】
図１のスカラー算出部１０８は、外周ベクトル座標比較部１０５が決定した外周ベクトル座標３０３の組から、外周ベクトル３０４のスカラーを算出し、スカラー記憶部１０９に記憶させる。具体的には、スカラー算出部１０８は、成分算出部１０６が算出した外周ベクトル３０４のｘ座標成分の２乗と同じくｙ座標成分の２乗を加算した結果の平方根として、外周ベクトル３０４のスカラーを算出する。
【００４１】
印鑑が重ね押しされている場合には、算出された＃０から＃ｎ−１までの各外周ベクトル３０４のうち、図３の＃１と＃２の２つの検出円２０１の２つの交点付近の外周ベクトル３０４（＃ｉ）と３０４（＃ｉ＋１）の組、および外周ベクトル３０４（＃ｋ）と３０４（＃ｋ＋１）の組において、図２で説明したように、２つのベクトル間の変位が大きくなる。具体的には、成分算出部１０６で算出され成分記憶部１０７に記憶されているｘ座標成分とｙ座標成分のそれぞれのベクトル間での変化量が大きくなる。かつ、スカラー算出部１０８で算出されスカラー記憶部１０９に記憶されているスカラーのそれぞれのベクトル間での変化量が大きくなる。
【００４２】
これらの変化を図１の成分変位判定部１１０およびスカラー変位判定部１１１が判定し重ね押し判定部１１２が総合判定することにより、重ね押し印を検出することができる。
【００４３】
図４は、本発明の実施形態の動作説明図である。
まず図４（ａ）に示されるように、いま印鑑票に、印鑑候補１（前述した図１１（ｂ）の重ね押し印パターン１に対応）、印鑑候補２（前述した図１１（ｃ）の重ね押し印パターン２に対応）、および印鑑候補３（押し直し印）などが押印されているとする。
【００４４】
図１において、この印鑑票に対応する印鑑イメージデータ１１４が重ね押し印検出装置１００に入力すると、円形検出部１０１が、それぞれの印鑑候補に対応する印鑑枠内で、円形領域と、その中心座標３０１および検出円外周座標群を検出する。
【００４５】
続いて、図４（ｂ）の太線矢印で示されるように、図３で前述した方法で中心座標３０１から円周法方向に伸びる＃０から＃ｎ−１の線分３０２に基づいて、各印鑑候補毎に、外周ベクトル３０４の集合が算出される。
【００４６】
さらに、図３で前述した方法で外周ベクトル３０４の変化(成分変位とスカラー変位)が計算される結果、例えば図４（ｃ）において、その変化量が許容範囲外となる外周ベクトル３０４の組が、印鑑候補１および印鑑候補２のそれぞれに対して、２組ずつ検出される。
【００４７】
この結果、図４（ｄ）に示されるように、重ね押しパターン１および２に対応する印鑑候補１および２が候補から除外され、押し直し印に対応する候補のみが新たな印鑑候補１として、図１の重ね押し判定部１１２から管理部１１３を介して結果通知１１５として出力される。
【００４８】
以上のようにして、本発明の実施形態では、印鑑探索時に重ね押し印を印鑑候補から除外することよって、印鑑検出精度を向上させることが可能となる。
【００４９】
また、重ね押し印が印鑑候補として挙がらなくなるため確認すべき印鑑の数が減り、オペレーション効率を向上させることが可能となる。
【００５０】
図５は、図１のブロック構成を有する重ね押し印検出装置１００をソフトウェア処理として実現できるコンピュータのハードウェア構成の一例を示す図である。
【００５１】
図５に示されるコンピュータは、ＣＰＵ５０１、メモリ５０２、入力装置５０３、出力装置５０４、外部記憶装置５０５、可搬記録媒体５０９が挿入される可搬記録媒体駆動装置５０６、及び通信インタフェース５０７を有し、これらがバス５０８によって相互に接続された構成を有する。同図に示される構成は上記システムを実現できるコンピュータの一例であり、そのようなコンピュータはこの構成に限定されるものではない。
【００５２】
ＣＰＵ５０１は、当該コンピュータ全体の制御を行う。メモリ５０２は、プログラムの実行、データ更新等の際に、外部記憶装置５０５（或いは可搬記録媒体５０９）に記憶されているプログラム又はデータを一時的に格納するＲＡＭ（ランダムアクセスメモリ）等のメモリである。ＣＵＰ５０１は、プログラムをメモリ５０２に読み出して実行することにより、全体の制御を行う。
【００５３】
入力装置５０３は、ユーザによるキーボードやマウス等による入力操作を検出し、その検出結果をＣＰＵ５０１に通知する。
【００５４】
また、入力装置５０３は、紙の印鑑票などをスキャンして図１の印鑑イメージデータ１１４を入力するためのスキャナ装置などを備えてもよい。
【００５５】
出力装置５０４は、ＣＰＵ５０１の制御によって送られてくるデータを表示装置や印刷装置に出力する。例えば、出力装置５０４は、図１の管理部１１３から出力される結果通知１１５である印鑑候補（図４（ｄ）等参照）を、ディスプレイ表示する。
【００５６】
外部記憶装置５０５は、例えばハードディスク記憶装置である。主に各種データやプログラムの保存に用いられる。
【００５７】
可搬記録媒体駆動装置５０６は、光ディスクやＳＤＲＡＭ（シンクロナスダイナミックランダムアクセスメモリ）、コンパクトフラッシュ（登録商標）等の可搬記録媒体５０９を収容するもので、外部記憶装置５０５の補助の役割を有する。
【００５８】
通信インターフェース５０７は、例えばＬＡＮ（ローカルエリアネットワーク）又はＷＡＮ（ワイドエリアネットワーク）の通信回線を接続するための装置である。
【００５９】
図１の重ね押し印検出装置１００の機能は、後述する図６から図９のフローチャート等で実現される図１の各部の機能を搭載したプログラムをＣＰＵ５０１が実行することで実現される。そのプログラムは、例えば外部記憶装置５０５や可搬記録媒体５０９に記録して配布してもよく、或いはネットワーク接続装置５０７によりネットワークから取得できるようにしてもよい。
【００６０】
図６は、図５のコンピュータによって実行される重ね押し印検出処理の例を示す全体フローチャートである。
【００６１】
まず、図５のＣＰＵ５０１は、図５の入力装置５０３などから入力される印鑑イメージデータ１１４（図１）から円形領域を検出する円形検出処理を実行する（ステップＳ６０１）。このステップは、図１の円形検出部１０１の機能を実現する。このステップでは、エッジ抽出等の既知の手法により円形領域が検出され、その中心座標と、検出された円形領域の外周を構成する検出円外周座標群が算出され、図１の円形検出情報記憶部１０２を構成する例えば図５のメモリ５０２や外部記憶装置５０５に記憶される。
【００６２】
図１０（ａ）は、上述の検出円外周座標群を記憶する検出円外周座標テーブルのデータ構成例を示す図である。（Ｘ０，Ｙ０）（Ｘ１，Ｙ１）（Ｘ２，Ｙ２）等で示される検出円外周座標毎に、インデックス０，１，２等が付与されている。
【００６３】
次に、ＣＰＵ５０１は、外周ベクトル算出処理（ステップＳ６０２）と、それに続いて重ね押し判定処理（ステップＳ６０３）を実行して、重ね押し印の判定を行う。ステップＳ６０２は、図１の外周ベクトル座標算出部１０３、外周ベクトル座標比較部１０５、成分算出部１０６、およびスカラー算出部１０８の機能を実現し、その詳細処理は、図７および図８のフローチャートで示される。ステップＳ６０３は、図１の成分変位判定部１１０、スカラー変位判定部１１１、および重ね押し判定部１１２の機能を実現し、その詳細処理は、図９のフローチャートで示される。
【００６４】
図７および図８は、図６のステップＳ６０２の外周ベクトル算出処理の詳細例を示すフローチャートである。
【００６５】
まず、図５のＣＰＵ５０１は、予めユーザによって指示され図５のメモリ５０２等に記憶されている環境定義から、図３の＃１および＃２の検出円２０１を線分３０２によって分割するときの分割数ｎを取得する（図７のステップＳ７０１）。
【００６６】
次に、ＣＰＵ５０１は、図３の＃０〜＃ｎ−１のｎ本の線分３０２を各放射角方向に伸ばしてゆくための検出円分割線分方向を保持する検出円分割線分方向テーブルを、例えば図５のメモリ５０２や外部記憶装置３３に作成する（図７のステップＳ７０２）。
【００６７】
図１０（ｂ）は、検出円分割線分方向テーブルのデータ構成例を示す図である。検出円分割線分方向テーブルの各レコードは、図３で説明したように、各線分３０２を、中心座標３０１から各放射角方向に伸ばすために、中心座標３０１を起点として、ｘ座標値およびｙ座標値に順次加算するための、各放射角方向毎に予め決められているｘ差分およびｙ差分を保持する。このｘ差分とｙ差分の符号を含む値の組合せによって、伸びる線分の方向、すなわち検出円分割線分方向が決定される。また検出円分割線分方向テーブルの各レコードには、図３の＃０から＃ｎ−１までのｎ本の線分３０２に対応して、０からｎ−１までのインデックスが付与される。
【００６８】
検出円分割線分方向テーブルのデータは、印鑑イメージデータ１１４等の入力データには依存しないため、図５の外部記憶装置５０５やメモリ５０２の一部を構成するＲＯＭ（リードオンリーメモリ）などに予め記憶させておいてよい。
【００６９】
次に、ＣＰＵ５０１は、ステップＳ７０３とＳ７１５のループ制御処理（ループ１）によって、上述の分割数ｎ回分だけ、ステップＳ７０４からＳ７１４までの一連の処理を繰り返し実行する。この繰返し処理中の１回の処理は、図３の＃０から＃ｎ−１までの各線分３０２のうちの１本の線分３０２に対する処理に対応する。この処理では、選択された線分３０２が円周方向に順次伸ばされながら、伸ばした先の座標が検出円２０１の外周を構成する検出円外周座標３０２と一致するか否か、すなわち線分３０２が外周と交わるか否かが判定され、この結果、その線分３０２に対応する外周ベクトル座標３０３（図３参照）が検出される。
【００７０】
まず、ＣＰＵ５０１は、現在のループ回数に対応するインデックスを有する検出円分割線分方向（ｘ差分とｙ差分）を、図１０（ｂ）の検出円分割線分方向テーブルから取得する（図７のステップＳ７０４）。
【００７１】
次に、ＣＰＵ５０１は、現在のループ回数に対応する線分３０２を伸ばす起点となる現在の探索座標を、検出円２０１の中心座標３０１（図３参照）に設定する（図７のステップＳ７０５）。
【００７２】
次に、ＣＰＵ５０１は、ステップＳ７０６とＳ７１４のループ制御処理（ループ２）によって、線分３０２を伸ばす先の上限である座標探索上限回数分だけ、ステップＳ７０７からＳ７１３までの一連の処理を繰り返し実行する。
【００７３】
すなわちまず、ＣＰＵ５０１は、探索座標のｘ座標とｙ座標にそれぞれ、ステップＳ７０４で取得した検出円分割線分方向に対応するｘ差分とｙ差分を加算する（図７のステップＳ７０７）。
【００７４】
ＣＰＵ５０１は、図１０（ａ）の検出円外周座標テーブルから、検出円２０１の外周を構成する検出円外周座標を１つ取得する（図７のステップＳ７０８）。最初は、インデックス０の検出円外周座標が取得される。
【００７５】
そして、ＣＰＵ５０１は、ステップＳ７０９とＳ７１３のループ制御処理（ループ３）によって、検出円外周座標テーブルに登録されている数に対応する回数分だけ、ステップＳ７１０からＳ７１２までの一連の処理を繰り返し実行する。
【００７６】
すなわち、ＣＰＵ５０１は、ステップＳ７０７で更新された（線分３０２が伸ばされた）探索座標が、現在取得されている検出円外周座標と一致するか否かを判定する（図７のステップＳ７１０）。
【００７７】
ＣＰＵ５０１は、探索座標と検出円外周座標が一致せずステップＳ７１０の判定がＮＯならば、図１０（ａ）の検出円外周座標テーブルから、次のインデックスの検出円外周座標を取得する（図７のステップＳ７１２）。
【００７８】
その後、ＣＰＵ５０１は、ステップＳ７１３からＳ７０９のループ制御に戻った後に再びステップＳ７１０を実行し、探索座標が次の検出円外周座標に一致するか否かを判定する。
【００７９】
伸ばされた線分３０２がまだ検出円２０１の外周に到達しておらず、検出円外周座標テーブル中の全ての検出円外周座標に対してステップＳ７１０の判定がＮＯとなり、ステップＳ７１３で繰返し処理が終了すると、ＣＰＵ５０１は、ステップＳ７１４からＳ７０６のループ制御に戻った後に再びステップＳ７０７を実行し、探索座標を更新して線分３０２を伸ばす。
【００８０】
伸ばされた線分３０２が検出円２０１の外周に到達し、検出円外周座標テーブル中のいずれかの検出円外周座標に対してステップＳ７１０の判定がＹＥＳとなると、ＣＰＵ５０１は、その探索座標を外周ベクトル座標３０３（図３参照）として、例えば図５のメモリ５０２や外部記憶装置５０５に記憶される外周ベクトル座標テーブルに追加する（図７のステップＳ７１１）。このテーブルは、図１の外周ベクトル座標記憶部１０４に対応する。
【００８１】
図１０（ｃ）は、外周ベクトル座標テーブルのデータ構成例を示す図である。ステップＳ７０３とＳ７１５で制御されているループ１における現在の線分３０２に対応するインデックスを有するレコードに、探索座標＝外周ベクトル座標３０３が登録される。
【００８２】
その後、ＣＰＵ５０１は、現在の線分３０２に対応する外周ベクトル座標３０３が算出できたので、ループ１を制御するステップＳ７１５からＳ７０３に移り、次の線分３０２に対する外周ベクトル座標３０３の算出処理を実行する。
【００８３】
上述した図７のステップＳ７０１からＳ７１５までの一連の処理は、図１の外周ベクトル座標算出部１０３の機能を実現する。
【００８４】
以上のようにして、＃０から＃ｎ−１のｎ本の線分３０２に対応する外周ベクトル座標３０３の算出処理が終了すると、ＣＰＵ５０１は、図７のステップＳ７１５から図８のステップＳ８０１に制御を移す。
【００８５】
ＣＰＵ５０１は、ステップＳ８０１とＳ８０７のループ制御処理（ループ４）によって、上述のようにして算出された外周ベクトル座標３０３の数に対応する回数分だけ、ステップＳ８０２からＳ８０６までの一連の処理を実行する。この処理では、各外周ベクトル座標３０３毎に、その座標を起点とする外周ベクトル３０４（図３参照）が算出される。
【００８６】
すなわちまず、ＣＰＵ５０１は、ループ４の回数が進む毎に、図１０（ｃ）の外周ベクトル座標テーブル上でインデックスを＋１ずつしながら、隣接する２つの外周ベクトル座標３０３を抽出する（図８のステップＳ８０２）。例えば、ループ４における現在の外周ベクトル座標３０３のインデックスがｉであるとすれば、外周ベクトル座標テーブルから、インデックスｉの外周ベクトル座標３０３とインデックスｉ＋１の外周ベクトル座標３０３が抽出される。なお、インデックスが最後の＃ｎ−１の線分３０２に対応する外周ベクトル座標３０３に到達したら、図３に示されるように一週回ったことになるので、外周ベクトル座標テーブルから、インデックスｎ−１の外周ベクトル座標３０３とインデックス０の外周ベクトル座標３０３が抽出される。
【００８７】
ＣＰＵ５０１は、ステップＳ８０２で抽出した外周ベクトル座標３０３の組において、以下のようにして対応する外周ベクトル３０４（図３参照）のベクトル成分を計算する（図８のステップＳ８０３）。まず、ＣＰＵ５０１は、終点側の外周ベクトル座標３０３のｘ座標値から起点側の外周ベクトル座標３０３のｘ座標値を減算することにより、外周ベクトル３０４のｘ座標成分を算出する。また、ＣＰＵ５０１は、終点側の外周ベクトル座標３０３のｙ座標値から起点側の外周ベクトル座標３０３のｙ座標値を減算することにより、外周ベクトル３０４のｙ座標成分を算出する。
【００８８】
ステップＳ８０３は、図１の成分算出部１０６の機能を実現する。
ＣＰＵ５０１は、ステップＳ８０３で算出した外周ベクトル３０４のベクトル成分を、例えば図５のメモリ５０２や外部記憶装置５０５に記憶される外周ベクトルテーブルに保持する（図８のステップＳ８０４）。
ステップＳ８０４は、図１の成分記憶部１０７の機能を実現する。
【００８９】
さらに、ＣＰＵ５０１は、ステップＳ８０３で計算された外周ベクトル３０４のｘ座標成分の２乗と同じくｙ座標成分の２乗を加算した結果の平方根として、外周ベクトル３０４のスカラーを算出する（図８のステップＳ８０５）。
ステップＳ８０５は、図１のスカラー算出部１０８の機能を実現する。
【００９０】
ＣＰＵ５０１は、ステップＳ８０５で算出した外周ベクトル３０４のスカラーを、外周ベクトルテーブルに保持する（図８のステップＳ８０６）。
ステップＳ８０６は、図１のスカラー記憶部１０９の機能を実現する。
【００９１】
図１０（ｄ）は、上記外周ベクトルテーブルのデータ構成例を示す図である。各インデックスに対応して、外周ベクトル３０４（図３参照）のｘ成分（ｘ座標成分）、ｙ成分（ｙ座標成分）、およびスカラーが記憶される。
【００９２】
図９は、図６のステップＳ６０３の重ね押し判定処理の詳細例を示すフローチャートである。
【００９３】
図５のＣＰＵ５０１はまず、ベクトル成分判定基準と、スカラー判定基準を算出する（図９のステップＳ９０１、Ｓ９０２）。ベクトル成分判定基準およびスカラー判定基準はそれぞれ、外周ベクトル３０４の成分の変位およびスカラーの変位が、どれだけ大きければ印鑑が重ね押しされたかを判定するための、所定の成分閾値および所定のスカラー閾値である。これらの基準は、例えばメモリ５０２の一部を構成するＲＯＭや外部記憶装置５０５などから読み込まれてもよい。
【００９４】
次に、ＣＰＵ５０１は、例えば図５のメモリ５０２に記憶する現在入力している印鑑イメージデータ１１４に対する重ね押し判定変数の値を０に設定する（図９のステップＳ９０３）。
【００９５】
その後、ＣＰＵ５０１は、ステップＳ９０４とＳ９１０のループ制御処理によって、図８のループ４によって作成された外周ベクトルテーブル（図１０（ｄ））の要素数（＝外周ベクトル３０４の数）に対応する回数分だけ、ステップＳ９０５からＳ９０９までの一連の処理を実行する。
【００９６】
すなわちまず、ＣＰＵ５０１は、ループの回数が進む毎に、図１０（ｄ）の外周ベクトルテーブル上でインデックスを＋１ずつしながら、隣接する２つの外周ベクトル３０４の要素を抽出する（図９のステップＳ９０５）。例えば、ループにおける現在の外周ベクトル３０４のインデックスがｉであるとすれば、外周ベクトルテーブルから、インデックスｉの外周ベクトル３０４の要素とインデックスｉ＋１の外周ベクトル３０４の要素が抽出される。なお、インデックスが最後の＃ｎ−１の線分３０２に対応する外周ベクトル３０４に到達したら、図３に示されるように一週回ったことになるので、外周ベクトルテーブルから、インデックスｎ−１の外周ベクトル３０４の要素とインデックス０の外周ベクトル３０４の要素が抽出される。
【００９７】
次に、ＣＰＵ５０１は、２つの外周ベクトル３０４の要素間で、ｘ成分またはｙ成分の変位がステップＳ９０１で算出した基準を超過しているか否かを判定する（図９のステップＳ９０６）。
ステップＳ９０６は、図１の成分変位判定部１１０の機能を実現する。
【００９８】
ステップＳ９０６の判定がＹＥＳならば、ＣＰＵ５０１はさらに、２つの外周ベクトル３０４の要素間で、スカラーの変位がステップＳ９０２で算出した基準を超過しているか否かを判定する（図９のステップＳ９０７）。
ステップＳ９０７は、図１のスカラー変位判定部１１１の機能を実現する。
【００９９】
ステップＳ９０７の判定もＹＥＳならば、ＣＰＵ５０１は、重ね押し判定変数に１を加算する（図９のステップＳ９０８）。
【０１００】
ＣＰＵ５０１は、ステップＳ９０６またはＳ９０７の判定がＮＯの場合、あるいはステップＳ９０８の処理の後に、重ね押し判定変数の値が２になっているか否かを判定する（図９のステップＳ９０９）。
【０１０１】
重ね押し判定変数の値が２になっていない、すなわち重ね押しがなされたとする判定がまだ２回に達しておらずステップＳ９０９の判定がＮＯならば、ステップＳ９１０からＳ９０４のループ制御処理に戻り、外周ベクトルテーブル上のインデックスが更新されて、次の隣接しあう外周ベクトル３０４の組に対して、重ね押しの判定が実行される。
【０１０２】
重ね押し判定変数の値が２になった、すなわち重ね押しがなされたとする判定が２回に達してステップＳ９０９の判定がＹＥＳになると、ＣＰＵ５０１は、入力した印鑑イメージデータ１１４に重ね押し印があると判定し、重ね押し印の存在を示す結果通知１１５（図１）を出力する（ステップＳ９１２）。
【０１０３】
重ね押し判定変数の値が２にならないままステップＳ９０４とＳ９１０で制御される繰返し処理が終了すると、ＣＰＵ５０１は、入力した印鑑イメージデータ１１４に重ね押し印はなく正常印があると判定し、正常印の存在を示す結果通知１１５（図１）を出力する（ステップＳ９１１）。
【０１０４】
ステップＳ９０８からＳ９１２の一連の処理は、図１の重ね押し判定部１１２の機能を実現する。
【０１０５】
以上の実施形態は、本発明を図１の重ね押し印検出装置１００として実施した場合について説明したが、本発明は例えば金融システムの印鑑照合システムに組み込まれて実施されてもよい。
【符号の説明】
【０１０６】
１０１  円形検出部
１０２  円形検出情報記憶部
１０３  外周ベクトル座標算出部
１０４  外周ベクトル座標記憶部
１０５  外周ベクトル座標比較部
１０６  成分算出部
１０７  成分記憶部
１０８  スカラー算出部
１０９  スカラー記憶部
１１０  成分変位判定部
１１１  スカラー変位判定部
１１２  重ね押し判定部
１１３  管理部
１１４  印鑑イメージデータ
１１５  結果通知
２０１  検出円
２０２  外周ベクトル
２０３  交点
３０１  中心座標
３０２  線分
３０３  外周ベクトル座標
３０４  外周ベクトル
５０１  ＣＰＵ
５０２  メモリ
５０３  入力装置
５０４  出力装置
５０５  外部記憶装置
５０６  可搬記録媒体駆動装置
５０７  通信インタフェース
５０８  バス
５０９  可搬記録媒体
【図１】
0005996496.tif 000002
【図２】
0005996496.tif 000003
【図３】
0005996496.tif 000004
【図５】
0005996496.tif 000005
【図６】
0005996496.tif 000006
【図７】
0005996496.tif 000007
【図８】
0005996496.tif 000008
【図９】
0005996496.tif 000009
【図１０】
0005996496.tif 000010
【図１１】
0005996496.tif 000011
【図４】
0005996496.tif 000012