(57)【特許請求の範囲】
【請求項１】
光学的検出器を介して受信したジェスチャ・データから身体のジェスチャを自動的に検出するステップであって、
前記身体が複数の結合を備え、
前記ジェスチャ・データが、時間及び空間の点での前記身体の瞬間的な状態についての絶対位置データであり、
該位置データが３次元空間のデータであり、
前記ジェスチャ・データを集約し、前記ジェスチャ・データのみを用いて前記ジェスチャを識別することを含む
ステップと、
前記ジェスチャを、ジェスチャ信号に変換するステップであって、
文字列によって各ジェスチャを表すジェスチャ語彙を用いることにより、前記ジェスチャの情報を変換することを含み、
前記文字列の各位置が前記複数の結合の内の特定の結合に対応し、
前記文字列の各文字は、該文字が対応する前記結合のポーズを表す、
ステップと、
前記ジェスチャ信号に応答して、コンピュータに結合されたコンポーネントを制御するステップと、
を含む方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この特許出願は、参照によりその全体が本明細書に組み込まれている、２００５年２月８日に出願された米国仮特許出願第６０／６５１２９０号、「ジェスチャベースの制御システム」の優先権を主張するものである。
【０００２】
本発明は、一般には、コンピュータシステムの分野に関し、より詳細には、ジェスチャベースの制御システムのためのシステムおよび方法に関する。
【背景技術】
【０００３】
ユーザは、マウス、キーボード、ジョイスティック、十字キーなどの入力デバイスを使用して、ディスプレイ上のウィンドウ内のデータまたは画像を操作し、あるいはウィンドウに関連するメニューまたは関連するプログラムから操作を選択することによってコマンドを入力し、コンピュータシステムと対話し得る。こうした入力装置は、カーソルなどのグラフィカルなオンスクリーンポインタを置くために使用され得る、位置変換装置として動作することもできる。カーソルは、たとえば、修正される文字を示し、あるいはデータが入力され、または操作が実施される位置を示すように機能する。何らかの形または外観のカーソルが一般に、コンピュータディスプレイ上に存在する。ユーザによる入力装置の操作は、カーソルの対応する動きをもたらす。したがって、たとえばマウスまたは他の入力装置が動くと、カーソルが同じ方向に動くことになる。
【０００４】
カーソルは、その機能およびコンピュータシステムの状態により異なる外観を有し得る。たとえば、コンピュータディスプレイ上のテキストのフィールド内に置かれるとき、カーソルは、「Ｉビーム」、またはブリンクする縦線の外観を有し得る。テキストフィールドのカーソルの位置は、ユーザによって一般にはキーボードを介して入力される次の文字の位置を示す。カーソルは、その機能に応じた他の外観を有し得る。描画またはペインティングのプログラムでは、カーソルは、ペイントブラシ、鉛筆、消しゴム、バケツまたは他の図形として表され得る。
【０００５】
カーソルは、ユーザ選択可能な操作の上に置かれ、またはウィンドウなどのグラフィック要素を選択するために使用されるときに、矢印またはポインタの形をとることもできる。カーソルで所望の操作を選択し、アクティブにするために、それは、操作のグラフィックまたはテキスト表現の上に置かれ得る。操作を行うために、マウス入力装置上に位置するボタンが押下されかつ／または解放され得る。ユーザは、視覚的なフィードバックによって、通常はコンピュータのディスプレイの画像の何らかの変化の形で、実行操作の受入れについての通知を受ける。使用中のプログラムのうちの１つまたは複数が一般に、この視覚的な応答を生成する。これらのプログラムは、選択された操作に応答して、表示画像を更新させる描画コマンドを生成する。
【０００６】
従来技術のシステムの欠点は、入力装置がしばしば、ただ単に、装置であるということである。ユーザは、有線または無線のマウス、あるいは他の入力装置を有し、選択、位置変換、アクティブ化および他の入力機能を管理するためにその装置を使用することを求められる。これらの物理装置の使用はしばしば、自然または直覚的ではない。別の欠点は、それぞれ異なる機能が実施され得るように、入力装置のコンテキストを変更するために特定のステップを経る必要性である。
【０００７】
非常に大きいディスプレイが普及するにつれて、従来技術の入力装置およびシステムのさらなる欠点が明らかになる。マウスを使用して、たとえば大きいディスプレイにわたりカーソルの位置を変換しようとする場合、ユーザはしばしば、大きいディスプレイの一部であってもユーザがカーソルをドラッグできるようにするには、マウスを持ち上げ、それをマウス表面に置かなければならない。これは、無駄な、不自然な運動である。
【０００８】
これらの問題への解決策を提供しようといくつかの従来技術の試みが行われてきた。従来技術の１つの解決策は、ユーザの手にグローブを使用することである。これらのグローブは、ユーザの１つまた複数の手を入力装置にすることを意図している。一実施形態では、入力グローブは、コンピュータシステムに、配線接続される。この解決策には、事実上ユーザをその場所に縛り付け、コンピュータシステムの近くにあること、および動き範囲の制約を要するという欠点がある。他の場合では、グローブは無線である。しかし、こうした無線の実装は、グローブ用の独立した電源を必要とする。電源の充電が必要であるとき、グローブは使用され得ない。
【発明の開示】
【発明が解決しようとする課題】
【０００９】
このシステムは、表示画面または画面上に提示された、視覚的に提示された様々な要素へのジェスチャインタフェースを提供する。
【課題を解決するための手段】
【００１０】
このシステムのオペレータは、一実施形態では、オペレータの手を使用して、「ジェスチャコマンド」の連続した流れを出すことによって、これらの要素をナビゲーションし操作する。他の実施形態では、ナビゲーションおよび制御を提供するために、ユーザの頭、足、腕、脚またはユーザの全身が使用され得る。ジェスチャ語彙は、片手または両手で適切な「ポーズ」を形成することによって即座の一度限りの動作がもたらされる「瞬間」コマンドと、オペレータが、リテラル「ポインティング」（ｌｉｔｅｒａｌ  ｐｏｉｎｔｉｎｇ）ジェスチャによって画面上の要素を直接参照し、相対または「オフセット」ジェスチャによってナビゲーション操作を実施する「空間」コマンドとを含む。全体的または直接の空間ジェスチャのために使用されるポインティングジェスチャに加えて、本発明は、ＸＹＺ空間の相対的な空間ナビゲーションジェスチャの別のカテゴリを認識することもできる。この動作カテゴリは、ＸＹＺ技術と呼ばれることがある。高いフレームレートを維持し、オペレータのジェスチャの解釈においてほぼ感知不可能な遅れを保証し、注意深く設計された空間メタファと、容易に明らかな「直接操作」機構の両方を使用することによってこのシステムは、オペレータと、表される情報＆プロセスとの間の鮮明な「認知結合」を提供する。このシステムは、ユーザの手を識別する能力について企図している。この識別システムは、グローブ、またはその上に特定の表示が備えられたグローブの形であってもよく、あるいはユーザの手の上に認識可能な表示を設けるための任意の適切な手段であってもよい。カメラのシステムは、ユーザの手の位置、向きおよび動きを検出し、その情報を実行可能なコマンドに変換することができる。
【発明を実施するための最良の形態】
【００１１】
ジェスチャベースの制御システムのためのシステムおよび方法について述べられる。以下の説明では、本発明についてのより完全な理解を提供するために、複数の特徴について詳細に述べられる。本発明は、これらの具体的な詳細なしに実施され得ることが明らかである。他の場合では、よく知られている特徴については、詳細には述べられていない。
【００１２】
システム
本発明の一実施形態のブロック図が、図１に示されている。ユーザは、並んだカメラ１０４Ａ〜１０４Ｄの視野内で、彼の手１０１および１０２を見つける。カメラは、指ならびに手１０１および１０２の位置、向きおよび動きを検出し、プリプロセッサ１０５への出力信号を生成する。プリプロセッサ１０５は、カメラ出力をジェスチャ信号に変換し、このジェスチャ信号は、システムのコンピュータ処理装置１０７に供給される。コンピュータ１０７は、入力情報を使用して、画面上の１つまたは複数のカーソルを制御させるコマンドを生成し、ビデオ出力をディスプレイ１０３に供給する。
【００１３】
このシステムは、入力として単一ユーザの手を含んで示されているが、本発明は、複数のユーザを使用して実施されることもできる。さらに、このシステムは、手ではなく、または手に加えて、頭、足、脚、腕、肘、膝などを含めて、ユーザの体の１つまたは複数の任意の部分をも追跡し得る。
【００１４】
示された実施形態では、ユーザの手１０１および１０２の位置、向きおよび動きを検出するために、４台のカメラが使用されている。本発明は、本発明の範囲または精神から逸脱せずに、より多くのまたは少ないカメラと共に使用され得ることを理解されたい。さらに、カメラは、この例示的な実施形態では対称的に配置されているが、本発明では、こうした対称性の要件はない。本発明では、ユーザの手の位置、向きおよび動きを可能にする任意の数のカメラ、またはカメラの位置決定が使用され得る。
【００１５】
本発明の一実施形態では、使用されるカメラは、グレースケール画像をキャプチャすることができるモーション・キャプチャ・カメラである。一実施形態では、使用されるカメラは、Ｖｉｃｏｎ  ＭＸ４０カメラなど、Ｖｉｃｏｎ社製のものである。このカメラは、カメラ上の処理を含み、１０００フレーム／秒で画像をキャプチャすることができる。モーション・キャプチャ・カメラは、マーカを検出し、マーカの位置を突き止めることができる。
【００１６】
述べられた実施形態では、カメラは、光検出のために使用される。他の実施形態では、カメラまたは他の検出器は、電磁気、静磁気、ＲＦＩＤまたは他の任意の適切なタイプの検出のために使用され得る。
【００１７】
プリプロセッサ１０５は、３次元空間点の再構成および骨格点（ｓｋｅｌｅｔａｌ  ｐｏｉｎｔ）のラベル付けを生成するために使用される。ジェスチャ変換器１０６は、３Ｄ空間的情報およびマーカ動き情報をコマンド言語に変換するために使用され、このコマンド言語は、ディスプレイ上のカーソルの位置、形状および動作を更新するためにコンピュータプロセッサによって解釈されることができる。本発明の代替の一実施形態では、プリプロセッサ１０５とジェスチャ変換器１０６は、単一の装置へと組み合わされることができる。
【００１８】
コンピュータ１０７は、Ａｐｐｌｅ社、Ｄｅｌｌ社、または他の任意の適切なメーカによって製造されたものなど、任意の汎用コンピュータであり得る。コンピュータ１０７は、アプリケーションを実行し、ディスプレイ出力を供給する。さもなければマウスまたは他の従来技術の入力装置から来るカーソル情報は、ここではジェスチャシステムから来ている。
【００１９】
マーカ・タグ
本発明は、システムがユーザの手を見つけ、それが左手を見ているか、それとも右手を見ているか、またどの指が見えるかを識別できるように、ユーザの１つまたは複数の指の上のマーカ・タグを使用することを企図している。これは、システムがユーザの手の位置、向きおよび動きを検出することを可能にする。この情報は、複数のジェスチャがシステムによって認識され、ユーザによってコマンドとして使用されることを可能にする。
【００２０】
一実施形態のマーカ・タグは、（この実施形態では、人間の手の上の様々な位置に付けるのに適している）基板と、基板の表面上に一意の識別パターンで配列された個別のマーカとを含む物理タグである。
【００２１】
マーカおよび関連する外部感知システムは、その３空間位置の正確で、精密で、迅速で、連続した取得を可能にする任意の領域（光学、電磁気、静磁気など）で動作し得る。マーカ自体は、（たとえば構造化された電磁パルスの放射によって）能動的に動作することも、あるいは（たとえばこの実施形態の場合のように光学的再帰反射型であることよって）受動的に動作することもある。
【００２２】
それぞれの取得フレームで、検出システムは、（カメラまたは他の検出器の視野内の）機器を備えた作業領域ボリューム内に現在あるタグからのすべてのマーカを含む、回復された３空間位置の集合体の「雲」（ａｇｇｒｅｇａｔｅ  ｃｌｏｕｄ）を受信する。各タグ上のマーカは、十分な数があり、検出システムが以下のタスクを実施することができるように一意のパターンで配列される。（１）回復された各マーカ位置が、単一のタグを形成する点の唯一の下位集合に割り当てられるセグメント化、（２）点のセグメント化された各下位集合が特定のタグとして識別されるラベル付け、（３）識別されたタグの３空間位置が回復される位置決め、および（４）識別されたタグの３空間の向きが回復される向き決定。タスク（１）および（２）は、下記に述べられ、また図２の一実施形態で示されるように、マーカパターンの特定の性質によって可能となる。
【００２３】
一実施形態のタグ上のマーカは、通常のグリッド位置のサブセットに付けられる。この実施形態の場合のように、基礎をなすこのグリッドは、従来のデカルト式の種類のものであってもよく、あるいは、そうではなく、他の何らかの通常の面モザイク（たとえば三角形／六角形／タイル配列）のものであってもよい。グリッドの目盛りおよび間隔は、隣接したグリッド位置が混同される可能性が低くなるように、マーカ感知システムの既知の空間分解能に関して確立される。すべてのタグについてのマーカパターンの選択が、以下の制約を満たすべきである：タグのパターンが、回転、変換またはミラーリングのいずれかの組合せによって、他のいずれかのタグのパターンのそれと一致するものではない。マーカの多様性および配列はさらに、指定されたいくらかの数の構成要素マーカの損失（または閉塞）が許容されるように選択され得る。いずれかの任意の変換の後、損なわれたモジュールを他のいずれかのモジュールと混同する可能性は依然として低くあるべきである。
【００２４】
次に図２を参照すると、複数のタグ２０１Ａ〜２０１Ｅ（左手側）および２０２Ａ−２０２Ｅ（右手）が示されている。それぞれのタグは長方形であり、この実施形態では、５×７グリッド配列からなる。長方形の形状は、タグの向きを決定するのに役立つように、またミラー複製の可能性を減少させるように選択される。示された実施形態では、それぞれの手の各指についてタグがある。一部の実施形態では、１つの手につき１つ、２つ、３つまたは４つのタグを使用するので十分であり得る。それぞれのタグは、異なるグレースケールまたは色の濃淡の境界線を有する。この境界内には、３×５グリッド配列がある。マーカ（図２の黒点によって表される）は、情報を提供するために、グリッド配列内の特定の点に配置される。
【００２５】
資格情報（ｑｕａｌｉｆｙｉｎｇ  ｉｎｆｏｒｍａｔｉｏｎ）は、それぞれのパターンを「共通の」かつ「一意の」サブパターンにセグメント化することによって、タグのマーカパターンで符号化され得る。たとえば、この実施形態は、２つの可能な「境界パターン」、長方形境界についてのマーカの分布を指定する。タグの「ファミリー」がこのように確立され、したがって、左手用のタグは、タグ２０１Ａ〜２０１Ｅに示されるように、同じ境界パターンを使用し、右手の指に付けられたものには、タグ２０２Ａ〜２０２Ｅに示されるように、異なるパターンが割り当てられ得る。このサブパターンは、タグのすべての向きにおいて、左パターンが右パターンと区別され得るように選択される。示された例では、左手パターンは、各隅、および隅のグリッド位置から２番目のマーカ上にマーカを含む。右手パターンは、２つの隅だけにマーカを有しており、また隅でないグリッド位置に２つのマーカを有している。パターンの検査によって、４つのマーカのうちのいずれか３つのマーカが目に見える限り、左手パターンは、左手パターンから明確に区別できることが明らかになる。一実施形態では、境界の色または濃淡が、利き手の指標として使用されることもできる。
【００２６】
それぞれのタグは、もちろん、一意の内部のパターンを依然として使用しなければならず、マーカは、そのファミリーの共通の境界内に分散される。示された実施形態では、内部グリッド配列内の２つのマーカが、指の回転または向きによる重複なしに１０個の指のそれぞれを一意に識別するのに十分であることが分かっている。マーカのうちの１つが閉塞されても、パターンの組合せ、およびタグの利き手によって一意の識別子がもたらされる。
【００２７】
この実施形態では、グリッド位置は、その意図された位置で個々の再帰反射マーカを付ける（手動の）作業に役立つように、硬い基板上に視覚的に存在する。これらのグリッドおよび意図されたマーカ位置は、基板上にカラーインクジェットプリンタによって文字通り印刷され、この基板はこの場合、（最初は）柔軟な「シュリンクフィルム」のシートである。それぞれのモジュールは、シートから切り取られ、次いで炉で焼かれ、その熱処理の間、それぞれのモジュールは、正確で反復可能な収縮を経る。この手順の後に続く短い間隔の間、冷却タグは、たとえば指の縦の曲線をたどるようにわずかに形作られてもよく、その後、基板は、適切に硬くなり、マーカが、示されたグリッド点に付けられ得る。
【００２８】
一実施形態では、マーカ自体は、粘着性または他の何らかの適切な手段によって基板に付けられた小さい反射球体など、３次元のものである。マーカの３次元性は、２次元マーカに比べて、検出および位置決めに役立ち得る。しかし、本発明の精神および範囲から逸脱せずに、いずれもが使用され得る。
【００２９】
現在、タグは、ベルクロまたは他の適切な手段によって、オペレータが着用するグローブに付けられ、または柔らかい両面テープを使用してオペレータの指に交互に直接付けられる。第３の実施形態では、硬い基板をすべて不要にし、オペレータの指および手の上に個々のマーカを直接付け、または「塗る」ことが可能である。
【００３０】
ジェスチャ語彙
本発明は、手のポーズ、向き、手の組合せ、および向きの混合からなるジェスチャ語彙を企図している。表記言語もまた、本発明のジェスチャ語彙でポーズおよびジェスチャを設計し伝達するために実装される。ジェスチャ語彙は、運動学的な結合の瞬間的な「ポーズ状態」を簡潔なテキストの形で表すための体系である。当該の結合は、生物学的（たとえば人間の手、または人間の体全体、またはバッタの脚、またはキツネザルの多関節の背骨）であることも、あるいはそうではなく、非生物学（たとえばロボットアーム）であることもある。いずれの場合も、結合は、単純であっても（背骨）、分岐していてもよい（手）。本発明のジェスチャ語彙体系は、任意の特定の結合について、一定の長さの列を確立し、次いで、列の「文字位置」を占有する特定のＡＳＣＩＩ文字の集合体は、その結合の瞬間的状態または「ポーズ」についての一意の描写である。
【００３１】
手のポーズ
図３は、本発明を使用するジェスチャ語彙の一実施形態の手のポーズを示している。本発明では、手の５つの指のそれぞれが使用されると仮定する。これらの指は、ｐ−小指、ｒ−薬指、ｍ−中指、ｉ−人差し指およびｔ−親指としてのコードである。指および親指についての複数のポーズが、図３に定義され、示されている。ジェスチャ語彙列は、結合（この場合では指）の表現可能な各自由度について単一の文字位置を確立する。さらに、こうした各自由度は、その完全な動き範囲が、その文字列位置で有限数の標準ＡＳＣＩＩ文字のうちの１つを割り当てることによって表現され得るように離散化される（または「量子化される」）と理解される。これらの自由度は、体に特有の原点、および座標系（手の甲、バッタの体の中心、ロボットアームのベースなど）に関して表現される。したがって、結合の位置および向きを、よりグローバルな座標系で「全体として」表現するために、少数の追加のジェスチャ語彙文字位置が使用される。
【００３２】
やはり図３を参照すると、複数のポーズが、ＡＳＣＩＩ文字を使用して定義され、識別されている。ポーズのうちのいくつかは、親指と非親指の間で分割される。本発明は、この実施形態では、ＡＳＣＩＩ文字自体がポーズを暗示するような符号化を使用する。しかし、暗示的かどうかに関係なく、ポーズを表すために任意の文字が使用され得る。さらに、本発明では、表記列用にＡＳＣＩＩ文字を使用する要件はない。任意の適切なシンボル、数字または他の表現が、本発明の範囲および精神から逸脱せずに使用され得る。たとえば、表記は、所望であれば、１つの指ごとに２ビットを使用してもよく、あるいは要望に応じて、他の任意の数のビットを使用してもよい。
【００３３】
丸めた指は文字「＾」によって表され、丸めた親指は、「＞」によって表される。まっすぐな指または上を向いた親指は「１」で示され、傾いたものは「＼」または「／」で示される。「−」は、まっすぐ横を向いた親指を表し、「ｘ」は、面に向いた親指を表す。
【００３４】
これらの個々の指および親指の描写を使用して、相当な数（ｒｏｂｕｓｔ  ｎｕｍｂｅｒ）の手のポーズが定義され、本発明の方式を使用して書かれることができる。それぞれのポーズは、上述されたように、ｐ−ｒ−ｍ−ｉ−ｔの順序の５つの文字によって表される。図３は、複数のポーズを示しており、ここでは図示および例示のため、いくつかのポーズについて述べられている。平らに、また地面に対して平行に保たれた手は、「１１１１１」で表される。こぶしは、「＾＾＾＾＞」で表される。「ＯＫ」サインは、「１１１＾＞」で表される。
【００３５】
文字列は、示唆的な文字を使用する場合、簡単明瞭に「人間が読むことができる」機会を提供する。それぞれの自由度を示す可能な文字列のセットは、迅速な認識および明らかな類似を考慮して一般に選択され得る。たとえば、縦線（「｜」）は恐らく、結合要素が「まっすぐ」であることを意味し、Ｌ字（「Ｌ」）は、９０度の曲げを意味することがあり、山記号（"＾"）は、急な曲げを示し得る。上述されたように、任意の文字または符号化が、要望に応じて使用され得る。
【００３６】
本明細書で述べられるようなジェスチャ語彙例を使用するどんなシステムもが、列の比較の高い計算効率の利益を享受し、指定されたいずれかのポーズの識別または探索は事実上、所望のポーズ列と瞬間的な実際の列との間の「列の比較」（たとえばＵＮＩＸの「ｓｔｒｃｍｐ（）」関数）になる。さらに、「ワイルドカード文字」の使用は、プログラマまたはシステム設計者に、追加の、よく知られている効率および効力を提供し、その瞬間的な状態が一致には無関係である自由度は、疑問符（「？」）として指定されることができ、追加のワイルドカードの意味が割り当てられ得る。
【００３７】
向き
指および親指のポーズに加えて、手の向きは、情報を表すことができる。グローバル空間の向きを表す文字が、透過的に選択されることもでき、文字「＜」、「＞」、「＾」および「ｖ」は、向きの文字の位置で生じるとき、左、右、上および下の考えを示すために使用され得る。図４は、手の向きの記述子、およびポーズと向きを組み合わせる符号化の例を示している。本発明の一実施形態では、２つの文字位置は、まず手のひらの方向を、次いで（指の実際の曲げに関係なく、それらがまっすぐであれば）指の方向を示している。これらの２つの位置について可能な文字は、向きの「体中心の」概念を表現し、「−」、「＋」、「ｘ」、「＊」、「＾」および「ｖ」は、内側、横方、前方（体から離れて前方に）、後方（体から離れて後方に）、頭方（上向き）および尾方である（下向き）を表現する。
【００３８】
本発明の表記方式およびその実施形態では、文字を示す５つの指のポーズの後に、コロン、次いで完全なコマンドポーズを定義するための２つの向きの文字が続く。一実施形態では、開始位置は、「ｘｙｚ」ポーズと呼ばれ、このポーズでは、親指がまっすぐ上を指し、人差し指が前方を指し、中指が人差し指に垂直で、ポーズが右手で行われるときは左を指す。これは、列「＾＾ｘｌ−：−ｘ」で表される。
【００３９】
「ＸＹＺの手」は、視覚的に提示された３次元構造の完全な６自由度のナビゲーションを可能にするために人間の手の幾何学を利用するための技術である。この技術は、オペレータの手の大量の変換および回転だけに依存し、したがってその指は原則として、所望の任意のポーズで保持され得るが、この実施形態では、人指し指が体から離れて指し、親指が天井の方を指し、中指が左右を指す、静的な構成が好まれる。したがって、３つの指は、（大まかにではあるが、全く明らかな目的により）３空間座標系、したがって「ＸＹＺの手」の互いに直交する軸を示す。
【００４０】
次いで、ＸＹＺの手のナビゲーションは、所定の「中立位置」にオペレータの体の前で保持された、上述のポーズの手、指に進む。３空間オブジェクト（またはカメラ）の３つの変換および３つの回転自由度へのアクセスは、以下の自然なやり方で行われる。（体の自然な座標系に関する）手の左右の動きが、計算のコンテキストのＸ軸に沿った動きをもたらし、手の上下の動きは、制御されたコンテキストのＹ軸に沿った動きをもたらし、（オペレータの体に向かう／そこから離れる）前後の手の動きは、コンテキスト内のｚ軸の動きをもたらす。同様に、人差し指のまわりのオペレータの手の回転は、計算コンテキストの向きの「回転」変更につながり、「ピッチ」および「偏揺れ」の変化は、それぞれ中指および親指のまわりのオペレータの手の回転によって同じように行われる。
【００４１】
本明細書では「計算コンテキスト」は、ＸＹＺ手の方法によって制御されるエンティティに言及するために使用されており、合成３空間オブジェクトまたはカメラのいずれかを示唆しているように見えるが、この技術は、実環境のオブジェクト、様々な自由度の制御、たとえば適切な回転アクチュエータを備えたビデオまたは動画カメラのパン／チルト／回転の制御に等しく有用であることを理解されたい。さらに、ＸＹＺ手のポーズによって与えられた物理自由度はいくらか、仮想領域内でも、それほど文字通りにはマッピングされないことがある。この実施形態では、ＸＹＺ手は、大きいパノラマディスプレイ画像へのナビゲーションアクセスを提供するためにも使用され、その結果、オペレータの手の左右および上下の動きは、画像のまわりの予想された左右または上下の「パニング」をもたらすが、オペレータの手の前後ろの動きは、「ズーミング」制御にマッピングする。
【００４２】
あらゆる場合において、手の動きと、引き起こされた計算上の変換／回転との間の結合は、直接的である（すなわち、オペレータの手の位置または回転オフセットが、何らかの線形または非線形関数を介して、計算コンテキストにおいてオブジェクトまたはカメラの位置または回転オフセットに１対１にマッピングする）ことも、または間接的である（すなわち、オペレータの手の位置または回転オフセットが、何らかの線形または非線形関数を介して、計算コンテキストにおいて位置／向きの第１のまたはより高次の派生物に１対１にマッピングする）こともあり、次いで、進行中の統合は、計算コンテキストの実際のゼロ次位置／向きの非静的な変化を生じさせる。この後者の制御手段は、自動車の「アクセスペダル」の使用に類似するものであり、このアクセスペダルでは、ペダルの一定のオフセットによって、多かれ少なかれ、一定の車両速度がもたらされる。
【００４３】
実環境のＸＹＺ手のローカル６自由度座標の原点の働きをする「中立位置」は、（１）（たとえば囲んでいる部屋に対して）空間内の絶対位置および向きとして、（２）オペレータの全体的位置および「方向」に関係なく、オペレータ自身に対して固定の位置および向きとして（たとえば、体の前の２０．３２ｃｍ（８インチ）、あごの下の２５．４ｃｍ（１０インチ）、および肩の面に沿って横方向になど）、または（３）（たとえば、ＸＹＺ手の現在位置および向きがこれ以降、変換および回転の原点として使用されるべきであることを示す、オペレータの「もう一方」の手によって実行されるジェスチャコマンドを使用して）オペレータの故意の２次動作を介して相互作用的に確立され得る。
【００４４】
ＸＹＺ手の中立位置に関する「移動止め」領域（または「デッドゾーン」）を、このボリューム内の動きが、制御されたコンテキスト内の動きにマッピングされないように提供することはさらに好都合である。
【００４５】
他のポーズには、以下が含まれる。
［｜｜｜｜｜：ＶＸ］は、手のひらが下に向き、指が前に向いた平手（親指が指に平行）である。
［｜｜｜｜｜：Ｘ＾］は、手のひらが前に向き、指が天井を向いた平手である。
［｜｜｜｜｜：−Ｘ］は、手のひらを体中心（左手の場合は右、右手の場合は左）に向き、指が前に向いた平手である。
［＾＾＾＾−：−Ｘ］は、単一の手による立てた親指である（親指が天井を指している）。
［＾＾＾｜−：−Ｘ］は、前に向けた銃の手振りである。
【００４６】
両手の組合せ
本発明は、単一の手のコマンド、ポーズ、ならびに両手を用いたコマンドおよびポーズを企図している。図５は、本発明の一実施形態の両手の組合せの例、および関連する表記を示している。第１の例の表記をよく見ると、「完全な停止」は、それが閉じた２つのこぶしを含むことを明らかにしている。「スナップショット」の例では、それぞれの手の親指および人差し指が伸びており、親指が互いの方を向き、ゴールポストの形のフレームを定義している。「ラダーおよびスロットルの開始位置」は、指および親指が上を向き、手のひらが画面に面している。
【００４７】
向きの混合
図６は、本発明の一実施形態の向き混合の一例を示している。示された例では、混合は、指ポーズの列の後に、向き表記の対を括弧内に囲むことにより表されている。たとえば、第１のコマンドは、すべてがまっすぐ向いた指位置を示している。向きコマンドの第１の対によって、手のひらがディスプレイに向かって平らとなり、第２の対は、画面に向かって４５度のピッチに回転する手を有する。この例では、混合の対が示されているが、本発明では、任意の数の混合が企図されている。
【００４８】
例示的なコマンド
図８は、本発明で使用され得る複数の可能なコマンドを示している。ここでの議論の一部は、ディスプレイ上のカーソル制御に関してであったが、本発明は、その活動に限定されない。実際、本発明は、画面上のありとあらゆるデータ、およびデータの一部、ならびにディスプレイの状態を操作することにおいて大きい応用性を有する。たとえば、コマンドは、ビデオメディアの再生中にビデオコントロールに取って代わるために使用され得る。コマンドは、休止、早送り、巻戻しなどのために使用され得る。さらに、コマンドは、画像のズームインおよびズームアウト、画像の向きの変更、任意の方向へのパニングなどのために実施され得る。本発明は、開く、閉じる、保存するなどのメニューコマンドの代わりに使用されることもできる。換言すると、想像され得るどんなコマンドまたは活動もが、手ジェスチャと共に実施されることができる。
【００４９】
操作
図７は、一実施形態の本発明の操作を示すフローチャートである。ステップ７０１で、検出システムは、マーカおよびタグを検出する。判断ブロック７０２で、タグおよびマーカが検出されたかどうか判断される。そうでない場合は、システムは、ステップ７０１に戻る。ステップ７０２でタグおよびマーカが検出される場合は、システムは、ステップ７０３に進む。ステップ７０３で、システムは、検出されたタグおよびマーカから、手、指およびポーズを識別する。ステップ７０４で、システムは、ポーズの向きを識別する。ステップ７０５で、システムは、検出された１つまたは複数の手の３次元空間位置を識別する。（ステップ７０３、７０４および７０５のいずれかまたはすべてが、単一のステップとして組み合わされ得ることに留意されたい。）
ステップ７０６で、情報は、上述のジェスチャ表記に変換される。判断ブロック７０７で、ポーズが有効であるかどうか判断される。これは、生成された表記列を使用して、単純な列の比較によって遂行され得る。ポーズが有効ではない場合は、このシステムは、ステップ７０１に戻る。ポーズが有効な場合は、このシステムは、ステップ７０８で、表記および位置情報データをコンピュータに送信する。ステップ７０９で、コンピュータは、ジェスチャに応答して適切な措置を決定し、ステップ７１０で、それに従ってディスプレイを更新する。
【００５０】
本発明の一実施形態では、ステップ７０１〜７０５は、カメラ上のプロセッサによって遂行される。他の実施形態では、処理は、所望であれば、システムコンピュータによって遂行されることができる。
【００５１】
解析および変換
このシステムは、基礎をなすシステムによって回復された低レベルのジェスチャの流れを「解析し」、「変換し」、解析され変換されたそれらのジェスチャを、幅広いコンピュータアプリケーションおよびシステムの制御のために使用されることができるコマンドの流れまたはイベントデータに変え得る。これらの技術およびアルゴリズムは、これらの技術を実装するエンジンと、エンジンの能力を利用するコンピュータアプリケーションを構築するためのプラットフォームを提供するコンピュータコードからなるシステムで実施され得る。
【００５２】
一実施形態は、コンピュータインタフェースにおいて人間の手の豊富なジェスチャの使用を可能にすることに焦点が当てられているが、（それだけに限らないが、腕、胴、脚および頭を含めて）体の他の部分、ならびにそれだけに限らないがカリパス、コンパス、柔軟な曲線近似器（ａｐｐｒｏｘｉｍａｔｏｒ）および様々な形のポインティングデバイスを含めて、様々な種類の、静的と有節の（ａｒｔｉｃｕｌａｔｉｎｇ）両方の、手によらない物理的ツールによって行われるジェスチャを認識することもできる。マーカおよびタグは、要望に応じてオペレータによって運ばれ使用され得るアイテムおよびツールに適用されてもよい。
【００５３】
本明細書で述べられるシステムは、認識され、作用を受け得る幅広いジェスチャの範囲が豊富であるジェスチャシステムを構築し、それと同時にアプリケーションへの容易な統合をすることを可能にする複数の革新を組み込む。
【００５４】
一実施形態のジェスチャ解析および変換システムは、以下からなる。
１）複数の異なる集合体レベルのジェスチャ、すなわち
ａ．単一の手の「ポーズ」（互いに関連のある手の部分の構成および向き）、単一の手の向きおよび３次元空間内の位置、
ｂ．ポーズ、位置または両方を考慮に入れるいずれかの手についての両手使いの組合せ、
ｃ．複数の人の組合せ；このシステムは、３つ以上の手を追跡することができ、したがって、複数の人が協力して（またはゲームアプリケーションの場合には競合して）ターゲットシステムをコントロールすることができる、
ｄ．ポーズが連続して組み合わされる連続したジェスチャ；これらは「アニメーション化」ジェスチャを呼ばれる、
ｅ．オペレータが空間の形状を追跡する「書記素」ジェスチャ、
を指定する（コンピュータプログラムで使用するために符号化する）ための簡潔で効率的なやり方。
２）所与のアプリケーションコンテキストに関連する上述の各カテゴリからの特定のジェスチャを登録するためのプログラマチック技術。
３）登録されたジェスチャが識別されることができ、それらのジェスチャをカプセル化するイベントが適切なアプリケーションコンテキストに引き渡されることができるように、ジェスチャストリームを解析するためのアルゴリズム。
【００５５】
構成要素（１ａ）から（１ｆ）を備えた指定システム（１）は、本明細書で述べられたシステムのジェスチャ解析および変換能力を利用するための基礎を提供する。
単一の手の「ポーズ」は、
ｉ）指と手の甲の間の相対的向きの列として表され、
ｉｉ）少数の個別の状態へと量子化される。
【００５６】
相対的な結合の向きを使用することによって、本明細書で述べられたシステムは、様々な手のサイズおよび幾何学的形状に付随する問題を回避することができる。このシステムでは、「オペレータ較正」は必要でない。さらに、ポーズを相対的な向きの列または群として指定することによって、より複雑なジェスチャ指定が、ポーズ表現をさらなるフィルタおよび指定と組み合わせることによって容易に作成されることができる。
【００５７】
ポーズ指定について少数の個別の状態を使用すると、ポーズの簡潔な指定、ならびに基礎となる様々な追跡技術（たとえばカメラを使用する受動光追跡、点灯ドットおよびカメラを使用する能動光追跡、電磁界追跡など）を使用する正確なポーズ認識の保証が可能となる。
【００５８】
あらゆるカテゴリ（１ａ）から（１ｆ）内のジェスチャは、非重大なデータが無視されるように、部分的（または最小限に）指定され得る。たとえば、２つの指の位置が決定的であり、他の指の位置が重要でないジェスチャは、単一の指定によって表されることができ、この単一指定では、関連する２つの指の操作位置が示され、同じ列内に、「ワイルドカード」または総括的な「これらを無視する」の表示が、他の指についてリストされる。
【００５９】
それだけに限らないが、多層の指定技術、相対的向きの使用、データ量子化、およびあらゆるレベルの部分または最小の指定に対する許容を含めて、ジェスチャ認識について本明細書で述べられた革新はすべて、手のジェスチャの仕様を超えて、体の他の部分および「製造された」ツールおよびオブジェクトを使用するジェスチャの指定にまで一般化されるものである。
【００６０】
「ジェスチャ登録」のためのプログラマチック技術（２）は、定義された１組のアプリケーションプログラミングインターフェース呼出しからなり、この呼出しによって、プログラマは、実行されているシステムの他の部分に対してエンジンがどのジェスチャを使用可能にすべきかを定義することができる。
【００６１】
これらのＡＰＩルーチンは、アプリケーションのセットアップ時に使用され、実行アプリケーションの寿命の間を通じて使用される静的なインターフェース定義を作成し得る。それらは、実行の間に使用され、インターフェース特性が進行中に変化することを可能にすることもできる。インターフェースのこのリアルタイム変更は、
ｉ）コンテキスト上の、条件付きの複雑な制御状態を構築すること、
ｉｉ）制御環境にヒステリシスを動的に追加すること、および
ｉｉｉ）ユーザが実行システム自体のインターフェース語彙を変更しまたは拡張することができるアプリケーションを作成することを可能にする。
【００６２】
ジェスチャの流れを解析するためのアルゴリズム（３）は、（１）にあるように指定され、（２）にあるように登録されたジェスチャを、入ってくる低レベルのジェスチャデータと比較する。登録されたジェスチャについて一致が認識される場合、一致したジェスチャを表すイベント情報は、スタックを上へと実行アプリケーションに引き渡される。
【００６３】
このシステムの設計では、効率的なリアルタイムのマッチングが望まれ、指定されたジェスチャが、できるだけ迅速に処理される可能性の木として扱われる。
さらに、指定されたジェスチャを認識するために内部で使用される原始的な比較演算子もまた、アプリケーションプログラマーが使用するために公開され、その結果、さらなる比較（たとえば複雑なまたは複合のジェスチャにおける柔軟な状態の検査）が、アプリケーションコンテキストの内部からでさえ生じ得る。
【００６４】
認識「ロッキング」の意味論は、本明細書で述べられたシステムの革新である。これらの意味論は、登録ＡＰＩ（２）によって示唆される（またそれほどではないにせよ、指定語彙（１）内に埋め込まれる）。登録ＡＰＩ呼出しには、
ｉ）「エントリ」状態通知子（ｎｏｔｉｆｉｅｒ）、および「継続」状態通知子と、
ｉｉ）ジェスチャ優先度指定子とが含まれる。
【００６５】
−ジェスチャが認識されている場合、その「継続」条件は、同じまたはより低い優先度のジェスチャについてのすべての「エントリ」条件に優先する。エントリと継続状態の区別によって、知覚されるシステム有用性が著しく増す。
【００６６】
本明細書で述べられたシステムは、実環境データエラーおよび不確実なことに直面しても堅牢に動作するためのアルゴリズムを含む。低レベルの追跡システムからのデータは、（光追跡におけるマーカの閉塞、ネットワークの脱落または処理遅れなどを含めて様々な理由により）不完全なことがある。
【００６７】
欠落データは、解析システムによってマーク付けされ、欠落データの量およびコンテキストに応じて、「最後に知られる」または「最も可能性の高い」状態へと補間される。
特定のジェスチャ構成要素（たとえば特定の接合箇所の向き）に関するデータが欠落しているが、その特定の構成要素の「最後に知られる」状態が、物理的に可能と解析され得る場合、このシステムはリアルタイムマッチングにおいて、この最後に知られる状態を使用する。
【００６８】
それとは異なり、「最後に知られる」状態が、物理的に不可能と解析される場合、このシステムは、その構成要素について「最良の推測範囲」に戻り、リアルタイムマッチングにおいてこの合成データを使用する。
【００６９】
本明細書で述べられた指定および解析システムは、複数の手によるジェスチャについて、いずれかの手がポーズ要件を満たすことが許されるように、「利き手不可知論」をサポートするように注意深く設計されている。
【００７０】
一致する仮想／表示および物理空間
このシステムは、１つまたは複数の表示装置（「画面」）上に示された仮想空間が、システムの１つまたは複数のオペレータが存在する物理空間と一致するものとして扱われる環境を提供することができる。こうした環境の一実施形態について、ここで述べられる。この現在の実施形態は、固定位置にある、プロジェクタで駆動される３つの画面を含んでおり、単一のデスクトップコンピュータによって駆動され、本明細書で述べられたジェスチャ語彙およびインターフェースシステムを使用して制御される。しかし、任意の数の画面が、述べられる技術によってサポートされ、それらの画面が（固定されているのではなく）移動するものとすることができ、画面が、多くの独立したコンピュータによって同時に駆動されることができ、システム全体は、任意の入力装置または技術によって制御され得ることに留意されたい。
【００７１】
本開示で述べられたインターフェースシステムは、物理空間内の画面の寸法、向きおよび位置を決定する手段を有するべきである。この情報が与えられると、システムは、投影として、これらの画面が位置する（またシステムのオペレータが存在する）物理空間を、システム上で実行されるコンピュータアプリケーションの仮想空間への動的にマッピングすることができる。この自動マッピングの一環として、このシステムは、システムによってホストされるアプリケーションの必要性に応じて、２つの空間の尺度、角度、奥行き、次元および他の空間特性をも様々なやり方で変換する。
【００７２】
物理と仮想空間の間のこの連続的な変換によって、既存アプリケーションプラットフォーム上で達成するのが難しく、あるいは既存プラットフォーム上で実行される各アプリケーションについて断片的に実施されなければならない複数のインターフェース技術の一貫した浸透的な使用が可能となる。これらの技術は、（それだけに限定されないが）以下を含む。
１）浸透的で自然なインターフェース技術として、ジェスチャインタフェース環境内で手を使用し、あるいは物理ポインティングツールまたはデバイスを使用する、リテラルポインティングの使用。
２）画面の動きまたは再位置決めのための自動補償。
３）たとえば奥行き知覚の向上のために視差シフトをシミュレートする、オペレータの位置によって変化するグラフィックスレンダリング。
４）実環境の位置、向き、状態などを考慮に入れた、画面表示内の物理オブジェクトの包含。たとえば、大きい半透明の画面の前に立つオペレータは、アプリケーショングラフィックスと、画面の背後のスケールモデルの真の位置の表現の両方を見ることがある（また恐らく移動し、または向きを変更している）。
【００７３】
リテラルポインティングが、マウスベースのウィンドウ処理インターフェースおよび他のほとんどの同時代のシステム内で使用される抽象ポインティングとは異なることに留意されたい。それらのシステムでは、オペレータは、仮想ポインタと物理ポインティングデバイスとの間の変換を管理することを学ばなければならず、認識してこの２つの間でマッピングしなければならない。
【００７４】
それとは異なり、本開示で述べられたシステムでは、アプリケーションまたはユーザの観点から、（仮想空間が数学的な操作により適していることを除いて）仮想空間と物理空間の差はなく、したがって、オペレータに認識の変換が求められない。
【００７５】
ここで述べられた実施形態によって提供されたリテラルポインティングの最も近い類似物は、（たとえば多くのＡＴＭマシンで見られるような）タッチセンシティブ画面である。タッチセンシティブ画面は、画面上の２次元の表示空間と、画面表面の２次元入力空間との間の１対１のマッピングを提供する。類似したやり方で、ここで述べられたシステムは、１つまたは複数の画面に表示された仮想空間と、オペレータが存在する物理空間との間の（必ずしもではないが、恐らくは１対１の）柔軟なマッピングを提供する。この類似物は有用であるが、この「マッピング手法」を３次元、任意に大きいアーキテクチュア環境、および複数画面に拡張することが重要であることは、理解するに値する。
【００７６】
ここに述べられた構成要素に加えて、このシステムは、環境の物理空間と各画面上の表示空間の間の連続したシステムレベルのマッピング（恐らく回転、変換、スケーリングまたは他の幾何学的変換によって修正される）を実施するアルゴリズムを実装することもできる。
【００７７】
計算オブジェクトおよびマッピングを取り、仮想空間のグラフィック表現を出力するレンダリングスタック。
制御システムからイベントデータ（現在の実施形態では、システムおよびマウス入力からのジェスチャデータとポインティングデータの両方）を取り、入力イベントからの空間データを、仮想空間内の座標にマッピングする入力イベント処理スタック。次いで、変換されたイベントは、実行アプリケーションに引き渡される。
【００７８】
ローカルエリアネットワーク上で複数のコンピュータにわたって実行されるアプリケーションをシステムがホストすることを可能にする「接着層」。
このように、ジェスチャベースの制御システムについて述べられた。
【図面の簡単な説明】
【００７９】
【図１】本発明のシステムの一実施形態を示す図である。
【図２】本発明のマーキングタグの一実施形態を示す図である。
【図３】本発明の一実施形態のジェスチャ語彙のポーズを示す図である。
【図４】本発明の一実施形態のジェスチャ語彙の向きを示す図である。
【図５】本発明の一実施形態のジェスチャ語彙の両手の組合せを示す図である。
【図６】本発明の一実施形態のジェスチャ語彙の向きの混合を示す図である。
【図７】本発明のシステムの一実施形態の操作を示すフローチャートである。
【図８】本発明の一実施形態のコマンド例を示す図である。
【図１】
0005631535.tif 000002
【図２】
0005631535.tif 000003
【図３】
0005631535.tif 000004
【図４】
0005631535.tif 000005
【図５】
0005631535.tif 000006
【図６】
0005631535.tif 000007
【図７】
0005631535.tif 000008
【図８】
0005631535.tif 000009