(57)【要約】  コンピュータデバイスを使用して視野の外側の手の予測位置に基づいてコンピュータデバイスのアプリケーションおよびシステムモーダル制御を開始するための方法およびデバイスが開示される。本方法は、ユーザの手の位置を追跡する手の位置追跡システムから手の動き情報を受信することを含む。本方法はまた、手の動き情報に基づいて、手がコンピュータデバイスの視野の外側にあると判別することを含む。本方法はさらに、視野の外側にある間の手の位置を予測することを含む。本方法はまた、手の予測位置に基づいてディスプレイ上のセカンダリＵＸと対話することを含む。【選択図】図２
2021521512.tif 000002
【特許請求の範囲】
【請求項１】
データおよび命令を格納するメモリと、
前記メモリと通信するプロセッサと、
プライマリユーザエクスペリエンス（ＵＸ）をレンダリングするディスプレイと、
前記メモリおよび前記プロセッサと通信するオペレーティングシステムと、を備え、前記オペレーティングシステムおよびプロセッサが、
ユーザの手の位置を追跡する手の位置追跡システムから手の動き情報を受信し、
前記手の動き情報に基づいて、前記手が前記ディスプレイの視野の外側にあると判別し、
前記視野の外側にある間の前記手の位置を予測し、
前記手の前記予測位置に基づいて、前記ディスプレイ上のセカンダリＵＸと対話するように動作可能である、コンピュータデバイス。
【請求項２】
前記視野の外側にある間の前記手の前記位置が、機械学習に基づいて予測される、請求項１に記載のコンピュータデバイス。
【請求項３】
前記オペレーティングシステムおよびプロセッサが、
前記手が前記視野の外側に位置する間に前記セカンダリＵＸと対話するためのコマンドを受信し、
前記コマンドに基づいて前記セカンダリＵＸと対話するようにさらに動作可能である、請求項１に記載のコンピュータデバイス。
【請求項４】
前記コマンドが、音声コマンドまたはハンドコントローラからの信号のうちの１つ以上である、請求項３に記載のコンピュータデバイス。
【請求項５】
前記オペレーティングシステムおよびプロセッサが、
前記手の第１の予測位置および第１のコマンドに基づく第１の命令に従って、前記セカンダリＵＸと対話し、
前記手の第２の予測位置および第２のコマンドに基づく第２の命令に従って、前記セカンダリＵＸと対話するようにさらに動作可能であり、前記第１の命令が、前記第２の命令とは異なり、前記第１の予測位置が、前記第２の予測位置とは異なる、請求項３に記載のコンピュータデバイス。
【請求項６】
前記オペレーティングシステムおよびプロセッサが、
前記手の動き情報に基づいて、前記手が前記ディスプレイの前記視野の内側に戻ったことを判別するようにさらに動作可能であり、前記コマンドが、前記手が前記視野の内側にある間に受信した前記手の動き情報に基づいている、請求項３に記載のコンピュータデバイス。
【請求項７】
前記視野の外側にある間の前記手の前記位置が、前記ユーザによって格納された履歴アクションに基づいてさらに予測される、請求項１に記載のコンピュータデバイス。
【請求項８】
前記手が前記ディスプレイの前記視野の外側にあると判別されたときに、前記セカンダリＵＸが、前記ディスプレイ上にレンダリングされる、請求項１に記載のコンピュータデバイス。
【請求項９】
コンピュータデバイスのモーダル制御のための方法であって、前記方法が、
ユーザの手の位置を追跡する手の位置追跡システムから手の動き情報を受信することと、
前記手の動き情報に基づいて、前記手がディスプレイの視野の外側にあると判別することと、
前記視野の外側にある間の前記手の位置を予測することと、
前記手の前記予測位置に基づいて、前記コンピュータデバイスのディスプレイにセカンダリＵＸをレンダリングすることと、を含む、方法。
【請求項１０】
前記視野の外側にある間の前記手の前記位置が、機械学習に基づいて予測される、請求項９に記載の方法。
【請求項１１】
前記セカンダリＵＸと対話するためのコマンドを受信することと、
前記コマンドに基づいて前記セカンダリＵＸと対話することと、をさらに含む、請求項９に記載の方法。
【請求項１２】
前記コマンドが、音声コマンドまたはハンドコントローラからの信号のうちの１つ以上である、請求項１１に記載の方法。
【請求項１３】
コンピュータデバイスによって実行可能な命令を格納するコンピュータ可読媒体であって、
前記コンピュータデバイスに、ユーザの手の位置を追跡する手の位置追跡システムから手の動き情報を受信させるための少なくとも１つの命令と、
前記コンピュータデバイスに、前記手の動き情報に基づいて、前記手がディスプレイの視野の外側にあると判別させるための少なくとも１つの命令と、
前記コンピュータデバイスに、前記視野の外側にある間に前記手の位置を予測させるための少なくとも１つの命令と、
前記コンピュータデバイスに、前記手の前記予測位置に基づいて、前記コンピュータデバイスのディスプレイ上にセカンダリＵＸをレンダリングさせるための少なくとも１つの命令と、を含む、コンピュータ可読媒体。
【請求項１４】
前記視野の外側にある間の前記手の前記位置が、機械学習に基づいて予測される、請求項１３に記載のコンピュータ可読媒体。
【請求項１５】
前記コンピュータデバイスに、前記手が前記視野の外側に位置する間に前記セカンダリＵＸと対話するためのコマンドを受信させるための少なくとも１つの命令と、
前記コンピュータデバイスに、前記コマンドに基づいて前記セカンダリＵＸと対話させるための少なくとも１つの命令と、をさらに含む、請求項１３に記載のコンピュータ可読媒体。
【発明の詳細な説明】
【背景技術】
【０００１】
本開示は、仮想現実（ＶＲ）デバイスのモーダル制御、より具体的には、手の位置に基づくＶＲデバイスのモーダル制御に関する。
【０００２】
ＶＲデバイスは、近年成長しているコンピュータデバイスの一領域である。これは、グラフィックスプロセッシングユニット（ＧＰＵ）を使用して、コンピュータデバイスから受信したレンダリング命令に基づいてコンピュータデバイスからディスプレイデバイスにグラフィックスをレンダリングするものである。ＶＲデバイスでは、ディスプレイデバイス上で生成されたシーンは、ユーザ入力に基づいて修正することができる。入力には、検出された頭部の移動（例えば、ヘッドマウントディスプレイ（ＨＭＤ）などのＶＲデバイスの検出された移動）またはＶＲデバイスの視野の内側の手が含まれ得る。
【０００３】
ＶＲデバイスのアプリケーションにおける一般的な問題は、ディスプレイデバイス上での複数のユーザエクスペリエンス（ＵＸ）の使用である。多くのＶＲデバイスの場合、表示ビューは、デスクトップデバイスで使用されるものと同様の平板状（ウィンドウ）のエクスペリエンスに基づいている。平板状のエクスペリエンスには、表示ビュー内の複数のウィンドウと、ウィンドウおよびアプリケーションの機能を実行するためのカーソルの配置とが含まれ得る。ＶＲデバイスでは、平板状のエクスペリエンスにより、ユーザがＶＲエクスペリエンスの豊かさを十分に享受できなくなる可能性がある。例えば、表示ビュー内で複数のウィンドウを同時に使用すると、複数のウィンドウによる表示ビュー内の混雑のために、ユーザによるプライマリＵＸとの対話が損なわれる可能性がある。別の例として、表示ビューから、または表示ビューへのウィンドウの削除および追加は、ＶＲデバイスの視野の内側でカーソル位置を移動するときのユーザの頭部による位置の変化のために、ユーザと別のウィンドウとの対話を妨げる可能性がある。
【０００４】
したがって、当技術分野では、ＶＲデバイスによって使用される複数のＵＸの使用を改善する必要がある。
【発明の概要】
【０００５】
以下では、そのような実装形態の基本的な理解を提供するために、本開示の１つ以上の実装形態の簡略化された要約を提示する。この要約は、想定される全ての実装形態の広範な概要ではなく、全ての実装形態の鍵となる要素または重要な要素を特定したり、一部または全ての実装形態の範囲を説明したりすることを目的としたものではない。要約の唯一の目的は、本開示の１つ以上の実装形態の一部の概念を、後で提示される、より詳細な説明の前置きとして簡略化された形で提示することである。
【０００６】
本開示は、デバイスの視野の外側の手の予測位置に基づいて、デバイスのアプリケーションおよびシステムモーダル制御を開始するための方法およびデバイスに関する。
【０００７】
一例の実装形態は、コンピュータデバイスに関連している。コンピュータデバイスは、データおよび命令を格納するメモリと、メモリと通信し、データおよび命令を実行するように構成されたプロセッサと、プライマリユーザエクスペリエンス（ＵＸ）をレンダリングするディスプレイと、メモリおよびプロセッサと通信するオペレーティングシステムと、を含むことができる。オペレーティングシステムおよびプロセッサは、ユーザの手の位置を追跡する手の位置追跡システムから手の動き情報を受信し、手の動き情報に基づいて手がディスプレイの視野の外側にあると判別し、機械学習を使用して、視野の外側にある間の手の位置を予測し、手の予測位置に基づいて、ディスプレイ上のセカンダリＵＸと対話するように動作可能であり得る。
【０００８】
別の例示的な実装形態は、コンピュータデバイスのモーダル制御のための方法に関する。本方法は、ユーザの手の位置を追跡する手の位置追跡システムから手の動き情報を受信し、手の動き情報に基づいて、手がコンピュータデバイスの視野の外側にあると判別し、視野の外側にある間の手の位置を予測し、手の予測位置に基づいて、コンピュータデバイスのディスプレイにセカンダリＵＸをレンダリングすることを含むことができる。
【０００９】
別の例示的な実装形態は、コンピュータデバイスによって実行可能な命令を格納するコンピュータ可読媒体に関する。コンピュータ可読媒体は、コンピュータデバイスに、ユーザの手の位置を追跡する手の位置追跡システムから手の動き情報を受信させるための少なくとも１つの命令と、コンピュータデバイスに、手の動き情報に基づいて、手がコンピュータデバイスの視野の外側にあると判別させるための少なくとも１つの命令と、コンピュータデバイスに、機械学習を使用して、視野の外側にある間に手の位置を予測させるための少なくとも１つの命令と、コンピュータデバイスに、手の予測位置に基づいて、コンピュータデバイスのディスプレイ上にセカンダリＵＸをレンダリングさせるための少なくとも１つの命令と、を含むことができる。
【００１０】
本開示の実装形態に関連する追加の利点および新規の特徴は、部分的には以下の説明に記載され、部分的には、以下を検討するか、またはその実践によって学習することにより当業者に明らかになるであろう。
【図面の簡単な説明】
【００１１】
図面では以下のとおりである：
【図１】本開示の実装形態による例示的なコンピュータデバイスの概略ブロック図である。
【図２】本開示の実装形態によるコンピュータデバイスの視野の一例である。
【図３】本開示の実装形態によるコンピュータデバイスにおけるモーダル制御の例示的な方法フローである。
【図４】本開示の実装形態による例示的なデバイスの概略ブロック図である。
【発明を実施するための形態】
【００１２】
本開示は、コンピュータデバイスの視野の外側の手の予測位置に基づいて、コンピュータデバイスのアプリケーションおよびシステムモーダル制御を開始するためのデバイスおよび方法に関する。本明細書で使用される場合、コンピュータデバイスは、（例えば、少なくとも１つの仮想環境入力からの）仮想現実（ＶＲ）画像、（例えば、少なくとも２つの仮想環境からの）複合現実（ＭＲ）画像、および／または（例えば、少なくとも１つの仮想環境入力および１つの現実環境入力からの）拡張現実（ＡＲ）画像を生成および／または表示するデバイスを含むことができる。
【００１３】
モーダル制御は、プライマリユーザエクスペリエンス（ＵＸ）がセカンダリＵＸに従属する手法である。モーダル制御の例では、ユーザは、プライマリＵＸが無効になっている、またはバックグラウンドに設定されているときに、セカンダリＵＸと対話してもよい。プライマリＵＸの例には、ＶＲ画像、ＭＲ画像、ＡＲ画像、デスクトップビュー、または第１のアプリケーションを含むプライマリウィンドウ／画像が含まれてもよい。セカンダリＵＸの例には、第２のアプリケーションなどのセカンダリウィンドウ／画像、第１のアプリケーションに関連付けられたアプリケーションまたはシステム設定を閲覧するためのユーティリティウィンドウ画像、メニュー、または使用可能なコマンドオプションが含まれてもよい。例示的な環境では、プライマリＵＸおよびセカンダリＵＸとのユーザによる対話は、ヘッドマウントディスプレイ（ＨＭＤ）の移動を検出するためのハンドコントローラまたはモーションセンサなどの入力デバイスを介したカーソルのユーザの対話に基づいて制御されてもよい。
【００１４】
ＶＲ環境のアプリケーションは、ユーザが環境に没入していると感じることができるため、テレビまたはコンピュータモニタでの一般的なエクスペリエンスと比較して、非常に豊富な対話エクスペリエンスを提供することができる。ただし、平板状の環境を使用すると、ＶＲ環境が損なわれる可能性がある。平板状の環境には、表示ビュー内の複数のウィンドウと、ウィンドウおよびアプリケーションの機能を実行するためのカーソルの配置が含まれる場合がある。例えば、平板状のエクスペリエンスでは、ＨＭＤのユーザがアクセスできる表示ビューが減少したり、ユーザがセカンダリＵＸにアクセスするためにプライマリＵＸからフォーカスを解放したり、ＶＲ環境でカーソルを移動するためにユーザの頭部を移動する必要がある場合がある。
【００１５】
本開示は、モーダル制御の使用を通じてユーザエクスペリエンスを改善するＶＲ環境内の平板状の環境を提供する。本開示は、ディスプレイの事前定義された３次元（３Ｄ）位置にセカンダリＵＸを配置することができる。セカンダリＵＸは、コンピュータデバイスの視野の外側にある位置にユーザの１つ以上の手を配置することに基づいて、ユーザにアクセスすることができる。例えば、コンピュータデバイスが、ユーザが１つ以上の手を視野の外側に移動したと判別すると、セカンダリＵＸにアクセスできるようになる場合がある。言い換えると、１つ以上の手は、コンピュータデバイスで追跡できなくなる。その代わりに、コンピュータデバイスは、人工知能および／または機械学習を使用して、コンピュータデバイスの視野の外側にあるときの１つ以上の手の位置を予測する。１つ以上の手の位置に基づいて、コンピュータデバイスは、ユーザが音声コントローラまたはサムパッドなどのハンドコントローラを使用してセカンダリＵＸと対話できるように、セカンダリＵＸをアクティブ化することができる。あるいは、ユーザは、コンピュータデバイスの視野に手（複数可）を戻すことによって、セカンダリＵＸと対話することができる。
【００１６】
本開示では、コンピュータデバイスは、ユーザが見ている場所、およびユーザの１つ以上の手が視野の内側にあるかどうかを監視する。１つ以上の手がコンピュータデバイスの視野の外側に移動すると、コンピュータデバイスは、テレメトリに基づいて、１つ以上の手が視野の外側に位置付けられる場所を予測することができる。
【００１７】
１つ以上の手が所定の期間視野の外側に留まる場合、モーダルコントローラは、１つ以上の手の予測位置を通知し、１つ以上の手の予測位置に関連付けられたセカンダリＵＸを表示することができる。次に、外部コントローラからの入力を受信して、セカンダリＵＸと対話するために使用できる。セカンダリＵＸとの対話は、ユーザが外部コントローラを介してセカンダリＵＸを却下し、最小化し、もしくは閉じるまで、または一部の実装形態では、１つ以上の手がコンピュータデバイスの視野に戻るまで、継続することができる。
【００１８】
本開示では、片手または両手がコンピュータデバイスの視野の外側にある必要があるかどうかは、モーダル制御を使用するアプリケーションに基づいてもよい。例えば、モーダル制御を使用する一部のアプリケーションは、片手（例えば右手）の使用のみに依存し得るが、一方、他のアプリケーションは、ＶＲデバイスの以下に説明する機能を実行するために両手を必要とし得る。したがって、本開示の残りの部分では、片手または両手の特定の使用を説明する特定の実装形態がない限り、１つ以上の手を手（複数可）と呼ぶ。
【００１９】
ここで図１および２を参照すると、手（複数可）２０４の予測位置２２０に基づいてモーダル制御を開始するための例示的なシステム１００は、ネットワーク１７を介して、および／または有線もしくは無線接続を介してディスプレイデバイス１０６と通信するコンピュータデバイス１０２を含むことができる。コンピュータデバイス１０２は、モーダル制御を実行するためにアプリケーション１０を実行することができる。アプリケーション１０は、例えば、ゲーム、オフィス生産性アプリケーション、または任意の他のタイプのアプリケーションを実行する実行可能なコンピュータ可読コードまたは命令であってもよい。実行されると、コンピュータデバイス１０２は、ディスプレイデバイス１０６上のアプリケーション１０の１つ以上のシーンを定義する１つ以上の画像（例えば、ディスプレイフレーム２５）を表示するための画像データを生成および通信することができる。ディスプレイデバイス１０６の例には、ＨＭＤデバイスが含まれてもよく、システム１００のユーザ２０２が閲覧するための画像を出力し得る１つ以上のディスプレイパネル３２（例えば、発光ダイオード（ＬＥＤ）、有機ＬＥＤ（ＯＬＥＤ）、または液晶ディスプレイ（ＬＣＤ））を有してもよい。
【００２０】
コンピュータデバイス１０２は、ネットワーク１７を介して、および／または有線もしくは無線接続を介して位置追跡システム１０４と通信して、アプリケーション１０に適用するための手の動き情報１４を取得することができる。手の動き情報は、視野２１０内の手（複数可）２０４の位置または移動、または視野２１０からの手（複数可）の不在に対応することができる。位置追跡システムは、ユーザ２０２の手（複数可）２０４を追跡するための視野２１０を生成するように構成される。位置追跡システム１０４は、これらに限定されないが、１つ以上のセンサ（例えば、カメラ）、エミッタ（例えば、ＩＲ  ＬＥＤ）、慣性デバイス（加速度計および／もしくはジャイロスコープ）、ならびに／またはコンピュータデバイス１０２の視野２１０内のシステム１００のユーザ２０２の手（複数可）２０４の位置、向き、移動、移動の方向、および／または移動の速度を検出し得る任意の他の位置感知システムを含むことができる。コンピュータデバイス１０２の視野２１０の例が図２に示されている。一例では、視野２１０は、位置追跡システム１０４のセンサ（例えば、カメラ）の感知領域であってもよい。ＭＲシステムおよびＶＲシステムでは、視野２１０は、ディスプレイデバイス１０６（例えば、ＨＭＤデバイス）の表示領域に対応し得る。例えば、ＭＲシステムでは、視野２１０は、ディスプレイデバイス１０６を使用している間のユーザ２０２の実際の視野に対応してもよい。別の例として、ＶＲシステムでは、視野２１０は、ディスプレイデバイス１０６を使用している間のユーザ２０２の仮想現実ビューに対応してもよい。
【００２１】
一部の実装形態では、位置追跡システム１０４は、１つ以上の深度カメラおよび１つ以上の慣性測定ユニット（ＩＭＵ）、追跡ソフトウェア、同時位置特定およびマッピングアルゴリズム、ならびに１つ以上のプロセッサを含み得るが、これらに限定されない。他の実装形態では、位置追跡システム１０４は、環境内に位置する１つ以上のエミッタ（例えば、ＩＲ  ＬＥＤ）を検出するための１つ以上のセンサ（例えば、カメラ）、および１つ以上のプロセッサを含み得るが、これらに限定されない。位置追跡システム１０４は、ユーザ２０２の両方の手（複数可）２０４を別々に追跡するように構成することができる。例えば、位置追跡システム１０４は、第１の手（例えば、右手）の移動を判別し、第１の手がコンピュータデバイス１０２の視野２１０の外側もしくは内側にあるかどうかを判別し、かつ／または第２の手（例えば、左手）の移動を判別し、第２の手が視野２１０の外側もしくは内側にあるかどうかを判別してもよい。
【００２２】
一部の実装形態では、位置追跡システム１０４は、ディスプレイデバイス１０６（例えば、ＨＭＤ）上に位置してもよく、カメラ、ＩＭＵ、追跡デバイス、またはユーザの頭部の移動を追跡するための他の任意のデバイスを含むことができる。一例では、位置追跡システム１０４は、手の動き情報１４を生成する際に、ユーザの頭部の移動（例えば、手（複数可）２０４を視野２１０の外側にするユーザの頭部による移動）とユーザの手の移動（例えば、手（複数可）２０４を視野２１０の外に出す手の移動）とを区別するように構成されてもよい。
【００２３】
コンピュータデバイス１０２はまた、ネットワーク１７を介して、および／または有線もしくは無線接続を介して手予測システム１１０と通信して、アプリケーション１０に適用するための手予測情報１１２を取得することができる。手予測システム１１０は、図２に示すように、手（複数可）２０４がコンピュータデバイス１０２の視野２１０の外側にあるときに、ユーザ２０２の手（複数可）２０４の位置を予測するように構成される。例えば、ユーザ２０２の手（複数可）２０４が視野２１０から除かれると、位置追跡システム１０４は、もはや手（複数可）２０４の位置を決定することができなくなる。したがって、手予測システム１１０は、コンピュータデバイス１０２の視野２１０の外側にあるとき、手（複数可）２０４の位置（予測位置２２０）を予測する。手（複数可）２０４の位置の予測は、手の動き情報１４に基づいてもよい。例えば、手（複数可）２０４の位置の予測は、視野２１０の内側から視野２１０の外側に移動する際の手（複数可）の２０４の位置、向き、移動、移動の方向、および／または移動の速度に基づいてもよい。一部の例では、手（複数可）２０４の位置の予測は、頭部の移動に関連する情報を除外してもよい。
【００２４】
一部の実装形態では、手予測システム１１０は、視野２１０の外側にあるときに手（複数可）２０４の位置を予測し、手予測情報１１２を生成するように構成された機械学習システムであり得る。手予測システム１１０は、教師あり学習、教師なし学習、または両方の組み合わせを使用する機械学習モデルに基づいてトレーニングすることができる。教師あり学習を使用して機械学習モデルをトレーニングする場合、モデルにラベル付きの入力とその目的の出力を提示して、入力を出力にマッピングする一般的なルールを学習するようにモデルをトレーニングできる。教師なし学習を使用して機械学習モデルをトレーニングする場合、ラベルが機械学習モデルに与えられない場合があり、そのような場合、モデルは入力の構造を決定し、（例えば、モデルが既に教師あり学習を経ている場合）モデルは入力内の隠れたパターンを発見することができ、かつ／または特定の機能を予測することについてより多くを学習することができる。
【００２５】
さらに、コンピュータデバイス１０２は、ネットワーク１７を介して、および／または有線もしくは無線接続を介して１つ以上の外部コントローラ１０８と通信して、アプリケーション１０に適用する対話情報１２を取得することができる。外部コントローラ１０８は、ゲームパッド、ジョイスティック、キーボード、マウス、音声コントローラ、またはアプリケーション１０に関連付けられたゲーム、仮想環境、または拡張環境などの仮想環境のための対話情報１２を提供することができる任意の他の入力デバイスを含み得るが、これらに限定されない。
【００２６】
コンピュータデバイス１０２は、１つ以上のプロセッサ３６および／またはメモリ３８によって実行されるオペレーティングシステム１１５を含むことができる。コンピュータデバイス１０２のメモリ３８は、オペレーティングシステム１１５を定義し、かつ／またはオペレーティングシステム１１５に関連付けられるデータおよび／またはコンピュータ実行可能命令を格納するように構成することができ、プロセッサ３６は、オペレーティングシステム１１５をインスタンス化するためにそのようなデータおよび／または命令を実行することができる。メモリ３８の例には、ランダムアクセスメモリ（ＲＡＭ）、読み取り専用メモリ（ＲＯＭ）、テープ、磁気ディスク、光ディスク、揮発性メモリ、不揮発性メモリ、またはコンピュータによって使用可能な任意のタイプのメモリ、および／またはそれらの任意の組み合わせが含まれ得るが、これらに限定されない。プロセッサ３６の例には、コントローラ、マイクロコントローラ、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、システムオンチップ（ＳｏＣ）、またはその他のプログラマブルロジックもしくはステートマシンを含む、本明細書に記載されるように特別にプログラムされた任意のプロセッサを含み得るが、これらに限定されない。
【００２７】
コンピュータデバイス１０２は、ネットワーク１７に接続可能であり得る任意のモバイルまたは固定コンピュータデバイスを含むことができる。コンピュータデバイス１０２は、例えば、デスクトップもしくはラップトップもしくはタブレットコンピュータ、携帯電話、ゲームデバイス、ＭＲデバイス、ＶＲデバイス、音楽デバイス、テレビ、ナビゲーションシステム、カメラ、携帯情報端末（ＰＤＡ）、ハンドヘルドデバイス、あるいは１つ以上の他のデバイスおよび／または通信ネットワークとの有線および／もしくは無線接続機能を備えたその他のコンピュータデバイスであってもよい。
【００２８】
オペレーティングシステム１１５は、１つ以上の画像フレームをレンダリングし、ディスプレイデバイス１０６上に提示するためにレンダリングされた画像フレームをいつ送信するかを判別するように動作可能なグラフィックス処理ユニット（ＧＰＵ）２４を含むことができる。特に、ＧＰＵ２４は、１つ以上のアプリケーション１０からデータおよび／または命令を受信することができ、受信したデータおよび／または命令に基づいて１つ以上のディスプレイフレーム（例えば、ディスプレイフレーム２５）を生成することができる。ＧＰＵ２４は、ディスプレイコントローラ２６と通信して、ディスプレイデバイス１０６上に提示するためにレンダリングされた画像フレーム（例えば、ディスプレイフレーム２５）を送信することができる。
【００２９】
さらに、オペレーティングシステム１１５はまた、ディスプレイポート３０を介してディスプレイデバイス１０６と通信するために、プロセッサ３６および／またはメモリ３８と通信可能に結合され得るディスプレイインターフェース２８を含むことができる。一実装形態では、ディスプレイコントローラ２６は、ディスプレイデバイス１０６に表示するためにレンダリングされた画像（例えば、ディスプレイフレーム２５）を通信するようにディスプレイインターフェース２８に命令することができる。ディスプレイポート３０は、レンダリングされた画像をディスプレイポート３４に送信することができる。ディスプレイポート３０は、高精細マルチメディアインターフェース（ＨＤＭＩ）ポート、ディスプレイシリアルインターフェース（ＤＳＩ）ポート、モバイル産業プロセッサインターフェース（ＭＩＰＩ）ＤＳＩポート、ユニバーサルシリアルバス（ＵＳＢ）ポート、ファイアワイヤポート、または、例えば、コンピュータデバイス１０２とディスプレイデバイス１０６との間のネットワーク１７を介した通信を可能にし得る他の埋め込み型もしくは外部の有線もしくは無線ディスプレイポートを含むが、これらに限定されない様々なタイプのポートを含んでもよい。
【００３０】
コンピュータデバイス１０２はまた、ディスプレイデバイス１０６上に１つ以上の画像（例えば、ディスプレイフレーム２５）を提示するためにプロセッサ３６によって実行され得る１つ以上のアプリケーション１０を含むことができる。プロセッサ３６によって実行される１つ以上のアプリケーション１０はまた、オペレーティングシステム１１５および／またはＧＰＵ２４と協調して動作して、例えば、モーダルコントローラ２０を実行し、ディスプレイデバイス１０６上に提示するための画像フレーム（複数可）を生成することができる。
【００３１】
１つ以上のアプリケーション１０は、手の動き情報１４および手の予測情報１１２に基づいて、ディスプレイパネル３２上に１つ以上のディスプレイフレーム２５をレンダリングするように動作可能なモーダルコントローラ２０を含むことができる。実装形態において、モーダルコントローラ２０は、プライマリユーザエクスペリエンス（ＵＸ）１２０および／またはセカンダリＵＸ１２２をいつ表示するかを判別することができる。一実装形態では、プライマリＵＸ１２０は、ユーザ２０２の手（複数可）２０４がコンピュータデバイス１０２の視野２１０内にあるときに表示され得、セカンダリＵＸ１２２は、手（複数可）２０４がコンピュータ１０２の視野２１０の外側にあるときに表示され得る。一部の態様では、セカンダリＵＸ１２２は、プライマリＵＸ１２０と同時に、または別のＵＸと同時に、単独で表示されてもよい。
【００３２】
一実装形態では、モーダルコントローラ２０は、手の動き情報１４に基づいて、ユーザ２０２の手（複数可）２０４がコンピュータデバイス１０２の視野２１０の内側にあるか外側にあるかを判別する。手（複数可）２０４が内部にあるかどうかを判別することは、手（複数可）２０４がコンピュータデバイス１０２の視野２１０内にあることを感知する位置追跡システム１０４のセンサ（例えば、カメラ）に基づいてもよい。言い換えると、手（複数可）２０４が位置追跡システム１０４のセンサの追跡領域内にあるとき（すなわち、手（複数可）２０４が位置追跡システム１０４によって追跡可能であるとき）、手（複数可）２０４は、コンピュータデバイス１０２の視野の内側にあるか、または視野内にある。逆に、手（複数可）２０４が位置追跡システム１０４のセンサの追跡領域内にないとき（すなわち、手（複数可）２０４が位置追跡システム１０４によって追跡可能でないとき）、手（複数可）２０４は、コンピュータデバイス１０２の視野の外側にある。さらに、モーダルコントローラ２０は、手（複数可）２０４が所定の期間（例えば、１秒）より長く視野２１０の外側に留まっているときに、手（複数可）２０４が視野２１０の内側にあるか外側にあるかを判別することができる。一実装形態では、所定の期間は、ユーザ２０２の習慣、移動、および行動を考慮に入れることができる機械学習に基づいて決定することができる。
【００３３】
一実装形態では、モーダルコントローラ２０はまた、手（複数可）２０４が手の移動を介して視野２１０の外に移動されたことを判別することができる。
【００３４】
ユーザ２０２の手（複数可）２０４がコンピュータデバイス１０２の視野２１０の外側にあると判別されると、モーダルコントローラ２０は、手の予測情報１１２に基づいて、手（複数可）２０４の予測位置２２０を決定することができる。予測位置２２０は、モーダルコントローラ２０によって使用されて、ディスプレイデバイス１０６のセカンダリＵＸをレンダリングすることができる。一部の実装形態では、セカンダリＵＸ１２２は、手２０４（複数可）の予測位置に関連付けられている。例えば、予測位置が第１の予測位置（例えば、視野２１０の外側で肩の高さにあるユーザ２０２の手（複数可）２０４）である場合、セカンダリＵＸ１２２は、第１のユーティリティＵＸ（例えば、アプリケーション設定）であってもよく、予測位置が第２の予測位置（例えば、視野２１０の外側で腰の高さにあるユーザ２０２の手（複数可）２０４）である場合、セカンダリＵＸ１２２は、第２のユーティリティＵＸ（例えば、システム設定）であってもよい。
【００３５】
モーダルコントローラ２０はさらに、外部コントローラ（複数可）１０８または手（複数可）２０４から入力を受信してセカンダリＵＸ１２２と対話するように動作可能であり得る。入力は、外部コントローラ１０８（複数可）または手（複数可）２０４の現実世界での移動であり得る。例えば、モーダルコントローラ２０は、ジョイスティックの移動および／またはボタンのクリックに対応する外部コントローラ（複数可）１０８（例えば、ハンドコントローラ）から仮想動き情報１２を受信してもよい。別の例では、セカンダリＵＸ１２２が表示されている間、手（複数可）２０４は視野２１０に戻ってもよく、手の動き情報１４は、視野２１０内の手（複数可）２０４の位置または移動に対応してもよい。セカンダリＵＸ１２２との対話は、セカンダリウィンドウサイズの調整（例えば、ウィンドウの却下、最小化、または最大化）、オブジェクトの選択（例えば、ボタンまたはテキストの選択）、メニューのスクロール、または他のタイプのセカンダリＵＸ１２２との対話の実行を含むことができる。
【００３６】
一部の実装形態では、位置追跡システム１０４は、セカンダリＵＸ１２２がディスプレイデバイス１０６上にレンダリングされるときに、第１の手（例えば、右手）による移動が、セカンダリＵＸ１２２（例えば、第２のアプリケーション、設定）と対話するためにモーダルコントローラ２０によって使用され得、かつ第２の手（例えば、左手）による移動が、プライマリＵＸ１２０（例えば、オペレーティングシステムのＵＸ、第１のアプリケーション、アプリケーションの起動、アプリケーション間の切り替え、通知との対話）と対話するためにモーダルコントローラ２０によって使用され得るように、ユーザ２０２の両手２０４を別々に追跡してもよい。モーダルコントローラ２０は、入力（例えば、仮想動き情報１２または手の動き情報１４）を、ディスプレイフレーム２５のセカンダリＵＸ１２２上の対話（例えば、カーソル移動またはボタンクリック）に対応する仮想座標に変換することができる。
【００３７】
互いに分離しているように示されているが、当業者は、コンピュータデバイス１０２、位置追跡システム１０４、ディスプレイデバイス１０６、外部コントローラ１０８、および／または手予測システム１１０のうちの１つ以上が、互いに離れていてもよく、互いに位置していてもよく、または互いに部分的に離れていてもよく、互いに部分的に位置していてもよいことを認識するであろう。
【００３８】
図３を参照すると、コンピュータデバイス１０２のモーダル制御のための例示的な方法３００が説明される。ブロック３０２において、方法３００は、ユーザの手（複数可）の位置を追跡する手の位置追跡システムから手の動き情報を受信することを含むことができる。例えば、図１および図２に示されるように、コンピュータデバイス１０２は、位置追跡システム１０４から手の動き情報１４を受信してもよい。一例では、手の動き情報１４は、手（複数可）２０４がコンピュータデバイス１０２の視野２１０内にあるか、または視野２１０からの手（複数可）の不在である間のユーザ２０２の手（複数可）２０４の位置情報に対応してもよい。
【００３９】
ブロック３０４において、方法３００は、手の動き情報に基づいて、手がコンピュータデバイスの視野の外側にあると判別することを含むことができる。例えば、図１および図２に示されるように、コンピュータデバイス１０２は、位置決め追跡システム１０４のセンサが手（複数可）２０４を検出しない場合、手（複数可）２０４が視野２１０の外側にあると判別してもよい。
【００４０】
ブロック３０６において、方法３００は、視野の外側にある間の手（複数可）の位置を予測することを含むことができる。例えば、図１および図２に示されるように、コンピュータデバイス１０２は、手予測システム１１０から手予測情報１１２を受信してもよい。手予測情報１１２は、手（複数可）２０４の予測位置２２０を決定する機械学習に基づいてもよい。
【００４１】
一部の例では、手の予測情報１１２はさらに、ユーザ２０２によって実行された格納された履歴アクションに基づいてもよい。例えば、コンピュータデバイス１０２は、ユーザ２０２によって実行された任意のアクションをメモリ３８に格納してもよい。保存されたアクションは、ユーザ２０２によって実行される傾向および動きから学習し、手の予測情報１１２をより良く予測するために、コンピュータデバイスによって使用され得る。一部の例では、履歴情報は、手予測システム１１０と共有されてもよい。
【００４２】
ブロック３０８において、本方法は、手（複数可）の予測位置に基づいて、ディスプレイ上にセカンダリＵＸをレンダリングすることを含むことができる。例えば、図１および図２に示されるように、モーダルコントローラ２０は、手の予測情報１１２に基づいて、コンピュータデバイス１０２の視野２１０の外側にある間の手（複数可）２０４の位置を決定してもよい。予測位置２２０に基づいて、モーダルコントローラ２０は、ディスプレイパネル３２にセカンダリＵＸ１２２を表示させるようにディスプレイインターフェース２８に命令することができる。
【００４３】
ブロック３１０において、本方法は、任意選択で、手の動き情報に基づいて、手（複数可）がディスプレイの視野の内側に戻ったことを判別することを含むことができる。例えば、図１および図２に示されるように、モーダルコントローラ２０は、手（複数可）２０４が視野２１０に戻った後、手の動き情報１４を受信してもよい。一部の実装形態では、モーダルコントローラ２０が手（複数可）２０４が視野２１０の内側に戻ったと判別すると、コンピュータデバイス１０２は、セカンダリＵＸ１２２を却下、最小化、または閉じることができる。あるいは、モーダルコントローラ２０は、以下のブロック３１２で説明されるように、セカンダリＵＸ１２２と対話するためのコマンドを受信することができる。
【００４４】
ブロック３１２で、本方法は、任意選択で、セカンダリＵＸと対話するためのコマンドを受信することを含むことができる。例えば、図１に示されるように、モーダルコントローラ２０は、１つ以上の外部コントローラ１０８または位置追跡システム１０４からコマンドを受信してもよい。一例では、コマンドは、セカンダリＵＸ１２２との対話を示すために、ハンドコントローラまたは音声コントローラからのコマンドに対応してもよい。あるいは、コマンドは、手（複数可）２０４が視野２１０の内側に戻った後に位置追跡システム１０４によって検出された手の動きに対応してもよい。
【００４５】
ブロック３１４において、本方法は、任意選択で、コマンドに基づいてセカンダリＵＸと対話することを含むことができる。例えば、図１に示されるように、モーダルコントローラ２０は、外部コントローラ１０８または位置追跡システム１０４から受信されたコマンドに基づいて、セカンダリＵＸ１２２と対話してもよい。前述したように、セカンダリＵＸ１２２との対話は、例えば、ボタンをクリックすること、画像またはテキストを強調表示すること、またはセカンダリＵＸ１２２との他の任意の対話を含むことができる。さらに、対話は、ユーザ２０２の手（複数可）２０４の予測位置に基づいて決定することができる。例えば、手（複数可）２０４が第１の位置であると予測される場合、セカンダリＵＸ１２２は、例えば、第１のアプリケーションまたは第２のアプリケーションに関連付けられたアプリケーション設定ウィンドウであってもよく、手（複数可）２０４が第２の場所であると予測される場合、セカンダリＵＸ１２２は、例えば、システム設定ウィンドウまたは第３のアプリケーションであってもよい。したがって、セカンダリＵＸ１２２との対話は、表示されているセカンダリＵＸ１２２のタイプに基づいて異なる可能性がある。
【００４６】
ここで図４を参照すると、図１と比較した追加のコンポーネントの詳細を含む、実装形態によるコンピュータデバイス１０２の例が示されている。
【００４７】
コンピュータデバイス１０２は、本明細書で説明されるように、ハードウェア、ソフトウェア、およびサービスを利用する１つ以上の当事者との通信を確立および維持することを提供する通信コンポーネント４０を含むことができる。通信コンポーネント４０は、コンピュータデバイス１０２上のコンポーネント間、ならびにコンピュータデバイス１０２と、通信ネットワークを横切って配置されたデバイスおよび／またはコンピュータデバイス１０２にシリアルまたはローカルに接続されたデバイスなどの外部デバイスとの間の通信を行うことができる。例えば、通信コンポーネント４０は、１つ以上のバスを含んでもよく、さらに、外部デバイスと対話するように動作可能な、送信機および受信機にそれぞれ関連する送信チェーンコンポーネントおよび受信チェーンコンポーネントを含んでもよい。
【００４８】
さらに、コンピュータデバイス１０２は、本明細書に記載の実装形態に関連して使用される情報、データベース、およびプログラムの大容量記憶装置を提供する、ハードウェアならびに／またはソフトウェアの任意の適切な組み合わせであり得るデータストア４２を含むことができる。例えば、データストア４２は、アプリケーション１０（図１）、ＧＰＵ２４（図１）、ディスプレイコントローラ２６（図１）、および／またはディスプレイインターフェース２８（図１）のためのデータリポジトリであってもよい。
【００４９】
コンピュータデバイス１０２はまた、コンピュータデバイス１０２のユーザからの入力を受信するように動作可能であり、さらにユーザに提示するための出力を生成するように動作可能なユーザインターフェースコンポーネント４４を含むことができる。ユーザインターフェースコンポーネント４４は、キーボード、テンキー、マウス、タッチセンシティブディスプレイ、ナビゲーションキー、機能キー、マイクロフォン、音声認識コンポーネント、ユーザからの入力を受信できるその他のメカニズム、またはそれらの任意の組み合わせを含むがこれらに限定されない１つ以上の入力デバイスを含むことができる。さらに、ユーザインターフェースコンポーネント４４は、ディスプレイ、スピーカー、触覚フィードバック機構、プリンタ、ユーザに出力を提示することができる任意の他の機構、またはそれらの任意の組み合わせを含むがこれらに限定されない１つ以上の出力デバイスを含むことができる。
【００５０】
実装形態では、ユーザインターフェースコンポーネント４４は、アプリケーション１０、ＧＰＵ２４、ディスプレイコントローラ２６、および／またはディスプレイインターフェース２８の動作に対応するメッセージを送信および／または受信することができる。さらに、プロセッサ３６は、アプリケーション１０、ＧＰＵ２４、ディスプレイコントローラ２６、および／またはディスプレイインターフェース２８を実行することができ、メモリ３８またはデータストア４２は、それらを格納することができる。
【００５１】
このアプリケーションで使用される場合、「コンポーネント」、「システム」などの用語は、ハードウェア、ファームウェア、ハードウェアとソフトウェアの組み合わせ、ソフトウェア、または実行中のソフトウェアなどのコンピュータ関連エンティティを含むことが意図されているが、これらに限定されない。例えば、コンポーネントは、プロセッサ上で実行されるプロセス、プロセッサ、オブジェクト、実行可能ファイル、実行スレッド、プログラム、および／またはコンピュータであり得るが、これらに限定されない。実例として、コンピュータデバイス上で実行されているアプリケーションとコンピュータデバイスの両方をコンポーネントとすることができる。１つ以上のコンポーネントは、プロセスおよび／または実行スレッド内に存在することができ、コンポーネントは、１つのコンピュータにローカライズされ、および／または２つまたは複数のコンピュータに分散させることができる。さらに、これらのコンポーネントは、様々なデータ構造が格納されている様々なコンピュータ可読媒体から実行できる。コンポーネントは、１つ以上のデータパケット、例えば、信号を介して、ローカルシステム、分散システム、および／またはインターネットなどのネットワークを介して別のコンポーネントと対話する１つのコンポーネントからのデータなどを有する信号に従って、ローカルおよび／またはリモートプロセスの方法で通信してもよい。
【００５２】
さらに、「または」という用語は、排他的な「または」ではなく、包括的な「または」を意味することを意図している。つまり、特に明記されていない限り、または文脈から明らかでない限り、「ＸはＡまたはＢを採用する」という表現は、自然な包括的な組み合わせのうちのいずれかを意味することが意図されている。すなわち、「ＸはＡまたはＢを採用する」という表現は、「ＸはＡを採用する」「ＸはＢを採用する」または「ＸはＡおよびＢの両方を採用する」のいずれかの場合にも成立する。また、本出願および添付の特許請求の範囲で使用される「ａ」および「ａｎ」という冠詞は、特に明記されていない限り、または文脈から単数形に向けられていることが明らかでない限り、一般的に「１つ以上」を意味すると解釈されるべきである。
【００５３】
多数のデバイス、コンポーネント、モジュールなどを含み得るシステムに関して、様々な実装形態または機能を提示してきた。様々なシステムは、追加のデバイス、コンポーネント、モジュールなどを含む場合があり、かつ／または図に関連して説明されたデバイス、コンポーネント、モジュールなどの全てを含まない場合があることを理解および認識されたい。これらの手法の組み合わせも使用することができる。
【００５４】
本明細書に開示される実施形態に関連して説明される方法の様々な例示的な論理、論理ブロック、およびアクションは、汎用プロセッサ、デジタル信号プロセッサ（ＤＳＰ）、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、または他のプログラマブルロジックデバイス、ディスクリートゲートもしくはトランジスタロジック、ディスクリートハードウェアコンポーネント、あるいは本明細書に記載の機能を実行するように設計されたそれらの任意の組み合わせのうちの特別にプログラムされたものを使用して実装または実行することができる。汎用プロセッサは、マイクロプロセッサであってもよいが、代替として、プロセッサは、任意の従来のプロセッサ、コントローラ、マイクロコントローラ、またはステートマシンであってもよい。プロセッサはまた、コンピュータデバイスの組み合わせ、例えば、ＤＳＰとマイクロプロセッサの組み合わせ、複数のマイクロプロセッサ、ＤＳＰコアと組み合わせた１つ以上のマイクロプロセッサ、または任意の他のそのような構成として実装されてもよい。さらに、少なくとも１つのプロセッサは、上記のステップおよび／またはアクションのうちの１つ以上を実行するように動作可能な１つ以上のコンポーネントを含んでもよい。
【００５５】
さらに、本明細書に開示される実装形態に関連して説明される方法またはアルゴリズムのステップおよび／またはアクションは、ハードウェア、プロセッサによって実行されるソフトウェアモジュール、または２つの組み合わせで直接具体化することができる。ソフトウェアモジュールは、ＲＡＭメモリ、フラッシュメモリ、ＲＯＭメモリ、ＥＰＲＯＭメモリ、ＥＥＰＲＯＭメモリ、レジスタ、ハードディスク、リムーバブルディスク、ＣＤ−ＲＯＭ、または当技術分野で知られている他の形式の記憶媒体に常駐することができる。例示的な記憶媒体は、プロセッサが記憶媒体から情報を読み取り、記憶媒体に情報を書き込むことができるように、プロセッサに結合してもよい。あるいは、記憶媒体はプロセッサと一体であってもよい。さらに、一部の実装形態では、プロセッサおよび記憶媒体は、ＡＳＩＣに常駐することができる。さらに、ＡＳＩＣはユーザ端末に常駐してもよい。あるいは、プロセッサおよび記憶媒体は、ユーザ端末内の個別のコンポーネントとして存在してもよい。さらに、一部の実装形態では、方法またはアルゴリズムのステップおよび／またはアクションは、機械可読媒体および／またはコンピュータ可読媒体上のコードおよび／または命令の１つまたは任意の組み合わせまたはセットとして存在してもよく、これらは、コンピュータプログラム製品に組み込まれてもよい。
【００５６】
１つ以上の実装形態では、説明された機能は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組み合わせで実装することができる。ソフトウェアで実装される場合、機能は、コンピュータ可読媒体上に１つ以上の命令またはコードとして格納または送信することができる。コンピュータ可読媒体は、コンピュータ記憶媒体と、ある場所から別の場所へのコンピュータプログラムの転送を容易にする任意の媒体を含む通信媒体の両方を含む。記憶媒体は、コンピュータがアクセスできる任意の利用可能な媒体であってもよい。例示的に、またこれに限定されない方法で、そのようなコンピュータ可読媒体は、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、ＣＤ−ＲＯＭまたは他の光ディスクストレージ、磁気ディスクストレージまたは他の磁気ストレージデバイス、または命令またはデータ構造の形で所望のプログラムコードを格納するために使用することができ、コンピュータによってアクセスすることができる任意の他の媒体を含んでもよい。本明細書で使用されるディスクおよびディスクには、コンパクトディスク（ＣＤ）、レーザディスク、光ディスク、デジタル多用途ディスク（ＤＶＤ）、フロッピーディスクおよびＢｌｕ−ｒａｙディスクが含まれ、ディスクは通常、データを磁気的に再生し、ディスクは通常、レーザを使用してデータを光学的に再生する。上記の組み合わせも、コンピュータ可読媒体の範囲に含める必要がある。
【００５７】
本開示の実装形態は、その例に関連して説明されてきたが、上記の実装形態の変形例および修正例は、本開示の範囲から逸脱することなく行われ得ることが当業者によって理解されるであろう。他の実装形態は、本明細書に開示された実施例による仕様の検討または実践から当業者には明らかであろう。
【図１】
2021521512.tif 000003
【図２】
2021521512.tif 000004
【図３】
2021521512.tif 000005
【図４】
2021521512.tif 000006
【国際調査報告】
2021521512.tif 000007
2021521512.tif 000008