小型ユーザー入力装置のシステムと方法
本発明のシステムと方法は、ステアリングホイール、マウス、ジョイスティック、ナビゲーションバー、スクロールバー、及び圧力検知ボタンなどの電子入力装置をエミュレートする。本方法は、指をスワイプセンサ上でスワイプし、スワイプセンサ上の指の第1場所と、スワイプセンサ上の第2場所の差を計算し、その差を複数の信号セットに変換することを備える。各信号セットは、電子入力装置の一つにより生成される信号をエミュレートする。この方法はこのようにして単一のスワイプセンサを使用して、複数の電子入力装置をエミュレートする。良好な実施形態においては、携帯型電子装置上のディスプレイを制御するために使用されるシステムは、携帯型電子装置に結合またはその一部を形成する。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願
本出願は、2003年6月25日に出願された「小型ユーザー入力装置のシステムと方法(SYSTEM AND METHOD FOR A MINIATURE USER INPUT DEVICE)」と題する係属中の米国暫定特許出願第60/482,607号の35U.S.Cセクション119(e)のもとでの優先権を主張するものである。2003年6月25日に出願された「小型ユーザー入力装置のシステムと方法(SYSTEM AND METHOD FOR A MINIATURE USER INPUT DEVICE)」と題する暫定特許出願第60/482,607号は、引用によりここに組み込まれたものとする。
【0002】
発明の分野
本発明は、ユーザー入力装置に関する。より具体的には、本発明は、携帯電子コンピューティングプラットフォームに対する入力装置をエミュレートするために使用されるバイオメトリックセンサに関する。
【背景技術】
【0003】
発明の背景
携帯電子コンピューティングプラットフォームの出現により、必要であればどんな場所においても楽しめる機能やサービスが可能になった。パームトップコンピュータ、パーソナルデジタルアシスタント、可動電話、携帯ゲームコンソール、バイオメトリック/健康モニタ、及びデジタルカメラは、携帯電子コンピューティングプラットフォームの日常の例である。携帯性への要求に応えるため、これらのコンピューティングプラットフォームは小さくなり、そしてバッテリーは長い寿命を持つようになった。
【0004】
これらの、今までになく小さくなった装置上でユーザーの入力を効率よく集めることは難しい。携帯電子コンピューティングプラットフォームは、それに制限されるわけではないが、ナビゲーション、つまりカーソルまたはポインタをディスプレイ上のある地点に動かすことや、選択、つまり項目またはアクション、及び方向を選択する、または選択しないことや、目で見えるような、または見えないようなフィードバックによる方向の変更などを含む複数の目的のために、これらのユーザー入力を必要とする。
【0005】
従来技術のシステムは、ユーザー入力に対するコンセプトを、より大型のパソコンから借用していた。マイクロジョイスティック、ナビゲーションバー、スクロールホイール、タッチパッド、ステアリングホイール、及びボタンは全て、今日の携帯電子コンピューティングプラットフォームにおいて採用されているが、その効果は限られていた。これらの装置全ては、携帯装置上の貴重な表面資源を大量に消費する。ジョイスティック、ナビゲーションバー、スクロールホイールのような機械的装置は、磨耗して信頼性を失うこともある。それらが単一のタスクのために、物理的に設計されたものであるために、一般的にそれらは、他のナビゲーション装置の機能を提供しない。それらのサイズと、要求される運動はしばしば携帯コンピューティングプラットフォーム上の最適な人間工学的配置を妨げる。更に、一般的なパソコンに対応するものであるこれらのより小さなバージョンは通常は、それらが検知する運動情報があまりにも粗い粒状であるために、正確または高解像度の位置情報を提供しない。
【0006】
指画像センサは、指の表面上の特徴(例えば、谷筋、稜線、細点)を、容量性、熱的、光学的、または他の検知技術を介して検出及び測定する。市場で最も広く普及している指画像センサは、二つのカテゴリに分けられる。それは(1)全サイズ配置型センサと、(2)いわゆるスワイプセンサと呼ばれる一般的により小さなものである。配置型センサは、指の関心対象であるほとんどの部分を、同時に受け入れるのに十分な大きさのアクティブな検知表面を有する。一般的に、それらは長方形の形状で、検知表面積は、少なくとも100mm2である。全配置型センサ上で画像が取得される間、指は停止状態に保たれる。
【0007】
指画像センサの他のタイプはスワイプセンサと呼ばれ、一つの方向(一般的には、長さ方向)においてはその全サイズを有するが、他の方向(一般的には、幅方向)においては短くされた細片状の画像取得領域により特徴付けられる。例としては、米国特許出願第20030016849及び国際特許出願WO 02/095349に、Andradeにより記述されているような、Atrua Wings ATW100センサがある。指は、その全体部分の画像が取得されるまで、センサ全体に渡って打たれる(スワイプされる)。この様子は、紙原稿読込み型スキャナの動作に類似している。指画像の連続した断片またはフレームが捕捉され、処理されて指の合成画像が構築される。
【0008】
いくつかの従来技術装置は、ユーザーを認証し、ディスプレイ装置上のカーソルを動かすためのタッチパッドを使用する。指画像センサに類似して動作するタッチパッドは、指紋上の稜線や谷筋を区別するのに十分な画像解像度や機能を提供しない。代わりに、タッチパッドは、指を小塊と認識して、小塊の位置を追尾することで運動を決定する。従って、タッチパッドは、細かな運動を追尾することができず、また、回転運動を検出することも実現できない。
【0009】
Bjornその他による、「構成可能な多機能タッチパッド装置(Configurable Multi-Function Touchpad Device)」という題名の米国特許公開第2002/0054695A1は、ユーザーを認証またはカーソルを制御するように構成できるタッチパッドを開示している。このタッチパッドは、指紋機能を含むために、タッチパッドの機能を強化する試みをしている。それは、単に容量性指画像センサのハードウェアを、より大きなサイズのタッチパッドに吸収してコスト削減を達成するに過ぎない。それは、ナビゲーション制御のために指画像データを使用することは開示していない。間違いなく、その大きなサイズのため、依然としてタッチパッドは、ほとんどの携帯電子コンピューティングプラットフォームにおいて使用されることが妨げられている。
【0010】
Kramerによる、「容量性半導体ユーザー入力装置(Capacitive Semiconductor User Input Device)」という題名の米国特許第6,408,087号は、コンピュータのディスプレイスクリーン上のカーソルを制御するための指紋センサを使用するシステムを開示している。このシステムは、検出された指紋の稜線と細孔の動きに従って、ディスプレイ上のポインタの位置を制御する。
【0011】
このシステムには多くの制限がある。それは、スワイプセンサを使用するシステムとは異なり、画像に基づく相関アルゴリズムを使用し、容量性配置型センサに代表されるように、複数の稜線を有する指紋画像を必要とする。稜線の方向に平行な運動を検出するためには、システムは、センサが細孔を検出することを必要とし、この要求のために、その使用が少なくとも500dpiという高解像度センサに制限している。しかし、稜線の測定は、非常に高い解像度のセンサに、指圧力の低解像度の変化を提供することを要求する。このアルゴリズムはマウスをエミュレートする場合に独特なもので、ジョイスティックやステアリングホイールのような、スクリーンの運動が常に指の運動に比例するわけではない入力装置の他のタイプをエミュレートするには適さない。例えば、ジョイスティックは、入力がないときは、ホームポジションに戻ることが要求され、ステアリングホイールは、回転運動を要求する。このシステムは、反転増幅器が全てのセンサセルに関連付けられている容量性センサに独特なものである。
【発明の開示】
【課題を解決するための手段】
【0012】
本発明の実施形態は、機械的部品を必要とせずにディスプレイを制御する入力を生成する。この方法の良好な実施形態において、指紋センサは、携帯電子装置のような電子装置に対してのユーザー入力装置をエミュレートするために使用される。ユーザー入力装置には、それに制限されるわけではないが、ステアリングホイール、マウス、ジョイスティック、ナビゲーションバー、及びスクロールホイールが含まれる。良好な実施形態のシステムは、その機械的に対応するものよりも設置面積が小さくて済み、機械的部品を使用しないので、より磨耗しにくく究極的な欠陥にはなりにくい。
【0013】
本発明の第1態様において、方法は、第1パターン化画像データと第2パターン化画像データの間の差を計算し、その差を信号セットに変換する。信号セットは、複数の電子入力装置のいずれか一つをエミュレートするために使用される一つまたは二つ以上の信号に対応する。好ましくは、第1パターン化画像データは、第1場所のバイオメトリック対象の画像に対応し、第2パターン化画像データは、第2場所のバイオメトリック対象の画像に対応する。
【0014】
他の実施形態において、方法は、第1場所のバイオメトリック対象の画像を読み込み、第2場所のバイオメトリック対象の画像を読み込むことを更に備える。好ましくは、バイオメトリック画像データは、指紋画像に関連する指画像データを備える。また、好ましくは、第1場所と第2場所のバイオメトリック対象の画像を読み込むことは、指スワイプセンサ全体に渡って指をスワイプすることを備える。または、第1場所と第2場所のバイオメトリック対象の画像を読み込むことは、指配置型センサ上に指を置くことを備える。
【0015】
他の実施形態において、差を計算することは、指センサ上の指の存在を検知することと、第1場所のバイオメトリック対象の画像と、第2場所のバイオメトリック対象の画像の間の直線的な差を、行に基づく相関を使用して計算することを備える。一つの信号セットは、オンスクリーンポインタを制御するためのコンピュータマウスの出力信号に対応することができる。この実施形態において、方法は、変倍係数により直線的な差を非線形に変倍することを更に備える。一つの実施形態において、非線形に変倍することは、直線的な差を平滑化することを備える。変倍係数は、指センサ上の指の、所定の場所の数に基づいて動的に決定される。非線形に変倍することは、線形差を、中央値フィルタリングすることと、指数的にフィルタリングすることを更に備える。
【0016】
他の実施形態において、一つの信号セットは、オンスクリーン対象を制御するためのスクロールホイールの出力信号に対応する。この実施形態において、差を信号セットに変換することは、一つまたは二つ以上の非線形変倍機能を使用して、直線的な差を指センサ上の指の運動方向に変換することを備え、指が指センサ上に検出されたときに信号セットを生成することは、スクロールホイールにより示された項目を選択することに対応する。
【0017】
他の実施形態において、一つの信号セットは、オンスクリーン対象を制御するためのナビゲーションバーの出力信号に対応する。この実施形態において、差を一つの信号セットに変換することは、ナビゲーションバーにより制御可能な複数の方向の一つにおける直線的な差を、所定の閾値と比較することと、直線的な差が閾値を超えているときは、ナビゲーションバーにより制御可能な一つの方向において運動の1ユニット分だけの、オンスクリーン対象の運動に対応する信号を生成することと、ナビゲーションバーにより制御可能な残りの複数の方向に対してこれらのステップを繰り返すことを備える。
【0018】
他の実施形態において、一つの信号セットは、オンスクリーン対象を制御するためのジョイスティックの出力信号に対応する。この実施形態において、差を一つの信号セットに変換することは、非線形変倍を使用して、直線的な差を指センサ上の指の運動方向に変換することと、指が指センサ上に検出されないときに、オンスクリーン対象を、ディスプレイ上のホームポジションに動かすことに対応する信号を生成することを備える。この実施形態において、オンスクリーン対象を、ディスプレイ上のホームポジションに動かすことに対応する信号を生成することは、オンスクリーン対象の速度を減少させるバネ質量緩衝器をシミュレートする信号を生成することを備える。または、追加的に、バネ質量緩衝器システムは、ホームポジションを越えて動かすか、その周りを振動させるか、またはその両方を行う。指の存在を検知することは、指センサ上の指により加えられた圧力を測定することを備える。指により加えられた圧力を測定することは、領域内指存在データの重み付け平均と、指画像データの平滑化平均と、指画像データの平滑化分散を算出することを備える。そして、対象をホームポジションに動かすことに対応する信号を生成することは、指センサの削減された圧力に関連する速度での緩衝信号に対応する信号を生成することを備える。
【0019】
他の実施形態において、一つの信号セットは、ディスプレイ上の対象を制御するためのステアリングホイールの出力信号に対応する。この実施形態において、直線的な差を計算することは、指センサ上の指の回転運動を推定することを備える。差を一つの信号セットに変換することは、回転運動を、オンスクリーン対象に対する回転角に変換することと、指センサ上に指が存在しない場合に、ディスプレイ上のホームポジションにオンスクリーン対象を戻すことに対応する信号を生成することを備える。ディスプレイ上のホームポジションにオンスクリーン対象を戻すことに対応する信号を生成することは、速度を減少させるバネ質量緩衝器システムに対応する信号を生成することを備える。または、追加的に、バネ質量緩衝器システムは、ホームポジションを越えて動かすか、その周りを振動させるか、またはその両方を行う。指の存在を検知することは、指センサ上の指により加えられた圧力を測定することを備える。ディスプレイ上のホームポジションにオンスクリーン対象を戻すことに対応する信号を生成することは、指センサ上の指により加えられた圧力量の減少分に対応する緩衝信号を生成することを備える。
【0020】
他の実施形態において、指センサ上の指の存在を検知することは、指画像データの平滑化分散の変動を追尾することを含む。
【0021】
他の実施形態において、方法は、信号セットを、複数の信号セットからディスプレイに送信することを更に含み、それによりディスプレイ上のオンスクリーン対象を制御する。ディスプレイは、ホスト装置の一部を形成し、ホスト装置は、携帯コンピュータ、パーソナルデジタルアシスタント、携帯電話、携帯ゲーム機、バイオメトリック/健康モニタ、及びデジタルカメラで構成されるグループから選択される。
【0022】
本発明の第2態様において、方法は、第1パターン化画像データと第2パターン化画像データの間の差を決定することと、複数のオンスクリーン対象を同時に制御するためにその差を使用することを備える。
【0023】
本発明の第3態様において、オンスクリーン対象の運動を制御するシステムは、パターン化画像を読み込み、未処理指画像データを生成する手段と、パターン化画像読込み手段に結合された、未処理パターン化画像データを運動情報に変換する手段と、指運動情報を、オンスクリーン対象の運動を制御するためのコンピュータ入力装置信号のセットに変換する手段とを備える。運動情報変換手段は、未処理パターン化画像データ変換手段に結合されている。
【発明を実施するための最良の形態】
【0024】
本発明によれば、指の運動は、スワイプ指画像センサ上で追尾され、それに制限されるわけではないが、マウスポインタ、ナビゲーションバー、ジョイスティック、スクロールホイール、及び圧力検知ボタンを含むより多くの伝統的な装置をエミュレートする。本発明は、何れかの技術の指画像センサを使用して、それに制限されるわけではないが、稜線、谷筋、及び細点を含む指画像データを捕捉し、携帯電子コンピューティングプラットフォーム用のユーザー入力を生成する。指の存在と、その回転及び直線運動と、それにより加えられた圧力と、これらのデータの時間に関する関係を検出することにより、本発明の実施形態は、磨耗し得る可動部品を含まない、単一の物理的指画像センサを使用して、どんな数のナビゲーション装置もエミュレートできる。
【0025】
このように、本発明によれば、追加ハードウェアなしで、複数の入力装置をエミュレートでき、一つまたは二つ以上の入力装置は、同時に機能でき、本方法は、その小さいサイズのため、スワイプセンサが好ましいが、いかなるセンサまたはセンサタイプにおいても機能し、システムは、磨耗し得る機械的可動部品を有せず、サイズが小さければ、センサは携帯装置上のほとんどいかなる場所にも設置でき、装置の設計者が新しい形状要素を考案し、ユーザー入力のためのセンサを人間工学的に最適な場所に設置することを可能にし、本システムと方法は、高解像度の出力を可能にし、それにより小さな指の運動でも、入力装置の大きな運動を生成するには十分であり、ユーザーの認証も随意に提供でき、複数の入力装置とユーザー認証が一緒に実装できるので、本システムのコストは他のシステムよりも安く、指画像センサと共に集積される専用ハードウェア論理において計測装置が実装されるときに、システムは、ホストのプラットフォーム上のコンピューティング関連資源を節約することができ、250dpiまたはそれ以下の低い解像度のセンサもコスト削減または感度の向上のために使用できる。
【0026】
良好な実施形態のシステムは、指画像センサ情報を処理するための、計測装置を呼ばれる多くの構成要素を備える。各構成要素は、画像データを受け取り、画像の位置の変化に関連する情報を生成するように構成される。データの位置の変化に関する情報は、エミュレータユニットに送信され、ジョイスティック、ステアリングホイール、マウス、ナビゲーションバー、及びスクロールホイールのような電子入力装置により生成される信号と類似の信号を生成する。信号はホスト装置に結合され、ホスト装置上のディスプレイの制御に使用される。ホスト装置は、携帯電話、PDA、及びラップトップコンピュータのような携帯電子プラットフォームを含む、いかなる電子プラットフォームであってもよい。
【0027】
このように、一つの例として、ユーザーは、携帯電話に結合された、またはその一部を形成するスワイプセンサまたは配置型センサ上で指をスワイプすることで、電話機のディスプレイスクリーン上に表示された電話番号リストをスクロールするスクロールホイールをエミュレートする。そして、ユーザーは指を使って、スワイプセンサを軽くたたく、またはより強く押す、またはスワイプセンサ上で他の行動をすることで、ハイライトされた電話番号を選択できる。ここで使用されたように、機能をエミュレートするためにセンサ上で実行または認識されるいかなる行動もイベントである。
【0028】
スワイプセンサが良好な実施形態で使用されるのは、それが携帯装置により適していることだけが理由なのではなく、それがより小さな画像を作成するということもその理由である。小さな画像はそれだけデータ量も少なく、演算の負担を軽くする。より大きなセンサからのデータを無視またはマスクオフしてそれをより小さなセンサに似せることもできるが、この方法は、ユーザーの指が関心領域に触れることさえ保証しないので、理想的とは言えない。スワイプ装置ではこれは問題にならない。
【0029】
ここで使用されるように、一連の測定値を作成する装置は指画像センサと呼ばれる。このような細片状の測定値データのそれぞれは、フレームと呼ばれる。フレームまたは一連のフレームを、画像データまたは指紋画像データと呼ぶこともできる。下記の例では、本発明の実施形態を記述するときにスワイプセンサを使用するが、より大きな指画像測定値データを作成する配置型センサもまた、本発明に従って使用できることも理解されよう。
【0030】
本発明の他の実施形態によれば、マウスポインタ、ナビゲーションバー、ジョイスティック、スクロールホイール、及び圧力検知ボタンのような電子入力装置をエミュレートするための情報を生成するために、指紋画像以外の画像を使用する。一つの実施形態においては、パターン化した物体をセンサ上に置き、それを滑らせ、回転し、より強くまたは弱く押し、またはそれ以外の方法で動かす。パターン化した物体はグローブまたは他のパターン化画像を含む表面であってよい。パターン化画像の運動に対応する情報は、電子入力装置をエミュレートするために生成されて使用される。他の実施形態においては、パーソナルデジタルアシスタント上でデータの入力に使用される、スタイラスのような装置を使用して、タッチスクリーン上のデータポイントを生成する。データポイントは、その違いもまた電子入力装置をエミュレートするために使用される第1場所と第2場所におけるパターン化画像に対応する。パターン化画像に対応するデータポイントが、本発明に従う多くの方法で、電子入力装置をエミュレートするために、作成され、捕捉され、使用され得るということは理解されよう。
【0031】
図1は、本発明によるシステム100の良好な実施形態を示している。システム100は、更にコンピューティングプラットフォーム120に結合される、計測装置グループ110に結合されるスワイプセンサ101を備える。その動作において、スワイプセンサ101は指紋画像を読み込み、画像データの一部分または画像に関連する情報(まとめて「画像データ」)を、計測装置グループ110に送信する。計測装置グループ110は、画像データのその一部分を使用して、指がスワイプセンサ101上で回転した角度のような位置情報を生成する。コンピューティングプラットフォーム120は、位置情報を装置エミュレーションデータに変換する。
【0032】
計測装置グループ110は、回転運動相関器112と、直線運動相関器113と、圧力検出器114と、指存在検出器115に結合される時間区間アキュムレータ111を備える。計測装置グループ110が、構成要素111、112、113、114、115を有するように表わされているが、本システムの実施形態は、対象となる適用に依存して、これらの構成要素のどんな組み合わせも有することができるということは理解されよう。例えば、本システムが上記のように、ナビゲーションバーだけをエミュレートするように設計されていれば、直線運動相関器113と指存在検出器115のみが計測装置グループ110に必要となる。
【0033】
利用可能であれば、時間区間アキュムレータ111は、スワイプセンサ101と共に一体化されるか、または他のハードウェア構成要素に一体化されるかのいずれかにより、ハードウェアとして実装される。回転運動相関器112と、直線運動相関器113と、圧力検出器114と、指存在検出器115を含む他の計測装置は、スワイプセンサ101と共に一体化されるか、または他のハードウェア構成要素に一体化されるかのいずれかにより、部分的にまたは全面的にハードウェアとして実装してもよい。または、これらの構成要素は、コンピューティングプラットフォーム上に、ソフトウェアとして実装してもよい。スワイプセンサ101と、ハードウェアとして実装された一体化計測装置は、まとめてセンサロジック104と呼ばれる。別の実施形態において、スワイプセンサ101は、配置型センサと置き換えられる。
【0034】
コンピューティングプラットフォーム120は、ホスト携帯コンピューティングプラットフォームを代表するが、ユーザー入力装置をエミュレートするために使用される一つまたは二つ以上の装置エミュレーションユニットを一緒に形成する中央処理装置とメモリを有する。コンピューティングプラットフォーム120は、回転位置出力140を有するステアリングホイールエミュレータユニット121と、ポインタX出力150と、ポインタY出力151を備えるマウス出力153を有するマウスエミュレータユニット122と、ジョイスティック位置出力160を有するジョイスティックエミュレータユニット123と、ナビゲーション出力161を有するナビゲーションバーエミュレータユニット124と、スクロールホイール出力163を有するスクロールホイールエミュレータユニット125と、圧力メトリック出力165を有する圧力検知ボタンエミュレータユニット126を備える。エミュレータユニット121〜126のそれぞれは、指存在検出器115に結合される第1入力を有する。エミュレータユニット121〜125のそれぞれは、直線運動相関器113に結合される第2入力を有する。ステアリングホイールエミュレータユニット121は、回転運動相関器112に結合される第3入力を有する。圧力検知ボタンエミュレータユニット126は、圧力検出器114に結合される第2入力を有する。
【0035】
一つの実施形態において、システム100は、全ての出力140、153、160、161、163、165についての信号を生成する。出力140、153、160、161、163、165についての各生成信号は、それぞれの電子入力装置により生成される信号に対応する。このように、回転位置出力140について生成された信号は、コンピュータシステム(例えば、ホスト装置)によって受領されたときに、ディスプレイを制御するために使用されるコンピュータマウスにより生成される信号に対応する。同様に、マウス出力153について生成される信号は、コンピュータマウスにより生成される信号に対応する。ジョイスティック位置出力160について生成される信号は、コンピュータジョイスティクにより生成される信号に対応する。ナビゲーション出力161について生成される信号は、コンピュータジョイスティックにより生成される信号に対応する。スクロールホイール出力163について生成される信号は、コンピュータスクロールホイールにより生成される信号に対応する。そして、圧力メトリック出力165について生成される信号は、圧力検知ボタンにより生成される信号に対応する。
【0036】
ここで使用されるように、出力への参照は、その前後関係に依存して、出力線と、その線についての信号の両者を参照する。
【0037】
これらの出力線140、153、160、161、163、165の全てが、本発明に従って使用される必要はない。例えば、ジョイスティックのみが、ホスト装置上のディスプレイを制御するために使用されるときは、ジョイスティック位置出力160のみが、ディスプレイを制御するためにホスト装置に結合される。または、システム100またはホスト装置は、一つまたは二つ以上の入力装置をエミュレートする信号を提供するために、ホスト装置へ、一つまたは二つ以上の出力140、153、160、161、163、165を選択的に結合するスイッチを有する。このスイッチ(図示せず)が、ハードウェアとして、またはソフトウェアとして、またはその両方の組み合わせで実装できることは理解されよう。
【0038】
スワイプセンサ101は、回転運動相関器112、直線運動相関器113、圧力検出器114、指存在検出器115を含む種々の計測装置に、時間区間アキュムレータ111を介して送られる未処理画像データ131を捕捉する。ここで使用されるように、「未処理指紋画像データ」、「未処理画像データ」、「未処理データ」という用語は全て、下記に記述するように、平滑化などの処理が施される前の指紋画像データのことをいう。
【0039】
下記により詳細に記述するように、回転運動相関器112は、画像データの連続フレームを得て、相関法を使用してそれらを、その出力線132について生成される回転角に変換する。ここで使用されるように、全ての出力線と信号(例えば、回転角、直線的変位などを示す)は、同じ参照番号で示される。回転運動相関器112は回転運動ΔΘ132を抽出し、それをステアリングホイールエミュレータユニット121に送信する。直線運動相関器113は、画像データの連続フレームを得て、相関法を使用してそれらを、X方向(ΔX)とY方向(ΔY)の両方向における直線運動に変換する。直線運動相関器113は、マウスエミュレータユニット122、ジョイスティックエミュレータユニット123、ナビゲーションバーエミュレータユニット124、スクロールホイールエミュレータユニット125に対する運動ΔX133とΔY134を抽出する。
【0040】
指存在検出器115は指の存在を検出し、指存在情報136を、全てのエミュレータ121〜126へ送信する。圧力検出器114は圧力情報を、圧力検知ボタンエミュレータユニット126へ送信する。
【0041】
システム100は、一つの入力装置のみ(単一モード)または複数の装置(複数モード)をエミュレートする機能を有する。複数モード操作においては、スワイプセンサ101と、関連する計測装置は、同時に、または時間的に異なる時点において二つまたは三つ以上の装置をエミュレートする。一つの例において、システム100はゲームのジョイスティックをエミュレートするが、ゲームを選択するためのゲーム間のスクロールホイールもエミュレートする。他の例として、レースカーゲームにおいてシステム100は、方向制御のためのジョイスティックと、加速またはブレーキをかけるための圧力検知ボタンの両方をエミュレートする。
【0042】
指存在検出器115は画像データを分析して、指が存在するかどうかを決定する。任意の時間において指の存在を検出することは複雑な作業であり、多くの関係する要因により難しくなる。固有のセンサノイズ、センサ間の変動、センサ表面の残留物、装置の近くを装置に触れないで浮遊する指を検知するセンサの機能などは、下記に記述するように、全てその原因となる問題である。
【0043】
本発明の実施形態は、フレーム統計を使用して指の運動を検出する。本発明の一つの実施形態は、瞬間的なフレーム統計を大幅に平滑することにより、ノイズ耐力を確実にする。最も有効な統計は、あるフレームの分散であり、フレーム中の全ての画素を使用するか、または効率化の目的で適切に選択された一部を使用して計算できる。良好な実施形態においては、画像フレームの中心行における全ての画素のうち、適切に選択した一部が使用される。i番目のフレームに対する分散は、Var(i)と表わされる。使用される指数関数的平滑化は、従来技術においてよく知られている。任意のフレームiにおける平滑化分散SmoothVar(i)は、式(1)により与えられる。
【0044】
SmoothVar(i)=fac*SmoothVar(i−1)+(1−fac)*Var(i) [式1]
ここで、facは、どの程度の平滑化を望むかに依存する0から1の間の任意の数値である。好ましくは、fac=0.9である。SmoothVar(0)はVar(0)として定義される。Var(i)とSmoothVar(i)は共に、8ビット画素データに対しては、0と128の範囲の値をとることができる。
【0045】
任意の時間において、センサ上に指が存在するかどうかを決定するために、本発明は、図2のグラフ200で示される分散の履歴という形式における前後関係を利用する。グラフ200は、横軸に時間tを表わし、時間tの関数であるSmoothVarを縦軸に表わしている。グラフ200は、SmoothVar値であるSVONとSVOFFも示している。ある特定に時間におけるSmoothVarが、SVONから所定の値の範囲内にあれば、システムは、指がスワイプセンサ101上にあることを検出する。同様に、ある特定の時間におけるSmoothVarが、SVOFFから所定の値の範囲内にあれば、システムは、指がスワイプセンサ101上にないことを検出する。グラフ200は、時間t1、t3、t5においてシステム100が、指はスワイプセンサ101上にないと決定し、時間t2とt4においてシステム100は、指がスワイプセンサ101上にあると決定する。これらの決定は、図3を参照してより明確に説明される。
【0046】
図3A及び図3Bから構成される図3は、図1におけるスワイプセンサ101上に指があるかどうかを決定するために使用される、良好な実施形態の方法のステップ300を示している。この決定は、図1の指存在検知器115上で実行されるステップを使用してなされる。下記により詳細に説明するように、ステップ300は、スワイプセンサ101上にある画像の分散の履歴を使用して、指がスワイプセンサ101上にあるかどうかを決定する。
【0047】
開始ステップ301はステップ303に進み、フレームカウントiを0に初期化する。次に、ステップ305において、時間t=0における分散Var(0)が、下記に記述する閾値VT0未満かどうかが決定される。Var(0)がVT0未満の場合、処理はステップ307に進み、そうでない場合は、処理はステップ309に進む。ステップ307で、分散STATEはOFFに設定され、変数MinVarOffはVar(0)に設定され、変数MaxVarOnは0に設定され、処理はステップ313に進む。ステップ309で、Var(0)がVT0以上かどうかが決定される。Var(0)がV以上の場合、処理はステップ311も進み、そうでない場合は、処理はステップ313に進む。ステップ311で、変数STATEはONに設定され、変数MinVarOffは128に設定され、変数MaxVarOnはVar(0)に設定され、処理はステップ313に進み、変数SmoothVar(0)はVar(0)に設定される。
【0048】
次に、ステップ315において、画像データの次のフレームが図1のスワイプセンサ101から読み込まれ、ステップ317において、フレームカウンタiは増加される。ステップ319で、STATEがOFFかどうかが決定される。STATEがOFFの場合、処理はステップ321に進み、そうでない場合は、処理はステップ333に進む。ステップ321において、SmoothVar(i)−MinVarOffがVC1と比較される。SmoothVar(i)−MinVarOffのほうが大きい場合は、処理はステップ323に進み、そうでなければステップ325に進む。ステップ323で、変数STATEはONに設定され、変数MinVarOffは128に設定され、変数MaxVarOnはSmoothVar(i)に設定され、処理はステップ315に戻る。
【0049】
ステップ325で、変数STATEはOFFに設定される。次に、ステップ327で、SmoothVar(i)はMinVarOffと比較される。SmoothVar(i)がMinVarOff未満の場合は、処理はステップ329に進み、そうでない場合は、処理はステップ315に進む。ステップ329において、変数MinVarOffはSmoothVar(i)に設定され、処理はステップ315に戻る。
【0050】
(STATEがONであるため到達した)ステップ333において、MaxVarOn−SmoothVar(i)の値は、下記に記述するVC2の値と比較される。MaxVarOn−SmoothVar(i)がVC2より大きい場合は、処理はステップ335に進み、そうでない場合は、処理はステップ337に進む。ステップ335で、変数STATEはOFFに設定され、変数MinVarOffはSmoothVar(i)に設定され、変数MaxVarOnは0に設定され、処理はステップ315に戻る。ステップ337において、変数STATEはONに設定される。次に、ステップ339において、変数SmoothVar(i)はMaxVarOnと比較される。SmoothVar(i)がMaxVarOnより大きい場合は、処理はステップ341に進み、そうでない場合は、処理はステップ315に戻る。ステップ341で、変数MaxVarOnはSmoothVar(i)に設定され、処理はステップ315に戻る。
【0051】
上記の、ステップ315に戻るステップにおいて、このステップの戻りは他の手段により破棄できる。
【0052】
ステップ300は、指がスワイプセンサ101上にあると考えられるときは、SmoothVarのピークを追尾し、指がスワイプセンサ101上から離れていると考えられるときは、最低の谷を追尾する。SmoothVar(t)は時間tの関数である。STATEは、現在のSmoothVar(t)と最新のピークまたは谷に判別できる差があるときにのみ変化する。STATEがONの場合、システム100は指が検出されたと決定し、そうではなく、STATEがOFFの場合は、システムは指が検出されなかったと決定する。
【0053】
本発明の実施形態はノイズを有利に平滑化し、決定のために前後関係を利用し、それらの決定をするために瞬間的な値を使用することはしない。更に、本発明の実施形態は、絶対分散ではなく分散変化を使用するので、実施形態で使用されるアルゴリズムは、異なる環境条件において、また異なるセンサタイプに対して、より強固である。
【0054】
更に図3を参照すると、VT0は一般的に、センサに依存して1から180の範囲であるが、良好な実施形態は35を使用する。VC1とVC2は1から50の範囲であり、最適値はまた、センサにある程度依存する。良好な実施形態において、VC1=VC2=8である。しかし、VC1とVC2はどんな値の組み合わせも取ることができることは理解されよう。指の運動は、SmoothVar(i)において自然の変動を引き起こすため、VC1とVC2に対して小さすぎる値は、不要な状態の変化を引き起こし、それゆえ任意の時間における指の存在の不正確な検出ということの原因になりかねない。別の実施形態において、VC1とVC2はピークと谷の百分率(例えば、VC1=MinVarOffの20%、VC2=MaxVarOnの25%)、またはピークと谷の複素線形または非線形関数であってよい。
【0055】
再び図1を参照すると、直線運動相関器113は、その出力ポート上に指の運動ΔX133とΔY134を二つの直交する方向に生成し、図4Aと図4Bに定義されるように、ΔXはセンサの幅に沿うx次元の運動であり、ΔYはセンサの高さに沿うy次元の運動である。図4Aは、本発明の一つの実施形態に従う、y方向の長さを短縮した、スワイプセンサ400の第1方向を示している。図4Bは、本発明の他の実施形態に従う、x方向の長さを短縮した、スワイプセンサ400の第2方向を示している。一般的にユーザーは、図4Aに示すように方向付けられたスワイプセンサ400を使用するときは、指をy方向(例えば、垂直に)にスワイプし、図4Bに示すように方向付けられたスワイプセンサ400を使用するときは、指をx方向に(例えば、水平に)スワイプする。ΔY134を行に関して検出し、ΔX133を画素に関して検知する行に基づく相関アルゴリズムは、「複数の部分的バイオメトリックフレーム走査からのバイオメトリック画像アセンブリの方法とシステム(Method and System for Biometric Image Assembly from Multiple Partial Biometric Frame Scans)」とい題名の、2002年7月12日出願の、米国特許出願第10/194,994号に説明されており、ここに引用によりその全体の内容を組み込んだものとする。指の変位は、まず運動速度を計算するということなしで計算される。
【0056】
行に基づくアルゴリズムの追加的な利点は、細孔に頼ることなく、一つまたは二つの稜線しかない連続行の間の運動を検出するということである。
【0057】
本発明によれば、回転運動相関器112は、機械的部品なしで実装される。回転運動相関器112は、指の回転運動ΔΘ132の推定値を生成する。良好な実施形態においては、指画像の各フレームは、二つの(左と右)のウィンドウに分割される。同じウィンドウの連続するフレームは、回転に対して分析される。各ウィンドウにおける直線運動相関器113を使用して、各ウィンドウのY次元における行のオフセットが計算される。行のオフセットが、左ウィンドウにおける画像が、右ウィンドウの画像から逆の方向へ行こうとしていることを示している場合は、回転が検出される。例えば、左ウィンドウが、画像は上昇していることを示し、右ウィンドウが、画像は降下していることを示すときは、指は時計方向に回転している。
【0058】
回転運動ΔΘ132は回転角で表現でき、規格化因子により除算された、二つのウィンドウの行のオフセットの合計として算出される。結果は、ラジアンで表現された運動角である。
【0059】
このアルゴリズムの重要性はその簡潔性にある。各ウィンドウから算出された相関値は、フレーム全体の相関値を提供するために組み合わせることができる。それゆえ、追加的な演算資源をほとんど必要とせず、待ち時間も問題にはならない。このレベルの簡潔性であれば、回転運動相関器112を簡単にハードウェアとして実装することができ、特に、直線運動相関器が既に実装されている場合はなお更である。
【0060】
角度に関する運動の粒状度を向上し、指がセンサ101の中心に正確にないときでも指の回転を捕捉するために、ウィンドウの数を増やすことができるということは理解されよう。また、各ウィンドウのサイズは同じである必要はなく、その配置においても全体としての対称性が要求されることもないということも理解されよう。
【0061】
本発明の実施形態は、圧力トランスデューサを使用することなく、稜線の幅を検知することなく、また画素をカウントすることもなく、フレームの統計と、指の検出領域を組み合わせることにより指の圧力を有利に測定する。
【0062】
フレームにおける画素の値、またはグレイレベルは、フレームに指の圧力が下に向けてより強く加えられると暗くなり、圧力が減少すると明るくなる。良好な実施形態において、画素は15のグレイレベルを有するとして定義され、レベル0は指が存在しないことに相当し、レベル14は、その存在が画素を完全に暗くする指に相当する。または、画素は0から15の16のグレイレベル(4ビット)を有する。本発明によれば画素は、どんなビット数により定義されるどんな数のグレイレベルを有することができる。フレーム平均とフレーム分散は、上記に引用によりここに組み込まれた米国特許出願第10/194,994号に記載されている。この効果もまた、分散の変動という直接の結果になる。
【0063】
稜線の幅の検出は、その幅を測定できるように、稜線の範囲を決定し、その輪郭を追尾するために多大な計算量が必要となる。画素の数はしばしば非常に変化に富み、どの画素が背景の部分で、どの画素が指自身からのものかを決定するために、固定のまたは中央値に基づく閾値を適用することが必要となる。
【0064】
本発明の実施形態は、平滑化されたフレーム統計を、ある領域内のセンサのどの部分が指を検出するかに関する情報と組み合わせて、圧力の推定値の範囲を与えることにより、相対的な指の圧力を決定する。
【0065】
図5は、本発明による指センサ500の一つの良好な実施形態を示している。センサ指センサ500はフレーム501を備える。フレーム501は、論理的に4つの領域(サブフレーム)505、510、515、520に分割され、それは三つに分離してはいるが重なりあっている領域として処理される。つまり、左のサブフレーム530(領域505と510の組み合わせ)と、中央のサブフレーム535(領域510と515の組み合わせ)と、右のサブフレーム540(領域515と520の組み合わせ)である。本発明によればセンサ500は、どんな数の重なりあう領域、隣接する領域、または重なりあう領域と隣接する領域の組み合わせにも分割できるということは理解されよう。
【0066】
指存在検出器115で記述された指検出が、左、右、及び中央のサブフレームに対して別々に実行され、各領域における指の存在に関しての結論がそれぞれ独立して決定される。変数Δ左(異なる反復における左のサブフレーム530間の差)と、Δ中央(異なる反復における中央のサブフレーム535間の差)と、Δ右(異なる反復における右のサブフレーム540間の差)は、指が検出されない場合はゼロと定義され、左のサブフレーム530、中央のサブフレーム535、及び右のサブフレーム540のそれぞれにおいて指が検出される場合は、1と定義される。
【0067】
上記のように、平均と分散の計算はノイズにより相当な量の変動をする傾向がある。それらは、下記の式2と式3により指数関数的に平滑化される。
【0068】
SmoothAvg(i)=fac*SmoothAvg(i−1)+(1−fac)*Avg(i) [式2]
SmoothVar(i)=fac*SmoothVar(i−1)+(1−fac)*Var(i) [式3]
別の実施形態において、平滑化統計を、アレイ全体に対してではなく、センサのあるサブフレームに対して使用することができる。
【0069】
図6は、本発明の一つの実施形態によるフレームiにおける推定圧力の計算に使用されるステップ600を示している。ステップは、図1に示す圧力検知ボタン126で実行される。図6を参照すると、処理はステップ601で開始してステップ603に進み、Δ左+Δ中央+Δ右の合計が0と比較される。両者が等しい場合、処理はステップ605に進み、そうでない場合は、処理はステップ607に進む。ステップ605で、変数RawPressure(i)は0に設定され、処理はステップ609に進み、そこで終了する。ここで、iは現在のフレームカウント数に等しい。ステップ607で、変数RowPressure(i)は、値Wd*(Δ左+Δ中央+Δ右)+Wa*(16−SmoothAvg(i))+Wv*(SmoothVar(i))に設定され、ここでWd、Wa、Wvは、重み付け因子であり、それぞれは、0以上である。好ましくは、Wd=3、Wa=0.25、Wv=0.05である。別の実施形態では、他の重み付けを使用することができる。また、指が存在するときは、非線形関数を使用してRawPressure(i)を算出することもでき、別々の左、右、そして中央の統計も使用することができる。
【0070】
より信頼性を増すために、良好な実施形態においては、下記の式(4)を使用して、RawPressure推定値を指数関数的に平滑化する。
【0071】
SmoothPressure(i)=facP*SmoothPressure(i−1)+(1−facP)*RawPressure(i)[式4]
ここで、facPは0から1の間のどんな値でもよい。好ましくは、facP=0.9である。別の実施形態においては、RawPressure推定値は平滑化されない。
【0072】
図1を参照すると、上記の圧力推定値を計算することにより、圧力検出器114は加えられた圧力の広い範囲全体に渡って、圧力情報135を生成する。一般的に、指存在検出器114が指を検出しない場合は、圧力は0と定義される。指が検出される領域が多いほど、加えられる圧力は高くなる。より暗い平均とより大きな分散は、より高い圧力が加えられていることを意味する。他の計測装置と同様に、圧力検出器114は、スワイプセンサ101に集積されるハードウェアとして部分的に、または全面的に実装してもよい。
【0073】
時間区間アキュムレータ111は、利用可能であれば、スワイプセンサ101に集積されるハードウェアとして実装されるオプションの計測装置である。時間区間アキュムレータ111は、イベントバッファ115を有しており、時刻を記録できる。時刻データは、ほとんどの非リアルタイムコンピューティングプラットフォームは、それが利用できるようになった瞬間は、スワイプセンサ101からデータを読むことは常にできるわけではないので重要である。これは、通常、ホストオペレーティングシステムは、25ミリ秒以上続く可能性がある割込みの処理で忙しいからである。スワイプセンサ101からのデータに時刻が記録してある限り、ホストコンピューティングプラットフォームは、受け取ったイベントが実際は、お互いに関していつ起こったかについてのリアルタイムの情報を持つことになる。この情報により、ゲームはより反応が早くなり、ユーザーの体験度全体を向上することになる。更に、正確なフレームの時刻記録により、演算資源の最適な使用が、フレームの測定速度の高精度制御により可能になる。
【0074】
ユーザー入力装置をエミュレートするとき、リアルタイムの性能は、ユーザーにタイムリなフィードバックを提供するために重要である。システムの性能を向上するために、2002年3月13日に出願された「集積オンチップデータバッファリングによる指紋バイオメトリック捕捉装置及び方法(Fingerprint Biometric Capture Device and Method With Integrated On-Chip Data Buffering)」という題名の、その全体を引用によりここに組み込まれたとする米国特許出願第10/099,558において、Chenは、データがホストシステムに送信される前に、一時的に画像データのフレームを格納するオンチップメモリを使用する構造を開示した。内部メモリであるイベントバッファ115'(図示せず)は、割込みまたは他の入出力イベントのため、コンピューティングプラットフォーム120が一時的に利用できない場合は、データを格納するためには特に有用である。イベントバッファ115'は、計測装置グループ110とホストコンピューティングプラットフォーム120を結合し、それに制限されるわけではないが、画像フレームデータ、回転デルタ、xとyデルタ、クリックとダブルクリック、圧力変化、及び指存在情報を含む複数のデータタイプを格納するように構成される。
【0075】
本発明によれば、イベントバッファ115を、後で処理される未処理データの格納に使用できることは理解されよう。好ましくは、イベントバッファ115は時間区間アキュムレータ111の一部を形成する。これとは別に、または追加的に、イベントバッファ115'を、回転運動ΔΘ(図1の132)のような回転データや、直線運動ΔXとΔY(図1の133と134)や、圧力情報(図1の135)や、指存在情報(図1の136)のような処理済みデータの格納に使用できる。イベントバッファを、本発明に従う他の情報の格納に使用でき、これにより種々の方法で構成要素に結合できることは理解されよう。
【0076】
指画像センサに対する認証のようなほとんどの伝統的な適用において、スワイプセンサ101により発せられる指紋画像間、またはフレーム間の時間区間の正確な測定は要求されていない。一般的に時間区間は、要求された場合は、フレーム速度は処理負荷に依存し、所定の値ではないため、多数のフレーム全体に渡るフレーム速度を測定することにより、コンピューティングプラットフォーム120上のソフトウェアにおいて推定される。しかし、ユーザー入力の適用に対しては、指画像データに関連する時間情報は、ユーザーに望ましいフィードバックを提供するためには非常に重要である。例えば、時間情報は、マウスポインタが対応する運動を示すことができるように、指の運動の速度と加速度を推定するためには必要となる。本発明の一つの形態においては、センサにフレームの時刻を計算及び記録させ、またはあるフレーム間の時間区間、またはあるナビゲーションイベントを計算及び記録させる。例えば、ミリ秒の分解能を有する内部カウンタは、全てのフレームに関連させるために時間値を生成する。ユーザー入力の目的のために重要なのは、時間区間または相対時間値であり、絶対時間値ではない。
【0077】
時間情報は、本発明の他の計測装置からの運動の値と組み合わせられると、ホストプロセッサがより正確に指運動の速度と加速度を算出することが可能になる。更に、指画像データと共に時間情報を記録する機能により、スワイプセンサ101が、コンピューティングプラットフォーム120との入出力相互作用から非同期に、より良好に動作するようになり、コンピューティングプラットフォーム120に結合された、またはその一部を形成するホスト装置のハードウェア及びソフトウェアアーキテクチャの変動の多い予測できない待ち時間から、コントローラのリアルタイム性能及び応答性を切離す。例えば、コンピューティングプラットフォーム120は、着信呼に対して、無線信号を受信する携帯電話であってよく、それは、短区間に対するプロセッサの演算力と、スワイプセンサ101への応答の遅延を分散することがある。
【0078】
本発明の実施形態は、指画像センサに集積されたハードウェアとして全計測装置グループ110の副セットを有利に実装することにより、センサロジック114となり、指画像のいくつかの処理を行う。処理により、ユーザー入力を示すのには十分な情報の副セットを、現在の動作モードに従って抽出する。例えば、システムがステアリングホイールをエミュレートするように設定されている場合は、未処理画像データ131の複数のフレームを送信するのではなく、センサロジック104は、ある閾値を超える角度変化のような回転運動ΔΘ132のみを算出して、コンピューティングプラットフォーム120へ送信する。処理は、回転運動相関器112を使用して計算を実行することと、回転運動相関器112に結合された回転イベントバッファ(図示せず)における、回転角度の結果としての計算された変化をバッファリングすることを含む。結果としての回転運動ΔΘ132は、未処理指画像131よりも必要とするメモリが少なくて済む。ホストが、次の回転角度の変化が計算される前に、回転データを読むことができない場合は、新しい計算もまた、回転イベントバッファに格納される。ホストがデータを読む準備ができれば、回転イベントバッファから一度に全ての格納データを読むことができる。センサロジック114は、コンピューティングプラットフォーム120により要求されたデータのみを抽出して送信するので、本発明の実施形態はこのように、コンピューティングプラットフォーム120のメモリと、入出力容量と、演算資源をより少なくしか必要としないという有利点を有する。ハードウェア実装のこの刷新が望まれるときは、それはユーザー入力装置に対しては必要のない機能である。
【0079】
マウスエミュレータ121は、クリックとダブルクリックと同様に、マウスポインタの二次元的運動をエミュレートできる。直線運動相関器113により生成される運動ΔX133とΔY134は、複数の段階で非線形に変倍されて、ディスプレイ上のポインタの運動をマップする。良好な実施形態においては、3段階、つまり、平滑化、変倍、そしてフィルタリングが必要である。
【0080】
全ての繰り返しに対して、以前のx次元の運動の残りは、ΔX133に追加される。この追加による結果は、平滑化係数SmoothingScaleにより除算される。除算による商の整数部分は平滑化された指の運動であり、fingerMovementXと呼ばれる。除算の残りの部分は、次の繰り返しに送られる。ステップはy次元においても全く同じである。それゆえ、以前のy次元の運動の残りはΔY134に追加される。追加による結果は平滑化係数SmoothingScaleにより除算される。除算による商の整数部分は平滑化された指の運動であり、fingerMovementYと呼ばれる。除算の残りの部分は、次の繰り返しに送られる。
【0081】
図7は、平滑化段階を実行するのに使用されるステップ700を示している。スタートステップ701の後、アキュムレータΔXとΔYは、共にステップ703において0に設定される。次に、ステップ705において、変数SmoothingScaleは、1以上の所定の整数に設定される。他の実施形態において、SmoothScaleは、普遍性を失うことなく浮動小数点値に設定される。次に、ステップ707において、繰り返しカウンタiを増加する。ステップ709において、次のフレームのΔXとΔYは、共に直線運動相関器113により読み込まれ、処理はステップ711に進む。ステップ711において、指が図1のスワイプセンサ101上で検出されたかどうかが決定される。この決定は、指存在検出器115(図1)においてなされる。指が検出されると、処理はステップ713に進み、そうでない場合は、処理はステップ707に戻る。
【0082】
ステップ713において、変数ΔXaccは、ΔXacc+ΔXに設定され、変数ΔYaccは、ΔYacc+ΔYに設定される。次に、ステップ715において、変数fingerMovementXは、最も近い整数に四捨五入されたΔXacc/SmoothingScaleに設定され、変数fingerMovementXは、これもまた最も近い整数に四捨五入されたΔYacc/SmoothingScaleに設定される。次に、ステップ717において、変数ΔXaccは、ΔXacc−(fingerMovementX*SmoothingScale)に設定され、変数ΔYaccは、ΔYacc−(fingerMovementX*SmoothingScale)に設定される。ステップ717において、両操作の残りは保存される。次に、処理はステップ707に戻る。
【0083】
ステップ700において、「SmoothingScale」は、運動を平滑化するように働く。従って、fingerMoveXとfingerMoveYは、未処理指運動の非線形平滑化バージョンとなる。SmoothingScaleは、ディスプレイ上の実際の運動には何の影響も与えないことに留意されたい。
【0084】
適切なマウスのエミュレーションには、ユーザーの動作に依存して、同じ装置を使用するマクロな運動とミクロな運動の両方を可能にするために、運動モデルの導入が必要となる。例えば、ユーザーがスクリーンの一つの側から他の側へ移動したいと考えたときに、ユーザーはそれを、指を何度も上げることなく、最小限の努力により達成したいと考える。これには、画素単位のスクリーンの運動が、装置上の指の実際の運動よりもはるかに大きいことが必要となる(加速モード)。しかし、ユーザーはスクリーン上でより細かい動きをする必要がたびたびあり、従って、より小さくする係数も要求される(減速モード)。繰り返しiにおける変倍係数は、ScreenScale(i)と表わされる。ScreenScale(i)は、固定値ではなく、ある時間におけるユーザー動作の関数である。
【0085】
任意の繰り返しiにおいて、運動式が、式5と式6により、ディスプレイ上のポインタに対して定義される。
【0086】
ScreenMovementX(i)=ScreenScale(i)*fingerMovementX(i)[式5]
ScreenMovementY(i)=ScreenScale(i)*fingerMovementY(i)[式6]
式5と式6は、小さな直線による方法で、加速と減速を使用する。操作中、図7のアルゴリズムは、最後のN回の運動に対して起きた指の運動量と、履歴バッファ(図示せず)に保管された各イベントに対するフレーム番号の両者を記録する。好ましくは、Nは32に等しいが、1から1000の間のいかなる値も可能である。
【0087】
運動イベントが起こるたびに、x及びyの両方向における最後のN回の運動は合計され、それぞれ、Sum(X)とSum(Y)と表わされる。ここにおいて、運動イベントは、ステアリングホイールを回転したり、マウスボタンを押したり、カーソル、ジョイスティック、ナビゲーションバー、またはスクロールホイールを動かしたりする運動をエミュレートすることになるどんなユーザーの動作であってよい。Sum(X)またはSum(Y)またはSum(X)+Sum(Y)の何れかが、所定の閾値TAよりも大きいときは、変倍係数ScreenScale(i)は、高速スクリーン運動が可能なように高い値に設定される。一方、運動量が第2閾値TDよりも小さい場合は、変倍係数ScreenScale(i)は低い値に設定される。どちらの場合も当てはまらないときは、ScreenScale(i)はデフォルト(通常モード)値に設定される。ScreenScale(i)は0に近い値から非常に大きな値までの範囲をとることができ、構成可能であると好ましい。良好な実施形態において、加速モードに対してScreenScale(i)は4に等しく、減速モードに対してScreenScale(i)は1に等しく、デフォルトモードにおいてはScreenScale(i)は2に等しい。
【0088】
スワイプセンサ(例えば、図1のスワイプセンサ101)上の指の非常に小さな揺れは、マウスポインタの急速な変動に変換され、ポインタは見かけ上ファジーになる。他の実施形態において、指数関数的フィルタリングのような非線形フィルタリングが、より自然なスクリーンでの運動のために使用される。本実施形態においては、ある方向の運動は、式7に従って平滑化される。
【0089】
ScreenMovementX(i)=ExponentialFilter*[ScreenScale(i−1)*fingerMovementX(i−1)]+(1−ExponentialFilter)*[ScreenScale(i)*fingerMovementX(i)]
ここで0.0<=ExponentialFilter<=1.0である。
[式7]
ExponentialFilterの大きな値は、より平滑化が進むという結果になるが、指の運動からディスプレイの運動へのより大きな遅れまたは遅延という結果にもなる。良好な実施形態においては、ExponentialFilterは0.2に等しい。ExponentialFilterは、非線形動作である。
【0090】
他の実施形態において、中央値フィルタリングが全てのモードにおいて追加され、結果を平滑化し、スクリーン運動をより自然にする。中央値フィルタリングは、従来技術においてよく知られている。本実施形態において、5連続運動のウィンドウが使用される。中心点は、全5点の中央値に置き換えられる。これにより、センサノイズのために起こりえる偽運動を回避する。中央値フィルタリングは、非線形動作である。
【0091】
マウスクリックは、マウス動作の不可欠な部分である。良好な実施形態において、指の運動に沿う指の上から下へ(FD)と指の下から上へ(FU)の移動の連続は、単一クリック(例えば、イベント)を意味する。単一クリックは、指の上から下への移動(FD_1)で開始し、指が下にあるときには運動を伴わない指の上から下への移動(FD_1)がそれに続く。指は、所定の閾値時間Tdの間、運動を伴わずに下に留まっていなければならない。単一クリックと認められるために、運動を伴わずにスワイプセンサ上にどのくらい長く留まっていることができるかについての制限はない。FU_1の後、指は、ダブルクリックとの混同を回避するために、最小持続時間T1の間は、センサと接触してはならない。
【0092】
1次元におけるスクロールホイール、コントローリングカーソル、またはポインティングインディケータは、PDAにおいて一般的に見られる。スクロールホイールのエミュレーションは、マウスポインタのものと非常に類似しているが、ΔX133とΔY134のどちらかの値を使用し、両者を使用することはないことだけが異なっている。他の方向は無視、あるいはゼロとして扱われる。更に、スクロールホイールエミュレータユニット121は、選択を示すクリック機構も提供することができる。スクロールホイールにおける選択のエミュレーションは、マウスにおける単一クリックの選択のエミュレーションと同一である。
【0093】
図8は、ゲームコントローラやPDAにおいて見られるような、例えば、上、下、左、右機能を表現する4方向ボタン、または4ボタンクラスターである、ナビゲーションバー800の一つの実施形態を示している。これらのボタンまたはボタンクラスターの中には、8方向のナビゲーションを可能にする、左上、右上、右下、左下のような追加的な方向のためにボタンの組み合わせをサポートするものもある。ナビゲーションバーの中には、ナビゲーションボタンの中心を押すことのような、選択のための追加的機能もサポートしているものもある。
【0094】
ナビゲーションバーまたはボタンクラスターをエミュレートするためには、XとY運動が、上記のマウスポインタのエミュレーションと同様に累積される。XとYスペースは、4または8(または、12のような他の数字)個のセクターに分割される。セクターの数は、制御可能な方向の数である。線形運動相関器113は、ΔX133とΔY134を生成し、両者は運動の方向と距離から構成される。定義された閾値を超える大きな運動が検出された場合はいつでもナビゲーションイベントが発せられ、セクターに対応する方向の運動単位が示される。言い換えれば、指の運動は、ナビゲーションバーエミュレーションを介して、運動の量子ステップに変換される。
【0095】
図9A及び図9Bで構成される図9は、本発明による4方向(4セクター)ナビゲーションバーをエミュレートするためのステップ900を示している。これらのステップは、ナビゲーションバーエミュレータユニット124により実行される。開始ステップ901の後、アキュムレータΔXaccとΔYaccは共に0に設定される。次に、ステップ910で、て、次のフレームのΔXとΔYが、線形運動相関器113から受け取られる。次に、ステップ915において、指がスワイプセンサ101上に検出されたかどうかが決定される。指が検出されなかった場合は、処理はステップ905に戻る。そうでない場合は、処理はステップ920に進み、変数ΔXaccはΔXacc+ΔXに設定され、変数ΔYaccはΔYacc+ΔYに設定される。次に、ステップ925において、変数distance(距離)が(ΔXacc2+ΔYacc2)1/2に設定される。次に、ステップ930において、ΔXaccの絶対値がΔYaccの絶対値と比較される。ΔXaccの絶対値がΔYaccの絶対値よりも大きいときは、処理はステップ935に進み、そうでない場合は、処理はステップ955に進む。
【0096】
ステップ935において、ΔXaccは0と比較される。ΔXaccが0より大きい場合は、処理はステップ940に進み、そうでない場合は、処理はステップ945に進む。ステップ940で、変数direction(方向)はRIGHTに設定され、処理はステップ980に進む。ステップ945で、変数ΔXaccは0と比較される。ΔXaccが0より小さい場合は、処理はステップ950に進み、そうでない場合は、処理はステップ980に進む。ステップ950で、変数direction(方向)はLEFTに設定され、処理はステップ980に進む。
【0097】
ステップ955で、ΔXaccの絶対値はΔYaccの絶対値と比較される。ΔXaccの絶対値がΔYaccの絶対値より小さい場合は、処理はステップ960に進み、そうでない場合は、処理はステップ980に進む。ステップ960で、変数ΔYaccは0と比較される。ΔYaccが0より大きい場合は、処理はステップ965に進み、そうでない場合は、処理はステップ970に進む。ステップ965で、変数direction(方向)はUPに設定され、処理はステップ980に進む。
【0098】
ステップ970で、変数ΔYaccは0と比較される。ΔYaccが0より小さい場合は、処理はステップ975に進み、そうでない場合は、処理はステップ980に進む。ステップ975で、変数direction(方向)はDOWNに設定され、処理はステップ980に進む。ステップ980で、変数Distanceは、値10のような所定の運動単位閾値と比較される。浮動小数点の値も使用できることは理解されよう。Distance(距離)が運動単位閾値よりも大きい場合は、処理はステップ985に進み、そうでない場合は、処理はステップ910に進む。ステップ985で、ステップ940、950、965、または975の一つで決定された方向での運動イベントが、コンピューティングプラットフォーム120から発せられ、処理はステップ905に戻る。
【0099】
ステップ900について考慮して見れば、ステップ900が、どんな数の方向のナビゲーションバーでもエミュレートするように一般化できることは理解できよう。
【0100】
本発明の一つの実施形態は、ゲームコントローラに見られるような2軸アナログまたは比例デジタルジョイスティックをエミュレートする。物理的ジョイスティックは、X及びY運動を生成し、ユーザーが手を放すとホームポジションへ戻るような、バネまたはバネ/緩衝器の組み合わせ、及び/または、モーターまたは他のアクチュエータにより提供される力のフィードバックにより提供される自動センタリング機構を有している。
【0101】
ジョイスティックをエミュレートするために、直線運動相関器113により生成される運動ΔX133とΔY134は、ジョイスティックの運動をマップするために非線形に変倍される。ジョイスティックは、指が指スワイプセンサ101から離れると、ホームポジションに戻る。
【0102】
図10A及び図10Bで構成される図10は、ジョイスティックエミュレータユニット123により実行される、本発明の一つの実施形態によるジョイスティックをエミュレートするために使用されるステップ1000を示している。開始ステップ1001の後、初期化ステップ1003が実行される。ステップ1003で、ジョイスティックの位置Xposはx0に設定され、ジョイスティックの位置Yposは、y0に設定され、アキュムレータΔXaccとΔYaccは0に設定され、変倍率は1以上の整数に設定される。他の実施形態においては、変倍率は、普遍性を失うことなく浮動小数点に設定される。次に、ステップ1005で、次のフレームのΔXとΔYが直線運動相関器113により読み込まれる。次に、ステップ1007で、少なくともT7フレームの間、指がスワイプセンサ101上で検出されなかったかどうかが決定される。ここで、T7は、適用対象に対して選択される所定の値である。指が少なくともT7フレームの間、検出されなかった場合は、処理はステップ1003に戻り、そうでない場合は、処理はステップ1009に進む。ステップ1009で、指がT7フレームまたはそれ以下の間、検出されなかったかどうかが決定される。指がT7フレームまたはそれ以下の間、検出されなかった場合は、処理はステップ1005に戻る。そうでない場合は、処理はステップ1011に進む。
【0103】
フレーム単位以外の変数を、本発明に従って使用できるということは理解されよう。例えば、一つの実施形態において、フレーム単位ではなく、時間単位が使用されてステップ1007から1003に戻るかどうかが決定される。この例では、時間単位の少なくとも所定数の間(例えば、10クロック単位)指が検出されなかった場合は、処理はステップ1007からステップ1003に戻る。
【0104】
更に図10を参照すると、ステップ1011で、値ΔXaccはΔXacc+ΔXに設定され、値ΔYaccはΔYacc+ΔYに設定される。次に、ステップ1013で、値moveXは、最も近い整数に四捨五入されたΔXacc/Scaleに設定され、値moveYは、これもまた最も近い整数に四捨五入されたΔYacc/Scaleに設定される。次に、ステップ1015で、変数XposはXpos+moveXに設定され、変数YposはYpos+moveYに設定される。次に、ステップ1017で、変数ΔXaccはΔXacc−(moveX*Scale)に設定され、変数ΔYaccはΔYacc−(moveY*Scale)に設定される。このステップ1017で、それぞれの除算の余りは保存される。
【0105】
次に、ステップ1019で、XposはXposMaxと比較される。XposがXposMaxよりも大きい場合は、処理はステップ1021に進み、そうでない場合は、処理はステップ1023に進む。ステップ1021で、XposはXposMaxに設定され、処理はステップ1027に進む。ステップ1023で、XposはXposMinと比較される。XposがXposMinより小さい場合は、処理はステップ1025に進み、そうでない場合は、処理はステップ1027に進む。ステップ1025で、XposはXposMinに設定され、処理はステップ1027に進む。
【0106】
ステップ1027で、YposはYposMaxと比較される。YposがYposMaxより大きい場合は、処理はステップ1029に進み、そうでない場合は、処理はステップ1031に進む。ステップ1029で、YposはYposMaxに設定され、処理はステップ1005に戻る。ステップ1031で、YposはYposMinと比較される。YposがYposMinより小さい場合は、処理はステップ1033に進み、そうでない場合は、処理はステップ1005に進む。ステップ1033で、YposはYposMinに設定され、処理はステップ1005に進む。
【0107】
XposMax、XposMin、YposMax、YposMinに対する値はシステムに依存し、開始時に設定できることは理解されよう。XposMaxは図1のシステム100に結合、またはその一部を形成するディスプレイ上で対象が持つことができる最大値xを反映している。XposMinは最小値xを、YposMaxは最大値yを、そしてYposMinは最小値yを反映している。
【0108】
ステップ1000は、T7を超えるいくつかのフレーム数の間、スワイプセンサ101上に指が検出されない場合は、自動かつ即座にセンタリングを行う。他の実施形態においては、エミュレートされたジョイスティック(例えば、ステップ1000で生成された出力)は、物理的バネ質量またはバネ質量緩衝器の組み合わせのシミュレーションを使用して、よりゆっくりと中心に戻る。例えば、エミュレートされたジョイスティックは、1秒を超える時間または他の類似の時間値をかけて、センターポジションに直線に沿って戻り、それにより、ユーザーには戻る運動が見える。
【0109】
他の実施形態において、エミュレートされたジョイスティックは、指圧力検出器114により戻された圧力情報135がある閾値より小さい場合は、中心にゆっくり戻ろうとする傾向があり、この傾向は指の圧力が減少するにつれてより顕著になる。言い換えれば、戻る運動の速度は、指により減少された圧力量に比例する。時間のある単位においてより大量に圧力が減少されると、戻る速度はより速くなる。圧力が0にまで減少されると、ジョイスティックは直ちに中心に戻る。
【0110】
他の実施形態において、エミュレートされたジョイスティック(例えば、ステップにより生成された出力)は、中心以外のあるホームポジションに戻るように構成され、そのホームポジションは、ソフトウェアまたはハードウェアにより動的に定義される。
【0111】
本発明の実施形態により記述されたバネ質量緩衝器システムを使用することにより、それに制限されるわけではないが、オンスクリーンの対象の速度を減少すること、オンスクリーンのホームポジションを行き過ぎさせること、ホームポジションの周りで振動させること、またはこれらのいかなる組み合わせをも含む種々の機能と応答のシミュレーションが可能になるということは理解されよう。システムは、物理的に直感的な動作、例えば、バネで動作された、または動きを抑えられたジョイスティックが解放されたとき、または回転中の自動車がそのステアリングホイールを解放したときなどの動作をシミュレートする。
【0112】
ゲームコントローラの他の共通なタイプは、自動車のステアリングホイールまたは飛行機のコントロールヨークに類似している。ステアリングホイールは、その回転位置に対応する値を発する。ステアリングホイールは、ユーザーが手を放すとホームポジションへ戻るような、バネまたはバネ緩衝器の組み合わせ、及び/または、モーターまたは他のアクチュエータにより提供される力のフィードバックにより提供される自動センタリング機構を有している。
【0113】
本発明の一つの実施形態は、回転運動相関器112から捕捉した指に回転によりステアリングホイールをエミュレートする。回転運動相関器112により生成される回転運動ΔΘ132は、ステアリングホイールの回転角度をマップするためにある割合で変倍される。図11は、本発明に従うステアリングホイールをエミュレートするために使用されるステップ1100を示している。
【0114】
図11を参照すると、開始ステップ1101の後、システムは初期化ステップ1103に進む。ステップ1103において、角度位置ΘposはΘ0に設定される。Θ0は、好ましくは0度であるが、いかなる所定値でもよい。ステップ1003においても、アキュムレータΘaccは0に設定され、変倍率(Scale)が1以上の整数に初期化される。他の実施形態においては、変倍率(Scale)は、普遍性を失うことなく浮動小数点値に設定される。
【0115】
次に、ステップ1105において、次のフレームのΔΘが、回転運動相関器112から読み込まれる。次に、ステップ1107において、指がスワイプセンサ101上で検出されたかどうかが決定される。指が検出された場合は、処理はステップ1109に進み、そうでない場合は、処理はステップ1105に戻る。
【0116】
ステップ1109で、値ΔθaccがΔθacc+ΔΘに設定され、値moveΘは、最も近い整数に四捨五入されたΔΘ/Scaleに設定され、ΘposはΘpos+moveΘに設定され、処理はステップ1105に戻る。
【0117】
一つの実施形態は、上記の方法を更に洗練するための自動センタリング動作を含む。エミュレートされたステアリングホイールは、フレームのある数の間、指が検出されないと直ちに中心に戻る。
【0118】
他の実施形態において、エミュレートされたステアリングホイールは、物理的バネ質量またはバネ質量緩衝器の組み合わせのシミュレーション、または自動車に適切な物理的シミュレーションを使用して、よりゆっくりと中心に戻る。例えば、エミュレートされたステアリングホイールは、1秒以上または他の類似の時間値をかけて中心位置に回転して戻り、それによりこの戻る運動はユーザーには見える。
【0119】
他の実施形態においては、エミュレートされたステアリングホイールは、指圧力検出器114により戻された指の圧力がある閾値を下回ると、ゆっくりと中心に戻り、この傾向は、指の圧力が減少するに従って増大する。言い換えれば、戻るための回転の速度は、指により減少された圧力の量に比例的に関連している。時間のある単位において、圧力がより大量に減少されると、戻る速度はそれだけ速くなる。圧力が0に減少されると、ステアリングホイールは直ちに中心に戻る。
【0120】
更に他の実施形態においては、エミュレートされたステアリングは、中心以外のあるホームポジションに戻り、そのホームポジションは、ソフトウェアまたはハードウェアにより動的に定義される。
【0121】
圧力検知ボタンは、ゲームコンソールにおいて広く使用されている。加えられた圧力は、ブレーキをかけたときのレースカーの減速、あるいは戦争ゲームにおける弾丸発射頻度のようなあるゲームの環境において使用される。本発明に従えば、圧力検知ボタンのアナログの性質は、圧力検出器114によりエミュレートできる。圧力検出器114の初期出力は、指が存在しないときは0に設定される。圧力検出器114は、ある定義範囲において加えられる指の圧力により較正される。圧力検知ボタンをエミュレートする場合は、圧力検出器114からの出力は、加えられた圧力に対応する。
【0122】
指画像センサ及び関連するソフトウェアは、一般的にユーザーの身元を検証する目的のために指紋画像を捕捉し、処理することができる。ユーザー入力の目的のためには認証は必要ないので、我々は、入力装置としてだけの使用のためであり、指紋画像の再構築または指紋認証に使用されなることのない指画像センサを更に発展させることにより刷新していく。
【0123】
市場に出回っている指画像センサのほとんどは、主に認証のために設計されており、典型的な解像度は、2.54cm(1インチ)あたり300から500ドット(dpi)である。本発明の実施形態は、ユーザー入力制御の目的のための、250dpiまたはそれ以下の指画像センサしか必要としない。低い解像度は、容量性指画像センサには特に重要である。同じシリコンのダイの大きさに対して、低い解像度の指画像センサは、各容量性セルがより大きく、より広い種類の指の皮膚表面に対してのより高い感度とい結果になることを意味する。容量性セル、そしてその感度が同じに保たれると、全体のシリコンダイの大きさは小さくなり、より安価な指画像センサという結果になる。これらのより安価なセンサは、指画像センサのユーザー入力制御装置としての使用を採用することを促進すると予想される。
【0124】
上記の例は、本発明の実施形態を示すためのみに使用され、本発明の範囲を制限するものではない。実施形態が多くの方法で修正できることは理解されよう。例えば、装置のエミュレータは、上記とは異なる出力を生成することができる。本発明によるマウスエミュレータは、ある時間内に、マウスがパルスの所定数を超えて動かされたことを示すxとyのオーバーフローを生成することができる。この技術に精通した者にとっては、付随する請求項により規定される本発明の精神と範囲を逸脱することなく、実施形態に種々の変形がなされるということは自明であろう。
【図面の簡単な説明】
【0125】
【図1】本発明に従う、入力装置をエミュレートするシステムのブロック図。
【図2】本発明に従う、指画像データの平滑化分散の変動を示すグラフ。
【図3A】本発明に従う、センサ上に指があるかどうかを決定するためのステップを説明するフローチャート。
【図3B】本発明に従う、センサ上に指があるかどうかを決定するためのステップを説明するフローチャート。
【図4A】本発明に従う、指紋画像センサに対しての二つの方向を示している。
【図4B】本発明に従う、指紋画像センサに対しての二つの方向を示している。
【図5】本発明に従う、三つの重なり合う部分に更に分割された指紋画像センサを示している。
【図6】本発明に従う、指画像センサ上に加えられた圧力を決定するためのステップを説明するフローチャート。
【図7】本発明に従う、マウスをエミュレートするために指の運動を平滑化するためのステップを説明するフローチャート。
【図8】本発明に従う、4方向ナビゲーションバーを示している。
【図9A】本発明に従う、4方向ナビゲーションバーをエミュレートするために運動と方向を決定するためのステップを説明するフローチャート。
【図9B】本発明に従う、4方向ナビゲーションバーをエミュレートするために運動と方向を決定するためのステップを説明するフローチャート。
【図10A】本発明に従う、ジョイスティックをエミュレートするために運動と方向を決定するためのステップを説明するフローチャート。
【図10B】本発明に従う、ジョイスティックをエミュレートするために運動と方向を決定するためのステップを説明するフローチャート。
【図11】本発明に従うステアリングホイールをエミュレートするために使用されるステップを示している。
【技術分野】
【0001】
関連出願
本出願は、2003年6月25日に出願された「小型ユーザー入力装置のシステムと方法(SYSTEM AND METHOD FOR A MINIATURE USER INPUT DEVICE)」と題する係属中の米国暫定特許出願第60/482,607号の35U.S.Cセクション119(e)のもとでの優先権を主張するものである。2003年6月25日に出願された「小型ユーザー入力装置のシステムと方法(SYSTEM AND METHOD FOR A MINIATURE USER INPUT DEVICE)」と題する暫定特許出願第60/482,607号は、引用によりここに組み込まれたものとする。
【0002】
発明の分野
本発明は、ユーザー入力装置に関する。より具体的には、本発明は、携帯電子コンピューティングプラットフォームに対する入力装置をエミュレートするために使用されるバイオメトリックセンサに関する。
【背景技術】
【0003】
発明の背景
携帯電子コンピューティングプラットフォームの出現により、必要であればどんな場所においても楽しめる機能やサービスが可能になった。パームトップコンピュータ、パーソナルデジタルアシスタント、可動電話、携帯ゲームコンソール、バイオメトリック/健康モニタ、及びデジタルカメラは、携帯電子コンピューティングプラットフォームの日常の例である。携帯性への要求に応えるため、これらのコンピューティングプラットフォームは小さくなり、そしてバッテリーは長い寿命を持つようになった。
【0004】
これらの、今までになく小さくなった装置上でユーザーの入力を効率よく集めることは難しい。携帯電子コンピューティングプラットフォームは、それに制限されるわけではないが、ナビゲーション、つまりカーソルまたはポインタをディスプレイ上のある地点に動かすことや、選択、つまり項目またはアクション、及び方向を選択する、または選択しないことや、目で見えるような、または見えないようなフィードバックによる方向の変更などを含む複数の目的のために、これらのユーザー入力を必要とする。
【0005】
従来技術のシステムは、ユーザー入力に対するコンセプトを、より大型のパソコンから借用していた。マイクロジョイスティック、ナビゲーションバー、スクロールホイール、タッチパッド、ステアリングホイール、及びボタンは全て、今日の携帯電子コンピューティングプラットフォームにおいて採用されているが、その効果は限られていた。これらの装置全ては、携帯装置上の貴重な表面資源を大量に消費する。ジョイスティック、ナビゲーションバー、スクロールホイールのような機械的装置は、磨耗して信頼性を失うこともある。それらが単一のタスクのために、物理的に設計されたものであるために、一般的にそれらは、他のナビゲーション装置の機能を提供しない。それらのサイズと、要求される運動はしばしば携帯コンピューティングプラットフォーム上の最適な人間工学的配置を妨げる。更に、一般的なパソコンに対応するものであるこれらのより小さなバージョンは通常は、それらが検知する運動情報があまりにも粗い粒状であるために、正確または高解像度の位置情報を提供しない。
【0006】
指画像センサは、指の表面上の特徴(例えば、谷筋、稜線、細点)を、容量性、熱的、光学的、または他の検知技術を介して検出及び測定する。市場で最も広く普及している指画像センサは、二つのカテゴリに分けられる。それは(1)全サイズ配置型センサと、(2)いわゆるスワイプセンサと呼ばれる一般的により小さなものである。配置型センサは、指の関心対象であるほとんどの部分を、同時に受け入れるのに十分な大きさのアクティブな検知表面を有する。一般的に、それらは長方形の形状で、検知表面積は、少なくとも100mm2である。全配置型センサ上で画像が取得される間、指は停止状態に保たれる。
【0007】
指画像センサの他のタイプはスワイプセンサと呼ばれ、一つの方向(一般的には、長さ方向)においてはその全サイズを有するが、他の方向(一般的には、幅方向)においては短くされた細片状の画像取得領域により特徴付けられる。例としては、米国特許出願第20030016849及び国際特許出願WO 02/095349に、Andradeにより記述されているような、Atrua Wings ATW100センサがある。指は、その全体部分の画像が取得されるまで、センサ全体に渡って打たれる(スワイプされる)。この様子は、紙原稿読込み型スキャナの動作に類似している。指画像の連続した断片またはフレームが捕捉され、処理されて指の合成画像が構築される。
【0008】
いくつかの従来技術装置は、ユーザーを認証し、ディスプレイ装置上のカーソルを動かすためのタッチパッドを使用する。指画像センサに類似して動作するタッチパッドは、指紋上の稜線や谷筋を区別するのに十分な画像解像度や機能を提供しない。代わりに、タッチパッドは、指を小塊と認識して、小塊の位置を追尾することで運動を決定する。従って、タッチパッドは、細かな運動を追尾することができず、また、回転運動を検出することも実現できない。
【0009】
Bjornその他による、「構成可能な多機能タッチパッド装置(Configurable Multi-Function Touchpad Device)」という題名の米国特許公開第2002/0054695A1は、ユーザーを認証またはカーソルを制御するように構成できるタッチパッドを開示している。このタッチパッドは、指紋機能を含むために、タッチパッドの機能を強化する試みをしている。それは、単に容量性指画像センサのハードウェアを、より大きなサイズのタッチパッドに吸収してコスト削減を達成するに過ぎない。それは、ナビゲーション制御のために指画像データを使用することは開示していない。間違いなく、その大きなサイズのため、依然としてタッチパッドは、ほとんどの携帯電子コンピューティングプラットフォームにおいて使用されることが妨げられている。
【0010】
Kramerによる、「容量性半導体ユーザー入力装置(Capacitive Semiconductor User Input Device)」という題名の米国特許第6,408,087号は、コンピュータのディスプレイスクリーン上のカーソルを制御するための指紋センサを使用するシステムを開示している。このシステムは、検出された指紋の稜線と細孔の動きに従って、ディスプレイ上のポインタの位置を制御する。
【0011】
このシステムには多くの制限がある。それは、スワイプセンサを使用するシステムとは異なり、画像に基づく相関アルゴリズムを使用し、容量性配置型センサに代表されるように、複数の稜線を有する指紋画像を必要とする。稜線の方向に平行な運動を検出するためには、システムは、センサが細孔を検出することを必要とし、この要求のために、その使用が少なくとも500dpiという高解像度センサに制限している。しかし、稜線の測定は、非常に高い解像度のセンサに、指圧力の低解像度の変化を提供することを要求する。このアルゴリズムはマウスをエミュレートする場合に独特なもので、ジョイスティックやステアリングホイールのような、スクリーンの運動が常に指の運動に比例するわけではない入力装置の他のタイプをエミュレートするには適さない。例えば、ジョイスティックは、入力がないときは、ホームポジションに戻ることが要求され、ステアリングホイールは、回転運動を要求する。このシステムは、反転増幅器が全てのセンサセルに関連付けられている容量性センサに独特なものである。
【発明の開示】
【課題を解決するための手段】
【0012】
本発明の実施形態は、機械的部品を必要とせずにディスプレイを制御する入力を生成する。この方法の良好な実施形態において、指紋センサは、携帯電子装置のような電子装置に対してのユーザー入力装置をエミュレートするために使用される。ユーザー入力装置には、それに制限されるわけではないが、ステアリングホイール、マウス、ジョイスティック、ナビゲーションバー、及びスクロールホイールが含まれる。良好な実施形態のシステムは、その機械的に対応するものよりも設置面積が小さくて済み、機械的部品を使用しないので、より磨耗しにくく究極的な欠陥にはなりにくい。
【0013】
本発明の第1態様において、方法は、第1パターン化画像データと第2パターン化画像データの間の差を計算し、その差を信号セットに変換する。信号セットは、複数の電子入力装置のいずれか一つをエミュレートするために使用される一つまたは二つ以上の信号に対応する。好ましくは、第1パターン化画像データは、第1場所のバイオメトリック対象の画像に対応し、第2パターン化画像データは、第2場所のバイオメトリック対象の画像に対応する。
【0014】
他の実施形態において、方法は、第1場所のバイオメトリック対象の画像を読み込み、第2場所のバイオメトリック対象の画像を読み込むことを更に備える。好ましくは、バイオメトリック画像データは、指紋画像に関連する指画像データを備える。また、好ましくは、第1場所と第2場所のバイオメトリック対象の画像を読み込むことは、指スワイプセンサ全体に渡って指をスワイプすることを備える。または、第1場所と第2場所のバイオメトリック対象の画像を読み込むことは、指配置型センサ上に指を置くことを備える。
【0015】
他の実施形態において、差を計算することは、指センサ上の指の存在を検知することと、第1場所のバイオメトリック対象の画像と、第2場所のバイオメトリック対象の画像の間の直線的な差を、行に基づく相関を使用して計算することを備える。一つの信号セットは、オンスクリーンポインタを制御するためのコンピュータマウスの出力信号に対応することができる。この実施形態において、方法は、変倍係数により直線的な差を非線形に変倍することを更に備える。一つの実施形態において、非線形に変倍することは、直線的な差を平滑化することを備える。変倍係数は、指センサ上の指の、所定の場所の数に基づいて動的に決定される。非線形に変倍することは、線形差を、中央値フィルタリングすることと、指数的にフィルタリングすることを更に備える。
【0016】
他の実施形態において、一つの信号セットは、オンスクリーン対象を制御するためのスクロールホイールの出力信号に対応する。この実施形態において、差を信号セットに変換することは、一つまたは二つ以上の非線形変倍機能を使用して、直線的な差を指センサ上の指の運動方向に変換することを備え、指が指センサ上に検出されたときに信号セットを生成することは、スクロールホイールにより示された項目を選択することに対応する。
【0017】
他の実施形態において、一つの信号セットは、オンスクリーン対象を制御するためのナビゲーションバーの出力信号に対応する。この実施形態において、差を一つの信号セットに変換することは、ナビゲーションバーにより制御可能な複数の方向の一つにおける直線的な差を、所定の閾値と比較することと、直線的な差が閾値を超えているときは、ナビゲーションバーにより制御可能な一つの方向において運動の1ユニット分だけの、オンスクリーン対象の運動に対応する信号を生成することと、ナビゲーションバーにより制御可能な残りの複数の方向に対してこれらのステップを繰り返すことを備える。
【0018】
他の実施形態において、一つの信号セットは、オンスクリーン対象を制御するためのジョイスティックの出力信号に対応する。この実施形態において、差を一つの信号セットに変換することは、非線形変倍を使用して、直線的な差を指センサ上の指の運動方向に変換することと、指が指センサ上に検出されないときに、オンスクリーン対象を、ディスプレイ上のホームポジションに動かすことに対応する信号を生成することを備える。この実施形態において、オンスクリーン対象を、ディスプレイ上のホームポジションに動かすことに対応する信号を生成することは、オンスクリーン対象の速度を減少させるバネ質量緩衝器をシミュレートする信号を生成することを備える。または、追加的に、バネ質量緩衝器システムは、ホームポジションを越えて動かすか、その周りを振動させるか、またはその両方を行う。指の存在を検知することは、指センサ上の指により加えられた圧力を測定することを備える。指により加えられた圧力を測定することは、領域内指存在データの重み付け平均と、指画像データの平滑化平均と、指画像データの平滑化分散を算出することを備える。そして、対象をホームポジションに動かすことに対応する信号を生成することは、指センサの削減された圧力に関連する速度での緩衝信号に対応する信号を生成することを備える。
【0019】
他の実施形態において、一つの信号セットは、ディスプレイ上の対象を制御するためのステアリングホイールの出力信号に対応する。この実施形態において、直線的な差を計算することは、指センサ上の指の回転運動を推定することを備える。差を一つの信号セットに変換することは、回転運動を、オンスクリーン対象に対する回転角に変換することと、指センサ上に指が存在しない場合に、ディスプレイ上のホームポジションにオンスクリーン対象を戻すことに対応する信号を生成することを備える。ディスプレイ上のホームポジションにオンスクリーン対象を戻すことに対応する信号を生成することは、速度を減少させるバネ質量緩衝器システムに対応する信号を生成することを備える。または、追加的に、バネ質量緩衝器システムは、ホームポジションを越えて動かすか、その周りを振動させるか、またはその両方を行う。指の存在を検知することは、指センサ上の指により加えられた圧力を測定することを備える。ディスプレイ上のホームポジションにオンスクリーン対象を戻すことに対応する信号を生成することは、指センサ上の指により加えられた圧力量の減少分に対応する緩衝信号を生成することを備える。
【0020】
他の実施形態において、指センサ上の指の存在を検知することは、指画像データの平滑化分散の変動を追尾することを含む。
【0021】
他の実施形態において、方法は、信号セットを、複数の信号セットからディスプレイに送信することを更に含み、それによりディスプレイ上のオンスクリーン対象を制御する。ディスプレイは、ホスト装置の一部を形成し、ホスト装置は、携帯コンピュータ、パーソナルデジタルアシスタント、携帯電話、携帯ゲーム機、バイオメトリック/健康モニタ、及びデジタルカメラで構成されるグループから選択される。
【0022】
本発明の第2態様において、方法は、第1パターン化画像データと第2パターン化画像データの間の差を決定することと、複数のオンスクリーン対象を同時に制御するためにその差を使用することを備える。
【0023】
本発明の第3態様において、オンスクリーン対象の運動を制御するシステムは、パターン化画像を読み込み、未処理指画像データを生成する手段と、パターン化画像読込み手段に結合された、未処理パターン化画像データを運動情報に変換する手段と、指運動情報を、オンスクリーン対象の運動を制御するためのコンピュータ入力装置信号のセットに変換する手段とを備える。運動情報変換手段は、未処理パターン化画像データ変換手段に結合されている。
【発明を実施するための最良の形態】
【0024】
本発明によれば、指の運動は、スワイプ指画像センサ上で追尾され、それに制限されるわけではないが、マウスポインタ、ナビゲーションバー、ジョイスティック、スクロールホイール、及び圧力検知ボタンを含むより多くの伝統的な装置をエミュレートする。本発明は、何れかの技術の指画像センサを使用して、それに制限されるわけではないが、稜線、谷筋、及び細点を含む指画像データを捕捉し、携帯電子コンピューティングプラットフォーム用のユーザー入力を生成する。指の存在と、その回転及び直線運動と、それにより加えられた圧力と、これらのデータの時間に関する関係を検出することにより、本発明の実施形態は、磨耗し得る可動部品を含まない、単一の物理的指画像センサを使用して、どんな数のナビゲーション装置もエミュレートできる。
【0025】
このように、本発明によれば、追加ハードウェアなしで、複数の入力装置をエミュレートでき、一つまたは二つ以上の入力装置は、同時に機能でき、本方法は、その小さいサイズのため、スワイプセンサが好ましいが、いかなるセンサまたはセンサタイプにおいても機能し、システムは、磨耗し得る機械的可動部品を有せず、サイズが小さければ、センサは携帯装置上のほとんどいかなる場所にも設置でき、装置の設計者が新しい形状要素を考案し、ユーザー入力のためのセンサを人間工学的に最適な場所に設置することを可能にし、本システムと方法は、高解像度の出力を可能にし、それにより小さな指の運動でも、入力装置の大きな運動を生成するには十分であり、ユーザーの認証も随意に提供でき、複数の入力装置とユーザー認証が一緒に実装できるので、本システムのコストは他のシステムよりも安く、指画像センサと共に集積される専用ハードウェア論理において計測装置が実装されるときに、システムは、ホストのプラットフォーム上のコンピューティング関連資源を節約することができ、250dpiまたはそれ以下の低い解像度のセンサもコスト削減または感度の向上のために使用できる。
【0026】
良好な実施形態のシステムは、指画像センサ情報を処理するための、計測装置を呼ばれる多くの構成要素を備える。各構成要素は、画像データを受け取り、画像の位置の変化に関連する情報を生成するように構成される。データの位置の変化に関する情報は、エミュレータユニットに送信され、ジョイスティック、ステアリングホイール、マウス、ナビゲーションバー、及びスクロールホイールのような電子入力装置により生成される信号と類似の信号を生成する。信号はホスト装置に結合され、ホスト装置上のディスプレイの制御に使用される。ホスト装置は、携帯電話、PDA、及びラップトップコンピュータのような携帯電子プラットフォームを含む、いかなる電子プラットフォームであってもよい。
【0027】
このように、一つの例として、ユーザーは、携帯電話に結合された、またはその一部を形成するスワイプセンサまたは配置型センサ上で指をスワイプすることで、電話機のディスプレイスクリーン上に表示された電話番号リストをスクロールするスクロールホイールをエミュレートする。そして、ユーザーは指を使って、スワイプセンサを軽くたたく、またはより強く押す、またはスワイプセンサ上で他の行動をすることで、ハイライトされた電話番号を選択できる。ここで使用されたように、機能をエミュレートするためにセンサ上で実行または認識されるいかなる行動もイベントである。
【0028】
スワイプセンサが良好な実施形態で使用されるのは、それが携帯装置により適していることだけが理由なのではなく、それがより小さな画像を作成するということもその理由である。小さな画像はそれだけデータ量も少なく、演算の負担を軽くする。より大きなセンサからのデータを無視またはマスクオフしてそれをより小さなセンサに似せることもできるが、この方法は、ユーザーの指が関心領域に触れることさえ保証しないので、理想的とは言えない。スワイプ装置ではこれは問題にならない。
【0029】
ここで使用されるように、一連の測定値を作成する装置は指画像センサと呼ばれる。このような細片状の測定値データのそれぞれは、フレームと呼ばれる。フレームまたは一連のフレームを、画像データまたは指紋画像データと呼ぶこともできる。下記の例では、本発明の実施形態を記述するときにスワイプセンサを使用するが、より大きな指画像測定値データを作成する配置型センサもまた、本発明に従って使用できることも理解されよう。
【0030】
本発明の他の実施形態によれば、マウスポインタ、ナビゲーションバー、ジョイスティック、スクロールホイール、及び圧力検知ボタンのような電子入力装置をエミュレートするための情報を生成するために、指紋画像以外の画像を使用する。一つの実施形態においては、パターン化した物体をセンサ上に置き、それを滑らせ、回転し、より強くまたは弱く押し、またはそれ以外の方法で動かす。パターン化した物体はグローブまたは他のパターン化画像を含む表面であってよい。パターン化画像の運動に対応する情報は、電子入力装置をエミュレートするために生成されて使用される。他の実施形態においては、パーソナルデジタルアシスタント上でデータの入力に使用される、スタイラスのような装置を使用して、タッチスクリーン上のデータポイントを生成する。データポイントは、その違いもまた電子入力装置をエミュレートするために使用される第1場所と第2場所におけるパターン化画像に対応する。パターン化画像に対応するデータポイントが、本発明に従う多くの方法で、電子入力装置をエミュレートするために、作成され、捕捉され、使用され得るということは理解されよう。
【0031】
図1は、本発明によるシステム100の良好な実施形態を示している。システム100は、更にコンピューティングプラットフォーム120に結合される、計測装置グループ110に結合されるスワイプセンサ101を備える。その動作において、スワイプセンサ101は指紋画像を読み込み、画像データの一部分または画像に関連する情報(まとめて「画像データ」)を、計測装置グループ110に送信する。計測装置グループ110は、画像データのその一部分を使用して、指がスワイプセンサ101上で回転した角度のような位置情報を生成する。コンピューティングプラットフォーム120は、位置情報を装置エミュレーションデータに変換する。
【0032】
計測装置グループ110は、回転運動相関器112と、直線運動相関器113と、圧力検出器114と、指存在検出器115に結合される時間区間アキュムレータ111を備える。計測装置グループ110が、構成要素111、112、113、114、115を有するように表わされているが、本システムの実施形態は、対象となる適用に依存して、これらの構成要素のどんな組み合わせも有することができるということは理解されよう。例えば、本システムが上記のように、ナビゲーションバーだけをエミュレートするように設計されていれば、直線運動相関器113と指存在検出器115のみが計測装置グループ110に必要となる。
【0033】
利用可能であれば、時間区間アキュムレータ111は、スワイプセンサ101と共に一体化されるか、または他のハードウェア構成要素に一体化されるかのいずれかにより、ハードウェアとして実装される。回転運動相関器112と、直線運動相関器113と、圧力検出器114と、指存在検出器115を含む他の計測装置は、スワイプセンサ101と共に一体化されるか、または他のハードウェア構成要素に一体化されるかのいずれかにより、部分的にまたは全面的にハードウェアとして実装してもよい。または、これらの構成要素は、コンピューティングプラットフォーム上に、ソフトウェアとして実装してもよい。スワイプセンサ101と、ハードウェアとして実装された一体化計測装置は、まとめてセンサロジック104と呼ばれる。別の実施形態において、スワイプセンサ101は、配置型センサと置き換えられる。
【0034】
コンピューティングプラットフォーム120は、ホスト携帯コンピューティングプラットフォームを代表するが、ユーザー入力装置をエミュレートするために使用される一つまたは二つ以上の装置エミュレーションユニットを一緒に形成する中央処理装置とメモリを有する。コンピューティングプラットフォーム120は、回転位置出力140を有するステアリングホイールエミュレータユニット121と、ポインタX出力150と、ポインタY出力151を備えるマウス出力153を有するマウスエミュレータユニット122と、ジョイスティック位置出力160を有するジョイスティックエミュレータユニット123と、ナビゲーション出力161を有するナビゲーションバーエミュレータユニット124と、スクロールホイール出力163を有するスクロールホイールエミュレータユニット125と、圧力メトリック出力165を有する圧力検知ボタンエミュレータユニット126を備える。エミュレータユニット121〜126のそれぞれは、指存在検出器115に結合される第1入力を有する。エミュレータユニット121〜125のそれぞれは、直線運動相関器113に結合される第2入力を有する。ステアリングホイールエミュレータユニット121は、回転運動相関器112に結合される第3入力を有する。圧力検知ボタンエミュレータユニット126は、圧力検出器114に結合される第2入力を有する。
【0035】
一つの実施形態において、システム100は、全ての出力140、153、160、161、163、165についての信号を生成する。出力140、153、160、161、163、165についての各生成信号は、それぞれの電子入力装置により生成される信号に対応する。このように、回転位置出力140について生成された信号は、コンピュータシステム(例えば、ホスト装置)によって受領されたときに、ディスプレイを制御するために使用されるコンピュータマウスにより生成される信号に対応する。同様に、マウス出力153について生成される信号は、コンピュータマウスにより生成される信号に対応する。ジョイスティック位置出力160について生成される信号は、コンピュータジョイスティクにより生成される信号に対応する。ナビゲーション出力161について生成される信号は、コンピュータジョイスティックにより生成される信号に対応する。スクロールホイール出力163について生成される信号は、コンピュータスクロールホイールにより生成される信号に対応する。そして、圧力メトリック出力165について生成される信号は、圧力検知ボタンにより生成される信号に対応する。
【0036】
ここで使用されるように、出力への参照は、その前後関係に依存して、出力線と、その線についての信号の両者を参照する。
【0037】
これらの出力線140、153、160、161、163、165の全てが、本発明に従って使用される必要はない。例えば、ジョイスティックのみが、ホスト装置上のディスプレイを制御するために使用されるときは、ジョイスティック位置出力160のみが、ディスプレイを制御するためにホスト装置に結合される。または、システム100またはホスト装置は、一つまたは二つ以上の入力装置をエミュレートする信号を提供するために、ホスト装置へ、一つまたは二つ以上の出力140、153、160、161、163、165を選択的に結合するスイッチを有する。このスイッチ(図示せず)が、ハードウェアとして、またはソフトウェアとして、またはその両方の組み合わせで実装できることは理解されよう。
【0038】
スワイプセンサ101は、回転運動相関器112、直線運動相関器113、圧力検出器114、指存在検出器115を含む種々の計測装置に、時間区間アキュムレータ111を介して送られる未処理画像データ131を捕捉する。ここで使用されるように、「未処理指紋画像データ」、「未処理画像データ」、「未処理データ」という用語は全て、下記に記述するように、平滑化などの処理が施される前の指紋画像データのことをいう。
【0039】
下記により詳細に記述するように、回転運動相関器112は、画像データの連続フレームを得て、相関法を使用してそれらを、その出力線132について生成される回転角に変換する。ここで使用されるように、全ての出力線と信号(例えば、回転角、直線的変位などを示す)は、同じ参照番号で示される。回転運動相関器112は回転運動ΔΘ132を抽出し、それをステアリングホイールエミュレータユニット121に送信する。直線運動相関器113は、画像データの連続フレームを得て、相関法を使用してそれらを、X方向(ΔX)とY方向(ΔY)の両方向における直線運動に変換する。直線運動相関器113は、マウスエミュレータユニット122、ジョイスティックエミュレータユニット123、ナビゲーションバーエミュレータユニット124、スクロールホイールエミュレータユニット125に対する運動ΔX133とΔY134を抽出する。
【0040】
指存在検出器115は指の存在を検出し、指存在情報136を、全てのエミュレータ121〜126へ送信する。圧力検出器114は圧力情報を、圧力検知ボタンエミュレータユニット126へ送信する。
【0041】
システム100は、一つの入力装置のみ(単一モード)または複数の装置(複数モード)をエミュレートする機能を有する。複数モード操作においては、スワイプセンサ101と、関連する計測装置は、同時に、または時間的に異なる時点において二つまたは三つ以上の装置をエミュレートする。一つの例において、システム100はゲームのジョイスティックをエミュレートするが、ゲームを選択するためのゲーム間のスクロールホイールもエミュレートする。他の例として、レースカーゲームにおいてシステム100は、方向制御のためのジョイスティックと、加速またはブレーキをかけるための圧力検知ボタンの両方をエミュレートする。
【0042】
指存在検出器115は画像データを分析して、指が存在するかどうかを決定する。任意の時間において指の存在を検出することは複雑な作業であり、多くの関係する要因により難しくなる。固有のセンサノイズ、センサ間の変動、センサ表面の残留物、装置の近くを装置に触れないで浮遊する指を検知するセンサの機能などは、下記に記述するように、全てその原因となる問題である。
【0043】
本発明の実施形態は、フレーム統計を使用して指の運動を検出する。本発明の一つの実施形態は、瞬間的なフレーム統計を大幅に平滑することにより、ノイズ耐力を確実にする。最も有効な統計は、あるフレームの分散であり、フレーム中の全ての画素を使用するか、または効率化の目的で適切に選択された一部を使用して計算できる。良好な実施形態においては、画像フレームの中心行における全ての画素のうち、適切に選択した一部が使用される。i番目のフレームに対する分散は、Var(i)と表わされる。使用される指数関数的平滑化は、従来技術においてよく知られている。任意のフレームiにおける平滑化分散SmoothVar(i)は、式(1)により与えられる。
【0044】
SmoothVar(i)=fac*SmoothVar(i−1)+(1−fac)*Var(i) [式1]
ここで、facは、どの程度の平滑化を望むかに依存する0から1の間の任意の数値である。好ましくは、fac=0.9である。SmoothVar(0)はVar(0)として定義される。Var(i)とSmoothVar(i)は共に、8ビット画素データに対しては、0と128の範囲の値をとることができる。
【0045】
任意の時間において、センサ上に指が存在するかどうかを決定するために、本発明は、図2のグラフ200で示される分散の履歴という形式における前後関係を利用する。グラフ200は、横軸に時間tを表わし、時間tの関数であるSmoothVarを縦軸に表わしている。グラフ200は、SmoothVar値であるSVONとSVOFFも示している。ある特定に時間におけるSmoothVarが、SVONから所定の値の範囲内にあれば、システムは、指がスワイプセンサ101上にあることを検出する。同様に、ある特定の時間におけるSmoothVarが、SVOFFから所定の値の範囲内にあれば、システムは、指がスワイプセンサ101上にないことを検出する。グラフ200は、時間t1、t3、t5においてシステム100が、指はスワイプセンサ101上にないと決定し、時間t2とt4においてシステム100は、指がスワイプセンサ101上にあると決定する。これらの決定は、図3を参照してより明確に説明される。
【0046】
図3A及び図3Bから構成される図3は、図1におけるスワイプセンサ101上に指があるかどうかを決定するために使用される、良好な実施形態の方法のステップ300を示している。この決定は、図1の指存在検知器115上で実行されるステップを使用してなされる。下記により詳細に説明するように、ステップ300は、スワイプセンサ101上にある画像の分散の履歴を使用して、指がスワイプセンサ101上にあるかどうかを決定する。
【0047】
開始ステップ301はステップ303に進み、フレームカウントiを0に初期化する。次に、ステップ305において、時間t=0における分散Var(0)が、下記に記述する閾値VT0未満かどうかが決定される。Var(0)がVT0未満の場合、処理はステップ307に進み、そうでない場合は、処理はステップ309に進む。ステップ307で、分散STATEはOFFに設定され、変数MinVarOffはVar(0)に設定され、変数MaxVarOnは0に設定され、処理はステップ313に進む。ステップ309で、Var(0)がVT0以上かどうかが決定される。Var(0)がV以上の場合、処理はステップ311も進み、そうでない場合は、処理はステップ313に進む。ステップ311で、変数STATEはONに設定され、変数MinVarOffは128に設定され、変数MaxVarOnはVar(0)に設定され、処理はステップ313に進み、変数SmoothVar(0)はVar(0)に設定される。
【0048】
次に、ステップ315において、画像データの次のフレームが図1のスワイプセンサ101から読み込まれ、ステップ317において、フレームカウンタiは増加される。ステップ319で、STATEがOFFかどうかが決定される。STATEがOFFの場合、処理はステップ321に進み、そうでない場合は、処理はステップ333に進む。ステップ321において、SmoothVar(i)−MinVarOffがVC1と比較される。SmoothVar(i)−MinVarOffのほうが大きい場合は、処理はステップ323に進み、そうでなければステップ325に進む。ステップ323で、変数STATEはONに設定され、変数MinVarOffは128に設定され、変数MaxVarOnはSmoothVar(i)に設定され、処理はステップ315に戻る。
【0049】
ステップ325で、変数STATEはOFFに設定される。次に、ステップ327で、SmoothVar(i)はMinVarOffと比較される。SmoothVar(i)がMinVarOff未満の場合は、処理はステップ329に進み、そうでない場合は、処理はステップ315に進む。ステップ329において、変数MinVarOffはSmoothVar(i)に設定され、処理はステップ315に戻る。
【0050】
(STATEがONであるため到達した)ステップ333において、MaxVarOn−SmoothVar(i)の値は、下記に記述するVC2の値と比較される。MaxVarOn−SmoothVar(i)がVC2より大きい場合は、処理はステップ335に進み、そうでない場合は、処理はステップ337に進む。ステップ335で、変数STATEはOFFに設定され、変数MinVarOffはSmoothVar(i)に設定され、変数MaxVarOnは0に設定され、処理はステップ315に戻る。ステップ337において、変数STATEはONに設定される。次に、ステップ339において、変数SmoothVar(i)はMaxVarOnと比較される。SmoothVar(i)がMaxVarOnより大きい場合は、処理はステップ341に進み、そうでない場合は、処理はステップ315に戻る。ステップ341で、変数MaxVarOnはSmoothVar(i)に設定され、処理はステップ315に戻る。
【0051】
上記の、ステップ315に戻るステップにおいて、このステップの戻りは他の手段により破棄できる。
【0052】
ステップ300は、指がスワイプセンサ101上にあると考えられるときは、SmoothVarのピークを追尾し、指がスワイプセンサ101上から離れていると考えられるときは、最低の谷を追尾する。SmoothVar(t)は時間tの関数である。STATEは、現在のSmoothVar(t)と最新のピークまたは谷に判別できる差があるときにのみ変化する。STATEがONの場合、システム100は指が検出されたと決定し、そうではなく、STATEがOFFの場合は、システムは指が検出されなかったと決定する。
【0053】
本発明の実施形態はノイズを有利に平滑化し、決定のために前後関係を利用し、それらの決定をするために瞬間的な値を使用することはしない。更に、本発明の実施形態は、絶対分散ではなく分散変化を使用するので、実施形態で使用されるアルゴリズムは、異なる環境条件において、また異なるセンサタイプに対して、より強固である。
【0054】
更に図3を参照すると、VT0は一般的に、センサに依存して1から180の範囲であるが、良好な実施形態は35を使用する。VC1とVC2は1から50の範囲であり、最適値はまた、センサにある程度依存する。良好な実施形態において、VC1=VC2=8である。しかし、VC1とVC2はどんな値の組み合わせも取ることができることは理解されよう。指の運動は、SmoothVar(i)において自然の変動を引き起こすため、VC1とVC2に対して小さすぎる値は、不要な状態の変化を引き起こし、それゆえ任意の時間における指の存在の不正確な検出ということの原因になりかねない。別の実施形態において、VC1とVC2はピークと谷の百分率(例えば、VC1=MinVarOffの20%、VC2=MaxVarOnの25%)、またはピークと谷の複素線形または非線形関数であってよい。
【0055】
再び図1を参照すると、直線運動相関器113は、その出力ポート上に指の運動ΔX133とΔY134を二つの直交する方向に生成し、図4Aと図4Bに定義されるように、ΔXはセンサの幅に沿うx次元の運動であり、ΔYはセンサの高さに沿うy次元の運動である。図4Aは、本発明の一つの実施形態に従う、y方向の長さを短縮した、スワイプセンサ400の第1方向を示している。図4Bは、本発明の他の実施形態に従う、x方向の長さを短縮した、スワイプセンサ400の第2方向を示している。一般的にユーザーは、図4Aに示すように方向付けられたスワイプセンサ400を使用するときは、指をy方向(例えば、垂直に)にスワイプし、図4Bに示すように方向付けられたスワイプセンサ400を使用するときは、指をx方向に(例えば、水平に)スワイプする。ΔY134を行に関して検出し、ΔX133を画素に関して検知する行に基づく相関アルゴリズムは、「複数の部分的バイオメトリックフレーム走査からのバイオメトリック画像アセンブリの方法とシステム(Method and System for Biometric Image Assembly from Multiple Partial Biometric Frame Scans)」とい題名の、2002年7月12日出願の、米国特許出願第10/194,994号に説明されており、ここに引用によりその全体の内容を組み込んだものとする。指の変位は、まず運動速度を計算するということなしで計算される。
【0056】
行に基づくアルゴリズムの追加的な利点は、細孔に頼ることなく、一つまたは二つの稜線しかない連続行の間の運動を検出するということである。
【0057】
本発明によれば、回転運動相関器112は、機械的部品なしで実装される。回転運動相関器112は、指の回転運動ΔΘ132の推定値を生成する。良好な実施形態においては、指画像の各フレームは、二つの(左と右)のウィンドウに分割される。同じウィンドウの連続するフレームは、回転に対して分析される。各ウィンドウにおける直線運動相関器113を使用して、各ウィンドウのY次元における行のオフセットが計算される。行のオフセットが、左ウィンドウにおける画像が、右ウィンドウの画像から逆の方向へ行こうとしていることを示している場合は、回転が検出される。例えば、左ウィンドウが、画像は上昇していることを示し、右ウィンドウが、画像は降下していることを示すときは、指は時計方向に回転している。
【0058】
回転運動ΔΘ132は回転角で表現でき、規格化因子により除算された、二つのウィンドウの行のオフセットの合計として算出される。結果は、ラジアンで表現された運動角である。
【0059】
このアルゴリズムの重要性はその簡潔性にある。各ウィンドウから算出された相関値は、フレーム全体の相関値を提供するために組み合わせることができる。それゆえ、追加的な演算資源をほとんど必要とせず、待ち時間も問題にはならない。このレベルの簡潔性であれば、回転運動相関器112を簡単にハードウェアとして実装することができ、特に、直線運動相関器が既に実装されている場合はなお更である。
【0060】
角度に関する運動の粒状度を向上し、指がセンサ101の中心に正確にないときでも指の回転を捕捉するために、ウィンドウの数を増やすことができるということは理解されよう。また、各ウィンドウのサイズは同じである必要はなく、その配置においても全体としての対称性が要求されることもないということも理解されよう。
【0061】
本発明の実施形態は、圧力トランスデューサを使用することなく、稜線の幅を検知することなく、また画素をカウントすることもなく、フレームの統計と、指の検出領域を組み合わせることにより指の圧力を有利に測定する。
【0062】
フレームにおける画素の値、またはグレイレベルは、フレームに指の圧力が下に向けてより強く加えられると暗くなり、圧力が減少すると明るくなる。良好な実施形態において、画素は15のグレイレベルを有するとして定義され、レベル0は指が存在しないことに相当し、レベル14は、その存在が画素を完全に暗くする指に相当する。または、画素は0から15の16のグレイレベル(4ビット)を有する。本発明によれば画素は、どんなビット数により定義されるどんな数のグレイレベルを有することができる。フレーム平均とフレーム分散は、上記に引用によりここに組み込まれた米国特許出願第10/194,994号に記載されている。この効果もまた、分散の変動という直接の結果になる。
【0063】
稜線の幅の検出は、その幅を測定できるように、稜線の範囲を決定し、その輪郭を追尾するために多大な計算量が必要となる。画素の数はしばしば非常に変化に富み、どの画素が背景の部分で、どの画素が指自身からのものかを決定するために、固定のまたは中央値に基づく閾値を適用することが必要となる。
【0064】
本発明の実施形態は、平滑化されたフレーム統計を、ある領域内のセンサのどの部分が指を検出するかに関する情報と組み合わせて、圧力の推定値の範囲を与えることにより、相対的な指の圧力を決定する。
【0065】
図5は、本発明による指センサ500の一つの良好な実施形態を示している。センサ指センサ500はフレーム501を備える。フレーム501は、論理的に4つの領域(サブフレーム)505、510、515、520に分割され、それは三つに分離してはいるが重なりあっている領域として処理される。つまり、左のサブフレーム530(領域505と510の組み合わせ)と、中央のサブフレーム535(領域510と515の組み合わせ)と、右のサブフレーム540(領域515と520の組み合わせ)である。本発明によればセンサ500は、どんな数の重なりあう領域、隣接する領域、または重なりあう領域と隣接する領域の組み合わせにも分割できるということは理解されよう。
【0066】
指存在検出器115で記述された指検出が、左、右、及び中央のサブフレームに対して別々に実行され、各領域における指の存在に関しての結論がそれぞれ独立して決定される。変数Δ左(異なる反復における左のサブフレーム530間の差)と、Δ中央(異なる反復における中央のサブフレーム535間の差)と、Δ右(異なる反復における右のサブフレーム540間の差)は、指が検出されない場合はゼロと定義され、左のサブフレーム530、中央のサブフレーム535、及び右のサブフレーム540のそれぞれにおいて指が検出される場合は、1と定義される。
【0067】
上記のように、平均と分散の計算はノイズにより相当な量の変動をする傾向がある。それらは、下記の式2と式3により指数関数的に平滑化される。
【0068】
SmoothAvg(i)=fac*SmoothAvg(i−1)+(1−fac)*Avg(i) [式2]
SmoothVar(i)=fac*SmoothVar(i−1)+(1−fac)*Var(i) [式3]
別の実施形態において、平滑化統計を、アレイ全体に対してではなく、センサのあるサブフレームに対して使用することができる。
【0069】
図6は、本発明の一つの実施形態によるフレームiにおける推定圧力の計算に使用されるステップ600を示している。ステップは、図1に示す圧力検知ボタン126で実行される。図6を参照すると、処理はステップ601で開始してステップ603に進み、Δ左+Δ中央+Δ右の合計が0と比較される。両者が等しい場合、処理はステップ605に進み、そうでない場合は、処理はステップ607に進む。ステップ605で、変数RawPressure(i)は0に設定され、処理はステップ609に進み、そこで終了する。ここで、iは現在のフレームカウント数に等しい。ステップ607で、変数RowPressure(i)は、値Wd*(Δ左+Δ中央+Δ右)+Wa*(16−SmoothAvg(i))+Wv*(SmoothVar(i))に設定され、ここでWd、Wa、Wvは、重み付け因子であり、それぞれは、0以上である。好ましくは、Wd=3、Wa=0.25、Wv=0.05である。別の実施形態では、他の重み付けを使用することができる。また、指が存在するときは、非線形関数を使用してRawPressure(i)を算出することもでき、別々の左、右、そして中央の統計も使用することができる。
【0070】
より信頼性を増すために、良好な実施形態においては、下記の式(4)を使用して、RawPressure推定値を指数関数的に平滑化する。
【0071】
SmoothPressure(i)=facP*SmoothPressure(i−1)+(1−facP)*RawPressure(i)[式4]
ここで、facPは0から1の間のどんな値でもよい。好ましくは、facP=0.9である。別の実施形態においては、RawPressure推定値は平滑化されない。
【0072】
図1を参照すると、上記の圧力推定値を計算することにより、圧力検出器114は加えられた圧力の広い範囲全体に渡って、圧力情報135を生成する。一般的に、指存在検出器114が指を検出しない場合は、圧力は0と定義される。指が検出される領域が多いほど、加えられる圧力は高くなる。より暗い平均とより大きな分散は、より高い圧力が加えられていることを意味する。他の計測装置と同様に、圧力検出器114は、スワイプセンサ101に集積されるハードウェアとして部分的に、または全面的に実装してもよい。
【0073】
時間区間アキュムレータ111は、利用可能であれば、スワイプセンサ101に集積されるハードウェアとして実装されるオプションの計測装置である。時間区間アキュムレータ111は、イベントバッファ115を有しており、時刻を記録できる。時刻データは、ほとんどの非リアルタイムコンピューティングプラットフォームは、それが利用できるようになった瞬間は、スワイプセンサ101からデータを読むことは常にできるわけではないので重要である。これは、通常、ホストオペレーティングシステムは、25ミリ秒以上続く可能性がある割込みの処理で忙しいからである。スワイプセンサ101からのデータに時刻が記録してある限り、ホストコンピューティングプラットフォームは、受け取ったイベントが実際は、お互いに関していつ起こったかについてのリアルタイムの情報を持つことになる。この情報により、ゲームはより反応が早くなり、ユーザーの体験度全体を向上することになる。更に、正確なフレームの時刻記録により、演算資源の最適な使用が、フレームの測定速度の高精度制御により可能になる。
【0074】
ユーザー入力装置をエミュレートするとき、リアルタイムの性能は、ユーザーにタイムリなフィードバックを提供するために重要である。システムの性能を向上するために、2002年3月13日に出願された「集積オンチップデータバッファリングによる指紋バイオメトリック捕捉装置及び方法(Fingerprint Biometric Capture Device and Method With Integrated On-Chip Data Buffering)」という題名の、その全体を引用によりここに組み込まれたとする米国特許出願第10/099,558において、Chenは、データがホストシステムに送信される前に、一時的に画像データのフレームを格納するオンチップメモリを使用する構造を開示した。内部メモリであるイベントバッファ115'(図示せず)は、割込みまたは他の入出力イベントのため、コンピューティングプラットフォーム120が一時的に利用できない場合は、データを格納するためには特に有用である。イベントバッファ115'は、計測装置グループ110とホストコンピューティングプラットフォーム120を結合し、それに制限されるわけではないが、画像フレームデータ、回転デルタ、xとyデルタ、クリックとダブルクリック、圧力変化、及び指存在情報を含む複数のデータタイプを格納するように構成される。
【0075】
本発明によれば、イベントバッファ115を、後で処理される未処理データの格納に使用できることは理解されよう。好ましくは、イベントバッファ115は時間区間アキュムレータ111の一部を形成する。これとは別に、または追加的に、イベントバッファ115'を、回転運動ΔΘ(図1の132)のような回転データや、直線運動ΔXとΔY(図1の133と134)や、圧力情報(図1の135)や、指存在情報(図1の136)のような処理済みデータの格納に使用できる。イベントバッファを、本発明に従う他の情報の格納に使用でき、これにより種々の方法で構成要素に結合できることは理解されよう。
【0076】
指画像センサに対する認証のようなほとんどの伝統的な適用において、スワイプセンサ101により発せられる指紋画像間、またはフレーム間の時間区間の正確な測定は要求されていない。一般的に時間区間は、要求された場合は、フレーム速度は処理負荷に依存し、所定の値ではないため、多数のフレーム全体に渡るフレーム速度を測定することにより、コンピューティングプラットフォーム120上のソフトウェアにおいて推定される。しかし、ユーザー入力の適用に対しては、指画像データに関連する時間情報は、ユーザーに望ましいフィードバックを提供するためには非常に重要である。例えば、時間情報は、マウスポインタが対応する運動を示すことができるように、指の運動の速度と加速度を推定するためには必要となる。本発明の一つの形態においては、センサにフレームの時刻を計算及び記録させ、またはあるフレーム間の時間区間、またはあるナビゲーションイベントを計算及び記録させる。例えば、ミリ秒の分解能を有する内部カウンタは、全てのフレームに関連させるために時間値を生成する。ユーザー入力の目的のために重要なのは、時間区間または相対時間値であり、絶対時間値ではない。
【0077】
時間情報は、本発明の他の計測装置からの運動の値と組み合わせられると、ホストプロセッサがより正確に指運動の速度と加速度を算出することが可能になる。更に、指画像データと共に時間情報を記録する機能により、スワイプセンサ101が、コンピューティングプラットフォーム120との入出力相互作用から非同期に、より良好に動作するようになり、コンピューティングプラットフォーム120に結合された、またはその一部を形成するホスト装置のハードウェア及びソフトウェアアーキテクチャの変動の多い予測できない待ち時間から、コントローラのリアルタイム性能及び応答性を切離す。例えば、コンピューティングプラットフォーム120は、着信呼に対して、無線信号を受信する携帯電話であってよく、それは、短区間に対するプロセッサの演算力と、スワイプセンサ101への応答の遅延を分散することがある。
【0078】
本発明の実施形態は、指画像センサに集積されたハードウェアとして全計測装置グループ110の副セットを有利に実装することにより、センサロジック114となり、指画像のいくつかの処理を行う。処理により、ユーザー入力を示すのには十分な情報の副セットを、現在の動作モードに従って抽出する。例えば、システムがステアリングホイールをエミュレートするように設定されている場合は、未処理画像データ131の複数のフレームを送信するのではなく、センサロジック104は、ある閾値を超える角度変化のような回転運動ΔΘ132のみを算出して、コンピューティングプラットフォーム120へ送信する。処理は、回転運動相関器112を使用して計算を実行することと、回転運動相関器112に結合された回転イベントバッファ(図示せず)における、回転角度の結果としての計算された変化をバッファリングすることを含む。結果としての回転運動ΔΘ132は、未処理指画像131よりも必要とするメモリが少なくて済む。ホストが、次の回転角度の変化が計算される前に、回転データを読むことができない場合は、新しい計算もまた、回転イベントバッファに格納される。ホストがデータを読む準備ができれば、回転イベントバッファから一度に全ての格納データを読むことができる。センサロジック114は、コンピューティングプラットフォーム120により要求されたデータのみを抽出して送信するので、本発明の実施形態はこのように、コンピューティングプラットフォーム120のメモリと、入出力容量と、演算資源をより少なくしか必要としないという有利点を有する。ハードウェア実装のこの刷新が望まれるときは、それはユーザー入力装置に対しては必要のない機能である。
【0079】
マウスエミュレータ121は、クリックとダブルクリックと同様に、マウスポインタの二次元的運動をエミュレートできる。直線運動相関器113により生成される運動ΔX133とΔY134は、複数の段階で非線形に変倍されて、ディスプレイ上のポインタの運動をマップする。良好な実施形態においては、3段階、つまり、平滑化、変倍、そしてフィルタリングが必要である。
【0080】
全ての繰り返しに対して、以前のx次元の運動の残りは、ΔX133に追加される。この追加による結果は、平滑化係数SmoothingScaleにより除算される。除算による商の整数部分は平滑化された指の運動であり、fingerMovementXと呼ばれる。除算の残りの部分は、次の繰り返しに送られる。ステップはy次元においても全く同じである。それゆえ、以前のy次元の運動の残りはΔY134に追加される。追加による結果は平滑化係数SmoothingScaleにより除算される。除算による商の整数部分は平滑化された指の運動であり、fingerMovementYと呼ばれる。除算の残りの部分は、次の繰り返しに送られる。
【0081】
図7は、平滑化段階を実行するのに使用されるステップ700を示している。スタートステップ701の後、アキュムレータΔXとΔYは、共にステップ703において0に設定される。次に、ステップ705において、変数SmoothingScaleは、1以上の所定の整数に設定される。他の実施形態において、SmoothScaleは、普遍性を失うことなく浮動小数点値に設定される。次に、ステップ707において、繰り返しカウンタiを増加する。ステップ709において、次のフレームのΔXとΔYは、共に直線運動相関器113により読み込まれ、処理はステップ711に進む。ステップ711において、指が図1のスワイプセンサ101上で検出されたかどうかが決定される。この決定は、指存在検出器115(図1)においてなされる。指が検出されると、処理はステップ713に進み、そうでない場合は、処理はステップ707に戻る。
【0082】
ステップ713において、変数ΔXaccは、ΔXacc+ΔXに設定され、変数ΔYaccは、ΔYacc+ΔYに設定される。次に、ステップ715において、変数fingerMovementXは、最も近い整数に四捨五入されたΔXacc/SmoothingScaleに設定され、変数fingerMovementXは、これもまた最も近い整数に四捨五入されたΔYacc/SmoothingScaleに設定される。次に、ステップ717において、変数ΔXaccは、ΔXacc−(fingerMovementX*SmoothingScale)に設定され、変数ΔYaccは、ΔYacc−(fingerMovementX*SmoothingScale)に設定される。ステップ717において、両操作の残りは保存される。次に、処理はステップ707に戻る。
【0083】
ステップ700において、「SmoothingScale」は、運動を平滑化するように働く。従って、fingerMoveXとfingerMoveYは、未処理指運動の非線形平滑化バージョンとなる。SmoothingScaleは、ディスプレイ上の実際の運動には何の影響も与えないことに留意されたい。
【0084】
適切なマウスのエミュレーションには、ユーザーの動作に依存して、同じ装置を使用するマクロな運動とミクロな運動の両方を可能にするために、運動モデルの導入が必要となる。例えば、ユーザーがスクリーンの一つの側から他の側へ移動したいと考えたときに、ユーザーはそれを、指を何度も上げることなく、最小限の努力により達成したいと考える。これには、画素単位のスクリーンの運動が、装置上の指の実際の運動よりもはるかに大きいことが必要となる(加速モード)。しかし、ユーザーはスクリーン上でより細かい動きをする必要がたびたびあり、従って、より小さくする係数も要求される(減速モード)。繰り返しiにおける変倍係数は、ScreenScale(i)と表わされる。ScreenScale(i)は、固定値ではなく、ある時間におけるユーザー動作の関数である。
【0085】
任意の繰り返しiにおいて、運動式が、式5と式6により、ディスプレイ上のポインタに対して定義される。
【0086】
ScreenMovementX(i)=ScreenScale(i)*fingerMovementX(i)[式5]
ScreenMovementY(i)=ScreenScale(i)*fingerMovementY(i)[式6]
式5と式6は、小さな直線による方法で、加速と減速を使用する。操作中、図7のアルゴリズムは、最後のN回の運動に対して起きた指の運動量と、履歴バッファ(図示せず)に保管された各イベントに対するフレーム番号の両者を記録する。好ましくは、Nは32に等しいが、1から1000の間のいかなる値も可能である。
【0087】
運動イベントが起こるたびに、x及びyの両方向における最後のN回の運動は合計され、それぞれ、Sum(X)とSum(Y)と表わされる。ここにおいて、運動イベントは、ステアリングホイールを回転したり、マウスボタンを押したり、カーソル、ジョイスティック、ナビゲーションバー、またはスクロールホイールを動かしたりする運動をエミュレートすることになるどんなユーザーの動作であってよい。Sum(X)またはSum(Y)またはSum(X)+Sum(Y)の何れかが、所定の閾値TAよりも大きいときは、変倍係数ScreenScale(i)は、高速スクリーン運動が可能なように高い値に設定される。一方、運動量が第2閾値TDよりも小さい場合は、変倍係数ScreenScale(i)は低い値に設定される。どちらの場合も当てはまらないときは、ScreenScale(i)はデフォルト(通常モード)値に設定される。ScreenScale(i)は0に近い値から非常に大きな値までの範囲をとることができ、構成可能であると好ましい。良好な実施形態において、加速モードに対してScreenScale(i)は4に等しく、減速モードに対してScreenScale(i)は1に等しく、デフォルトモードにおいてはScreenScale(i)は2に等しい。
【0088】
スワイプセンサ(例えば、図1のスワイプセンサ101)上の指の非常に小さな揺れは、マウスポインタの急速な変動に変換され、ポインタは見かけ上ファジーになる。他の実施形態において、指数関数的フィルタリングのような非線形フィルタリングが、より自然なスクリーンでの運動のために使用される。本実施形態においては、ある方向の運動は、式7に従って平滑化される。
【0089】
ScreenMovementX(i)=ExponentialFilter*[ScreenScale(i−1)*fingerMovementX(i−1)]+(1−ExponentialFilter)*[ScreenScale(i)*fingerMovementX(i)]
ここで0.0<=ExponentialFilter<=1.0である。
[式7]
ExponentialFilterの大きな値は、より平滑化が進むという結果になるが、指の運動からディスプレイの運動へのより大きな遅れまたは遅延という結果にもなる。良好な実施形態においては、ExponentialFilterは0.2に等しい。ExponentialFilterは、非線形動作である。
【0090】
他の実施形態において、中央値フィルタリングが全てのモードにおいて追加され、結果を平滑化し、スクリーン運動をより自然にする。中央値フィルタリングは、従来技術においてよく知られている。本実施形態において、5連続運動のウィンドウが使用される。中心点は、全5点の中央値に置き換えられる。これにより、センサノイズのために起こりえる偽運動を回避する。中央値フィルタリングは、非線形動作である。
【0091】
マウスクリックは、マウス動作の不可欠な部分である。良好な実施形態において、指の運動に沿う指の上から下へ(FD)と指の下から上へ(FU)の移動の連続は、単一クリック(例えば、イベント)を意味する。単一クリックは、指の上から下への移動(FD_1)で開始し、指が下にあるときには運動を伴わない指の上から下への移動(FD_1)がそれに続く。指は、所定の閾値時間Tdの間、運動を伴わずに下に留まっていなければならない。単一クリックと認められるために、運動を伴わずにスワイプセンサ上にどのくらい長く留まっていることができるかについての制限はない。FU_1の後、指は、ダブルクリックとの混同を回避するために、最小持続時間T1の間は、センサと接触してはならない。
【0092】
1次元におけるスクロールホイール、コントローリングカーソル、またはポインティングインディケータは、PDAにおいて一般的に見られる。スクロールホイールのエミュレーションは、マウスポインタのものと非常に類似しているが、ΔX133とΔY134のどちらかの値を使用し、両者を使用することはないことだけが異なっている。他の方向は無視、あるいはゼロとして扱われる。更に、スクロールホイールエミュレータユニット121は、選択を示すクリック機構も提供することができる。スクロールホイールにおける選択のエミュレーションは、マウスにおける単一クリックの選択のエミュレーションと同一である。
【0093】
図8は、ゲームコントローラやPDAにおいて見られるような、例えば、上、下、左、右機能を表現する4方向ボタン、または4ボタンクラスターである、ナビゲーションバー800の一つの実施形態を示している。これらのボタンまたはボタンクラスターの中には、8方向のナビゲーションを可能にする、左上、右上、右下、左下のような追加的な方向のためにボタンの組み合わせをサポートするものもある。ナビゲーションバーの中には、ナビゲーションボタンの中心を押すことのような、選択のための追加的機能もサポートしているものもある。
【0094】
ナビゲーションバーまたはボタンクラスターをエミュレートするためには、XとY運動が、上記のマウスポインタのエミュレーションと同様に累積される。XとYスペースは、4または8(または、12のような他の数字)個のセクターに分割される。セクターの数は、制御可能な方向の数である。線形運動相関器113は、ΔX133とΔY134を生成し、両者は運動の方向と距離から構成される。定義された閾値を超える大きな運動が検出された場合はいつでもナビゲーションイベントが発せられ、セクターに対応する方向の運動単位が示される。言い換えれば、指の運動は、ナビゲーションバーエミュレーションを介して、運動の量子ステップに変換される。
【0095】
図9A及び図9Bで構成される図9は、本発明による4方向(4セクター)ナビゲーションバーをエミュレートするためのステップ900を示している。これらのステップは、ナビゲーションバーエミュレータユニット124により実行される。開始ステップ901の後、アキュムレータΔXaccとΔYaccは共に0に設定される。次に、ステップ910で、て、次のフレームのΔXとΔYが、線形運動相関器113から受け取られる。次に、ステップ915において、指がスワイプセンサ101上に検出されたかどうかが決定される。指が検出されなかった場合は、処理はステップ905に戻る。そうでない場合は、処理はステップ920に進み、変数ΔXaccはΔXacc+ΔXに設定され、変数ΔYaccはΔYacc+ΔYに設定される。次に、ステップ925において、変数distance(距離)が(ΔXacc2+ΔYacc2)1/2に設定される。次に、ステップ930において、ΔXaccの絶対値がΔYaccの絶対値と比較される。ΔXaccの絶対値がΔYaccの絶対値よりも大きいときは、処理はステップ935に進み、そうでない場合は、処理はステップ955に進む。
【0096】
ステップ935において、ΔXaccは0と比較される。ΔXaccが0より大きい場合は、処理はステップ940に進み、そうでない場合は、処理はステップ945に進む。ステップ940で、変数direction(方向)はRIGHTに設定され、処理はステップ980に進む。ステップ945で、変数ΔXaccは0と比較される。ΔXaccが0より小さい場合は、処理はステップ950に進み、そうでない場合は、処理はステップ980に進む。ステップ950で、変数direction(方向)はLEFTに設定され、処理はステップ980に進む。
【0097】
ステップ955で、ΔXaccの絶対値はΔYaccの絶対値と比較される。ΔXaccの絶対値がΔYaccの絶対値より小さい場合は、処理はステップ960に進み、そうでない場合は、処理はステップ980に進む。ステップ960で、変数ΔYaccは0と比較される。ΔYaccが0より大きい場合は、処理はステップ965に進み、そうでない場合は、処理はステップ970に進む。ステップ965で、変数direction(方向)はUPに設定され、処理はステップ980に進む。
【0098】
ステップ970で、変数ΔYaccは0と比較される。ΔYaccが0より小さい場合は、処理はステップ975に進み、そうでない場合は、処理はステップ980に進む。ステップ975で、変数direction(方向)はDOWNに設定され、処理はステップ980に進む。ステップ980で、変数Distanceは、値10のような所定の運動単位閾値と比較される。浮動小数点の値も使用できることは理解されよう。Distance(距離)が運動単位閾値よりも大きい場合は、処理はステップ985に進み、そうでない場合は、処理はステップ910に進む。ステップ985で、ステップ940、950、965、または975の一つで決定された方向での運動イベントが、コンピューティングプラットフォーム120から発せられ、処理はステップ905に戻る。
【0099】
ステップ900について考慮して見れば、ステップ900が、どんな数の方向のナビゲーションバーでもエミュレートするように一般化できることは理解できよう。
【0100】
本発明の一つの実施形態は、ゲームコントローラに見られるような2軸アナログまたは比例デジタルジョイスティックをエミュレートする。物理的ジョイスティックは、X及びY運動を生成し、ユーザーが手を放すとホームポジションへ戻るような、バネまたはバネ/緩衝器の組み合わせ、及び/または、モーターまたは他のアクチュエータにより提供される力のフィードバックにより提供される自動センタリング機構を有している。
【0101】
ジョイスティックをエミュレートするために、直線運動相関器113により生成される運動ΔX133とΔY134は、ジョイスティックの運動をマップするために非線形に変倍される。ジョイスティックは、指が指スワイプセンサ101から離れると、ホームポジションに戻る。
【0102】
図10A及び図10Bで構成される図10は、ジョイスティックエミュレータユニット123により実行される、本発明の一つの実施形態によるジョイスティックをエミュレートするために使用されるステップ1000を示している。開始ステップ1001の後、初期化ステップ1003が実行される。ステップ1003で、ジョイスティックの位置Xposはx0に設定され、ジョイスティックの位置Yposは、y0に設定され、アキュムレータΔXaccとΔYaccは0に設定され、変倍率は1以上の整数に設定される。他の実施形態においては、変倍率は、普遍性を失うことなく浮動小数点に設定される。次に、ステップ1005で、次のフレームのΔXとΔYが直線運動相関器113により読み込まれる。次に、ステップ1007で、少なくともT7フレームの間、指がスワイプセンサ101上で検出されなかったかどうかが決定される。ここで、T7は、適用対象に対して選択される所定の値である。指が少なくともT7フレームの間、検出されなかった場合は、処理はステップ1003に戻り、そうでない場合は、処理はステップ1009に進む。ステップ1009で、指がT7フレームまたはそれ以下の間、検出されなかったかどうかが決定される。指がT7フレームまたはそれ以下の間、検出されなかった場合は、処理はステップ1005に戻る。そうでない場合は、処理はステップ1011に進む。
【0103】
フレーム単位以外の変数を、本発明に従って使用できるということは理解されよう。例えば、一つの実施形態において、フレーム単位ではなく、時間単位が使用されてステップ1007から1003に戻るかどうかが決定される。この例では、時間単位の少なくとも所定数の間(例えば、10クロック単位)指が検出されなかった場合は、処理はステップ1007からステップ1003に戻る。
【0104】
更に図10を参照すると、ステップ1011で、値ΔXaccはΔXacc+ΔXに設定され、値ΔYaccはΔYacc+ΔYに設定される。次に、ステップ1013で、値moveXは、最も近い整数に四捨五入されたΔXacc/Scaleに設定され、値moveYは、これもまた最も近い整数に四捨五入されたΔYacc/Scaleに設定される。次に、ステップ1015で、変数XposはXpos+moveXに設定され、変数YposはYpos+moveYに設定される。次に、ステップ1017で、変数ΔXaccはΔXacc−(moveX*Scale)に設定され、変数ΔYaccはΔYacc−(moveY*Scale)に設定される。このステップ1017で、それぞれの除算の余りは保存される。
【0105】
次に、ステップ1019で、XposはXposMaxと比較される。XposがXposMaxよりも大きい場合は、処理はステップ1021に進み、そうでない場合は、処理はステップ1023に進む。ステップ1021で、XposはXposMaxに設定され、処理はステップ1027に進む。ステップ1023で、XposはXposMinと比較される。XposがXposMinより小さい場合は、処理はステップ1025に進み、そうでない場合は、処理はステップ1027に進む。ステップ1025で、XposはXposMinに設定され、処理はステップ1027に進む。
【0106】
ステップ1027で、YposはYposMaxと比較される。YposがYposMaxより大きい場合は、処理はステップ1029に進み、そうでない場合は、処理はステップ1031に進む。ステップ1029で、YposはYposMaxに設定され、処理はステップ1005に戻る。ステップ1031で、YposはYposMinと比較される。YposがYposMinより小さい場合は、処理はステップ1033に進み、そうでない場合は、処理はステップ1005に進む。ステップ1033で、YposはYposMinに設定され、処理はステップ1005に進む。
【0107】
XposMax、XposMin、YposMax、YposMinに対する値はシステムに依存し、開始時に設定できることは理解されよう。XposMaxは図1のシステム100に結合、またはその一部を形成するディスプレイ上で対象が持つことができる最大値xを反映している。XposMinは最小値xを、YposMaxは最大値yを、そしてYposMinは最小値yを反映している。
【0108】
ステップ1000は、T7を超えるいくつかのフレーム数の間、スワイプセンサ101上に指が検出されない場合は、自動かつ即座にセンタリングを行う。他の実施形態においては、エミュレートされたジョイスティック(例えば、ステップ1000で生成された出力)は、物理的バネ質量またはバネ質量緩衝器の組み合わせのシミュレーションを使用して、よりゆっくりと中心に戻る。例えば、エミュレートされたジョイスティックは、1秒を超える時間または他の類似の時間値をかけて、センターポジションに直線に沿って戻り、それにより、ユーザーには戻る運動が見える。
【0109】
他の実施形態において、エミュレートされたジョイスティックは、指圧力検出器114により戻された圧力情報135がある閾値より小さい場合は、中心にゆっくり戻ろうとする傾向があり、この傾向は指の圧力が減少するにつれてより顕著になる。言い換えれば、戻る運動の速度は、指により減少された圧力量に比例する。時間のある単位においてより大量に圧力が減少されると、戻る速度はより速くなる。圧力が0にまで減少されると、ジョイスティックは直ちに中心に戻る。
【0110】
他の実施形態において、エミュレートされたジョイスティック(例えば、ステップにより生成された出力)は、中心以外のあるホームポジションに戻るように構成され、そのホームポジションは、ソフトウェアまたはハードウェアにより動的に定義される。
【0111】
本発明の実施形態により記述されたバネ質量緩衝器システムを使用することにより、それに制限されるわけではないが、オンスクリーンの対象の速度を減少すること、オンスクリーンのホームポジションを行き過ぎさせること、ホームポジションの周りで振動させること、またはこれらのいかなる組み合わせをも含む種々の機能と応答のシミュレーションが可能になるということは理解されよう。システムは、物理的に直感的な動作、例えば、バネで動作された、または動きを抑えられたジョイスティックが解放されたとき、または回転中の自動車がそのステアリングホイールを解放したときなどの動作をシミュレートする。
【0112】
ゲームコントローラの他の共通なタイプは、自動車のステアリングホイールまたは飛行機のコントロールヨークに類似している。ステアリングホイールは、その回転位置に対応する値を発する。ステアリングホイールは、ユーザーが手を放すとホームポジションへ戻るような、バネまたはバネ緩衝器の組み合わせ、及び/または、モーターまたは他のアクチュエータにより提供される力のフィードバックにより提供される自動センタリング機構を有している。
【0113】
本発明の一つの実施形態は、回転運動相関器112から捕捉した指に回転によりステアリングホイールをエミュレートする。回転運動相関器112により生成される回転運動ΔΘ132は、ステアリングホイールの回転角度をマップするためにある割合で変倍される。図11は、本発明に従うステアリングホイールをエミュレートするために使用されるステップ1100を示している。
【0114】
図11を参照すると、開始ステップ1101の後、システムは初期化ステップ1103に進む。ステップ1103において、角度位置ΘposはΘ0に設定される。Θ0は、好ましくは0度であるが、いかなる所定値でもよい。ステップ1003においても、アキュムレータΘaccは0に設定され、変倍率(Scale)が1以上の整数に初期化される。他の実施形態においては、変倍率(Scale)は、普遍性を失うことなく浮動小数点値に設定される。
【0115】
次に、ステップ1105において、次のフレームのΔΘが、回転運動相関器112から読み込まれる。次に、ステップ1107において、指がスワイプセンサ101上で検出されたかどうかが決定される。指が検出された場合は、処理はステップ1109に進み、そうでない場合は、処理はステップ1105に戻る。
【0116】
ステップ1109で、値ΔθaccがΔθacc+ΔΘに設定され、値moveΘは、最も近い整数に四捨五入されたΔΘ/Scaleに設定され、ΘposはΘpos+moveΘに設定され、処理はステップ1105に戻る。
【0117】
一つの実施形態は、上記の方法を更に洗練するための自動センタリング動作を含む。エミュレートされたステアリングホイールは、フレームのある数の間、指が検出されないと直ちに中心に戻る。
【0118】
他の実施形態において、エミュレートされたステアリングホイールは、物理的バネ質量またはバネ質量緩衝器の組み合わせのシミュレーション、または自動車に適切な物理的シミュレーションを使用して、よりゆっくりと中心に戻る。例えば、エミュレートされたステアリングホイールは、1秒以上または他の類似の時間値をかけて中心位置に回転して戻り、それによりこの戻る運動はユーザーには見える。
【0119】
他の実施形態においては、エミュレートされたステアリングホイールは、指圧力検出器114により戻された指の圧力がある閾値を下回ると、ゆっくりと中心に戻り、この傾向は、指の圧力が減少するに従って増大する。言い換えれば、戻るための回転の速度は、指により減少された圧力の量に比例的に関連している。時間のある単位において、圧力がより大量に減少されると、戻る速度はそれだけ速くなる。圧力が0に減少されると、ステアリングホイールは直ちに中心に戻る。
【0120】
更に他の実施形態においては、エミュレートされたステアリングは、中心以外のあるホームポジションに戻り、そのホームポジションは、ソフトウェアまたはハードウェアにより動的に定義される。
【0121】
圧力検知ボタンは、ゲームコンソールにおいて広く使用されている。加えられた圧力は、ブレーキをかけたときのレースカーの減速、あるいは戦争ゲームにおける弾丸発射頻度のようなあるゲームの環境において使用される。本発明に従えば、圧力検知ボタンのアナログの性質は、圧力検出器114によりエミュレートできる。圧力検出器114の初期出力は、指が存在しないときは0に設定される。圧力検出器114は、ある定義範囲において加えられる指の圧力により較正される。圧力検知ボタンをエミュレートする場合は、圧力検出器114からの出力は、加えられた圧力に対応する。
【0122】
指画像センサ及び関連するソフトウェアは、一般的にユーザーの身元を検証する目的のために指紋画像を捕捉し、処理することができる。ユーザー入力の目的のためには認証は必要ないので、我々は、入力装置としてだけの使用のためであり、指紋画像の再構築または指紋認証に使用されなることのない指画像センサを更に発展させることにより刷新していく。
【0123】
市場に出回っている指画像センサのほとんどは、主に認証のために設計されており、典型的な解像度は、2.54cm(1インチ)あたり300から500ドット(dpi)である。本発明の実施形態は、ユーザー入力制御の目的のための、250dpiまたはそれ以下の指画像センサしか必要としない。低い解像度は、容量性指画像センサには特に重要である。同じシリコンのダイの大きさに対して、低い解像度の指画像センサは、各容量性セルがより大きく、より広い種類の指の皮膚表面に対してのより高い感度とい結果になることを意味する。容量性セル、そしてその感度が同じに保たれると、全体のシリコンダイの大きさは小さくなり、より安価な指画像センサという結果になる。これらのより安価なセンサは、指画像センサのユーザー入力制御装置としての使用を採用することを促進すると予想される。
【0124】
上記の例は、本発明の実施形態を示すためのみに使用され、本発明の範囲を制限するものではない。実施形態が多くの方法で修正できることは理解されよう。例えば、装置のエミュレータは、上記とは異なる出力を生成することができる。本発明によるマウスエミュレータは、ある時間内に、マウスがパルスの所定数を超えて動かされたことを示すxとyのオーバーフローを生成することができる。この技術に精通した者にとっては、付随する請求項により規定される本発明の精神と範囲を逸脱することなく、実施形態に種々の変形がなされるということは自明であろう。
【図面の簡単な説明】
【0125】
【図1】本発明に従う、入力装置をエミュレートするシステムのブロック図。
【図2】本発明に従う、指画像データの平滑化分散の変動を示すグラフ。
【図3A】本発明に従う、センサ上に指があるかどうかを決定するためのステップを説明するフローチャート。
【図3B】本発明に従う、センサ上に指があるかどうかを決定するためのステップを説明するフローチャート。
【図4A】本発明に従う、指紋画像センサに対しての二つの方向を示している。
【図4B】本発明に従う、指紋画像センサに対しての二つの方向を示している。
【図5】本発明に従う、三つの重なり合う部分に更に分割された指紋画像センサを示している。
【図6】本発明に従う、指画像センサ上に加えられた圧力を決定するためのステップを説明するフローチャート。
【図7】本発明に従う、マウスをエミュレートするために指の運動を平滑化するためのステップを説明するフローチャート。
【図8】本発明に従う、4方向ナビゲーションバーを示している。
【図9A】本発明に従う、4方向ナビゲーションバーをエミュレートするために運動と方向を決定するためのステップを説明するフローチャート。
【図9B】本発明に従う、4方向ナビゲーションバーをエミュレートするために運動と方向を決定するためのステップを説明するフローチャート。
【図10A】本発明に従う、ジョイスティックをエミュレートするために運動と方向を決定するためのステップを説明するフローチャート。
【図10B】本発明に従う、ジョイスティックをエミュレートするために運動と方向を決定するためのステップを説明するフローチャート。
【図11】本発明に従うステアリングホイールをエミュレートするために使用されるステップを示している。
【特許請求の範囲】
【請求項1】
a.第1パターン化画像データと、第2パターン化画像データの差を計算し、
b.前記差を、複数の電子入力装置のいずれか一つをエミュレートするために使用される一つまたは二つ以上の信号に対応する一つの信号セットに変換することを備える方法。
【請求項2】
前記第1パターン化画像データは、第1場所のバイオメトリック対象の画像に対応し、前記第2パターン化画像データは、第2場所の前記バイオメトリック対象の前記画像に対応する請求項1に記載の方法。
【請求項3】
前記第1場所の前記バイオメトリック対象の前記画像を読み込み、前記第2場所の前記バイオメトリック対象の前記画像を読み込むことを更に備える請求項2に記載の方法。
【請求項4】
バイオメトリック画像データが、指紋画像に関連する指画像データを備える請求項3に記載の方法。
【請求項5】
前記第1場所と第2場所の前記バイオメトリックの前記画像を読み込むことは共に、指を指スワイプセンサ全体に渡って打つ(スワイプ)することを備える請求項4に記載の方法。
【請求項6】
前記第1及び第2場所の前記バイオメトリック対象の前記画像を読み込むことは、指配置型センサ上に指を置くことを備える請求項4に記載の方法。
【請求項7】
差を計算することは、
a.指センサ上の指の存在を検知し、
b.前記第1場所の前記バイオメトリック対象の前記画像と、前記第2場所の前記バイオメトリック対象の前記画像との直線的差を、行に基づく相関を使用して計算することを備える請求項4に記載の方法。
【請求項8】
一つの信号セットは、オンスクリーンポインタを制御するためのコンピュータマウスの出力信号に対応する請求項7に記載の方法。
【請求項9】
前記直線的差を変倍係数により非線形に変倍することを更に備える請求項8に記載の方法。
【請求項10】
非線形に変倍することは、前記直線的差を平滑化することを備える請求項9に記載の方法。
【請求項11】
前記変倍係数は、前記指センサ上の指の、所定数の位置に基いて動的に決定される請求項10に記載の方法。
【請求項12】
非線形に変倍することは、前記直線的差を指数関数的にフィルタリングすることを更に備える請求項11に記載の方法。
【請求項13】
非線形に変倍することは、中央値フィルタリングを更に備える請求項12に記載の方法。
【請求項14】
一つの信号セットは、オンスクリーン対象を制御するためのスクロールホイールの出力信号に対応する請求項7に記載の方法。
【請求項15】
前記差を一つの信号セットに変換することは、
a.一つまたは二つ以上の非線形変倍機能を使用して、前記線形差を、前記指センサ上の指の一つの運動方向に変換し、
b.前記指が前記指センサ上に検出されたときに、スクロールホイールにより示された項目を選択することに対応して前記信号セットを生成することを備える請求項14に記載の方法。
【請求項16】
一つの信号セットは、オンスクリーン対象を制御するためのナビゲーションバーの出力信号に対応する請求項7に記載の方法。
【請求項17】
前記差を前記一つの信号セットに変換することは、
a.ナビゲーションバーにより制御可能な複数の方向の一つにおける前記直線的差を、所定の閾値と比較し、
b.前記直線的差が前記閾値を超えている場合は、前記ナビゲーションバーにより制御可能な方向の一つにおいて、前記オンスクリーン対象の、運動の一単位分の動きに対応する信号を生成し、
c.前記ナビゲーションバーにより制御可能な残りの前記複数の方向に対して、ステップaとbを繰り返すことを備える請求項16に記載の方法。
【請求項18】
一つの信号セットが、オンスクリーン対象を制御するためのジョイスティックの出力信号に対応する請求項7に記載の方法。
【請求項19】
前記差を前記一つの信号セットに変換することは、
a.非線形変倍を使用して、前記直線的差を、前記指センサ上の指の一つの運動方向に変換し、
b.指が前記指センサ上で検出されない場合は、ディスプレイ上のホームポジションへ、前記オンスクリーン対象を動かすことに対応する信号を生成することを備える請求項18に記載の方法。
【請求項20】
ディスプレイ上のホームポジションへ、前記オンスクリーン対象を動かすことに対応する信号を生成することは、前記オンスクリーン対象の速度を減少するバネ質量緩衝器をシミュレートする信号を生成することを備える請求項19に記載の方法。
【請求項21】
前記指の存在を検知することは、前記指センサ上の指により加えられた圧力を測定することを備える請求項20記載の方法。
【請求項22】
前記指により加えられた圧力を測定することは、領域内指存在データの重み付け平均と、指画像データの平滑化平均と、前記指画像データの平滑化分散を算出することを備える請求項21に記載の方法。
【請求項23】
ホームポジションへ前記対象を動かすことに対応する信号を生成することは、前記指センサ上の削減された圧力に関連する速度での緩衝信号に対応する信号を生成することを備える請求項22に記載の方法。
【請求項24】
一つの信号セットは、ディスプレイ上の対象を制御するためのステアリングホイールの出力信号に対応する請求項7に記載の方法。
【請求項25】
前記直線的差を計算することは、前記指センサ上の指の回転運動を推定することを備える請求項24に記載の方法。
【請求項26】
前記差を前記一つの信号セットに変換することは、
a.前記回転運動を、前記オンスクリーン対象の回転角に変換し、
b.前記指が前記指センサ上に存在しない場合は、前記ディスプレイ上のホームポジションへ、前記オンスクリーン対象を戻すことに対応する信号を生成することを備える請求項25に記載の方法。
【請求項27】
前記ディスプレイ上の前記ホームポジションへ、前記オンスクリーン対象を戻すことに対応する信号を生成することは、速度を減少するバネ質量緩衝器に対応する信号を生成することを備える請求項26に記載の方法。
【請求項28】
前記指の存在を検知することは、前記センサ上の指により加えられた圧力を測定することを更に備える請求項27に記載の方法。
【請求項29】
前記ディスプレイ上の前記ホームポジションへ、前記オンスクリーン対象を戻すことに対応する信号を生成することは、前記指センサ上の指により加えられた圧力の削減量に対応する緩衝信号を生成することを備える請求項28に記載の方法。
【請求項30】
前記指センサ上の指の存在を検知することは、前記指画像データの平滑化分散の変動を追尾すること備える請求項7に記載の方法。
【請求項31】
前記複数の信号セットから、一つの信号セットをディスプレイに送信して、前記ディスプレイ上のオンスクリーン対象を制御することを更に備える請求項1に記載の方法。
【請求項32】
前記ディスプレイは、携帯コンピュータ、パーソナルデジタルアシスタント、携帯電話、携帯ゲーム機、バイオメトリック/健康モニタ、及びデジタルカメラで構成されるグループから選択されたホスト装置の一部を形成する請求項31に記載の方法。
【請求項33】
a.第1パターン化画像データと、第2パターン化画像データの間の差を決定し、
b.前記差を使用して、複数のオンスクリーン対象を同時に制御することを備える方法。
【請求項34】
複数のオンスクリーン対象を同時に制御するために前記差を使用することは、各信号セットが前記複数のオンスクリーン対象の一つを制御するために使用される入力装置の出力に対応する、複数の信号セットを同時に生成することを備える請求項33に記載の方法。
【請求項35】
前記入力装置は、ステアリングホイール、マウス、ジョイスティック、ナビゲーションバー、スクロールホイール、及び圧力検知ボタンから構成されるグループから選択される請求項34に記載の方法。
【請求項36】
パターン化画像データは、バイオメトリック画像データに対応する請求項33に記載の方法。
【請求項37】
a.バイオメトリック画像を検知し、
b.対応するバイオメトリック画像データを生成することを更に備える請求項36に記載の方法。
【請求項38】
バイオメトリック画像を検知することは、指スワイプセンサ全体に渡ってスワイプされた指を検知することを備える請求項37に記載の方法。
【請求項39】
バイオメトリック画像を検知することは、指配置型センサ上に置かれた指を検知することを備える請求項37に記載の方法。
【請求項40】
前記信号セットは、前記第1パターン化画像データと、前記第2パターン化画像データの間の差を決定するために行に基づく相関を使用することによるマウスの出力、ジョイスティックの出力、ナビゲーションバーの出力、スクロールホイールの出力、または圧力検知ボタンの出力に対応する請求項34に記載の方法。
【請求項41】
ステアリングホイールの前記出力に対応する一つの信号セットを生成することは、前記第1パターン化画像データと、前記第2パターン化画像データの間の回転運動を生成することを備える請求項40に記載の方法。
【請求項42】
一つまたは二つ以上のパターン化画像データを格納することを更に備える請求項37に記載の方法。
【請求項43】
格納されたバイオメトリック画像データに時刻を記録することを更に備える請求項42に記載の方法。
【請求項44】
オンスクリーン対象の運動を制御するシステムであって、
a.パターン化画像を読み込み、未処理パターン化画像データを生成する手段と、
b.前記パターン化画像読込み手段に結合され、未処理パターン化画像データを運動情報に変換する手段と、
c.前記未処理パターン化画像データ変換手段に結合され、動き情報を、前記オンスクリーン対象の運動を制御するためのコンピュータ入力装置信号セットに変換する手段と、を備えるシステム。
【請求項45】
前記読込み手段は指センサを備え、前記パターン化画像は指紋画像に対応する請求項44に記載のシステム。
【請求項46】
前記指センサは、指スワイプセンサを備える請求項45に記載のシステム。
【請求項47】
前記指センサは、指配置型センサを備える請求項45に記載のシステム。
【請求項48】
前記指スワイプセンサは、容量性センサ、光学センサ、及び熱センサから構成されるグループから選択された指センサを備える請求項46に記載のシステム。
【請求項49】
前記コンピュータ入力装置信号セットは、ステアリングホイール、マウス、ジョイスティック、ナビゲーションバー、及びスクロールホイールから構成されるグループから選択された少なくとも二つの装置をエミュレートするための信号を備える請求項44に記載のシステム。
【請求項50】
前記未処理パターン化画像データ変換手段は、行に基づく相関アルゴリズムを使用して、パターン化画像の直線運動を計算するように構成された直線運動相関器を備える請求項49に記載のシステム。
【請求項51】
前記運動情報変換手段は、非線形変倍を実行するように更に構成される請求項50に記載のシステム。
【請求項52】
前記未処理パターン化画像データ変換手段は、前記パターン化画像読込み手段に結合された圧力検出器を更に備える請求項51に記載のシステム。
【請求項53】
前記未処理パターン化画像データ変換手段は、前記パターン化画像読込み手段に結合されたパターン化画像存在検出器を更に備える請求項52に記載のシステム。
【請求項54】
前記パターン化画像存在検出器は、指存在検出器を備える請求項53に記載のシステム。
【請求項55】
前記未処理パターン化画像データ変換手段は、前記パターン化画像読込み手段に結合された回転運動相関器を更に備える請求項53に記載のシステム。
【請求項56】
前記運動情報変換手段は、前記回転運動相関器と、前記直線運動相関器の両者に結合されたステアリングホイールエミュレータユニットを備え、前記回転運動相関器は、読み込まれたパターン化画像の位置変化を、回転角に変換するように構成される請求項55に記載のシステム。
【請求項57】
前記運動情報変換手段は、前記直線運動相関器と、前記パターン化画像存在検出器に結合されたマウスエミュレータユニットを備える請求項55に記載のシステム。
【請求項58】
前記運動情報変換手段は、前記直線運動相関器と、前記パターン化画像存在検出器に結合されたジョイスティックエミュレータユニットを備える請求項55に記載のシステム。
【請求項59】
前記運動情報変換手段は、前記直線運動相関器と、前記パターン化画像存在検出器に結合されたナビゲーションバーエミュレータユニットを備える請求項55に記載のシステム。
【請求項60】
前記運動情報変換手段は、前記直線運動相関器と、前記パターン化画像存在検出器に結合されたスクロールホイールエミュレータユニットを備える請求項55に記載のシステム。
【請求項61】
前記運動情報変換手段は、前記圧力検出器ユニットと、前記パターン化画像存在検出器に結合された圧力検知ボタンエミュレータユニットを備える請求項55に記載のシステム。
【請求項62】
前記パターン化画像読込み手段を、前記回転運動相関器と、前記直線運動相関器と、前記圧力検出器と、前記パターン化画像存在検出器のいずれか二つに結合する時間区間アキュムレータを更に備える請求項53に記載のシステム。
【請求項63】
前記パターン化画像存在検出器は、未処理パターン化画像データの分散を、第1閾値と、第2閾値と比較して、前記パターン化画像読込み手段上のパターン化画像の存在を決定するように構成される請求項62に記載のシステム。
【請求項64】
前記圧力検出器は、領域内パターン化画像存在データと、平滑化平均と、パターン化画像運動情報間の平滑化分散の重み付け平均を算出することにより、圧力を決定するように構成される請求項63に記載のシステム。
【請求項65】
前記マウスエミュレータユニットは、パターン化画像運動情報の平滑化、変倍、及びフィルタリングの少なくとも一つを実行するように構成される請求項64に記載のシステム。
【請求項66】
前記指スワイプセンサは、2.54cm(1インチ)あたり250ドットより小さな解像度を有する請求項46に記載のシステム。
【請求項67】
前記運動情報変換手段により制御可能な前記オンスクリーン対象を提示するためのディスプレイを更に備える請求項44に記載のシステム。
【請求項68】
前記パターン化画像読込み手段と、前記未処理パターン化画像データ変換手段と、前記運動情報変換手段は、集積ホスト装置の一部を形成する請求項67に記載のシステム。
【請求項69】
前記ホスト装置は、携帯コンピュータ、パーソナルデジタルアシスタント、携帯電話、携帯ゲーム機、バイオメトリック/健康モニタ、及びデジタルカメラから構成されるグループから選択された装置である請求項68に記載のシステム。
【請求項1】
a.第1パターン化画像データと、第2パターン化画像データの差を計算し、
b.前記差を、複数の電子入力装置のいずれか一つをエミュレートするために使用される一つまたは二つ以上の信号に対応する一つの信号セットに変換することを備える方法。
【請求項2】
前記第1パターン化画像データは、第1場所のバイオメトリック対象の画像に対応し、前記第2パターン化画像データは、第2場所の前記バイオメトリック対象の前記画像に対応する請求項1に記載の方法。
【請求項3】
前記第1場所の前記バイオメトリック対象の前記画像を読み込み、前記第2場所の前記バイオメトリック対象の前記画像を読み込むことを更に備える請求項2に記載の方法。
【請求項4】
バイオメトリック画像データが、指紋画像に関連する指画像データを備える請求項3に記載の方法。
【請求項5】
前記第1場所と第2場所の前記バイオメトリックの前記画像を読み込むことは共に、指を指スワイプセンサ全体に渡って打つ(スワイプ)することを備える請求項4に記載の方法。
【請求項6】
前記第1及び第2場所の前記バイオメトリック対象の前記画像を読み込むことは、指配置型センサ上に指を置くことを備える請求項4に記載の方法。
【請求項7】
差を計算することは、
a.指センサ上の指の存在を検知し、
b.前記第1場所の前記バイオメトリック対象の前記画像と、前記第2場所の前記バイオメトリック対象の前記画像との直線的差を、行に基づく相関を使用して計算することを備える請求項4に記載の方法。
【請求項8】
一つの信号セットは、オンスクリーンポインタを制御するためのコンピュータマウスの出力信号に対応する請求項7に記載の方法。
【請求項9】
前記直線的差を変倍係数により非線形に変倍することを更に備える請求項8に記載の方法。
【請求項10】
非線形に変倍することは、前記直線的差を平滑化することを備える請求項9に記載の方法。
【請求項11】
前記変倍係数は、前記指センサ上の指の、所定数の位置に基いて動的に決定される請求項10に記載の方法。
【請求項12】
非線形に変倍することは、前記直線的差を指数関数的にフィルタリングすることを更に備える請求項11に記載の方法。
【請求項13】
非線形に変倍することは、中央値フィルタリングを更に備える請求項12に記載の方法。
【請求項14】
一つの信号セットは、オンスクリーン対象を制御するためのスクロールホイールの出力信号に対応する請求項7に記載の方法。
【請求項15】
前記差を一つの信号セットに変換することは、
a.一つまたは二つ以上の非線形変倍機能を使用して、前記線形差を、前記指センサ上の指の一つの運動方向に変換し、
b.前記指が前記指センサ上に検出されたときに、スクロールホイールにより示された項目を選択することに対応して前記信号セットを生成することを備える請求項14に記載の方法。
【請求項16】
一つの信号セットは、オンスクリーン対象を制御するためのナビゲーションバーの出力信号に対応する請求項7に記載の方法。
【請求項17】
前記差を前記一つの信号セットに変換することは、
a.ナビゲーションバーにより制御可能な複数の方向の一つにおける前記直線的差を、所定の閾値と比較し、
b.前記直線的差が前記閾値を超えている場合は、前記ナビゲーションバーにより制御可能な方向の一つにおいて、前記オンスクリーン対象の、運動の一単位分の動きに対応する信号を生成し、
c.前記ナビゲーションバーにより制御可能な残りの前記複数の方向に対して、ステップaとbを繰り返すことを備える請求項16に記載の方法。
【請求項18】
一つの信号セットが、オンスクリーン対象を制御するためのジョイスティックの出力信号に対応する請求項7に記載の方法。
【請求項19】
前記差を前記一つの信号セットに変換することは、
a.非線形変倍を使用して、前記直線的差を、前記指センサ上の指の一つの運動方向に変換し、
b.指が前記指センサ上で検出されない場合は、ディスプレイ上のホームポジションへ、前記オンスクリーン対象を動かすことに対応する信号を生成することを備える請求項18に記載の方法。
【請求項20】
ディスプレイ上のホームポジションへ、前記オンスクリーン対象を動かすことに対応する信号を生成することは、前記オンスクリーン対象の速度を減少するバネ質量緩衝器をシミュレートする信号を生成することを備える請求項19に記載の方法。
【請求項21】
前記指の存在を検知することは、前記指センサ上の指により加えられた圧力を測定することを備える請求項20記載の方法。
【請求項22】
前記指により加えられた圧力を測定することは、領域内指存在データの重み付け平均と、指画像データの平滑化平均と、前記指画像データの平滑化分散を算出することを備える請求項21に記載の方法。
【請求項23】
ホームポジションへ前記対象を動かすことに対応する信号を生成することは、前記指センサ上の削減された圧力に関連する速度での緩衝信号に対応する信号を生成することを備える請求項22に記載の方法。
【請求項24】
一つの信号セットは、ディスプレイ上の対象を制御するためのステアリングホイールの出力信号に対応する請求項7に記載の方法。
【請求項25】
前記直線的差を計算することは、前記指センサ上の指の回転運動を推定することを備える請求項24に記載の方法。
【請求項26】
前記差を前記一つの信号セットに変換することは、
a.前記回転運動を、前記オンスクリーン対象の回転角に変換し、
b.前記指が前記指センサ上に存在しない場合は、前記ディスプレイ上のホームポジションへ、前記オンスクリーン対象を戻すことに対応する信号を生成することを備える請求項25に記載の方法。
【請求項27】
前記ディスプレイ上の前記ホームポジションへ、前記オンスクリーン対象を戻すことに対応する信号を生成することは、速度を減少するバネ質量緩衝器に対応する信号を生成することを備える請求項26に記載の方法。
【請求項28】
前記指の存在を検知することは、前記センサ上の指により加えられた圧力を測定することを更に備える請求項27に記載の方法。
【請求項29】
前記ディスプレイ上の前記ホームポジションへ、前記オンスクリーン対象を戻すことに対応する信号を生成することは、前記指センサ上の指により加えられた圧力の削減量に対応する緩衝信号を生成することを備える請求項28に記載の方法。
【請求項30】
前記指センサ上の指の存在を検知することは、前記指画像データの平滑化分散の変動を追尾すること備える請求項7に記載の方法。
【請求項31】
前記複数の信号セットから、一つの信号セットをディスプレイに送信して、前記ディスプレイ上のオンスクリーン対象を制御することを更に備える請求項1に記載の方法。
【請求項32】
前記ディスプレイは、携帯コンピュータ、パーソナルデジタルアシスタント、携帯電話、携帯ゲーム機、バイオメトリック/健康モニタ、及びデジタルカメラで構成されるグループから選択されたホスト装置の一部を形成する請求項31に記載の方法。
【請求項33】
a.第1パターン化画像データと、第2パターン化画像データの間の差を決定し、
b.前記差を使用して、複数のオンスクリーン対象を同時に制御することを備える方法。
【請求項34】
複数のオンスクリーン対象を同時に制御するために前記差を使用することは、各信号セットが前記複数のオンスクリーン対象の一つを制御するために使用される入力装置の出力に対応する、複数の信号セットを同時に生成することを備える請求項33に記載の方法。
【請求項35】
前記入力装置は、ステアリングホイール、マウス、ジョイスティック、ナビゲーションバー、スクロールホイール、及び圧力検知ボタンから構成されるグループから選択される請求項34に記載の方法。
【請求項36】
パターン化画像データは、バイオメトリック画像データに対応する請求項33に記載の方法。
【請求項37】
a.バイオメトリック画像を検知し、
b.対応するバイオメトリック画像データを生成することを更に備える請求項36に記載の方法。
【請求項38】
バイオメトリック画像を検知することは、指スワイプセンサ全体に渡ってスワイプされた指を検知することを備える請求項37に記載の方法。
【請求項39】
バイオメトリック画像を検知することは、指配置型センサ上に置かれた指を検知することを備える請求項37に記載の方法。
【請求項40】
前記信号セットは、前記第1パターン化画像データと、前記第2パターン化画像データの間の差を決定するために行に基づく相関を使用することによるマウスの出力、ジョイスティックの出力、ナビゲーションバーの出力、スクロールホイールの出力、または圧力検知ボタンの出力に対応する請求項34に記載の方法。
【請求項41】
ステアリングホイールの前記出力に対応する一つの信号セットを生成することは、前記第1パターン化画像データと、前記第2パターン化画像データの間の回転運動を生成することを備える請求項40に記載の方法。
【請求項42】
一つまたは二つ以上のパターン化画像データを格納することを更に備える請求項37に記載の方法。
【請求項43】
格納されたバイオメトリック画像データに時刻を記録することを更に備える請求項42に記載の方法。
【請求項44】
オンスクリーン対象の運動を制御するシステムであって、
a.パターン化画像を読み込み、未処理パターン化画像データを生成する手段と、
b.前記パターン化画像読込み手段に結合され、未処理パターン化画像データを運動情報に変換する手段と、
c.前記未処理パターン化画像データ変換手段に結合され、動き情報を、前記オンスクリーン対象の運動を制御するためのコンピュータ入力装置信号セットに変換する手段と、を備えるシステム。
【請求項45】
前記読込み手段は指センサを備え、前記パターン化画像は指紋画像に対応する請求項44に記載のシステム。
【請求項46】
前記指センサは、指スワイプセンサを備える請求項45に記載のシステム。
【請求項47】
前記指センサは、指配置型センサを備える請求項45に記載のシステム。
【請求項48】
前記指スワイプセンサは、容量性センサ、光学センサ、及び熱センサから構成されるグループから選択された指センサを備える請求項46に記載のシステム。
【請求項49】
前記コンピュータ入力装置信号セットは、ステアリングホイール、マウス、ジョイスティック、ナビゲーションバー、及びスクロールホイールから構成されるグループから選択された少なくとも二つの装置をエミュレートするための信号を備える請求項44に記載のシステム。
【請求項50】
前記未処理パターン化画像データ変換手段は、行に基づく相関アルゴリズムを使用して、パターン化画像の直線運動を計算するように構成された直線運動相関器を備える請求項49に記載のシステム。
【請求項51】
前記運動情報変換手段は、非線形変倍を実行するように更に構成される請求項50に記載のシステム。
【請求項52】
前記未処理パターン化画像データ変換手段は、前記パターン化画像読込み手段に結合された圧力検出器を更に備える請求項51に記載のシステム。
【請求項53】
前記未処理パターン化画像データ変換手段は、前記パターン化画像読込み手段に結合されたパターン化画像存在検出器を更に備える請求項52に記載のシステム。
【請求項54】
前記パターン化画像存在検出器は、指存在検出器を備える請求項53に記載のシステム。
【請求項55】
前記未処理パターン化画像データ変換手段は、前記パターン化画像読込み手段に結合された回転運動相関器を更に備える請求項53に記載のシステム。
【請求項56】
前記運動情報変換手段は、前記回転運動相関器と、前記直線運動相関器の両者に結合されたステアリングホイールエミュレータユニットを備え、前記回転運動相関器は、読み込まれたパターン化画像の位置変化を、回転角に変換するように構成される請求項55に記載のシステム。
【請求項57】
前記運動情報変換手段は、前記直線運動相関器と、前記パターン化画像存在検出器に結合されたマウスエミュレータユニットを備える請求項55に記載のシステム。
【請求項58】
前記運動情報変換手段は、前記直線運動相関器と、前記パターン化画像存在検出器に結合されたジョイスティックエミュレータユニットを備える請求項55に記載のシステム。
【請求項59】
前記運動情報変換手段は、前記直線運動相関器と、前記パターン化画像存在検出器に結合されたナビゲーションバーエミュレータユニットを備える請求項55に記載のシステム。
【請求項60】
前記運動情報変換手段は、前記直線運動相関器と、前記パターン化画像存在検出器に結合されたスクロールホイールエミュレータユニットを備える請求項55に記載のシステム。
【請求項61】
前記運動情報変換手段は、前記圧力検出器ユニットと、前記パターン化画像存在検出器に結合された圧力検知ボタンエミュレータユニットを備える請求項55に記載のシステム。
【請求項62】
前記パターン化画像読込み手段を、前記回転運動相関器と、前記直線運動相関器と、前記圧力検出器と、前記パターン化画像存在検出器のいずれか二つに結合する時間区間アキュムレータを更に備える請求項53に記載のシステム。
【請求項63】
前記パターン化画像存在検出器は、未処理パターン化画像データの分散を、第1閾値と、第2閾値と比較して、前記パターン化画像読込み手段上のパターン化画像の存在を決定するように構成される請求項62に記載のシステム。
【請求項64】
前記圧力検出器は、領域内パターン化画像存在データと、平滑化平均と、パターン化画像運動情報間の平滑化分散の重み付け平均を算出することにより、圧力を決定するように構成される請求項63に記載のシステム。
【請求項65】
前記マウスエミュレータユニットは、パターン化画像運動情報の平滑化、変倍、及びフィルタリングの少なくとも一つを実行するように構成される請求項64に記載のシステム。
【請求項66】
前記指スワイプセンサは、2.54cm(1インチ)あたり250ドットより小さな解像度を有する請求項46に記載のシステム。
【請求項67】
前記運動情報変換手段により制御可能な前記オンスクリーン対象を提示するためのディスプレイを更に備える請求項44に記載のシステム。
【請求項68】
前記パターン化画像読込み手段と、前記未処理パターン化画像データ変換手段と、前記運動情報変換手段は、集積ホスト装置の一部を形成する請求項67に記載のシステム。
【請求項69】
前記ホスト装置は、携帯コンピュータ、パーソナルデジタルアシスタント、携帯電話、携帯ゲーム機、バイオメトリック/健康モニタ、及びデジタルカメラから構成されるグループから選択された装置である請求項68に記載のシステム。
【図1】
【図2】
【図3A】
【図3B】
【図4A】
【図4B】
【図5】
【図6】
【図7】
【図8】
【図9A】
【図9B】
【図10A】
【図10B】
【図11】
【図2】
【図3A】
【図3B】
【図4A】
【図4B】
【図5】
【図6】
【図7】
【図8】
【図9A】
【図9B】
【図10A】
【図10B】
【図11】
【公表番号】特表2007−526546(P2007−526546A)
【公表日】平成19年9月13日(2007.9.13)
【国際特許分類】
【出願番号】特願2006−517616(P2006−517616)
【出願日】平成16年6月23日(2004.6.23)
【国際出願番号】PCT/US2004/020276
【国際公開番号】WO2005/003900
【国際公開日】平成17年1月13日(2005.1.13)
【出願人】(505473721)アトルア テクノロジーズ,インコーポレイティド (1)
【Fターム(参考)】
【公表日】平成19年9月13日(2007.9.13)
【国際特許分類】
【出願日】平成16年6月23日(2004.6.23)
【国際出願番号】PCT/US2004/020276
【国際公開番号】WO2005/003900
【国際公開日】平成17年1月13日(2005.1.13)
【出願人】(505473721)アトルア テクノロジーズ,インコーポレイティド (1)
【Fターム(参考)】
[ Back to top ]