(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-06-10
(45)【発行日】2024-06-18
(54)【発明の名称】アバタ移動のためのマルチモードの手の場所および配向
(51)【国際特許分類】
G06T 19/00 20110101AFI20240611BHJP
G06F 3/01 20060101ALI20240611BHJP
G06F 3/04815 20220101ALI20240611BHJP
【FI】
G06T19/00 A
G06F3/01 570
G06F3/04815
(21)【出願番号】P 2021528983
(86)(22)【出願日】2019-11-22
(86)【国際出願番号】 US2019062848
(87)【国際公開番号】W WO2020112561
(87)【国際公開日】2020-06-04
【審査請求日】2022-11-21
【審判番号】
【審判請求日】2023-09-28
(32)【優先日】2018-11-30
(33)【優先権主張国・地域又は機関】US
【早期審査対象出願】
(73)【特許権者】
【識別番号】514108838
【氏名又は名称】マジック リープ, インコーポレイテッド
【氏名又は名称原語表記】Magic Leap,Inc.
【住所又は居所原語表記】7500 W SUNRISE BLVD,PLANTATION,FL 33322 USA
(74)【代理人】
【識別番号】100078282
【氏名又は名称】山本 秀策
(74)【代理人】
【識別番号】100113413
【氏名又は名称】森下 夏樹
(74)【代理人】
【識別番号】100181674
【氏名又は名称】飯田 貴敏
(74)【代理人】
【識別番号】100181641
【氏名又は名称】石川 大輔
(74)【代理人】
【識別番号】230113332
【氏名又は名称】山本 健策
(72)【発明者】
【氏名】シュリーマン, フェデリコ
(72)【発明者】
【氏名】ロペス-フレスケット, フランシスコ
(72)【発明者】
【氏名】ング-ソウ-ヒン, ビクター
(72)【発明者】
【氏名】ペイシャ, トミスラヴ
【合議体】
【審判長】山澤 宏
【審判官】篠塚 隆
【審判官】野崎 大進
(56)【参考文献】
【文献】国際公開第2018/195099(WO,A1)
【文献】特開2013-214285(JP,A)
【文献】米国特許第8180583(US,B1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F3/01
G06F3/04815
G06T19/00
(57)【特許請求の範囲】
【請求項1】
コンピューティングシステムによって実行されるコンピュータ化された方法であって、前記コンピューティングシステムは、1つ以上のハードウェアコンピュータプロセッサと1つ以上の非一過性のコンピュータ読み取り可能な記憶デバイスとを有し、前記1つ以上の非一過性のコンピュータ読み取り可能な記憶デバイスは、前記コンピュータ化された方法を実行するために、前記コンピューティングシステムによって実行可能なソフトウェア命令を記憶しており、前記コンピュータ化された方法は、
複合現実デバイスの対応する複数のセンサからの複数のセンサデータストリームにアクセスすることであって、前記複合現実デバイスは、第1のセンサデータストリームを提供する前向きカメラを有するヘッドセットと、第2のセンサデータストリームを提供する慣性運動センサを有するハンドヘルドコントローラとを備える、ことと、
前記第1のセンサデータストリームおよび前記第2のセンサデータストリームを含む複数のセンサデータストリームのそれぞれに対して、
ユーザのアクティブな手を正確に推定するために前記センサデータストリームが使用可能である信頼度レベルに少なくとも基づいて、前記センサデータストリームのための初期加重を決定することと、
前記センサデータストリームおよび前記初期加重の分析に基づいて、掌性推定値を決定することであって、前記掌性推定値は、前記推定されるアクティブな手としての前記ユーザの右手または左手のいずれか、および、前記掌性推定値が正確である信頼度レベルを識別する、ことと、
前記複数のセンサデータストリームに関連付けられた複数の掌性推定値に基づいて、全体的な掌性推定値を決定することと、
前記決定された全体的な掌性推定値を前記複合現実デバイス上で実行されるアプリケーションに提供することと
を含む、コンピュータ化された方法。
【請求項2】
全体的な信頼度レベルは、複数のセンサデータストリームからの掌性推定値に合致することに応答して、より高い、請求項1に記載のコンピュータ化された方法。
【請求項3】
前記初期加重は、センサのタイプに少なくとも部分的に基づく、請求項1に記載のコンピュータ化された方法。
【請求項4】
前記センサのタイプは、ハンドヘルドコントローラの6DOF外部能動追跡、前記ハンドヘルドコントローラの6DOF内部運動追跡、または、前記ハンドヘルドコントローラの外部受動追跡のうちの少なくともいくつかを含む、請求項3に記載のコンピュータ化された方法。
【請求項5】
前記センサのタイプは、視覚センサ、深度センサ、または、LIDARセンサのうちの1つ以上のものをさらに含む、請求項4に記載のコンピュータ化された方法。
【請求項6】
前記初期加重は、前記対応するセンサからの最近のデータ読取値の量に少なくとも部分的に基づく、請求項1に記載のコンピュータ化された方法。
【請求項7】
前記初期加重は、前記対応するセンサに関連付けられた履歴情報に少なくとも部分的に基づく、請求項1に記載のコンピュータ化された方法。
【請求項8】
センサデータストリームのための前記初期加重を決定することは、
前記対応するセンサの1つ以上の特性に基づいて、1つ以上の分析ルールを選択することであって、前記分析ルールは、前記センサに関連付けられた人間工学データ、履歴データ、または、運動データのうちの1つ以上のものに基づく、ことと、
前記選択された1つ以上の分析ルールを前記センサデータストリームに適用することにより、対応する掌性情報を決定することと
を含む、請求項1に記載のコンピュータ化された方法。
【請求項9】
前記分析ルールのうちの1つ以上のものは、
前記第2のセンサデータストリームに比較して、前記第1のセンサデータストリームの決定されたより高い信頼性に基づいて、第2のセンサからの第2のセンサデータストリームよりも第1のセンサからの第1のセンサデータストリームを優先する、請求項8に記載のコンピュータ化された方法。
【請求項10】
前記分析ルールのうちの1つ以上のものは、前記複合現実デバイスの視野内の前記ユーザの検出された手の位置に応じて、特定のセンサからのセンサデータを優先する、請求項8に記載のコンピュータ化された方法。
【請求項11】
前記第1のセンサデータストリームは、前記複合現実デバイスの前記ヘッドセットを基準とする前記第2のセンサの位置に少なくとも基づいて、前記第2のデータストリームに関連付けられた第2の信頼度レベルより高い第1の信頼度レベルに関連付けられている、請求項9に記載のコンピュータ化された方法。
【請求項12】
前記分析ルールのうちの1つ以上のものは、前記第1のセンサデータストリームと前記第2のセンサデータストリームとの間の競合を識別する、請求項8に記載のコンピュータ化された方法。
【請求項13】
前記分析ルールのうちの1つ以上のものは、2つ以上のセンサからのセンサデータストリームに基づいて、更新された信頼度レベルを周期的に計算する、請求項8に記載のコンピュータ化された方法。
【請求項14】
前記分析ルールのうちの1つ以上のものは、前記センサデータストリーム内のエラーを識別し、エラーを伴うセンサデータを破棄する、請求項8に記載のコンピュータ化された方法。
【請求項15】
センサデータストリーム内のエラーは、センサデータ内の欠測フレーム、センサデータ内の矛盾するフレーム、または、センサデータ内の複製フレームを含む、請求項14に記載のコンピュータ化された方法。
【請求項16】
前記コンピュータ化された方法は、
前記センサのそれぞれの視野を決定することと、
中心視野を表す少なくとも第1の領域を含む1つ以上の視野領域を決定することであって、前記センサのうちの少なくとも2つは、前記第1の領域に関連付けられたセンサデータを提供する、ことと
をさらに含む、請求項1に記載のコンピュータ化された方法。
【請求項17】
前記第1の領域に関連付けられたセンサデータは、前記第1の領域の外側のセンサデータより高い信頼度レベルに関連付けられている、請求項16に記載のコンピュータ化された方法。
【請求項18】
コンピューティングシステムであって、前記コンピューティングシステムは、
ハードウェアコンピュータプロセッサと、
非一過性のコンピュータ読み取り可能な媒体と
を備え、
前記非一過性のコンピュータ読み取り可能な媒体には、ソフトウェア命令が記憶されており、前記ソフトウェア命令は、動作を実行することを前記コンピューティングシステムに行わせるように、前記ハードウェアコンピュータプロセッサによって実行可能であり、
前記動作は、
複合現実デバイスの対応する複数のセンサからの複数のセンサデータストリームにアクセスすることと、
前記複数のセンサデータストリームのそれぞれに対して、前記センサデータストリームのための対応する初期加重を決定することと、
前記センサデータストリームおよび前記センサデータストリームの対応する初期加重に基づいて、アクティブであると推定されるユーザの左手または右手のうちの1つ以上のものを示す前記ユーザの掌性推定値を決定することと、
前記掌性推定値を前記複合現実デバイス上で実行されるアプリケーションに提供することと
を含む、コンピューティングシステム。
【発明の詳細な説明】
【技術分野】
【0001】
(任意の優先権主張に対する参照による組み込み)
本願は、2018年11月30日号に出願され、「MULTI-MODAL HAND LOCATION AND ORIENTATION FOR AVATAR MOVEMENT」と題された、米国仮特許出願62/774,076号の優先権を主張する。それに関して外国または国内の優先権の主張が本願とともに出願されるような出願データシートにおいて識別されている、前述の出願および他の出願は、37CFR1.57下、参照することによって本明細書に組み込まれる。
【0002】
本開示は、仮想現実および拡張現実結像および可視化システムに関し、より具体的には、コンテキスト情報に基づいて、仮想アバタを動的に調節およびレンダリングすることに関する。
【背景技術】
【0003】
現代のコンピューティングおよびディスプレイ技術は、いわゆる「仮想現実」、「拡張現実」、または「複合現実」体験のためのシステムの開発を促進しており、デジタル的に再現された画像またはその一部が、現実であるように見える、またはそのように知覚され得る様式で、ユーザに提示される。仮想現実、すなわち、「VR」シナリオは、典型的には、他の実際の実世界の視覚的入力に対する透過性を伴わずに、デジタルまたは仮想画像情報の提示を伴う。拡張現実、すなわち、「AR」シナリオは、典型的には、ユーザの周囲の実際の世界の可視化に対する拡張としてのデジタルまたは仮想画像情報の提示を伴う。複合現実または「MR」は、物理的および仮想オブジェクトが、共存し、リアルタイムで相互作用する、新しい環境を生成するための実世界と仮想世界の融合に関連する。結論から述べると、ヒトの視知覚系は、非常に複雑であって、他の仮想または実世界画像要素の中で仮想画像要素の快適で、自然な感覚で、かつ豊かな提示を促進する、VR、AR、またはMR技術を生産することは、困難である。本明細書に開示されるシステムおよび方法は、VR、AR、およびMR技術に関連する種々の課題に対処する。
【発明の概要】
【課題を解決するための手段】
【0004】
ルールのセットに基づいて、アクティブな手、アクティブな手の配向、アクティブな手の場所、および/または関連付けられる信頼度レベルを決定するための複合現実システム(本明細書では、「ウェアラブルシステム」とも称される)の種々の実施例。ルールは、履歴データ、運動データ、および人間工学データに基づいてもよい。2つ以上のセンサが、データを提供してもよく、これは、次いで、初期加重推定値を割り当てられてもよい。複数のセンサストリームが、次いで、単一推定値に組み合わせられてもよく、これは、アバタレンダリングシステムの中に出力およびフィードされてもよい。
本発明は、例えば、以下を提供する。
(項目1)
コンピュータ化された方法であって、前記コンピュータ化された方法は、コンピューティングシステムによって実施され、前記コンピューティングシステムは、1つ以上のハードウェアコンピュータプロセッサと、前記コンピューティングシステムによって実行可能なソフトウェア命令を記憶し、コンピュータ化された方法を実施するための1つ以上の非一過性コンピュータ可読記憶デバイスとを有し、前記コンピュータ化された方法は、
複合現実デバイスの対応する複数のセンサからの複数のセンサデータストリームにアクセスすることと、
前記複数のセンサデータストリームの各々に対し、前記センサデータストリームのための対応する初期加重を決定することと、
前記複数のセンサデータストリーム内の掌性情報および前記センサデータストリームの対応する初期加重を分析し、全体的掌性を決定することと、
前記決定された全体的掌性を前記複合現実デバイス上で実行されるアプリケーションに提供することと
を含む、コンピュータ化された方法。
(項目2)
前記全体的掌性は、左手または右手のいずれかを示す、項目1に記載のコンピュータ化された方法。
(項目3)
前記全体的掌性はさらに、信頼度レベルを示す、項目2に記載のコンピュータ化された方法。
(項目4)
前記信頼度レベルは、複数のセンサデータストリーム内の掌性情報に合致することに応答して、より高い、項目3に記載のコンピュータ化された方法。
(項目5)
前記初期加重は、少なくとも部分的に、センサのタイプに基づく、項目1-4のいずれかに記載のコンピュータ化された方法。
(項目6)
前記センサのタイプは、ハンドヘルドコントローラの6DOF外部能動追跡、前記ハンドヘルドコントローラの6DOF内部運動追跡、または前記ハンドヘルドコントローラの外部受動追跡のうちの少なくともいくつかを含む、項目5に記載のコンピュータ化された方法。
(項目7)
前記センサのタイプはさらに、視覚センサ、深度センサ、またはLIDARセンサのうちの1つ以上のものを含む、項目6に記載のコンピュータ化された方法。
(項目8)
前記初期加重は、少なくとも部分的に、前記対応するセンサからの最近のデータ読取値の量に基づく、項目1-7のいずれかに記載のコンピュータ化された方法。
(項目9)
前記初期加重は、少なくとも部分的に、前記対応するセンサと関連付けられる履歴情報に基づく、項目1-8のいずれかに記載のコンピュータ化された方法。
(項目10)
センサデータストリームのための前記初期加重を決定することは、
前記対応するセンサの1つ以上の特性に基づいて、1つ以上の分析ルールを選択することであって、前記分析ルールは、前記センサと関連付けられる人間工学データ、履歴データ、または運動データのうちの1つ以上のものに基づく、ことと、
前記選択された1つ以上の分析ルールを前記センサデータストリームに適用し、対応する掌性情報を決定することと
を含む、項目1-9のいずれかに記載のコンピュータ化された方法。
(項目11)
前記分析ルールのうちの1つ以上のものは、
第2のセンサデータストリームと比較して、第1のセンサデータストリームの決定されたより高い信頼性に基づいて、第2のセンサからの第2のセンサデータストリームよりも上に第1のセンサからの第1のセンサデータストリームを優先順位化する、項目10に記載のコンピュータ化された方法。
(項目12)
前記分析ルールのうちの1つ以上のものは、前記センサデータがセンサの視野内で捕捉された場所に応じて、特定のセンサからのセンサデータを優先順位化する、項目1-11のいずれかに記載のコンピュータ化された方法。
(項目13)
前記第1のセンサデータストリームは、少なくとも、前記複合現実デバイスのウェアラブルヘッドセットを基準とする前記第1のセンサの位置に基づいて、前記第2のデータストリームと関連付けられる第2の信頼度レベルより高い第1の信頼度レベルと関連付けられる、項目11-12のいずれかに記載のコンピュータ化された方法。
(項目14)
前記分析ルールのうちの1つ以上のものは、前記第1のセンサデータストリームと前記第2のセンサデータストリームとの間の競合を識別する、項目10-13のいずれかに記載のコンピュータ化された方法。
(項目15)
前記分析ルールのうちの1つ以上のものは、周期的に、2つ以上のセンサからのセンサデータストリームに基づいて、更新された信頼度レベルを計算する、項目10-13のいずれかに記載のコンピュータ化された方法。
(項目16)
前記分析ルールのうちの1つ以上のものは、前記センサデータストリーム内のエラーを識別し、エラーを伴うセンサデータを破棄する、項目10-15のいずれかに記載のコンピュータ化された方法。
(項目17)
センサデータストリーム内のエラーは、センサデータ内の欠測フレーム、矛盾するフレーム、または複製フレームを含む、項目16に記載のコンピュータ化された方法。
(項目18)
前記センサのそれぞれの視野を決定することと、
中心視野を表す少なくとも第1の領域を含む1つ以上の視野領域を決定することであって、前記センサのうちの少なくとも2つは、前記第1の領域と関連付けられるセンサデータを提供する、ことと
をさらに含む、項目1-17のいずれかに記載のコンピュータ化された方法。
(項目19)
前記第1の領域と関連付けられるセンサデータは、前記第1の領域の外側のセンサデータより高い信頼度レベルと関連付けられる、項目18に記載のコンピュータ化された方法。
(項目20)
コンピューティングシステムであって、
ハードウェアコンピュータプロセッサと、
非一過性コンピュータ可読媒体であって、前記非一過性コンピュータ可読媒体は、その上に記憶されるソフトウェア命令を有し、前記ソフトウェア命令は、前記コンピューティングシステムに、
複合現実デバイスの対応する複数のセンサからの複数のセンサデータストリームにアクセスすることと、
前記複数のセンサデータストリームの各々に対し、前記センサデータストリームのための対応する初期加重を決定することと、
前記複数のセンサデータストリーム内の掌性情報および前記センサデータストリームの対応する初期加重を分析し、全体的掌性を決定することと、
前記決定された全体的掌性を前記複合現実デバイス上で実行されるアプリケーションに提供することと
を含む動作を実施させるように、前記ハードウェアコンピュータプロセッサによって実行可能である、非一過性コンピュータ可読媒体と
を備える、コンピューティングシステム。
(項目21)
コンピューティングシステムであって、
ウェアラブルシステムの第1のセンサであって、ユーザの左手または右手のどちらがアクティブであるかを決定するために使用可能な第1のユーザデータを入手するように構成されるウェアラブルシステムの第1のセンサと、
ウェアラブルシステムの第2のセンサであって、前記ユーザの左手または右手のどちらがアクティブであるかを決定するために使用可能な第2のユーザデータを入手するように構成されるウェアラブルシステムの第2のセンサと、
前記第1および第2のセンサと通信するハードウェアプロセッサであって、前記ハードウェアプロセッサは、
前記第1のユーザデータと関連付けられる第1の履歴データ、第1の運動データ、または第1の人間工学データのうちの1つ以上のものに基づいて、前記第1のユーザデータのための第1の加重を決定することと、
前記第2のユーザデータと関連付けられる第2の履歴データ、第2の運動データ、または第2の人間工学データのうちの1つ以上のものに基づいて、前記第2のユーザデータのための第2の加重を決定することと、
前記第1のユーザデータ、前記第1の加重、前記第2のユーザデータ、および前記第2の加重に基づいて、前記ユーザの左手または右手のどちらがアクティブであるかを決定することと、
前記決定をアバタ処理およびレンダリングシステムに出力することと
を行うようにプログラムされる、ハードウェアプロセッサと
を備える、コンピューティングシステム。
(項目22)
コンピュータ化された方法であって、前記コンピュータ化された方法は、コンピューティングシステムによって実施され、前記コンピューティングシステムは、1つ以上のハードウェアコンピュータプロセッサと、前記コンピューティングシステムによって実行可能なソフトウェア命令を記憶し、コンピュータ化された方法を実施するための1つ以上の非一過性コンピュータ可読記憶デバイスとを有し、前記コンピュータ化された方法は、
第1のユーザデータをウェアラブルシステムの第1のセンサから入手することであって、前記第1のユーザデータは、ユーザの左手または右手のどちらがアクティブであるかを決定するために使用可能である、ことと、
第2のユーザデータを前記ウェアラブルシステムの第2のセンサから入手することであって、前記第2のユーザデータは、前記ユーザの左手または右手のどちらがアクティブであるかを決定するために使用可能である、ことと、
前記第1のユーザデータと関連付けられる第1の履歴データ、第1の運動データ、または第1の人間工学データのうちの1つ以上のものに基づいて、前記第1のユーザデータのための第1の加重を決定することと、
前記第2のユーザデータと関連付けられる第2の履歴データ、第2の運動データ、または第2の人間工学データのうちの1つ以上のものに基づいて、前記第2のユーザデータのための第2の加重を決定することと、
前記第1のユーザデータ、前記第1の加重、前記第2のユーザデータ、および前記第2の加重に基づいて、前記ユーザの左手または右手のどちらがアクティブであるかを決定することと、
前記決定をアバタ処理およびレンダリングシステムに出力することと
を含む、コンピュータ化された方法。
【図面の簡単な説明】
【0005】
【
図1】
図1は、人物によって視認されるある仮想現実オブジェクトおよびある物理的オブジェクトを伴う、複合現実シナリオの例証を描写する。
【0006】
【
図2】
図2は、ウェアラブルシステムの実施例を図式的に図示する。
【0007】
【
図3】
図3は、ウェアラブルシステムの例示的コンポーネントを図式的に図示する。
【0008】
【
図4】
図4は、画像情報をユーザに出力するためのウェアラブルデバイスの導波管スタックの実施例を図式的に図示する。
【0009】
【
図5】
図5は、仮想ユーザインターフェースと相互作用するための方法の実施例のプロセスフロー図である。
【0010】
【
図6A】
図6Aは、例示的ウェアラブルシステムのブロック図である。
【0011】
【
図6B】
図6Bは、例示的ウェアラブルシステムのブロック図である。
【0012】
【
図6C】
図6Cは、例示的ウェアラブルシステムのブロック図である。
【0013】
【
図7】
図7は、ウェアラブルシステムの中への種々の入力を含む、ウェアラブルシステムの実施例のブロック図である。
【0014】
【
図8】
図8は、認識されるオブジェクトに関連して仮想コンテンツをレンダリングする方法の実施例のプロセスフロー図である。
【0015】
【
図9A】
図9Aは、相互に相互作用する複数のウェアラブルシステムを描写する、全体的システム図を図式的に図示する。
【0016】
【
図9B】
図9Bは、例示的テレプレゼンスセッションを図示する。
【0017】
【
図10】
図10は、ウェアラブルシステムのユーザによって知覚されるようなアバタの実施例を図示する。
【0018】
【
図11A】
図11A-11Bは、ユーザのアクティブな手、アクティブな手の場所、アクティブな手の配向、および/または関連付けられる信頼度レベルを決定するための例示的プロセスを図示する。
【
図11B】
図11A-11Bは、ユーザのアクティブな手、アクティブな手の場所、アクティブな手の配向、および/または関連付けられる信頼度レベルを決定するための例示的プロセスを図示する。
【0019】
【
図12】
図12は、センサの例示的セットのためのFOVの例示的セットを図示する。
【0020】
【
図13】
図13は、
図12に説明されるセンサのセットのための領域の例示的セットを図示する。
【0021】
【
図14】
図14は、ユーザのアクティブな手、アクティブな手の場所、アクティブな手の配向、および/または関連付けられる信頼度レベルを決定するための例示的プロセスを図示する。
【0022】
【
図15】
図15は、初期加重を備える、センサデータを組み合わせ、融和させ、全てのセンサデータを横断して単一推定値を生産するための例示的プロセスを図示する。
【0023】
図面全体を通して、参照番号は、参照される要素間の対応を示すために再使用され得る。図面は、本明細書に説明される例示的実施形態を図示するために提供され、本開示の範囲を限定することを意図されない。
【発明を実施するための形態】
【0024】
概要
仮想アバタは、AR/VR/MR環境内の実際または架空の人物(または創造物または擬人化されたオブジェクト)の仮想表現であってもよい。例えば、その中で2人のAR/VR/MRユーザが相互に相互作用する、テレプレゼンスセッションの間、視認者は、別のユーザのアバタを視認者の環境内で知覚し、それによって、他のユーザの存在の有形感覚を視認者の環境内に作成することができる。アバタはまた、共有仮想環境内において、ユーザが、相互に相互作用し、ともに物事を行うための方法を提供することができる。例えば、オンラインクラスに出席する生徒は、他の生徒または教師のアバタを仮想教室内で知覚することができ、他の生徒または教師のアバタと相互作用することができる。
【0025】
仮想アバタを利用して、ユーザを表すとき、ユーザの移動を模倣するように、アバタをアニメーション化することが望ましくあり得る。例えば、ユーザが、その頭部を移動させるとき、アバタは、同一移動を行い得る。別の実施例では、ユーザが、その手および/または腕を移動させるとき、アバタは、同一の手および/または腕移動を行い得る。ユーザの移動に合致させることは、ユーザ(およびユーザと相互作用する他者)のためにより現実的かつ正確なARアバタ体験を作成し得る。従来的システムは、アバタの手の移動を全くアニメーション化し得ない、ユーザ入力に基づいて(センサデータの代わりに)、ユーザの手をアニメーション化し得る、またはユーザの手によって保持されているトーテム(または他のハンドヘルドコントローラ)内のIMUからのデータ等の1つのデータソースを使用して、アバタの手をアニメーション化し得る。これらの従来的方法は、アバタの手をアニメーション化するが、その方法は、エラーを受けやすい。例えば、IMUは、経時的にドリフトを被り、ユーザの手の不正確な場所および/または移動をもたらし得る。別の実施例では、視覚アルゴリズムが、ユーザの手を識別するために使用され得るが、これらの方法は、カメラのFOV内の手の移動に限定され、ユーザの手の配向を考慮しない。加えて、従来的方法が、ユーザの移動に基づいて、アバタをアニメーション化する場合でも、従来的方法は、どちらの手(例えば、右対左手)が移動しているかを識別することが不可能であって、従来的システムは、移動を行っているユーザの手の配向を決定することもできない。以降、移動を行っている手は、アクティブな手と称され得る。いくつかの実施形態では、1つのみのアクティブな手が存在する。いくつかの実施形態では、第1のアクティブな手および第2のアクティブな手が存在してもよい。
【0026】
有利なこととして、いくつかの実施形態では、本明細書に説明されるウェアラブルシステムおよび方法は、どちらの手がアクティブな手であるかと、アクティブな手の配向とを自動的に決定することができる。これは、手についての感知される情報の2つ以上の異なるモダリティを組み合わせ、ユーザの手の場所および配向の単一モダリティが生産し得るものよりロバストおよび/またはより正確な推定値を生産することによって遂行され得る。本明細書におけるウェアラブルシステムは、以下の利点、すなわち、ジェスチャ感知のFOVを越えて手をシームレスに追跡すること、手がFOVの境界線の近くにある(ジェスチャを使用する信頼度レベルが減少する)とき、手追跡における信頼度を増加させること、コントローラからの補強証拠を探すことによって、例えば、改良された組み合わせられた推定値を使用して、手の位置の信頼度を改良することを提供することが可能であり得る。
【0027】
いくつかの実施形態では、本明細書に説明されるウェアラブルシステムおよび方法は、ユーザの仮想アバタのアニメーションのために、2つ以上のセンサデータソース、人間工学データ、および運動データを使用し、どちらのユーザの手(例えば、左、右)が移動しているかおよび/またはその手の配向を決定する信頼度レベルおよび正確度を増加させ得る。信頼度レベルは、0~100の値であってもよく、0~30%の低信頼度、30~70%の中信頼度、および70%を上回る高信頼度のヒト可読カテゴリに分割されてもよい。信頼度レベルを評価し、および/またはカテゴリに分割する他の好適な方法が、使用されてもよい。例えば、閾値が、容認可能対容認不可能な信頼度レベルを区別するために使用されてもよい。
【0028】
いくつかの実施形態では、本明細書に説明されるウェアラブルシステムおよび方法は、対応する手をユーザを表すアバタ上でアニメーション化する等のアプリケーションのために、ユーザの手の手姿勢および形状を推定し得る。いくつかの実装では、ウェアラブルシステムは、例えば、視覚センサ、深度センサ、LIDARセンサ等を使用して、ハンドヘルドコントローラの6DOF外部能動追跡、ハンドヘルドコントローラの6DOF内部運動センサ、および/または手および/またはコントローラ(例えば、トーテム)の外部受動追跡等の複数の異なるソースからの情報を組み合わせ、評価し得る。情報源は、どちらの手が制御装置を保持しているかを推定することと、手追跡姿勢および手形状の正確度を改良することとの両方のために使用されてもよい。
【0029】
故に、開示されるシステムおよび方法の実施形態は、ユーザに対応するアバタのはるかに現実的かつ正確なアニメーションを提供し得る。
ウェアラブルシステムの3Dディスプレイの実施例
【0030】
ウェアラブルシステム(本明細書では、拡張現実(AR)システムとも称される)は、2Dまたは3D仮想画像をユーザに提示するために構成されることができる。画像は、組み合わせまたは同等物における、静止画像、ビデオのフレーム、またはビデオであってもよい。ウェアラブルシステムの少なくとも一部は、ユーザ相互作用のために、単独で、または組み合わせて、VR、AR、またはMR環境(または「MRシステム」)を提示し得る、ウェアラブルデバイス上に実装されることができる。ウェアラブルデバイスは、ARデバイス(ARD)と同義的に使用されることができる。さらに、本開示の目的のために、用語「AR」は、用語「MR」と同義的に使用される。
【0031】
図1は、人物によって視認される、ある仮想現実オブジェクトおよびある物理的オブジェクトを伴う、複合現実シナリオの例証を描写する。
図1では、MR場面100が、描写され、MR技術のユーザには、人々、木々、背景における建物、およびコンクリートプラットフォーム120を特徴とする、実世界公園状設定110が見える。これらのアイテムに加え、MR技術のユーザはまた、実世界プラットフォーム120上に立っているロボット像130と、マルハナバチの擬人化のように見える、飛んでいる漫画のようなアバタキャラクタ140とが「見える」と知覚するが、これらの要素は、実世界には存在しない。
【0032】
3Dディスプレイが、真の深度感覚、より具体的には、表面深度のシミュレートされた感覚を生成するために、ディスプレイの視野内の点毎に、その仮想深度に対応する遠近調節応答を生成することが望ましくあり得る。ディスプレイ点に対する遠近調節応答が、収束および立体視の両眼深度キューによって決定されるようなその点の仮想深度に対応しない場合、ヒトの眼は、遠近調節衝突を体験し、不安定な結像、有害な眼精疲労、頭痛、および遠近調節情報の不在下では、表面深度のほぼ完全な欠如をもたらし得る。
【0033】
VR、AR、およびMR体験は、複数の深度平面に対応する画像が視認者に提供されるディスプレイを有する、ディスプレイシステムによって提供されることができる。画像は、深度平面毎に異なってもよく(例えば、場面またはオブジェクトの若干異なる提示を提供する)、視認者の眼によって別個に集束され、それによって、異なる深度平面上に位置する場面に関する異なる画像特徴に合焦させるために要求される眼の遠近調節に基づいて、または合焦からずれている異なる深度平面上の異なる画像特徴を観察することに基づいて、ユーザに深度キューを提供することに役立ち得る。本明細書のいずれかに議論されるように、そのような深度キューは、信用できる深度の知覚を提供する。
【0034】
図2は、ウェアラブルシステム200の実施例を図示し、これは、AR/VR/MR場面を提供するように構成されることができる。ウェアラブルシステム200はまた、ARシステム200と称され得る。ウェアラブルシステム200は、ディスプレイ220と、ディスプレイ220の機能をサポートするための種々の機械的および電子的モジュールおよびシステムとを含む。ディスプレイ220は、フレーム230に結合されてもよく、これは、ユーザ、装着者、または視認者210によって装着可能である。ディスプレイ220は、ユーザ210の眼の正面に位置付けられることができる。ディスプレイ220は、AR/VR/MRコンテンツをユーザに提示することができる。ディスプレイ220は、ユーザの頭部上に装着される、頭部搭載型ディスプレイ(HMD)を備えることができる。
【0035】
いくつかの実施形態では、スピーカ240が、フレーム230に結合され、ユーザの外耳道に隣接して位置付けられる(いくつかの実施形態では、示されない別のスピーカが、ユーザの他方の外耳道に隣接して位置付けられ、ステレオ/成形可能音制御を提供する)。ディスプレイ220は、環境からオーディオストリームを検出し、周囲音を捕捉するために、オーディオセンサ(例えば、マイクロホン)232を含むことができる。いくつかの実施形態では、示されない1つ以上の他のオーディオセンサが、ステレオ音受信を提供するために位置付けられる。ステレオ音受信は、音源の場所を決定するために使用されることができる。ウェアラブルシステム200は、音声または発話認識をオーディオストリームに実施することができる。
【0036】
ウェアラブルシステム200は、ユーザの周囲の環境内の世界を観察する、外向きに向いた結像システム464(
図4に示される)を含むことができる。ウェアラブルシステム200はまた、ユーザの眼移動を追跡し得る、内向きに向いた結像システム462(
図4に示される)を含むことができる。内向きに向いた結像システムは、一方の眼の移動または両方の眼の移動のいずれかを追跡することができる。内向きに向いた結像システム462は、フレーム230に取り付けられてもよく、内向きに向いた結像システムによって入手された画像情報を処理し、例えば、ユーザ210の眼の瞳孔直径または配向、眼の移動、または眼姿勢を決定し得る、処理モジュール260または270と電気通信してもよい。内向きに向いた結像システム462は、1つ以上のカメラを含んでもよい。例えば、少なくとも1つのカメラは、各眼を結像するために使用されてもよい。カメラによって入手された画像は、眼毎に、別個に、瞳孔サイズまたは眼姿勢を決定し、それによって、各眼への画像情報の提示がその眼に対して動的に調整されることを可能にするために使用されてもよい。
【0037】
実施例として、ウェアラブルシステム200は、外向きに向いた結像システム464または内向きに向いた結像システム462を使用して、ユーザの姿勢の画像を入手することができる。画像は、静止画像、ビデオのフレーム、またはビデオであってもよい。
【0038】
ディスプレイ220は、有線導線または無線接続等によって、フレーム230に固定して取り付けられる、ユーザによって装着されるヘルメットまたは帽子に固定して取り付けられる、ヘッドホンに内蔵される、または別様にユーザ210に除去可能に取り付けられる(例えば、リュック式構成において、ベルト結合式構成において)等、種々の構成において搭載され得る、ローカルデータ処理モジュール260に動作可能に結合されることができる(250)。
【0039】
ローカル処理およびデータモジュール260は、ハードウェアプロセッサおよび不揮発性メモリ(例えば、フラッシュメモリ)等のデジタルメモリを備えてもよく、その両方とも、データの処理、キャッシュ、および記憶を補助するために利用され得る。データは、(a)画像捕捉デバイス(例えば、内向きに向いた結像システムおよび/または外向きに向いた結像システム内のカメラ)、オーディオセンサ(例えば、マイクロホン)、慣性測定ユニット(IMU)、加速度計、コンパス、全地球測位システム(GPS)ユニット、無線デバイス、またはジャイロスコープ等の(例えば、フレーム230に動作可能に結合される、または別様にユーザ210に取り付けられ得る)センサから捕捉されるデータ、または(b)可能性として、処理または読出後にディスプレイ220への通過のために、遠隔処理モジュール270または遠隔データリポジトリ280を使用して入手または処理されるデータを含んでもよい。ローカル処理およびデータモジュール260は、これらの遠隔モジュールがローカル処理およびデータモジュール260へのリソースとして利用可能であるように、有線または無線通信リンク等を介して、通信リンク262または264によって遠隔処理モジュール270または遠隔データリポジトリ280に動作可能に結合されてもよい。加えて、遠隔処理モジュール270および遠隔データリポジトリ280は、相互に動作可能に結合されてもよい。
【0040】
いくつかの実施形態では、遠隔処理モジュール270は、データまたは画像情報を分析および処理するように構成される、1つ以上のプロセッサを備えてもよい。いくつかの実施形態では、遠隔データリポジトリ280は、デジタルデータ記憶設備を備えてもよく、これは、インターネットまたは「クラウド」リソース構成における他のネットワーキング構成を通して利用可能であってもよい。いくつかの実施形態では、全てのデータが、記憶され、全ての算出が、ローカル処理およびデータモジュールにおいて実施され、遠隔モジュールからの完全に自律的な使用を可能にする。
ウェアラブルシステムの例示的コンポーネント
【0041】
図3は、ウェアラブルシステムの例示的コンポーネントを図式的に図示する。
図3は、ウェアラブルシステム200を示し、これは、ディスプレイ220と、フレーム230とを含むことができる。引き伸ばし
図202は、ウェアラブルシステム200の種々のコンポーネントを図式的に図示する。ある実装では、
図3に図示されるコンポーネントのうちの1つ以上のものは、ディスプレイ220の一部であることができる。種々のコンポーネントは、単独で、または組み合わせて、ウェアラブルシステム200のユーザまたはユーザの環境と関連付けられた種々のデータ(例えば、聴覚的または視覚的データ等)を収集することができる。他の実施形態は、ウェアラブルシステムが使用される用途に応じて、付加的またはより少ないコンポーネントを有してもよいことを理解されたい。なお、
図3は、種々のコンポーネントのうちのいくつかと、ウェアラブルシステムを通して収集、分析、および記憶され得る、データのタイプの基本概念とを提供する。
【0042】
図3は、例示的ウェアラブルシステム200を示し、これは、ディスプレイ220を含むことができる。ディスプレイ220は、ユーザの頭部、またはフレーム230に対応する、筐体またはフレーム230に搭載され得る、ディスプレイレンズ226を備えることができる。ディスプレイレンズ226は、筐体230によって、ユーザの眼302、304の正面に位置付けられる、1つ以上の透明ミラーを備えてもよく、投影された光338を眼302、304の中にバウンスさせ、ビーム成形を促進しながら、また、ローカル環境からの少なくとも一部の光の透過を可能にするように構成されてもよい。投影された光ビーム338の波面は、投影された光の所望の焦点距離と一致するように屈曲または集束されてもよい。図示されるように、2つの(例えば、広視野マシン)ビジョンカメラ316(世界カメラとも称される)が、筐体230に結合され、ユーザの周囲の環境を結像することができる。これらのカメラ316は、二重捕捉式可視光/非可視(例えば、赤外線)光カメラであることができる。カメラ316は、
図4に示される外向きに向いた結像システム464の一部であってもよい。世界カメラ316によって入手された画像は、姿勢プロセッサ336によって処理されることができる。例えば、姿勢プロセッサ336は、1つ以上のオブジェクト認識装置708(例えば、
図7に示される)を実装し、ユーザまたはユーザの環境内の別の人物の姿勢を識別する、またはユーザの環境内の物理的オブジェクトを識別することができる。いくつかの実施形態では、4つの世界カメラ316が存在してもよい。世界カメラ316のうちの1つ以上のものは、グレースケールであってもよい。世界カメラのうちの1つ以上のものは、カラーであってもよい。いくつかの実施形態では、2つの世界カメラは、内向きに面していてもよく(例えば、カメラは、相互に向かって角度付けられるが、依然として、ユーザから離れるように、世界に向かって外に面している)、2つの世界カメラは、外向きに面していてもよい(例えば、相互から離れるように角度付けられる)。
【0043】
図3を継続して参照すると、光338を眼302、304の中に投影するように構成される、ディスプレイミラーおよび光学系を伴う、一対の走査式レーザ成形波面(例えば、深度のために)光プロジェクタモジュールが、示される。描写される図はまた、ユーザの眼302、304を追跡し、レンダリングおよびユーザ入力をサポート可能であるように構成される、赤外線光(発光ダイオード「LED」等)とペアリングされる、2つの小型赤外線カメラ324を示す。カメラ324は、
図4に示される、内向きに向いた結像システム462の一部であってもよい。ウェアラブルシステム200はさらに、センサアセンブリ339を特徴とすることができ、これは、X、Y、およびZ軸加速度計能力および磁気コンパスおよびX、Y、およびZ軸ジャイロスコープ能力を備え、好ましくは、200Hz等の比較的に高周波数でデータを提供し得る。センサアセンブリ339は、
図3を参照して説明される、IMUの一部であってもよい。描写されるウェアラブルシステム200はまた、ASIC(特定用途向け集積回路)、FPGA(フィールドプログラマブルゲートアレイ)、またはARMプロセッサ(高度縮小命令セット機械)等の頭部姿勢プロセッサ336を備えることができ、これは、リアルタイムまたは近リアルタイムユーザ頭部姿勢をカメラ316(および/または他の入力デバイス)から出力された広視野画像情報から計算するように構成されてもよい。頭部姿勢プロセッサ336は、ハードウェアプロセッサであることができ、
図3に示されるローカル処理およびデータモジュール260の一部として実装されることができる。
【0044】
ウェアラブルシステムはまた、1つ以上の深度センサ234を含むことができる。深度センサ234は、環境内のオブジェクトとウェアラブルデバイスとの間の距離を測定するように構成されることができる。深度センサ234は、レーザスキャナ(例えば、LIDAR)、超音波深度センサ、または深度感知カメラを含んでもよい。カメラ316が深度感知能力を有する、ある実装では、カメラ316はまた、深度センサ234と見なされ得る。
【0045】
また、示されるものは、デジタルまたはアナログ処理を実行し、姿勢をセンサアセンブリ339からのジャイロスコープ、コンパス、または加速度計データから導出するように構成される、プロセッサ332である。プロセッサ332は、
図2に示される、ローカル処理およびデータモジュール260の一部であってもよい。ウェアラブルシステム200はまた、
図3に示されるように、例えば、GPS337(全地球測位システム)等の測位システムを含み、姿勢および測位分析を補助することができる。加えて、GPSはさらに、ユーザの環境についての遠隔ベース(例えば、クラウドベース)の情報を提供してもよい。本情報は、ユーザの環境内のオブジェクトまたは情報を認識するために使用されてもよい。
【0046】
ウェアラブルシステムは、GPS337および遠隔コンピューティングシステム(例えば、遠隔処理モジュール270、別のユーザのARD等)によって入手されたデータを組み合わせてもよく、これは、ユーザの環境についてのより多くの情報を提供することができる。一実施例として、ウェアラブルシステムは、GPSデータに基づいて、ユーザの場所を決定し、ユーザの場所と関連付けられた仮想オブジェクトを含む、世界マップを読み出すことができる(例えば、遠隔処理モジュール270と通信することによって)。別の実施例として、ウェアラブルシステム200は、世界カメラ316(
図4に示される外向きに向いた結像システム464の一部であってもよい)を使用して、環境を監視することができる。世界カメラ316によって入手された画像に基づいて、ウェアラブルシステム200は、環境内のオブジェクトを検出することができる(例えば、
図7に示される1つ以上のオブジェクト認識装置708を使用することによって)。ウェアラブルシステムはさらに、GPS337によって入手されたデータを使用して、キャラクタを解釈することができる。
【0047】
ウェアラブルシステム200はまた、レンダリングエンジン334を備えてもよく、これは、世界のユーザのビューのために、ユーザにローカルなレンダリング情報を提供し、スキャナの動作およびユーザの眼の中への結像を促進するように構成されることができる。レンダリングエンジン334は、ハードウェアプロセッサ(例えば、中央処理ユニットまたはグラフィック処理ユニット等)によって実装されてもよい。いくつかの実施形態では、レンダリングエンジンは、ローカル処理およびデータモジュール260の一部である。レンダリングエンジン334は、ウェアラブルシステム200の他のコンポーネントに通信可能に結合されることができる(例えば、有線または無線リンクを介して)。例えば、レンダリングエンジン334は、通信リンク274を介して、眼カメラ324に結合され、通信リンク272を介して、投影サブシステム318(網膜走査ディスプレイに類似する様式において、走査レーザ配列を介して、光をユーザの眼302、304の中に投影することができる)に結合されることができる。レンダリングエンジン334はまた、それぞれ、リンク276および294を介して、例えば、センサ姿勢プロセッサ332および画像姿勢プロセッサ336等の他の処理ユニットと通信することができる。
【0048】
カメラ324(例えば、小型赤外線カメラ)は、眼姿勢を追跡し、レンダリングおよびユーザ入力をサポートするために利用されてもよい。いくつかの例示的眼姿勢は、ユーザが見ている場所または合焦させている深度(眼の輻輳・開散運動を用いて推定されてもよい)を含んでもよい。GPS337、ジャイロスコープ、コンパス、および加速度計(
図3の実施例では、センサアセンブリ339の一部であり得る)は、大まかなまたは高速姿勢推定を提供するために利用されてもよい。カメラ316のうちの1つ以上のものは、画像および姿勢を入手することができ、これは、関連付けられたクラウドコンピューティングリソースからのデータと併せて、ローカル環境をマッピングし、ユーザビューを他者と共有するために利用されてもよい。
【0049】
図3に描写される例示的コンポーネントは、例証目的のためだけのものである。複数のセンサおよび他の機能モジュールが、例証および説明の容易性のために、ともに示される。いくつかの実施形態は、これらのセンサまたはモジュールの1つのみまたはサブセットを含んでもよい。さらに、これらのコンポーネントの場所は、
図3に描写される位置に限定されない。いくつかのコンポーネントは、ベルト搭載型コンポーネント、ハンドヘルドコンポーネント、またはヘルメットコンポーネント等、他のコンポーネント内に搭載または格納されてもよい。一実施例として、画像姿勢プロセッサ336、センサ姿勢プロセッサ332、およびレンダリングエンジン334は、ベルトパック内に位置付けられ、超広帯域、Wi-Fi、Bluetooth(登録商標)等の無線通信を介して、または有線通信を介して、ウェアラブルシステムの他のコンポーネントと通信するように構成されてもよい。描写される筐体230は、好ましくは、ユーザによって頭部搭載可能かつ装着可能である。しかしながら、ウェアラブルシステム200のいくつかのコンポーネントは、ユーザの身体の他の部分に装着されてもよい。例えば、スピーカ240が、ユーザの耳の中に挿入され、音をユーザに提供してもよい。
【0050】
ユーザの眼302、304の中への光338の投影に関して、いくつかの実施形態では、カメラ324は、一般に、眼の焦点の位置または「焦点深度」と一致する、ユーザの眼の中心が幾何学的に輻輳される場所を測定するために利用されてもよい。眼が輻輳する全ての点の3次元表面は、「単視軌跡」と称され得る。焦点距離は、有限数の深度をとり得る、または無限に変動し得る。輻輳・開散運動距離から投影された光は、対象の眼302、304に集束されるように現れる一方、輻輳・開散運動距離の正面または背後の光は、ぼかされる。本開示のウェアラブルデバイスおよび他のディスプレイシステムの実施例はまた、米国特許公開第2016/0270656号(参照することによってその全体として本明細書に組み込まれる)に説明される。
【0051】
ヒト視覚系は、複雑であって、深度の現実的知覚を提供することは、困難である。オブジェクトの視認者は、輻輳・開散運動と遠近調節の組み合わせに起因して、オブジェクトを3次元として知覚し得る。相互に対する2つの眼の輻輳・開散運動(例えば、眼の視線を収束させ、オブジェクトを固視するための相互に向かった、またはそこから離れる瞳孔の回転移動)は、眼の水晶体の合焦(または「遠近調節」)と緊密に関連付けられる。通常条件下、焦点を1つのオブジェクトから異なる距離における別のオブジェクトに変化させるための眼の水晶体の焦点の変化または眼の遠近調節は、「遠近調節-輻輳・開散運動反射」として知られる関係下、同一距離への輻輳・開散運動の合致する変化を自動的に生じさせるであろう。同様に、輻輳・開散運動の変化が、通常条件下、遠近調節の合致する変化を誘起するであろう。遠近調節と輻輳・開散運動との間のより良好な合致を提供するディスプレイシステムが、3次元画像のより現実的かつ快適なシミュレーションを形成し得る。
【0052】
さらに、約0.7ミリメートル未満のビーム直径を伴う、空間的にコヒーレントな光は、眼が合焦している場所にかかわらず、ヒトの眼によって正しく解決されることができる。したがって、適切な焦点深度の錯覚を作成するために、眼の輻輳・開散運動が、カメラ324を用いて追跡されてもよく、レンダリングエンジン334および投影サブシステム318は、単視軌跡上またはそれに近接する全てのオブジェクトを合焦させてレンダリングし、全ての他のオブジェクトを可変程度に焦点をずらしてレンダリングするために利用されてもよい(例えば、意図的に作成されたぼけを使用して)。好ましくは、ディスプレイシステム220は、ユーザに、約60フレーム/秒以上のフレームレートでレンダリングする。上記に説明されるように、好ましくは、カメラ324は、眼追跡のために利用されてもよく、ソフトウェアは、輻輳・開散運動幾何学形状だけではなく、また、ユーザ入力としての役割を果たすための焦点場所キューも取り上げるように構成されてもよい。好ましくは、そのようなディスプレイシステムは、昼間または夜間の使用のために好適な明度およびコントラストを用いて構成される。
【0053】
いくつかの実施形態では、ディスプレイシステムは、好ましくは、視覚的オブジェクト整合のために約20ミリ秒未満の待ち時間、約0.1度未満の角度整合、および約1弧分の分解能を有し、これは、理論によって限定されるわけではないが、ヒトの眼のほぼ限界であると考えられる。ディスプレイシステム220は、位置特定システムと統合されてもよく、これは、GPS要素、光学追跡、コンパス、加速度計、または他のデータソースを伴い、位置および姿勢決定を補助し得る。位置特定情報は、関連世界のユーザのビュー内における正確なレンダリングを促進するために利用されてもよい(例えば、そのような情報は、眼鏡が実世界に対する場所を把握することを促進するであろう)。
【0054】
いくつかの実施形態では、ウェアラブルシステム200は、ユーザの眼の遠近調節に基づいて、1つ以上の仮想画像を表示するように構成される。ユーザに画像が投影されている場所に合焦させるように強制する、従来の3Dディスプレイアプローチと異なり、いくつかの実施形態では、ウェアラブルシステムは、投影された仮想コンテンツの焦点を自動的に変動させ、ユーザに提示される1つ以上の画像のより快適な視認を可能にするように構成される。例えば、ユーザの眼が、1mの現在の焦点を有する場合、画像は、ユーザの焦点と一致するように投影されてもよい。ユーザが、焦点を3mに偏移させる場合、画像は、新しい焦点と一致するように投影される。したがって、ユーザに所定の焦点を強制するのではなく、いくつかの実施形態のウェアラブルシステム200は、ユーザの眼がより自然な様式において機能することを可能にする。
【0055】
そのようなウェアラブルシステム200は、仮想現実デバイスに対して典型的に観察される、眼精疲労、頭痛、および他の生理学的症状の発生率を排除または低減させ得る。これを達成するために、ウェアラブルシステム200の種々の実施形態は、1つ以上の可変焦点要素(VFE)を通して、仮想画像を可変焦点距離に投影するように構成される。1つ以上の実施形態では、3D知覚は、画像をユーザから離れた固定された焦点面に投影する、多平面焦点システムを通して達成されてもよい。他の実施形態は、可変平面焦点を採用し、焦点面は、ユーザの焦点の現在の状態と一致するように、z-方向に往復して移動される。
【0056】
多平面焦点システムおよび可変平面焦点システムの両方において、ウェアラブルシステム200は、眼追跡を採用し、ユーザの眼の輻輳・開散運動を決定し、ユーザの現在の焦点を決定し、仮想画像を決定された焦点に投影してもよい。他の実施形態では、ウェアラブルシステム200は、ファイバスキャナまたは他の光生成源を通して、網膜を横断して、可変焦点の光ビームをラスタパターンで可変に投影する、光変調器を備える。したがって、画像を可変焦点距離に投影するウェアラブルシステム200のディスプレイの能力は、ユーザがオブジェクトを3Dにおいて視認するための遠近調節を容易にするだけではなく、また、米国特許公開第2016/0270656号(参照することによってその全体として本明細書に組み込まれる)にさらに説明されるように、ユーザの眼球異常を補償するために使用されてもよい。いくつかの他の実施形態では、空間光変調器は、種々の光学コンポーネントを通して、画像をユーザに投影してもよい。例えば、以下にさらに説明されるように、空間光変調器は、画像を1つ以上の導波管上に投影してもよく、これは、次いで、画像をユーザに伝送する。
導波管スタックアセンブリ
【0057】
図4は、画像情報をユーザに出力するための導波管スタックの実施例を図示する。ウェアラブルシステム400は、複数の導波管432b、434b、436b、438b、4400bを使用して、3次元知覚を眼/脳に提供するために利用され得る、導波管のスタックまたはスタックされた導波管アセンブリ480を含む。いくつかの実施形態では、ウェアラブルシステム400は、
図2のウェアラブルシステム200に対応し得、
図4Aは、そのウェアラブルシステム200のいくつかの部分をより詳細に図式的に示す。例えば、いくつかの実施形態では、導波管アセンブリ480は、
図2のディスプレイ220の中に統合されてもよい。
【0058】
図4を継続して参照すると、導波管アセンブリ480はまた、複数の特徴458、456、454、452を導波管の間に含んでもよい。いくつかの実施形態では、特徴458、456、454、452は、レンズであってもよい。他の実施形態では、特徴458、456、454、452は、レンズではなくてもよい。むしろ、それらは、単に、スペーサであってもよい(例えば、空気間隙を形成するためのクラッディング層または構造)。
【0059】
導波管432b、434b、436b、438b、440bまたは複数のレンズ458、456、454、452は、種々のレベルの波面曲率または光線発散を用いて、画像情報を眼に送信するように構成されてもよい。各導波管レベルは、特定の深度平面と関連付けられてもよく、その深度平面に対応する画像情報を出力するように構成されてもよい。画像投入デバイス420、422、424、426、428は、それぞれ、眼410に向かって出力するために、各個別の導波管を横断して入射光を分散させるように構成され得る、導波管440b、438b、436b、434b、432bの中に画像情報を投入するために利用されてもよい。光は、画像投入デバイス420、422、424、426、428の出力表面から出射し、導波管440b、438b、436b、434b、432bの対応する入力縁の中に投入される。いくつかの実施形態では、光の単一ビーム(例えば、コリメートされたビーム)が、各導波管の中に投入され、特定の導波管と関連付けられた深度平面に対応する特定の角度(および発散量)において眼410に向かって指向される、クローン化されるコリメートされたビームの場全体を出力してもよい。
【0060】
いくつかの実施形態では、画像投入デバイス420、422、424、426、428は、それぞれ、対応する導波管440b、438b、436b、434b、432bの中への投入のための画像情報をそれぞれ生成する、離散ディスプレイである。いくつかの他の実施形態では、画像投入デバイス420、422、424、426、428は、例えば、1つ以上の光学導管(光ファイバケーブル等)を介して、画像情報を画像投入デバイス420、422、424、426、428のそれぞれに送り得る、単一の多重化されたディスプレイの出力端である。
【0061】
コントローラ460が、スタックされた導波管アセンブリ480および画像投入デバイス420、422、424、426、428の動作を制御する。コントローラ460は、導波管440b、438b、436b、434b、432bへの画像情報のタイミングおよび提供を調整する、プログラミング(例えば、非一過性コンピュータ可読媒体内の命令)を含む。いくつかの実施形態では、コントローラ460は、単一一体型デバイスまたは有線または無線通信チャネルによって接続される分散型システムであってもよい。コントローラ460は、いくつかの実施形態では、処理モジュール260または270(
図2に図示される)の一部であってもよい。
【0062】
導波管440b、438b、436b、434b、432bは、全内部反射(TIR)によって各個別の導波管内で光を伝搬するように構成されてもよい。導波管440b、438b、436b、434b、432bはそれぞれ、主要上部表面および底部表面およびそれらの主要上部表面と底部表面との間に延在する縁を伴う、平面である、または別の形状(例えば、湾曲)を有してもよい。図示される構成では、導波管440b、438b、436b、434b、432bはそれぞれ、各個別の導波管内で伝搬する光を導波管から外に再指向し、画像情報を眼410に出力することによって、光を導波管から抽出するように構成される、光抽出光学要素440a、438a、436a、434a、432aを含んでもよい。抽出された光はまた、外部結合光と称され得、光抽出光学要素はまた、外部結合光学要素と称され得る。抽出された光のビームは、導波管によって、導波管内で伝搬する光が光再指向要素に衝打する場所において出力される。光抽出光学要素(440a、438a、436a、434a、432a)は、例えば、反射または回折光学特徴であってもよい。説明を容易にし、図面を明確にするために、導波管440b、438b、436b、434b、432bの底部主要表面に配置されて図示されるが、いくつかの実施形態では、光抽出光学要素440a、438a、436a、434a、432aは、上部または底部主要表面に配置されてもよく、または導波管440b、438b、436b、434b、432bの容積内に直接配置されてもよい。いくつかの実施形態では、光抽出光学要素440a、438a、436a、434a、432aは、透明基板に取り付けられ、導波管440b、438b、436b、434b、432bを形成する、材料の層内に形成されてもよい。いくつかの他の実施形態では、導波管440b、438b、436b、434b、432bは、材料のモノリシック片であってもよく、光抽出光学要素440a、438a、436a、434a、432aは、その材料片の表面上および/または内部に形成されてもよい。
【0063】
図4を継続して参照すると、本明細書に議論されるように、各導波管440b、438b、436b、434b、432bは、光を出力し、特定の深度平面に対応する画像を形成するように構成される。例えば、眼の最近傍の導波管432bは、そのような導波管432bの中に投入されるにつれて、コリメートされた光を眼410に送達するように構成されてもよい。コリメートされた光は、光学無限遠焦点面を表し得る。次の上方の導波管434bは、眼410に到達し得る前に、第1のレンズ452(例えば、負のレンズ)を通して通過する、コリメートされた光を送出するように構成されてもよい。第1のレンズ452は、眼/脳が、その次の上方の導波管434bから生じる光を光学無限遠から眼410に向かって内向きにより近い第1の焦点面から生じるものとして解釈するように、若干の凸面波面曲率を生成するように構成されてもよい。同様に、第3の上方の導波管436bは、眼410に到達する前に、その出力光を第1のレンズ452および第2のレンズ454の両方を通して通過させる。第1および第2のレンズ452および454の組み合わせられた屈折力は、眼/脳が、第3の導波管436bから生じる光が次の上方の導波管434bからの光であったよりも光学無限遠から人物に向かって内向きにさらに近い第2の焦点面から生じるものとして解釈するように、別の漸増量の波面曲率を生成するように構成されてもよい。
【0064】
他の導波管層(例えば、導波管438b、440b)およびレンズ(例えば、レンズ456、458)も同様に構成され、スタック内の最高導波管440bが、人物に最も近い焦点面を表す集約焦点力のために、その出力をそれと眼との間のレンズの全てを通して送出する。スタックされた導波管アセンブリ480の他側の世界470から生じる光を視認/解釈するとき、レンズ458、456、454、452のスタックを補償するために、補償レンズ層430が、スタックの上部に配置され、下方のレンズスタック458、456、454、452の集約力を補償してもよい。そのような構成は、利用可能な導波管/レンズ対と同じ数の知覚される焦点面を提供する。導波管の光抽出光学要素およびレンズの集束側面は両方とも、静的であってもよい(例えば、動的または電気活性ではない)。いくつかの代替実施形態では、一方または両方とも、電気活性特徴を使用して動的であってもよい。
【0065】
図4を継続して参照すると、光抽出光学要素440a、438a、436a、434a、432aは、導波管と関連付けられる特定の深度平面のために、光をそれらの個別の導波管から外に再指向し、かつ本光を適切な量の発散またはコリメーションを伴って出力するように構成されてもよい。その結果、異なる関連付けられる深度平面を有する導波管は、関連付けられる深度平面に応じて、異なる量の発散を伴って光を出力する、異なる構成の光抽出光学要素を有してもよい。いくつかの実施形態では、本明細書に議論されるように、光抽出光学要素440a、438a、436a、434a、432aは、光を具体的角度で出力するように構成され得る、立体または表面特徴であってもよい。例えば、光抽出光学要素440a、438a、436a、434a、432aは、立体ホログラム、表面ホログラム、および/または回折格子であってもよい。回折格子等の光抽出光学要素は、2015年6月25日に公開された米国特許公開第2015/0178939号(参照することによってその全体として本明細書に組み込まれる)に説明される。
【0066】
いくつかの実施形態では、光抽出光学要素440a、438a、436a、434a、432aは、回折パターンを形成する回折特徴または「回折光学要素」(本明細書では、「DOE」とも称される)である。好ましくは、DOEは、ビームの光の一部のみがDOEの各交差部で眼410に向かって偏向される一方、残りが、全内部反射を介して、導波管を通して移動し続けるように、比較的に低回折効率を有する。画像情報を搬送する光は、したがって、複数の場所において導波管から出射する、いくつかの関連出射ビームに分割され、その結果、導波管内でバウンスする本特定のコリメートされたビームに関して、眼304に向かって非常に均一なパターンの出射放出となることができる。
【0067】
いくつかの実施形態では、1つ以上のDOEは、それらが能動的に回折する「オン」状態と有意に回折しない「オフ」状態との間で切替可能であり得る。例えば、切替可能なDOEは、微小液滴がホスト媒体内に回折パターンを備える、ポリマー分散液晶の層を備えてもよく、微小液滴の屈折率は、ホスト材料の屈折率に実質的に合致するように切り替えられることができる(その場合、パターンは、入射光を著しく回折させない)、または微小液滴は、ホスト媒体のものに合致しない屈折率に切り替えられることができる(その場合、パターンは、入射光を能動的に回折させる)。
【0068】
いくつかの実施形態では、深度平面または被写界深度の数および分布は、視認者の眼の瞳孔サイズまたは配向に基づいて、動的に変動されてもよい。被写界深度は、視認者の瞳孔サイズと反比例して変化してもよい。その結果、視認者の眼の瞳孔のサイズが減少するにつれて、被写界深度は、その平面の場所が眼の焦点深度を越えるため判別不能である1つの平面が、判別可能となり、瞳孔サイズの低減および被写界深度の相当する増加に伴って、より合焦して現れ得るように増加する。同様に、異なる画像を視認者に提示するために使用される、離間された深度平面の数は、減少された瞳孔サイズに伴って減少され得る。例えば、視認者は、一方の深度平面から他方の深度平面への眼の遠近調節を調節することなく、第1の深度平面および第2の深度平面の両方の詳細を1つの瞳孔サイズにおいて明確に知覚することが可能ではない場合がある。しかしながら、これらの2つの深度平面は、同時に、遠近調節を変化させることなく、別の瞳孔サイズにおいてユーザにとって十分に合焦し得る。
【0069】
いくつかの実施形態では、ディスプレイシステムは、瞳孔サイズまたは配向の決定に基づいて、または特定の瞳孔サイズまたは配向を示す電気信号の受信に応じて、画像情報を受信する導波管の数を変動させてもよい。例えば、ユーザの眼が、2つの導波管と関連付けられる2つの深度平面間を区別不能である場合、コントローラ460(ローカル処理およびデータモジュール260の実施形態であり得る)は、これらの導波管のうちの1つへの画像情報の提供を停止するように構成またはプログラムされることができる。有利なこととして、これは、システムへの処理負担を低減させ、それによって、システムの応答性を増加させ得る。導波管のためのDOEがオンおよびオフ状態間で切替可能である実施形態では、DOEは、導波管が画像情報を受信するとき、オフ状態に切り替えられてもよい。
【0070】
いくつかの実施形態では、出射ビームに視認者の眼の直径未満の直径を有するという条件を満たさせることが望ましくあり得る。しかしながら、本条件を満たすことは、視認者の瞳孔のサイズの変動性に照らして、困難であり得る。いくつかの実施形態では、本条件は、視認者の瞳孔のサイズの決定に応答して出射ビームのサイズを変動させることによって、広範囲の瞳孔サイズにわたって満たされる。例えば、瞳孔サイズが減少するにつれて、出射ビームのサイズもまた、減少し得る。いくつかの実施形態では、出射ビームサイズは、可変開口を使用して変動されてもよい。
【0071】
ウェアラブルシステム400は、世界470の一部を結像する、外向きに向いた結像システム464(例えば、デジタルカメラ)を含むことができる。世界470の本部分は、世界カメラの視野(FOV)と称され得、結像システム464は、時として、FOVカメラとも称される。世界カメラのFOVは、視認者210のFOVと同一である場合とそうではない場合があり、これは、視認者210が所与の時間に知覚する、世界470の一部を包含する。例えば、いくつかの状況では、世界カメラのFOVは、ウェアラブルシステム400の視認者210の視野より大きくあり得る。視認者による視認または結像のために利用可能な領域全体は、動眼視野(FOR)と称され得る。FORは、装着者が、その身体、頭部、または眼を移動させ、空間内の実質的に任意の方向を知覚することができるため、ウェアラブルシステム400を囲繞する4πステラジアンの立体角を含んでもよい。他のコンテキストでは、装着者の移動は、より抑制されてもよく、それに応じて、装着者のFORは、より小さい立体角に接し得る。外向きに向いた結像システム464から得られた画像は、ユーザによって行われるジェスチャ(例えば、手または指のジェスチャ)を追跡し、ユーザの正面における世界470内のオブジェクトを検出する等のために、使用されることができる。
【0072】
ウェアラブルシステム400は、オーディオセンサ232、例えば、マイクロホンを含み、周囲音を捕捉することができる。上記に説明されるように、いくつかの実施形態では、1つ以上の他のオーディオセンサが、発話源の場所の決定に有用なステレオ音受信を提供するために位置付けられることができる。オーディオセンサ232は、別の実施例として、指向性マイクロホンを備えることができ、これはまた、オーディオ源が位置する場所に関するそのような有用な指向性情報を提供することができる。ウェアラブルシステム400は、発話源を位置特定する際、または特定の瞬間におけるアクティブ話者を決定するために等、外向きに向いた結像システム464およびオーディオセンサ232の両方からの情報を使用することができる。例えば、ウェアラブルシステム400は、単独で、または話者の反射された画像(例えば、鏡に見られるように)と組み合わせて、音声認識を使用して、話者の識別を決定することができる。別の実施例として、ウェアラブルシステム400は、指向性マイクロホンから入手された音に基づいて、環境内の話者の位置を決定することができる。ウェアラブルシステム400は、発話認識アルゴリズムを用いて、話者の位置から生じる音を解析し、発話のコンテンツを決定し、音声認識技法を使用して、話者の識別(例えば、名前または他の人口統計情報)を決定することができる。
【0073】
ウェアラブルシステム400はまた、眼移動および顔移動等のユーザの移動を観察する、内向きに向いた結像システム466(例えば、デジタルカメラ)を含むことができる。内向きに向いた結像システム466は、眼410の画像を捕捉し、眼304の瞳孔のサイズおよび/または配向を決定するために使用されてもよい。内向きに向いた結像システム466は、ユーザが見ている方向(例えば、眼姿勢)を決定する際に使用するため、またはユーザのバイオメトリック識別のため(例えば、虹彩識別を介して)、画像を得るために使用されることができる。いくつかの実施形態では、少なくとも1つのカメラが、眼毎に、独立して、各眼の瞳孔サイズまたは眼姿勢を別個に決定し、それによって、各眼への画像情報の提示がその眼に対して動的に調整されることを可能にするために利用されてもよい。いくつかの他の実施形態では、単一眼410のみの瞳孔直径または配向(例えば、対の眼あたり単一カメラのみを使用して)が、決定され、ユーザの両眼に関して類似すると仮定される。内向きに向いた結像システム466によって得られる画像は、ユーザに提示されるべきオーディオまたは視覚的コンテンツを決定するためにウェアラブルシステム400によって使用され得る、ユーザの眼姿勢または気分を決定するために分析されてもよい。ウェアラブルシステム400はまた、姿勢センサ、例えば、IMU、加速度計、ジャイロスコープ等のセンサを使用して、頭部姿勢(例えば、頭部位置または頭部配向)を決定してもよい。
【0074】
ウェアラブルシステム400は、ユーザが、コマンドをコントローラ460に入力し、ウェアラブルシステム400と相互作用し得る、ユーザ入力デバイス466を含むことができる。例えば、ユーザ入力デバイス466は、トラックパッド、タッチスクリーン、ジョイスティック、多自由度(DOF)コントローラ、容量感知デバイス、ゲームコントローラ、キーボード、マウス、指向性パッド(Dパッド)、ワンド、触知デバイス、トーテム(例えば、仮想ユーザ入力デバイスとして機能する)等を含むことができる。マルチDOFコントローラは、コントローラの一部または全部の可能性として考えられる平行移動(例えば、左/右、前方/後方、または上/下)または回転(例えば、ヨー、ピッチ、またはロール)におけるユーザ入力を感知することができる。平行移動をサポートする、マルチDOFコントローラは、3DOFと称され得る一方、平行移動および回転をサポートする、マルチDOFコントローラは、6DOFと称され得る。ある場合には、ユーザは、指(例えば、親指)を使用して、タッチセンサ式入力デバイスを押下またはその上でスワイプし、入力をウェアラブルシステム400に提供してもよい(例えば、ユーザ入力をウェアラブルシステム400によって提供されるユーザインターフェースに提供するために)。ユーザ入力デバイス466は、ウェアラブルシステム400の使用の間、ユーザの手によって保持されてもよい。ユーザ入力デバイス466は、ウェアラブルシステム400と有線または無線通信することができる。
ウェアラブルシステムの他のコンポーネント
【0075】
多くの実装では、ウェアラブルシステムは、上記に説明されるウェアラブルシステムのコンポーネントに加えて、またはその代替として、他のコンポーネントを含んでもよい。ウェアラブルシステムは、例えば、1つ以上の触知デバイスまたはコンポーネントを含んでもよい。触知デバイスまたはコンポーネントは、触覚をユーザに提供するように動作可能であってもよい。例えば、触知デバイスまたはコンポーネントは、仮想コンテンツ(例えば、仮想オブジェクト、仮想ツール、他の仮想構造)に触れると、圧力またはテクスチャの触覚を提供してもよい。触覚は、仮想オブジェクトが表す物理的オブジェクトの感覚を再現してもよい、または仮想コンテンツが表す想像上のオブジェクトまたはキャラクタ(例えば、ドラゴン)の感覚を再現してもよい。いくつかの実装では、触知デバイスまたはコンポーネントは、ユーザによって装着されてもよい(例えば、ユーザウェアラブルグローブ)。いくつかの実装では、触知デバイスまたはコンポーネントは、ユーザによって保持されてもよい。
【0076】
ウェアラブルシステムは、例えば、ユーザによって操作可能であって、ウェアラブルシステムへの入力またはそれとの相互作用を可能にする、1つ以上の物理的オブジェクトを含んでもよい。これらの物理的オブジェクトは、本明細書では、トーテムと称され得る。いくつかのトーテムは、無生物オブジェクト、例えば、金属またはプラスチック片、壁、テーブルの表面の形態をとってもよい。ある実装では、トーテムは、実際には、任意の物理的入力構造(例えば、キー、トリガ、ジョイスティック、トラックボール、ロッカスイッチ)を有していなくてもよい。代わりに、トーテムは、単に、物理的表面を提供してもよく、ウェアラブルシステムは、ユーザにトーテムの1つ以上の表面上にあるように見えるように、ユーザインターフェースをレンダリングしてもよい。例えば、ウェアラブルシステムは、トーテムの1つ以上の表面上に常駐するように見えるように、コンピュータキーボードおよびトラックパッドの画像をレンダリングしてもよい。例えば、ウェアラブルシステムは、トーテムとしての役割を果たす、アルミニウムの薄い長方形プレートの表面上に見えるように、仮想コンピュータキーボードおよび仮想トラックパッドをレンダリングしてもよい。長方形プレート自体は、いずれの物理的キーまたはトラックパッドまたはセンサも有していない。しかしながら、ウェアラブルシステムは、仮想キーボードまたは仮想トラックパッドを介して行われた選択または入力として、長方形プレートを用いたユーザ操作または相互作用またはタッチを検出し得る。ユーザ入力デバイス466(
図4に示される)は、トラックパッド、タッチパッド、トリガ、ジョイスティック、トラックボール、ロッカまたは仮想スイッチ、マウス、キーボード、多自由度コントローラ、または別の物理的入力デバイスを含み得る、トーテムの実施形態であってもよい。ユーザは、単独で、または姿勢と組み合わせて、トーテムを使用し、ウェアラブルシステムまたは他のユーザと相互作用してもよい。
【0077】
本開示のウェアラブルデバイス、HMD、およびディスプレイシステムと使用可能な触知デバイスおよびトーテムの実施例は、米国特許公開第2015/0016777号(参照することによってその全体として本明細書に組み込まれる)に説明される。
ウェアラブルシステムとのユーザ相互作用の例示的プロセス
【0078】
図5は、仮想ユーザインターフェースと相互作用するための方法500の実施例のプロセスフロー図である。方法500は、本明細書に説明されるウェアラブルシステムによって実施されてもよい。方法500の実施形態は、ウェアラブルシステムによって使用され、ウェアラブルシステムのFOV内の人物またはドキュメントを検出することができる。
【0079】
ブロック510では、ウェアラブルシステムは、特定のUIを識別してもよい。UIのタイプは、ユーザによって事前決定されてもよい。ウェアラブルシステムは、ユーザ入力(例えば、ジェスチャ、視覚的データ、オーディオデータ、感覚データ、直接コマンド等)に基づいて、特定のUIが取り込まれる必要があることを識別してもよい。UIは、システムの装着者がドキュメントを装着者に提示するユーザを観察している(例えば、旅行者検問所において)、セキュリティシナリオに特有であることができる。ブロック520では、ウェアラブルシステムは、仮想UIのためのデータを生成してもよい。例えば、範囲、一般的構造、UIの形状等と関連付けられたデータが、生成されてもよい。加えて、ウェアラブルシステムは、ウェアラブルシステムがUIをユーザの物理的場所に関連して表示し得るように、ユーザの物理的場所のマップ座標を決定してもよい。例えば、UIが、身体中心である場合、ウェアラブルシステムは、リングUIがユーザの周囲に表示され得る、または平面UIが壁上またはユーザの正面に表示され得るように、ユーザの物理的立ち位置の座標、頭部姿勢、または眼姿勢を決定してもよい。本明細書に説明されるセキュリティコンテキストでは、UIは、装着者が、旅行者および旅行者のドキュメントを見ながら、UIを容易に視認し得るように、UIがドキュメントをシステムの装着者に提示している旅行者を囲繞しているかのように表示されてもよい。UIが、手中心である場合、ユーザの手のマップ座標が、決定されてもよい。これらのマップ点は、FOVカメラ、感覚入力を通して受信されたデータ、または任意の他のタイプの収集されたデータを通して、導出されてもよい。
【0080】
ブロック530では、ウェアラブルシステムは、データをクラウドからディスプレイに送信してもよい、またはデータは、ローカルデータベースからディスプレイコンポーネントに送信されてもよい。ブロック540では、UIは、送信されたデータに基づいて、ユーザに表示される。例えば、ライトフィールドディスプレイは、仮想UIをユーザの眼の一方または両方の中に投影することができる。いったん仮想UIが作成されると、ウェアラブルシステムは、単に、ブロック550において、より多くの仮想コンテンツを仮想UI上に生成するためのユーザからのコマンドを待機してもよい。例えば、UIは、ユーザの身体またはユーザの環境内の人物(例えば、旅行者)の身体の周囲の身体中心リングであってもよい。ウェアラブルシステムは、次いで、コマンド(ジェスチャ、頭部または眼移動、音声コマンド、ユーザ入力デバイスからの入力等)を待機してもよく、それが認識される場合(ブロック560)、コマンドと関連付けられた仮想コンテンツは、ユーザに表示されてもよい(ブロック570)。
複合現実におけるアバタレンダリングの実施例
【0081】
ウェアラブルシステムは、高被写界深度をレンダリングされたライトフィールド内で達成するために、種々のマッピング関連技法を採用してもよい。仮想世界をマッピングする際、実世界内の全ての特徴および点を把握し、仮想オブジェクトを実世界に関連して正確に描くことが有利である。この目的を達成するために、ウェアラブルシステムのユーザから捕捉されたFOV画像が、実世界の種々の点および特徴についての情報を伝達する新しい写真を含むことによって、世界モデルに追加されることができる。例えば、ウェアラブルシステムは、マップ点(2D点または3D点等)のセットを収集し、新しいマップ点を見出し、世界モデルのより正確なバージョンをレンダリングすることができる。第1のユーザの世界モデルは、第2のユーザが第1のユーザを囲繞する世界を体験し得るように、(例えば、クラウドネットワーク等のネットワークを経由して)第2のユーザに通信されることができる。
【0082】
図6A、6B、および6Cは、例示的ウェアラブルシステム600A、600B、および600Cのブロック図であって、これは、個々に、または集合的に、ウェアラブルシステム600とも称され得る。例示的ウェアラブルシステム600A、600B(
図6B)、および/または600C(
図6C)に図示されるコンポーネントのいくつかまたは全ては、
図2に示されるウェアラブルシステム200の一部であってもよい。これらのウェアラブルシステム600A、600B、および600Cはそれぞれ、システム600Aのコンポーネントを含み、例示的システム600Bおよび600Cはそれぞれ、付加的コンポーネントを含み、これは、下記にさらに詳細に説明される。
【0083】
図6A、6B、および6Cの実施例では、ウェアラブルシステム600は、マップ620を備えることができ、これは、マップデータベース710(
図7に示される)内のデータの少なくとも一部を含んでもよい。マップは、部分的に、ウェアラブルシステム上にローカルで常駐してもよく、部分的に、有線または無線ネットワークによってアクセス可能なネットワーク化された記憶場所(例えば、クラウドシステム内)に常駐してもよい。姿勢プロセス610は、ウェアラブルコンピューティングアーキテクチャ(例えば、処理モジュール260またはコントローラ460)上で実行され、マップ620からのデータを利用して、ウェアラブルコンピューティングハードウェアおよび/またはユーザおよび/またはトーテムの位置および配向を決定してもよい。姿勢データは、ユーザが、システムを体験し、世界内で動作するにつれてオンザフライで収集されたデータから、算出されてもよい。データは、画像、センサ(慣性測定ユニット等、これは、概して、加速度計と、ジャイロスコープコンポーネントとを備える)からのデータ、および実または仮想環境内のオブジェクトと関連する表面情報を含んでもよい。
【0084】
疎点表現は、同時位置特定およびマッピング(例えば、入力が画像/視覚専用である構成を指す、SLAMまたはvSLAM)プロセスの出力であってもよい。本システムは、種々のコンポーネントが存在する世界内の場所だけではなく、世界が成る内容も見出すように構成されることができる。姿勢は、マップの取込、マップからのデータの使用、および/またはユーザに対応するアバタをアニメーション化する方法の決定を含む、多くの目標を達成する、構築ブロックであり得る。
【0085】
一実施形態では、疎点位置は、それだけでは完全に適正ではあり得ず、さらなる情報が、多焦点AR、VR、またはMR体験を生産するために必要とされ得る。概して、深度マップ情報を指す、稠密表現が、少なくとも部分的に、本間隙を充填するために利用されてもよい。そのような情報は、ステレオ640と称される、プロセスから算出されてもよく、深度情報は、三角測量または飛行時間感知等の技法を使用して決定される。
【0086】
例示的ウェアラブルシステム600では、画像情報およびアクティブパターン(アクティブプロジェクタを使用して作成された赤外線パターン等)、画像カメラから入手された画像、または手のジェスチャ/トーテム650が、ステレオプロセス640への入力としての役割を果たし得る。有意な量の深度マップ情報が、ともに融合され得、そのうちの一部は、表面表現とともに要約され得る。例えば、数学的に定義可能な表面は、効率的(例えば、大点群と比較して)であって、ゲームエンジンのような他の処理デバイスへの理解しやすい入力であり得る。したがって、ステレオプロセス(例えば、深度マップ)640の出力は、融合プロセス630において組み合わせられてもよい。姿勢610は、同様に、本融合プロセス630への入力であってもよく、融合630の出力は、マップ取込プロセス620への入力となる。サブ表面は、トポグラフィマッピングにおけるように、相互に接続し、より大きい表面を形成し得、マップは、点および表面の大規模ハイブリッドとなる。
【0087】
複合現実モジュール660における種々の側面を解決するために、種々の入力が、利用されてもよい。例えば、ゲームパラメータが、入力され、システムのユーザが、種々の場所における1匹以上のモンスター、種々の条件下で死にかけている、または逃げているモンスター(ユーザがモンスターを射撃する場合等)、種々の場所における壁または他のオブジェクト、および同等物を伴った状態で、モンスターバトルゲームをプレーしていることを決定し得る。世界マップは、オブジェクトの場所に関する情報またはオブジェクトの意味論情報(例えば、オブジェクトが、平坦または丸いかどうか、水平または鉛直であるか、テーブルまたはランプであるかどうか等の分類)を含んでもよく、世界マップは、複合現実への別の有益な入力であり得る。世界に対する姿勢は、同様に、入力となり、ほぼあらゆる双方向システムに対して重要な役割を担う。
【0088】
ユーザからの制御または入力は、ウェアラブルシステム600への別の入力である。本明細書に説明されるように、ユーザ入力は、視覚的入力、ジェスチャ、トーテム、オーディオ入力、感覚入力等を含むことができる。動き回る、またはゲームをプレーするために、例えば、ユーザは、自らが所望する内容に関して、ウェアラブルシステム600に命令する必要があり得る。単に、自らを空間内で移動させる以外にも利用され得る、種々の形態のユーザ制御が存在する。一実施形態では、トーテム(例えば、代替として、コントローラと呼ばれる、ユーザ入力デバイス)または玩具銃等のオブジェクトが、ユーザによって保持され、システムによって追跡されてもよい。本システムは、好ましくは、ユーザがアイテムを保持していることを把握し、ユーザがアイテムと行っている相互作用の種類を理解するように構成されるであろう(例えば、トーテムまたはオブジェクトが、銃である場合、本システムは、場所および配向と、ユーザが、トリガまたは他の感知されるボタンまたは要素(アクティビティがカメラのいずれかの視野内にないときでも、生じている内容を決定することを補助し得る、IMU等のセンサを装備し得る)をクリックしているかどうかとを理解するように構成されてもよい)。
【0089】
手のジェスチャの追跡または認識もまた、入力情報を提供し得る。ウェアラブルシステム600は、ボタン押下、左または右、停止、握持、保持のジェスチャ等に関して、手のジェスチャを追跡および解釈するように構成されてもよい。例えば、1つの構成では、ユーザは、非ゲーム用環境において電子メールまたはカレンダをフリップする、または「フィストバンプ」を別の人物またはプレーヤと行うことを所望し得る。ウェアラブルシステム600は、動的である場合とそうではない場合がある、最小量の手のジェスチャを活用するように構成されてもよい。例えば、ジェスチャは、停止のために手を開く、OKのためのサムズアップ、非OKのためのサムズダウン、または指向性コマンドのための右または左または上/下への手のフリップのような単純静的ジェスチャであってもよい。
【0090】
眼追跡は、別の入力である(例えば、ユーザが見ている場所を追跡し、ディスプレイ技術を制御し、具体的深度または範囲にレンダリングする)。一実施形態では、眼の輻輳・開散運動が、三角測量を使用して、決定されてもよく、次いで、その特定の人物に関して開発された輻輳・開散運動/遠近調節モデルを使用して、遠近調節が、決定されてもよい。眼追跡は、眼カメラによって実施され、眼視線(例えば、片眼または両眼の方向または配向)を決定することができる。他の技法は、例えば、眼の近傍に設置された電極による電位の測定(例えば、電気眼球図記録)等の眼追跡のために使用されることができる。
【0091】
発話追跡は、単独で、または他の入力(例えば、トーテム追跡、眼追跡、ジェスチャ追跡等)と組み合わせて使用され得る、別の入力であり得る。発話追跡は、単独で、または組み合わせて、発話認識、音声認識を含んでもよい。ウェアラブルシステム600は、オーディオストリームを環境から受信する、オーディオセンサ(例えば、マイクロホン)を含むことができる。ウェアラブルシステム600は、発話している人物(例えば、発話が、ARDの装着者または別の人物または音声(例えば、環境内のラウドスピーカによって伝送される記録された音声)からのものであるかどうか)を決定するための音声認識技術と、話されている内容を決定するための発話認識技術とを組み込むことができる。ローカルデータおよび処理モジュール260または遠隔処理モジュール270(
図2)は、例えば、隠れマルコフモデル、動的時間伸縮法(DTW)ベースの発話認識、ニューラルネットワーク、ディープフィードフォワードおよび再帰ニューラルネットワーク等の深層学習アルゴリズム、エンドツーエンド自動発話認識、機械学習アルゴリズム(
図7を参照して説明される)、または音響モデル化または言語モデル化を使用する、他のアルゴリズム等の種々の発話認識アルゴリズムを適用することによって、マイクロホンからのオーディオデータ(または、例えば、ユーザによって鑑賞されているビデオストリーム等の別のストリーム内のオーディオデータ)を処理し、発話のコンテンツを識別することができる。
【0092】
ローカルデータおよび処理モジュール260または遠隔処理モジュール270はまた、音声認識アルゴリズムを適用することができ、これは、話者が、ウェアラブルシステム600のユーザ210またはユーザが会話している別の人物であるかどうか等、話者の身元を識別することができる。いくつかの例示的音声認識アルゴリズムは、周波数推定、隠れマルコフモデル、ガウス混合物モデル、パターンマッチングアルゴリズム、ニューラルネットワーク、行列表現、ベクトル量子化、話者ダイアライゼーション、決定ツリー、および動的時間伸縮法(DTW)技法を含むことができる。音声認識技法はまた、コホートモデルおよび世界モデル等のアンチ話者技法を含むことができる。スペクトル特徴が、話者特性を表す際に使用されてもよい。ローカルデータおよび処理モジュールまたは遠隔データ処理モジュール270は、
図7を参照して説明される、種々の機械学習アルゴリズムを使用して、音声認識を実施することができる。
【0093】
ウェアラブルシステムの実装は、UIを介したこれらのユーザ制御または入力を使用することができる。UI要素(例えば、制御、ポップアップウィンドウ、吹き出し、データエントリフィールド等)は、例えば、情報、例えば、オブジェクトのグラフィックまたは意味論情報のディスプレイを閉じるために使用されることができる。
【0094】
カメラシステムに関して、例示的ウェアラブルシステム600は、3つの対のカメラ、すなわち、ユーザの顔の側面に配列される、相対的広FOVまたは受動SLAMカメラの対と、ステレオ結像プロセス640をハンドリングし、また、ユーザの顔の正面における手のジェスチャおよびトーテム/オブジェクト追跡を捕捉するために、ユーザの顔の正面に配向される、異なる対のカメラとを含むことができる。FOVカメラおよびステレオプロセス640のための対のカメラは、外向きに向いた結像システム464(
図4に示される)の一部であってもよい。ウェアラブルシステム600は、眼ベクトルおよび他の情報を三角測量するために、ユーザの眼に向かって配向される、眼追跡カメラ(
図4に示される内向きに向いた結像システム462の一部であってもよい)を含むことができる。ウェアラブルシステム600はまた、1つ以上のテクスチャ加工された光プロジェクタ(赤外線(IR)プロジェクタ等)を備え、テクスチャを場面の中に投入してもよい。
【0095】
ウェアラブルシステム600は、アバタ処理およびレンダリングシステム690を備えることができる。アバタ処理およびレンダリングシステム690は、コンテキスト情報に基づいて、アバタを生成、更新、アニメーション化、およびレンダリングするように構成されることができる。アバタ処理およびレンダリングシステム690の一部または全部は、単独で、または組み合わせてのいずれかにおいて、ローカル処理およびデータモジュール260の一部として、または、それぞれ、遠隔処理モジュール270および遠隔データリポジトリへの通信リンク262、264を介して、実装されることができる。種々の実施形態では、複数のアバタ処理およびレンダリングシステム690(例えば、異なるウェアラブルデバイス上に実装されるように)が、仮想アバタ670をレンダリングするために使用されることができる。例えば、第1のユーザのウェアラブルデバイスは、第1のユーザの意図を決定するために使用されてもよい一方、第2のユーザのウェアラブルデバイスは、アバタの特性を決定し、第1のユーザのウェアラブルデバイスから受信された意図に基づいて、第1のユーザのアバタをレンダリングすることができる。第1のユーザのウェアラブルデバイスおよび第2のユーザのウェアラブルデバイス(または他のそのようなウェアラブルデバイス)は、例えば、
図9Aおよび9Bを参照して説明されるであろうように、ネットワークを介して、通信することができる。
【0096】
図6Bは、例示的ウェアラブルシステム600Bのブロック図であって、これは、
図2に示されるウェアラブルシステム200の一部であってもよい。ウェアラブルシステム600Aのコンポーネントに加え、ウェアラブルシステム600Bは、運動モジュール694と、人間工学モジュール696と、履歴モジュール698と、センサ組み合わせモジュール962とを含む。いくつかの実施形態では、692、694、696、および698のうちの1つ以上のものは、モジュール692、694、696、および/または698を備える、アバタ処理およびレンダリングシステム690等によって、ウェアラブルシステム600のコンポーネントのうちの1つ以上のもの内で組み合わせられてもよい。
【0097】
人間工学モジュール696は、人物(例えば、ユーザ)の手および/または腕に関する人間工学データを備えてもよい。いくつかの実施形態では、人間工学データは、3D空間内の場所(例えば、点)と関連付けられる手毎に、信頼度レベルを有してもよい。人間工学データは、いくつかの実施形態では、右手が3D空間内の特定の場所にある尤度のヒートマップを表してもよい。同様に、人間工学データはまた、左手が3D空間内の特定の場所にある尤度のヒートマップを備えてもよく、ヒートマップの面積が高温であるほど、手がその場所にあるより高い信頼度を示す。いくつかの実施形態では、3D空間内の場所は、ユーザに対してもよい。いくつかの実施形態では、3D空間内の場所は、MRシステムによって定義されるような世界座標系に対してもよい。いくつかの実施形態では、3D空間内の場所は、3D空間(例えば、3D空間は、ユーザの実世界環境である)内の点、または面積、または体積である。例えば、左手のヒートマップは、ユーザのすぐ左の腕の届く範囲における点が、右手が左までそれほど遠くに到達することができないため(なぜなら、右腕がその距離に延在するために十分に長くないことから)、左手である高尤度/信頼度を有することを示すであろう。しかしながら、対照的に、眼レベルにおけるユーザの真正面の点は、右および左手の両方に関して50%信頼度レベルを有し得る。
【0098】
いくつかの実施形態では、人間工学モジュール696は、同様に、手の配向データを備えてもよい。いくつかの実施形態では、配向および位置人間工学データが、組み合わせられてもよいが、他の実施形態では、配向および位置人間工学データは、別個のデータ(例えば、配向のためのヒートマップおよび位置のための別個のヒートマップ)であってもよい。例えば、MRシステムは、
図3および
図6に説明されるもの等の1つ以上のセンサを使用して、ユーザの左肩の真正面から6インチの点におけるユーザの手の掌を識別し得る。ヒートマップは、ヒト人間工学に基づいて、手が右手である80%の尤度が存在し、手が左手である可能性が、わずか20%であることを示し得る。
【0099】
運動モジュール694は、ユーザの手および/またはトーテム(または他のハンドヘルドコントローラ/デバイス)の速度および/または加速データを備えてもよい。速度データは、トーテムがユーザの片手からユーザの他方の手に変化したかどうかを決定するために使用されてもよい。
【0100】
センサ組み合わせモジュール692は、2つ以上のセンサのデータおよび関連付けられる信頼度レベルを組み合わせ、どちらの手がアクティブな手であるかと、関連付けられる信頼度レベルとの単一予測を決定するように機能してもよい。
【0101】
履歴モジュール698は、ユーザの手の一方または両方に関する過去の場所、位置、および/または信頼度レベル等の履歴データを備えてもよい。いくつかの実施形態では、履歴データは、着信センサデータをコンテキスト化および/またはエラーチェックするために使用されてもよい。
【0102】
センサ組み合わせモジュール692、運動モジュール694、人間工学モジュール696、および履歴モジュール698は、特定の場所において、ウェアラブルシステム600B内に描写されるが、モジュールは、例示的ウェアラブルシステム600B内の任意の他の好適な場所に位置し得る。いくつかの実施形態では、モジュール692-698は、別個のプロセッサ上に位置し、処理され、出力が、ウェアラブルシステム600Bの中にフィードされ得る。
【0103】
図6Cは、例示的ウェアラブルシステム600Cのブロック図であって、これは、
図2に示されるウェアラブルシステム200の一部であってもよい。ウェアラブルシステム600Aのコンポーネントに加え、ウェアラブルシステム600Cは、アクティブな手モジュール602を含み、これは、センサ組み合わせモジュール692、運動モジュール694、人間工学モジュール696、およびウェアラブルシステム600Bの履歴モジュール698のうちの1つ以上のものを含んでもよい。いくつかの実施形態では、モジュールのうちの2つ以上のものが、協働するとき、それらは、ユーザのアクティブな手(または複数の手)、アクティブな手の場所、および/または位置を決定するように機能してもよい。いくつかの実施形態では、センサ組み合わせモジュール692は、処理モジュール260または270上に位置してもよい。
ユーザの環境をマッピングする実施例
【0104】
図7は、MR環境700の実施例のブロック図である。MR環境700は、入力(例えば、ユーザのウェアラブルシステムからの視覚的入力702、室内カメラ等の定常入力704、種々のセンサからの感覚入力706、ユーザ入力デバイス466からのジェスチャ、トーテム、眼追跡、ユーザ入力等)を1つ以上のユーザウェアラブルシステム(例えば、ウェアラブルシステム200またはディスプレイシステム220)または定常室内システム(例えば、室内カメラ等)から受信するように構成されてもよい。ウェアラブルシステムは、種々のセンサ(例えば、加速度計、ジャイロスコープ、温度センサ、移動センサ、深度センサ、GPSセンサ、内向きに向いた結像システム、外向きに向いた結像システム等)を使用して、ユーザの環境の場所および種々の他の属性を決定することができる。本情報はさらに、異なる視点からの画像または種々のキューを提供し得る、部屋内の定常カメラからの情報で補完されてもよい。カメラ(室内カメラおよび/または外向きに向いた結像システムのカメラ等)によって入手された画像データは、マッピング点のセットに低減されてもよい。
【0105】
1つ以上のオブジェクト認識装置708が、受信されたデータ(例えば、点の集合)を通してクローリングし、点を認識またはマッピングし、画像をタグ付けし、マップデータベース710を用いて、意味論情報をオブジェクトに結び付けることができる。マップデータベース710は、経時的に収集された種々の点およびその対応するオブジェクトを備えてもよい。種々のデバイスおよびマップデータベースは、ネットワーク(例えば、LAN、WAN等)を通して相互に接続され、クラウドにアクセスすることができる。
【0106】
本情報およびマップデータベース内の点集合に基づいて、オブジェクト認識装置708a-708nは、環境内のオブジェクトを認識してもよい。例えば、オブジェクト認識装置は、顔、人物、窓、壁、ユーザ入力デバイス、テレビ、ドキュメント(例えば、本明細書におけるセキュリティ実施例において説明されるような旅券、運転免許証、パスポート)、ユーザの環境内の他のオブジェクト等を認識することができる。1つ以上のオブジェクト認識装置が、ある特性を伴うオブジェクトのために特殊化されてもよい。例えば、オブジェクト認識装置708aは、顔を認識するために使用されてもよい一方、別のオブジェクト認識装置は、ドキュメントを認識するために使用されてもよい。
【0107】
オブジェクト認識は、種々のコンピュータビジョン技法を使用して実施されてもよい。例えば、ウェアラブルシステムは、外向きに向いた結像システム464(
図4に示される)によって入手された画像を分析し、場面再構成、イベント検出、ビデオ追跡、オブジェクト認識(例えば、人物またはドキュメント)、オブジェクト姿勢推定、顔認識(例えば、環境内の人物またはドキュメント上の画像から)、学習、インデックス化、運動推定、または画像分析(例えば、写真、署名、識別情報、旅行情報等のドキュメント内の印を識別する)等を実施することができる。1つ以上のコンピュータビジョンアルゴリズムが、これらのタスクを実施するために使用されてもよい。コンピュータビジョンアルゴリズムの非限定的実施例は、スケール不変特徴変換(SIFT)、スピードアップロバスト特徴(SURF)、配向FASTおよび回転BRIEF(ORB)、バイナリロバスト不変スケーラブルキーポイント(BRISK)、高速網膜キーポイント(FREAK)、Viola-Jonesアルゴリズム、Eigenfacesアプローチ、Lucas-Kanadeアルゴリズム、Horn-Schunkアルゴリズム、Mean-shiftアルゴリズム、視覚的同時位置推定およびマッピング(vSLAM)技法、シーケンシャルベイズ推定器(例えば、カルマンフィルタ、拡張カルマンフィルタ等)、バンドル調節、適応閾値化(および他の閾値化技法)、反復最近傍点(ICP)、セミグローバルマッチング(SGM)、セミグローバルブロックマッチング(SGBM)、特徴点ヒストグラム、種々の機械学習アルゴリズム(例えば、サポートベクトルマシン、k最近傍アルゴリズム、単純ベイズ、ニューラルネットワーク(畳み込みまたは深層ニューラルネットワークを含む)、または他の教師あり/教師なしモデル等)等を含む。
【0108】
オブジェクト認識は、加えて、または代替として、種々の機械学習アルゴリズムによって実施されることができる。いったん訓練されると、機械学習アルゴリズムは、HMDによって記憶されることができる。機械学習アルゴリズムのいくつかの実施例は、教師ありまたは教師なし機械学習アルゴリズムを含むことができ、回帰アルゴリズム(例えば、通常の最小2乗回帰等)、インスタンスベースのアルゴリズム(例えば、学習ベクトル量子化等)、決定ツリーアルゴリズム(例えば、分類および回帰ツリー等)、ベイズアルゴリズム(例えば、単純ベイズ等)、クラスタリングアルゴリズム(例えば、k-平均クラスタリング等)、関連付けルール学習アルゴリズム(例えば、アプリオリアルゴリズム等)、人工ニューラルネットワークアルゴリズム(例えば、Perceptron等)、深層学習アルゴリズム(例えば、Deep Boltzmann Machine、すなわち、深層ニューラルネットワーク等)、次元削減アルゴリズム(例えば、主成分分析等)、アンサンブルアルゴリズム(例えば、Stacked Gneralization等)、または他の機械学習アルゴリズムを含む。いくつかの実施形態では、個々のモデルは、個々のデータセットのためにカスタマイズされることができる。例えば、ウェアラブルデバイスは、ベースモデルを生成または記憶することができる。ベースモデルは、開始点として使用され、データタイプ(例えば、テレプレゼンスセッション内の特定のユーザ)、データセット(例えば、テレプレゼンスセッション内のユーザの取得される付加的画像のセット)、条件付き状況、または他の変形例に特有の付加的モデルを生成してもよい。いくつかの実施形態では、ウェアラブルHMDは、複数の技法を利用して、集約されたデータの分析のためのモデルを生成するように構成されることができる。他の技法は、事前に定義された閾値またはデータ値を使用することを含んでもよい。
【0109】
マップデータベース内の本情報および点の集合に基づいて、オブジェクト認識装置708a-708nは、オブジェクトを認識し、オブジェクトを意味論情報で補完し、生命をオブジェクトに与えてもよい。例えば、オブジェクト認識装置が、点のセットがドアであることを認識する場合、システムは、いくつかの意味論情報を結び付けてもよい(例えば、ドアは、ヒンジを有し、ヒンジを中心として90度移動を有する)。オブジェクト認識装置が、点のセットが鏡であることを認識する場合、システムは、鏡が、部屋内のオブジェクトの画像を反射させ得る、反射表面を有するという意味論情報を結び付けてもよい。意味論情報は、本明細書に説明されるように、オブジェクトのアフォーダンスを含むことができる。例えば、意味論情報は、オブジェクトの法線を含んでもよい。システムは、ベクトルを割り当てることができ、その方向は、オブジェクトの法線を示す。経時的に、マップデータベースは、システム(ローカルで常駐し得る、または無線ネットワークを通してアクセス可能であり得る)がより多くのデータを世界から蓄積するにつれて成長する。いったんオブジェクトが認識されると、情報は、1つ以上のウェアラブルシステムに伝送されてもよい。例えば、MR環境700は、Californiaで発生している場面についての情報を含んでもよい。環境700は、New Yorkにおける1人以上のユーザに伝送されてもよい。FOVカメラおよび他の入力から受信されたデータに基づいて、オブジェクト認識装置および他のソフトウェアコンポーネントは、場面が世界の異なる部分に存在し得る第2のユーザに正確に「パス」され得るように、種々の画像から収集された点をマッピングし、オブジェクトを認識すること等ができる。環境700はまた、位置特定目的のために、トポロジマップを使用してもよい。
【0110】
図8は、認識されたオブジェクトに関連して仮想コンテンツをレンダリングする方法800の実施例のプロセスフロー図である。方法800は、仮想場面がウェアラブルシステムのユーザに提示され得る方法を説明する。ユーザは、その場面から地理的に遠隔に存在してもよい。例えば、ユーザは、New Yorkに存在し得るが、Californiaで現在起こっている場面を視認することを所望し得る、またはCaliforniaに存在する友人と散歩に行くことを所望し得る。
【0111】
ブロック810では、ウェアラブルシステムは、ユーザの環境に関する入力をユーザおよび他のユーザから受信してもよい。これは、種々の入力デバイスおよびマップデータベース内にすでに保有されている知識を通して達成されてもよい。ユーザのFOVカメラ、センサ、GPS、眼追跡等が、ブロック810において、情報をシステムに伝達する。システムは、ブロック820において、本情報に基づいて、疎点を決定してもよい。疎点は、ユーザの周囲における種々のオブジェクトの配向および位置を表示および理解する際に使用され得る、姿勢データ(例えば、頭部姿勢、眼姿勢、身体姿勢、または手のジェスチャ)を決定する際に使用されてもよい。オブジェクト認識装置708a-708nは、ブロック830において、これらの収集された点を通してクローリングし、マップデータベースを使用して、1つ以上のオブジェクトを認識してもよい。本情報は、次いで、ブロック840において、ユーザの個々のウェアラブルシステムに伝達されてもよく、所望の仮想場面が、ブロック850において、適宜、ユーザに表示されてもよい。例えば、所望の仮想場面(例えば、CAにおけるユーザ)が、New Yorkにおけるユーザの種々のオブジェクトおよび他の周囲に関連して、適切な配向、位置等において表示されてもよい。
複数のウェアラブルシステム間の例示的通信
【0112】
図9Aは、相互に相互作用する複数のユーザデバイスを描写する、全体的システム図を図式的に図示する。コンピューティング環境900は、ユーザデバイス930a、930b、930cを含む。ユーザデバイス930a、930b、および930cは、ネットワーク990を通して、相互に通信することができる。ユーザデバイス930a-930cはそれぞれ、ネットワークインターフェースを含み、ネットワーク990を介して、遠隔コンピューティングシステム920(また、ネットワークインターフェース971を含んでもよい)と通信することができる。ネットワーク990は、LAN、WAN、ピアツーピアネットワーク、無線、Bluetooth(登録商標)、または任意の他のネットワークであってもよい。コンピューティング環境900はまた、1つ以上の遠隔コンピューティングシステム920を含むことができる。遠隔コンピューティングシステム920は、クラスタ化され、異なる地理的場所に位置する、サーバコンピュータシステムを含んでもよい。ユーザデバイス930a、930b、および930cは、ネットワーク990を介して、遠隔コンピューティングシステム920と通信してもよい。
【0113】
遠隔コンピューティングシステム920は、遠隔データリポジトリ980を含んでもよく、これは、具体的ユーザの物理および/または仮想世界についての情報を維持することができる。データ記憶装置980は、ユーザ、ユーザの環境(例えば、ユーザの環境の世界マップ)、またはユーザのアバタの構成に関連する情報を記憶することができる。遠隔データリポジトリは、
図2に示される遠隔データリポジトリ280の実施形態であってもよい。遠隔コンピューティングシステム920はまた、遠隔処理モジュール970を含んでもよい。遠隔処理モジュール970は、
図2に示される遠隔処理モジュール970の実施形態であってもよい。遠隔処理モジュール970は、1つ以上のプロセッサを含んでもよく、これは、ユーザデバイス(930a、930b、930c)および遠隔データリポジトリ980と通信することができる。プロセッサは、ユーザデバイスおよび他の源から取得される情報を処理することができる。いくつかの実装では、処理または記憶の少なくとも一部は、ローカル処理およびデータモジュール260(
図2に示されるように)によって提供されることができる。遠隔コンピューティングシステム920は、所与のユーザが、具体的ユーザ自身の物理的および/または仮想世界についての情報を別のユーザと共有することを可能にしてもよい。
【0114】
ユーザデバイスは、単独で、または組み合わせて、ウェアラブルデバイス(HMDまたはARD等)、コンピュータ、モバイルデバイス、または任意の他のデバイスであってもよい。例えば、ユーザデバイス930bおよび930cは、
図2に示されるウェアラブルシステム200(または
図4に示されるウェアラブルシステム400)の実施形態であってもよく、これは、AR/VR/MRコンテンツを提示するように構成されることができる。
【0115】
ユーザデバイスのうちの1つ以上のものは、
図4に示されるユーザ入力デバイス466と併用されることができる。ユーザデバイスは、ユーザおよびユーザの環境についての情報を取得することができる(例えば、
図4に示される外向きに向いた結像システム464を使用して)。ユーザデバイスおよび/または遠隔コンピューティングシステム1220は、ユーザデバイスから取得される情報を使用して、画像、点、および他の情報の集合を構築、更新、および建造することができる。例えば、ユーザデバイスは、入手された未加工情報を処理し、さらなる処理のために、処理された情報を遠隔コンピューティングシステム1220に送信してもよい。ユーザデバイスはまた、処理のために、未加工情報を遠隔コンピューティングシステム1220に送信してもよい。ユーザデバイスは、処理された情報を遠隔コンピューティングシステム1220から受信し、ユーザに投影させる前に、最終処理を提供してもよい。ユーザデバイスはまた、取得された情報を処理し、処理された情報を他のユーザデバイスに渡してもよい。ユーザデバイスは、入手された情報を処理しながら、遠隔データリポジトリ1280と通信してもよい。複数のユーザデバイスおよび/または複数のサーバコンピュータシステムが、入手された画像の構築および/または処理に関与してもよい。
【0116】
物理的世界に関する情報は、経時的に展開されてもよく、異なるユーザデバイスによって収集される情報に基づいてもよい。仮想世界のモデルはまた、経時的に展開され、異なるユーザの入力に基づいてもよい。そのような情報およびモデルは、時として、本明細書では、世界マップまたは世界モデルと称され得る。
図6および7を参照して説明されるように、ユーザデバイスによって入手された情報は、世界マップ910を構築するために使用されてもよい。世界マップ910は、
図6Aに説明されるマップ620の少なくとも一部を含んでもよい。種々のオブジェクト認識装置(例えば、708a、708b、708c…708n)が、オブジェクトおよびタグ画像を認識するため、および意味論情報をオブジェクトに付加するために使用されてもよい。これらのオブジェクト認識装置はまた、
図7に説明される。
【0117】
遠隔データリポジトリ980は、データを記憶し、世界マップ910の構造を促進するために使用されることができる。ユーザデバイスは、ユーザの環境についての情報を常に更新し、世界マップ910についての情報を受信することができる。世界マップ910は、ユーザまたは別の人物によって作成されてもよい。本明細書に議論されるように、ユーザデバイス(例えば、930a、930b、930c)および遠隔コンピューティングシステム920は、単独で、または組み合わせて、世界マップ910を構築および/または更新してもよい。例えば、ユーザデバイスは、遠隔処理モジュール970および遠隔データリポジトリ980と通信してもよい。ユーザデバイスは、ユーザおよびユーザの環境についての情報を入手または処理してもよい。遠隔処理モジュール970は、遠隔データリポジトリ980およびユーザデバイス(例えば、930a、930b、930c)と通信し、ユーザおよびユーザの環境についての情報を処理してもよい。遠隔コンピューティングシステム920は、例えば、ユーザの画像を選択的にクロッピングする、ユーザの背景を修正する、仮想オブジェクトをユーザの環境に追加する、ユーザの発話に補助情報で注釈を付ける等、ユーザデバイス(例えば、930a、930b、930c)によって入手された情報を修正することができる。遠隔コンピューティングシステム920は、処理された情報を同一または異なるユーザデバイスに送信することができる。
テレプレゼンスセッションの実施例
【0118】
図9Bは、個別のウェアラブルシステムの2人のユーザがテレプレゼンスセッションを行っている、実施例を描写する。2人のユーザ(本実施例では、Alice912およびBob914と命名される)が、本図に示される。2人のユーザは、その個別のウェアラブルデバイス902および904を装着しており、これは、テレプレゼンスセッションにおいて他のユーザの仮想アバタを表すために、
図2を参照して説明される、HMD(例えば、システム200のディスプレイデバイス220)を含むことができる。2人のユーザは、ウェアラブルデバイスを使用して、テレプレゼンスセッションを行うことができる。2人のユーザを分離する、
図9Bにおける鉛直線は、AliceおよびBobが、テレプレゼンスを介して彼らが通信する間、2つの異なる場所に存在し得る(但し、その必要はない)(例えば、Aliceは、Atlantaにおけるそのオフィス内に存在し得る一方、Bobは、Bostonの屋外に存在する)ことを図示するように意図されることに留意されたい。
【0119】
図9Aを参照して説明されるように、ウェアラブルデバイス902および904は、相互または他のユーザデバイスおよびコンピュータシステムと通信してもよい。例えば、Aliceのウェアラブルデバイス902は、例えば、ネットワーク990(
図9Aに示される)を介して、Bobのウェアラブルデバイス904と通信してもよい。ウェアラブルデバイス902および904は、ユーザの環境および環境内の移動(例えば、個別の外向きに向いた結像システム464または1つ以上の場所センサを介して)および発話(例えば、個別のオーディオセンサ232を介して)を追跡することができる。ウェアラブルデバイス902および904はまた、内向きに向いた結像システム462によって入手されたデータに基づいて、ユーザの眼移動または視線を追跡することができる。いくつかの状況では、ウェアラブルデバイスはまた、ユーザが反射性表面の近傍に存在する場合、ユーザの顔の表情または他の身体移動(例えば、腕または脚部移動)を捕捉または追跡することができ、外向きに向いた結像システム464は、ユーザの反射された画像を取得し、ユーザの顔の表情または他の身体移動を観察することができる。
【0120】
ウェアラブルデバイスは、第1のユーザおよび環境の入手された情報を使用して、第2のユーザのウェアラブルデバイスによってレンダリングされ、第2のユーザの環境内における第1のユーザの存在の有形感覚を作成するであろう、仮想アバタをアニメーション化することができる。例えば、ウェアラブルデバイス902および904および遠隔コンピューティングシステム920は、単独で、または組み合わせて、Bobのウェアラブルデバイス904による提示のために、Aliceの画像または移動を処理してもよい、またはAliceのウェアラブルデバイス902による提示のために、Bobの画像または移動を処理してもよい。本明細書にさらに説明されるように、アバタは、例えば、ユーザの意図、ユーザの環境またはその中にアバタがレンダリングされる環境、またはヒトの他の生物学的特徴等のコンテキスト情報に基づいて、レンダリングされることができる。
【0121】
実施例は、2人のみのユーザを参照するが、本明細書に説明される技法は、2人のユーザに限定されるべきではない。ウェアラブルデバイス(または他のテレプレゼンスデバイス)を使用する、複数のユーザ(例えば、2人、3人、4人、5人、6人、またはそれを上回る)が、テレプレゼンスセッションに参加してもよい。特定のユーザのウェアラブルデバイスは、テレプレゼンスセッションの間、その特定のユーザに、他のユーザのアバタを提示することができる。さらに、本図における実施例は、環境内に立っているユーザを示すが、ユーザは、立っているように要求されない。ユーザのいずれかは、テレプレゼンスセッションの間、立っている、座っている、膝をついている、横になっている、歩いている、または走っていてもよい、または任意の位置または移動状態にあってもよい。ユーザはまた、本明細書の実施例に説明される以外の物理的環境内に存在してもよい。ユーザは、テレプレゼンスセッションを行っている間、別個の環境内に存在してもよい、または同一環境内に存在してもよい。全てのユーザが、テレプレゼンスセッションにおいて、その個別のHMDを装着することが要求されるわけではない。例えば、Aliceは、ウェブカメラおよびコンピュータ画面等の他の画像入手およびディスプレイデバイスを使用してもよい一方、Bobは、ウェアラブルデバイス904を装着する。
仮想アバタの実施例
【0122】
図10は、ウェアラブルシステムのユーザによって知覚されるようなアバタの実施例を図示する。
図10に示される例示的アバタ1000は、部屋内の物理的植物の背後に立っている、Alice(
図9Bに示される)のアバタであることができる。アバタは、例えば、サイズ、外観(例えば、皮膚色、顔色、髪型、衣類、顔特徴(例えば、しわ、ほくろ、しみ、にきび、えくぼ等))、位置、配向、移動、姿勢、表現等の種々の特性を含むことができる。これらの特性は、アバタと関連付けられたユーザに基づいてもよい(例えば、Aliceのアバタ1000は、実際の人物Aliceの一部または全部の特性を有してもよい)。本明細書にさらに説明されるように、アバタ1000は、コンテキスト情報に基づいて、アニメーション化されることができ、これは、アバタ1000の特性のうちの1つ以上のものに対する調節を含むことができる。概して、人物(例えば、Alice)の物理的外観を表すように本明細書に説明されるが、これは、限定ではなく、例証のためのものである。Aliceのアバタは、Alice以外の別の実際または架空のヒト、擬人化されたオブジェクト、創造物、または任意の他の実際または架空の表現の外観を表し得る。さらに、
図10における植物は、物理的である必要はなく、ウェアラブルシステムによってユーザに提示される植物の仮想表現であり得る。また、
図10に示されるものの付加的または異なる仮想コンテンツも、ユーザに提示され得る。
アバタをアニメーション化するための例示的制御システム
【0123】
アバタは、リギング技法を使用して、ウェアラブルシステムによって、アニメーション化されることができる。リギングの目標は、単純なヒトによって理解可能な制御に基づいて、アバタの魅力的で高忠実性の変形を提供することである。概して、最も人を引き付ける変形は、少なくとも部分的に、実世界サンプル(例えば、身体移動、関節運動、顔のゆがみ、表現等を実施する、実際のヒトの写真測量走査)または芸術指向的展開(実世界サンプリングに基づいてもよい)に基づく。複合現実環境におけるアバタのリアルタイム制御は、
図6Bを参照して説明される、アバタ処理およびレンダリングシステム690の実施形態によって提供されることができる。
【0124】
リギングは、アバタの身体の変形(例えば、顔のゆがみ)についての情報をメッシュ上に転写するための技法を含む。メッシュは、3D点(例えば、頂点)の集合であって、これらの頂点を共有する、ポリゴンのセットを伴うことができる。
図10は、アバタ1000の眼の周囲のメッシュ1010の実施例を示す。メッシュをアニメーション化することは、頂点の一部または全部を3D空間内の新しい位置に移動させることによって、メッシュを変形させることを含む。これらの位置は、リグ(下記に説明される)の下層骨の位置または配向によって、または顔の表情等の動画のための時間または他の状態情報によってパラメータ化されたユーザ制御を通して、影響されることができる。メッシュのこれらの変形のための制御システムは、多くの場合、リグと称される。
図6Bの例示的アバタ処理およびレンダリングシステム690は、3Dモデル処理システム680を含み、これは、リグを実装することができる。
【0125】
独立して、各頂点を移動させ、所望の変形を達成することは、非常に時間がかかり、労力集約的であり得るため、リグは、典型的には、メッシュを制御することをより容易にする、コンピュータ化されたコマンドとして、一般的な望ましい変形を提供する。映画等の最高仕様視覚効果生産に関しては、リグが、大量の数学的算出を実施し、高度に現実的な動画効果を達成するための十分な生産時間が存在し得る。しかし、リアルタイムアプリケーション(複合現実において等)に関しては、変形の速さは、非常に有利であり得、異なるリギング技法が、使用されてもよい。リグは、多くの場合、骨格系および/またはブレンドシェイプに依拠する、変形を利用する。
例示的骨格系
【0126】
骨格系は、階層内の関節の集合としての変形を表す。関節(骨とも呼ばれる)は、主に、平行移動、回転、およびスケールの変化を含む、空間内の変換を表す。関節の半径および長さも、表され得る。骨格系は、関節間の親-子関係を表す、階層であって、例えば、肘関節は、肩の子であって、手首は、肘関節の子である。子関節は、子関節が親の変換を継承するように、その親の関節に対して変換することができる。例えば、肩を移動させることは、指の先端までの全ての関節を移動させる結果をもたらす。その名称にもかかわらず、骨格は、実世界の骨格を表す必要はなく、メッシュの変形を制御するためにリグ内で使用される階層を説明することができる。例えば、髪は、系統内の一連の関節として表されることができ、アバタの顔のゆがみに起因する皮膚運動(例えば、笑顔になる、眉を顰める、笑う、発話する、瞬目等のアバタの表現を表す)は、顔リグによって制御される一連の顔関節によって表されることができ、筋肉変形は、関節によってモデル化されることができ、衣類の運動は、関節のグリッドによって表されることができる。
【0127】
骨格系は、アバタの生物学的骨格に類似し得る、低レベル(いくつかの状況では、低次とも称される)コア骨格を含むことができる。本コア骨格は、解剖学的に正しい骨の実際のセットに正確にマッピングされ得ないが、少なくとも類似配向および場所における骨のサブセットを有することによって、骨の実際のセットに類似することができる。例えば、鎖骨は、接地面と略平行であって、大まかには、頸部と肩との間に位置し得、正確に同一の長さまたは位置ではなくてもよい。筋肉、衣類、髪等を表す、より高次の関節構造は、低レベル骨格の上に層化されることができる。リグは、コア骨格のみをアニメーション化してもよく、より高次の関節構造は、例えば、スキニング技法(例えば、線形ブレンドスキニング(LBS)等の頂点加重方法)を使用して、コア骨格の動画に基づいて、リギング論理によって、アルゴリズム的に駆動されることができる。リアルタイムリギングシステム(アバタ処理およびレンダリングシステム690等)は、3Dモデル処理システム680による効率的リアルタイム処理を提供するために、所与の頂点に割り当てられ得る関節の数(例えば、8つまたはより少ない)に関して限界を課してもよい。
ブレンドシェイプ
【0128】
ブレンドシェイプは、一部または全部の頂点が、加重に基づいて、所望の量だけ3D空間内で移動される、メッシュの変形を含む。各頂点は、具体的ブレンドシェイプ標的のためのその独自のカスタム運動を有し得、頂点を同時に移動させることは、所望の形状を生成するであろう。ブレンドシェイプの程度は、ブレンドシェイプ加重を使用することによって、適用されることができる。リグは、組み合わせて、ブレンドシェイプを適用し、所望の変形を達成してもよい。例えば、笑顔を生産するために、リグは、口角を引っ張り、上唇を上昇させ、下唇を低下させ、眼、眉、鼻、およびえくぼを移動させるため、ブレンドシェイプを適用してもよい。
例示的リギング技法
【0129】
リグは、多くの場合、層内に構築され、より下層のより単純である層は、より高次の層を駆動し、これは、より現実的メッシュ変形を生産する。リグは、リギング制御論理によって駆動される、骨格系およびブレンドシェイプの両方を実装することができる。制御論理は、関節間の制約(例えば、具体的移動または親-子関節制約を提供するための照準、配向、および位置制約)、動態(例えば、髪および衣類のため)、姿勢ベースの変形(骨格の姿勢が、定義された姿勢からの距離に基づいて、変形を駆動するために使用される、PSD)、所望のより高いレベルの出力(例えば、顔の表情)が(骨格系またはブレンドシェイプの)より低いレベルの入力のセットから学習される、機械学習技法(例えば、
図7を参照して説明されるもの)等を含むことができる。いくつかの機械学習技法は、放射基底関数(RBF)を利用することができる。
【0130】
いくつかの実施形態では、3Dモデル処理システム680は、アバタを複合現実環境内にリアルタイムでアニメーション化し、(MRシステムのユーザと)双方向にさせ、適切なコンテキストアバタ挙動(例えば、意図ベースの挙動)をユーザの環境内に提供する。システム680は、アバタのより高いレベルの変形(例えば、ブレンドシェイプ、補正)を制御し、アバタの所望の移動および表現を生産する、表現、制約、変換(例えば、平行移動、回転、スケーリング、剪断等の3D空間内の頂点の移動)等のシステムをさらに駆動する、コア骨格階層を備える、層化アバタ制御システムを駆動してもよい。
MRユーザのアクティブな手および配向を決定するための例示的プロセス
【0131】
図11Aは、ユーザのアクティブな手、アクティブな手の場所、アクティブな手の配向、および/または関連付けられる信頼度レベルを決定するための例示的プロセス1100aを図示する。ブロック1102では、アクティブな手モジュール602または処理モジュール260または270等のデータ処理モジュールが、センサデータを1つ以上のセンサ、例えば、n個のセンサから受信し得、nは、2、3、または12個のセンサであってもよい。いくつかの実施形態では、センサは、視覚センサ(例えば、グレースケール視覚カメラ、カラー視覚カメラ等)および深度センサ等の
図2、3、6A-Cに説明されるセンサのうちの1つ以上のものであってもよい。いくつかの実施形態では、センサデータは、未加工データであってもよい。いくつかの実施形態では、センサデータは、データと関連付けられる初期信頼度レベルをすでに備える、センサデータを備えてもよい。いくつかの実施形態では、センサデータは、ユーザの手の一方または両方に関するデータを備えてもよく、および/または1つ以上のトーテムに関するデータを備えてもよい。トーテムは、トーテムが、典型的には、ユーザの手内に保持されるため、ユーザの手に関する近似場所として使用されてもよい。いくつかの実施形態では、場所オフセット計算が、トーテムを把持する間、トーテムの上方にユーザの手を考慮するために、トーテム場所に適用されてもよい。
【0132】
ブロック1104では、人間工学データが、受信されたセンサデータに適用され得る。いくつかの実施形態では、これは、ユーザ(または他の一般的ヒト)の人間工学制約を表すルールまたはコードのセットが、受信されたセンサデータを修正し得ることを意味し得る。いくつかの実施形態では、修正は、以下、すなわち、どちらのユーザの手がアクティブな手であるか、どちらの手がどの受信されたセンサデータと関連付けられるか、ユーザの手の一方または両方の配向、ユーザの手の一方または両方の場所、およびコンポーネントのうちの1つ以上のものと関連付けられる信頼度(または推定値全体に関する単一信頼度)のうちの1つ以上のものの初期または更新された推定値を備えてもよい。
【0133】
人間工学データは、右手が3D空間内(例えば、ユーザの周囲の環境内)の特定の場所にある尤度を表してもよい。人間工学データは、人物(例えば、ユーザ)の手および/または腕に関する任意のデータを備えてもよい。いくつかの実施形態では、人間工学データは、3D空間内の場所(例えば、点)と関連付けられる手毎に、信頼度レベルを有してもよい。人間工学データは、いくつかの実施形態では、右手が3D空間内の特定の場所にある尤度のヒートマップを表してもよい。同様に、人間工学データはまた、左手が3D空間内の特定の場所にある尤度のヒートマップを備えてもよく、ヒートマップの面積が高温であるほど、手がその場所にあるより高い信頼度を示す。いくつかの実施形態では、3D空間内の場所は、ユーザに対してもよい。いくつかの実施形態では、3D空間内の場所は、MRシステムによって定義されるような世界座標系に対してもよい。いくつかの実施形態では、3D空間内の場所は、3D空間内の点、または面積、または体積である(例えば、3D空間は、ユーザの実世界環境である)。例えば、左手のヒートマップは、ユーザのすぐ左の腕が届く範囲における点が、右手が左にそれほど遠く到達することができないため(なぜなら、右腕がその距離に延在するために十分に長くないことから)、左手である高尤度/信頼度を有することを示すであろう。しかしながら、対照的に、眼レベルにおけるユーザの真正面の点は、右および左手の両方に関する50%信頼度レベルを有し得る。
【0134】
いくつかの実施形態では、ブロック1104において適用される人間工学データは、同様に、手の配向データを備えてもよい。いくつかの実施形態では、配向および人間工学データは、組み合わせられてもよいが、他の実施形態では、配向および人間工学データは、別個のデータ(例えば、配向のためのヒートマップおよび位置のための別個のヒートマップ)であってもよい。例えば、MRシステムは、
図3および
図6に説明されるもの等の1つ以上のセンサを使用して、ユーザの左肩の真正面から6インチの点におけるユーザの手の掌を識別し得る。ヒートマップは、ヒト人間工学に基づいて、手が右手であることの80%の尤度が存在し、手が左手である可能性がわずか20%であることを示し得る。いくつかの実施形態では、身体に近いときの左の点は、右手を用いてより容易に行われ、身体から遠いときの左の点は、左手を用いてより容易に行われる。
【0135】
いくつかの実施形態では、人間工学データは、ユーザの手が、手が見出される可能性がより高い、ユーザの身体の周囲の面積/体積を有する様子を表し得る。例えば、左手を用いて、右耳の周囲に到達し、それを掻くことは、可能であるが、人物は、その右手を用いて、それを掻く可能性がより高い。いくつかの実施形態では、人間工学データは、ユーザの手毎に、単一円錐(すなわち、右手のための円錐、左手のための円錐)を表し、その中にユーザの手が位置する可能性が最も高い、体積を表し得る。円錐は、ユーザの肘から開始し(ユーザの腕が、ユーザの側面に対して真っ直ぐ下にある場合)し、ユーザの身体から離れるように外向きに(例えば、z-方向に)拡張し得る。
【0136】
いくつかの実施形態では、ユーザの手が存在する可能性が最も高い場所を表す、面積または体積は、より複雑であり得、可変加重を伴う複数のゾーンを含む可能性すらある。例えば、最高加重が、上記に説明される初期円錐のために使用され得るが、初期円錐を囲繞する、より広い円錐は、若干より低い加重を割り当てられてもよく、円錐のいずれかの外側の全ての面積は、低加重を割り当てられてもよい。人間工学ゾーンを定義する代替方法も、使用されてもよい。いくつかの実施形態では、手の配向データもまた、検討され得る。いくつかの実施形態では、ブロック1104において適用される人間工学データは、
図6Aのアバタ処理およびレンダリングシステム690、
図6Bの人間工学モジュール696、または
図6Cのアクティブな手モジュール602内に記憶されてもよい。
【0137】
いくつかの実施形態では、ブロック1104からの出力は、初期、または初期推定値がブロック1102から受信されたセンサデータとすでに関連付けられている場合、更新された、どちらの手(左または右)がアクティブな手であるかの推定値、手の場所、手の位置、および/またはこれらと関連付けられる信頼度を伴う、センサデータであり得る。
【0138】
ブロック1106では、履歴データが、ブロック1104の出力に適用され得る。履歴データは、ユーザの手の一方または両方に関する過去の場所、位置、および/または信頼度レベル等の履歴データを備えてもよい。いくつかの実施形態では、履歴データはまた、個々のセンサから受信された過去のデータを備えてもよい。いくつかの実施形態では、履歴データは、着信センサデータをコンテキスト化および/またはエラーチェックするために使用されてもよい。例えば、システムは、トーテムまたはユーザの手が、後続フレーム読取値間で閾値を上回って移動している場合、エラーを決定してもよい。フレームが、1/60秒毎に読み取られるが、システムが、フレーム間の1メートルの移動を計算した場合(閾値が0.1メートルであるとき)、例えば、システムは、低信頼度レベルをユーザの手の場所に割り当ててもよい。
【0139】
別の実施例として、履歴データを適用することは、単一センサに関するフレーム間のデータを比較することを意味し得る。トーテムの位置が、閾値数のフレームにわたって移動していない場合、システムは、トーテムがフリーズされていると決定し得、これは、信頼性がないデータをもたらし得、システムは、したがって、低信頼度レベルをそのデータに割り当ててもよい。いくつかの実施形態では、履歴データを適用することは、掌性、位置、配向、および/またはこれらと関連付けられる信頼度レベルを決定するための有効性に関してデータをチェックすることを意味し得る。いくつかの実施形態では、ブロック1106において適用される履歴データは、
図6Aのアバタ処理およびレンダリングシステム690、
図6Bの履歴モジュール698、および/または
図6Cのアクティブな手モジュール602内に記憶されてもよい。
【0140】
ブロック1108では、運動データが、ブロック1106の出力に適用され得る。いくつかの実施形態では、これは、ユーザ(または他の一般的ヒト)またはトーテムの運動を表すルールまたはコードのセットが、ブロック1104からの出力を修正し得ることを意味し得る。例えば、運動データは、ユーザの手が迅速に移動している場合、ユーザがトーテムを保持している手を変化させている可能性が低いことを表す、ルールを備えてもよい。これは、どちらの手がアクティブな手(例えば、トーテムを保持している手)であるかを決定することに役立ち得、例えば、履歴データが、右手がトーテムを保持していることを示し、速度が、閾値速さを上回る(したがって、それを「高速」としてカテゴリ化する)場合、アクティブな手は、依然として、右手である可能性が高い。これは、例えば、システムが、単一フレームに関してどちらの手がアクティブな手であるか(すなわち、掌性)の低信頼度レベルを有する状況において、有利であり得る。速度(および/または他の運動データ)および/または履歴データが、アクティブな手をより正確に推定するために、掌性推定値に適用されてもよい。いくつかの実施形態では、ブロック1108において適用される運動データは、
図6Aのアバタ処理およびレンダリングシステム690、
図6Bの運動モジュール694、および/または
図6Cのアクティブな手モジュール602内に記憶されてもよい。
【0141】
いくつかの実施形態では、ブロック1104、1106、および1108は、異なる順序であってもよい。例えば、履歴データが、最初に、1108において適用されてもよく、次いで、人間工学データが、1104において適用されてもよく、次いで、運動データが、1108において適用されてもよい。他の順序も、好適であり得る。
【0142】
ブロック1110では、先行ブロックのn個の出力(例えば、n個の数のセンサあたり1つ)が、ユーザのアクティブな手、場所、配向、および/またはこれらと関連付けられる正確度の単一推定値に組み合わせられてもよい。推定値を組み合わせ、融和させることは、1つ以上のブロックを構成してもよい。1つ以上のブロックは、データを比較し、最も信頼性があるものを割り出す、ルールのセットであってもよい。データ信頼性は、n個のセンサのFOVが相互に対して位置する場所およびデータがそれらのFOVに対して捕捉された場所に応じて変化し得る。いくつかの実施形態では、ブロック1110のn個のセンサからの組み合わせられ、融和されたセンサデータは、
図6Aのアバタ処理およびレンダリングシステム690、
図6Bのセンサ組み合わせモジュール692、および/または
図6Cのアクティブな手モジュール602内に記憶されてもよい。
【0143】
図12は、センサの例示的セットのためのFOVの例示的セットを図示する。本実施例では、8つのセンサが存在する。1202は、
図3のカメラ316等の一対の左および右内向きに(相互に向かって面するように内向きに)向いたグレースケール世界(ユーザから離れるように、世界に向かって向いた)視覚カメラ等の第1および第2のセンサの組み合わせられたFOVを表し得る。1204および1206は、ユーザの周囲のより大きい空間を結像するために、相互から離れるように向けられ得る、外向きに向いた右および左グレースケール視覚カメラを表し得る。1208は、カラー視覚カメラを表し得る。1210は、深度センサを表し得る。1212は、ユーザによって装着されるMRデバイスの左および右ディスプレイのためのFOVを表し得る。いくつかの実施形態では、2、3、または10個のセンサ等、より多いまたはより少ないセンサが、使用されてもよい。いくつかの実施形態では、同一センサが、使用されるが、相互に対して異なる構成であってもよい。
【0144】
いくつかの実施形態では、領域は、n個のセンサのFOVに基づいて定義されてもよい。領域は、相互に対するセンサの角度および距離に応じて変化してもよい。
図13は、
図12に説明されるセンサのセットのための領域の例示的セットを図示する。いくつかの実施形態では、領域は、センサの中心FOV対FOVの縁に基づいて定義されてもよい。例えば、1302は、本質的に、2つの内向きに向いた世界カメラのFOV全体を定義してもよい。1304は、対の内向きに向いた世界カメラのための中心領域と縁領域との間の境界を定義してもよい。2つの境界1302、1304は、増加されたジェスチャ認識能力を伴う、中心面積と、減少されたジェスチャ認識能力(ジェスチャが、縁上にあるため、手の一部のみが、センサによって感知され得る)を伴う、縁面積とを定義してもよい。
【0145】
いくつかの実装では、領域は、ブロック1110において、n個のセンサからのセンサデータを組み合わせ、融和させることに役立つために使用されてもよい。例えば、プロセス1100aからのn個のセンサのうちの1つまたは2つが、2つの内向きに向いた世界カメラからのジェスチャデータ(例えば、x、y、zにおける手の位置)である場合、ブロック1110は、演算を1302と1304との間の領域内で捕捉されたデータに適用し得、したがって、信頼度レベルは、中心FOV内側境界1304内で検出されるであろう、類似ジェスチャと比較して、低減され得る(例えば、半分にされる)。付加的ルールが、プロセス1100aのブロック1110において使用されてもよく、1つのセンサからのデータを異なるセンサからの競合データより上に優先順位化する、組み合わせられたセンサデータに基づいて、更新された信頼度レベルを計算する(例えば、第1のセンサが、70%の信頼度を伴って、アクティブな手が右手であることを決定し、第2のセンサが、75%の信頼度を伴って、アクティブな手が右手であることを決定する場合、組み合わせられた信頼度レベルは、>75%であり得る)、データがエラーを有することを決定する、不正確なデータを破棄し、データが捕捉されたセンサのFOV内の場所に応じて、特定のセンサからのデータを優先順位化する、およびより多くのことを行うように機能してもよい。ブロック1110からの出力は、どちらの手がアクティブな手であるか、アクティブな手の場所、アクティブな手の位置、および/またはこれらの出力のそれぞれと関連付けられる信頼度レベルの単一推定値であり得る。ブロック1110からの推定値は、ブロック1112におけるさらなる使用のために出力されてもよい。
【0146】
ブロック1112では、手推定値が、アバタ処理およびレンダリングシステム690に出力され得る。アバタ処理およびレンダリングシステム690は、ブロック1112からのデータを使用して、例示的アバタ1000等のユーザと関連付けられる仮想アバタの移動を指示してもよい。いくつかの実施形態では、移動は、例えば、
図10に関連して上記に説明されるように、アバタリギングシステムの使用を通して実行されてもよい。手推定値は、センサによって受信されたデータに応じて、右手、左手、または両方に関するものであってもよい。いくつかの実施形態では、掌性(右対左手)、場所、および/または配向のサブセットのみが、決定されてもよい。
【0147】
プロセス1100aは、システムおよび/またはセンサのフレーム更新毎に繰り返されてもよい。例えば、センサは、ある時間インターバルで(例えば、1/60秒毎に)、更新するように設定されてもよく、その時点で、プロセスは、再び、ブロック1102において開始する。
【0148】
図11Bは、ユーザのアクティブな手、アクティブな手の場所、アクティブな手の配向、および/または関連付けられる信頼度レベルを決定するための例示的プロセス1100bを図示する。
図11Bのブロックは、ブロック1104-1108の順序および量を除き、
図11Aに類似し得る。プロセス1100bでは、プロセス1100aのブロック1104-1108は、n個のセンサと関連付けられる信頼度レベルを決定する、加重ブロック1114にともに組み合わせられてもよい。したがって、これらのブロック1104-1108は、並行して、または順次、実施され、出力を相互と共有してもよい。
【0149】
ブロック1114は、例えば、ユーザプロファイルモジュール(例えば、ユーザのプロファイルが、ユーザが右利きであることを述べる場合、システムは、トーテムデータがユーザの右手を表すと仮定するようにデフォルト設定し得る)および/または環境モジュール(例えば、システムは、ユーザの環境を感知し、ユーザの手が、自転車のハンドルバー上またはボートのオール上等の具体的場所および/または配向にあることが予期される場合、自転車に乗っている等の状況またはコンテキストを認識し得る)を含む、n個のセンサデータ毎に信頼度レベルを決定する、1つ以上の方法を備えてもよい。
【0150】
図14は、ユーザのアクティブな手、アクティブな手の場所、アクティブな手の配向、および/または関連付けられる信頼度レベルを決定するための例示的プロセス1400を図示する。いくつかの実施形態では、MLシステムは、ユーザの一方または両方のアクティブな手を検出するように構成されてもよい。いくつかの実施形態では、プロセス1400は、アクティブな手モジュール602内で生じる。いくつかの実施形態では、プロセス1400は、処理モジュール260または270上で生じる。
【0151】
プロセス1400は、ブロック1420から開始し、センサデータが、n個のセンサから受信される。ブロック1420は、ブロック1402において、センサ1データを受信するステップと、ブロック1404において、センサ2データを受信するステップと、ブロック1406において、センサnデータを受信するステップとを含み得る。いくつかの実施形態では、センサデータは、ブロック1420において、2つ以上のセンサから受信される。いくつかの実施形態では、センサから受信されたデータストリーム(または「センサデータストリーム」)の数は、経時的に変化し得、したがって、より多いまたはより少ないセンサが、プロセス1400において、任意の所与の時点で評価されてもよい。データをプロセス1400の一部として送信し得る、例示的センサは、ハンドヘルドコントローラの1つ以上の内部IMU(例えば、トーテムに関する加速データを得るため)、ハンドヘルドコントローラの外部追跡(例えば、基点を追跡し、実世界内のトーテム位置を取得するために、MRヘッドセット上に搭載されるカメラを用いたトーテム上の基点)、視覚センサ(例えば、ジェスチャ認識のためのカメラ)、深度センサ(例えば、オブジェクト認識のため)、および同等物である。
【0152】
いくつかの実施形態では、深度センサが、視覚アルゴリズムを介して、掌性を決定するために使用されてもよい。代替センサが、単独で、または本明細書に開示されるセンサと組み合わせて、未加工位置、配向、および/または画像データを取得するために使用されてもよい。いくつかの実施形態では、受信されたセンサデータは、未加工データであってもよい。未加工データは、関連付けられる信頼度レベルを伴わない、内部IMUからの加速データ等のデータであってもよい。
【0153】
ブロック1408、1410、および1412では、未加工センサデータが、分析され得、初期加重(例えば、信頼度レベル)が、決定され得る。いくつかの実施形態では、初期加重は、上記に説明されるように、履歴データに基づいてもよい。いくつかの実施形態では、初期加重1408、1410、および1412は、システム設計、センサ設計、および/またはヒト人間工学に基づく、ルールのセットに基づいてもよい。例えば、トーテムからのデータは、MR HMDに近いほど、あまり信頼性がなくなり得る。結果として、システムは、トーテム位置が、1フィート以内等、ヘッドセットまでの閾値距離以内にあるとき、トーテムデータの信頼度レベルを減少させる、プログラムされたルールを実行するようにプログラムされてもよい。別の実施例として、システムは、要求されるフレームを矛盾して出力しているセンサからのデータの信頼度レベルまたは加重を減少させるようにプログラムされてもよい。例えば、センサ1が、要求されるフレームを周期的に出力していない場合、センサのための不十分な電力が存在し得、これは、センサの正確度を減少させ得る。いくつかの実施形態では、センサは、同一フレームを数回出力する、および/またはフレームを数回繰り返した後、突然、新しいフレームにジャンプし得る。回数が、閾値を超える場合、システムは、可能性として、十分な電力がセンサに供給されていないこと、またはEM干渉に起因して、センサがフリーズされていると決定し得る。したがって、初期加重ブロック1408、1410、および1412は、センサデータを廃棄する、または考慮しない、またはそのデータ内の信頼度レベルを調節する(例えば、減少または増加させる)ためのルールを備えてもよい。いくつかの実施形態では、データ(例えば、スキップされたフレーム)の欠如は、有用なデータであり得、加重を決定するためのルールにおいて利用されてもよい。受信されたセンサデータの信頼性および正確度を決定するための種々の他のルールが、使用されてもよい。
【0154】
図14の実施例では、各受信されたセンサデータは、ブロック1408、1410、および/または1412において、加重と関連付けられるが、加重は、センサのタイプに基づいて、異なるように計算されてもよい。いくつかの実施形態では、トーテムセンサデータのための初期加重は、部分的に、データがフリーズされ、トリガ角度にあるように現れるかどうかに基づいてもよい。トリガ角度は、トーテム設計に応じて変動し得、例えば、30度であり得る。トーテムデータは、トーテムが、下に置かれると、トーテムの底部上のボタンが、トーテムが平坦に置かれないように妨げ、したがって、静置デバイスを固定されたトリガ角度に整合させるため、あるトリガ角度でフリーズされて現れ得る。本状況では、トーテムデータと関連付けられる初期加重ブロックは、ユーザの手がトーテムを保持していないため、初期信頼度を破棄する、考慮しない、または約0%と推定し得る。
【0155】
いくつかの実施形態では、初期加重ブロック1408、1410、および/または1412は、空間内のその場所に基づいて、トーテムの場所に関する確率のヒートマップを適用する、ルールを使用してもよい。ルールは、トーテムが右腕円錐または左腕円錐内にある場合、高信頼度レベルを規定してもよい。いくつかの実施形態では、腕円錐は、上腕が肩から肘までのユーザの側面に真っ直ぐ下にあるとき、ユーザの肘があるであろう、点を起点とするように定義され得、円錐は、ユーザから外向きにz-方向に延在し得る。加えて、手の配向が、考慮される場合、信頼度レベルは、右手および左手の両方とも、異なる時間に空間の同一点にあることが可能性として考えられるが、各手が、人体の生理学的限界に起因して、異なる配向でその空間を占有するであろうため、さらにより増加し得る。例えば、右手は、右円錐内にある間、真っ直ぐ配向され得るが、右円錐内の同一場所における左手は、角度付けられるであろう。
【0156】
初期加重が、決定された後、n個のセンサからのデータのn個のストリームが、ブロック1414において、1つ以上のルールに基づいて、組み合わせられ、融和される。いくつかの実施形態では、n個のセンサからのセンサデータ融和ブロック1110(例えば、
図11Aおよび11B)と組み合わせおよび融和ブロック1414は、同一であり得る。一実施例では、第1のルールは、1408-1412からの着信データストリームを査定し、データが、右手、左手、または両方に関するものであるかどうかを決定してもよい。システムは、次いで、第1の手に関する単一推定値が決定され、随意に、第2の手に関する単一推定値が決定されるまで、1つ以上のルールを適用してもよい。データが、1つのみの手に関して受信される場合、一方の手に関する推定値のみが、決定されるであろう。例えば、トーテムデータは、単一の手を表し得るが、いくつかのジェスチャは、手の両方を表し得る。本開示のウェアラブルデバイスジェスチャ認識の実施例はまた、米国特許公開第2015/0016777号(参照することによってその全体として本明細書に組み込まれる)に説明される。
【0157】
いくつかの実施形態では、組み合わせおよび融和ブロック1414において使用される例示的ルールは、2つ以上のセンサからの推定値を比較することであってもよい。掌性、配向、および/または場所に関する推定値が、一致する場合、ブロック1414は、その推定値に関して新しい(例えば、より高い)信頼度レベルを計算し得る。種々のセンサストリームからの推定値が、合致しない場合、システムは、センサデータが得られた場所を査定し得る。例えば、システムの視覚的領域内(例えば、1つ以上の視覚センサのFOV内)にある場合、視覚データは、他のセンサからのデータを優先すべきである。視覚的領域の外側にあるとき、トーテムデータが、代わりに、優先されるべきである。センサが所与の領域内で他のセンサより優先される、ルールのセットは、個々のセンサの信頼性、センサ構成、および/または環境条件(例えば、深度センサは、低光量設定では、視覚センサより信頼性がある)に基づいてもよい。
【0158】
ブロック1416では、推定値が、出力される。いくつかの実施形態では、出力は、現在および履歴条件を前提として、トーテムが姿勢Qを伴って左手内に存在する、xx%の信頼度レベルが存在するとして解釈されてもよい。信頼度レベルは、次いで、新しいデータ更新がシステムに追加されるにつれて、経時的に調節されてもよい。推定値は、右手、左手、または両方に関するものであってもよい。推定値は、一方または両方の手の場所および/または配向に関するものであってもよい。推定値は、推定値と関連付けられる信頼度レベルを備えてもよい。プロセス1400は、センサが新しいフレームを送信すると、ブロック1416からブロック1420に戻るように繰り返されてもよい。プロセスは、1/60秒の事前にプログラムされたフレーム更新等で、規則的インターバルで繰り返されてもよい、またはイベントベース等、断続的に生じてもよい、またはアバタチャットアプリケーションから等のユーザ入力に基づいて、生じてもよい。出力は、続いて、
図6A-6Cの690等のアバタ処理およびレンダリングシステムの中にフィードされてもよく、ユーザと関連付けられるアバタの運動を駆動してもよい。
【0159】
図15は、所与のフレームにおける全てのセンサデータ(例えば、所与の時点におけるセンサのセットからの読取値のセット)を横断して、初期加重を備える、センサデータを組み合わせ、融和させ、単一推定値を生産するための例示的プロセス1500を図示する。組み合わせおよび融和プロセス1414(
図14)は、プロセス1500のいくつかまたは全てを含んでもよい。プロセス1500は、ブロック1502から開始し、事前に加重されたデータが、受信される。事前に加重されたデータは、例えば、ブロック1408-1412からのデータであってもよい。
【0160】
ブロック1504では、事前に加重されたデータが、評価され、事前に加重されたデータが単一の有効データセットのみを備えるかどうかを決定する。いくつかの実施形態では、単一の有効データセットは、右手に関する1つの推定値、左手に関する1つの推定値、または手毎の1つの推定値を備えてもよい。いくつかの実施形態では、単一の有効データセットは、右手に関する1つのデータストリーム、左手に関する1つのデータストリーム、または手毎の1つのデータストリームを備えてもよい。
【0161】
事前に加重されたデータが、有効データセットを備える場合、プロセスは、ブロック1506に進み、履歴が、更新される。履歴は、ユーザの手の掌性、場所、および/または配向を評価する(例えば、手追跡)ために使用されるセンサから出力された過去のフレームに関するデータを備える、履歴データを備えてもよい。いくつかの実施形態では、履歴はまた、前のフレーム更新からの過去の出力結果を備える。履歴は、履歴モジュール698、アバタ処理およびレンダリングシステム690、および/またはアクティブな手モジュール602内に記憶されてもよい。代替として、履歴データは、システム200等のシステム全体を通して、種々の場所に記憶されてもよい。例えば、センサに関する履歴データは、センサ自体内に記憶されてもよい、またはセンサ管理プロセスおよびデータを備え得る、各センサと関連付けられるプロセッサ内に記憶されてもよい。
【0162】
ブロック1508では、プロセス1500は、1つ以上のアイドルトーテムルールを利用して、トーテムがアイドルトーテム状態であるかどうかを決定する。アイドルトーテムルールは、上記に説明されるようなルールであって、例えば、所与のセンサからの閾値数の前のフレームが同一であるかどうかをチェックしてもよい。いくつかの実施形態では、アイドルトーテムはトーテムの状態をチェックし、トーテムがオフまたはスリープモードである場合、トーテムをアイドルとしてカテゴリ化することによって決定されてもよい。いくつかの実施形態では、アイドルトーテムは、水平から30度等のトリガ角度と組み合わせて、閾値数のフレームにわたって繰り返されるフレーム出力を有する、トーテムであってもよい。いくつかの実施形態では、アイドル状態は、ユーザがトーテムを下に置く、トーテムをユーザのポケット内に入れる、トーテムをユーザの手首からぶら下げる、またはトーテムがデータを提供するが、トーテムが実際にはユーザの手内にない、他の状況にあるときを表し得る。例えば、アイドル状態は、ユーザの手首からのトーテム揺動を表し得る、サイクリック運動に関してセンサデータを分析する(例えば、履歴データにアクセスする)、ルールに基づいて決定されてもよい。いくつかの実施形態では、アイドル状態が、決定される場合、データは、アイドル状態としてタグ付けされてもよく、アバタレンダリングシステムは、異なるようにレンダリングすることを決定してもよい。例えば、アバタレンダリングシステムは、更新された出力結果をレンダリングしなくてもよい、またはアバタレンダリングシステムは、代わりに、より現実的アバタを提供し得る、アイドル状態シーケンスを表示するように選定してもよい。例えば、長期周期にわたって、人物が完全にじっとしたまま立っていることは、不自然である。人物が、移動していない場合でも、姿勢におけるわずかな偏移が存在し得る。いくつかの実施形態では、アイドル状態シーケンスが、トーテムがユーザの手首からぶら下がっていた場合、手の揺動運動の代わりに、表示されてもよい。いくつかの実施形態では、高信頼度アイドル運動のみが、決定されるであろう。いくつかの実施形態では、アイドル状態決定が、決定され得、したがって、更新された出力は、アバタが関心を引くまたは有用なことを何ら行っていないため、表示されないであろう。例えば、一方の手およびアイドルの手ではなく、何らかのことを行っている一方の手のみを示すことが好ましくあり得る。いくつかの実施形態では、アイドルトーテムデータは、データストリームから利用可能ではない場合があり、プロセスは、ブロック1510に進む。
【0163】
ブロック1510では、プロセス1500は、データが高運動または加速レートを備えるかどうかを決定する。いくつかの実施形態では、運動は、速度であってもよい。速度は、前のフレームデータにアクセスし、フレーム間の時間経過によって除算される、第1のフレームから第2のフレームまでの距離における差異を計算することによって計算されてもよい。いくつかの実施形態では、運動は、角速度であってもよい。いくつかの実施形態では、運動は、空間内の単一点、オブジェクトの一部、オブジェクト全体、オブジェクトのための角錐(例えば、境界ボックス)、または任意の他の好適な追跡方法に関する運動であってもよい。加速は、例えば、トーテムまたはハンドヘルドコントローラに内蔵されるIMUからのIMUデータに基づいて決定されてもよい。速度および/または加速を決定する他の方法も、利用可能なデータストリームに応じて使用されてもよい。いくつかの実施形態では、速度および/または加速データは、利用可能ではない場合がある。速度および/または加速は、高、中、および/または低レートを定義する、カテゴリに分割されてもよい。カテゴリは、特定の用途に基づいてもよい。例えば、車を追跡するためのカテゴリは、カタツムリを追跡するためのカテゴリより高速を有するであろう。
【0164】
運動および/または加速が、高レートである場合、ブロック1512において、プロセス1500の結果が、出力される。結果は、推定値であってもよい。推定値は、アクティブな手または両手(例えば、左および/または右手)、アクティブな手に関する配向、および/またはアクティブな手に関する場所のうちの1つ以上のものを備えてもよい。いくつかの実施形態では、出力は、ユーザの手および/または腕と関連付けられるアバタの一部のための運動を駆動するために使用されてもよい。いくつかの実施形態では、出力は、アバタ処理およびレンダリングシステム690に送信される。いくつかの実施形態では、出力は、データ処理モジュール260および/または270に送信される。
【0165】
運動および/または加速が、高レートではない場合、プロセス1500は、ブロック1514に進み得る。ブロック1514では、アクティブな手の掌性が、決定され得る。掌性は、ルールの1つ以上のセットを使用して決定されてもよい。例えば、速度は、速度が閾値速度を上回る場合、ユーザがトーテムを保持する手を切り替えなかったことを決定する、ルールへの入力として使用されてもよい。速度が、閾値速度を上回り、ブロック1514への着信データが、掌性推定値をすでに含有している場合、掌性推定値は、同一であると決定されてもよい。
【0166】
ブロック1504では、プロセス1500が、単一を上回る有効データセットを備える場合、プロセスは、ブロック1516に進み、複数の事前に加重されたデータストリームが、相互に比較され、それらが相互に一貫する/一致する、またはそれらが異なるかどうかを決定する。データセットが、一致する場合、プロセス1500は、ブロック1506に進む。データセット/ストリームが、一致しない場合、プロセスは、ブロック1518に進む。ブロック1518は、ブロック1508と同一であってもよい。いくつかの実施形態では、ブロック1518は、低信頼度アイドル状態のみを決定してもよい。これは、単一を上回るデータセットが存在することのブロック1504決定後、プロセスの目的が、データを単一推定値に間引くことであり得るため、該当し得る。低信頼度アイドル状態を除去することは、移動中/能動データセットがより関心を引くおよび/または関連し得るため、残りのデータストリームを絞り込むことに役立ち得る。いくつかの実施形態では、一致するデータは、それぞれ、アクティブな手として右手の掌性推定値を備える、複数の(例えば、2つの)セットのデータを備え得る。いくつかの実施形態では、一致しないデータは、第1のデータセットが、左手の掌性推定値を備え、第2のデータセットが、右手の掌性推定値を備える、複数の(例えば、2つの)セットのデータを備え得る。いくつかの実施形態では、2つを上回るセットのデータが存在する。いくつかの実施形態では、全てのデータセットが、一致と見なされるために同一掌性推定値を備えなければならない。いくつかの実施形態では、一致と見なされるために、閾値数のデータセットが、合致しなければならず、例えば、9つのデータセット中5つが、合致しなければならない。
【0167】
ブロック1520では、データセットが、一致しない場合(ブロック1516において決定されるように)、低信頼度余剰点は、間引かれる。いくつかの実施形態では、余剰点は、余剰データ点であってもよく、これは、右手に関する1つを上回る推定値、左手に関する1つを上回る推定値、または両手に関する1つを上回る推定値であってもよい。ブロック1520からの出力は、手毎に、最大で、単一のデータストリーム/推定値/データセットを備え得る。いくつかの実施形態では、低信頼度余剰点は、第1のデータセットより低い信頼度レベルを有する、単一の手に関する第2のデータセットであってもよい。例えば、右手に関する第1の推定値は、90%信頼度レベルを有してもよく、第2の推定値は、30%信頼度レベルを有してもよい。第2のデータセットは、プロセス1500から除去されてもよい、履歴データに移動されてもよい、または第1のデータセットに関する信頼度レベルを(例えば、90%から92%に)更新するために使用されてもよい。
【0168】
いくつかの実施形態では、信頼度レベルは、高、中、および/または低信頼度カテゴリにカテゴリ化されてもよい。低信頼度カテゴリ内に該当する、データセットは、ブロック1520において、間引かれてもよい。いくつかの実施形態では、高信頼度は、80%を上回ってもよく、中信頼度は、40~80%信頼度を上回ってもよく、低信頼度は、40%を下回ってもよい。3つより多いまたはより少ないカテゴリ等を有する他のカテゴリまたはそれらのカテゴリに関する異なる閾値も、使用されてもよい。プロセスは、ブロック1520後、ブロック1506に進み得る。
【0169】
いくつかの実施形態では、プロセスの左側(ブロック1502、1504、1516、1518、および1520)は、データセットを右手に関する単一推定値、左手に関する単一推定値、または両手に関する単一推定値に絞り込むように機能し得る。プロセス1500の右側(ブロック1506-1514)は、可能性が高い左および/または右手が推定された後のプロセスの一部であってもよい。本点で、プロセス1500は、推定が行われた場合でも、ブロック1512における出力後の推定値の表示の筋が通っていないときがあり得るため、推定値を再評価する(例えば、トーテムが、フリーズされており、したがって、右手が、奇妙に定常である、または奇妙に往復して揺動しながら、アバタの左手を正しくアニメーション化することは、所望されない)。ブロック1512は、ブロック1416と同一であってもよい。
【0170】
有利なこととして、本明細書に開示される方法およびシステムは、ユーザの手が、1つの方法によって最良に追跡される領域から異なる方法によって最良に追跡される異なる領域に移動するにつれて、ユーザの手の運動および追跡が、シームレスに生じ得るように、n個のセンサ入力の信頼度値を評価し得る、ルールのセットを備えてもよい(例えば、受動カメラ追跡/ジェスチャ認識は、ユーザの真正面において最良である一方、内部運動センサは、場所にかかわらず、等しく精密なデータを提供し得る)。掌性は、(例えば、深度)画像推定およびジェスチャ認識を使用して、推定されてもよく、6DOF制御情報が、ウェアラブルディスプレイの視野を越えてより正確な手データを提供するために使用されてもよい。複数のデータソースの使用はまた、単一データソースのみを用いて生じたであろう、不確かな手推定値を明確にすることに役立つ。視野内では、手姿勢推定の信頼度は、複数の異なるソースからの複数の補強観察に起因して増加され得る。
例示的実装
【0171】
本明細書に説明されるシステム、方法、およびデバイスはそれぞれ、いくつかの側面を有するが、そのうちの単一の1つが、その望ましい属性に関与する訳ではない。本開示の範囲を限定することなく、いくつかの非限定的特徴が、ここで簡単に議論されるであろう。以下の段落は、本明細書に説明されるデバイス、システム、および方法の種々の例示的実装を説明する。1つ以上のコンピュータのシステムは、動作時、システムにアクションを実施させる、システム上にインストールされるソフトウェア、ファームウェア、ハードウェア、またはそれらの組み合わせを有することによって、特定の動作またはアクションを実施するように構成されることができる。1つ以上のコンピュータプログラムは、データ処理装置によって実行されると、装置にアクションを実施させる、命令を含むことによって、特定の動作またはアクションを実施するように構成されることができる。
【0172】
実施例1:1つ以上のハードウェアコンピュータプロセッサと、コンピューティングシステムによって実行可能なソフトウェア命令を記憶し、コンピュータ化された方法を実施するための1つ以上の非一過性コンピュータ可読記憶デバイスとを有する、コンピューティングシステムによって実施される、コンピュータ化された方法であって、複合現実デバイスの対応する複数のセンサからの複数のセンサデータストリームにアクセスするステップと、複数のセンサデータストリームの各々に対し、センサデータストリームのための対応する初期加重を決定するステップと、複数のセンサデータストリーム内の掌性情報およびセンサデータストリームの対応する初期加重を分析し、全体的掌性を決定するステップと、決定された全体的掌性を複合現実デバイス上で実行されるアプリケーションに提供するステップとを含む、コンピュータ化された方法。
【0173】
実施例2:全体的掌性は、左手または右手のいずれかを示す、実施例1に記載のコンピュータ化された方法。
【0174】
実施例3:全体的掌性はさらに、信頼度レベルを示す、実施例1-2のいずれかに記載のコンピュータ化された方法。
【0175】
実施例4:信頼度レベルは、複数のセンサデータストリーム内の掌性情報に合致することに応答して、より高い、実施例1-3のいずれかに記載のコンピュータ化された方法。
【0176】
実施例5:初期加重は、少なくとも部分的に、センサのタイプに基づく、実施例1-4のいずれかに記載のコンピュータ化された方法。
【0177】
実施例6:センサのタイプは、ハンドヘルドコントローラの6DOF外部能動追跡、ハンドヘルドコントローラの6DOF内部運動追跡、またはハンドヘルドコントローラの外部受動追跡のうちの少なくともいくつかを含む、実施例1-5のいずれかに記載のコンピュータ化された方法。
【0178】
実施例7:センサのタイプはさらに、視覚センサ、深度センサ、またはLIDARセンサのうちの1つ以上のものを含む、実施例6に記載のコンピュータ化された方法。
【0179】
実施例8:初期加重は、少なくとも部分的に、対応するセンサからの最近のデータ読取値の量に基づく、実施例1-7のいずれかに記載のコンピュータ化された方法。
【0180】
実施例9:初期加重は、少なくとも部分的に、対応するセンサと関連付けられる履歴情報に基づく、実施例1-8のいずれかに記載のコンピュータ化された方法。
【0181】
実施例10:センサデータストリームのための初期加重を決定するステップは、対応するセンサの1つ以上の特性に基づいて、1つ以上の分析ルールを選択するステップであって、分析ルールは、センサと関連付けられる、人間工学データ、履歴データ、または運動データのうちの1つ以上のものに基づく、ステップと、選択された1つ以上の分析ルールをセンサデータストリームに適用し、対応する掌性情報を決定するステップとを含む、実施例1-9のいずれかに記載のコンピュータ化された方法。
【0182】
実施例11:分析ルールのうちの1つ以上のものは、第2のセンサデータストリームと比較して、第1のセンサデータストリームの、決定されたより高い信頼性に基づいて、第2のセンサからの第2のセンサデータストリームより上に第1のセンサからの第1のセンサデータストリームを優先順位化する、実施例10に記載のコンピュータ化された方法。
【0183】
実施例12:分析ルールのうちの1つ以上のものは、センサデータがセンサの視野内で捕捉された場所に応じて、特定のセンサからのセンサデータを優先順位化する、実施例1-11のいずれかに記載のコンピュータ化された方法。
【0184】
実施例13:第1のセンサデータストリームは、少なくとも、複合現実デバイスのウェアラブルヘッドセットを基準とする第1のセンサの位置に基づいて、第2のデータストリームと関連付けられる第2の信頼度レベルより高い、第1の信頼度レベルと関連付けられる、実施例11に記載のコンピュータ化された方法。
【0185】
実施例14:分析ルールのうちの1つ以上のものは、第1のセンサデータストリームと第2のセンサデータストリームとの間の競合を識別する、実施例10-13のいずれかに記載のコンピュータ化された方法。
【0186】
実施例15:分析ルールのうちの1つ以上のものは、周期的に、2つ以上のセンサからのセンサデータストリームに基づいて、更新された信頼度レベルを計算する、実施例10-13のいずれかに記載のコンピュータ化された方法。
【0187】
実施例16:分析ルールのうちの1つ以上のものは、センサデータストリーム内のエラーを識別し、エラーを伴うセンサデータを破棄する、実施例10-13のいずれかに記載のコンピュータ化された方法。
【0188】
実施例17:センサデータストリーム内のエラーは、センサデータ内の欠測フレーム、矛盾するフレーム、または複製フレームを含む、実施例16に記載のコンピュータ化された方法。
【0189】
実施例18:センサのそれぞれの視野を決定するステップと、中心視野を表す、少なくとも第1の領域を含む、1つ以上の視野領域を決定するステップであって、センサのうちの少なくとも2つは、第1の領域と関連付けられる、センサデータを提供する、ステップとをさらに含む、実施例1-17のいずれかに記載のコンピュータ化された方法。
【0190】
実施例19:第1の領域と関連付けられる、センサデータは、第1の領域の外側のセンサデータより高い信頼度レベルと関連付けられる、実施例18に記載のコンピュータ化された方法。
【0191】
実施例20:コンピューティングシステムであって、ハードウェアコンピュータプロセッサと、その上に記憶されるソフトウェア命令を有する、非一過性コンピュータ可読媒体であって、ソフトウェア命令は、ハードウェアコンピュータプロセッサによって実行可能であって、コンピューティングシステムに、複合現実デバイスの対応する複数のセンサからの複数のセンサデータストリームにアクセスするステップと、複数のセンサデータストリームの各々に対し、センサデータストリームのための対応する初期加重を決定するステップと、複数のセンサデータストリーム内の掌性情報およびセンサデータストリームの対応する初期加重を分析し、全体的掌性を決定するステップと、決定された全体的掌性を複合現実デバイス上で実行されるアプリケーションに提供するステップとを含む、動作を実施させる、非一過性コンピュータ可読媒体とを備える、コンピューティングシステム。
【0192】
実施例21:全体的掌性は、左手または右手のいずれかを示す、実施例20に記載のコンピューティングシステム。
【0193】
実施例22:全体的掌性はさらに、信頼度レベルを示す、実施例21に記載のコンピューティングシステム。
【0194】
実施例23:信頼度レベルは、複数のセンサデータストリーム内の掌性情報に合致することに応答して、より高い、実施例22に記載のコンピューティングシステム。
【0195】
実施例24:初期加重は、少なくとも部分的に、センサのタイプに基づく、実施例20-23のいずれかに記載のコンピューティングシステム。
【0196】
実施例25:センサのタイプは、ハンドヘルドコントローラの6DOF外部能動追跡、ハンドヘルドコントローラの6DOF内部運動追跡、またはハンドヘルドコントローラの外部受動追跡のうちの少なくともいくつかを含む、実施例24に記載のコンピューティングシステム。
【0197】
実施例26:センサのタイプはさらに、視覚センサ、深度センサ、またはLIDARセンサのうちの1つ以上のものを含む、実施例25に記載のコンピューティングシステム。
【0198】
実施例27:初期加重は、少なくとも部分的に、対応するセンサからの最近のデータ読取値の量に基づく、実施例20-26のいずれかに記載のコンピューティングシステム。
【0199】
実施例28:初期加重は、少なくとも部分的に、対応するセンサと関連付けられる履歴情報に基づく、実施例20-27のいずれかに記載のコンピューティングシステム。
【0200】
実施例29:センサデータストリームのための初期加重を決定するステップは、対応するセンサの1つ以上の特性に基づいて、1つ以上の分析ルールを選択するステップであって、分析ルールは、センサと関連付けられる、人間工学データ、履歴データ、または運動データのうちの1つ以上のものに基づく、ステップと、選択された1つ以上の分析ルールをセンサデータストリームに適用し、対応する掌性情報を決定するステップとを含む、実施例20-28のいずれかに記載のコンピューティングシステム。
【0201】
実施例30:分析ルールのうちの1つ以上のものは、第2のセンサデータストリームと比較して、第1のセンサデータストリームの決定されたより高い信頼性に基づいて、第2のセンサからの第2のセンサデータストリームより上に第1のセンサからの第1のセンサデータストリームを優先順位化する、実施例29に記載のコンピューティングシステム。
【0202】
実施例31:分析ルールのうちの1つ以上のものは、センサデータがセンサの視野内で捕捉された場所に応じて、特定のセンサからのセンサデータを優先順位化する、実施例30に記載のコンピューティングシステム。
【0203】
実施例32:第1のセンサデータストリームは、少なくとも、複合現実デバイスのウェアラブルヘッドセットを基準とする第1のセンサの位置に基づいて、第2のデータストリームと関連付けられる第2の信頼度レベルより高い、第1の信頼度レベルと関連付けられる、実施例31に記載のコンピューティングシステム。
【0204】
実施例33:分析ルールのうちの1つ以上のものは、第1のセンサデータストリームと第2のセンサデータストリームとの間の競合を識別する、実施例30-32のいずれかに記載のコンピューティングシステム。
【0205】
実施例34:分析ルールのうちの1つ以上のものは、周期的に、2つ以上のセンサからのセンサデータストリームに基づいて、更新された信頼度レベルを計算する、実施例30-33のいずれかに記載のコンピューティングシステム。
【0206】
実施例35:分析ルールのうちの1つ以上のものは、センサデータストリーム内のエラーを識別し、エラーを伴うセンサデータを破棄する、実施例30-34のいずれかに記載のコンピューティングシステム。
【0207】
実施例36:センサデータストリーム内のエラーは、センサデータ内の欠測フレーム、矛盾するフレーム、または複製フレームを含む、実施例35に記載のコンピューティングシステム。
【0208】
実施例37:ソフトウェア命令はさらに、ハードウェアコンピュータプロセッサに、センサのそれぞれの視野を決定させ、中心視野を表す、少なくとも第1の領域を含む、1つ以上の視野領域を決定させ、センサのうちの少なくとも2つは、第1の領域と関連付けられる、センサデータを提供するように構成される、実施例36に記載のコンピューティングシステム。
【0209】
実施例38:第1の領域と関連付けられる、センサデータは、第1の領域の外側のセンサデータより高い信頼度レベルと関連付けられる、実施例37に記載のコンピューティングシステム。
【0210】
実施例39:コンピューティングシステムであって、ユーザの左または右手のどちらがアクティブであるかを決定するために使用可能な第1のユーザデータを入手するように構成される、ウェアラブルシステムの第1のセンサと、ユーザの左または右手のどちらがアクティブであるかを決定するために使用可能な第2のユーザデータを入手するように構成される、ウェアラブルシステムの第2のセンサと、第1および第2のセンサと通信する、ハードウェアプロセッサであって、第1のユーザデータと関連付けられる、第1の履歴データ、第1の運動データ、または第1の人間工学データのうちの1つ以上のものに基づいて、第1のユーザデータのための第1の加重を決定し、第2のユーザデータと関連付けられる、第2の履歴データ、第2の運動データ、または第2の人間工学データのうちの1つ以上のものに基づいて、第2のユーザデータのための第2の加重を決定し、第1のユーザデータ、第1の加重、第2のユーザデータ、および第2の加重に基づいて、ユーザの左手または右手のどちらがアクティブであるかを決定し、決定をアバタ処理およびレンダリングシステムに出力するようにプログラムされる、ハードウェアプロセッサとを備える、コンピューティングシステム。
【0211】
実施例40:出力は、アバタの移動を決定する際に使用可能である、実施例39に記載のコンピューティングシステム。
【0212】
実施例41:出力は、アバタの手の移動を決定する際に使用可能である、実施例39-40のいずれかに記載のコンピューティングシステム。
【0213】
実施例42:ハードウェアプロセッサはさらに、アクティブである決定された手の配向を決定するようにプログラムされる、実施例39-41のいずれかに記載のコンピューティングシステム。
【0214】
実施例43:人間工学データは、ユーザの人間工学的制約を示す、実施例39-42のいずれかに記載のコンピューティングシステム。
【0215】
実施例44:人間工学データは、手が第1の領域内で検出されるとき、左手がアクティブであることの高信頼度レベルを示し、手が第1の領域外で検出されるとき、左手がアクティブであることの低信頼度レベルを示す、ルールを含む、実施例43に記載のコンピューティングシステム。
【0216】
実施例45:第1の領域を基準とした手の位置は、第1のユーザデータおよび第2のユーザデータの一方または両方に基づいて決定される、実施例44に記載のコンピューティングシステム。
【0217】
実施例46:人間工学データは、手が第2の領域内で検出されるとき、右手がアクティブであることの高信頼度レベルを示し、手が第2の領域外で検出されるとき、右手がアクティブであることの低信頼度レベルを示す、ルールを含む、実施例44-45のいずれかに記載のコンピューティングシステム。
【0218】
実施例47:履歴データは、ユーザの左手の第1の過去の場所または第1の過去の配向のうちの1つ以上のものと、ユーザの右手の第2の過去の場所または第2の過去の配向のうちの1つ以上のものとを示す、実施例39-46のいずれかに記載のコンピューティングシステム。
【0219】
実施例48:履歴データは、1つ以上のセンサの場所情報に基づいて、ユーザの左手がアクティブであることの確率と、1つ以上のセンサの場所情報に基づいて、ユーザの右手がアクティブであることの確率との1つ以上のヒートマップを示す、実施例39-47のいずれかに記載のコンピューティングシステム。
【0220】
実施例49:履歴データはさらに、信頼度レベルを含む、実施例47に記載のコンピューティングシステム。
【0221】
実施例50:運動データは、対応するセンサの移動の速さを示す、実施例39-49のいずれかに記載のコンピューティングシステム。
【0222】
実施例51:第1の加重は、履歴データを最初に、運動データを2番目に、人間工学データを3番目に適用することによって決定される、実施例39-50のいずれかに記載のコンピューティングシステム。
【0223】
実施例52:ハードウェアプロセッサはさらに、アクティブであると決定されたユーザの左手または右手の場所または配向のうちの1つ以上のものを決定するようにプログラムされる、実施例39-51のいずれかに記載のコンピューティングシステム。
【0224】
実施例53:ハードウェアプロセッサはさらに、決定された第1の加重の第1の信頼度レベルおよび決定された第2の加重の第2の信頼度レベルを決定するようにプログラムされる、実施例39-52のいずれかに記載のコンピューティングシステム。
【0225】
実施例54:プロセッサはさらに、ユーザの左手または右手がアクティブであることのその決定の全体的信頼度レベルを決定するようにプログラムされる、実施例39-53のいずれかに記載のコンピューティングシステム。
【0226】
実施例55:1つ以上のハードウェアコンピュータプロセッサと、コンピューティングシステムによって実行可能なソフトウェア命令を記憶し、コンピュータ化された方法を実施するための1つ以上の非一過性コンピュータ可読記憶デバイスとを有する、コンピューティングシステムによって実施される、コンピュータ化された方法であって、第1のユーザデータをウェアラブルシステムの第1のセンサから入手するステップであって、第1のユーザデータは、ユーザの左または右手のどちらがアクティブであるかを決定するために使用可能である、ステップと、第2のユーザデータをウェアラブルシステムの第2のセンサから入手するステップであって、第2のユーザデータは、ユーザの左手または右手のどちらがアクティブであるかを決定するために使用可能である、ステップと、第1のユーザデータと関連付けられる、第1の履歴データ、第1の運動データ、または第1の人間工学データのうちの1つ以上のものに基づいて、第1のユーザデータのための第1の加重を決定するステップと、第2のユーザデータと関連付けられる、第2の履歴データ、第2の運動データ、または第2の人間工学データのうちの1つ以上のものに基づいて、第2のユーザデータのための第2の加重を決定するステップと、第1のユーザデータ、第1の加重、第2のユーザデータ、および第2の加重に基づいて、ユーザの左手または右手のどちらがアクティブであるかを決定するステップと、決定をアバタ処理およびレンダリングシステムに出力するステップとを含む、コンピュータ化された方法。
【0227】
実施例56:出力は、アバタの移動を決定する際に使用可能である、実施例55に記載のコンピュータ化された方法。
【0228】
実施例57:出力は、アバタの手の移動を決定する際に使用可能である、実施例55-56のいずれかに記載のコンピュータ化された方法。
【0229】
実施例58:ハードウェアプロセッサはさらに、アクティブである決定された手の配向を決定するようにプログラムされる、実施例55-57のいずれかに記載のコンピュータ化された方法。
【0230】
実施例59:人間工学データは、ユーザの人間工学的制約を示す、実施例55-58のいずれかに記載のコンピュータ化された方法。
【0231】
実施例60:人間工学データは、手が第1の領域内で検出されるとき、左手がアクティブであることの高信頼度レベルを示し、手が第1の領域外で検出されるとき、左手がアクティブであることの低信頼度レベルを示す、ルールを含む、実施例59-60のいずれかに記載のコンピュータ化された方法。
【0232】
実施例61:第1の領域を基準とした手の位置は、第1のユーザデータおよび第2のユーザデータの一方または両方に基づいて決定される、実施例60に記載のコンピュータ化された方法。
【0233】
実施例62:人間工学データは、手が第2の領域内で検出されるとき、右手がアクティブであることの高信頼度レベルを示し、手が第2の領域外で検出されるとき、右手がアクティブであることの低信頼度レベルを示す、ルールを含む、実施例60-61のいずれかに記載のコンピュータ化された方法。
【0234】
実施例63:履歴データは、ユーザの左手の第1の過去の場所または第1の過去の配向のうちの1つ以上のものと、ユーザの右手の第2の過去の場所または第2の過去の配向のうちの1つ以上のものとを示す、実施例55-62のいずれかに記載のコンピュータ化された方法。
【0235】
実施例64:履歴データは、1つ以上のセンサの場所情報に基づいて、ユーザの左手がアクティブであることの確率と、1つ以上のセンサの場所情報に基づいて、ユーザの右手がアクティブであることの確率との1つ以上のヒートマップを示す、実施例55-63のいずれかに記載のコンピュータ化された方法。
【0236】
実施例65:履歴データはさらに、信頼度レベルを含む、実施例63-64のいずれかに記載のコンピュータ化された方法。
【0237】
実施例66:運動データは、対応するセンサの移動の速さを示す、実施例55-65のいずれかに記載のコンピュータ化された方法。
【0238】
実施例67:第1の加重は、履歴データを最初に、運動データを2番目に、人間工学データを3番目に適用することによって決定される、実施例55-66のいずれかに記載のコンピュータ化された方法。
【0239】
実施例68:アクティブであると決定されたユーザの左手または右手の場所または配向のうちの1つ以上のものを決定するステップをさらに含む、実施例55-67のいずれかに記載のコンピュータ化された方法。
【0240】
実施例69:決定された第1の加重の第1の信頼度レベルおよび決定された第2の加重の第2の信頼度レベルを決定するステップをさらに含む、実施例55-68のいずれかに記載のコンピュータ化された方法。
【0241】
実施例70:ユーザの左手または右手がアクティブであることのその決定の全体的信頼度レベルを決定するステップをさらに含む、実施例55-69のいずれかに記載のコンピュータ化された方法。
【0242】
上記に述べられたように、上記に提供される説明される実施例の実装は、ハードウェア、方法またはプロセス、および/またはコンピュータアクセス可能媒体上のコンピュータソフトウェアを含んでもよい。
他の考慮点
【0243】
本明細書に説明される、および/または添付される図に描写されるプロセス、方法、およびアルゴリズムはそれぞれ、具体的かつ特定のコンピュータ命令を実行するように構成される、1つ以上の物理的コンピューティングシステム、ハードウェアコンピュータプロセッサ、特定用途向け回路、および/または電子ハードウェアによって実行される、コードモジュールにおいて具現化され、それによって完全または部分的に自動化され得る。例えば、コンピューティングシステムは、具体的コンピュータ命令とともにプログラムされた汎用コンピュータ(例えば、サーバ)または専用コンピュータ、専用回路等を含むことができる。コードモジュールは、実行可能プログラムにコンパイルおよびリンクされる、動的リンクライブラリ内にインストールされ得る、またはインタープリタ型プログラミング言語において書き込まれ得る。いくつかの実装では、特定の動作および方法が、所与の機能に特有の回路によって実施され得る。
【0244】
さらに、本開示の機能性のある実装は、十分に数学的、コンピュータ的、または技術的に複雑であるため、(適切な特殊化された実行可能命令を利用する)特定用途向けハードウェアまたは1つまたはそれを上回る物理的コンピューティングデバイスは、例えば、関与する計算の量または複雑性に起因して、または結果を実質的にリアルタイムで提供するために、機能性を実施する必要があり得る。例えば、動画またはビデオは、多くのフレームを含み、各フレームは、数百万のピクセルを有し得、具体的にプログラムされたコンピュータハードウェアは、商業的に妥当な時間量において所望の画像処理タスクまたは用途を提供するようにビデオデータを処理する必要がある。
【0245】
コードモジュールまたは任意のタイプのデータは、ハードドライブ、ソリッドステートメモリ、ランダムアクセスメモリ(RAM)、読取専用メモリ(ROM)、光学ディスク、揮発性または不揮発性記憶装置、同一物の組み合わせ、および/または同等物を含む、物理的コンピュータ記憶装置等の任意のタイプの非一過性コンピュータ可読媒体上に記憶され得る。本方法およびモジュール(またはデータ)はまた、無線ベースおよび有線/ケーブルベースの媒体を含む、種々のコンピュータ可読伝送媒体上で生成されたデータ信号として(例えば、搬送波または他のアナログまたはデジタル伝搬信号の一部として)伝送され得、種々の形態(例えば、単一または多重化アナログ信号の一部として、または複数の離散デジタルパケットまたはフレームとして)をとり得る。開示されるプロセスまたはプロセスステップの結果は、任意のタイプの非一過性有形コンピュータ記憶装置内に持続的または別様に記憶され得る、またはコンピュータ可読伝送媒体を介して通信され得る。
【0246】
本明細書に説明される、および/または添付される図に描写されるフロー図における任意のプロセス、ブロック、状態、ステップ、または機能性は、プロセスにおいて具体的機能(例えば、論理または算術)またはステップを実装するための1つまたはそれを上回る実行可能命令を含む、コードモジュール、セグメント、またはコードの一部を潜在的に表すものとして理解されたい。種々のプロセス、ブロック、状態、ステップ、または機能性は、組み合わせられる、再配列される、本明細書に提供される例証的実施例に追加される、そこから削除される、修正される、または別様にそこから変更されることができる。いくつかの実施形態では、付加的または異なるコンピューティングシステムまたはコードモジュールが、本明細書に説明される機能性のいくつかまたは全てを実施し得る。本明細書に説明される方法およびプロセスはまた、いずれの特定のシーケンスにも限定されず、それに関連するブロック、ステップ、または状態は、適切である他のシーケンスで、例えば、連続して、並行して、またはある他の様式で実施されることができる。タスクまたはイベントが、開示される例示的実施形態に追加される、またはそこから除去され得る。さらに、本明細書に説明される実装における種々のシステムコンポーネントの分離は、例証目的のためであり、全ての実装においてそのような分離を要求するものとして理解されるべきではない。説明されるプログラムコンポーネント、方法、およびシステムは、概して、単一のコンピュータ製品においてともに統合される、または複数のコンピュータ製品にパッケージ化され得ることを理解されたい。多くの実装変形例が、可能である。
【0247】
本プロセス、方法、およびシステムは、ネットワーク(または分散)コンピューティング環境において実装され得る。ネットワーク環境は、企業全体コンピュータネットワーク、イントラネット、ローカルエリアネットワーク(LAN)、広域ネットワーク(WAN)、パーソナルエリアネットワーク(PAN)、クラウドコンピューティングネットワーク、クラウドソースコンピューティングネットワーク、インターネット、およびワールドワイドウェブを含む。ネットワークは、有線または無線ネットワークまたは任意の他のタイプの通信ネットワークであり得る。
【0248】
本開示のシステムおよび方法は、それぞれ、いくつかの革新的側面を有し、そのうちのいかなるものも、本明細書に開示される望ましい属性に単独で関与しない、またはそのために要求されない。上記に説明される種々の特徴およびプロセスは、相互に独立して使用され得る、または種々の方法で組み合わせられ得る。全ての可能な組み合わせおよび副次的組み合わせが、本開示の範囲内に該当することが意図される。本開示に説明される実装の種々の修正が、当業者に容易に明白であり得、本明細書に定義される一般原理は、本開示の精神または範囲から逸脱することなく、他の実装に適用され得る。したがって、請求項は、本明細書に示される実装に限定されることを意図されず、本明細書に開示される本開示、原理、および新規の特徴と一貫する最も広い範囲を与えられるべきである。
【0249】
別個の実装の文脈において本明細書に説明されるある特徴はまた、単一の実装における組み合わせにおいて実装されることができる。逆に、単一の実装の文脈において説明される種々の特徴もまた、複数の実装において別個に、または任意の好適な副次的組み合わせにおいて実装されることができる。さらに、特徴がある組み合わせにおいて作用するものとして上記に説明され、さらに、そのようなものとして最初に請求され得るが、請求される組み合わせからの1つ以上の特徴は、いくつかの場合では、組み合わせから削除されることができ、請求される組み合わせは、副次的組み合わせまたは副次的組み合わせの変形例を対象とし得る。いかなる単一の特徴または特徴のグループも、あらゆる実施形態に必要または必須ではない。
【0250】
とりわけ、「~できる(can)」、「~し得る(could)」、「~し得る(might)」、「~し得る(may)」、「例えば(e.g.)」、および同等物等、本明細書で使用される条件文は、別様に具体的に記載されない限り、または使用されるような文脈内で別様に理解されない限り、概して、ある実施形態がある特徴、要素、またはステップを含む一方、他の実施形態がそれらを含まないことを伝えることが意図される。したがって、そのような条件文は、概して、特徴、要素、および/またはステップが、1つ以上の実施形態に対していかようにも要求されること、または1つ以上の実施形態が、著者の入力または促しの有無を問わず、これらの特徴、要素、および/またはステップが任意の特定の実施形態において含まれる、または実施されるべきかどうかを決定するための論理を必然的に含むことを合意することを意図されない。用語「~を備える(comprising)」、「~を含む(including)」、「~を有する(having)」、および同等物は、同義語であり、非限定的方式で包括的に使用され、付加的要素、特徴、行為、動作等を除外しない。また、用語「または」は、その包括的意味において使用され(およびその排他的意味において使用されず)、したがって、例えば、要素のリストを接続するために使用されると、用語「または」は、リスト内の要素のうちの1つ、いくつか、または全てを意味する。加えて、本願および添付される請求項で使用されるような冠詞「a」、「an」、および「the」は、別様に規定されない限り、「1つ以上の」または「少なくとも1つ」を意味するように解釈されるべきである。
【0251】
本明細書で使用されるように、項目のリスト「~のうちの少なくとも1つ」を指す語句は、単一の要素を含む、それらの項目の任意の組み合わせを指す。ある実施例として、「A、B、またはCのうちの少なくとも1つ」は、A、B、C、AおよびB、AおよびC、BおよびC、およびA、B、およびCを網羅することが意図される。語句「X、Y、およびZのうちの少なくとも1つ」等の接続文は、別様に具体的に記載されない限り、概して、項目、用語等がX、Y、またはZのうちの少なくとも1つであり得ることを伝えるために使用されるような文脈で別様に理解される。したがって、そのような接続文は、概して、ある実施形態が、Xのうちの少なくとも1つ、Yのうちの少なくとも1つ、およびZのうちの少なくとも1つがそれぞれ存在するように要求することを示唆することを意図されない。
【0252】
同様に、動作は、特定の順序で図面に描写され得るが、これは、望ましい結果を達成するために、そのような動作が示される特定の順序で、または連続的順序で実施される、または全ての図示される動作が実施される必要はないと認識されるべきである。さらに、図面は、フローチャートの形態で1つ以上の例示的プロセスを図式的に描写し得る。しかしながら、描写されない他の動作も、図式的に図示される例示的方法およびプロセス内に組み込まれることができる。例えば、1つ以上の付加的動作が、図示される動作のいずれかの前に、その後に、それと同時に、またはその間に実施されることができる。加えて、動作は、他の実装において再配列される、または再順序付けられ得る。ある状況では、マルチタスクおよび並列処理が、有利であり得る。さらに、上記に説明される実装における種々のシステムコンポーネントの分離は、全ての実装におけるそのような分離を要求するものとして理解されるべきではなく、説明されるプログラムコンポーネントおよびシステムは、概して、単一のソフトウェア製品においてともに統合される、または複数のソフトウェア製品にパッケージ化され得ることを理解されたい。加えて、他の実装も、以下の請求項の範囲内である。いくつかの場合では、請求項に列挙されるアクションは、異なる順序で実施され、依然として、望ましい結果を達成することができる。