(58)【調査した分野】(Int.Cl.,DB名)
前記プロセッサにより発生される前記ユーザ入力情報は、キーボード入力情報、ポインティング装置入力情報、及び数字パッド入力情報のうちの少なくとも1を含む、請求項1記載の入力装置。
前記少なくとも1つのセンサは、第1のパースペクティブから前記作業空間を観察する第1のセンサ及び前記第1のセンサから間隔を置いて配置され、前記第1のパースペクティブと異なる第2のパースペクティブから前記作業空間を観察する第2のセンサを含む、
請求項1記載の入力装置。
前記作業空間は前記少なくとも1つのセンサの視野内の3次元空間を含み、必要に応じて、前記作業空間は、前記入力装置が位置する表面を含む、請求項1記載の入力装置。
各ユーザの手は複数の指を含み、前記入力装置は複数の動作モードで動作することができ、前記プロセッサは現在の動作モードを、前記1つ以上の手の位置、前記1つ以上の手が実行したジェスチャー、及び前記1つ以上の手の配置のうちの少なくとも1つに少なくとも部分的に基づいて設定するように構成されている、請求項1記載の入力装置。
前記複数の動作モードは、キーボード入力モード、ポインティング装置入力モード、数字パッド入力モード、テンプレートベース入力モード、及びカスタムパッド入力モードを含む、請求項9記載の入力装置。
特定のジェスチャーが検出されたとき、前記プロセッサが特定のユーザ入力情報を発生するように、前記特定のユーザ入力情報を前記特定のジェスチャーに割り当てる設定モジュールを更に備える、請求項1記載の入力装置。
前記動き検出モジュールが、出発位置に対する前記ランドマークの距離の変化、前記ランドマークの速度の変化及び前記ランドマークの加速度の変化、少なくとも2つのランドマークの角度関係の変化、1つの頂点と少なくとも2つのランドマークとで決まる角度の角度変位、1つの頂点と少なくとも2つのランドマークとで決まる角度の角速度及び1つの頂点と少なくとも2つのランドマークとで決まる角度の角加速度のうちの少なくとも1つを測定し、前記分類モジュールがこのような測定値をユーザ入力情報と関連付ける、請求項1記載の入力装置。
前記動き検出モジュールが、特定のランドマークの移動距離、速度及び加速度の少なくとも1つを少なくとも1つの他のランドマークの移動距離、速度及び加速度の少なくとも1つと比較し、前記分類モジュールが前記比較に基づいてユーザ入力情報を発生する、請求項1記載の入力装置。
前記作業空間内にテンプレートの存在を決定するテンプレート識別モジュールを更に備え、及び前記分類モジュールは前記テンプレートに対するランドマークの変化を前記テンプレートと関連するユーザ入力情報と関連付ける、請求項1記載の入力装置。
【発明を実施するための形態】
【0032】
本明細書に開示する構造、機能、製造の原理、及び方法、システム及び装置の使用方法の全体的な理解を与えるために、いくつかの模範的な実施形態が以下に記載される。これらの実施形態の1つ以上の例が添付図面に示される。当業者は、本明細書に具体的に記載され且つ添付図面に示される方法、システム及び装置は非限定的な模範的実施形態であり、本発明の範囲は請求項によってのみ特定されることは理解されよう。一つの模範的な実施形態と関連して図示され説明される特徴は他の実施形態の特徴と組み合わせることができる。このような修正及び変更は本発明の範囲に含まれることを意図している。
【0033】
本明細書に組み込まれる参考文献の記載事項のいずれかが本願の開示とコンフリクトする範囲内においては、本願の開示が優先する。
【0034】
概して、ユーザにより実行されたジェスチャーを検出し解釈して、ディジタルデータ処理システムで使用するユーザ入力情報を発生させる装置及び関連方法が本明細書に開示される。様々な実施形態では、模範的な装置は、ユーザがジェスチャーを実行する作業空間を観察する1つ以上のセンサ、及びセンサにより発生されたデータを様々なユーザ入力として解釈するプロセッサを含む。様々な態様では、ユーザのジェスチャー、例えばユーザの手の配置を用いて様々な入力モードに装置を設定することができ、様々な入力モードはセンサにより発生されたデータを解釈する態様に影響を与えることができる。一例として、装置は、例えばユーザの手の配置(例えばユーザの利き手及び利き手でない手の存在及び/又はそれらの相対的位置)に基づいて、キーボード入力モード、数字パッド入力モード、マウス入力モード、又は他のカスタマイズ可能な入力モードに設定することができる。従って、ユーザにより実行されるその後のジェスチャーは、ユーザの手の観察される特徴及びユーザの手の様々な動き特性を用いて、キーボード入力、数字パッド入力、マウス入力などとして解釈することができる。これらの観察される特徴は、例えばユーザの手の解剖学的特性及び/又はジェスチャー中(例えばパスワードのタイピング中又は連続的又は間欠的な使用中)にユーザにより提示される行動特性を用いて正規のユーザを識別することによってセキュリティプロトコルを実装するために使用することもできる。
【0035】
更に、本発明教示の様々な態様による入力装置は、新たな物理的装置の設置及び習得をユーザに要求しない独自の移行を与えることによって、ユーザがキーボード、数字パッド及びマウスなどの従来の入力装置を切り替える必要がないので、精神的集中を中断する機会を低減することができる。更に、本発明教示の様々な態様による入力装置は、ユーザの手の様々な部分に基づくコア計算を用いて、ユーザの手の位置を相互の関連で及び入力装置との関連で確定することができる位置確定コンポーネントを含むことができる。いくつかの態様では、このコア計算は観察されたデータに基づいて単一変数を提供し、この単一変数はユーザの意図を確実に正確に反映させるために必要な他の計算の多くを微調整するために使用することができる。更に、本発明教示によるシステム及び方法は、ユーザの手の位置を調整する大きな自由をユーザに許すこともでき、従って疲れ、反復性ストレス損傷、及び他の人間工学的懸念の防止に役立つ。例えば、本明細書に開示する模範的な入力装置はユーザに無制限の経験をユーザに提供し、ユーザは固定入力装置の厳しい制限から解放され、ユーザの指部分、指関節、及び指爪のいくつか又はすべてを明確に測定して、それらの解剖学的ランドマークの各々のX,Y及びZ座標のロバストな位置計算を生成することができる。様々な態様では、特定のユーザの動きのこのような正確な測定は、特定のユーザが実行しようとする作業を識別するのに有用であるのみならず、特定のアクションのためのユーザの広範囲に亘る典型的なパターンを含むデータウェアハウスの作成にも有用である。本発明教示による入力装置は、速度のみに頼るのではなく、非限定例として、例えば垂直距離、垂直速度、垂直加速度、水平距離、水平速度、水平加速度、角変位、角速度、角加速度などを含む複数の動き変数を考量することができる。既存のシステムより優れた精度を有する入力装置を提供するためにこれらの特徴のいくつか又はすべてを組み合わせることができる。
【0036】
[システム概説]
図1A−1Iは本発明教示の様々な態様を含むジェスチャー認識入力装置100の模範的の実施形態示す。
【0037】
[センサ]
本発明教示の様々な態様によるジェスチャー認識入力装置は概して、作業空間を観察し、作業空間内に存在するオブジェクト又は入力エージェント(一般にユーザの手、テンプレートなど)の1つ以上のパラメータを示すデータを発生する1つ以上のセンサを含み、一般に入力エージェントと入力装置との物理的接触は必要ない。非限定的な例として、センサは、作業空間内のオブジェクトの位置、速度、加速度度、角変位などを示すデータを発生することができ、このデータは、以下で詳述するように、作業空間内のオブジェクトの部分の距離及び/又は向きを計算するために使用することができる。実際には、センサは様々な構成配置及び方向を有し、様々な検出モダリティの下で動作し得る。
【0038】
図1A及び1Bに示すように、例えば、装置100は作業空間106内のオブジェクト(例えば、ユーザの手)の存在を検出する第1及び第2のセンサ102,104を含み、このようなオブジェクトの動きを検出することができる。図示の実施形態では2つのセンサ102,104が示されているが、装置100は1つだけのセンサを含むことができ、また3以上のセンサを含むこともできる。例えば、
図1Dに示す模範的な装置100は、単一のセンサ104だけを含む。他方、
図1Fに示す模範的な装置100は3つのセンサ102,103,104を含む。
【0039】
本発明教示に従って使用するセンサは、作業空間を観察するために、当該技術分野で知られている様々なセンサ技術又はこれらのセンサ技術の組み合わせ又は本発明教示とともに今後開発及び変更されるセンサ技術、例えば光学撮像(例えば、可視光カメラ)、赤外検出、構造光検出、及び飛行時間検出などを使用することができる。実際には、模範的なシステムは複数のセンサ及び/又は複数のタイプのセンサを含むことができる。例えば、個別に2次元画像を発生する複数のセンサ(例えば、RGBセンサ,CCDカメラ)により発生されるデータを組み合わせることによって、作業空間の立体3次元「画像」を得ることができる。3次元モダリティを使用することもできる。例えば、赤外光を用いて作業空間上に既知のパターン(例えば、ライン、バー、ドット、形状)を投影することによって、IRセンサはパターン光又は「構造」光がオブジェクトへの投影時に成形及び/又は屈曲される状態に基づいた3次元画像をキャプチャすることができる。投影光の構造又はパターンの変化に基づいて、オブジェクトの3次元理解が得られる。投影光は位相シフト光又は可視光の既知のパターン(例えば、着色光のパターン)を含むこともでき、これらのパターンを作業空間内に投影し、本発明教示によるセンサで検出することができる。例えば、
図1Dは単一の構造赤外光センサ104(並びに構造赤外光源105)を有する装置100を示す。また、2つの離間したCCDカメラについて上述したように、(例えばオクルージョンが発生する場合には)キャプチャされるオブジェクトのより正確な表現を提供するために、複数のIRセンサを、
図1Cに示すように互いに間隔を置いて配置することができる。更に、様々な実施形態では、作業空間内のオブジェクトに関する追加のデータを提供するために様々なモダリティの複数のセンサを単一の装置に組み込むことができる。
【0040】
例えば、
図1A及び1Bに示す実施形態では、第1及び第2センサ102,104はともに視野からの像をキャプチャするそれぞれの光学系を有するカメラ(例えば、CCD撮像装置)の形態であるが、
図1C,1E及び1Fに示す模範的な装置は付加的に又は代替的に少なくとも1つの構造赤外光センサ105及び1つ以上の赤外センサを使用する。例えば、
図1Cに示す模範的な装置100は、赤外光源105により発生された構造光と作業空間内の1つ以上のオブジェクトとの相互作用を検出するように構成された2つの構造赤外センサ102,104を含む。また、
図1E及び1Fに示す模範的な装置は複数のセンサタイプを含む。例えば、
図1Eは1つのカメラ(例えばCCDベースの撮像装置)102及び1つの構造赤外光センサ104(並びに構造赤外光源105)を有する装置100を示す。他方、
図1Fは1つのカメラ(例えばCCDベースの画像センサ)103及び2つの構造赤外光センサ102,104(並びに構造赤外光源105)を有する装置100を示し、これらは作業空間及び/又はユーザに面する装置100の表面に取り付けられる。
【0041】
再び
図1A及び1Bにつき説明すると、センサ102,104は、センサ102,104がユーザの方向に向けられるように、装置100が置かれたテーブル、机又は他の作業表面108からほぼ垂直に延在する装置100の表面に取り付けられる。この構成配置では、2つのセンサ102,104の集合視野は、各センサから装置100の外側に約120度の円弧に広がる作業空間を規定する。いくつかの実施形態では、作業空間106はもと広い又は狭い円弧、例えば90度、160度、180度などの円弧に広がるものとし得る。作業空間106は3次元であり、装置100が置かれた表面から垂直に上方にも広がる。従って、作業空間106は、例えば
図1Hに示すように、複数のゾーンに論理的に分割することができる。「アクティブ」ゾーン130は、ユーザが装置100の設置表面108(又は装置100が表面に置かれてない場合には装置から延びる平面)と相互作用する領域と定義することができる。更に、「関心ゾーン」132はアクティブゾーン130より上の領域(例えば、装置100の設置表面108からアクティブゾーン130より更に離れた領域)と定義することができる。以下に述べるように、関心ゾーン132はユーザのジェスチャー、アクション又は動作の分類を助けるために監視される。いくつかの実施形態では、アクティブゾーン130は装置100及びセンサ102,104に対して固定されたままであるが、関心ゾーン132はユーザの手134,136とともに移動し得る(例えば追従する)。言い換えれば、ユーザの手134,136の一方又は両方が移動し、センサ102,104に対して斜めになると、関心ゾーン132の左部分及び/又は右部分も同様に移動する。従って、表面とのユーザ相互作用においても、(表面より上の)空間内のユーザ相互作用においても、ユーザのジェスチャーを追跡するセンサ102,104の能力はユーザの疲れを軽減し、ユーザは手を最も快適な位置にシフトさせることが可能になり且つ装置100は様々な環境で使用ことが可能になることにより有用性が増大する。一例として、様々なモバイル環境においては、安定な相互作用を可能とする表面をユーザに提供できないことがある。それにもかかわらず、別に述べるように、センサは作業空間内のユーザのジェスチャーを追跡し、ユーザのジェスチャーを識別してユーザ入力情報を発生することができる。他方、適切な表面がユーザに提供され、ユーザが傾いた場合でも、疲れを低減するために、表面より上のユーザのジェスチャー及び/又は表面とのユーザの相互作用を観察する能力を妨げることなく、ユーザは体の一部分(たとえば手首)を表面の上に乗せることができる。
【0042】
センサの量、及び/又はセンサ位置及び向きは様々なサイズ及び形状の作業空間を提供するように選択することができることは理解されよう。例えば、作業空間106の円弧は最低1度〜最大360度(例えば、センサを装置100の両側に配置することにより)にすることができる。いくつかの実施形態では、装置100はセンサ102,104間の距離を知覚する(即ち、センサ間の距離は「知る」ことができるため、センサにより発生されるデータは後続の処理のために合成することができる。
【0043】
作業空間106内の物理的作業表面108の存在が本明細書で一般に企図されるが、装置100は任意の空間内で使用することもでき、例えば作業空間106は如何なる表面も含まないものとすることができる。更に、本明細書で使用する表面という語は物理的表面又は仮想表面(例えば、仮想平面)を意味する。また、前方センサパースペクティブが本明細書で記載されるが、装置100は他のセンサパースペクティブを有することもできる。例えば、
図1Iに示すように、装置100’は、センサ102’が例えばホワイトボード、デスクトップ、テーブルトップ、ディスプレイ、壁などの矩形空間106’を囲むように構成することができ、それによって作業空間106’内でユーザにより操作されるユーザの手又は他のオブジェクトが複数の側から観察することを可能にすることができる。更に、本発明教示によれば、作業空間は作業空間内のオブジェクトを検出するためにセンサの能力に基づいて任意の形状にすることができることは理解されよう。一例として、センサを包囲する360度の球形作業空間を生成するように1つ以上のセンサを作業空間の中心に外向きに配置することができる。
【0044】
[光源]
上述したように、センシングモダリティ自体は作業空間への光の投影を必要とする。一例として、
図1C−1Fに示す装置100の各々は、例えば赤外光の既知のパターン(例えば水平又は垂直のライン、バー、ドット、形状)を発生させるために赤外光源105、又はカラーバーのパターンを発生させるために可視光源を使用するので、1つ以上のセンサはオブジェクトへの投影時にパターン化された光が成形及び/又は屈曲される状態をキャプチャすることができる。光源105は作業空間を照明するために様々な構成を有し得る。例えば、構造赤外光源105はIRセンサに隣接して配置することができ、またそれから離して配置することもできる。
【0045】
図1B,1E及び1Fにつき説明すると、装置100は、加えて又は代わりに、作業空間106の少なくとも一部分を照明するための光源112を含むことができる。これは、1つ以上の可視光カメラをセンサとして使用するとき、及び装置100を低い周囲光レベルで特徴づけられる環境内で使用するときに特に有利である。様々な光源、例えばLED又は白熱電球を使用することができる。センサ(例えば、
図1Bのセンサ102,104)でキャプチャされるデータを処理して装置100の使用中の照明状態を決定し、光源112を使用するかどうか及び光源112の強度を制御することができることは理解されよう。
【0046】
本発明教示に照らせば、様々な実施形態では、光源はユーザに見える表示を表面上に投影するように構成できることも理解されよう。このような投影は、(例えば、別に述べるように、ユーザに表面と特殊の方法で相互作用を行なわせることによって)装置100のキャリブレーションに役立てることができ、且つ又例えば、キーボードの視覚表示を表面上に表示することによって初心者又は未熟なタイピストを助けることができる。同様に、様々な態様では、投影光は作業空間の特定部分を特定の所望のユーザ入力に対応するものとして示される色又は形により識別することができる。例えば、後に詳述するように、ユーザはこれらの投影光パターンに関連する様々なジェスチャーに、カスタマイズされた意味を割り当てることができる。
【0047】
[パワースイッチ]
装置100はパワーオン/オフスイッチ114も含むことができ、このスイッチは装置100の外部に取り付けられたソフトウェアスイッチ又はハードウェアスイッチとすることができる。いくつかの実施形態では、パワースイッチ114を長時間(例えば3秒間)押すと、装置100をパワーオン又はオフすることができ、パワースイッチ114を短時間(例えば1秒以下)押すと、エスケープ又はリセット処理をトリガすることができる。パワースイッチ114は装置をスタンバイ、スリープ、ハイバネート、ウェイクアップなどの1つ以上の動作モードに入れたり出したりするために使用することもできる。
【0048】
[制御ユニット]
装置100は、装置100の種々の要素を制御し、装置100への入力を処理し、装置100の出力を発生させる制御ユニット116(一般的に「プロセッサ」と称することもできる)も含むことができる。
図2は制御ユニット116の一つの模範的な構成を示す。模範的な制御ユニット116が本明細書に示され、記載されるが、これは一般性及び便宜のためであることは理解されよう。他の実施形態では、制御ユニットは構成及び処理がここに示され記載されたものと異なるものとし得る。
【0049】
図示の制御ユニット116はプロセッサ118を含み、このプロセッサは、例えばオペレーティングシステム(OS)、デバイスドライバ、アプリケーションプログラムなどを実行させることによって装置100の動作を制御する。プロセッサ118は任意のタイプのマイクロプロセッサ又は中央処理装置(CPU)、例えばプログラマブル汎用又は専用マイクロプロセッサ及び/又は様々な独自の又は市販のシングル又はマルチプロセッサシステムのうちの1つを含むことができる。制御ユニット116はメモリ120も含むことができ、このメモリはプロセッサ118で実行されるコード又はプロセッサ118で処理されるデータのための一時的又は永久的記憶を提供する。メモリ120は、読み取り専用メモリ(ROM)、フラッシュメモリ、1つ以上の様々なランダムアクセスメモリ(RAM)、及び/又はメモリ技術の組み合わせを含むことができる。制御ユニット116の様々な要素はバスシステム121に接続される。図示のバスシステム121は、1つ以上の別個の物理的バス、通信線/インタフェース、及び/又は適切なブリッジ、アダプタ及び/又はコントローラで制御されるマルチドロップ又はポイントツーポイント接続を抽象的に示している。
【0050】
模範的な制御ユニット116は、ネットワークインタフェース122、入力/出力(I/O)インタフェース124、記憶装置126、及びディスプレイコントローラ128も含む。ネットワークインタフェース122は、制御ユニット116がネットワークを介してリモート装置(ディジタルデータ処理システム)と通信することを可能にする。I/Oインタフェース124は、1つ以上の入力装置(センサ、テンプレート、GPS又は他の位置識別装置、ユーザコマンドボタン)、1つ以上の出力装置(例えば、光源112、コンピュータスクリーン、テレビション、ユーザの携帯電話又はタブレット、仮想キーボードグラフィックディスプレイなど)、及び制御ユニット116の様々な他のコンポーネントとの間の通信を容易にする。例えば、第1及び第2のセンサ102,104はI/Oインタフェース124に接続し、プロセッサ118によりセンサ信号を受信し処理することができる。記憶装置126はデータを不揮発的に及び/又は非一時的に記憶する任意の通常の記憶媒体とすることができる。従って、記憶装置126はデータ及び/又は命令を持続状態(即ち、制御ユニット116への電力が中断しても値が維持される)で保持することができる。記憶装置126は、1つ以上のハードディスクドライブ、フラッシュドライブ、USBドライブ、光ドライブ、様々なメディアディスク又はカード、及び/又はそれらの組み合わせを含むことができ、制御ユニット116の他のコンポーネントに直接接続することができ、また、例えばネットワークを介してリモート接続することができる。ディスプレイコントローラ128はビデオプロセッサ及びビデオメモリを含み、プロセッサ118から受信される命令に従って画像を生成し1つ以上のディスプレイに表示させる。
【0051】
装置100により実行される様々な機能は、制御ユニット116の1つ以上のモジュールにより実行されるものとして論理的に記載することができる。このようなモジュールはハードウェア、ソフトウェア又はその組み合わせで実装することができることは理解されよう。更に、ソフトウェアで実装する際、これらのモジュールは単一のプログラムの一部分又は1つ以上の個別のプログラムとし、様々なコンテキストで(例えば、オペレーティングシステムの一部分、デバイスドライバ、スタンドアロンアプリケーション、及び/又はその組み合わせとして)実装することができる。更に、1つ以上のモジュールを具現するソフトウェアは1つ以上の非一時的コンピュータ可読記憶媒体に実行可能なプログラムとして記憶することができる。特定のモジュールで実行される本明細書に開示する機能は任意の他のモジュール又はそれらの組み合わせで実行することもできる。
【0052】
使用中、装置100は作業空間106内でユーザにより実行される物理的ジェスチャーを検出し及び/又は解釈し、装置100が結合される1つ以上のディジタルデータ処理システム(例えば、パーソナルコンピュータ、デスクトップコンピュータ、ラップトップコンピュータ、タブレットコンピュータ、サーバコンピュータ、携帯電話、PDA、ゲームシステム、テレビション、セットトップボックス、ラジオ、携帯ミュージックプレーヤなど)で使用する対応するユーザ入力情報を発生することができる。装置100は、例えばUSB又は他の通信インタフェースを用いてディジタルデータ処理システムに動作可能に結合されるスタンドアロン又は外部アクセサリとすることもできる。また、装置100の1つ以上のコンポーネントをディジタルデータ処理システムと一体に形成することもできる。例えば、装置100は携帯電話に組み込み、携帯電話がテーブル上に上向きに置かれたとき、携帯電話の底面に位置する第1及び第2のセンサ102,104がテーブルに着席したユーザに向けられるようにすることができる。
【0053】
図3はジェスチャー認識入力装置100の一つの模範的な実施形態の模範的な制御ユニットのモジュールの概略図である。
【0054】
[キャリブレーションモジュール]
様々な実施形態では、装置100は装置100を特定のユーザに初期キャリブレーションを行うキャリブレーションモジュール300を含むことができる。キャリブレーションモジュール300はユーザの指及び手の各部分、関節、爪などの寸法及び特性を計算するとともに、ユーザがキャリブレーションルーチンを実行しているとき動き変数を計算することができる。模範的なキャリブレーション変数は、無制限に、垂直距離、垂直速度、垂直加速度、水平距離、水平速度、水平加速度、角変位、角速度、角加速度などを含む。
【0055】
キャリブレーションモジュール300は、例えば様々なキャリブレーションジェスチャーを実行するようユーザに命令する可視又は可聴キューを用いてユーザをキャリブレーションプロトコルに従わせることができる。一実施形態では、装置100はキャリブレーションプロシージャを支援するためにキャリブレーションテンプレートを同胞することができる。
図4はキャリブレーションテンプレート00の一つの模範的な実施形態を示し、これは紙又は厚紙の20×24シートの形態とすることができる。テンプレート400はデバイス輪郭402とQWERTY配列のキーボードの表示404を含む。キーボード404のホームキー406の輪郭が描かれ、“S”及び“L”キー408,409が強調表示されている。2つの水平線414,416と一緒にジグザグ線412もテンプレート400上に付与されている。
【0056】
模範的なキャリブレーションルーチンにおいて、テンプレート400は平面108の上に置かれ、装置100はマークされた装置輪郭402内に置かれる。次に、ユーザは手を、例えば
図4Bに示すように、ユーザの指が完全に真っすぐに揃えられ、左手の中指の先端が強調表示された”S”キー408の上に置かれ、右手の中指の先端が強調表示された”L”キー408の上に置かれる「スタンド」位置に置くように命令されるため、ユーザの指及び手はテンプレート400から上方に垂直に延在する。次に、ユーザは、例えば
図4Cに示すように、ユーザの指を互いに広げる以外は「スタンド」位置と同じである「スプレッドスタンド」位置に移行するように命令される。これらのステップ中に、装置100は指、手及びそれらの種々の部分の絶対長さ及び幅をテンプレートの装置輪郭402とテンプレートのキーボード表示404との間の既知の距離Dに基づいて測定することができる。一実施形態では、この既知の距離Dは18とすることができる。装置100の次の動作中に、センサ102,104で検出された指又は指部分のサイズをキャリブレーションフェーズ中に既知の距離Dで得られたサイズデータと比較することができる。これにより装置100は指又は指部分とセンサ102,104との間の現在距離を推定することが可能になる。
【0057】
次に、ユーザは、例えば
図4Dに示すように、ユーザの指の先端がテンプレートのホームキー406の上に置かれるとともに、ユーザの手のひらがテンプレート平面400に向かって下向きになるように折り曲げられる「レディー」位置に手を置くように命令される。キャリブレーションルーチンのこの段階中に、装置100は先に測定された解剖学的寸法を確かめ、向きモジュール304に関連して以下で述べるように向き計算の実行を開始することができる。
【0058】
次に、ユーザはテンプレート400のキーボード表示404上で所定のテキスト文字列又は文章をタイプするよう促される。ユーザがテキスト文字列をタイプし終わると、装置100は、以下で述べるように、向き及び長さ計算を実行し、強度評価を計算し、動き及び動きプロファイルを構築することができる。
【0059】
キャリブレーションルーチンは、(例えば、利き手又はユーザがマウス操作に使いたい手の指d2,d3,d4を下に曲げ、人差し指を伸ばす)「マウスハンド位置」を取るように命令することもできる。次に、ユーザは伸ばした人差し指の先端でジグザグ線412をトレースするように命令される。キャリブレーションルーチンのこのフェーズ中に、装置100は3次元計算を実行し、フレームのZ方向の基準を設定できる(例えば、この方向はセンサ102,104が取り付けられた装置表面100に垂直であるとともにテンプレート平面400に平行で、ユーザの手はこの方向に沿ってセンサ102,104に近づく方へ又は離れる方へ移動し得る)。次に、「マウスハンド位置」を維持しながら、ユーザは伸ばした差し指の先端で2つの水平線414,416をトレースするように命令される。キャリブレーションルーチンのこのフェーズ中に、装置100はフレームのX方向の基準(この方向はZ方向に直角であるとともにテンプレート平面400に平行で、ユーザの手はこの方向に沿ってセンサ102,104に対して左右に移動し得る)及びフレームのY方向の基準(この方向はテンプレート平面400に直角で、ユーザの手はこの方向に沿ってセンサ102,104に対して上下に移動し得る)を設定することができる。このフェーズは装置100のフレームのZ方向の基準を精密にすることもできる。
【0060】
[ユーザプロファイルモジュール]
様々な態様では、本発明教示によるシステムは特定のユーザに関連する情報(特定のユーザに固有のデータのライブラリ)を取得及び/又は記憶する。一例として、キャリブレーションルーチンが終了すると、ユーザプロファイルモジュール302はキャリブレーションルーチンを終了した特定のユーザに固有のユーザプロファイル情報を記憶することができる。これにより、ユーザはキャリブレーションプロシージャを繰り返すことなく、本質的には各ユーザに対してキャリブレーションプロシージャを1回実行するだけで、装置100を再び後続のセッションに使用することが可能になる。加えて又は代わりに、(例えば、キャリブレーションルーチンが実行されてない場合には)、ユーザプロファイルモジュールはシステムとのユーザの相互作用によりユーザに固有の情報を取得及び/又は記憶することができる。このような記憶情報は、例えばユーザの解剖学的特徴及び/又は良く使われるジェスチャー、アクション又は行動パターンに関連する。ユーザプロファイルモジュールは特定のユーザに固有であるとして論ずるが、様々な実施形態では、特定のユーザプロファイルと関連するデータは、例えば許可された二次ユーザ又は様々なユーザにまたがる分類モジュールの人々に対して共用することができる。
【0061】
様々な態様では、ユーザプロファイル情報は、以下に述べるように、装置のユーザを認証するために使用することができる。例えば、ここで
図5A−5Bを参照すると、システムはユーザの手の各部分は手(左なたは右)、指(D1−D5)及び部分(S1−S4)で指定される座標系にマップすることができる。従って、ユーザの右人差し指の先端は右D1S1と呼び、ユーザの左小指の基部は左D4S3と呼ぶことができる。システムはユーザの手の各関節も手(左又は右)、指(D1−D5)及び関節(J1−J3)で指定される座標系にマップすることができる。
【0062】
図示の実施形態では、末節骨はS1にマップされ、遠位指節間関節(DIP)はJIにマップされ、中節骨はS2にマップされ、近位指節間関節(PIP)はJ2にマップされ、基節骨はS3にマップされ、中手指節関節(MP)はJ3にマップされ、中手骨はS4にマップされる。より精密には、これらの解剖学的特徴の各々の背側面を覆う皮膚は指示基準座標にマップされる。
【0063】
システムはユーザの手の各指爪を手(左または右)及び指爪(N1−N5)により指定される座標系にマップされる。各指爪は概してキューティクル、半月及び爪甲を備え、それらの各々が装置100で検出されることは理解されよう。
【0064】
ユーザプロファイル情報は、ユーザの手の様々な特性、例えば
図5A−5Bに示す様々な要素の各々のサイズ及び形状及びそれらの相対位置のどれかを含むことができる。ユーザプロファイル情報は、ユーザの爪、手首、入れ墨、しわなどを含むこともできる。ユーザの皮膚の色及び/又はテクスチャを示す情報もユーザプロファイル情報として記憶することもできる。
【0065】
上述したユーザの手の物理的特性に加えて、ユーザプロファイルモジュール302は、特定のアクションを特定の態様(例えば、パターン、リズム、速さ、タイピングスタイルなど)で行うユーザの傾向に関連するユーザプロファイル情報を記憶するように構成することもできる。従って、ユーザプロファイルは、通常使用中又はキャリブレーションプロシージャ中に得られるよく使われるジェスチャー、アクション又は行動パターンに関するデータを含むことができる。例えば、
図5Cに示すように、時間とともに発生されるデータは、どのデータポイント(例えば、ユーザの構成要素)が作業空間内で検出可能かを決定し、画像内の前記データポイントの位置を決定するために処理することができる。一例として、1つ以上のセンサがイメージセンサを含む場合には、例えば、Rothganger他、「3D object modeling and recognition using local affine-invariant image descriptors and multi-view spatial constraints」,International Journal of Computer Vision 66(3), 231-259に記載されているように、このような処理を実行するために、当技術分野で知られている様々な画像処理技術を使用することができ、この文献の全内容は参照することにより本明細書に組み込まれる。このような処理から取得されるデータは異なる時点に得られたデータと比較して、例えば各特定のデータポイントの様々な動き特性、例えば垂直距離、垂直速度、垂直加速度、水平距離、水平速度、水平加速度、角変位、角速度角加速度など、を計算し、任意の行動パターンを決定し、ユーザプロファイルモジュール302に記憶することができる。
【0066】
[向き計算モジュール]
様々な態様では、装置100は向き計算モジュール304も含み、このモジュールはキャリブレーションプロトコル中にキャリブレーションモジュール300により取得された情報及び/又は使用中システムとのユーザの相互作用により得られたユーザ(例えば、非キャリブレーションユーザ)に固有の情報用いてユーザの両手の互いに対する及び装置100に対する位置及び向きの関係を決定する。向き計算モジュール304は、解剖学的パラメータ、特定のユーザ寸法、角度、動き及び他の様々なデータを用いて後の計算で使用する1つ以上の値を導出する。一例として、向き計算モジュールは手の甲の中心を表す「コア」値を計算することができ、このコア値は手の回転を決定するため及び/又は移動する手全体と伸ばした又は縮めた手の指とを区別するために使用することができる。例えば、
図5D−5Eにおいて、右手のコア位置CR及び左手のコア位置CLが陰影付き三角で示されている。コア値は、ユーザにより導入される振動(例えば、手の震え)を、ユーザ及び装置100の共通環境(例えば、両方ともでこぼこ道路を走行する車両内にある環境)により導入される振動と区別するのを助けることもできる。いくつかの態様では、コア値は、例えばX,Y及びZデータを微調整することによって、後述する動き計算モジュール324により実行される動き計算にも寄与することができる。コア値は後述する分類モジュール326により実行される分類決定にも寄与することができる。コア値は、ユーザが連続使用中に手の位置を変えることができるように、装置100の動作中に連続的に再計算し調整することができ、それによってユーザの手を長期間同じ状態に維持することを強いられることによって生じ得る疲れや繰り返しストレスなどの健康上の問題が軽減もしくは除去され、ユーザの快適性が向上する。
【0067】
一実施形態では、コア値はユーザの手の様々な要素間の角度の測定を用いて計算することができる。例えば、
図5Dに示すように、向き計算モジュール304は様々な角度A1−A9のいずれかを測定することができる。図示の角度A1−A9は単なる一例であり、左手コア位置CL及び右手コア位置CRを計算するためにユーザの手及び指の任意の関節又は部分間の角度を測定することができる。
【0068】
図5D〜5Eに示すように、ユーザの手のコア位置CL,CRとユーザの手の任意の2つの部分、関節又は爪とがなす角は装置100に対する手の向きを決定するために使用することができる。向き計算は後述する動き及び分類処理に含め、装置100を広範囲の手の向きにおいて使用可能にするとともに手の向きの変化にリアルタイムに適応させることができる。従って、装置100は従来の固定配置の機械的キーボード及び固定配置の仮想キーボードと関連する制約及び人間工学的問題に悩まされることはない。
【0069】
[解剖学的パラメータモジュール]
装置100は解剖学的パラメータモジュール306も含むことができ、このモジュールは人間の手の骨格構造、筋肉及び関節などの物理的制約に基づく1つ以上の規則を記憶する。この情報は、計算の基礎を提供するとともに、例えば物理的に不可能な手の位置を示すセンサ信号をスプリアスとして調整又は廃棄することによって装置の精度を高めるために使用することができる。更に、作業空間全体のセンサビューが、例えばユーザの手の様々な部分により遮られるとき、解剖学的パラメータモジュール306が1つ以上の観察可能なデータポイントに基づくジェスチャーの決定を支援するために情報を提供することができる。
【0070】
[モード選択モジュール]
装置100は複数の動作モードの間で装置100を切り替えるモード選択モジュール308も含むことができる。模範的な動作モードは、キーボード入力モード、数字パッド入力モード及びマウス入力モードを含む。モード選択モジュール308は様々なパラメータのうちのいずれか、例えばユーザの手の位置、を評価することによって動作モードを決定することができる。
【0071】
図6Aは、指の先端が作業空間106内の表面108の上に置かれ、ユーザの手のひらが表面108に向かって下向きになるように指が曲げられた模範的な「キーボード入力モード位置」に置かれたユーザの手を示す。言い換えれば、ユーザは通常の物理的キーボードでタイプするときのように、手をレディー位置に置く。
図6Bは、ユーザがキーボード入力モード位置を取るとき、センサ102,104の1つでキャプチャされる模範的な画像を示す。図に示すように、キーボード入力モード位置では概して両手の指D1−D4の指爪N1−N4及び関節J1−J3が見える。
図6Bは、上述したように計算されるコア位置CL,CRも示している。モード選択モジュール308がユーザの手はキーボード入力モード位置に位置していることを検出すると、現在の動作モードはキーボード入力モードに切り替えられる。
【0072】
図7Aは模範的な「数字パッド入力モード位置」に置かれたユーザの手を示す。この位置は、ユーザの利き手708、又はユーザが数字パッド入力に使いたい手が「ホーム」キーボードジェスチャー位置から前方へ移動し且つ又外側へ少なくとも僅かに離れる以外はキーボード入力モード位置と同様である。
図7Bは、ユーザが数字パッド入力モード位置を取るとき、センサ102,104の1つでキャプチャされる模範的な画像を示す。図に示すように、数字パッド入力モード位置でも、両手の指D1−D4の指爪N1−N4及び関節J1−J3は依然として見えるが、利き手708がセンサに近いために、利き手でない手710の方が利き手708よりも小さく見える。このサイズの差はキーボード入力モード位置と数字パッド入力モード位置とを区別するのに役立つ。サイズの差に加えて、手の位置の変化(例えば、各手のコア位置CR,CLによって又はユーザの手の1つ以上の構成要素のX,Y及びZ座標によって示される)もモード変化の発生時の検出のために使用することができる。例えば、ユーザが手全体を持ち上げ、作業空間内の別の位置へ動かすときに生じるコア変化は数字パッド入力モードへの移行の意思表示と解釈できる。計算されたコア位置CR,CLは
図7Bにも示されている。
【0073】
別の模範的な数字パッド入力モード位置は、ユーザの利き手でない手710又はユーザが数字パッド入力に使いたくない手は作業空間106から退却される以外はキーボード入力モード位置と同様である。従って、数字パッド入力モードはいくつかの方法で活性化することができる。両手708,710が既に作業空間106内にある場合、ユーザは利き手でない手710を除去し、利き手708を持続することができる。更に、ユーザは両手708,710を作業空間内に維持し、利き手708だけを前に移動させることができる。また、手が作業空間内に存在しない場合には、ユーザは1つの手だけを作業空間に入れることによって数字パッド入力モードに入ることができる。キーボード入力モードに戻るには、ユーザは利き手708をキーボード入力モード位置のもとの深さに戻し、タイピングに戻ることができる。また、ユーザはキーボード入力モードを再開するために利き手でない手710を作業空間106に再び入れることができる。モード選択モジュール308はユーザの手が数字パッド入力モード位置にあることを検出するとき、現在の動作モードは数字パッド入力モードに切り替えられる。
【0074】
図8Aは、模範的な「マウス入力モード位置」に置かれたユーザの手を示す。この位置は、ユーザの利き手808又はユーザがマウス入力に使いたい手の人差し指D1を装置100に向かってZ方向に前に伸ばす以外はキーボード入力モード位置と同様である。
図8Bは、ユーザがマウス入力モード位置を取るとき、センサ102,104の1つでキャプチャされる模範的な画像を示す。図に示すように、利き手の指D1は伸ばされているが、指D2,D3及びD4は引込められたままである。この位置では指D1の爪N1は見えるが、指D2,D3及びD4の爪は見えない。一般に、この手の位置への移行は指D2,D3及びD4の爪N2,N3及びN4が徐々に見えなくなることにより表される。更に、指D1の3つの関節J1,J2及びJ3の全てが見えるが、指D2,D3及びD4は2つの関節J2,J3しか見えない。更に、指が引き込まれているときは関節J3が突き出る。言い換えれば、指を引込められると、関節J3は左右方向に又はX方向にほぼ平らに位置するように見える代わりに、関節J3間に谷が現れる。この情報はマウス入力モード位置を他の位置から区別するために使用できる。マウス入力モード位置では、ユーザがボタンを実際にクリックしないで、物理的マウスを使用するのと同様のジェスチャーを使ってクリック及びドラッグを実行することができる。モード選択モジュール308がユーザの手がマウス入力モード位置に置かれていることを検出すると、現在の動作モードはマウス入力モードに切り替えられる。
図8A−8Bには非ポインティングハンドを示しているが、作業空間106内にポインティングハンドのみを提示することによってマウス入力モードに入ることもできる。
【0075】
上で述べたように、どの動作モードをユーザが望むかに関する決定は、上述した様々なセンサから出力されるデータにアクセスすることによって行うことができる。例えば、指が引込められているとき爪は一般的にセンサに見えないので、1つ以上の指が伸ばされているかどうかを決定するには、センサでキャプチャされたデータに存在する指爪の数を利用することができる。センサデータ内の指爪を識別するには指爪の独自の品質を利用することができる。これらの品質は爪の形状、爪の反射率及び爪の位置(爪は指の先端にあると仮定される)を含むことができる。モード決定は、センサ出力から解釈される他のデータ、例えば指が引込められているときと反対に指が伸ばされているときに観察されるユーザの関節間の距離の変化によって強化することができる。
【0076】
動作モード間の移行のトリガとして様々なユーザアクションを利用できることは理解されよう。例えば、両手が作業空間内にあり、1つの手の指D2−D4は引込められ、指D1は伸ばされているとき、マウス入力モードに入ることができる。また、1つの手が作業空間内にあり、その指D1が伸ばされているとき、又は1つの手のみが作業空間に入り、その手の指D1が伸ばされているときにもマウス入力モードに入ることができる。マウス入力モードへの移行は、数字パッド入力モード、キーボード入力モード、カスタムパッド入力モードなどから起こり得る。更なる一例として、2つの手が作業空間に入るとき、又は1つの手が作業空間に入るが別の手が作業空間内に既に存在しているとき、キーボード入力モードに入ることができる。キーボード入力モードへの移行は、数字パッド入力モード、マウス入力モード、カスタムパッド入力モードなどから起こり得る。更なる一例として、キーボード入力モードにある間に利き手が前に移動するとき、1つの手だけが作業空間に入るとき、又は1つの手だけを作業空間に残して1つの手を作業空間から出すとき、数字パッド入力モードに入ることができる。数字パッド入力モードへの移行はマウス入力モード、キーボード入力モード、カスタムパッド入力モードなどから起こり得る。上述した様々な入力モードは作業空間内に存在するテンプレートと関連して又は独立に機能させることができることは理解されよう。
【0077】
[ジェスチャーライブラリモジュール]
本装置はジェスチャーライブラリモジュール310も含むことができ、このモジュールによりユーザはここに記載する様々な入力モード(例えば、キーボード入力、数字パッド入力及び/又はマウス入力モード)で使用するカスタムジェスチャーを定義することができる。言い換えれば、ジェスチャーライブラリモジュール310は特定の入力ジェスチャーを特定の出力行動と関連付ける規則を記憶する。例えば、キーボード入力モード中に実行される延長キーストライク時間は大文字が望ましいことを示すカスタムジェスチャーとして解釈することができる。同様に、D1及びD2の同時キーストライク(即ち、2指のタップ)はバックスペース又は取り消し操作が望ましいことを示すカスタムジェスチャーと解釈することができる。長時間の2指タップは複数文字のバックスペース又はデリート操作を示すカスタムジェスチャーと解釈することができる。そして、例えば、テキストの全体部分を削除するには、ユーザはマウス入力モードに移行し、テキストを強調表示し、2指タップを実行することができる。一つの模範的な実施形態では、作業空間内のユーザのつまみ運動における人差し指を親指から離すジェスチャー又は人差し指と親指を合わせるジェスチャーはズームイン又はズームアウトのような特定の操作と関連させることができる。
【0078】
ユーザにより定義されたジェスチャーは、装置100によって評価され、それらがどのように正確に決定され、強度評価を割り当てられるかは強度評価モジュール328に関して以下に記載される。強度評価情報は、特定のジェスチャーは弱いこと、又はもっと強いかもしれない代替ジェスチャーを提案することをユーザに知らせることができる。
【0079】
ジェスチャーライブラリモジュール310も、テンプレート識別モジュールに関して以下に記載するように、「テンプレート」の存在に依存する入力モードを含むことができる。
【0080】
[出力モジュール]
様々な態様では、出力モジュール312は、ユーザ入力に応答して、現在動作モードに依存して発生される可能な出力の母集団を定義することができる。例えば、キーボード入力モードの可能な出力は、大文字及び小文字A−Z、リターン/エンター、スペースバー、大文字、バックスペース、タブ、ファンクションキーなどを含むことができる。数字パッド入力モードの可能な出力は数字0−9を含むことができる。マウス入力モードの可能な出力は、ポイント、ダブルクリック、選択、ドラッグ解放、右クリックなどを含むことができる。例えば、一実施形態では、右クリックは、人差し指を右へ少し移動させ1回タップすることにより指示することができる。更に可能な出力は、マクロ、シンボル、句読点、特殊文字、及び他の機能を含むことができる。例えば、キーボード入力モードでは、ユーザの利き手でない手はCTRL、ALT、ページアップ及びページダウンなどの特殊キー又は機能キーを入力するためのジェスチャーを実行することができる。
【0081】
[セキュリティモジュール]
装置100は、装置100又は装置100が結合されるディジタルデータ処理システムの特定のユーザを認証するように構成されたセキュリティモジュール314も含むことができる。記憶されたユーザプロファイル情報を利用すれば、ユーザ固有の手の寸法を単独で又は他のセキュリティ手段(例えば所定のパスワード又はジェスチャー)と合同で、ゲート機能として(例えば、作業空間内への最初の侵入時におけるパスワードの入力時に)及び/又はユーザが認証されたままであることを保証するためにシステムにアクセスし続ける間、予想ユーザが正規のユーザであるかどうかを決定するために使用することができる。
【0082】
セキュリティモジュール314は、パスワード入力時にユーザは同じパターン、リズム、速度、タイピングスタイルなどを模倣又は反復する傾向があるという知識に基づく行動要素を含むこともできる。これらの行動要素を各正規ユーザに対するユーザプロファイルの一部分として記憶し、予想ユーザの行動と比較して予想ユーザが正規であるかどうかを決定することができる。極端な例では、これにより同じ物理的指構造及び特徴を有する一卵性双生児を区別することができる。このプロトコルは、行動及び/又は外観に影響を与え得るユーザの手の傷や他の予測不能の変化を吸収する能力も有する。セキュリティモジュール314は動作中ユーザのタイピングスタイル又は他の行動を連続的に又は間欠的に監視して、現在のユーザが依然として正規のユーザであることを確認することができる。例えば、いくつかの実施形態では、装置100は、作業空間内に存在するランドマーク数が所定の閾値より少なくなるとき、ユーザ認証が必要であると決定できる。言い換えれば、ユーザが手を作業空間から取り出すと、装置100はロックされ、次に作業空間に侵入するユーザを、例えばそのユーザの行動又は物理的属性を1つ以上の所定の正規のユーザのデータと比較することによって認証することが要求される。従って、これにより装置100は、ワイタイムパスワードプロンプトと異なり、許可されたユーザが装置をアンロックし、その後装置100を無人のまま放置するとき、無許可のユーザによるアクセスを防止することができる。セキュリティモジュール314は、行動情報を維持及び補強して経時的な行動の変化に適応させ精度を向上させることができる。
【0083】
装置100により提供される別のセキュリティの利点は、パスワード、ソーシャルセキュリティ番号、クレジットカード番号又は任意の他の秘密データを、可視キーボードを使わずにディジタルデータ処理システムに入力する能力である。これは、許可されてない第3者が、ユーザがどのキーを打つかをユーザの肩越しに覗き見て秘密情報を盗む危険を除去することができる。
【0084】
[テンプレート識別モジュール]
本装置は、装置100をユーザの手以外のオブジェクト、例えば「作業空間内の作業空間」として作用し得る「テンプレート」とともに使用することを容易にするために、テンプレート識別モジュール316も含むことができる。テンプレートは様々な構成を有し得るが、様々な実施形態では、ユーザが物理的に相互作用及び/又は操作し得る選択された入力モードの物理的表示とすることができる。一例として、テンプレートは、キーボード、数字パッド、特殊機能キーパッド、ミュージック入力(例えばピアノキーボード)、描画具/筆記具などの物理的表示とすることができる。いくつかの実施形態では、テンプレートは固定のキー表示(例えば、英数字キー、いくつかの所定の機能と関連するキー、ピアノキー)を備えた表面を有するプレート又はカードとすることができ、固定のキー表示は相対的に固定であるが、センサ又は作業空間に対しては必ずしも固定でない位置を意味する。これは特定の工業環境に対して利用でき、特定の工業環境においてはテンプレート関連する特定のコマンドはより制限的な空間(例えば所領内又は工場内)で実装することが重要である。テンプレートのユーザにより提供される標準化されたキー表示も2本指タイピストなどの異なるタイピングスタイルに対して有益とすることができる。
【0085】
テンプレートは文字、記号、画像、パターンなどでコード化し、テンプレートが作業空間に入るとき、センサで発生されるデータに基づいてテンプレート識別モジュールで識別し得るようにすることができる。一例として、テンプレート識別モジュールは、特定の機能又は寸法のテンプレートを指示するように、産業分野(例えば医療分野)で使用されるパターン、例えばバーコード又はクイックレスポンス(QR)コードを認識するように構成することができる。例えば、
図8Cを参照すると、模範的なキーボードテンプレートは、パターン(例えば、形、十字のアレイ)でコード化され、テンプレート識別モジュール316で識別できる約1/16インチのセンサ対面エッジを有し、作業空間内の特定の位置に置かれた特定のキーを有するキーボードを表している。また、例えば、
図8D及び8Eに示すように、テンプレートは、所定の特性、マクロなどの特定の特殊機能と関連付けることができる特定のエリア、又はユーザが特定の機能(例えばF2ボタン、保存、マクロ1)を割り当てることができるエリアを定義することができる。様々な態様では、テンプレート識別モジュール316は、テンプレートの位置及び/又はその識別子をパターンの検出に基づいて決定することができる。一例として、
図8D及び8Eを参照すると、テンプレートのセンサに面するエッジ上の十字のパターンは装置100に対するテンプレートの向きに基づいて変化する。例えば、テンプレートが装置100(
図8D)に対して傾くと、観察されるパターンは装置100に対して直角を成すテンプレート(
図8E)上の同じパターンに対して細く且つ小さくなる。このとき装置はこの検出パターンを利用して、特定の入力を表現するよう定義されたテンプレート上の1つ以上のエリアを表す座標を決定することができる。例えば、テンプレートが識別され、作業空間内のその位置がそのコードに基づいて決定されると、装置100はユーザのジェスチャーをテンプレート上に定義された特定の機能又は入力と同等とみなすことができる。いくつかの実施形態では、装置100は手又はテンプレートのみに応答するように構成して、作業空間内の他のオブジェクトの運き(例えば書き込み命令)又は背景の変化を無視できるようにすることができる。
【0086】
テンプレート識別モジュール316は、作業空間内でユーザにより操作され、センサで検出され得る様々なオブジェクトを検出するように構成することもできる。例えば、テンプレート識別モジュールは、スタイラス(例えば、ペン、鉛筆)などの典型的なツール又は他のユーザ手持ち道具をその大きさ、形、色又は他の識別特性に基づいて識別するように構成することができる。更に、いくつかの態様では、ツールにコード(例えばバーコード,QRコード)及び/又はパターンを含め、テンプレート識別モジュールが作業空間内のツールを識別し及び/又はその位置を決定することができるようにすることができる。更に、別に述べるように、プロセッサが作業空間内のコード及び/又はパターンを追跡して位置及び動きデータを提供し、このデータから追加の入力情報を決定できるようにすることもできる。一例として、パターンの検出を通したスタイラスの向き(例えば、傾き)及び速度を用いて、スタイラスでユーザにより指示される線の太さ、幅、又は強さを計算することもできる。
【0087】
例えば、
図8F及び8Gを参照すると、テンプレート識別モジュール316は、ツール(例えば、描画ツール)及び/又はツールにより表現された所望の入力の特性(例えば、描画ツールで生成された色、線の太さ、パターン)をツール(例えば、スタイラス800)上に配置されたパターンの識別に基づいて決定することができる。例えば、
図8Fの典型的なスタイラス800上に配置された同心円のパターンはテンプレート識別モジュール316により、例えばハイライタを表すものと識別することができるが、
図8Gに示す十字のパターンは特別の色及び/又は太さの線を生成するペンを識別する。例えば、いくつかの態様では、ペンを表すスタイラスはスタイラスの動きで示される線の太さを増大するように傾けることができる。更に、別に述べるように、プロセッサは、描画ツールの位置及び向きを追跡しユーザ入力を決定するために、ユーザが作業空間内のスタイラス800をパターンの移動を操作するにつれて追跡することができる。これにより、装置100を作業空間106がホワイトボード、デスクトップ、テーブルトップ、ディスプレイ、壁などの表面を含むように配置し、装置100でツールの動きを検出し、その動きを様々なユーザ入力として解釈することが可能となる。例えば、いくつかの実施形態では、複数の筆記具を設け、各筆記具は特定のタイプの入力情報又は入力属性(例えば、入力の色、入力の線太さなど)と関連するユニークな特性、マーキング及び/又はパターンを有するものとすることができる。更に、
図8F及び8Gでは、スタイラス800はユーザがオブジェクト(例えば、紙又はホワイトボード)上に実際に書くことを可能にするとともにスタイラスの移動も装置100で検出されるように物理的な先端802(例えば、ドライイレースチップ)を有するものとして示されているが、先端はツールの入力特性(例えば、色、線の太さなど)をユーザに視覚的に示すだけとすることができる。更に、いくつかの実施形態では、ツールはユーザが所望の入力を選択し得るメカニズムを含むことができる。一例として、ユーザは
図8Fに示すスタイラス800により表示されるパターンが
図8Gに示すパターンに切り替えられるようにスタイラス800上の機械的ボタンを押すことができる。例えば、いくつかの実施形態では、テンプレートは、ユーザが直接コマンドをプロセッサに送ることを許可する1つ以上の制御を更に含むことができる。例えば。様々な実施形態では、ユーザは、前ジェスチャーを取り消すために入力情報を(例えば、無線又はIR信号で)プロセッサに送信することができる。従って、このように、テンプレート識別モジュール316はスタイラスの動きと関連して所望の入力特性を指示することができる。
【0088】
[エラー処理モジュール]
装置100は、装置100の全体的な精度を向上させるためのエラー処理モジュールも含むことができる。例えば、エラー処理モジュール318は単語推定器を含むことができる。この単語推定器は、複数の可能性のある「キー」のどれが打たれたかに関するクローズコールを1つ以上の前入力を辞書又は他の参照データソースと比較することによって解決するように構成される。
【0089】
[クロックモジュール]
装置100は、(ユーザが付与しようとしている特定の入力の決定を支援するために使用できる)ユーザジェスチャーのアクセスを速くするため、又は装置100を電池寿命の回復のために休止モードにする適期を決定するために、クロックモジュール320を含むこともできる。例えば、ユーザ入力なしで所定の時間が経過すると、装置は自動的に休止モードに入り、セキュリティ102,104のサンプルレートが低減され、光源112がターンオフされる。
【0090】
[フィードバックモジュール]
装置100による作業空間内のユーザのジェスチャーの検出に起因してディジタルデータ処理システムにより発生される出力の代わりに又は加えて、装置100は可視又は可聴フィードバックをユーザに提供するように構成されたフィールドモジュール322を含むこともできる。一実施形態では、フィードバックモジュール322は、ディスプレイ装置にポップアップキーボード又は他のグラフィックテンプレートを表示するように構成することができる。キーストライク又は他のユーザジェスチャーが検出されると、打たれたキーをポップアップ表示で強調表示することができる。ポップアップの表示は、ユーザが手をレディー位置に所定の期間そのまま動かさずに置くことによってトリガすることができ、ポップアップを完全に表示することができる。この特徴は、ユーザが最初に装置100の操作に慣れるためにキーの位置を示す視覚的ガイドを必要とするとき有用である。参照スクリーン又はテンプレートはジェスチャーライブラリモジュール310により記憶し得る所定のジェスチャーに応答して表示することもできる。参照スクリーンはモード固有にし、キーボード入力モードのときはキーボードが表示され、数字パッド入力モードのときは数字パッドが表示されるようにすることができる。例えばキーストライクの検出時にクリック音又は他の音を発生させることによって、他のタイプのフィードバックをフィードバックモジュール322で提供することもできる。
【0091】
[動き計算モジュール]
装置100は作業空間106内のユーザの動きにアクセスするための動き計算モジュール324を含むこともできる。上述したように、時間とともにセンサで発生されるデータは、ユーザの手の1つ以上の構成要素の垂直距離、垂直速度、垂直加速度、水平距離、水平速度、水平加速度、角変位、角速度、角加速度、サイズの変化などを導出するために処理することができる。例えば、
図8H及び8Iを参照すると、構造光(例えば、可視光,IR)の模範的な表現が投影されているユーザの手が、第1の位置(
図8H)から第2の位置(
図8I)へ動くものとして示されている。ユーザの手の動きにつれて構造光センサにより発生される、構造光の各円のパターン、サイズ、及び形に関するデータは、ユーザの手の瞬間的な3次元位置並びに円の位置、サイズ及び形の変化に基づいて経時的動きを決定するためにプロセッサ(例えば動き計算モジュール)で使用することができる。図示の実施形態の構造光は複数の円を例示しているが、構造光の様々なパターン(例えば、水平線、垂直線、着色光バーなど)を使用することができることは理解されよう。構造光は赤外線とし、人間の眼に見えないようすることもできることは理解されよう。
【0092】
更に、模範的な動き計算モジュール324は、例えば、上述したように単一の3次元撮像モダリティ(例えば構造光センサ)から導出されたデータに基づいて作業空間内のオブジェクトの3次元位置決め及び/又は動きを導出することができるが、プロセッサは、作業空間のユーザの相互作用のよりロバストな表現を発生するために、更に同じ又は異なるモダリティの1つ以上の追加のセンサにより発生されるデータを受信することができる。例えば、いくつかの実施形態では、動き計算の一部分として、一組の「アクティブ動き変数」に関する値のストリームを、様々なモジュールによる処理を微調整するために、別の構造光センサ又はイメージセンサから受信されるデータに基づいて向き計算モジュール304により実行されるコア計算に基づいて調整することができる。一例として、動き変数は様々なセンサと比較することができる。一実施形態では、モード選択モジュール308により決定される現在の動作モードはどのアクティブ動き変数が動き計算に適切であるかを決定するために使用することができる。
【0093】
3次元変数は、それぞれ作業空間の異なる見晴らしの良い地点を有する複数のセンサの出力を比較することによって計算することもできる。例えば、2つのイメージセンサ102,104を用いることによって、ユーザの手の特定の部分がセンサ102,104に対してどのくらい近いか遠いかを決定するための奥行き計算を得るために、三角測量法又は視差アルゴリズムを使用することができる。特定のオブジェクトの奥行きを決定する模範的な技術は、Su et al、”Towards an EMG-controlled prosthetic hand using a 3-D electromagnetic positioning system”, IEEE Transactions on Instrumentation and measurement, Vol. 56. No. 1, February 2007; Jain et al, “Machine vision”, Chapter 11, pages 289-308, 1995; Hartley et al, “Multiple view geometry in computer vision, first edition”, Chapter 8, pages219-243, 2000; Sibley et al, “Stereo observation models”, University of Southern California, June 16, 2003, 及びPrince et al, “Pattern recognition and machine vision: stereo vision and depth recognition”, University College London-Computer Science Department, 2006に開示されており、これらの各文献の全内容は参照することにより本明細書に組み込まれる。同様に、データが空間的に分離された3次元センサ(例えば、2つの構造光センサと1つ以上の光源)により異なる見晴らしの良い点から又は3次元センサ及び空間的に分離されたイメージセンサから得られるいくつかの模範的な実施形態では、例えばプロセッサは作業空間とのユーザの相互作用のよりロバストな表現を発生することができる。一例として、イメージセンサ(例えばカメラ)は、位置、動き、色、形などの追加のデータを示すことができ、本明細書に記載する1つ以上のモジュールに有用である。例えば、いくつかの態様では、様々なセンサにより発生されるデータは、センサの1つから遮蔽された作業空間の一部分に関する情報も依然として提供することができる。
【0094】
[分類モジュール]
様々な態様において、本教示によるシステム及び方法は、作業空間内のユーザジェスチャーに基づいて発生されたデータをユーザ入力情報と関連付けるように構成された分類モジュールを含むことができる。一例として、動き計算モジュールが解剖学的ランドマーク(例えば指節、指関節、指爪)間の位置、速度、加速度又は角度の経時変化を決定すると、分類モジュールは、これらの測定値を特定のユーザ入力と関連付けることができる。一例として、例えばキーボード入力モードで動作しているときは、分類モジュールは、ユーザの手のいくつかの部分の位置、向き及び/又は速度の観察された変化に基づいて、ユーザのアクションを特定のキーのキーストライクと分類する。このような決定は、例えば観察された動きをライブラリの参照動きと比較することによって行うことができる。
【0095】
例えば、様々な態様では、装置100は動き計算モジュール324により発生されたアクティブ動き変数のストリームを特定のユーザジェスチャー又はアクションと解釈することができる。言い換えれば、分類モジュール326はどの指がキーストライクしようとしているか、どこでキーストライクが起こるか、そのキーストライクは本当にキーストライクであるかを決定することができる。
【0096】
どの指がキーストライクしようとしているかを決定するためには、分類モジュール326は必要に応じ多数の指、好ましくは各手の少なくとも4本の指を追跡することができる。分類モジュール326は、ユーザの解剖学的ランドマークの様々な属性、例えばあるランドマークと装置が置かれた表面108との間の垂直距離の変化、そのランドマークの速度、そのランドマークの加速度、又は1つ以上の他のランドマークに対するそのランドマークの距離、速度、又は加速度の何れかを評価することができる。従って、分類モジュール326は各指又は指部分が他の指又は指部分に対してどのくらい移動するかを評価することができる。これは、ユーザが「コンサートムーバ」であるとき(即ち、ユーザのタイピングスタイルが単一のキーストロークをするのに複数の指を動かすとき)又はユーザが高速タイピストであるとき(即ち、ユーザのタイピングスタイルが別の指が前のキーストロークを実行し終わる前につぎのキーストロークのための指を動かし始めるとき)の精度を向上するのに役立つ。いくつかの実施形態では、分類モジュール326は「高速ムーバ」(例えば、最も高い加速度、最も劇的な速度変化又は最も意図的な方向角度変化を有する指)を決定することができる。このような実施形態では、「高速ムーバ」は現在キーストライク中の指として分離することができる。分類モジュール326は、有力なキーストライク候補であるユーザの動きに、その動きが生じたゾーン又はその動きが開始したゾーンに応じて異なる重みを割り当てることもできる。例えば、有力なキーストライク候補である動きに、その動きが関心ゾーン内で開始又は実行されるとき、低い重みを割り当てるが、アクティブゾーン内で開始または実行される同様の動きには高い重みを割あてることができる。割り当てられる重みはキーストライク候補を最終的にキーストライクと分類するかどうかを決定するために使用することができる。
【0097】
キーストライクが生じるかどうかを決定するためには、分類モジュール326は動き計算モジュール324により発生されたX,Y及びZ位置データを向き計算モジュール304により発生された向き情報と関連して解釈することができる。垂直速度、垂直加速度、水平速度、水平加速度、角変位、角速度、角加速度などの他の動き特性も考慮することができる。
【0098】
キーストライクが起こったかどうかを決定するためには、分類モジュール326は広範囲のデータを解釈することができる。例えば、分類モジュール326は、ユーザの通常のタイプ速度又は他の行動データを、ユーザプロファイルモジュール302に記憶されたユーザプロファイルデータと参照することによって考慮することができる。分類モジュール326は、減少する垂直距離(指先端が作業空間内で表面に近づくことを示す)、垂直速度シグネチャ、線速度シグネチャ、加速度シグネチャ、角速度シグネチャ及び角変位シグネチャなどのいくつかの指標に関して動き変数を検査することもできる。この情報を用いて、分類モジュール326は、意図したキーストライク(例えば、高い加速度に続く加速度の急激な低下で一般に特徴づけられる動き)と、ユーザが単に指を表面108に乗せる状態(例えば、急激な変化のない低い加速度で一般に特徴づけられる動き)とを区別することができる。分類モジュール326は、ユーザの動きが作業空間106内のアクティブゾーン、関心ゾーン又は他のエリアのうちのどこで起こるかを決定することによってストライクがどこで起こったかを決定することもできる。
【0099】
分類モジュール326は、指の前状態を考慮し、誤りを低減することもできる。例えば、分類モジュール326は、「浮動」位置から「レディー」位置へ移動する指と「浮動」位置から「キーストライク」位置へ移動する指とを区別することができる。
【0100】
図9A−9Cは、ユーザが文字“M”を装置100が結合されたディジタルデータ処理システムに入力する意図をもってキーストライクを実行するときにセンサ102,104の1つにより発生されるデータを示す。
図9Aに示すように、ユーザの右DISIはホーム位置(例えば”J”位置)からY方向に、アクティブゾーンから相互作用ゾーン内へ持ち上がる。
図9Bに示すように、ユーザの右DISIは次に、Z方向にセンサから離れるとともにX方向にD2S1の方へと移動し、“M”位置の上方に到達する。
図9Cに示すように、ユーザの右D1S1は次にY方向に不活性ゾーンから活性ゾーンへ下がりストライク動作し、キーストライクを完了する。
【0101】
ユーザがタイプしている間に装置100で監視/計算できる模範的な動き変数が
図10A−10Kに示されている。各グラフには、ユーザが装置100を使って文字列“JUJYJHJNJMJJ”をタイプする期間に亘って模範的な値が示されている。言い換えれば、各グラフは同じタイピング事象を表す。これらのグラフは単一センサから発生された2次元データを示す。グラフから理解されるように、この2次元データにおける注目すべき事象と実際のキーストロークの間に僅かな時間の不一致が存在し得る。しかしながら、この不一致は、本明細書に記載するように、複数のセンサからの2次元センサデータを集計して3次元データを生成し、前記データをコア計算からの向きデータで増補することによって除去することができる。
【0102】
図10Aにおいて、ユーザの右手のコアCRを頂点としてコアからD1S1へ延びる第1の直線とコアからD1S2へ延びる直線がなす角度に関する角加速度が示されている。角加速度(度/秒/秒単位で表されている)は時間の関数としてプロットされ、画像フレーム数で表されている。各キーストロークはグラフ内に円で示されている。図に示すように、角加速度の鋭い正方向スパイクは各キーが打たれるタイミングで生じる。
【0103】
図10Bにおいて、前記角度に関して
図10Aに示す角加速度を生じる角速度が示されている。角速度(度/秒単位で表される)は時間の関数としてプロットされ、画像フレーム数で表されている。各キーストロークはグラフ内に円で示されている。図に示すように、各キーが打たれるタイミングは隣接する負及び正速度スパイク間の中点又は屈曲点にほぼ対応する。角速度の正スパイクは各キーが打たれるタイミングの後まで生じない。
【0104】
図10Cにおいて、前記角度に関して
図10A−10Bに示す角加速度及び角速度を生じる角変位が示されている。角変位(度単位で表される)は時間の関数としてプロットされ、画像フレーム数で表されている。各キーストロークはグラフ内に円で示されている。図に示すように、角変位の鋭い下降スパイクは各キーが打たれるタイミングで生じる。言い換えれば、角変位はキーが打たれたとき急に反転する。
【0105】
図10Dにおいて、ユーザの右手のコア、ユーザの右手のDISI及びユーザの右手のDIS2の各々に関する線速度が示されている。これらの構成要素の各々の線速度(フィート/秒単位で表される)は時間の関数としてプロットされ、画像フレーム数で表される。各キーストロークはグラフ内に垂直線で示されている。図に示すように、各キーストロークは線速度の負ピークを伴う。また、グラフはその意味を特定の解剖学的ランドマークの動きを1つ以上の他の解剖学的ランドマークの動きと比較して強調している。例えば、J−Y順序の間はD1S1の速度が一般にD1S2よりはるかに高いが、J−M順序の間は一般に反対になる。これは「後退」運動のため(例えば、ユーザはJ位置からM位置へ指をZ方向にセンサから離れるように動かすため)である。D1S2は一般にD1S1よりより速く高くY方向に持ち上がる。他方、「前進」運動(ユーザはJ位置からY位置へ指をZ方向にセンサの方へ動かす)に対しては、DIS2は一般にDISIより大きく下がるが、D1S1の方が大きな速度を有する。
【0106】
図10Eにおいて、ユーザの右手のコア、ユーザの右手のDISI及びユーザの右手のDIS2の各々に関する線加速度が示されている。これらの構成要素の各々の線加速度(フィート/秒/秒単位で表される)は時間の関数としてプロットされ、画像フレーム数で表される。各キーストロークはグラフ内に垂直線で示されている。図に示すように、各キーが打たれるタイミングは隣接する負及び正の加速度スパイク間の中点又は屈曲点にほぼ対応する。線加速度の正スパイクは各キーが打たれるタイミングの後まで生じない。
【0107】
図10Fにおいて、ユーザの右手のコア、ユーザの右手のDISI及びユーザの右手のDIS2の各々に関する水平距離が示されている。これらの構成要素の各々の水平距離(フィート単位で表される)は時間の関数としてプロットされ、画像フレーム数で表される。各キーストロークはグラフ内に垂直線で示されている。図に示すように、J−Y順序の間又はJ−H順序の間の移動距離はJ−N順序又はJ−M順序の後退運動よりはるかに大きく且つ異なることが観察し得るので、水平距離変数は他の測定値への付加値とすることができる。これらの2つの模範的なランドマーク(D1S1及びD1S2)間の関係は前進リーチ運動と持ち上がり後退運動との差を証明している。グラフにも示されるように、J−J順序は、ユーザが同じ位置を打つので、予想通り殆ど水平距離の変化を記録しない。
【0108】
図10Gにおいて、ユーザの右手のコア、ユーザの右手のDISI及びユーザの右手のDIS2の各々に関する水平速度が示されている。これらの構成要素の各々の水平速度(フィート/秒単位で表される)は時間の関数としてプロットされ、画像フレーム数で表される。各キーストロークはグラフ内に垂直線で示されている。図に示すように、水平速度は各キーストライクの瞬時にほぼゼロである傾向がある。
【0109】
図10Hにおいて、ユーザの右手のコア、ユーザの右手のDISI及びユーザの右手のDIS2の各々に関する水平加速度が示されている。これらの構成要素の各々の水平加速度(フィート/秒/秒単位で表される)は時間の関数としてプロットされ、画像フレーム数で表される。各キーストロークはグラフ内に垂直線で示されている。水平加速度変数はユーザの意図を解釈するのに特に有用である。例えば、D1S1とD1S2との間の水平加速度の不一致は特に興味深い。例えば、J−Y順序の間、グラフは前進上昇リーチを確かめるシグネチャを示す。これは、例えばJ−M順序と対照的で、そのシグネチャは上昇後退運動を示す。
図10Iにおいて、ユーザの右手のコア、ユーザの右手のDISI及びユーザの右手のDIS2の各々に関する垂直距離が示されている。これらの構成要素の各々の垂直距離(フィート単位で表される)は時間の関数としてプロットされ、画像フレーム数で表される。各キーストロークはグラフ内に垂直線で示されている。図に示すように、前記文字列のタイプ中、コアの垂直距離は比較的に一定であるが、部分DIS1及びD1S2は各キーストライク前に垂直方向に上昇し、実際のストライク中に垂直方向に低下する。このグラフ中のD1S1とD1S2との不一致は、またも、J−M順序ではD1S2変数がスパイクを示すのに対して、J−Y順序では前方左運動を示すことにある。
【0110】
図10Jにおいて、ユーザの右手のコア、ユーザの右手のDISI及びユーザの右手のDIS2の各々に関する垂直速度が示されている。これらの構成要素の各々の垂直速度(フィート/秒単位で表される)は時間の関数としてプロットされ、画像フレーム数で表される。各キーストロークはグラフ内に垂直線で示されている。図に示すように、D1S1とD1S2の関係はキー毎にユニークである。例えば、J−Y順序の間はDIS1がD1S2より大きな垂直速度になるが、J−M順序の間は反対になる。同様に、J−J順序の間はD1S1とD1S2との間に非常に密接な鏡映運動を生じる。
【0111】
図10Kにおいて、ユーザの右手のコア、ユーザの右手のDISI及びユーザの右手のDIS2の各々に関する垂直加速度が示されている。これらの構成要素の各々の垂直加速度(フィート/秒/秒単位で表される)は時間の関数としてプロットされ、画像フレーム数で表される。各キーストロークはグラフ内に垂直線で示されている。図に示すように、コアの垂直加速度は前記文字列をタイプしている間比較的に一定であるが、D1S1及びD1S2の垂直加速度は、各キーが打たれるタイミングでスパイクを生じる。
【0112】
上記のグラフは単一センサの2Dパースペクティブを示す。この2D動きデータと等価な3Dデータは、例えば参照することにより本明細書に組み込まれる参考文献に開示されている既知のアルゴリズムを用いて計算することができる。
【0113】
装置100は、いつどこでキーストライクが起こるかを決定するために、上記の1つ以上の動き変数及び/又は他の種々の情報を用いることができる。いくつかの実施形態では、装置100は、現在のストライク実行指を次のストライクを開始する他の指から分離するために、最速移動指(例えば、最大の加速度及び/又は速度を有する指)を決定することができる。どのキーが打たれたか決定するために現在のストライク実行指の先端の対コア位置を計算することができる。例えば、ユーザの右手D1が現在のストライク実行指として分離される場合、どのキーがストライクされたかを決定するためにユーザの右手DIS1の対コア位置を決定することができる。右手D1S1が“J”位置からコア位置により近い位置にZ方向に、且つD1S2に向かってX方向に移動する場合、そのジェスチャーは“M”ストライクと解釈することができる。他の例として、右手D1S1が“J”位置から、コアからZ方向に同じ距離にあるがD1S2からX方向に離れる位置へ移動する場合、そのジェスチャーは“H”ストライクと解釈することができる。
【0114】
代わりに又は加えて、1つの手構成要素と別の手構成要素の相対的動きもストライクを分類するために分析することができる。例えば、いくつかの実施形態では、ストライク実行指の関節J2は、その指がZ方向に前方に移動するとき、Y方向に下がり、その指がZ方向に後方に移動するとき、Y方向に上昇する。これらの方法の各々はいくらかの固有のエラーを有するため、冗長性により殆どのエラーが除去されるようにシステムは両方の技術を使用することができる。
【0115】
このシステム全体を通して、誤ストライク(例えばユーザが「コンサートムーバ(concert mover)」であるときに生じ得る)を除去するために確率ベースアルゴリズムを利用することができる。
【0116】
ストライクが起こるときを決定するために速度のみを監視する従来のシステムと異なり、装置100はもっと正確なストライク検出を得ることができる多変量アプローチを使用できる。特に、装置100におけるストライクの分類は、ユーザの手の様々な構成要素の加速度、様々なタイピングスタイル間で比較的一貫したシグネチャを有する傾向がある運動パラメータ、及び手のサイズ又は形に少なくとも部分的に基づいて決定することができる。いくつかの実施形態では、分類モジュールは、どのキーがストライクされるかを角変位、加速度、線形速度及び垂直距離に基づいて決定することができる。
【0117】
本教示による1つ以上の装置で発生されるデータは、同じ又は異なる分類モジュールとともに分類システムを生成するために使用することができる。一例として、ユーザの特定の動作に基づいて特定のユーザの予定の入力を単に識別するのではなく、本分類システムは、一般的なユーザ入力のデータウェアハウスを生成し、特定の行動の汎用パターンを認識する機能を連続的に向上し、本明細書において別に述べたように解剖学的規則を決定し精密化し、及び/又は校正されてないユーザの分類を向上することができるようにする。一例として、本分類システムは、未知のユーザの意図するユーザ入力を確実に分類するために、広範囲のユーザに亘って現れる典型的なキーストロークに基づく情報で満たすことができる。
【0118】
[強度評価モジュール]
装置100は取得したセンサデータの品質を連続的に又は間欠的に監視する強度評価モジュールも含むことができる。強度評価モジュールが、検出する強度が十分に弱いことを検出するとき(例えば、ユーザの手が、いくつかの指又は部分が他の指又は部分で覆い隠されるように、又はセンサ102,104の範囲を超えるように位置するとき)警報を発し、ユーザに手を置きなおす又は装置100に近づけるように催促することができる。
【0119】
強度評価モジュール328は、上で述べたようにユーザにより定義されたカスタムジェスチャーの信頼度を評価するために使用することもできる。強度評価モジュール328はカスタムジェスチャーを他の記憶ジェスチャーと比較して各カスタムジェスチャーが十分にユニークであることを確かめ、追加のエラーの可能性を回避することもできる。計算された強度評価は顧客サービス環境において装置100のトラブルシュートのため又は装置100を使用するのが難しいユーザの支援のために使用することもできる。計算された強度評価のこの設定での使用は、代表的な顧客サービスのために他のより機密な情報、例えば固有の手の寸法又はセキュリティモジュール314で使用する他の特性を暴露する必要を不要にし得る。
【0120】
[アダプタビリティモジュール]
装置100はアダプタビリティモジュール330も含むことができる。アダプタビリティモジュール330は装置100の機能を基本キーボード入力モード、数字パッド入力モード及びマウス入力モードを超えて拡張することができる。例えば、アダプタビリティモジュール330はカスタマイズした意味を様々なジェスチャー、テンプレート、又はカスタムパッドに指定することをユーザに可能にし、カスタマイズした意味の各々は上述したように強度評価モジュール328により評価し且つ又ジェスチャーライブラリ310により記憶することができる。言い換えれば、アダプタビリティモジュール330は標準入力モードの代わりに又は加えて、カスタムモード(例えば、QWERTY配列でないキーボード、外国語ベースのキーボード)を定義することをユーザに可能にする。これによりユーザはカスタムキーボード、例えば記号、機能、キー、マクロ又は文字を異なる言語で定義することができる。カスタムパッドはカスタムパッド入力モードを入力することにより評価することができ、カスタム入力モードはいくつかの実施形態では数字パッド入力モードと反対のジェスチャーで示すことができる。例えば、利き手の前方及び/又は僅かに外側への移動が数字パッド入力モードへの移行に有効である場合、利き手でない手の前方及び/又は僅かに外側への移動はカスタムパッド入力モードに有効とすることができる。アダプタビリティモジュール330はまた、ユーザがテンプレート上に定義されたキー又はボタンに、又は標準入力モードから逸脱しない範囲で実行可能な固有のジェスチャーにカスタムな意味を指定することを可能にする。従って、ユーザはテンプレートが1つ以上の汎用文字を含むように、又は例えば
図8Dに示すように、特定の入力又は機能をカスタムジェスチャー又は入力パッドに指定するようにテンプレートをカスタマイズすることができる。例えば、プログラム可能な固定キーを有するテンプレートは特定の機能(例えば、ピアノキーボードの所定の音符、ページアップ、汎用作業機能など)を指定することができる。テンプレートはテンプレート上のユーザ定義域によりそれらの機能に関する書き込み済み又は印刷済みリファレンスのみでカスタマイズすることもできる。
【0121】
様々な態様では、アダプタビリティモジュール330は、分類モジュールによる装置の機能及び/又は様々なジェスチャーの解釈を、例えば装置が動作する環境などの様々なパターンに基づいて変化させることができる。いくつかの実施形態では、アダプタビリティモジュール330は、ユーザが特定の環境又は場所で一般に使用する機能のタイプをプロセッサに知らせるタグを識別することができる。一例として、(例えば、ディジタルデータ処理システムが既知の又は安全な無線ネットワークを検出することができないことにより)装置の現在地が公共の場であると識別される場合には、アダプタビリティモジュール330はプロセッサにセキュリティ設定を変更するように知らせるタグを発生する。例えば、装置が公共の場にあると識別される場合には、アダプタビリティモジュール330は、ユーザの識別子を、例えば作業空間内のジェスチャーによるユーザの行動及び/又は解剖学的特徴に基づいて連続的に監視することを指示することができる。同様に、データ処理システムにより操作される特定のオブジェクト又はドキュメントが特に機密である場合には、アダプタビリティモジュール330はセキュリティモジュールによる監視を増強するように構成することができる。
【0122】
更に、特定の環境で使用される一般的な機能及び/又はジェスチャーの識別を支援するためにタグを使用することができる。一例として、装置の現在地が(例えば、「ホーム」無線ネットワークの識別又は特定の位置を識別するシステムの検出により)ユーザ宅又は特定の位置にあると識別される場合には、ユーザの特定の動きはユーザがオフィスにいると識別される場合とは相違して解釈され得ることを指示するためにユーザ又は管理者が規則を作ることができる。例えば、オフィスの会計係は、左手の所定のジェスチャーは汎用機能キーと関連するという規則をもつことができるが、自宅での同じ動きは異なる機能と解釈されるようにセットすることができる。例えば、キッチンでの会計係の左手のジェスチャーは代わりにレシピのリストを持ってくると解釈することができる。
【0123】
[方法]
装置100を動作させる一つの模範的な方法が
図11のフローチャートに概略的に示されている。本明細書に開示する様々な方法がフローチャートに関連して示されているが、このようなフローチャート又はその説明により暗示される方法のステップの順序はこれらのステップをその順序で実行する方法を限定するものと解釈されるべきではない。むしろ、本発明明細書に開示する方法の各々の様々なステップは様々な順序で実行することができる。更に、図示のフローチャートは単なる模範的な実施形態であり、追加のステップを含む又は図示のものより少ないステップを含む他の方法も本発明の範囲に含まれる。
【0124】
図に示すように、本方法はステップS1000における装置のパワーオンから始まり、その後に初期化ステップS1002が続く。初期化ステップ1002中に、ユーザは手を作業空間内に置き、この時点で装置はユーザの様々な属性、例えばユーザの手、指、指関節、指節、指爪などのサイズ、位置、及び/又は角度、を測定する。この情報に基づいて、ユーザプロファイルモジュール302によりプロファイルが生成され、必要に応じ記憶される。
【0125】
次に、動作はステップS1004に進み、ここでユーザを認証するために初期化ステップS1002中に生成されたプロファイル情報が使用される。このステップ中に、セキュリティモジュール314が取得したプロファイル情報を正規のユーザと関連する一組以上の記憶プロファイル情報と比較する。取得したプロファイル情報が正規のユーザのプロファイル情報と一致する場合、動作はステップS1006に進む。そうでなければ、装置100は無許可ユーザによる使用を防止するためにロックされる。上述したように、セキュリティのために比較されたプロファイル情報はユーザの行動特性のみならずユーザの手の物理的属性も含むことができる。セキュリティパラメータの機密性はユーザ又は管理者が調整することができる。
【0126】
ステップS1006において、向き計算モジュール304が装置100のセンサ102,104に見える各手のコア位置を計算し始める。コア位置及びコア位置とユーザの手の様々な構成要素とのなす角度を用いて、向き計算モジュール304は互いに対する及び装置100に対する手の位置及び向きを決定する。
【0127】
ステップS1008において、動き計算モジュール324が第1のセンサ102からのデータと第2のセンサ104からのデータを比較することによって作業空間内の各指についてより信頼できるX,Y及びZ値を決定する。
【0128】
ステップS1010において、動き計算モジュール324がセンサデータの連続する画像フレーム又はスナップショットを比較することによって作業空間106内の1つ以上の手、指又は部分についてX,Y及びZ方向の動きを示すデータストリームを発生する。模範的な動きデータは垂直距離、垂直速度、垂直加速度、水平距離、水平速度、水平加速度、角変位、角速度、角加速度などを含む。
【0129】
ステップS1012において、モード選択モジュール308はユーザがどの動作モードを望むか決定し、それに応じて可能な出力の母集団を設定する。
【0130】
ステップS1014において、分類モジュール326がステップS1006〜S1012で発生されたデータを取り込んでユーザジェスチャーを「キー」ストローク、マウス移動、数字パッド入力などとして解釈する。ジェスチャーが分類されると、対応する出力がステップS1016において発生され、装置100が結合された1つ以上のディジタルデータ処理システムに供給される。
【0131】
ステップS1006〜S1016はユーザジェスチャー用の作業空間を監視するために連続的に又は間欠的に実行し(必ずしも同じ速度又は同じ順序である必要ない)、ディジタルデータ処理システム用の対応する出力を生成する。
【0132】
以上から見て、本明細書に開示する方法及び装置はユーザを従来の入力装置の制約から解放し得ることが理解されよう。ユーザは本技術を苦も無く直感的に快適に効率的に操作できる。本明細書に開示する方法及び装置は様々な健康上の利点も提供する。「動き回っている」ユーザは余分な機器を持ち歩く必要がなくなり、開示の方法及び装置で許される手の向きの自由はいくつかの人間工学的な利益をもたらすことができる。
【0133】
以上から見て、本明細書に開示する方法及び装置はセキュアシステムへのアクセスを許可する前の初期ゲート機能を提供するのみならず、セキュリティ機能をデータと直接結合し、保護されたデータが操作されるとき、ユーザの正当性を繰り返し、間欠的に又は連続的に確かめることによって安全を保とうとするユニークなセキュリティ上の利益をもたらすこともできる。セキュリティ機能は連続的に提供することができ、適切な場合に、同時レベルのセキュリティを提供することができる。
【0134】
本発明は特定の実施形態を参照して記載したが、記載した発明の概念の精神及び範囲内において多くの変更が可能である。従って、本発明は記載した実施形態に限定されず、以下の請求項の言葉で特定される全範囲を包含するものである。
[17]ディジタルデータ処理システムのユーザを認証する方法であって、
少なくとも1つのセンサを用いて作業空間内のユーザの1つ以上のパラメータを示すデータを発生させるステップ、
前記データに基づいて前記作業空間内の前記ユーザにより実行されたジェスチャーを示すジェスチャー情報を決定するステップ、及び
前記ユーザが前記ディジタルデータ処理システムの正規のユーザであるかどうかを決定するために前記ジェスチャー情報を所定のジェスチャー情報と比較するステップ、を含む
方法。
[18]前記ジェスチャー情報は、コードの入力中の前記ユーザの手の配置の変化を含む、[17]に記載の方法。
[19]前記ジェスチャー情報は、コード入力中の前記ユーザの手の動きの速度、リズム又はスタイルを含む、[17]に記載の方法。
[20]手が前記作業空間に入る度に、その手が前記ディジタルデータ処理システムの正規のユーザのものであるかを決定するために、前記決定及び比較ステップを繰り返すステップを更に含む、[17]に記載の方法。
[21]前記ユーザが前記ディジタルデータ処理システムで保護されたデータの操作中正規のユーザであるかどうかを決定するために、前記決定及び比較ステップを繰り返すステップを更に含む、[17]に記載の方法。
[22]前記少なくとも1つのセンサからのデータに基づいてユーザのパラメータを決定するステップ、及び前記ユーザが前記ディジタルデータ処理システムの正規のユーザであるかどうかを決定するために前記決定したパラメータを所定の値と比較するステップ、を更に備える、[17]に記載の方法。
[23]前記パラメータは、前記ユーザの一部分の解剖学的形状、前記ユーザの一部分の色、及び前記ユーザの表面テクスチャの少なくとも1つを含む、[22]に記載の方法。
[24]ユーザがディジタルデータ処理システムの正規のユーザであるかどうかを決定するシステムであって、作業空間内でユーザにより実行されたジェスチャーを検出し、検出したジェスチャーを示すジェスチャー情報を発生する少なくとも1つのセンサ、及び前記発生されたジェスチャー情報を記憶媒体に記憶された所定のジェスチャー情報と比較し、前記発生されたジェスチャー情報が前記所定のジェスチャー情報と一致する程度に基づいて前記ユーザを正規のユーザであるかどうかを決定するプロセッサ、を備える、システム。
[25]前記プロセッサはユーザの手のランドマークを検出し、該ユーザの手のランドマークは、指、指部分、指形状、指関節、指爪、皮膚表面輪郭及び手表面のうちの少なくとも1つを含む、[24]に記載のシステム。
[26]前記複数のセンサは、前記ユーザにより実行されるジェスチャーを、前記複数のセンサとの物理的なユーザ接触を必要とすることなく検出するように構成されている、[24]に記載のシステム。
[27]前記プロセッサは、更に、前記ユーザの物理的特徴を検出し、検出した物理的特徴を前記記憶媒体に記憶された所定の特徴情報と比較する、[24]に記載のシステム。
[28]前記プロセッサは、前記ディジタルデータ処理システムで保護されたデータへのアクセスを付与する前に前記ユーザが正規のユーザであるかどうかを決定する、[24]に記載のシステム。
[29]前記プロセッサは、更に、前記ディジタルデータ処理システムで保護されたデータの操作中に前記ユーザが正規のユーザであるかどうかを決定するように構成されている、[24]に記載のシステム。