JP2022534639A - 指マッピング自己触覚型入力方法を有する人工現実システム - Google Patents
指マッピング自己触覚型入力方法を有する人工現実システム Download PDFInfo
- Publication number
- JP2022534639A JP2022534639A JP2021554715A JP2021554715A JP2022534639A JP 2022534639 A JP2022534639 A JP 2022534639A JP 2021554715 A JP2021554715 A JP 2021554715A JP 2021554715 A JP2021554715 A JP 2021554715A JP 2022534639 A JP2022534639 A JP 2022534639A
- Authority
- JP
- Japan
- Prior art keywords
- hand
- finger
- artificial reality
- gesture
- hmd
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims description 123
- 238000013507 mapping Methods 0.000 title description 4
- 230000033001 locomotion Effects 0.000 claims abstract description 88
- 230000004044 response Effects 0.000 claims abstract description 50
- 238000012545 processing Methods 0.000 claims abstract description 17
- 230000008569 process Effects 0.000 claims description 24
- 238000009877 rendering Methods 0.000 claims description 17
- 230000009471 action Effects 0.000 abstract description 16
- 210000003811 finger Anatomy 0.000 description 276
- 210000004247 hand Anatomy 0.000 description 40
- 210000003813 thumb Anatomy 0.000 description 38
- 238000009740 moulding (composite fabrication) Methods 0.000 description 34
- 230000015572 biosynthetic process Effects 0.000 description 22
- 238000005755 formation reaction Methods 0.000 description 22
- 230000015654 memory Effects 0.000 description 21
- 239000013598 vector Substances 0.000 description 21
- 238000001514 detection method Methods 0.000 description 16
- 238000010586 diagram Methods 0.000 description 12
- 230000006854 communication Effects 0.000 description 10
- 238000004891 communication Methods 0.000 description 9
- 230000006870 function Effects 0.000 description 9
- 230000003190 augmentative effect Effects 0.000 description 8
- 208000013057 hereditary mucoepithelial dysplasia Diseases 0.000 description 5
- 230000003993 interaction Effects 0.000 description 5
- 230000005057 finger movement Effects 0.000 description 4
- 230000001965 increasing effect Effects 0.000 description 4
- 210000000617 arm Anatomy 0.000 description 3
- 238000012544 monitoring process Methods 0.000 description 3
- 238000004088 simulation Methods 0.000 description 3
- 230000001960 triggered effect Effects 0.000 description 3
- 230000000007 visual effect Effects 0.000 description 3
- 210000000707 wrist Anatomy 0.000 description 3
- 230000001143 conditioned effect Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 210000005224 forefinger Anatomy 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000012549 training Methods 0.000 description 2
- 210000001015 abdomen Anatomy 0.000 description 1
- 230000001133 acceleration Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 239000002131 composite material Substances 0.000 description 1
- 150000001875 compounds Chemical class 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 235000019800 disodium phosphate Nutrition 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000002708 enhancing effect Effects 0.000 description 1
- 230000036541 health Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 239000002096 quantum dot Substances 0.000 description 1
- 230000035807 sensation Effects 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
- 230000014616 translation Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/017—Gesture based interaction, e.g. based on a set of recognized hand gestures
-
- G—PHYSICS
- G02—OPTICS
- G02B—OPTICAL ELEMENTS, SYSTEMS OR APPARATUS
- G02B27/00—Optical systems or apparatus not provided for by any of the groups G02B1/00 - G02B26/00, G02B30/00
- G02B27/01—Head-up displays
- G02B27/017—Head mounted
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/011—Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/016—Input arrangements with force or tactile feedback as computer generated output to the user
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/02—Input arrangements using manually operated switches, e.g. using keyboards or dials
- G06F3/023—Arrangements for converting discrete items of information into a coded form, e.g. arrangements for interpreting keyboard generated codes as alphanumeric codes, operand codes or instruction codes
- G06F3/0233—Character input methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0484—Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0484—Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
- G06F3/04842—Selection of displayed objects or displayed text elements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0484—Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
- G06F3/04845—Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range for image manipulation, e.g. dragging, rotation, expansion or change of colour
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0484—Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
- G06F3/0485—Scrolling or panning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0487—Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser
- G06F3/0488—Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures
- G06F3/04886—Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures by partitioning the display area of the touch-screen or the surface of the digitising tablet into independently controllable areas, e.g. virtual keyboards or menus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T19/00—Manipulating 3D models or images for computer graphics
- G06T19/006—Mixed reality
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Optics & Photonics (AREA)
- Computer Graphics (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- User Interface Of Digital Computer (AREA)
- Processing Or Creating Images (AREA)
Abstract
人工現実環境内でユーザインタフェース要素を描画、提示、および制御し、検出されたユーザの1つまたは複数のジェスチャに応答して動作を実行する、人工現実システムについて説明されている。人工現実システムは、物理的環境を表す画像データを取り込み、人工現実コンテンツを出力する。人工現実システムは、画像データから、閾値時間内に特定の回数挟持配置を形成する、手の第1の指および手の第2の指の動きを含む、ジェスチャを識別する。人工現実システムは、1つまたは複数の入力文字を、手の複数本の指のうちの1本または複数本に割り当て、識別されたジェスチャに応答して、手の第2の指に割り当てられた1つまたは複数の入力文字のうちの、第1の入力文字の選択を処理する。【選択図】図7B
Description
関連出願の相互参照
この出願は、2019年6月7日に出願された米国特許出願第16/435,139号の優先権を主張し、その内容は、あらゆる目的のためにその全体が参照により本明細書に組み入れられる。
この出願は、2019年6月7日に出願された米国特許出願第16/435,139号の優先権を主張し、その内容は、あらゆる目的のためにその全体が参照により本明細書に組み入れられる。
この開示は、一般的に、仮想現実、複合現実、および/または拡張現実システムなどの人工現実システムに関し、より具体的には、人工現実システムのユーザインタフェースに関する。
人工現実システムは、コンピュータゲーム、健康および安全、産業、ならびに教育など多くの分野での用途により、ますます遍在するようになっている。いくつかの例として、人工現実システムは、携帯デバイス、ゲーム機、パーソナルコンピューター、映画館、およびテーマパークに組み込まれている。一般に、人工現実は、ユーザに提示する前に何らかのやり方で調整された現実の形式であり、たとえば、仮想現実(VR:virtual reality)、拡張現実(AR:augmented reality)、複合現実(MR:mixed reality)、ハイブリッド現実、またはそれらの何らかの組合せおよび/もしくは派生的なものが含まれ得る。
典型的な人工現実システムは、ユーザに対してコンテンツを描画および表示する、1つまたは複数のデバイスを備える。一例として、人工現実システムは、ユーザが着用し、人工現実コンテンツをユーザに出力するよう構成された、ヘッドマウントディスプレイ(HMD:head-mounted display)を組み込むことができる。人工現実コンテンツには、全面的に生成されたコンテンツ、または取り込まれたコンテンツ(たとえば、実世界のビデオおよび/または画像)と組み合わせて生成されたコンテンツが含まれ得る。動作中、ユーザは通常、人工現実システムと相互作用して、コンテンツを選択し、アプリケーションを起動するか、またはその他の方法でシステムを設定する。
この開示は、一般的に、人工現実システムについて説明し、より具体的には、グラフィカルユーザインタフェース要素、ならびに人工現実環境内でユーザインタフェース要素を提示および制御する技法について説明する。
たとえば、ユーザの手、手指(finger)、親指、もしくは腕、または事前定義されたジェスチャの組合せの、特定の動き、配置、位置、および/または向きなど、ユーザによる1つまたは複数の事前定義されたジェスチャの検出に応答して、グラフィカルユーザインタフェース要素を生成および描画し、ユーザに対して表示する、人工現実システムについて説明されている。いくつかの例では、人工現実システムはさらに、特定のジェスチャと、リアルタイムでのユーザの凝視追跡によって、またはユーザが着用しているHMDのポーズに関連して特定され得る、物理的環境でのユーザの現在の視野に対する、特定のジェスチャの位置および向きなど、他の条件との組合せの検出に応答して、グラフィカルユーザインタフェース要素の生成および描画をトリガすることができる。
いくつかの例では、人工現実システムは、人工現実システムのディスプレイ内に現在描画されている人工現実コンテンツに対して、重畳する要素であるグラフィカルユーザインタフェース要素を生成および提示することができる。グラフィカルユーザインタフェース要素は、たとえば、ユーザが人工現実システムを動作させるために相互作用するメニューもしくはサブメニューなどのグラフィカルユーザインタフェース、またはトグル要素、ドロップダウン要素、メニュー選択要素、2次元もしくは3次元形状、グラフィカル入力キーもしくはキーボード、コンテンツ表示ウィンドウなどの、ユーザが選択可能かつ操作可能な個々のグラフィカルユーザインタフェース要素であり得る。
本明細書に記載の技法によれば、人工現実システムは、ユーザが、テキストおよび他の入力文字を入力するために相互作用する、様々なグラフィカルユーザインタフェース要素を生成および提示する。一例では、人工現実システムは、HMDによって出力される他の人工現実コンテンツに重畳する要素である、仮想キーボードを描画および出力する。人工現実システムは、物理的環境内を動くときの手の画像データを取り込み、人工現実空間で描画された仮想キーボードの場所に対する手の場所を追跡する。具体的には、人工現実システムは、手の少なくとも2本の指、たとえば、手の親指および人差し指の場所を追跡する。人工現実システムは、挟持配置(pinching configuration)を形成するためにくっつく2本の指の動きを含むジェスチャを検出し、挟持配置にあるときの2本の指の接触点の場所を、仮想キーボードの仮想キーにマッピングする。人工現実システムがジェスチャを検出すると、人工現実システムは、特定の仮想キーに割り当てられた入力文字を含むユーザ入力である、特定の仮想キーの選択を受け取る。
別の例では、人工現実システムは、仮想キーボードを描画および出力するのではなく、人工現実システムによって取り込まれた画像データ内で検出された手の1本または複数本の指に、1つまたは複数の入力文字を割り当てる。この例では、人工現実システムは、手の少なくとも1本の指を、入力選択する指として機能するように、入力文字が割り当てられないままにしておくことができる。人工現実システムは、入力選択する指が、閾値時間内に特定の回数、入力文字を割り当てられた他の指のうちの特定の1本と共に、挟持配置を形成する動きを含むジェスチャを検出する。挟持配置を形成する動きが検出される回数が増えると、人工現実システムは、特定の指に割り当てられた1つまたは複数の入力文字を循環的に置き替える。人工現実システムは、挟持配置を形成する動きが検出された回数および特定の入力文字にマッピングされた選択番号に基づいて、入力文字のうちの特定の1つの選択を特定する。人工現実システムは、ユーザ入力である、特定の指に割り当てられた特定の入力文字の選択を受け取る。
多くの人工現実システムでは、ユーザは、人工現実システムへのユーザ入力を可能にするために、追加のハードウェアを手に持つ必要があり得るが、これは、様々な障害のあるユーザにとって利用し易さを低下させ、ユーザに厄介な、または不自然なインタフェースを提供する場合がある。ユーザが追加のハードウェアを持たない人工現実システムでは、直感的で信頼性の高いやり方で、ユーザ入力を正確に検出することが難しい場合がある。さらに、追加のハードウェアを必要としない人工現実システムは、人工現実システムへ入力するために、特定のユーザインタフェース要素がいつどのように選択されるのかに関して、ユーザに有用なフィードバックを提供できない場合がある。本明細書に記載の技法を利用することにより、人工現実システムは、選択が行われるときにユーザに示す自己触覚型フィードバック、すなわち挟持配置を形成するときに接触するユーザ自身の指の感覚を使用する、自然な入力システムを提供することができる。さらに、人工現実システムは、特定の挟持配置を形成する動きを含むジェスチャを検出することにより、いつ画像データを分析するかを効率的に特定し、どの入力文字をユーザ入力として受け取るかを特定することができる。本明細書に記載の技法は、ユーザがユーザ入力を可能にするために追加のハードウェアを持つ必要性を低減または排除することさえでき、それにより、システムの全体的な効率が高まり、人工現実システムの別個の構成要素間の通信処理が低減され、かつあらゆるレベルの身体能力のユーザにとって、人工現実システムの利用し易さが高まる。
本明細書に記載の技法の一例では、人工現実システムは、物理的環境を表す画像データを取り込むよう構成された画像取込みデバイスを備えている。人工現実システムは、人工現実コンテンツを出力するよう構成されたHMDをさらに備えている。人工現実システムはまた、人工現実コンテンツに重畳する、複数の仮想キーを有する仮想キーボードを描画するよう構成される描画エンジンも備えている。人工現実システムは、画像データから、挟持配置を形成する手の第1の指および手の第2の指の動きを含むジェスチャを識別するよう構成された、ジェスチャ検出器をさらに備え、挟持配置にあるときの第1の指と第2の指との接触点は、仮想キーボードの複数の仮想キーのうちの、第1の仮想キーの場所に相当する。人工現実システムはまた、識別されたジェスチャに応答して、第1の仮想キーの選択を処理するよう構成された、ユーザインタフェースエンジンも備えている。
本明細書に記載の技法の別の例では、方法は、人工現実システムの画像取込みデバイスを使って、物理的環境を表す画像データを取り込むことを含む。この方法は、人工現実コンテンツ、および人工現実コンテンツに重畳する複数の仮想キーを有する仮想キーボードを、描画することをさらに含む。この方法はまた、人工現実システムのHMDを使って、人工現実コンテンツおよび仮想キーボードを出力することも含む。この方法は、画像データから、挟持配置を形成する手の第1の指および手の第2の指の動きを含むジェスチャを識別することをさらに含み、挟持配置にあるときの第1の指と第2の指との接触点は、仮想キーボードの複数の仮想キーのうちの、第1の仮想キーの場所に相当する。この方法はまた、識別されたジェスチャに応答して第1の仮想キーの選択を処理することも含む。
本明細書に記載の技法の別の例では、非一時的なコンピュータ可読媒体は、実行されると、人工現実システムの1つまたは複数のプロセッサに、物理的環境を表す画像データを取り込ませる命令を有する。この命令はさらに、1つまたは複数のプロセッサに、人工現実コンテンツ、および人工現実コンテンツに重畳する複数の仮想キーを有する仮想キーボードを描画させる。この命令はまた、1つまたは複数のプロセッサに、人工現実コンテンツおよび仮想キーボードを出力させる。この命令はさらに、1つまたは複数のプロセッサに、画像データから、挟持配置を形成する手の第1の指および手の第2の指の動きを含むジェスチャを識別させ、挟持配置にあるときの第1の指と第2の指との接触点は、仮想キーボードの複数の仮想キーのうちの、第1の仮想キーの場所に相当する。この命令はまた、1つまたは複数のプロセッサに、識別されたジェスチャに応答して、第1の仮想キーの選択を処理させる。
本明細書に記載の技法の別の例では、人工現実システムは、物理的環境を表す画像データを取り込むよう構成された画像取込みデバイスを備えている。人工現実システムは、人工現実コンテンツを出力するよう構成されたHMDをさらに備えている。人工現実システムはまた、画像データから、閾値時間内に特定の回数挟持配置を形成する、手の第1の指および手の第2の指の動きを含むジェスチャを識別するよう構成された、ジェスチャ検出器も備えている。人工現実システムは、1つまたは複数の入力文字を、手の複数本の指のうちの1本または複数本に割り当て、識別されたジェスチャに応答して、手の第2の指に割り当てられた1つまたは複数の入力文字のうちの、第1の入力文字の選択を処理するよう構成された、ユーザインタフェースエンジンをさらに備えている。
本明細書に記載の技法の別の例では、方法は、人工現実システムの画像取込みデバイスを使って、物理的環境を表す画像データを取り込むことを含む。この方法は、人工現実システムのHMDを使って、人工現実コンテンツを出力することをさらに含む。この方法はまた、画像データから、閾値時間内に特定の回数挟持配置を形成する、手の第1の指および手の第2の指の動きを含む、ジェスチャを識別することも含む。この方法は、1つまたは複数の入力文字を、手の複数本の指のうちの1本または複数本に割り当てることをさらに含む。この方法はまた、識別されたジェスチャに応答して、手の第2の指に割り当てられた1つまたは複数の入力文字のうちの、第1の入力文字の選択を処理することも含む。
本明細書に記載の技法の別の例では、非一時的なコンピュータ可読媒体は、実行されると、人工現実システムの1つまたは複数のプロセッサに、物理的環境を表す画像データを取り込ませる命令を有する。この命令はさらに、1つまたは複数のプロセッサに、人工現実コンテンツを出力させる。この命令はまた、1つまたは複数のプロセッサに、画像データから、閾値時間内に特定の回数挟持配置を形成する、手の第1の指および手の第2の指の動きを含む、ジェスチャを識別させる。この命令はさらに、1つまたは複数のプロセッサに、1つまたは複数の入力文字を、手の複数本の指のうちの1本または複数本に割り当てさせる。この命令はまた、1つまたは複数のプロセッサに、識別されたジェスチャに応答して、手の第2の指に割り当てられた1つまたは複数の入力文字のうちの、第1の入力文字の選択を処理させる。
この開示の技法の1つまたは複数の例の詳細が、添付図面および以下の説明に示されている。技法の他の特徴、目的、および利点は、説明および図面から、ならびに特許請求の範囲から明らかとなろう。
同じ参照符号は、図および説明全体を通して、同じ要素を指す。
図1Aは、本開示の技法による、人工現実環境内のユーザインタフェース要素を提示および制御する、例示的な人工現実システム10を示す図である。いくつかの例示的な実施態様では、人工現実システム10は、ユーザ110が実行する1つまたは複数のジェスチャの検出に応答して、グラフィカルユーザインタフェース要素を生成し、ユーザ110に対して描画する。すなわち、本明細書で説明されるように、人工現実システム10は、ユーザの手、手指、親指、または腕の特定の動き、配置、場所、および/または向きなど、ユーザ110が実行する1つまたは複数の特定のジェスチャの検出に応答して、1つまたは複数のグラフィカルユーザインタフェース要素124、126を提示する。他の例では、人工現実システム10は、特殊なトグル要素、ドロップダウン要素、メニュー選択要素、グラフィカル入力キーまたはキーボード、コンテンツ表示ウィンドウなど、人工現実環境内でのユーザとの相互作用および操作用に特別に設計されたユーザインタフェース要素を提示および制御する。
図1Aの例では、人工現実システム10は、ヘッドマウントデバイス(HMD:head mounted device)112、コンソール106、およびいくつかの例では、1つまたは複数の外部センサ90を備えている。図示のように、HMD112は、通常、ユーザ110が着用し、人工現実コンテンツ122をユーザ110に提示する電子ディスプレイおよび光学組立体を備えている。加えて、HMD112は、HMDの動きを追跡する1つまたは複数のセンサ(たとえば、加速度計)を備え、また周囲の物理的環境の画像データを取り込む、1つまたは複数の画像取込みデバイス138、たとえば、カメラ、ラインスキャナなどを備えることができる。この例では、コンソール106は、ゲーム機、ワークステーション、デスクトップコンピュータ、またはラップトップなど、ただ1つのコンピュータ処理デバイスとして示されている。他の例では、コンソール106は、分散型コンピュータ処理ネットワーク、データセンタ、またはクラウドコンピュータ処理システムなど、複数のコンピュータ処理デバイスに分散されていてもよい。コンソール106、HMD112、およびセンサ90は、この例に示されているように、ネットワーク104を介して通信可能に結合することができ、ネットワークは、WiFi、メッシュネットワーク、または短距離無線通信媒体などの有線または無線ネットワークであり得る。この例では、HMD112は、コンソール106と通信する、たとえば、コンソール106と繋がっているか、または無線通信するように示されているが、いくつかの実施態様では、HMD112は、独立型の携帯人工現実システムとして動作する。
一般に、人工現実システム10は、実世界の3D物理的環境から取り込まれた情報を使用して、ユーザ110に対して表示するための人工現実コンテンツ122を描画する。図1Aの例では、ユーザ110は、コンソール106および/またはHMD112上で人工現実アプリケーションを実行することによって構築および描画される、人工現実コンテンツ122を観察する。一例として、人工現実コンテンツ122は、ユーザ110が、1つまたは複数の仮想物体128A、128Bと共に、アバター120として描画される、民生ゲームアプリケーションであり得る。いくつかの例では、人工現実コンテンツ122には、実世界の形象と仮想物体との混在、たとえば、複合現実および/または拡張現実が含まれ得る。他の例では、人工現実コンテンツ122は、たとえば、ビデオ会議アプリケーション、ナビゲーションアプリケーション、教育アプリケーション、訓練もしくはシミュレーションアプリケーション、または人工現実を実装する他の種類のアプリケーションであり得る。
人工現実アプリケーションは、動作中、基準フレーム、通常はHMD112の観察視点に対するポーズ情報を追跡および計算することによって、ユーザ110に対して表示する人工現実コンテンツ122を構築する。基準フレームとしてHMD112を使用し、HMD112の現在の推定ポーズによって特定される現在の視野130に基づいて、人工現実アプリケーションは、いくつかの例では、ユーザ110の実世界での3D物理的環境の上に少なくとも部分的に重畳され得る、3D人工現実コンテンツを描画する。この処理中に、人工現実アプリケーションは、HMD112から受け取った動き情報およびユーザコマンドなどの感知されたデータ、ならびにいくつかの例では、外部カメラなどの任意の外部センサ90からのデータを使用して、実世界の物理的環境内での、ユーザ110の動きおよび/またはユーザ110に関する特徴追跡情報などの3D情報を取り込む。感知されたデータに基づいて、人工現実アプリケーションは、HMD112の基準フレームの現在のポーズを特定し、現在のポーズにしたがって、人工現実コンテンツ122を描画する。
さらに、この開示の技法によれば、人工現実アプリケーションは、感知されたデータに基づいて、ユーザ110が実行するジェスチャを検出し、1つまたは複数の特定のジェスチャの検出に応答して、ユーザに提示されている、下にある人工現実コンテンツ122上に重畳され得る、1つまたは複数のユーザインタフェース要素、たとえば、UIメニュー124およびUI要素126を生成する。この点に関して、ユーザインタフェース要素124、126は、人工現実環境でユーザに提示されている人工現実コンテンツ122の一部と見ることができる。このようにして、人工現実システム10は、ユーザの手、手指、親指、または腕の特定の動き、配置、位置、および/または向きなど、ユーザ110による1つまたは複数の特定のジェスチャの検出に応答して、1つまたは複数のグラフィカルユーザインタフェース要素124、126を動的に提示する。ユーザの手の例示的な配置には、拳、伸ばした1本または複数本の指、手の個々の指のうちの1本または複数本の相対的および/または絶対的位置および向き、手のひらの形状などが含まれ得る。ユーザインタフェース要素は、たとえば、ユーザ110が人工現実システムを動作させるために相互作用するメニューもしくはサブメニューなどのグラフィカルユーザインタフェース、またはトグル要素、ドロップダウン要素、メニュー選択要素、2次元または3次元形状、グラフィカル入力キーもしくはキーボード、コンテンツ表示ウィンドウなどの、ユーザ110が選択可能かつ操作可能な個々のユーザインタフェース要素であり得る。UI要素126は、2次元要素として描かれているが、たとえば、ユーザが、人工現実環境において形状を平行移動、拡大縮小、および/または回転させる、ジェスチャを実行することによって操作可能な2次元または3次元形状であってもよい。
図1Aの例では、グラフィカルユーザインタフェース要素124は、グラフィカルユーザインタフェース要素126を有するウィンドウまたはアプリケーションコンテナであり得、様々な機能を実行する1つまたは複数の選択可能なアイコンを有することができる。他の例では、人工現実システム10は、QWERTY配列キーボード、AZERTY配列キーボード、QWERTZ配列キーボード、Dvorak配列キーボード、Colemak配列キーボード、Maltronのキーボード、JCUKEN配列キーボード、アルファベットキーボード、数字/記号キーボード、顔文字選択キーボード、上記キーボードのいずれかの分割版、キーボード形式の入力文字の他の任意の配置構成などの仮想キーボード、またはユーザ110の手132の指の描画などの、人工現実コンテンツ122における1つもしくは複数のアイテムへの入力文字のカスタムマッピングまたは割当ての描写を提示することができる。
さらに、本明細書で説明されているように、いくつかの例では、人工現実システム10は、システムが実行している1つもしくは複数のアプリケーションの現在の状態、または物理的環境において、リアルタイムでのユーザの視線追跡によって特定され得る、ユーザ110の現在の視野130に対して検出された特定のジェスチャの位置および向き、もしくは他の条件など、他の条件に応答してグラフィカルユーザインタフェース要素124、126の生成および描画をトリガすることができる。
より具体的には、本明細書でさらに説明されているように、HMD112の画像取込みデバイス138は、画像取込みデバイス138の視野130内にある実世界の物理的環境内の物体を表す画像データを取り込む。視野130は、通常、HMD112の観察視点に対応する。図1Aに示されている例などのいくつかの例では、人工現実アプリケーションは、視野130内にあるユーザ110の手132の部分を、人工現実コンテンツ122内の仮想の手136として描画する。他の例では、人工現実アプリケーションは、複合現実および/または拡張現実を含む人工現実コンテンツ122内で、ユーザ110の手132および/または腕134の実世界画像を提示することができる。いずれの例においても、ユーザ110は、視野130内にあるユーザの手132および/または腕134の部分を、人工現実コンテンツ122内の物体として観察することができる。他の例では、人工現実アプリケーションは、ユーザの手132または腕134をまったく描画しない場合がある。
いずれにせよ、人工現実システム10は、動作中、HMD112の画像取込みデバイス138によって取り込まれた画像データ内で物体認識を実行して、手132を識別する。この識別は、オプションで、個々の手指もしくは親指、および/またはユーザ110の腕134の全部または一部を識別することを含む。さらに、人工現実システム10は、時間のスライディングウィンドウにわたって、手132(オプションで、手の特定の指を含む)および/または腕134の部分の位置、向き、および配置を追跡する。人工現実アプリケーションは、追跡される手132および/または腕134の部分の任意の動き、配置、位置、および/または向きを分析し、特定の物体、たとえばユーザ110の手132(手の特定の指を含む)および/または腕134の部分を使って実行される、1つまたは複数のジェスチャを識別する。人工現実アプリケーションは、ジェスチャを検出するために、手132および/または腕134の部分の動き、配置、位置、および/または向きを、人工現実システム10のジェスチャライブラリに記憶されたジェスチャの定義と比較することができ、ジェスチャライブラリ内の各ジェスチャは、1つまたは複数の動作にマッピングされ得る。いくつかの例では、動きの検出には、物理的環境で、指(人差し指および親指など)の定義された組合せのいずれかが、くっついて触れるまたはほぼ触れるかどうかを含む、手132の1本または複数本の指(個々の手指および親指)の位置を追跡することが含まれ得る。他の例では、動きの検出には、HMD112の現在のポーズに対する手132の向き(たとえば、HMD112の方を、もしくはHMD112とは反対の方を指す手指)、および/または腕134の向き(すなわち、HMD112の方に向く腕の法線)を追跡することが含まれ得る。ユーザの手132(または手の一部)の位置および向きは、あるいは、手132(または手の一部)のポーズと呼ばれ得る。
さらに、人工現実アプリケーションは、手132および/または腕134の配置、位置、および/または向きを分析し、少なくとも閾値期間にわたって1つまたは複数の特定の配置、位置、および/または向きに保持されている手132および/または腕134を含む、ジェスチャを識別することができる。人工現実システム10は、例として、手132および/または腕134が視野130内で少なくとも設定可能な期間、実質的に静止状態で保持されている1つまたは複数の特定の位置を、ユーザ110が、メニューなどの特定の種類のユーザインタフェース要素124、126の表示をトリガすることなど、人工現実アプリケーションによる所望の応答をトリガすることを意図したジェスチャを、実行しようとしていることを示すものとして使用することができる。人工現実システム10は、別の例として、少なくとも設定可能な期間、視野130内に維持されている手132の手指および/もしくは手のひら、ならびに/または腕134の1つまたは複数の特定の配置を、ユーザ110がジェスチャを実行しようとしていることを示すものとして使用することができる。図1Aには、ユーザ110の右手132および右腕134しか示されていないが、他の例では、人工現実システム10は、ユーザ110の左手および/もしくは左腕、またはユーザ110の左右両手および/もしくは両腕を識別することができる。このようにして、人工現実システム10は、物理的環境内で、どちらかの手で実行される片手ジェスチャ、両手ジェスチャ、または腕ベースのジェスチャを検出し、検出されたジェスチャに応答して、関連するユーザインタフェース要素を生成することができる。
この開示の技法によれば、人工現実アプリケーションは、識別されたジェスチャが、コンソール106および/またはHMD112のジェスチャライブラリ内の複数のエントリのうちの1つによって定義されたジェスチャに相当するかどうかを判断する。以下でより詳細に説明されるように、ジェスチャライブラリのエントリはそれぞれ、相異なるジェスチャを、ユーザの手、指(手指もしくは親指)、および/もしくは腕の、時間の経過に伴う特定の動き、配置、位置、および/もしくは向き、またはかかるプロパティの組合せとして定義することができる。加えて、定義されたジェスチャはそれぞれ、人工現実アプリケーションによって実行されるべき1つまたは複数の動作の形で、所望の応答に関連づけられ得る。一例として、ジェスチャライブラリ内の1つまたは複数の定義されたジェスチャは、1つまたは複数のユーザインタフェース要素、たとえば、UIメニュー124の生成、変形、および/または配置をトリガして、人工現実コンテンツ122上に描画および重畳することができる。ここで、ジェスチャは、人工現実コンテンツ122内のUIメニュー124の位置および/または向きを定義することができる。別の例として、定義されたジェスチャのうちの1つまたは複数は、提示されたユーザインタフェースの変更、提示されたユーザインタフェースのサブメニューの提示などをトリガするための、ユーザ110の特定のユーザインタフェース要素との相互作用、たとえば、UIメニュー124のUI要素126の選択を示すことができる。
たとえば、ジェスチャライブラリにエントリとして記憶されたジェスチャのうちの1つは、挟持配置を形成する、手の2本以上の指の動きであり得る。挟持配置は、同じ手(たとえば、ユーザ110の手132)の少なくとも2本の別個の指が互いに接触する任意の配置からなり得る。いくつかの例では、この配置は、互いに接触状態である2本の指が、手の残りの指から離れていることを必要とするか、または互いに接触状態である指の部分が、指の腹または指先であることを必要とするなど、さらに制限され得る。場合によっては、手の親指が手の第2の指に接触する指のうちの1本であることが、さらなる制限であり得る。ただし、挟持配置は、2本の指が同じ手に属しているかどうかに関わらず、ただ単に、任意の2本の指が互いにどんな接触状態にでもなることを必要とするなど、制約がより少ない場合がある。
本明細書に記載の技法によれば、人工現実コンテンツ122が、1つまたは複数の仮想キーで構成される仮想キーボードを有する場合、画像取込みデバイス138は、挟持配置を形成するように動く手132の第1の指および第2の指を含む、画像データを取り込むことができる。人工現実システム10が、挟持配置を形成する手132の指の動きを含むジェスチャを識別すると、挟持配列にあるときの2本の指の接触点が特定され、人工現実コンテンツ122によって構成された仮想環境内の対応する位置が識別される。挟持配置にあるときの指の接触点が、仮想キーボード内の仮想キーの場所に相当する場合、人工現実システム10は、挟持配置または挟持配置の解除を、仮想キーの選択として認識することができる。人工現実システム10は、この選択を受け取るのに応答して、テキスト入力欄内にテキスト文字または他のASCII文字を入力すること、またはコンピュータ処理システムのキーボードのキーに割り当てられ得る他の任意の機能など、仮想キーの選択に対応する動作を実行することができる。
本明細書に記載の技法の他の例では、画像取込みデバイス138は、ユーザの手132を含む画像データを取り込むことができる。人工現実システム10は、画像データから、ユーザの手132の様々な指を区別することができる。ユーザ110の両手が画像データに含まれている場合、人工現実システム10は、ユーザ110の片手または両手の様々な指を区別することができる。次いで、人工現実システム10は、1つまたは複数の入力文字を、画像データに取り込まれた片手(または両手)の1本または複数本の指に割り当てることができる。人工現実システム10は、いくつかの例では、それぞれの手の親指など、画像データ内のそれぞれの手の1本の指を、入力文字を割り当てないままにしておき、その代わりにこの指を、入力選択する指として割り当てることができる。画像取込みデバイス138は、選択用指(selector digit)が、人工現実システム10が1つまたは複数の入力文字を割り当てた、他の指のうちの1本と接触して、挟持配置を形成するユーザの手132を含む、画像データを取り込むことができる。人工現実システム10が、これらの2本の指の挟持配置を形成する動きを含むジェスチャを検出すると、人工現実システム10は、特定の時間にわたって画像データを監視し、特定の時間内にこれらの2本の指によって、何度別個に挟持配置が形成されたかを特定することができる。たとえば、2本の指が特定の時間内に、挟持配置を形成し、挟持配置を解除し、再び挟持配置を形成することは、挟持配置の2つの別個のインスタンスを構成することになる。この数の別個のインスタンスに基づいて、人工現実システム10は、選択用指と共に挟持配置を形成する、特定の指に割り当てられた入力文字のうちの対応する1つの選択を処理する。
したがって、本開示の技法は、人工現実システムによってコンテンツを描画および表示するコンピュータ関連分野への、特定の技術的改善をもたらす。たとえば、本明細書に記載の人工現実システムは、ユーザが実行する直感的でありながらも独特のジェスチャの検出に基づいて、人工現実コンテンツに重畳されたユーザインタフェース要素を生成および描画することによって、ユーザ110などのユーザに、人工現実アプリケーションの高品質の人工現実体験を提供することができる。
さらに、本明細書に記載のシステムは、隠れてしまうもの(occlusion)の追跡を回避するよう定義された手および腕の動きに基づいて、所定のジェスチャを検出するよう構成され得る。隠れてしまうものの追跡は、ユーザの一方の手が他方の手と少なくとも部分的に重なっている場合に起きることがあり、それぞれの手の個々の指(手指および親指)ばかりでなく、それぞれの手の位置および向きを正確に追跡することを困難にする。したがって、本明細書で説明されているシステムは、主に片手または片腕ベースのジェスチャを検出するよう構成され得る。片手または片腕ベースのジェスチャを使用すると、大きい運動技能および細かい運動技能に制限があるユーザにとって、利用し易さがさらに向上する可能性がある。さらに、本明細書に記載のシステムは、ユーザの手が、相互作用するかまたは互いに重なることのない、両手または両腕ベースのジェスチャを検出するよう構成され得る。
加えて、本明細書に記載のシステムは、ユーザに自己触覚型フィードバックを与えるジェスチャを検出するよう構成され得る。たとえば、ユーザのそれぞれの手の親指および1本または複数本の手指は、人工現実コンテンツの特定のユーザインタフェース要素との相互作用を示す事前定義されたジェスチャの一部として、物理的世界で触れるか、またはほぼ触れることができる。ユーザの手の親指と1本または複数本の手指との間の接触は、ユーザが、物理的キーボードまたは他の物理的入力デバイス上の釦などの、物理的ユーザ入力物体と直接相互作用するときに感じる、感覚のシミュレーションをユーザに与えることができる。
本明細書に記載の技法を利用することにより、人工現実システム10は、いつ入力文字の選択が行われたかを示すために、自己触覚型フィードバック、すなわち挟持配置を形成するときに互いに接触するユーザの手132の指の感覚を使用する、自然な入力システムを提供することができる。さらに、人工現実システム10は、特定の挟持の形を形成する動きを含むジェスチャを検出することにより、いつ画像データを分析するべきかを効率的に特定し、どの入力文字をユーザ入力として受け取るかを特定することができる。本明細書に記載の技法は、ユーザ入力を受け取るためにユーザ110が持つ追加のハードウェアの必要性を低減または排除することさえでき、それにより、人工現実システム10の全体的な効率が高まり、人工現実システム10の別個の構成要素間の通信処理が低減され、かつあらゆるレベルの身体能力のユーザにとって、人工現実システム10の利用し易さが高まる。
図1Bは、本開示の技法による別の例示的な人工現実システム20を示す図である。図1Aの人工現実システム10と同様に、いくつかの例では、図1Bの人工現実システム20は、人工現実環境内でのユーザの相互作用および操作のために特別に設計された、ユーザインタフェース要素を提示および制御することができる。人工現実システム20はまた、様々な例において、ユーザの1つまたは複数の特定のジェスチャの検出に応答して、所定のグラフィカルユーザインタフェース要素を生成し、ユーザに対して描画することができる。
図1Bの例では、人工現実システム20は、外部カメラ102Aおよび102B(総称して「外部カメラ102」)、HMD112A~112C(総称して「HMD112」)、コントローラ114Aおよび114B(総称して「コントローラ114」)、コンソール106、およびセンサ90を備える。図1Bに示されているように、人工現実システム20は、コンソール106および/またはHMD112上で実行される人工現実アプリケーションが、ユーザ110A~110C(総称して「ユーザ110」)のそれぞれに、それぞれのユーザに対応する基準フレームの現在の観察視点に基づいて人工現実コンテンツを提示する、マルチユーザ環境を示している。すなわち、この例では、人工現実アプリケーションは、HMD112ごとの基準フレームのポーズ情報を追跡および計算することによって、人工コンテンツを構築する。人工現実システム20は、HMD112の対応する基準フレームの更新されたポーズ情報を計算するのに使用するために、カメラ102、HMD112、およびコントローラ114から受け取ったデータを使用して、ユーザ110の動きなど、実世界環境内の3D情報を、かつ/またはユーザ110および物体108に関する追跡情報を取り込む。一例として、人工現実アプリケーションは、HMD112Cについて特定された現在の観察視点に基づいて、実世界の物体108A~108C(総称して「実世界の物体108」)上に空間的に重畳される、仮想物体128A~128C(総称して「仮想物体128」)を有する人工現実コンテンツ122を描画することができる。さらに、人工現実システム20は、HMD112Cの視点から、ユーザ110A、110Bのそれぞれの推定位置に基づいて、アバター120A、120Bを描画する。
HMD112のそれぞれは、人工現実システム20内で同時に動作する。図1Bの例では、ユーザ110のそれぞれは、人工現実アプリケーションの「プレーヤ」または「参加者」であってもよく、ユーザ110のいずれも、人工現実アプリケーションの「観客」または「観察者」であってもよい。HMD112Cはそれぞれ、ユーザ110Cの手132および/または腕124を追跡し、視野130内にある手132の部分を人工現実コンテンツ122内の仮想の手136として描画することによって、図1AのHMD112と実質的に同様に動作することができる。HMD112Bは、ユーザ110Bが保持しているコントローラ114Aから、ユーザ入力を受け取ることができる。HMD112Aはまた、図1AのHMD112と実質的に同様に動作し、ユーザ110Aの手132A、132Bの動きを追跡することによって、ユーザ入力を受け取ることができる。HMD112Bは、ユーザ110Bが保持しているコントローラ114から、ユーザ入力を受け取ることができる。コントローラ114は、ブルートゥースなどの短距離無線通信である近距離通信を使用して、有線通信リンクを使用して、または別の種類の通信リンクを使用して、HMD112Bと通信することができる。
図1Aに関して上記で論じられた例と同様のやり方で、人工現実システム20のコンソール106および/またはHMD112Aは、ユーザ110Aに対して表示される人工現実コンテンツ上に重畳され得る、ユーザインタフェース要素を生成および描画する。さらに、コンソール106および/またはHMD112Aは、ポーズの追跡による、ユーザ110Aが実行する直感的でありながらも独特のジェスチャの検出に基づいて、ユーザインタフェース要素の生成および動的な表示をトリガすることができる。人工現実システム20は、たとえば、ユーザの手、手指、親指、または腕の特定の動き、配置、位置、および/または向きなど、ユーザ110Aによる1つまたは複数の特定のジェスチャの検出に応答して、1つまたは複数のグラフィカルユーザインタフェース要素を動的に提示することができる。図1Bに示されているように、HMD112Aに組み込まれたカメラを介して取り込まれた画像データに加えて、外部カメラ102からの入力データを使用して、手の個々の指(手指、親指)および/または指の組合せの動きを含む、ユーザ110Aの手132Aおよび132Bなどのユーザ110の手および腕の特定の動き、配置、位置、および/または向きを追跡および検出することができる。
このようにして、本明細書に記載の技法は、手132Aまたは132Bのいずれの挟持配置をも検出することによって、両手テキスト入力を可能にすることができる。たとえば、人工現実システム20が、HMD112Aおよびユーザ110A用の人工現実コンテンツに仮想キーボードを出力する場合、HMD112Aまたはカメラ102は、本明細書に記載の挟持配置を形成する手132Aまたは手132Bのいずれの指の動きをも含むジェスチャを検出することができる。いくつかの例では、人工現実システム20は、単一の仮想キーボードを出力するのではなく、分割された仮想キーボードを出力することができ、分割されたキーボード出力の半分は、手132Aの仮想表現のほぼ近くにあり、分割されたキーボード出力の残り半分は、手132Bのほぼ近くにある。このようにして、人工現実システム20は、人工現実コンテンツにおいて、単一のキーボード設計ではなく、人間工学的で自然な分割されたキーボードのレイアウトを提供することができる。
同様に、人工現実システム20が画像データ内の手の指に1つまたは複数の入力文字を割り当てる場合、人工現実システム20は、カメラ102およびHMD112Aによって取り込まれた画像データを分析し、1つまたは複数の入力文字を、手132Aおよび132Bのそれぞれの指に割り当てることができる。人工現実システムは、手132Aおよび132Bのそれぞれの親指など、手132Aおよび132Bそれぞれの指のうちの1本に入力文字を割り当てることを止め、その代わりに、これらの指を、手132Aおよび132Bのそれぞれの選択用指として割り当てることができる。人工現実システム20は、次いで、カメラ102またはHMD112Aによって取り込まれた画像データを監視し、挟持配置を形成する手132Aまたは132Bのいずれかの指の動きを含む、ジェスチャを形成する手132Aまたは132Bの一方を検出することができる。人工現実システム20は、次いで、特定の時間にわたって画像データを監視し、その時間内に、手132Aまたは132Bのいずれかのこれらの2本の指が、別個に挟持配置を形成する回数を検出することができる。人工現実システム20は、次いで、2本の指が別個に挟持配置を形成した回数に基づいて、手132Aまたは132Bの特定の指の、入力文字のうちの1つの選択を処理することができる。
図2は、本開示の技法にしたがって動作するよう構成された、例示的なHMD112を示す図である。図2のHMD112は、図1Aおよび図1BのHMD112のいずれの例でもあり得る。HMD112は、図1A、図1Bの人工現実システム10、20などの人工現実システムの一部であり得るか、または本明細書に記載の技法を実施するよう構成された、独立型の携帯人工現実システムとして動作することができる。
この例では、HMD112は、HMD112をユーザに固定するための前部剛体およびバンドを備える。加えて、HMD112は、人工現実コンテンツをユーザに提示するよう構成された、内側に向く電子ディスプレイ203を備える。電子ディスプレイ203は、液晶ディスプレイ(LCD:liquid crystal display)、量子ドットディスプレイ、ドットマトリックスディスプレイ、発光ダイオード(LED:light emitting diode)ディスプレイ、有機発光ダイオード(OLED:organic light-emitting diode)ディスプレイ、陰極線管(CRT:cathode ray tube)ディスプレイ、電子ペーパ、または視覚出力を生成できる白黒、カラー、もしくは他の任意の種類のディスプレイなどの、任意の好適なディスプレイ技術であり得る。いくつかの例では、電子ディスプレイは、ユーザのそれぞれの目に別々の画像を提示する、立体視ディスプレイである。いくつかの例では、HMD112およびユーザの現在の観察視点にしたがって人工現実コンテンツを描画するために、HMD112の位置および向きを追跡するときに、HMD112の前部剛体に対するディスプレイ203の既知の向きおよび位置が、ローカル原点とも呼ばれる、基準フレームとして使用される。他の例では、HMD112は、眼鏡などの他の着用可能なヘッドマウントディスプレイの形式をとることができる。
図2にさらに示されているように、この例では、HMD112は、HMD112の現在の加速度を示すデータを出力する、1つもしくは複数の加速度計(慣性測定ユニットまたは「IMU:inertial measurement unit」とも呼ばれる)などの、1つもしくは複数の動きセンサ206、HMD112の場所を示すデータを出力するGPSセンサ、様々な物体からHMD112の距離を示すデータを出力するレーダもしくはソナー、またはHMD112または物理環境内の他の物体の場所もしくは向きを示す他のセンサをさらに備える。さらに、HMD112は、ビデオカメラ、レーザスキャナ、ドップラレーダスキャナ、深度スキャナなどの、統合された画像取込みデバイス138Aおよび138B(総称して「画像取込みデバイス138」)を備えることができ、画像取込みデバイスは、物理的環境を表す画像データを出力するよう構成されている。より具体的には、画像取込みデバイス138は、通常、HMD112の観察視点に相当する、画像取込みデバイス138の視野130A、130B内にある、物理的環境内の物体を表す画像データを取り込む。HMD112は、内部電源と、1つまたは複数のプロセッサ、メモリ、およびハードウェアを備え、感知されたデータを処理し、人工現実コンテンツをディスプレイ203上に提示する、プログラム可能な動作を実行する動作環境を提供する、1つまたは複数のプリント回路基板とを備えることができる、内部制御ユニット210を備える。
一例では、本明細書に記載の技法によれば、制御ユニット210は、感知されたデータに基づいて、ユーザが実行する特定のジェスチャまたはジェスチャの組合せを識別し、それに応答して動作を実行するよう構成される。制御ユニット210は、たとえば、識別した1つのジェスチャに応答して、電子ディスプレイ203上に表示するための、人工現実コンテンツ上に重畳される特定のユーザインタフェース要素を生成および描画することができる。本明細書で説明されているように、本開示の技法によれば、制御ユニット210は、画像取込みデバイス138によって取り込まれた画像データ内の物体認識を実行して、手132、手指、親指、腕、またはユーザの別の一部を識別し、ユーザが実行する事前定義されたジェスチャを識別するために、識別された部分の動きを追跡することができる。事前定義されたジェスチャの識別に応答して、制御ユニット210は、ユーザインタフェース要素に関連づけられたオプションのセットからオプションを選択する、ジェスチャを入力(たとえば、文字)に変換する、アプリケーションを起動する、さもなければコンテンツを表示するなど、何らかの動作を行う。いくつかの例では、制御ユニット210は、ユーザインタフェースを示すための「トリガ」として指定された、事前定義されたジェスチャを検出するのに応答して、メニューなどのユーザインタフェース要素を動的に生成および提示する。他の例では、制御ユニット210は、コンソール106などの外部デバイスからの指図に応答して、物体認識、動き追跡、およびジェスチャ検出、またはそれらの任意の部分を実行することができる、かかる機能を実行する。
本明細書に記載の技法によれば、ディスプレイ203上に表示される人工現実コンテンツが、1つまたは複数の仮想キーで構成される仮想キーボードを有する場合、画像取込みデバイス138は、挟持配置を形成するユーザの手132の指の動きを含む、画像データを取り込むことができる。制御ユニット210は、この画像データから、挟持配置を形成する手132の指の動きを含む、ジェスチャを検出することができる。制御ユニット210が、挟持配置を形成する指の動きのジェスチャが検出されるのを検出すると、挟持配置に関与する2本の指の接触点が識別され、制御ユニット210は、人工現実コンテンツによって構成された仮想環境内の、相当する場所を識別する。挟持配置の接触点が仮想キーボードの仮想キーの場所に相当する場合、制御ユニット210は、挟持配置を形成する指の動き、または挟持配置を解除する指の動きが、接触点の場所に相当する場所にある仮想キーを選択しているのを認識することができる。この選択に応答して、制御ユニット210は、テキスト入力欄内にテキスト文字または他のASCII文字を入力すること、またはコンピュータ処理システムのキーボードのキーに割り当てられ得る他の任意の機能など、仮想キーの選択に対応する動作を実行することができる。
本明細書に記載の技法の他の例では、画像取込みデバイス138または他の外部カメラは、ユーザの手132を含む画像データを取り込むことができる。この画像データを使用して、制御ユニット210は、ユーザの手132の様々な指を区別することができる。次いで、制御ユニット210は、1つまたは複数の入力文字を、画像データに取り込まれた手132の1本または複数本の指に割り当てることができる。制御ユニット210は、いくつかの例では、手132の親指など、画像データ内の手132の1本の指を、入力文字を割り当てないままにしておき、その代わりにこの指を、選択用指として割り当てることができる。次いで、画像取込みデバイス138は、制御ユニット210が1つまたは複数の入力文字を割り当てたユーザの手132の選択用指および第2の指の、挟持配置を形成する動きを含む、画像データを取り込むことができる。制御ユニット210が画像データからこの動きを検出すると、制御ユニット210は、特定の時間にわたって画像データを監視し、監視している2本の指が特定の時間に挟持配置を形成および解除する、別個のインスタンスの数を検出することができる。たとえば、制御ユニット210は、特定の時間内の、挟持配置を形成する2本の指の動き、挟持配置を解除する動き、再び挟持配置を形成する動き、挟持配置を解除する動き、およびさらに再び挟持配置を形成する動きが、挟持配置の3つの別個のインスタンスを構成するのを検出することができる。この数の別個のインスタンスに基づいて、制御ユニット210は、選択用指と共に挟持配置を形成する、特定の指に割り当てられた入力文字のうちの対応する1つを選択する。制御ユニット210は、挟持配置の形成を組み合わせた入力であるこの選択を使用する。
図3は、図1A、図1Bの人工現実システム10、20のコンソール106およびヘッドマウントディスプレイ112の例示的な実施態様を示す構成図である。図3の例では、コンソール106は、HMD112および/または外部センサから受け取った動きデータおよび画像データなどの感知されたデータに基づいて、本明細書に記載の技法による、ポーズ追跡、ジェスチャ検出、およびHMD112用ユーザインタフェースの生成および描画を実行する。
この例では、HMD112は、いくつかの例において、たとえば、組込み型のリアルタイムマルチタスクオペレーティングシステム、または他の種類のオペレーティングシステムであり得る、オペレーティングシステム305を実行するためのコンピュータプラットフォームを提供する、1つまたは複数のプロセッサ302およびメモリ304を備えている。次に、オペレーティングシステム305は、アプリケーションエンジン340を含む1つまたは複数のソフトウェア構成要素307を実行する、マルチタスク動作環境を提供する。図2の例に関して論じられたように、プロセッサ302は、電子ディスプレイ203、動きセンサ206、および画像取込みデバイス138に結合されている。いくつかの例では、プロセッサ302およびメモリ304は、別個の離散した構成要素であり得る。他の例では、メモリ304は、ただ1つの集積回路内にプロセッサ302と併置されたオンチップメモリであってもよい。
コンソール106は、概ね、カメラ102(図1B)および/またはHMD112から受け取った画像および追跡情報を処理して、ジェスチャ検出およびHMD112用ユーザインタフェース生成を実行する、コンピュータ処理デバイスである。いくつかの例では、コンソール106は、ワークステーション、デスクトップコンピュータ、ラップトップ、またはゲームシステムなどの、ただ1つのコンピュータ処理デバイスである。いくつかの例では、プロセッサ312および/またはメモリ314などのコンソール106の少なくとも一部は、クラウドコンピュータ処理システム、データセンタにわたって、またはインターネット、別の公衆もしくは専用通信ネットワーク、たとえば、コンピュータ処理システム、サーバ、およびコンピュータ処理デバイス間でデータを伝送するための広帯域、移動体通信、Wi-Fi、および/または他の種類の通信ネットワークなどの、ネットワークにわたって分散されていてもよい。
図3の例では、コンソール106は、いくつかの例において、たとえば、組込み型のリアルタイムマルチタスクオペレーティングシステム、または他の種類のオペレーティングシステムであり得る、オペレーティングシステム316を実行するためのコンピュータプラットフォームを提供する、1つまたは複数のプロセッサ312およびメモリ314を備えている。次に、オペレーティングシステム316は、1つまたは複数のソフトウェア構成要素317を実行するための、マルチタスク動作環境を提供する。プロセッサ312は、1つまたは複数のI/Oインタフェース315に結合され、キーボード、ゲームコントローラ、ディスプレイデバイス、画像取込みデバイス、HMDなどの外部デバイスと通信するための、1つまたは複数のI/Oインタフェースを提供する。さらに、1つまたは複数のI/Oインタフェース315には、ネットワーク104などのネットワークと通信する、1つまたは複数の有線または無線ネットワークインタフェースコントローラ(NIC:network interface controller)が含まれ得る。プロセッサ302、312のそれぞれには、マルチコアプロセッサ、コントローラ、デジタル信号プロセッサ(DSP:digital signal processor)、特定用途向け集積回路(ASIC:application specific integrated circuit)、フィールドプログラマブルゲートアレイ(FPGA:field-programmable gate array)、または同等の離散した、もしくは集積論理回路のうちの任意の1つまたは複数が含まれ得る。メモリ304、314には、ランダムアクセスメモリ(RAM:random-access memory)、読取り専用メモリ(ROM:read only memory)、プログラム可能な読取り専用メモリ(PROM:programmable read only memory)、消去可能でプログラム可能な読取り専用メモリ(EPROM:erasable programmable read only memory)、電子的に消去可能でプログラム可能な読取り専用メモリ(EEPROM:electronically erasable programmable read only memory)、およびフラッシュメモリなどの、データおよび実行可能なソフトウェア命令を記憶する任意の形式のメモリが含まれ得る。
コンソール106のソフトウェアアプリケーション317は、全体的な人工現実アプリケーションを提供するよう動作する。この例では、ソフトウェアアプリケーション317は、アプリケーションエンジン320、描画エンジン322、ジェスチャ検出器324、ポーズ追跡器326、およびユーザインタフェースエンジン328を有している。
アプリケーションエンジン320は、概して、人工現実アプリケーション、たとえば、電話会議アプリケーション、ゲームアプリケーション、ナビゲーションアプリケーション、教育アプリケーション、訓練またはシミュレーションアプリケーションなどを提供し、提示する機能を有している。アプリケーションエンジン320は、たとえば、コンソール106上で人工現実アプリケーションを実施するための1つまたは複数のソフトウェアパッケージ、ソフトウェアライブラリ、ハードウェアドライバ、および/またはアプリケーションプログラムインタフェース(API:Application Program Interface)を有することができる。アプリケーションエンジン320による制御に応答して、描画エンジン322は、HMD112のアプリケーションエンジン340によってユーザに対して表示する、3D人工現実コンテンツを生成する。
アプリケーションエンジン320および描画エンジン322は、ポーズ追跡器326によって特定される基準フレーム、典型的にはHMD112の観察視点での現在のポーズ情報にしたがって、ユーザ110に対して表示する人工コンテンツを構築する。現在の観察視点に基づいて、描画エンジン322は、場合によっては少なくとも部分的に、ユーザ110の実世界の3D環境に重畳され得る、3Dの人工現実コンテンツを構築する。この処理中に、ポーズ追跡器326は、HMD112から受け取った動き情報およびユーザコマンドなどの感知されたデータ、ならびにいくつかの例では、外部カメラなどの任意の外部センサ90(図1A、図1B)からのデータに基づいて動作し、実世界の環境内での、ユーザ110の動きおよび/またはユーザ110に関する特徴追跡情報などの3D情報を取り込む。ポーズ追跡器326は、感知されたデータに基づいて、HMD112の基準フレームでの現在のポーズを特定し、現在のポーズにしたがって人工現実コンテンツを構築し、ユーザ110に対して表示するために、1つまたは複数のI/Oインタフェース315を介してHMD112と通信する。
さらに、ジェスチャ検出器324は、感知されたデータに基づいて、ユーザの物体(たとえば、手、腕、手首、手指、手のひら、親指)の追跡された動き、配置、位置、および/または向きを分析し、ユーザ110が実行する1つまたは複数のジェスチャを識別する。より具体的には、ジェスチャ検出器324は、HMD112の画像取込みデバイス138ならびに/またはセンサ90および外部カメラ102によって取り込まれた、画像データ内で認識された物体を分析し、ユーザ110の手および/または腕を識別し、HMD112に対する手および/または腕の動きを追跡して、ユーザ110が実行するジェスチャを識別する。ジェスチャ検出器324は、取り込まれた画像データに基づいて、手、指、および/または腕の位置および向きの変化を含む動きを追跡し、物体の動きベクトルをジェスチャライブラリ330内の1つまたは複数のエントリと比較して、ユーザ110が実行するジェスチャまたはジェスチャの組合せを検出することができる。ジェスチャライブラリ330内の一部のエントリはそれぞれ、ジェスチャを、ユーザの手、特定の手指、親指、手首、および/または腕の相対的経路または空間的平行移動および回転などの、一連の動きまたは動きのパターンとして定義することができる。ジェスチャライブラリ330内の一部のエントリはそれぞれ、ジェスチャを、特定の時間の、または一定期間にわたる、ユーザの手および/もしくは腕(またはその一部)の配置、位置、および/または向きとして定義することができる。ジェスチャの種類の他の例もあり得る。加えて、ジェスチャライブラリ330内のエントリのそれぞれは、定義されたジェスチャまたは一連のジェスチャについての、HMD112の現在の視野との空間的関係、ユーザが現在観察している特定の領域との空間的関係など、個人のリアルタイムでの凝視追跡、表示されている人工コンテンツの種類、実行されているアプリケーションの種類などによって特定され得る、ジェスチャまたは一連のジェスチャが動作をトリガするのに必要な条件を指定することができる。
ジェスチャライブラリ330内のエントリのそれぞれはさらに、定義されたジェスチャのそれぞれまたはジェスチャの組合せ/一連のジェスチャについて、ソフトウェアアプリケーション317によって実行されるべき所望の応答または動作を指定することができる。たとえば、この開示の技法によれば、所定の特殊なジェスチャは、ユーザインタフェースエンジン328が、事前定義されたジェスチャの1つを検出することに応答して、ユーザに対して表示されている人工現実コンテンツに重畳するユーザインタフェースを動的に生成するように、事前定義することができ、それによりユーザ110は、人工現実コンテンツと相互作用している間でさえ、HMD112および/またはコンソール106を設定するために、ユーザインタフェースを容易に呼び出すことができる。他の例では、所定のジェスチャは、入力の提供、物体の選択、アプリケーションの起動などの、他の動作に関連づけられていてもよい。
本明細書に記載の技法によれば、画像取込みデバイス138は、物理的環境を表す画像データを取り込むよう構成され得る。HMD112は、人工現実コンテンツを出力するよう構成され得る。一例では、描画エンジン322は、HMD112によって出力される人工現実コンテンツに重畳する、複数の仮想キーを有する仮想キーボードを描画するよう構成され得る。場合によっては、キーボードはQWERTY配列キーボードの仮想表現であり得るが、他のキーボードもまた、本明細書に記載の技法にしたがって描画され得る。場合によっては、QWERTY配列キーボードの仮想表現は、切れ目のないQWERTY配列キーボードの仮想表現であり得る。他の例では、QWERTY配列キーボードの仮想表現は、分割されたQWERTY配列キーボードの一方の半分が第1の手に紐づき、分割されたQWERTY配列キーボードのもう一方の半分が第2の手に紐づいた、分割されたQWERTY配列キーボードの2つの半分の仮想表現であってもよい。
ジェスチャ検出器324は、画像取込みデバイス138によって取り込まれた画像データから、ジェスチャライブラリ330内のエントリと一致するジェスチャを識別するよう構成され得る。ジェスチャ検出器324によって検出される特定のジェスチャは、たとえば、挟持配置を形成するための手の第1の指および手の第2の指の動きであり得る。ジェスチャ検出器324がかかるジェスチャを検出する場合、ジェスチャ検出器324は、挟持配置にあるときの第1の指と第2の指との接触点を識別し、接触点の場所が、仮想キーボードの任意の仮想キーの場所に相当するかどうかを判断することができる。一例として、ジェスチャ検出器324は、接触点が、仮想キーボードの複数の仮想キーのうちの、第1の仮想キーに相当する場所にあると特定することができる。この例では、ユーザインタフェースエンジン328は、検出されたジェスチャに応答して、第1の仮想キーの選択を処理する。
ジェスチャ検出器324は、場合によっては、単に挟持配置を形成する手の指の動きのジェスチャを検出するだけではなく、挟持配置を形成する指の動きの後に、挟持形成を解除する指のさらなる動きが、ジェスチャが完了したと特定する前に起きていることを、さらに特定することができる。かかる場合に、ジェスチャ検出器324は、接触点の場所を、挟持配置が解除される直前の接触点の場所と特定することができ、これによりユーザは、挟持配置にあるとき、仮想キーを選択する前に、仮想キーボードの周囲で手を動かすことができるであろう。いくつかのさらなる例では、ジェスチャ検出器324は、挟持配置を形成し、また挟持配置を解除することを必要とするのに加えて、キーボードに間違えて入力することを減らすために、解除される前に、閾値時間にわたって挟持配置が保持されているのを検出することを必要とし得る。
ジェスチャ検出器324は、場合によっては、ジェスチャを識別する前に、画像取込みデバイス138または外部カメラによって取り込まれた画像データから、仮想キーボードに対する手の第1の指の場所ばかりでなく、仮想キーボードに対する手の第2の指の場所を識別することができる。次いで、ジェスチャ検出器324は、手の第1の指の場所から手の第2の指の場所までの選択ベクトルを計算し、選択ベクトルと仮想キーボードとの交点を特定することができる。この交点は、第1の指および第2の指が挟持配置を形成する場合、予測される接触点に相当するであろう。描画エンジン322は、選択ベクトル自体を表す線を描画すること、仮想キーボード上に交点を表す形状、たとえば円もしくはドットを描画すること、交点が特定の仮想キーと重なる場合に、仮想キーボードの特定の仮想キーを、仮想キーボードの残りの仮想キーとは相異なる配色で、もしくは相異なるパターンで塗りつぶして描画すること、上記の任意の組合せ、または選択ベクトルおよび/もしくは交点のグラフィカルな表示を提示することができる他の任意の描画などによって、選択ベクトルおよび/または交点のグラフィカルな表示を描画することができる。ジェスチャ検出器324は、ジェスチャを識別すると、挟持配置の接触点を、選択ベクトルと仮想キーボードの第1の仮想キーとの交点として検出することができる。
ジェスチャ検出器324が、接触点の場所が第1の仮想キーに相当すると特定するのに応答して、ユーザインタフェースエンジン328は、識別されたジェスチャに応答して第1の仮想キーの選択を処理するよう構成され得る。
いくつかの例では、ジェスチャ検出器324は、片手入力に加えて両手入力を識別できることにより、コンソール106は、仮想キーボードの複数の仮想キーの複合入力を検出することが可能である。かかる場合に、第1の手の第1の指および第2の指が挟持配置にあるとき、ジェスチャ検出器324は、画像取込みデバイス138によって取り込まれた画像データから、第2のジェスチャを識別することができる。第2のジェスチャは、第2の挟持配置を形成する、第2の手の第1の指および第2の手の第2の指の第2の動きを含むことができる。第2の挟持配置において、ジェスチャ検出器324は、仮想キーボードの複数の仮想キーのうちの第2の仮想キーの場所に相当する、挟持配置にあるときの第2の手の第1の指と第2の手の第2の指との接触点を識別することができる。この第2のジェスチャが検出されると、ユーザインタフェースエンジン328は、第1のジェスチャと第2のジェスチャとを同時に識別したことに応答して、第1の仮想キーと第2の仮想キーとが組み合わされた選択を受け取ることができる。たとえば、第1の仮想キーが仮想キーボードの「SHIFT」キーに相当し、第2の仮想キーが仮想キーボードの「p」キーに相当する場合、ユーザインタフェースエンジン328は、組み合わされた選択出力である、大文字である文字「P」を受け取ることができる。
ユーザインタフェースエンジン328がユーザ入力を受け取ると、それが第1の仮想キーの単一の入力であるか、または第1および第2の仮想キーの組み合わされた選択であるかに関わらず、描画エンジン322は、識別されたジェスチャに応答して、ユーザ入力の表示を描画することができる。たとえば、第1の仮想キーに対応する文字を、描画エンジン322は、選択されたテキスト欄の一部として描画することができ、HMD112は、電子ディスプレイ203上に表示するよう出力することができる。
この開示の技法の別の例として、ジェスチャ検出器324は、画像データから、ジェスチャライブラリ330内のエントリに対応するジェスチャを識別することができる。この例では、ジェスチャ検出器324は、ジェスチャを、挟持配置を閾値時間内に特定の回数形成する、手の第1の指および手の第2の指の動きとして識別することができる。
ユーザインタフェースエンジン328は、1つまたは複数の入力文字を、手の複数本の指のうちの1本または複数本に割り当てることができる。たとえば、ユーザインタフェースエンジン328は、画像取込みデバイス138または外部カメラによって取り込まれた画像データから、画像データ内の手の複数本の指を識別することができる。ユーザインタフェースエンジン328は、1つまたは複数の入力文字を、選択用指として指定されている手の1本の指(たとえば、手の親指)を除くすべての指など、手の数本の指のサブセットに割り当てることができる。1つまたは複数の入力文字は、文字、数字、記号、他の特殊文字(たとえばスペース文字もしくはバックスペース文字)、または「NULL」文字のいずれでもよい。この割当て方式では、ジェスチャ検出器324が手の選択用指と所与の指との間の別個の挟持配置を検出する回数が、所与の指に割り当てられた複数の入力文字のうちの、どの入力文字をユーザが選択するかに対応することができる。場合によっては、各指に割り当てられる入力文字は、ユーザインタフェースエンジン328が入力文字を割り当てる指ごとの、別個の入力文字のセットであり得る。場合によっては、入力文字が割り当てられている各指に、「NULL」文字も割り当てられることがあり、これによりユーザは、元の選択が間違いだった場合に、所与の指に割り当てられた入力文字を「NULL」文字に循環的に置き替えることができる。ユーザインタフェースエンジン328は、識別されたジェスチャに応答して、手の第2の指に割り当てられた1つまたは複数の入力文字のうちの、第1の入力文字の選択を処理することができる。
いくつかの例では、ユーザインタフェースエンジン328は、手の第2の指に割り当てられた別個の入力文字のセットの、1つまたは複数の入力文字のそれぞれを、別個のセットの基数以下の選択番号にマッピングすることができる。次いで、ユーザインタフェースエンジン328は、識別されたジェスチャの、手の第1の指および手の第2の指が閾値時間内に挟持配置を形成する特定の回数に等しい、第1の入力文字にマッピングされた選択番号に基づいて、第1の入力文字の選択を特定することができる。言い換えると、文字「a」、「b」、および「c」がそれぞれ第2の指に割り当てられている場合、個別のセットの基数は3に等しくなり得る。したがって、文字「a」は番号1にマッピングすることができ、文字「b」は番号2にマッピングすることができ、文字「c」は番号3にマッピングすることができる。ジェスチャ検出器324が、識別されたジェスチャにおいて、3回の別個の挟持配置を識別した場合、ユーザインタフェースエンジン328は、所望の入力文字が文字「c」であると特定することができる。
他の例では、ユーザインタフェースエンジン328は、識別されたジェスチャでの、手の第1の指および手の第2の指が閾値時間内に挟持配置を形成する特定の回数を、別個のセットの基数で割ることにより、余りを伴う商を計算することができる。次いで、ユーザインタフェースエンジン328は、余りに等しい、第1の入力文字にマッピングされた選択番号に基づいて、第1の入力文字の選択を特定することができる。言い換えると、文字「a」、「b」、および「c」がそれぞれ第2の指に割り当てられている場合、個別のセットの基数は3に等しくなり得る。したがって、文字「a」は番号1にマッピングすることができ、文字「b」は番号2にマッピングすることができ、文字「c」は番号0にマッピングすることができる。ジェスチャ検出器324が、識別されたジェスチャにおいて、4回の別個の挟持配置を識別した場合、ユーザインタフェースエンジン328は、別個の挟持配置(すなわち、4)を別個のセットの基数(すなわち、3)で割った商を1、余りを1と計算することができる。ユーザインタフェースエンジン328は、余りが1で、文字「a」が番号1にマッピングされていることを考慮して、所望の入力文字が文字「a」であると特定することができる。
場合によっては、ジェスチャ検出器324が閾値時間内にジェスチャを検出している間、描画エンジン322は、手の第1の指および手の第2の指が閾値期間内に挟持配置を形成する現在の回数に基づいて選択されることになる、手の第2の指に割り当てられた1つまたは複数の入力文字のうちの現在の入力文字を描画することができる。たとえば、文字「a」、「b」、および「c」がそれぞれ第2の指に割り当てられている例において、描画エンジン322は、第1の指および第2の指が第1の挟持配置を形成すると、HMD112のディスプレイ上に出力するために、文字「a」を描画することができる。ジェスチャ検出器324が、閾値期間内に挟持配置の解除およびそれに続くさらなる挟持配置を検出した場合、描画エンジン322は、文字「a」の描画を文字「b」の描画に置き換えることができ、閾値時間が経過するまで置換えが続く。
画像取込みデバイス138が両手を含む画像データを取り込む場合、ユーザインタフェースエンジン328は、第2の手に対して割当てプロセスを繰り返すことができる。たとえば、ユーザインタフェースエンジン328は、第1の手の様々な指に別個の入力文字のセットを割り当てることに加えて、第2の手の複数本の指のうちの1本または複数本の指のそれぞれに、別個の入力文字のセットを割り当てることができる。このようにして、それぞれの手の親指を選択用指として指定し、それぞれの手の残りの指で、システムのテキスト入力オプションを実現することができる。
場合によっては、ユーザが、どの指がどの文字を作り出すことになるかを認識する助けとなるように、描画エンジン322は、人工現実コンテンツ内の手の仮想表現に重畳する、手の複数本の指のうちの1本または複数本に割り当てられた1つまたは複数の文字を描画することができる。描画におけるかかる文字の順序は、ユーザインタフェースエンジン328が特定の文字を選択するために、ジェスチャ検出器324が検出しなければならない別個の挟持配置の数に相当し得る。
文字のみ、または文字と数字との組合せが、一方または両方の手の指に割り当てられる例では、追加のジェスチャのエントリが、記号、スペース文字、またはバックスペース文字などの特殊文字のエントリ用に、ジェスチャライブラリ330内に含まれ得る。かかる例では、ジェスチャ検出器324は、画像取込みデバイス138によって取り込まれた画像データから、両手での拍手または片手での拳の形成などの、第2のジェスチャを識別することができる。ユーザインタフェースエンジン328は、1つまたは複数の特殊な入力文字を第2のジェスチャに割り当て、識別された第2のジェスチャに応答して、第2のジェスチャに割り当てられた1つまたは複数の特殊な入力文字のうちの、第1の特殊な入力文字の選択を処理することができる。
場合によっては、閾値時間は動的であり得る。たとえば、ジェスチャ検出器324は、ジェスチャ検出器324が最新の挟持配置を識別した後の特定の時間である、閾値時間を定義することができる。他の例では、ジェスチャ検出器324は、ジェスチャ検出器324が第1の指と第2の指との間での挟持配置以外の新しいジェスチャを識別すると終了するものとして、閾値時間を定義することができる。たとえば、ジェスチャ検出器324が、挟持配置を形成する第1の指および第2の指の第1のジェスチャを2回別個に検出し、次いでジェスチャ検出器324が、第1のジェスチャに与えられた事前定義された閾値時間内に、挟持配置を形成する手の第1の指および第3の指の第2のジェスチャ検出する場合、ジェスチャ検出器324は、第1のジェスチャの入力時間を動的に打ち切ることができ、ユーザインタフェースエンジン328は、番号2にマッピングされた入力文字を、入力文字として選択することができる。次いで、ジェスチャ検出器324は、第2のジェスチャの画像データの監視を開始し、第1の指および第3の指が挟持配置を形成する別個の回数を特定することができる。このようにして、コンソール106およびHMD112は、テキストエントリ処理をより迅速に進めることができる。
図4は、本開示の技法による、図1A、図1Bの人工現実システムのHMD112によって、ジェスチャ検出およびユーザインタフェース生成が実行される例を示す構成図である。
この例では、HMD112は、図3と同様に、いくつかの例において、たとえば、組込み型のリアルタイムマルチタスクオペレーティングシステム、または他の種類のオペレーティングシステムであり得る、オペレーティングシステム305を実行するためのコンピュータプラットフォームを提供する、1つまたは複数のプロセッサ302およびメモリ304を備えている。次に、オペレーティングシステム305は、1つまたは複数のソフトウェア構成要素417を実行する、マルチタスク動作環境を提供する。さらに、プロセッサ302は、電子ディスプレイ203、動きセンサ206、および画像取込みデバイス138に結合されている。
図4の例において、ソフトウェア構成要素417は、全体的な人工現実アプリケーションを提供するよう動作する。この例では、ソフトウェアアプリケーション417は、アプリケーションエンジン440、描画エンジン422、ジェスチャ検出器424、ポーズ追跡器426、およびユーザインタフェースエンジン428を有している。様々な例において、ソフトウェア構成要素417は、図3のコンソール106の相当する構成要素(たとえば、アプリケーションエンジン320、描画エンジン322、ジェスチャ検出器324、ポーズ追跡器326、およびユーザインタフェースエンジン328)と同様に動作し、検出されたユーザ110のジェスチャにしたがって、ユーザ110に対して表示する人工コンテンツに重畳されるかまたは人工コンテンツの一部である、ユーザインタフェース要素を構築する。いくつかの例では、描画エンジン422は、少なくとも部分的に、ユーザ110の実世界の物理的環境に重畳され得る、3Dの人工現実コンテンツを構築する。
図3に関して説明された例と同様に、ジェスチャ検出器424は、感知されたデータに基づいて、ユーザの物体(たとえば、手、腕、手首、手指、手のひら、親指)の追跡された動き、配置、位置、および/または向きを分析し、ユーザ110が実行する1つまたは複数のジェスチャを識別する。本開示の技法にしたがって、ユーザインタフェースエンジン428は、ユーザ110に対して表示されるべき人工現実コンテンツの一部である、たとえば人工現実コンテンツに重畳される、ユーザインタフェース要素を生成し、かつ/あるいはジェスチャ検出器424によって検出された、ユーザ110の1つもしくは複数のジェスチャまたはジェスチャの組合せに基づいて、動作を実行する。より具体的には、ジェスチャ検出器424は、HMD112の画像取込みデバイス138および/またはセンサ90もしくは外部カメラ102によって取り込まれた画像データ内で認識された物体を分析し、ユーザ110の手および/または腕を識別し、HMD112に対する手および/または腕の動きを追跡して、ユーザ110が実行するジェスチャを識別する。ジェスチャ検出器424は、取り込まれた画像データに基づいて、手、指、および/または腕の位置および向きの変化を含む動きを追跡し、物体の動きベクトルをジェスチャライブラリ430内の1つまたは複数のエントリと比較して、ユーザ110が実行するジェスチャまたはジェスチャの組合せを検出することができる。
ジェスチャライブラリ430は、図3のジェスチャライブラリ330と同様である。ジェスチャライブラリ430内のエントリのそれぞれは、定義されたジェスチャまたは一連のジェスチャについて、HMD112の現在の視野との空間的関係、ユーザが現在観察している特定の領域との空間的関係など、個人のリアルタイムでの凝視追跡、表示されている人工コンテンツの種類、実行されているアプリケーションの種類などによって特定され得る、ジェスチャが動作をトリガするのに必要な条件を指定することができる。
一致するジェスチャまたはジェスチャの組合せを検出することに応答して、HMD112は、ジェスチャライブラリ430内の一致するエントリに割り当てられた応答または動作を実行する。たとえば、この開示の技法によれば、所定の特殊なジェスチャは、ジェスチャ検出器424が、事前定義されたジェスチャの1つを検出することに応答して、ユーザインタフェースエンジン428が、ユーザに対して表示されている人工現実コンテンツに重畳するユーザインタフェースを動的に生成するように、事前定義することができ、それによりユーザ110は、人工現実コンテンツを観察している間に、HMD112を設定するため、ユーザインタフェースを容易に呼び出すことができる。他の例では、ジェスチャ検出器424が事前定義されたジェスチャの1つを検出するのに応答して、ユーザインタフェースエンジン428および/またはアプリケーションエンジン440は、入力を受け取り、ユーザインタフェース要素に関連する値もしくはパラメータを選択し、アプリケーションを起動し、設定変更可能な設定を修正し、メッセージを送り、処理を開始もしくは停止するか、または他の動作を実行することができる。
本明細書に記載の技法によれば、画像取込みデバイス138は、物理的環境を表す画像データを取り込むよう構成され得る。HMD112は、人工現実コンテンツを出力するよう構成され得る。描画エンジン422は、HMD112によって出力される人工現実コンテンツに重畳する、複数の仮想キーを有する仮想キーボードを描画するよう構成され得る。場合によっては、キーボードはQWERTY配列キーボードの仮想表現であり得るが、他のキーボードもまた、本明細書に記載の技法にしたがって描画され得る。場合によっては、QWERTY配列キーボードの仮想表現は、切れ目のないQWERTY配列キーボードの仮想表現であり得る。他の例では、QWERTY配列キーボードの仮想表現は、分割されたQWERTY配列キーボードの一方の半分が第1の手に紐づき、分割されたQWERTY配列キーボードのもう一方の半分が第2の手に紐づいた、分割されたQWERTY配列キーボードの2つの半分の仮想表現であってもよい。
ジェスチャ検出器424は、画像取込みデバイス138によって取り込まれた画像データから、ジェスチャライブラリ430内のエントリと一致するジェスチャを識別するよう構成され得る。ジェスチャ検出器424によって検出される特定のジェスチャは、たとえば、挟持配置を形成するための手の第1の指および手の第2の指の動きであり得る。ジェスチャ検出器424がかかる挟持配置を検出する場合、ジェスチャ検出器424は、挟持配置にあるときの第1の指と手の第2の指との接触点の位置を突き止め、接触点の場所が、仮想キーボードの任意の仮想キーの場所に相当するかどうかを判断することができる。図4の例では、ジェスチャ検出器424は、接触点が、仮想キーボードの複数の仮想キーのうちの、第1の仮想キーに相当する場所にあると特定することができる。
ジェスチャ検出器424は、場合によっては、単に挟持配置を形成する手の指の動きのジェスチャを検出するだけではなく、挟持配置を形成する指の動きの後に、挟持形成を解除する指のさらなる動きが、ジェスチャが完了したと特定する前に起きていることを、さらに特定することができる。かかる場合に、ジェスチャ検出器424は、接触点の場所を、挟持配置が解除される直前の接触点の場所と特定することができ、これによりユーザは、挟持配置にあるとき、仮想キーを選択する前に、仮想キーボードの周囲で手を動かすことができるであろう。いくつかのさらなる例では、ジェスチャ検出器424は、挟持配置を形成し、また挟持配置を解除することを必要とするのに加えて、キーボードに間違えて入力することを減らすために、解除される前に、閾値時間にわたって挟持配置が保持されているのを検出することを必要とし得る。
ジェスチャ検出器424は、場合によっては、ジェスチャを識別する前に、画像取込みデバイス138または外部カメラによって取り込まれた画像データから、仮想キーボードに対する手の第1の指の場所ばかりでなく、仮想キーボードに対する手の第2の指の場所を識別することができる。次いで、ジェスチャ検出器424は、手の第1の指の場所から手の第2の指の場所までの選択ベクトルを計算し、選択ベクトルと仮想キーボードとの交点を特定することができる。この交点は、第1の指および第2の指が挟持配置を形成する場合、予測される接触点に相当するであろう。描画エンジン422は、選択ベクトル自体を表す線を描画すること、仮想キーボード上に交点を表す形状を描画すること、交点が特定の仮想キーと重なる場合に、仮想キーボードの特定の仮想キーを、仮想キーボードの残りの仮想キーとは相異なる配色で、もしくは相異なるパターンで塗りつぶして描画すること、上記の任意の組合せ、または選択ベクトルおよび/もしくは交点のグラフィカルな表示を提示することができる他の任意の描画などによって、選択ベクトルおよび/または交点のグラフィカルな表示を描画することができる。ジェスチャ検出器424は、ジェスチャを識別すると、挟持配置の接触点を、選択ベクトルと仮想キーボードの第1の仮想キーとの交点として検出することができる。
ジェスチャ検出器424が、接触点の場所が第1の仮想キーに相当すると特定するのに応答して、ユーザインタフェースエンジン428は、識別されたジェスチャに応答して第1の仮想キーの選択を処理するよう構成され得る。
いくつかの例では、ジェスチャ検出器424は、片手入力に加えて両手入力を識別することができることにより、HMD112は、仮想キーボードの複数の仮想キーの複合入力を検出することが可能である。かかる場合に、第1の指および第2の指が挟持配置にあるとき、ジェスチャ検出器424は、画像取込みデバイス138または外部カメラによって取り込まれた画像データから、第2のジェスチャを識別することができる。第2のジェスチャは、第2の挟持配置を形成する、第2の手の第1の指および第2の手の第2の指の第2の動きを含むことができる。第2の挟持配置において、ジェスチャ検出器424は、挟持配置にあるときの、仮想キーボードの複数の仮想キーのうちの第2の仮想キーの場所に相当する、第2の手の第1の指と第2の手の第2の指との接触点を識別することができる。この第2のジェスチャが検出されると、ユーザインタフェースエンジン428は、第1のジェスチャと第2のジェスチャとを同時に識別したことに応答して、第1の仮想キーと第2の仮想キーとが組み合わされた選択を受け取ることができる。たとえば、第1の仮想キーが仮想キーボードの「SHIFT」キーに相当し、第2の仮想キーが仮想キーボードの「9」キーに相当する場合、ユーザインタフェースエンジン428は、組み合わされた選択出力である文字「(」を受け取ることができる。
ユーザインタフェースエンジン428が最後の入力を受け取ると、それが第1および第2の仮想キーの組み合わされた選択の第1の仮想キーの単一の入力であるかどうかに関わらず、描画エンジン422は、識別されたジェスチャに応答して、第1の仮想キーの選択の表示を描画することができる。たとえば、選択されたテキスト欄内の第1の仮想キーに対応する文字を、描画エンジン422は、選択されたテキスト欄の一部として描画することができ、ユーザインタフェースエンジン428は、電子ディスプレイ203上に表示するよう出力することができる。
本明細書に記載の他の技法によれば、画像取込みデバイス138は、物理的環境を表す画像データを取り込むことができる。HMD112は、人工現実コンテンツを出力することができる。
次いで、ジェスチャ検出器424は、画像データから、ジェスチャライブラリ430内のエントリに対応するジェスチャを識別することができる。この例では、ジェスチャ検出器424は、ジェスチャを、閾値時間内に特定の回数挟持配置を形成する、手の第1の指および手の第2の指の動きとして識別することができる。
ユーザインタフェースエンジン428は、1つまたは複数の入力文字を、手の複数本の指のうちの1本または複数本に割り当てることができる。たとえば、ユーザインタフェースエンジン428は、画像取込みデバイス138によって取り込まれた画像データから、画像データ内の手の複数本の指を識別することができる。ユーザインタフェースエンジン428は、1つまたは複数の入力文字を、選択用指として指定されている手の1本の指(たとえば、手の親指)を除くすべての指など、手の指のいくつかのサブセットに割り当てることができる。1つまたは複数の入力文字は、文字、数字、記号、他の特殊文字(たとえばスペース文字もしくはバックスペース文字)、または「NULL」文字のいずれでもよい。場合によっては、各指に割り当てられる入力文字は、ユーザインタフェースエンジン428が入力文字を割り当てる指ごとの、別個の入力文字のセットであり得る。場合によっては、入力文字が割り当てられている各指に、「NULL」文字も割り当てられることがあり、これによりユーザは、選択が間違いだった場合に、入力文字を「NULL」文字に循環的に置き替えることができる。このマッピングの場合、ユーザインタフェースエンジン328は、識別されたジェスチャに応答して、手の第2の指に割り当てられた1つまたは複数の入力文字のうちの、第1の入力文字の選択を処理することができる。
このマッピングでは、ジェスチャ検出器424が別個の挟持配置を検出する回数は、複数の入力文字のうちのどの入力文字がジェスチャによって選択されるかに対応することができる。たとえば、ユーザインタフェースエンジン428は、手の第2の指に割り当てられた別個の入力文字のセットの、1つまたは複数の入力文字のそれぞれを、別個のセットの基数以下の選択番号にマッピングすることができる。
場合によっては、ユーザインタフェースエンジン428は、次いで、識別されたジェスチャでの、手の第1の指および手の第2の指が閾値時間内に挟持配置を形成する特定の回数に等しい、第1の入力文字にマッピングされた選択番号に基づいて、第1の入力文字の選択を特定することができる。言い換えると、文字「a」、「b」、および「c」がそれぞれ第2の指に割り当てられている場合、個別のセットの基数は3に等しくなり得る。したがって、文字「a」は番号1にマッピングすることができ、文字「b」は番号2にマッピングすることができ、文字「c」は番号3にマッピングすることができる。ジェスチャ検出器424が、識別されたジェスチャにおいて、3回の別個の挟持配置を識別した場合、ユーザインタフェースエンジン428は、所望の入力文字が文字「c」であると特定することができる。
他の例では、ユーザインタフェースエンジン428は、識別されたジェスチャでの、手の第1の指および手の第2の指が閾値時間内に挟持配置を形成する特定の回数を、別個のセットの基数で割ることにより、余りを伴う商を計算することができる。次いで、ユーザインタフェースエンジン428は、余りに等しい、第1の入力文字にマッピングされた選択番号に基づいて、第1の入力文字の選択を特定することができる。言い換えると、文字「a」、「b」、および「c」がそれぞれ第2の指に割り当てられている場合、個別のセットの基数は3に等しくなり得る。したがって、文字「a」は番号1にマッピングすることができ、文字「b」は番号2にマッピングすることができ、文字「c」は番号0にマッピングすることができる。ジェスチャ検出器424が、識別されたジェスチャにおいて、4回の別個の挟持配置を識別した場合、ユーザインタフェースエンジン428は、別個の挟持配置(すなわち、4)を別個のセットの基数(すなわち、3)で割った商を1、余りを1と計算することができる。ユーザインタフェースエンジン428は、余りが1で、文字「a」が番号1にマッピングされていることを考慮して、所望の入力文字が文字「a」であると特定することができる。
場合によっては、ジェスチャ検出器424が閾値時間内にジェスチャを検出している間、描画エンジン422は、閾値期間内に手の第1の指が有しかつ手の第2の指が挟持配置を形成する現在の回数に基づいて選択されることになる、手の第2の指に割り当てられた1つまたは複数の入力文字のうちの現在の入力文字を描画することができる。たとえば、文字「a」、「b」、および「c」がそれぞれ第2の指に割り当てられている例において、描画エンジン422は、第1の指および第2の指が第1の挟持配置を形成すると、HMD112の電子ディスプレイ203上に出力するために、文字「a」を描画することができる。ジェスチャ検出器424が、閾値期間内に挟持配置の解除およびそれに続くさらなる挟持配置を検出した場合、描画エンジン422は、文字「a」の描画を文字「b」の描画に置き換えることができ、閾値時間が経過するまで置換えが続く。
画像取込みデバイス138が両手を含む画像データを取り込む場合、ユーザインタフェースエンジン428は、第2の手に対して割当てプロセスを繰り返すことができる。たとえば、ユーザインタフェースエンジン428は、第1の手の様々な指に別個の入力文字のセットを割り当てることに加えて、第2の手の複数本の指のうちの1本または複数本の指のそれぞれに、別個の入力文字のセットを割り当てることができる。このようにして、それぞれの手の親指を選択用指として指定し、それぞれの手の残りの指で、システムのテキスト入力オプションを実現することができる。
場合によっては、ユーザが、どの指がどの文字を作り出すことになるかを認識する助けとなるように、描画エンジン422は、人工現実コンテンツ内の手の仮想表現に重畳する、手の複数本の指のうちの1本または複数本に割り当てられた1つまたは複数の文字を描画することができる。描画におけるかかる文字の順序は、ユーザインタフェースエンジン428が特定の文字を選択するために、ジェスチャ検出器424が検出しなければならない別個の挟持配置の数に相当し得る。
文字のみ、または文字と数字との組合せが、一方または両方の手の指に割り当てられる例では、追加のジェスチャのエントリが、記号、スペース文字、またはバックスペース文字などの特殊文字のエントリ用に、ジェスチャライブラリ430内に含まれ得る。かかる例では、ジェスチャ検出器424は、画像取込みデバイス138によって取り込まれた画像データから、第2のジェスチャを識別することができる。ユーザインタフェースエンジン428は、1つまたは複数の特殊な入力文字を第2のジェスチャに割り当て、識別された第2のジェスチャに応答して、第2のジェスチャに割り当てられた1つまたは複数の特殊な入力文字のうちの、第1の特殊な入力文字の選択を処理することができる。
場合によっては、閾値時間は動的であり得る。たとえば、ジェスチャ検出器424は、ジェスチャ検出器424が最新の挟持配置を識別した後の特定の時間である、閾値時間を定義することができる。他の例では、ジェスチャ検出器424は、ジェスチャ検出器424が第1の指と第2の指との間での挟持配置以外の新しいジェスチャを識別すると終了するものとして、閾値時間を定義することができる。たとえば、ジェスチャ検出器424が、挟持配置を形成する第1の指および第2の指の第1のジェスチャを5回別個に検出し、次いでジェスチャ検出器424が、第1のジェスチャに与えられた事前定義された閾値時間内に、挟持配置を形成する手の第1の指および第3の指の第2のジェスチャを検出する場合、ジェスチャ検出器424は、第1のジェスチャの入力時間を動的に打ち切ることができ、ユーザインタフェースエンジン428は、番号5にマッピングされた入力文字を、入力文字として選択することができる。次いで、ジェスチャ検出器424は、第2のジェスチャの画像データの監視を開始し、第1の指および第3の指が挟持配置を形成する別個の回数を特定することができる。このようにして、HMD112は、テキストエントリ処理をより迅速に進めることができる。
図5Aおよび図5Bは、本開示の技法による、仮想キーボードを出力し、仮想キーボードの仮想キーに相当する場所での挟持配置の形成を検出するよう構成された、例示的な人工現実システムを示す図である。図5のHMD512は、図1Aおよび図1BのHMD112のいずれの例でもあり得る。HMD512は、図1A、図1Bの人工現実システム10、20などの人工現実システムの一部であり得るか、または本明細書に記載の技法を実施するよう構成された、独立型の携帯人工現実システムとして動作することができる。以下の記載は、様々な動作を実行するHMD512について説明しているが、HMD512に接続されたコンソール、またはコンソールもしくはHMD512内の特定のエンジンが、本明細書で説明されている様々な機能を実行してもよい。たとえば、HMD512内部の描画エンジンまたはHMD512に接続されているコンソールは、描画動作を実行することができ、HMD512内部のジェスチャ検出器またはHMD512に接続されているコンソールは、画像データを分析し、挟持配置を形成する手632Aまたは632Bの指の動きを、本明細書に記載の技法のうちの1つまたは複数にしたがって検出することができる。
図5Aでは、HMD512の画像取込みデバイス538は、画像取込みデバイス538の視野530内にある実世界の物理的環境内の物体を表す画像データを取り込む。視野530は、通常、HMD512の観察視点に対応する。図5Aに示されている例などのいくつかの例では、人工現実アプリケーションは、視野530内にあるユーザ510の手532の部分を、人工現実コンテンツ522内の仮想背景526の上に重畳される仮想の手536として描画する。他の例では、人工現実アプリケーションは、複合現実および/または拡張現実を含む人工現実コンテンツ522内で、ユーザ510の手532の実世界画像を提示することができる。いずれの例においても、ユーザ510は、視野530内にあるユーザの手532の部分を、人工現実コンテンツ522内の物体として観察することができる。図5Aの例では、人工現実コンテンツ522は、文字「n」が割り当てられた仮想キー540Aを含む複数の仮想キーを有する、仮想キーボード560も有している。この例では、仮想キーボード560は、切れ目のないQWERTY配列キーボードの仮想表現である。
HMD512は、仮想キーボード560を、仮想キーボードが手532の配置を写し出すように手のひらを上に向けている仮想の手536の上に位置していると見えるように、描画することができる。HMD512は、仮想の手536の親指を、親指が仮想キーボード560より上に伸びて見えるように描画することができ、一方HMD512は、仮想の手536の残りの指を、残りの指が仮想キーボード560より下にあると見えるように描画することができる。したがって、HMD512が、挟持配置を形成する手532の親指および別の指の動きを検出すると、HMD512は、親指および追加の指の動きが、挟持配置間に仮想キーボード560がある状態で挟持配置を形成するように、動きを描画する。
図5Bでは、HMD512の画像取込みデバイス538は、挟持配置を形成する、手532の第1の指および第2の指(たとえば、親指および人差し指)の動きを含むジェスチャを実行する、ユーザ510の手532の画像データを取り込む。物理的環境内の所与の場所で取り込まれた手532の画像データに基づいて、HMD512は、人工現実環境内の対応する場所で人工現実コンテンツ522に重畳される、仮想の手536を描画することができる。画像データからジェスチャを検出すると、HMD512は、挟持配置にあるときの2本の指の接触点の場所が、仮想キー540Aの場所に相当すると特定することができる。したがって、HMD512は、ユーザ入力である仮想キー540A、すなわち文字「n」の選択を処理することができる。次いで、HMD512は、人工現実コンテンツ522内に、選択された文字「n」を含むように、テキスト欄550を描画して出力することができる。HMD512はまた、選択された仮想キーのさらなる視覚的表示を提供するために、仮想キー540Aの配色を反転することになどよって、仮想キー540Aの塗りつぶしまたはパターンが、仮想キーボード560の残りの仮想キーと相異なるように、仮想キー540Aを描画することもできる。
図6Aおよび図6Bは、本開示の技法による、分割された仮想キーボードを出力し、分割された仮想キーボードの仮想キーに相当する場所での挟持配置の形成を検出するよう構成された、例示的な人工現実システムを示す図である。図6のHMD612は、図1Aおよび図1BのHMD112のいずれの例でもあり得る。HMD612は、図1A、図1Bの人工現実システム10、20などの人工現実システムの一部であり得るか、または本明細書に記載の技法を実施するよう構成された、独立型の携帯人工現実システムとして動作することができる。以下の記載は、様々な動作を実行するHMD612について説明しているが、HMD612に接続されたコンソール、またはコンソールもしくはHMD612内の特定のエンジンが、本明細書で説明されている様々な機能を実行してもよい。たとえば、HMD612内部の描画エンジンまたはHMD612に接続されているコンソールは、描画動作を実行することができ、HMD612内部のジェスチャ検出器またはHMD612に接続されているコンソールは、画像データを分析し、挟持配置を形成する手632Aまたは632Bの指の動きを、本明細書に記載の技法のうちの1つまたは複数にしたがって検出することができる。
図6Aでは、HMD612の画像取込みデバイス638Aおよび638Bは、画像取込みデバイス638Aおよび638Bの視野630Aおよび630B内にある、実世界の物理的環境内の物体を表す画像データを取り込む。視野630Aおよび630Bは、通常、HMD612の観察視点に対応する。図6Aに示されている例などのいくつかの例では、人工現実アプリケーションは、視野630Aおよび630B内にあるユーザ610の手632Aおよび632Bの部分を、人工現実コンテンツ622内の仮想の手636Aおよび636Bとして描画する。他の例では、人工現実アプリケーションは、複合現実および/または拡張現実を含む人工現実コンテンツ622内で、ユーザ610の手632Aおよび632Bの実世界画像を提示することができる。いずれの例においても、ユーザ610は、視野630Aおよび630B内にあるユーザの手632Aおよび632Bの部分を、人工現実コンテンツ622内の物体として観察することができる。図6Aの例では、人工現実コンテンツ622はまた、人工現実コンテンツ622の背景626の上に重畳された、手632Aおよび632Bのそれぞれ用に、それぞれ仮想キーボード660Aおよび660Bも有している。この例では、仮想キーボード660Aおよび660Bは、文字「z」が割り当てられた仮想キー640Aおよび文字「k」が割り当てられた仮想キー640Bを含む、複数の仮想キーを有する分割されたQWERTY配列キーボードの、2つの半分の仮想表現である。
HMD612は、仮想キーボードを、仮想キーボード660Aが仮想の手636Aの上に位置していると見えるように、かつ仮想キーボード660Bが仮想の手636Bの上に位置していると見えるように描画することができ、仮想の手のそれぞれは、手632Aおよび632Bそれぞれの配置を写し出すように手のひらを上に向けている。HMD612は、仮想の手636Aおよび636Bの親指を、親指が仮想キーボード660Aおよび660Bのそれぞれより上に伸びて見えるように描画することができ、一方HMD612は、仮想の手636Aおよび636Bの残りの指を、残りの指が仮想キーボード660Aおよび660Bのそれぞれより下にあると見えるように描画することができる。したがって、HMD612が、挟持配置を形成する手632Aおよび632Bのうちの一方の親指および別の指の動きを検出すると、HMD612は、親指および追加の指の動きが、挟持配置間に仮想キーボード660Aまたは660Bのそれぞれ一方がある状態で挟持配置を形成するように、動きを描画する。
図6Aに示されているように、人工現実コンテンツ622はまた、選択ベクトル642Aおよび642Bを有している。HMD612は、手630Aおよび630Bのそれぞれの第1の指の場所を識別し、手630Aおよび630Bのそれぞれの第2の指の場所を識別し、それぞれの手632Aおよび632Bのそれぞれの指の場所を接続するベクトルである選択ベクトル642Aおよび642Bを計算することによって、これらの選択ベクトルを計算することができる。選択ベクトル642Aおよび642Bと仮想キーボード660Aおよび660Bとの交点は、それぞれ、手630Aおよび630Bの指の予測される接触点に相当する。たとえば、HMD612は、選択ベクトル642Aと仮想キーボード660Aとの交点が仮想キー640Aに相当し、選択ベクトル642Bと仮想キーボード660Bとの交点が仮想キー640Bに相当すると特定することができる。HMD612は、対応する手632Aまたは632Bの指が、挟持配置を形成するつもりである場合、どの仮想キーが選択されることになるかについての、さらなる視覚的表示を提供するために、仮想キー640Aおよび640Bの配色を反転することなどによって、仮想キー640Aおよび640Bの塗りつぶしまたはパターンが、仮想キーボード660Aおよび660Bの残りの仮想キーと相異なるように、仮想キー640Aおよび640Bを描画することができる。
図6Bでは、画像取込みデバイス638Aおよび/または638Bは、挟持配置を形成する、手632Bの第1の指および第2の指(たとえば、親指および人差し指)の動きを含むジェスチャを実行する、ユーザ610の手632Bの画像データを取り込む。物理的環境内の所与の場所で取り込まれた手632Bの画像データに基づいて、HMD612は、人工現実環境内の対応する場所で人工現実コンテンツ622に重畳される、仮想の手636Bを描画することができる。画像データからジェスチャを検出すると、HMD612は、挟持配置にあるときの手632Bの2本の指の接触点の場所が、仮想キー640Bの場所に相当すると特定することができる。したがって、HMD612は、ユーザ入力である仮想キー640B、すなわち文字「k」の選択を処理することができる。次いで、HMD612は、人工現実コンテンツ622内に、選択された文字「k」を含むように、テキスト欄650を描画して出力することができる。
図7Aおよび図7Bは、本開示の技法による、挟持配置の形成を特定の回数検出し、挟持配置に関与する特定の指および挟持配置の形成が検出された特定の回数に基づく、入力文字をユーザ入力として受け取るよう構成された、例示的な人工現実システムを示す図である。図7のHMD712は、図1Aおよび図1BのHMD112のいずれの例でもあり得る。HMD712は、図1A、図1Bの人工現実システム10、20などの人工現実システムの一部であり得るか、または本明細書に記載の技法を実施するよう構成された、独立型の携帯人工現実システムとして動作することができる。以下の記載は、様々な動作を実行するHMD712について説明しているが、HMD712に接続されたコンソール、またはコンソールもしくはHMD712内の特定のエンジンが、本明細書で説明されている様々な機能を実行してもよい。たとえば、HMD712内部の描画エンジンまたはHMD712に接続されているコンソールは、描画動作を実行することができ、HMD712内部のジェスチャ検出器またはHMD712に接続されているコンソールは、画像データを分析し、挟持配置を形成する手732Aまたは732Bの指の動きを、本明細書に記載の技法のうちの1つまたは複数にしたがって検出することができる。
図7Aでは、HMD712の画像取込みデバイス738Aおよび738Bは、画像取込みデバイス738Aおよび738Bの視野730Aおよび730B内にある、実世界の物理的環境内の物体を表す画像データを取り込む。視野730Aおよび730Bは、通常、HMD712の観察視点に対応する。図7Aに示されている例などのいくつかの例では、人工現実アプリケーションは、視野730Aおよび730B内にあるユーザ710の手732Aおよび732Bの部分を、人工現実コンテンツ722内の背景726の上に重畳される、仮想の手736Aおよび736Bとして描画する。他の例では、人工現実アプリケーションは、複合現実および/または拡張現実を含む人工現実コンテンツ722内で、ユーザ710の手732Aおよび732Bの実世界画像を提示することができる。いずれの例においても、ユーザ710は、視野730Aおよび730B内にあるユーザの手732Aおよび732Bの部分を、人工現実コンテンツ722内の物体として観察することができる。
図7Aの例では、人工現実コンテンツ722は、入力文字セット740A~740H(総称して「入力文字セット740」)も有する。本明細書に記載の技法によれば、HMD712は、画像取込みデバイス738Aおよび738Bによって取り込まれた画像データ内で、手のひらを上に向けた手732Aおよび732Bを検出することができる。HMD712は、入力文字セット740のうちの1つを仮想の手736Aおよび736Bの指のうちの一部に割り当て、少なくとも1本の指(たとえば、仮想の手736Aおよび736Bのそれぞれの親指)を、入力文字を割り当てることなく、仮想の手736Aおよび736Bごとの入力選択する指となるように残すことができる。次いで、HMD712は、仮想の手736Aおよび736Bのそれぞれの指に割り当てられた特定の入力文字を描画することができる。
図7Bでは、画像取込みデバイス738Aおよび/または738Bは、閾値期間内に特定の回数挟持配置を形成する、手732Aの第1の指および第2の指(たとえば、親指および中指)の動きを含むジェスチャを実行する、ユーザ710の手732Aの画像データを取り込む。HMD712は、第1の挟持配置の検出から始めて、手732Aが、入力選択する指(すなわち、親指)および入力文字セット740Bが割り当てられた指(すなわち、中指)を用いて、閾値時間内に別個に2回挟持配置を形成したことを検出することができる(すなわちHMD712は、手732Aが、挟持配置を形成し、挟持配置を解除し、次いでもう1回挟持配置を形成するのを検出する)。HMD712は、挟持配置に関与する指への入力文字セット740Bの割り当て、および手732Aが挟持配置を形成した別個の回数に基づいて、選択された入力文字が文字「e」であると特定することができる。したがって、HMD712は、ユーザ入力である文字「e」の選択を受け取ることができる。次いで、HMD712は、人工現実コンテンツ722内に、選択された文字「e」を含むように、テキスト欄750を描画して出力することができる。図示されていないが、HMD712が第1の挟持配置の形成を検出した後で、HMD712が第2の挟持配置の形成を検出する前に、HMD712は、人工現実コンテンツ722内に、文字「d」を含むようにテキスト欄750を描画および出力することができ、手732Aの第2の挟持配置の形成を検出すると、文字「d」を文字「e」に置き換える。
図8は、本明細書に記載の技法による、仮想キーボードを出力し、仮想キーボードの仮想キーに相当する場所での挟持配置の形成を検出するよう構成された人工現実システムの、例示的な技法を示す流れ図である。図1より、例示的な動作は、HMD112によって単独で、またはコンソール106と組み合わせて実行され得る。以下は、処理ステップであるが、この開示の技法にしたがって実行される処理の他の例は、追加のステップを含む場合があるか、または下記で列挙されるステップの一部を含まない場合がある。以下の記載は、様々な動作を実行するHMD112について説明しているが、HMD112に接続されたコンソール(たとえばコンソール106)、またはコンソール106もしくはHMD112内の特定のエンジンが、本明細書で説明されている様々な機能を実行してもよい。たとえば、HMD112内部の描画エンジンまたはHMD112に接続されているコンソール106は、描画動作を実行することができ、HMD112内部のジェスチャ検出器またはHMD112に接続されているコンソール106は、画像データを分析し、挟持配置を形成する手の指の動きを、本明細書に記載の技法のうちの1つまたは複数にしたがって検出することができる。
本明細書に記載の技法によれば、HMD112、または他の画像取込みデバイス(図1Bのカメラ102など)は、物理的環境を表す画像データを取り込む(802)。HMD112は、人工現実コンテンツ、および人工現実コンテンツに重畳する複数の仮想キーを有する仮想キーボードを描画する(804)。次いで、HMD112は、人工現実コンテンツおよび仮想キーボードを出力する(806)。HMD112は、画像データからジェスチャを識別し、このジェスチャは、挟持配置を形成する手の第1の指および手の第2の指の動きを含む(808)。挟持配置にあるときの第1の指と第2の指との接触点は、仮想キーボードの複数の仮想キーのうちの、第1の仮想キーの場所に相当する。したがって、HMD112は、識別されたジェスチャに応答して、第1の仮想キーの選択を処理する(810)。
図9は、本開示の技法による、挟持配置の形成を特定の回数検出し、挟持配置に関与する特定の指および挟持配置の形成が検出された特定の回数に基づく、入力文字をユーザ入力として受け取るよう構成された例示的な人工現実システムの、例示的な技法を示す流れ図である。図1より、例示的な動作は、HMD112によって単独で、またはコンソール106と組み合わせて実行され得る。以下は、処理ステップであるが、この開示の技法にしたがって実行される処理の他の例は、追加のステップを含む場合があるか、または下記で列挙されるステップの一部を含まない場合がある。以下の記載は、様々な動作を実行するHMD112について説明しているが、HMD112に接続されたコンソール(たとえばコンソール106)、またはコンソール106もしくはHMD112内の特定のエンジンが、本明細書で説明されている様々な機能を実行してもよい。たとえば、HMD112内部の描画エンジンまたはHMD112に接続されているコンソール106は、描画動作を実行することができ、HMD112内部のジェスチャ検出器またはHMD112に接続されているコンソール106は、画像データを分析し、挟持配置を形成する手の指の動きを、本明細書に記載の技法のうちの1つまたは複数にしたがって検出することができる。
本明細書に記載の技法によれば、HMD112、または他の画像取込みデバイス(図1Bのカメラ102など)は、物理的環境を表す画像データを取り込む(902)。HMD112は、人工現実コンテンツを出力する(904)。HMD112は、画像データからジェスチャを識別することができ、このジェスチャは、閾値時間内に特定の回数挟持配置を形成する、手の第1の指および手の第2の指の動きを含む(906)。HMD112は、1つまたは複数の入力文字を、手の複数本の指のうちの1本または複数本に割り当てる(908)。HMD112は、識別されたジェスチャに応答して、手の第2の指に割り当てられた1つまたは複数の入力文字のうちの、第1の入力文字の選択を処理する(910)。
この開示で説明される技法は、少なくとも部分的に、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せで実施され得る。たとえば、説明された技法の様々な態様は、1つもしくは複数のマイクロプロセッサ、DSP、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、または他の任意の同等の集積型または離散型論理回路ばかりでなく、かかる構成要素の任意の組合せを含む、1つまたは複数のプロセッサ内で実施され得る。用語「プロセッサ」または「処理回路」は、概して、単独で、もしくは他の論理回路と組み合わせた、前述の論理回路のいずれか、または他の任意の同等の回路を指すことができる。ハードウェアを備える制御ユニットはまた、この開示の1つまたは複数の技法を実行することができる。
かかるハードウェア、ソフトウェア、およびファームウェアは、この開示で説明されている様々な動作および機能をサポートするために、同じデバイス内または別個のデバイス内に実装され得る。加えて、説明されているユニット、モジュール、または構成要素のいずれも、一体的に、または離散的であるが相互運用可能な論理デバイスとして別々に実装され得る。モジュールまたはユニットとしての様々な特徴の記述は、様々な機能的側面を強調することが意図されており、かかるモジュールまたはユニットが、別々のハードウェアまたはソフトウェア構成要素で実現される必要があることを必ずしも含意しない。それどころか、1つまたは複数のモジュールまたはユニットに関連する機能は、別々のハードウェアもしくはソフトウェア構成要素によって実行されるか、または共通もしくは別々のハードウェアもしくはソフトウェア構成要素内に統合され得る。
この開示で説明されている技法はまた、命令を格納するコンピュータ可読記憶媒体などのコンピュータ可読媒体内で、具現化されるかまたは符号化され得る。コンピュータ可読記憶媒体内に組み込まれたまたは符号化された命令は、たとえば、命令が実行されるときに、プログラム可能なプロセッサまたは他のプロセッサに方法を実行させることができる。コンピュータ可読記憶媒体には、ランダムアクセスメモリ(RAM)、読取り専用メモリ(ROM)、プログラム可能な読取り専用メモリ(PROM)、消去可能でプログラム可能な読取り専用メモリ(EPROM)、電子的に消去可能でプログラム可能な読取り専用メモリ(EEPROM)、フラッシュメモリ、ハードディスク、CD-ROM、フロッピディスク、カセット、磁気媒体、光学媒体、または他のコンピュータ可読媒体が含まれ得る。
本明細書で様々な例として説明されるように、本開示の技法は、人工現実システムを含むか、または人工現実システムと組み合わせて実施され得る。説明されたように、人工現実は、ユーザに提示する前に何らかのやり方で調整された現実の形式であり、たとえば、仮想現実(VR)、拡張現実(AR)、複合現実(MR)、ハイブリッド現実、またはそれらの何らかの組合せおよび/もしくは派生的なものが含まれ得る。人工現実コンテンツには、全面的に生成されたコンテンツ、または取り込まれたコンテンツ(たとえば、実世界の写真)と組み合わせて生成されたコンテンツが含まれ得る。人工現実コンテンツは、ビデオ、オーディオ、触覚フィードバック、またはそれらの何らかの組合せを含むことができ、これらのいずれかが、単一チャネルまたは複数チャネル(観察者に対して3次元効果を生成する立体式ビデオなど)で提示され得る。さらに、いくつかの実施形態では、人工現実は、アプリケーション、製品、アクセサリ、サービス、またはそれらの何らかの組合せに付随する場合があり、たとえば、人工現実内でコンテンツを作成するために使用され、かつ/または人工現実内で使用される(たとえば、人工現実内で活動を行う)。人工現実コンテンツを提供する人工現実システムは、ホストコンピュータシステムに接続されたヘッドマウントディスプレイ(HMD)、独立型HMD、携帯デバイスもしくはコンピュータ処理システム、または1人もしくは複数人の観察者に人工現実コンテンツを提供することができる他の任意のハードウェアプラットフォームを含む、様々なプラットフォーム上に実装され得る。
本開示の様々な例が説明されてきた。説明されたシステム、動作、または機能の任意の組合せが考えられる。こうした例および他の例は、添付の特許請求の範囲内にある。
Claims (20)
- 物理的環境を表す画像データを取り込むよう構成される、画像取込みデバイスと、
人工現実コンテンツを出力するよう構成される、ヘッドマウントディスプレイ(HMD)と、
前記画像データから、閾値時間内に特定の回数挟持配置を形成する、手の第1の指および前記手の第2の指の動きを含む、ジェスチャを識別するよう構成される、ジェスチャ検出器と、
1つまたは複数の入力文字を、前記手の複数本の指のうちの1本または複数本に割り当て、前記識別されたジェスチャに応答して、前記手の前記第2の指に割り当てられた前記1つまたは複数の入力文字のうちの、第1の入力文字の選択を処理するよう構成される、ユーザインタフェースエンジンと
を備える、人工現実システム。 - 前記手の前記複数本の指のうちの前記1本または複数本に割り当てられた前記1つまたは複数の文字を、前記手の画像に重畳して描画するよう構成される、描画エンジンをさらに備える、請求項1に記載の人工現実システム。
- 前記ユーザインタフェースエンジンが、前記1つまたは複数の入力文字を割り当てるために、前記手の前記複数本の指のうちの前記1本または複数本の指のそれぞれに、別個の入力文字のセットを割り当てるよう構成される、請求項1に記載の人工現実システム。
- 前記手が、第1の手を含み、前記ユーザインタフェースエンジンがさらに、第2の手の複数本の指のうちの1本または複数本の指のそれぞれに、別個の入力文字のセットを割り当てるよう構成される、請求項3に記載の人工現実システム。
- 前記手の前記第2の指に割り当てられる前記1つまたは複数の入力文字が、別個の入力文字のセットを含み、前記ユーザインタフェースエンジンがさらに、
前記手の前記第2の指に割り当てられた前記別個の入力文字のセットの、前記1つまたは複数の入力文字のそれぞれを、前記別個のセットの基数以下の選択番号にマッピングするよう構成される、請求項1に記載の人工現実システム。 - 前記第1の入力文字の前記選択を受け取るために、前記ユーザインタフェースエンジンが、
前記識別されたジェスチャでの、前記手の前記第1の指および前記手の前記第2の指が前記閾値時間内に前記挟持配置を形成する前記特定の回数に等しい、前記第1の入力文字にマッピングされた前記選択番号に基づいて、前記第1の入力文字の前記選択を特定するよう構成される、請求項5に記載の人工現実システム。 - 前記第1の入力文字の前記選択を受け取るために、前記ユーザインタフェースエンジンが、
前記識別されたジェスチャでの、前記手の前記第1の指および前記手の前記第2の指が前記閾値時間内に前記挟持配置を形成する前記特定の回数を、前記別個のセットの前記基数で割ることにより、余りを伴う商を計算し、かつ
前記余りに等しい、前記第1の入力文字にマッピングされた前記選択番号に基づいて、前記第1の入力文字の前記選択を特定する
よう構成される、請求項5に記載の人工現実システム。 - 前記ジェスチャ中に、前記閾値期間内に前記手の前記第1の指が有しかつ前記手の前記第2の指が前記挟持配置を形成する現在の回数に基づいて選択されることになる、前記手の前記第2の指に割り当てられた前記1つまたは複数の入力文字のうちの現在の入力文字を描画するよう構成される描画エンジンをさらに備える、請求項1に記載の人工現実システム。
- 前記ジェスチャが第1のジェスチャを含み、
前記ジェスチャ検出器がさらに、前記画像データから第2のジェスチャを識別するよう構成され、かつ
前記ユーザインタフェースエンジンが、1つまたは複数の特殊な入力文字を前記第2のジェスチャに割り当て、前記識別された第2のジェスチャに応答して、前記第2のジェスチャに割り当てられた前記1つまたは複数の特殊な入力文字のうちの、第1の特殊な入力文字の選択を処理するよう構成される、
請求項1に記載の人工現実システム。 - 前記1つまたは複数の入力文字が、文字、数字、記号、またはヌル文字、のうちの1つまたは複数を含む、請求項1に記載の人工現実システム。
- 前記画像取込みデバイスが、前記HMD内に統合されている、請求項1に記載の人工現実システム。
- 人工現実システムの画像取込みデバイスによって、物理的環境を表す画像データを取り込むことと、
前記人工現実システムのヘッドマウントディスプレイ(HMD)によって、人工現実コンテンツを出力することと、
前記画像データから、閾値時間内に特定の回数挟持配置を形成する、手の第1の指および前記手の第2の指の動きを含む、ジェスチャを識別することと、
1つまたは複数の入力文字を、前記手の複数本の指のうちの1本または複数本に割り当てることと、
前記識別されたジェスチャに応答して、前記手の前記第2の指に割り当てられた前記1つまたは複数の入力文字のうちの、第1の入力文字の選択を処理することと
を含む、方法。 - 前記手の前記複数本の指のうちの前記1本または複数本に割り当てられた前記1つまたは複数の文字を、前記手の画像に重畳して描画することをさらに含む、請求項12に記載の方法。
- 前記手が第1の手を含み、前記1つまたは複数の入力文字を割り当てることが、
別個の入力文字のセットを、前記第1の手の前記複数本の指のうちの前記1本または複数本の指のそれぞれに割り当てることと、
別個の入力文字のセットを、第2の手の複数本の指のうちの1本または複数本の指のそれぞれに割り当てることと
を含む、請求項12に記載の方法。 - 前記手の前記第2の指に割り当てられる前記1つまたは複数の入力文字が、別個の入力文字のセットを含み、ユーザインタフェースエンジンがさらに、
前記手の前記第2の指に割り当てられた前記別個の入力文字のセットの、前記1つまたは複数の入力文字のそれぞれを、前記別個のセットの基数以下の選択番号にマッピングするよう構成される、請求項12に記載の方法。 - 前記第1の入力文字の前記選択を受け取ることが、
前記識別されたジェスチャでの、前記手の前記第1の指および前記手の前記第2の指が前記閾値時間内に前記挟持配置を形成する前記特定の回数に等しい、前記第1の入力文字にマッピングされた前記選択番号に基づいて、前記第1の入力文字の前記選択を特定することを含む、請求項15に記載の方法。 - 前記第1の入力文字の前記選択を受け取ることが、
前記識別されたジェスチャでの、前記手の前記第1の指および前記手の前記第2の指が前記閾値時間内に前記挟持配置を形成する前記特定の回数を、前記別個のセットの前記基数で割ることにより、余りを伴う商を計算することと、
前記余りに等しい前記第1の入力文字にマッピングされた前記選択番号に基づいて、前記第1の入力文字の前記選択を特定することと
を含む、請求項15に記載の方法。 - 前記ジェスチャ中に、前記閾値期間内に前記手の前記第1の指が有しかつ前記手の前記第2の指が前記挟持配置を形成する現在の回数に基づいて選択されることになる、前記手の前記第2の指に割り当てられた前記1つまたは複数の入力文字のうちの現在の入力文字を描画することをさらに含む、請求項12に記載の方法。
- 前記ジェスチャが第1のジェスチャを含み、前記方法がさらに、
前記画像データから第2のジェスチャを識別することと、
1つまたは複数の特殊な入力文字を、前記第2のジェスチャに割り当てることと、
前記識別された第2のジェスチャに応答して、前記第2のジェスチャに割り当てられた前記1つまたは複数の特殊な入力文字のうちの、第1の特殊な入力文字の選択を処理することと
を含む、請求項12に記載の方法。 - 命令を有する非一時的なコンピュータ可読媒体であって、前記命令は、実行されると、人工現実システムの1つまたは複数のプロセッサに、
物理的環境を表す画像データを取り込ませ、
人工現実コンテンツを出力させ、
前記画像データから、閾値時間内に特定の回数挟持配置を形成する、手の第1の指および前記手の第2の指の動きを含む、ジェスチャを識別させ、
1つまたは複数の入力文字を、前記手の複数本の指のうちの1本または複数本に割り当てさせ、かつ
前記識別されたジェスチャに応答して、前記手の前記第2の指に割り当てられた前記1つまたは複数の入力文字のうちの、第1の入力文字の選択を処理させる
非一時的なコンピュータ可読媒体。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/435,139 US10955929B2 (en) | 2019-06-07 | 2019-06-07 | Artificial reality system having a digit-mapped self-haptic input method |
US16/435,139 | 2019-06-07 | ||
PCT/US2020/036580 WO2020247908A1 (en) | 2019-06-07 | 2020-06-08 | Artificial reality system having a digit-mapped self-haptic input method |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2022534639A true JP2022534639A (ja) | 2022-08-03 |
Family
ID=71899887
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2021554715A Pending JP2022534639A (ja) | 2019-06-07 | 2020-06-08 | 指マッピング自己触覚型入力方法を有する人工現実システム |
Country Status (6)
Country | Link |
---|---|
US (1) | US10955929B2 (ja) |
EP (1) | EP3953798A1 (ja) |
JP (1) | JP2022534639A (ja) |
KR (1) | KR20220016984A (ja) |
CN (1) | CN113785262A (ja) |
WO (1) | WO2020247908A1 (ja) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20220050527A1 (en) * | 2020-08-12 | 2022-02-17 | Himax Technologies Limited | Simulated system and method with an input interface |
US11600051B2 (en) * | 2021-04-23 | 2023-03-07 | Google Llc | Prediction of contact points between 3D models |
CN113253908B (zh) * | 2021-06-22 | 2023-04-25 | 腾讯科技(深圳)有限公司 | 按键功能执行方法、装置、设备及存储介质 |
US20230135974A1 (en) * | 2021-11-04 | 2023-05-04 | Microsoft Technology Licensing, Llc | Multi-factor intention determination for augmented reality (ar) environment control |
US11914789B2 (en) * | 2022-01-20 | 2024-02-27 | Htc Corporation | Method for inputting letters, host, and computer readable storage medium |
WO2023155672A1 (en) * | 2022-02-15 | 2023-08-24 | Beijing Source Technology Co., Ltd. | Input device model projecting method, apparatus and system |
US20230384928A1 (en) * | 2022-05-31 | 2023-11-30 | Snap Inc. | Ar-based virtual keyboard |
US11947122B1 (en) * | 2022-12-08 | 2024-04-02 | Varjo Technologies Oy | Tracking system and method incorporating selective control of light sources of controller |
Family Cites Families (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150261429A1 (en) * | 2014-01-02 | 2015-09-17 | Benjamin Firooz Ghassabian | Systems to enhance data entry in mobile and fixed environment |
GB0801396D0 (en) | 2008-01-25 | 2008-03-05 | Bisutti Giovanni | Electronic apparatus |
JP5751775B2 (ja) | 2010-09-01 | 2015-07-22 | キヤノン株式会社 | 撮像装置、その制御方法及びプログラム並びに記録媒体 |
US9116616B2 (en) | 2011-02-10 | 2015-08-25 | Blackberry Limited | Portable electronic device and method of controlling same |
JP2012248067A (ja) * | 2011-05-30 | 2012-12-13 | Canon Inc | 情報入力装置、その制御方法、および制御プログラム |
JP5715007B2 (ja) | 2011-08-29 | 2015-05-07 | 京セラ株式会社 | 表示機器 |
CH705918A2 (de) * | 2011-12-19 | 2013-06-28 | Ralf Trachte | Feld-Analysen für flexible Computer-Eingabe. |
US8902198B1 (en) | 2012-01-27 | 2014-12-02 | Amazon Technologies, Inc. | Feature tracking for device input |
GB2500416B8 (en) * | 2012-03-21 | 2017-06-14 | Sony Computer Entertainment Europe Ltd | Apparatus and method of augmented reality interaction |
US9535603B2 (en) * | 2013-03-14 | 2017-01-03 | Carl F. Andersen | Columnar fitted virtual keyboard |
JP2014238725A (ja) | 2013-06-07 | 2014-12-18 | シャープ株式会社 | 情報処理装置および制御プログラム |
US10139906B1 (en) * | 2014-01-29 | 2018-11-27 | Guiyu Bai | Ring human-machine interface |
US9524142B2 (en) | 2014-03-25 | 2016-12-20 | Honeywell International Inc. | System and method for providing, gesture control of audio information |
US20160004300A1 (en) * | 2014-07-07 | 2016-01-07 | PinchVR Inc. | System, Method, Device and Computer Readable Medium for Use with Virtual Environments |
EP3289430B1 (en) * | 2015-04-27 | 2019-10-23 | Snap-Aid Patents Ltd. | Estimating and using relative head pose and camera field-of-view |
US10388071B2 (en) | 2016-03-25 | 2019-08-20 | Sony Interactive Entertainment Inc. | Virtual reality (VR) cadence profile adjustments for navigating VR users in VR environments |
US20180329209A1 (en) | 2016-11-24 | 2018-11-15 | Rohildev Nattukallingal | Methods and systems of smart eyeglasses |
US11243293B2 (en) | 2017-02-07 | 2022-02-08 | Samsung Electronics Company, Ltd. | Radar-based system for sensing touch and in-the-air interactions |
KR102160297B1 (ko) | 2017-06-26 | 2020-09-28 | 서울대학교 산학협력단 | 손가락 동작 인식을 이용한 키보드 입력 시스템 및 키보드 입력 방법 |
US11321965B2 (en) * | 2018-07-10 | 2022-05-03 | Dell Products, L.P. | Scalable gesture and eye-gaze tracking in virtual, augmented, and mixed reality (xR) applications |
-
2019
- 2019-06-07 US US16/435,139 patent/US10955929B2/en active Active
-
2020
- 2020-06-08 WO PCT/US2020/036580 patent/WO2020247908A1/en unknown
- 2020-06-08 JP JP2021554715A patent/JP2022534639A/ja active Pending
- 2020-06-08 KR KR1020227000372A patent/KR20220016984A/ko active Search and Examination
- 2020-06-08 CN CN202080031604.6A patent/CN113785262A/zh active Pending
- 2020-06-08 EP EP20750464.8A patent/EP3953798A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
EP3953798A1 (en) | 2022-02-16 |
US20200387229A1 (en) | 2020-12-10 |
KR20220016984A (ko) | 2022-02-10 |
CN113785262A (zh) | 2021-12-10 |
WO2020247908A1 (en) | 2020-12-10 |
US10955929B2 (en) | 2021-03-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113826058B (zh) | 具有自触觉虚拟键盘的人工现实*** | |
US10890983B2 (en) | Artificial reality system having a sliding menu | |
EP3997552B1 (en) | Virtual user interface using a peripheral device in artificial reality environments | |
US11003307B1 (en) | Artificial reality systems with drawer simulation gesture for gating user interface elements | |
US11334212B2 (en) | Detecting input in artificial reality systems based on a pinch and pull gesture | |
JP2022534639A (ja) | 指マッピング自己触覚型入力方法を有する人工現実システム | |
US20200387286A1 (en) | Arm gaze-driven user interface element gating for artificial reality systems | |
US10921879B2 (en) | Artificial reality systems with personal assistant element for gating user interface elements | |
US11086475B1 (en) | Artificial reality systems with hand gesture-contained content window | |
US11422669B1 (en) | Detecting input using a stylus in artificial reality systems based on a stylus movement after a stylus selection action | |
US11043192B2 (en) | Corner-identifiying gesture-driven user interface element gating for artificial reality systems | |
US10852839B1 (en) | Artificial reality systems with detachable personal assistant for gating user interface elements |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20230314 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20240326 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20240409 |