非接触ズーミングジェスチャの検出に関するある種の実施形態について、説明がなされる。可能な一実施形態は、ユーザと関連付けられたコントロールオブジェクトを遠隔的に検出することにより、このようなジェスチャを検出し、ズーム起動入力に応答してズームモードを起動する方法を含む。そして、現在のズーム量と、最小ズーム量と、最大ズーム量とを含むコンテンツの詳細が識別され、最大伸長および最小伸長を含むコントロールオブジェクトの最大動作範囲の状態が確立する。そして、最小ズーム量および最大ズーム量は、最大伸長および最小伸長に適合して、最大伸長から最小伸長へのズームベクトルに沿ったズームマッチを形成する。そして、リモート検出デバイスは、ズームベクトルに沿ったコントロールオブジェクトの動作を遠隔的に検出するために用いられ、コンテンツの現在のズーム量は、ズームベクトルに沿ったコントロールオブジェクトの動作の検出に応答して、ズームマッチに基づいて調整される。
さらに別の代替的実施形態では、コントロールオブジェクトは、ユーザの手を含んでもよい。さらに別の代替的実施形態では、ズームベクトルに沿ったコントロールオブジェクトの動作を遠隔的に検出することは、前記ユーザの手の3次元における現在位置を検出することと、閉じた掌をユーザへ向けて突き出したりユーザから離したりするときに、ズームベクトルを、ユーザの手の動作経路として推定することと、閉じた掌をユーザへ向けて突き出したりユーザから離したりするときに、ユーザの手の動作経路を検出することとを、含み得る。
さらに別の代替的実施形態は、リモート検出デバイスを用いて、ズーム解除動作を遠隔的に検出することにより、ズームモードを終了することを、含み得る。さらに別の代替的実施形態では、コントロールオブジェクトは、ユーザの手を含み、ズーム解除動作の検出は、手の閉じた掌を検出した後に、手の掌が開いた状態を検出することを含む。さらに別の代替的実施形態では、ズーム解除動作の検出は、コントロールオブジェクトが、ズームベクトルから閾値量だけずれたことを検出することを含む。さらに別の代替的実施形態は、リモート検出デバイスは、光学式カメラと、ステレオカメラと、深度カメラと、慣性センサとを備え、慣性センサは、手と組み合わされたリストバンドまたは手首に装着されたEMGセンサのような手に装着された慣性センサであり、把持ジェスチャを判別するために、掌が開いた状態および掌が閉じた状態を検出する。さらに別の代替的実施形態では、コントロールオブジェクトは、ユーザの手であり、ズーム起動入力は、手がズームベクトルに沿った第1の場所にあるときに、リモート検出デバイスが、手の掌が閉じた状態に続いて、手の掌が開いた状態を検出することを含む。
さらに別の代替的実施形態は、ズームベクトルに沿った第1の場所と現在のズーム量とを、ズームマッチの一部として適合させることを、含み得る。さらに別の代替的実施形態は、コンテンツの詳細を識別することは、最小ズーム量および最大ズーム量を、最大の単一伸長ズーム量と比較し、ズームマッチを調整して、最小伸長を第1の上限付きズーム設定と関連付け、最大伸長を第2の上限付きズーム設定と関連付けることをも、含み得る。このような実施形態では、第1の上限付きズーム設定と第2の上限付きズーム設定とのズーム差は、最大の単一伸長ズーム量以下であり得る。さらに別の実施形態は、手が、ズームベクトルに沿って第1の場所とは異なる第2の場所にあるときに、リモート検出デバイスを用いて、ズーム解除動作を遠隔的に検出することにより、ズームモードを終了することを、含み得る。さらに別の実施形態は、手が、ズームベクトルに沿って第2の場所とは異なる第3の場所にあるときに、第2のズーム起動入力に応答して、第2のズームモードを起動することと、ズームベクトルに沿った第2の場所と第3の場所との差に応答して、第1の上限付きズーム設定および第2の上限付きズーム設定を調整することを、さらに含み得る。
可能な一実施形態は、処理モジュールと、処理モジュールに結合されたコンピュータ可読記憶媒体と、処理モジュールに結合されたディスプレイ出力モジュールと、処理モジュールに結合された画像取込モジュールとを備えた装置として、実装され得る。このような実施形態では、コンピュータ可読記憶媒体は、コンピュータ可読命令を含み得る。コンピュータ可読命令は、コンピュータプロセッサにより実行されると、コンピュータプロセッサが、様々な実施形態に応じた方法を実行するようにする。このような実施形態は、画像取込モジュールにより受信されたデータを用いて、ユーザと関連付けられたコントロールオブジェクトを検出し、ズーム起動入力に応答して、ズームモードを起動し、現在のズーム量、最小ズーム量、および最大ズーム量を含むコンテンツの詳細を識別し、最大伸長および最小伸長を含むコントロールオブジェクトの最大動作範囲を推定し、最小ズーム量および最大ズーム量を最大伸長および最小伸長に適合させて、ズームベクトルに沿って最大伸長から最小伸長へとズームマッチを作成し、画像取込モジュールを用いて、ズームベクトルに沿ったコントロールオブジェクトの動作を遠隔的に検出し、ズームベクトルに沿ったコントロールオブジェクトの動作の検出に応じて、ズームマッチに基づき、コンテンツの現在のズーム量を調整し得る。
さらに別の代替的実施形態は、音響センサと、スピーカとを、さらに含み得る。このような実施形態では、ズーム起動入力は、前記音響センサを介して受信された音声コマンドを含み得る。さらに別の代替的実施形態では、現在のズーム量は、前記ディスプレイ出力モジュールを介して、サーバインフラコンピュータへと伝達され得る。
可能な一実施形態は、システムとして実装され得る。システムは、第1のカメラと、第1のカメラと通信可能に結合された第1のコンピュータ処理デバイスと、第1のコンピュータ処理デバイスと通信可能に結合された出力ディスプレイとを含む。このような実施形態では、第1のコンピュータ処理デバイスは、ジェスチャ解析モジュールを含み得る。このモジュールは、第1のカメラからの画像を用いて、ユーザと関連付けられたコントロールオブジェクトを識別し、ユーザと出力ディスプレイとの間のズームベクトルに沿った最大伸長および最小伸長を含む、コントロールオブジェクトの最大動作範囲を推定し、コントロールオブジェクトによりズームベクトルに沿った動作を識別する。このような実施形態では、第1のコンピュータ処理デバイスは、コンテンツ制御モジュールをさらに含み得る。このモジュールは、コンテンツを出力ディスプレイへと出力し、現在のズーム量、最小ズーム量、および最大ズーム量を含むコンテンツの詳細を識別し、最小ズーム量および最大ズーム量を、最大伸長および最小伸長に適合させて、ズームベクトルに沿ったズームマッチを作成し、ズームベクトルに沿ったコントロールオブジェクトの動作の検出に応答して、ズームマッチに基づき、コンテンツの現在のズーム量を調整する。
他の実施形態は、第1のコンピュータ処理デバイスと通信可能に結合された第2のカメラを、さらに含み得る。このような実施形態では、ジェスチャ解析モジュールは、第1のカメラとコントロールオブジェクトとの間の障害物を識別して、コントロールオブジェクトのズームベクトルに沿った動作を、第2のカメラからの第2の画像を用いて検出し得る。
別の実施形態は、コンピュータ化されたオブジェクトまたは機能のプロパティを調整する方法であってもよい。この方法は、コントロールオブジェクトを検出し、少なくとも1つの方向におけるコントロールオブジェクトの可能な動作の合計を求め、コントロールオブジェクトの動作を検出し、コンピュータ化されたオブジェクトまたは機能のプロパティを、検出された動作に基づいて調整することを含み、調整量は、可能な動作の合計に対する検出された動作の比に基づく。
さらに別の実施形態は、プロパティが範囲内で調整可能であるように機能し得るものであり、範囲に比例した調整量は、可能な動作の合計に対する検出された動作の比にほぼ等価である。さらに別の実施形態は、プロパティがズームを含むように機能し得る。さらに別の実施形態は、プロパティがパンまたはスクロールを含むように機能し得る。さらに別の実施形態は、プロパティが音響レベルコントロールを含むように機能し得る。さらに別の実施形態は、コントロールオブジェクトが、ユーザの手を含むように機能し得る。さらに別の実施形態は、可能な動作の合計が、解剖学的モデルに基づいて求められるように機能する。さらに別の実施形態は、可能な動作の合計が、ユーザについて経時的に収集されたデータに基づいて求められるように機能する。
さらに別の実施形態は、第2の方向における可能な動作の合計を求め、2つの別々のオブジェクトまたは機能を、各方向に制御することを、含み得る。ここで、第1の方向はズームを制御し、第2の方向はパンを制御する。
さらに別の実施形態は、ズームレベルを調整する方法であり得る。この方法は、ズームが起動されたときのユーザと関連付けられたコントロールオブジェクトの位置に基づき、ズーム空間と、その位置を基準としたユーザの到達範囲とを求め、コントロールオブジェクトの動作を検出し、検出されたズーム空間を基準とした検出された動作の大きさに基づき、表示された要素のズームレベルを調整することを含む。
さらに別の実施形態は、コントロールオブジェクトがズーム空間の第1の極値に位置するときに、要素が最大ズームレベルで表示され、コントロールオブジェクトがズーム空間の第2の極値に位置するときに、要素が最小ズームレベルで表示されるように機能し得る。さらに別の実施形態は、第1の極値は、第2の極値の反対側に配置されるように機能し得る。さらに別の実施形態は、第1の極値は、ほぼユーザの胴に位置し、第2の極値は、ほぼ最大到達範囲に位置するように機能し得る。さらに別の実施形態は、第1の極値および/または第2の極値に近接して、デッドゾーンがあるように機能し得る。さらに別の実施形態は、現在のズームレベルから最大ズームレベルへのズームレベルの増加の比は、その位置から第1の極値への検出された動作の比とほぼ等価であるように機能し得る。さらに別の実施形態は、現在のズームレベルから最小ズームレベルへのズームレベルの減少の比は、その位置から第2の極値への検出された動作の比とほぼ等価であるように機能し得る。
さらに別の実施形態は、最大伸長および最小伸長を含みユーザと関連付けられたコントロールオブジェクトの動作範囲を求め、1つまたは複数の検出デバイスからの情報に基づき、ズームコマンドと関連付けられた方向に実質的に沿ったコントロールオブジェクトの動作を検出し、表示されたコンテンツの現在のズーム量を、コントロールオブジェクトの動作の検出に応答して調整することを含む方法であってもよく、現在のズーム量、最小ズーム量、および最大ズーム量を含むコンテンツの詳細が識別され、最小ズーム量および最大ズーム量は、最大伸長および最小伸長に適合され、最大伸長から最小伸長への方向に沿ってズームマッチが作成される。
このような方法のさらに別の実施形態は、コントロールオブジェクトがユーザと手を含み、ズームベクトルに沿ったコントロールオブジェクトの動作を遠隔的に検出することは、前記ユーザの手の3次元における現在位置を検出することと、手をユーザへ向けて突き出したりユーザから離したりするときに、その方向を、ユーザの手の動作経路として推定することと、手をユーザへ向けて突き出したりユーザから離したりするときに、ユーザの手の動作経路を検出することとを含むように、さらに機能し得る。
さらに別の実施形態は、ズーム解除動作を遠隔的に検出することにより、ズームモードを終了させることを、さらに含み得る。このような方法のさらに別の実施形態は、コントロールオブジェクトがユーザの手を含み、ズーム解除動作の検出は、手の閉じた掌を検出した後に、手の掌が開いた状態を検出することを含むように、機能し得る。このような方法のさらに別の実施形態は、1つまたは複数の検出デバイスが、光学式カメラ、ステレオカメラ、深度カメラ、または手に装着する慣性センサを備え、手または手首に装着されるEMGセンサが、掌が開いた状態および掌が閉じた状態を検出するのに用いられるように、さらに機能し得る。
このような方法のさらに別の実施形態は、ズーム解除動作の検出は、コントロールオブジェクトが、ズームベクトルから閾値量だけずれたことを検出することを含むように、さらに機能し得る。このような方法のさらに別の実施形態は、コントロールオブジェクトがユーザの手であるようにさらに機能してもよく、ズーム起動入力を検出することをさらに含み、ズーム起動入力は、手の掌が開いた状態に続いて手の掌が閉じた状態を含む。
このような方法のさらに別の実施形態は、ズーム起動入力が検出されたときのその方向に沿った手の第1の場所は、現在のズーム量に適合されるように、さらに機能し得る。
このような方法のさらに別の実施形態は、コンテンツの詳細が、最小ズーム量および最大ズーム量を、最大の単一伸長ズーム量と比較し、ズームマッチを調整して、最小伸長を、第1の上限付きズーム設定と関連付けるとともに、最大伸長を第2の上限付きズーム設定と関連付けることをさらに含み、第1の上限付きズーム設定と第2の上限付きズーム設定とのズーム差は、最大の単一伸長ズーム量以下であるように、さらに機能し得る。
さらに別の実施形態は、手がズームベクトルに沿った第1の場所とは異なる第2の場所にあるときに、1つまたは複数の検出デバイスを用いて、ズーム解除動作を遠隔的に検出することにより、ズームモードを終了することと、手がズームベクトルに沿って第2の場所とは異なる第3の場所にあるときに、第2のズーム起動入力に応答して、第2のズームモードを起動することと、ズームベクトルに沿った第2の場所と第3の場所との差に応答して、第1の上限付きズーム設定および第2の上限付きズーム設定を調整することを、さらに含み得る。
このような方法のさらに別の実施形態は、ズームベクトルに沿ったコントロールオブジェクトの動作の検出に応答して、ズームマッチに基づき、コンテンツの現在のズーム量を調整することが、最大許容ズーム速度を求めることと、ズームベクトルに沿ったコントロールオブジェクトの動作を監視することと、ズームベクトルに沿った関連動作が、速度域値を超えた場合、現在のズーム量が、ズームベクトル上の現在のコントロールオブジェクトの位置に適合するまで、ズームの変化速度を最大許容ズーム速度に設定することを含むように、さらに機能し得る。
このような方法のさらに別の実施形態は、ズームマッチが、ユーザの腕長の解析に基づき、さらに求められるように、さらに機能し得る。このような方法のさらに別の実施形態は、ズームマッチが、ユーザの第1のジェスチャに先立ち、胴サイズ、身長、または腕長の1つまたは複数に基づいて評価され、ズームマッチは、ユーザにより実行された少なくとも1つのジェスチャの解析に基づき、更新されるように、さらに機能し得る。
このような方法のさらに別の実施形態はズームマッチが、最小伸長近傍の空間についてのデッドゾーンを識別するように、さらに機能し得る。このような方法のさらに別の実施形態はズームマッチが、最大伸長近傍の空間についての第2のデッドゾーンを識別するように、さらに機能し得る。
別の実施形態は、プロセッサを備えた処理モジュールと、処理モジュールに結合されたコンピュータ可読記憶媒体と、処理モジュールに結合されたディスプレイ出力モジュールと、処理モジュールに結合された画像取込モジュールとを備えた装置であり得る。コンピュータ可読記憶媒体は、コンピュータ可読命令を含む。コンピュータ可読命令は、プロセッサにより実行されると、コンピュータプロセッサが、ユーザと関連付けられ、最大伸長と最小伸長とを含むコントロールオブジェクトの動作範囲を求め、1つまたは複数の検出デバイスからの情報に基づき、ズームコマンドと関連付けられた方向に実質的に沿った、コントロールオブジェクトの動作を検出し、コントロールオブジェクトの動作を検出することに応じて、表示されたコンテンツの現在のズーム量を調整することを含む方法を実行する。現在のズーム量、最小ズーム量、および最大ズーム量を含むコンテンツの詳細が識別され、最小ズーム量、および最大ズーム量は、最大伸長および最小伸長に適合されて、最大伸長から最小伸長への方向に沿ったズームマッチを作成する。
さらに別の実施形態は、スピーカをさらに備え得る。ズーム起動入力は、音響センサを介して取得される音声コマンドを含む。さらに別の実施形態は、アンテナと、ローカルエリアネットワークモジュールとを、さらに備え得る。コンテンツは、ローカルエリアネットワークモジュールを介して、ディスプレイ出力モジュールからディスプレイへと伝達される。
さらに別のこのような実施形態は、現在のズーム量が、ディスプレイ出力モジュールを介して、サーバインフラコンピュータへと伝達されるように、さらに機能し得る。さらに別の実施形態は、コンピュータプロセッサと通信可能に結合された第1のカメラを備えたヘッドマウントデバイスを、さらに備え得る。
さらに別の実施形態は、第1のカメラと通信可能に結合された第1のコンピュータ処理デバイスと、出力ディスプレイとを、さらに備え得る。第1のコンピュータ処理デバイスは、コンテンツを出力ディスプレイへ出力するコンテンツ制御モジュールを、さらに備える。さらに別のこのような実施形態は、装置がヘッドマウントデバイス(HMD)であるように、さらに機能し得る。
さらに別のこのような実施形態は、出力ディスプレイおよび第1のカメラが、HMDのコンポーネントとして統合されるように、機能し得る。さらに別のこのような実施形態は、HMDが、コンテンツ画像をユーザの眼に投射するプロジェクタをさらに備えるように、機能し得る。さらに別のこのような実施形態は、画像が、仮想ディスプレイ表面におけるコンテンツを含むように、機能し得る。さらに別のこのような実施形態は、第2のカメラが、第1のコンピュータ処理デバイスと通信可能に結合され、ジェスチャ解析モジュールが、第1のカメラとコントロールオブジェクトとの間の障害物を識別し、コントロールオブジェクトのズームベクトルに沿った動作を、第2のカメラからの第2の画像を用いて検出するように、機能し得る。
さらに別の実施形態は、最大伸長および最小伸長を含みユーザと関連付けられたコントロールオブジェクトの動作範囲を求めるための手段と、1つまたは複数の検出デバイスからの情報に基づき、ズームコマンドと関連付けられた方向に実質的に沿ったコントロールオブジェクトの動作を検出するための手段と、表示されたコンテンツの現在のズーム量を、コントロールオブジェクトの動作の検出に応答して調整するための手段とを備えたシステムであってもよく、現在のズーム量、最小ズーム量、および最大ズーム量を含むコンテンツの詳細が識別され、最小ズーム量および最大ズーム量は、最大伸長および最小伸長に適合され、最大伸長から最小伸長への方向に沿ってズームマッチが作成される。
さらに別の実施形態は、ユーザの手の3次元における現在位置を検出するための手段と、ユーザが、手を、ユーザへ向けて引っ込めたりユーザから離れるように突き出したりするときに、方向をユーザの手の動作経路として推定するための手段と、ユーザが、手を、ユーザへ向けて引っ込めたりユーザから離れるように突き出したりするときに、ユーザの手の動作経路を検出するための手段とを、さらに備え得る。
さらに別の実施形態は、ズーム解除動作を遠隔的に検出することにより、ズームモードを終了させることを、さらに備え得る。
さらに別の実施形態は、コントロールオブジェクトの動作を検出することを、さらに含み、コントロールオブジェクトは、ユーザの手であり、手の掌が閉じた状態を検出した後に、手の掌が開いた状態を検出する。
さらに別の実施形態は、最小ズーム量および最大ズーム量を、最大の単一伸長ズーム量と比較するための手段と、ズームマッチを調整して、最小伸長を、第1の上限付きズーム設定と関連付けるとともに、最大伸長を第2の上限付きズーム設定と関連付けるための手段とを、さらに備え得る。第1の上限付きズーム設定と第2の上限付きズーム設定とのズーム差は、最大の単一伸長ズーム量以下である。
さらに別の実施形態は、手がズームベクトルに沿った第1の場所とは異なる第2の場所にあるときに、1つまたは複数の検出デバイスを用いて、ズーム解除動作を遠隔的に検出することにより、ズームモードを終了するための手段と、手がズームベクトルに沿って第2の場所とは異なる第3の場所にあるときに、第2のズーム起動入力に応答して、第2のズームモードを起動するための手段と、ズームベクトルに沿った第2の場所と第3の場所との差に応答して、第1の上限付きズーム設定および第2の上限付きズーム設定を調整するための手段とを、さらに備え得る。
別の実施形態は、コンピュータ可読命令を含んだ非一時的コンピュータ可読記憶媒体であり得る。コンピュータ可読命令は、プロセッサにより実行されると、プロセッサが、ユーザと関連付けられ、最大伸長と最小伸長とを含むコントロールオブジェクトの動作範囲を求め、1つまたは複数の検出デバイスからの情報に基づき、ズームコマンドと関連付けられた方向に実質的に沿った、コントロールオブジェクトの動作を検出し、コントロールオブジェクトの動作を検出することに応じて、表示されたコンテンツの現在のズーム量を調整するようにする。現在のズーム量、最小ズーム量、および最大ズーム量を含むコンテンツの詳細が識別され、最小ズーム量および最大ズーム量は、最大伸長および最小伸長に適合され、最大伸長から最小伸長への方向に沿ってズームマッチが作成される。
さらに別の実施形態は、さらに、最大許容ズーム速度を識別し、ズームベクトルに沿ったコントロールオブジェクトの動作を監視し、ズームベクトルに沿った関連動作が、速度域値を超えた場合、前記現在のズーム量が、前記ズームベクトル上の現在のコントロールオブジェクトの位置に適合するまで、ズームの変化速度を最大許容ズーム速度に設定し得る。さらに別の実施形態は、さらに、システムが、複数のユーザジェスチャコマンドを解析して、ズームマッチを調整するようにする。
さらに別のこのような実施形態は、複数のユーザジェスチャコマンドを解析して、ズームマッチを調整することが、複数のユーザジェスチャコマンドから、最大伸長および最小伸長を識別することを含むように、機能し得る。
さらに別の実施形態は、さらに、システムが、胴のサイズ、身長、または腕長の1つまたは複数に基づき、ユーザの第1のジェスチャに先立ってズームマッチを推定するようにし得る。さらに別の実施形態は、さらに、システムが、最小伸長近傍の空間についてのデッドゾーンを識別するようにし得る。さらに別の実施形態は、さらに、システムが、最大伸長近傍の第2のデッドゾーンを識別するようにし得る。
様々な具体的実施形態が説明されたが、当業者は、様々な実施形態の要素、ステップ、およびコンポーネントは、説明の範囲内にとどまりながらも、代替的な構造に配列され得ることを、理解するであろう。また、さらに別の実施形態は、ここでの説明にて明白となるものである。このため、本説明は、具体的に説明された実施形態のみを示すのではなく、ここに説明する機能または構造が可能なあらゆる実施形態を示す。
本開示の態様が、例示として説明される。添付の図面において、同様の参照番号は、同様の要素を示す。
いくつかの実例としての実施形態につき、添付の図面を参照して説明する。図面も説明の一部を形成するものである。本開示の1つまたは複数の態様が実装され得る個々の実施形態につき、以下説明するが、他の実施形態も利用可能であり、添付の特許請求の範囲の開示内容または趣旨の範囲から逸脱することなく、様々な変形がなされ得る。
実施形態は、ディスプレイインターフェースに向けられている。ある種の実施形態では、非接触インターフェース、および非接触インターフェースを用いたディスプレイにおけるコンテンツの制御のための関連方法について説明される。入力デバイスおよびユーザが利用可能なコンピュータ処理力が増加し続けると、ジェスチャ、特に、コンテンツ表面と相互作用する自由空中ジェスチャを利用することが、ある状況においては望ましい。可能な、あるナビゲーション相互作用は、自由空中ズームジェスチャを用いて、大規模なコンテンツアイテムをナビゲートすることを含む。自由空中ズームジェスチャは、液晶、プラズマディスプレイ表面、またはヘッドマウントグラスのようなデバイスにより提示される仮想ディスプレイ表面などのコンテンツ表面を基準としてなされる。ジェスチャの検出は、表面での検出に基づくものではなく、以下にさらに詳述するように、検出デバイスによるユーザの手などのコントロールオブジェクトの検出に基づく。このように、「リモート」および「非接触」ジェスチャ検出は、ここでは、ディスプレイから離れたジェスチャを検出するための検知デバイスを利用することである。これは、ディスプレイの表面での接触を用いてディスプレイ内のコンテンツを制御するためのコマンドを入力するデバイスとは異なる。ある種の実施形態では、ジェスチャは、コントローラ、または慣性測定ユニット(IMU:inertial measurement unit)を備えた装置などのハンドヘルドデバイスにより、検出され得る。このように、ジェスチャを検出するのに用いるデバイスは、ユーザから離れていないこともあるが、このようなデバイスおよび/またはジェスチャは、ディスプレイインターフェースから離れていてもよい。
ある例示的な実施形態では、ウォールマウントディスプレイが、コンピュータに結合されている。そして、コンピュータは、カメラとさらに結合されている。ユーザが、カメラに見える場所からディスプレイと相互作用すると、カメラは、ユーザの画像をコンピュータへ伝達する。コンピュータは、ユーザによりなされたジェスチャを認識し、ユーザのジェスチャに応じて、ディスプレイに表示されたコンテンツの表現を調節する。たとえば、特定のズーミングジェスチャが用いられ得る。ズーミングジェスチャの一実装例では、ユーザは、空中で把持動作を行ってズームを起動し、閉じた拳を、ディスプレイとユーザとの間で突き出したり引っ込めたりして、ズームを調整する。カメラは、このジェスチャの画像を取り込み、画像をコンピュータへ送信する。このコンピュータにおいて画像は処理される。ディスプレイ上のコンテンツは、ユーザの伸縮動作に基づいて修正された倍率で表示される。以下に、さらに詳細に説明する。
ここに用いるように、「コンピュータ」、「パーソナルコンピュータ」および「コンピュータ処理デバイス」なる用語は、既知または将来開発される、プログラム可能な任意のコンピュータシステムを示す。ある種の実施形態では、コンピュータは、ここに説明するようなネットワークに結合されることになる。コンピュータシステムは、プロセッサで実行可能なソフトウェア命令とともに構成されて、ここに説明する処理を実行し得る。図6に、以下に説明するコンピュータをさらに詳細に示す。
ここで用いるように、「コンポーネント」、「モジュール」および「システム」なる用語は、ハードウェア、ハードウェアとソフトウェアとの組合せ、ソフトウェア、あるいは実行中のソフトウェアといった、コンピュータに関連した実体を示す。たとえば、コンポーネントは、プロセッサ上で実行中のプロセス、プロセッサ、オブジェクト、実行可能ファイル、実行スレッド、プログラム、および/またはコンピュータであってもよい。ただし、それに限定されるものではない。説明の都合上、サーバで実行中のアプリケーションおよびサーバの双方は、コンポーネントであり得る。1つまたは複数のコンポーネントが、単一のプロセスおよび/もしくは実行スレッド内にあってもよく、単一のコンポーネントが、単一のコンピュータに配置されてもよく、ならびに/または2以上のコンピュータ間に分散されてもよい。
ここに用いるように、「ジェスチャ」なる用語は、ユーザによりなされる経時的な空間動作を示す。この動作は、ユーザの指示下での任意のコントロールオブジェクトによりなされる。
ここに用いるように、「コントロールオブジェクト」なる用語は、手、腕、肘または足など、ユーザの身体の任意の部分を示す。ジェスチャは、ペン、バトン、または、デバイスの動作をカメラに見やすくする、および/もしくはカメラに結合されたコンピュータで処理しやすくする出力を具備した電子デバイスなどの、ユーザの身体以外のコントロールオブジェクトをさらに含み得る。
ここに用いるように「リモート検出デバイス」なる用語は、関連付けられたデータを取り込み可能であるとともにジェスチャを特定するために利用可能な、任意のデバイスを示す。一実施形態では、ビデオカメラが、ユーザによりなされた具体的ジェスチャを特定する処理および解析のために、画像をプロセッサへ伝送可能なリモート検出デバイスの例である。カメラなどのリモート検出デバイスは、ディスプレイ、ウェアラブルデバイス、電話または他のこのようなカメラの提示形態(camera presentation)と一体化され得る。カメラは、ステレオカメラなどの複数の入力を、さらに備えてもよく、または、ユーザのさらに詳細な場所の組(greater set)を観察するため、または1つまたは複数のカメラモジュールの視界においてユーザの全部または一部が遮蔽されたときにユーザを観察するための複数のユニットを、さらに備えてもよい。リモート検出デバイスは、波長方向の任意の組を用いてジェスチャを検出し得る。たとえば、カメラは、赤外光源を備え、対応する赤外域にて画像を検出し得る。さらに別の実施形態では、リモート検出デバイスは、慣性センサなど、カメラ以外のセンサを備え得る。慣性センサは、加速度計、ジャイロスコープ、またはコントロールデバイスの他のこのような要素を用いて、コントロールデバイスの動きを追跡し得る。さらに別のリモート検出デバイスとしては、紫外光源およびセンサ、音響もしくは超音波音源および音響反射センサ、MEMSベースセンサ、あらゆる電磁放射センサ、または動作検出可能および/もしくはコントロールオブジェクトの位置特定可能なあらゆる他のこのようなデバイスがあり得る。
ここに用いるように、「ディスプレイ」および「コンテンツ表面」なる用語は、ユーザが視認するデータの画像源を示す。実例としては、液晶テレビジョン、陰極線管ディスプレイ、プラズマディスプレイ、および他のあらゆるこのような画像源がある。ある種の実施形態では、画像は、ディスプレイ画面により提示されるのではなく、ユーザの眼に投射され得る。このような実施形態では、システムは、表面が光を発していないものの、コンテンツが表面に由来するかのように、コンテンツをユーザに提示し得る。一例として、ユーザに画像を提供する、ヘッドマウントデバイスの一部としての眼鏡がある。
ここに用いるように、「ヘッドマウントデバイス」(HMD)または「ボディマウントデバイス」(BMD)は、ユーザの頭部、胴体もしくは衣服に装着されるか、またはその他にユーザにより着用もしくは支持されるあらゆるデバイスを示す。たとえば、HMDまたはBMDは、画像データを取り込み、プロセッサまたはコンピュータに結合されたデバイスを備え得る。ある実施形態では、プロセッサはデバイスと統合されるが、他の実施形態では、プロセッサはHMDから離れていてもよい。一実施形態では、ヘッドマウントデバイスは、モバイルデバイスのCPU(たとえば、携帯電話、タブレットコンピュータ、スマートフォンなどのプロセッサ)のための付属品であってもよく、モバイルデバイスで実行される主要な処理は、ヘッドマウントデバイス制御システムで実行される。他の実施形態では、ヘッドマウントデバイスが、プロセッサと、メモリと、ディスプレイと、カメラとを備え得る。一実施形態では、ヘッドマウントデバイスは、環境(たとえば、室内など)から情報をスキャンまたは収集するための1つまたは複数のセンサ(たとえば、深度センサ、カメラなど)と、収集された情報を別のデバイス(たとえば、サーバ、第2のモバイルデバイスなど)へ送信するための回路とを含むモバイルデバイス(たとえば、スマートフォンなど)であってもよい。このように、HMDまたはBMDは、ジェスチャ情報をユーザから収集し、その情報を非接触制御インターフェースの一部として利用し得る。
ここに用いるように、「コンテンツ」は、ディスプレイに表示されるとともにズームコメントで操作され得るファイルまたはデータのことである。例としては、任意のフォーマットで保存されてディスプレイによりユーザに提示される、テキストファイル、画像または動画であってもよい。コンテンツをディスプレイに表示している際には、コンテンツの詳細は、色、ズーム、詳細レベル、ならびにコンテンツの詳細レベルと関連付けられた最大および最小ズーム量などの特定のディスプレイインスタンスと関連付けられ得る。
ここに用いるように「最大ズーム量」および「最小ズーム量」は、ディスプレイに表示され得るコンテンツの特徴を示す。諸要素の組合せが、これらのズームの範囲を決定し得る。たとえば、画像を含むコンテンツについては、画像の保存解像度が、ディスプレイデバイス上の許容可能な表示を実現する最大および最小ズーム量を決定するために用いられ得る。ここで用いるように、「ズーム」は、階層(たとえば、ファイル構造の階層)と同視され得る。このような実施形態では、最大ズームは、最低レベル(たとえば、最も具体的な)階層であり得る。一方、最小ズームは、最高レベル(たとえば、最も具体性の低い)階層であり得る。このように、ユーザは、ここに説明する実施形態を用いて、階層すなわちファイル構造を移動し得る。ある種の実施形態では、ズームインにより、ユーザは、階層すなわちファイル構造間で順次進むことができてもよく、ズームアウトにより、ユーザは、階層すなわちファイル構造間で順次後退ことができてもよい。
別の実施形態では、ヘッドマウントデバイスは、インターネット、ローカルワイヤレスネットワーク、または別のコンピュータ処理デバイスと接続するためのワイヤレスインターフェースを含んでもよい。別の実施形態では、ピコプロジェクタ(pico-projector)が、ヘッドマウントデバイス内で結合されて、表面に画像を投射可能としてもよい。ヘッドマウントデバイスは、軽量で、重い構成要素を排除して構成され得る。重い構成要素があると、デバイスは、装着時に不快になることがある。ヘッドマウントデバイスは、ユーザからの音響/ジェスチャ入力を受信するように動作可能である。このようなジェスチャまたは音響入力は、は、発話された音声コマンド、または認識されたユーザジェスチャであってもよく、コンピュータ処理デバイスにより認識されると、そのデバイスが、対応するコマンドを実行することができるようになる。
図1Aおよび図1Bは、非接触ズームの実施形態が実装され得る2つの可能な環境を示す。図1Aおよび図1Bともに、表面16上に設けられたディスプレイ14を含む。さらに、両図において、ユーザの手は、コントロールオブジェクト20として機能する。図1Aでは、HMD10は、ユーザ6により装着されている。モバイルコンピュータ処理デバイス8は、ユーザ6に取り付けられている。図1Aでは、HMD10には、カメラが一体化されている。カメラは、カメラの視界12と関連付けられた影により示される。HMD10に搭載されたカメラの視界12は、影で図示されており、ユーザ6の頭の動作に応じて動く。カメラの視野12は、伸ばした位置と縮めた位置の双方において、コントロールオブジェクト20を含むのに充分に広い。伸ばした位置が図示されている。
図1Aのシステムにおいて、HMD10からの画像は、HMD10内の通信モジュールからディスプレイ14と関連付けられたコンピュータへ、ワイヤレスで伝送し得るか、または、HMD10からモバイルコンピュータ処理デバイス8へとワイヤレスもしくは有線接続を用いて伝送し得る。画像がHMD10からモバイルコンピュータ処理デバイス8へと伝送される一実施形態では、モバイルコンピュータ処理デバイス8は、画像を、ディスプレイ14に結合されたさらに別のコンピュータ処理デバイスへ伝送し得る。その他、モバイルコンピュータ処理デバイス8は、画像を処理してジェスチャを特定し、そして、特に、ディスプレイ14上のコンテンツが、モバイルコンピュータ処理デバイス8に由来する場合、ディスプレイ14上に提示されたコンテンツを調整し得る。さらに別の実施形態では、モバイルコンピュータ処理デバイス8は、中間処理または通信ステップを実行して、追加のコンピュータとのインターフェースを形成する、モジュールまたはアプリケーションを有し、データをコンピュータへ伝送し得るものである。そして、コンピュータは、ディスプレイ14上のコンテンツを調整する。ある種の実施形態では、ディスプレイ14は、HMD10により形成された仮想ディスプレイであってもよい。実施形態など、あり得る一実装例では、HMDは、画像をユーザの眼に投射して、錯覚を形成し得る。この錯覚は、画像が実際に単純にHMDからユーザへ投射される場合、ディスプレイ14が表面に投射されるものである。このように、ディスプレイは、ユーザに対して、表面が画像を表示する能動表面(active surface)であるかのように、受動表面上に表示される仮想画像であり得る。複数のHMDがネットワーク接続され、または同一のシステムを用いて動作している場合、2以上のユーザが、同時に表示される同一のコンテンツを伴う同一の仮想ディスプレイを有する。そして、第1のユーザは、仮想ディスプレイ内のコンテンツを操作して、仮想ディスプレイにおいて、双方のユーザに対して提示されるようにコンテンツが調整される。
図1Bは、画像検出がカメラ18により実行される代替的実施形態を示す。カメラは、ディスプレイ14とともに表面16に搭載されている。このような実施形態では、カメラ18は、プロセッサと、通信可能に結合されることになる。このプロセッサは、カメラ18の一部、ディスプレイ14の一部、またはカメラ18およびディスプレイ14の双方に通信可能に結合されたコンピュータシステムの一部である。カメラ18には、影領域で示された視野19がある。影領域は、コントロールオブジェクトを、伸ばした位置および引っ込めた位置の双方について含む。ある種の実施形態では、カメラは、ユーザ6の身長の検出に応じて視野19を移動する調整可能コントロールに対して、搭載され得る。さらに別の実施形態では、複数のカメラが表面16に統合され、より広い領域に亘る視界を提供するとともに、ユーザ6がカメラ18の視野を遮る障害物により見にくくなったときには、別の角度からの視界を提供し得る。複数のカメラが追加的に用いられて、ジェスチャ認識の精度向上のために、改良ジェスチャデータが提供されてもよい。さらに別の実施形態では、追加のカメラは、ユーザを基準として任意の場所に配置されて、ジェスチャ画像を提供してもよい。
図1Cは、別の代替的実施形態を示す。画像検出は、カメラ118によりなされる。このような実施形態では、ユーザの片手または両手が、コントロールオブジェクトとして検出され得る。図1Cでは、ユーザの手が、第1のコントロールオブジェクト130および第2のコントロールオブジェクト140として示される。コントロールオブジェクト130および140を検出してコンテンツの制御につながる画像処理が、テレビジョンディスプレイ114上に表示されるコンテンツのために、コンピュータ処理デバイス108により実行され得る。
図2Aは、一実施形態における環境に適用される座標系の参照図を示す。図1Aおよび図1Bの実施形態では、図2Aのx-y平面が、図1Aおよび図1Bの表面16に対応し得る。ユーザ210は、x-y平面に向いたz軸の正の場所に配置されて表示されている。このように、ユーザ210は、カメラにより取り込まれ得るジェスチャを行い得る。ここで、カメラにより観察されると、カメラにより取り込まれた動作の座標は、コンピュータにより、対応するx、yおよびz座標を用いて処理される。
図2Bは、一実施形態によるズーミングジェスチャの実施形態を示す。カメラ218が、コントロールオブジェクト220とユーザ210とに関連付けられたジェスチャ情報を取り込むための位置に図示されている。ある種の実施形態では、ユーザ210は、同じ環境にてユーザ6として動作していることがある、またはユーザ6と見なされていることもある。図2Bに示すz軸およびユーザ210の場所は、図2Aのz軸およびユーザ210の場所にほぼ対応しており、ユーザは、x-y平面に向いている。このように、図2Bは、実質的に、ユーザの腕でのz-y平面断面図である。このように、ユーザの210腕の伸びは、z軸に沿っている。図2Bのコントロールオブジェクト220は、ユーザの手である。ズーム開始位置274は、概ね、肘の角度が90度となるユーザの腕の中間位置(neutral position)として示されている。また、この位置は、ズームモード開始時点でのズーム位置と見なされ得る。コントロールオブジェクト220が胴体から可能な範囲で離れて伸びると282、コントロールオブジェクトは、最大ズームアウト位置272へ移動することになり、この位置が一方の極限伸長となる。コントロールオブジェクト220が、胴体へ向けて可能な範囲で後退すると284、コントロールオブジェクト220は、反対側の極限伸長での最大ズームイン位置276へ移動することになる。このように、最大ズームアウト位置272および最大ズームイン位置276は、コントロールオブジェクトの最大動作範囲についての最大伸長および最小伸長に対応する。この範囲は、図2Bに示すズームベクトル280に沿った距離と見なされる。代替的実施形態では、ズームイン位置とズームアウト位置とが、逆になっていてもよい。ユーザの自由度における変動、およびジェスチャ動作の各極限位置での快適性に対応するように設定され得るデッドゾーン286が、図示されている。ある種の実施形態では、ズームベクトルの両側に、そのようなデッドゾーンがあってもよい。これにより、コントロールオブジェクトが胴体に非常に近接しているときに、コントロールオブジェクトを検出および/または識別することに現れる困難に、さらに対処し得る。一実施形態では、ユーザの胴体の所定の距離内のゾーンは、ズーミング範囲から除外されて、手または他のコントロールオブジェクトが所定の距離内にあるときに、コントロールオブジェクトの動作に応じたズームの変更が起こらないようになっていてもよい。このように、デッドゾーン286は、ズームベクトル280を特定してコンテンツとコントロールオブジェクトとの間の任意のズームマッチ(zoom match)を作成する際に、システムにより推測される最大動作範囲の一部とは、見なされない。コントロールオブジェクトがデッドゾーン286に入った場合、システムは、検出された終了コマンドによりズームモードが終了するまで、またはコントロールオブジェクトがデッドゾーン286を離れてコントロールベクトルに沿った動作に復帰するまで、現在のコントロールベクトルのズームの極限でのズーム動作を実質的に停止し得る。
そして、ズームマッチは、ユーザのコントロールオブジェクトの場所と、ディスプレイに表示されているコンテンツの現在のズームレベルとの間の相関と見なされ得る。システムが、ズームベクトルに沿ってスライドするコントロールオブジェクトの動作を検出すると、対応するズームは、適合するズームレベルに応じて調整される。代替的実施形態では、ベクトルに沿ったズームは、均一でなくともよい。このような実施形態では、ズーム量は、手の初期位置(たとえば、手がほぼ一杯に伸びているが、コンテンツは既に最大限にズームインしている場合)に基づいて変化し得る。また、ズーム量は、限界に近づくにつれて緩慢となり、ユーザの届く範囲の両極端に、ユーザの届く範囲の領域以外の所与の距離に亘るズーム量よりも少ない量が関連付けられている。可能な一実施形態では、手が284と286との境界にあるときに最大ズームとなるのに対して、このように低減したズームが設定され得る。
図2におけるこのジェスチャは、ユーザが物理的オブジェクトをユーザの眼を基準として動かすことにより相互作用しているかのように、コンテンツを把持し、それをユーザに向けて引っ張るか、またはユーザから離して遠ざけることに、なぞらえ得る。図2では、リンゴが、最大ズームアウト位置272にて最大伸長でズームアウトしているように、および最大ズームイン位置276にて最小伸長でズームインしているように、示されている。ジェスチャは、ほぼベクトルに沿って、ユーザの前腕から、コンテンツ表面上に示されるように操作されているコンテンツを基準としたコンテンツ平面へ向けて、なされるものである。コンテンツが垂直画面上にあっても水平画面上にあっても、ズーム動作は、ほぼ上述の同一の線に沿ってなされることになるが、ユーザからコンテンツ表面への様々な相対表示を補償するために、ユーザに調整され得る。
様々な実施形態において、最大ズームアウト位置272および最大ズームイン位置276は、様々な方式で特定され得る。可能な一実施形態では、カメラ218により撮られたユーザ210の初期画像は、ユーザの腕の画像を含み得る。最大ズームアウトおよびズームイン位置は、ユーザ210の腕の画像から算出され得る。この算出結果は、追加の画像を受信すると更新され得る、または、システム動作中に、実際の最大ズームインおよびズームアウト位置が測定されるシステムの使用に基づいて、修正され得る。あるいは、システムは、ユーザの身長または他の簡単なユーザ測定に基づき、大まかな推測で動作し得る。さらに別の代替的実施形態では、カメラ218または他のカメラにより撮られた画像に基づいて、モデル骨格解析(model skeletal analysis)が実行され得るものであり、最大ズームアウト272およびズームイン276は、これらのモデルシステムから算出され得る。一実施形態では、動作を検出するために慣性センサが用いられて(またはカメラが用いられる場合であっても)、経時的な動作により最大および最小を示す分布が得られる。これにより、システムは、システムの初期設定に基づくか、またはユーザがジェスチャコマンドを発してシステムが反応するとともに将来のジェスチャコマンドのためのユーザの実際の動作についてシステムを較正するのに応じて調整される当初の推定に基づき、個々のユーザについての較正係数を求めることが可能となる。
システムの動作中、ズームベクトル280は、コントロールオブジェクト220の現在の場所を特定するとともにディスプレイにおけるコンテンツの適切なズームをズームベクトル280の位置と関連付ける動作の一部として、特定され得る。図2Bに示すジェスチャが図示のz軸に常に完全に沿うわけではなく、ユーザ210が、動作中に位置を調整したり回転したりすることもあるので、ズームベクトル280は、ユーザ210がずれるのに応じてユーザ210に適合させてもよい。ユーザ210が直接x-y平面に向いているときに、ズームベクトル280の角度をずらしてもよい。代替的実施形態では、z軸に沿ったズームベクトル280の位置のみが解析される場合、ユーザ210が左から右へずれるのに応じて、ズームベクトル280は短縮されるか、または、ユーザ210がz軸に沿ったユーザの重心をずらすのに応じて、z軸に沿って調整されてもよい。これにより、コントロールオブジェクト220が空間内で動いたとしても、ズームベクトル280と関連付けられた特定のズームが維持され得る。このような実施形態では、ズームは、こうしてユーザの腕と関連付けられるのであり、コントロールオブジェクト220の位置とのみ関連付けられるのではない。さらに別の代替的実施形態では、ユーザの胴体の位置、ズームベクトル280、およびコントロールオブジェクト220の位置が、組み合わされて平均化されて、ズームが安定し、ユーザの細かな動きや呼吸動作によるズームジッタを回避し得る。
さらに別の実施形態では、ユーザは、z軸から離れて、yおよび/またはx方向に延びるコントロール動作で操作してもよい。たとえば、あるユーザ210は、胴体へ向けるとともに284、足元へとコントロールオブジェクト220を下げる動作を行い得る。このような環境では、ある実施形態は、ズームベクトル280を設定して、このコントロール動作に対応し得る。
ユーザの片手または両手の検出は、光学式カメラ、ステレオカメラ、深度カメラ、リストバンドもしくはリングなどの慣性センサ、または他のこのようなリモート検知デバイスなどの任意の手段により実行し得る。特に、ヘッドマウントディスプレイの使用は、図5で詳述するような自由空中ジェスチャコントロールを統合する従来の選択肢であるが、メディアセンターTV、ショップウィンドウキオスク(shop window kiosk)、および現実世界のディスプレイおよびコンテンツ表面についてのインターフェースなど、ジェスチャ統合システムを用い得る他の例も利用され得る。
そして、図3は、ディスプレイ内のコンテンツを制御するための非接触ズーミングジェスチャを実装する可能な方法を示す。図3の一部として、動画、コンテンツビデオ画像、または画像などのコンテンツが、図1のディスプレイ14、HMD10のディスプレイ540、または図4のディスプレイ出力モジュール460などのディスプレイに表示されている。コンピュータ処理デバイスは、コンテンツおよびディスプレイと関連付けられたズームを制御する。このようなコンピュータ処理デバイスは、コンピュータ処理デバイス600実装システム400、もしくはHMD10、またはここに説明する処理要素の任意の組合せであってもよい。コンピュータに結合された非接触制御カメラは、図1Aおよび図1Bに示すように視界を観察し、ユーザは、制御カメラにより観察される視野内にある。このようなカメラは、画像取込モジュール410、カメラ503、センサアレイ500または任意の適切な入力デバイス615と等価であり得る。ある種の実施形態では、非接触制御カメラは、加速度計または画像を取り込まない他のデバイスなどの任意のセンサに置き換えられてもよい。305では、コンピュータ処理デバイスは、ユーザと関連付けられたコントロールオブジェクトの動作範囲を求める。上記と同様に、コンピュータ処理デバイスは、システム400を実装したコンピュータ処理デバイス600、もしくはHMD10、またはここに説明した処理要素の任意の組合せであってもよい。また、コンピュータ処理デバイスは、ディスプレイズームを制御して、310にてズームモードを起動する入力を受け付けるように機能してもよい。そして、310では、この入力の一部として、本方法は、1つまたは複数の検出デバイスからの情報に基づき、コントロールオブジェクトの動作を、実質的にズームコマンドと関連付けられた方向において検出することを含む。ある種の実施形態では、ズームコマンドについての最小ズーム量と最大ズーム量とは、305で検出された最大伸長と最小伸長とに適合している。ある種の実施形態では、最小ズームが最小伸長に適合し、最大ズームが最大伸長に適合している。他の実施形態では、最大ズームが最小伸長に適合し、最小ズームが最大伸長に適合している。様々な実施形態は、様々なコマンドが受け付けられる様々なモードを含む、広範なズーム起動入力を、受け付け得る。ユーザが入り込み、歩いて制御カメラの視野を横切り、または制御カメラの視野内で他の動作を実行することで、偶発的なジェスチャ入力がなされることを防止するために、コンピュータは、モード起動信号を受信するまで、ある種のジェスチャを受け付けなくともよい。ズーム起動入力は、制御カメラにより認識されたジェスチャであってもよい。可能な例として、図2Bに示すような把持動作があり得る。把持動作は、開いた手または掌を検出してから、閉じた手または掌を検出することであってもよい。そして、閉じた手の初期位置は、図2Bに示すようなズーム開始位置274と関連付けられる。
代替的実施形態では、音響または音声コマンドが、ズームモードを起動するために用いられ得る。その他に、ボタンまたはリモートコントロールが、ズームモードを起動するのに用いられてもよい。このように、ズーム開始位置は、コマンドが受信された時のコントロールオブジェクトの位置、または、入力に続く所定の時間は静止している、配置されたコントロールオブジェクトの位置であり得る。たとえば、音声コマンドが発せられてから、ユーザが、腕をy方向へ伸ばし、肘をほぼ180度から90度に近くなるように、所期のコントロール位置として、コントロールオブジェクトを休止位置から移動させ、そして、コントロールオブジェクトが所定の時間、所期のコントロール位置に静止した後、ズーム開始位置が設定され得る。ある種の実施形態では、1つまたは複数の他のコマンドが検出されて、ズームモードが起動されてもよい。315では、システムは、コントロールオブジェクトの動作を検出することに応じて、表示されたコンテンツの現在のズーム量を調整する。たとえば、コンテンツ制御モジュール450および/またはユーザコントロール515が用いられて、HMD10のディスプレイ540上のズーム、または図4のディスプレイ出力モジュール460を調整し得る。ある種の実施形態では、現在のズーム量、最小ズーム量、および最大ズーム量を含むコンテンツの詳細が特定される。ある種の実施形態では、ズーム開始位置が特定され、コントロールオブジェクトのズームベクトルに沿った動作がカメラにより取り込まれて、コンピュータ処理デバイスにより解析される。コントロールオブジェクトがズームベクトルに沿って移動するときに、ディスプレイに表示されたコンテンツのズームが、コンピュータ処理デバイスにより調整される。さらに別の実施形態では、最大伸長および最小伸長が、コンテンツの解像度または画像品質および可能なズームと関連付けられ得る。ユーザのジェスチャについて可能なまたは予期された、最大伸長および最小伸長を含む、最大動作範囲および最小動作範囲が、上述のように算出されるかまたは推定され得る。ある種の実施形態では、最小および最大ズーム量は、上述のようにズームベクトルを形成するためのユーザの伸長に適合する。このように、最小ズーム量および最大ズーム量は、ある種の実施形態において、最大伸長および最小伸長に適合して、最大伸長から最小伸長への方向に沿ったズームマッチを形成し得る。
これに続いて、ある種の実施形態では、ズームモードを終了する入力が受信される。上述のように、ズームモードを起動する入力について、終了入力は、ジェスチャ、電子的入力、音声入力、または他のこのような入力のいずれかである。ズームモードを終了させる入力の受信に続き、ディスプレイに表示されているコンテンツのズームレベルである現在のズーム量が、ズームモードを起動する他の入力が受信されるまで維持される。
様々な実施形態において、ズームベクトルを受信し、画像を解析して、ジェスチャを特定するときに、ユーザの手および必要に応じて他の関節の場所のx、yおよびz座標を含むフレームのストリームが、リモート検出デバイスにより受信されて解析され、ジェスチャが特定され得る。このような情報は、図2Aに示すようなジェスチャ認識システムにより特定される枠組または座標系内に、記録され得る。
詳細に上述した把持およびズームジェスチャシステムにつき、システムは、ユーザとコンテンツ表面との間の位置において開いた掌の存在を検出してから、その不存在を検出するために、画像解析技術を用いてズームモードを起動してもよい。画像解析は、利用可能であれば深度情報を利用してもよい。
係合ジェスチャ(engagement gesture)が検出されると、多くのパラメータが記録され得る。1.3次元での手の現在位置、2.オブジェクトが現在ズームされている量、最小ズーム量および最大ズーム量を含む、ズームされているオブジェクトの詳細、3.ユーザがその手を現在位置からコンテンツへ向けておよび/もしくはコンテンツから離れるように、どれだけ動かすことができるか推定すること、ならびに/または4.ベクトルすなわち「ズームベクトル」は、ユーザがコンテンツを自分に向けて引っ込めたり自分から離れるように突き出したりすする、ユーザの手の動作経路を示す。
ある種の実施形態では、ズームマッチが作成されて、最大ズーム量を、ユーザの手の極限伸長または収縮に対応させ、最小ズームを反対の極限動作に対応させ得る。他の実施形態では、動作範囲の全域ではなく、動作範囲のある部分が対応してもよい。
ユーザが手の動作に利用可能な空間は、現在の手の位置を、ユーザの胴の位置と比較することにより、計算され得る。様々な実施形態が、利用可能な手の空間を算出する様々な方法を用いてもよい。たとえば600mmの想定された腕長を用いた可能な一実施形態では、ズームインおよびズームアウトに利用可能な空間が算出され得る。胴の位置が利用不能である場合、システムは、腕長を単純に2分割してもよい。係合ジェスチャが一旦特定されると、ズーミングが開始される。これは、手の現在位置を利用し、算出された範囲に対する「ズームベクトル」に沿った手の位置の比を、係合の際(at engagement)に記録されて図2Aに示したものとして、対象オブジェクトのズームパラメータに適用する。ズーミングの際、ユーザの胴体位置が監視される。そして、位置が変化した場合、ズームベクトルが再評価されて、ユーザの相対位置の変化、およびユーザが操作中のコンテンツについて調整がなされ得る。手のトラッキングに基づいて深度カメラが用いられる場合、z軸のトラッキングはジッタの影響を受けやすい。これを緩和するため、ズームにおける過剰な変化に対する抑制がなされる。オブジェクトのズームレベルの算出された変化が過剰だと見なされた場合、たとえば、ジッタによりもたらされるか、またはぶれもしくはコントロールオブジェクトの突然の変化によりもたらされると、システムは、トラッキングデータのフレームを無視してもよい。このように、ズームコマンドデータの整合性が判別されてもよく、整合性のないデータは廃棄または無視される。
ズーム解除コマンドは、起動ジェスチャの反対のジェスチャとして算出され得る。開いた掌が検出された場合、手がズームベクトルからかなり離れて動いた場合、または許容範囲内で把持ジェスチャが開くことが検出された場合、ズーム機能は、開放されてもよく、追加の制御機能がユーザにより起動されるまで、コンテンツの表示が固定される。
さらに別の代替的実施形態では、追加のズーム解除ジェスチャが認識され得る。可能な例において、ズーム係合動作は、上述の把持または把握動作である。このズームは、コントロールオブジェクトがズームベクトルに沿って動くのに応じて、調整される。ある種の実施形態では、ズームベクトル閾値により、ズームベクトルの限界が特定され得る。コントロールオブジェクトがズームベクトル閾値量を超えた場合、システムは、開いた掌が検出されなくとも、コントロールオブジェクトがズームベクトルから離れて動いたと見なし、ズームモードから解除してもよい。これは、たとえば、ユーザが、開いた掌を提示することなくユーザの手をユーザの胴体のそばに下げて休憩モードにした場合に、発生し得る。さらに別の実施形態では、最大ズームまたは最小ズームを超えた場合に、自動的に解除がなされ得る。急な動きや突然のジッタが検出された場合、ユーザの腕がロックされて最大に達したと見なされ得る。また、解除には、音声コマンドが含まれてもよく、またはコントローラの入力が、ジェスチャに対してスムーズに応答するようにシステムによりフィルタ処理で除外された、特徴外の加速や急な動きと、関連付けられてもよい。ある種の実施形態では、ズームベクトルの外側の閾値距離を超えたユーザの動作は、解除と解釈され得る。たとえば、ユーザがz方向に手を動かす場合、xおよび/またはy方向に意味のある動作は、解除を含み得る。
コントロールオブジェクトの小さな動作が意味のあるズーム調整を提供しないようにする、最大および最小ズーム量を、表示中のコンテンツが有する、ある種の実施形態では、ズーム量は、コンテンツの可能な最大および最小ズーム量未満のある最大および最小ズーム量を上限とする。一実施例は、局所的トップダウン衛星画像から、地球の画像へとズームアウト可能なシステムであってもよい。このようなシステムにつき、ズームの最大変化は、所与のズーム開始位置について上限が設けられ得る。上限を超えてのズームインおよびズームアウトを達成するためには、ズームモードが複数回終了して再度開始してもよく、インクリメンタルズーム(incremental zoom)は、ズームモードの各起動の際に生じる。このような実装例は、ロープを掴んで、ユーザに向けてそのロープを繰り返し引っ張り、非接触ズームモードを用いて増加するズーム量を形成することと比較し得る。以下、このような実施形態につき、さらに詳細に説明する。
コンテンツについての利用可能なズームが単一のコントロールオブジェクトのズーム動作範囲には過剰であると判断されるズームの閾値を超えていない実施形態につき、ユーザは、ズームモードを終了する入力が受信されるまで、ズームベクトルに沿った動作でズームインおよびズームアウトを繰り返し得る。ある種の実施形態では、コントロールオブジェクトが、コンピュータ処理デバイスが対応できるよりも速い速度でズーム設定間を移動する場合、または動作入力の考慮またはユーザの疾病などの二次的な考慮に適切なものよりも速い場合、ズームは、ズームベクトルに沿ったコントロールオブジェクトの位置と関連付けられた現在のズーム位置に向けてトラッキングし、コントロールオブジェクトと関連付けられたズーム位置を、ベクトルにそってスムーズに配置して、ユーザがスムーズに感じられるようにし得るように、最大ズーム速度が確立されてもよい。このことにより、実質的に、システムは、ズームベクトルに沿った関連動作が閾値を超えたときに、ズームの変化速度を、システムに許容される最大ズーム変化速度に設定することができるようになる。ある種の実施形態では、ユーザは、パンすると同時に、ズームコマンドが起動(たとえば、ズームインしながら手をx、yへ動かす)するのと同時にパンすることができてもよい。そして、ズームモードの起動は、表示されたコンテンツ対して、システムが、ズーム調整以外の操作を実行することを、必ずしも制限するわけでなない。また、このような実施形態では、z軸に沿った動作がズームのために用いられる一方で、パンのxおよびy軸に沿った可能な動作に基づき、パンの量が同様に決定され得る。ある種の実施形態では、ユーザがズームとパンを同時に行って、オブジェクトが画面中央に来ると、可能なズーム/ズームマッチがそのオブジェクトの特徴へと動的にリセットされる。一実施形態では、オブジェクト上で最後までズームインすることは、そのオブジェクトに対するオブジェクト選択コマンドとして作用し得る。このように、オブジェクトの選択は、ある種の実施形態における、ズームモードに統合された別のジェスチャコマンドであり得る。
同様に、様々な実施形態において、上述のズームは、デバイスの任意の一次元設定を調整するのに用いられ得る。上述のように、ズームは、ディスプレイ表面に表示されたコンテンツに関連付けられた一次元設定と見なされ得る。同様に、スピーカ出力の音量は、ズームベクトルと関連付けられてズームジェスチャコマンドで調整され得る一次元設定であってもよい。オブジェクトの直線的な集まりに沿って、またはドキュメントの一次元スクロールに沿って、スクロールまたは選択することは、同様にズームベクトルと関連付けられ、ここで説明するズームジェスチャコマンドに応じて調整され得る。
図4は、人間が実行するジェスチャを判別するシステム400の実施形態を示す。様々な代替的実施形態では、システム400は、分散したコンポーネント間に実装されてもよく、または、図4に詳細が示されたモジュールを実装するのに充分な処理力のある統合されたコンピュータプロセッサを有する、携帯電話のような単一のデバイスもしくは装置内に実装されてもよい。より一般的には、システム400は、人間の特定部分をトラッキングするのに用いられ得る。たとえば、システム400は、人間の手をトラッキングするのに用いられ得る。システム400は、人間の片手または両手をトラッキンするように構成され得る。さらに、システム400は、複数の人々の手を同時にトラッキングするように構成されてもよい。システム400は、人間の手の場所をトラッキングするのに用いられるものとしてここに説明されているが、システム400は、頭部、方、胴、脚などの人間の他の部分をトラッキングするように構成されてもよいことを理解されたい。システム400において手をトラッキングすることは、1人または複数人により実行されるジェスチャを検出するのに有用であり得る。システム400自体が、人間により実行されたジェスチャを判別しなくともよく、または、実際の手の識別もしくはある種の実施形態でのトラッキングを実行しなくともよい。その代わりに、システム400は、1つまたは複数の手の位置を出力し、または、前面のオブジェクトを含んでいそうな画素のサブセットを単に出力してもよい。1つまたは複数の手の位置は、ジェスチャについて、別のハードウェアまたはソフトウェアに対して提供されおよび/またはこのハードウェアまたはソフトウェアにより判別されてもよい。このジェスチャは、1人または複数人により実行されたものであり得る。代替的実施形態では、システム400は、ユーザの手で保持しているかまたはユーザの身体に装着されているコントロールデバイスをトラッキングするように、構成されてもよい。そして、様々な実施形態において、システム400は、HMD10、モバイルコンピュータ処理デバイス8、コンピュータ処理デバイス108、またはジェスチャコントロール用のシステムの他のこのような任意の部分の一部として、実装され得る。
システム400は、画像取込モジュール410と、処理モジュール420と、コンピュータ可読記憶媒体430と、ジェスチャ解析モジュール440と、コンテンツ制御モジュール450と、ディスプレイ出力モジュール460とを含み得る。また、追加のコンポーネントがあってもよい。たとえば、システム400は、コンピュータシステム、またはより一般的にはコンピュータ化されたデバイスの一部として、組み込まれてもよい。図6のコンピュータシステム600は、図4のシステム400と統合され得る1つのコンピュータシステムを示す。画像取込モジュール410は、複数の画像を取り込むように構成され得る。画像取込モジュール410は、カメラ、またはより具体的にはビデオカメラであってもよい。画像取込モジュール410は、ビデオフレームの形態による一連の画像を取り込み得る。これらの画像は、毎秒30回などで、定期的に取り込まれる。画像取込モジュール410により取り込まれた画像は、画像取込モジュール410により生成された画像の各画素につき、強度および深度値を含み得る。
画像取込モジュール410は、赤外線放射(IR)などの放射を、視野内に投射し得る(たとえば、場面上に)。戻った赤外線放射の強度は、取り込まれた各画像に現れた、画像取込モジュール410の各画素の強度値を求めるために、用いられ得る。また、投射された放射は、深度情報を求めるためにも用いられ得る。このように、画像取込モジュール410は、場面の3次元画像を取り込むように構成され得る。画像取込モジュール410により作成された画像の各画素は、深度値と強度値とを有してもよい。ある種の実施形態では、画像取込モジュールが、放射を投射しなくともよく、その代わりに、画像を取り込む場面にある光(より一般的には放射)に依存してもよい。深度情報のために、画像取込モジュール410は、ステレオ式(すなわち、画像取込モジュール410が、2つの画像を取り込み、深度情報のある単一の画像に組み合わせる)であってもよく、深度を求める他の技術を用いてもよい。
画像取込モジュール410により取り込まれた画像は、処理モジュール420へ提供され得る。処理モジュール420は、画像取込モジュール410から画像を取得するように構成され得る。処理モジュール420は、画像取込モジュール410から取得した画像のいくつかまたは全てを解析して、1つまたは複数の画像にあらわれる1人または複数人の1つまたは複数の手を特定し得る。処理モジュール420は、ソフトウェア、ファームウェアおよび/またはハードウェアを含み得る。処理モジュール420は、コンピュータ可読記憶媒体430と通信し得る。コンピュータ可読記憶媒体430は、画像取込モジュール410により取り込まれる画像の個々の画素について作成される背景モデルおよび/または前面モデルに関する情報を格納するために用いられ得る。画像取込モジュール410による画像内に取り込まれた場面は、静的である場合、第1の画像および第2の画像内のいくつかの場所の画素は、同一のオブジェクトに対応することが予期され得る。実施例としては、カウチ(couch)が第1の画像内の特定の画素にある場合、第2の画像において、第2の画像の特定の同一の画素もカウチに対応していることが予期され得る。背景モデルおよび/または前面モデルは、取得された画像のいくつかまたは全ての画素について作成され得る。コンピュータ可読記憶媒体430は、処理モジュール420により用いられる追加的情報を格納し、手(または人間の身体の他の部分)の位置を特定するようにも構成され得る。たとえば、コンピュータ可読記憶媒体430は、閾値(画素が前面または背景モデルの一部の画素である確率を求めるのに用いられ得る)についての情報を含み得るものであり、および/または主要なコンポーネント解析を実行するのに用いられる情報を含み得る。
処理モジュール420は、ジェスチャ解析モジュール440などの他のモジュールに、出力を提供し得る。処理モジュール420は、2次元座標および/または3次元座標を、ジェスチャ解析モジュール440のような他のソフトウェアモジュール、ハードウェアモジュール、またはファームウェアモジュールへと出力し得る。処理モジュール420により出力された座標は、検出された手(または人間の身体の他の部分)の場所を示し得る。1つまたは複数の(ある人の、または別の人の)手が検出されると、1組または複数組の座標が出力される。2次元座標は、画像ベースの座標であり、x座標およびy座標は、画像内にある画素に対応し得る。3次元座標は、深度情報を含み得る。座標は、少なくとも1つの手が特定された各画像について、処理モジュール420により出力され得る。さらに、処理モジュール420は、抽出された背景要素を含んでいそうな、および/または以降の処理のための前面要素を含んでいそうな画素の1つまたは複数のサブセットを、出力し得る。
ジェスチャ解析モジュール440は、様々な種類のジェスチャ判別システムの任意のものであり得る。ジェスチャ解析モジュール440は、人が実行中のジェスチャを判別するために処理モジュール420により出力された2または3次元座標出力を用いるように構成され得る。このように、処理モジュール420は、1つまたは複数の手の座標のみを出力し得るものであり、実際のジェスチャ、および/またはジェスチャ解析モジュール440により実行され得るジェスチャに応じてどの機能が実行されるべきかを判別する。ジェスチャ解析モジュール440は、例示的な目的でのみ図4に示されていることを、理解されたい。1または複数のユーザの1つまたは複数の手がトラッキングされることが望ましい理由については、ジェスチャの他にも別の可能性がある。このように、ジェスチャ解析モジュール440以外の他のモジュールが人体の一部の場所を受信してもよい。
コンテンツ制御モジュール450は、ソフトウェアモジュール、ハードウェアモジュール、またはファームウェアモジュールとして同様に実装され得る。このようなモジュールは、処理モジュール420と統合され得るか、または独立したコンピュータ処理デバイスの別個のリモートモジュールとして構成され得る。コンテンツ制御モジュール450は、ディスプレイに出力されるコンテンツを操作するための様々なコントロールを備え得る。このようなコントロールは、再生、一時停止、早送り、巻き戻し、およびズーム、または他の同様なこのようなコントロールを含み得る。ジェスチャ解析モジュール440が、ズームモードを起動する入力を特定し、さらに、ズームベクトルに沿った動作をズームモードの一部として特定すると、その動作は、コンテンツ制御モジュールへ伝達されて、現時点で表示中のコンテンツについての現在のズーム量を更新し得る。
ディスプレイ出力モジュール460は、ソフトウェアモジュール、ハードウェアモジュール、またはファームウェアモジュールとして同様に実装され得る。このようなモジュールは、コンテンツをユーザに提示する特定の出力ディスプレイに対応した命令を含み得る。コンテンツ制御モジュール450が、ジェスチャ解析モジュール440により特定されたジェスチャコマンドを受信すると、ディスプレイ出力モジュール460によりディスプレイに出力されたディスプレイ信号は、リアルタイムまたはほぼリアルタイムで修正されて、コンテンツを調整し得る。
ある種の実施形態では、ディスプレイ出力モジュール460に結合された特定のディスプレイが、単一の動作範囲について過剰なズーム量を識別する、上限のあるズーム設定になっていてもよい。たとえば、具体的なディスプレイについて、500%を超えるズーム変化は、問題があるものとして識別され得る。ここで、ユーザは、ズームベクトルに沿った小さな動作についてもコンテンツの表示における過剰な変更をしなければ、ズームモードにて所望のズーム調整をしたりコンテンツを視認したりするのが難しく、その変更はユーザにとって処理することが困難である。このような実施形態では、コンテンツ制御モジュール450および/またはディスプレイ出力モジュール460は、最大の単一伸長ズーム量(maximum single extension zoom amount)を特定し得る。ズーム量が起動されると、ズームベクトルに沿ったズームマッチは、最大の単一伸長ズーム量に限定され得る。これが500%であり、コンテンツにより1000%ズームが可能になる場合、ユーザは、ズームモードを第1のズームレベルで起動し、ズーム量から解除する前に、コンテンツを許されるズーム量内でズーミングすることにより、ズーム量の全てを利用し得るものであり、コンテンツをさらにズーミングするために、コントロールオブジェクトが、ズームベクトルに沿った異なる場所にあるように、ズームモードを再編成する。閉じた掌がズームモードを起動する一実施形態では、このズームジェスチャは、伸びた位置でロープを掴み、そのロープをユーザへ向けて引っ張り、手がユーザに近づくとそのロープを離し、そして、伸びた位置で掴んでユーザの胴体に近い位置で離すこの動作を繰り返して、各ズームをシステムの最大の単一伸長ズーム量内にとどめつつ、コンテンツの最大ズームに沿って繰り返しズームインする。
このような実施形態では、ズームマッチの一部としてコンテンツに利用可能な最大および最小ズームを適合させる代わりに、ズームマッチおよびズームベクトルは、ユーザの伸長を、第1の上限付きズーム設定および第2の上限付きズーム設定に適合させることで、最小伸長および最大伸長内で利用可能なズームの変化が、最大の単一伸長ズーム量内となる。
図5Aおよび図5Bは、図1のHMD10のようなヘッドマウントデバイスの可能な一実施形態を示す。ある種の実施形態では、これらの図に示すヘッドマウントデバイスは、さらに、ヘッドマウントデバイスを通じて仮想ディスプレイを提供するシステムに統合され得る。ここで、ディスプレイは、眼鏡または他の出力ディスプレイに提示され、ディスプレイが受動的なディスプレイ表面に発する錯覚を提供する。
図5Aは、ヘッドマウントデバイス10の実施形態に含まれ得るコンポーネントを示す。図5Bは、センサアレイ500がここに説明する様々な動作を実行するモバイルプロセッサ507へ、データを提供し、サーバ564に対してデータを送受信するシステムの一部として、ヘッドマウントデバイス10がどのように動作し得るかを示す。なお、ヘッドマウントデバイス10のプロセッサ507が、1つより多いプロセッサ(またはマルチコアプロセッサ)を備え得るものであり、コアプロセッサが全体の制御機能を実行するとともに、コプロセッサがアプリケーションを実行してアプリケーションプロセッサとも称されることを、理解されたい。コアプロセッサおよびアプリケーションプロセッサは、マルチコアプロセッサなどの同一のマイクロチップパッケージ内に構成されてもよく、別々のチップ内に構成されてもよい。また、プロセッサ507は、ワイヤレス通信(すなわち、モデムプロセッサ)、ナビゲーション(たとえば、GPS受信器内のプロセッサ)およびグラフィック処理(たとえば、グラフィック処理ユニットすなわち「GPU」)などの他の機能と関連付けられたプロセッサとともに同一のマイクロチップ内にパッケージされてもよい。
ヘッドマウントデバイス10は、インターネット接続のあるパーソナルコンピュータおよびモバイルデバイスなどの他のコンピュータ処理デバイスを含み得る通信システムまたはネットワークと通信し得る。このようなパーソナルコンピュータおよびモバイルデバイスは、アンテナ551と、送受信機すなわちトランシーバ552と、プロセッサ507に結合されてこのプロセッサがワイヤレス通信ネットワークを介してデータを送受信可能となるアナログデジタルコンバータ553とを、含み得る。たとえば、携帯電話などのモバイルデバイスは、ワイヤレス通信ネットワーク(たとえば、Wi-Fiまたは携帯電話通信ネットワーク)を介してインターネットにアクセスし得る。このようなワイヤレス通信ネットワークは、インターネット接続のあるゲートウェイまたはインターネット接続サーバに結合された複数の基地局を含み得る。パーソナルコンピュータは、インターネットゲートウェイ(図示せず)有線接続、またはワイヤレス通信ネットワークによる任意の従来手法で、インターネットに結合され得る。
図5Aに戻り、ヘッドマウントデバイス10は、いくつものソフトウェアモジュール510〜525を有するとともにディスプレイ540および音響出力550に結合された制御システムプロセッサ507に結合された、場面センサ500および音響センサ505を含み得る。一実施形態では、プロセッサ507または場面センサ500は、解剖学的特徴認識アルゴリズムを、画像に適用して、1つまたは複数の解剖学的特徴を検出し得る。制御システムと関連付けられたプロセッサ507は、1つまたは複数のジェスチャを認識して、認識したジェスチャを入力コマンドとして処理するために、検出された解剖学的特徴について検討し得る。たとえば、以下にさらに詳述するように、ユーザは、ユーザとディスプレイ表面との間でシステムにより特定されたズームベクトルに沿った点で拳を握ることにより、ズームコマンドに対応する動作ジェスチャを実行し得る。この例のジェスチャを認識するのに応じて、プロセッサ507は、ズームモードを起動してから、ユーザの手が移動して現在のコンテンツのズームを変更するのに応じて、ディスプレイに表示されたコンテンツを調整する。
場面センサ500は、ステレオカメラ、配向センサ(たとえば、加速度計および電子コンパス)および距離センサを含み得るものであり、プロセッサ507内に実装された、3次元場面情報を解釈するように構成され得る、場面マネージャ510に、場面関連データ(たとえば、画像)を提供し得る。様々な実施形態において、場面センサ500は、ステレオカメラ(後述)と、赤外カメラのために場面照明用の赤外光を発する赤外発光器を含み得る距離センサとを含み得る。たとえば、図5Aに示す実施形態では、場面センサ500は、ステレオ画像を収集するためのステレオ赤、緑、青(RGB)カメラ503aと、構造化された赤外発光器503cにより提供され得る赤外光での場面を撮像するように構成された赤外カメラ503bとを含み得る。構造化された赤外発光器は、赤外カメラ503bにより撮像され得る赤外光パルスを発するように構成され得るものであり、受信した画素の時間が記録されて、飛行時間計算(time-of-flight calculations)を用いて画像要素への距離を求めるのに用いられる。ステレオRGBカメラ503aと、赤外カメラ503bと、赤外発光器503cとを、一体として、RGB-D(Dは距離)カメラ503と称し得る。
場面マネージャモジュール510は、画像内のオブジェクトの3次元的再構成を作成するために、場面センサ500により提供され、ステレオカメラからの距離および表面の配向情報を含む、距離測定および画像をスキャンし得る。一実施形態では、場面センサ500、より具体的には、RGB-Dカメラ503は、ユーザおよびヘッドマウントデバイス10の視野に沿って並んだ方向を指してもよい。場面センサ500は、全身3次元モーションキャプチャおよびジェスチャ認識を提供し得る。場面センサ500は、モノクロCMOSセンサなどの赤外カメラ503cと組み合わされた赤外発光器503cを有し得る。場面センサ500は、3次元ビデオデータを取り込むステレオカメラ503aをさらに含み得る。場面センサ500は、環境光、日光、または完全な暗黒で動作し得るものであり、ここに説明するようにRGB-Dカメラを含み得る。場面センサ500は、高速ゲーティング機構を有する画像センサとともに、近赤外(NIR)パルス照明コンポーネントを含み得る。パルス信号が、各画素について収集され、パルスが反射して取り込まれた被写体上の点に対応する距離を算出するのに利用可能となる場所に対応し得る。
別の実施形態では、場面センサ500は、たとえば、超音波エコー位置特定、レーダ、ステレオ画像の三角測量など、他の距離測定技術(すなわち、様々な種類の距離センサ)を用いて、画像内のオブジェクトの距離を取得し得る。場面センサ500は、測距カメラと、フラッシュLIDARカメラと、飛行時間(ToF)カメラおよび/またはRGB-Dカメラ503とを含み得るものであり、これにより、レンジゲート(range-gated)ToF検知、RF搭載ToF検知、プッシュライト(pulsed-light)ToF検知、およびプロジェクトライト(projected-light)ステレオ検知の少なくとも1つを用いて、オブジェクトへの距離を求め得る。別の実施形態では、場面センサ500は、ステレオカメラ503aを用いて、場面のステレオ画像を取り込み、画像内の取り込まれた画素の輝度(brightness)に基づき距離を求め得る。上述のように、一貫性のために、これらの距離測定センサの種類および技術のうちのあるものまたは全てを、ここに一般的に、「距離センサ」と称する。様々な能力および解像度の複数の場面センサは、物理的環境のマッピングの補助、および環境内のユーザの位置の正確なトラッキングの補助となり得る。
また、ヘッドマウントデバイス10は、マイクロフォンまたはマイクロフォンアレイのような音響センサ505を含み得る。音響センサ505により、ヘッドマウントデバイス10が、音響を記録し、音響源の位置特定を実行し、環境ノイズを低減することが可能になる。音響センサ505は、音響を取り込み、音響信号を音響デジタルデータへと変換し得る。制御システムと関連付けられたプロセッサは、音響デジタルデータを評価し、音声認識アルゴリズムを適用して、検索可能なテキストデータに変換し得る。また、プロセッサは、ある種の認識されたコマンドまたはキーワードにつき、生成されたテキストデータを、評価して、認識されたコマンドまたはキーワードを、入力コマンドとして用い、1つまたは複数のタスクを実行し得る。たとえば、ユーザは、「ズームモードを起動」などのコマンドを発声してもよく、予期されたズームベクトルに沿ってコントロールオブジェクトのシステム検索を行い得る。別の例として、ユーザは、「コンテンツ終了」と発声して、ディスプレイ上のコンテンツを表示しているファイルを閉じる。
また、ヘッドマウントデバイス10は、ディスプレイ540を含み得る。ディスプレイ540は、場面センサ500内のカメラにより得られるか、またはヘッドマウントデバイス10内もしくはこれに結合されたプロセッサにより生成された画像を表示し得る。一実施形態では、ディスプレイ540は、マイクロディスプレイであってもよい。ディスプレイ540は、完全に閉塞されたディスプレイであってもよい。別の実施形態では、ディスプレイ540は、ユーザが透視して周囲の部屋を視認することが可能な画面に画像を表示可能な半透明ディスプレイであってもよい。ディスプレイ540は、単眼またはステレオ(すなわち、双眼)構成に構成されてもよい。これとは別に、ヘッドマウントディスプレイ10は、ヘルメット搭載ディスプレイデバイス、頭部装着型、またはヘルメットの一部であってもよく、片方の眼(単眼)の前または両眼の前(すなわち、両眼またはステレオディスプレイ)の前の小型ディスプレイ540光学系を有する。これとは別に、ヘッドマウントデバイス10は、2つのディスプレイユニット540を含み得る。各ユニットは、小型化されており、単純なマイクロ電子機械システム(MEMS)デバイス、ライトガイドディスプレイ、および導波ディスプレイ、ならびに既存および開発され得る他のディスプレイ技術などの干渉変調器(IMOD)要素に基づく陰極線管(CRT)ディスプレイ、液晶ディスプレイ(LCD)、シリコン上の液晶(LCos)ディスプレイ、有機発光ダイオード(OLED)ディスプレイ、ミラソル(Mirasol)ディスプレイのうちの任意の1つまたは複数であってもよい。別の実施形態では、ディスプレイ540は、複数のマイクロディスプレイ540を備えて、全体としての解像度を向上させ、視野を広げ得る。
また、ヘッドマウントデバイス10は、音響出力デバイス550を含み得る。この出力デバイスは、参照符号550として一括して示されるヘッドフォンおよび/またはスピーカであってもよい。また、ヘッドマウントデバイス10は、仮想オブジェクトなどの画像を生成するとともに制御機能をヘッドマウントデバイス10へ提供可能な、1つまたは複数のプロセッサを含み得る。たとえば、デバイス10は、コアプロセッサと、アプリケーションプロセッサと、グラフィックプロセッサと、ナビゲーションプロセッサとを含み得る。これとは別に、ヘッドマウントディスプレイ10は、スマートフォンまたは他のモバイルコンピュータ処理デバイスなどの個々のプロセッサに結合されてもよい。映像/音響出力は、ヘッドマウントデバイス10と(有線またはワイヤレスネットワークを介して)接続したプロセッサまたはモバイルCPUにより処理され得る。また、ヘッドマウントデバイス10は、場面マネージャブロック510と、ユーザコントロールブロック515と、表面マネージャブロック520と、音響マネージャブロック525と、情報アクセスブロック530とを備え得る。これらは、独立した回路モジュールであってもよく、プロセッサ内にソフトウェアモジュールとして実装されてもよい。ヘッドマウントデバイス10は、ローカルメモリと、デジタルデータをリモートメモリ555から受信するために他のデバイスまたはローカルワイヤレスまたは有線ネットワークと通信するためのワイヤレスまたは有線インターフェースとを、さらに含み得る。システム内でリモートメモリ555を用いることは、デバイス内のメモリチップおよび回路基板を削減することにより、ヘッドマウントデバイス10をより軽量にし得る。
コントローラの場面マネージャブロック510は、場面センサ500からデータを受信し、物理的環境の仮想表現を作成し得る。たとえば、レーザが用いられて、レーザ光を発し得る。レーザ光は、室内にてオブジェクトで反射し、カメラにて取り込まれる。光の往復時間が、様々なオブジェクトおよび室内の表面までの距離を算出するのに用いられる。このような距離測定が、室内のオブジェクトの場所、大きさ、および形状を求めて、場面のマップを生成するために用いられ得る。一旦、マップが作成されると、場面マネージャブロック510は、マップを、他の生成されたマップにリンクして、所定領域のより大きなマップを形成し得る。一実施形態では、場面および距離データは、いくつものヘッドマウントデバイスから(場面内でユーザが移動することで経時的に)受信した画像、距離およびマップデータに基づいて融合または統合されたマップを生成し得るサーバまたは他のコンピュータ処理デバイスへ、送信され得る。ワイヤレスデータリンクを介して利用可能とされた、このような統合マップデータは、ヘッドマウントデバイスのプロセッサにリンクする。
他のマップは、インスタントデバイス(instant device)もしくは他のヘッドマウントデバイスによりスキャンされたマップであるか、またはクラウドサービスから受信したマップであってもよい。場面マネージャ510は、場面センサ500からのデータに基づき、表面を識別し、ユーザの現在位置をトラッキングし得る。ユーザコントロールブロック515は、たとえば、音響コマンド、ジェスチャ、および入力デバイス(たとえば、キーボード、マウス)など、システムへのユーザコントロール入力を収集し得る。一実施形態では、ユーザコントロールブロック515は、場面マネージャ510により特定されたユーザの身体の部分の動きを解釈するためのジェスチャ辞書を含むか、またはこの辞書にアクセスし得る。上述のように、ジェスチャ辞書は、突く、軽くたたく、小突く、押す、案内する、弾く、回す、掴んで引く、画像をパンするために両手の掌を開く、描く(たとえば、フィンガーペインティング)、指で形を形成、スワイプを含み得るジェスチャを認識するための動作データまたはパターンを格納し、これらの全ては、生成されたディスプレイ内の仮想オブジェクトの見かけの場所に、またはそれに近接して達成され得る。また、ユーザコントロールブロック515は、複合コマンドを認識し得る。これには、2つ以上のコマンドを含み得る。たとえば、ジェスチャおよび音響(たとえば、拍手)または音声制御コマンド(たとえば、「OK」が検出された手のジェスチャがなされて、音声コマンドまたは発話された単語と組み合わされて、動作を確認する)。ユーザコントロール515が特定されると、コントローラは、デバイス10の他のサブコンポーネントにリクエストを提示し得る。
また、ヘッドマウントデバイス10は、表面マネージャブロック520を含み得る。表面マネージャブロック520は、(場面マネージャブロック510により管理されるように)取り込まれた画像および距離センサからの測定に基づいて場面内の表面の位置を連続的にトラッキングし得る。また、表面マネージャブロック520は、取り込まれた画像内の表面上にアンカーされた仮想オブジェクトの位置を連続的に更新し得る。表面マネージャブロック520は、アクティブな表面およびウィンドウを対象とし得る。音響マネージャブロック525は、コントロール命令を、音響入力および音響出力に提供し得る。音響マネージャブロック525は、ヘッドフォンおよびスピーカ550へと伝達される音響ストリームを構築し得る。
情報アクセスブロック530は、コントロール命令を提供し、デジタル情報へのアクセスを仲介し得る。データは、ヘッドマウントデバイス10のローカルメモリ記憶媒体に格納され得る。また、データは、アクセス可能なデジタルデバイスのリモートデータ記憶媒体555上に格納され得るか、または、データは、ヘッドマウントデバイス10によりアクセス可能な分散クラウド記憶メモリ上に記憶され得る。情報アクセスブロック530は、データストア555と通信し得る。データストアは、メモリ、ディスク、リモートメモリ、クラウドコンピュータ処理リソース、または統合メモリ555であってもよい。
図6は、1つまたは複数の実施形態が実装され得るコンピュータ処理システムの一例を示す。図6に示すように、コンピュータシステムは、図4および図5の上述のコンピュータ化されたデバイスの一部として統合され得る。様々な実施形態によるシステムの任意のコンポーネントは、図6に示すようなコンピュータシステムを含み得る。HMD10、モバイルコンピュータ処理デバイス8、カメラ18、ディスプレイ14、テレビジョンディスプレイ114、コンピュータ処理デバイス108、カメラ118、様々な電子コントロールオブジェクト、図5Aのシステム400もしくはHMD10の任意の要素もしくは部分、または様々な実施形態で用いる他のこのようなコンピュータ処理デバイスなど、様々なカメラ、ディスプレイ、HMD、および処理デバイスを含む。図6は、コンピュータシステム600の一実施形態の模式図を示す。このシステムは、ここに説明するように、様々な他の実施形態により提供される方法を実行可能であり、ならびに/または、ホストコンピュータシステム、リモートキオスク端末、POS(point-of-sale)装置、モバイルデバイス、および/もしくはコンピュータシステムとして機能することが可能である。図6は、様々なコンポーネントの一般的な図を提供する意図によるものであり、そのうちの任意のものまたは全てが、適切に利用され得る。したがって、図6は、個々のシステム要素が、どのように相対的に独立または相対的により統合された方式で実装され得るかを広く示している。
バス605を介して電気的に結合可能(または適切に他の方式で通信可能)なハードウェア要素を備えたコンピュータシステム600が示されている。ハードウェア要素は、それに限定されるものではないが、1つまたは複数の汎用プロセッサおよび/または1つまたは複数の専用プロセッサ(デジタル信号処理チップ、グラフィックアクセラレーションプロセッサおよび/またはその他)などの1つまたは複数のプロセッサ610と、それに限定されるものではないが、マウス、キーボードおよび/またはその他などの1つまたは複数の入力デバイス615と、それに限定されるものではないが、ディスプレイデバイス、プリンタおよび/またはその他などの1つまたは複数の出力デバイス620とを、含み得る。バス605は、2つ以上のプロセッサ610、すなわち、単一のプロセッサのマルチコアまたは複数のプロセッサを結合し得る。プロセッサ610は、様々な実施形態の処理モジュール420またはプロセッサ507と等価であり得る。ある種の実施形態では、プロセッサ610は、モバイルデバイス8、テレビジョンディスプレイ114、カメラ18、コンピュータ処理デバイス108、HMD10、またはここに説明する任意のデバイスまたはデバイスの要素内に含まれ得る。
コンピュータシステム600は、1つまたは複数の非一時的記憶デバイス625をさらに備え(および/またはこれと通信し)、このデバイスは、それに限定されるものではないが、ローカルおよび/もしくはネットワークアクセス可能なストレージを備えることができ、および/または、それに限定されるものではないが、ディスクドライブ、ドライブアレイ、光学記憶デバイス、ランダムアクセスメモリ(「RAM」)および/もしくは読取専用メモリ(「ROM」)などの瞬間的に更新可能および/もしくはその他のソリッドステート記憶デバイスを含み得る。このような記憶デバイスは、それに限定されるものではないが、様々なファイルシステム、データベース構造および/またはその他などの任意の適切なデータストアを実装するように構成され得る。
また、コンピュータシステム600は、通信サブシステム630を備え得る。この通信サブシステムは、モデム、ネットワークカード(ワイヤレスまたは有線)、赤外通信デバイス、ワイヤレス通信デバイスおよび/またはチップセット(Bluetooth(登録商標)デバイス、802.11デバイス、Wi-Fiデバイス、WiMaxデバイス、携帯通信機能など)および/または同様の通信インターフェースを含むことができるが、それに限定されるものではない。通信サブシステム630は、データを、ネットワーク(一例を挙げると、以下に説明するネットワークなど)、他のコンピュータシステムおよび/または個々に説明する任意の他のデバイスと交換可能としてもよい。多くの実施形態では、コンピュータシステム600は、非一時的ワーキングメモリ635を備えることになる。このメモリは、上述のように、RAMまたはROMデバイスを含み得る。
また、コンピュータシステム600は、現在、ワーキングメモリ635内にあるものとして示されているソフトウェア要素を備え得る。ソフトウェア要素は、オペレーティングシステム640、デバイスドライバ、実行可能ライブラリ、および/または1つもしくは複数のアプリケーションプログラム645などの他のコードを含み、これらのプログラムは、様々な実施形態で提供されるコンピュータプログラムを含み得るものであり、ならびに/または、ここに説明するように他の実施形態で提供される方法を実装し、および/もしくはシステムを構成するように設計され得る。単に例として、上述の方法に関して記述された1つまたは複数の手順は、コンピュータ(および/またはコンピュータ内のプロセッサ)により実行可能なコードおよび/または命令として実装されてもよい。そして、一態様では、このようなコードおよび/または命令は、汎用コンピュータ(または他のデバイス)を、説明した方法に従って1つまたは複数の動作を実行するように構成および/または適応するために利用可能である。
これらの命令および/またはコードの組は、上述の記憶デバイス625などのコンピュータ可読記憶媒体上に記憶されてもよい。ある場合には、記憶媒体は、コンピュータシステム600のようなコンピュータシステム内に組み込まれ得る。他の実施形態では、記憶媒体は、コンピュータシステム(たとえば、コンパクトディスクなどのリムーバブル媒体)から分離されてもよく、および/または汎用コンピュータを、そこに記憶された命令/コードで、プログラム、構成および/または適応するために利用可能となるように、インストールパッケージ(installation package)内に提供されてもよい。これらの命令は、実行可能コードの形態をとり得る。実行可能コードは、コンピュータシステム600により実行可能であり、ならびに/またはソースおよび/もしくはインストール可能コードの形態をとってもよい。このコードは、コンピュータシステム600(たとえば、一般的に利用可能なコンパイラ、インストールプログラム、圧縮/伸長ユーティリティなど)でコンパイルされ、および/またはそこにインストールされると、実行可能コードの形態をとることになる。
特定の要件に従って実質的な変更がなされ得る。たとえば、カスタマイズされたハードウェアも利用可能であり、および/または特定の要素が、ハードウェア、ソフトウェア(アプレットのようなポータブルソフトウェアなど)または両者内に実装されてもよい。さらに、ある機能を提供するハードウェアおよび/またはソフトウェアコンポーネントは、専用システム(特化されたコンポーネントを具備)を備えてもよく、またはより一般的なシステムの一部であってもよい。たとえば、コンテキストアシスタンスサーバ140によるアクティビティの選択に関して、ここに説明する特徴のいくつかまたは全てを提供するように構成されたアクティビティ選択サブシステムは、特化された(たとえば、特定用途向け集積回路(ASIC)、ソフトウェア方法など)または汎用(たとえば、プロセッサ610、アプリケーション645など)のハードウェアおよび/またはソフトウェアを備え得る。さらに、ネットワーク入力/出力デバイスなど、他のコンピュータ処理デバイスへの接続が、用いられてもよい。
ある種の実施形態は、コンピュータシステム(コンピュータシステム600など)を用いて、本開示にしたって方法を実行し得る。たとえば、プロセッサ610が、ワーキングメモリ635内に記憶された1つまたは複数の命令(オペレーティングシステム640および/またはアプリケーションプログラム645のような他のコード内に組み込まれ得る)の1つまたは複数のシーケンスを実行することに応じて、説明された方法の手順のいくつかまたは全てが、コンピュータシステム600により実行され得る。このような命令は、1つまたは複数の記憶デバイス625などの他のコンピュータ可読媒体から、ワーキングメモリ635へと読み込まれ得る。単に一例として、ワーキングメモリ635内に格納された命令のシーケンスを実行することにより、プロセッサ610は、ここに説明する方法の1つまたは複数の手順を実行し得る。
ここに用いられる「機械可読媒体」および「コンピュータ可読媒体」なる用語は、機械が特定の方式で動作するようにするデータを提供することに関わるあらゆる媒体を示す。コンピュータシステム600を用いて実装された一実施形態では、様々なコンピュータ可読媒体が、実行用の命令/コードをプロセッサ610に提供することに関与し、および/または、このような命令/コードを(たとえば、信号として)記憶および/または担持するために使用され得る。多くの実装例では、コンピュータ可読媒体は、物理的および/または有体の記憶媒体である。このような媒体は、不揮発媒体、揮発媒体、および伝送媒体などの多くの形態をとり得るが、それに限定されるものではない。不揮発媒体は、たとえば、記憶デバイス625のような光学および/または磁気ディスクを含む。揮発媒体は、ワーキングメモリ635などの動的メモリを含むが、それに限定されるものではない。伝送媒体は、同軸ケーブル、銅線、および光ファイバや、バス605を構成する導線など、ならびに、通信サブシステム630(および/または、通信サブシステム630が他のデバイスとの通信を提供する媒体)の様々なコンポーネントを含むが、それに限定されるものではない。したがって、伝送媒体は、波動(電波および赤外データ通信の際に発生する電波、音響および/または光波を含むが、それに限定されるものではない)の形態をとることもできる。このようなメモリのこのような非一時的な実施形態は、モバイルデバイス8、テレビジョンディスプレイ114、カメラ18、コンピュータ処理デバイス108、HMD10、またはここに説明する任意のデバイスまたはデバイスの要素内で用いられ得る。同様に、ジェスチャ解析モジュール440もしくはコンテンツ制御モジュール450などのモジュール、またはここに説明する他のこのようなモジュールは、このようなメモリに記憶した命令により実装可能である。
物理的および/または有体のコンピュータ可読媒体の一般的な形態には、たとえば、フロッピー(登録商標)ディスク、フレキシブルディスク、ハードディスク、磁気テープ、もしくは他のあらゆる磁気媒体、CD-ROM、他のあらゆる光学媒体、パンチカード、紙テープ、穿孔パターンのある他のあらゆる物理媒体、RAM、PROM、EPROM、フラッシュEPROM、他のあらゆるメモリチップもしくはカートリッジ、以下に説明する搬送波、またはコンピュータが命令および/またはコードを読取可能な他のあらゆる媒体がある。
コンピュータ可読媒体の様々な形態は、1つまたは複数の実行用プロセッサ610に対する1つまたは複数の命令の1つまたは複数のシーケンスを担持することに関与し得る。単に一例として、命令は、はじめに、リモートコンピュータの磁気ディスクおよび/または光ディスクに担持されている。リモートコンピュータは、命令を動的メモリへと読み込み、その命令は信号として、伝送媒体を通じ、コンピュータシステム600に受信されおよび/または実行され得る。これらの信号は、電磁信号、音響信号、光学信号および/またはその他の形態をとり得るものであり、様々な実施形態において、命令が符号化され得る搬送波のあらゆる例である。
通信サブシステム630(および/またはそのコンポーネント)は、一般に、信号を受信するものであり、バス605は、信号(および/または信号に担持されるデータ、命令など)をワーキングメモリ635へと搬送し得る。そこから、プロセッサ605は、命令を取得して実行する。ワーキングメモリ635により受信された命令は、必要に応じて、プロセッサ610による実行前または実行後に非一時的記憶デバイス625に記憶されてもよい。
上述の方法、システム、およびデバイスは、例示である。様々な実施形態は、様々な手順またはコンポーネントを、適宜、排除、置換または追加し得る。たとえば、代替的な構成では、説明された方法は、説明された順序とは異なる順序で実行され得るものであり、ならびに/または、様々なステージが、追加され、排除され、および/または組み合わされ得る。また、ある種の実施形態を参照して説明された特徴は、様々な他の実施形態において組み合わされ得る。実施形態の様々な態様および要素が、同様に組み合わされ得る。また、技術は進展するので、発展することで、要素の多くが例示であり、開示内容の範囲は、これらの特定の例に限定されるものではない。
実施形態の完全な理解を提供する具体的な詳細が、説明において与えられている。しかしながら、実施形態は、これらの具体的詳細なしで、実施され得る。たとえば、周知の回路、処理、アルゴリズム、構造、および技術は、実施形態をわかりにくくしないように、不要な詳細を伴わないように図示されている。この説明は、例示的な実施形態を提供するのみであり、本発明の範囲、適用可能性、または構成を制限することは意図されていない。その代わりに、実施形態の上記説明は、当業者に、本発明の実施形態を実施できるようにしている。本発明の趣旨および範囲を逸脱することなく、要素の機能および配列に、様々な変更がなされ得る。
また、ある種の実施形態は、処理の方向のあるフローにて図示された処理として説明された。各々が、動作を連続的処理として説明し得るものの、動作は、並列的または同時に実行可能である。さらに、動作の順番は、再編成され得る。プロセスは、図においては含まれていない追加のステップを含み得る。さらに、本方法の実施形態は、ハードウェア、ソフトウェア、ファームウェア、ミドルウェア、マイクロコード、ハードウェア記述言語またはそれらの任意の組合せとして実装され得る。ソフトウェア、ファームウェア、ミドルウェアまたはマイクロコードとして実装された場合、関連するタスクを実行するプログラムコードまたはコードセグメントは、記憶媒体などのコンピュータ可読媒体内に格納され得る。プロセッサは、関連するタスクを実行し得る。
いくつかの実施形態について説明したが、様々な変形、代替構成、および均等物が、本開示の趣旨から逸脱することなく用いられ得る。たとえば、上述の要素は、より大規模なシステムの単なる一コンポーネントであってもよい。このシステムにおいて、他のルールが優先するか、または本発明の適用を修正してもよい。また、いくつものステップが、上述の要素の考慮前、考慮中、または考慮後に、実行され得る。したがって、上述の説明は、本開示の範囲を限定するものではない。