(57)【特許請求の範囲】
【請求項１】
物理環境のデジタル表現を構築するための方法であって、
前記物理環境を示す画像を定義する画像データを取得するステップであって、前記画像データは、前記物理環境の深度情報を含む、ステップと、
前記取得された画像データを用いて前記物理環境における物体の表面の1つまたは複数のエッジを識別するためのカバレッジエリアを定義するユーザ入力データを受け取るステップであって、前記ユーザ入力データは、前記表面の前記1つまたは複数のエッジを含む前記画像の一部の輪郭を描く前記カバレッジエリアを定義する、ステップと、
前記取得された画像データの前記深度情報を用いて前記物理環境における少なくとも1つの深さの不連続性を検出するステップであって、前記少なくとも1つの深さの不連続性は、前記受け取られたユーザ入力データによって定義された前記カバレッジエリア内で検出される、ステップと、
前記物理環境における前記表面のエッジを識別するステップであって、前記エッジは、前記物理環境における前記検出された少なくとも1つの深さの不連続性で識別される、ステップと、
前記物理環境における前記表面に対応するデジタル表面を生成するステップであって、前記デジタル表面のエッジは、前記識別されたエッジに基づく、ステップと
を備える方法。
【請求項２】
前記受け取られたユーザ入力データは、前記デジタル表面の少なくとも1つの平面を指定する、請求項1に記載の方法。
【請求項３】
前記受け取られたユーザ入力データは、前記デジタル表面の一部として含まれている複数のポイントを、前記取得された画像データに基づいて前記物理環境内に備える、請求項1に記載の方法。
【請求項４】
前記少なくとも1つの不連続性を検出するステップは、少なくとも2つの平面の表面が交差する前記物理環境において検出するステップを備える、請求項1に記載の方法。
【請求項５】
前記デジタル表面に関連付けられた少なくとも1つの機能を定義するセマンティック入力を受け取るステップ、をさらに備える請求項1に記載の方法。
【請求項６】
前記受け取られたユーザ入力データは、2次元座標における入力データを備え、前記生成されたデジタル表面は、3次元座標における出力データを備える、請求項1に記載の方法。
【請求項７】
コンピュータ可読記憶媒体であって、前記コンピュータ可読記憶媒体は、プロセッサによって実行可能な命令を備え、前記命令は、請求項1から6のいずれか一項に記載の方法のステップを実行するための命令を備える、コンピュータ可読記憶媒体。
【請求項８】
モバイルデバイスであって、
物理環境を示す画像を定義する画像データを取得するための手段であって、前記画像データは、前記物理環境の深度情報を含む、手段と、
前記取得された画像データを用いて前記物理環境における物体の表面の1つまたは複数のエッジを識別するためのカバレッジエリアを定義するユーザ入力データを受け取るための手段であって、前記ユーザ入力データは、前記表面の前記1つまたは複数のエッジを含む前記画像の一部の輪郭を描く前記カバレッジエリアを定義する、手段と、
前記取得された画像データの前記深度情報を用いて前記物理環境における少なくとも1つの深さの不連続性を検出するための手段であって、前記少なくとも1つの深さの不連続性は、前記受け取られたユーザ入力データによって定義された前記カバレッジエリア内で検出される、手段と、
前記物理環境における前記表面のエッジを識別する手段であって、前記エッジは、前記物理環境における前記検出された少なくとも1つの深さの不連続性で識別される、手段と、
前記物理環境における前記表面に対応するデジタル表面を生成するための手段であって、前記デジタル表面のエッジは、前記識別されたエッジに基づく、手段と
を備えるモバイルデバイス。
【請求項９】
前記受け取られたユーザ入力データは、前記デジタル表面の少なくとも1つの平面を指定する、請求項8に記載のモバイルデバイス。
【請求項１０】
前記受け取られたユーザ入力データは、前記デジタル表面の一部として含まれている複数のポイントを、前記取得された画像データに基づいて前記物理環境内に備える、請求項8に記載のモバイルデバイス。
【請求項１１】
前記少なくとも1つの不連続性を検出するための手段は、少なくとも2つの平面の表面が交差する前記物理環境において検出するための手段を備える、請求項8に記載のモバイルデバイス。
【請求項１２】
前記デジタル表面に関連付けられた少なくとも1つの機能を定義するセマンティック入力を受け取るための手段、をさらに備える請求項8に記載のモバイルデバイス。
【請求項１３】
前記物理環境を示す画像データおよび深度データを取得するように構成された、カメラおよび深度センサと、
メモリに接続された、プロセッサとをさらに備える、請求項8に記載のモバイルデバイス。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、一般に、拡張現実環境に関し、より詳しくは、物理環境をリアルタイムでモデル化することに関する。
【背景技術】
【０００２】
拡張現実(AR)環境では、ユーザは、AR機能を可能にするために、自分の物理的な周囲のモデルを取得することを所望し得る。たとえば、ユーザは、壁、床、および天井の表面、および机のテーブル表面を含み得る、自分のオフィスの眺めの重要な構造をモデル化することを所望し得る。現実の物理環境をモデル化する現在の方法は、異なる表面を互いに区別する能力に欠け、代わりに、カメラビューからの各ポイントに対して関連付けられた深さを示すポイントの稠密な再構築を単に生成しているにすぎない。さらに、ポイントのこの集合は、どのポイントが壁に属しているか、または、どのポイントが机に属しているか等を区別するための如何なる手段も含んでいないことがあり得る。そのようなセマンティックな意味付けを欠くことは、ARの壁または机表面とインタラクトすることを困難にする。さらに、ポイントのこの集合を生成することは、きわめてプロセッサ集約的であり、リアルタイム使用にあまり適していないことがあり得る。
【０００３】
本発明の実施形態は、この問題および他の問題を解決する。
【発明の概要】
【課題を解決するための手段】
【０００４】
本開示は、一般に、拡張現実環境に関し、より詳しくは、物理環境をリアルタイムでモデル化することに関する。
【０００５】
直観的なユーザ入力およびユーザの物理環境に基づいて、拡張現実(AR)環境をモバイルデバイスにおいてリアルタイムでモデル化するための方法および装置を提示している。いくつかの実施形態では、ユーザは、本開示のシステムおよび方法に基づいて、ユーザの物理環境の表面を表す幾何学形状を生成し得る。いくつかの実施形態では、ユーザによるそのような表面の大まかな指定だけが必要であり、いくつかのケースでは、迅速で不正確な入力が受け入れ可能であり得る。いくつかの実施形態では、たとえば、深度カメラからの入力のような、モバイルデバイスへのセンサ機能が、ユーザが十分に指定できない表面の残りの部分を推論するために使用され得る。いくつかの実施形態では、方法およびアプリケーションは、マニュアルユーザインターフェースを含む一方、他の実施形態では、より「半自動的な」ユーザインターフェースが適用され得る。
【０００６】
産業における既知の方法を用いて、深度センサは、極めて詳細な情報を含む3次元(3D)再構築を生成し得る。これは、いかなるセマンティックも存在しない多くの幾何学的なプリミティブを含み得るモデルになる。しかしながら、多くのアプリケーションのために、必要とされ得るすべては、少ない数のポリゴンから構成される幾何学モデルであり、これは、有り余るほど多くの詳細ではなく、環境の重要な構造を表す。モデル化された構造は、幾何学的な面、エッジおよび頂点、および単なるボリュームからなるポリゴンモデルを含み得る。そのような幾何学モデルは、構造モデルと称され得る。たとえば、単純な部屋は、4つの壁、床、天井、ドアおよび窓の合計8つのポリゴンを含み得る。これらの幾何学構造は、複雑さは低く、しばしば、直角または並行なエッジのような制約を有することに注目されたい。
【０００７】
さらに、構造にセマンティックな意味付けを与えることが重要であり得る。たとえば、ドアは、隣接した部屋にアクセスするために使用され得る。または、実際の表面上に仮想的な物体が留まるように制約され得る。あるいは、窓が、上下にスライドし得る。拡張現実(AR)におけるインタラクションの場合、関連情報を備えた簡素化された構造モデルが、モバイルデバイスにおいて、構造モデルに関連付けられた情報のリアルタイム処理を可能にし得る。したがって、本発明の実施形態は、ドアのための1つの長方形のように、現実世界からの重要な要素を、少ない数のポリゴンを用いて表すことを提案する。
【０００８】
物理環境のデジタル表現を構築するための例示的な方法は、物理環境を示す画像データを取得するステップと、取得された画像データに基づいて、物理環境における少なくとも1つの位置に対応するユーザ入力データを受け取るステップと、受け取られたユーザ入力データに対応する少なくとも1つの位置の近傍の物理環境における少なくとも1つの不連続性を検出するステップと、受け取られたユーザ入力データおよび少なくとも1つの不連続性に基づいて、物理環境における表面に対応するデジタル表面を生成するステップとを含み得る。この方法のいくつかの実施形態では、受け取られたユーザ入力データは、デジタル表面の少なくとも1つのエッジを指定する。他の実施形態では、受け取られたユーザ入力データは、デジタル表面の少なくとも1つの平面を指定する。さらに他の実施形態では、受け取られたユーザ入力データは、デジタル表面の一部として含まれている複数のポイントを、取得された画像データに基づいて物理環境内に備える。
【０００９】
いくつかの実施形態では、画像データは、物理環境に関する幾何学的な深度情報を含み得る。いくつかの実施では、この例示的な方法は、少なくとも1つの不連続性を検出し得る。これは、少なくとも2つの平面の表面が交差する物理環境において検出するステップを含み得る。いくつかの実施では、受け取られたユーザ入力データは、2次元座標における入力データを含み得る。そして、生成されたデジタル表面は、3次元座標における出力データを含み得る。この例示的な方法はさらに、デジタル表面に関連付けられた少なくとも1つの機能を定義するセマンティック入力を受け取るステップを含み得る。
【００１０】
物理環境のデジタル表現を構築するための例示的なモバイルデバイスは、物理環境を示す画像データを取得するためにモバイルデバイスに接続されたカメラを含み得る。さらに、モバイルデバイスは、取得された画像データに基づいて、物理環境における少なくとも1つの位置に対応するユーザ入力データを受け取るステップと、受け取られたユーザ入力データに対応する少なくとも1つの位置の近傍の物理環境における少なくとも1つの不連続性を検出するステップと、受け取られたユーザ入力データおよび少なくとも1つの不連続性に基づいて、物理環境における表面に対応するデジタル表面を生成するステップとのための、メモリに接続されたプロセッサを含み得る。モバイルデバイスのいくつかの実施形態では、受け取られたユーザ入力データは、デジタル表面の少なくとも1つのエッジを指定する。他の実施形態では、受け取られたユーザ入力データは、デジタル表面の少なくとも1つの平面を指定する。さらに他の実施形態では、受け取られたユーザ入力データは、デジタル表面の一部として含まれている複数のポイントを、取得された画像データに基づいて物理環境内に備える。
【００１１】
いくつかの実施形態では、画像データは、物理環境に関する幾何学的な深度情報を含み得る。いくつかの実施では、この例示的なモバイルデバイスの構成要素は、少なくとも1つの不連続性を検出し得る。これは、少なくとも2つの平面の表面が交差する物理環境において検出するステップを含み得る。いくつかの実施では、受け取られたユーザ入力データは、2次元座標における入力データを含み得、生成されたデジタル表面は、3次元座標における出力データを含み得る。例示的なモバイルデバイスはさらに、デジタル表面に関連付けられた少なくとも1つの機能を定義するセマンティック入力を受け取るための構成要素を含み得る。
【００１２】
物理環境のデジタル表現を構築するための例示的なモバイルデバイスは、物理環境を示す画像データを取得するためにモバイルデバイスに接続されたカメラを含み得る。さらに、モバイルデバイスは、取得された画像データに基づいて、物理環境における少なくとも1つの位置に対応するユーザ入力データを受け取るステップと、受け取られたユーザ入力データに対応する少なくとも1つの位置の近傍の物理環境における少なくとも1つの不連続性を検出するステップと、受け取られたユーザ入力データおよび少なくとも1つの不連続性に基づいて、物理環境における表面に対応するデジタル表面を生成するステップとのための、メモリに接続されたプロセッサを含み得る。モバイルデバイスのいくつかの実施形態では、受け取られたユーザ入力データは、デジタル表面の少なくとも1つのエッジを指定する。他の実施形態では、受け取られたユーザ入力データは、デジタル表面の少なくとも1つの平面を指定する。さらに他の実施形態では、受け取られたユーザ入力データは、デジタル表面の一部として含まれている複数のポイントを、取得された画像データに基づいて物理環境内に備える。
【００１３】
いくつかの実施形態では、画像データは、物理環境に関する幾何学的な深度情報を含み得る。いくつかの実施では、この例示的なモバイルデバイスの構成要素は、少なくとも1つの不連続性を検出し得る。これは、少なくとも2つの平面の表面が交差する物理環境において検出するステップを含み得る。いくつかの実施では、受け取られたユーザ入力データは、2次元座標における入力データを含み得る。そして、生成されたデジタル表面は、3次元座標における出力データを含み得る。例示的なモバイルデバイスはさらに、デジタル表面に関連付けられた少なくとも1つの機能を定義するセマンティック入力を受け取るための構成要素を含み得る。
【００１４】
例示的な非一時的コンピュータ可読記憶媒体であって、非一時的コンピュータ可読記憶媒体は、プロセッサによって実行可能な命令を備え、この命令は、物理環境のデジタル表現を構築するための命令を備え、物理環境を示す画像データを取得し、取得された画像データに基づいて、物理環境における少なくとも1つの位置に対応するユーザ入力データを受け取り、受け取られたユーザ入力データに対応する少なくとも1つの位置の近傍の物理環境における少なくとも1つの不連続性を検出し、受け取られたユーザ入力データおよび少なくとも1つの不連続性に基づいて、物理環境における表面に対応するデジタル表面を生成する機能を含み得る。非一時的コンピュータ可読記憶媒体のいくつかの実施形態では、受け取られたユーザ入力データは、デジタル表面の少なくとも1つのエッジを指定する。他の実施形態では、受け取られたユーザ入力データは、デジタル表面の少なくとも1つの平面を指定する。さらに他の実施形態では、受け取られたユーザ入力データは、デジタル表面の一部として含まれている複数のポイントを、取得された画像データに基づいて物理環境内に備える。
【００１５】
いくつかの実施形態では、画像データは、物理環境に関する幾何学的な深度情報を含み得る。いくつかの実施では、非一時的コンピュータ可読記憶媒体に記憶された命令は、少なくとも1つの不連続性を検出し得る。これは、少なくとも2つの平面の表面が交差する物理環境において検出するステップを含み得る。いくつかの実施では、受け取られたユーザ入力データは、2次元座標における入力データを含み得る。そして、生成されたデジタル表面は、3次元座標における出力データを含み得る。この例示的な非一時的コンピュータ可読記憶媒体はさらに、デジタル表面に関連付けられた少なくとも1つの機能を定義するセマンティック入力を受け取るための命令を含み得る。
【００１６】
物理環境のデジタル表現を構築するための例示的な装置は、物理環境を示す画像データを取得するための手段と、取得された画像データに基づいて、物理環境における少なくとも1つの位置に対応するユーザ入力データを受け取るための手段と、受け取られたユーザ入力データに対応する少なくとも1つの位置の近傍の物理環境における少なくとも1つの不連続性を検出するための手段と、受け取られたユーザ入力データおよび少なくとも1つの不連続性に基づいて、物理環境における表面に対応するデジタル表面を生成するための手段とを含み得る。この装置のいくつかの実施形態では、受け取られたユーザ入力データは、デジタル表面の少なくとも1つのエッジを指定する。他の実施形態では、受け取られたユーザ入力データは、デジタル表面の少なくとも1つの平面を指定する。さらに他の実施形態では、受け取られたユーザ入力データは、デジタル表面の一部として含まれている複数のポイントを、取得された画像データに基づいて物理環境内に備える。
【００１７】
いくつかの実施形態では、画像データは、物理環境に関する幾何学的な深度情報を含み得る。いくつかの実施では、この例示的な装置は、少なくとも1つの不連続性を検出するための手段を含み得る。これは、少なくとも2つの平面の表面が交差する物理環境において検出するための手段を含み得る。いくつかの実施では、受け取られたユーザ入力データは、2次元座標における入力データを含み得る。そして、生成されたデジタル表面は、3次元座標における出力データを含み得る。この例示的な装置はさらに、デジタル表面に関連付けられた少なくとも1つの機能を定義するセマンティック入力を受け取るための手段を含み得る。
【００１８】
以下に続く詳細記載がより良く理解され得るために、上記は、例の特徴および技術的利点をむしろ広く概説している。追加の特徴および利点が、以下に記載されるであろう。開示された概念および特定の例は、本開示の同じ目的を実行するために他の構成を修正または設計するための基礎として容易に利用され得る。そのような等価な構成は、添付された請求項の精神および範囲から逸脱していない。構成および動作の方法の両方に関し、関連付けられた利点とともに、本明細書に開示された概念の特性であると信じられている特徴は、添付図面と関連して考慮された場合に、以下の記載からより良く理解されるであろう。これら図面の各々は、例示および説明のみを目的として提供されており、請求項の限定の定義として提供されていない。
【００１９】
本開示の態様が、例によって例示される。以下の説明は、全体を通じて同一の参照番号が同一の要素を参照するために使用されている図面を参照して提供される。1つまたは複数の技術の様々な詳細が本明細書に記載されているが、他の技術もまた可能である。いくつかの事例では、周知の構成およびデバイスが、様々な技術について説明することを容易にするために、ブロック図形式で図示されている。
【００２０】
本開示によって提供される例の本質および利点のさらなる理解は、いくつかの図面を通じて同一の参照番号が類似の構成要素を参照するために使用されている図面および明細書の残りの部分を参照して実現され得る。いくつかの事例では、複数の類似の構成要素のうちの1つを示すために、サブラベルが参照番号に関連付けられている。既存のサブラベルへの明記のない参照番号に参照された場合、この参照番号は、そのようなすべての類似の構成要素を参照している。
【図面の簡単な説明】
【００２１】
【図１】本開示の様々な実施形態を実現し得る例示的なデバイスである。
【図２Ａ】いくつかの実施形態に従う例示的な用途のケースの図示である。
【図２Ｂ】いくつかの実施形態に従う例示的な用途のケースの図示である。
【図２Ｃ】いくつかの実施形態に従う例示的な用途のケースの図示である。
【図３】モバイルデバイス上の十字線カーソル、および、モバイルデバイスカメラの現在のビューに対応する投影を例示する図である。
【図４Ａ】ユーザによるエッジの選択の例示的な処理を例示する図である。
【図４Ｂ】ユーザによるエッジの選択の例示的な処理を例示する図である。
【図４Ｃ】ユーザによるエッジの選択の例示的な処理を例示する図である。
【図５】ユーザによる平面の指定の例示的な処理を例示する図である。
【図６Ａ】面および平面を選択するための別の例示的なカーソルタイプを例示する図である。
【図６Ｂ】面および平面を選択するための別の例示的なカーソルタイプを例示する図である。
【図６Ｃ】面および平面を選択するための別の例示的なカーソルタイプを例示する図である。
【図７Ａ】構造モデルにおける物体に自由度(DOF)を関連付けるステップを例示する図である。
【図７Ｂ】構造モデルにおける物体に自由度(DOF)を関連付けるステップを例示する図である。
【図８】物体に3つのDOFを関連付けるための例を例示する図である。
【図９Ａ】幾何学的な面を指定する例示的な処理を例示する図である。
【図９Ｂ】幾何学的な面を指定する例示的な処理を例示する図である。
【図１０Ａ】関心領域へカーソルを大まかに指し示すことによって平面を指定するための例を例示する図である。
【図１０Ｂ】関心領域へカーソルを大まかに指し示すことによって平面を指定するための例を例示する図である。
【図１１】本発明の1つの実施形態に従ってモバイルデバイスにおいて実現される例示的なモジュールのためのブロック図である。
【図１２】いくつかの実施形態に従う方法を例示する例示的なフローチャートである。
【図１３】いくつかの実施形態に従うコンピューティングデバイスのブロック図である。
【発明を実施するための形態】
【００２２】
いくつかの例示的な実施形態が、その一部を形成する添付図面に関して記載されるであろう。本開示の1つまたは複数の態様が実現され得る特定の実施形態が以下に記載されているが、他の実施形態も使用され、添付された請求項の精神または本開示の範囲から逸脱することなく、様々な修正がなされ得る。
【００２３】
直観的なユーザ入力およびユーザの物理環境に基づいて、拡張現実(AR)環境をモバイルデバイスにおいてリアルタイムでモデル化するための方法および装置を提示している。いくつかの実施形態では、ユーザは、本開示のシステムおよび方法に基づいて、ユーザの物理環境の表面を表す幾何学形状を生成し得る。いくつかの実施形態では、ユーザによるそのような表面の大まかな指定だけが必要であり、いくつかのケースでは、迅速で不正確な入力が受け入れ可能であり得る。いくつかの実施形態では、たとえば、深度カメラからの入力のような、モバイルデバイスへのセンサ機能が、ユーザが十分に指定できない表面の残りの部分を推論するために使用され得る。いくつかの実施形態では、方法およびアプリケーションは、マニュアルユーザインターフェースを含む一方、他の実施形態では、より「半自動的な」ユーザインターフェースが適用され得る。
【００２４】
産業における既知の方法を用いる場合には、深度センサは、極めて詳細な情報を含む3次元(3D)再構築を生成し得る。これは、いかなるセマンティックも存在しない多くの幾何学的なプリミティブを含み得るモデルになる。廉価な深度センサは、屋内環境のためのリアルタイムの密な再構築を提供し得る。結果的に得られる3Dモデルは、拡張現実(AR)のために使用され得るが、幾何学モデルは、ミリメートルスケールの詳細度を有し、かなりの処理および記憶リソースを消費する。
【００２５】
多くのアプリケーションのために、必要とされ得るすべては、少ない数のポリゴンから構成される幾何学モデルであり、これは、有り余るほど多くの詳細ではなく、環境の重要な構造を表す。モデル化された構造は、幾何学的な面、エッジおよび頂点、および単なるボリュームからなるポリゴンモデルを含み得る。そのような幾何学モデルは、構造モデルと称され得る。たとえば、単純な部屋は、4つの壁、床、天井、ドアおよび窓の合計8つのポリゴンを含み得る。これらの幾何学構造は、複雑さは低く、しばしば、直角または並行なエッジのような制約を有することに注目されたい。さらに、構造にセマンティックな意味付けを与えることが重要であり得る。たとえば、ドアは、隣接した部屋にアクセスするために使用され得る。または、実際の表面上に仮想的な物体が留まるように制約され得る。あるいは、窓が、上下にスライドし得る。拡張現実(AR)におけるインタラクションの場合、関連情報を備えた簡素化された構造モデルが、モバイルデバイスにおいて、構造モデルに関連付けられた情報のリアルタイム処理を可能にし得る。したがって、本発明の実施形態は、ドアのための1つの長方形のように、現実世界からの重要な要素を、少ない数のポリゴンを用いて表すことを提案する。
【００２６】
いくつかの実施形態に従って、本開示の方法および装置は、ARモデル化ユーザインターフェースのための深度センサの使用を例示しており、このインターフェースは、ユーザが、構造モデルを入力するために、「仮想レーザポインタ」メタファーを用いて幾何学形状を追跡することを可能にする。いくつかの実施では、このシステムは、3D再構築から、ユーザによって意図されている形状を推論し得るので、迅速で不正確な入力が受け入れ可能であり得る。さらに、モバイルデバイスは、ユーザへリアルタイムビジュアルフィードバックを提供するように構成され得る。
【００２７】
本開示は、環境において深度カメラ装置をスイープし、モバイルユーザインターフェースを用いて構造モデルへメッシュを細密化することによって取得される密なメッシュの推定値を組み合わせる空間ARモデル化技術を例示する。いくつかの実施形態では、メッシュは、3D次元空間のための複数のデータポイントを称し得る。モバイルユーザインターフェースは、ARビューにおける頂点、エッジ、および平面を決定するためのユーザ入力または3Dジェスチャを検出するように構成され得る。モバイルユーザインターフェースはさらに、ARビューにおける構成にセマンティックを関連付けるように構成され得る。たとえば、ドロップダウンメニューは、ユーザが、ドアを、窓やフレーム等のような多くの他のセマンティックから「ドア」セマンティックに関連付けることを可能にし得る。これらの例および他は、以下により詳細に記載されるであろう。
【００２８】
図1を参照して示すように、例示的なコンピューティングデバイス100は、本開示の1つまたは複数の態様を実現するように構成され得る。たとえば、コンピューティングデバイス100は、スマートフォン、タブレットコンピュータ、携帯情報端末、または、コンピューティングデバイス100が画像データまたは他のデータを入力の形態として受け取ることを可能にする1つまたは複数のセンサが搭載された他のモバイルデバイスであり得る。別の例において、コンピューティングデバイス100は、ヘッドマウント型のデバイスまたは他の任意のコンピューティングデバイスであり得る。いくつかの実施形態では、コンピューティングデバイス100は、モバイルデバイスでなく、たとえば、デスクトップコンピュータ、ゲーム機、固定センサまたはカメラ、または、ワイヤレスまたは有線でともに接続されたマシンのシステムであり得る。コンピューティングデバイス100は、1つまたは複数の正面カメラ110または背面カメラ、モノレンズカメラ、深度カメラ、レーザセンサ、ソナーセンサ、および/または、他のセンサを、装備しているか、これらと通信可能に接続されているか、および/または、そうでない場合には、これらを含み得る。モバイルデバイスはまた、デバイスとのインタラクトのための1つまたは複数のユーザインターフェースを含み得る。たとえば、モバイルデバイスは、ユーザがデータを入力するためにインタラクトし得るタッチスクリーン120を含み得る。ユーザは、そのようなインターフェースによって、幾何学構造を定義し、輪郭を描くことが可能となり得る。別のインターフェースは、ジェスチャを検出し、このジェスチャを、モバイルデバイスへのコマンドとして解釈するためのジェスチャ認識システムを含み得る。1つまたは複数のセンサを含んでいることに加えて、コンピューティングデバイス100は、以下により詳細に記載されるように、1つまたは複数のプロセッサ、メモリユニット、および/または、他のハードウェア構成要素をも含み得る。
【００２９】
1つまたは複数の構成では、コンピューティングデバイス100は、画像、または、物理的境界を定義するための他の手段のいずれかに基づいて、コンピューティングデバイス100の無加工の周囲に関するデータを取得するために、これらのセンサのいずれかおよび/またはすべてを単独で、または組み合わせて使用し得る。たとえば、コンピューティングデバイス100は、コンピューティングデバイス100の無加工の周囲の1つまたは複数のグラフィックビューを得るために1つまたは複数のカメラを使用し得る。より複雑な例として、コンピューティングデバイス100内の1つまたは複数のカメラと組み合わされた1つまたは複数のプロセッサが、経時的に記録および/または受け取られた複数の画像を介して、無加工の周囲を見るために使用され得る。特定の例において、無加工の周囲は、テーブルまたは他の平らな表面、およびテーブルの上に置かれた複数の物体を含み得る。コンピューティングデバイス100は、複数の角度または観点からテーブルを見るために1つまたは複数のカメラを利用し、テーブルおよびその上にある物体に関する画像データの複数のフレームを提供する。これらの画像データは、ここでは例として記載されているが、コンピューティングデバイス100内の1つまたは複数のセンサを介してであるか、または、ワイヤレス手段または有線手段を介してであるかに関わらず、コンピューティングデバイス100によって取得された任意の他の種類のデータは、本開示の1つまたは複数の態様の実施の一部として考慮され得る。
【００３０】
図2Aは、例示的なオフィス空間を例示する。図2Bは、深度センサを用いて可能とされた、モバイルデバイスによって表示されるオフィス空間の表示を例示する。図2Cは、オフィス空間の再構築されたモデルを例示する。本発明の実施形態によれば、モバイルデバイス100は、構造モデルを生成し得る。
【００３１】
図2Aを参照して示すように、モバイルデバイス100を使用するユーザは、部屋200をモデル化し得る。この例において、関心領域(図2Aにおける2つの壁204と206との間のエッジ)において、図2Bに図示されるように、ユーザは、モバイルデバイス100を向き得る。本発明の実施形態は、直交エッジ(デバイス100上に表示された直交空間カーソル)を推定することによってビジュアルフィードバックを即座に提供し、現在の推定された平面(強調された長方形204'および206')のサポート領域を強調し得る。図2Cは、再構築された平面を例示する。いくつかの実施形態では、図2Bに図示されるように、ユーザが、図2Cからの構造(たとえば、長方形)を、図2Aからの実在する物体に関連付けることを可能にするために、モバイルデバイスは、再構築された構造モデルを、オフィス空間のビューの先頭にオーバレイする。
【００３２】
図2A、図2Bおよび図2Cにおいて図示される例示的な使用のケースと整合して、本発明の実施形態は、深度センサフレームワークによって支援されている間、ユーザによる構造モデルの生成をインタラクティブに可能にするためのユーザインターフェースを提供する。ユーザが、適切な構造モデルをあまり認識することなく漸増的に構築することを可能にする、例示的なジェスチャの集合が記載される。図2Bに例示されるように、いくつかの実施形態では、フィードバックは、モバイルデバイス100のディスプレイ上におけるARインターフェースに図示される登録されたグラフィックによって即座に提供され得る。
【００３３】
本発明の実施形態は、構造モデルを生成するために、さほど正確ではなく必要なユーザインタラクションを、深度センサからの3D情報の自動的な再構築と組み合わせる。ユーザインタラクションを自動的な再構築と組み合わせることによって、ほとんどのケースにおいて、ユーザによる長々としたインタラクションも、ユーザに対して即座にフィードバックを提供することも必要なく、構造モデルの高速かつ正確な構築を可能とする。さらに、いくつかの実施形態によれば、提案されるシステムにおいて、環境において物体をモデル化するためのみならず、モデル化された物体に対してセマンティックを割り当てるために、ジェスチャのようなユーザ入力が、使用され得る。
【００３４】
いくつかの実施形態では、エッジを単独で指定することによって、ユーザは、あまり努力をせずに生成される構造モデルの形状を、正確に、効率的に、かつ直感的に制御し得る。たとえば、ユーザは、単に、ポリゴンのアウトラインをエッジ毎に「描画」でき得る。本発明の実施形態によれば、追加の形状が、自動的に推論され得る。提供されたインターフェースのような本発明の実施形態は、より良好な制御を可能とし、モバイルデバイス100において構造モデルを生成するための計算負荷の低い技術を提供する。
【００３５】
さらに、本発明の実施形態は、ユーザが、モバイルデバイスにおいてリアルタイムで、構造モデルを即座に生成し、様々な構造にセマンティックを関連付けることを可能にする。たとえば、モバイルデバイスは、窓のための構造モデルを長方形として生成し、長方形に、窓のセマンティックを関連付けるためのインターフェースをユーザに提供し得る。たとえば、窓というセマンティックは、窓はガラスから構成され、したがって、透明であるか、または、一方向にスライドできることを含み得る。モバイルデバイスは構造モデルを生成し、構造モデルに、リアルタイムでセマンティックがなされ得るので、ユーザは、拡張現実環境において、構造モデルをそのセマンティックとともに即座に使用でき得る。
【００３６】
そのような拡張現実環境の例示的なアプリケーションは、ユーザが、家の一部を改造することを試みることを含み得る。部屋における様々な構造が特定され、セマンティックで注釈付けされると、このインターフェースはさらに、これらの構造を操作する機能をユーザに提供し得る。たとえば、上記の例において、窓が特定され、セマンティックで注釈付けされると、ユーザは、モバイルデバイスに対して、窓を拡大し、拡大した窓を、モバイルデバイスのディスプレイ上に、拡張現実表示でオーバレイするように指示し得る。
【００３７】
いくつかの実施では、モバイルデバイスは、ユーザに、マニュアルユーザインターフェースを提供し得る一方、他の実施では、モバイルデバイスは、ユーザに、半自動的なユーザインターフェースを提供し得る。マニュアルインターフェースによって、ユーザは、エッジを指定することによってモデル化処理を明確かつ十分に制御できるようになる一方、半自動的なインターフェースによって、ユーザは、自動的に推定された根本的なローカル構造から、オプションを即座に選択できるようになる。
【００３８】
図3を参照して示すように、例示300は、モバイルデバイス100上に表示された十字線カーソル302、および、モバイルデバイスカメラの現在のビューにおける3D対応ポイントの投影を図示している。図3は、境界エッジを明示的に指定することによって面を生成するためのマニュアルユーザインターフェースを例示する。一例では、ユーザが、背景上でモバイルデバイス100をスイープした場合、モバイルデバイス100が背景に対して追跡され、その間、ユーザは、ジェスチャ入力を実行する。スクリーンに十字線カーソル302を図示することによって、ユーザは、背景上でモバイルデバイス100をゆっくりとスイープすることができ、結果として、ボックスのエッジの上方に、十字線カーソル302を移動させることができ得る。1つの実施では、カーソル位置は毎回、十字線を介してカメラ中心から光線306を発し、この光を、環境と交差させることによって図示され得る。
【００３９】
1つの例示的な実施では、カーソルを移動させ、適切なジェスチャタイプを選択することによって、ユーザは、構造モデルを生成し得る。ジェスチャタイプ選択は、ジェスチャしている間、タッチスクリーン上のソフトボタンを、親指を用いて押すことによって即座になされ、したがって、このボタンが押し続けている限り、ジェスチャが活性化される。しかしながら、選択のための任意の他の技術(メニュー等)も、本発明の範囲から逸脱することなく適用され得る。
【００４０】
図3に戻って示すように、ユーザは、開始コーナ(310)へカーソルを大まかに指し示し、その後、「エッジ」を選択するために、モバイルデバイス100および十字線カーソルを終了コーナへ(矢印304によって示される方向で)ゆっくりと移動させる(図4A〜図4C参照)。ユーザジェスチャに従って、システムは、開始カーソル位置および現在のカーソル位置によって決定されたカバレッジエリア内のエッジ(312によって示される)を推定する。これらのカーソル位置は、エッジのための潜在的な形跡が存在するカバレッジエリアを定義する。その後、カバレッジエリアに基づいて、システムは、エッジの最適な表示を求める。いくつかの実施形態では、エッジは、ユーザによって示される光線に近い空間における直線でなければならないが、エッジは、再構築における深さまたは通常の不連続性にも近くなければならない。この例示的なインタラクション技術は、ユーザが、コーナに向けて大まかに指し示すことを必要とするが、ユーザが、コーナ間の空間においてカーソルを自由に移動することを可能にする。
【００４１】
図4A、図4B、および図4Cを参照して示すように、ユーザは、開始コーナ(402)を、その後、エッジの所望の終了ポイントまたは終了コーナ(404)を大まかに指し示すことよってエッジを指定する。現在のカーソル位置において、システムは、(図4Aおよび図4Cにおける二重エッジによって示されるように)エッジに関するフィードバックを推定し、ユーザへ提供する。図4Aおよび図4Cは、ユーザが、エッジを大まかに示すことを例示している。ユーザがエッジの上方にカーソルを大まかに移動させたとしても、モバイルデバイスにおいて動作するエッジ検出システムは、エッジを検出し得る。なぜなら、エッジは、2つの平面の交差によって示される強い幾何学的な特徴を表すからである。たとえば、図4Bでは、(図4Bに図示されるように)カーソルがエッジから離れ、エッジがディスプレイにおいて検出されたように直ちに図示され得ないとしても、(図4Cに示されるように)カーソルがエッジに大まかに戻り、それに従って、所望の終了ポイントに向かって移動する限り、エッジは未だに検出され得る。
【００４２】
モバイルデバイスによって、幾何学構造のエッジが次々に識別され得る場合、エッジの最終ポイントが、最初のエッジの開始ポイントに十分近い場合、その構造の面もまた識別され得る。そのようなシナリオでは、エッジループが自動的に閉じられ、面が識別され得る。1つの実施形態では、ユーザはまた、エッジシーケンスの現在の最終ポイントから、開始ポイントへと追加のエッジを挿入することによって、面を直ちに生成するために、「面生成」ボタンを押してもよい。
【００４３】
1つの実施形態では、長方形のエッジのほとんどが、指定されていないのであれば、ユーザはまた、指定されたエッジを用いて長方形が生成されるべきであることを示すために、「長方形生成」ボタンを押してもよい。このシナリオでは、システムは、長方形が生成され得るように、シーケンスを最適化する。2つまたは3つのエッジだけが現在シーケンスにあるのであれば、モバイルデバイスは、見失われたエッジを判定し得る。
【００４４】
図5を参照して示すように、例示500は、ユーザが、平面の平坦領域の隅々を、カーソルを連続的に指し示し、スイープすることによって、平面をどのように指定するのかを示す。図5に図示されるように、物体の面は、「平面」オプションを選択し、(502によって示されるように)特定の平坦な表面の上方でカーソルをスイープすることによって指定され得る。いくつかの実施形態では、システムは、カーソルの周囲の円錐における表面ポイントを検査し、主要平面を計算する。ユーザは、「プラス」オプションおよび「マイナス」オプションで、選択を増加または低減し得る。「平面」オプションは、より複雑な形状を備えた事例において有用であり得る。さらに、ユーザは、平面の上方をスイープすることによって、平坦ではない平面を接続することが可能であり得る。たとえば、ドアは、ドアが、単一の構造として認識されることを阻止し得る彫刻を有し得る。そのような事例では、ユーザは、ドアのための単一の長方形を生成するために、ドアの平坦ではないエッジの上方をスイープし得る。
【００４５】
いくつかの事例では、この場合においては、この結果は、面ではなく、無限平面であり得る。平面は、面の仕様をサポートすることが意図され得る。面がエッジのシーケンスとして定義されているのであれば、システムは、この面を、すべての平面と比較し得る。面が平面に十分近いのであれば、平面制約が面の仕様に追加され得る。言い換えれば、ユーザは、システムが平面を指定することによって、より高い精度で面を決定することを支援し得るが、これは必要ではないかもしれない。
【００４６】
いくつかの実施では、本発明の実施形態は、突き出したボリュームを指定することを考慮し得る。たとえば、面(「ボタン」面)が指定された後に「突き出し」オプションを押すと、ユーザは、空間における「先頭」ポイントを指定し得る。プリズムが、面を、その通常の方向に突き出すことによって構築され、これによって、プリズムの「先頭」面が、「先頭」ポイントの平面に存在するようになる。
【００４７】
マニュアルユーザインターフェースの代わりに、いくつかの実施形態では、半自動的なユーザインターフェースが、より高速な動作のために適用され得る。このインターフェースを用いて、ユーザは、より多くのオプションを与えられ、より多くのユーザ入力のパラメータが、動的に推論され得る。ユーザは、任意の順序で、いくつかの構造を定義することを許され、システムは、独力でより多くの情報を解明し得る。たとえば、部屋では、ユーザは、3つの平面によって交差する天井コーナへ指し示すことができ得る。モバイルデバイスは、3つの平面を推論し、構造モデルを自動的に生成し得る。
【００４８】
図6Aは、面を指定するための平面上カーソルを例示する。これは、推定されたエッジ、通常のコーナ、または面における直交コーナを表示する。たとえば、602に図示されるように、2つのエッジ間の角度がほとんどゼロであるので、モバイルデバイスの構成要素は、この形状に基づいて、カーソルがエッジへ向けて指し示されていると解釈し得る。同様に、604および606に図示されるように、モバイルデバイスの構成要素は、エッジ間の角度に基づいて、カーソルが通常のコーナまたは直交コーナに向けて指し示されていると解釈し得る。
【００４９】
図6Bは、ユーザが、空間において自由に、かつ、交差しているローカル構造の上方でカーソルを移動させている場合に、1つの平面、2つの直交する平面、または、3つの直交する平面のコーナを表示する直交空間カーソルを例示する。図6Cは、通常の空間カーソルが、その直交特性を除いて、直交空間にどのように類似しているのかを例示する。
【００５０】
いくつかの実施では、ユーザは、1つよりも多くのカーソルを選択するオプションを提供され、これによって、ユーザは、追加の制約を指定できるようになる。いくつかのケースでは、平面上のカーソルは、ユーザが平面を指定したことと、ユーザに対して、エッジ、任意のコーナ、または直角コーナを入力させることを仮定し得る。直交空間カーソルは、ユーザが、面、エッジ、またはコーナを指し示すことによって、1つ、2つ、または3つの隣接するポリゴンを入力することを可能にし得る。さらに、通常空間カーソルは、直交空間カーソルに類似し得るが、直角を仮定しないことがあり得る。
【００５１】
現在のカーソルタイプは、ユーザによって設定され得る(マニュアルモード)か、または、自動的に決定され得る(自動モード)。自動モードでは、システムは、現在の推定されたローカル構造(たとえば、カーソル位置の周囲の再構築された風景)に依存してカーソルタイプを決定し得る。視覚化されたカーソル画像は、現在のローカル構造を推定するために適応され得る。たとえば、図6Aは、現在の平面上の通常のコーナカーソルを例示している一方、カーソル画像は、推定されたコーナに適応される。
【００５２】
本発明のいくつか実施形態に従って、上記の、すなわち、非リジッドな付属物の例で述べたように、任意の2つの物体を、リジッドな付属物として定義してもよい。非リジッドな付属物の物体は、ドアまたは窓のような移動部品をモデル化し得る。本発明の実施形態は、たとえば、図7Aおよび図7Bそれぞれに例示されたようなターンおよびスライドのような複数の非リジッドなタイプを記述し得る。ターンの場合、2つのパラメータ、すなわち、ターンの範囲と回転ベクトルとが指定され得る。スライドは、唯一のパラメータであるスライディング方向ベクトルを受け取り得る。一般に、デバイスに関連付けられたDOF(自由度)を適切に図示するために、物体の初期状態および最終状態が、物体に関連付けられたDOFを推論するモバイルデバイスの構成要素のために図示され得る。
【００５３】
図7Aは、別の固定された物体の周囲を回転することができる物体をモデル化する付属物構造モデルを例示する。たとえば、図7Aは、壁のヒンジの周りを旋回するドアを例示し得る。図7Bは、別の固定された物体に沿ってスライドし得る物体を例示する付属物構造モデルを例示する。たとえば、図7Bは、1つが固定されたスライディングドアを例示し得る。
【００５４】
図7Aおよび図7Bに図示されるように、非リジッドな付属物モデルを提供することによって、ユーザは、ドアまたは窓のような移動部品をモデル化できるようになり得る。図7Aでは、ターン付属物のために、ユーザは先ず、ターン可能な物体と固定された物体との間の付属角度(これはまた、この付属物の回転軸でもある)を定義し得る。その後、ユーザは、ほぼ同様の回転軸でモバイルデバイス100を回転することによって、回転の範囲を定義し得る。このシステムは、それに従って、デバイス回転を、1DOF(自由度)ターン回転へ自動的にマップし得る。
【００５５】
図7Bでは、スライド付属物のために、ユーザは先ず、スライド平面(スライドする物体と固定された物体との間のコンタクト)を選択する必要がある。その後、ユーザは、スライディング方向を定義するために、固定された物体の主要な方位に対してモバイルデバイス100を移動させる。モバイルデバイスによって、ユーザは、現在推定されているローカル構造の方位または位置を調節できるようになり得る。これは、推定された構造を、所望される方位または位置に調節するために、それに従ってモバイルデバイス100を回転または移動させることによってなされ得る。
【００５６】
図8は、ユーザが、以前に述べた例示的な実施形態とそれぞれ整合してハンドルデバイスを回転または移動させることによって、物体の方位または位置をどのように操作し得るのかを例示している。たとえば、モバイルデバイスに初期状態および意図された最終状態を提供することによって、モバイルデバイスの構成要素は、図8に例示されるように、3つのDOFを推論することができ得る。
【００５７】
図9Aは、例示的な動作のアドバンストモードにおいて複雑な面を指定するために使用されるジェスチャの例示的な経路の開始を例示する。図9Aに図示されるように、ユーザは、面の境界においてカーソルを向け得る。曲線902によって示されるように、ユーザが、カーソルを、コーナ(直交または非直交の両方)またはエッジ(直線または非直線の両方)の周囲に大まかに移動させている間、システムは、現在のカーソル位置の周囲の領域のローカル構造を推定するエッジ(906、908、910、912)を示す関心のあるポイントへ自動的にスナップする。たとえば、図9Aにおけるエッジ904のような二重線エッジは、デバイスによって識別され、ユーザに表示されるエッジを示し得る。システムは、(たとえば、図6からの平面上カーソルを用いて)適切なカーソル形状を視覚化することによって、推定された構造に関するフィードバックをユーザへ提供し得る。ユーザは、現在推定されている構造を確認するためにボタンを押し得る。ユーザはまた、間接的な操作によって、構造の方位を調節し得る。最後に、ユーザはまた、ジェスチャを実行している間、(システムがカーソルマニュアルモードにあることを認識しているのであれば)特定のカーソルタイプをクリックすることによってローカル構造を直接的に指定し得る。
【００５８】
図9Bは、ユーザからのジェスチャを用いて、構造モデルのマッピングの終了を例示する。ユーザによって描画された、図9Bにおける曲線902の連続性は、関心領域におけるカーソルと、必要であれば、面のエッジ(914、916、および918)または境界を示す追加の関心ポイントとを目的とする連続的なジェスチャを実行することによって、面を生成する。ジェスチャの間、システムは、いくつかの実施形態に従って、カーソル位置の周囲のローカル構造を自動的に推定し、対応するカーソル画像を有するフィードバックを、ユーザへ即座に提供する。
【００５９】
図10Aに図示されるように、ユーザは、平面間のいくつかの平面および制約(たとえば、直交性)を定義するために、関心のあるローカル構造へカーソルを向ける。3D平面におけるエッジを指定することと同様に、ユーザが、経路1002に沿ってカーソルを移動させた場合、システムは、根本的な対応するローカル3D構造を自動的に推定し、平面境界を解明する。システムは、(図6において直交空間または通常空間カーソルとして例示される)適切なカーソル画像および対応する平面を視覚化することによってユーザへフィードバックを提供する。ユーザは、現在推定されている構造を受け入れるためのボタンを押すことができ得る。さらに、ユーザは、間接操作技術を用いて、現在強調されている構造の方位を調節し得る。もちろん、ユーザはまた、特定のカーソルタイプをクリックすることによって、ローカル構造を直接的に指定し得る。
【００６０】
図10Aおよび図10Bを参照して示すように、ユーザは、カーソルを関心領域へ大まかに指し示すことによって、平面を(1つ、2つ、または3つの平面を一度に)指定する(図10Aは、早期段階中の経路1002を図示している一方、図10Bは、後の段階中の経路1004を図示している)。システムは、適応された適切なカーソル画像および対応する平面を視覚化することによって、推定されたローカル構造のためのフィードバックを即座に提供する。たとえば、このフィードバックシステムは、モデル化されている構造を、視覚的に強調し得る(図示せず)。
【００６１】
同様の目的を達成することを目的とされた既存の方法に対し、本開示の多くの利点がある。たとえば、意味付けのあるモデルは、ARアプリケーションのような、モバイルデバイスのための最近のアプリケーションにおいて益々必要となっている。しかしながら、研究および産業コミュニティからの最近の試みは、そのようなモデルを直感方式で達成することに失敗している。対照的に、本開示の実施形態は、量的および質的な構造モデルを達成するために、ユーザ入力と自動推定との組合せを活用する。ユーザインターフェース内の計算困難なパラメータの制御および容易な入力を、深度センシングユニットからの計算容易な(だがマニュアルで入力するには長々とした)パラメータ/測定値の精度および自動判定と組み合わせることによって、本発明の実施形態は、効率的な構造のモデル化を可能にする。したがって、本開示の実施形態は、ユーザが、かなりの精度を提供しながら、現在の最先端技術よりもより高速かつより効率的に、セマンティックな意味付けのなされた構造モデルを生成することを可能にする。
【００６２】
図11は、本発明の1つの実施形態に従って、モバイルデバイス100において実現される例示的なモジュールのブロック図を例示する。モバイルデバイスは、図13に記載された1つまたは複数の構成要素を用いて実現されるコンピュータデバイスであり得る。図11に記載されたモジュールは、ソフトウェア、ファームウェア、ハードウェア、またはこれらの任意の他の組合せを用いて実現され得る。1つの実施形態では、図11に記載されたモジュールは、任意の磁気、電子、光、または他のコンピュータ可読記憶媒体であり得るコンピュータ可読媒体1100において、ソフトウェアモジュールとして記憶され得る。1つの実施では、コンピュータ可読記憶媒体1100は、ユーザ入力モジュール1102、カメラおよびセンサモジュール1104、ジェスチャ認識モジュール1106、構造モデル生成器1108、およびディスプレイおよびフィードバックモジュール1110を含み得る。
【００６３】
ユーザ入力モジュール1102は、ユーザインターフェースを介してユーザ入力を受け取るように構成され得る。たとえば、1つの実施では、ユーザは、適切なモードおよび適切なカーソルタイプの選択、および上記図に記載されているようなカーソルの操作のために、モバイルデバイス100のタッチスクリーンにおいて入力を与え得る。
【００６４】
カメラおよびセンサモジュール1104は、モバイルデバイス100のカメラ構成要素からカメラ情報を、モバイルデバイス100上の深度センサから深度情報を、受け取るように構成され得る。
【００６５】
ジェスチャ認識モジュール1106は、カメラおよびセンサモジュール1104からカメラおよび深度情報を受け取るように構成され得る。ジェスチャ認識モジュール1106は、カメラからの情報を用いてジェスチャを判定し、ジェスチャにコマンドを関連付け得る。たとえば、ユーザは、適切なモードを選択し、適切なカーソルタイプを選択し、上記図に記載されているようにカーソルを操作するためにジェスチャをし得る。
【００６６】
構造モデル生成器1108は、ユーザ入力モジュール1102、カメラおよびセンサモジュール1104、およびジェスチャ認識モジュールの情報を受け取るように構成され得る。構造モデル生成器1108は、構造モデルを生成するために、(タッチスクリーンおよび/またはジェスチャによってなされた)ユーザ入力と、カメラおよび深度センサ情報とを組み合わせるように構成され得る。さらに、構造モデル生成器1108はまた、情報に注釈を付けることをユーザに要求することによって、セマンティック付き構造モデルから構造に注釈を付け得る。
【００６７】
ディスプレイおよびフィードバックモジュール1110は、モバイルデバイス100のスクリーン上に拡張現実を表示するように構成され得る。ディスプレイおよびフィードバックモジュール1110は、カメラおよびセンサモジュール1104からカメラ入力を受け取り、構造モデル生成器1108からの構造モデルをディスプレイ上にオーバレイし得る。ディスプレイおよびフィードバックモジュール1110はまた、現実のディスプレイの上方に、カーソルおよびカーソルの経路をオーバレイし得る。さらに、ディスプレイおよびフィードバックモジュール1110は、デバイスのビューからモデル化された構造に関するフィードバックをユーザへ提供するために、デバイス上において、拡張現実ビューにおける幾何学構造を強調し得る。
【００６８】
図12は、本開示の1つまたは複数の例示的な態様に従って、本発明の実施形態を実行するための方法を例示するフロー図である。1つまたは複数の態様によれば、本明細書に記載された方法および/または方法ステップのうちのいずれかおよび/またはすべては、たとえば、図13により詳細に記載されたモバイルデバイス100および/またはデバイスのようなモバイルデバイス100によって、および/または、モバイルデバイス100において、実現され得る。1つの実施形態では、図12に関して以下に記載された方法ステップのうちの1つまたは複数は、プロセッサ1310または別のプロセッサのような、モバイルデバイス1300のプロセッサによって実現され得る。それに加えてまたはその代わりに、本明細書に記載された方法および/または方法ステップのいずれかおよび/またはすべては、メモリ1335、ストレージ1325、または他のコンピュータ可読媒体のようなコンピュータ可読媒体に記憶されたコンピュータ可読命令のようなコンピュータ可読命令において実現され得る。
【００６９】
フローチャート1200は、いくつかの実施形態に従って、物理環境のデジタル表現の構築のための例示的な方法フローを例示している。ブロック1202では、物理環境を示す画像データが取得され得る。ブロック1204では、ユーザ入力データは、取得された画像データに基づいて、ユーザから受け取られ得、ジェスチャ入力データは、物理環境における少なくとも1つの位置に対応する。例示的なユーザ入力データは、本明細書に記載された任意のタイプの例示的なジェスチャおよび入力を含み得る。このユーザ入力に基づく他のタイプのユーザ入力または機能は、当業者に明らかであって、実施形態はそのように限定されない。ブロック1206では、少なくとも1つの不連続性が、受け取られたユーザ入力データに対応する少なくとも1つの位置の近傍の物理環境において検出され得る。ブロック1208では、物理環境における表面に対応するデジタル表面が、受け取られたユーザ入力データおよび少なくとも1つの不連続性に基づいて生成され得る。本明細書に記載された例示的な方法は、前述した図面および説明のうちのいずれかにおいて記載された本開示のいずれかと整合し得る。本明細書における例示的な方法を実現するための例示的なデバイスは、前述した図面および説明のいずれかにおいて既に述べられた例示的なデバイスのいずれかであり得る。
【００７０】
図12に例示された特定のステップは、本発明の実施形態に従って、動作のモード間を切り換える特定の方法を提供することが認識されるべきである。ステップの他のシーケンスもまた、代替実施形態においてこれに従って実行され得る。たとえば、本発明に対する代替実施形態は、別の順序で、上記概説したステップを実行し得る。さらに、追加のステップまたはステップに対する変形が、特定のアプリケーションに依存して追加または削除され得る。当業者であれば、この処理の多くの変形、修正、および代替を認識および理解するであろう。
【００７１】
多くの実施形態が、特定の要件に従ってなされ得る。たとえば、カスタマイズされたハードウェアもまた使用され得、および/または、特定の要素が、ハードウェア、(たとえば、アップレット等のようなポータブルソフトウェアを含む)ソフトウェア、またはその両方で実現され得る。さらに、たとえばネットワーク入力/出力デバイスのような他のコンピューティングデバイスへの接続が適用され得る。
【００７２】
AR環境における平面の表面の密な提示を定義する複数の態様が記載されているので、本開示の様々な態様が実現され得るコンピューティングシステムの例が、図13に関して記載されるであろう。1つまたは複数の態様によれば、図13に例示されるようなコンピュータシステムは、本明細書に記載された特徴、方法、および/または、方法ステップのうちのいずれかおよび/またはすべてを実現、実行、および/または、実施し得るモバイルデバイス100の一部として組み込まれ得る。たとえば、コンピュータシステム1300は、モバイルデバイス100の構成要素のうちのいくつかを表し得る。モバイルデバイスは、たとえばワイヤレス受信機またはモデムのような入力感知ユニットを備えた任意のコンピューティングデバイスであり得る。モバイルデバイスの例は、限定されないが、ビデオゲームコンソール、タブレット、スマートフォン、テレビ、ARゴーグル、ヘッドマウントデバイス、および移動局を含む。いくつかの実施形態では、システム1300は、前述された方法のうちのいずれかを実現するように構成される。図13は、本明細書に記載されるように、様々な他の実施形態によって提供される方法を実行し、および/または、ホストコンピュータシステム、遠隔のキオスク/端末、POSデバイス、モバイルデバイス、セットトップボックス、および/または、コンピュータシステムとして機能し得るコンピュータシステム1300の1つの実施形態の概要図を提供する。図13は、そのうちのいずれかおよび/またはすべてが適切に使用され得る様々な構成要素の一般化された例示を提供することのみが意図されている。したがって、図13は、個々のシステム要素が、どのように、相対的に分離されているか、または、相対的により統合された方式で実現され得るのかをより広く例示している。
【００７３】
バス1305を介して電子的に結合され得る(または、そうでなければ、適切に通信し得る)ハードウェア要素を備えるコンピュータシステム1300が図示される。ハードウェア要素は、限定することなく、1つまたは複数の汎用プロセッサ、および/または、1つまたは複数の専用目的プロセッサ(デジタル信号処理チップ、グラフィックアクセラレーションプロセッサ等)を含む1つまたは複数のプロセッサ1310と、限定することなく、ワイヤレス受信機、ワイヤレスセンサ、マウス、キーボード等を含み得る1つまたは複数の入力デバイス1315と、限定することなく、ディスプレイユニット、プリンタ等を含み得る1つまたは複数の出力デバイス1320とを含み得る。さらに、ハードウェア要素はまた、画像データを取得するための1つまたは複数のカメラ1355と、カメラのビューのフィールドの深度情報を受け取るための1つまたは複数の深度センサ1360とを含み得る。
【００７４】
いくつかの実施形態では、1つまたは複数プロセッサ1310は、図13に関して前述された機能のサブセットまたはすべてを実行するように構成され得る。プロセッサ1310は、たとえば、一般的なプロセッサおよび/またはアプリケーションプロセッサを備え得る。いくつかの実施形態では、プロセッサは、視覚的な追跡デバイス入力およびワイヤレスセンサ入力を処理する要素へ組み込まれる。
【００７５】
コンピュータシステム1300はさらに、限定することなく、ローカルおよび/またはネットワークアクセス可能なストレージを備え得る1つまたは複数の非一時的な記憶デバイス1325を含み得る(および/または、通信し得る)か、および/または、限定することなく、ディスクドライブと、ドライブアレイと、光記憶デバイスと、プログラム可能、フラッシュ更新可能等であり得るランダムアクセスメモリ(「RAM」)および/または読み取り専用メモリ(「ROM」)のようなソリッドステートデバイスとを含み得る。そのような記憶デバイスは、限定することなく、様々なファイルシステム、データベース構造等を含む任意の適切なデータ記憶装置を実現するように構成され得る。
【００７６】
コンピュータシステム1300はまた、限定することなく、モデム、ネットワークカード(ワイヤレスまたは有線)、赤外線通信デバイス、ワイヤレス通信デバイス、および/または、チップセット(Bluetooth(登録商標)デバイス、802.11デバイス、WiFiデバイス、WiMaxデバイス、セルラー通信施設等)等を含み得る通信サブシステム1330を含み得る。通信サブシステム1330によって、(一例をあげると、後述するネットワークのような)ネットワーク、他のコンピュータシステム、および/または、本明細書に記載された任意の他のデバイスとの間でデータが交換されるようになり得る。多くの実施形態では、コンピュータシステム1300はさらに、前述したように、RAMまたはROMデバイスを含み得る非一時的なワーキングメモリ1335を備えるであろう。いくつかの実施形態では、通信サブシステム1330は、アクセスポイントまたはモバイルデバイスから信号を送信および受信するように構成されたトランシーバ1350とインターフェースし得る。いくつかの実施形態は、個別の単数または複数の受信機、および個別の単数または複数の送信機を含み得る。
【００７７】
コンピュータシステム1300はまた、本明細書に記載されたように、オペレーティングシステム1340、デバイスドライバ、実行可能なライブラリ、および/または、様々な実施形態によって提供されたコンピュータプログラムを備え得る、および/または、他の実施形態によって提供された方法を実施、および/または、システムを構成するように設計され得る、1つまたは複数のアプリケーションプログラム1345のような他のコードを含み、ワーキングメモリ1335内に現在配置されているように図示されているソフトウェア要素を備え得る。単なる例であるが、たとえば、図13に関して記載されたような、前述した方法に関連して記載された1つまたは複数の手順は、コンピュータ(および/または、コンピュータ内のプロセッサ)によって実行可能な命令および/またはコードとして実現され得、態様では、そのような命令および/またはコードは、記載された方法に従って1つまたは複数の動作を実行するために汎用コンピュータ(または他のデバイス)を設定および/または適用するために使用され得る。
【００７８】
これらの命令および/またはコードのセットは、たとえば前述されたような記憶デバイス1325のようなコンピュータ可読記憶媒体に格納され得る。いくつかのケースでは、記憶媒体は、コンピュータシステム1300のようなコンピュータシステム内に組み込まれ得る。他の実施形態では、記憶媒体は、コンピュータシステム(たとえば、コンパクトディスクのようなリムーバブル媒体)から分離し得る。および/または、インストールパッケージで提供され、これによって、記憶媒体は、そこに記憶されている命令/コードを用いて汎用コンピュータをプログラム、設定、および/または適用するために使用され得る。これらの命令は、コンピュータシステム1300によって実行可能な、実行可能なコードの形態をとり得、および/または、(たとえば、一般に利用可能な様々なコンパイラ、インストールプログラム、圧縮/伸張ユーティリティ等のうちのいずれかを用いて)コンパイルされ、および/または、コンピュータシステム1300にインストールされると実行可能なコードの形態をとる、ソースおよび/またはインストール可能なコードの形態をとり得る。
【００７９】
特定の要件に従って、実質的な変形がなされ得る。たとえば、カスタマイズされたハードウェアもまた使用され得るか、および/または、特定の要素が、ハードウェア、(たとえば、アップレット等のようなポータブルソフトウェアを含む)ソフトウェア、またはその両方で実現され得る。さらに、たとえばネットワーク入力/出力デバイスのような他のコンピューティングデバイスへの接続が適用され得る。
【００８０】
いくつかの実施形態は、本開示に従って方法を実行するコンピュータシステム(たとえば、コンピュータシステム1300)を適用し得る。たとえば、記載された方法の手順のうちのいくつかまたはすべては、ワーキングメモリ1335に含まれる(オペレーティングシステム1340および/または、アプリケーションプログラム1345のような他のコードに組み込まれ得る)1つまたは複数の命令のうちの1つまたは複数のシーケンスをプロセッサ1310が実行することに応じて、コンピュータシステム1300によって実行され得る。そのような命令は、たとえば記憶デバイス1325のうちの1つまたは複数のような別のコンピュータ可読媒体からワーキングメモリ1335へ読み込まれ得る。単なる例であるが、ワーキングメモリ1335に含まれた命令のシーケンスの実行は、たとえば、図13に関して記載されたような方法である、本明細書に記載された方法の1つまたは複数の手順をプロセッサ1310に対して実行させ得る。
【００８１】
本明細書で使用されるような「マシン可読媒体」および「コンピュータ可読媒体」という用語は、マシンを特有の方式で動作させるデータを提供することに関連する任意の媒体を称する。コンピュータシステム1300を用いて実現される実施形態では、様々なコンピュータ可読媒体が、実行のための命令/コードをプロセッサ1310に提供する際に含まれ得る、および/または、そのような命令/コードを(たとえば、信号として)記憶および/または伝送するために使用され得る。多くの実施では、コンピュータ可読媒体は、物理的および/または有形の記憶媒体である。そのような媒体は、限定しないが、不揮発性媒体、揮発性媒体、および送信媒体を含む多くの形態をとり得る。不揮発性媒体は、たとえば、記憶デバイス1325のような光ディスクおよび/または磁気ディスクを含む。揮発性媒体は、限定することなく、たとえば、ワーキングメモリ1335のような動的メモリを含む。送信媒体は、限定することなく、同軸ケーブルと、銅線と、および、バス1305を備えるワイヤのみならず、通信サブシステム1330の様々な構成要素(および/または、通信サブシステム1330が他のデバイスへ通信を提供する媒体)を含む光ファイバとを含んでいる。したがって、送信媒体はまた、(限定することなく、無線波、音響波、および/または、たとえば、無線波通信および赤外線データ通信中に生成されるような光波を含む)波の形態をとり得る。
【００８２】
物理的および/または有形のコンピュータ可読媒体の共通の形式は、たとえば、フロッピー(登録商標)ディスク、フレキシブルディスク、ハードディスク、磁気テープ、あるいは任意の他の磁気媒体、CD-ROM、任意の他の光媒体、パンチカード、紙テープ、穴のパターンを備えた任意の他の物理的媒体、RAM、PROM、EPROM、FLASH-EPROM、任意の他のメモリチップまたはカートリッジ、以下に記載されるような搬送波、または、コンピュータが命令および/またはコードを読み取る任意の他の媒体を含む。
【００８３】
実行のために、1つまたは複数の命令の1つまたは複数のシーケンスをプロセッサ1310へ伝送する際に、コンピュータ可読媒体の様々な形態が含まれ得る。単なる例であるが、命令は、最初に、遠隔コンピュータの光ディスクおよび/または磁気ディスクで搬送され得る。遠隔コンピュータは、その動的メモリへ命令をロードし、命令を、コンピュータシステム1300によって受信および/または実行される信号として送信媒体を介して送信し得る。電磁気信号、音響信号、光信号等の形態をとり得るこれら信号はすべて、本発明の様々な実施形態に従って、命令がエンコードされ得る搬送波の例である。
【００８４】
通信サブシステム1330(および/またはその構成要素)は一般に、これら信号を受信し、バス1305はその後、信号(および/または、信号によって伝送されるデータ、命令等)をワーキングメモリ1335へ伝送し得、ここから、プロセッサ1310は、命令を取得して実行する。ワーキングメモリ1335によって受け取られた命令は、オプションとして、プロセッサ1310による実行の前または後のいずれかにおいて、非一時的な記憶デバイス1325に記憶され得る。メモリ1335は、本明細書に記載されたデータベースおよび方法のうちのいずれかに従って、少なくとも1つのデータベースを含み得る。メモリ1335は、このように、図1、図2、図3、図4、図5、図6、図7、図8、図9、図10、図11、図12および関連する説明を含む本開示のいずれかにおいて述べた値のうちのいずれかを記憶し得る。
【００８５】
図12に記載された方法は、図13における様々なブロックによって実施され得る。たとえば、プロセッサ1310は、フローチャート1200におけるブロックの機能のうちのいずれかを実行するように構成され得る。記憶デバイス1325は、本明細書で述べられたブロックのいずれかにおいて述べたローカルにユニークな属性またはグローバルにユニークな属性のような中間結果を記憶するように構成され得る。記憶デバイス1325はまた、本開示のいずれかと整合したデータベースを含み得る。メモリ1335は同様に、本明細書において述べられたブロックのいずれかにおいて記載された機能のいずれかを実行するために必要なデータベース値、信号の表現、または信号を記録するように構成され得る。RAMのような一時的または揮発性メモリに記憶される必要のあり得る結果はまた、メモリ1335に含まれ得、記憶デバイス1325に記憶され得るものと同様の任意の中間結果を含み得る。入力デバイス1315は、本明細書に記載された本開示に従って、衛星および/または基地局からのワイヤレス信号を受信するように構成され得る。出力デバイス1320は、本開示のいずれかに従って、画像を表示、テキストを印刷、信号を送信、および/または、他のデータの出力、を行うように構成され得る。
【００８６】
前述されたこれらの方法、システム、およびデバイスは例である。様々な実施形態は、様々な手順または構成要素を、適切なものとして、省略、代用、または追加し得る。たとえば、代替構成では、記載された方法は、記載されたものとは異なる順序で実行され得るか、および/または、様々な段階が、追加、省略、および/または、組み合わせられ得る。いくつかの実施形態に関して記述された特徴は、他の様々な実施形態で組み合わせられ得る。実施形態の異なる態様および要素は、同様な方式で組み合わせられ得る。技術は進化するので、これら要素の多くは、これら具体的な例に対する本開示の範囲を限定しない例である。
【００８７】
実施形態の完全な理解を提供するために、説明に、具体的な詳細が与えられる。しかしながら、実施形態は、これらの具体的な詳細なしで実行され得る。たとえば、周知の回路、処理、アルゴリズム、構成、および技術が、実施形態を不明瞭にしないために、不必要な詳細なしで図示されている。本記載は、例示的な実施形態のみを提供しており、本発明の範囲、適用可能性、または構成を限定することは意図されていない。むしろ、実施形態の前述した記載は、当業者に対して、本発明の実施形態を実施するための実施可能な説明を与えるであろう。様々な変更が、本発明の精神および範囲から逸脱することなく、要素の機能および構成において行われ得る。
【００８８】
また、いくつかの実施形態は、フロー図またはブロック図として図示されたプロセスとして記載された。各々は、動作を、連続的な処理として記載し得るが、これら動作の多くは、並行して、または、同時に実行され得る。さらに、これら動作の順序が、再配列され得る。処理は、図面に含まれていない追加のステップを有し得る。さらに、方法の実施形態は、ハードウェア、ソフトウェア、ファームウェア、ミドルウェア、マイクロコード、ハードウェア記述言語、またはこれらの任意の組合せによって実現され得る。ソフトウェア、ファームウェア、ミドルウェア、またはマイクロコードで実現された場合、関連付けられたタスクを実行するためのコードセグメントまたはプログラムコードが、記憶媒体のようなコンピュータ可読媒体に記憶され得る。プロセッサは、関連付けられたタスクを実行し得る。
【００８９】
いくつかの実施形態が記載され、様々な修正、代替構成、および均等物が、本開示の精神から逸脱することなく使用され得る。たとえば、前述した要素は単に、より大きいシステムの構成要素であり、他のルールが、本発明の応用を引き継ぐか、あるいはそうでなければ修正し得る。多くのステップが、前述した要素が考慮される前、間、または後に実施され得る。したがって、前述した記載は、本開示の範囲を限定しない。
【００９０】
様々な例が記載された。これらの例および他の例は、以下の請求項の範囲内である。
【符号の説明】
【００９１】
100  モバイルデバイス
110  正面カメラ
120  タッチスクリーン
200  部屋
204  壁
204'  長方形
206  壁
206'  長方形
300  例示
302  十字線カーソル
304  矢印
306  光線
310  開始コーナ
312  エッジ
402  開始コーナ
404  終了コーナ
500  例示
502  カーソル
602  2つのエッジ間の角度
604  2つのエッジ間の角度
606  2つのエッジ間の角度
902  曲線
904  エッジ
906  エッジ
908  エッジ
910  エッジ
912  エッジ
914  エッジ
916  エッジ
918  エッジ
1002  経路
1004  経路
1100  コンピュータ可読記憶媒体
1102  ユーザ入力モジュール
1104  カメラおよびセンサモジュール
1106  ジェスチャ認識モジュール
1108  構造モデル生成器
1110  ディスプレイおよびフィードバックモジュール
1300  コンピュータシステム
1305  バス
1310  プロセッサ
1315  入力デバイス
1320  出力デバイス
1325  記憶デバイス
1330  通信サブシステム
1335  ワーキングメモリ
1340  オペレーティングシステム
1345  アプリケーションプログラム
1350  トランシーバ
1355  カメラ
1360  深度センサ
【図１】
0006469706.tif 000002
【図２Ａ−２Ｃ】
0006469706.tif 000003
【図３】
0006469706.tif 000004
【図４Ａ】
0006469706.tif 000005
【図４Ｂ】
0006469706.tif 000006
【図４Ｃ】
0006469706.tif 000007
【図５】
0006469706.tif 000008
【図６Ａ】
0006469706.tif 000009
【図６Ｂ】
0006469706.tif 000010
【図６Ｃ】
0006469706.tif 000011
【図７Ａ】
0006469706.tif 000012
【図７Ｂ】
0006469706.tif 000013
【図８】
0006469706.tif 000014
【図９Ａ】
0006469706.tif 000015
【図９Ｂ】
0006469706.tif 000016
【図１０Ａ】
0006469706.tif 000017
【図１０Ｂ】
0006469706.tif 000018
【図１１】
0006469706.tif 000019
【図１２】
0006469706.tif 000020
【図１３】
0006469706.tif 000021