IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ オキュラス ブイアール,エルエルシーの特許一覧

<>
  • 特表-物理キーボード追跡 図1
  • 特表-物理キーボード追跡 図2
  • 特表-物理キーボード追跡 図3
  • 特表-物理キーボード追跡 図4
  • 特表-物理キーボード追跡 図5A
  • 特表-物理キーボード追跡 図5B
  • 特表-物理キーボード追跡 図6A
  • 特表-物理キーボード追跡 図6B
  • 特表-物理キーボード追跡 図7
  • 特表-物理キーボード追跡 図8A
  • 特表-物理キーボード追跡 図8B
  • 特表-物理キーボード追跡 図9
  • 特表-物理キーボード追跡 図10
  • 特表-物理キーボード追跡 図11
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2023-12-12
(54)【発明の名称】物理キーボード追跡
(51)【国際特許分類】
   G06T 7/70 20170101AFI20231205BHJP
   G06V 10/44 20220101ALI20231205BHJP
【FI】
G06T7/70 B
G06V10/44
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2023533741
(86)(22)【出願日】2021-11-29
(85)【翻訳文提出日】2023-07-27
(86)【国際出願番号】 US2021061029
(87)【国際公開番号】W WO2022119779
(87)【国際公開日】2022-06-09
(31)【優先権主張番号】17/108,617
(32)【優先日】2020-12-01
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.ZIGBEE
2.HDMI
3.FIREWIRE
4.BLUETOOTH
5.イーサネット
(71)【出願人】
【識別番号】515046968
【氏名又は名称】メタ プラットフォームズ テクノロジーズ, リミテッド ライアビリティ カンパニー
【氏名又は名称原語表記】META PLATFORMS TECHNOLOGIES, LLC
(74)【代理人】
【識別番号】110002974
【氏名又は名称】弁理士法人World IP
(72)【発明者】
【氏名】シャルシュタイン, ダニエル
(72)【発明者】
【氏名】ハーリング, ジャン
【テーマコード(参考)】
5L096
【Fターム(参考)】
5L096AA06
5L096BA18
5L096CA02
5L096FA33
5L096FA67
5L096GA19
5L096HA07
5L096JA09
(57)【要約】
一実施形態では、方法は、カメラ視点から画像を取り込むステップであって、画像が物理キーボードを描写する、ステップと、画像のピクセルを所定の形状テンプレートと比較することにより、画像内に描写された物理キーボードの1つまたは複数の形状特徴を検出するステップであって、所定の形状テンプレートがキーボードキー間のスペースの視覚的特性を表す、ステップと、物理キーボードに関連付けられたキーボードモデルの所定の形状特徴にアクセスするステップと、(1)物理キーボードの検出された1つまたは複数の形状特徴と、(2)カメラ視点に向かうキーボードモデルの所定の形状特徴の投影との間の比較に基づいて、物理キーボードのポーズを決定するステップとを含む。
【選択図】図5A
【特許請求の範囲】
【請求項1】
コンピューティングデバイスにより、
カメラ視点から画像を取り込むことであって、前記画像が物理キーボードを描写する、取り込むことと、
前記画像のピクセルを所定の形状テンプレートと比較することにより、前記画像内に描写された前記物理キーボードの1つまたは複数の形状特徴を検出することであって、前記所定の形状テンプレートがキーボードキー間のスペースの視覚的特性を表す、検出することと、
前記物理キーボードに関連付けられたキーボードモデルの所定の形状特徴にアクセスすることと、
(1)前記物理キーボードの前記検出された1つまたは複数の形状特徴と、(2)前記カメラ視点に向かう前記キーボードモデルの前記所定の形状特徴の投影との間の比較に基づいて、前記物理キーボードのポーズを決定することと
を含む、方法。
【請求項2】
前記所定の形状テンプレートが、胴体部分および屋根部分を有するT字形テンプレートであり、前記胴体部分が、第1のキーボード列内の2つのキーボードキー間のスペースの視覚的特性を表す、請求項1に記載の方法。
【請求項3】
前記T字形テンプレートの前記屋根部分が、(1)前記第1のキーボード列内の前記2つのキーボードキーに対応する前記第1のキーボード列の一部分と、(2)前記第1のキーボード列に隣接する第2のキーボード内の1つまたは複数のキーボードキーとの間のスペースの視覚的特性を表す、請求項2に記載の方法。
【請求項4】
前記第1のキーボード列が、
キーボードの最上段であって、前記T字形テンプレートの前記屋根部分が、前記第1のキーボード列内の前記2つのキーボードキーの上のスペースの視覚的特性を表すか、または
前記キーボードの最下段であって、前記T字形テンプレートの前記屋根部分が、前記第1のキーボード列内の前記2つのキーボードキーの下のスペースの視覚的特性を表す、
請求項2に記載の方法。
【請求項5】
前記所定の形状テンプレートが、胴体部分および屋根部分を有するT字形テンプレートであり、前記胴体部分が、第1のキーボード列内の第1のキーボードキーと第2のキーボード列内の第2のキーボードキーとの間のスペースの視覚的特性を表し、前記第2のキーボード列が前記第1のキーボード列に隣接し、
前記第1のキーボードキーが前記第1のキーボード列内の最も右側のキーであり、前記第2のキーボードキーが前記第2のキーボード列内の最も右側のキーであり、前記T字形テンプレートの前記屋根部分が、前記第1のキーボードキーおよび前記第2のキーボードキーの右側のスペースの視覚的特性を表すか、または
前記第1のキーボードキーが前記第1のキーボード列内の最も左側のキーであり、前記第2のキーボードキーが前記第2のキーボード列内の最も左側のキーであり、前記T字形テンプレートの前記屋根部分が、前記第1のキーボードキーおよび前記第2のキーボードキーの左側のスペースの視覚的特性を表す、
請求項1に記載の方法。
【請求項6】
前記画像の前記ピクセルを前記所定の形状テンプレートと比較することが、
前記画像を複数のピクセルブロックに分割することであって、各ピクセルブロックが複数のピクセルを含む、分割することと、
前記ピクセルブロックの各々について、
前記ピクセルブロック内の前記複数のピクセルに関連付けられたピクセル強度に基づいて前記ピクセルブロックの視覚的特性を決定することと、
前記ピクセルブロックの前記視覚的特性を、前記キーボードキー間の前記スペースの前記視覚的特性を表す前記所定の形状テンプレートと比較することと、
前記画像の前記ピクセルブロックの前記視覚的特性と前記キーボードキー間の前記スペースの前記視覚的特性を表す前記所定の形状テンプレートとの前記比較に基づいて、前記画像内に描写された前記物理キーボードの前記1つまたは複数の形状特徴を検出することと
を含み、好ましくは、前記ピクセルブロック内の前記複数のピクセルに関連付けられた前記ピクセル強度に基づいて、前記ピクセルブロックの前記視覚的特性を決定することが、
前記ピクセルブロックの少なくとも1つの部分に関連付けられたピクセル強度を前記ピクセルブロックの別の部分と比較して、前記ピクセルブロックの様々な前記部分に関連付けられた前記ピクセル強度の勾配および分散を決定すること
を含む、請求項1から5のいずれか一項に記載の方法。
【請求項7】
前記物理キーボードの前記ポーズと一致するように前記キーボードモデルの表現をレンダリングすること
をさらに含む、請求項1から6のいずれか一項に記載の方法。
【請求項8】
前記物理キーボードに関連付けられた前記キーボードモデルの前記所定の形状特徴にアクセスする前に、
前記物理キーボードの前記検出された1つまたは複数の形状特徴をデータベース内の複数のキーボードモデルの所定の形状特徴と比較することにより、前記複数のキーボードモデルを含む前記データベースから前記キーボードモデルを識別すること
をさらに含む、請求項1から7のいずれか一項に記載の方法。
【請求項9】
前記所定の形状テンプレートが、L字形テンプレートまたはX字形テンプレートである、請求項1に記載の方法。
【請求項10】
カメラ視点から画像を取り込むことであって、前記画像が物理キーボードを描写する、取り込むことと、
前記画像のピクセルを所定の形状テンプレートと比較することにより、前記画像内に描写された前記物理キーボードの1つまたは複数の形状特徴を検出することであって、前記所定の形状テンプレートがキーボードキー間のスペースの視覚的特性を表す、検出することと、
前記物理キーボードに関連付けられたキーボードモデルの所定の形状特徴にアクセスすることと、
(1)前記物理キーボードの前記検出された1つまたは複数の形状特徴と、(2)前記カメラ視点に向かう前記キーボードモデルの前記所定の形状特徴の投影との間の比較に基づいて、前記物理キーボードのポーズを決定することと
を行うように、実行されたときに動作可能なソフトウェアを具現化する1つまたは複数のコンピュータ可読非一時的記憶媒体。
【請求項11】
前記所定の形状テンプレートが、胴体部分および屋根部分を有するT字形テンプレートであり、前記胴体部分が、第1のキーボード列内の2つのキーボードキー間のスペースの視覚的特性を表し、好ましくは、前記T字形テンプレートの前記屋根部分が、(1)前記第1のキーボード列内の前記2つのキーボードキーに対応する前記第1のキーボード列の一部分と、(2)前記第1のキーボード列に隣接する第2のキーボード内の1つまたは複数のキーボードキーとの間のスペースの視覚的特性を表す、請求項10に記載の1つまたは複数のコンピュータ可読非一時的記憶媒体。
【請求項12】
前記画像の前記ピクセルを前記所定の形状テンプレートと比較することが、
前記画像を複数のピクセルブロックに分割することであって、各ピクセルブロックが複数のピクセルを含む、分割することと、
前記ピクセルブロックの各々について、
前記ピクセルブロック内の前記複数のピクセルに関連付けられたピクセル強度に基づいて前記ピクセルブロックの視覚的特性を決定することと、
前記ピクセルブロックの前記視覚的特性を、前記キーボードキー間の前記スペースの前記視覚的特性を表す前記所定の形状テンプレートと比較することと、
前記画像の前記ピクセルブロックの前記視覚的特性と前記キーボードキー間の前記スペースの前記視覚的特性を表す前記所定の形状テンプレートとの前記比較に基づいて、前記画像内に描写された前記物理キーボードの前記1つまたは複数の形状特徴を検出することと
を含み、好ましくは、前記ピクセルブロック内の前記複数のピクセルに関連付けられた前記ピクセル強度に基づいて、前記ピクセルブロックの前記視覚的特性を決定することが、
前記ピクセルブロックの少なくとも1つの部分に関連付けられたピクセル強度を前記ピクセルブロックの別の部分と比較して、前記ピクセルブロックの様々な前記部分に関連付けられた前記ピクセル強度の勾配および分散を決定すること
を含む、請求項10または請求項11に記載の1つまたは複数のコンピュータ可読非一時的記憶媒体。
【請求項13】
1つまたは複数のプロセッサと、前記1つまたは複数のプロセッサと通信する1つまたは複数のコンピュータ可読非一時的記憶媒体とを備えるシステムであって、前記1つまたは複数のコンピュータ可読非一時的記憶媒体が命令を含み、前記命令は、前記1つまたは複数のプロセッサによって実行されると、
カメラ視点から画像を取り込むことであって、前記画像が物理キーボードを描写する、取り込むことと、
前記画像のピクセルを所定の形状テンプレートと比較することにより、前記画像内に描写された前記物理キーボードの1つまたは複数の形状特徴を検出することであって、前記所定の形状テンプレートがキーボードキー間のスペースの視覚的特性を表す、検出することと、
前記物理キーボードに関連付けられたキーボードモデルの所定の形状特徴にアクセスすることと、
(1)前記物理キーボードの前記検出された1つまたは複数の形状特徴と、(2)前記カメラ視点に向かう前記キーボードモデルの前記所定の形状特徴の投影との間の比較に基づいて、前記物理キーボードのポーズを決定することと
を前記システムに実行させる、システム。
【請求項14】
前記所定の形状テンプレートが、胴体部分および屋根部分を有するT字形テンプレートであり、前記胴体部分が、第1のキーボード列内の2つのキーボードキー間のスペースの視覚的特性を表し、好ましくは、前記T字形テンプレートの前記屋根部分が、(1)前記第1のキーボード列内の前記2つのキーボードキーに対応する前記第1のキーボード列の一部分と、(2)前記第1のキーボード列に隣接する第2のキーボード内の1つまたは複数のキーボードキーとの間のスペースの視覚的特性を表す、請求項13に記載のシステム。
【請求項15】
前記画像の前記ピクセルを前記所定の形状テンプレートと比較することが、
前記画像を複数のピクセルブロックに分割することであって、各ピクセルブロックが複数のピクセルを含む、分割することと、
前記ピクセルブロックの各々について、
前記ピクセルブロック内の前記複数のピクセルに関連付けられたピクセル強度に基づいて前記ピクセルブロックの視覚的特性を決定することと、
前記ピクセルブロックの前記視覚的特性を、前記キーボードキー間の前記スペースの前記視覚的特性を表す前記所定の形状テンプレートと比較することと、
前記画像の前記ピクセルブロックの前記視覚的特性と前記キーボードキー間の前記スペースの前記視覚的特性を表す前記所定の形状テンプレートとの前記比較に基づいて、前記画像内に描写された前記物理キーボードの前記1つまたは複数の形状特徴を検出することと
を含み、好ましくは、前記ピクセルブロック内の前記複数のピクセルに関連付けられた前記ピクセル強度に基づいて、前記ピクセルブロックの前記視覚的特性を決定することが、
前記ピクセルブロックの少なくとも1つの部分に関連付けられたピクセル強度を前記ピクセルブロックの別の部分と比較して、前記ピクセルブロックの様々な前記部分に関連付けられた前記ピクセル強度の勾配および分散を決定すること
を含む、請求項13または請求項14に記載のシステム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、一般に、ユーザデバイス上で拡張現実(AR)または仮想現実(VR)のコンテンツをレンダリングすることに関する。本開示は、一般に、AR/VR環境で使用するための入力コントローラに関する。
【背景技術】
【0002】
仮想現実は、外見上現実のまたは物理的な方法でユーザが対話することができる環境(たとえば、3D環境)のコンピュータ生成シミュレーションである。単一のデバイスまたはデバイスのグループであり得る仮想現実システムが、たとえば、仮想現実ヘッドセットまたは何らかの他のディスプレイデバイス上で、ユーザに表示するために、このシミュレーションを生成し得る。シミュレーションは、現実のまたは想像上の環境を模倣するために、画像、音、触覚フィードバック、および/または他の感覚を含み得る。仮想現実がますます顕著になるにつれて、仮想現実の、有用な適用例の範囲は急速に広がっている。仮想現実の最も一般的な適用例は、ゲームまたは他の対話型コンテンツを伴うが、そのすぐ後ろに、エンターテインメントまたはトレーニング目的のための視覚メディアアイテム(たとえば、写真、ビデオ)の視聴など、他の適用例がある。現実の会話および他のユーザ対話をシミュレートするために仮想現実を使用することの実現可能性も検討されている。
【0003】
拡張現実は、コンピュータ生成された感覚入力(たとえば、視覚的、聴覚的)が追加された現実世界または物理世界のビューを提供する。言い換えれば、コンピュータ生成仮想効果は、現実世界のビューを増強または補足することができる。たとえば、仮想現実ヘッドセットまたはヘッドマウントディスプレイ(HMD)上のカメラは、現実世界のシーンを(画像またはビデオとして)取り込み、取り込まれたシーンのコンピュータ生成仮想オブジェクトとの合成を表示することができる。仮想オブジェクトは、たとえば、2次元および/または3次元のオブジェクトであってもよく、静止またはアニメーション化されてもよい。
【発明の概要】
【0004】
本開示の第1の態様によれば、コンピューティングデバイスにより、カメラ視点から画像を取り込むことであって、画像が物理キーボードを描写する、取り込むことと、画像のピクセルを所定の形状テンプレートと比較することにより、画像内に描写された物理キーボードの1つまたは複数の形状特徴を検出することであって、所定の形状テンプレートがキーボードキー間のスペースの視覚的特性を表す、検出することと、物理キーボードに関連付けられたキーボードモデルの所定の形状特徴にアクセスすることと、(1)物理キーボードの検出された1つまたは複数の形状特徴と、(2)カメラ視点に向かうキーボードモデルの所定の形状特徴の投影との間の比較に基づいて、物理キーボードのポーズを決定することとを含む方法が提供される。
【0005】
いくつかの実施形態では、所定の形状テンプレートは、胴体部分および屋根部分を有するT字形テンプレートであり、胴体部分は、第1のキーボード列内の2つのキーボードキー間のスペースの視覚的特性を表す。
【0006】
いくつかの実施形態では、T字形テンプレートの屋根部分は、(1)第1のキーボード列内の2つのキーボードキーに対応する第1のキーボード列の一部分と、(2)第1のキーボード列に隣接する第2のキーボード内の1つまたは複数のキーボードキーとの間のスペースの視覚的特性を表す。
【0007】
いくつかの実施形態では、第1のキーボード列は、キーボードの最上段であって、T字形テンプレートの屋根部分は、第1のキーボード列内の2つのキーボードキーの上のスペースの視覚的特性を表し、またはキーボードの最下段であって、T字形テンプレートの屋根部分は、第1のキーボード列内の2つのキーボードキーの下のスペースの視覚的特性を表す。
【0008】
いくつかの実施形態では、所定の形状テンプレートは、胴体部分および屋根部分を有するT字形テンプレートであり、胴体部分は、第1のキーボード列内の第1のキーボードキーと第2のキーボード列内の第2のキーボードキーとの間のスペースの視覚的特性を表し、第2のキーボード列は第1のキーボード列に隣接し、第1のキーボードキーは第1のキーボード列内の最も右側のキーであり、第2のキーボードキーは第2のキーボード列内の最も右側のキーであり、T字形テンプレートの屋根部分は、第1のキーボードキーおよび第2のキーボードキーの右側のスペースの視覚的特性を表すか、または第1のキーボードキーは第1のキーボード列内の最も左側のキーであり、第2のキーボードキーは第2のキーボード列内の最も左側のキーであり、T字形テンプレートの屋根部分は、第1のキーボードキーおよび第2のキーボードキーの左側のスペースの視覚的特性を表す。
【0009】
いくつかの実施形態では、画像のピクセルを所定の形状テンプレートと比較することは、画像を複数のピクセルブロックに分割することであって、各ピクセルブロックが複数のピクセルを含む、分割することと、ピクセルブロックの各々について、ピクセルブロック内の複数のピクセルに関連付けられたピクセル強度に基づいてピクセルブロックの視覚的特性を決定することと、ピクセルブロックの視覚的特性をキーボードキー間のスペースの視覚的特性を表す所定の形状テンプレートと比較することと、画像のピクセルブロックの視覚的特性と、キーボードキー間のスペースの視覚的特性を表す所定の形状テンプレートとの比較に基づいて、画像内に描写された物理キーボードの1つまたは複数の形状特徴を検出することとを含む。
【0010】
いくつかの実施形態では、ピクセルブロック内の複数のピクセルに関連付けられたピクセル強度に基づいてピクセルブロックの視覚的特性を決定することは、ピクセルブロックの少なくとも1つの部分に関連付けられたピクセル強度をピクセルブロックの別の部分と比較して、ピクセルブロックの様々な部分に関連付けられたピクセル強度の勾配および分散を決定することを含む。
【0011】
いくつかの実施形態では、方法は、物理キーボードのポーズと一致するようにキーボードモデルの表現をレンダリングすることをさらに含む。
【0012】
いくつかの実施形態では、方法は、物理キーボードに関連付けられたキーボードモデルの所定の形状特徴にアクセスする前に、物理キーボードの検出された1つまたは複数の形状特徴をデータベース内の複数のキーボードモデルの所定の形状特徴と比較することにより、複数のキーボードモデルを含むデータベースからキーボードモデルを識別することをさらに含む。
【0013】
いくつかの実施形態では、所定の形状テンプレートは、L字形テンプレートまたはX字形テンプレートである。
【0014】
本開示の第2の態様によれば、カメラ視点から画像を取り込むことであって、画像が物理キーボードを描写する、取り込むことと、画像のピクセルを所定の形状テンプレートと比較することにより、画像内に描写された物理キーボードの1つまたは複数の形状特徴を検出することであって、所定の形状テンプレートがキーボードキー間のスペースの視覚的特性を表す、検出することと、物理キーボードに関連付けられたキーボードモデルの所定の形状特徴にアクセスすることと、(1)物理キーボードの検出された1つまたは複数の形状特徴と、(2)カメラ視点に向かうキーボードモデルの所定の形状特徴の投影との間の比較に基づいて、物理キーボードのポーズを決定することとを行うように、実行されたときに動作可能なソフトウェアを具現化する1つまたは複数のコンピュータ可読非一時的記憶媒体が提供される。
【0015】
いくつかの実施形態では、所定の形状テンプレートは、胴体部分および屋根部分を有するT字形テンプレートであり、胴体部分は、第1のキーボード列内の2つのキーボードキー間のスペースの視覚的特性を表す。
【0016】
いくつかの実施形態では、T字形テンプレートの屋根部分は、(1)第1のキーボード列内の2つのキーボードキーに対応する第1のキーボード列の一部分と、(2)第1のキーボード列に隣接する第2のキーボード内の1つまたは複数のキーボードキーとの間のスペースの視覚的特性を表す。
【0017】
いくつかの実施形態では、画像のピクセルを所定の形状テンプレートと比較することは、画像を複数のピクセルブロックに分割することであって、各ピクセルブロックが複数のピクセルを含む、分割することと、ピクセルブロックの各々について、ピクセルブロック内の複数のピクセルに関連付けられたピクセル強度に基づいてピクセルブロックの視覚的特性を決定することと、ピクセルブロックの視覚的特性をキーボードキー間のスペースの視覚的特性を表す所定の形状テンプレートと比較することと、画像のピクセルブロックの視覚的特性と、キーボードキー間のスペースの視覚的特性を表す所定の形状テンプレートとの比較に基づいて、画像内に描写された物理キーボードの1つまたは複数の形状特徴を検出することとを含む。
【0018】
いくつかの実施形態では、ピクセルブロック内の複数のピクセルに関連付けられたピクセル強度に基づいてピクセルブロックの視覚的特性を決定することは、ピクセルブロックの少なくとも1つの部分に関連付けられたピクセル強度をピクセルブロックの別の部分と比較して、ピクセルブロックの様々な部分に関連付けられたピクセル強度の勾配および分散を決定することを含む。
【0019】
本開示の第3の態様によれば、1つまたは複数のプロセッサと、1つまたは複数のプロセッサと通信する1つまたは複数のコンピュータ可読非一時的記憶媒体とを備えるシステムが提供され、1つまたは複数のコンピュータ可読非一時的記憶媒体が命令を含み、命令は、1つまたは複数のプロセッサによって実行されると、カメラ視点から画像を取り込むことであって、画像が物理キーボードを描写する、取り込むことと、画像のピクセルを所定の形状テンプレートと比較することにより、画像内に描写された物理キーボードの1つまたは複数の形状特徴を検出することであって、所定の形状テンプレートがキーボードキー間のスペースの視覚的特性を表す、検出することと、物理キーボードに関連付けられたキーボードモデルの所定の形状特徴にアクセスすることと、(1)物理キーボードの検出された1つまたは複数の形状特徴と、(2)カメラ視点に向かうキーボードモデルの所定の形状特徴の投影との間の比較に基づいて、物理キーボードのポーズを決定することとをシステムに実行させる。
【0020】
いくつかの実施形態では、所定の形状テンプレートは、胴体部分および屋根部分を有するT字形テンプレートであり、胴体部分は、第1のキーボード列内の2つのキーボードキー間のスペースの視覚的特性を表す。
【0021】
いくつかの実施形態では、T字形テンプレートの屋根部分は、(1)第1のキーボード列内の2つのキーボードキーに対応する第1のキーボード列の一部分と、(2)第1のキーボード列に隣接する第2のキーボード内の1つまたは複数のキーボードキーとの間のスペースの視覚的特性を表す。
【0022】
いくつかの実施形態では、画像のピクセルを所定の形状テンプレートと比較することは、画像を複数のピクセルブロックに分割することであって、各ピクセルブロックが複数のピクセルを含む、分割することと、ピクセルブロックの各々について、ピクセルブロック内の複数のピクセルに関連付けられたピクセル強度に基づいてピクセルブロックの視覚的特性を決定することと、ピクセルブロックの視覚的特性をキーボードキー間のスペースの視覚的特性を表す所定の形状テンプレートと比較することと、画像のピクセルブロックの視覚的特性と、キーボードキー間のスペースの視覚的特性を表す所定の形状テンプレートとの比較に基づいて、画像内に描写された物理キーボードの1つまたは複数の形状特徴を検出することとを含む。
【0023】
いくつかの実施形態では、ピクセルブロック内の複数のピクセルに関連付けられたピクセル強度に基づいてピクセルブロックの視覚的特性を決定することは、ピクセルブロックの少なくとも1つの部分に関連付けられたピクセル強度をピクセルブロックの別の部分と比較して、ピクセルブロックの様々な部分に関連付けられたピクセル強度の勾配および分散を決定することを含む。
【図面の簡単な説明】
【0024】
図1】コンソールが動作する例示的な人工現実システム環境のブロック図である。
図2】例示的な実施形態による、HMDの図である。
図3】オブジェクト移植コントローラの図である。
図4】HMDの撮像センサーによって取り込まれた例示的な画像を示す図である。
図5A】物理キーボードの例示的な画像を示す図である。
図5B】物理キーボードの例示的な画像を示す図である。
図6A】キーボードの形状特徴を検出するための1つの手法を示す図である。
図6B】キーボードの形状特徴を検出するための別の手法を示す図である。
図7】例示的なキーボードおよびキーボードの仮想モデルを示す図である。
図8A】キーボードの特徴に基づいて物理キーボードのポーズを決定するための方法を実証する例示的なキーボードを示す図である。
図8B】キーボードの特徴に基づいて物理キーボードのポーズを決定するための方法を実証する例示的なキーボードを示す図である。
図9】キーボードのポーズを決定するための例示的な方法を示す図である。
図10】ソーシャルネットワーキングシステムに関連付けられた例示的なネットワーク環境を示す図である。
図11】例示的なコンピュータシステムを示す図である。
【発明を実施するための形態】
【0025】
本明細書に開示された実施形態は、物理キーボードの正確な位置および向き(ポーズ)を決定し、物理キーボードのポーズと正確に一致するように物理キーボードに対応する仮想モデルの画像をレンダリングすることを記載するが、それに限定されない。高精度のキーボード追跡は困難である。機械学習手法は、キーボード追跡のリアルタイムアプリケーションを提供するには遅すぎ、追跡に使用されるカメラの品質が低いために不正確すぎる。したがって、コンピュータビジョン手法が必要である。しかしながら、様々な要因がコンピュータビジョン手法も困難にする。たとえば、ヘッドマウントディスプレイ(HMD)の外向きカメラによって取り込まれた画像に基づく正確な特徴検出は、取り込まれた画像が低解像度および高ノイズを有する可能性があり、キーボードの特徴が低コントラストを有するので困難である。さらに、キーボードの特徴はユーザの手によって塞がれることが多く、照明条件は正確な特徴検出には最適でない可能性がある。いくつかのデバイスは、追跡カバレッジを最大化するために外向きカメラに魚眼レンズを使用するので、取り込まれた画像は、撓められるかまたは歪められる場合もある。
【0026】
これらの問題に対処するために、本明細書に開示された発明は、物理キーボード上のキー間のスペースによって形成される所定のT特徴、X特徴、およびL特徴を探し、それらは、低解像度、歪められ、または部分的に閉塞されたキーボード画像であっても検出することができる顕著な特徴である。方法は、キーボードの画像を取り込むことによって開始することができる。(たとえば、魚眼レンズによって取り込まれたことに起因して)画像が歪んでいる場合、キーボードの直線画像を生成することによって画像が補正される場合がある。次いで、勾配および分散ベースの手法を使用して、キーボードのT特徴、X特徴、およびL特徴が検出される。勾配および分散ベースの手法は、キーの境界領域(各キー上のシンボルを囲む均一な領域)内のピクセル強度および隣接するキー間のスペース内のピクセル強度の分布および差を活用する。任意の所与のキーボードについて、ピクセル強度の差に基づいて、T字形、L字形、および/またはX字形(もしくは十字形、「+」形状)の固有のパターンを検出することができる。これらの固有のパターンは、データベース内の様々なキーボードの事前マッピングされたモデルと比較することができる。物理キーボードと一致する仮想モデルが見つかると、物理キーボードの検出された特徴にそれをマッピングすることにより、物理キーボードのポーズと正確に一致するように仮想モデルをレンダリングすることができる。この技法により、物理キーボードがサブミリメートルの精度で追跡されることが可能になる。この技法はまた、T特徴、X特徴、およびL特徴を有することが多い任意の現実世界のオブジェクトを追跡するために一般化されてもよい。
【0027】
本発明の実施形態は、人工現実システムを含むか、または人工現実システムに関連して実装され得る。人工現実は、ユーザへの提示の前に何らかの様式で調整された形式の現実であり、これは、たとえば、仮想現実(VR)、拡張現実(AR)、複合現実(MR)、ハイブリッド現実、あるいはそれらの何らかの組合せおよび/または派生物を含み得る。人工現実コンテンツは、完全に生成されたコンテンツ、またはキャプチャされたコンテンツ(たとえば、現実世界の写真)と組み合わせられた生成されたコンテンツを含み得る。人工現実コンテンツは、ビデオ、オーディオ、触覚フィードバック、またはそれらの何らかの組合せを含み得、それらのいずれも、単一のチャネルまたは複数のチャネルにおいて提示され得る(観察者に3次元効果をもたらすステレオビデオなど)。さらに、いくつかの実施形態では、人工現実は、たとえば、人工現実におけるコンテンツを作り出すために使用される、および/または人工現実において使用される(たとえば、人工現実におけるアクティビティを実施する)アプリケーション、製品、アクセサリ、サービス、またはそれらの何らかの組合せに関連付けられ得る。人工現実コンテンツを提供する人工現実システムは、ホストコンピュータシステムに接続されたヘッドマウントディスプレイ(HMD)、スタンドアロンHMD、モバイルデバイスまたはコンピューティングシステム、あるいは、1人または複数の観察者に人工現実コンテンツを提供することが可能な任意の他のハードウェアプラットフォームを含む、様々なプラットフォーム上に実装され得る。
【0028】
本明細書で開示される実施形態は例にすぎず、本開示の範囲はそれらに限定されない。特定の実施形態は、上記で開示された実施形態の構成要素、要素、特徴、機能、動作、またはステップのすべてを含むか、いくつかを含むか、またはいずれをも含まないことがある。本発明による実施形態は、特に、方法、記憶媒体、システムおよびコンピュータプログラム製品を対象とする添付の特許請求の範囲で開示され、1つの請求項カテゴリー、たとえば、方法において述べられた任意の特徴は、別の請求項カテゴリー、たとえば、システムにおいても請求され得る。添付の特許請求の範囲における従属関係または参照は、形式的理由で選定されるにすぎない。ただし、任意の先行請求項に対する意図的な前方参照(特に、マルチ従属)の結果としての如何なる主題も、同様に請求可能であるため、請求項およびその特徴の任意の組み合わせが開示され、添付の特許請求の範囲において選定した従属に関わらず請求可能である。請求され得る主題は、添付の特許請求の範囲に記載の特徴の組合せだけでなく、特許請求の範囲における特徴の任意の他の組合せをも含み、特許請求の範囲において述べられた各特徴は、特許請求の範囲における任意の他の特徴または他の特徴の組合せと組み合わせられ得る。さらに、本明細書で説明または示される実施形態および特徴のいずれも、別個の請求項において、ならびに/あるいは、本明細書で説明もしくは示される任意の実施形態もしくは特徴との、または添付の特許請求の範囲の特徴のいずれかとの任意の組合せで請求され得る。
【0029】
物理空間内の物理オブジェクトを仮想現実の仮想空間内に移植するためのシステムおよび方法に関する実施形態が本明細書に開示される。一態様では、物理空間内の物理オブジェクトを仮想空間内に移植することは、物理オブジェクトの仮想モデルを取得するために物理空間内の物理オブジェクトをアクティブ化することと、仮想空間内で仮想モデルの画像をレンダリングすることとを含む。
【0030】
いくつかの実施形態では、物理オブジェクトは、HMDがヘッドマウントディスプレイのユーザに物理空間のビューを提示またはレンダリングするパススルーモード中にアクティブ化される。たとえば、物理オブジェクトの仮想モデルは、パススルーモード中に識別または選択され、仮想空間内でレンダリングされる場合がある。物理空間内の物理オブジェクトは追跡される場合があり、仮想空間内の仮想モデルの位置および向きは、物理空間内の物理オブジェクトの位置および向きに従って調整される場合がある。一態様では、物理空間内の物理オブジェクトとのユーザの対話の指示は、ユーザへのフィードバックとして仮想空間内の仮想モデル上に提示される場合がある。
【0031】
一態様では、物理オブジェクトは、ヘッドマウントディスプレイおよび/または専用のハンドヘルド入力デバイス(たとえば、ポインティングデバイス)を製造または製作する会社とは異なる会社によって製造または製作され得る汎用入力デバイス(たとえば、キーボードまたはマウス)である。入力デバイスの仮想モデルを参照または誘導として(たとえば、入力デバイスの代理として)ユーザの視野内でユーザにレンダリングすることにより、ユーザは、仮想モデル、したがって入力デバイスに容易に手を伸ばし、入力デバイスを介して仮想現実に入力を提供することができる。
【0032】
一態様では、仮想空間内の仮想モデル(たとえば、空間誘導のために仮想空間内の仮想モデルを使用すること)に関して、物理空間内の入力デバイスとのユーザの対話に関する空間フィードバックは、ユーザに視覚的に提供することができる。一手法では、入力デバイスのユーザに対する物理空間内の入力デバイスが検出される。位置および向き(ポーズ)における仮想空間内の検出された入力デバイスの仮想モデルは、表示デバイスによってユーザに提示される場合がある。仮想空間内の仮想モデルの位置および向きは、ユーザに対する物理空間内の入力デバイスの位置および向きに対応(たとえば、追跡またはミラー化)することができる。仮想空間内の仮想モデル(およびたとえばユーザの手の仮想表現)に関して、物理空間内の入力デバイスとのユーザの対話に関する空間フィードバックは、仮想空間を介してユーザに視覚的に提供することができる。したがって、仮想モデルに対する空間フィードバックを介して、ユーザは入力デバイスを容易に見つけて手を伸ばし、仮想現実体験を楽しみながら(たとえば、物理空間の代わりに仮想空間を見ながら)、物理空間内の入力デバイスを介して入力を提供することができる。
【0033】
本明細書に開示されたシステムおよび方法は、物理オブジェクトを仮想現実に移植することに関する場合があるが、本明細書に開示された一般的な原理は、拡張現実または複合現実に適用可能であり得る。
【0034】
図1は、コンソール110が動作する例示的な人工現実システム環境100のブロック図である。いくつかの実施形態では、人工現実システム環境100は、ユーザによって装着されたHMD150と、人工現実のコンテンツをHMD150に提供するコンソール110とを含む。一態様では、HMD150は、その位置、向き、および/またはHMD150を装着しているユーザの視線方向を検出することができ、検出された位置および視線方向をコンソール110に提供することができる。コンソール110は、検出された位置、向き、および/または視線方向に対応する人工現実の空間内のビューを特定し、特定されたビューを描写する画像を生成することができる。コンソール110は、レンダリングのためにHMD150に画像を提供することができる。いくつかの実施形態では、人工現実システム環境100は、有線ケーブル、ワイヤレスリンク(たとえば、Bluetooth、Wi-Fiなど)、またはその両方を介してコンソール110またはHMD150に通信可能に結合された入力デバイス120を含む。入力デバイス120は、モーションセンサーを備えた専用ハードウェア(たとえば、ポインティングデバイスまたはコントローラ)、汎用キーボード、マウスなどであってもよい。入力デバイス120を介して、ユーザは提示された人工現実に関連付けられた入力を提供することができる。いくつかの実施形態では、人工現実システム環境100は、図1に示されたものよりも多いか、少ないか、または異なる構成要素を含む。いくつかの実施形態においては、人工現実システム環境100の1つまたは複数のコンポーネントの機能性は、ここで記述されているのとは異なる様式でコンポーネント間において分散されることが可能である。たとえば、コンソール110の機能の一部は、HMD150によって実行されてもよい。たとえば、HMD150の機能の一部は、コンソール110によって実行されてもよい。いくつかの実施形態では、コンソール110はHMD150の一部として統合される。
【0035】
いくつかの実施形態では、HMD150は、ユーザによって装着され得、人工現実体験をユーザに提示または提供することができる電子構成要素を含むか、またはそれに対応する。HMD150は、1つまたは複数の画像、ビデオ、オーディオ、またはそれらの何らかの組合せをレンダリングして、人工現実体験をユーザに提供することができる。いくつかの実施形態では、オーディオは、HMD150、コンソール110、またはその両方からオーディオ情報を受け取り、オーディオ情報に基づいてオーディオデータを提示する外部デバイス(たとえば、スピーカーおよび/またはヘッドフォン)を介して提示される。いくつかの実施形態では、HMD150は、センサー155、通信インターフェース165、画像レンダラー170、電子ディスプレイ175、および/またはオブジェクト移植コントローラ180を含む。これらの構成要素は、HMD150の位置および向き、ならびに/またはHMD150を装着しているユーザの視線方向を検出するために一緒に動作することができ、HMD150の検出された位置および向き、ならびに/またはユーザの視線方向に対応する人工現実内のビューの画像をレンダリングすることができる。他の実施形態では、HMD150は、図1に示されたものよりも多いか、少ないか、または異なる構成要素を含む。いくつかの実施形態では、オブジェクト移植コントローラ180は、HMD150のユーザからの制御に従ってアクティブ化または非アクティブ化される場合がある。
【0036】
いくつかの実施形態では、センサー155は、HMD150の位置、向き、および/またはユーザの視線方向を検出する電子構成要素、または電子構成要素とソフトウェア構成要素の組合せを含む。センサー155の例は、1つもしくは複数の撮像センサー、1つもしくは複数の加速度計、1つもしくは複数のジャイロスコープ、1つもしくは複数の磁力計、全地球測位システム、または動きおよび/もしくは位置を検出する別の適切なタイプのセンサーを含むことができる。たとえば、1つまたは複数の加速度計は、並進運動(たとえば、前方/後方、上/下、左/右)を測定することが可能であり、1つまたは複数のジャイロスコープは、回転運動(たとえば、ピッチ、ヨー、ロール)を測定することが可能である。いくつかの実施形態では、撮像センサーは、物理オブジェクト、ユーザジェスチャ、手の形状、ユーザ対話などを検出するための画像を取り込むことができる。いくつかの実施形態では、センサー155は、並進運動および回転運動を検出し、HMD150の向きおよび位置を決定する。一態様では、センサー155は、HMD150の以前の向きおよび位置に対する並進運動および回転運動を検出し、検出された並進運動および/または回転運動を蓄積または統合することにより、HMD150の新しい向きおよび/または位置を特定することができる。一例として、HMD150が基準方向から25度の方向に向いていると想定すると、HMD150が20度回転したことを検出したことに応答して、センサー155は、HMD150が今や基準方向から45度の方向に面しているまたは向いていると特定することができる。別の例として、HMD150が第1の方向に基準点から2フィート離れて配置されたと想定すると、HMD150が第2の方向に3フィート移動したことを検出したことに応答して、センサー155は、HMD150が今や基準点から第1の方向に2フィートおよび第2の方向に3フィートのベクトル乗算に配置されると特定することができる。一態様では、HMD150の位置および向きに従って、ユーザの視線方向を決定または推定することができる。
【0037】
いくつかの実施形態では、センサー155は、物理空間のセンサー測定値を生成する電子構成要素、または電子構成要素とソフトウェア構成要素の組合せを含むことができる。センサー測定値を生成するためのセンサー155の例は、1つまたは複数の撮像センサー、熱センサーなどを含むことができる。一例では、撮像センサーは、物理空間内のユーザの視野(またはHMD150の向きに従うHMD150の位置からのビュー)に対応する画像を取り込むことができる。取り込まれた画像に対して画像処理を実行して、物理空間内の物理オブジェクトまたはユーザの一部分を検出することができる。
【0038】
いくつかの実施形態では、通信インターフェース165は、コンソール110と通信する電子構成要素、または電子構成要素とソフトウェア構成要素の組合せを含む。通信インターフェース165は、通信リンクを介してコンソール110の通信インターフェース115と通信することができる。通信リンクは、ワイヤレスリンク、有線リンク、またはその両方であり得る。ワイヤレスリンクの例は、セルラー通信リンク、近距離無線通信リンク、Wi-Fi、Bluetooth、または任意の通信ワイヤレス通信リンクを含むことが可能である。有線リンクの例は、ユニバーサルシリアルバス(USB)、イーサネット、Firewire、高精細マルチメディアインターフェース(HDMI)、または任意の有線通信リンクを含むことができる。コンソール110およびHMD150が単一のシステム上に実装される実施形態では、通信インターフェース165は、少なくともバス接続または導電性トレースを介してコンソール110と通信することができる。通信リンクを介して、通信インターフェース165は、特定されたHMD150の位置およびHMD150の向き、ならびに/またはユーザの視線方向を示すデータをコンソール110に送信することができる。その上、通信リンクを介して、通信インターフェース165は、レンダリングされるべき画像を示すデータをコンソール110から受信することができる。
【0039】
いくつかの実施形態では、画像レンダラー170は、たとえば、人工現実の空間のビューにおける変化に従って、表示のための1つまたは複数の画像を生成する電子構成要素、または電子構成要素とソフトウェア構成要素の組合せを含む。いくつかの実施形態では、画像レンダラー170は、プロセッサ(またはグラフィカル処理装置(GPU))として実装される。画像レンダラー170は、レンダリングされることになる画像を描写するデータを、通信インターフェース165を通じて受信し、その画像を、電子ディスプレイ175を通じてレンダリングすることが可能である。いくつかの実施形態では、コンソール110からのデータは、圧縮または符号化される場合があり、画像レンダラー170は、データを解凍または復号して画像を生成およびレンダリングすることできる。画像レンダラー170は、コンソール110から圧縮画像を受信し、圧縮画像を解凍することができ、その結果、コンソール110とHMD150との間の通信帯域幅を低減することができる。一態様では、HMD150により、HMD150の位置、HMDの向き、および/またはHMD150を装着しているユーザの視線方向を検出し、コンソール110により、検出された位置、向き、および/または視線方向に対応する高解像度画像(たとえば、1920×1080ピクセル)を生成し、HMD150に送信するプロセスは、計算処理上の消耗度が高い場合があり、フレーム時間(たとえば、11ms未満)内に実行されない場合がある。画像レンダラー170は、コンソール110からの画像がフレーム時間内に受信されないときに、シェーディングプロセスおよび再投影プロセスを介して1つまたは複数の画像を生成することができる。たとえば、シェーディングプロセスおよび再投影プロセスは、人工現実の空間のビューにおける変化に従って適応的に実行されることが可能である。
【0040】
いくつかの実施形態では、電子ディスプレイ175は、画像を表示する電子構成要素である。電子ディスプレイ175は、たとえば、液晶ディスプレイまたは有機発光ダイオードディスプレイであることが可能である。電子ディスプレイ175は、ユーザが透かして見ることを可能にする透明なディスプレイであることが可能である。いくつかの実施形態では、HMD150がユーザによって装着されているときに、電子ディスプレイ175は、ユーザの目に近接して(たとえば、3インチ未満に)配置される。一態様では、電子ディスプレイ175は、画像レンダラー170によって生成された画像に従ってユーザの目に向かって光を放射または投影する。
【0041】
いくつかの実施形態では、オブジェクト移植コントローラ180は、物理オブジェクトをアクティブ化し、物理オブジェクトの仮想モデルを生成する電子構成要素、または電子構成要素とソフトウェア構成要素の組合せを含む。一手法では、オブジェクト移植コントローラ180は、パススルーモード中に物理空間内の物理オブジェクトを検出し、センサー155は、その中に物理空間のユーザのビュー(または視野)の画像を取り込むことができ、電子ディスプレイ175は、取り込まれた画像をユーザに提示することができる。オブジェクト移植コントローラ180は、物理オブジェクトの仮想モデルを生成し、仮想空間内で仮想モデルを提示することができ、電子ディスプレイ175は、その中に仮想空間のユーザの視野を表示することができる。物理オブジェクトのアクティブ化および物理オブジェクトの仮想モデルのレンダリングについての詳細な説明が以下に提供される。
【0042】
いくつかの実施形態では、コンソール110は、HMD150を介してレンダリングされるべきコンテンツを提供する電子構成要素、または電子構成要素とソフトウェア構成要素の組合せである。一態様では、コンソール110は、通信インターフェース115およびコンテンツプロバイダ130を含む。これらの構成要素は、HMD150の位置、HMD150の向き、および/またはHMD150のユーザの視線方向に対応する人工現実のビューを特定するために一緒に動作することができ、特定されたビューに対応する人工現実の画像を生成することができる。他の実施形態では、コンソール110は、図1に示されたものよりも多いか、少ないか、または異なる構成要素を含む。いくつかの実施形態では、コンソール110は、HMD150の一部またはすべての機能を実行する。いくつかの実施形態では、コンソール110は、単一のデバイスとしてのHMD150の一部として統合される。
【0043】
いくつかの実施形態では、通信インターフェース115は、HMD150と通信する電子構成要素、または電子構成要素とソフトウェア構成要素の組合せである。通信インターフェース115は、通信リンク(たとえば、USBケーブル)を介して通信する通信インターフェース165に対する相手方の構成要素であり得る。通信リンクを介して、通信インターフェース115は、特定されたHMD150の位置、HMD150の向き、および/または特定されたユーザの視線方向を示すデータをHMD150から受信することができる。その上、通信リンクを介して、通信インターフェース115は、レンダリングされるべき画像を描写するデータをHMD150に送信することができる。
【0044】
コンテンツプロバイダ130は、HMD150の位置、HMD150の向き、および/またはHMD150のユーザの視線方向に従って、レンダリングされるべきコンテンツを生成する構成要素である。一態様では、コンテンツプロバイダ130は、HMD150の位置、HMD150の向き、および/またはHMD150のユーザの視線方向に従って人工現実のビューを決定する。たとえば、コンテンツプロバイダ130は、物理空間内のHMD150の位置を仮想空間内の位置にマッピングし、仮想空間内のマッピングされた位置から視線方向に沿って仮想空間のビューを決定する。コンテンツプロバイダ130は、仮想空間の決定されたビューの画像を描写する画像データを生成し、通信インターフェース115を介してHMD150に画像データを送信することができる。いくつかの実施形態では、コンテンツプロバイダ130は、画像に関連付けられた動きベクトル情報、深度情報、エッジ情報、オブジェクト情報などを含むメタデータを生成し、通信インターフェース115を介してHMD150に画像データとともにメタデータを送信する。コンテンツプロバイダ130は、画像を描写するデータを圧縮および/または符号化することができ、圧縮および/または符号化されたデータをHMD150に送信することができる。いくつかの実施形態では、コンテンツプロバイダ130は、周期的に(たとえば、11msごとに)画像を生成し、HMD150に提供する。
【0045】
図2は、例示的な実施形態による、HMD150の図である。いくつかの実施形態では、HMD150は、前部剛体205およびバンド210を含む。前部剛体205は、(図2には示されていない)電子ディスプレイ175、センサー155A、155B、155C、および画像レンダラー170を含む。センサー155Aは、加速度計、ジャイロスコープ、磁力計、または動きおよび/もしくは位置を検出する別の適切なタイプのセンサーであり得る。センサー155B、155Cは、物理オブジェクト、ユーザジェスチャ、手の形状、ユーザ対話などを検出するための画像を取り込む撮像センサーであり得る。いくつかの実施形態では、センサー155Bおよび155Cは、魚眼レンズを備えた撮像センサーであり得る。HMD150は、追加の構成要素(たとえば、GPS、ワイヤレスセンサー、マイクロフォン、熱センサーなど)を含む場合がある。他の実施形態では、HMD150は、図2に示されたものとは異なる構成を有する。たとえば、画像レンダラー170、および/またはセンサー155A、155B、155Cは、図2に示されたものとは異なる位置に配置される場合がある。
【0046】
図3は、本開示の例示的な実装形態による、図1のオブジェクト移植コントローラ180の図である。いくつかの実施形態では、オブジェクト移植コントローラ180は、オブジェクト検出器310、VRモデル生成器320、VRモデルレンダラー330、およびフィードバックコントローラ340を含む。これらの構成要素は、物理オブジェクトを検出し、物理オブジェクトの仮想モデルを提示するために一緒に動作することができる。仮想モデルは、HMD150のユーザがHMD150を装着している間に物理オブジェクトの位置を特定することができるように、識別、アクティブ化、または生成される場合があり、提示される場合がある。いくつかの実施形態では、これらの構成要素は、ハードウェア、ソフトウェア、またはハードウェアとソフトウェアの組合せとして実装される場合がある。いくつかの実施形態では、これらの構成要素は、特定用途向け集積回路(ASIC)またはフィールドプログラマブルゲートアレイ(FPGA)として実装される。いくつかの実施形態では、これらの構成要素は、プロセッサ、およびプロセッサによって実行されたときに本明細書に開示された様々なプロセスをプロセッサに実行させる命令を記憶する非一時的コンピュータ可読媒体として実装される。いくつかの実施形態では、オブジェクト移植コントローラ180は、図3に示されたものよりも多いか、少ないか、または異なる構成要素を含む。いくつかの実施形態では、いくつかの構成要素の機能は、コンテンツプロバイダ130またはリモートサーバによって、またはそれと連携して実行されてもよい。たとえば、オブジェクト検出器310、VRモデル生成器320、またはその両方のいくつかの機能は、コンテンツプロバイダ130またはリモートサーバによって実行される場合がある。いくつかの実施形態では、オブジェクト移植コントローラ180は、図3に示されたものよりも多いか、少ないか、または異なる構成要素を含む。
【0047】
いくつかの実施形態では、オブジェクト検出器310は、取り込まれた画像に従って物理空間内の物理オブジェクトを検出する構成要素であるか、またはそれを含む。一用途では、オブジェクト検出器310は、取り込まれた画像に対して画像処理を実行することにより、物理空間内の入力デバイス(たとえば、キーボードまたはマウス)を検出する。一手法では、オブジェクト検出器310は、取り込まれた画像内の物理オブジェクトのキーもしくはボタンの(たとえば、キー自体もしくはキー間のスペースによって形成された)輪郭、外形、および/もしくはレイアウト、またはこれらの組合せを検出し、キーまたはボタンの検出された輪郭、外形、および/またはレイアウトに従って物理オブジェクトのタイプを特定する。たとえば、オブジェクト検出器310は、物理オブジェクトのキーまたはボタンの検出された輪郭、外形、および/またはレイアウトに従って、物理空間のユーザの視点における物理オブジェクトがキーボードまたはマウスであるかどうかを判定する。オブジェクト検出器310はまた、物理オブジェクトのヒートマップを検出する熱センサーに従って物理オブジェクトの位置を特定することができる。一例では、オブジェクト検出器310は、取り込まれた画像内の物理オブジェクトの外形に従って、物理オブジェクトが特定の数のキーを有することを検出し、物理オブジェクトがキーボードであると判定することができる。
【0048】
一態様では、オブジェクト検出器310は、物理オブジェクトを検出し、電子ディスプレイ175を介して、物理空間のビューまたはビューの一部分をHMD150のユーザに提示する。たとえば、HMD150の撮像センサー(たとえば、センサー155B、155C)によって取り込まれた(たとえば、物理オブジェクトおよび/またはユーザの一部の)画像は、電子ディスプレイ175を介してユーザに(たとえば、仮想モデルおよび/または仮想空間の画像との融合の有無にかかわらず)提示することができる。したがって、HMD150を装着しているユーザは、たとえば、撮像センサーによって取得された画像に対する画像処理を使用して、HMD150を介して物理空間内の物理オブジェクトを検出し、かつ/またはその位置を特定することができる。
【0049】
いくつかの実施形態では、VRモデル生成器320は、検出された物理オブジェクトの仮想モデルを生成、取得、または識別する構成要素であるか、またはそれを含む。一手法では、VRモデル生成器320は、異なる製造会社、ブランド、および/または製品モデル向けの複数の候補モデルを格納する。VRモデル生成器320は、キーまたはボタンの(たとえば、キー自体またはキー間のスペースによって形成された)検出された輪郭、外形、および/またはレイアウトを、複数の候補モデルのキーまたはボタンの輪郭、外形、および/またはレイアウトと比較することができ、物理オブジェクトのキーまたはボタンの検出された輪郭、外形、および/またはレイアウトに一致するか、または最も近いキーまたはボタンの輪郭、外形、および/またはレイアウトを有する候補モデルを識別または特定する。VRモデル生成器320は、物理オブジェクトの製品識別情報を検出または受信し、検出された製品識別情報に対応する候補モデルを識別または特定することができる。仮想モデル生成器320は、特定された候補モデルを物理オブジェクトの仮想モデルとして生成、決定、取得、または選択することができる。
【0050】
いくつかの実施形態では、VRモデルレンダラー330は、物理オブジェクトの仮想モデルの画像をレンダリングする構成要素であるか、またはそれを含む。一手法では、VRモデルレンダラー330は、取り込まれた画像内の物理オブジェクトを追跡し、ユーザまたはHMD150に対する物理オブジェクトの位置および向きを特定する。一態様では、ユーザはHMD150を装着しながら動き回ることができるので、ユーザまたはHMD150に対する物理オブジェクトの位置および向きは変化する場合がある。VRモデルレンダラー330は、見られるかまたは表示されるユーザまたはHMD150に対する仮想空間内の仮想モデルの位置および向きが、取り込まれた画像内のユーザまたはHMD150に対する物理オブジェクトの位置および向きに対応することができるように、仮想モデルの6自由度(たとえば、前方/後方(サージ)、上方/下方(ヒーブ)、左/右(スウェイ)並進、左右傾斜(ロール)、前方/後方傾斜(ピッチ)、左/右旋回(ヨー))を決定することができる。特定の実施形態では、VRモデルレンダラー330は、取り込まれた画像に対して画像処理を実行することによって物理オブジェクトの特定の特徴(たとえば、キーボードの4つのコーナーおよび/もしくは側面、キー間のスペースによって形成された形状、ならびに/またはそのような形状のグループによって形成されたパターン)を追跡し、取り込まれた画像内の物理オブジェクトの特徴に一致、対応、追跡、または適合するように仮想モデルの位置および向き(ポーズ)を決定することができる。VRモデルレンダラー330は、電子ディスプレイ175を介して仮想モデルの位置および向きに従って仮想モデルを提示することができる。一態様では、VRモデルレンダラー330は、ユーザがHMD150を装着している間に物理オブジェクトを追跡し、仮想モデルの位置および向きを更新し、電子ディスプレイ175は、その中に仮想空間のユーザの視点/視野を提示する。仮想空間内に提示され、空間的な誘導または参照として作用する仮想モデルにより、ユーザは、HMDを装着しているために物理オブジェクトを実際に見ることができないが、物理オブジェクトを容易に見つけ、手を伸ばすことができる。
【0051】
いくつかの実施形態では、フィードバックコントローラ340は、物理オブジェクトとのユーザ対話の空間フィードバックを生成する構成要素であるか、またはそれを含む。一態様では、フィードバックコントローラ340は、取り込まれた画像内のHMD150のユーザの手を検出および追跡し、電子ディスプレイ175を介してユーザの動きおよび/または物理オブジェクトとの対話に関する空間フィードバックを視覚的に提供する。空間フィードバックは、仮想モデルに対して提供される場合がある。一例では、フィードバックコントローラ340は、ユーザの手が物理オブジェクトから所定の距離内にある(または物理オブジェクトに近接している)かどうかを判定する。ユーザの手が物理オブジェクト(たとえば、キーボード)から所定の距離内にある場合、フィードバックコントローラ340は、ユーザの手の仮想モデルを生成またはレンダリングし、電子ディスプレイ175を介して仮想空間内にユーザの手の仮想モデルを提示することができる。ユーザの手が物理オブジェクト(たとえば、キーボード)から所定の距離内にない場合、フィードバックコントローラ340は、電子ディスプレイ175を介してユーザの手の仮想モデルを提示またはレンダリングすることができない。いくつかの実施形態では、フィードバックコントローラ340は、仮想空間内の仮想モデルを囲む領域(たとえば、長方形領域または他の領域)を決定または生成し、電子ディスプレイ175を介して領域を提示することができる。ユーザの手が領域内にあるとき、手の仮想モデルの一部分または領域内の手の一部分の通過画像を、空間フィードバックとして(たとえば、他の画像との融合の有無にかかわらず)提示することができる。
【0052】
一例では、フィードバックコントローラ340は、物理オブジェクトの一部分がユーザと対話していると判定し、仮想モデルの対応する部分が電子ディスプレイ175を介してユーザと対話していることを示す。たとえば、フィードバックコントローラ340は、取り込まれた画像に対して画像処理を実行することにより、またはキーボードを介するユーザ入力に対応する電気信号を受信することにより、キーボードのキーまたはボタンが押下されたと判断する。フィードバックコントローラ340は、キーボードのどのキーが押下されたかを示すために、仮想モデルの対応するキーまたは対応するボタンを強調表示することができる。それに応じて、ユーザは、HMDを装着しているために物理オブジェクトを実際に見ることはできないが、物理オブジェクトを介して提供された入力が正しいか否かを確認することができる。
【0053】
実際には、物理オブジェクトとのユーザ対話の正確でリアルタイムの空間フィードバックを提供することは困難であり得る。通常、HMDの外向きの撮像センサーによって取り込まれた物理オブジェクトの画像は、しばしば、(たとえば、ユーザの手によって)画像が塞がれているか、または低解像度、高ノイズ、もしくは低コントラストの特徴を有するので、ユーザに正確な空間フィードバックを提供するために直接使用することができない。たとえば、図4は、HMDの撮像センサーによって取り込まれた画像401、402、403を示し、それらの画像は、ユーザの手によって塞がれるか、または低解像度、高ノイズ、もしくは低コントラストの特徴を有する。そのような画像を使用してユーザに空間フィードバックを提供するための1つの解決策は、画像内に描写された物理オブジェクトの正確なポーズを決定し、物理オブジェクトのポーズを正確に追跡する仮想空間内の仮想モデルをレンダリングすることによる。しかしながら、画像が部分的に塞がれているか、または低解像度、高ノイズ、もしくは低コントラストの特徴を有する場合、空間フィードバックを提供するのに十分正確に任意の物理オブジェクトのポーズを決定することは困難である。本開示の発明は、低解像度、高ノイズ、または部分的に塞がれた画像であっても検出され得る顕著な特徴を検出することにより、キーボードなどの物理オブジェクトのポーズを正確に決定するための方法を提供する。本開示の多くの実施形態は、物理キーボードのポーズを決定することを記載しているが、本開示は、本明細書に記載されたものと同様の顕著な特徴を有する任意の物理オブジェクトに対応する。
【0054】
一実施形態では、キーボードのキーもしくはボタン間のスペースまたはキーボードのコーナーに存在する特定の形状によって形成される視覚的特性に基づいて、キーボードの顕著な特徴が識別される場合がある。たとえば、図5Aは、T字形特徴501、502、および503、L字形特徴510、ならびにX字形特徴520を有する物理キーボードの例示的な画像を示す。通常、キーボードの最も一般的な形状特徴はT字形である。たとえば、図5Aに示されたキーボードは、約120個のT字形および3個のX字形を有する。T字形は、屋根部分と呼ばれる上部および胴体部分と呼ばれる下部から構成される。図5Bは、キーボードのT字形を検出するために使用される例示的なT字形テンプレート590、および検出されたT字形580のうちの1つに対応するキーボードの一部分の拡大図を示す。図5Bはまた、T字形の屋根部分592および胴体部分591がどこにあるかの指示を提供する。T字形は、キーボードの2つ以上のキー間のスペースの視覚的特性によって形成される場合があり、同じ列内の2つの隣接するキー間のスペースはT字形の胴体部分を形成する。たとえば、T字形は、1つの列内の2つのキーおよび隣接する列内の第3のキーによって形成される場合がある(たとえば、図5Bに示されたT字形580)。たとえば、T字形は、1つの列内の2つのキーおよび隣接する列内の別の2つのキーによって形成される場合がある(たとえば、図5Aに示されたX字形520)。以下に記載されるように、X字形は、反対向きの2つのT字形を結合することによって形成される場合がある。2つのキーの各々が別々であるが隣接する列の最も右側のキーまたは最も左側のキーである場合、T字形は、他のキーなしで2つのキーによって形成される場合もあり、T字形の屋根部分は、2つのキーの右側または左側のスペースによって形成される(たとえば、図5Aに示されたT字形503)。2つのキーの両方が最上段または最下段にある場合、T字形は、他のキーなしで2つのキーによって形成される場合もあり、T字形の屋根部分は、2つのキーの上部または下部のスペースによって形成される。検出された各T字形は、向きに関連付けられる場合がある。たとえば、図5Aでは、T字形501は、その胴体がその屋根に対して下向きに面するように向けられ、T字形502は、その胴体がその屋根に対して上向きに面するように向けられ、T字形503は、その胴体がその屋根に対して左向きに面するように向けられる。各形状特徴は、形状特徴の外観に応じて正または負の符号に関連付けられる場合があり、形状特徴を形成するキー間のスペースが周囲のキーと比較してより明るい場合、形状特徴に正の符号が割り当てられる場合があり、形状特徴を形成するキー間のスペースが周囲のキーと比較して暗い場合、形状特徴に負の符号が割り当てられる場合がある。あるいは、形状特徴に上述された符号とは逆の符号が割り当てられる場合がある。たとえば、図5Aでは、T字形503を囲むキーはキー間のスペースよりも暗く見えるので、T字形503は正の符号が割り当てられる場合がある。一実施形態では、反対の向きを有する2つのT字形は、図5Aに示されたX字形520などのX字形を形成するために接合される場合がある。
【0055】
一実施形態では、キーボードを描写する画像のピクセル強度を評価することにより、キーボードのT字形特徴が検出される。一手法では、キーボードを描写する画像内のT字形を識別するために、勾配および分散ベースの手法が使用される。図6A図6Bは、勾配および分散手法に基づいてT字形特徴を検出するための1つの手法を示す。通常、キーボードを描写する画像では、キーボードの最も顕著な特徴の1つは、キーボードキーのピクセル強度とキー間のスペースの差に対応する。たとえば、図4では、画像401は、キー間の暗いスペースと対照をなすキーボードキーを示し、画像402および403は、キー間の明るいスペースと対照をなすキーボードキーを示す。勾配および分散ベースの手法は、ピクセル強度のそのような差を活用して、キーボードの形状特徴を検出する。この手法は2つのステップに分割することができ、その第1のステップは、T字形の屋根部分についてピクセル強度の勾配を評価することを含み、その第2のステップは、T字形の胴体部分についてピクセル強度の勾配を評価することを含む。
【0056】
図6Aは、一実施形態により、屋根部分のピクセル強度の勾配を評価するステップを示す。このステップは、ピクセルブロック内のピクセルの4つのグループ、すなわち特定の1つまたは複数のキーの下端部に対応する場合がある上部610、各々が特定のキーの上部に対応する場合がある2つの下部630、および上部610と下部630との間にある中央部620を識別することを含む。一実施形態では、ピクセルの4つのグループを識別することは、実質的に均一であるか、または特定の量未満の分散を有するピクセル強度を有するピクセルのグループを識別することを含む。たとえば、上部610、中央部620、および下部630の各々におけるピクセルのピクセル強度の分散は、所定の最小量未満の分散であり得る。4つの領域にわたる分散を計算することに加えて、ピクセルのグループ間のピクセル強度の勾配が決定される。上部勾配は、上部610の平均ピクセル強度値と中央部620の平均ピクセル強度値の差に基づいて決定される。
top=μcenter-μtop
【0057】
下部勾配は、中央部610の平均ピクセル強度値と下部630の平均ピクセル強度値の差に基づいて決定される。
bottom=μbottom-μcenter
【0058】
結合勾配は、
horz=∇top-∇bottom
である
【0059】
偏差は、
である。
【0060】
図6Aで参照される水平応答は、変化する輝度、コントラスト、および画像ノイズに反応しないように、T字形の屋根部分に対応する異なる領域の分散と、これらの領域間の勾配とを結合する。
【0061】
上部勾配および下部勾配が両方とも特定の最小勾配値よりも大きい場合、水平応答はそれに基づいて計算される。あるいは、上部勾配または下部勾配のいずれかが最小勾配値よりも小さいと判定された場合、水平応答はゼロ値が割り当てられる。
【0062】
結合勾配の符号が間違っている場合、垂直応答はゼロ値が割り当てられる。
【0063】
図6Bは、一実施形態により、胴体部分のピクセル強度の勾配を評価するステップを示す。このステップは、ピクセルブロック内のピクセルの3つのグループ、すなわちキーボードの特定のキーの右端部に対応する場合がある左部660、キーボードの特定のキーの左端部に対応する場合がある右部680、および左部660と右部680との間にある中央部670を識別することを含む。一実施形態では、ピクセルの3つのグループを識別することは、実質的に均一であるか、または特定の量未満の分散を有するピクセル強度を有するピクセルのグループを識別することを含む。たとえば、左部660、中央部670、および右部680の各々におけるピクセルのピクセル強度の分散は、所定の最小量未満の分散であり得る。3つの領域にわたる分散を計算することに加えて、ピクセルのグループ間のピクセル強度の勾配が決定される。左勾配は、左部660の平均ピクセル強度値と中央部670の平均ピクセル強度値の差に基づいて決定される。
left=μmiddle-μleft
【0064】
右勾配は、中央部670と右部680の平均ピクセル強度値の差に基づいて決定される。
right=μright-μmiddle
【0065】
結合勾配は、
vert=∇left-∇right
である。
【0066】
偏差は、
である。
【0067】
図6Bで参照される垂直応答は、変化する輝度、コントラスト、および画像ノイズに反応しないように、T字形の胴体部分に対応する異なる領域の分散を結合する。
【0068】
左勾配および右勾配が両方とも特定の最小勾配値よりも大きい場合、垂直応答はそれに基づいて計算される。あるいは、左勾配または右勾配のいずれかが最小勾配値よりも小さいと判定された場合、垂直応答はゼロ値が割り当てられる。
【0069】
結合勾配の符号が間違っている場合、垂直応答はゼロ値が割り当てられる。
【0070】
一実施形態では、T字形は、(たとえば、合計または乗算のいずれかによって)水平応答と垂直応答を結合し、結合応答値が所定の最小応答値よりも大きいかどうかを判定することによって識別される。結合応答値が最小応答値よりも小さい場合、ピクセルブロックはT字形を含まなかったと判定される。複数の隣接する結合応答が検出される一実施形態では、最も強い応答値、または最も強い絶対応答値を有する結合応答が、そのグループに対して選択される場合がある。いくつかの実施形態では、図6Aを参照すると、上部および下部は、上部610のサイズおよび形状が下部630のサイズおよび形状と実質的に一致するように構成される場合がある。これにより、水平応答が上から下または下から上の方向から計算されるかどうかにかかわらず、水平応答が均一になることが可能になり、さらに、水平応答が下向きに向けられたT字形に対応する垂直応答または上向きに向けられたT字形に対応する垂直応答と結合されることが可能になる。たとえば、上部610は、2つの下部630に対応する2つの部分に分割される場合がある。あるいは、2つの下部630は、T字形テンプレートの胴体部分によって分離される代わりに、単一の部分に結合される場合がある。いくつかの実施形態では、図6Bを参照すると、中央部670の高さは、左部660および右部680の高さと実質的に一致するように調整される場合がある。これにより、垂直応答が右から左または左から右の方向から計算されるかどうかにかかわらず、垂直応答が均一になることが可能になり、さらに、垂直応答が下向きまたは上向きに向けられたT字形に対応する水平応答と結合されることが可能になる。
【0071】
一実施形態では、VRモデル生成器320は、形状特徴および/またはコーナー特徴に基づいてキーボード用の仮想モデルを生成、取得、または識別する。図5Aは、形状特徴(たとえば、501、502、503、510、および520)ならびにコーナー特徴(たとえば、550)の例を示す。一実施形態では、物理キーボードの仮想モデルは、形状特徴の向きおよび符号を含むコーナー特徴および形状特徴などの物理キーボード上で検出された特徴に基づいて生成される。たとえば、図7は、仮想モデル720がそれに基づいて生成され得る、検出された形状特徴のいくつかを有する例示的なキーボード710を示す。一実施形態では、仮想モデルは3次元仮想オブジェクトであり得、各検出された特徴は、仮想モデル上の3次元位置に割り当てられる場合がある。いくつかの実施形態では、VRモデル生成器320は、仮想モデルの簡略バージョンを2次元仮想オブジェクトとして生成し、検出された特徴の各々に2次元位置を割り当てることができる。簡略化された仮想モデルは、以下に記載されるマッチングプロセスがより迅速かつより効率的に実行されることを可能にすることができる。一実施形態では、仮想モデルは、キーボードのトポロジに関する情報を含むように生成される場合がある。キーボードのトポロジは、たとえば、キーボードの列の数、形状特徴が属する列の識別、キーのサイズ、キーボード列間の距離などに関する情報を含む。
【0072】
図8A図8Bは、キーボードの特徴に基づいて物理キーボードのポーズを決定するための方法を実証する例示的なキーボードを示す。方法は、HMDの撮像センサーに対応する視点から画像を取り込むことによって開始することができる。例示的な画像が図8Aに示されている。画像が魚眼レンズを備えた撮像センサーによって取り込まれるいくつかの実施形態では、画像は撓められているかまたは歪められているように見える場合がある。そのような実施形態では、画像は歪みを除去するように処理される場合がある。たとえば、図8Aは、魚眼レンズから歪みを除去するように処理された画像810を示す。いくつかの実施形態では、画像内に描写されたキーボードが長方形であるように見えない(たとえば、台形のように見える)場合、キーボードは長方形に修正される場合がある。たとえば、図8Bは、長方形に修正されたキーボード画像840を示す。いくつかの実施形態では、キーボードの2つの画像、すなわちステレオカメラの2つのレンズの各々からの1つの画像を取り込むために、ステレオカメラが使用される場合がある。そのような実施形態では、形状特徴は2つの画像内で別々に検出される場合があり、2つの画像内で検出された形状特徴に基づいてキーボードの姿勢が計算されることが可能になる。
【0073】
一実施形態では、任意のキーボードが画像に描写されているかどうかを判定するために(たとえば、初期検出段階)、エッジベースの検出が使用される場合がある。エッジベースの検出は、キーボードの形状特徴(たとえば、T字形特徴)ではなくキーボードの外縁(たとえば、キーボードの4つの辺)を探すという点で、形状ベースの検出とは異なる。エッジベースの検出は、通常、キーボードのポーズを決定することにおいてあまり正確でないが、それでもキーボードの大まかなポーズを決定することは可能である。その上、エッジベースの検出が形状ベースの検出よりも計算コストが低いと仮定すると、任意のキーボードが画像内に描写されているかどうかを判定することが目標である初期検出段階により適している可能性がある。いくつかの実施形態では、形状ベースの検出は、初期キーボード検出段階でエッジベースの検出の代わりに使用される場合がある。たとえば、キーボードの一部分が(たとえば、ユーザの手によって)塞がれているか、またはキーボードの特徴が検出されない状況では、形状ベースの検出を使用して検出される特徴対応関係の数がエッジベースの検出の数よりもはるかに多い(たとえば、通常、キーボードは4つのエッジ特徴に対して100を超える形状特徴を有する)ので、形状ベースの検出がキーボードの検出により適している可能性がある。言い換えれば、キーボードエッジの一部が塞がれている場合、典型的なキーボードは4つのエッジ(辺)しかもたないので、エッジベースの検出はキーボードを検出できない可能性があるが、形状ベースの検出は、多くの形状特徴の一部分が他の塞がれていない形状特徴に依存して塞がれている場合でも、キーボードを検出できる可能性がある。いくつかの実施形態では、任意のキーボードが画像内に描写されているかどうかを判定するために(たとえば、初期検出段階)、深層学習アプローチが画像に適用されて、キーボードの四隅の大まかな位置を検出することができる。
【0074】
一実施形態では、(たとえば、エッジベースの検出に基づいて)画像内のキーボードを識別し、キーボードの大まかなポーズを決定した後に、キーボードの正確なポーズを決定するために形状ベースの検出が使用される場合がある。一実施形態では、キーボードの画像はピクセルのブロックに分割される場合があり、次いで、ピクセルブロックの各々を形状パターンテンプレート(たとえば、図6Aおよび図6Bに示されたT字形テンプレート、X字形テンプレート、またはL字形テンプレート)と比較することにより、キーボードの形状特徴が検出される場合がある。たとえば、図8Bは、キーボード上で検出された形状特徴を有するキーボード840を示す。一実施形態では、検出された形状特徴は、キーボード列に基づいてグループにクラスタ化される。特徴のクラスタは、キーボードに一致する仮想モデルを見つけるためにデータベースに格納された仮想モデルの特性パターンと比較することができる固有の特性パターンを提供する。一致する仮想モデルが見つかると、画像を取り込んだカメラの視点に向かって仮想空間内の仮想モデルを投影し、キーボードと仮想モデルの特徴対応関係が互いに一致するまで仮想モデルのポーズを調整することにより(たとえば、投影誤差を最小化することにより)、キーボードの正確なポーズを決定することができる。一実施形態では、物理キーボードの仮想モデルがデータベースに存在しないか、または見つけることができない場合、キーボードの仮想モデルは、物理キーボードの検出された特徴に基づいて生成され、データベースに格納される場合がある。
【0075】
一実施形態では、キーボード用の正確なポーズが決定された後、キーボードが依然として予想位置にあるかどうかを判定するためにキーボードが連続的に追跡される場合がある。そうでない場合、エッジベースの検出または形状ベースの検出を実施することにより、キーボードのポーズが再び判定される場合がある。一実施形態では、追跡プロセスに関連付けられた計算コストを最小化するために、エッジベースの検出は形状ベースの検出よりも計算コストが低いので、キーボードが予想位置にあるかどうかを判定するために、エッジベースの検出が最初に使用される場合がある。エッジベースの検出がキーボードを検出できない場合、代わりに形状ベースの検出が使用される場合がある。一実施形態では、追跡プロセスは、オブジェクト検出器310がキーボードを能動的に追跡しているアクティブ段階と、キーボードが追跡されていないアイドル段階とを含む場合がある。オブジェクト検出器310は、計算コストを最小化し、HMDのバッテリ寿命を改善するために、アクティブ段階を断続的に実施することしかできない。一実施形態では、オブジェクト検出器310は、様々な条件に基づいてアクティブ段階およびアイドル段階が実施される時間の長さを調整することができる。たとえば、オブジェクト検出器310は、最初にアイドル段階よりも長い期間にわたってアクティブ段階を実施することができるが、キーボードがかなりの期間にわたって静止したままである場合、オブジェクト検出器310は、アイドル段階がアクティブ段階よりも長く実施されるように実施を調整することができる。いくつかの実施形態では、オブジェクト検出器310は、キーボードがユーザによって動かされた可能性があるという指示がある状況では(たとえば、ユーザの手がキーボードの左側および右側の近くにあると検出されたとき、またはユーザが特定のキーを押下したとき)、アクティブ段階を手動で実施することができる。
【0076】
図9は、キーボードのポーズを決定するための例示的な方法900を示す。方法は、ステップ901において、カメラ視点から画像を取り込むことによって開始することができ、画像は物理キーボードを描写する。ステップ902において、方法は、画像のピクセルを所定の形状パターンと比較することにより、画像内に描写された物理キーボードの1つまたは複数の形状特徴を検出することによって継続することができ、所定の形状パターンはキーボードキー間のスペースの視覚的特性を表す。ステップ903において、方法は、物理キーボードに関連付けられたキーボードモデルの所定の形状特徴にアクセスすることによって継続することができる。ステップ904において、方法は、(1)物理キーボードの検出された1つまたは複数の形状特徴と、(2)カメラ視点に向かうキーボードモデルの所定の形状特徴の投影との間の比較に基づいて、物理キーボードのポーズを決定することによって継続することができる。特定の実施形態は、必要に応じて、図9の方法の1つまたは複数のステップを繰り返すことができる。本開示は、図9の方法の特定のステップが特定の順序で発生するものとして記載および図示するが、本開示は、図9の方法の任意の適切なステップが任意の適切な順序で発生することを想定する。その上、本開示は、キーボードのポーズを決定するための例示的な方法を記載および図示するが、本開示は、必要に応じて、図9の方法のステップのすべてを含むか、一部を含むか、またはいずれも含まない場合がある任意の適切なステップを含む、キーボードのポーズを決定するための任意の適切な方法を想定する。さらに、本開示は、図9の方法の特定のステップを実行する特定の構成要素、デバイス、またはシステムを記載および図示するが、本開示は、任意の適切な構成要素、デバイス、またはシステムの任意の適切な組合せが、図9の方法の任意の適切なステップを実行することを想定する。
【0077】
図10は、ソーシャルネットワーキングシステムに関連付けられた例示的なネットワーク環境1000を示す。ネットワーク環境1000は、ネットワーク1010によって互いに接続されたクライアントシステム1030、ソーシャルネットワーキングシステム1060、およびサードパーティシステム1070を含む。図10は、クライアントシステム1030、ソーシャルネットワーキングシステム1060、サードパーティシステム1070、およびネットワーク1010の特定の構成を示すが、本開示は、クライアントシステム1030、ソーシャルネットワーキングシステム1060、サードパーティシステム1070、およびネットワーク1010の任意の適切な構成を想定する。限定ではなく一例として、クライアントシステム1030、ソーシャルネットワーキングシステム1060、およびサードパーティシステム1070のうちの2つ以上が、ネットワーク1010を回避して、互いに直接接続される場合がある。別の例として、クライアントシステム1030、ソーシャルネットワーキングシステム1060、およびサードパーティシステム1070のうちの2つ以上が、全体的または部分的に互いと物理的または論理的に同一場所に位置する場合がある。たとえば、AR/VRヘッドセット1030は、近距離無線通信(たとえば、Bluetooth)を介してローカルコンピュータまたはモバイルコンピューティングデバイス1070に接続される場合がある。その上、図10は、特定の数のクライアントシステム1030、ソーシャルネットワーキングシステム1060、サードパーティシステム1070、およびネットワーク1010を示すが、本開示は、任意の適切な数のクライアントシステム1030、ソーシャルネットワーキングシステム1060、サードパーティシステム1070、およびネットワーク1010を想定する。限定ではなく一例として、ネットワーク環境1000は、複数のクライアントシステム1030、ソーシャルネットワーキングシステム1060、サードパーティシステム1070、およびネットワーク1010を含む場合がある。
【0078】
本開示は、任意の適切なネットワーク1010を想定する。限定ではなく一例として、ネットワーク1010の1つまたは複数の部分は、近距離無線ネットワーク(たとえば、Bluetooth、Zigbeeなど)、アドホックネットワーク、イントラネット、エクストラネット、仮想プライベートネットワーク(VPN)、ローカルエリアネットワーク(LAN)、ワイヤレスLAN(WLAN)、ワイドエリアネットワーク(WAN)、ワイヤレスWAN(WWAN)、メトロポリタンエリアネットワーク(MAN)、インターネットの一部分、公衆交換電話網(PSTN)の一部分、携帯電話ネットワーク、またはこれらのうちの2つ以上の組合せを含む場合がある。ネットワーク1010は、1つまたは複数のネットワーク1010を含む場合がある。
【0079】
リンク1050は、クライアントシステム1030、ソーシャルネットワーキングシステム1060、およびサードパーティシステム1070を通信ネットワーク1010に、または互いに接続することができる。本開示は、任意の適切なリンク1050を想定する。特定の実施形態では、1つまたは複数のリンク1050は、1つまたは複数の(たとえば、デジタル加入者線(DSL)もしくはデータオーバーケーブルサービスインターフェース仕様(DOCSIS)などの)有線リンク、(たとえば、Wi-Fi、ワールドワイドインターオペラビリティフォアマイクロウェーブアクセス(WiMAX)、Bluetoothなどの)ワイヤレスリンク、または(たとえば、同期式光ネットワーク(SONET)もしくは同期式デジタル階層(SDH)などの)光リンクを含む。特定の実施形態では、1つまたは複数のリンク1050は、各々、アドホックネットワーク、イントラネット、エクストラネット、VPN、LAN、WLAN、WAN、WWAN、MAN、インターネットの一部分、PSTNの一部分、セルラー技術ベースネットワーク、衛星通信技術ベースネットワーク、別のリンク1050、または2つ以上のそのようなリンク1050の組合せを含む。リンク1050は、ネットワーク環境1000全体を通して必ずしも同じである必要はない。1つまたは複数の第1のリンク1050は、1つまたは複数の第2のリンク1050とは1つまたは複数の点で異なっていてもよい。
【0080】
特定の実施形態では、クライアントシステム1030は、ハードウェア、ソフトウェア、もしくは組込み型ロジック構成要素、または2つ以上のそのような構成要素の組合せを含み、クライアントシステム1030によって実施またはサポートされる適切な機能を実行することが可能な電子デバイスであり得る。限定ではなく一例として、クライアントシステム1030は、VR/ARヘッドセット、デスクトップコンピュータ、ノートブックコンピュータもしくはラップトップコンピュータ、ネットブック、タブレットコンピュータ、電子ブックリーダ、GPSデバイス、カメラ、携帯情報端末(PDA)、ハンドヘルド電子デバイス、携帯電話、スマートフォン、拡張/仮想現実デバイス、他の適切な電子デバイス、またはそれらの任意の適切な組合せなどのコンピュータシステムを含む場合がある。本開示は、任意の適切なクライアントシステム1030を想定する。クライアントシステム1030は、クライアントシステム1030のネットワークユーザがネットワーク1010にアクセスすることを可能にすることができる。クライアントシステム1030は、そのユーザが他のクライアントシステム1030における他のユーザと通信することを可能にすることができる。
【0081】
特定の実施形態では、ソーシャルネットワーキングシステム1060は、オンラインソーシャルネットワークをホストすることができるネットワークアドレス指定可能なコンピューティングシステムであり得る。ソーシャルネットワーキングシステム1060は、たとえば、ユーザプロファイルデータ、概念プロファイルデータ、ソーシャルグラフ情報、またはオンラインソーシャルネットワークに関係する他の適切なデータなどのソーシャルネットワーキングデータを生成、格納、受信、および送信することができる。ソーシャルネットワーキングシステム1060は、直接またはネットワーク1010を介してのいずれかで、ネットワーク環境1000の他の構成要素によってアクセスされる場合がある。限定ではなく一例として、クライアントシステム1030は、ウェブブラウザ、またはソーシャルネットワーキングシステム1060に関連付けられたネイティブアプリケーション(たとえば、モバイルソーシャルネットワーキングアプリケーション、メッセージングアプリケーション、別の適切なアプリケーション、もしくはそれらの任意の組合せ)を使用して、直接またはネットワーク1010を介してのいずれかで、ソーシャルネットワーキングシステム1060にアクセスすることができる。特定の実施形態では、ソーシャルネットワーキングシステム1060は、1つまたは複数のサーバ1062を含む場合がある。各サーバ1062は、単一のサーバ、または複数のコンピュータもしくは複数のデータセンターにわたる分散型サーバであり得る。サーバ1062は、たとえば、限定はしないが、ウェブサーバ、ニュースサーバ、メールサーバ、メッセージサーバ、広告サーバ、ファイルサーバ、アプリケーションサーバ、交換サーバ、データベースサーバ、プロキシサーバ、本明細書に記載された機能もしくはプロセスを実行するのに適した別のサーバ、またはそれらの任意の組合せなどの様々なタイプのサーバであり得る。特定の実施形態では、各サーバ1062は、サーバ1062実装またはサポートされる適切な機能を実行するための、ハードウェア、ソフトウェア、もしくは組込み型ロジック、または2つ以上のそのような構成要素の組合せを含む場合がある。特定の実施形態では、ソーシャルネットワーキングシステム1060は、1つまたは複数のデータストア1064を含む場合がある。データストア1064は、様々なタイプの情報を格納するために使用される場合がある。特定の実施形態では、データストア1064に格納された情報は、固有のデータ構造に従って編成される場合がある。特定の実施形態では、各データストア1064は、リレーショナルデータベース、柱状データベース、相関データベース、または他の適切なデータベースであり得る。本開示は、特定のタイプのデータベースを説明するかまたは示すが、本開示は任意の好適なタイプのデータベースを企図する。特定の実施形態は、クライアントシステム1030、ソーシャルネットワーキングシステム1060、またはサードパーティシステム1070が、データストア1064に格納された情報を管理、取出し、修正、追加、または削除することを可能にするインターフェースを提供することができる。
【0082】
特定の実施形態では、ソーシャルネットワーキングシステム1060は、1つまたは複数のソーシャルグラフを1つまたは複数のデータストア1064に格納することができる。特定の実施形態では、ソーシャルグラフは、(各々特定のユーザに対応する)複数のユーザノードまたは(各々特定の概念に対応する)複数の概念ノードを含み得る、複数のノードと、ノードをつなげる複数のエッジとを含み得る。ソーシャルネットワーキングシステム1060は、オンラインソーシャルネットワークのユーザに、他のユーザと通信および対話する能力を提供することができる。特定の実施形態にでは、ユーザは、ソーシャルネットワーキングシステム1060を介してオンラインソーシャルネットワークに参加し、次いで、ユーザが接続されることを望むワーキングシステム1060の幾人かの他のユーザに接続(たとえば、関係)を付加することができる。本明細書では、「友達」という用語は、ソーシャルネットワーキングシステム1060を介してユーザが接続、関連付け、または関係を形成したソーシャルネットワーキングシステム1060の任意の他のユーザを指す場合がある。
【0083】
特定の実施形態では、ソーシャルネットワーキングシステム1060は、ソーシャルネットワーキングシステム1060によってサポートされる様々なタイプのアイテムまたはオブジェクトに対してアクションをとる能力をユーザに提供することができる。限定ではなく一例として、アイテムおよびオブジェクトは、ソーシャルネットワーキングシステム1060のユーザが属することができるグループもしくはソーシャルネットワーク、ユーザが興味があるかもしれないイベントもしくはカレンダーエントリ、ユーザが使用することができるコンピュータベースアプリケーション、ユーザがサービスを介してアイテムを購入もしくは販売することを可能にする取引、ユーザが実行することができる広告との対話、または他の適切なアイテムもしくはオブジェクトを含む場合がある。ユーザは、ソーシャルネットワーキングシステム1060内で、またはソーシャルネットワーキングシステム1060とは別個であり、ネットワーク1010を介してソーシャルネットワーキングシステム1060に結合されたサードパーティシステム1070の外部システムによって表されることが可能などんなものとも対話することができる。
【0084】
特定の実施形態では、ソーシャルネットワーキングシステム1060は、様々なエンティティをリンクすることが可能であり得る。限定ではなく一例として、ソーシャルネットワーキングシステム1060は、ユーザが、互いと対話し、ならびにサードパーティシステム1070もしくは他のエンティティからコンテンツを受信することを可能にするか、またはユーザがアプリケーションプログラミングインターフェース(API)もしくは他の通信チャネルを介してこれらのエンティティと対話することを可能にすることができる。
【0085】
特定の実施形態では、サードパーティシステム1070は、クライアントシステム1030に通信可能に結合されたローカルコンピューティングデバイスを含む場合がある。たとえば、クライアントシステム1030がAR/VRヘッドセットである場合、サードパーティシステム1070は、必要なグラフィックレンダリングを実行し、その後の処理および/または表示のためにレンダリング結果をAR/VRヘッドセット1030に提供するように構成されたローカルラップトップであり得る。特定の実施形態では、サードパーティシステム1070は、クライアントシステム1030に関連付けられたソフトウェア(たとえば、レンダリングエンジン)を実行することができる。サードパーティシステム1070は、ビデオフレームの疎ピクセル情報を有するサンプルデータセットを生成し、クライアントシステム1030に疎データを送信することができる。クライアントシステム1030は、次いで、サンプルデータセットから復元されたフレームを生成することができる。
【0086】
特定の実施形態では、サードパーティシステム1070はまた、1つもしくは複数のタイプのサーバ、1つもしくは複数のデータストア、APIを含むがそれに限定されない1つもしくは複数のインターフェース、1つもしくは複数のウェブサービス、1つもしくは複数のコンテンツソース、1つもしくは複数のネットワーク、またはサーバが通信することができる任意の他の適切な構成要素などを含む場合がある。サードパーティシステム1070は、ソーシャルネットワーキングシステム1060を運営するエンティティとは異なるエンティティによって運営される場合がある。しかしながら、特定の実施形態では、ソーシャルネットワーキングシステム1060およびサードパーティシステム1070は、互いと連携して動作して、ソーシャルネットワーキングシステム1060またはサードパーティシステム1070のユーザにソーシャルネットワーキングサービスを提供することができる。この意味で、ソーシャルネットワーキングシステム1060は、サードパーティシステム1070などの他のシステムが、インターネットにわたってユーザにソーシャルネットワーキングのサービスおよび機能を提供するために使用することができるプラットフォームまたはバックボーンを提供することができる。
【0087】
特定の実施形態では、サードパーティシステム1070は、(たとえば、本明細書に記載された疎サンプルデータセットを含む)サードパーティコンテンツオブジェクトプロバイダを含む場合がある。サードパーティコンテンツオブジェクトプロバイダは、クライアントシステム1030に通信され得るコンテンツオブジェクトの1つまたは複数のソースを含む場合がある。限定としてではなく一例として、コンテンツオブジェクトは、たとえば、映画の上映時間、映画のレビュー、レストランのレビュー、レストランのメニュー、製品情報およびレビュー、または他の好適な情報など、ユーザにとって興味のある物またはアクティビティに関する情報を含み得る。限定としてではなく別の例として、コンテンツオブジェクトは、クーポン、ディスカウントチケット、ギフト券、または他の好適なインセンティブオブジェクトなど、インセンティブコンテンツオブジェクトを含み得る。
【0088】
特定の実施形態では、ソーシャルネットワーキングシステム1060はまた、ソーシャルネットワーキングシステム1060とのユーザの対話を向上させることができるユーザ生成されたコンテンツオブジェクトを含む。ユーザ生成されたコンテンツは、ユーザがソーシャルネットワーキングシステム1060に追加、アップロード、送信、または「投稿」することができるどんなものでも含む場合がある。限定ではなく一例として、ユーザは、クライアントシステム1030からソーシャルネットワーキングシステム1060に投稿を通信する。投稿は、ステータス更新または他のテキストデータ、ロケーション情報、写真、ビデオ、リンク、音楽あるいは他の同様のデータまたはメディアなど、データを含み得る。コンテンツはまた、ニュースフィードまたはストリームなどの「通信チャネル」を介して、サードパーティによってソーシャルネットワーキングシステム1060に追加される場合がある。
【0089】
特定の実施形態では、ソーシャルネットワーキングシステム1060は、様々なサーバ、サブシステム、プログラム、モジュール、ログ、およびデータストアを含む場合がある。特定の実施形態では、ソーシャルネットワーキングシステム1060は、以下の、ウェブサーバ、アクションロガー、API要求サーバ、関連性およびランキングエンジン、コンテンツオブジェクト分類器、通知コントローラ、アクションログ、サードパーティコンテンツオブジェクト公開ログ、推論モジュール、認可/プライバシーサーバ、検索モジュール、広告ターゲッティングモジュール、ユーザインターフェースモジュール、ユーザプロファイルストア、接続ストア、サードパーティコンテンツストア、またはロケーションストアのうちの1つまたは複数を含む場合がある。ソーシャルネットワーキングシステム1060はまた、ネットワークインターフェース、セキュリティ機構、ロードバランサ、フェイルオーバーサーバ、管理およびネットワーク運用コンソール、他の適切な構成要素、またはそれらの任意の適切な組合せなどの適切な構成要素をも含む場合がある。特定の実施形態では、ソーシャルネットワーキングシステム1060は、ユーザプロファイルを格納するための1つまたは複数のユーザプロファイルストアを含む場合がある。ユーザプロファイルは、たとえば、経歴情報、人口統計学的情報、行動情報、ソーシャル情報、あるいは、職歴、学歴、趣味もしくは選好、興味、親和性、またはロケーションなど、他のタイプの記述的情報を含み得る。興味情報は、1つまたは複数のカテゴリーに関係する興味を含み得る。カテゴリーは一般的であるかまたは固有のものであり得る。限定としてではなく一例として、ユーザが、靴のブランドに関する記事に対して「いいね!」を表明した場合、カテゴリーは、ブランド、あるいは「靴」または「衣類」の一般的なカテゴリーであり得る。つながりストアは、ユーザに関するつながり情報を記憶するために使用され得る。つながり情報は、同様のまたは共通の職歴、グループメンバーシップ、趣味、学歴を有するか、あるいはいかなる形でも関係するか、または共通属性を共有する、ユーザを指示し得る。つながり情報は、(内部と外部の両方の)異なるユーザとコンテンツとの間のユーザ定義されたつながりをも含み得る。ウェブサーバは、ネットワーク1010を介してソーシャルネットワーキングシステム1060を1つもしくは複数のクライアントシステム1030または1つもしくは複数のサードパーティシステム1070にリンクさせるために使用される場合がある。ウェブサーバは、ソーシャルネットワーキングシステム1060と1つまたは複数のクライアントシステム1030との間でメッセージを受信およびルーティングするためのメールサーバまたは他のメッセージング機能を含む場合がある。API要求サーバは、サードパーティシステム1070が、1つまたは複数のAPIを呼び出すことによってソーシャルネットワーキングシステム1060からの情報にアクセスすることを可能にすることができる。アクションロガーは、ソーシャルネットワーキングシステム1060上の、またはソーシャルネットワーキングシステム1060から離れた、ユーザのアクションに関するウェブサーバからの通信を受信するために使用される場合がある。アクションログと併せて、サードパーティコンテンツオブジェクトへのユーザ露出についてのサードパーティコンテンツオブジェクトログが維持され得る。通知コントローラは、クライアントシステム1030にコンテンツオブジェクトに関する情報を提供することができる。情報は、通知としてクライアントシステム1030にプッシュされる場合があり、または情報は、クライアントシステム1030から受信された要求に応答してクライアントシステム1030からプルされる場合がある。認可サーバは、ソーシャルネットワーキングシステム1060のユーザの1つまたは複数のプライバシー設定を執行するために使用される場合がある。ユーザのプライバシー設定は、ユーザに関連付けられた特定の情報がどのように共有され得るかを決定する。認可サーバは、ユーザが、たとえば、適切なプライバシー設定を設定することなどにより、自分のアクションをソーシャルネットワーキングシステム1060によって記録されること、または他のシステム(たとえば、サードパーティシステム1070)と共有されることのオプトインまたはオプトアウトを行うことを可能にすることができる。サードパーティコンテンツオブジェクトストアは、サードパーティシステム1070などのサードパーティから受信されたコンテンツオブジェクトを格納するために使用される場合がある。ロケーションストアは、ユーザに関連付けられたクライアントシステム1030から受信されたロケーション情報を格納するために使用される場合がある。広告価格設定モジュールは、ソーシャル情報、現在時間、ロケーション情報、または他の好適な情報を組み合わせて、関連する広告を通知の形態でユーザに提供し得る。
【0090】
図11は、例示的なコンピュータシステム1100を示す。特定の実施形態では、1つまたは複数のコンピュータシステム1100は、本明細書に記載または図示された1つまたは複数の方法の1つまたは複数のステップを実行する。特定の実施形態では、1つまたは複数のコンピュータシステム1100は、本明細書に記載または図示された機能を提供する。特定の実施形態では、1つまたは複数のコンピュータシステム1100上で稼働しているソフトウェアは、本明細書に記載もしくは図示された1つもしくは複数の方法の1つもしくは複数のステップを実行するか、または本明細書に記載もしくは図示された機能を提供する。特定の実施形態は、1つまたは複数のコンピュータシステム1100の1つまたは複数の部分を含む。本明細書では、コンピュータシステムへの言及は、適切な場合、コンピューティングデバイスを包含し得、その逆も同様である。その上、コンピュータシステムへの言及は、適切な場合、1つまたは複数のコンピュータシステムを包含し得る。
【0091】
本開示は、任意の適切な数のコンピュータシステム1100を想定する。本開示は、任意の適切な物理形態をとるコンピュータシステム1100を想定する。限定ではなく一例として、コンピュータシステム1100は、組込み型コンピュータシステム、システムオンチップ(SOC)、(たとえば、コンピュータオンモジュール(COM)もしくはシステムオンモジュール(SOM)などの)シングルボードコンピュータシステム(SBC)、デスクトップコンピュータシステム、ラップトップもしくはノートブックコンピュータシステム、対話型キオスク、メインフレーム、コンピュータシステムのメッシュ、携帯電話、携帯情報端末(PDA)、サーバ、タブレットコンピュータシステム、拡張/仮想現実デバイス、またはこれらのうちの2つ以上の組合せであり得る。必要に応じて、コンピュータシステム1100は、1つもしくは複数のコンピュータシステム1100を含むか、単体もしくは分散型であるか、複数のロケーションにわたるか、複数のマシンにわたるか、複数のデータセンターにわたるか、または1つもしくは複数のネットワーク内の1つもしくは複数のクラウド構成要素を含む場合があるクラウド内に存在する場合がある。必要に応じて、1つまたは複数のコンピュータシステム1100は、実質的な空間的または時間的な制限なしに、本明細書に記載または図示された1つまたは複数の方法の1つまたは複数のステップを実行することができる。限定ではなく一例として、1つまたは複数のコンピュータシステム1100は、リアルタイムまたはバッチモードで、本明細書に記載または図示された1つまたは複数の方法の1つまたは複数のステップを実行することができる。1つまたは複数のコンピュータシステム1100は、必要に応じて、異なる時間に、または異なる位置で、本明細書に記載または図示された1つまたは複数の方法の1つまたは複数のステップを実行することができる。
【0092】
特定の実施形態では、コンピュータシステム1100は、プロセッサ1102と、メモリ1104と、ストレージ1106と、入力/出力(I/O)インターフェース1108と、通信インターフェース1110と、バス1112とを含む。本開示は、特定の配置において特定の数の特定の構成要素を有する特定のコンピュータシステムを説明し、示すが、本開示は、任意の好適な配置において任意の好適な数の任意の好適な構成要素を有する任意の好適なコンピュータシステムを企図する。
【0093】
特定の実施形態では、プロセッサ1102は、コンピュータプログラムを作成する命令などの命令を実行するためのハードウェアを含む。限定ではなく一例として、命令を実行するために、プロセッサ1102は、内部レジスタ、内部キャッシュ、メモリ1104、またはストレージ1106から命令を取り出し(またはフェッチし)、それらを復号および実行し、次いで、内部レジスタ、内部キャッシュ、メモリ1104、またはストレージ1106に1つまたは複数の結果を書き込むことができる。特定の実施形態では、プロセッサ1102は、データ、命令、またはアドレスのための1つまたは複数の内部キャッシュを含む場合がある。本開示は、必要に応じて、任意の適切な数の任意の適切な内部キャッシュを含むプロセッサ1102を想定する。限定ではなく一例として、プロセッサ1102は、1つまたは複数の命令キャッシュと、1つまたは複数のデータキャッシュと、1つまたは複数のトランスレーションルックアサイドバッファ(TLB)とを含む場合がある。命令キャッシュ内の命令は、メモリ1104またはストレージ1106内の命令のコピーであり得、命令キャッシュは、プロセッサ1102によるそれらの命令の取出しを高速化することができる。データキャッシュ内のデータは、プロセッサ1102において実行する命令が動作する対象のメモリ1104またはストレージ1106内のデータのコピー、プロセッサ1102において実行する後続の命令によるアクセスのため、またはメモリ1104もしくはストレージ1106に書き込むためのプロセッサ1102において実行された前の命令の結果、あるいは他の適切なデータであり得る。データキャッシュは、プロセッサ1102による読取り動作または書込み動作を高速化することができる。TLBは、プロセッサ1102のための仮想アドレストランスレーションを高速化することができる。特定の実施形態では、プロセッサ1102は、データ、命令、またはアドレスのための1つまたは複数の内部レジスタを含む場合がある。本開示は、必要に応じて、任意の適切な数の任意の適切な内部レジスタを含むプロセッサ1102を想定する。必要に応じて、プロセッサ1102は、1つまたは複数の算術論理ユニット(ALU)を含むか、マルチコアプロセッサであるか、または1つもしくは複数のプロセッサ1102を含む場合がある。本開示は、特定のプロセッサを説明し、示すが、本開示は任意の好適なプロセッサを企図する。
【0094】
特定の実施形態では、メモリ1104は、プロセッサ1102が実行するための命令、またはプロセッサ1102が動作する対象のデータを記憶するためのメインメモリを含む。限定ではなく一例として、コンピュータシステム1100は、ストレージ1106または(たとえば、別のコンピュータシステム1100などの)別のソースからメモリ1104に命令をロードすることができる。プロセッサ1102は、次いで、メモリ1104から内部レジスタまたは内部キャッシュに命令をロードすることができる。命令を実行するために、プロセッサ1102は、内部レジスタまたは内部キャッシュから命令を取り出し、それらを復号することができる。命令の実行中または実行後に、プロセッサ1102は、(中間結果または最終結果であり得る)1つまたは複数の結果を内部レジスタまたは内部キャッシュに書き込むことができる。プロセッサ1102は、次いで、メモリ1104にそれらの結果のうちの1つまたは複数を書き込むことができる。特定の実施形態では、プロセッサ1102は、(ストレージ1106または他の場所とは対照的な)1つもしくは複数の内部レジスタもしくは内部キャッシュ内またはメモリ1104内の命令のみを実行し、(ストレージ1106または他の場所とは対照的な)1つもしくは複数の内部レジスタもしくは内部キャッシュ内またはメモリ1104内のデータに対してのみ動作する。(アドレスバスおよびデータバスを各々含む場合がある)1つまたは複数のメモリバスは、プロセッサ1102をメモリ1104に結合することができる。バス1112は、以下に記載されるように、1つまたは複数のメモリバスを含む場合がある。特定の実施形態では、1つまたは複数のメモリ管理ユニット(MMU)は、プロセッサ1102とメモリ1104との間に存在し、プロセッサ1102によって要求されるメモリ1104へのアクセスを容易にする。特定の実施形態では、メモリ1104はランダムアクセスメモリ(RAM)を含む。このRAMは、適切な場合、揮発性メモリであり得る。適切な場合、このRAMは、ダイナミックRAM(DRAM)またはスタティックRAM(SRAM)であり得る。その上、適切な場合、このRAMは、シングルポートまたはマルチポートRAMであり得る。本開示は、任意の好適なRAMを企図する。メモリ1104は、必要に応じて、1つまたは複数のメモリ1104を含む場合がある。本開示は、特定のメモリを説明し、示すが、本開示は任意の好適なメモリを企図する。
【0095】
特定の実施形態では、ストレージ1106は、データまたは命令のための大容量ストレージを含む。限定ではなく一例として、ストレージ1106は、ハードディスクドライブ(HDD)、フロッピーディスクドライブ、フラッシュメモリ、光ディスク、光磁気ディスク、磁気テープ、もしくはユニバーサルシリアルバス(USB)ドライブ、またはこれらのうちの2つ以上の組合せを含む場合がある。ストレージ1106は、必要に応じて、リムーバブル媒体または非リムーバブル(もしくは固定)媒体を含む場合がある。ストレージ1106は、必要に応じて、コンピュータシステム1100の内部または外部にあり得る。特定の実施形態では、ストレージ1106は、不揮発性ソリッドステートメモリである。特定の実施形態では、ストレージ1106は、読取り専用メモリ(ROM)を含む。適切な場合、このROMは、マスクプログラムROM、プログラマブルROM(PROM)、消去可能PROM(EPROM)、電気的消去可能PROM(EEPROM)、電気的書き換え可能ROM(EAROM)、またはフラッシュメモリ、あるいはこれらのうちの2つまたはそれ以上の組合せであり得る。本開示は、任意の適切な物理形態をとる大容量ストレージ1106を想定する。ストレージ1106は、必要に応じて、プロセッサ1102とストレージ1106との間の通信を容易にする1つまたは複数のストレージ制御ユニットを含む場合がある。必要に応じて、ストレージ1106は、1つまたは複数のストレージ1106を含む場合がある。本開示は、特定のストレージを説明し、示すが、本開示は任意の好適なストレージを企図する。
【0096】
特定の実施形態では、I/Oインターフェース1108は、コンピュータシステム1100と1つまたは複数のI/Oデバイスとの間の通信用の1つまたは複数のインターフェースを提供する、ハードウェア、ソフトウェア、またはその両方を含む。コンピュータシステム1100は、必要に応じて、これらのI/Oデバイスのうちの1つまたは複数を含む場合がある。これらのI/Oデバイスのうちの1つまたは複数は、人とコンピュータシステム1100との間の通信を可能にすることができる。限定としてではなく一例として、I/Oデバイスは、キーボード、キーパッド、マイクロフォン、モニタ、マウス、プリンタ、スキャナ、スピーカー、スチールカメラ、スタイラス、タブレット、タッチスクリーン、トラックボール、ビデオカメラ、別の好適なI/Oデバイス、またはこれらのうちの2つまたはそれ以上の組合せを含み得る。I/Oデバイスは1つまたは複数のセンサーを含み得る。本開示は、任意の適切なI/Oデバイス、およびそれらのための任意の適切なI/Oインターフェース1108を想定する。必要に応じて、I/Oインターフェース1108は、プロセッサ1102がこれらのI/Oデバイスのうちの1つまたは複数を駆動することを可能にする1つまたは複数のデバイスまたはソフトウェアドライバを含む場合がある。I/Oインターフェース1108は、必要に応じて、1つまたは複数のI/Oインターフェース1108を含む場合がある。本開示は、特定のI/Oインターフェースを説明し、示すが、本開示は任意の好適なI/Oインターフェースを企図する。
【0097】
特定の実施形態では、通信インターフェース1110は、コンピュータシステム1100と、1つもしくは複数の他のコンピュータシステム1100または1つもしくは複数のネットワークとの間の(たとえば、パケットベース通信などの)通信用の1つまたは複数のインターフェースを提供する、ハードウェア、ソフトウェア、またはその両方を含む。限定ではなく一例として、通信インターフェース1110は、イーサネットもしくは他のワイヤベースネットワークと通信するためのネットワークインターフェースコントローラ(NIC)もしくはネットワークアダプタ、またはWI-FIネットワークなどのワイヤレスネットワークと通信するためのワイヤレスNIC(WNIC)もしくはワイヤレスアダプタを含む場合がある。本開示は、任意の適切なネットワーク、およびそのための任意の適切な通信インターフェース1110を想定する。限定ではなく一例として、コンピュータシステム1100は、アドホックネットワーク、パーソナルエリアネットワーク(PAN)、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、メトロポリタンエリアネットワーク(MAN)、またはインターネットの1つもしくは複数の部分、あるいはこれらのうちの2つ以上の組合せと通信することができる。これらのネットワークのうちの1つまたは複数の1つまたは複数の部分は、ワイヤードまたはワイヤレスであり得る。一例として、コンピュータシステム1100は、(たとえば、BLUETOOTH WPANなどの)ワイヤレスPAN(WPAN)、WI-FIネットワーク、WI-MAXネットワーク、(たとえば、モバイル通信用グローバルシステム(GSM)ネットワークなどの)携帯電話ネットワーク、もしくは他の適切なワイヤレスネットワーク、またはこれらのうちの2つ以上の組合せと通信することができる。コンピュータシステム1100は、必要に応じて、これらのネットワークのいずれかのための任意の適切な通信インターフェース1110を含む場合がある。通信インターフェース1110は、必要に応じて、1つまたは複数の通信インターフェース1110を含む場合がある。本開示は、特定の通信インターフェースを説明し、示すが、本開示は任意の好適な通信インターフェースを企図する。
【0098】
特定の実施形態では、バス1112は、コンピュータシステム1100の構成要素を互いに結合する、ハードウェア、ソフトウェア、またはその両方を含む。限定ではなく一例として、バス1112は、アクセラレーテッドグラフィックスポート(AGP)もしくは他のグラフィックスバス、拡張業界標準アーキテクチャ(EISA)バス、フロントサイドバス(FSB)、HYPERTRANSPORT(HT)相互接続、業界標準アーキテクチャ(ISA)バス、INFINIBAND相互接続、ローピンカウント(LPC)バス、メモリバス、マイクロチャネルアーキテクチャ(MCA)バス、周辺構成要素相互接続(PCI)バス、PCI-Express(PCIe)バス、シリアルアドバンストテクノロジアタッチメント(SATA)バス、ビデオエレクトロニクス規格協会ローカル(VLB)バス、または別の適切なバス、あるいはこれらのうちの2つ以上の組合せを含む場合がある。バス1112は、必要に応じて、1つまたは複数のバス1112を含む場合がある。本開示は、特定のバスを説明し、示すが、本開示は任意の好適なバスまたは相互接続を企図する。
【0099】
本明細書では、1つまたは複数のコンピュータ可読非一時的記憶媒体は、適切な場合、(たとえば、フィールドプログラマブルゲートアレイ(FPGA)または特定用途向けIC(ASIC)などの)1つまたは複数の半導体ベースまたは他の集積回路(IC)、ハードディスクドライブ(HDD)、ハイブリッドハードドライブ(HHD)、光ディスク、光ディスクドライブ(ODD)、光磁気ディスク、光磁気ドライブ、フロッピーディスケット、フロッピーディスクドライブ(FDD)、磁気テープ、ソリッドステートドライブ(SSD)、RAMドライブ、セキュアデジタルカードまたはドライブ、任意の他の好適なコンピュータ可読非一時的記憶媒体、あるいはこれらのうちの2つまたはそれ以上の任意の好適な組合せを含み得る。コンピュータ可読非一時的記憶媒体は、適切な場合、揮発性、不揮発性、または揮発性と不揮発性との組合せであり得る。
【0100】
本明細書では、「または」は、明確に別段に指示されていない限り、またはコンテキストによって別段に指示されていない限り、包括的であり、排他的ではない。したがって、本明細書では、「AまたはB」は、明確に別段に指示されていない限り、またはコンテキストによって別段に指示されていない限り、「A、B、またはその両方」を意味する。その上、「および」は、明確に別段に指示されていない限り、またはコンテキストによって別段に指示されていない限り、共同と個別の両方である。したがって、本明細書では、「AおよびB」は、明確に別段に指示されていない限り、またはコンテキストによって別段に指示されていない限り、「共同でまたは個別に、AおよびB」を意味する。
【0101】
本開示の範囲は、当業者が理解するであろう、本明細書で説明または示される例示的な実施形態に対するすべての変更、置換、変形、改変、および修正を包含する。本開示の範囲は、本明細書で説明または示される例示的な実施形態に限定されない。その上、本開示は、本明細書のそれぞれの実施形態を、特定の構成要素、要素、特徴、機能、動作、またはステップを含むものとして説明し、示すが、これらの実施形態のいずれも、当業者が理解するであろう、本明細書のどこかに説明または示される構成要素、要素、特徴、機能、動作、またはステップのうちのいずれかの任意の組合せまたは置換を含み得る。さらに、特定の機能を実施するように適応されるか、配置されるか、実施することが可能であるか、実施するように構成されるか、実施することが可能にされるか、実施するように動作可能であるか、または実施するように動作する、装置またはシステムあるいは装置またはシステムの構成要素に対する添付の特許請求の範囲における参照は、その装置、システム、または構成要素が、そのように適応されるか、配置されるか、可能であるか、構成されるか、可能にされるか、動作可能であるか、または動作する限り、その装置、システム、構成要素またはその特定の機能が、アクティブにされるか、オンにされるか、またはロック解除されるか否かにかかわらず、その装置、システム、構成要素を包含する。さらに、本開示は、特定の実施形態を、特定の利点を提供するものとして説明するかまたは示すが、特定の実施形態は、これらの利点のいずれをも提供しないか、いくつかを提供するか、またはすべてを提供し得る。
図1
図2
図3
図4
図5A
図5B
図6A
図6B
図7
図8A
図8B
図9
図10
図11
【国際調査報告】