以下、図面を参照しながら、本発明のいくつかの実施形態について詳細に説明する。なお、複数の図面において対応する要素には同一の符号を付した。
近年、例えば、スマートフォン、携帯電話、PDA、電子手帳、タブレットPC(パーソナルコンピュータ)などの情報処理装置に、指紋センサを搭載するものが増えている。これらの情報処理装置において、指紋センサは、例えばユーザを認証するために用いられる。また、指紋センサは、例えば、メーラーやブラウザなどの情報処理装置が備える機能を実行するために利用されることもある。しかしながら、例えば、指紋センサに指紋の情報を入力する際の指の移動速度が速すぎる、又は、指紋センサに指紋の情報を入力する際に指の位置が指紋センサの撮像領域の端によっているなどに起因して、指紋センサに十分な情報が入力されない場合が存在する。その結果、例えば、ユーザが指紋センサを介して実行するつもりだった機能とは異なる機能が実行されてしまうことが生じている。そのため、指紋センサを介して機能を実行する際に、指紋センサに入力された情報に基づいて成された判定の確からしさを検証することのできる技術が望まれている。そこで、いくつかの実施形態に係る情報処理装置では、指紋センサで指紋画像を取り込んでいる際中に生じる情報処理装置の回転運動を、例えば角速度センサなどの回転運動センサを用いて検出する。そして、検出した回転運動に基づいて、指紋センサで取得した指紋画像に基づいて推定した指紋センサ上での指の移動方向の確からしさを検証する。
図1は、いくつかの実施形態に係る指紋センサ3による機能の実行指示を説明する図である。図1には情報処理装置1が示されている。情報処理装置1は、例えば、スマートフォン、携帯電話、PDA、電子手帳、タブレットPC(パーソナルコンピュータ)などの指紋センサ3を備える装置である。指紋センサ3は例えばスイープ型の指紋センサであってよい。また、情報処理装置1は、情報処理装置1の回転運動を検出する回転運動センサ2も含んでいる(図1a)。なお、回転運動センサ2は例えば角速度センサである。
このような情報処理装置1において、ユーザは指紋センサ3上に指5をスイープさせて、指紋の情報を情報処理装置1に入力し指紋による認証を行う(図1b)。指紋による認証が成功すると、情報処理装置1のロックは解除される。なお、情報処理装置1のロックとは、例えば、他のユーザに情報処理装置1が不正利用されることを防止するために、利用できる機能を制限する情報処理装置1の状態のことである。
情報処理装置1の指紋センサ3は、また、ユーザが指紋センサ3上で動かした指5の移動方向を推定するためにも用いることができる。例えば、指紋センサ3で指5の複数の画像を取得し、取得した画像間の差分により指5の動きを動きベクトルに変換し、取得した動きベクトルを累積加算することで指5の移動方向を推定することができる。或いは、例えば、所定のフレームレートで指紋の画像を連続的に取り込み、取り込んだ指紋画像から指紋の特徴点を抽出する。そして、各フレームで撮像した画像中での指紋の特徴点の移動を追跡することで、指紋センサ3に対してユーザが動かした指5の移動方向を推定することができる。なお、指紋の特徴点は、例えば、指紋模様の中心である中心点、指紋の凸部模様の枝分かれである分岐点、指紋の凸部模様の行き止まりである端点、指紋模様の三方向からの集まりである三角州などを含む。また、指紋の特徴点は、その他にも接合点、島形線、汗腺孔、終止点などを含んでもよい。
そして、例えば、指紋センサ3で取り込んだ指紋画像に基づいて推定される指5の移動方向に対して、情報処理装置1が備える機能の実行を割り当てることで、指紋センサ3に指紋画像を取り込む際の指5の移動方向に応じて対応する機能を実行することができる。
図2は、いくつかの実施形態に係る機能実行情報200を例示する図である。機能実行情報200は、指5の移動方向201と、情報処理装置1が備える機能202とを含み、これらは対応付けられている。例えばこのような機能実行情報200を参照することで、情報処理装置1は、指紋センサ3で取り込んだ指紋画像に基づいて推定される指5の移動方向に対応する機能を実行することができる。即ち、例えば、情報処理装置1は、指紋センサ3で取り込んだ指紋画像に基づいて推定される指5の移動方向と一致する移動方向201に対応付けられている機能202を機能実行情報200から取得し、その機能202を実行する。例えば、指紋センサ3で取り込んだ指紋画像に基づいて推定される指5の移動方向が上方向である場合には、情報処理装置1は機能実行情報200から機能202「電話帳起動」の機能を取得し、電話帳の起動を実行する。
従って、ユーザは、実行したいと希望する機能を有する機能202に対応付けられている移動方向201に、指紋センサ3上で指5を移動させて指紋センサ3に指紋画像を取り込ませることで、目的の機能を実行することができる。換言すると、ユーザは指紋センサ3で指紋画像を取り込む際に動かす指5の移動方向に応じて、目的の機能の実行指示を情報処理装置1に入力することができる。このような指紋センサ3を利用した機能の実行指示の入力は迅速な機能の実行などを可能にし、大変便利である。
しかしながら、例えば、指紋センサ3で指紋画像を取り込む際の指5の移動速度が速すぎたために、指紋センサ3に指紋画像を取り込む際の指5の移動方向を正確には推定できない場合が存在する。或いは、指紋センサ3で指紋画像を取り込む際に指5の位置が指紋センサ3の撮像領域の端によっているために、指紋センサ3に指紋画像を取り込む際の指5の移動方向を正確には推定できない場合が存在する。その結果、例えば、ユーザが指紋センサ3を介して実行するつもりだった機能とは異なる機能が実行されてしまう状況が存在する。
図1cは、以上に述べたような、指紋センサ3により機能の実行指示を入力する際に指5が指紋センサ3の撮像領域の端によってしまう例を示している。図示されるように、図1cでは、指紋の認証により情報処理装置1のロックを解除(図1b)した後に、そのまま指5を指紋センサ3に対して右上方向に移動させて、機能の実行指示を入力している。ロックの解除操作の際には(図1b)、指5は指紋センサ3の左右の幅のほぼ中心に配置されている状態にある。そのため、ロックの解除操作に続けて、指5を指紋センサ3の右上方向に動かしたことで、機能の実行指示の入力の際には指5が指紋センサ3の端部に寄ってしまっている(図1cの枠20)。このように、例えばロックの解除に引き続いて情報処理装置1の指紋センサ3に機能の実行指示を入力する場合には、入力の際に指5が指紋センサ3の端によってしまう状況が生じやすい。また、特に、指紋センサ3が情報処理装置1の裏面に備えられている場合などでは、ユーザが指紋センサ3を視認せずに指紋の情報の入力を行う状況があり、このような状況では、指5が指紋センサ3の端によってしまうのを防ぐことが難しくなる。
そして、指紋センサ3で指紋画像を取り込む際に指5の位置が指紋センサ3の撮像領域の端によってしまった場合、得られた指紋画像では一部にしか指紋が写らない。このような指紋の情報が僅かしか含まれていない指紋画像を用いて指5の移動方向を推定した場合、例えば、指紋中の特徴点を十分には特定できないことがあり、その結果、実際にユーザが動かした指5の移動方向とは異なる移動方向を推定してしまうことがある。或いは、別の例では、指紋センサ3で指紋画像を取り込む際に指5を速く動かしてしまったために、指紋センサ3に設定されているフレームレートでは取得できる指紋画像の枚数が少なくなってしまうことがある。そして、少ない枚数の指紋画像から指5の移動方向を推定した場合、指紋の移動の経時変化を十分には追跡できず、結果として、実際にユーザが動かした指5の移動方向とは異なる移動方向を推定してしまうことがある。そして、誤った方向に推定された指5の移動方向に基づいて機能を実行した場合、ユーザが意図した機能とは異なる機能が実行されてしまうため、ユーザの利便性が損なわれている。
これに関し、例えば、移動方向の推定に十分な信頼性が得られるだけの指紋画像を指紋センサ3から取り込むことができない場合には、指紋センサ3を介した機能の実行を行わないように構成することも考えられる。しかしながら、この場合には、推定された指5の移動方向が正しい場合にも機能が実行されなくなるため、やはりユーザの利便性が損なわれてしまう。そのため、指紋センサ3を介して機能を実行する際に、指紋センサ3で取り込んだ指紋画像に基づいて推定される指5の移動方向の確からしさを検証することのできる技術が望まれている。
いくつかの実施形態では、指紋センサ3を介して機能を実行する際に、指紋センサ3により取り込まれた指紋画像に基づいて推定される指5の移動方向の確からしさを、回転運動センサ2から得られる情報処理装置1の回転運動の情報に基づいて検証する。従って、誤って推定された指5の移動方向に基づいて、ユーザが意図したのとは異なる機能が実行されてしまうことを防止することができる。
図3は、いくつかの実施形態に係る情報処理装置1の機能ブロック構成を例示する図である。情報処理装置1は、例えば、制御部300及び記憶部320を含んでいる。制御部300は、例えば認証部311、第1推定部312、第2推定部313、判定部314、実行部315などの機能部310を含んでいる。情報処理装置1の記憶部320は、例えば、プログラム321、並びに機能実行情報200及び後述する移動回転対応情報800などの情報322を記憶している。情報処理装置1の制御部300は、プログラム321を読み出して実行することで例えば認証部311、第1推定部312、第2推定部313、判定部314、実行部315などの機能部310として機能する。これらの各機能部310の詳細及び記憶部320に格納されている情報322の詳細については後述する。
以下、図4から図11を参照して、第1の実施形態に係る指紋センサ3に入力された機能の実行指示の検証処理を説明する。図4は、情報処理装置1に備えられた回転運動センサ2により検出される情報処理装置1の回転運動の回転軸を例示する図である。説明のために例として、情報処理装置1に以下の互いに直行する3つの軸であるピッチ軸401、ヨー軸402、ロール軸403を定める。
まず、情報処理装置1の表示画面6の短辺と同じ方向の軸をピッチ軸401とする。そして、表示画面6に向かって左から右に向かう方向(ピッチ軸401の矢印の方向)に、右ねじの進む方向を合わせた場合に、右ねじの回転方向と一致する軸の回転方向をピッチ回転の正の回転方向とし、逆の回転方向をピッチ回転の負の回転方向とする。
情報処理装置1の表示画面6の長辺と同じ方向の軸をヨー軸402とする。そして、表示画面6の下から上に向かう方向(ヨー軸402の矢印の方向)に、右ねじの進む方向を合わせた場合に、右ねじの回転方向と一致する軸の回転方向をヨー回転の正の回転方向とし、逆の回転方向をヨー回転の負の回転方向とする。
表示画面6に対して垂直方向を、ロール軸403とする。そして、例えば、情報処理装置1の表示画面6が備えられている側を表面とし、その反対側の面を裏面とする。この場合に、情報処理装置1の裏面から表面へ向かう方向(ロール軸403の矢印の方向)に、右ねじの進む方向を合わせたときに、右ねじの回転方向と一致する軸の回転方向をロール回転の正の回転方向とし、逆の回転方向をロール回転の負の回転方向とする。なお、情報処理装置1の表示画面6の上下左右方向は、例えば、設計の段階で情報処理装置1に対して想定された表示画面6の上下左右方向と一致していてもよい。
例えば、以上の様に定めたピッチ軸401、ヨー軸402、及びロール軸403を以下の情報処理装置1の回転運動の説明に用いるものとする。しかしながら、実施形態はこれに限定されるものでは無く、例えば、上述のピッチ軸401、ヨー軸402、及びロール軸403は互いに入れ替えられてもよい。或いは、ピッチ軸401、ヨー軸402、及びロール軸403のそれぞれの向きを情報処理装置1に対して別の方向にとってもよい。また、例えば、ピッチ軸401、ヨー軸402、及びロール軸403周りの回転方向の正及び負は、逆向きにとってもよい。
図5は、一実施形態に係る指紋センサ3を介して機能の実行指示を入力する際に情報処理装置1に生じる回転運動を例示する図である。図5aから図5cには、情報処理装置1と、情報処理装置1の指紋センサ3に機能の実行指示を入力する際のユーザの指5が示されている。なお、指紋センサ3が情報処理装置1の裏面に備えられている場合を例にとり説明を行うが、指紋センサ3が備えられる位置はこれに限定されるものではない。例えば、指紋センサ3は情報処理装置1の表面など、任意の位置に備えられてよい。
図5aでは、情報処理装置1の指紋センサ3上に指5を配置しており、指紋センサ3を介して機能の実行指示を入力する際の指紋画像の取り込みを開始する直前の状態を示している。また、図5bは、指紋センサ3に対して下方向に指5をスライドさせながら、指紋画像を取り込んでいる状態を表している。図5bにおいて、指紋画像を取り込む際に、ユーザは指紋センサ3に指5を押し付けながら動かしている。そのため、情報処理装置1には矢印51の方向に指5から力がかかっており、その力により情報処理装置1にはピッチ軸401周りの角速度52が発生している。また、この状態で、指紋センサ3による指紋画像の取り込みを完了し、ユーザが情報処理装置1の裏面から指5を離した場合を図5cは例示している。図5cでは、情報処理装置1の裏面が指5の力から解放された反動でピッチ軸401周りの角速度53が発生している。
図6は、別の実施形態に係る指紋センサ3を介して機能の実行指示を入力する際に情報処理装置1に生じる回転運動を例示する図である。図6a及び図6bには、情報処理装置1と、情報処理装置1の指紋センサ3に指紋センサ3を介して機能の実行指示を入力する際のユーザの指5が示されている。図6aでは、情報処理装置1の指紋センサ3上に指5を配置しており、指紋センサ3を介して機能の実行指示を入力する際の指紋画像の取り込みを開始する直前の状態を示している。また、図6bは、指5を指紋センサ3に対して左上方向にスライドさせて、指紋画像の取り込みを行い、取り込みを完了した状態を表している。図示されるように、指5を指紋センサ3に対して左上方向にスライドさせた反動で、情報処理装置1を支える指5を支点として、情報処理装置1はロール回転している。
例えば、以上で述べたように、情報処理装置1に機能の実行指示を入力する際の指5の移動方向に応じて情報処理装置1には力がかかり、その力の方向に応じて情報処理装置1には回転運動が生じる。この回転運動は、機能の実行指示を入力する際の指5の移動方向に応じた傾向を示す。例えば、図5で述べた例では、指紋センサ3に機能の実行指示を入力する際の指5の移動方向がヨー軸402方向に沿っている。この場合、例えば、情報処理装置1はピッチ回転を起こしやすい傾向がある。また、指5の移動方向が1つの軸の方向に沿っているため、他のヨー回転、及びロール回転などは起こりにくい傾向がある。別な例として、情報処理装置1の左右を指で挟んだ状態で、指紋センサ3上で中心から左方向又は右方向に指5を移動した場合、この指5移動方向はピッチ軸方向に沿っている。この場合には、例えば、情報処理装置1はヨー回転を起こしやすい傾向がある。更に、図6で述べた例でも、指紋センサ3に機能の実行指示を入力する際の指5の移動方向と、情報処理装置1をユーザが保持する際の指5(支点)の位置、並びに情報処理装置1の形状及び重さなどに応じて、情報処理装置1に生じる回転運動は所定の傾向を示す。そのため、機能の実行指示を入力する際の指5の移動方向と、その移動方向において生じる回転運動の傾向とを対応付ける情報を作成することで、情報処理装置1に生じた回転運動から機能の実行指示の際の指5の移動方向を推定することが可能である。
そこで、第1の実施形態では、機能の実行指示を入力する際の指5の移動方向と、その移動方向において生じる回転運動の傾向とを対応付ける情報を作成する。図7は、機能の実行指示を入力する際に指5の移動方向に応じて情報処理装置1に生じる回転運動のサンプリングを説明する図である。図7では、情報処理装置1に機能の実行指示を入力する際に指5の移動方向に応じて情報処理装置1に生じる回転運動を、回転運動センサ2でサンプリングした例が示されている。図7aから図7cにおいて、縦軸は角速度(degree/sec)を示し、横軸はサンプリングにおける時間(msec)を示している。また、例として、図7aから図7cには、所定の閾値を示す閾値70が示されているが、この閾値については後述する。横軸のサンプリングの期間は、指紋センサ3で指紋画像の取り込みを開始(開始点71)してから終了(終了点72)するまでの期間が含まれるように設定している。サンプリングは、例として1000 msecにわたって10 msec間隔で行っているが、実施形態はこれに限定されるものではなく、その他のサンプリング条件が用いられても良い。図7aはピッチ軸401周りの回転運動をサンプリングした例を示し、図7bはヨー軸402周りの回転運動をサンプリングした例を示し、図7cはロール軸403周りの回転運動をサンプリングした例を示している。図7に示す例では、情報処理装置1の下から上に向かって指5を動かしながら指紋センサ3に指紋画像を入力しており、この指5の移動方向はヨー軸402の方向に概ね沿っている。そのため、この指紋センサ3による指紋画像の取り込み期間において、情報処理装置1はピッチ回転を起こす傾向があり、図7に示す例でもピッチ回転している。また、図7に示す例では、図示されるように、その他のヨー回転、ロール回転はあまり生じていない。
例えば、このようなサンプリングを、指紋センサ3による機能の実行指示の入力に対して割り当てられている指5の移動方向毎に行う。一実施形態では、機能実行情報200の移動方向201に設定されている移動方向毎に、複数回にわたってサンプリングを実行する。そしてサンプリングの結果から、指紋センサ3による機能の実行指示の入力の際の指5の移動方向に対応する、情報処理装置1で生じる回転運動の傾向をパターンとして取得する。
図8は、以上の様なサンプリングにより取得した回転運動のパターンを、指5の移動方向と対応づける移動回転対応情報800を例示する図である。移動回転対応情報800は、一実施形態においては、情報処理装置1の記憶部320に記憶されている。移動回転対応情報800は、移動方向801、及び回転運動パターン802を含んでおり、これらの情報は対応付けられている。移動方向801は、指紋センサ3に指紋の画像を入力する際の指5の移動方向を表している。回転運動パターン802は、上述したサンプリングにより得られた、移動方向801に対応する回転運動のパターンを含む情報であり、図8の例では、ピッチ回転803、ヨー回転804、及びロール回転805を含んでいる。
一実施形態においては、回転運動のパターンとして、ピッチ回転803、ヨー回転804、及びロール回転805には、サンプリングの際の回転方向の正及び負についての情報が格納されていてもよい。この場合、例えば、サンプリングの際の回転方向の正及び負についての情報を回転運動のパターンとして抽出するために、図7に例示するように、角速度に対して所定の閾値70を設定する。そして、閾値70を超えて情報処理装置1が回転した場合には、その符号を回転運動のパターンとして取得する。例えば、図7の情報処理装置1の下から上に向かって指5を動かしながら指紋センサ3に指紋画像を入力する場合では、図7aに示すように、情報処理装置1は閾値70を超える角速度で正の方向にピッチ回転している。そのため、ピッチ回転803には、「正」が格納されてもよい。また、図7b及び図7cでは、閾値70を超える角速度でヨー回転もロール回転もしていないため、ヨー回転804、及びロール回転805には「無し」が格納されてもよい。即ち、この場合には、図8の移動回転対応情報800の移動方向801:上に対応する回転運動パターン802として、ピッチ回転803:正、ヨー回転804:無し、ロール回転805:無しのパターンが格納される。換言すると、一実施形態においてはピッチ軸401、ヨー軸402、及びロール軸403のそれぞれの軸において、軸の周りの角速度の値が正であり、且つ角速度の値の絶対値が所定の閾値を超えている場合、その軸の回転運動のパターンとして「正」を格納する。また、ピッチ軸401、ヨー軸402、及びロール軸403のそれぞれの軸において、軸の周りの角速度の値が負であり、且つ、角速度の値の絶対値が所定の閾値を超えている場合には、その軸の回転運動のパターンとして「負」を格納する。更に、ピッチ軸401、ヨー軸402、及びロール軸403のそれぞれの軸において、角速度の値の絶対値が所定の閾値以下である場合には、その軸の回転運動のパターンとして「無し」を格納する。例えば、以上のようにしてピッチ軸401、ヨー軸402、及びロール軸403のそれぞれの回転運動のパターンを取得してもよい。
また、図5で述べた例のように、指紋センサ3を介して機能の実行指示を入力する際に情報処理装置1が正の方向にピッチ回転した後、負の方向にピッチ回転する場合も存在する。例えば、このような場合には、その正及び負のピッチ回転の角速度の絶対値がいずれも閾値70を超えていれば、例えば、「正負」といった、時系列でのピッチ回転の方向の変化のパターンをピッチ回転803に格納してもよい。また、別の実施形態では、閾値70は角速度ではなく、情報処理装置1の回転量に対して設けられていてもよい。即ち、例えば、図7の角速度のグラフの積分値に対して閾値70が設定されていてもよい。また、図5で述べた例のように、情報処理装置1が正の方向と負の方向の両方に回転する場合には、正及び負のそれぞれに分けて積分を実行し、正及び負の回転量をそれぞれ求めて閾値70と比較するように構成してもよい。
なお、回転運動パターン802(即ち、例えば、ピッチ回転803、ヨー回転804、及びロール回転805)に格納される情報はこれに限定されるものではない。例えば、指紋センサ3を介して機能の実行指示を入力する際の指の移動方向を、その移動方向において検出される情報処理装置1の角速度に基づいて区別できるような情報であれば、その他の情報であってもよい。例えば、回転運動パターン802として格納される情報は、角速度が正から負へと移行するタイミングを示す時間情報、角速度のグラフの波形、角速度の最大値、角速度の最大値を迎えるタイミングを示す時間情報などであってもよい。なお、図8の例では、回転運動パターン802として、ピッチ回転803、ヨー回転804、及びロール回転805の情報を含む例を述べた。しかしながら、実施形態はこれに限定されるものではない。例えば、指紋センサ3を介して機能の実行指示を入力する際の指の移動方向を、回転運動センサ2により検出された角速度で区別することが可能であれば、ピッチ回転803、ヨー回転804、及びロール回転805の一部の軸の情報は含まれていなくてもよい。
図9は、第1の実施形態に係る情報処理装置1の制御部300が実行する指紋センサ3を介した機能の実行処理を例示する図である。図9の機能の実行処理の動作フローは、例えば、情報処理装置1の制御部300が記憶部320に格納されているプログラム321を読み出して実行することで実施される。一実施形態においては、情報処理装置1がロックされている状態において、情報処理装置1の指紋センサ3に指紋の情報が入力されると図9の動作フローは開始する。ステップS901において、情報処理装置1の制御部300は指紋センサ3で指紋の画像を読み取る。ステップS902において、制御部300は、例えば、読み取った指紋画像が情報処理装置1に登録されているユーザの指紋と一致するか否かを判定することで、ユーザの認証を行う。なお、情報処理装置1のユーザの指紋の情報は、例えば、記憶部320に予め格納されていてもよい。読み取った指紋の画像が情報処理装置1のユーザの指紋と一致せず、ユーザの認証が成功しなかった場合には(ステップS902がNo)、本動作フローは終了する。
一方、読み取った指紋画像が情報処理装置1に登録されているユーザの指紋と一致する場合には、フローはステップS903へと進む。ステップS903において、制御部300は、情報処理装置1のロックを解除する。ステップS904において、制御部300は、所定の期間にわたって指紋センサ3への指紋の入力を受け付ける。ステップS905において制御部300は、情報処理装置1に備えられている回転運動センサ2を起動する。
ステップS906において制御部300は、所定の期間内に指紋センサ3に指紋の画像が入力された場合に、指紋センサ3で撮像された複数の指紋画像に基づいて指5の移動方向の推定を実行し、指5の移動方向を推定できたか否かを判定する。指5の移動方向を推定できなかった場合には(ステップS906がNo)、本動作フローは終了する。なお、ステップS904において、指紋センサ3への指紋の入力の受け付けを開始してから所定の期間にわたって指紋の情報の入力が無い場合にも指5の移動方向を推定できないため、ステップS906はNoと判定され、動作フローは終了する。
一方、指5の移動方向を推定できた場合には(ステップS906がYes)、フローはステップS907へと進む。ステップS907において、回転運動の分析処理を実行する。回転運動の分析処理では、ステップS904で受け付けを開始した指紋センサ3への指紋の画像の入力の際に指紋センサ上での指の移動に伴って生じる回転運動を回転運動センサ2で検出する。そして、検出された回転運動に基づいて、所定期間において行われた指紋センサ3への指紋画像の入力の際の指5の移動方向を推定する。なお、回転運動の分析処理の詳細については図10を参照して後述する。ステップS908において制御部300は、ステップS906で指紋センサ3に入力された指紋画像に基づいて推定された指5の移動方向と、ステップS907で情報処理装置1の回転運動に基づいて推定された指5の移動方向とが一致するか否かを判定する。指5の移動方向が一致しない場合(ステップS908がNo)、本動作フローは終了する。一方、指5の移動方向が一致する場合(ステップS908がYes)、フローはステップS909へと進む。ステップS909において、制御部300は機能の実行処理を実行し、指5の移動方向に対応付けられている情報処理装置1の機能を実行して、本動作フローは終了する。なお、機能の実行処理の詳細については図11を参照して後述する。
以上の図9の動作フローにおいて、ステップS901からステップS903までの処理では、情報処理装置1の制御部300は、例えば、認証部311として機能する。また、ステップS904及びステップS906の処理では、情報処理装置1の制御部300は、例えば、第1推定部312として機能する。ステップS905及びステップS907の処理では、情報処理装置1の制御部300は、例えば、第2推定部313として機能する。ステップS908の処理では、情報処理装置1の制御部300は、例えば、判定部314として機能する。ステップS909の処理では、例えば、情報処理装置1の制御部300は、実行部315として機能する。
続いて、図10を参照して、図9のステップS907で実行される回転運動の分析処理の詳細を述べる。図10に示す動作フローは、例えば、情報処理装置1の制御部300が記憶部320に格納されているプログラム321を読み出して実行することで実施される。一実施形態においては、図9の動作フローにおいて処理がステップS907に進むと、図10の動作フローは開始する。ステップS1001において、制御部300は、ステップS905で受け付けを開始した、所定期間における指紋センサ3への指紋画像の入力の際に生じる指紋センサ上での指の移動に伴う回転運動についての情報を回転運動センサ2で取得する。回転運動センサ2で取得される回転運動についての情報は、例えば、情報処理装置1のピッチ軸401、ヨー軸402、ロール軸403周りの角速度のデータである。
ステップS1002において制御部300は、取得された回転運動についての情報から回転運動のパターンを特定し、特定したパターンが移動回転対応情報800に登録されているか否かを判定する。一実施形態においては、この判定は検出された回転運動の角速度の時系列での傾向が、移動回転対応情報800に登録されている回転運動パターン802に該当するか(例えば、似ているか)否かを判定することで行われる。この判定は例えば、以下のように実施されてよい。まず、移動回転対応情報800の回転運動パターン802には、上記に例示したように、回転運動の回転方向の正及び負又は回転無しについての情報が格納されているものとする。そして、ステップS1002において制御部300は、検出されたピッチ回転、ヨー回転、及びロール回転の角速度のそれぞれを閾値70と比較し、閾値70を超えて情報処理装置1が回転しているか否かを判定する。それにより、検出されたピッチ回転、ヨー回転、及びロール回転の角速度のそれぞれに対して、回転方向が「正」であるか、「負」であるか、「無し」であるかを決定し、所定期間において入力された機能の実行指示の際に生じる回転運動のパターンを特定する。ここでは、例えば、「ピッチ回転:正、ヨー回転:無し、ロール回転:無し」などの回転運動のパターンが特定されるものとする。そして、制御部300は、特定した「ピッチ回転:正、ヨー回転:無し、ロール回転:無し」などの回転運動のパターンが、移動回転対応情報800の回転運動パターン802に登録されているか否かを判定する。例えば、以上のようにして、ステップS1002の判定が実行されてもよい。なお、上述したように回転運動のパターンとして特定される情報は、回転方向が「正」であるか、「負」であるか、「無し」であるかの情報に限定されるものではない。例えば、回転量、角速度の最大値を迎えるタイミングなどのその他の情報をパターンの特定に用いてもよい。
ステップS1002において、特定された回転運動のパターンが移動回転対応情報800の回転運動パターン802に登録されている場合(ステップS1002がYes)、フローはステップS1003へと進む。ステップS1003において制御部300は、ステップS1002で特定された回転運動のパターンと一致する回転運動パターン802に対応付けられている移動方向801を移動回転対応情報800から取得する。そして、制御部300は、取得した移動方向801を呼び出し元のステップS907に返し、本動作フローは終了する。
一方、ステップS1002において、特定された回転運動のパターンが移動回転対応情報800の回転運動パターン802に登録されていない場合(ステップS1002がNo)には、フローはステップS1004へと進む。ステップS1004において、制御部300は、特定された回転運動のパターンが移動回転対応情報800に登録されていないことを示す判定異常の通知を、呼び出し元のステップS907に返し、本動作フローは終了する。
なお、ステップS1003から、ステップS907に返された移動方向801は、続くステップS908における移動方向の比較に用いられる。また、ステップS1004からステップS907に判定異常の通知が返された場合には、続くステップS908はNoと判定され、図9の動作フローは終了する。
以上の図10の動作フローにおいて、ステップS1001からステップS1004までの処理では、情報処理装置1の制御部300は、例えば、第2推定部313として機能する。
続いて、図11を参照して、図9のステップS909で実行される機能の実行処理についての詳細を述べる。図11に示す動作フローは、例えば、情報処理装置1の制御部300が記憶部320に格納されているプログラム321を読み出して実行することで実施される。一実施形態においては、図9の動作フローにおいて処理がステップS909に進むと、図11の動作フローは開始する。ステップS1101において、制御部300は、ステップS908で一致すると判定された指5の移動方向が、機能実行情報200に登録されているか否かを判定する。指5の移動方向が機能実行情報200に登録されていない場合(ステップS1101がNo)には、本動作フローは終了する。一方、指5の移動方向が機能実行情報200に登録されている場合(ステップS1101がYes)には、フローはステップS1102へと進む。ステップS1102において制御部300は、機能実行情報200において、ステップS908で一致すると判定された指5の移動方向に対応づけられている機能を実行し、本動作フローは終了する。
以上の図11の動作フローにおいて、ステップS1101からステップS1102までの処理では、情報処理装置1の制御部300は、例えば、実行部315として機能する。
以上で述べた、図9から図11の動作フローにより、情報処理装置1の制御部300は、指紋センサ3で取り込んだ指紋画像に基づいて指紋認証を行い、認証できた場合には情報処理装置1のロックを解除する。ロックを解除した場合、制御部300は、指紋センサ3で所定の期間にわたって指紋センサ3への指紋の入力を受け付け、また、回転運動センサ2を起動する。所定の期間内に指紋センサ3に指紋の情報が入力されると、制御部300は、指紋センサ3で取り込んだ指紋画像に基づいて指5の移動方向を推定する。また、制御部300は、指紋画像の取り込みの際に指紋センサ上での指の移動に伴って情報処理装置1に生じる回転運動を回転運動センサ2で検出し、検出した回転運動に基づいて指5の移動方向を推定する。そして、指紋画像に基づいて推定した指5の移動方向と、指紋画像の取り込みの際に回転運動センサ2で検出した情報処理装置1の回転運動に基づいて推定した指5の移動方向とが一致するか否かを判定する。これにより指紋画像に基づいて推定した指5の移動方向の確からしさを検証することができる。そして、移動方向が一致しない場合には、指紋画像に基づいて推定した指5の移動方向が誤っている可能性があるため、指5の移動方向に対応する機能の実行を行わない。一方、移動方向が一致する場合には、指紋画像に基づいて推定した指5の移動方向が正しい可能性が高いため、指5の移動方向に対応する機能を実行する。
以上で述べたように、第1の実施形態では指紋画像の取り込みの際に情報処理装置1に生じる回転運動に基づいて、指紋画像に基づいて推定した指5の移動方向の確からしさを検証するため、指5の移動方向を推定の精度を向上させることができる。従って、指紋画像に基づいて推定した指5の移動方向が誤っていた場合に、その誤って推定された指5の移動方向に基づいてユーザが意図したのとは異なる機能が実行されてしまうことを防止することができる。
また、第1の実施形態では、ロックの解除とともに、回転運動センサ2を起動するように構成している。即ち、情報処理装置1において回転運動センサ2が起動されるのを、ロックが解除されている場合に制限している。これは、例えば、情報処理装置1がロック状態にある場合には、ユーザの認証を行わないと情報処理装置1を不正に利用されてしまう恐れがあるため、ユーザが認証されていない場合には指紋センサ3を用いて機能を起動しなくてもよい状況が存在するためである。例えば、このように構成することで、回転運動センサ2を起動する時間が制限されるため、情報処理装置1の省電力化の効果につながる。
また、第1の実施形態では、指紋センサ3を介して機能の実行指示を入力できる期間を、ロックを解除してからの所定の期間内に制限している。これは、例えば、情報処理装置1には、機能の実行指示の入力の際の指紋センサ3上での指5の移動以外を原因とする回転運動が発生する可能性があり、そのような回転運動も回転運動センサ2で検出されてしまうためである。そのため、指紋センサ3を介して機能の実行指示を入力できる期間を、ロックを解除してから所定の期間内に制限し、指紋センサ3を介した機能の実行指示の入力を原因として情報処理装置1に生じる回転運動を特定できるようにしている。即ち、第1の実施形態では、例えば、指紋センサ3を介した機能の実行指示を入力に起因した回転運動を、ロックの解除の直後に情報処理装置1に生じる回転運動として特定している。
また、この指紋センサ3を介して機能の実行指示を入力できる期間の制限に関して、別の観点としては、ロックが解除されている状態であれば、ユーザは指紋センサ3を用いて指紋による認証操作を行わなくてもよい。また、ロックが解除されている状態であれば、情報処理装置1に備えられたタッチパネルなどのその他の装置を介して機能の実行指示の入力することが可能である場合も存在する。このような状況であれば、指紋センサ3を介して機能の実行指示を入力しなくてもよい可能性がある。そのため、第1の実施形態では、指紋センサ3を介して機能の実行指示を入力できる期間を、ロックを解除してから所定の期間内に制限している。しかしながら、実施形態はこれに限定されるものではない。後述する第2の実施形態では、指紋センサ3を介して機能の実行指示を入力できる期間を制限しない場合を例示する。
以下、図12及び図13を参照して第2の実施形態を説明する。第2の実施形態では回転運動センサ2で検出される情報処理装置1の回転運動のデータうちで、指紋センサ3により指紋の画像が取り込まれている期間における回転運動のデータを用いる。図12は、第2の実施形態に係る指紋センサ3を介して機能の実行指示を入力している期間の特定について説明する図である。なお、第2の実施形態においては、情報処理装置1の起動中に回転運動センサ2は常に起動していてもよい。
指紋センサ3により取り込まれた指紋画像に基づいて指5の移動方向を推定できる場合、その指紋画像に基づいて指紋センサ3上での指5の移動量も特定することが可能である。図12aは、情報処理装置1の下から上に向かって指5を動かして指紋センサ3に指紋画像を入力し、情報処理装置1に機能の実行指示を入力した場合の指5の移動量の時間変化を例示する図である。図12aでは、指紋画像に基づいて検出された指5の移動量を縦軸にとっている。また、その指紋画像を指紋センサ3で取り込んでいた期間を含む時間を横軸にとっている。図12aにおいて、指紋センサ3を介して機能の実行指示が入力されている期間は、例えば、指5の移動量が増加し始めて(増加開始点1201)から増加が止まる(増加終了点1202)までの期間として特定することができる。第2の実施形態では、この特定された指紋センサ3を介して機能の実行指示が入力されている期間において、回転運動センサ2で検出された情報処理装置1の回転運動を指5の移動方向の推定に用いる。例えば、図12bは、図12aと同じ期間において回転運動センサ2により検出されるピッチ回転の角速度の変化を示している。そして、図12bにおいて、例えば、図12aの指5の移動量が増加し始めて(増加開始点1201)から増加が止まる(増加終了点1202)までの期間と同じ期間における角速度を特定し、その期間における角速度に基づいて指5の移動方向の推定を実行する。
図13は、第2の実施形態に係る情報処理装置1の制御部300が実行する指紋センサ3を介した機能の実行処理を例示する図である。図13の機能の実行処理の動作フローは、例えば、情報処理装置1の制御部300が記憶部320に格納されているプログラム321を読み出して実行することで実施される。一実施形態においては、情報処理装置1がロックされていない状態において、情報処理装置1の指紋センサ3に指紋の情報が入力されると図13の動作フローは開始する。ステップS1301において制御部300は、入力された指紋画像に対して指5の移動方向の推定を実行する。ステップS1302において制御部300は、入力された指紋画像から指5の移動方向を推定できたか否かを判定する。入力された指紋画像から指5の移動方向を推定できなかった場合には(ステップS1302がNo)、本動作フローは終了する。
一方、入力された指紋画像から指5の移動方向を推定できた場合には(ステップS1302がYes)、フローはステップS1303へと進む。ステップS1303において、制御部300は、指紋センサ3により指紋の画像が取り込まれている期間において回転運動センサ2で検出された情報処理装置1の回転運動のデータを取得する。指紋センサ3により指紋の画像が取り込まれている期間は、例えば、図12を参照して述べたように指紋画像に基づいて推定される指5の移動量が増加し始めてから増加が止まるまでの期間として特定されてもよい。なお、ステップS1303で、回転運動センサ2により取得される回転運動は、例えば、情報処理装置1のピッチ軸401、ヨー軸402、及びロール軸403周りの角速度である。
ステップS1304において制御部300は、取得された回転運動のデータから回転運動のパターンを特定し、特定したパターンが移動回転対応情報800に登録されているか否かを判定する。一実施形態においては、この判定は検出した回転運動の角速度の時系列での傾向が、移動回転対応情報800に登録されている回転運動パターン802に該当するか(例えば、似ているか)否かを判定することで行われる。例えば、この判定はステップS1002と同様に実行されてもよい。
ステップS1304において、特定された回転運動のパターンが移動回転対応情報800の回転運動パターン802に登録されている場合(ステップS1304がYes)、フローはステップS1305へと進む。ステップS1305において制御部300は、ステップS1304で特定した回転運動のパターンと一致する回転運動パターン802に対応付けられている移動方向801を移動回転対応情報800から取得する。これにより、制御部300は、指紋センサ3に機能の実行指示を入力する際の指5の移動方向を推定する。制御部300が回転運動に基づいて、指紋センサ3に機能の実行指示を入力する際の指の移動方向を推定すると、フローはステップS1307へと進む。
一方、ステップS1304において、特定された回転運動のパターンが移動回転対応情報800の回転運動パターン802に登録されていない場合(ステップS1304がNo)には、フローはステップS1306へと進む。ステップS1306において、制御部300は、特定された回転運動のパターンが移動回転対応情報800に登録されていないことを示す判定異常の通知を続くステップS1307に返し、フローはステップS1307へと進む。
ステップS1307において制御部300は、ステップS1305で取得した回転運動に基づいて推定された移動方向801が、ステップS1302で指紋センサ3に入力された指紋画像に基づいて推定された指5の移動方向と一致するか否かを判定する。指5の移動方向が一致しない場合(ステップS1307がNo)、本動作フローは終了する。一方、指5の移動方向が一致する場合(ステップS1307がYes)、フローはステップS1308へと進む。なお、ステップS1306からステップS1307に判定異常の通知が返されている場合には、続くステップS1307はNoと判定され、本動作フローは終了する。ステップS1308において、制御部300は機能の実行処理を実行し、指5の移動方向に対応付けられている情報処理装置1の機能を実行して、本動作フローは終了する。ステップS1308の機能の実行処理は、一実施形態においては、図11の動作フローにより実行されてもよい。
以上の図13の動作フローにおいて、ステップS1301からステップS1302までの処理では、情報処理装置1の制御部300は、例えば、第1推定部312として機能する。ステップS1303からステップS1306の処理では、情報処理装置1の制御部300は、例えば、第2推定部313として機能する。ステップS1307の処理では、情報処理装置1の制御部300は、例えば、判定部314として機能する。ステップS1308の処理では、例えば、情報処理装置1の制御部300は、実行部315として機能する。
以上の図13の動作フローにより、情報処理装置1の制御部300は、指紋センサ3に入力された指紋画像に基づいて指5の移動方向を推定する。また、制御部300は、指紋センサ3により指紋の画像が取り込まれている期間において回転運動センサ2で検出された情報処理装置1の回転運動に基づいて、指紋センサ3に機能の実行指示を入力する際の指5の移動方向を推定する。そして、指紋画像に基づいて推定した指5の移動方向と、指紋画像の取り込みの際に回転運動センサ2で検出した情報処理装置1の回転運動に基づいて推定した指5の移動方向とが一致するか否かを判定する。これにより指紋画像に基づいて推定した指5の移動方向の確からしさを検証することができる。そして、移動方向が一致しない場合には、指紋画像に基づいて推定した指5の移動方向が誤っている可能性があるため、指5の移動方向に対応する機能の実行を行わない。一方、移動方向が一致する場合には、指紋画像に基づいて推定した指5の移動方向が正しい可能性が高いため、指5の移動方向に対応する機能を実行する。
以上で述べたように、第2の実施形態では指紋画像の取り込みの際に情報処理装置1に生じる回転運動に基づいて、指紋画像に基づいて推定した指5の移動方向の確からしさを検証するため、指5の移動方向を推定の精度を向上させることができる。従って、指紋画像に基づいて推定した指5の移動方向が誤っていた場合に、その誤って推定された指5の移動方向に基づいてユーザが意図したのとは異なる機能が実行されてしまうことを防止することができる。
また、情報処理装置1には、機能の実行指示の入力の際の指紋センサ3上での指5の移動以外を原因とする回転運動が発生する可能性があり、そのような回転運動も回転運動センサ2で検出されてしまう。そのため、回転運動センサ2で検出した回転運動に基づいて、機能の実行指示の入力の際の指紋センサ3上での指5の移動方向を推定するためには、指紋センサ3を介した機能の実行指示の入力を原因として情報処理装置1に生じる回転運動を特定する必要がある。第2の実施形態では、例えば指紋画像に基づいて推定される指5の移動量が増加し始めてから増加が止まるまでの期間を、指紋センサ3で指紋画像を取り込んでいる期間として特定し、その期間における回転運動を指5の移動方向の推定に用いている。従って、第2の実施形態では、指紋センサ3を介して機能の実行指示を入力できる期間を所定の期間などに制限しなくてもよい。
続いて、情報処理装置1のハードウェア構成例を説明する。図14は、いくつかの実施形態に係る情報処理装置1を実現するためのコンピュータ1400のハードウェア構成を例示する図である。図14の情報処理装置1を実現するためのハードウェア構成は、例えば、プロセッサ1401、メモリ1402、記憶装置1403、読取装置1404、通信インタフェース1406を備えている。また更に、図14の情報処理装置1を実現するためのハードウェア構成は、入出力インタフェース1407、回転運動センサ1408、及び指紋センサ1409も備えている。なお、プロセッサ1401、メモリ1402、記憶装置1403、読取装置1404、通信インタフェース1406、及び入出力インタフェース1407は、例えば、バス1420を介して互いに接続されている。
プロセッサ1401は、メモリ1402を利用して上述の動作フローの手順を記述したプログラム321を実行することにより、上述した各機能部310の一部または全部の機能を提供する。情報処理装置1の制御部300は、例えばプロセッサ1401であり、また、記憶部320は、例えばメモリ1402、記憶装置1403、及び着脱可能記憶媒体1405である。プロセッサ1401は、例えば、記憶装置1403に格納されているプログラム321を読み出して実行することで、認証部311、第1推定部312、第2推定部313、判定部314、実行部315として機能する。コンピュータ1400の記憶装置1403には、例えば、機能実行情報200及び移動回転対応情報800が格納されている。
メモリ1402は、例えば半導体メモリであり、RAM領域及びROM領域を含んで構成される。記憶装置1403は、例えばハードディスク、フラッシュメモリ(SSD(Solid State Drive)等)などの半導体メモリ、又は外部記憶装置である。読取装置1404は、プロセッサ1401の指示に従って着脱可能記憶媒体1405にアクセスする。着脱可能記憶媒体1405は、例えば、半導体デバイス(USBメモリ等)、磁気的作用により情報が入出力される媒体(磁気ディスク等)、光学的作用により情報が入出力される媒体(CD−ROM、DVD等)などにより実現される。
通信インタフェース1406は、プロセッサ1401の指示に従ってネットワーク1430を介してデータを送受信する。通信インタフェース1406は、例えばアンテナ(RF)からの信号の帯域処理などの通信処理に関する演算を行う無線通信装置に接続されており、アンテナ(RF)を介してデータを送受信する。入出力インタフェース1407は、例えば、マイク、キーボード、マウスなどの入力装置、並びに表示装置及びスピーカなどの出力装置との間のインタフェースに相当する。また、入出力インタフェース1407は、例えば回転運動センサ1408、及び指紋センサ1409と接続されている。入出力インタフェース1407は、例えば、プロセッサ1401から入力される信号を回転運動センサ1408、及び指紋センサ1409に出力する。また、入出力インタフェース1407は、例えば、回転運動センサ1408及び指紋センサ1409から入力された信号を、プロセッサ1401、又はメモリ1402へと渡す。
情報処理装置1の指紋センサ3は、例えば指紋センサ1409である。指紋センサ1409は、例えば、スイープ型の指紋センサなどの指紋を読み取るセンサを含み、例えば、取り込んだ指紋の画像を入出力インタフェース1407へと出力する。情報処理装置1の回転運動センサ2は、例えば、回転運動センサ1408である。回転運動センサ1408は、例えば、角速度を検出する角速度センサであり、検出した角速度を入出力インタフェース1407へと出力する。
実施形態に係るプログラム321は、例えば、下記の形態で情報処理装置1に提供される。
(1)記憶装置1403に予めインストールされている。
(2)着脱可能記憶媒体1405により提供される。
(3)プログラムサーバなどのサーバ1440から提供される。
以上で、いくつかの実施形態について説明してきた。しかしながら、本発明に係る実施形態は上記の実施形態に限定されるものではなく、上述の実施形態の各種変形形態及び代替形態を包含するものとして理解されるべきである。例えば、各種実施形態は、その趣旨及び範囲を逸脱しない範囲で構成要素を変形して具体化できることが理解されよう。また、前述した実施形態に開示されている複数の構成要素を適宜組み合わせることにより、本発明に係る種々の実施形態を成すことができることが理解されよう。或いは、実施形態に示される全構成要素からいくつかの構成要素を削除して又は置換して、或いは実施形態に示される構成要素にいくつかの構成要素を追加して本発明に係る種々の実施形態が実施され得ることが当業者には理解されよう。