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

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

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

(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-08-02
(45)【発行日】2024-08-13
(54)【発明の名称】セマンティック融合
(51)【国際特許分類】
   G06T 7/00 20170101AFI20240805BHJP
   G06T 7/55 20170101ALI20240805BHJP
   G06T 7/70 20170101ALI20240805BHJP
   G06T 19/00 20110101ALI20240805BHJP
   G06F 3/04815 20220101ALI20240805BHJP
【FI】
G06T7/00 C
G06T7/55
G06T7/70
G06T19/00 A
G06F3/04815
【請求項の数】 15
(21)【出願番号】P 2021553795
(86)(22)【出願日】2020-04-30
(65)【公表番号】
(43)【公表日】2022-07-07
(86)【国際出願番号】 US2020030693
(87)【国際公開番号】W WO2020227003
(87)【国際公開日】2020-11-12
【審査請求日】2023-02-08
(31)【優先権主張番号】16/403,421
(32)【優先日】2019-05-03
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】515046968
【氏名又は名称】メタ プラットフォームズ テクノロジーズ, リミテッド ライアビリティ カンパニー
【氏名又は名称原語表記】META PLATFORMS TECHNOLOGIES, LLC
(74)【代理人】
【識別番号】110002974
【氏名又は名称】弁理士法人World IP
(72)【発明者】
【氏名】チェン, ユー ファン
(72)【発明者】
【氏名】ニューコム, リチャード アンドリュー
(72)【発明者】
【氏名】マー, リンニ
【審査官】小池 正彦
(56)【参考文献】
【文献】米国特許出願公開第2019/0043203(US,A1)
【文献】国際公開第2019/012632(WO,A1)
【文献】Dinh-Cuong Hoang,外2名,High-quality Instance-aware Semantic 3D Map Using RGB-D Camera,arXiv.org Cornell University Library,Cornell University Library,2019年02月25日,https://arxiv.org/pdf/1903.10782v1.pdf
【文献】Martin Runz,外2名,MaskFusion: Real-Time Recognition, Tracking and Reconstruction of Multiple Moving Objects,2018 IEEE International Symposium on Mixed and Augmented Reality (ISMAR),米国,IEEE,2018年10月16日,https://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=8613746,DOI: 10.1109/ISMAR.2018.00024
【文献】山口 智史 他,人物3Dモデルの意味的領域分割,映像情報メディア学会技術報告,Vol.43 No.9,日本,(一社)映像情報メディア学会,2019年03月05日
(58)【調査した分野】(Int.Cl.,DB名)
G06T 7/00
G06T 7/55
G06T 7/70
G06T 19/00
G06F 3/04815
(57)【特許請求の範囲】
【請求項1】
コンピューティングシステムによって、
複数のカメラポーズから1つまたは複数のカメラによってキャプチャされた複数の画像にアクセスすることと、
前記複数の画像を使用して、前記複数の画像中でキャプチャされた1つまたは複数のオブジェクトのセマンティック情報を含む複数のセマンティックセグメンテーションを生成することと、
前記1つまたは複数のオブジェクトの3次元(3D)モデルにアクセスすることと、
前記複数のカメラポーズを使用して、前記1つまたは複数のオブジェクトの前記3Dモデルに対する対応する複数の仮想カメラポーズを決定することと、
前記複数の仮想カメラポーズを使用して前記複数のセマンティックセグメンテーションの前記セマンティック情報を前記3Dモデルのほうへ投影することによってセマンティック3Dモデルを生成することと
を含み、前記複数のセマンティックセグメンテーションのうち2つ以上からの前記セマンティック情報は、前記1つまたは複数のオブジェクトのうち1つのオブジェクトに適用するために組み合わされ、前記複数のセマンティックセグメンテーションのそれぞれは、前記複数の仮想カメラポーズのそれぞれに対応する、方法。
【請求項2】
前記複数の画像を使用して、前記複数の画像中でキャプチャされた前記1つまたは複数のオブジェクトの幾何学的情報を含む複数のジオメトリベースセグメンテーションを生成することをさらに含み、任意選択的に、前記複数のセマンティックセグメンテーションの前記セマンティック情報を投影することによって前記セマンティック3Dモデルを生成することが、前記複数の画像中でキャプチャされた前記1つまたは複数のオブジェクトに対応する前記セマンティック情報を投影するために前記1つまたは複数のオブジェクトの前記幾何学的情報を使用することをさらに含む、請求項1に記載の方法。
【請求項3】
前記複数の画像を使用して、前記複数の画像中でキャプチャされた前記1つまたは複数のオブジェクトのオブジェクト識別を含む複数のインスタンスセグメンテーションを生成することをさらに含む、請求項1に記載の方法。
【請求項4】
前記複数の仮想カメラポーズを使用して前記複数のインスタンスセグメンテーションの前記オブジェクト識別を前記3Dモデルのほうへ投影することによってインスタンス3Dモデルを生成することをさらに含み、任意選択的に、前記インスタンス3Dモデルを生成することが、前記1つまたは複数のオブジェクトのうちの1つに適用されるべき前記複数のインスタンスセグメンテーションの各々からのオブジェクト識別を組み合わせることを含む、請求項3に記載の方法。
【請求項5】
前記複数の画像中でキャプチャされた前記1つまたは複数のオブジェクトの前記セマンティック情報に基づいてセマンティックツリーを生成することをさらに含み、前記セマンティックツリーが複数のセマンティックレベルを含み、各セマンティックレベルがセマンティック情報のしきい値量に対応する、請求項1に記載の方法。
【請求項6】
前記複数のセマンティックレベルが、
前記1つまたは複数のオブジェクトの個々のオブジェクトに対応する情報を含む第1のセマンティックレベル、
前記1つまたは複数のオブジェクトのオブジェクトクラスに対応する情報を含む第2のセマンティックレベル、および
前記1つまたは複数のオブジェクトのセマンティックセットに対応する情報を含む第3のセマンティックレベル
のうちの1つまたは複数を含む、請求項5に記載の方法。
【請求項7】
前記セマンティック情報を投影することが、特定のセマンティックレベルの前記セマンティック情報を前記3Dモデルのほうへ投影することをさらに含む、請求項5に記載の方法。
【請求項8】
前記1つまたは複数のオブジェクトの前記3Dモデルが、前記複数の画像に基づいて生成される、請求項1に記載の方法。
【請求項9】
前記複数のセマンティックセグメンテーションからの前記1つまたは複数のオブジェクトの各セマンティック情報がそれぞれの前記オブジェクトに対応する1つまたは複数の信頼値を計算することをさらに含む、請求項1に記載の方法。
【請求項10】
オブジェクトが複数の環境に関連付けられ、前記1つまたは複数の信頼値は、前記1つまたは複数のオブジェクトの前記セマンティック情報が特定の環境内のオブジェクトに対応するかどうかに基づく、請求項9に記載の方法。
【請求項11】
前記複数のセマンティックセグメンテーションの前記セマンティック情報を前記3Dモデルのほうへ投影することは、
1つのオブジェクトについてのセマンティック情報の前記信頼値がしきい信頼値を超えると決定することと、
前記信頼値が前記しきい信頼値を超えることに応答して、前記セマンティック情報をそれぞれの前記オブジェクトの前記3Dモデルのほうへ投影することと
をさらに含む、請求項9に記載の方法。
【請求項12】
しきい信頼値よりも小さい信頼値に関連付けられた前記セマンティック情報が廃棄される、請求項9に記載の方法。
【請求項13】
記セマンティック情報を前記3Dモデルのほうへ投影することが、前記3Dモデルにおけるそれぞれの前記オブジェクトに対応するラベルを追加することを含む、請求項1に記載の方法。
【請求項14】
ソフトウェアを具現する1つまたは複数のコンピュータ可読非一時的記憶媒体であって、前記ソフトウェアが、実行されたとき、
複数のカメラポーズから1つまたは複数のカメラによってキャプチャされた複数の画像にアクセスすることと、
前記複数の画像を使用して、前記複数の画像中でキャプチャされた1つまたは複数のオブジェクトのセマンティック情報を含む複数のセマンティックセグメンテーションを生成することと、
前記1つまたは複数のオブジェクトの3次元(3D)モデルにアクセスすることと、
前記複数のカメラポーズを使用して、前記1つまたは複数のオブジェクトの前記3Dモデルに対する対応する複数の仮想カメラポーズを決定することと、
前記複数の仮想カメラポーズを使用して前記複数のセマンティックセグメンテーションの前記セマンティック情報を前記3Dモデルのほうへ投影することによってセマンティック3Dモデルを生成することと
を行うように動作可能であり、前記複数のセマンティックセグメンテーションのうち2つ以上からの前記セマンティック情報は、前記1つまたは複数のオブジェクトのうち1つのオブジェクトに適用するために組み合わされ、前記複数のセマンティックセグメンテーションのそれぞれは、前記複数の仮想カメラポーズのそれぞれに対応する、1つまたは複数のコンピュータ可読非一時的記憶媒体。
【請求項15】
1つまたは複数のプロセッサと、前記プロセッサによって実行可能な命令を含む、前記プロセッサに結合された非一時的メモリとを備えるシステムであって、前記プロセッサが、前記命令を実行したとき、
複数のカメラポーズから1つまたは複数のカメラによってキャプチャされた複数の画像にアクセスすることと、
前記複数の画像を使用して、前記複数の画像中でキャプチャされた1つまたは複数のオブジェクトのセマンティック情報を含む複数のセマンティックセグメンテーションを生成することと、
前記1つまたは複数のオブジェクトの3次元(3D)モデルにアクセスすることと、
前記複数のカメラポーズを使用して、前記1つまたは複数のオブジェクトの前記3Dモデルに対する対応する複数の仮想カメラポーズを決定することと、
前記複数の仮想カメラポーズを使用して前記複数のセマンティックセグメンテーションの前記セマンティック情報を前記3Dモデルのほうへ投影することによってセマンティック3Dモデルを生成することと
を行うように動作可能であり、前記複数のセマンティックセグメンテーションのうち2つ以上からの前記セマンティック情報は、前記1つまたは複数のオブジェクトのうち1つのオブジェクトに適用するために組み合わされ、前記複数のセマンティックセグメンテーションのそれぞれは、前記複数の仮想カメラポーズのそれぞれに対応する、システム。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願の相互参照
本出願は、その内容全体がすべての目的のために参照により本明細書に組み込まれる、2019年5月3日に出願された米国出願第16/403,421号からの優先権を主張する。
【0002】
本開示は、一般に、仮想現実環境におけるユーザ対話および体験のための制御およびインターフェースに関する。
【背景技術】
【0003】
仮想現実は、一見現実のまたは物理的なやり方でユーザが対話することができる環境(たとえば、3D環境)のコンピュータ生成されたシミュレーションである。単一のデバイスまたはデバイスのグループであり得る仮想現実システムが、たとえば、仮想現実ヘッドセットまたは何らかの他のディスプレイデバイス上で、ユーザに表示するために、このシミュレーションを生成し得る。シミュレーションは、現実のまたは想像上の環境を模倣するために、画像、音、触覚フィードバック、および/または他の感覚を含み得る。仮想現実がますます顕著になるにつれて、仮想現実の、有用な適用例の範囲は急速に広がっている。仮想現実の最も一般的な適用例は、ゲームまたは他の対話型コンテンツを伴うが、そのすぐ後ろに、エンターテインメントまたはトレーニング目的のための視覚メディアアイテム(たとえば、写真、ビデオ)の視聴など、他の適用例がある。現実の会話および他のユーザ対話をシミュレートするために仮想現実を使用することの実現可能性も検討されている。
【発明の概要】
【0004】
仮想(または拡張)現実環境をレンダリングし、仮想(または拡張)現実環境と対話する様々な異なるやり方が本明細書で開示される。仮想現実システムが仮想環境をレンダリングし得、これは、1人または複数のユーザに表示するためにレンダリングされる仮想空間を含み得る。ユーザは、任意の好適な手段を通してこの仮想空間およびより広い仮想環境内で観察し、対話し得る。特定の実施形態では、仮想現実システムは、ユーザに提示すべき仮想空間を生成し得る。限定としてではなく一例として、仮想現実システムは、ユーザを内部に置くための仮想アリーナを生成し得る。特定の実施形態では、仮想空間のより良い理解をユーザに提供するために、仮想現実システムは、環境内のオブジェクトをラベリングし得る。ラベルは、オブジェクト(たとえば、椅子、デスクなど)の説明、オブジェクトのタイプまたはオブジェクトがどんな種類のオブジェクトであるかに対応するカラーコーディング、オブジェクトを識別するためのバウンディングボックス、および他の種類のラベリング方式であり得る。ラベルを提供することに加えて、システムは、環境内のオブジェクトに投影されるべきマスクを生成し得る。様々なオブジェクトのこの視覚表現は洞察を提供するが、それらはまた、環境の完全性が維持されることを保証することによって仮想現実システムを助ける。ユーザは、誤識別されたオブジェクトにアノテーションを付け、修復し得る。たとえば、ラグが床として誤識別された場合。オブジェクトの識別の保守は、仮想現実システムがモデルをトレーニングすることを通してユーザのための環境を正確にレンダリングし得ることを保証する。セマンティックモデルは、いくつかのオブジェクトを識別し、およびそれらのオブジェクトがどのように仮想現実環境に適合するかを識別するようにトレーニングされ得る。たとえば、複数のオブジェクトは、家具のような様々なセマンティックセットに対応し得る。ユーザが仮想現実環境内の家具を再編成することを希望する場合、ユーザは、フィルタリングツールの使用を通して、再配置すべき家具を迅速に除去することができる。しかしながら、そのフィルタリングツールは、オブジェクトが正しく識別され、適切なセマンティックセットにグループ化されない限り、適切に働かない。他の適用例は、現実世界ビュー内に拡張現実要素を投影することを含み得る。仮想現実システムは、現実世界と適宜にインターフェースするためにオブジェクトを識別しなければならないことがある。たとえば、ユーザは、生成されたテーブルをダイニングルームエリアの現実世界ビュー内に置くことを希望し得る。ダイニングルームエリアは、ラグと硬材床とを有し得る。生成されたテーブルを正確に置くために、仮想現実システムは、床およびラグの別個のオブジェクトを識別しなければならない。これは、識別されたオブジェクトに対応する情報を提供する複数のセグメンテーションを生成することを通してシーン内のオブジェクトを正しく識別するセマンティックモデルを構築することを通して達成され得る。
【0005】
3Dセマンティックモデルを生成するために、特定の実施形態では、仮想現実システムは、複数のカメラポーズから1つまたは複数のカメラによってキャプチャされた複数の画像にアクセスし得る。限定としてではなく一例として、画像は、オフィス環境など、現実世界の環境からキャプチャされ得る。限定としてではなく別の例として、画像は、画像のストアから生成されるかまたはアクセスされ得る。特定の実施形態では、仮想現実システムは、画像を使用して、その画像内でキャプチャされたオブジェクトのセマンティック情報を含む複数のセマンティックセグメンテーションを生成し得る。セマンティックセグメンテーションおよびセマンティック情報が説明されたが、他のタイプのセグメンテーションおよび情報が、画像を使用して生成され得る。特定の実施形態では、仮想現実システムは、オブジェクトの3次元(3D)モデルにアクセスし得る。限定としてではなく一例として、仮想現実システムはオブジェクトの3Dモデルを、3Dモデルをレンダリングすることによって、キャプチャされた画像に基づいて生成し得る。特定の実施形態では、仮想現実システムは、カメラポーズを使用して、オブジェクトの3Dモデルに対する対応する複数の仮想カメラポーズを決定し得る。特定の実施形態では、仮想現実システムは、複数の仮想カメラポーズを使用して複数のセマンティックセグメンテーションのセマンティック情報を3Dモデルのほうへ投影することによってセマンティック3Dモデルを生成し得る。
【0006】
仮想(または拡張)現実環境をレンダリングし、仮想(または拡張)現実環境と対話する様々な異なるやり方が本明細書で開示される。仮想現実システムが仮想環境をレンダリングし得、これは、1人または複数のユーザに表示するためにレンダリングされる仮想空間を含み得る。ユーザは、任意の好適な手段を通してこの仮想空間およびより広い仮想環境内で観察し、対話し得る。開示される方法の1つの目標は、ユーザに直観的な体験を提供することであり、これは、「存在」の感知、またはユーザが実際に仮想環境中にいるという感じをユーザに与えるものである。
【0007】
本発明の実施形態は、人工現実システムを含むか、または人工現実システムに関連して実装され得る。人工現実は、ユーザへの提示の前に何らかの様式で調整された形式の現実であり、これは、たとえば、仮想現実(VR)、拡張現実(AR)、複合現実(MR)、ハイブリッド現実、あるいはそれらの何らかの組合せおよび/または派生物を含み得る。人工現実コンテンツは、完全に生成されたコンテンツ、またはキャプチャされたコンテンツ(たとえば、現実世界の写真)と組み合わせられた生成されたコンテンツを含み得る。人工現実コンテンツは、ビデオ、オーディオ、触覚フィードバック、またはそれらの何らかの組合せを含み得、それらのいずれも、単一のチャネルまたは複数のチャネルにおいて提示され得る(観察者に3次元効果をもたらすステレオビデオなど)。さらに、いくつかの実施形態では、人工現実は、たとえば、人工現実におけるコンテンツを作り出すために使用される、および/または人工現実において使用される(たとえば、人工現実におけるアクティビティを実施する)アプリケーション、製品、アクセサリ、サービス、またはそれらの何らかの組合せに関連付けられ得る。人工現実コンテンツを提供する人工現実システムは、ホストコンピュータシステムに接続されたヘッドマウントディスプレイ(HMD)、スタンドアロンHMD、モバイルデバイスまたはコンピューティングシステム、あるいは、1人または複数の観察者に人工現実コンテンツを提供することが可能な任意の他のハードウェアプラットフォームを含む、様々なプラットフォーム上に実装され得る。
【0008】
本明細書で開示される実施形態は例にすぎず、本開示の範囲はそれらに限定されない。特定の実施形態は、上記で開示された実施形態の構成要素、要素、特徴、機能、動作、またはステップのすべてを含むか、いくつかを含むか、またはいずれをも含まないことがある。本発明による実施形態は、特に、方法、記憶媒体、システムおよびコンピュータプログラム製品を対象とする添付の特許請求の範囲で開示され、1つの請求項カテゴリー、たとえば、方法において述べられた任意の特徴は、別の請求項カテゴリー、たとえば、システムにおいても請求され得る。添付の特許請求の範囲における従属関係または参照は、形式的理由で選定されるにすぎない。ただし、前の請求項への意図的な参照(特に複数の従属関係)から生じる主題も請求され得、その結果、請求項とその特徴との任意の組合せが、開示され、添付の特許請求の範囲で選定された従属関係にかかわらず請求され得る。請求され得る主題は、添付の特許請求の範囲に記載の特徴の組合せだけでなく、特許請求の範囲における特徴の任意の他の組合せをも含み、特許請求の範囲において述べられた各特徴は、特許請求の範囲における任意の他の特徴または他の特徴の組合せと組み合わせられ得る。さらに、本明細書で説明または示される実施形態および特徴のいずれも、別個の請求項において、ならびに/あるいは、本明細書で説明もしくは示される任意の実施形態もしくは特徴との、または添付の特許請求の範囲の特徴のいずれかとの任意の組合せで請求され得る。
【0009】
一態様では、本発明は、添付の特許請求の範囲による方法を開示する。本方法は、コンピューティングシステムによって、
複数のカメラポーズから1つまたは複数のカメラによってキャプチャされた複数の画像にアクセスすることと、
複数の画像を使用して、複数の画像中でキャプチャされた1つまたは複数のオブジェクトのセマンティック情報を含む複数のセマンティックセグメンテーションを生成することと、
1つまたは複数のオブジェクトの3次元(3D)モデルにアクセスすることと、
複数のカメラポーズを使用して、1つまたは複数のオブジェクトの3Dモデルに対する対応する複数の仮想カメラポーズを決定することと、
複数の仮想カメラポーズを使用して複数のセマンティックセグメンテーションのセマンティック情報を3Dモデルのほうへ投影することによってセマンティック3Dモデルを生成することと
を含む。
【0010】
本発明の一実施形態では、本方法は、複数の画像を使用して、複数の画像中でキャプチャされた1つまたは複数のオブジェクトの幾何学的情報を含む複数のジオメトリベースセグメンテーションを生成することをさらに含み得る。任意選択的に、複数のセマンティックセグメンテーションのセマンティック情報を投影することによってセマンティック3Dモデルを生成することは、複数の画像中でキャプチャされた1つまたは複数のオブジェクトに対応するセマンティック情報を投影するために1つまたは複数のオブジェクトの幾何学的情報を使用することをさらに含み得る。
【0011】
本発明の別の実施形態では、本方法は、複数の画像を使用して、複数の画像中でキャプチャされた1つまたは複数のオブジェクトのオブジェクト識別を含む複数のインスタンスセグメンテーションを生成することをさらに含み得る。任意選択的に、本方法は、複数の仮想カメラポーズを使用して複数のインスタンスセグメンテーションのオブジェクト識別を3Dモデルのほうへ投影することによってインスタンス3Dモデルを生成することをさらに含み得、インスタンス3Dモデルを生成することは、1つまたは複数のオブジェクトのうちの1つに適用されるべき複数のインスタンスセグメンテーションの各々からのオブジェクト識別を組み合わせることをさらに含み得る。
【0012】
本発明のまた別の実施形態では、本方法は、複数の画像中でキャプチャされた1つまたは複数のオブジェクトのセマンティック情報に基づいてセマンティックツリーを生成することをさらに含み得、セマンティックツリーは複数のセマンティックレベルを含み得、各セマンティックレベルはセマンティック情報のしきい値量に対応し得る。任意選択的に、複数のセマンティックレベルは、
1つまたは複数のオブジェクトの個々のオブジェクトに対応する情報を含む第1のセマンティックレベル、
1つまたは複数のオブジェクトのオブジェクトクラスに対応する情報を含む第2のセマンティックレベル、および
1つまたは複数のオブジェクトのセマンティックセットに対応する情報を含む第3のセマンティックレベル
のうちの1つまたは複数をさらに含み得る。
【0013】
本発明のさらなる実施形態では、本方法は、複数の画像中でキャプチャされた1つまたは複数のオブジェクトのセマンティック情報に基づいてセマンティックツリーを生成することをさらに含み得、セマンティックツリーは複数のセマンティックレベルを含み得、各セマンティックレベルはセマンティック情報のしきい値量に対応し得、セマンティック情報を投影することは、特定のセマンティックレベルのセマンティック情報を3Dモデルのほうへ投影することをさらに含み得る。
【0014】
本発明の別の実施形態では、本方法において、1つまたは複数のオブジェクトの3Dモデルは、複数の画像に基づいて生成され得る。
【0015】
本発明のまた別の実施形態では、本方法は、複数のセマンティックセグメンテーションからの1つまたは複数のオブジェクトの各セマンティック情報がそれぞれのオブジェクトに対応する1つまたは複数の信頼値を計算することをさらに含み得る。任意選択的に、オブジェクトが複数の環境に関連付けられ得、1つまたは複数の信頼値は、1つまたは複数のオブジェクトのセマンティック情報が特定の環境内のオブジェクトに対応するかどうかに基づき得る。
【0016】
本発明のまた別の実施形態では、本方法は、複数のセマンティックセグメンテーションからの1つまたは複数のオブジェクトの各セマンティック情報がそれぞれのオブジェクトに対応する1つまたは複数の信頼値を計算することをさらに含み得る。任意選択的に、複数のセマンティックセグメンテーションのセマンティック情報を3Dモデルのほうへ投影することは、
1つのオブジェクトについてのセマンティック情報の信頼値がしきい信頼値を超えると決定することと、
信頼値がしきい信頼値を超えることに応答して、セマンティック情報をそれぞれのオブジェクトの3Dモデルのほうへ投影することと
をさらに含み得る。
代替的に、またはそれの追加として、しきい信頼値よりも小さい信頼値に関連付けられたセマンティック情報は廃棄される。
【0017】
本発明のさらなる実施形態では、本方法において、セマンティック3Dモデルを生成することは、1つまたは複数のオブジェクトのうちの1つに適用されるべき複数のセマンティックセグメンテーションの各々からのセマンティック情報を組み合わせることを含み得る。
【0018】
本発明の別の実施形態では、本方法において、セマンティック情報を3Dモデルのほうへ投影することは、3Dモデルにおけるそれぞれのオブジェクトに対応するラベルを追加することを含み得る。
【0019】
一態様では、本発明は、実行されたとき、上記で説明された方法を実施するように動作可能であるソフトウェアを具現する1つまたは複数のコンピュータ可読非一時的記憶媒体を対象とする。
【0020】
一態様では、本発明は、1つまたは複数のプロセッサと、プロセッサによって実行可能な命令を含む、プロセッサに結合された非一時的メモリとを備えるシステムであって、プロセッサが、命令を実行したとき、上記で説明された方法を実施するように動作可能である、システムをさらに対象とする。
【0021】
本特許または出願ファイルは、カラーで仕上げられた少なくとも1つの図面を含んでいる。(1つまたは複数の)カラー図面をもつ本特許または特許出願公開のコピーは、要求し、必要な料金を支払うと、特許庁によって提供される。
【図面の簡単な説明】
【0022】
図1A】セマンティック融合アルゴリズムにおいて利用するためにセグメンテーションを実施する例示的なプロセスを示す図である。
図1B】セマンティック融合アルゴリズムにおいて利用するためにセグメンテーションを実施する例示的なプロセスを示す図である。
図1C】セマンティック融合アルゴリズムにおいて利用するためにセグメンテーションを実施する例示的なプロセスを示す図である。
図2A-2B】セマンティック融合プロセスの例示的なフローチャートである。
図3A-3C】セマンティック融合アルゴリズムにおいて利用するためにセグメンテーションを実施する別の例示的なプロセスを示す図である。
図4A-4B】セマンティック情報の例示的な投影プロセスを示す図である。
図5】別個のセグメンテーションからの情報をオブジェクトに投影する例示的なプロセスを示す図である。
図6】例示的なセマンティックツリーおよびセマンティックツリーの異なる構成要素を示す図である。
図7】仮想現実システムに関連付けられた例示的なネットワーク環境を示す図である。
図8】セマンティックモデルを生成するための例示的な方法を示す図である。
図9】例示的なコンピュータシステムを示す図である。
【発明を実施するための形態】
【0023】
セマンティックシーン理解が、コンピュータビジョン、ロボティクスおよびグラフィックスにおける基本的な問題であり得る。調査を容易にするために、大規模高品質グランドトゥルースデータセットが、深層学習など、データを必要とする(data-hungry)アルゴリズムにとって重要である。大規模セマンティックRGB-Dデータセットは驚くべき規模を有するが、マルチビュー2D画像と3D再構築との間の一貫性をも保持する詳細なアノテーションをどのように効率的に取得するかに焦点を当てる研究はほとんどない。したがって、人間が3Dメッシュ上で直接アノテーションを付けることを可能にし、メッシュジオメトリのクリーンアップが2Dと3Dとの間のセマンティック伝搬を向上させることを可能にするための、ツールが必要とされ得る。大規模グランドトゥルース収集を目指して、将来のアノテーションをブートストラップするために既存のセマンティックセグメンテーションから学習する閉ループワークフローが、これらの機能性を支援し得る。
【0024】
既存のアノテーションは、ラベリングノイズ(labeling noise)でしばしば汚染され得、2Dラベルと3Dラベルとの間の対応は、欠けているかまたは一貫性がないかのいずれかであり得、オブジェクト境界を尊重する詳細なアノテーションを取得することは困難であり得る。さらに、3Dデータセットは、高密度再構築のために構造化光深度センサーに大きく依拠し得る。オクルージョンとカバレージの欠如とセンサー制限とのために、消失した表面が、再構築において一般的であり得る。このことは、3Dを2D画像空間におよびその逆に投影するときの誤ったデータ関連付けにつながり得る。これは、2D機械学習アルゴリズムをトレーニングし、ベンチマークするためのセマンティック3Dデータセットの使用を厳しく制限し得る。大規模アノテーションを目指す場合、アノテーション効率は重要な懸念事項であり得る。それらの方針に沿って、既存のアノテーションは、さらなるラベリングを支援することができる。本明細書で説明されるワークフローは、より良い詳細および効率をもつ階層アノテーションを生じるセグメンテーション補助自由形式メッシュラベリングアルゴリズムと、2D/3D関連付けを向上させるために消失した表面を挿入するための人間補助ジオメトリ補正技法と、アノテーション付き(annotated)データからのインスタンスセマンティックアノテーションをトレーニングし、予測をメッシュセグメンテーションに組み込む閉ループブートストラッピングアノテーション方式とを提供し得る。
【0025】
特定の実施形態では、本明細書で説明される方法を使用することによって訂正された再構築は、レンダリング障害を低減し、より良いグランドトゥルースアノテーションをもたらし得る。最先端のセグメンテーションベースアルゴリズムと比較して、本アノテーション付きモデルは、約20%良好な精度を与える2Dラベル画像をレンダリングし得る。特定の実施形態では、複数の画像がキャプチャされ、セグメンテーションアルゴリズムを用いてそれらの画像におけるセマンティックインスタンス予測を学習するために使用され得る。限定としてではなく一例として、セマンティックインスタンス予測を学習するプロセスのために、Mask-RCNNが使用され得る。
【0026】
図1Aを参照すると、セマンティック融合プロセス100の第1の部分が示されている。特定の実施形態では、システムが、本明細書で説明されるようにセマンティック融合プロセス100を実施し得る。限定としてではなく一例として、仮想現実システムが、セマンティック融合プロセス100を実施し得る。プロセス100は、画像102中に示されている特定のカメラポーズにおけるカメラビューから始まる。特定の実施形態では、システムは、画像102に対してセグメンテーションプロセスを実施し得る。限定としてではなく一例として、システムは、Mask-RCNNアルゴリズムを使用して、画像102内のオブジェクトを識別し、第1の画像102内のオブジェクトに対応する情報を生成し得る。特定の実施形態では、システムが実施し得る様々なセグメンテーションは、ジオメトリベースセグメンテーションと、インスタンスセグメンテーションと、セマンティックセグメンテーションとを備え得る。特定の実施形態では、ジオメトリベースセグメンテーションは、いくつかのオブジェクトと、画像102内のそれらのオブジェクトの幾何学的情報とを識別し得る。特定の実施形態では、インスタンスセグメンテーションは、異なるオブジェクトのインスタンスを識別し、それらのオブジェクトの各々にオブジェクト識別を割り当て得る。オブジェクト識別のこれらの割当ては、さらなるプロセスにおいて決定され得るソフト割当てであり得る。たとえば、画像102内で、識別された異なるオブジェクトの別個のインスタンスは異なる色でマークされ得る。異なるオブジェクトの予測は、常に正しいとは限らない。たとえば、橙色セクションと黄緑色セクションとを有する画像102中で識別された椅子がある。これらのセクションは、画像102内のオブジェクトの別個のインスタンスの予測として画像102に適用されたマスクであり得る。正しくない識別のうちのいくつかの結果として、セマンティック融合プロセス100は、環境内のオブジェクトを正しく識別するために、複数の画像からの情報をアグリゲートする。特定の実施形態では、セマンティックセグメンテーションは、画像102内の各識別されたオブジェクトに関してセマンティック情報を生成し得る。限定としてではなく一例として、椅子が識別され得、その椅子に緑色マスクが適用され、これはオブジェクトを椅子として識別する。特定の実施形態では、システムは、セグメンテーションから集められた情報を環境および/またはオブジェクトの3Dモデル上に投影し得る。投影は、3Dモデルに適用されるマスクであり得る。特定の実施形態では、環境および/またはオブジェクトの3Dモデルは、複数の画像に基づいて生成され得る。システムは、画像102から集められたインスタンスレベルセグメンテーション情報を、画像104中に示されているように3Dモデル上に投影し得る。インスタンスレベルセグメンテーション情報は、環境がどんなものであるかの完全なピクチャではなく、画像102中で何がキャプチャされたかのみを提供し得る。したがって、たとえば、椅子は2つの異なるオブジェクトとして識別されたので、インスタンスレベルセグメンテーション情報は、画像104中に示されているように、オブジェクトの異なるインスタンスを異なる色で示し得る。同様に、セマンティックレベルセグメンテーション情報は、画像106中に示されているように3Dモデルに投影され得る。オブジェクトを正しく識別することによって、システムは、画像102から何がキャプチャされ、生成されたかに基づいて3Dモデル内のオブジェクトを正しくラベリングし得る。画像106中に示されているように、部分的な情報のみが集められたので、画像102中で何がキャプチャされたかに関係する情報のみが、画像106中に示されているように3Dモデルに投影され得る。
【0027】
図1Bを参照すると、セマンティック融合プロセス100の例示的な結果が示されている。特定の実施形態では、システムは、複数のカメラポーズから1つまたは複数のカメラによってキャプチャされた複数の画像にアクセスして、その画像内のオブジェクトに対応する情報を含む複数のセグメンテーションを生成し得る。特定の実施形態では、システムは、この情報を組み合わせて、複数のセグメンテーションからの情報を3Dモデル上に投影し得る。オフィスの3Dモデルシーンが画像108a中でキャプチャされ得、システムは、複数のカメラポーズにおけるそのシーンに対応する画像にアクセスして、セグメンテーションを生成する。複数のセグメンテーションから集められた情報は、環境内の異なるオブジェクトの理解を通してより完全なピクチャを提供し得る。特定の実施形態では、システムは、インスタンスレベルセグメンテーション情報を画像110a中の3Dモデル上に投影し得、画像110aは、複数の画像から集められた情報を組み合わせるので、画像102よりも完全であるように見える。たとえば、緑色の椅子または青色の椅子のような、より完全な形状が示される。同様に、特定の実施形態では、システムは、セマンティックレベルセグメンテーション情報を画像112中の3Dモデル上に投影し得る。限定としてではなく一例として、すべての椅子が同じセマンティック意味(たとえば、それらは椅子である)を有することを表すために、すべての椅子は緑色マスクを投影され得る。特定の実施形態では、システムは、キャプチャされた画像の複数のカメラポーズを使用して、3Dモデルに対する対応する複数の仮想カメラポーズを決定し得る。特定の実施形態では、仮想カメラポーズは、セグメンテーションからの情報を3Dモデル上に投影するために使用され得る。限定としてではなく一例として、システムは、画像112中に示されているように、仮想カメラポーズを使用して複数のセマンティックセグメンテーションのセマンティック情報を3Dモデルのほうへ投影することによって、セマンティック3Dモデルを生成し得る。限定としてではなく別の例として、システムは、110a中に示されているように、複数の仮想カメラポーズを使用して複数のインスタンスセグメンテーションのオブジェクト識別を3Dモデルのほうへ投影することによって、インスタンス3Dモデルを生成し得る。特定の実施形態では、インスタンス3Dモデルを生成することは、3Dモデル中の1つまたは複数のオブジェクトに適用されるべきインスタンスセグメンテーションの各々からのオブジェクト識別を組み合わせることを含み得る。
【0028】
図1Cを参照すると、セマンティック融合プロセス100の別の例示的な結果が示されている。特定の実施形態では、システムは、図1Bと同様に、複数のカメラポーズから1つまたは複数のカメラによってキャプチャされた複数の画像にアクセスして、その画像内のオブジェクトに対応する情報を含む複数のセグメンテーションを生成し得る。オフィスの別の3Dモデルシーンが画像108b中でキャプチャされ得、システムは、複数のカメラポーズにおけるそのシーンに対応する画像にアクセスして、セグメンテーションを生成する。特定の実施形態では、3Dモデルシーンは、現実世界の環境のキャプチャされた複数の画像に基づいてレンダリングされ得る。特定の実施形態では、システムは、インスタンスレベルセグメンテーション情報を画像110b中の3Dモデル上に投影し得る。特定の実施形態では、システムは、セマンティックレベルセグメンテーション情報を画像114中の3Dモデル上に投影し得る。セマンティック情報は、オブジェクトに対応するバウンディングボックスをも備え得る。特定の実施形態では、バウンディングボックスは、オブジェクトに対するより緊密な適合であり得る。特定の実施形態では、バウンディングボックスの配向は、3Dモデルシーンの床と面一になるように調整され得る。特定の実施形態では、システムは、床、壁、および天井を別個のオブジェクトとして識別し得る。
【0029】
図2Aおよび図2Bは、3Dで大規模セマンティックアノテーションを生成するための例示的なフローチャート200を示す。図2Aを参照すると、特定の実施形態では、最初に、システムは、3Dメッシュ再構築202のために3Dメッシュにアクセスし得、アノテーションを支援するためにジオメトリベースセグメンテーション204を算出し得る。特定の実施形態では、初めに、アノテータが、次いで、3Dメッシュアノテーション206において自由形式のメッシュペインティングを使用して事前セグメンテーションを改良し、事前セグメンテーションにセマンティックアノテーションを付け得る。特定の実施形態では、アノテーションは、システムまたは人間アノテータによって行われ得る。特定の実施形態では、プロセス200aは、モデル完成208に進み得る。次いで、アノテーション付きメッシュは、2Dラベル生成210においてフルアノテーション付き(fully annotated)2Dシーケンスを取得するためにレンダリングされ得、これは、セマンティック学習212におけるセマンティック理解のために深層学習アルゴリズムをトレーニングするために使用され得る。特定の実施形態では、十分な人間によるセグメント化およびアノテーション付きメッシュを仮定すれば、ループは、トレーニングされたモデルを使用して画像空間中のセマンティクスを推論し、これらの予測を融合して、学習ベースセグメンテーション214を用いて3Dメッシュ上の一貫したセグメンテーションにすることによって、閉じ得る。
【0030】
図2Bを参照すると、モデルをその後トレーニングした後に、システムは、プロセス200bを利用して、3Dで大規模アノテーションを生成し得る。特定の実施形態では、システムは、3Dメッシュ再構築202のために3Dメッシュにアクセスし得、アノテーションを支援するためにジオメトリベースセグメンテーション204を算出し得る。特定の実施形態では、システムは、学習ベースセグメンテーション214を実施し、次いで、学習ベースセグメンテーション214から集められた情報から3Dメッシュアノテーションを実施し得る。特定の実施形態では、システムは、3Dメッシュにアノテーションを付けた後にモデル完成208を実施し得る。特定の実施形態では、システムは、モデルをトレーニングし続けるために、モデルをトレーニングした後にプロセス200aを実施し続け得る。
【0031】
図3A図3Cを参照すると、セマンティック融合プロセスを実施するための例示的なセマンティックセグメンテーションプロセスが示されている。図3Aは、例示的なセグメンテーションプロセスを示す。特定の実施形態では、システムは、オブジェクト304の画像300aにアクセスし得る。特定の実施形態では、オブジェクト304は、レンダリングされた3Dシーン、現実世界のシーンなどの一部であり得る。特定の実施形態では、システムは、画像300aに対してセマンティックセグメンテーションを実施し、セマンティックレベルセグメンテーション情報を、画像302a中に示されているようにオブジェクト304上に投影し得る。特定の実施形態では、システムは、メッシュ306aおよび308aを、それぞれオブジェクト304aおよび304b上に適用し得る。特定の実施形態では、メッシュ306aおよび308aは、それらのそれぞれのオブジェクト304に対応するセマンティック意味を提供し得る。限定としてではなく一例として、メッシュ306aは、オブジェクト304aが椅子であることを指示し得る。図3Bを参照すると、システムは、オブジェクト304の別の画像300bにアクセスし得る。画像300bは、同じオブジェクト304の別のカメラポーズからのものであり得る。特定の実施形態では、システムは、画像300bに対してセマンティックセグメンテーションを実施し、セマンティックレベルセグメンテーション情報を、画像302b中に示されているようにオブジェクト304上に投影し得る。特定の実施形態では、システムは、メッシュ306bおよび308bをオブジェクト304上に適用し得る。特定の実施形態では、システムは、画像にアクセスするプロセスを実施し、その画像に対してセグメンテーションを実施して、アノテーション付き3Dモデルを生成し得る。限定としてではなく一例として、システムは、複数の画像に対してセマンティックセグメンテーションを実施し、複数のセマンティックセグメンテーションからセマンティック3Dモデルを生成し得る。図3Cを参照すると、システムは、3Dメッシュ312を、画像310中に示されているように椅子上に適用し得る。特定の実施形態では、セマンティック3Dモデルは、画像302a、302b中で実施されたセマンティックセグメンテーションからのセマンティック情報の組合せに基づいて生成され得る。第1のカメラポーズにおいて、椅子の前面が見られ、椅子としてラベリングされるが、第2のカメラポーズは椅子の背面を椅子として識別し得る。一般に、単一の画像内で椅子の前面と背面の両方を見ることは極めて困難であるか、または不可能であろう。したがって、3Dモデルにおいて、システムは、別個のセグメンテーションから集められたセマンティック情報を組み合わせることによって、セマンティック3Dモデルを適宜に生成し得る。
【0032】
図4Aおよび図4Bを参照すると、3Dシーン内のオブジェクト上に情報を投影する例示的なプロセス400。図4Aを参照すると、カメラ404を用いて3Dシーン内でオブジェクト402がキャプチャされる。カメラ404は、3Dシーン内のオブジェクト402を観察する特定のカメラポーズにあり得る。図4Bを参照すると、カメラ404は、特定のカメラポーズにおけるカメラ404から出る光線406を通して、情報をオブジェクト402上に投影し得る。特定の実施形態では、システムは、オブジェクト402上に投影すべき情報を生成するためにセグメンテーションを実施し得る。特定の実施形態では、システムは、オブジェクト402に関係するセマンティック情報、オブジェクト識別、幾何学的情報をコンパイルし得る。特定の実施形態では、システムは、光線406を通して情報をオブジェクト402上に投影するためにカメラ404を使用し得る。特定の実施形態では、光線406は、オブジェクトに関係する情報を含み得る。限定としてではなく一例として、光線406は、オブジェクト402が立方体であることを指示し得る。
【0033】
図5を参照すると、アノテーション付き3Dモデルを生成する別のプロセスが示されている。特定の実施形態では、画像502は、いくつかのセグメンテーションからの情報がその上に投影された椅子を示す。特定の実施形態では、システムは、セグメンテーションを実施し、情報を、異なる色で示されている椅子上に投影し得る。たとえば、黄色部分が、あるセグメンテーションに対応し得、赤色部分が、別のセグメンテーションに対応し得る。システムは、異なるセグメンテーションからの情報を投影し、情報を、画像504中に示されているように単一のマスク/メッシュにコンパイルし得る。特定の実施形態では、システムは、画像504中の椅子に適用されるべき赤色マスクを生成し得る。赤色マスクは、オブジェクトが椅子であることを指示する情報を含み得る。
【0034】
特定の実施形態では、3DカラーメッシュMは、頂点V={vi∈R}、エッジE={eij}、およびポリゴンプリミティブ(polygon primitive)P={pi}のセットによって定義される多様体であり得る。頂点viの属性は、単位法線n∈Rと、カラーc∈Rとを含んでいることがある。メッシュMは、独立(disjoint)セグメントMiに区分され、ラベルlに割り当てられ得る。特定の実施形態では、インスタンス区分およびセマンティック区分は、それぞれM およびM によって示され得る。特定の実施形態では、区分は、セグメンテーションプロセスから生成され得る。RGB-D記録は、タイムスタンプtをもつシーケンス{カラー画像および深度画像I∈R3,D∈R,ξ∈RのS}であり得る。特定の実施形態では、6DoFの剛体の動きξが仮定され得、各フレームについて知られる。カメラモデルを仮定すれば、2D画像上への3Dポイントvの投影は、x=π(v)によって示され得、x∈R2であり、逆投影は、v=π-1(x)によって示され得る。色距離を算出するために、CIELab色空間がRGBの代わりに使用され得、Δ(ci,cj)はCIELab空間中のユークリッド色距離を示し得る。
【0035】
特定の実施形態では、アノテーションは、人間が3Dメッシュと対話するプロセスであり得る。アノテータがメッシュ上のどこでクリックするかを算出するために、ポリゴンインデックスをフレームバッファにレンダリングし、マウス位置下でインデックスを読み出すためにOpenGLが使用され得る。このソリューションは、光線トレーシング(ray tracing)よりも効率的であり得る。同様に、アノテーション付きメッシュから2Dラベリングを取得するために、ラベル値が、レンダリングされたプリミティブインデックスを通してルックアップされ得る。
【0036】
特定の実施形態では、アノテーションアルゴリズムが、3Dメッシュおよびそこからの2Dレンダリング上で正確なセマンティックインスタンスラベリングを生成するために使用され得る。特定の実施形態では、アノテーションアルゴリズムの利益は、人間がセマンティックオブジェクトを正確に効率的にラベリングするのを支援し、異なる視点からの観測間のラベル一貫性を保証し、3D再構築と2D画像との緊密な関連付けを維持することであり得る。
【0037】
この目的で、提案されるツールは、3Dカラーメッシュ上で動作し得る。アルゴリズムは、幾何学的セグメンテーションを用いてアノテーションを初期化し得る。アノテーションは、メッシュ多様体に沿った自由形式のペインティングを介して詳細を正しくキャプチャするための、セグメントを接合することとセグメントを変更することとの間の反復的プロセスであり得る。3Dから2Dにアノテーション結果を伝搬するためにビューレンダリングが適用され得る。不完全な再構築によるレンダリングエラーを補償するために、人間補助ジオメトリ完成が使用され得る。
【0038】
特定の実施形態では、アノテーションのプロセスは、プリミティブからラベルドメイン(label domain)へのマッピングf:p→ljを作り出すことであり得る。マッピングfが1対1であるとき、結果を編成することは単純であり得る。しかしながら、アノテーション付きモデルが実際にどのように使用されるかを考慮すると、多値マッピングをサポートすることが望ましいことがある。限定としてではなく一例として、同じプリミティブが、ある適用例についてはラグであり、別の適用例については床であり得る。同様に、階層関係がセマンティック関係の基本であり得る。限定としてではなく一例として、ほとんどどんなオブジェクトでも、より小さい部分に分解されるか、または新しいカテゴリーにグループ化され得る。セグメンテーションにおける1対多マッピングおよび階層関係をサポートするために、図6に示されているように、セマンティックツリーが生成され得る。
【0039】
図6を参照すると、いくつかのレベル602を含むセマンティックツリー600が示されている。特定の実施形態では、リーフノードは、事前セグメンテーションアルゴリズムまたは自由形式のペインティングのいずれかによって生成されたセグメントに対応するプリミティブのセットを含んでいることがある。これらのリーフは、異なるセマンティクスを表すためにツリーに連結され得る。特定の実施形態では、階層は以下のように定義され得る:レベル0 602aは上述の非セマンティック(non-semantic)リーフセグメンテーションを表し、レベル1 602bはオブジェクトインスタンスを表し、レベル2 602cはオブジェクトクラスを表し、レベル3 602d以上はより高いレベルのセマンティックセットを符号化する。この定義では、異なるレベルにおいてツリーをレンダリングすることは、当然、アノテーションの異なる側面を生じる。これは、レベル3のセマンティックツリーまで、図6に示されている。特定の実施形態では、オブジェクト606の個々のインスタンスが、1つまたは複数の非セマンティックリーフノード604を備え得る。限定としてではなく一例として、個々のクッション606と、ソファー606と、テーブル606とが、非セマンティックリーフノード604を備え得る。特定の実施形態では、オブジェクトクラス608が、オブジェクト606の1つまたは複数の個々のインスタンスを備え得る。限定としてではなく一例として、複数のクッション606が、オブジェクトクラス608「クッション」を作成する。すなわち、特定の実施形態では、同じクラスのすべてのオブジェクトが、オブジェクトクラス608を作成する。特定の実施形態では、セマンティックセット610が、いくつかのオブジェクトクラス608と個々のオブジェクト606とを備え得る。限定としてではなく一例として、セマンティックセット610「家具」は、オブジェクトクラス608「クッション」とすべての他のオブジェクトインスタンス606とを備え得る。「家具」としてラベリングされたオブジェクト606は、「家具」セマンティックセット610中に含まれる。特定の実施形態では、セマンティックツリー600は、3Dシーンに関係する複数の画像に対して実施されたセマンティックセグメンテーションから累積されたセマンティック情報に基づいて生成され得る。特定の実施形態では、セマンティックレベル602の各々は、セマンティック情報のしきい値量を含む。限定としてではなく一例として、レベル1 602bにおける各オブジェクトインスタンス606は、個々のオブジェクトに関係するセマンティック情報を含む。さらに、次のレベル2 602cは、より低いレベル602のセマンティック情報と追加のセマンティック情報とを含む。特定の実施形態では、システムは、セマンティックツリー600の特定のレベル602に対応するセマンティック情報を3Dモデルに投影し得る。限定としてではなく一例として、システムは、レベル3 602dに対応するセマンティック情報を投影し得、これは、いくつかのオブジェクトがセマンティックセット610「家具」の一部であることを指示する。
【0040】
特定の実施形態では、知覚可能な初期セグメンテーションを抽出するために、(1)DP-vMF平均アルゴリズムを介して方向性セグメンテーションを稼働し、(2)メッシュの多様体に沿って方向性セグメントの各々について連結成分分析を稼働する、ロバストな平坦セグメンテーションアルゴリズムが使用され得る。特定の実施形態では、セグメントは、セグメント中のすべてのポイントの共分散行列の固有値λ<λ<λを分析することによって、平坦として分類され得る。特定の実施形態では、セグメントは、λ<<λとλ<<λの両方である場合、平面と見なされ得る。平坦として分類されないメッシュのセグメントは、Felsenszwalbセグメンテーションアルゴリズムを介して改良され得る。これは、自由形式のセグメンテーション調整およびセマンティックアノテーションの次のステップのためにより有用な、すべての非平坦セグメントのより細かいセグメンテーションにつながり得る。
【0041】
特定の実施形態では、得られたセグメンテーションをさらにクリーンアップするために、事前セグメンテーションにおける最終ステップとして3Dバイラテラルフィルタが稼働され得る。特定の実施形態では、バイラテラルフィルタは、以下の重み付け関数を伴ってメッシュの多様体に沿って働き得る。
【0042】
多くの状況では、セグメントを接合することは、所望のアノテーションにつながらないことがある。これは、1)セグメントの境界が実際のオブジェクトとしばしば整合しない、2)いくつかのセグメントが複数のオブジェクト部分を連結する、および3)ヒューリスティック事前セグメンテーションアルゴリズムがオブジェクトを区別することができない、たとえばラグと床を分けることができないからであり得る。特定の実施形態では、この問題を解決するために、SceneNNは、セグメンテーションを生成し、アノテータが、粗いセグメンテーションから細かいセグメンテーションに切り替えることによって大きいセグメントを分解することを可能にし得る。したがって、セグメントを改良するために、メッシュ多様体に沿った自由形式のペインティングが使用され得る。ユーザ選択シードプリミティブ(seed primitive)から、アルゴリズム1がペインティング方法を表し得る。アルゴリズム1は、セグメントを位置決めするためにメッシュに沿って領域拡張を使用し得る。特定の実施形態では、領域拡張は、3つのパラメータを用いて調節され得る。パラメータaは法線方向を比較することによって平滑度を調節し得、パラメータdはシードプリミティブまでのユークリッド距離を制限し得、パラメータSは色類似度を調節し得る。これらのパラメータを適切に組み合わせると、領域拡張は、大きい平坦構造から小さい湾曲エリアまで、任意の表面パッチを選択する際にフレキシブルであり得る。これはまた、壁のポスターなど、詳細なテクスチャパターンを抽出することを可能にし得る。
【0043】
特定の実施形態では、自由形式のペインティングは、セマンティックツリーにトポロジー変化を導入し得る。これらの変化を反映し、ツリー構造を保持するために、影響を受けたツリー分岐が検出され得、それらの空の双分岐(twin branch)が作り出され得る。ペインティングの影響を受けたリーフは、2つにスプリットされ得る。選択されなかったプリミティブは変化しないままであり、選択されたプリミティブは抽出され、双分岐に転送され得る。
【0044】
特定の実施形態では、多くの屋内再構築は、高密度再構築を取得するために構造光センサーに依拠し得る。センサー制限および不完全なキャプチャカバレージにより、得られたメッシュは、一般に、消失した表面を含んでいることがある。これは、間違った投影につながり得、消失した再構築の背後の表面が2D画像上に投影される。レンダリングされた深度を生深度画像と比較することは、いくつかのエラーを検出し得るが、深度が常に利用可能であるとは限らない。3Dアノテーションと2D画像との間の緊密な関連付けを維持するために、再構築を修理するために単純でしかも効果的な2つの技法が使用され得る。
【0045】
特定の実施形態では、消失した表面はしばしば平坦であり得、したがって、アノテータは平坦なホールの周りのポリゴンBをマークし得る。p:=(n,d)によってパラメータ化された平面式は、次いで、最小2乗平面フィッティング(fitting)によって推定され得る。
メッシュをスティッチするために、平坦パッチは、モデルを再構築するために使用されるSDFボリュームに直接組み込まれ得る。ターゲットホールの周りのボクセルを更新するために、SDF値F(v)は、ボクセル間のボクセル中心vとターゲット平面との間の距離として計算され得る。
SDF値が更新されると、メッシュは、標準的なマーチングキューブアルゴリズムを介して再生成され得る。拡張ポリゴンは、最も可能性がある境界プリミティブラベルに自動的に割り当てられ得る。
【0046】
特定の実施形態では、円筒形構造、たとえば、部分的に再構築されたピラーの消失した表面を完成するために、円筒形構造の消失した表面を完成するための技法が実装され得る。このアイデアは、オブジェクトの中心軸および断面形状の曲線を最初に推定し、次いで、中心軸に沿って断面曲線を掃引することによって、消失した表面を完成することであり得る。特定の実施形態では、直線の支配的支持構造は、レンダリングエラーを引き起こし得る。中心軸を近似するためにL1中間軸を推定する代わりに、オブジェクトの中心軸が推定され得る。最初に、中心軸を近似するためにPCAを介して支配的主成分が算出され得る。次いで、近隣の頂点が接平面上に投影され、非一様有理ベーススプライン(NURBS:non-uniform rational basis spline)をフィッティングすることによって断面形状が推定され得る。最後に、軸は、断面NURBSの中心に調整され得る。さらに、掃引方向は、最適な結果を達成するためにアノテータによって調整可能であり得る。
【0047】
特定の実施形態では、これらの2つの技法は、再構築障害を最適に補正しないことがある。しかしながら、それらは、最も一般的なレンダリングエラーを効果的に低減し、3Dモデルから2D画像へのより良いラベル伝搬を生じ得る。
【0048】
特定の実施形態では、アノテーションは費用がかかるプロセスであり得、したがって、人間オペレータを支援するために機械知能を搭載することが重要である。特定の実施形態では、大規模セマンティックアノテーション収集をブートストラップするために、閉ループアノテーション方式が使用され得る。3Dメッシュの一貫した予測を取得するためにマルチビュー2D画像からの理解を伝搬するために、3Dメッシュ上へのマルチビューセマンティックインスタンス融合のための方法が使用され得る。さらに、視覚ベースセグメンテーションとジオメトリベースセグメンテーションとの間のギャップを埋めるための技法が使用され得る。
【0049】
特定の実施形態では、アノテーションのループを閉じることに向かう第1のステップは、機械学習アルゴリズムをトレーニングすることであり得る。2D畳み込みニューラルネットワークをトレーニングするために、3Dセマンティックメッシュは、高密度アノテーション付き(densely annotated)ビデオシーケンスを取得するために、対応するカメラビューにレンダリングされ得る。ポーズ推定、モデル再構築、およびカメラキャリブレーションにおけるノイズおよびエラーにより、レンダリングされたラベル画像が、元のカラー画像中のオブジェクト境界を常に十分に尊重するとは限らない。メッシュアノテーションにおける消失したラベルおよび再構築における消失した表面は、ラベルレンダリングにおけるノイズにも寄与し得る。これらのアーティファクトを補正するために、エッジを保持しながら、レンダリングを平滑化するために2Dジョイントバイラテラルフィルタが適用され得る。3Dバイラテラルフィルタと同様に、
であり、ここで、σ 、σ およびσ は、色、2Dピクセル座標および3Dユークリッドの分散であり得る。重みパラメータγは、レンダリングされたラベルの確実性の推定であり得る。レンダリングされたラベルは、オブジェクト境界の周りのエラーおよびラベルジャンプをより受けやすいことがある。したがって、組み合わせられたエッジマップが、強い画像勾配+ラベル境界として推定され得る。重み付けマップγが、次いで、最も近いエッジポイントに向かう距離として計算され、次いで、[0,1]の範囲に正規化され得る。値γiはまた、動的フィルタウィンドウを算出するために使用され得る。最大ウィンドウサイズKを仮定すれば、ピクセルiのためのフィルタサイズは、γjFによって与えられ得る。
【0050】
特定の実施形態では、以下は、3Dにおけるインスタンスレベルセマンティックセグメンテーションを算出するための手法を展開し得、これは、より正確には、メッシュM上の各プリミティブpについて、セマンティックidおよびインスタンスidのタプル、(M ,M )を見つけることであり得る。アルゴリズム2に示されている手法は、3つの主要なフェーズにおいて動作し得る。最初に、生ビデオキャプチャシーケンスSにおける各画像フレームI中でオブジェクトを検出するために、Mask-RCNNモデルが使用され得る(ライン5~6)。特別に、Mask-RCNNはオブジェクトマスク{dk}のリストを見つけることがあり、オブジェクトマスクの各々がセマンティッククラスckおよび信頼性スコアαkに関連付けられ得る。3D再構築中に見つけられる投影関数を使用して、2Dにおける検出の各々が3Dメッシュ上にマッピングされ得る(ライン8~10)。各マッピングされた検出は、同じセマンティッククラスc、3Dメッシュ上の面idのセットm、およびMask-RCNNの予測スコアaとメッシュのジオメトリ情報(すなわち、メッシュに対するカメラポーズ)とを組み合わせる対応する信頼性スコアrからなり得る。第2のフェーズでは、個々の検出Dのセットは、ライン10に示されているように、セマンティックレベルセグメンテーションsを取得するために一緒に融合され得る。第3のフェーズでは、各インスタンスが1つのセマンティックidを有することを強制され得るので、インスタンスレベルセグメンテーションは、ライン12~16に示されているように、各セマンティッククラスsについて別々に実施され得る。後者の2つのフェーズの詳細は、以下で提示される。
【0051】
特定の実施形態では、セマンティック融合は、アルゴリズム3で概説するDにおいて個々の検出をアグリゲートすることによってメッシュの区分sを見つけることがある。詳細には、各検出の信頼性カウントr は、ライン6~8においてインスタンスの3Dボリュームm (メッシュ上の面idのセット)にわたって蓄積され得、ライン9において各面idを最も多くのカウントをもつセマンティッククラスに割り当てることによって、区分が取得され得る。特定の実施形態では、アグリゲーションプロセスは、現在の区分との一貫性がない(ライン7)検出インスタンスを除去するために数回繰り返され得、これは、Mask-RCNNによるフォールスポジティブ検出を除去するために重要であり得る。この作業では、一貫性は、検出ボリュームm の1/2超が区分Mにおいて予測されたセマンティッククラスc を割り当てられるかどうかによって決定され得る。
【0052】
特定の実施形態では、異なる観測間のインスタンスidは直接関連付けられ得ないので、インスタンスレベルセグメンテーションはより困難であり得る。たとえば、画像A中の椅子は、画像B中の椅子のいずれかに対応するか、またはいずれにも対応しないことがある。より重要なことに、検出は、当初、2D画像から導出されるので、同じオブジェクトインスタンスの異なる検出は、異なる視点からの画像に対応し、したがって、3Dメッシュ上で重複がほとんどないことがある。この課題に対処するために、各セマンティッククラスsについての検出Dskのセットを与えられたときにインスタンスレベル区分M skを見つけるために、アルゴリズム4が使用され得る。
【0053】
提案される方法は、期待値最大化と同様に働き得る。特定の実施形態では、アルゴリズムは、(i)各検出についてのソフト割当てzを見つけること(ライン9~14)と、(ii)インスタンス区分M skを更新するために割り当てられた検出の信頼性カウント{u}をアグリゲートすること(ライン15~19)との間で反復し得る。この作業では、検出のインターセクションオーバーユニオン(IoU:intersection over union)は、既存の区分の各々に関して算出され得る(ライン11~13)。特定の実施形態では、カメラの限られた視野を考慮するために、検出とインスタンス区分との間の和集合計算は、検出の対応する画像にとって可視のメッシュの部分に制約され得る。典型的なクラスタリング問題とのここでの重要な区別は、観測tが複数の相関する検出を有することができるということであり得る。限定としてではなく一例として、Mark-RCNNは、画像中で同じセマンティッククラスの複数のインスタンスを見つけることができる。限定としてではなく別の例として、同じ画像からの2つの検出は、2つの別個のインスタンスに対応し得、したがって、ライン14におけるソフト割当てステップは、検出およびインスタンス区分の各ペア間のIoUを考慮に入れる必要がある。さらに、ドアおよび壁など、大きい物理的サイズのインスタンスをもつセマンティッククラスについて、各検出は、一般に、オブジェクトインスタンスの小さい部分的なビューのみを得ることがある。特定の実施形態では、IoU行列はまた、複数の区分が単一のオブジェクトにマージされるべきであるかどうかを決定するためのメトリックとして使用され得る(ライン17~18)。
【0054】
特定の実施形態では、データ収集の初期段階において、利用可能なアノテーション付きデータは、かなり限られていることがある。アノテーション付きデータの不足は、あらゆるメッシュプリミティブについて常に正しい予測をするための、Mask-RCNNからの融合されたセマンティックおよびインスタンスセグメンテーションの失敗につながり得る。限定としてではなく一例として、メッシュの1/2は予測を得ないことがある。しかしながら、保守的な融合ストラテジーを使用することによって、たいていの有効な予測が正しくなり得る。特定の実施形態では、ジオメトリベースセグメンテーションは、オブジェクトクラスに関するクリーンで有用な予測を提供し得る。限定としてではなく一例として、構造表面、たとえば、床および壁は、うまくセグメント化され得る。特定の実施形態では、セマンティック予測は、ジオメトリセグメントを条件とし得る。すなわち、特定の実施形態では、セグメンテーションからの情報を投影することによってアノテーション付き3Dモデルを生成することは、3Dモデルにおけるオブジェクトに対応する追加情報を投影するために、オブジェクトの幾何学的情報を使用することを含み得る。限定としてではなく一例として、複数のセマンティックセグメンテーションのセマンティック情報を投影することによってセマンティック3Dモデルを生成することは、3Dモデルにおけるオブジェクトに対応するセマンティック情報を投影するために、オブジェクトに対する幾何学的情報を使用することを含み得る。
【0055】
特定の実施形態では、1つの自明なソリューションは、各セグメントに、対応するセグメントを支配するラベルを割り当てることによって、最尤(ML)推定を使用することであり得る。ML推定は最適解を生じないことがある。正しいラベルは、わずかに低い発生頻度により、拒否され得る。この問題を解決するために、セマンティック意味およびカテゴリーワールドの仮定に基づくラベル信頼性の推定が使用され得る。限定としてではなく一例として、3Dシーンが、マンハッタンにあるアパートを表す場合、カテゴリーワールドは、マンハッタンアパート内で一般に見つけられるオブジェクトに対応する情報を含むマンハッタンワールドであり得る。特定の実施形態では、オブジェクトは複数の環境に関連付けられ得る。限定としてではなく一例として、Mask-RCNNセグメンテーションをとると、最初に、重力方向が、床とラベリングされた支配的セグメントをとることによって推定され得る。次いで、最小2乗平面フィッティングが、パラメータ(ng,dg)を取得するために実施され得る。推定された平面法線は、重力方向として働き得る。床であると予測されるプリミティブpの場合、ラベル信頼性は、
によって推定され得る。限定としてではなく一例として、再構築がマンハッタンワールドであり得ると仮定すると、一般に重力方向に直角なオブジェクト、たとえば、デスクおよび天井は、
を割り当てられ得る。一方、一般に重力に平行であるオブジェクト、たとえば、壁、ドアおよびモニタは、
を割り当てられ得る。表面配向がマンハッタンワールドにおいて表されることが困難であり得るオブジェクトクラスの場合、信頼性は、全体的予測信頼性を反映する経験的な値に設定され得る。信頼値を使用して、重み付き投票がラベル転送において実施され得、これは、ラベリングの改善につながり得る。特定の実施形態では、システムは、3Dモデル上への情報の投影のために信頼値を計算し得る。限定としてではなく一例として、システムは、セマンティックセグメンテーションからのオブジェクトのセマンティック情報がそれぞれのオブジェクトに対応する信頼値を計算し得る。すなわち、検出されたオブジェクトが実際に確かに椅子であるかどうかの信頼値である。特定の実施形態では、信頼値は、オブジェクトのセマンティック情報が特定の環境内のオブジェクトに対応するかどうかに基づき得る。限定としてではなく一例として、マンハッタンワールドカテゴリー内で、一般的なオブジェクトが、その環境中で見つけられ得る。たとえば、コーヒーテーブルは、他のワールドカテゴリーと比較して、マンハッタンワールドカテゴリー内で一般的であり得る。さらに、特定のオブジェクトのいくつかの構成またはスタイルが、その環境中で見つけられ得る。限定としてではなく一例として、現代的な椅子はマンハッタンワールドカテゴリーにおいて見つけられ得るが、他の種類の椅子は一般的でないことがある。特定の実施形態では、システムは、決定された信頼値がしきい信頼値を超えるかどうかに基づいて情報を3Dモデル上に投影し得る。特定の実施形態では、システムは、情報の決定された信頼値がしきい信頼値よりも小さい場合、情報を廃棄し得る。特定の実施形態では、3Dモデルのほうへの情報の投影は、3Dモデルにおける対応するオブジェクトをラベリングすることを含み得る。
【0056】
特定の実施形態では、システムは、3Dシーンを正確にレンダリングするために、アノテーション付き3Dモデルを使用し得る。限定としてではなく一例として、システムは、ラグが床とは別個であることを正しく識別し、それらを互いとは別個にレンダリングし得る。特定の実施形態では、システムは、オブジェクトのセマンティック情報を使用することによって、現実世界ビュー上に拡張現実要素を正確にレンダリングし得る。限定としてではなく一例として、システムは、現実世界ビュー内で識別されたテーブルのみの上にくる拡張現実テーブルランプを生成し得る。特定の実施形態では、システムは、仮想現実環境からオブジェクトをフィルタリングするために、オブジェクトのセマンティック意味を使用し得る。限定としてではなく一例として、ユーザは、仮想現実環境から、セマンティックセット「家具」からのオブジェクトを除去し得る。
【0057】
図7は、仮想現実システムに関連付けられた例示的なネットワーク環境700を示す。ネットワーク環境700は、ネットワーク710によって互いに接続された、クライアントシステム730、ソーシャルネットワーキングシステム760、およびサードパーティシステム770と対話するユーザ701を含む。図7は、ユーザ701、クライアントシステム730、ソーシャルネットワーキングシステム760、サードパーティシステム770、およびネットワーク710の特定の配置を示すが、本開示は、ユーザ701、クライアントシステム730、ソーシャルネットワーキングシステム760、サードパーティシステム770、およびネットワーク710の任意の好適な配置を企図する。限定としてではなく一例として、ユーザ701、クライアントシステム730、ソーシャルネットワーキングシステム760、およびサードパーティシステム770のうちの2つまたはそれ以上が、ネットワーク710をバイパスして、直接互いに接続され得る。別の例として、クライアントシステム730、ソーシャルネットワーキングシステム760、およびサードパーティシステム770のうちの2つまたはそれ以上が、全体的にまたは部分的に、物理的にまたは論理的に互いとコロケートされ得る。その上、図7は、特定の数のユーザ701、クライアントシステム730、ソーシャルネットワーキングシステム760、サードパーティシステム770、およびネットワーク710を示すが、本開示は、任意の好適な数のクライアントシステム730、ソーシャルネットワーキングシステム760、サードパーティシステム770、およびネットワーク710を企図する。限定としてではなく一例として、ネットワーク環境700は、複数のユーザ701と、クライアントシステム730と、ソーシャルネットワーキングシステム760と、サードパーティシステム770と、ネットワーク710とを含み得る。
【0058】
本開示は、任意の好適なネットワーク710を企図する。限定としてではなく一例として、ネットワーク710の1つまたは複数の部分は、アドホックネットワーク、イントラネット、エクストラネット、仮想プライベートネットワーク(VPN)、ローカルエリアネットワーク(LAN)、ワイヤレスLAN(WLAN)、ワイドエリアネットワーク(WAN)、ワイヤレスWAN(WWAN)、メトロポリタンエリアネットワーク(MAN)、インターネットの一部分、公衆交換電話網(PSTN)の一部分、セルラー電話ネットワーク、またはこれらのうちの2つまたはそれ以上の組合せを含み得る。ネットワーク710は、1つまたは複数のネットワーク710を含み得る。
【0059】
リンク750は、クライアントシステム730と、ソーシャルネットワーキングシステム760と、サードパーティシステム770とを、通信ネットワーク710にまたは互いに接続し得る。本開示は、任意の好適なリンク750を企図する。特定の実施形態では、1つまたは複数のリンク750は、1つまたは複数の、(たとえば、デジタル加入者回線(DSL)またはデータオーバーケーブルサービスインターフェース仕様(DOCSIS)などの)ワイヤラインリンク、(たとえば、Wi-Fiまたはワールドワイドインターオペラビリティフォーマイクロウェーブアクセス(WiMAX)などの)ワイヤレスリンク、または(たとえば、同期光ネットワーク(SONET)または同期デジタルハイアラーキ(SDH)などの)光リンクを含む。特定の実施形態では、1つまたは複数のリンク750は、各々、アドホックネットワーク、イントラネット、エクストラネット、VPN、LAN、WLAN、WAN、WWAN、MAN、インターネットの一部分、PSTNの一部分、セルラー技術ベースネットワーク、衛星通信技術ベースネットワーク、別のリンク750、または2つまたはそれ以上のそのようなリンク750の組合せを含む。リンク750は、ネットワーク環境700の全体にわたって必ずしも同じである必要はない。1つまたは複数の第1のリンク750は、1つまたは複数の第2のリンク750とは1つまたは複数の点で異なり得る。
【0060】
特定の実施形態では、クライアントシステム730は、ハードウェア、ソフトウェア、または埋込み論理構成要素、または2つまたはそれ以上のそのような構成要素の組合せを含み、クライアントシステム730によって実装またはサポートされる適切な機能性を行うことが可能な、電子デバイスであり得る。限定としてではなく一例として、クライアントシステム730は、デスクトップコンピュータ、ノートブックまたはラップトップコンピュータ、ネットブック、タブレットコンピュータ、電子ブックリーダー、GPSデバイス、カメラ、携帯情報端末(PDA)、ハンドヘルド電子デバイス、セルラー電話、スマートフォン、仮想現実ヘッドセットおよびコントローラ、他の好適な電子デバイス、あるいはそれらの任意の好適な組合せなど、コンピュータシステムを含み得る。本開示は、任意の好適なクライアントシステム730を企図する。クライアントシステム730は、クライアントシステム730におけるネットワークユーザが、ネットワーク710にアクセスすることを可能にし得る。クライアントシステム730は、クライアントシステム730のユーザが、他のクライアントシステム730における他のユーザと通信することを可能にし得る。クライアントシステム730は、ユーザがコンテンツと対話するための仮想現実環境を生成し得る。
【0061】
特定の実施形態では、クライアントシステム730は、OCULUS RIFTなど、仮想現実(または拡張現実)ヘッドセット732と、仮想現実コントローラなど、(1つまたは複数の)仮想現実入力デバイス734とを含み得る。クライアントシステム730におけるユーザは、仮想現実ヘッドセット732を装着し、仮想現実ヘッドセット732によって生成された仮想現実環境736と対話するために(1つまたは複数の)仮想現実入力デバイスを使用し得る。示されていないが、クライアントシステム730は、別個の処理コンピュータおよび/または仮想現実システムの任意の他の構成要素をも含み得る。仮想現実ヘッドセット732は、ソフトウェアまたはファームウェア更新など、(限定はしないがオペレーティングシステムを含む)システムコンテンツ738を含み、アプリケーションからのコンテンツ、またはインターネットから動的にダウンロードされたコンテンツ(たとえば、ウェブページコンテンツ)など、サードパーティコンテンツ740をも含み得る、仮想現実環境736を生成し得る。仮想現実ヘッドセット732は、ヘッドセットデバイス732のロケーションを追跡するセンサーデータを生成するための、加速度計、ジャイロスコープ、磁力計など、(1つまたは複数の)センサー742を含み得る。ヘッドセット732は、ユーザの眼の位置またはユーザの眼の観察方向を追跡するためのアイトラッカーをも含み得る。クライアントシステムは、ヘッドセットに関する速度、配向、および重力を決定するために、(1つまたは複数の)センサー742からのデータを使用し得る。(1つまたは複数の)仮想現実入力デバイス734は、入力デバイス734のロケーションとユーザの指の位置とを追跡するセンサーデータを生成するための、加速度計、ジャイロスコープ、磁力計、およびタッチセンサーなど、(1つまたは複数の)センサー744を含み得る。クライアントシステム730は、アウトサイドイン追跡(outside-in tracking)を利用し得、ここで、追跡カメラ(図示せず)が、仮想現実ヘッドセット732の外部に、および仮想現実ヘッドセット732の見通し線内に置かれる。アウトサイドイン追跡では、追跡カメラは、(たとえば、仮想現実ヘッドセット732上の1つまたは複数の赤外線LEDマーカーを追跡することによって)仮想現実ヘッドセット732のロケーションを追跡し得る。代替または追加として、クライアントシステム730は、インサイドアウト追跡(inside-out tracking)を利用し得、ここで、追跡カメラ(図示せず)が、仮想現実ヘッドセット732自体の上に、または仮想現実ヘッドセット732自体の内部に置かれ得る。インサイドアウト追跡では、追跡カメラは、現実世界において追跡カメラの周りの画像をキャプチャし得、現実世界の変化するパースペクティブを使用して、空間における追跡カメラ自体の位置を決定し得る。
【0062】
サードパーティコンテンツ740は、MICROSOFT INTERNET EXPLORER、GOOGLE CHROMEまたはMOZILLA FIREFOXなど、ウェブブラウザを含み得、1つまたは複数のアドオン、プラグイン、あるいは、TOOLBARまたはYAHOO TOOLBARなど、他の拡張を有し得る。クライアントシステム730におけるユーザは、ウェブブラウザを(サーバ762、またはサードパーティシステム770に関連付けられたサーバなどの)特定のサーバに向けるユニフォームリソースロケータ(URL)または他のアドレスを入力し得、ウェブブラウザは、ハイパーテキスト転送プロトコル(HTTP)要求を生成し、HTTP要求をサーバに通信し得る。サーバは、HTTP要求を受け入れ、HTTP要求に応答する1つまたは複数のハイパーテキストマークアップ言語(HTML)ファイルをクライアントシステム730に通信し得る。クライアントシステム730は、ユーザへの提示のためにサーバからのHTMLファイルに基づいてウェブインターフェース(たとえば、ウェブページ)をレンダリングし得る。本開示は、任意の好適なソースファイルを企図する。限定としてではなく一例として、ウェブインターフェースは、特定の必要に応じて、HTMLファイル、拡張可能ハイパーテキストマークアップ言語(XHTML)ファイル、または拡張可能マークアップ言語(XML)ファイルから、レンダリングされ得る。そのようなインターフェースは、たとえば、限定はしないが、JAVASCRIPT、JAVA、MICROSOFT SILVERLIGHTで書かれたものなどのスクリプト、AJAX(非同期JAVASCRIPTおよびXML)などのマークアップ言語とスクリプトとの組合せなどをも実行し得る。本明細書では、ウェブインターフェースへの言及は、適切な場合、(ブラウザがウェブインターフェースをレンダリングするために使用し得る)1つまたは複数の対応するソースファイルを包含し、その逆も同様である。
【0063】
特定の実施形態では、ソーシャルネットワーキングシステム760は、オンラインソーシャルネットワークをホストすることができるネットワークアドレス指定可能なコンピューティングシステムであり得る。ソーシャルネットワーキングシステム760は、たとえば、ユーザプロファイルデータ、概念プロファイルデータ、ソーシャルグラフ情報、またはオンラインソーシャルネットワークに関係する他の好適なデータなど、ソーシャルネットワーキングデータを生成し、記憶し、受信し、送り得る。ソーシャルネットワーキングシステム760は、直接的にまたはネットワーク710を介してのいずれかで、ネットワーク環境700の他の構成要素によってアクセスされ得る。限定としてではなく一例として、クライアントシステム730は、直接的にまたはネットワーク710を介してのいずれかで、サードパーティコンテンツ740のウェブブラウザ、またはソーシャルネットワーキングシステム760に関連付けられたネイティブアプリケーション(たとえば、モバイルソーシャルネットワーキングアプリケーション、メッセージングアプリケーション、別の好適なアプリケーション、またはそれらの任意の組合せ)を使用して、ソーシャルネットワーキングシステム760にアクセスし得る。特定の実施形態では、ソーシャルネットワーキングシステム760は、1つまたは複数のサーバ762を含み得る。各サーバ762は、単一サーバ、あるいは複数のコンピュータまたは複数のデータセンターにわたる分散型サーバであり得る。サーバ762は、たとえば、限定はしないが、ウェブサーバ、ニュースサーバ、メールサーバ、メッセージサーバ、広告サーバ、ファイルサーバ、アプリケーションサーバ、交換サーバ、データベースサーバ、プロキシサーバ、本明細書で説明される機能またはプロセスを実施するのに好適な別のサーバ、あるいはそれらの任意の組合せなど、様々なタイプのものであり得る。特定の実施形態では、各サーバ762は、サーバ762によって実装またはサポートされる適切な機能性を行うための、ハードウェア、ソフトウェア、または埋込み論理構成要素、または2つまたはそれ以上のそのような構成要素の組合せを含み得る。特定の実施形態では、ソーシャルネットワーキングシステム760は、1つまたは複数のデータストア764を含み得る。データストア764は、様々なタイプの情報を記憶するために使用され得る。特定の実施形態では、データストア764に記憶された情報は、固有のデータ構造に従って編成され得る。特定の実施形態では、各データストア764は、リレーショナルデータベース、列指向データベース、相関データベース、または他の好適なデータベースであり得る。本開示は、特定のタイプのデータベースを説明するかまたは示すが、本開示は任意の好適なタイプのデータベースを企図する。特定の実施形態は、クライアントシステム730、ソーシャルネットワーキングシステム760、またはサードパーティシステム770が、データストア764に記憶された情報を管理する、取り出す、修正する、追加する、または削除することを可能にするインターフェースを提供し得る。
【0064】
特定の実施形態では、ソーシャルネットワーキングシステム760は、1つまたは複数のソーシャルグラフを1つまたは複数のデータストア764に記憶し得る。特定の実施形態では、ソーシャルグラフは、(各々特定のユーザに対応する)複数のユーザノードまたは(各々特定の概念に対応する)複数の概念ノードを含み得る、複数のノードと、ノードをつなげる複数のエッジとを含み得る。ソーシャルネットワーキングシステム760は、オンラインソーシャルネットワークのユーザに、他のユーザと通信および対話する能力を提供し得る。特定の実施形態では、ユーザは、ソーシャルネットワーキングシステム760を介してオンラインソーシャルネットワークに加わり、次いで、ユーザがつなげられることを希望するソーシャルネットワーキングシステム760の何人かの他のユーザへのつながり(たとえば、関係)を追加し得る。本明細書では、「友達」という用語は、ソーシャルネットワーキングシステム760を介してユーザがつながり、関連付け、または関係を形成したソーシャルネットワーキングシステム760の任意の他のユーザを指し得る。
【0065】
特定の実施形態では、ソーシャルネットワーキングシステム760は、ソーシャルネットワーキングシステム760によってサポートされる様々なタイプのアイテムまたはオブジェクトに関するアクションをとる能力をユーザに提供し得る。限定としてではなく一例として、アイテムおよびオブジェクトは、ソーシャルネットワーキングシステム760のユーザが属し得るグループまたはソーシャルネットワーク、ユーザが興味があり得るイベントまたはカレンダーエントリ、ユーザが使用し得るコンピュータベースアプリケーション、ユーザがサービスを介してアイテムを購入または販売することを可能にするトランザクション、ユーザが実施し得る広告との対話、あるいは他の好適なアイテムまたはオブジェクトを含み得る。ユーザは、ソーシャルネットワーキングシステム760において、またはソーシャルネットワーキングシステム760とは別個であり、ネットワーク710を介してソーシャルネットワーキングシステム760に結合された、サードパーティシステム770の外部システムによって、表されることが可能であるものと対話し得る。
【0066】
特定の実施形態では、ソーシャルネットワーキングシステム760は、様々なエンティティをリンクすることが可能であり得る。限定としてではなく一例として、ソーシャルネットワーキングシステム760は、ユーザが、互いと対話し、ならびにサードパーティシステム770または他のエンティティからコンテンツを受信すること、あるいは、ユーザがアプリケーションプログラミングインターフェース(API)または他の通信チャネルを通してこれらのエンティティと対話することを可能にすることを可能にし得る。
【0067】
特定の実施形態では、サードパーティシステム770は、1つまたは複数のタイプのサーバ、1つまたは複数のデータストア、限定はしないがAPIを含む1つまたは複数のインターフェース、1つまたは複数のウェブサービス、1つまたは複数のコンテンツソース、1つまたは複数のネットワーク、またはたとえばサーバが通信し得る任意の他の好適な構成要素を含み得る。サードパーティシステム770は、ソーシャルネットワーキングシステム760を動作させるエンティティとは異なるエンティティによって動作させられ得る。しかしながら、特定の実施形態では、ソーシャルネットワーキングシステム760とサードパーティシステム770とは、互いと連携して動作して、ソーシャルネットワーキングシステム760またはサードパーティシステム770のユーザにソーシャルネットワーキングサービスを提供し得る。この意味で、ソーシャルネットワーキングシステム760は、サードパーティシステム770などの他のシステムが、インターネットにわたってユーザにソーシャルネットワーキングサービスおよび機能性を提供するために使用し得る、プラットフォームまたはバックボーンを提供し得る。
【0068】
特定の実施形態では、サードパーティシステム770は、サードパーティコンテンツオブジェクトプロバイダを含み得る。サードパーティコンテンツオブジェクトプロバイダは、クライアントシステム730に通信され得る、コンテンツオブジェクトの1つまたは複数のソースを含み得る。限定としてではなく一例として、コンテンツオブジェクトは、たとえば、映画の上映時間、映画のレビュー、レストランのレビュー、レストランのメニュー、製品情報およびレビュー、または他の好適な情報など、ユーザにとって興味のある物またはアクティビティに関する情報を含み得る。限定としてではなく別の例として、コンテンツオブジェクトは、クーポン、ディスカウントチケット、ギフト券、または他の好適なインセンティブオブジェクトなど、インセンティブコンテンツオブジェクトを含み得る。
【0069】
特定の実施形態では、ソーシャルネットワーキングシステム760は、ソーシャルネットワーキングシステム760とのユーザの対話を向上させ得る、ユーザ生成されたコンテンツオブジェクトをも含む。ユーザ生成されたコンテンツは、ユーザがソーシャルネットワーキングシステム760に追加するか、アップロードするか、送るか、または「投稿」することができるものを含み得る。限定としてではなく一例として、ユーザは、クライアントシステム730からソーシャルネットワーキングシステム760に投稿を通信する。投稿は、ステータス更新または他のテキストデータ、ロケーション情報、写真、ビデオ、リンク、音楽あるいは他の同様のデータまたはメディアなど、データを含み得る。コンテンツはまた、ニュースフィードまたはストリームなどの「通信チャネル」を通して、サードパーティによってソーシャルネットワーキングシステム760に追加され得る。
【0070】
特定の実施形態では、ソーシャルネットワーキングシステム760は、様々なサーバ、サブシステム、プログラム、モジュール、ログ、およびデータストアを含み得る。特定の実施形態では、ソーシャルネットワーキングシステム760は、ウェブサーバ、アクションロガー、API要求サーバ、関連性およびランキングエンジン、コンテンツオブジェクト分類子、通知コントローラ、アクションログ、サードパーティコンテンツオブジェクト露出ログ、推論モジュール、許可/プライバシーサーバ、検索モジュール、広告ターゲッティングモジュール、ユーザインターフェースモジュール、ユーザプロファイルストア、つながりストア、サードパーティコンテンツストア、またはロケーションストアのうちの1つまたは複数を含み得る。ソーシャルネットワーキングシステム760は、ネットワークインターフェース、セキュリティ機構、ロードバランサ、フェイルオーバサーバ、管理およびネットワーク運用コンソール、他の好適な構成要素、またはそれらの任意の好適な組合せなど、好適な構成要素をも含み得る。特定の実施形態では、ソーシャルネットワーキングシステム760は、ユーザプロファイルを記憶するための1つまたは複数のユーザプロファイルストアを含み得る。ユーザプロファイルは、たとえば、経歴情報、人口統計学的情報、行動情報、ソーシャル情報、あるいは、職歴、学歴、趣味もしくは選好、興味、親和性、またはロケーションなど、他のタイプの記述的情報を含み得る。興味情報は、1つまたは複数のカテゴリーに関係する興味を含み得る。カテゴリーは一般的であるかまたは固有のものであり得る。限定としてではなく一例として、ユーザが、靴のブランドに関する記事に対して「いいね!」を表明した場合、カテゴリーは、ブランド、あるいは「靴」または「衣類」の一般的なカテゴリーであり得る。つながりストアは、ユーザに関するつながり情報を記憶するために使用され得る。つながり情報は、同様のまたは共通の職歴、グループメンバーシップ、趣味、学歴を有するか、あるいはいかなる形でも関係するか、または共通属性を共有する、ユーザを指示し得る。つながり情報は、(内部と外部の両方の)異なるユーザとコンテンツとの間のユーザ定義されたつながりをも含み得る。ウェブサーバは、ネットワーク710を介して、ソーシャルネットワーキングシステム760を、1つまたは複数のクライアントシステム730または1つまたは複数のサードパーティシステム770にリンクするために使用され得る。ウェブサーバは、ソーシャルネットワーキングシステム760と1つまたは複数のクライアントシステム730との間でメッセージを受信およびルーティングするためのメールサーバまたは他のメッセージング機能性を含み得る。API要求サーバは、サードパーティシステム770が、1つまたは複数のAPIを呼び出すことによってソーシャルネットワーキングシステム760からの情報にアクセスすることを可能にし得る。アクションロガーは、ソーシャルネットワーキングシステム760上の、またはソーシャルネットワーキングシステム760から離れた、ユーザのアクションに関するウェブサーバからの通信を受信するために使用され得る。アクションログと併せて、サードパーティコンテンツオブジェクトへのユーザ露出についてのサードパーティコンテンツオブジェクトログが維持され得る。通知コントローラは、クライアントシステム730にコンテンツオブジェクトに関する情報を提供し得る。情報は、通知としてクライアントシステム730にプッシュされ得るか、または、情報は、クライアントシステム730から受信された要求に応答してクライアントシステム730からプルされ得る。許可サーバは、ソーシャルネットワーキングシステム760のユーザの1つまたは複数のプライバシー設定を施行するために使用され得る。ユーザのプライバシー設定は、ユーザに関連付けられた特定の情報がどのように共有され得るかを決定する。許可サーバは、ユーザが、たとえば、適切なプライバシー設定を設定することなどによって、そのユーザのアクションがソーシャルネットワーキングシステム760によってロギングされるか、または他のシステム(たとえば、サードパーティシステム770)と共有されることをオプトインまたはオプトアウトすることを可能にし得る。サードパーティコンテンツオブジェクトストアは、サードパーティシステム770など、サードパーティから受信されたコンテンツオブジェクトを記憶するために使用され得る。ロケーションストアは、ユーザに関連付けられたクライアントシステム730から受信されたロケーション情報を記憶するために使用され得る。広告価格設定モジュールは、ソーシャル情報、現在時間、ロケーション情報、または他の好適な情報を組み合わせて、関連する広告を通知の形態でユーザに提供し得る。
【0071】
図8は、セマンティックモデルを生成するための例示的な方法800を示す。特定の実施形態では、セマンティックモデルを生成するために仮想現実ヘッドセット732が使用され得る。方法はステップ810において開始し得、コンピューティングシステム(たとえば、仮想現実システム)が、複数のカメラポーズから1つまたは複数のカメラによってキャプチャされた複数の画像にアクセスし得る。ステップ820において、コンピューティングシステムは、複数の画像を使用して、複数の画像中でキャプチャされた1つまたは複数のオブジェクトのセマンティック情報を含む複数のセマンティックセグメンテーションを生成し得る。ステップ830において、コンピューティングシステムは、1つまたは複数のオブジェクトの3次元(3D)モデルにアクセスし得る。ステップ840において、コンピューティングシステムは、複数のカメラポーズを使用して、1つまたは複数のオブジェクトの3Dモデルに対する対応する複数の仮想カメラポーズを決定し得る。ステップ850において、コンピューティングシステムは、複数の仮想カメラポーズを使用して複数のセマンティックセグメンテーションのセマンティック情報を3Dモデルのほうへ投影することによってセマンティック3Dモデルを生成し得る。特定の実施形態は、適切な場合、図8の方法の1つまたは複数のステップを繰り返し得る。本開示は、図5の方法の特定のステップを、特定の順序で行われるものとして説明し、示すが、本開示は、図8の方法の任意の好適なステップが任意の好適な順序で行われることを企図する。その上、本開示は、図8の方法の特定のステップを含む、セマンティックモデルを生成するための例示的な方法を説明し、示すが、本開示は、適切な場合、図8の方法のステップのすべてを含むか、いくつかを含むか、またはいずれも含まないことがある、任意の好適なステップを含む、セマンティックモデルを生成する任意の好適な方法を企図する。さらに、本開示は、図8の方法の特定のステップを行う特定の構成要素、デバイス、またはシステムを説明し、示すが、本開示は、図8の方法の任意の好適なステップを行う任意の好適な構成要素、デバイス、またはシステムの任意の好適な組合せを企図する。
【0072】
本開示は、仮想現実ヘッドセット132が様々な機能を実施することのコンテキストにおいてプロセスを説明し、示すが、コンピューティングシステム(たとえば、ソーシャルネットワーキングシステム160またはサードパーティシステム170として具現されたサーバ)が、処理を扱い、結果を仮想現実ヘッドセット132に送り得、その逆も同様である。
【0073】
図9は、例示的なコンピュータシステム900を示す。特定の実施形態では、1つまたは複数のコンピュータシステム900は、本明細書で説明または示される1つまたは複数の方法の1つまたは複数のステップを実施する。特定の実施形態では、1つまたは複数のコンピュータシステム900は、本明細書で説明または示される機能性を提供する。特定の実施形態では、1つまたは複数のコンピュータシステム900上で稼働しているソフトウェアは、本明細書で説明または示される1つまたは複数の方法の1つまたは複数のステップを実施するか、あるいは本明細書で説明または示される機能性を提供する。特定の実施形態は、1つまたは複数のコンピュータシステム900の1つまたは複数の部分を含む。本明細書では、コンピュータシステムへの言及は、適切な場合、コンピューティングデバイスを包含し得、その逆も同様である。その上、コンピュータシステムへの言及は、適切な場合、1つまたは複数のコンピュータシステムを包含し得る。
【0074】
本開示は、任意の好適な数のコンピュータシステム900を企図する。本開示は、任意の好適な物理的形態をとるコンピュータシステム900を企図する。限定としてではなく例として、コンピュータシステム900は、組込み型コンピュータシステム、システムオンチップ(SOC)、(たとえば、コンピュータオンモジュール(COM)またはシステムオンモジュール(SOM)などの)シングルボードコンピュータシステム(SBC)、デスクトップコンピュータシステム、ラップトップまたはノートブックコンピュータシステム、対話型キオスク、メインフレーム、コンピュータシステムのメッシュ、携帯電話、携帯情報端末(PDA)、サーバ、タブレットコンピュータシステム、あるいはこれらのうちの2つまたはそれ以上の組合せであり得る。適切な場合、コンピュータシステム900は、1つまたは複数のコンピュータシステム900を含むか、単一または分散型であるか、複数のロケーションにわたるか、複数のマシンにわたるか、複数のデータセンターにわたるか、あるいは1つまたは複数のネットワーク中の1つまたは複数のクラウド構成要素を含み得るクラウド中に常駐し得る。適切な場合、1つまたは複数のコンピュータシステム900は、実質的な空間的または時間的制限なしに、本明細書で説明または示される1つまたは複数の方法の1つまたは複数のステップを実施し得る。限定としてではなく一例として、1つまたは複数のコンピュータシステム900は、リアルタイムでまたはバッチモードで、本明細書で説明または示される1つまたは複数の方法の1つまたは複数のステップを実施し得る。1つまたは複数のコンピュータシステム900は、適切な場合、異なる時間においてまたは異なるロケーションにおいて、本明細書で説明または示される1つまたは複数の方法の1つまたは複数のステップを実施し得る。
【0075】
特定の実施形態では、コンピュータシステム900は、プロセッサ902と、メモリ904と、ストレージ906と、入出力(I/O)インターフェース908と、通信インターフェース910と、バス912とを含む。本開示は、特定の配置において特定の数の特定の構成要素を有する特定のコンピュータシステムを説明し、示すが、本開示は、任意の好適な配置において任意の好適な数の任意の好適な構成要素を有する任意の好適なコンピュータシステムを企図する。
【0076】
特定の実施形態では、プロセッサ902は、コンピュータプログラムを作成する命令など、命令を実行するためのハードウェアを含む。限定としてではなく一例として、命令を実行するために、プロセッサ902は、内部レジスタ、内部キャッシュ、メモリ904、またはストレージ906から命令を取り出し(またはフェッチし)、それらの命令を復号および実行し、次いで、内部レジスタ、内部キャッシュ、メモリ904、またはストレージ906に1つまたは複数の結果を書き込み得る。特定の実施形態では、プロセッサ902は、データ、命令、またはアドレスのための1つまたは複数の内部キャッシュを含み得る。本開示は、適切な場合、任意の好適な数の任意の好適な内部キャッシュを含むプロセッサ902を企図する。限定としてではなく一例として、プロセッサ902は、1つまたは複数の命令キャッシュと、1つまたは複数のデータキャッシュと、1つまたは複数のトランスレーションルックアサイドバッファ(TLB)とを含み得る。命令キャッシュ中の命令は、メモリ904またはストレージ906中の命令のコピーであり得、命令キャッシュは、プロセッサ902によるそれらの命令の取出しを高速化し得る。データキャッシュ中のデータは、プロセッサ902において実行する命令が動作する対象のメモリ904またはストレージ906中のデータのコピー、プロセッサ902において実行する後続の命令によるアクセスのための、またはメモリ904もしくはストレージ906に書き込むための、プロセッサ902において実行された前の命令の結果、あるいは他の好適なデータであり得る。データキャッシュは、プロセッサ902による読取りまたは書込み動作を高速化し得る。TLBは、プロセッサ902のための仮想アドレストランスレーション(virtual-address translation)を高速化し得る。特定の実施形態では、プロセッサ902は、データ、命令、またはアドレスのための1つまたは複数の内部レジスタを含み得る。本開示は、適切な場合、任意の好適な数の任意の好適な内部レジスタを含むプロセッサ902を企図する。適切な場合、プロセッサ902は、1つまたは複数の算術論理ユニット(ALU)を含むか、マルチコアプロセッサであるか、または1つまたは複数のプロセッサ902を含み得る。本開示は、特定のプロセッサを説明し、示すが、本開示は任意の好適なプロセッサを企図する。
【0077】
特定の実施形態では、メモリ904は、プロセッサ902が実行するための命令、またはプロセッサ902が動作する対象のデータを記憶するためのメインメモリを含む。限定としてではなく一例として、コンピュータシステム900は、ストレージ906または(たとえば、別のコンピュータシステム900などの)別のソースからメモリ904に命令をロードし得る。プロセッサ902は、次いで、メモリ904から内部レジスタまたは内部キャッシュに命令をロードし得る。命令を実行するために、プロセッサ902は、内部レジスタまたは内部キャッシュから命令を取り出し、それらの命令を復号し得る。命令の実行中またはその後に、プロセッサ902は、(中間結果または最終結果であり得る)1つまたは複数の結果を内部レジスタまたは内部キャッシュに書き込み得る。プロセッサ902は、次いで、メモリ904にそれらの結果のうちの1つまたは複数を書き込み得る。特定の実施形態では、プロセッサ902は、1つまたは複数の内部レジスタまたは内部キャッシュ中の、あるいは(ストレージ906または他の場所とは対照的な)メモリ904中の命令のみを実行し、1つまたは複数の内部レジスタまたは内部キャッシュ中の、あるいは(ストレージ906または他の場所とは対照的な)メモリ904中のデータのみに対して動作する。(アドレスバスおよびデータバスを各々含み得る)1つまたは複数のメモリバスが、プロセッサ902をメモリ904に結合し得る。バス912は、以下で説明されるように、1つまたは複数のメモリバスを含み得る。特定の実施形態では、1つまたは複数のメモリ管理ユニット(MMU)が、プロセッサ902とメモリ904との間に常駐し、プロセッサ902によって要求されるメモリ904へのアクセスを容易にする。特定の実施形態では、メモリ904は、ランダムアクセスメモリ(RAM)を含む。このRAMは、適切な場合、揮発性メモリであり得る。適切な場合、このRAMは、ダイナミックRAM(DRAM)またはスタティックRAM(SRAM)であり得る。その上、適切な場合、このRAMは、シングルポートまたはマルチポートRAMであり得る。本開示は、任意の好適なRAMを企図する。メモリ904は、適切な場合、1つまたは複数のメモリ904を含み得る。本開示は、特定のメモリを説明し、示すが、本開示は任意の好適なメモリを企図する。
【0078】
特定の実施形態では、ストレージ906は、データまたは命令のための大容量ストレージを含む。限定としてではなく一例として、ストレージ906は、ハードディスクドライブ(HDD)、フロッピーディスクドライブ、フラッシュメモリ、光ディスク、光磁気ディスク、磁気テープ、またはユニバーサルシリアルバス(USB)ドライブ、あるいはこれらのうちの2つまたはそれ以上の組合せを含み得る。ストレージ906は、適切な場合、リムーバブルまたは非リムーバブル(または固定)媒体を含み得る。ストレージ906は、適切な場合、コンピュータシステム900の内部または外部にあり得る。特定の実施形態では、ストレージ906は、不揮発性ソリッドステートメモリである。特定の実施形態では、ストレージ906は、読取り専用メモリ(ROM)を含む。適切な場合、このROMは、マスクプログラムROM、プログラマブルROM(PROM)、消去可能PROM(EPROM)、電気的消去可能PROM(EEPROM)、電気的書き換え可能ROM(EAROM)、またはフラッシュメモリ、あるいはこれらのうちの2つまたはそれ以上の組合せであり得る。本開示は、任意の好適な物理的形態をとる大容量ストレージ906を企図する。ストレージ906は、適切な場合、プロセッサ902とストレージ906との間の通信を容易にする1つまたは複数のストレージ制御ユニットを含み得る。適切な場合、ストレージ906は、1つまたは複数のストレージ906を含み得る。本開示は、特定のストレージを説明し、示すが、本開示は任意の好適なストレージを企図する。
【0079】
特定の実施形態では、I/Oインターフェース908は、コンピュータシステム900と1つまたは複数のI/Oデバイスとの間の通信のための1つまたは複数のインターフェースを提供する、ハードウェア、ソフトウェア、またはその両方を含む。コンピュータシステム900は、適切な場合、これらのI/Oデバイスのうちの1つまたは複数を含み得る。これらのI/Oデバイスのうちの1つまたは複数は、人とコンピュータシステム900との間の通信を可能にし得る。限定としてではなく一例として、I/Oデバイスは、キーボード、キーパッド、マイクロフォン、モニタ、マウス、プリンタ、スキャナ、スピーカー、スチールカメラ、スタイラス、タブレット、タッチスクリーン、トラックボール、ビデオカメラ、別の好適なI/Oデバイス、またはこれらのうちの2つまたはそれ以上の組合せを含み得る。I/Oデバイスは1つまたは複数のセンサーを含み得る。本開示は、任意の好適なI/Oデバイスと、それらのI/Oデバイスのための任意の好適なI/Oインターフェース908とを企図する。適切な場合、I/Oインターフェース908は、プロセッサ902がこれらのI/Oデバイスのうちの1つまたは複数を駆動することを可能にする1つまたは複数のデバイスまたはソフトウェアドライバを含み得る。I/Oインターフェース908は、適切な場合、1つまたは複数のI/Oインターフェース908を含み得る。本開示は、特定のI/Oインターフェースを説明し、示すが、本開示は任意の好適なI/Oインターフェースを企図する。
【0080】
特定の実施形態では、通信インターフェース910は、コンピュータシステム900と、1つまたは複数の他のコンピュータシステム900または1つまたは複数のネットワークとの間の(たとえば、パケットベース通信などの)通信のための1つまたは複数のインターフェースを提供する、ハードウェア、ソフトウェア、またはその両方を含む。限定としてではなく一例として、通信インターフェース910は、イーサネットまたは他のワイヤベースネットワークと通信するためのネットワークインターフェースコントローラ(NIC)またはネットワークアダプタ、あるいはWI-FIネットワークなどのワイヤレスネットワークと通信するためのワイヤレスNIC(WNIC)またはワイヤレスアダプタを含み得る。本開示は、任意の好適なネットワークと、そのネットワークのための任意の好適な通信インターフェース910とを企図する。限定としてではなく一例として、コンピュータシステム900は、アドホックネットワーク、パーソナルエリアネットワーク(PAN)、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、メトロポリタンエリアネットワーク(MAN)、またはインターネットの1つまたは複数の部分、あるいはこれらのうちの2つまたはそれ以上の組合せと通信し得る。これらのネットワークのうちの1つまたは複数の1つまたは複数の部分は、ワイヤードまたはワイヤレスであり得る。一例として、コンピュータシステム900は、(たとえば、BLUETOOTH WPANなどの)ワイヤレスPAN(WPAN)、WI-FIネットワーク、WI-MAXネットワーク、(たとえば、モバイル通信用グローバルシステム(GSM)ネットワークなどの)セルラー電話ネットワーク、または他の好適なワイヤレスネットワーク、あるいはこれらのうちの2つまたはそれ以上の組合せと通信し得る。コンピュータシステム900は、適切な場合、これらのネットワークのいずれかのための任意の好適な通信インターフェース910を含み得る。通信インターフェース910は、適切な場合、1つまたは複数の通信インターフェース910を含み得る。本開示は、特定の通信インターフェースを説明し、示すが、本開示は任意の好適な通信インターフェースを企図する。
【0081】
特定の実施形態では、バス912は、コンピュータシステム900の構成要素を互いに結合する、ハードウェア、ソフトウェア、またはその両方を含む。限定としてではなく一例として、バス912は、アクセラレーテッドグラフィックスポート(AGP)または他のグラフィックスバス、拡張業界標準アーキテクチャ(EISA)バス、フロントサイドバス(FSB)、HYPERTRANSPORT(HT)相互接続、業界標準アーキテクチャ(ISA)バス、INFINIBAND相互接続、ローピンカウント(LPC)バス、メモリバス、マイクロチャネルアーキテクチャ(MCA)バス、周辺構成要素相互接続(PCI)バス、PCI-Express(PCIe)バス、シリアルアドバンストテクノロジーアタッチメント(SATA)バス、ビデオエレクトロニクス規格協会ローカル(VLB)バス、または別の好適なバス、あるいはこれらのうちの2つまたはそれ以上の組合せを含み得る。バス912は、適切な場合、1つまたは複数のバス912を含み得る。本開示は、特定のバスを説明し、示すが、本開示は任意の好適なバスまたは相互接続を企図する。
【0082】
本明細書では、1つまたは複数のコンピュータ可読非一時的記憶媒体は、適切な場合、(たとえば、フィールドプログラマブルゲートアレイ(FPGA)または特定用途向けIC(ASIC)などの)1つまたは複数の半導体ベースまたは他の集積回路(IC)、ハードディスクドライブ(HDD)、ハイブリッドハードドライブ(HHD)、光ディスク、光ディスクドライブ(ODD)、光磁気ディスク、光磁気ドライブ、フロッピーディスケット、フロッピーディスクドライブ(FDD)、磁気テープ、ソリッドステートドライブ(SSD)、RAMドライブ、セキュアデジタルカードまたはドライブ、任意の他の好適なコンピュータ可読非一時的記憶媒体、あるいはこれらのうちの2つまたはそれ以上の任意の好適な組合せを含み得る。コンピュータ可読非一時的記憶媒体は、適切な場合、揮発性、不揮発性、または揮発性と不揮発性との組合せであり得る。
【0083】
本明細書では、「または」は、明確に別段に指示されていない限り、またはコンテキストによって別段に指示されていない限り、包括的であり、排他的ではない。したがって、本明細書では、「AまたはB」は、明確に別段に指示されていない限り、またはコンテキストによって別段に指示されていない限り、「A、B、またはその両方」を意味する。その上、「および」は、明確に別段に指示されていない限り、またはコンテキストによって別段に指示されていない限り、共同と個別の両方である。したがって、本明細書では、「AおよびB」は、明確に別段に指示されていない限り、またはコンテキストによって別段に指示されていない限り、「共同でまたは個別に、AおよびB」を意味する。
【0084】
本開示の範囲は、当業者が理解するであろう、本明細書で説明または示される例示的な実施形態に対するすべての変更、置換、変形、改変、および修正を包含する。本開示の範囲は、本明細書で説明または示される例示的な実施形態に限定されない。その上、本開示は、本明細書のそれぞれの実施形態を、特定の構成要素、要素、特徴、機能、動作、またはステップを含むものとして説明し、示すが、これらの実施形態のいずれも、当業者が理解するであろう、本明細書のどこかに説明または示される構成要素、要素、特徴、機能、動作、またはステップのうちのいずれかの任意の組合せまたは置換を含み得る。さらに、特定の機能を実施するように適応されるか、配置されるか、実施することが可能であるか、実施するように構成されるか、実施することが可能にされるか、実施するように動作可能であるか、または実施するように動作する、装置またはシステムあるいは装置またはシステムの構成要素に対する添付の特許請求の範囲における参照は、その装置、システム、または構成要素が、そのように適応されるか、配置されるか、可能であるか、構成されるか、可能にされるか、動作可能であるか、または動作する限り、その装置、システム、構成要素またはその特定の機能が、アクティブにされるか、オンにされるか、またはロック解除されるか否かにかかわらず、その装置、システム、構成要素を包含する。さらに、本開示は、特定の実施形態を、特定の利点を提供するものとして説明するかまたは示すが、特定の実施形態は、これらの利点のいずれをも提供しないか、いくつかを提供するか、またはすべてを提供し得る。
図1A
図1B
図1C
図2A-2B】
図3A-3C】
図4A-4B】
図5
図6
図7
図8
図9