認証装置、認証方法、コンピュータを認証装置として機能させるためのプログラムおよび記録媒体
【課題】構成が容易で手書き入力を受け付ける認証装置を提供する。
【解決手段】認証装置として機能する情報処理端末100は、ポインティングデバイスから入力される点あるいは線の座標値を処理し、当該処理によって生成したデータを座標データとして出力する座標入力部301と、当該座標データに基づいてポインティングデバイスにおいて一筆で書かれた線を抽出するストローク抽出部302と、入力されたストロークデータごとにストロークの形状を判定するストローク形状判定部303と、複数のストロークデータが同時に入力されたものであるか、あるいは逐次的に入力されたものであるかを判定するストローク入力判定部304と、文字、図形その他の入力を行なった人物が、情報処理端末100の本人であるかを判定する照合部305とを備える。
【解決手段】認証装置として機能する情報処理端末100は、ポインティングデバイスから入力される点あるいは線の座標値を処理し、当該処理によって生成したデータを座標データとして出力する座標入力部301と、当該座標データに基づいてポインティングデバイスにおいて一筆で書かれた線を抽出するストローク抽出部302と、入力されたストロークデータごとにストロークの形状を判定するストローク形状判定部303と、複数のストロークデータが同時に入力されたものであるか、あるいは逐次的に入力されたものであるかを判定するストローク入力判定部304と、文字、図形その他の入力を行なった人物が、情報処理端末100の本人であるかを判定する照合部305とを備える。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は認証技術に関し、特に、手書き入力された線図により認証を行なう技術に関する。
【背景技術】
【0002】
個人を認証する方法として、4桁の暗証番号を用いて認証する方法がある。一方、最近では、4桁の暗証番号の代わりに、バイオメトリクスによる個人認証装置などが開発されている。このバイオメトリクスによる個人認証の一つとして、手書き入力された署名による認証方法がある。また、手書き入力された署名をコンピュータなどを使い認証する手書き認証装置が開発されている。
【0003】
文字による認証の場合、簡単な文字では特徴が少ないため、真似されやすく、本人でなくても認識されることがある。逆に、複雑な文字が入力されると、特徴となる部分が多く、文字の入力者が本人がであっても、他人と誤認識されることがある。そこで、一般的な手書き文字を用いた個人認証装置では、文字の情報以外に、スピード、筆圧、加速などを総合的に判断し、個人認証を実現している。
【0004】
たとえば、特開2002−140709号公報(特許文献1)は、ペン入力による個人認証方法に関して、ペン入力データと筆圧データを用いて個人認証を行なう技術を開示している。
【特許文献1】特開2002−140709号公報
【発明の開示】
【発明が解決しようとする課題】
【0005】
しかしながら、特開2002−140709号公報に開示された技術によると、筆圧データを取得するために、圧力センサを必要とする。そのため、認証装置の構成が複雑になる恐れがあった。また、入力にペンを必要とすると、ペン操作に不慣れな人にとっては、操作性が低下する可能性もある。
【0006】
本発明は、上述のような問題点を解決するためになされたものであって、その目的は、構成を複雑にすることなく手書き入力に基づく認証処理を行なうことができる認証装置を提供することである。他の目的は、指入力に基づく認証処理を行なうことができる認証装置を提供することである。
【0007】
他の目的は、手書き入力に基づいて認証を行なうための認証方法を提供することである。他の目的は、指入力に基づく認証を行なうための認証方法を提供することである。
【0008】
他の目的は、手書き入力に基づいて認証を行なうための認証装置としてコンピュータを機能させるためのプログラムを提供することである。他の目的は、指入力に基づく認証を行なうための認証装置としてコンピュータを機能させるためのプログラムを提供することである。
【0009】
他の目的は、手書き入力に基づいて認証を行なうための認証装置としてコンピュータを機能させるためのプログラムを格納した記録媒体を提供することである。他の目的は、指入力に基づく認証を行なうための認証装置としてコンピュータを機能させるためのプログラムを格納した記録媒体を提供することである。
【課題を解決するための手段】
【0010】
上記の課題を解決するために、この発明のある局面に従うと、手書き入力されたパスワードの認証を行う認証装置が提供される。この認証装置は、予め入力されたテンプレートを格納するテンプレート記憶部と、1つ以上の点入力を受け付けるように構成された入力装置と、入力装置によって入力が受け付けられた点の座標値を含む座標データを取得するように構成された座標データ取得部と、座標データ取得部によって取得された複数の座標データに基づいて、入力装置に対する入力の始点から終点までを示すストロークの座標値をストロークデータとして算出するように構成されたストローク抽出部と、ストローク抽出部によって算出されたストロークデータに基づいて、ストロークの形状を判定するように構成されたストローク形状判定部と、ストローク抽出部によって算出されたストロークデータに基づいて、入力装置に対する点入力が、同時入力または逐次入力のいずれであるかを判定するように構成されたストローク入力判定部と、ストローク形状判定部による判定結果と、ストローク入力判定部による判定結果とに基づいて、入力装置を介して入力されたストロークと、テンプレートとが、一致するか否かを判定するように構成された照合部とを備える。
【0011】
好ましくは、認証装置は、入力装置に対する入力が行なわれたタイミングを取得するように構成された時計部をさらに備える。座標データ取得部は、入力装置から座標値を取得した時刻と、入力装置によって指示された点の座標値とを、座標データとして取得する。
【0012】
好ましくは、認証装置は、座標データ取得部によって取得された各座標データを格納するように構成された座標データ記憶部と、1回の認証に必要な座標データが座標データ記憶手段に格納されたことを検知するように構成された検知部とをさらに備える。座標データ取得部は、1回の認証に必要な座標データが座標データ記憶部に格納された後に、座標データを取得する。
【0013】
好ましくは、座標データ取得部は、予め定められた間隔で入力装置に与えられた入力に対応する座標値を、予め定められた間隔の時間内に取得する。
【0014】
好ましくは、認証装置は、ストローク抽出部による処理が行なわれたタイミングを取得するように構成された時計部をさらに備える。ストローク抽出部は、ストロークの検出に応答して、または、ストロークの入力の終了に応答して、計時部によって取得されたタイミングをストロークデータに含める。
【0015】
好ましくは、認証装置は、ストロークデータに含まれる座標データから、x座標値の最大値およびy座標値の最大値と、x座標値の最小値およびy座標値の最小値とを算出するように構成された座標値算出部をさらに備える。ストローク形状判定部は、x座標値の最大値およびy座標値の最大値と、x座標値の最小値およびy座標値の最小値とに基づいて、ストロークの形状を判断する。
【0016】
好ましくは、ストローク抽出部は、ストロークの開始位置の座標値と、ストロークの終了位置の座標値とを含むストロークデータを算出する。ストローク形状判定部は、開始位置の座標値と、終了位置の座標値とに基づいて、ストロークの形状を判断する。
【0017】
好ましくは、認証装置は、ストロークデータに含まれる座標データから、x座標値の最大値およびy座標値の最大値と、x座標値の最小値およびy座標値の最小値とを求めるように構成された座標算出部をさらに備える。ストローク形状判定部は、x座標値の最大値およびy座標値の最大値とx座標値の最小値およびy座標値の最小値に基づいて、入力装置を介して入力されたストロークの形状が点であるか否かを判断し、ストローク形状判定
部がストロークの形状を点でないと判定すると、照合部は、ストロークを用いた認証処理を実行する。ストローク形状判定部がストロークの形状を点であると判定すると、照合部は、形状を点であると判定したストロークを認証処理に使用しない。
【0018】
好ましくは、ストローク入力判定部は、複数のストロークデータのストローク開始時刻を比較し、各ストローク開始時刻の差が予め定められた一定値以下の場合に、比較した複数のストロークデータに共通するストローク開始時刻を設定する。
【0019】
好ましくは、ストローク入力判定部は、複数のストロークデータのストローク終了時刻を比較し、各ストローク終了時刻の差が予め定められた一定値以下の場合に、比較した複数のストロークデータに共通するストローク終了時刻を設定する。
【0020】
好ましくは、ストローク入力判定部は、複数のストロークデータのうちのストロークが入力されている間に、他のストロークが入力されたか否かを判定する。
【0021】
好ましくは、入力装置は、複数の撮像素子が配置されたタッチパネルを含む。
この発明の他の局面に従うと、手書き入力されたパスワードの認証をプロセッサが行う認証方法が提供される。この方法は、予め入力されたテンプレートを読み出すステップと、1つ以上の点入力を受け付けるステップと、入力が受け付けられた点の座標値を含む座標データを取得するステップと、取得された複数の座標データに基づいて、入力の始点から終点までを示すストロークの座標値をストロークデータとして算出するステップと、算出されたストロークデータに基づいて、ストロークの形状を判定するステップと、ストロークデータに基づいて、点入力が、同時入力または逐次入力のいずれであるかを判定するステップと、ストローク形状についての判定結果と、点入力についての判定結果とに基づいて、入力されたストロークと、テンプレートとが、一致するか否かを判定するステップとを含む。
【0022】
この発明の他の局面に従うと、コンピュータを認証装置として機能させるためのプログラムが提供される。このプログラムはコンピュータに、予め入力されたテンプレートを読み出すステップと、1つ以上の点入力を受け付けるステップと、入力が受け付けられた点の座標値を含む座標データを取得するステップと、取得された複数の座標データに基づいて、入力の始点から終点までを示すストロークの座標値をストロークデータとして算出するステップと、算出されたストロークデータに基づいて、ストロークの形状を判定するステップと、ストロークデータに基づいて、点入力が、同時入力または逐次入力のいずれであるかを判定するステップと、ストローク形状についての判定結果と、点入力についての判定結果とに基づいて、入力されたストロークと、テンプレートとが、一致するか否かを判定するステップとを実行させる。
【0023】
この発明のさらに他の局面に従うと、上記のプログラムを格納したコンピュータ読み取り可能な記録媒体が提供される。
【発明の効果】
【0024】
本発明によると、構成を複雑にすることなく手書き入力に基づく認証処理を行なうことができる。
【発明を実施するための最良の形態】
【0025】
以下、図面を参照しつつ、本発明の実施の形態について説明する。以下の説明では、同一の部品には同一の符号を付してある。それらの名称および機能も同じである。したがって、それらについての詳細な説明は繰り返さない。
【0026】
<第1の実施の形態>
[ハードウェア構成]
図1および図2を参照して、本発明の第1の実施の形態に係る情報処理端末100の構成について説明する。図1は、情報処理端末100の外観を表わす図である。情報処理端末100は、筐体110と、アンテナ120と、スピーカ130と、タッチパネル140と、ボタン150と、マイク160と、LED(Light Emitting Diode)170とを備える。
【0027】
ある局面において、情報処理端末100は、ノートブック型パーソナルコンピュータ、携帯電話、PDA(Personal Digital Assistant)その他の携帯型の情報処理端末、あるいは、ATM(Automated Teller Machine)、クレジットカードの認証装置その他の商業施設に配置される情報処理装置としても実現される。
【0028】
図2は、情報処理端末100のハードウェア構成を表わすブロック図である。情報処理端末100は、図1に示される構成に加えて、表示装置212と、プロセッサ230と、表示ドライバ214と、フラッシュメモリ250と、RAM(Random Access Memory)252と、グラフィックメモリ254と、ROM(Read Only Memory)256と、通信回路260と、信号処理回路270と、バイブレータ280とを備える。タッチパネル140は、複数のCMOS(Complementary Metal-Oxide Semiconductor)撮像素子220を含む。タッチパネル140と表示装置212とは、表示部210を構成する。
【0029】
なお、本実施の形態においては、認証機能はプロセッサ230によって実現されるものとして説明する。しかしながら、他の局面において、認証機能を実現するためのハードワイヤード回路が、通常の処理を実行するプロセッサとは別個に構成されてもよい。
【0030】
タッチパネル140は、情報処理端末100に対する操作入力を受け付ける。タッチパネル140に並べられている各CM0S撮像素子220は、光信号に基づいて光電変換し、変換後の信号をプロセッサ230に送出する。
【0031】
プロセッサ230は、情報処理端末100の動作を制御する。プロセッサ230は、情報処理端末100の認証機能を実現する。より詳しくは、プロセッサ230は、タッチパネル140に与えられた入力操作によって特定される点の座標値を含む座標データを取得する。プロセッサ230は、その座標データに基づいて、タッチパネル140における入力の始点から終点を示すストロークの座標値であるストロークデータを算出する。プロセッサ230は、その算出したストロークデータに基づいて当該ストロークの形状を判定する。プロセッサ230は、その算出したストロークデータに基づいて、タッチパネル140に対する入力が同時入力または逐次入力のいずれであるかを判定する。プロセッサ230は、その判定結果と、ストロークの形状についての判定結果とに基づいて、タッチパネル140に対して入力されたストロークと、フラッシュメモリ250に予め格納されているテンプレートとが一致するか否かを判定する。
【0032】
フラッシュメモリ250は、上述のテンプレートを格納するとともに、情報処理端末100に対して与えられたデータあるいはプロセッサ230によって生成されたデータを不揮発的に保持する。
【0033】
RAM252は、プロセッサ230によって生成されたデータを一時的に保持する。
グラフィックメモリ254は、タッチパネル140の背面に配置されている表示装置212において画像を表示するためのデータを保持する。なお、他の局面において、RAM252とグラフィックメモリ254とが一体として構成されていてもよい。
【0034】
ROM256は、情報処理端末100を作動させるためのファームウェア、認証処理プログラムその他のプログラムと、情報処理端末100に固有の動作を実行させるために設定値として予め入力されたデータとを保持している。
【0035】
表示ドライバ214は、グラフィックメモリ254に格納されているデータに基づいて描画動作を表示装置212に対して実行する。表示装置212は、その動作に従って画像を表示する。この画像は、タッチパネル140を介して情報処理端末100の使用者に視認される。
【0036】
通信回路260は、アンテナ120によって受信されて信号を変換し、変換後の信号をプロセッサ230に送出する。また他の局面において、通信回路260は、プロセッサ230から送られた信号を送信用の信号に変換し、変換後の信号をアンテナ120に送出する。
【0037】
信号処理回路270は、マイク160から送られる電気信号を変換し変換後の信号をプロセッサ230に送出する。また、情報処理端末100が音声を出力する場合には、信号処理回路270は、プロセッサ230から送られた信号を音声出力用の信号に変換し、その変化後の信号をスピーカ130に送出する。スピーカ130は、その信号に基づき音声を出力する。
【0038】
バイブレータ280は、プロセッサ230から送られる信号に基づいて予め規定された振動パターンで発振する。
【0039】
[機能ブロック]
図3は、情報処理端末100によって実現される機能の構成を表わすブロック図である。情報処理端末100は、座標入力部301と、ストローク抽出部302と、ストローク形状判定部303と、ストローク入力判定部304と、照合部305とを備える。
【0040】
座標入力部301は、多点入力可能なポインティングデバイスを含む。座標入力部301は、ポインティングデバイスから入力される点あるいは線の座標値を処理し、当該処理によって生成したデータを座標データとしてストローク抽出部302に転送する。
【0041】
ストローク抽出部302は、座標入力部301からの座標データに基づいて、ポインティングデバイスにおいて一筆で書かれた線を抽出する。このような線には、直線、曲線のいずれもが含まれ得る。以降、この一筆の線をストロークと呼ぶ。
【0042】
ストローク抽出部302は、当該ストローク毎に抽出したデータをグループ化する。以降、このグループ化されたデータをストロークデータという。ストローク抽出部302は、ストローク形状判定部303やストローク入力判定部304にこのストロークデータを送出する。
【0043】
ストローク形状判定部303は、入力されたストロークデータごとに、ストロークの形状を判定し、その判定の結果を照合部305に送出する。当該判定の結果は、ストロークの形状がどのような形状をしているかを示すデータを含む。
【0044】
ストローク入力判定部304は、複数のストロークデータが座標入力部301に入力された場合において、当該複数のストロークデータが同時に入力されたものであるか、あるいは逐次的に入力されたものであるかを判定する。なお、本実施の形態における「同時」とは、完全に同一の時刻に限るものではなく、多少の先後(時間の幅)を含み得る。
【0045】
照合部305は、情報処理端末100に予め登録されている本人のテンプレート306と、ストローク形状判定部303による判定結果およびストローク入力判定部304による判定結果とを比較し、ポインティングデバイスに対して文字、図形その他の入力を行なった人物が、情報処理端末100の本人であるかを判定し、その判定の結果を出力する。
【0046】
[多点入力可能なポインティングデバイス]
本発明は、多点入力可能なポインティングデバイスを利用していることが特徴である。そこで、図4を参照して、本発明の実施の形態に係る多点入力可能なポインティングデバイスを用いた入力について説明する。図4は、ポインティングデバイスに複数の入力が行なわれた状態を表わす図である。
【0047】
一例として、水平で平行な2本の線をポインティングデバイス上に書く場合を説明する。単なる水平で平行な2本線を描く場合、図4(A)に示されるように平行線410,412が入力される。この場合、従来の技術にあるような、1点の入力デバイスが想定されたペン入力の文字認証では、文字入力時のストロークの違いを考慮して、書き方は図4(B)〜図4(E)の4通り考えられる。
【0048】
図4(B)は、直線420,422を左から右に入力した場合を表わす図である。図4(C)は、直線430,432を右から左に入力した場合を表わす図である。図4(D)は、直線440を左から右に、直線422を右から左に入力した場合を表わす図である。図4(E)は、直線450を右から左に、直線452を左から右に入力した場合を表わす図である。
【0049】
この時、上下の組み合わせとして、上側の線を先に、下側の線を後に書く場合と、下側の線を先に書いた後、上側の線を書く場合が考えられるため、合計8通りの書き方がある。本実施の形態に係る多点入力可能なポインティングデバイスを使用すれば、この従来の1点入力方式に加えて、図4(B)から図4(E)の2本線を同時に書くという入力方法も考えられる。したがって、合計12通りの書き方が考えられる。
【0050】
このように、多点入力可能なポインティングデバイスを用いることにより、従来の1点入力のポインティングデバイスに比べて、簡単な図形でも数多くの入力方法が出来るという効果がある。
【0051】
多点入力可能なポインティングデバイスは、一例として、CCD(Chare Coupled Device)やCMOSイメージャーのように、フォトダイオードをタッチパネルに並べることにより構成される。このような構成を有するポインティングデバイスは、そのフォトダイオードにチャージされる電荷の変化から、ポインティングされている座標を求めることができる。また、フォトダイオードの密度を高めれば、パネル上の影データを取得でき、画像処理によって、より正確にポインティング座標を取得することができる。これらの方法を使うと、従来の抵抗膜方式のタッチパネルではできなかった多点入力が可能となる。また、他の局面において、パネルの下(背面)からカメラで画像を撮影して、画像処理を行なうことによっても多点入力を検出することができる。
【0052】
[座標入力部]
座標入力部301は、多点入力可能なポインティングデバイスにおいて入力されている(「ポインティングされている」ともいう。)点の座標データを一定時間ごとに取得する。ここでポインティングの操作は、一点を押下する操作と、押下した状態でなぞる操作(線入力を行なう操作)とのいずれも含み得る。取得した座標データは、x座標値とy座標値に加えて、ポインティングデバイスにおいてポインティングされた時刻(押下によって入力された時刻)の情報(以下「ポインティング時刻」という)も含む。
【0053】
たとえば、タッチパッドのような一点入力のポインティングデバイスでは、プロセッサが取得した座標データを取得した順に従って並べることにより、ポインティングされた順序を知ることができる。しかし、多点入力可能なポインティングデバイスでは、複数の入力操作が行なわれたタイミングに関し、プロセッサは、各入力操作が同時に行なわれたのか、あるいは、1つの入力操作の後に次の入力操作が行なわれたのかを判定するために、時刻の情報が必要である。ここでいう時刻の情報は、絶対的な時刻のみに限られるものではない。すなわち、当該時刻の情報は、ポインティングされた各点が同時に入力されたのか、あるいは逐次入力されたのかを判定することができる情報であればよく、たとえば、インデックスのようなカウンタ値であってもよい。あるいは、他の局面において、座標入力部を構成するイメージセンサによって取得されるフレームの切れ目を示す記号が、逐次入力が行なわれたことを示す情報として使用されてもよい。
【0054】
また、さらに他の局面において、座標入力部301は、座標データに時刻情報を含めなくてもよい。この場合、座標入力部301は、1フレーム毎に処理を実行して処理結果を出力し、ストローク抽出部302のような後段部が当該処理結果と時刻データとを関連付けてもよい。
【0055】
図5は、時刻t1に(x1,y1)がポインティングされ、時刻t2に(x2a,y2a)と(x2b,y2b)が入力され、時刻t3に(x3,y3)が入力された例を表わす図である。この時、座標データに時刻情報を含めると、時刻t1から時刻t3における各座標データは、(x1,y1,t1)、(x2a,y2a,t2)、(x2b,y2b,t2)、(x3,y3,t3)となる。
【0056】
また、図5に示される例に対して、フレームの切れ目を示す記号を(−1,−1)という値に設定した場合、各座標データは、(x1,y1)、(−1,−1)、(x2a,y2a,t2)、(x2b,y2b,t2)、(−1,−1)、(x3,y3,t3)となる。
【0057】
座標入力部301は、認証するべきストロークの入力が終わるまで、このようにして得られた一連の座標データを全て保持し、各座標データをストローク抽出部302に送出する。
【0058】
このような一連の座標データは、ポインティングされた時刻順に並べておくことが好ましい。このようにすると、ストローク抽出部302が時刻順に当該一連の座標データを並べ替える必要がないため、ストローク抽出の処理に要する時間を短くすることができる。
【0059】
[ストローク抽出部]
次にストローク抽出部302について説明する。ストローク抽出部302は、座標入力部301によって取得された座標データをストロークごとにグループ化する。したがって、ストロークデータは、1個以上の座標データを含むことになる。すなわち、ストロークデータは、1ストロークを表わす。また、ストロークデータは、座標データに加えて、ストローク開始時刻(=ストロークの入力が開始された時刻)、ストローク終了時刻(=ストロークの入力が終了した時刻)、およびストローク終端座標値も含み得る。
【0060】
ストローク抽出部302は、これらのデータを含むストロークデータを生成し、ストローク形状判定部303およびストローク入力判定部304に当該ストロークデータを送出する。
【0061】
なお、ある局面において、ストロークデータは、ストロークの形状を示すストロークタ
イプという情報を含む場合もある。ストロークタイプは、後述するストローク形状判定部303において設定されて、ストロークデータに追加される。
【0062】
[ストロークデータの詳細]
ストロークデータの詳細について説明する。ある一実施例として、ストロークデータは、(座標データ配列、ストローク開始時刻、ストローク終了時刻)を含む。なお、他の局面において、ストローク形状判定部303がストロークの形状を判定するために、ストローク抽出部302は、ストローク終端座標値をストロークデータに含める場合もある。
【0063】
この一実施例において、座標データ配列は、1個以上の座標データを含む。なお、本実施の形態においては、1つの点もストロークとして取り扱う。より詳しくは、座標データは、ポインティングデバイスに対して入力された点の座標値(x,y)を含む。
【0064】
本実施の形態に係るポインティングデバイスは、一定時間毎に座標値を読み取るため、あるストロークデータには、一定時間毎の座標データが含まれる。なお、ストロークデータの座標データ配列は、多くの場合、(x1,y1)、(x2,y2)、(x3,y3)・・・(xN,yN)のように、複数個(N個)の座標値が含まれる。
【0065】
この時、座標を取得した時刻を座標値とともに座標データ配列に含めてもよい。その時の座標データ配列は、(x1,y1,t1)、(x2,y2,t2)、(x3,y3,t3)・・・(xN,yN,tN)となる。
【0066】
また、さらに他の局面において、ストロークデータには、座標データ配列の要素数Nが含まれてもよい。ストローク抽出部302が座標値を取得した時刻と、要素数Nとがストロークデータに含まれる場合、上記の例では、ストローク開始時刻=t1、ストローク終了時刻=tNとなる。なお、この場合、ストローク開始時刻とストローク終了時刻は、いわゆる当業者にとって自明であるが、冗長なデータともいえるため、ストロークデータとして特別に持つ必要はないが、持っていてもよい。
【0067】
また、ストローク開始時刻およびストローク終了時刻は、本実施の形態に係る情報処理端末100が起動し始めてからカウントされる通し番号によって表わされる。たとえば、情報処理端末100がスタンバイ状態である時は、プロセッサ230は、カウンタを「0」にリセットし、情報処理端末100の使用者が操作を始めた時(すなわち、情報処理端末100に対する操作が検知された時)から、情報処理端末100はカウントを開始し、そのカウンタを時刻として使用する。この場合、たとえば、カウンタが32ビットの値で表わされるとき、プロセッサ230は、1/30秒ごとに座標値をサンプリングしても、十分な時刻をカウントすることができる。
【0068】
なお、他の局面において、情報処理端末100は、ストローク開始時刻およびストローク終了時刻として、"年月日時分秒"を用いてもよい。この場合、情報処理端末100は、クロックを有し、プロセッサ230は当該クロックの信号に基づいてストローク開始時刻およびストローク終了時刻を取得する。
【0069】
後述するストローク形状判定部303がストロークを曲線であると判定する場合には、ストロークの座標値の推移が必要となり、したがって、ポインティングデバイスに対して行なわれた入力(線入力)の全座標データが必要となる。なお、ストローク形状判定部303が、ストローク開始座標値(ストロークの入力が開始された時の座標値)とストローク終了座標(ストロークの入力が終了した時の座標値)だけで、ストロークの形状を判定する場合には、途中の座標データは不要である。このようにストローク形状判定部303における処理の内容その他ストローク抽出部302の後に続く処理によって、ストローク
データとして必要な情報が変わることになる。
【0070】
[ストローク抽出の処理]
図6を参照して、本発明の実施の形態に係る情報処理端末100の制御構造について説明する。図6は、ストロークを抽出するためにプロセッサ230が実行する一連の処理の一部を表わすフローチャートである。
【0071】
ステップS610にて、プロセッサ230は、ストローク抽出部302として機能するために、初期化処理として、ストローク抽出時の途中結果を格納するためのストロークスタックの内容をクリアする。プロセッサ230は、座標データの入力を受け付けて、当該座標データをストロークスタックに格納する。RAM252あるいはプロセッサ内のレジスタが、ストロークスタックとして使用される。プロセッサ230は、抽出するストロークデータのある全フレームについて、各フレーム毎に図6の処理を繰り返す。本実施の形態において、ある時刻tの同一フレーム内で検出された座標数をNt個とし、また、フレームデータの時刻順に処理を実行するものとする。したがって、プロセッサ230は、当該処理をNt回実行することになる。
【0072】
ステップS620にて、プロセッサ230は、ストロークスタックに格納されている座標データに基づいて、検出座標(座標データに含まれる座標値)から最も近いストロークデータを検出する。
【0073】
ステップS630にて、プロセッサ230は、検出座標とストロークデータの終端座標との距離が、予め設定された閾値以下であるか否かを判定する。当該距離が閾値以下である場合には(ステップS630にてYES)、プロセッサ230は、検出座標が、当該フレームの前のフレームから続くストロークにおいて連続する点の座標であると判断し、処理をステップS640に切り換える。一方、当該距離が当該閾値より大きい場合には(ステップS630にてNO)、プロセッサ230は、検出座標がポインティングデバイスに新たに与えられた入力に対応するストロークであると判断し、処理をステップS650に切り換える。
【0074】
ステップS640にて、プロセッサ230は、検出座標をストロークデータの座標データの最後に追加して、ストローク終端座標を本検出座標の値に更新する。
【0075】
ステップS650にて、プロセッサ230は、新たなストロークデータとして、検出座標を座標データに追加して、ストローク終端座標を本検出座標の値に更新して、ストローク開始時刻を検出座標のポインティング時刻または現時刻とする。
【0076】
ステップS660にて、プロセッサ230は、ループ処理を実行した回数を示すカウンタ値を参照して、同一フレーム内の検出座標数だけ上記の処理を実行したか否かを判定する。上記の処理が検出座標数だけ実行されていない場合、プロセッサ230は、ステップS620以降の処理を再度実行する。したがって、プロセッサ230は、上記の処理を同一フレーム内の検出座標数Nt回繰り返すことになる。
【0077】
ステップS670にて、プロセッサ230は、ストロークの入力の終了を検知する。より詳しくは、プロセッサ230は、検出座標による更新が行われなかったストロークデータについて、当該フレームの1時点前の(直前の)フレームでストロークの入力が終了したと判定して、当該ストロークデータをストロークスタックから削除する。したがって、このストロークデータは次のフレームの処理では使用されなくなる。また、プロセッサ230は、検出座標による更新が行なわれたストロークデータを次の処理(ストローク形状判定部303あるいはストローク入力判定部304)に出力する。
【0078】
このようにして、本発明の実施の形態に係るプロセッサ230は、認証用データを構成する全てのフレームについて、入力された座標データの処理をフレーム単位で実行する。
【0079】
[ストロークデータの抽出]
図7を参照して、ストロークデータの抽出についてさらに説明する。図7は、一定間隔にポインティングされた点の座標値を取得する際の例を表わす図である。より詳しくは、図7は、時刻t1から時刻t10までの間に10回の座標取得が行われた例を表わす。この例においては、10フレームが含まれている。
【0080】
図7に示されるように、時刻t1、時刻t2の時点では、ポインティングデバイスに対してポインティング(入力操作)が行なわれていない。時刻t3において、ポインティングデバイスの操作領域において左上の位置に対するポインティングによって入力操作が開始され、時刻t9まで、一筆で当該領域の右下斜めの位置に線(直線、曲線のいずれでもよい)が入力されている。そして、時刻t10の時点では、ポインティングデバイスの表示領域から指が離されてポインティングされていない。
【0081】
この時のフレームは、時刻t1から時刻t10の各時刻における画像データのように示されるが、本実施の形態におけるフレームは、「画像データ」そのものではない。
【0082】
たとえば、時刻t3におけるフレームは、点Aに対応する座標データ(xA,yA)を含む。時刻t4におけるフレームは、座標データ(xB,yB)を含む。時刻t9におけるフレームは、座標データ(xG,yG)を含む。
【0083】
図7に示される例では、一筆で入力された右下斜めに向かう1本の線のみが示されているため、ストロークデータの数は、「1」である。その1つのストロークデータの中身は、以下のように示される。
【0084】
座標データ配列={A,B,C,D,E,F,G}、ストローク開始時刻=t3、ストローク終了時刻=t9。
【0085】
すなわち、ある1フレームと、ある1ストロークデータに着目すると、そのフレーム内にストロークデータが1つ含まれるか、もしくは1つも含まれないかのどちらかとなる。
【0086】
図7に示されるような入力がポインティングデバイスに対して行なわれると、時刻t1、t2、t10における各フレーム含まれる座標数は0であり、時刻t3〜t9における各フレームに含まれる座標データは1つである。したがって、プロセッサ230は、時刻t1、t2における各フレームについて、図6に示される処理を実行しても、反復することなく当該処理を終了する。プロセッサ230は、時刻t2におけるフレームに基づいて座標を検出し始め、時刻t9におけるフレームで座標の検出を終了し、これらの各座標に基づいてストロークを検出する。プロセッサ230は、時刻t10において、ストローク(A→B→C→・・・→G)をストロークデータとして、次の処理(ストローク形状判定等)に渡す。
【0087】
[ストローク形状の判定]
次に、ストロークの形状の判定について説明する。ストローク形状判定部303は、前段のストローク抽出部302によって抽出されたストロークデータに基づいて、当該ストロークがどのような形状であるかを判定する。当該形状を判定するために、ストローク形状判定部303は、情報処理端末100にテンプレートとして予め格納された複数の形状の各々と、当該ストロークとを比較し、ストロークの特徴部分がどの形状と似ているかを
判定し、最も似ている形状を特定する。ストローク形状判定部303は、この判定結果として、当該最も似ている形状に割り当てられたID(Identification)番号を出力する。あるいは、ストローク形状判定部303は、ストロークデータに、ストロークタイプとして、当該最も似ている形状を表わすID番号を含めてもよい。
【0088】
ストロークデータから形状を判定するための一例は、以下のとおりである。
まず、座標入力部301は、入力されたストロークにおけるx座標値の最大値(max
X)、x座標値の最小値(min X)、y座標値の最大値(max Y)、およびy座標値の最小値(min Y)を求める。
【0089】
(max X‐min X)の値が縦線幅の閾値以下であって、かつ、(max Y‐min Y)の値が縦線長さの閾値以上であるとき、ストローク形状判定部303は、当該ストロークが縦線である、と判定する。あるいは、(max Y‐min Y)の値が横線幅の閾値以下であって、かつ、(max X‐min X)の値が横線長さの閾値以上であるとき、ストローク形状判定部303は、当該ストロークが横線である、と判定する。この時、ストローク形状判定部303は、当該ストロークの開始座標値と終端座標値に基づいて、縦線または横線の記入方向を判定する。あるいは、ストローク形状判定部303は、当該ストローク内のストローク開始座標値とストローク終端座標値とに基づいて、縦線および横線の判別と、方向の特定とを行なってもよい。
【0090】
また、判定の対象は、縦線、横線のような直線に限られない。他の局面において、情報処理端末100は、円形、L字型その他の形状もテンプレートとして格納し、ストローク形状判定部303は、DPマッチングその他のアルゴリズムに基づいて、入力されたストロークがどのパタンにマッチするかを判定するものであってもよい。
【0091】
本ストローク形状判定部303は、1ストロークのみの形状判定を行うため、文字のように画数の多い文字認識よりも比較的容易に形状のマッチングを行うことができる。
【0092】
また、一態様として、情報処理端末100は、予め保持する形状データの一つとして、点のデータを保存していてもよい。
【0093】
他の局面において、ストロークの形状が点と認識された時、そのストロークを使用しない構成が使用されてもよい。たとえば、タッチパネルが入力装置である場合、物がタッチパネルに接触したために、当該使用者が入力を行なっていないにも関わらず、一点も移動しないストロークが検出されることがある。このような、使用者が意図しない入力がポインティングと判断された時には、ストローク形状判定部303は、当該ストロークに基づくストロークデータを無効とする。この場合、当該ストロークデータは、ストロークの形状判定結果より、照合部305による処理の対象から除外されるため、誤判定が防止され、認証精度が向上し得る。
【0094】
[ストローク依存関係]
次に、ストローク入力判定部304について説明する。ストローク入力判定部304は、複数のストロークが入力された場合において、各ストロークが同時に入力されたものであるか、あるいは逐次的に入力されたものであるかを判定する。
【0095】
ストロークデータは、ストロークの開始時刻と終了時刻とを含んでいる。そこで、ストローク入力判定部304は、このストローク開始時刻とストローク終了時刻とに基づいて、各ストロークが同時に入力されたものであるか、逐次的に入力されたものであるかを識別する。
【0096】
(第1の識別方法)
2つのストロークの各ストローク開始時刻の差が、予め規定された一定値以下である場合に、ストローク入力判定部304は、この2つのストロークは同時に入力されたと判定する。この場合、プロセッサ230は、同時に入力されたと判定された当該2つのストロークをグループ化して、1個のストロークとして取り扱う。
【0097】
より詳しくは、ストローク入力判定部304は、グループ化されたストロークについてのストローク開始時刻とストローク終了時刻とを設定する。たとえば、ストローク入力判定部304は、各ストローク開始時刻のうちのいずれかの開始時刻を、グループ化されたストロークのストローク開始時刻として使用する。同様に、ストローク入力判定部304は、2つのストローク終了時刻のうちのいずれかの時刻を、グループ化されたストロークのストローク終了時刻として使用する。
【0098】
なお、グループ化されたストローク開始時刻は、上述の時刻に限られず、2つのストローク開始時刻の間の値であってもよく、単純平均値であってもよく、加重平均値であってもよい。加重平均値が使用される場合の重み係数は、たとえば、ポインティングデバイスの表示領域の位置に応じて予め規定され得る。また、グループ化されたストロークの終了時刻についても、上記のストローク開始時刻と同様に設定される。
【0099】
また、グループ化されたストロークとそれ以外のストロークについても、ストローク入力判定部304は、各々のストローク開始時刻を比較し、ストローク開始時刻の差が一定値以下のとき、これらのストロークが同時に入力されたものであると判断する。
【0100】
そこで、図8を参照して、グループ化されたストロークと、グループ化される前のストロークとの入力のタイミングの判定について説明する。図8は、3つのストロークA,B,Cが、ストローク810,820,830として順に入力された状態を表わす図である。
【0101】
ストローク入力判定部304は、ストロークAのストローク開始時刻TSaとストロークBのストローク開始時刻TSbとの差(TSa−TSb)を算出する。図8に示される例で、当該差が、同時入力であると判定するために予め設定された閾値THα(以下「同一入力開始判定閾値」ともいう。)より小さいものとする。当該閾値は、情報処理端末100の記憶部(たとえばフラッシュメモリ250)に予め格納されている。
【0102】
この時、ストローク入力判定部304は、ストロークAとストロークBとが同時入力されたものであると判定し、当該ストロークをグループ化したストロークABと特定する。
【0103】
ストローク入力判定部304は、ストロークABのストローク開始時刻として、ストロークAについてのストローク開始時刻またはストロークBについてのストローク開始時刻のいずれか早い方を選択した場合、ストロークCがストロークABと同一グループではないと判断する。この場合、ストローク入力判定部304は、グループの区別のために、たとえば、ストロークABに割り当てられるグループを識別する番号と異なる番号を、ストロークCに割り当てる。
【0104】
一方、ストローク入力判定部304が、ストロークABのストローク開始時刻として、同一グループ内のストローク開始時刻のうちの一番遅い時刻を選択した場合、ストロークABの開始時刻はTSbとなり、ストロークCについてのストローク開始時刻とストロークABについてのストローク開始時刻との差は、同一入力判定閾値THα以下となる。したがって、ストローク入力判定部304は、ストロークA、ストロークB、ストロークCが同時に入力されたものであると判定する。
【0105】
この例のように、ストロークA,ストロークB、ストロークCを同一グループとして分類するためには、ストローク入力判定部304が処理を実行する前に、各ストロークデータがストローク開始時刻順に配列されている必要がある。
【0106】
そして、上記のように、グループ化する際のストローク開始時刻あるいはストローク終了時刻の設定方法によって、同じストロークデータでもグループの作られ方が異なる。
【0107】
(第2の識別方法)
次に、図9を参照して、第2の識別方法について説明する。図9は、3つのストロークA,B,Cがストローク910,920,930として入力された状態を表わす図である。
【0108】
第2の識別方法によると、ストローク終了時刻をもとにグループ化が行なわれる。第1の識別方法では、ストローク入力判定部304は、ストローク開始時刻をもとにグループ化を行なっていた。第2の識別方法によると、ストローク入力判定部304は、ストローク終了時刻の場合も同様に、グループ化を行なう。
【0109】
図9において、3つのストロークA,B,Cを同一の時刻に入力されたストロークと判定するために、各ストロークデータはストローク終了時刻の早い順に並べられる。各ストローク終了時刻の差が予め設定された一定値THβ(以下「同一入力終了判定閾値」ともいう。)以下の時、ストローク入力判定部304は、当該各ストロークが同一の時刻に入力されたものと判定する処理を実行する。ストローク入力判定部304は、2個のストロークが同時に入力されたものであると判定した時、終了時刻が遅い方のストローク終了時刻を当該ストロークグループの終了時刻として設定する。
【0110】
(第3の識別方法)
なお、上記の2つの識別方法によると、ストローク開始時刻の順序とストローク終了時刻の順序とが異なる場合に、不都合が生じる可能性がある。そこで、複雑なストローク入力タイミングに対応可能な第3の識別方法を説明する。
【0111】
まず、2つのストロークXとストロークYの識別方法について説明する。この場合、ストローク入力判定部304は、ストロークXの入力中にストロークYが入力されたか否かを判定する。次に、ストローク入力判定部304は、ストロークYの入力中にストロークXが入力されたか否かを判定する。この2つの判定処理により、ストローク入力判定部304は、ストロークXの入力中にストロークYが入力され、かつ、ストロークYの入力中にストロークXが入力されたという結果を取得し、ストロークXおよびストロークYが同時に入力されたと判定する。
【0112】
また、ストローク入力判定部304は、ストロークXが入力されていない時にストロークYが入力され、かつ、ストロークYが入力されていない時にストロークXが入力されたと判定すると、ストロークXおよびストロークYが逐次入力されたと判定する。この場合、ストロークXおよびストロークYは、ストローク開始時刻順に、または、ストローク終了時刻順に、逐次入力されたことになる。
【0113】
しかし、複数のストロークの入力に関し、ストロークXの入力中にストロークYが入力されたが、ストロークYの入力中にストロークXは入力されていない、という状態(以下、「中間状態」という。)も生じ得る。このような中間状態を生じる入力については、ストローク入力判定部304が「逐次入力」と判定する態様もあれば、「同時入力」と判定する態様もあり得る。あるいは、この中間状態を、そのまま後続の処理に使用することも
できる。以下、このような中間状態を含む各ストロークの関係を、「ストローク依存関係」と呼ぶ。
【0114】
ストローク入力判定部304は、このストローク依存関係を表わすデータを照合部305に出力する。照合部305は、本人用テンプレート306と比較して、情報処理端末100の使用者の認証を行う。
【0115】
[ストロークの識別]
図10を参照して、中間状態におけるストロークの識別について説明する。図10は、ストローク1010,1020,1030,1040として示される4つのストロークA,B,C,Dが入力された例を表わす図である。ストロークAは、時刻TSaから時刻TEaまで入力されている。ストロークBは、時刻TSbから時刻TEbまで入力されている。ストロークCは、時刻TScから時刻TEcまで入力されている。ストロークDは、時刻TSdから時刻TEdまで入力されている。なお、本実施の形態における時刻とは、計時回路によって得られる時間情報に限られず、プロセッサによる処理の開始に併せてカウンタ値が更新される場合の当該カウンタ値であってもよい。そこで、図10では、当該カウンタ値を時刻として用いる。
【0116】
各ストローク開始時刻とストローク終了時刻との関係は、TSa<TSc<TSb<TEb<TSd<TEa<TEc<TEd、として表わされる。ストローク入力判定部304は、このような関係から、「ストロークXの入力中に、ストロークYが入力されたか否か」を調べる。
【0117】
まず、ストロークXが時刻TSxから時刻TExまで入力され、ストロークYが時刻TSyからTEyまで入力されているとする。そして、ストロークXとストロークYとの間で共通の入力時間(いずれも入力操作が行なわれている時間)が、ストロークYの入力時間の一定割合以上であるとき、「ストロークXの入力中にストロークYが入力された」と定義する。
【0118】
たとえば、ストロークYの入力時間をYYtime、ストロークXとストロークYの共通の入力時間をXYtimeとすると、
YYtime=TEy−TSy、
XYtime=max{min(TEx,TEy)‐max(TSx,TSy),0}、となる。そうすると、「ストロークXの入力中にストロークYが入力された」と判断される条件は、「XYtime/YYtime≧一定割合」として表わすことができる。なお、一定割合は、情報処理端末100の製造者によって予め規定されるデータであり、たとえばフラッシュメモリ250、ROM256その他の記憶部に格納されている。あるいは、ストロークの判定のためにプロセッサ230が実行するプログラムに予めコーディングされていてもよい。
【0119】
本実施の形態においては、一定割合を「50%」として、図10に示される各ストロークの依存関係について説明する。
【0120】
すなわち、ストローク入力判定部304は、ストロークAの入力中に他のストロークB,C,Dの入力状況を調べる。この場合、ストローク入力判定部304は、時刻情報および判定のための割合として以下のような値を算出する。
ABtime=max{min(TEa,TEb)‐max(TSa,TSb),0}=max{min(45,30)‐max(10,18),0}=12。
BBtime=max{min(TEb,TEb)‐max(TSb,TSb),0}=12。
ACtime=25、CCtime=35。
ADtime=10、DDtime=30。
ABtime/BBtime=1(=100%)。
ACtime/CCtime≒0.71(=71%)。
ADtime/DDtime≒0.33(=33%)。
そうすると、ストロークAの入力中にストロークBとストロークCが入力されており、ストロークDは入力されていないことになる。
【0121】
図11を参照して、4つのストロークA,B,C,Dの依存関係について説明する。図11は、ストロークA,B,C,Dの依存関係を表わす図である。当該依存関係によると、ストロークCの入力中にストロークAが入力されており、その逆も成立している。したがって、ストローク入力判定部304は、ストロークCとストロークAとが同時に入力されたと判断する。また、ストロークCとストロークDとの関係は、いずれのストロークも同時に入力されたと判断されることを示している。一方、ストロークAとストロークDとは、同時に入力されていない関係になっている。
【0122】
図11に示される依存関係は、図10に示される態様で入力された各ストロークの依存関係を的確に含んでいる。そこで、ストローク入力判定部304が、図10に示されるような中間状態を含む各ストロークの依存関係を照合部305に送出する場合、プロセッサ230は、個人認証をより詳細に実行することができる。また、ストロークデータのデータ量が少なくなるため、照合部305が、データ処理に関し、中間状態を同時入力と同様に扱う場合、または中間状態を逐次入力と同様に扱う場合、後述する照合部305による照合処理の負担が軽減されることになる。
【0123】
[照合処理]
次に、照合部305について説明する。最初に、中間状態を含まない複数のストロークが入力された場合において当該ストロークとテンプレートとを照合する方法について説明する。次に、中間状態を含むような複数のストロークが入力された場合において当該ストロークとテンプレートとを照合する方法について説明する。
【0124】
(中間状態を含まないストロークが入力された場合)
照合部305には、入力された複数のストロークについてストローク形状判定部303によって判定された結果と、ストローク入力判定部304によって判定された結果とが入力される。さらに、照合部305は、これらの判定結果に基づいて当該ストロークの入力者が情報処理端末100に登録された使用者本人であるか否かを判定するための照合に使用される情報(以降、「本人テンプレート」という)が入力される。
【0125】
ストローク入力判定部304による判定結果は、当該ストロークが同時入力されたか、逐次的に入力されたかを示すデータを含む。プロセッサ230は、照合部305として、このデータをストローク開始時刻順に、RAM252に確保したメモリ領域に配列する。なお、この配列の順序は、予め決められた順序であれば、ストローク開始時刻順の代わりにストローク終了時刻順であってもよい。少なくとも、この配列の順序は、本人テンプレートが作成された時の順序と同じであればよい。照合部305は、入力されたストロークのパタンの組み合わせおよび順序が本人テンプレートにおけるストロークの組み合わせおよび順序と同じであるか否かを確認する。
【0126】
そこで、図12および図13を参照して、本実施の形態に係る照合処理について説明する。一例として、4本の線の入力によって本人か別人かを判断する照合処理について説明する。
【0127】
図12は、本人テンプレート306のデータ構成を概念的に表わす図である。本人テンプレート306は、最初に左から右に同時に描かれた2本の横線、次に下から上に描かれた1本の縦線、最後に上から下に描かれた1本の縦線として、情報処理端末100の使用者によって登録されている。
【0128】
図13は、本人認証のために入力されたストロークおよび当該ストロークに基づく判定結果を表わす図である。より詳しくは、図13(A)は4本の線で作られる四角形の入力例を示している。すなわち、情報処理端末100の使用者は、最初に、左から右に2本の横線(以下「上辺」および「下辺」ともいう。)を引き(状態1310)、次に下辺の左端部から上へ1本の縦線を引き(状態1320)、最後に上辺の右端部から下へ1本の縦線を引いて(状態1330)、四角形を入力している。
【0129】
図13(B)は、認証のために入力された各ストロークの形状結果と依存関係とを表わす図である。ここで、指標T1,T2,T3は、当該ストロークがどのタイミングで入力されたかを示す。指標T1,T2,T3は、ストローク開始時刻でも、あるいは、ストローク終了時刻でもよい。以下、指標T1,T2,T3が「ストローク開始時刻」であるとして説明する。この場合、各指標は、ストローク入力判定部304による処理である第1の識別方法として説明したように、当該各ストロークが同時に入力されたもの(同時入力)であるか、あるいは、逐次的に入力されたもの(逐次入力)であるかを判定した結果として、ストローク開始時刻に対応することになる。ストロークAおよびストロークBは、ストローク入力判定部304の処理によってグループ化されるため、同一のストローク開始時刻T1を持つことになる。
【0130】
図13(A)に示されるようなストロークが入力されると、ストローク形状判定部303は、図13(B)上段に示されるストローク形状結果を出力する。ストローク入力判定部304は、図13(B)の下段に示されるストローク依存関係を出力する。照合部305は、図13(B)に示される各判定結果と、図10に示される本人テンプレート306とを比較することにより、本人認証を実行する。
【0131】
図13(A)および図13(B)に示される例では、入力されたストロークの結果と本人テンプレート306とが完全に合致することになる。そこで、照合部305は、当該ストロークは本人によって入力されたと判定し、認証結果(=OK)を判定結果307として出力する。なお、仮に、当該ストロークを用いた照合処理の結果、当該ストロークの入力者が本人と認証されない場合には、照合部305は、認証結果(=NG)を判定結果307として出力する。
【0132】
ここで、図14を参照して、ストローク形状結果およびストローク依存関係について、さらに説明する。図14は、時刻t1から時刻t27の各時刻に取得した座標値(x,y)を表わす図である。すなわち、時刻t1では座標値が取得されていない。時刻t2において、1つの座標値(xA2,yA2)が取得されている。時刻t3において、2つの座標値(xA3,yA3)、(xB3,yB3)が取得されている。以下同様に、時刻tNにおいて取得された座標値を(xN,yN)と表わす。また、時刻t3から時刻t9の間では、同時に2つの座標値が取得されたため、それらの点を区別するために添え字A,Bが付記されている。さらに、時刻t11から時刻t16において検出された座標値は1つであるが、既に検出された座標値と区別するために、添え字“C”が付記されている。なお、このような場合でも、座標値が検出された時点では、当該座標値は単なる座標値(x,y)と同等の意味を有する。
【0133】
図14に示されるような入力が多点入力可能なポインティングデバイスに対して与えられると、ストローク抽出部302は、以下の4組のストロークデータA,B,C,Dを出
力する。
【0134】
(ストロークデータA)
座標データ配列:(xA2,yA2)、(xA3,yA3)、(xA4,yA4)、(xA5,yA5)、(xA6,yA6)、(xA7,yA7)、(xA8,yA8)、(xA9,yA9)
ストローク開始時刻:t2
ストローク終了時刻:t9
(ストロークデータB)
座標データ配列:(xB3,yB3)、(xB4,yB4)、(xB5,yB5)、(xB6,yB6)、(xB7,yB7)、(xB8,yB8)、(xB9,yB9)
ストローク開始時刻:t3
ストローク終了時刻:t9
(ストロークデータC)
座標データ配列:(xC11,yC11)、(xC12,yC12)、(xC13,yC13)、(xC14,yC14)、(xC15,yC15)、(xC16,yC16)
ストローク開始時刻:t11
ストローク終了時刻:t16
(ストロークデータD)
座標データ配列:(xD18,yD18)、(xD19,yD19)、(xD20,yD20)、(xD21,yD21)、(xD22,yD22)、(xD23,yD23)
ストローク開始時刻:t18
ストローク終了時刻:t23
(ストローク形状判定部303の処理)
処理の説明を簡単にするために、ストローク形状判定部303は、上から下への縦線(「タイプ下」)か、下から上への縦線(「タイプ上」)か、右から左への横線(「タイプ左」)か、左から右への横線(「タイプ右」)かのみを識別するものとする。また、各タイプのID番号をそれぞれ1,2,3,4とする。上記の例では、ストローク形状判定部303は、上記の4つのタイプ(タイプ上、タイプ下、タイプ右、タイプ左)のいずれに似ているかを判定する。
【0135】
ストローク形状判定部303は、ストロークデータAの座標データ配列の中から、x座標値の最大値maxXおよび最小値minXと、y座標値の最大値maxYおよび最小値minYとを算出する。
【0136】
たとえば、仮に、maxX=xA9=90、minX=xA2=10、maxY=yA2=10、minY=yA=11とする。この場合、maxX−minX=80、maxY−minY=1となる。
【0137】
また、仮に、横線幅の閾値=30、横線長さの閾値=20(縦線幅の閾値=30、縦線長さの閾値=20)とすると、ストローク形状判定部303は、ストロークAを「横線」と判定することができる。
【0138】
ストローク形状判定部303は、そのように判定すると、座標データ配列の先頭座標のx座標値と、座標データ配列の最後座標のy座標値とを比較し、当該ストロークが右方向へのストロークであるか左方向へのストロークであるかを判定する。この場合、xA2=10、xA9=90であるため、ストローク形状判定部303は、ストロークAを右方向へのストローク、すなわち、タイプ右(ID=3)のストロークと判定する。
【0139】
ストローク形状判定部303は、残りのストロークB,C,Dについても同様の処理を
行うことにより、ストロークBをタイプ右(ID=3)、ストロークCをタイプ上(ID=1)、ストロークDをタイプ下(ID=2)と判定する。
【0140】
各ストロークのデータには、当該データを識別するための識別子(ストロークデータ識別子)が付されている。ストローク形状判定部303は、ストロークデータ識別子とストロークのタイプとを関連付けした情報(ストロークデータ識別子,ストローク形状ID)を生成して、照合部305に出力する。
【0141】
上記の例では、ストローク形状判定部303は、各ストロークについて、ストロークデータ識別子A,B,C,Dを用いて、当該関連付けした情報として、(A,3)、(B,3)、(C,1)、(D,2)を生成し、照合部305に出力する。
【0142】
なお、上記の例は一態様を示すものであって、入力されたストロークの形状を判定するための方法は、これに限られない。
【0143】
(ストローク入力判定部304の処理)
以下、上記の例に基づくストローク入力判定部304の処理について説明する。ここでは、ストローク入力判定部304が、ストローク開始時刻のみを使用して、各ストロークが同時入力されたものであるか、あるいは逐次的に入力されたものであるかを判定する方法について説明する。
【0144】
ストローク入力判定部304は、ストロークA,B,C,Dをストローク開始時刻の早い順に並べる(上記の例では、配列の順序は変わらない)。なお、時間の単位として、一定間隔で座標値をサンプリングした1サンプル時間を1単位とする。また、同一入力判定閾値THα=3とする。このような場合、ストロークAのストローク開始時刻(t2)とストロークBのストローク開始時刻(t3)の差は1となる。また、この差の値は、同一入力判定閾値THαよりも小さいので、ストローク入力判定部304は、ストロークAとストロークBが同時に入力されたと判定する。ストローク入力判定部304は、ストロークAとストロークBの各ストローク開始時刻を(t3)と同じ値に設定する。なお、当該ストローク開始時刻をt3としたのは、遅い方のストローク開始時刻に合わす構成を用いているためである。
【0145】
次に、ストローク入力判定部304は、ストロークCのストローク開始時刻(t11)とストロークBのストローク開始時刻(t3)とを比較する。この例では、当該時刻の差=8となるので、ストローク入力判定部304は、ストロークBとストロークCが逐次的に入力されたものと判定する。
【0146】
仮に、ストローク入力判定部304が、ストロークBとストロークCは同時に入力されたものと判定すると、ストロークBとストロークAとが同時入力されているので、ストローク入力判定部304は、ストロークA、B、Cの各ストローク開始時刻を、ストロークCのストローク開始時刻に合わせる。
【0147】
最後に、ストローク入力判定部304は、ストロークCについてのストローク開始時刻とストロークDについてのストローク開始時刻との差を算出する。上記の例では当該差=7となる。そして、この値は同一入力判定閾値THαよりも大きいため、ストローク入力判定部304は、ストロークCとストロークDも逐次的に入力されたストロークであると判定する。
【0148】
ストローク入力判定部304は、このようにして得た結果と、ストローク形状判定部303も使用したストローク識別子A,B,C,Dとを関連付けて、関連付けられたデータ
を照合部305に出力する。上記の例では、ストローク入力判定部304は、(ストロークデータ識別子,ストローク開始時刻)の組として、(A,t3)、(B,t3)、(C,t11)、(D,t18)のようなデータを出力する。
【0149】
(減点法による認証)
なお、他の局面において、照合部305は、照合の不一致に減点法を用いて、予め設定された基準点(=認証合格点)以上の場合に当該ストロークの入力者を本人と判定するような認証を行ってもよい。
【0150】
減点法で認証を行う場合の一例は、以下のとおりである。たとえば、予め設定された基準として、「入力した線が1本足りない場合=−50点」、「入力した線の方向が逆向きの時=−30点」、「同時に入力されるべき線が逐次的に入力されている時=−10点」のようなルールが情報処理端末100に格納されているものとする。また、認証する入力者に与えられる持ち点を100点とする。
【0151】
この場合、照合部305は、入力されたストロークから抽出されたデータと、本人テンプレート306とを比較し、上記のような条件を満たさない場合に当該点数を持ち点(100点)から減点する。そして、ストロークの入力が終わった時に、点数が認証合格点(たとえば65点)以上の場合は、照合部305は、当該入力者が本人であると判定し、65点未満の場合には、当該入力者が本人ではないと判定する。
【0152】
あるいは、他の局面において、照合部305は、本人テンプレート306のストロークと一致したストロークと不一致のストロークとの比率を用いて、認証を行ってもよい。この場合、当該比率が予め設定された基準値を上回る場合に(すなわち一致する比率が一定以上である場合に)、照合部305は、当該入力者が本人であると判定し、認証結果(=K)を出力する。
【0153】
(中間状態が含まれるストロークが入力された場合)
次に、中間状態を含むストロークが入力された場合における照合について説明する。この場合、照合部305は、各ストロークの依存関係を用いて認証処理を実行する。すなわち、最初に、照合部305は、各ストロークの入力パタンが本人テンプレート306を構成するストロークの入力パタンと完全に一致しているか否かを判定する。
【0154】
照合部305は、これらの入力パターンが完全に一致していると判定すると、本人テンプレート306の各ストロークの依存関係と、認証のために入力された各ストロークの依存関係とを対比し、入力された各ストロークが本人テンプレート306の各ストロークと同じであるか否かを確認する。
【0155】
そこで、図15を参照して、中間状態を含むストロークが入力された場合における処理について説明する。図15(A)は、入力されたストロークの図形を示す図である。本実施の形態では、図15(A)は、3本の直線のストロークA,B,Cが入力されたことを示している。そして、ストロークAおよびストロークBは、上から下への縦方向のストロークである。ストロークCは、左から右への横方向に入力されたストロークである。
【0156】
図15(B)は、ストロークA,B,Cがどのタイミングで入力されたかを示すタイミングチャートである。図15(B)に示される例では、ストロークAが入力されるタイミングとほぼ同時にストロークBが入力され、ストロークBが入力されている間に、ストロークAの入力が終了する。さらに、ストロークBが入力されている間に、ストロークCが入力され、ほぼ同時に、ストロークBとストロークCの各入力が終了する。
【0157】
ストローク入力判定部304は、このような3つのストロークA,B,Cの依存関係を調べ、図15(C)に示されるような結果を出力する。すなわち、この依存関係によると、ストロークBの入力中にストロークAとストロークCが入力されていることが示されている。また、ストロークAとストロークCとの間には、依存関係がない。
【0158】
図15(D)は、この例に用いられる本人テンプレート1506を表わす図である。この本人テンプレート1506から読み取れる情報は、以下の通りである。まず、登録されているストロークは、3本である。それぞれのストロークをストローク1,2,3とすると、これらのストローク1,2,3に以下のような6つの関係がある。
(関係1)ストローク1は上から下の縦線である。
(関係2)ストローク2も上から下の縦線である。
(関係3)ストローク3は左から右の横線である。
(関係4)ストローク1の入力中にストローク2が入力された。
(関係5)ストローク1の入力中にストローク3が入力された。
(関係6)ストローク2のあとにストローク3が入力された。
【0159】
このような場合における照合方法について説明する。まず、照合部305は、入力されたストロークの数が本人テンプレート1506において登録されているストロークの数と同じであるか否か、および、各ストロークの入力パタンが本人テンプレート1506を構成する各ストロークの入力パタンと同じであるか否かを調べる。
【0160】
図15の例では、3つのストロークA,B,Cが情報処理端末100に入力されている。そのうち、ストロークAとストロークBは、上から下への縦線であり、ストロークCは左から右への横線である。そのため、入力されたストロークの数およびストロークの形状(タイプ)は、本人テンプレートとして登録されているストロークの数および形状と同じであることがわかる。
【0161】
もし、ストロークの数あるいは形状が異なる場合は、照合部305は、認証のために正しい図形が入力されていないと判断し、判定結果として認証NGを出力する。
【0162】
次に、照合部305は、入力されたストロークの依存関係と本人テンプレート1506のストロークの依存関係とが同じであるか否かを確認する。まず、本人テンプレート1506にある第1のストロークと第2のストロークは、いずれも上から下への縦線であり、同じ形状のストロークである。そこで、照合部305は、認証のために入力されたストロークA,Bが、それぞれ、第1のストロークおよび第2のストロークのいずれに相当するかを判定する。この判定は、「総当り」方式によって行なわれる。
【0163】
まず、照合部305は、ストロークAが第1のストロークに相当すると判断した場合、ストロークの形状からストロークBが第2のストローク2に相当すると判断し、また、ストロークCを第3のストロークに相当すると判断することができる。
【0164】
しかし、ストロークAの入力中にストロークBやストロークCが入力されておらず、また、ストロークBとストロークCとの間には、第2のストロークと第3のストロークとの依存関係にあるような「逐次入力」が成り立たない。よって、判断部305は、ストロークAが第1のストロークに相当するとの判断は誤りであることを検知する。
【0165】
次に、照合部305は、ストロークBが第1のストロークに相当すると判断した場合、ストロークAを第2のストロークに割り当て、ストロークCを第3のストロークに割り当てることができる。この場合、ストロークBの入力中に、ストロークAとストロークCの入力があり、かつ、ストロークAの後にストロークCが入力されていることにより、「逐
次入力」の関係が満たされる。したがって、照合部305は、図15(A)、図15(B)に示されたストロークデータが、本人テンプレート306の登録者本人によって入力されたものであると判断し、判定結果として認証OKを出力する。
【0166】
なお、中間状態を含むストローク依存関係は、詳細な情報も含んでいるため、本人がストロークを入力した場合でも、照合部305は、わずかな入力の違いに基づき、当該本人を別人であると判定する可能性がある。そこで、このような誤判定を防止するために、中間状態を含むストロークの依存関係を照合する場合において、比較の対象となる各ストロークが完全に一致する場合に認証OKと判定する態様に限らず、一定の水準を満たした場合に認証OKと判定する態様が用いられてもよい。
【0167】
[本人テンプレートの作成]
図16を参照して、本実施の形態に係る本人テンプレート306,1506の作成および登録について説明する。図16は、本人テンプレートの作成の際に情報処理端末100によって実現される機能の構成を表わすブロック図である。
【0168】
本人テンプレートの作成の一態様として、情報処理端末100の使用者が本人テンプレートに記録するルールを直接決めておき、そのルールを本人テンプレートとしてもよい。しかし、当該使用者本人が実際に決めたルール通りに入力できない場合もあり得る。そこで、本実施の形態においては、実際に多点入力可能なポインティングデバイスを利用して入力されたデータから本人テンプレートを作成する態様を用いる。
【0169】
情報処理端末100は、座標入力部301と、ストローク抽出部302と、ストローク形状判定部1603と、ストローク入力判定部1604と、テンプレート作成部1610とを備える。ある局面において、座標入力部301と、ストローク抽出部302と、ストローク形状判定部1603と、ストローク入力判定部1604と、テンプレート作成部1610とは、プロセッサ230によって実現される。なお、他の局面において、その全部または一部が当該機能を実現するために構成された回路素子その他のハードウェアによって実現されてもよい。
【0170】
たとえば、情報処理端末100は、「通常モード」から「テンプレート作成モード」への切替指示の入力に応答して、本人テンプレート作成のための上記機能を実現する。本人テンプレート306を作成する方法および情報の抽出方法は、上述の認証方法を用いて実現される。
【0171】
座標入力部301は、認証用パスワードにする文字あるいは図形を構成するストロークの入力を受け付けて、当該ストロークの座標データを取得する。
【0172】
ストローク抽出部302は、座標入力部301によって取得された座標データをストロークごとにグループ化し、ストロークデータとして出力する。
【0173】
ストローク形状判定部1603は、ストローク抽出部302によって抽出されたストロークデータに基づいて、当該ストロークがどのような形状であるかを判定する。ストローク形状判定部1603は、判定結果(=最も似ている形状に割り当てられたID番号)と、ストロークデータとを出力する。
【0174】
ストローク入力判定部1603は、複数のストロークについて、各ストロークが同時に入力されたものであるか、あるいは逐次的に入力されたものであるかを判定し、判定結果としてストロークの依存関係を出力する。
【0175】
テンプレート作成部1610は、これらのデータから本人テンプレート306を作成し、フラッシュメモリ250その他の記憶装置に格納する。なお、他の局面において、記憶装置は、メモリカードのように着脱可能なデータ記録媒体であってもよい。
【0176】
なお、本人テンプレート306の生成においては、当該ストロークの入力が同時入力であるか、あるいは、逐次入力であるかの判断を行う場合には、ストローク依存関係の中間状態の情報は不要である。
【0177】
なお、認証時に、入力されたストローク間の位置関係も確認する場合には、テンプレート作成部1610は、ストロークデータから位置関係を抽出し、テンプレート306に当該位置関係を含める。
【0178】
ストローク間の位置関係を抽出するために、テンプレート作成部1610は、各ストロークの座標データに含まれる各座標値の大小関係を判定し、各座標値の差が大きな座標値の対を示す関係をテンプレート306に含める。大小関係を判定するための座標値は、たとえば、ストローク開始座標やストローク終了座標のような当該ストロークの特徴的な座標値である。
【0179】
なお、本人テンプレート306の生成は、上述の態様のようにストロークの一度だけの入力で特徴を決める態様に限られず、テンプレート作成部1610が複数回入力されたストロークについて共通の特徴を抽出し、当該共通の特徴のみをテンプレート306に含める態様でもよい。あるいは、複数回入力されたストロークについて、一定値以上の割合で共通な部分をテンプレート306に含める態様でもよい。
【0180】
以上のようにして、本発明の第1の実施の形態に係る情報処理端末100によると、圧力センサその他の特別な装置を必要とせず、手書き文字を認証することができる。この場合、入力のために特定の構成を有する筆記具を必要としないため、指の入力も可能となる。
【0181】
また、本発明の実施の形態に係る情報処理端末は、多点入力可能なポインティングデバイスを有している。多点入力可能なポインティングデバイスは、同時に複数の点の入力を受け付ける。そこで、当該情報処理端末は、この特徴を利用し、ポインティングデバイスから入力されたストロークが、同時に入力されたものであるか、あるいは、逐次的に入力されたものであるかを判断し、それと同時に、入力されたストロークの形状を比較する。
【0182】
このような構成により、情報処理端末は、同時入力という入力方法を受け付けることができるため、同一図形が入力される場合でも、従来以上に書き順のバリエーションが増えることになる。多点入力が可能となるため、同じ図形や文字でも数多くの入力方法が可能となる。その結果、簡単な図形でも、他人に分かりにくいパスワードとして使用することができ、構成が複雑になることを防止しつつ、認証機能を高めることができる。
【0183】
また、x座標値、y座標値、および時刻データが組み合わされた座標データを認証データとして使用するため、ストロークの形状判定や、本人照合の際における精密な照合を行うことができる。
【0184】
また、当該認証機能を有する情報処理端末100は、座標データを全て記録するため、ストロークの抽出や形状判定などの処理で、時間に追われることなく処理を行うことができる。
【0185】
また、個人認証全体のレスポンスが早くなる。
また、ストロークの形状が縦線であるのか、または横線であるのかを容易に判定することができる。
【0186】
また、ストロークの形状判定を始点と終点のみから判断する簡易的な方法により、判定する処理が容易となり、判定処理の負荷が軽減され得る。
【0187】
また、入力されたストロークが点であると判断された場合には、その点としてのストロークは本人照合に使用しないようにすることができる。すなわち、情報処理端末は、当該ストロークは意図的に入力された図形でないと判断することにより、タッチパネルのようなポインティングデバイスに対する不意な接触によって検出された座標値が、認証の対象から取り除かれる。これにより、認証の誤判定を防止することができる。
【0188】
また、複数のストロークのグループ化を容易に行うことができる。
また、複数のストロークの入力タイミングの関係を抽出できるため、ストローク入力時の特徴を抽出することができ、精度の高い個人認証を行うことができる。
【0189】
<第2の実施の形態>
以下、図17および図18を参照して、本発明の第2の実施の形態について説明する。本実施の形態に係る情報処理端末は、ストローク形状と、ストロークの依存関係に加えて、ストローク座標の位置情報も用いて本人認証を行なう点で、前述の第1の実施の形態と異なる。より詳しくは、本実施の形態に係る照合部は、ストローク形状結果とストロークの依存関係に加えて、ストロークデータに含まれる座標情報を利用する。
【0190】
図17は、本人認証のために入力されたストロークを表わす図である。図18は、本実施の形態に係る情報処理端末1800によって実現される機能を表わすブロック図である。図19は、第2の実施の形態に係るテンプレート1806を表わす図である。
【0191】
たとえば、図13に示される四角形を入力する場合、第1の実施の形態によると、図17に示されるようにテンプレートを入力した場合でも、図12に示される本人テンプレート306と一致する。そのため、図13に示される入力と、図17に示される入力とを区別するためには、ストロークの位置情報を用いる必要がある。
【0192】
なお、第2の実施の形態に係る情報処理端末1800は、第1の実施の形態に係る情報処理端末100と同様のハードウェア構成によって実現される。その機能も同じである。したがって、ハードウェア構成についての説明は繰り返さない。以下、ハードウェア構成を参照する場合には、図2を援用する。
【0193】
図18を参照して、情報処理端末1800は、座標入力部301と、ストローク抽出部1802と、ストローク形状判定部1803と、ストローク入力判定部1804と、照合部1805とを備える。情報処理端末1800は、本人テンプレート1806を有している。本人テンプレート1806は、第1の実施の形態に係る本人テンプレート306が有する認証情報に加えて、ストロークの位置情報を含む。当該位置情報は、テンプレートとして登録されている各ストロークが他のストロークに対してどこに(例、右側、左側、上、下など)位置しているかを表わす。
【0194】
ストローク抽出部1802は、座標データに基づいて、ストロークデータと、当該入力されたストロークの位置情報とを出力する。
【0195】
ストローク形状判定部1803は、ストロークデータと位置情報とに基づいてストロークの形状を判定する。ストローク入力判定部1804は、ストロークデータと位置情報と
に基づいてストロークの依存関係を特定する。
【0196】
照合部1805は、ストローク形状判定部1803による判定結果と、ストローク入力判定部1804による判定結果と、本人のテンプレート1806とに基づいて、当該ストロークの入力者が情報処理端末1800の使用者として登録された本人であるか否かの認証を行ない、判定結果1807を出力する。この場合、照合部1805は、第1の実施の形態に係る照合部305と同様に、ストローク形状結果が本人テンプレート1806と一致するか否か、および、ストローク依存関係が本人テンプレート306に一致するか否かを確認するとともに、当該ストロークの位置情報も利用する。たとえば、当該位置情報は、図12の本人テンプレート情報に加えて、下から上への縦線(↑)は、上から下への縦線(↓)より左側にあるという情報を含む。
【0197】
このような位置情報を認証処理に用いることにより、本人認証の精度を向上させることができる。
【0198】
<変形例>
図19を参照して、第2の実施の形態の変形例について説明する。本変形例に係る情報処理端末は、位置情報として、図12に示される本人テンプレートに含まれる情報に加えて、ストロークの開始位置および終了位置の位置関係を規定する情報を有する点で、第2の実施の形態と異なる。
【0199】
図19は、ストロークの開始位置の情報を位置情報として有する本人テンプレート1906のデータ構造を表わす図である。すなわち、本人テンプレート1806は、領域1910において、当該ストロークの開始位置が、基準となるストローク(たとえば最初に入力されたストローク)の開始位置に対してどのような関係にあるかをあらわす情報を有する。たとえば、2本の横線であるストロークA(=基準となるストローク)とストロークBとについては、開始位置のx座標値はほぼ同じであり(xb≒xa)、ストロークBはストロークAの下である(yb<ya)。
【0200】
このような位置関係を本人テンプレートおよび認証処理に用いることにより、ストロークの位置関係が判定の条件に加えられるため、認証の精度が向上する。
【0201】
なお、位置情報は、例示された上記のものに限られない。また、位置情報は相対的な位置関係を規定する情報および絶対的な位置関係を規定する情報のいずれであってもよい。また、用いられる位置情報によって、本人テンプレートに追加される情報が異なる。
【0202】
<第3の実施の形態>
以下、本発明の第3の実施の形態について説明する。本実施の形態に係る情報処理端末は、座標データと時刻情報とを関連付けるタイミングが異なる点で、第1の実施の形態と異なる。なお、本実施の形態に係る情報処理端末は、第1の実施の形態に係るハードウェア構成を用いて実現される。その機能および動作も同じである。したがって、ハードウェアの説明は繰り返さない。
【0203】
まず、第1の実施の形態においては、座標入力部301は、座標データを取得すると同時に、時刻情報を座標データに関連付ける。これに対して、本実施の形態によると、座標入力部が、座標データと時刻情報とを関連付けず、ストローク抽出部がストロークの開始時刻と終了時刻を記録することもできる。
【0204】
そこで、図20を参照して、本実施の形態に係る情報処理端末2000の構成について説明する。図20は、情報処理端末2000によって実現される機能の構成を表わすブロ
ック図である。情報処理端末2000は、図3に示される構成に対して、座標入力部301に代えて座標入力部2001を、また、ストローク抽出部302に代えてストローク抽出部2002を備える。情報処理端末2000は、さらに、ストローク形状判定部2003と、ストローク入力判定部2004と、照合部2005とを備える。ストローク形状判定部2003は、ストローク形状判定部2003が実現する機能と同様の機能を実現する。ストローク入力判定部2004は、ストローク入力判定部1804と同様の機能を実現する。照合部2005は、照合部1805と同様の機能を実現し、判定結果2007を出力する。
【0205】
座標入力部2001は、ポインティングされた点の座標データを1フレーム処理時間以内に出力する。より詳しくは、座標入力部2001は、x座標値とy座標値のみが含まれる座標データをストローク抽出部2002に送出する。
【0206】
ストローク抽出部2002は、1フレーム分の座標データについて後述する処理を、1フレーム処理時間内に実行する。
【0207】
そこで、図21を参照して、本実施の形態に係る情報処理端末2000の制御構造について説明する。図21は、情報処理端末2000を実現するプロセッサ230がストローク抽出部2002として実行する一連の処理の一部を表わすフローチャートである。なお、第1の実施の形態に係る情報処理端末による処理と同様の処理には同一のステップ番号を付してある。したがって、それらの処理の説明は繰り返さない。
【0208】
ステップS2150にて、プロセッサ230は、1フレーム処理時間内に実行された処理によって得られた座標値と、本検出座標の値に更新したストローク終端座標とを座標データとして記録する。さらに、プロセッサ230は、ストローク開始時刻として、当該座標データの記録の時刻を当該座標データに追加する。
【0209】
ステップS2170にて、プロセッサ230は、ステップS670における処理に加えて、ストローク終了時刻を座標データに追加する。
【0210】
このようにして、本実施の形態によると、座標入力部2001が時刻情報を扱うことなく、ストローク抽出部2002によって得られた時刻情報に基づいて、座標データにストローク開始時刻とストローク終了時刻を追加することができる。
【0211】
座標入力部301が各座標について時刻情報を付加すると、検出される座標値の数が多くなるにつれて、時刻情報も多くなる。その結果、座標データに必要な内部メモリ容量の増大につながる。一方、本実施の形態によると、各座標データは、x座標値とy座標値のみを情報として有しており、時刻情報を有していない。その結果、必要とされる内部メモリ容量を削減することができる。
【0212】
また、本実施の形態によると、1フレームにポインティングされたストロークについての座標値を1フレーム時間内に処理をするため、座標入力部2001が全フレーム分の座標データを蓄える必要がない。したがって、情報処理端末2000の内部メモリの容量が少ない時に、特に有効である。
【0213】
<第4の実施の形態>
以下、本発明の第4の実施の形態について説明する。本実施の形態に係る情報処理端末は、第3の実施の形態に係る情報処理端末2000と同様に、座標値を取得する際に、時刻情報を当該座標値に関連付けない。
【0214】
なお、本実施の形態に係る情報処理端末は、第1の実施の形態に係る情報処理端末を実現するハードウェア構成によって実現される。したがって、ハードウェア構成の説明は繰り返さない。
【0215】
図22は、本実施の形態に係る情報処理端末2200によって実現される機能の構成を表わすブロック図である。情報処理端末2200は、座標入力部2201と、ストローク抽出部2202と、ストローク形状判定部2203と、ストローク入力判定部2204と、照合部2205とを備える。
【0216】
座標入力部2201は、フレーム毎に取得した座標データをストローク抽出部2202に送出する。
【0217】
ストローク抽出部2202は、座標データからストロークデータを抽出し、そのストロークデータをストローク形状判定部2203に送出する。当該ストロークデータは、x座標値とy座標値とが含まれる座標データの配列のみを含む。
【0218】
ストローク形状判定部2203は、このストロークデータに基づいてストロークの形状を判定し、当該判定を行なった時の時刻を、ストローク終了時刻としてストロークデータに加える。ストローク入力判定部2204は、当該ストロークデータに基づいてストロークの依存関係を判定し、ストロークデータと依存関係を表わすデータとを出力する。
【0219】
照合部2205は、ストロークデータおよび依存関係と、本人テンプレート306とに基づいて、本人認証を実行し、判定結果2207を出力する。
【0220】
このような構成によると、内部メモリ容量を少なくしつつ、データのフロー処理を実行することができる。
【0221】
[コンピュータ構成]
図23を参照して、本発明の実施の形態に係る情報処理端末を実現する認証システム2300について説明する。図23は、認証システム2300のハードウェア構成を表わすブロック図である。認証システム2300は、周知の構成を有するコンピュータシステム2302と、タッチパネル2392とを備える。
【0222】
コンピュータシステム2302は、主たる構成として、プログラムを実行するCPU(Central Processing Unit)2310と、コンピュータシステム2302の使用者による指示の入力を受けるマウス2320およびキーボード2330と、CPU2310によるプログラムの実行により生成されたデータ、又はマウス2320若しくはキーボード2330を介して入力されたデータを一時的に(揮発的に)格納するRAM2340と、データを不揮発的に格納するハードディスク2350と、CD−ROM(Compact Disk-Read Only Memory)その他の光ディスクを駆動する光ディスク駆動装置2360と、モニタ2370と、通信I/F(Interface)2380と、入力I/F2390とを含む。各構成要素は、相互にデータバスによって接続されている。光ディスク駆動装置2360には、CD−ROMその他の光ディスク2362が装着可能である。
【0223】
コンピュータシステム2302における処理は、各ハードウェアおよびCPU2310により実行されるソフトウェアによって実現される。このようなソフトウェアは、ハードディスク2350に予め格納されている場合がある。また、ソフトウェアは、CD−ROM2362その他のデータ記録媒体に格納されて、プログラム製品として流通している場合もある。あるいは、ソフトウェアは、いわゆるインターネットに接続されている情報提供事業者のサーバ装置によってダウンロード可能なプログラム製品として提供される場合
もある。このようなソフトウェアは、光ディスク駆動装置2360その他の読取装置によりそのデータ記録媒体から読み取られて、あるいは、通信I/F2380を介してダウンロードされた後、ハードディスク2350に一旦格納される。そのソフトウェアは、CPU2310によってハードディスク2350から読み出され、実行可能なプログラムの形式でRAM2340に格納される。CPU2310は、そのプログラムを実行する。
【0224】
図23に示されるコンピュータシステム2302のハードウェア構成は、一般的なものである。したがって、本発明の最も本質的な部分は、RAM2340、ハードディスク2350、CD−ROM2362その他のデータ記録媒体に格納されたソフトウェア、あるいはネットワークを介してダウンロード可能なソフトウェアであるともいえる。なお、コンピュータシステム2300の各ハードウェアの動作は周知であるので、詳細な説明は繰り返さない。
【0225】
なお、記録媒体としては、CD−ROM、FD(Flexible Disk)、ハードディスクに限られず、磁気テープ、カセットテープ、光ディスク(MO(Magnetic Optical Disc)/MD(Mini Disc)/DVD(Digital Versatile Disc))、IC(Integrated Circuit)カード(メモリカードを含む)、光カード、マスクROM、EPROM(Erasable, Programmable Read-Only Memory)、EEPROM(Electronically Erasable
Programmable Read-Only Memory)、フラッシュROMなどの半導体メモリ等の固定的にプログラムを担持する媒体でもよい。
【0226】
ここでいうプログラムとは、CPUにより直接実行可能なプログラムだけでなく、ソースプログラム形式のプログラム、圧縮処理されたプログラム、暗号化されたプログラム等を含む。
【0227】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【産業上の利用可能性】
【0228】
本発明は、ノートブック型パーソナルコンピュータ、携帯電話、PDAその他の携帯可能な情報処理端末、あるいはATMその他本人認証を行なう情報処理通信装置に適用可能である。
【図面の簡単な説明】
【0229】
【図1】情報処理端末100の外観を表わす図である。
【図2】情報処理端末100のハードウェア構成を表わすブロック図である。
【図3】情報処理端末100によって実現される機能の構成を表わすブロック図である。
【図4】ポインティングデバイスに複数の入力が行なわれた状態を表わす図である。
【図5】時刻t1に(x1,y1)がポインティングされ、時刻t2に(x2a,y2a)と(x2b,y2b)が入力され、時刻t3に(x3,y3)が入力された例を表わす図である。
【図6】ストロークを抽出するためにプロセッサ230が実行する一連の処理の一部を表わすフローチャートである。
【図7】一定間隔にポインティングされた座標を取得する際の例を表わす図である。
【図8】3つのストロークA,B,Cが、ストローク810,820,830として順に入力された状態を表わす図である。
【図9】3つのストロークA,B,Cがストローク910,920,930として入力された状態を表わす図である。
【図10】ストローク1010,1020,1030,1040として示される4つのストロークA,B,C,Dが入力された例を表わす図である。
【図11】ストロークA,B,C,Dの依存関係を表わす図である。
【図12】本人テンプレート306のデータ構成を概念的に表わす図である。
【図13】本人認証のために入力されたストロークおよび当該ストロークに基づく判定結果を表わす図である。
【図14】入力されたストロークの座標値の取得を時系列に表わす図である。
【図15】入力されたストロークの図形と、ストロークA,B,Cがどのタイミングで入力されたかを示すタイミングチャートと、依存関係と、本人テンプレート1506とを表わす図である。
【図16】本人テンプレートの作成の際に情報処理端末100によって実現される機能の構成を表わすブロック図である。
【図17】本人認証のために入力されたストロークを表わす図である。
【図18】本実施の形態に係る情報処理端末1800によって実現される機能を表わすブロック図である。
【図19】第2の実施の形態に係るテンプレート1806を表わす図である。
【図20】情報処理端末2000によって実現される機能の構成を表わすブロック図である。
【図21】情報処理端末2000を実現するプロセッサ230がストローク抽出部2002として実行する一連の処理の一部を表わすフローチャートである。
【図22】情報処理端末2200によって実現される機能の構成を表わすブロック図である。
【図23】認証システム2300のハードウェア構成を表わすブロック図である。
【符号の説明】
【0230】
100 情報処理端末、110 筐体、120 アンテナ、130 スピーカ、140
タッチパネル。
【技術分野】
【0001】
本発明は認証技術に関し、特に、手書き入力された線図により認証を行なう技術に関する。
【背景技術】
【0002】
個人を認証する方法として、4桁の暗証番号を用いて認証する方法がある。一方、最近では、4桁の暗証番号の代わりに、バイオメトリクスによる個人認証装置などが開発されている。このバイオメトリクスによる個人認証の一つとして、手書き入力された署名による認証方法がある。また、手書き入力された署名をコンピュータなどを使い認証する手書き認証装置が開発されている。
【0003】
文字による認証の場合、簡単な文字では特徴が少ないため、真似されやすく、本人でなくても認識されることがある。逆に、複雑な文字が入力されると、特徴となる部分が多く、文字の入力者が本人がであっても、他人と誤認識されることがある。そこで、一般的な手書き文字を用いた個人認証装置では、文字の情報以外に、スピード、筆圧、加速などを総合的に判断し、個人認証を実現している。
【0004】
たとえば、特開2002−140709号公報(特許文献1)は、ペン入力による個人認証方法に関して、ペン入力データと筆圧データを用いて個人認証を行なう技術を開示している。
【特許文献1】特開2002−140709号公報
【発明の開示】
【発明が解決しようとする課題】
【0005】
しかしながら、特開2002−140709号公報に開示された技術によると、筆圧データを取得するために、圧力センサを必要とする。そのため、認証装置の構成が複雑になる恐れがあった。また、入力にペンを必要とすると、ペン操作に不慣れな人にとっては、操作性が低下する可能性もある。
【0006】
本発明は、上述のような問題点を解決するためになされたものであって、その目的は、構成を複雑にすることなく手書き入力に基づく認証処理を行なうことができる認証装置を提供することである。他の目的は、指入力に基づく認証処理を行なうことができる認証装置を提供することである。
【0007】
他の目的は、手書き入力に基づいて認証を行なうための認証方法を提供することである。他の目的は、指入力に基づく認証を行なうための認証方法を提供することである。
【0008】
他の目的は、手書き入力に基づいて認証を行なうための認証装置としてコンピュータを機能させるためのプログラムを提供することである。他の目的は、指入力に基づく認証を行なうための認証装置としてコンピュータを機能させるためのプログラムを提供することである。
【0009】
他の目的は、手書き入力に基づいて認証を行なうための認証装置としてコンピュータを機能させるためのプログラムを格納した記録媒体を提供することである。他の目的は、指入力に基づく認証を行なうための認証装置としてコンピュータを機能させるためのプログラムを格納した記録媒体を提供することである。
【課題を解決するための手段】
【0010】
上記の課題を解決するために、この発明のある局面に従うと、手書き入力されたパスワードの認証を行う認証装置が提供される。この認証装置は、予め入力されたテンプレートを格納するテンプレート記憶部と、1つ以上の点入力を受け付けるように構成された入力装置と、入力装置によって入力が受け付けられた点の座標値を含む座標データを取得するように構成された座標データ取得部と、座標データ取得部によって取得された複数の座標データに基づいて、入力装置に対する入力の始点から終点までを示すストロークの座標値をストロークデータとして算出するように構成されたストローク抽出部と、ストローク抽出部によって算出されたストロークデータに基づいて、ストロークの形状を判定するように構成されたストローク形状判定部と、ストローク抽出部によって算出されたストロークデータに基づいて、入力装置に対する点入力が、同時入力または逐次入力のいずれであるかを判定するように構成されたストローク入力判定部と、ストローク形状判定部による判定結果と、ストローク入力判定部による判定結果とに基づいて、入力装置を介して入力されたストロークと、テンプレートとが、一致するか否かを判定するように構成された照合部とを備える。
【0011】
好ましくは、認証装置は、入力装置に対する入力が行なわれたタイミングを取得するように構成された時計部をさらに備える。座標データ取得部は、入力装置から座標値を取得した時刻と、入力装置によって指示された点の座標値とを、座標データとして取得する。
【0012】
好ましくは、認証装置は、座標データ取得部によって取得された各座標データを格納するように構成された座標データ記憶部と、1回の認証に必要な座標データが座標データ記憶手段に格納されたことを検知するように構成された検知部とをさらに備える。座標データ取得部は、1回の認証に必要な座標データが座標データ記憶部に格納された後に、座標データを取得する。
【0013】
好ましくは、座標データ取得部は、予め定められた間隔で入力装置に与えられた入力に対応する座標値を、予め定められた間隔の時間内に取得する。
【0014】
好ましくは、認証装置は、ストローク抽出部による処理が行なわれたタイミングを取得するように構成された時計部をさらに備える。ストローク抽出部は、ストロークの検出に応答して、または、ストロークの入力の終了に応答して、計時部によって取得されたタイミングをストロークデータに含める。
【0015】
好ましくは、認証装置は、ストロークデータに含まれる座標データから、x座標値の最大値およびy座標値の最大値と、x座標値の最小値およびy座標値の最小値とを算出するように構成された座標値算出部をさらに備える。ストローク形状判定部は、x座標値の最大値およびy座標値の最大値と、x座標値の最小値およびy座標値の最小値とに基づいて、ストロークの形状を判断する。
【0016】
好ましくは、ストローク抽出部は、ストロークの開始位置の座標値と、ストロークの終了位置の座標値とを含むストロークデータを算出する。ストローク形状判定部は、開始位置の座標値と、終了位置の座標値とに基づいて、ストロークの形状を判断する。
【0017】
好ましくは、認証装置は、ストロークデータに含まれる座標データから、x座標値の最大値およびy座標値の最大値と、x座標値の最小値およびy座標値の最小値とを求めるように構成された座標算出部をさらに備える。ストローク形状判定部は、x座標値の最大値およびy座標値の最大値とx座標値の最小値およびy座標値の最小値に基づいて、入力装置を介して入力されたストロークの形状が点であるか否かを判断し、ストローク形状判定
部がストロークの形状を点でないと判定すると、照合部は、ストロークを用いた認証処理を実行する。ストローク形状判定部がストロークの形状を点であると判定すると、照合部は、形状を点であると判定したストロークを認証処理に使用しない。
【0018】
好ましくは、ストローク入力判定部は、複数のストロークデータのストローク開始時刻を比較し、各ストローク開始時刻の差が予め定められた一定値以下の場合に、比較した複数のストロークデータに共通するストローク開始時刻を設定する。
【0019】
好ましくは、ストローク入力判定部は、複数のストロークデータのストローク終了時刻を比較し、各ストローク終了時刻の差が予め定められた一定値以下の場合に、比較した複数のストロークデータに共通するストローク終了時刻を設定する。
【0020】
好ましくは、ストローク入力判定部は、複数のストロークデータのうちのストロークが入力されている間に、他のストロークが入力されたか否かを判定する。
【0021】
好ましくは、入力装置は、複数の撮像素子が配置されたタッチパネルを含む。
この発明の他の局面に従うと、手書き入力されたパスワードの認証をプロセッサが行う認証方法が提供される。この方法は、予め入力されたテンプレートを読み出すステップと、1つ以上の点入力を受け付けるステップと、入力が受け付けられた点の座標値を含む座標データを取得するステップと、取得された複数の座標データに基づいて、入力の始点から終点までを示すストロークの座標値をストロークデータとして算出するステップと、算出されたストロークデータに基づいて、ストロークの形状を判定するステップと、ストロークデータに基づいて、点入力が、同時入力または逐次入力のいずれであるかを判定するステップと、ストローク形状についての判定結果と、点入力についての判定結果とに基づいて、入力されたストロークと、テンプレートとが、一致するか否かを判定するステップとを含む。
【0022】
この発明の他の局面に従うと、コンピュータを認証装置として機能させるためのプログラムが提供される。このプログラムはコンピュータに、予め入力されたテンプレートを読み出すステップと、1つ以上の点入力を受け付けるステップと、入力が受け付けられた点の座標値を含む座標データを取得するステップと、取得された複数の座標データに基づいて、入力の始点から終点までを示すストロークの座標値をストロークデータとして算出するステップと、算出されたストロークデータに基づいて、ストロークの形状を判定するステップと、ストロークデータに基づいて、点入力が、同時入力または逐次入力のいずれであるかを判定するステップと、ストローク形状についての判定結果と、点入力についての判定結果とに基づいて、入力されたストロークと、テンプレートとが、一致するか否かを判定するステップとを実行させる。
【0023】
この発明のさらに他の局面に従うと、上記のプログラムを格納したコンピュータ読み取り可能な記録媒体が提供される。
【発明の効果】
【0024】
本発明によると、構成を複雑にすることなく手書き入力に基づく認証処理を行なうことができる。
【発明を実施するための最良の形態】
【0025】
以下、図面を参照しつつ、本発明の実施の形態について説明する。以下の説明では、同一の部品には同一の符号を付してある。それらの名称および機能も同じである。したがって、それらについての詳細な説明は繰り返さない。
【0026】
<第1の実施の形態>
[ハードウェア構成]
図1および図2を参照して、本発明の第1の実施の形態に係る情報処理端末100の構成について説明する。図1は、情報処理端末100の外観を表わす図である。情報処理端末100は、筐体110と、アンテナ120と、スピーカ130と、タッチパネル140と、ボタン150と、マイク160と、LED(Light Emitting Diode)170とを備える。
【0027】
ある局面において、情報処理端末100は、ノートブック型パーソナルコンピュータ、携帯電話、PDA(Personal Digital Assistant)その他の携帯型の情報処理端末、あるいは、ATM(Automated Teller Machine)、クレジットカードの認証装置その他の商業施設に配置される情報処理装置としても実現される。
【0028】
図2は、情報処理端末100のハードウェア構成を表わすブロック図である。情報処理端末100は、図1に示される構成に加えて、表示装置212と、プロセッサ230と、表示ドライバ214と、フラッシュメモリ250と、RAM(Random Access Memory)252と、グラフィックメモリ254と、ROM(Read Only Memory)256と、通信回路260と、信号処理回路270と、バイブレータ280とを備える。タッチパネル140は、複数のCMOS(Complementary Metal-Oxide Semiconductor)撮像素子220を含む。タッチパネル140と表示装置212とは、表示部210を構成する。
【0029】
なお、本実施の形態においては、認証機能はプロセッサ230によって実現されるものとして説明する。しかしながら、他の局面において、認証機能を実現するためのハードワイヤード回路が、通常の処理を実行するプロセッサとは別個に構成されてもよい。
【0030】
タッチパネル140は、情報処理端末100に対する操作入力を受け付ける。タッチパネル140に並べられている各CM0S撮像素子220は、光信号に基づいて光電変換し、変換後の信号をプロセッサ230に送出する。
【0031】
プロセッサ230は、情報処理端末100の動作を制御する。プロセッサ230は、情報処理端末100の認証機能を実現する。より詳しくは、プロセッサ230は、タッチパネル140に与えられた入力操作によって特定される点の座標値を含む座標データを取得する。プロセッサ230は、その座標データに基づいて、タッチパネル140における入力の始点から終点を示すストロークの座標値であるストロークデータを算出する。プロセッサ230は、その算出したストロークデータに基づいて当該ストロークの形状を判定する。プロセッサ230は、その算出したストロークデータに基づいて、タッチパネル140に対する入力が同時入力または逐次入力のいずれであるかを判定する。プロセッサ230は、その判定結果と、ストロークの形状についての判定結果とに基づいて、タッチパネル140に対して入力されたストロークと、フラッシュメモリ250に予め格納されているテンプレートとが一致するか否かを判定する。
【0032】
フラッシュメモリ250は、上述のテンプレートを格納するとともに、情報処理端末100に対して与えられたデータあるいはプロセッサ230によって生成されたデータを不揮発的に保持する。
【0033】
RAM252は、プロセッサ230によって生成されたデータを一時的に保持する。
グラフィックメモリ254は、タッチパネル140の背面に配置されている表示装置212において画像を表示するためのデータを保持する。なお、他の局面において、RAM252とグラフィックメモリ254とが一体として構成されていてもよい。
【0034】
ROM256は、情報処理端末100を作動させるためのファームウェア、認証処理プログラムその他のプログラムと、情報処理端末100に固有の動作を実行させるために設定値として予め入力されたデータとを保持している。
【0035】
表示ドライバ214は、グラフィックメモリ254に格納されているデータに基づいて描画動作を表示装置212に対して実行する。表示装置212は、その動作に従って画像を表示する。この画像は、タッチパネル140を介して情報処理端末100の使用者に視認される。
【0036】
通信回路260は、アンテナ120によって受信されて信号を変換し、変換後の信号をプロセッサ230に送出する。また他の局面において、通信回路260は、プロセッサ230から送られた信号を送信用の信号に変換し、変換後の信号をアンテナ120に送出する。
【0037】
信号処理回路270は、マイク160から送られる電気信号を変換し変換後の信号をプロセッサ230に送出する。また、情報処理端末100が音声を出力する場合には、信号処理回路270は、プロセッサ230から送られた信号を音声出力用の信号に変換し、その変化後の信号をスピーカ130に送出する。スピーカ130は、その信号に基づき音声を出力する。
【0038】
バイブレータ280は、プロセッサ230から送られる信号に基づいて予め規定された振動パターンで発振する。
【0039】
[機能ブロック]
図3は、情報処理端末100によって実現される機能の構成を表わすブロック図である。情報処理端末100は、座標入力部301と、ストローク抽出部302と、ストローク形状判定部303と、ストローク入力判定部304と、照合部305とを備える。
【0040】
座標入力部301は、多点入力可能なポインティングデバイスを含む。座標入力部301は、ポインティングデバイスから入力される点あるいは線の座標値を処理し、当該処理によって生成したデータを座標データとしてストローク抽出部302に転送する。
【0041】
ストローク抽出部302は、座標入力部301からの座標データに基づいて、ポインティングデバイスにおいて一筆で書かれた線を抽出する。このような線には、直線、曲線のいずれもが含まれ得る。以降、この一筆の線をストロークと呼ぶ。
【0042】
ストローク抽出部302は、当該ストローク毎に抽出したデータをグループ化する。以降、このグループ化されたデータをストロークデータという。ストローク抽出部302は、ストローク形状判定部303やストローク入力判定部304にこのストロークデータを送出する。
【0043】
ストローク形状判定部303は、入力されたストロークデータごとに、ストロークの形状を判定し、その判定の結果を照合部305に送出する。当該判定の結果は、ストロークの形状がどのような形状をしているかを示すデータを含む。
【0044】
ストローク入力判定部304は、複数のストロークデータが座標入力部301に入力された場合において、当該複数のストロークデータが同時に入力されたものであるか、あるいは逐次的に入力されたものであるかを判定する。なお、本実施の形態における「同時」とは、完全に同一の時刻に限るものではなく、多少の先後(時間の幅)を含み得る。
【0045】
照合部305は、情報処理端末100に予め登録されている本人のテンプレート306と、ストローク形状判定部303による判定結果およびストローク入力判定部304による判定結果とを比較し、ポインティングデバイスに対して文字、図形その他の入力を行なった人物が、情報処理端末100の本人であるかを判定し、その判定の結果を出力する。
【0046】
[多点入力可能なポインティングデバイス]
本発明は、多点入力可能なポインティングデバイスを利用していることが特徴である。そこで、図4を参照して、本発明の実施の形態に係る多点入力可能なポインティングデバイスを用いた入力について説明する。図4は、ポインティングデバイスに複数の入力が行なわれた状態を表わす図である。
【0047】
一例として、水平で平行な2本の線をポインティングデバイス上に書く場合を説明する。単なる水平で平行な2本線を描く場合、図4(A)に示されるように平行線410,412が入力される。この場合、従来の技術にあるような、1点の入力デバイスが想定されたペン入力の文字認証では、文字入力時のストロークの違いを考慮して、書き方は図4(B)〜図4(E)の4通り考えられる。
【0048】
図4(B)は、直線420,422を左から右に入力した場合を表わす図である。図4(C)は、直線430,432を右から左に入力した場合を表わす図である。図4(D)は、直線440を左から右に、直線422を右から左に入力した場合を表わす図である。図4(E)は、直線450を右から左に、直線452を左から右に入力した場合を表わす図である。
【0049】
この時、上下の組み合わせとして、上側の線を先に、下側の線を後に書く場合と、下側の線を先に書いた後、上側の線を書く場合が考えられるため、合計8通りの書き方がある。本実施の形態に係る多点入力可能なポインティングデバイスを使用すれば、この従来の1点入力方式に加えて、図4(B)から図4(E)の2本線を同時に書くという入力方法も考えられる。したがって、合計12通りの書き方が考えられる。
【0050】
このように、多点入力可能なポインティングデバイスを用いることにより、従来の1点入力のポインティングデバイスに比べて、簡単な図形でも数多くの入力方法が出来るという効果がある。
【0051】
多点入力可能なポインティングデバイスは、一例として、CCD(Chare Coupled Device)やCMOSイメージャーのように、フォトダイオードをタッチパネルに並べることにより構成される。このような構成を有するポインティングデバイスは、そのフォトダイオードにチャージされる電荷の変化から、ポインティングされている座標を求めることができる。また、フォトダイオードの密度を高めれば、パネル上の影データを取得でき、画像処理によって、より正確にポインティング座標を取得することができる。これらの方法を使うと、従来の抵抗膜方式のタッチパネルではできなかった多点入力が可能となる。また、他の局面において、パネルの下(背面)からカメラで画像を撮影して、画像処理を行なうことによっても多点入力を検出することができる。
【0052】
[座標入力部]
座標入力部301は、多点入力可能なポインティングデバイスにおいて入力されている(「ポインティングされている」ともいう。)点の座標データを一定時間ごとに取得する。ここでポインティングの操作は、一点を押下する操作と、押下した状態でなぞる操作(線入力を行なう操作)とのいずれも含み得る。取得した座標データは、x座標値とy座標値に加えて、ポインティングデバイスにおいてポインティングされた時刻(押下によって入力された時刻)の情報(以下「ポインティング時刻」という)も含む。
【0053】
たとえば、タッチパッドのような一点入力のポインティングデバイスでは、プロセッサが取得した座標データを取得した順に従って並べることにより、ポインティングされた順序を知ることができる。しかし、多点入力可能なポインティングデバイスでは、複数の入力操作が行なわれたタイミングに関し、プロセッサは、各入力操作が同時に行なわれたのか、あるいは、1つの入力操作の後に次の入力操作が行なわれたのかを判定するために、時刻の情報が必要である。ここでいう時刻の情報は、絶対的な時刻のみに限られるものではない。すなわち、当該時刻の情報は、ポインティングされた各点が同時に入力されたのか、あるいは逐次入力されたのかを判定することができる情報であればよく、たとえば、インデックスのようなカウンタ値であってもよい。あるいは、他の局面において、座標入力部を構成するイメージセンサによって取得されるフレームの切れ目を示す記号が、逐次入力が行なわれたことを示す情報として使用されてもよい。
【0054】
また、さらに他の局面において、座標入力部301は、座標データに時刻情報を含めなくてもよい。この場合、座標入力部301は、1フレーム毎に処理を実行して処理結果を出力し、ストローク抽出部302のような後段部が当該処理結果と時刻データとを関連付けてもよい。
【0055】
図5は、時刻t1に(x1,y1)がポインティングされ、時刻t2に(x2a,y2a)と(x2b,y2b)が入力され、時刻t3に(x3,y3)が入力された例を表わす図である。この時、座標データに時刻情報を含めると、時刻t1から時刻t3における各座標データは、(x1,y1,t1)、(x2a,y2a,t2)、(x2b,y2b,t2)、(x3,y3,t3)となる。
【0056】
また、図5に示される例に対して、フレームの切れ目を示す記号を(−1,−1)という値に設定した場合、各座標データは、(x1,y1)、(−1,−1)、(x2a,y2a,t2)、(x2b,y2b,t2)、(−1,−1)、(x3,y3,t3)となる。
【0057】
座標入力部301は、認証するべきストロークの入力が終わるまで、このようにして得られた一連の座標データを全て保持し、各座標データをストローク抽出部302に送出する。
【0058】
このような一連の座標データは、ポインティングされた時刻順に並べておくことが好ましい。このようにすると、ストローク抽出部302が時刻順に当該一連の座標データを並べ替える必要がないため、ストローク抽出の処理に要する時間を短くすることができる。
【0059】
[ストローク抽出部]
次にストローク抽出部302について説明する。ストローク抽出部302は、座標入力部301によって取得された座標データをストロークごとにグループ化する。したがって、ストロークデータは、1個以上の座標データを含むことになる。すなわち、ストロークデータは、1ストロークを表わす。また、ストロークデータは、座標データに加えて、ストローク開始時刻(=ストロークの入力が開始された時刻)、ストローク終了時刻(=ストロークの入力が終了した時刻)、およびストローク終端座標値も含み得る。
【0060】
ストローク抽出部302は、これらのデータを含むストロークデータを生成し、ストローク形状判定部303およびストローク入力判定部304に当該ストロークデータを送出する。
【0061】
なお、ある局面において、ストロークデータは、ストロークの形状を示すストロークタ
イプという情報を含む場合もある。ストロークタイプは、後述するストローク形状判定部303において設定されて、ストロークデータに追加される。
【0062】
[ストロークデータの詳細]
ストロークデータの詳細について説明する。ある一実施例として、ストロークデータは、(座標データ配列、ストローク開始時刻、ストローク終了時刻)を含む。なお、他の局面において、ストローク形状判定部303がストロークの形状を判定するために、ストローク抽出部302は、ストローク終端座標値をストロークデータに含める場合もある。
【0063】
この一実施例において、座標データ配列は、1個以上の座標データを含む。なお、本実施の形態においては、1つの点もストロークとして取り扱う。より詳しくは、座標データは、ポインティングデバイスに対して入力された点の座標値(x,y)を含む。
【0064】
本実施の形態に係るポインティングデバイスは、一定時間毎に座標値を読み取るため、あるストロークデータには、一定時間毎の座標データが含まれる。なお、ストロークデータの座標データ配列は、多くの場合、(x1,y1)、(x2,y2)、(x3,y3)・・・(xN,yN)のように、複数個(N個)の座標値が含まれる。
【0065】
この時、座標を取得した時刻を座標値とともに座標データ配列に含めてもよい。その時の座標データ配列は、(x1,y1,t1)、(x2,y2,t2)、(x3,y3,t3)・・・(xN,yN,tN)となる。
【0066】
また、さらに他の局面において、ストロークデータには、座標データ配列の要素数Nが含まれてもよい。ストローク抽出部302が座標値を取得した時刻と、要素数Nとがストロークデータに含まれる場合、上記の例では、ストローク開始時刻=t1、ストローク終了時刻=tNとなる。なお、この場合、ストローク開始時刻とストローク終了時刻は、いわゆる当業者にとって自明であるが、冗長なデータともいえるため、ストロークデータとして特別に持つ必要はないが、持っていてもよい。
【0067】
また、ストローク開始時刻およびストローク終了時刻は、本実施の形態に係る情報処理端末100が起動し始めてからカウントされる通し番号によって表わされる。たとえば、情報処理端末100がスタンバイ状態である時は、プロセッサ230は、カウンタを「0」にリセットし、情報処理端末100の使用者が操作を始めた時(すなわち、情報処理端末100に対する操作が検知された時)から、情報処理端末100はカウントを開始し、そのカウンタを時刻として使用する。この場合、たとえば、カウンタが32ビットの値で表わされるとき、プロセッサ230は、1/30秒ごとに座標値をサンプリングしても、十分な時刻をカウントすることができる。
【0068】
なお、他の局面において、情報処理端末100は、ストローク開始時刻およびストローク終了時刻として、"年月日時分秒"を用いてもよい。この場合、情報処理端末100は、クロックを有し、プロセッサ230は当該クロックの信号に基づいてストローク開始時刻およびストローク終了時刻を取得する。
【0069】
後述するストローク形状判定部303がストロークを曲線であると判定する場合には、ストロークの座標値の推移が必要となり、したがって、ポインティングデバイスに対して行なわれた入力(線入力)の全座標データが必要となる。なお、ストローク形状判定部303が、ストローク開始座標値(ストロークの入力が開始された時の座標値)とストローク終了座標(ストロークの入力が終了した時の座標値)だけで、ストロークの形状を判定する場合には、途中の座標データは不要である。このようにストローク形状判定部303における処理の内容その他ストローク抽出部302の後に続く処理によって、ストローク
データとして必要な情報が変わることになる。
【0070】
[ストローク抽出の処理]
図6を参照して、本発明の実施の形態に係る情報処理端末100の制御構造について説明する。図6は、ストロークを抽出するためにプロセッサ230が実行する一連の処理の一部を表わすフローチャートである。
【0071】
ステップS610にて、プロセッサ230は、ストローク抽出部302として機能するために、初期化処理として、ストローク抽出時の途中結果を格納するためのストロークスタックの内容をクリアする。プロセッサ230は、座標データの入力を受け付けて、当該座標データをストロークスタックに格納する。RAM252あるいはプロセッサ内のレジスタが、ストロークスタックとして使用される。プロセッサ230は、抽出するストロークデータのある全フレームについて、各フレーム毎に図6の処理を繰り返す。本実施の形態において、ある時刻tの同一フレーム内で検出された座標数をNt個とし、また、フレームデータの時刻順に処理を実行するものとする。したがって、プロセッサ230は、当該処理をNt回実行することになる。
【0072】
ステップS620にて、プロセッサ230は、ストロークスタックに格納されている座標データに基づいて、検出座標(座標データに含まれる座標値)から最も近いストロークデータを検出する。
【0073】
ステップS630にて、プロセッサ230は、検出座標とストロークデータの終端座標との距離が、予め設定された閾値以下であるか否かを判定する。当該距離が閾値以下である場合には(ステップS630にてYES)、プロセッサ230は、検出座標が、当該フレームの前のフレームから続くストロークにおいて連続する点の座標であると判断し、処理をステップS640に切り換える。一方、当該距離が当該閾値より大きい場合には(ステップS630にてNO)、プロセッサ230は、検出座標がポインティングデバイスに新たに与えられた入力に対応するストロークであると判断し、処理をステップS650に切り換える。
【0074】
ステップS640にて、プロセッサ230は、検出座標をストロークデータの座標データの最後に追加して、ストローク終端座標を本検出座標の値に更新する。
【0075】
ステップS650にて、プロセッサ230は、新たなストロークデータとして、検出座標を座標データに追加して、ストローク終端座標を本検出座標の値に更新して、ストローク開始時刻を検出座標のポインティング時刻または現時刻とする。
【0076】
ステップS660にて、プロセッサ230は、ループ処理を実行した回数を示すカウンタ値を参照して、同一フレーム内の検出座標数だけ上記の処理を実行したか否かを判定する。上記の処理が検出座標数だけ実行されていない場合、プロセッサ230は、ステップS620以降の処理を再度実行する。したがって、プロセッサ230は、上記の処理を同一フレーム内の検出座標数Nt回繰り返すことになる。
【0077】
ステップS670にて、プロセッサ230は、ストロークの入力の終了を検知する。より詳しくは、プロセッサ230は、検出座標による更新が行われなかったストロークデータについて、当該フレームの1時点前の(直前の)フレームでストロークの入力が終了したと判定して、当該ストロークデータをストロークスタックから削除する。したがって、このストロークデータは次のフレームの処理では使用されなくなる。また、プロセッサ230は、検出座標による更新が行なわれたストロークデータを次の処理(ストローク形状判定部303あるいはストローク入力判定部304)に出力する。
【0078】
このようにして、本発明の実施の形態に係るプロセッサ230は、認証用データを構成する全てのフレームについて、入力された座標データの処理をフレーム単位で実行する。
【0079】
[ストロークデータの抽出]
図7を参照して、ストロークデータの抽出についてさらに説明する。図7は、一定間隔にポインティングされた点の座標値を取得する際の例を表わす図である。より詳しくは、図7は、時刻t1から時刻t10までの間に10回の座標取得が行われた例を表わす。この例においては、10フレームが含まれている。
【0080】
図7に示されるように、時刻t1、時刻t2の時点では、ポインティングデバイスに対してポインティング(入力操作)が行なわれていない。時刻t3において、ポインティングデバイスの操作領域において左上の位置に対するポインティングによって入力操作が開始され、時刻t9まで、一筆で当該領域の右下斜めの位置に線(直線、曲線のいずれでもよい)が入力されている。そして、時刻t10の時点では、ポインティングデバイスの表示領域から指が離されてポインティングされていない。
【0081】
この時のフレームは、時刻t1から時刻t10の各時刻における画像データのように示されるが、本実施の形態におけるフレームは、「画像データ」そのものではない。
【0082】
たとえば、時刻t3におけるフレームは、点Aに対応する座標データ(xA,yA)を含む。時刻t4におけるフレームは、座標データ(xB,yB)を含む。時刻t9におけるフレームは、座標データ(xG,yG)を含む。
【0083】
図7に示される例では、一筆で入力された右下斜めに向かう1本の線のみが示されているため、ストロークデータの数は、「1」である。その1つのストロークデータの中身は、以下のように示される。
【0084】
座標データ配列={A,B,C,D,E,F,G}、ストローク開始時刻=t3、ストローク終了時刻=t9。
【0085】
すなわち、ある1フレームと、ある1ストロークデータに着目すると、そのフレーム内にストロークデータが1つ含まれるか、もしくは1つも含まれないかのどちらかとなる。
【0086】
図7に示されるような入力がポインティングデバイスに対して行なわれると、時刻t1、t2、t10における各フレーム含まれる座標数は0であり、時刻t3〜t9における各フレームに含まれる座標データは1つである。したがって、プロセッサ230は、時刻t1、t2における各フレームについて、図6に示される処理を実行しても、反復することなく当該処理を終了する。プロセッサ230は、時刻t2におけるフレームに基づいて座標を検出し始め、時刻t9におけるフレームで座標の検出を終了し、これらの各座標に基づいてストロークを検出する。プロセッサ230は、時刻t10において、ストローク(A→B→C→・・・→G)をストロークデータとして、次の処理(ストローク形状判定等)に渡す。
【0087】
[ストローク形状の判定]
次に、ストロークの形状の判定について説明する。ストローク形状判定部303は、前段のストローク抽出部302によって抽出されたストロークデータに基づいて、当該ストロークがどのような形状であるかを判定する。当該形状を判定するために、ストローク形状判定部303は、情報処理端末100にテンプレートとして予め格納された複数の形状の各々と、当該ストロークとを比較し、ストロークの特徴部分がどの形状と似ているかを
判定し、最も似ている形状を特定する。ストローク形状判定部303は、この判定結果として、当該最も似ている形状に割り当てられたID(Identification)番号を出力する。あるいは、ストローク形状判定部303は、ストロークデータに、ストロークタイプとして、当該最も似ている形状を表わすID番号を含めてもよい。
【0088】
ストロークデータから形状を判定するための一例は、以下のとおりである。
まず、座標入力部301は、入力されたストロークにおけるx座標値の最大値(max
X)、x座標値の最小値(min X)、y座標値の最大値(max Y)、およびy座標値の最小値(min Y)を求める。
【0089】
(max X‐min X)の値が縦線幅の閾値以下であって、かつ、(max Y‐min Y)の値が縦線長さの閾値以上であるとき、ストローク形状判定部303は、当該ストロークが縦線である、と判定する。あるいは、(max Y‐min Y)の値が横線幅の閾値以下であって、かつ、(max X‐min X)の値が横線長さの閾値以上であるとき、ストローク形状判定部303は、当該ストロークが横線である、と判定する。この時、ストローク形状判定部303は、当該ストロークの開始座標値と終端座標値に基づいて、縦線または横線の記入方向を判定する。あるいは、ストローク形状判定部303は、当該ストローク内のストローク開始座標値とストローク終端座標値とに基づいて、縦線および横線の判別と、方向の特定とを行なってもよい。
【0090】
また、判定の対象は、縦線、横線のような直線に限られない。他の局面において、情報処理端末100は、円形、L字型その他の形状もテンプレートとして格納し、ストローク形状判定部303は、DPマッチングその他のアルゴリズムに基づいて、入力されたストロークがどのパタンにマッチするかを判定するものであってもよい。
【0091】
本ストローク形状判定部303は、1ストロークのみの形状判定を行うため、文字のように画数の多い文字認識よりも比較的容易に形状のマッチングを行うことができる。
【0092】
また、一態様として、情報処理端末100は、予め保持する形状データの一つとして、点のデータを保存していてもよい。
【0093】
他の局面において、ストロークの形状が点と認識された時、そのストロークを使用しない構成が使用されてもよい。たとえば、タッチパネルが入力装置である場合、物がタッチパネルに接触したために、当該使用者が入力を行なっていないにも関わらず、一点も移動しないストロークが検出されることがある。このような、使用者が意図しない入力がポインティングと判断された時には、ストローク形状判定部303は、当該ストロークに基づくストロークデータを無効とする。この場合、当該ストロークデータは、ストロークの形状判定結果より、照合部305による処理の対象から除外されるため、誤判定が防止され、認証精度が向上し得る。
【0094】
[ストローク依存関係]
次に、ストローク入力判定部304について説明する。ストローク入力判定部304は、複数のストロークが入力された場合において、各ストロークが同時に入力されたものであるか、あるいは逐次的に入力されたものであるかを判定する。
【0095】
ストロークデータは、ストロークの開始時刻と終了時刻とを含んでいる。そこで、ストローク入力判定部304は、このストローク開始時刻とストローク終了時刻とに基づいて、各ストロークが同時に入力されたものであるか、逐次的に入力されたものであるかを識別する。
【0096】
(第1の識別方法)
2つのストロークの各ストローク開始時刻の差が、予め規定された一定値以下である場合に、ストローク入力判定部304は、この2つのストロークは同時に入力されたと判定する。この場合、プロセッサ230は、同時に入力されたと判定された当該2つのストロークをグループ化して、1個のストロークとして取り扱う。
【0097】
より詳しくは、ストローク入力判定部304は、グループ化されたストロークについてのストローク開始時刻とストローク終了時刻とを設定する。たとえば、ストローク入力判定部304は、各ストローク開始時刻のうちのいずれかの開始時刻を、グループ化されたストロークのストローク開始時刻として使用する。同様に、ストローク入力判定部304は、2つのストローク終了時刻のうちのいずれかの時刻を、グループ化されたストロークのストローク終了時刻として使用する。
【0098】
なお、グループ化されたストローク開始時刻は、上述の時刻に限られず、2つのストローク開始時刻の間の値であってもよく、単純平均値であってもよく、加重平均値であってもよい。加重平均値が使用される場合の重み係数は、たとえば、ポインティングデバイスの表示領域の位置に応じて予め規定され得る。また、グループ化されたストロークの終了時刻についても、上記のストローク開始時刻と同様に設定される。
【0099】
また、グループ化されたストロークとそれ以外のストロークについても、ストローク入力判定部304は、各々のストローク開始時刻を比較し、ストローク開始時刻の差が一定値以下のとき、これらのストロークが同時に入力されたものであると判断する。
【0100】
そこで、図8を参照して、グループ化されたストロークと、グループ化される前のストロークとの入力のタイミングの判定について説明する。図8は、3つのストロークA,B,Cが、ストローク810,820,830として順に入力された状態を表わす図である。
【0101】
ストローク入力判定部304は、ストロークAのストローク開始時刻TSaとストロークBのストローク開始時刻TSbとの差(TSa−TSb)を算出する。図8に示される例で、当該差が、同時入力であると判定するために予め設定された閾値THα(以下「同一入力開始判定閾値」ともいう。)より小さいものとする。当該閾値は、情報処理端末100の記憶部(たとえばフラッシュメモリ250)に予め格納されている。
【0102】
この時、ストローク入力判定部304は、ストロークAとストロークBとが同時入力されたものであると判定し、当該ストロークをグループ化したストロークABと特定する。
【0103】
ストローク入力判定部304は、ストロークABのストローク開始時刻として、ストロークAについてのストローク開始時刻またはストロークBについてのストローク開始時刻のいずれか早い方を選択した場合、ストロークCがストロークABと同一グループではないと判断する。この場合、ストローク入力判定部304は、グループの区別のために、たとえば、ストロークABに割り当てられるグループを識別する番号と異なる番号を、ストロークCに割り当てる。
【0104】
一方、ストローク入力判定部304が、ストロークABのストローク開始時刻として、同一グループ内のストローク開始時刻のうちの一番遅い時刻を選択した場合、ストロークABの開始時刻はTSbとなり、ストロークCについてのストローク開始時刻とストロークABについてのストローク開始時刻との差は、同一入力判定閾値THα以下となる。したがって、ストローク入力判定部304は、ストロークA、ストロークB、ストロークCが同時に入力されたものであると判定する。
【0105】
この例のように、ストロークA,ストロークB、ストロークCを同一グループとして分類するためには、ストローク入力判定部304が処理を実行する前に、各ストロークデータがストローク開始時刻順に配列されている必要がある。
【0106】
そして、上記のように、グループ化する際のストローク開始時刻あるいはストローク終了時刻の設定方法によって、同じストロークデータでもグループの作られ方が異なる。
【0107】
(第2の識別方法)
次に、図9を参照して、第2の識別方法について説明する。図9は、3つのストロークA,B,Cがストローク910,920,930として入力された状態を表わす図である。
【0108】
第2の識別方法によると、ストローク終了時刻をもとにグループ化が行なわれる。第1の識別方法では、ストローク入力判定部304は、ストローク開始時刻をもとにグループ化を行なっていた。第2の識別方法によると、ストローク入力判定部304は、ストローク終了時刻の場合も同様に、グループ化を行なう。
【0109】
図9において、3つのストロークA,B,Cを同一の時刻に入力されたストロークと判定するために、各ストロークデータはストローク終了時刻の早い順に並べられる。各ストローク終了時刻の差が予め設定された一定値THβ(以下「同一入力終了判定閾値」ともいう。)以下の時、ストローク入力判定部304は、当該各ストロークが同一の時刻に入力されたものと判定する処理を実行する。ストローク入力判定部304は、2個のストロークが同時に入力されたものであると判定した時、終了時刻が遅い方のストローク終了時刻を当該ストロークグループの終了時刻として設定する。
【0110】
(第3の識別方法)
なお、上記の2つの識別方法によると、ストローク開始時刻の順序とストローク終了時刻の順序とが異なる場合に、不都合が生じる可能性がある。そこで、複雑なストローク入力タイミングに対応可能な第3の識別方法を説明する。
【0111】
まず、2つのストロークXとストロークYの識別方法について説明する。この場合、ストローク入力判定部304は、ストロークXの入力中にストロークYが入力されたか否かを判定する。次に、ストローク入力判定部304は、ストロークYの入力中にストロークXが入力されたか否かを判定する。この2つの判定処理により、ストローク入力判定部304は、ストロークXの入力中にストロークYが入力され、かつ、ストロークYの入力中にストロークXが入力されたという結果を取得し、ストロークXおよびストロークYが同時に入力されたと判定する。
【0112】
また、ストローク入力判定部304は、ストロークXが入力されていない時にストロークYが入力され、かつ、ストロークYが入力されていない時にストロークXが入力されたと判定すると、ストロークXおよびストロークYが逐次入力されたと判定する。この場合、ストロークXおよびストロークYは、ストローク開始時刻順に、または、ストローク終了時刻順に、逐次入力されたことになる。
【0113】
しかし、複数のストロークの入力に関し、ストロークXの入力中にストロークYが入力されたが、ストロークYの入力中にストロークXは入力されていない、という状態(以下、「中間状態」という。)も生じ得る。このような中間状態を生じる入力については、ストローク入力判定部304が「逐次入力」と判定する態様もあれば、「同時入力」と判定する態様もあり得る。あるいは、この中間状態を、そのまま後続の処理に使用することも
できる。以下、このような中間状態を含む各ストロークの関係を、「ストローク依存関係」と呼ぶ。
【0114】
ストローク入力判定部304は、このストローク依存関係を表わすデータを照合部305に出力する。照合部305は、本人用テンプレート306と比較して、情報処理端末100の使用者の認証を行う。
【0115】
[ストロークの識別]
図10を参照して、中間状態におけるストロークの識別について説明する。図10は、ストローク1010,1020,1030,1040として示される4つのストロークA,B,C,Dが入力された例を表わす図である。ストロークAは、時刻TSaから時刻TEaまで入力されている。ストロークBは、時刻TSbから時刻TEbまで入力されている。ストロークCは、時刻TScから時刻TEcまで入力されている。ストロークDは、時刻TSdから時刻TEdまで入力されている。なお、本実施の形態における時刻とは、計時回路によって得られる時間情報に限られず、プロセッサによる処理の開始に併せてカウンタ値が更新される場合の当該カウンタ値であってもよい。そこで、図10では、当該カウンタ値を時刻として用いる。
【0116】
各ストローク開始時刻とストローク終了時刻との関係は、TSa<TSc<TSb<TEb<TSd<TEa<TEc<TEd、として表わされる。ストローク入力判定部304は、このような関係から、「ストロークXの入力中に、ストロークYが入力されたか否か」を調べる。
【0117】
まず、ストロークXが時刻TSxから時刻TExまで入力され、ストロークYが時刻TSyからTEyまで入力されているとする。そして、ストロークXとストロークYとの間で共通の入力時間(いずれも入力操作が行なわれている時間)が、ストロークYの入力時間の一定割合以上であるとき、「ストロークXの入力中にストロークYが入力された」と定義する。
【0118】
たとえば、ストロークYの入力時間をYYtime、ストロークXとストロークYの共通の入力時間をXYtimeとすると、
YYtime=TEy−TSy、
XYtime=max{min(TEx,TEy)‐max(TSx,TSy),0}、となる。そうすると、「ストロークXの入力中にストロークYが入力された」と判断される条件は、「XYtime/YYtime≧一定割合」として表わすことができる。なお、一定割合は、情報処理端末100の製造者によって予め規定されるデータであり、たとえばフラッシュメモリ250、ROM256その他の記憶部に格納されている。あるいは、ストロークの判定のためにプロセッサ230が実行するプログラムに予めコーディングされていてもよい。
【0119】
本実施の形態においては、一定割合を「50%」として、図10に示される各ストロークの依存関係について説明する。
【0120】
すなわち、ストローク入力判定部304は、ストロークAの入力中に他のストロークB,C,Dの入力状況を調べる。この場合、ストローク入力判定部304は、時刻情報および判定のための割合として以下のような値を算出する。
ABtime=max{min(TEa,TEb)‐max(TSa,TSb),0}=max{min(45,30)‐max(10,18),0}=12。
BBtime=max{min(TEb,TEb)‐max(TSb,TSb),0}=12。
ACtime=25、CCtime=35。
ADtime=10、DDtime=30。
ABtime/BBtime=1(=100%)。
ACtime/CCtime≒0.71(=71%)。
ADtime/DDtime≒0.33(=33%)。
そうすると、ストロークAの入力中にストロークBとストロークCが入力されており、ストロークDは入力されていないことになる。
【0121】
図11を参照して、4つのストロークA,B,C,Dの依存関係について説明する。図11は、ストロークA,B,C,Dの依存関係を表わす図である。当該依存関係によると、ストロークCの入力中にストロークAが入力されており、その逆も成立している。したがって、ストローク入力判定部304は、ストロークCとストロークAとが同時に入力されたと判断する。また、ストロークCとストロークDとの関係は、いずれのストロークも同時に入力されたと判断されることを示している。一方、ストロークAとストロークDとは、同時に入力されていない関係になっている。
【0122】
図11に示される依存関係は、図10に示される態様で入力された各ストロークの依存関係を的確に含んでいる。そこで、ストローク入力判定部304が、図10に示されるような中間状態を含む各ストロークの依存関係を照合部305に送出する場合、プロセッサ230は、個人認証をより詳細に実行することができる。また、ストロークデータのデータ量が少なくなるため、照合部305が、データ処理に関し、中間状態を同時入力と同様に扱う場合、または中間状態を逐次入力と同様に扱う場合、後述する照合部305による照合処理の負担が軽減されることになる。
【0123】
[照合処理]
次に、照合部305について説明する。最初に、中間状態を含まない複数のストロークが入力された場合において当該ストロークとテンプレートとを照合する方法について説明する。次に、中間状態を含むような複数のストロークが入力された場合において当該ストロークとテンプレートとを照合する方法について説明する。
【0124】
(中間状態を含まないストロークが入力された場合)
照合部305には、入力された複数のストロークについてストローク形状判定部303によって判定された結果と、ストローク入力判定部304によって判定された結果とが入力される。さらに、照合部305は、これらの判定結果に基づいて当該ストロークの入力者が情報処理端末100に登録された使用者本人であるか否かを判定するための照合に使用される情報(以降、「本人テンプレート」という)が入力される。
【0125】
ストローク入力判定部304による判定結果は、当該ストロークが同時入力されたか、逐次的に入力されたかを示すデータを含む。プロセッサ230は、照合部305として、このデータをストローク開始時刻順に、RAM252に確保したメモリ領域に配列する。なお、この配列の順序は、予め決められた順序であれば、ストローク開始時刻順の代わりにストローク終了時刻順であってもよい。少なくとも、この配列の順序は、本人テンプレートが作成された時の順序と同じであればよい。照合部305は、入力されたストロークのパタンの組み合わせおよび順序が本人テンプレートにおけるストロークの組み合わせおよび順序と同じであるか否かを確認する。
【0126】
そこで、図12および図13を参照して、本実施の形態に係る照合処理について説明する。一例として、4本の線の入力によって本人か別人かを判断する照合処理について説明する。
【0127】
図12は、本人テンプレート306のデータ構成を概念的に表わす図である。本人テンプレート306は、最初に左から右に同時に描かれた2本の横線、次に下から上に描かれた1本の縦線、最後に上から下に描かれた1本の縦線として、情報処理端末100の使用者によって登録されている。
【0128】
図13は、本人認証のために入力されたストロークおよび当該ストロークに基づく判定結果を表わす図である。より詳しくは、図13(A)は4本の線で作られる四角形の入力例を示している。すなわち、情報処理端末100の使用者は、最初に、左から右に2本の横線(以下「上辺」および「下辺」ともいう。)を引き(状態1310)、次に下辺の左端部から上へ1本の縦線を引き(状態1320)、最後に上辺の右端部から下へ1本の縦線を引いて(状態1330)、四角形を入力している。
【0129】
図13(B)は、認証のために入力された各ストロークの形状結果と依存関係とを表わす図である。ここで、指標T1,T2,T3は、当該ストロークがどのタイミングで入力されたかを示す。指標T1,T2,T3は、ストローク開始時刻でも、あるいは、ストローク終了時刻でもよい。以下、指標T1,T2,T3が「ストローク開始時刻」であるとして説明する。この場合、各指標は、ストローク入力判定部304による処理である第1の識別方法として説明したように、当該各ストロークが同時に入力されたもの(同時入力)であるか、あるいは、逐次的に入力されたもの(逐次入力)であるかを判定した結果として、ストローク開始時刻に対応することになる。ストロークAおよびストロークBは、ストローク入力判定部304の処理によってグループ化されるため、同一のストローク開始時刻T1を持つことになる。
【0130】
図13(A)に示されるようなストロークが入力されると、ストローク形状判定部303は、図13(B)上段に示されるストローク形状結果を出力する。ストローク入力判定部304は、図13(B)の下段に示されるストローク依存関係を出力する。照合部305は、図13(B)に示される各判定結果と、図10に示される本人テンプレート306とを比較することにより、本人認証を実行する。
【0131】
図13(A)および図13(B)に示される例では、入力されたストロークの結果と本人テンプレート306とが完全に合致することになる。そこで、照合部305は、当該ストロークは本人によって入力されたと判定し、認証結果(=OK)を判定結果307として出力する。なお、仮に、当該ストロークを用いた照合処理の結果、当該ストロークの入力者が本人と認証されない場合には、照合部305は、認証結果(=NG)を判定結果307として出力する。
【0132】
ここで、図14を参照して、ストローク形状結果およびストローク依存関係について、さらに説明する。図14は、時刻t1から時刻t27の各時刻に取得した座標値(x,y)を表わす図である。すなわち、時刻t1では座標値が取得されていない。時刻t2において、1つの座標値(xA2,yA2)が取得されている。時刻t3において、2つの座標値(xA3,yA3)、(xB3,yB3)が取得されている。以下同様に、時刻tNにおいて取得された座標値を(xN,yN)と表わす。また、時刻t3から時刻t9の間では、同時に2つの座標値が取得されたため、それらの点を区別するために添え字A,Bが付記されている。さらに、時刻t11から時刻t16において検出された座標値は1つであるが、既に検出された座標値と区別するために、添え字“C”が付記されている。なお、このような場合でも、座標値が検出された時点では、当該座標値は単なる座標値(x,y)と同等の意味を有する。
【0133】
図14に示されるような入力が多点入力可能なポインティングデバイスに対して与えられると、ストローク抽出部302は、以下の4組のストロークデータA,B,C,Dを出
力する。
【0134】
(ストロークデータA)
座標データ配列:(xA2,yA2)、(xA3,yA3)、(xA4,yA4)、(xA5,yA5)、(xA6,yA6)、(xA7,yA7)、(xA8,yA8)、(xA9,yA9)
ストローク開始時刻:t2
ストローク終了時刻:t9
(ストロークデータB)
座標データ配列:(xB3,yB3)、(xB4,yB4)、(xB5,yB5)、(xB6,yB6)、(xB7,yB7)、(xB8,yB8)、(xB9,yB9)
ストローク開始時刻:t3
ストローク終了時刻:t9
(ストロークデータC)
座標データ配列:(xC11,yC11)、(xC12,yC12)、(xC13,yC13)、(xC14,yC14)、(xC15,yC15)、(xC16,yC16)
ストローク開始時刻:t11
ストローク終了時刻:t16
(ストロークデータD)
座標データ配列:(xD18,yD18)、(xD19,yD19)、(xD20,yD20)、(xD21,yD21)、(xD22,yD22)、(xD23,yD23)
ストローク開始時刻:t18
ストローク終了時刻:t23
(ストローク形状判定部303の処理)
処理の説明を簡単にするために、ストローク形状判定部303は、上から下への縦線(「タイプ下」)か、下から上への縦線(「タイプ上」)か、右から左への横線(「タイプ左」)か、左から右への横線(「タイプ右」)かのみを識別するものとする。また、各タイプのID番号をそれぞれ1,2,3,4とする。上記の例では、ストローク形状判定部303は、上記の4つのタイプ(タイプ上、タイプ下、タイプ右、タイプ左)のいずれに似ているかを判定する。
【0135】
ストローク形状判定部303は、ストロークデータAの座標データ配列の中から、x座標値の最大値maxXおよび最小値minXと、y座標値の最大値maxYおよび最小値minYとを算出する。
【0136】
たとえば、仮に、maxX=xA9=90、minX=xA2=10、maxY=yA2=10、minY=yA=11とする。この場合、maxX−minX=80、maxY−minY=1となる。
【0137】
また、仮に、横線幅の閾値=30、横線長さの閾値=20(縦線幅の閾値=30、縦線長さの閾値=20)とすると、ストローク形状判定部303は、ストロークAを「横線」と判定することができる。
【0138】
ストローク形状判定部303は、そのように判定すると、座標データ配列の先頭座標のx座標値と、座標データ配列の最後座標のy座標値とを比較し、当該ストロークが右方向へのストロークであるか左方向へのストロークであるかを判定する。この場合、xA2=10、xA9=90であるため、ストローク形状判定部303は、ストロークAを右方向へのストローク、すなわち、タイプ右(ID=3)のストロークと判定する。
【0139】
ストローク形状判定部303は、残りのストロークB,C,Dについても同様の処理を
行うことにより、ストロークBをタイプ右(ID=3)、ストロークCをタイプ上(ID=1)、ストロークDをタイプ下(ID=2)と判定する。
【0140】
各ストロークのデータには、当該データを識別するための識別子(ストロークデータ識別子)が付されている。ストローク形状判定部303は、ストロークデータ識別子とストロークのタイプとを関連付けした情報(ストロークデータ識別子,ストローク形状ID)を生成して、照合部305に出力する。
【0141】
上記の例では、ストローク形状判定部303は、各ストロークについて、ストロークデータ識別子A,B,C,Dを用いて、当該関連付けした情報として、(A,3)、(B,3)、(C,1)、(D,2)を生成し、照合部305に出力する。
【0142】
なお、上記の例は一態様を示すものであって、入力されたストロークの形状を判定するための方法は、これに限られない。
【0143】
(ストローク入力判定部304の処理)
以下、上記の例に基づくストローク入力判定部304の処理について説明する。ここでは、ストローク入力判定部304が、ストローク開始時刻のみを使用して、各ストロークが同時入力されたものであるか、あるいは逐次的に入力されたものであるかを判定する方法について説明する。
【0144】
ストローク入力判定部304は、ストロークA,B,C,Dをストローク開始時刻の早い順に並べる(上記の例では、配列の順序は変わらない)。なお、時間の単位として、一定間隔で座標値をサンプリングした1サンプル時間を1単位とする。また、同一入力判定閾値THα=3とする。このような場合、ストロークAのストローク開始時刻(t2)とストロークBのストローク開始時刻(t3)の差は1となる。また、この差の値は、同一入力判定閾値THαよりも小さいので、ストローク入力判定部304は、ストロークAとストロークBが同時に入力されたと判定する。ストローク入力判定部304は、ストロークAとストロークBの各ストローク開始時刻を(t3)と同じ値に設定する。なお、当該ストローク開始時刻をt3としたのは、遅い方のストローク開始時刻に合わす構成を用いているためである。
【0145】
次に、ストローク入力判定部304は、ストロークCのストローク開始時刻(t11)とストロークBのストローク開始時刻(t3)とを比較する。この例では、当該時刻の差=8となるので、ストローク入力判定部304は、ストロークBとストロークCが逐次的に入力されたものと判定する。
【0146】
仮に、ストローク入力判定部304が、ストロークBとストロークCは同時に入力されたものと判定すると、ストロークBとストロークAとが同時入力されているので、ストローク入力判定部304は、ストロークA、B、Cの各ストローク開始時刻を、ストロークCのストローク開始時刻に合わせる。
【0147】
最後に、ストローク入力判定部304は、ストロークCについてのストローク開始時刻とストロークDについてのストローク開始時刻との差を算出する。上記の例では当該差=7となる。そして、この値は同一入力判定閾値THαよりも大きいため、ストローク入力判定部304は、ストロークCとストロークDも逐次的に入力されたストロークであると判定する。
【0148】
ストローク入力判定部304は、このようにして得た結果と、ストローク形状判定部303も使用したストローク識別子A,B,C,Dとを関連付けて、関連付けられたデータ
を照合部305に出力する。上記の例では、ストローク入力判定部304は、(ストロークデータ識別子,ストローク開始時刻)の組として、(A,t3)、(B,t3)、(C,t11)、(D,t18)のようなデータを出力する。
【0149】
(減点法による認証)
なお、他の局面において、照合部305は、照合の不一致に減点法を用いて、予め設定された基準点(=認証合格点)以上の場合に当該ストロークの入力者を本人と判定するような認証を行ってもよい。
【0150】
減点法で認証を行う場合の一例は、以下のとおりである。たとえば、予め設定された基準として、「入力した線が1本足りない場合=−50点」、「入力した線の方向が逆向きの時=−30点」、「同時に入力されるべき線が逐次的に入力されている時=−10点」のようなルールが情報処理端末100に格納されているものとする。また、認証する入力者に与えられる持ち点を100点とする。
【0151】
この場合、照合部305は、入力されたストロークから抽出されたデータと、本人テンプレート306とを比較し、上記のような条件を満たさない場合に当該点数を持ち点(100点)から減点する。そして、ストロークの入力が終わった時に、点数が認証合格点(たとえば65点)以上の場合は、照合部305は、当該入力者が本人であると判定し、65点未満の場合には、当該入力者が本人ではないと判定する。
【0152】
あるいは、他の局面において、照合部305は、本人テンプレート306のストロークと一致したストロークと不一致のストロークとの比率を用いて、認証を行ってもよい。この場合、当該比率が予め設定された基準値を上回る場合に(すなわち一致する比率が一定以上である場合に)、照合部305は、当該入力者が本人であると判定し、認証結果(=K)を出力する。
【0153】
(中間状態が含まれるストロークが入力された場合)
次に、中間状態を含むストロークが入力された場合における照合について説明する。この場合、照合部305は、各ストロークの依存関係を用いて認証処理を実行する。すなわち、最初に、照合部305は、各ストロークの入力パタンが本人テンプレート306を構成するストロークの入力パタンと完全に一致しているか否かを判定する。
【0154】
照合部305は、これらの入力パターンが完全に一致していると判定すると、本人テンプレート306の各ストロークの依存関係と、認証のために入力された各ストロークの依存関係とを対比し、入力された各ストロークが本人テンプレート306の各ストロークと同じであるか否かを確認する。
【0155】
そこで、図15を参照して、中間状態を含むストロークが入力された場合における処理について説明する。図15(A)は、入力されたストロークの図形を示す図である。本実施の形態では、図15(A)は、3本の直線のストロークA,B,Cが入力されたことを示している。そして、ストロークAおよびストロークBは、上から下への縦方向のストロークである。ストロークCは、左から右への横方向に入力されたストロークである。
【0156】
図15(B)は、ストロークA,B,Cがどのタイミングで入力されたかを示すタイミングチャートである。図15(B)に示される例では、ストロークAが入力されるタイミングとほぼ同時にストロークBが入力され、ストロークBが入力されている間に、ストロークAの入力が終了する。さらに、ストロークBが入力されている間に、ストロークCが入力され、ほぼ同時に、ストロークBとストロークCの各入力が終了する。
【0157】
ストローク入力判定部304は、このような3つのストロークA,B,Cの依存関係を調べ、図15(C)に示されるような結果を出力する。すなわち、この依存関係によると、ストロークBの入力中にストロークAとストロークCが入力されていることが示されている。また、ストロークAとストロークCとの間には、依存関係がない。
【0158】
図15(D)は、この例に用いられる本人テンプレート1506を表わす図である。この本人テンプレート1506から読み取れる情報は、以下の通りである。まず、登録されているストロークは、3本である。それぞれのストロークをストローク1,2,3とすると、これらのストローク1,2,3に以下のような6つの関係がある。
(関係1)ストローク1は上から下の縦線である。
(関係2)ストローク2も上から下の縦線である。
(関係3)ストローク3は左から右の横線である。
(関係4)ストローク1の入力中にストローク2が入力された。
(関係5)ストローク1の入力中にストローク3が入力された。
(関係6)ストローク2のあとにストローク3が入力された。
【0159】
このような場合における照合方法について説明する。まず、照合部305は、入力されたストロークの数が本人テンプレート1506において登録されているストロークの数と同じであるか否か、および、各ストロークの入力パタンが本人テンプレート1506を構成する各ストロークの入力パタンと同じであるか否かを調べる。
【0160】
図15の例では、3つのストロークA,B,Cが情報処理端末100に入力されている。そのうち、ストロークAとストロークBは、上から下への縦線であり、ストロークCは左から右への横線である。そのため、入力されたストロークの数およびストロークの形状(タイプ)は、本人テンプレートとして登録されているストロークの数および形状と同じであることがわかる。
【0161】
もし、ストロークの数あるいは形状が異なる場合は、照合部305は、認証のために正しい図形が入力されていないと判断し、判定結果として認証NGを出力する。
【0162】
次に、照合部305は、入力されたストロークの依存関係と本人テンプレート1506のストロークの依存関係とが同じであるか否かを確認する。まず、本人テンプレート1506にある第1のストロークと第2のストロークは、いずれも上から下への縦線であり、同じ形状のストロークである。そこで、照合部305は、認証のために入力されたストロークA,Bが、それぞれ、第1のストロークおよび第2のストロークのいずれに相当するかを判定する。この判定は、「総当り」方式によって行なわれる。
【0163】
まず、照合部305は、ストロークAが第1のストロークに相当すると判断した場合、ストロークの形状からストロークBが第2のストローク2に相当すると判断し、また、ストロークCを第3のストロークに相当すると判断することができる。
【0164】
しかし、ストロークAの入力中にストロークBやストロークCが入力されておらず、また、ストロークBとストロークCとの間には、第2のストロークと第3のストロークとの依存関係にあるような「逐次入力」が成り立たない。よって、判断部305は、ストロークAが第1のストロークに相当するとの判断は誤りであることを検知する。
【0165】
次に、照合部305は、ストロークBが第1のストロークに相当すると判断した場合、ストロークAを第2のストロークに割り当て、ストロークCを第3のストロークに割り当てることができる。この場合、ストロークBの入力中に、ストロークAとストロークCの入力があり、かつ、ストロークAの後にストロークCが入力されていることにより、「逐
次入力」の関係が満たされる。したがって、照合部305は、図15(A)、図15(B)に示されたストロークデータが、本人テンプレート306の登録者本人によって入力されたものであると判断し、判定結果として認証OKを出力する。
【0166】
なお、中間状態を含むストローク依存関係は、詳細な情報も含んでいるため、本人がストロークを入力した場合でも、照合部305は、わずかな入力の違いに基づき、当該本人を別人であると判定する可能性がある。そこで、このような誤判定を防止するために、中間状態を含むストロークの依存関係を照合する場合において、比較の対象となる各ストロークが完全に一致する場合に認証OKと判定する態様に限らず、一定の水準を満たした場合に認証OKと判定する態様が用いられてもよい。
【0167】
[本人テンプレートの作成]
図16を参照して、本実施の形態に係る本人テンプレート306,1506の作成および登録について説明する。図16は、本人テンプレートの作成の際に情報処理端末100によって実現される機能の構成を表わすブロック図である。
【0168】
本人テンプレートの作成の一態様として、情報処理端末100の使用者が本人テンプレートに記録するルールを直接決めておき、そのルールを本人テンプレートとしてもよい。しかし、当該使用者本人が実際に決めたルール通りに入力できない場合もあり得る。そこで、本実施の形態においては、実際に多点入力可能なポインティングデバイスを利用して入力されたデータから本人テンプレートを作成する態様を用いる。
【0169】
情報処理端末100は、座標入力部301と、ストローク抽出部302と、ストローク形状判定部1603と、ストローク入力判定部1604と、テンプレート作成部1610とを備える。ある局面において、座標入力部301と、ストローク抽出部302と、ストローク形状判定部1603と、ストローク入力判定部1604と、テンプレート作成部1610とは、プロセッサ230によって実現される。なお、他の局面において、その全部または一部が当該機能を実現するために構成された回路素子その他のハードウェアによって実現されてもよい。
【0170】
たとえば、情報処理端末100は、「通常モード」から「テンプレート作成モード」への切替指示の入力に応答して、本人テンプレート作成のための上記機能を実現する。本人テンプレート306を作成する方法および情報の抽出方法は、上述の認証方法を用いて実現される。
【0171】
座標入力部301は、認証用パスワードにする文字あるいは図形を構成するストロークの入力を受け付けて、当該ストロークの座標データを取得する。
【0172】
ストローク抽出部302は、座標入力部301によって取得された座標データをストロークごとにグループ化し、ストロークデータとして出力する。
【0173】
ストローク形状判定部1603は、ストローク抽出部302によって抽出されたストロークデータに基づいて、当該ストロークがどのような形状であるかを判定する。ストローク形状判定部1603は、判定結果(=最も似ている形状に割り当てられたID番号)と、ストロークデータとを出力する。
【0174】
ストローク入力判定部1603は、複数のストロークについて、各ストロークが同時に入力されたものであるか、あるいは逐次的に入力されたものであるかを判定し、判定結果としてストロークの依存関係を出力する。
【0175】
テンプレート作成部1610は、これらのデータから本人テンプレート306を作成し、フラッシュメモリ250その他の記憶装置に格納する。なお、他の局面において、記憶装置は、メモリカードのように着脱可能なデータ記録媒体であってもよい。
【0176】
なお、本人テンプレート306の生成においては、当該ストロークの入力が同時入力であるか、あるいは、逐次入力であるかの判断を行う場合には、ストローク依存関係の中間状態の情報は不要である。
【0177】
なお、認証時に、入力されたストローク間の位置関係も確認する場合には、テンプレート作成部1610は、ストロークデータから位置関係を抽出し、テンプレート306に当該位置関係を含める。
【0178】
ストローク間の位置関係を抽出するために、テンプレート作成部1610は、各ストロークの座標データに含まれる各座標値の大小関係を判定し、各座標値の差が大きな座標値の対を示す関係をテンプレート306に含める。大小関係を判定するための座標値は、たとえば、ストローク開始座標やストローク終了座標のような当該ストロークの特徴的な座標値である。
【0179】
なお、本人テンプレート306の生成は、上述の態様のようにストロークの一度だけの入力で特徴を決める態様に限られず、テンプレート作成部1610が複数回入力されたストロークについて共通の特徴を抽出し、当該共通の特徴のみをテンプレート306に含める態様でもよい。あるいは、複数回入力されたストロークについて、一定値以上の割合で共通な部分をテンプレート306に含める態様でもよい。
【0180】
以上のようにして、本発明の第1の実施の形態に係る情報処理端末100によると、圧力センサその他の特別な装置を必要とせず、手書き文字を認証することができる。この場合、入力のために特定の構成を有する筆記具を必要としないため、指の入力も可能となる。
【0181】
また、本発明の実施の形態に係る情報処理端末は、多点入力可能なポインティングデバイスを有している。多点入力可能なポインティングデバイスは、同時に複数の点の入力を受け付ける。そこで、当該情報処理端末は、この特徴を利用し、ポインティングデバイスから入力されたストロークが、同時に入力されたものであるか、あるいは、逐次的に入力されたものであるかを判断し、それと同時に、入力されたストロークの形状を比較する。
【0182】
このような構成により、情報処理端末は、同時入力という入力方法を受け付けることができるため、同一図形が入力される場合でも、従来以上に書き順のバリエーションが増えることになる。多点入力が可能となるため、同じ図形や文字でも数多くの入力方法が可能となる。その結果、簡単な図形でも、他人に分かりにくいパスワードとして使用することができ、構成が複雑になることを防止しつつ、認証機能を高めることができる。
【0183】
また、x座標値、y座標値、および時刻データが組み合わされた座標データを認証データとして使用するため、ストロークの形状判定や、本人照合の際における精密な照合を行うことができる。
【0184】
また、当該認証機能を有する情報処理端末100は、座標データを全て記録するため、ストロークの抽出や形状判定などの処理で、時間に追われることなく処理を行うことができる。
【0185】
また、個人認証全体のレスポンスが早くなる。
また、ストロークの形状が縦線であるのか、または横線であるのかを容易に判定することができる。
【0186】
また、ストロークの形状判定を始点と終点のみから判断する簡易的な方法により、判定する処理が容易となり、判定処理の負荷が軽減され得る。
【0187】
また、入力されたストロークが点であると判断された場合には、その点としてのストロークは本人照合に使用しないようにすることができる。すなわち、情報処理端末は、当該ストロークは意図的に入力された図形でないと判断することにより、タッチパネルのようなポインティングデバイスに対する不意な接触によって検出された座標値が、認証の対象から取り除かれる。これにより、認証の誤判定を防止することができる。
【0188】
また、複数のストロークのグループ化を容易に行うことができる。
また、複数のストロークの入力タイミングの関係を抽出できるため、ストローク入力時の特徴を抽出することができ、精度の高い個人認証を行うことができる。
【0189】
<第2の実施の形態>
以下、図17および図18を参照して、本発明の第2の実施の形態について説明する。本実施の形態に係る情報処理端末は、ストローク形状と、ストロークの依存関係に加えて、ストローク座標の位置情報も用いて本人認証を行なう点で、前述の第1の実施の形態と異なる。より詳しくは、本実施の形態に係る照合部は、ストローク形状結果とストロークの依存関係に加えて、ストロークデータに含まれる座標情報を利用する。
【0190】
図17は、本人認証のために入力されたストロークを表わす図である。図18は、本実施の形態に係る情報処理端末1800によって実現される機能を表わすブロック図である。図19は、第2の実施の形態に係るテンプレート1806を表わす図である。
【0191】
たとえば、図13に示される四角形を入力する場合、第1の実施の形態によると、図17に示されるようにテンプレートを入力した場合でも、図12に示される本人テンプレート306と一致する。そのため、図13に示される入力と、図17に示される入力とを区別するためには、ストロークの位置情報を用いる必要がある。
【0192】
なお、第2の実施の形態に係る情報処理端末1800は、第1の実施の形態に係る情報処理端末100と同様のハードウェア構成によって実現される。その機能も同じである。したがって、ハードウェア構成についての説明は繰り返さない。以下、ハードウェア構成を参照する場合には、図2を援用する。
【0193】
図18を参照して、情報処理端末1800は、座標入力部301と、ストローク抽出部1802と、ストローク形状判定部1803と、ストローク入力判定部1804と、照合部1805とを備える。情報処理端末1800は、本人テンプレート1806を有している。本人テンプレート1806は、第1の実施の形態に係る本人テンプレート306が有する認証情報に加えて、ストロークの位置情報を含む。当該位置情報は、テンプレートとして登録されている各ストロークが他のストロークに対してどこに(例、右側、左側、上、下など)位置しているかを表わす。
【0194】
ストローク抽出部1802は、座標データに基づいて、ストロークデータと、当該入力されたストロークの位置情報とを出力する。
【0195】
ストローク形状判定部1803は、ストロークデータと位置情報とに基づいてストロークの形状を判定する。ストローク入力判定部1804は、ストロークデータと位置情報と
に基づいてストロークの依存関係を特定する。
【0196】
照合部1805は、ストローク形状判定部1803による判定結果と、ストローク入力判定部1804による判定結果と、本人のテンプレート1806とに基づいて、当該ストロークの入力者が情報処理端末1800の使用者として登録された本人であるか否かの認証を行ない、判定結果1807を出力する。この場合、照合部1805は、第1の実施の形態に係る照合部305と同様に、ストローク形状結果が本人テンプレート1806と一致するか否か、および、ストローク依存関係が本人テンプレート306に一致するか否かを確認するとともに、当該ストロークの位置情報も利用する。たとえば、当該位置情報は、図12の本人テンプレート情報に加えて、下から上への縦線(↑)は、上から下への縦線(↓)より左側にあるという情報を含む。
【0197】
このような位置情報を認証処理に用いることにより、本人認証の精度を向上させることができる。
【0198】
<変形例>
図19を参照して、第2の実施の形態の変形例について説明する。本変形例に係る情報処理端末は、位置情報として、図12に示される本人テンプレートに含まれる情報に加えて、ストロークの開始位置および終了位置の位置関係を規定する情報を有する点で、第2の実施の形態と異なる。
【0199】
図19は、ストロークの開始位置の情報を位置情報として有する本人テンプレート1906のデータ構造を表わす図である。すなわち、本人テンプレート1806は、領域1910において、当該ストロークの開始位置が、基準となるストローク(たとえば最初に入力されたストローク)の開始位置に対してどのような関係にあるかをあらわす情報を有する。たとえば、2本の横線であるストロークA(=基準となるストローク)とストロークBとについては、開始位置のx座標値はほぼ同じであり(xb≒xa)、ストロークBはストロークAの下である(yb<ya)。
【0200】
このような位置関係を本人テンプレートおよび認証処理に用いることにより、ストロークの位置関係が判定の条件に加えられるため、認証の精度が向上する。
【0201】
なお、位置情報は、例示された上記のものに限られない。また、位置情報は相対的な位置関係を規定する情報および絶対的な位置関係を規定する情報のいずれであってもよい。また、用いられる位置情報によって、本人テンプレートに追加される情報が異なる。
【0202】
<第3の実施の形態>
以下、本発明の第3の実施の形態について説明する。本実施の形態に係る情報処理端末は、座標データと時刻情報とを関連付けるタイミングが異なる点で、第1の実施の形態と異なる。なお、本実施の形態に係る情報処理端末は、第1の実施の形態に係るハードウェア構成を用いて実現される。その機能および動作も同じである。したがって、ハードウェアの説明は繰り返さない。
【0203】
まず、第1の実施の形態においては、座標入力部301は、座標データを取得すると同時に、時刻情報を座標データに関連付ける。これに対して、本実施の形態によると、座標入力部が、座標データと時刻情報とを関連付けず、ストローク抽出部がストロークの開始時刻と終了時刻を記録することもできる。
【0204】
そこで、図20を参照して、本実施の形態に係る情報処理端末2000の構成について説明する。図20は、情報処理端末2000によって実現される機能の構成を表わすブロ
ック図である。情報処理端末2000は、図3に示される構成に対して、座標入力部301に代えて座標入力部2001を、また、ストローク抽出部302に代えてストローク抽出部2002を備える。情報処理端末2000は、さらに、ストローク形状判定部2003と、ストローク入力判定部2004と、照合部2005とを備える。ストローク形状判定部2003は、ストローク形状判定部2003が実現する機能と同様の機能を実現する。ストローク入力判定部2004は、ストローク入力判定部1804と同様の機能を実現する。照合部2005は、照合部1805と同様の機能を実現し、判定結果2007を出力する。
【0205】
座標入力部2001は、ポインティングされた点の座標データを1フレーム処理時間以内に出力する。より詳しくは、座標入力部2001は、x座標値とy座標値のみが含まれる座標データをストローク抽出部2002に送出する。
【0206】
ストローク抽出部2002は、1フレーム分の座標データについて後述する処理を、1フレーム処理時間内に実行する。
【0207】
そこで、図21を参照して、本実施の形態に係る情報処理端末2000の制御構造について説明する。図21は、情報処理端末2000を実現するプロセッサ230がストローク抽出部2002として実行する一連の処理の一部を表わすフローチャートである。なお、第1の実施の形態に係る情報処理端末による処理と同様の処理には同一のステップ番号を付してある。したがって、それらの処理の説明は繰り返さない。
【0208】
ステップS2150にて、プロセッサ230は、1フレーム処理時間内に実行された処理によって得られた座標値と、本検出座標の値に更新したストローク終端座標とを座標データとして記録する。さらに、プロセッサ230は、ストローク開始時刻として、当該座標データの記録の時刻を当該座標データに追加する。
【0209】
ステップS2170にて、プロセッサ230は、ステップS670における処理に加えて、ストローク終了時刻を座標データに追加する。
【0210】
このようにして、本実施の形態によると、座標入力部2001が時刻情報を扱うことなく、ストローク抽出部2002によって得られた時刻情報に基づいて、座標データにストローク開始時刻とストローク終了時刻を追加することができる。
【0211】
座標入力部301が各座標について時刻情報を付加すると、検出される座標値の数が多くなるにつれて、時刻情報も多くなる。その結果、座標データに必要な内部メモリ容量の増大につながる。一方、本実施の形態によると、各座標データは、x座標値とy座標値のみを情報として有しており、時刻情報を有していない。その結果、必要とされる内部メモリ容量を削減することができる。
【0212】
また、本実施の形態によると、1フレームにポインティングされたストロークについての座標値を1フレーム時間内に処理をするため、座標入力部2001が全フレーム分の座標データを蓄える必要がない。したがって、情報処理端末2000の内部メモリの容量が少ない時に、特に有効である。
【0213】
<第4の実施の形態>
以下、本発明の第4の実施の形態について説明する。本実施の形態に係る情報処理端末は、第3の実施の形態に係る情報処理端末2000と同様に、座標値を取得する際に、時刻情報を当該座標値に関連付けない。
【0214】
なお、本実施の形態に係る情報処理端末は、第1の実施の形態に係る情報処理端末を実現するハードウェア構成によって実現される。したがって、ハードウェア構成の説明は繰り返さない。
【0215】
図22は、本実施の形態に係る情報処理端末2200によって実現される機能の構成を表わすブロック図である。情報処理端末2200は、座標入力部2201と、ストローク抽出部2202と、ストローク形状判定部2203と、ストローク入力判定部2204と、照合部2205とを備える。
【0216】
座標入力部2201は、フレーム毎に取得した座標データをストローク抽出部2202に送出する。
【0217】
ストローク抽出部2202は、座標データからストロークデータを抽出し、そのストロークデータをストローク形状判定部2203に送出する。当該ストロークデータは、x座標値とy座標値とが含まれる座標データの配列のみを含む。
【0218】
ストローク形状判定部2203は、このストロークデータに基づいてストロークの形状を判定し、当該判定を行なった時の時刻を、ストローク終了時刻としてストロークデータに加える。ストローク入力判定部2204は、当該ストロークデータに基づいてストロークの依存関係を判定し、ストロークデータと依存関係を表わすデータとを出力する。
【0219】
照合部2205は、ストロークデータおよび依存関係と、本人テンプレート306とに基づいて、本人認証を実行し、判定結果2207を出力する。
【0220】
このような構成によると、内部メモリ容量を少なくしつつ、データのフロー処理を実行することができる。
【0221】
[コンピュータ構成]
図23を参照して、本発明の実施の形態に係る情報処理端末を実現する認証システム2300について説明する。図23は、認証システム2300のハードウェア構成を表わすブロック図である。認証システム2300は、周知の構成を有するコンピュータシステム2302と、タッチパネル2392とを備える。
【0222】
コンピュータシステム2302は、主たる構成として、プログラムを実行するCPU(Central Processing Unit)2310と、コンピュータシステム2302の使用者による指示の入力を受けるマウス2320およびキーボード2330と、CPU2310によるプログラムの実行により生成されたデータ、又はマウス2320若しくはキーボード2330を介して入力されたデータを一時的に(揮発的に)格納するRAM2340と、データを不揮発的に格納するハードディスク2350と、CD−ROM(Compact Disk-Read Only Memory)その他の光ディスクを駆動する光ディスク駆動装置2360と、モニタ2370と、通信I/F(Interface)2380と、入力I/F2390とを含む。各構成要素は、相互にデータバスによって接続されている。光ディスク駆動装置2360には、CD−ROMその他の光ディスク2362が装着可能である。
【0223】
コンピュータシステム2302における処理は、各ハードウェアおよびCPU2310により実行されるソフトウェアによって実現される。このようなソフトウェアは、ハードディスク2350に予め格納されている場合がある。また、ソフトウェアは、CD−ROM2362その他のデータ記録媒体に格納されて、プログラム製品として流通している場合もある。あるいは、ソフトウェアは、いわゆるインターネットに接続されている情報提供事業者のサーバ装置によってダウンロード可能なプログラム製品として提供される場合
もある。このようなソフトウェアは、光ディスク駆動装置2360その他の読取装置によりそのデータ記録媒体から読み取られて、あるいは、通信I/F2380を介してダウンロードされた後、ハードディスク2350に一旦格納される。そのソフトウェアは、CPU2310によってハードディスク2350から読み出され、実行可能なプログラムの形式でRAM2340に格納される。CPU2310は、そのプログラムを実行する。
【0224】
図23に示されるコンピュータシステム2302のハードウェア構成は、一般的なものである。したがって、本発明の最も本質的な部分は、RAM2340、ハードディスク2350、CD−ROM2362その他のデータ記録媒体に格納されたソフトウェア、あるいはネットワークを介してダウンロード可能なソフトウェアであるともいえる。なお、コンピュータシステム2300の各ハードウェアの動作は周知であるので、詳細な説明は繰り返さない。
【0225】
なお、記録媒体としては、CD−ROM、FD(Flexible Disk)、ハードディスクに限られず、磁気テープ、カセットテープ、光ディスク(MO(Magnetic Optical Disc)/MD(Mini Disc)/DVD(Digital Versatile Disc))、IC(Integrated Circuit)カード(メモリカードを含む)、光カード、マスクROM、EPROM(Erasable, Programmable Read-Only Memory)、EEPROM(Electronically Erasable
Programmable Read-Only Memory)、フラッシュROMなどの半導体メモリ等の固定的にプログラムを担持する媒体でもよい。
【0226】
ここでいうプログラムとは、CPUにより直接実行可能なプログラムだけでなく、ソースプログラム形式のプログラム、圧縮処理されたプログラム、暗号化されたプログラム等を含む。
【0227】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【産業上の利用可能性】
【0228】
本発明は、ノートブック型パーソナルコンピュータ、携帯電話、PDAその他の携帯可能な情報処理端末、あるいはATMその他本人認証を行なう情報処理通信装置に適用可能である。
【図面の簡単な説明】
【0229】
【図1】情報処理端末100の外観を表わす図である。
【図2】情報処理端末100のハードウェア構成を表わすブロック図である。
【図3】情報処理端末100によって実現される機能の構成を表わすブロック図である。
【図4】ポインティングデバイスに複数の入力が行なわれた状態を表わす図である。
【図5】時刻t1に(x1,y1)がポインティングされ、時刻t2に(x2a,y2a)と(x2b,y2b)が入力され、時刻t3に(x3,y3)が入力された例を表わす図である。
【図6】ストロークを抽出するためにプロセッサ230が実行する一連の処理の一部を表わすフローチャートである。
【図7】一定間隔にポインティングされた座標を取得する際の例を表わす図である。
【図8】3つのストロークA,B,Cが、ストローク810,820,830として順に入力された状態を表わす図である。
【図9】3つのストロークA,B,Cがストローク910,920,930として入力された状態を表わす図である。
【図10】ストローク1010,1020,1030,1040として示される4つのストロークA,B,C,Dが入力された例を表わす図である。
【図11】ストロークA,B,C,Dの依存関係を表わす図である。
【図12】本人テンプレート306のデータ構成を概念的に表わす図である。
【図13】本人認証のために入力されたストロークおよび当該ストロークに基づく判定結果を表わす図である。
【図14】入力されたストロークの座標値の取得を時系列に表わす図である。
【図15】入力されたストロークの図形と、ストロークA,B,Cがどのタイミングで入力されたかを示すタイミングチャートと、依存関係と、本人テンプレート1506とを表わす図である。
【図16】本人テンプレートの作成の際に情報処理端末100によって実現される機能の構成を表わすブロック図である。
【図17】本人認証のために入力されたストロークを表わす図である。
【図18】本実施の形態に係る情報処理端末1800によって実現される機能を表わすブロック図である。
【図19】第2の実施の形態に係るテンプレート1806を表わす図である。
【図20】情報処理端末2000によって実現される機能の構成を表わすブロック図である。
【図21】情報処理端末2000を実現するプロセッサ230がストローク抽出部2002として実行する一連の処理の一部を表わすフローチャートである。
【図22】情報処理端末2200によって実現される機能の構成を表わすブロック図である。
【図23】認証システム2300のハードウェア構成を表わすブロック図である。
【符号の説明】
【0230】
100 情報処理端末、110 筐体、120 アンテナ、130 スピーカ、140
タッチパネル。
【特許請求の範囲】
【請求項1】
手書き入力されたパスワードの認証を行う認証装置であって、
予め入力されたテンプレートを格納するテンプレート記憶部と、
1つ以上の点入力を受け付けるように構成された入力装置と、
前記入力装置によって入力が受け付けられた点の座標値を含む座標データを取得するように構成された座標データ取得部と、
前記座標データ取得部によって取得された複数の前記座標データに基づいて、前記入力装置に対する入力の始点から終点までを示すストロークの座標値をストロークデータとして算出するように構成されたストローク抽出部と、
前記ストローク抽出部によって算出されたストロークデータに基づいて、前記ストロークの形状を判定するように構成されたストローク形状判定部と、
前記ストローク抽出部によって算出されたストロークデータに基づいて、前記入力装置に対する点入力が、同時入力または逐次入力のいずれであるかを判定するように構成されたストローク入力判定部と、
前記ストローク形状判定部による判定結果と、前記ストローク入力判定部による判定結果とに基づいて、前記入力装置を介して入力されたストロークと、前記テンプレートとが、一致するか否かを判定するように構成された照合部とを備える、認証装置。
【請求項2】
前記入力装置に対する入力が行なわれたタイミングを取得するように構成された時計部をさらに備え、
前記座標データ取得部は、前記入力装置から前記座標値を取得した時刻と、前記入力装置によって指示された点の座標値とを、前記座標データとして取得する、請求項1に記載の認証装置。
【請求項3】
前記座標データ取得部によって取得された各前記座標データを格納するように構成された座標データ記憶部と、
1回の認証に必要な座標データが前記座標データ記憶手段に格納されたことを検知するように構成された検知部とをさらに備え、
前記座標データ取得部は、前記1回の認証に必要な座標データが前記座標データ記憶部に格納された後に、前記座標データを取得する、請求項1に記載の認証装置。
【請求項4】
前記座標データ取得部は、予め定められた間隔で前記入力装置に与えられた入力に対応する座標値を、前記予め定められた間隔の時間内に取得する、請求項1に記載の認証装置。
【請求項5】
前記ストローク抽出部による処理が行なわれたタイミングを取得するように構成された時計部をさらに備え、
前記ストローク抽出部は、ストロークの検出に応答して、または、前記ストロークの入力の終了に応答して、前記計時部によって取得されたタイミングを前記ストロークデータに含める、請求項1に記載の認証装置。
【請求項6】
前記ストロークデータに含まれる座標データから、x座標値の最大値およびy座標値の最大値と、x座標値の最小値およびy座標値の最小値とを算出するように構成された座標値算出部をさらに備え、
前記ストローク形状判定部は、前記x座標値の最大値およびy座標値の最大値と、前記x座標値の最小値およびy座標値の最小値とに基づいて、ストロークの形状を判断する、請求項1に記載の認証装置。
【請求項7】
前記ストローク抽出部は、ストロークの開始位置の座標値と、前記ストロークの終了位
置の座標値とを含むストロークデータを算出し、
前記ストローク形状判定部は、前記開始位置の座標値と、前記終了位置の座標値とに基づいて、前記ストロークの形状を判断する、請求項1に記載の認証装置。
【請求項8】
前記ストロークデータに含まれる座標データから、x座標値の最大値およびy座標値の最大値と、x座標値の最小値およびy座標値の最小値とを求めるように構成された座標算出部をさらに備え、
前記ストローク形状判定部は、前記x座標値の最大値およびy座標値の最大値と前記x座標値の最小値およびy座標値の最小値に基づいて、前記入力装置を介して入力されたストロークの形状が点であるか否かを判断し、
前記ストローク形状判定部が前記ストロークの形状を点でないと判定すると、前記照合部は、前記ストロークを用いた認証処理を実行し、
前記ストローク形状判定部が前記ストロークの形状を点であると判定すると、前記照合部は、形状を点と判定した前記ストロークを認証処理に使用しない、請求項1に記載の認証装置。
【請求項9】
前記ストローク入力判定部は、
複数のストロークデータのストローク開始時刻を比較し、
各前記ストローク開始時刻の差が予め定められた一定値以下の場合に、前記比較した複数のストロークデータに共通するストローク開始時刻を設定する、請求項1に記載の認証装置。
【請求項10】
前記ストローク入力判定部は、
複数のストロークデータのストローク終了時刻を比較し、
各前記ストローク終了時刻の差が予め定められた一定値以下の場合に、前記比較した複数のストロークデータに共通するストローク終了時刻を設定する、請求項1に記載の認証装置。
【請求項11】
前記ストローク入力判定部は、前記複数のストロークデータのうちのストロークが入力されている間に、他のストロークが入力されたか否かを判定する、請求項1に記載の認証装置。
【請求項12】
前記入力装置は、複数の撮像素子を配置したタッチパネルを含む、請求項1〜11のいずれかに記載の認証装置。
【請求項13】
手書き入力されたパスワードの認証をプロセッサが行う認証方法であって、
予め入力されたテンプレートを読み出すステップと、
1つ以上の点入力を受け付けるステップと、
入力が受け付けられた点の座標値を含む座標データを取得するステップと、
前記取得された複数の前記座標データに基づいて、入力の始点から終点までを示すストロークの座標値をストロークデータとして算出するステップと、
前記算出されたストロークデータに基づいて、前記ストロークの形状を判定するステップと、
前記ストロークデータに基づいて、前記点入力が、同時入力または逐次入力のいずれであるかを判定するステップと、
前記ストローク形状についての判定結果と、前記点入力についての判定結果とに基づいて、前記入力されたストロークと、前記テンプレートとが、一致するか否かを判定するステップとを含む、認証方法。
【請求項14】
コンピュータを認証装置として機能させるためのプログラムであって、前記プログラム
は前記コンピュータに、
予め入力されたテンプレートを読み出すステップと、
1つ以上の点入力を受け付けるステップと、
入力が受け付けられた点の座標値を含む座標データを取得するステップと、
前記取得された複数の前記座標データに基づいて、入力の始点から終点までを示すストロークの座標値をストロークデータとして算出するステップと、
前記算出されたストロークデータに基づいて、前記ストロークの形状を判定するステップと、
前記ストロークデータに基づいて、前記点入力が、同時入力または逐次入力のいずれであるかを判定するステップと、
前記ストローク形状についての判定結果と、前記点入力についての判定結果とに基づいて、前記入力されたストロークと、前記テンプレートとが、一致するか否かを判定するステップとを実行させる、プログラム。
【請求項15】
請求項14に記載のプログラムを格納したコンピュータ読み取り可能な記録媒体。
【請求項1】
手書き入力されたパスワードの認証を行う認証装置であって、
予め入力されたテンプレートを格納するテンプレート記憶部と、
1つ以上の点入力を受け付けるように構成された入力装置と、
前記入力装置によって入力が受け付けられた点の座標値を含む座標データを取得するように構成された座標データ取得部と、
前記座標データ取得部によって取得された複数の前記座標データに基づいて、前記入力装置に対する入力の始点から終点までを示すストロークの座標値をストロークデータとして算出するように構成されたストローク抽出部と、
前記ストローク抽出部によって算出されたストロークデータに基づいて、前記ストロークの形状を判定するように構成されたストローク形状判定部と、
前記ストローク抽出部によって算出されたストロークデータに基づいて、前記入力装置に対する点入力が、同時入力または逐次入力のいずれであるかを判定するように構成されたストローク入力判定部と、
前記ストローク形状判定部による判定結果と、前記ストローク入力判定部による判定結果とに基づいて、前記入力装置を介して入力されたストロークと、前記テンプレートとが、一致するか否かを判定するように構成された照合部とを備える、認証装置。
【請求項2】
前記入力装置に対する入力が行なわれたタイミングを取得するように構成された時計部をさらに備え、
前記座標データ取得部は、前記入力装置から前記座標値を取得した時刻と、前記入力装置によって指示された点の座標値とを、前記座標データとして取得する、請求項1に記載の認証装置。
【請求項3】
前記座標データ取得部によって取得された各前記座標データを格納するように構成された座標データ記憶部と、
1回の認証に必要な座標データが前記座標データ記憶手段に格納されたことを検知するように構成された検知部とをさらに備え、
前記座標データ取得部は、前記1回の認証に必要な座標データが前記座標データ記憶部に格納された後に、前記座標データを取得する、請求項1に記載の認証装置。
【請求項4】
前記座標データ取得部は、予め定められた間隔で前記入力装置に与えられた入力に対応する座標値を、前記予め定められた間隔の時間内に取得する、請求項1に記載の認証装置。
【請求項5】
前記ストローク抽出部による処理が行なわれたタイミングを取得するように構成された時計部をさらに備え、
前記ストローク抽出部は、ストロークの検出に応答して、または、前記ストロークの入力の終了に応答して、前記計時部によって取得されたタイミングを前記ストロークデータに含める、請求項1に記載の認証装置。
【請求項6】
前記ストロークデータに含まれる座標データから、x座標値の最大値およびy座標値の最大値と、x座標値の最小値およびy座標値の最小値とを算出するように構成された座標値算出部をさらに備え、
前記ストローク形状判定部は、前記x座標値の最大値およびy座標値の最大値と、前記x座標値の最小値およびy座標値の最小値とに基づいて、ストロークの形状を判断する、請求項1に記載の認証装置。
【請求項7】
前記ストローク抽出部は、ストロークの開始位置の座標値と、前記ストロークの終了位
置の座標値とを含むストロークデータを算出し、
前記ストローク形状判定部は、前記開始位置の座標値と、前記終了位置の座標値とに基づいて、前記ストロークの形状を判断する、請求項1に記載の認証装置。
【請求項8】
前記ストロークデータに含まれる座標データから、x座標値の最大値およびy座標値の最大値と、x座標値の最小値およびy座標値の最小値とを求めるように構成された座標算出部をさらに備え、
前記ストローク形状判定部は、前記x座標値の最大値およびy座標値の最大値と前記x座標値の最小値およびy座標値の最小値に基づいて、前記入力装置を介して入力されたストロークの形状が点であるか否かを判断し、
前記ストローク形状判定部が前記ストロークの形状を点でないと判定すると、前記照合部は、前記ストロークを用いた認証処理を実行し、
前記ストローク形状判定部が前記ストロークの形状を点であると判定すると、前記照合部は、形状を点と判定した前記ストロークを認証処理に使用しない、請求項1に記載の認証装置。
【請求項9】
前記ストローク入力判定部は、
複数のストロークデータのストローク開始時刻を比較し、
各前記ストローク開始時刻の差が予め定められた一定値以下の場合に、前記比較した複数のストロークデータに共通するストローク開始時刻を設定する、請求項1に記載の認証装置。
【請求項10】
前記ストローク入力判定部は、
複数のストロークデータのストローク終了時刻を比較し、
各前記ストローク終了時刻の差が予め定められた一定値以下の場合に、前記比較した複数のストロークデータに共通するストローク終了時刻を設定する、請求項1に記載の認証装置。
【請求項11】
前記ストローク入力判定部は、前記複数のストロークデータのうちのストロークが入力されている間に、他のストロークが入力されたか否かを判定する、請求項1に記載の認証装置。
【請求項12】
前記入力装置は、複数の撮像素子を配置したタッチパネルを含む、請求項1〜11のいずれかに記載の認証装置。
【請求項13】
手書き入力されたパスワードの認証をプロセッサが行う認証方法であって、
予め入力されたテンプレートを読み出すステップと、
1つ以上の点入力を受け付けるステップと、
入力が受け付けられた点の座標値を含む座標データを取得するステップと、
前記取得された複数の前記座標データに基づいて、入力の始点から終点までを示すストロークの座標値をストロークデータとして算出するステップと、
前記算出されたストロークデータに基づいて、前記ストロークの形状を判定するステップと、
前記ストロークデータに基づいて、前記点入力が、同時入力または逐次入力のいずれであるかを判定するステップと、
前記ストローク形状についての判定結果と、前記点入力についての判定結果とに基づいて、前記入力されたストロークと、前記テンプレートとが、一致するか否かを判定するステップとを含む、認証方法。
【請求項14】
コンピュータを認証装置として機能させるためのプログラムであって、前記プログラム
は前記コンピュータに、
予め入力されたテンプレートを読み出すステップと、
1つ以上の点入力を受け付けるステップと、
入力が受け付けられた点の座標値を含む座標データを取得するステップと、
前記取得された複数の前記座標データに基づいて、入力の始点から終点までを示すストロークの座標値をストロークデータとして算出するステップと、
前記算出されたストロークデータに基づいて、前記ストロークの形状を判定するステップと、
前記ストロークデータに基づいて、前記点入力が、同時入力または逐次入力のいずれであるかを判定するステップと、
前記ストローク形状についての判定結果と、前記点入力についての判定結果とに基づいて、前記入力されたストロークと、前記テンプレートとが、一致するか否かを判定するステップとを実行させる、プログラム。
【請求項15】
請求項14に記載のプログラムを格納したコンピュータ読み取り可能な記録媒体。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【図23】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【図23】
【公開番号】特開2009−163482(P2009−163482A)
【公開日】平成21年7月23日(2009.7.23)
【国際特許分類】
【出願番号】特願2008−159(P2008−159)
【出願日】平成20年1月4日(2008.1.4)
【出願人】(000005049)シャープ株式会社 (33,933)
【Fターム(参考)】
【公開日】平成21年7月23日(2009.7.23)
【国際特許分類】
【出願日】平成20年1月4日(2008.1.4)
【出願人】(000005049)シャープ株式会社 (33,933)
【Fターム(参考)】
[ Back to top ]