(57)【特許請求の範囲】
【請求項１】
拡張現実(AR)環境における物理的光景のデジタル表現を構築するための方法であって、
少なくとも1つの平坦面と前記平坦面に配置された1つまたは複数の物理的対象物とを含む前記物理的光景についての情報を取得するステップと、
前記物理的光景内の前記平坦面を識別するステップと、
前記平坦面に対応するAR平面を決定するステップであって、前記AR平面が、前記平坦面の少なくとも一部分を含むとともに、少なくとも1つの穴を取り囲み、前記少なくとも1つの穴のサイズが、前記平坦面の遮られた部分に基づいて調整される、決定するステップと、
前記少なくとも1つの穴についての情報に少なくとも部分的に基づいて前記平坦面に配置された前記1つまたは複数の物理的対象物のうちの第1の対象物に関連する1つまたは複数の特性を決定するステップと、
前記第1の対象物に関連する前記特性と前記AR平面に関連する情報とを使用して3次元(3D)モデルを生成するステップと、
前記AR平面および前記3Dモデルを含むAR環境のデジタル表現を生成するステップと、
前記物理的光景の画像がモバイルデバイスによって撮られながら、前記モバイルデバイス上の前記AR環境の前記デジタル表現を実質的にリアルタイムに表示するステップと
を含む、方法。
【請求項２】
前記第1の対象物に関連する1つまたは複数の特性を決定するステップが、少なくとも1つまたは複数の特徴点を識別することにさらに基づく、請求項1に記載の方法。
【請求項３】
前記AR平面が複数のセルを含み、前記複数のセルの各セルが、バーチャル対象物が前記第1の対象物と衝突することなく進むことができる領域を表す、請求項1に記載の方法。
【請求項４】
前記第1の対象物に関連する1つまたは複数の特性を決定するステップが、
前記平坦面の前記第1の対象物のロケーションに対応する1つまたは複数の領域を前記平坦面内で識別するステップと、
1つまたは複数の凸領域および前記1つまたは複数の特徴点のロケーションに基づいて、前記第1の対象物の1つまたは複数の外面を決定するステップとを含む、請求項1に記載の方法。
【請求項５】
前記平坦面に対応するAR平面を決定するステップが、
前記第1の対象物を含む前記物理的光景の少なくとも2つの画像を解析するステップと、
前記物理的光景の前記少なくとも2つの画像の解析に基づいて、前記AR平面が前記物理的光景に対応し、前記第1の対象物に対応する少なくとも1つの領域を排除するように前記AR平面を作成するステップとを含む、請求項1に記載の方法。
【請求項６】
前記物理的光景の前記少なくとも2つの画像を解析するステップが、
第1のロケーションにおける前記物理的光景の、前記第1の対象物を含む第1の画像をカメラを使用して撮るステップと、
前記カメラが前記第1のロケーションから第2のロケーションに移動した距離を決定するステップと、
前記第2のロケーションにおける前記物理的光景の、前記第1の対象物を含む第2の画像を前記カメラを使用して撮るステップと、
前記第1の画像と前記第2の画像とを使用して前記第1の対象物に対する深さ情報を決定するステップとを含む、請求項5に記載の方法。
【請求項７】
前記3Dモデルを生成するステップが、
前記第1の対象物の1つまたは複数の特徴点を取得するステップであって、前記1つまたは複数の特徴点の各特徴点が、前記第1の対象物の外面上の点の、前記平坦面に対するロケーションを示す、取得するステップと、
前記第1の対象物の見えない部分の形状を、前記AR平面に関連する情報と前記1つまたは複数の特徴点とを使用して推定するステップと、
前記推定に基づいて3D再構築対象物を構築するステップとを含む、請求項1に記載の方法。
【請求項８】
前記推定が、
スプライン表現、
射影対称性対象物表現、
平坦表現、または
湾曲表現のうちの少なくとも1つを含む、請求項7に記載の方法。
【請求項９】
前記第1の対象物の前記デジタル表現を構築するステップが、前記第1の対象物によって遮られた前記平坦面の一部分の形状に基づいて、対象物を前記平坦面に垂直な方向に押し出すステップを含む、請求項1に記載の方法。
【請求項１０】
前記平坦面に対応する前記AR平面を決定するステップが、
前記物理的光景内の前記平坦面の初期部分を識別するステップと、
前記平坦面の追加部分を識別するステップとを含み、前記追加部分の各々が、前記追加部分に関連する少なくとも1つの視覚特性または幾何学的特性と、前記平坦面の一部であるとすでに識別されている1つまたは複数の部分に関連する少なくとも1つの対応する視覚特性または幾何学的特性との間の類似性を決定することに基づいて前記平坦面の一部であるとして識別される、請求項1に記載の方法。
【請求項１１】
前記平坦面の前記追加部分を識別するステップが、
前記平坦面が存在する平坦領域のモデルを確立するステップと、
前記平坦領域を複数のセルに区分するステップと、
各セルを前記平坦面の潜在的な追加部分として評価するステップとを含む、請求項10に記載の方法。
【請求項１２】
各セルを評価するステップが、
前記平坦面の追加部分として識別された各セルに対して、前記平坦面の一部としてまだ識別されていない隣接セルを識別するステップと、
識別された隣接セルの各々に対して、前記隣接セルを前記平坦面の潜在的部分として評価するステップとを反復するステップを含む、請求項11に記載の方法。
【請求項１３】
プロセッサによって実行可能な命令を含む非一時的コンピュータ可読記憶媒体であって、前記命令が、前記プロセッサによって実行されるとき、前記プロセッサに請求項１から１２のいずれか一項に記載の方法を実行させる、非一時的コンピュータ可読記憶媒体。
【請求項１４】
拡張現実(AR)環境における装置であって、
少なくとも1つの平坦面と前記平坦面に配置された1つまたは複数の物理的対象物とを含む物理的光景についての情報を取得するための手段と、
前記物理的光景内の前記平坦面を識別するための手段と、
前記平坦面に対応するAR平面を決定するための手段であって、前記AR平面が、前記平坦面の少なくとも一部分を含むとともに、少なくとも1つの穴を取り囲み、前記少なくとも1つの穴のサイズが、前記平坦面の遮られた部分に基づいて調整される、決定するための手段と、
前記少なくとも1つの穴についての情報に少なくとも部分的に基づいて前記平坦面に配置された前記1つまたは複数の物理的対象物のうちの第1の対象物に関連する1つまたは複数の特性を決定するための手段と、
前記第1の対象物に関連する前記特性と前記AR平面に関連する情報とを使用して3次元(3D)モデルを生成するための手段と、
前記AR平面および前記3Dモデルを含むAR環境のデジタル表現を生成するための手段と、
前記物理的光景の画像がモバイルデバイスによって撮られながら、前記モバイルデバイス上の前記AR環境の前記デジタル表現を実質的にリアルタイムに表示するための手段と
を含む、装置。
【請求項１５】
前記第1の対象物に関連する1つまたは複数の特性を決定するステップが、少なくとも1つまたは複数の特徴点を識別することにさらに基づき、および／または、前記AR平面が複数のセルを含むとともに、前記複数のセルの各セルが、バーチャル対象物が前記第1の対象物と衝突することなく進むことができる領域を表す、請求項14に記載の装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、一般に、拡張現実環境に関し、より詳細には、現実世界の周辺環境の機械ベースの認識に関する。
【背景技術】
【０００２】
拡張現実(AR)環境において、ユーザは、人工またはバーチャルのグラフィックスとユーザの自然周辺環境との統合を見ることができる。ARのいくつかの早期の実装形態では、ユーザは、たとえば、拡張現実ゴーグルを介してユーザの自然周辺環境の間または中に任意に表示されるグラフィックスを見ることができる。たとえば、蝶が、ユーザが自然に見ているものと関連性があるかどうかにかかわらず、ユーザが彼または彼女の自然周辺環境を見続けながら、ランダムな蝶のグラフィックがARゴーグルのビューに沿って飛ぶことができる。ARのより精巧な実装形態では、ユーザは、AR特徴またはグラフィックスをユーザの自然周辺環境の対象物または構造物に直接適用することができる。たとえば、ユーザは、蝶のグラフィックが壁またはテーブルの上にとまるように指示することを欲することがあり、これは、最初に、壁またはテーブルがユーザの視野の中で実際に存在する場所をAR環境が認識することを必要とする。
【０００３】
他の場合には、ロボットまたは他の自動機械は、自然周辺環境の中でそれら自体の位置の確定を試行するときに、AR分野における同様の概念および技法を適用し得る。たとえば、ロボットは、壁またはテーブルと衝突しないように、周辺環境の中の壁およびテーブルが存在する場所の理解を必要とすることがある。他の場合には、ロボットは、たとえば、テーブル上のカップを識別してそのカップを拾い上げることによって自然周辺環境と対話することができる。そのようなタスクを実施することは、最初に、ロボットがカップと、場合によってはカップが載っているテーブルとをうまく識別することが必要となることがある。しかしながら、既存の技法は、たとえば、リアルタイムの目的には、速さが十分でないかまたはエネルギー効率が十分でないことがあるので、自然周辺環境の機械ベースでの認識をリアルタイムで達成することは、解決が困難な問題であることがわかっている。したがって、リアルタイムの設定において自然周辺環境を機械ベースで認識する改善された方法が、当技術分野において必要である。
【発明の概要】
【課題を解決するための手段】
【０００４】
本開示は、一般に、拡張現実環境に関し、より詳細には、現実世界の周辺環境の機械ベースの認識に関する。
【０００５】
物理的光景についての情報を取得することによって物理的光景のデジタル表現を構築するためのシステム、方法およびデバイスを説明する。その情報に基づいて、物理的光景内の平坦面の初期部分が識別され得る。いくつかの態様では、物理的光景から物理的対象物が選択され、3次元(3D)再構築対象物として再構築され得る。平坦面は、その上面において3D再構築対象物をサポートし得る、拡張現実(AR)環境内の拡張現実平面として表され得る。
【０００６】
いくつかの態様では、平坦面の追加部分もまた、少なくとも1つの撮られた画像に基づいて識別され得る。追加部分の各々は、追加部分に関連する少なくとも1つの視覚特性と、平坦面の一部であるとすでに識別されている1つまたは複数の部分に関連する少なくとも1つの対応する視覚特性との間の類似性を決定することに基づいて平坦面の一部であるとして識別される。
【０００７】
物理的光景のデジタル表現を構築するための例示的な方法は、物理的光景についての情報を取得するステップと、物理的光景内で平坦面を識別するステップと、平坦面の上に置かれた物理的光景内の物理的対象物を選択するステップと、物理的対象物に関連する特性を検出するステップと、物理的対象物に関連する特性を使用して3次元(3D)再構築対象物を生成するステップと、拡張現実(AR)環境内の拡張現実平面として平坦面を表すステップとを含み得、AR環境内のAR平面は、その上面において3D再構築対象物をサポートし得る。
【０００８】
方法のいくつかの態様では、選択のための物理的対象物を識別するステップは、平坦面上の物理的対象物のロケーションに対応する1つまたは複数の領域を平坦面内で識別するステップを含み得、取得された情報は物理的対象物の1つまたは複数の特徴点を含み、各特徴点は物理的対象物の外面上の点の、平坦面に対するロケーションを示し、物理的対象物の1つまたは複数の外面を識別することは1つまたは複数の凸領域および1つまたは複数の特徴点のロケーションに基づく。
【０００９】
方法のいくつかの態様では、平坦面をAR平面として表すステップは、物理的対象物を含む物理的光景の少なくとも2つの画像を解析するステップと、物理的光景の少なくとも2つの画像の解析に基づいて、AR平面が物理的光景に対応し、物理的対象物に対応する少なくとも1つの領域を排除するようにAR平面を作成するステップとを含み得る。作成されたAR平面は複数のセルを含み得、複数のセルの各セルは、物理的対象物がない物理的光景内の一領域を表す。
【００１０】
いくつかの態様では、物理的光景の少なくとも2つの画像を解析するステップは、第1のロケーションにおける物理的光景の、物理的対象物を含む第1の画像をカメラを使用して撮るステップと、カメラが第1のロケーションから第2のロケーションに移動した距離を決定するステップと、第2のロケーションにおける物理的光景の、物理的対象物を含む第2の画像をカメラを使用して撮るステップと、第1の画像と第2の画像とを使用して物理的対象物に対する深さ情報を決定するステップとを含み得る。
【００１１】
方法のいくつかの態様では、3D再構築対象物を生成するステップは、物理的対象物の1つまたは複数の特徴点を取得するステップであって、1つまたは複数の特徴点の各特徴点が物理的対象物の外面上の点の、平坦面に対するロケーションを示す、取得するステップと、物理的対象物の見えない部分の形状を、平坦面に関連する情報と1つまたは複数の特徴点とを使用して推定するステップと、その推定に基づいて3D再構築対象物を構築するステップとを含み得る。いくつかの例では、推定は、情報および1つまたは複数の特徴点を平坦面のフロントパラレルパースペクティブに変換するステップを含む。いくつかの例では、推定は、スプライン表現、射影対称性対象物表現、平坦表現、または湾曲表現のうちの少なくとも1つを含む。
【００１２】
本開示のいくつかの態様では、物理的対象物のデジタル表現を構築するステップは、物理的対象物によって遮られた平坦面の一部分の形状に基づいて、対象物を平坦面に垂直な方向に押し出すステップを含み得る。
【００１３】
方法のいくつかの態様では、平坦面をAR平面として表すステップは、物理的光景内の平坦面の初期部分を識別するステップと、平坦面の追加部分を識別するステップとを含み得、追加部分の各々は、追加部分に関連する少なくとも1つの視覚特性または幾何学的特性と、平坦面の一部であるとすでに識別されている1つまたは複数の部分に関連する少なくとも1つの対応する視覚特性または幾何学的特性との間の類似性を決定することに基づいて平坦面の一部であるとして識別される。
【００１４】
いくつかの実施態様では、平坦面の追加部分を識別するステップは、平坦面が存在する平坦領域のモデルを確立するステップと、平坦領域を複数のセルに区分するステップと、各セルを平坦面の潜在的な追加部分として評価するステップとを含み得る。各セルを評価するステップは、平坦面の追加部分として識別された各セルに対して平坦面の一部としてまだ識別されていない隣接セルを識別するステップと、識別された隣接セルの各々に対して隣接セルを平坦面の潜在的部分として評価するステップとを反復するステップを含み得る。
【００１５】
物理的光景のデジタル表現を構築するための例示的なデバイスは、メモリと、物理的光景についての情報を取得するためのカメラと、メモリに結合されたプロセッサとを含み得る。プロセッサは、物理的光景内で平坦面を識別するステップと、平坦面の上に置かれた物理的光景内の物理的対象物を選択するステップと、物理的対象物に関連する特性を検出するステップと、物理的対象物に関連する特性を使用して3次元(3D)再構築対象物を生成するステップと、拡張現実(AR)環境内の拡張現実平面として平坦面を表すステップとのために構成され得、AR環境内のAR平面は、その上面において3D再構築対象物をサポートし得る。
【００１６】
デバイスのいくつかの態様では、選択のための物理的対象物を識別するステップは、平坦面上の物理的対象物のロケーションに対応する1つまたは複数の領域を平坦面内で識別するステップを含み得、取得された情報は物理的対象物の1つまたは複数の特徴点を含み、各特徴点は物理的対象物の外面上の点の、平坦面に対するロケーションを示し、物理的対象物の1つまたは複数の外面を識別することは1つまたは複数の凸領域および1つまたは複数の特徴点のロケーションに基づく。
【００１７】
デバイスのいくつかの態様では、平坦面をAR平面として表すステップは、物理的対象物を含む物理的光景の少なくとも2つの画像を解析するステップと、物理的光景の少なくとも2つの画像の解析に基づいて、AR平面が物理的光景に対応し、物理的対象物に対応する少なくとも1つの領域を排除するようにAR平面を作成するステップとを含み得る。作成されたAR平面は複数のセルを含み得、複数のセルの各セルは、物理的対象物がない物理的光景内の一領域を表す。
【００１８】
いくつかの態様では、物理的光景の少なくとも2つの画像を解析するステップは、第1のロケーションにおける物理的光景の、物理的対象物を含む第1の画像をカメラを使用して撮るステップと、カメラが第1のロケーションから第2のロケーションに移動した距離を決定するステップと、第2のロケーションにおける物理的光景の、物理的対象物を含む第2の画像をカメラを使用して撮るステップと、第1の画像と第2の画像とを使用して物理的対象物に対する深さ情報を決定するステップとを含み得る。
【００１９】
デバイスのいくつかの態様では、3D再構築対象物を生成するステップは、物理的対象物の1つまたは複数の特徴点を取得するステップであって、1つまたは複数の特徴点の各特徴点が物理的対象物の外面上の点の、平坦面に対するロケーションを示す、取得するステップと、物理的対象物の見えない部分の形状を、平坦面に関連する情報と1つまたは複数の特徴点とを使用して推定するステップと、その推定に基づいて3D再構築対象物を構築するステップとを含み得る。いくつかの例では、推定は、情報および1つまたは複数の特徴点を平坦面のフロントパラレルパースペクティブに変換するステップを含む。いくつかの例では、推定は、スプライン表現、射影対称性対象物表現、平坦表現、または湾曲表現のうちの少なくとも1つを含む。
【００２０】
本開示のいくつかの態様では、物理的対象物のデジタル表現を構築するステップは、物理的対象物によって遮られた平坦面の一部分の形状に基づいて、対象物を平坦面に垂直な方向に押し出すステップを含み得る。
【００２１】
デバイスのいくつかの態様では、平坦面をAR平面として表すステップは、物理的光景内の平坦面の初期部分を識別するステップと、平坦面の追加部分を識別するステップとを含み得、追加部分の各々は、追加部分に関連する少なくとも1つの視覚特性または幾何学的特性と、平坦面の一部であるとすでに識別されている1つまたは複数の部分に関連する少なくとも1つの対応する視覚特性または幾何学的特性との間の類似性を決定することに基づいて平坦面の一部であるとして識別される。
【００２２】
いくつかの実施態様では、平坦面の追加部分を識別するステップは、平坦面が存在する平坦領域のモデルを確立するステップと、平坦領域を複数のセルに区分するステップと、各セルを平坦面の潜在的な追加部分として評価するステップとを含み得る。各セルを評価するステップは、平坦面の追加部分として識別された各セルに対して平坦面の一部としてまだ識別されていない隣接セルを識別するステップと、識別された隣接セルの各々に対して隣接セルを平坦面の潜在的部分として評価するステップとを反復するステップを含み得る。
【００２３】
例示的な非一時的コンピュータ可読記憶媒体は、プロセッサによって実行可能な命令を含み、命令は、物理的光景内で平坦面を識別するステップと、平坦面の上に置かれた物理的光景内の物理的対象物を選択するステップと、物理的対象物に関連する特性を検出するステップと、物理的対象物に関連する特性を使用して3次元(3D)再構築対象物を生成するステップと、その上面において3D再構築対象物をサポート可能な拡張現実(AR)環境内の拡張現実平面として平坦面を表すステップとのための命令を含む。
【００２４】
非一時的コンピュータ可読記憶媒体のいくつかの態様では、3D再構築対象物を生成するステップは、物理的対象物の1つまたは複数の特徴点を取得するステップであって、1つまたは複数の特徴点の各特徴点が物理的対象物の外面上の点の、平坦面に対するロケーションを示す、取得するステップと、物理的対象物の見えない部分の形状を、平坦面に関連する情報と1つまたは複数の特徴点とを使用して推定するステップと、その推定に基づいて3D再構築対象物を構築するステップとのための命令を含み得る。いくつかの例では、推定は、情報および1つまたは複数の特徴点を平坦面のフロントパラレルパースペクティブに変換するステップを含む。いくつかの例では、推定は、スプライン表現、射影対称性対象物表現、平坦表現、または湾曲表現のうちの少なくとも1つを含む。
【００２５】
非一時的コンピュータ可読記憶媒体のいくつかの例では、AR平面は複数のセルを含み得、複数のセルの各セルは、物理的対象物がない物理的光景内の一領域を表す。いくつかの態様では、平坦面をAR平面として表すステップは、物理的対象物を含む物理的光景の少なくとも2つの画像を解析することと、物理的光景の少なくとも2つの画像の解析に基づいて、AR平面が物理的光景に対応し、物理的対象物に対応する少なくとも1つの領域を排除するようにAR平面を作成することとを行うようにさらに構成されたプロセッサを備える。
【００２６】
物理的光景のデジタル表現を構築するための例示的な装置は、物理的光景についての情報を取得するための手段と、物理的光景内で平坦面を識別するための手段と、平坦面の上に置かれた物理的光景内の物理的対象物を選択するための手段と、物理的対象物に関連する特性を検出するための手段と、物理的対象物に関連する特性を使用して3次元(3D)再構築対象物を生成するための手段と、その上面において3D再構築対象物をサポート可能な拡張現実(AR)環境内の拡張現実平面として平坦面を表すための手段とを含み得る。
【００２７】
例示的な装置のいくつかの態様では、3D再構築対象物を生成するための手段は、物理的対象物の1つまたは複数の特徴点を取得するための手段であって、1つまたは複数の特徴点の各特徴点が物理的対象物の外面上の点の、平坦面に対するロケーションを示す、取得するための手段と、物理的対象物の見えない部分の形状を、平坦面に関連する情報と1つまたは複数の特徴点とを使用して推定するための手段と、その推定に基づいて3D再構築対象物を構築するための手段とを含み得る。いくつかの例では、推定は、情報および1つまたは複数の特徴点を平坦面のフロントパラレルパースペクティブに変換するための手段を含む。いくつかの例では、推定は、スプライン表現、射影対称性対象物表現、平坦表現、または湾曲表現のうちの少なくとも1つを含む。
【００２８】
例示的な装置のいくつかの例では、AR平面は複数のセルを含み得、複数のセルの各セルは、物理的対象物がない物理的光景内の一領域を表す。いくつかの態様では、平坦面をAR平面として表すステップは、物理的対象物を含む物理的光景の少なくとも2つの画像を解析するための手段と、物理的光景の少なくとも2つの画像の解析に基づいて、AR平面が物理的光景に対応し、物理的対象物に対応する少なくとも1つの領域を排除するようにAR平面を作成するための手段とを含む。
【００２９】
前記の説明では、次の詳細な説明を理解しやすくするために例の特徴および技術的利点の概略をかなり広範にわたって述べている。以下で、さらなる特徴および利点を説明する。開示する概念および具体例は、本開示の同じ目的を実行するための他の構造を変更または設計するための基礎として容易に利用され得る。そのような等価な構成は、添付の特許請求の範囲の趣旨および範囲から逸脱しない。構成と動作方法の両方に関する、本明細書で開示される概念の特徴であると考えられる特徴は、関連する利点とともに、添付の図面とともに検討すると以下の説明からよりよく理解されよう。しかし、図面の各々は例示および説明のみのために与えられ、特許請求の範囲の限定範囲を定めるために与えられるものではない。
【００３０】
様々な実施形態の性質および利点の理解が、以下の図面を参照することによって実現され得る。添付の図において、同様の構成要素または特徴は同じ参照ラベルを有し得る。さらに、同じタイプの様々な構成要素は、参照ラベルの後に、ダッシュと、それらの同様の構成要素同士を区別する第2のラベルとを続けることによって区別され得る。本明細書内で第1の参照ラベルのみが使用される場合、その説明は、第2の参照ラベルとは無関係に、同じ第1の参照ラベルを有する類似の構成要素のうちのいずれか1つに適用可能である。
【図面の簡単な説明】
【００３１】
【図１】本開示のいくつかの実施形態による、拡張現実(AR)システム内のコンピューティングデバイスを使用するための例示的な設定を示す図である。
【図２】本開示のいくつかの実施形態による、例示的な物理的光景を示す図である。
【図３】図2に示す物理的光景の一部を表す例示的な平坦面を示す図である。
【図４】本開示のいくつかの態様による、物理的光景のデジタル表現を生成するためのコンピューティングデバイスによって実行され得る例示的な動作を有するフロー図である。
【図５Ａ】本開示のいくつかの態様による、凸包(convex hull)を示す図である。
【図５Ｂ】本開示のいくつかの態様による、改良された包(refined hull)を示す図である。
【図６】AR平面を構築するように構成されたモジュールの例を有するブロック図である。
【図７】本開示の態様に従って取得され、対応する物理的環境上に重畳される点群の一例を示す図である。
【図８】対応する物理的環境上に重畳される基面を作成するために使用される点群の一例を示す図である。
【図９】対応する物理的環境上に重畳される対象物に従ってクラスタ化された点群の一例を示す図である。
【図１０】対応する物理的環境上に重畳される3次元物理的対象物のモデルの一例を示す図である。
【図１１】対応する物理的環境上に重畳されるAR平面の一例を示す図である。
【図１２】対応する物理的環境上に重畳されるAR平面および3次元物理的対象物のモデルの一例を示す図である。
【図１３】本開示のいくつかの態様による、AR平面を作成するための例示的なプロセスを示す図である。
【図１４】本開示のいくつかの態様による、AR平面を作成して使用するための例示的なプロセスを示す図である。
【図１５Ａ】平坦面上の対象物によって作成された穴を示す図である。
【図１５Ｂ】対象物のデジタル表現を生成するために使用される修正された穴を示す図である。
【図１６】本開示のいくつかの態様による、平坦面の密な平面表現のフロントパラレルビューの簡略化された例の図である。
【図１７】対象物の一部の形状がいかにして推定され得るかの一例を示す、平坦面の密な平面表現における穴の簡略化されたフロントパラレルビューである。
【図１８】物理的光景の平坦面上の対象物のデジタル表現を構築するための例示的なプロセスを示す図である。
【図１９】物理的光景のデジタル表現を構築するための例示的なフローチャートである。
【図２０】本開示のいくつかの態様による、平坦面を表すために使用され得るコンピューティングデバイスの潜在的な一実装形態を説明する図である。
【発明を実施するための形態】
【００３２】
「例示的」という用語は、本明細書では「一例、事例、または実例として役立つ」ことを意味するように使用される。「例示的」として本明細書で説明するいかなる実施形態または設計も、必ずしも他の実施形態または設計よりも好ましいまたは有利なものと解釈すべきではない。
【００３３】
ユーザの自然周辺環境に基づいて拡張現実(AR)環境の中で、平坦表面と前記平坦表面上の任意の対象物を認識するための方法および装置を提供する。
【００３４】
未知の現実世界の光景に基づいてARアプリケーションを築くことは、どの光景およびどのタイプの対象物が実行時に再構築されることになるかは事前に知られていないので、挑戦しがいがある。たとえば、ユーザが、自然環境において部屋に入るところかまたは外に出るところかは、事前に知られていない。したがって、いかなるタイプの光景に基づいても精巧な拡張現実アプリケーションを作成することは非常に困難である。
【００３５】
一般に、全光景に対する1つの大きい三角形のメッシュなど、光景の汎用的表現を使用することは可能である。いくつかの例では、これは、誰かが再構築された光景を描写したいと思う場合には妥当であり得る。しかしながら、再構築された光景を描写するだけでなく、様々な現実およびバーチャルの対象物を用いて描写された光景と対話することも望ましいことがある。再構築された光景を区分することによって、現実世界の対象物の周りにバーチャル植物を育てるなど、より複雑な使用事例が達成可能である。本明細書で説明する実施形態は、汎用的光景を、変化する特性を有する個別の表面および対象物と互いに相関する意味のある再構築された構成要素に再構築することを可能にする。
【００３６】
本開示のいくつかの実施形態は、未知の現実世界の光景を、その上面に複数の対象物を有する拡張現実(AR)平面として表すことができる。提案される表現は、テーブルトップまたは床など、室内ARアプリケーションに対する典型的なシナリオの大部分に対して使用され得る。提案される表現はまた、屋外ARアプリケーションに対しても使用され得る。
【００３７】
説明する実施形態に従って光景を表現し再構築することによって、基面(たとえば、テーブル/床)を表すAR平面に対して意味のある区分けが実施され得、個別の対象物が、AR平面の上面に表され得る。いくつかの実施形態に対して、表された対象物が個別の増加物のために使用され得、現実世界の対象物と取り換えることで、AR環境内に物理的光景が形成される。たとえば、現実世界の対象物の色が異なる色で増補されてよく、または現実世界の対象物がバーチャルの対象物によって完全に取り換えられてもよい。加えて、精巧なゲームプレイが、複数の対象物に基づいて生成され得る。
【００３８】
本明細書で提案するAR平面は、物理的表面の実際のエッジ(たとえば、テーブルのエッジ)に対応する境界を有し得る。提案する表現を使用して、開発者は、特定の外観を有するAR平面を描写する(たとえば、基面上に草を生えさせる)ことができる。
【００３９】
いくつかの実施形態は、再構築された平面の境界の周囲の表面が上方を指しているかまたは下方を指しているかを示し得ることがある。たとえば、この情報は、対象物をテーブルから落下させるために使用され得る。しかしながら、対象物が床面の境界に達する(たとえば、壁に達する)とき、境界は、対象物の落下を止めることができる。
【００４０】
いくつかの実施形態では、物理的環境を解析するために、同時位置推定およびマッピング(SLAM)プロセスが使用され得る。SLAMプロセスは、カメラを使用して撮られている物理的環境の第1の2次元画像を含み得る。2次元画像は、深さ情報を欠くことがある。次いで、カメラは、ある距離を移動させられ得る。この距離(および方向)が測定され得る。物理的環境の第2の画像が撮られ得る。移動距離および方向を使用することによって、適合するものと決定された2つの画像内の複数の識別された基準点の深さが計算され得る。SLAMプロセスの実施は、決定された基準点のロケーションを洗練するため、および物理的環境内で追加の基準点を識別するために、より多くの画像を使用し得る。SLAMの使用に加えて、たとえば、飛行時間解析または立体カメラシステムを使用して深さ情報を含む画像を撮ることによるなど、いくつかの他の形態の3次元マッピングプロセスが使用されることもある。本明細書で説明するように、SLAMプロセスが例示のために使用され得るが、本発明の範囲から逸脱することなく、他の技法がSLAMの代わりに使用され得る。
【００４１】
いくつかの実施形態では、点群が、AR平面またはAR平面上に置かれた対象物を検出するため、またはさらに洗練するために作成され得る。点群は複数の基準点を含み得、各基準点は深さ値を有する。基準点は、所与の原点を基準にするx、yおよびzを含む直交座標系など、3次元座標系における点の表現を指すことができる。本明細書で詳述するように、SLAMプロセスまたは他の3次元マッピングプロセスを使用して取得された点群が、AR平面を作成する。一実施形態では、AR平面は、バーチャル対象物が衝突する可能性がある物理的対象物がAR平面から排除されるように作成され得る。別の実施形態では、AR平面は、物理的対象物が存在しない平坦領域、ならびに物理的対象物との衝突の可能性を考慮することなくバーチャル対象物がAR環境内に配置および移動され得る平坦領域を表すことができる。
【００４２】
AR平面は、多角形セルなど、複数のセルから成る平面を画定し得る。各多角形セルは、バーチャル対象物が別の対象物(物理的対象物のユーザのビューなど)と衝突することなく配置され得る凸平坦領域を表し得る。一例として、3次元一人称シューターゲームを参照すると、AR平面は、バーチャルキャラクタが移動することを許容されている領域を画定することができる。たとえば、対象物、壁および崖が、AR平面から排除され得る。ひとたびAR平面が作成されると、バーチャル対象物は、AR平面上の任意の位置に移動することを許容され得る。AR平面は、物理的対象物に対応する領域を排除するように作成されているので、バーチャル対象物がAR平面上に配置される限り、バーチャル対象物が、AR環境内で物理的対象物のユーザのビューを、容認できないほど横断または通過すること(それは、AR環境の現実性に悪い影響を及ぼす)はないことが知られている。
【００４３】
いくつかの実施形態では、ARシステム内に導出されたナビゲーションメッシュまたは「ナビメッシュ」もまた、AR平面と見なされ得る。いくつかの例では、AR平面はまた、ARシステムを記述しながら、ナビゲーションメッシュまたはナビメッシュと呼ばれることがある。いくつかの例では、AR平面、ナビゲーションメッシュまたはナビメッシュなどの用語は、本発明の範囲から逸脱することなく、AR環境を記述しながら、互換的に使用され得る。
【００４４】
図1を参照すると、例示的なARシステム100が図示されている。いくつかの実施形態では、ARシステム100は、SLAMプロセスを実施するように構成され得る。システム100は、モバイルデバイスなどのコンピューティングデバイス102を含む。モバイルデバイスは、カメラのような入力感知ユニットとディスプレイとを備えた任意のポータブルコンピューティングデバイスであってよい。ここで、コンピューティングデバイス102は、スマートフォンなどのモバイルデバイスであり得るが、本明細書で説明する機能はスマートフォンに限定されない。たとえば、コンピューティングデバイス102は、デジタルカメラ、カムコーダ、タブレットコンピュータ、携帯情報端末、ビデオゲームコンソール、ヘッドマウントディスプレイ(HMD)もしくは他のウェアラブルディスプレイ、プロジェクタデバイス、または他のデバイスなどの任意のポータブルデバイスまたはモバイルデバイスであり得る。さらに、モバイルデバイスの代わりに、パーソナルコンピュータ(たとえば、デスクトップコンピュータ)、または他のハンドヘルドではないデバイス、または通常はモバイルデバイスと呼ばれないデバイスのような、コンピューティングデバイス102が使用され得る。コンピューティングデバイス102は、現実世界の物理的環境の中で物理的対象物の画像を撮るためのカメラを含み得る。図示の実施形態では、円筒(たとえば、スープの缶)が、テーブル104の上に存在する。
【００４５】
コンピューティングデバイス102は、物理的環境の画像を撮ること、ここでは、スープの缶が上に置かれたテーブルの画像を撮ること、および1つまたは複数のバーチャル対象物を補充された透明または半透明のディスプレイ上に追加の映像を表示することによって、現実性を拡張するように構成され得る。図1では、3次元のキャラクタ106が、テーブル104を含む物理的環境のビューの上に重畳される。3次元のキャラクタ106は、任意の形態のバーチャル対象物であってよく、ヒューマノイドキャラクタに限定されない。3次元のキャラクタ106は、本明細書で詳述するように、テーブル104の表面上に構築されているAR平面上の様々なロケーションに移動することを許容され得る。いくつかの実施形態では、AR平面は、スープの缶がAR平面から排除され、したがってコンピューティングデバイス102のディスプレイ上に提示されるAR環境内で3次元のキャラクタ106がスープの缶と衝突するように見えることを防ぐように構築され得る。
【００４６】
図2は、本開示のいくつかの実施形態による、例示的な物理的光景200を示す。図示のように、光景は、テーブル210の部分(たとえば、平坦面)を含み得る。加えて、いくつかの物理的対象物215(たとえば、本、カップ、おもちゃなど)が、テーブル210の上面に配置されている。いくつかの画像では、影および反射もまた、テーブル210上に見えることがある。いくつかの実施形態では、コンピューティングデバイス102は、特徴点(たとえば、SLAM)決定のために、1つまたは複数の画像および/または他のデータを捕捉することができる。1つまたは複数の画像を、コンピューティングデバイス102のディスプレイ230上にリアルタイムまたは準リアルタイムで見ることができる。その上、ディスプレイ230はまた、ARグラフィックスおよび/または1つまたは複数の表示画像の上に被せられた他の情報を示し得る。コンピューティングデバイス102は、タブレット、スマートフォン、パーソナルカメラなどを備えることができ、1つまたは複数の画像は、コンピューティングデバイス102のカメラによって撮られたビデオフィードからの画像であってよい。
【００４７】
技法は、たとえば画像処理および/または特徴点情報を使用して平坦面のロケーション、方位および寸法を決定し、平坦面の再構築された表現であり得る拡張現実(AR)平面を生成するために、コンピューティングデバイス102によって実行されるARアプリケーションなどのアプリケーションによって実施され得る。これらの技法は、さらに、平坦面の特徴の決定を助けるために、コンピューティングデバイス102に知られている特徴を有する対象物であり得る画像目標217を利用し得る。
【００４８】
図3は、図2に示す物理的光景の一部分を表す例示的なAR平面310を示す。図示のように、テーブル210(たとえば、平らな表面)が、光景の中で識別される。三角形のメッシュ315が、提案された方法によって識別される平坦面を表す。
【００４９】
表されたAR平面310の境界(または境界線)が、より多くの部分(たとえば、セル)を解析し、それらを平坦面の識別された部分に追加することによって、経時的に成長し得る。これは、通常、新しい視点に因って平坦面のより多くの面積が可視になるときに生じる。図3では、AR平面310の表現の境界線は、まだ、平坦面210の物理的境界線のすべてを正確に示していない。しかしながら、利用されるアルゴリズムに応じて、表現は、追加情報(たとえば、異なるアングルにおける画像)の利用可能性によって継続的に改良および洗練され得る。この例では、線315は、AR平面310の表示を助けるように示されている。AR平面310は、多数の線315を含むが、2本だけがラベル付けされていることに留意されたい。
【００５０】
AR平面310は、平坦面210の境界線があり得る場所を示すばかりでなく、平坦面210の部分が遮られる「穴」320も含むことができる。対象物検出のために、これらの穴320は、対象物215の存在を示し得る。対象物215によって(たとえば、統計的情報を使用する平面掃引(plane sweeping)、平面拡張(plane extension)に因って)投じられた穴320は、遮断に因って実際の対象物215より大きい可能性がある。言い換えれば、平坦面210がフロントパラレルに(すなわち、真上から)見られない場合、対象物215は、対象物の後ろの平坦面210のいくらかの部分を遮ることになる。図15Aは、この現象をさらに詳細に示すことを助ける。
【００５１】
図4は、本開示のいくつかの実施形態による、物理的光景のデジタル表現を作成するためのコンピューティングデバイスによって実施される方法のフロー図である。1つまたは複数の態様によれば、本明細書で説明する方法および/または方法ステップのいずれかおよび/またはすべては、たとえば、モバイルデバイスおよび/または図20でより詳細に説明するデバイスなどのコンピューティングデバイス102によって、および/またはその中で実施され得る。一実施形態では、図4に関して以下で説明する動作のうちの1つまたは複数は、プロセッサ2010または別のプロセッサなどのコンピューティングデバイス2000のプロセッサによって実施される。追加または代替として、本明細書で説明する方法および/または方法ステップのいずれかおよび/またはすべては、メモリ2020、ストレージまたは別のコンピュータ可読媒体などのコンピュータ可読媒体上に記憶されているコンピュータ可読命令などのコンピュータ可読命令で実施され得る。
【００５２】
ブロック402において、コンピューティングデバイスは、物理的光景の少なくとも1つの画像を取得し得る。たとえば、デバイスは、1つまたは複数の画像を撮るためのカメラを有し得る。代替として、デバイスは、光景から撮られる画像を受信し得る。404において、少なくとも1つの画像に基づいて、デバイスは、物理的光景内の平坦面の初期部分を識別し得る。たとえば、デバイスは、初期化目標として使用される対象物(たとえば、その上に印刷された知られているグラフィックを有する一枚の紙、円筒、または事前に知られている任意の他の対象物などの2次元の表面)を識別し得る。初期化目標が本明細書で説明されるが、本発明の範囲から逸脱することなく、平坦面の初期部分を検出するために、他の技法が使用されてもよい。たとえば、表面に置かれた1つまたは複数の対象物が、対象物に対する特徴検出を使用して検出され得る。1つまたは複数の対象物の底が表面の一部分と同じ面内にあるシナリオでは、表面のその部分が、平坦面の初期部分を示し得る。
【００５３】
いくつかの実施形態では、初期化対象物(たとえば、図2の対象物217)の使用は、当該の平面の位置を速やかに確定するシステムのための方法を提供する。初期化対象物の例は、図2の対象物217によって示される。有用な仮定が、初期化対象物を使用して平面に関してなされ得る。たとえば、水平面に対して、1つの仮定は、その平面は重力の方向と直交することであり得る。初期化目標が光景の一部である場合、カメラと平面との間の直接的関係は、重力の方向を仮定する必要なしに推定され得ることに留意されたい。その一方で、平面が初期化目標なしに推定される場合、光景の中に他の主要な平面(たとえば、壁)が存在することがあるので、重力の方向など、いくつかの仮定が使用されてよい。
【００５４】
別の仮定は、初期化対象物は表面に静止しているので、初期化対象物の底面は平面と同じ面内にあることであり得る。このような仮定に基づいて、平面のモデルが構築され得、平面に対するカメラの位置が見出され得る。
【００５５】
AR平面の初期部分に対する初期モデルが構築されると、初期化対象物が静止している現実世界の対象物(たとえば、テーブル)に対応する平坦面が見出され得る。この例では、テーブルは、構築されたAR平面と同じ面内にあることが知られている。知られていないことは、テーブルが、平面のモデル内で異なる方向にどれだけ伸びているか、であり、言い換えれば、テーブルのエッジがどこにあるかである。本明細書で説明する技法は、1つまたは複数の視覚画像を使用して、平坦面(たとえば、テーブル)の追加部分を引き続き識別するため、およびそのような平坦面のモデルの実際の大きさを決定する効率的な方法を提供するための方法を説明する。
【００５６】
加えて、物理的光景の中の1つまたは複数の点(たとえば、点群)についての高さ情報が、平坦面およびその上面にある対象物のより良い推定を得るために、システム内で使用され得る。点群は、座標系の中で表され得る1組のデータ点である。たとえば、3次元座標系において、これらの点は、X、YおよびZ座標によって定義され得る。点群は、対象物の外面を表すように意図されることが多い。一実施形態では、1つまたは複数の点群は、SLAM(同時位置推定およびマッピング)システムの出力として生成され得る。代替として、点群は、(たとえば、カメラの一部であり得る)深さセンサによって生成され得る。
【００５７】
ブロック406において、少なくとも1つの取得された画像に基づいて、デバイスは、平坦面の追加部分を識別し得る。一実施形態では、追加部分の各々は、追加部分に関連する少なくとも1つの視覚特性または幾何学的特性と、平坦面の一部であるとすでに識別されている1つまたは複数の部分に関連する少なくとも1つの対応する視覚特性との間の類似性を決定することに基づいて平坦面の一部であるとして識別される。
【００５８】
本発明の一実施形態によれば、使用される視覚特性は、当該の部分が、実際により大きい平坦面(たとえば、テーブル)の一部であるかどうかのより良い目安であり得る1組の赤-緑-青(RGB)の値であり得る。RGB値(たとえば、テーブルトップは特定の紫がかった色合いである)は、たとえば、平坦面の実際の境界線とは対照的に、単に、影または反射などの異なる照明条件を示すことがある画素の輝度値よりも視覚特性として効率的であり得る。
【００５９】
一実施形態では、平坦面の追加部分は、平坦面が存在するARの平坦領域を確定することによって識別され得る。ARの平坦領域は、複数のセルに区分され得る。各セルは、平坦面の潜在的な追加部分として評価され得る。
【００６０】
一実施形態では、セルは、反復して評価され得る。たとえば、平坦面の追加部分として識別される各セルに対して、隣接セルが識別される。一実施形態では、平坦面の一部としてまだ識別されていない各隣接セルに対して、セルは、平坦面の潜在的な部分として評価され得る。隣接セルが平坦面内の他のセルの特性と類似の特性を有する場合、セルは、AR平面に追加され得る。隣接セルが類似の特性を持たない場合、セルは、AR平面の一部ではないとして識別され得る。反復プロセスが、平坦面の新しい追加部分がそれ以上発見され得ないか、または何らかの他の終了条件に到達するまで反復され得る。
【００６１】
平坦面の一部としてすでに識別されているセルとは対照的に、候補セルの「類似点」または候補セルがどれほど「類似」しているかを評価する異なる方法が存在し得る。たとえば、平坦面の一部としてすでに識別されているすべてのセルの少なくとも1つの視覚特性が、基線を確定するために何らかの他の方法において平均化または結合され得る。代替として、いくつかのセルだけ(たとえば、近傍のセルだけ)の少なくとも1つの視覚特性が、基線を確定するために使用され得る。候補セルの少なくとも1つの視覚特性が、基線に対する「類似点」の測度を決定するために評価され得る。類似点の測度が所定のしきい値を上回る場合、候補セルは、AR平面の一部であるとして識別され得る。さもなければ、候補セルは、AR平面の一部でないとして識別され得る。
【００６２】
一実施形態では、コンピューティングデバイス102は、複数の画像を取得し、画像内の情報を使用することによって平坦表現を改良することができる。たとえば、コンピューティングデバイス102は、1つのロケーションから別のロケーションに移動し、異なるアングルから光景の1つまたは複数の画像を撮ることができる。コンピューティングデバイス102は、より新しい画像からの情報を使用することによって経時的に平坦表現を動的に更新/改良することができる。一実施形態では、光景の平坦表現は、ユーザがある領域の中で移動するときにリアルタイムで生成され得る。
【００６３】
一実施形態では、提案される方法は、図20で説明するカメラ2021と同様のカメラを使用して撮られた画像を処理するために使用され得る。別の実施形態では、画像は、深さカメラ(たとえば、深さセンサを含むカメラ)を用いて撮られ、平坦表現を生成するために処理され得る。概して、任意の種類のカメラまたは画像センサが、本明細書の教示から逸脱することなく、提案されたシステムの中で使用され得る。
【００６４】
一般に、深さセンサが、各画素がカメラまでの距離を表す距離画像を提供する。画素は、3次元(3-D)の点群に容易に変換され得る。複数の距離画像が、3-D空間のより大きい部分をカバーするために組み合わされ得る。平面の位置および方位についての情報が利用可能である場合(境界は知られていないことに留意すること)、平面内に位置する3-Dの点が識別され得る。3-Dの点が平面上に投影され得、したがって平面の2-D空間の中においてのみ、さらに調査され得る。
【００６５】
図5Aおよび図5Bを参照すると、平面内部の点を使用して平面の外側の境界を発見するために、凸包(図5Aに示す)が計算され得る。数学において、ユークリッド平面またはユークリッド空間における点の集合Xの凸包または凸包絡は、Xを含む最小の凸集合である。たとえば、Xが平面の有界の部分集合であるとき、凸包は、Xの周りに伸ばされたゴムバンドによって形成される形状として見られ得る。一実施形態では、より複雑な形状を構築するために、凸包は、さらに、追加の点を境界に追加することによって(図5Bで示すように)洗練され得る。たとえば、図5Bでは、凸包は、さらに、点502を形状に追加することによって洗練される。境界は、大きい空き空間が境界によって囲まれるエリア内で反復して洗練され得る。
【００６６】
一実施形態では、平面の境界に近い3-Dの点に基づいて、境界の周囲の表面が平面の下かまたは上かを見出すことが可能である。境界は、それにより、上方または下方としてラベル付けされ得る。
【００６７】
図6は、AR平面を構築するために使用され得るシステム600の一実施形態を示す。いくつかの実施形態では、拡張現実システム内に導出されたナビゲーションメッシュまたは「ナビメッシュ」もまた、AR平面と呼ばれることがある。いくつかの例では、AR平面はまた、拡張現実システムを記述しながら、ナビゲーションメッシュまたはナビメッシュと呼ばれることがある。システム600は、図20のシステムまたは何らかの他のコンピュータ化システムを使用して実装され得る。システム600の各モジュールは、ソフトウェア、ファームウェアおよび/またはハードウェアを使用して実装され得る。たとえば、1つまたは複数の汎用プロセッサ2010および/または専用プロセッサが、システム600のモジュールの一部または全部の機能を実施し得る。
【００６８】
SLAMプロセスエンジン610は、カメラによって撮られた物理的環境の画像内に存在する物理的対象物に基づいて基準点の点群を作成するために、SLAMプロセスを使用するように構成され得る。SLAMプロセスエンジン610は、画像を撮ることを引き起こし、その画像内の様々な基準点を識別することができる。SLAMプロセスエンジン610によって、第2の画像が撮られることが引き起こされる。第2の画像は、第1の画像と異なるロケーションから撮られてよい。第1の画像の捕捉と第2の画像の捕捉との間の方向および/または距離が、SLAMプロセスエンジン610によって、第1のおよび第2の画像を取得した時刻におけるカメラの相対位置および2つの画像の間で共通の基準点を決定することによって決定され得る。たとえば、第1の画像内の同じ基準点のうちの少なくともいくつかが、第2の画像内で識別され得る。三角測量ベースのプロセスを使用して、SLAMプロセスエンジン610は、第1および第2の画像内に存在する対応する基準点のうちの少なくともいくつかの深さを決定し得る。複数の追加の画像が撮られ、基準点を識別され、物理的環境に対して深さ値を計算され得る。したがって、SLAMプロセスは、3つ以上の画像の使用を伴い、物理的環境全体を通して様々な基準点に対する3次元位置を計算し、洗練することができる。SLAMプロセスエンジン610は、各々が3次元座標を有する(すなわち、深さ値を含む)複数の点を含む点群を出力し得る。これらの点の各々は、カメラ(または他の形態の撮像デバイス)を使用して撮られた少なくとも2つの画像の各々の中に存在する基準点に対応することができる。SLAMプロセスエンジン610の代替物として、何らかの他の形態の3次元マッピングプロセスが、点群を作成するために使用され得る。たとえば、深さ情報を含む画像、たとえば飛行時間解析または立体カメラシステムを使用して撮られた画像は、物理的環境に対する点群を生成するために使用され得る。
【００６９】
図7は、様々な基準点を点群の一部として識別する撮られた画像の一例を表す。SLAMプロセスエンジン610は、様々な基準点を識別することができる。図7に示す各点は、少なくとも2つの解析された画像に基づいてSLAMプロセスエンジン610によって深さ値が計算された基準点を表すことができる。たとえば、基準点710-1はテーブル上のプレースマットのエッジに対応し、基準点710-2はティッシュペーパーボックスのエッジに対応する。これらの点の各々は、深さ値を有することができる。
【００７０】
SLAMプロセスエンジン610が、点群(図7の点群など)を決定するために使用され得るが、他の構成が使用されることもある。たとえば、立体カメラシステムまたは飛行時間カメラシステムなど、深さを測定し得るカメラが、SLAMプロセスエンジン610の代わりに(またはそれを増強するために)使用されることがある。SLAMプロセスエンジン610は、従来の2次元カメラおよびジャイロスコープおよび/または加速度計などの動き感知ハードウェアを含むコンピューティングデバイス102の従来のハードウェア以外に追加のハードウェアを必要とすることなく、深さ情報を決定することを可能にする。一例では、ジャイロスコープおよび/または加速度計は、さらに、物理的光景(または光景内の対象物)に対するカメラの距離/方位の変化の決定を助けることができる。
【００７１】
図6のシステム600に戻ると、SLAMプロセスエンジン610によって出力される点群は、表面マッピングエンジン620によって基面をマッピングするために使用される、ほぼ同じ面内にあるいくつかの数の基準点を含み得る。物理的環境において、テーブルトップ、床、地面など、少なくとも1つの表面が存在し得る。そのようにして、一例では、同じ面内にある多数の基準点を有する平面が、基面として使用され得る。そのようにして、基面上に置かれたAR対象物は、基面としての役割を果たしている物理的表面の上面に位置するかのように見えることを意図されている。図8を参照すると、基面としての役割を果たすべき平面上に位置すると決定された外側の基準点が、基面の外側の限界を形成するために接続され得る。基面は、色に基づいて表面をマッピングすることを含む、追加のプロセスを介して表面のさらなるマッピングによって拡張され得る。
【００７２】
いくつかの実施形態では、基面は、表面マッピングエンジン620への入力としてユーザによって選択される。たとえば、撮られた画像の中で、ユーザは、基面として使用するための表面を選択し得る。さもなければ、基面は、表面マッピングエンジン620によってできるだけ多くの基準点に平面をフィットさせることによって発見され得る。図8は、同じ面内にあると決定された基準点にフィットされた基面の視覚的な例を示す。基面にフィットされた基準点は、802によって示される。基準点802の間の線804は、基面の外側の範囲を表すことができる。
【００７３】
表面マッピングエンジン620によって作成された基面に対して、複数のセルが作成され得る。各セルは、全体的に基面内に収まる多角形であり得る。いくつかの実施形態では、作成される多角形は、3辺または4辺であってよく、すべて、基面と同じ面内にあってよい。多角形の頂点は、基面の範囲を規定する基準点であり得る。
【００７４】
図6のシステム600に戻ると、SLAMプロセスエンジン610によって出力された点群は、点群クラスタ化エンジン630によって解析され得る。点群クラスタ化エンジン630は、基準点がどの対象物の一部であると決定されるかによって、基準点をクラスタ化することができる。基面の一部であると決定された基準点は、点群クラスタ化エンジン630によって解析を除外され得る。たとえば、ロケーション、深さ、識別された境界および/または色特性に基づいて、同じ対象物に属すると決定された基準点は、一緒にクラスタ化され得る。図9を参照すると、点群の英語のアルファベット(a、b、c、d、e、f)からの異なる文字によって示される基準点は、一緒にクラスタ化された点を表す。文字「a」の基準点はティッシュペーパーボックスに対応し、文字「b」の基準点は高いカップに対応し、文字「c」の基準点は編んだ容器に対応し、文字「d」の基準点は本に対応し、緑の基準点は小さいカップに対応し、文字「e」の基準点はロウソクに対応し、マークのない基準点はテーブルの表面に対応する。
【００７５】
対象物モデリングエンジン640は、点群クラスタ化エンジン630によってクラスタ化された基準点に基づいて識別された物理的対象物をモデル化する役割を果たし得る。対象物モデリングエンジン640は、点群クラスタ化エンジン630によってクラスタ化された基準点に基づいて識別された対象物をモデル化するために、簡略化された幾何学的形状を使用し得る。たとえば、図10を参照すると、6面の3次元幾何学的形状が、各物理的対象物をモデル化するために使用され得る。代替として、より複雑な形状が、識別された対象物のより正確な幾何学的モデルを作成するために使用され得る。各幾何学的モデルは、各幾何学的モデルが表面マッピングエンジン620によって作成された基面に対して置かれるようなロケーションと関連付けられ得る。各幾何学的モデルは、バーチャル対象物がAR環境内で現実性を維持するのを助けるために置かれるべきでないロケーションを決定するために使用され得る。クラスタ化された基準点に加えて、色情報および/または決定された形状情報が、関連する幾何学的モデルを規定および/または洗練するために、物理的対象物の観測されたシルエットから使用され得る。
【００７６】
AR平面構築エンジン650は、表面マッピングエンジン620によって決定された基面および対象物モデリングエンジン640によって決定された物理的対象物モデルを使用してAR平面(黒い表面)を作成し得る。図11は、図8の基面および図10のモデル化された対象物に基づいて作成されたAR平面(1102によって示される黒一色の表面)の一実施形態を示す。AR平面の作成は、モデル化された対象物と交差または接触する、基面の複数の基面部分から切り抜く(またはさもなければ、取り除く)ことを含み得る。これは、基面の範囲を低減することおよび/またはAR平面を作成するために基面から1つまたは複数の領域を取り除くことを伴うことがある。AR平面の作成は、モデル化された対象物を避けるために細分された基面のセルを伴うことがある(たとえば、セルの1つまたは複数の細区画はAR平面内のセルとして維持され得、セルの1つまたは複数の細区画は、モデル化された対象物と重複または接触するので、AR平面から除外され得る)。新しいセルの頂点は、以前に基面の一部として識別された点群からの基準点に対応してもしなくてもよい。AR平面の一部であるセルに対して、セルは、対象物モデリングエンジン640によって識別される任意の重複する対象物と区別されることが必要とされる。したがって、AR平面のセル内から、セル上の任意の他の点への直線を、モデル化された対象物と交差することなく引くことができる。AR平面内の、図11の1104によって示される「穴」が、モデル化された物理的対象物が位置する場所に存在する。AR平面は、モデル化された物理的対象物に対応するそのような領域を含まない。
【００７７】
バーチャル対象物がAR平面のセル上に位置するときはいつも、バーチャル対象物は、物理的環境内でモデル化されたどの静的対象物とも衝突しないことが知られている。そのようにして、バーチャル対象物は、どの物理的対象物とも衝突することなく、AR平面のセルの上または間に自由に配置されるかまたはそこで自由に移動することができる。
【００７８】
再び図6に戻ると、AR平面実装アプリケーション660は、AR平面構築エンジン650によって作成されたAR平面を使用するアプリケーションを表すことができる。AR平面実装アプリケーション660は、物理的環境の撮られた画像と重畳され得るAR平面のセルの座標を受信し得る。したがって、AR平面実装アプリケーション660によって受信されるAR平面は、AR平面実装アプリケーション660が1つまたは複数のバーチャル対象物を、環境内に存在する物理的対象物と衝突することなく配置または移動しようとする、現実世界の物理的環境に基づく。AR平面は、それが、テーブルトップなどの物理的環境内に存在する表面に置かれているように見えるように配置され得る。たとえば、AR平面実装アプリケーション660は、AR平面構築エンジン650によって決定されたAR平面上の3次元バーチャル対象物の操作を可能にする。AR平面実装アプリケーション660は、バーチャル対象物が、モデル化された物理的対象物と衝突することなくAR平面のセルの間をどのように移動すべきかを決定するためなど、経路計画のためにAR平面を使用し得る。AR平面実装アプリケーション660は、バーチャル対象物が、AR平面のセル内にとどまっているとき、モデル化された物理的対象物と衝突することなく任意の方向に直線的に移動し得るように構成され得る。AR平面のエッジは、バーチャル対象物が配置または移動され得る場所の限界としての役割を果たし得る。
【００７９】
AR平面のセルの座標を受信することに加えて、AR平面実装アプリケーション660は、対象物に対するモデリング情報を受信し得る。このモデリング情報は、対象物モデリングエンジン640によって決定された対象物に対する幾何学的モデルであり得る。このモデリング情報は、対象物に対する高さ情報を含み得る。AR平面は、バーチャル対象物がバーチャル対象物と衝突しないことを確実にし得るが、AR平面実装アプリケーション660に与えられるモデリング情報は、バーチャル対象物が、モデル化された物理的対象物の後ろのAR平面上にあるとき、ビューから隠されることを容認することがある。加えて、バーチャル情報(たとえば、グラフィックス)は、AR環境内で物理的対象物の外観を増強または変更するために、モデル化された対象物のうちの1つまたは複数を被せられることがある。たとえば、小さいカップが、AR環境内の家に見えるようにされることがある。追加または代替として、いくつかの実施形態では、AR平面のエッジは、「壁のエッジ」または「崖のエッジ」などの特性を割り当てられ、そのことが、AR平面実装アプリケーション660によって異なって取り扱われることをもたらすことがある。壁のエッジは、バーチャル対象物がそれ以遠に移動されるのを妨げる障害物(たとえば、壁、大きい対象物)が存在する、AR平面のエッジを表し、崖のエッジは、そこからバーチャル対象物が落下するエッジが存在する、AR平面のエッジ(たとえば、テーブルのエッジ)を表すことができる。図12は、AR平面構築エンジン650によって作成されたAR平面とともに、対象物モデリングエンジン640によって作成され配置された物理的対象物の幾何学的モデル1202を示す。AR平面に対する情報および物理的対象物の幾何学的モデルは、AR平面実装アプリケーション660に出力され得る。
【００８０】
図13は、AR平面を作成するための方法1300の一実施形態を示す。方法1300は、図20のコンピューティングデバイスによって、または物理的環境を解析するように構成された何らかの他のシステムによって実施され得る。
【００８１】
ブロック1310において、物理的環境が解析され得る。物理的環境は、1つまたは複数の物理的対象物と、バーチャル対象物が置かれることを所望される少なくとも1つの表面とを含み得る。ブロック1310は、物理的環境の1つまたは複数の画像を捕捉および解析するステップを含み得る。ブロック1310は、表面または1つまたは複数の物理的対象物のいずれかの上に存在する様々な基準点についての深さ情報を計算するステップを含み得る。ブロック1310における物理的環境を解析するステップは、実施されている図6のシステム600のエンジン610、620、630、640および650に関して説明したプロセスのうちの1つまたは複数を含み得る。
【００８２】
ブロック1320において、AR平面が、ブロック1310の解析に基づいて作成され得る。AR平面は、複数のセルを含み得る。各セルは、3辺または4辺を有し得る。AR平面のセル上にあるとき、バーチャル対象物は、AR環境内に存在する物理的対象物のいずれとも衝突しないことが知られている。特定のセル上にとどまるとき、前に説明したように、AR平面は物理的対象物に対する穴を備えているので、バーチャル対象物はAR平面の平面に沿って任意の方向に直線的に移動し得、AR環境内の物理的対象物のいずれとも衝突しない。ブロック1320において作成されたAR平面は、AR平面の様々なセルの座標の形態で出力され得る。AR平面は、物理的環境の画像の基準点とリンクされ得る。
【００８３】
図14は、AR平面を作成し使用するための方法1400の一実施形態を示す。方法1400は、図20のシステムおよび/またはコンピューティングデバイスによって、または物理的環境を解析するように構成された何らかの他のシステムによって実施され得る。方法1400のステップを実施するための手段は、図20のコンピューティングデバイスの構成要素の1つまたは複数の例を含む。方法1400は、図13の方法1300のより詳細な実施形態を表すことができる。
【００８４】
ブロック1410において、物理的環境の複数の画像が撮られ得る。1つまたは複数の画像が、カメラ2021(図20)を使用して撮られ得る。物理的環境内で、バーチャル対象物が置かれるべき1つまたは複数の表面が存在し得る。物理的環境はまた、AR環境内で表されるときにバーチャル対象物との衝突を容認されない1つまたは複数の物理的対象物を含み得る。複数の画像を撮るために使用されるカメラの動きの量が、ブロック1410の一部として測定され得る。
【００８５】
ブロック1420において、SLAMプロセスが、実施され得る。SLAMプロセスは、カメラによって撮られた物理的環境の画像のうちの1つまたは複数の中に存在する物理的対象物に基づいて、基準点の点群を作成し得る。SLAMプロセスは、各画像内の様々な基準点を識別し得る。少なくともいくつかの同じ基準点が、複数の撮られた画像のうちの少なくとも2つの中で識別され得る。三角測量ベースのプロセスを使用して、SLAMプロセスは、画像内に存在する基準点のうちの少なくともいくつかの深さを決定し得る。SLAMプロセスは、各々が3次元座標を有する(深さ値を含む)複数の点を含む点群をもたらし得る。これらの点の各々は、複数の(カメラまたは他の形態の撮像デバイスから)撮られた画像のうちの少なくとも2つの中に存在する基準点に対応することができる。いくつかの実施形態では、物理的環境を表す点群は、本発明の範囲から逸脱することなく、他の形態の3次元マッピングプロセスなど、SLAMプロセス以外のモデリングプロセスを使用して作成され得る。
【００８６】
ブロック1430において、基面は、点群からの基準点を使用して決定され得る。ブロック1420によって出力された点群は、基面を作成するために使用される、少なくともいくつかのほぼ同じ面内にある基準点を有し得る。物理的光景の中で、テーブルトップ、床、地面など、少なくとも1つの表面が存在することが仮定され得る。そのようにして、平面が(所定の誤差限界内で)フィットされ得る基準点の最大のクラスタが、基面を規定するために使用され得る。基面は、AR平面の表面としての役割を果たすために自動的に選択され得る。そのようにして、基面上に置かれたAR平面は、基面としての役割を果たしている物理的表面の上面に位置するかのように見えることを意図されている。基面は、色に基づく表面のマッピングを含む追加のプロセスを介して表面のさらなるマッピングによって拡張され得る。いくつかの実施形態では、基面を計算するのではなく、基面が、ユーザ入力を介してユーザによって選択されることがある。たとえば、撮られた画像の中で、ユーザは、モバイルデバイスのスクリーン上のタッチパッドまたはスタイラスを使用して表面の部分を強調表示するなど、ユーザインターフェース(図示せず)を介して入力を与えることによって、基面として使用されるべき表面を選択し得る。いくつかの例では、基面を識別するために使用される方法にかかわらず、作成された基面は、基面の周辺の頂点に基づく複数のセルを含み得る。基面の各セルは、全体的に基面内に収まる多角形であり得る。いくつかの実施形態では、作成される多角形は、3辺または4辺であってよく、すべて、基面と同じ面内にあってよい。
【００８７】
ステップ1440において、基面の一部であると決定されなかった基準点は、1つまたは複数のクラスタにグループ分けされ得る。基準点は、基準点がどの対象物の一部として決定されるかに従ってクラスタ化され得る。基面の一部でない基準点のクラスタ化は、点の空間的近接性、基準点に関連する色に基づくなど、様々な異なる基準を使用して実施され得る。たとえば、ロケーション、深さ、識別された境界および/または色特性に基づいて、同じ対象物に属すると決定された基準点は、一緒にクラスタ化され得る。そのようにして、クラスタの数は、描写された物理的環境内の物理的対象物の数に応じて決まることがある。
【００８８】
ブロック1450において、物理的環境の物理的対象物は、ブロック1440において識別されたクラスタに基づいてモデル化され得る。簡略化された幾何学的モデルが、クラスタ化された基準点に基づいて識別された対象物をモデル化するために使用され得る。より複雑な形状が、識別された物理的対象物のより正確な幾何学的モデルを作成するために使用され得る。各幾何学的モデルは、各幾何学的モデルが基面に対して置かれるようなロケーションと関連付けられ得る。各幾何学的モデルは、バーチャル対象物がAR環境内で現実性の維持を助けるために置かれるべきでないロケーションを決定するために使用され得る。
【００８９】
ブロック1460において、AR平面が、ブロック1430からの基面とブロック1450からの物理的対象物のモデルとを使用して作成され得る。AR平面の作成は、モデル化された物理的対象物と交差する、基面の複数の基面部分から切り抜く(またはさもなければ、取り除く)ことを含み得る。これは、AR平面を作成するために、基面の範囲を低減することおよび/または基面内に1つまたは複数の穴を作成することを伴うことがある。AR平面の一部であるべきセルに対して、セルは、任意の重複するモデル化された物理的対象物から完全に分離していることが必要とされることがある。したがって、AR平面のセル内から、同じセル上の任意の他の点への直線を、モデル化された対象物と交差することなく引くことができる。AR平面内の「穴」は、モデル化された物理的対象物が配置されていると決定される場所に存在し得る。
【００９０】
ブロック1470において、AR平面が、アプリケーションに随意に与えられ、AR環境内でバーチャル対象物を操作するためのアプリケーションによって使用され得る。AR平面は、AR平面のセルを規定する座標の形態で出力され得る。したがって、AR平面の出力は、1つまたは複数のバーチャル対象物が、物理的環境内の物理的対象物と衝突する様相を見せることなくAR環境内で配置または移動されるべき、現実世界の物理的環境に基づくことができる。AR平面は、テーブルトップなど、物理的環境内に存在する表面に置かれているように見えるように配置され得る。AR平面は、バーチャル対象物が、AR環境内のモデル化された物理的対象物と衝突することなくAR平面のセルの間をどのように移動され得るかを決定するためなど、経路計画のためにアプリケーションによって使用され得る。バーチャル対象物は、AR平面のセル内にとどまっているとき、モデル化された物理的対象物と衝突することなく任意の方向に直線的に移動し得るように構成され得る。AR平面のエッジは、バーチャル対象物が配置または移動され得る場所の限界としての役割を果たし得る。したがって、アプリケーション内で、AR平面は、バーチャル対象物が、AR環境が重畳されている物理的環境の物理的対象物と衝突するように見えないように、AR環境内のバーチャル対象物の動きを制限するために使用され得る。
【００９１】
AR平面が有用であり得るときの一例は、物理的環境上で重畳されたAR環境内で行われているゲームである。AR平面は、プレーヤでないキャラクタ(それはバーチャル対象物であり得る)が、AR環境内の物理的対象物と衝突するように見えることなく移動し得る場所を決定するために使用され得る。たとえば、プレーヤでないキャラクタは、AR平面上にとどまりながら(したがって、物理的対象物と衝突するように見えるのを避けながら)、プレーヤのキャラクタの方に移動することができる。ゲームが、プレーヤでないキャラクタがAR平面上にとどまるように設けられたAR平面を読み取り得る限り、ゲームは、実際の物理的環境を読み取る必要はないが、AR環境内に存在する物理的対象物を回避する様相を依然として見せることができる。追加の例として、AR平面はまた、3次元の動きを許容するアプリケーション内でユーザによって制御されるキャラクタなど、プレーヤの運動の位置およびロケーションを制限するために使用され得る。アプリケーション内のバーチャル対象物は、同様に、AR平面によって動きを制限され得る。バーチャル対象物、プレーヤのキャラクタ、およびプレーヤでないキャラクタは、単一の3次元境界ボックス(またはより詳細な多角形メッシュ)によって表されてよく、境界ボックスはAR平面上に維持される。
【００９２】
ゲームのほかに、AR平面がAR環境内で有用であり得る他の状況が存在する。たとえば、ユーザが、ユーザの台所の中で購入を検討しているコーヒーメーカ(バーチャル対象物)またはユーザのガレージの中で検討している新しい車など、特定の物理的環境の中で対象物がどのように見えるかをモデリングすること。AR平面は、AR環境内で物理的対象物を回避しながらバーチャル対象物を操作するために使用され得る。したがって、コーヒーメーカは、ユーザのキッチンカウンター上のミキサー(物理的対象物)と衝突して配置されることは許容されないが、作成されたAR平面に従う動きのために利用可能な、ユーザのキッチンカウンター上の空きスポット上に配置され得る。
【００９３】
アプリケーションに出力されるAR平面のセルの座標を受信することに加えて、1つまたは複数の物理的対象物に対するモデリング情報が、出力され得る。このモデリング情報は、ブロック1450において決定された対象物に対する幾何学的モデルであり得る。このモデリング情報は、対象物に対する高さ情報を含み得る。AR平面は、バーチャル対象物がバーチャル対象物と衝突しないことを確実にし得るが、モデリング情報は、バーチャル対象物が、モデル化された物理的対象物の後ろのAR環境内のAR平面上にあるとき、隠される(またはさもなければ表示のために修正される)ことを容認することがある。加えて、バーチャル情報(たとえば、グラフィックス)は、AR環境内の物理的対象物の外観を増強または変更するためのアプリケーションによってモデル化された対象物のうちの1つまたは複数を被せられることがある。図15Aは、平坦面210がフロントパラレルに見られるときでもAR平面310が対応する対象物215によって遮られる第1の部分1530のみならず、平坦面210および対象物215の1つまたは複数の画像を撮るときに、コンピューティングデバイス102の角度付きパースペクティブに因ってAR平面が遮られる領域を含む第2の部分1520-Aをも含むことがある、図3からの穴1510-Aを示す。(図示の例では、コンピューティングデバイス102(図示せず)は、対象物の、第2の部分1520-Aと反対の側に位置する。)したがって、第2の部分1520-Aは、1つまたは複数の画像が撮られるときのコンピューティングデバイス102のパースペクティブによって、対象物215の後ろの平坦面210の一部を遮る対象物215の投影または「影」に因るものである。
【００９４】
図15Aでは、穴1510-Aは対応する対象物215より大きいので、穴1510-Aの寸法に基づいて生成される対象物215の表現は正確ではない。第2の部分1520-Aのサイズを低減することは、平坦面210のより正確な表現をもたらすばかりでなく、対象物215のより正確な表現をももたらすことができる。
【００９５】
図15Bは、第2の部分1520-Bが(線および矢印で示すように)より小さいサイズに低減または除去された、修正された穴1510-B(影つき領域)を示す。以下でより詳細に説明するように、技法は、低減された第2の部分1520-Bの寸法を知的に推定するために、平坦面自体に関する情報ばかりでなく、特徴点情報(それはSLAMによって与えられ得る)をも利用できる。
【００９６】
図16は、一実施形態による、平坦面のAR平面310の簡略化されたフロントパラレルビューである。AR平面310は、平坦面上の対象物によって生じる遮断に因る穴320を有する。穴320は、カメラのパースペクティブに因ってカメラが見る方向から離れてAR平面310上に投影される部分1615をさらに含む。対象物215を囲む黒い輪郭線1610は、本明細書で提供する技法から達成され得る対象物215の形状の推定を表す。
【００９７】
対象物215についての情報は、AR平面310からばかりでなく、SLAMおよび/または対象物215の特徴点をもたらす他の技法からも収集され得る。特徴点(各々は図17の対象物215において「x」として表される)は、ロケーション情報が集められる対象物215の外面上の点であり得る。そのような情報は、たとえば、平坦面のAR平面310の上の特徴点の高さ、ならびに穴220の前部(または他のエッジ)までの距離を示し得る。ここで、「穴の前部」は、カメラの少なくとも1つの撮られた画像のパースペクティブによって、対象物によって少なくとも1つの撮られた画像の中で遮られる平坦面の最も近い部分である。これらの特徴点は、対象物215の見えない部分の形状を推定するために、AR平面310についての情報と一緒に使用され得る。
【００９８】
図17は、対象物の一部の形状がいかにして推定され得るかの一例を示す、平坦面の密なAR平面310内の穴320の簡略化されたフロントパラレルビューである。この例では、対象物の(カメラが見る方向のパースペクティブから)最も近い特徴点が決定され、最も近い特徴点1710-1から穴320の前部までの距離Dが決定される。次いで、穴の後部が、同じ距離Dを使用して、最も遠い特徴点1710-2から平面1720まで後ろに延びる平面として推定され得る。図示のこの例では、対象物215の見えない部分が、今や、穴320の後ろまでではなく、単に平面1720まで後ろに延びるものと推定されるので、対象物215の推定されるフットプリントは、穴320よりずっと小さくなる。したがって、対象物215の見えない部分が単に平面1720まで後ろに延びる対象物215の表現が、生成され得る。延長は、前面から特徴点1710-1までの距離メトリックに基づいて曲線/スプラインベースの裏面表現を推定するためである。
【００９９】
所望の機能に応じて、実施形態は、モバイルデバイスによって撮られた1つまたは複数の画像の中の、対象物215の見えない部分の形状を推定するために、追加または代替のアルゴリズムを使用し得る。たとえば、推定された形状は、平坦である必要はなく、湾曲してよく、または所与の他の形体であってよい。一例では、フロントパラレルビューにおける対象物の特徴点の2次元の中点が、(たとえば、平坦面の平面内のxおよびy座標を使用して)計算され得、特徴点が、(たとえば、中点周りに180度回転させることにより、または中点を含むカメラが見る方向と平行な平面上に射影された特徴点のミラー画像をもたらすことによって)中点周りに「裏返され」、それによって射影対称性対象物表現を作成することができる。別の例では、中点が計算され得、対象物の背面が、中点から穴の前部までの距離によって与えられる半径を有する湾曲した表面として推定され得る。推定される裏面は、その場合、円筒形である。他のアルゴリズムは、平坦面の上の高さの関数として、裏面における相違を含むことがある。推定が、穴自体より大きいことがあるフットプリント(すなわち、フットプリントが平坦面の見える部分を遮る)をもたらす場合、フットプリントは、穴の境界によって短縮され得る。
【０１００】
平面のフロントパラレルビューにおける穴の形状に基づいて、対象物表現は、平坦面に垂直な方向に対象物を押し出すことによって形成され得る。押し出しの高さは、下記(1)、(2)を含むいくつかの情報によって境界を示され得る。(1)画像内の対象物のシルエット。対象物のシルエットがカメラアングルに因って平面に落ちる画像がある場合、このシルエットは、対象物の高さに対する最大の境界を与え得る。言い換えれば、対象物の妥当な表現は、平面に対する複数のビューにおける修正された画像の中の対象物に対するシルエットを観察することによって推測され得る。いくつかの例では、これはスペースカービングと呼ばれることがある。対象物のシルエットは、平面に対する対象物の境界を観察すること、および対象物でない領域を削り取るために境界を使用することによって推測され得る。一実施態様では、これは、高さの境界を示すために使用され得る。別の実施態様では、単なる排除された穴ではなく、対象物の正確な表現が、スペースカービングを実施することによって検出され得る。(2)点の特徴は、さらに、対象物の上面の形状を推定するために利用され得る。たとえば、いくつかの実施形態は、対象物の押し出された高さの境界を示すために、最高の特徴点を使用し得る。追加または代替として、押し出された形状に対する可変高さの表面は、たとえば、スプライン表現または区分的平坦表現を使用して、穴の中の特徴点の高さに基づくことができる。
【０１０１】
AR平面310は、依然として、対象物再構築プロセスの間に洗練され得ることに留意されたい。カメラが周りを移動し、平面表現が洗練されるにつれて、穴が、表現の中に現れることがある。平面の上部にある対象物は、平面内の穴の一部を占める可能性がある。加えて、対象物の高さは、正確にはわからない(異なるフレーム内の対象物のシルエットは制約を生じる)。
【０１０２】
複数のビューにわたる密なステレオまたはフォトコンシステンシー(stereo or photo-consistency)などの他の技法が、本発明の範囲から逸脱することなく、画像情報から物理的対象物に関連する特性を検出するために使用され得る。
【０１０３】
図18は、物理的光景の平坦面上の対象物のデジタル表現を構築するための方法1800の一実施形態を示す。方法1800の構成要素のうちの1つまたは複数を実行するための手段は、図20に関してさらに詳細に説明するハードウェアおよび/またはソフトウェアの手段を含み得る。代替実施形態は、図示されている実施形態に対する代替形態を含む場合がある。方法1800の構成要素は、特定の順序で示されるが、異なる実施形態によれば、異なる順序で、かつ/または同時に実行され得る。さらに、多くの追加、省略、および/または他の変形が当業者には認識されよう。
【０１０４】
方法1800および本明細書で説明する他の技法は、オペレーティングシステムレベルまたはデバイスレベルにおいてハードウェアおよび/またはソフトウェアによって実行され得る。次いで、平坦面(すなわち、AR平面)および/または対象物の表現が、AR、CV、またはモバイルデバイスによって実行される他のアプリケーションに与えられ得る。表現は、多様な標準化フォーマットおよび/または独自仕様のフォーマット(たとえば、メッシュ(3D空間における三角形および/または多角形)など)のうちのいずれかにおいて与えられ得る。その上、表現は、実質的リアルタイムまたは準リアルタイムにおいて与えられ得、それによって、ARアプリケーションは、物理的光景の画像がモバイルデバイスによって撮られている間に、AR環境を表示することができる。
【０１０５】
ブロック1810において、平坦面(すなわち、AR平面)の表現を示す表面情報が取得される。前に示したように、表面情報は、物理的光景の少なくとも1つの撮られた画像に基づくことができる。図13、図14および前に説明した任意の他の図面に関連して説明した技法は、表面情報を使用してAR平面を導出するために使用され得る。表現は、たとえば、画像情報から平面を定義するための多様なアルゴリズムのうちのいずれかを使用して取得される密な平面表現であり得る。これらのアルゴリズムは、図18の方法1800を実行するアプリケーションと同じアプリケーション、または異なるアプリケーションによって実行され得る。
【０１０６】
ブロック1820は、平坦面上の対象物の1つまたは複数の特徴点を取得するステップを含む。特徴点は、3D空間内の対象物の外面上の点の(たとえば、平坦面に対する)ロケーションを示す情報を含み得る。これらの特徴点は、たとえば、SLAMによって与えられる対象物の点群表現から導出され得る。
【０１０７】
ブロック1830において、対象物の見えない部分の形状が、表面情報および1つまたは複数の特徴点を使用して推定される。前に示したように、多様なアルゴリズムのうちのいずれかが、対象物の背面を推定するために使用され得る。これらのアルゴリズムは、推定をもたらすために、特徴点情報(たとえば、高さ、深さなど)と表面情報(たとえば、穴のロケーション、寸法など)とを組み合わせることができる。推定は、表面情報および1つまたは複数の特徴点を平坦面のフロントパラレルパースペクティブに変換するステップをさらに含み得る。いくつかの実施態様では、1つまたは複数の画像に関する姿勢情報が、表面情報および1つまたは複数の特徴点を平坦面のフロントパラレルパースペクティブに変換するステップにおいて使用され得る。推定は、対象物の(平坦面に対して)最高のおよび/または(1つまたは複数の撮られた画像のパースペクティブから)最も近い特徴点を決定するステップをさらに含み得る。推定は、特定の形状を含み得る。たとえば、推定は、スプライン表現、湾曲表現および/または平坦表現において対象物の背面を表すことができる。
【０１０８】
ブロック1840において、対象物のデジタル表現が、推定に基づいて構築される。上で示したように、デジタル表現は、対象物の推定された(すなわち、見えない)部分ならびに対象物の見える部分の表現を含み得る。次いで、デジタル表現は、対象物の見える部分に対する幾何学的形状をもたらすために特徴点を組み込むことができる。前に示したように、次いで、表現は、CVアプリケーションに送られてよく、および/またはそれによって利用されてよい。
【０１０９】
図19は、物理的光景の平坦面上の対象物のデジタル表現を構築するための方法1900の一実施形態を示す。方法1900の構成要素のうちの1つまたは複数を実行するための手段は、図20に関してさらに詳細に説明するハードウェアおよび/またはソフトウェア手段を含み得る。代替実施形態は、図示されている実施形態に対する代替形態を含む場合がある。方法1900の構成要素は、特定の順序で示されるが、異なる実施形態によれば、異なる順序で、かつ/または同時に実行され得る。さらに、多くの追加、省略、および/または他の変形が当業者には認識されよう。
【０１１０】
方法1900および本明細書で説明する他の技法は、オペレーティングシステムレベルまたはデバイスレベルにおいてハードウェアおよび/またはソフトウェアによって実行され得る。次いで、平坦面(すなわち、AR平面)および/または対象物の表現が、AR、CV、またはモバイルデバイスによって実行される他のアプリケーションに与えられ得る。表現は、多様な標準化フォーマットおよび/または独自仕様のフォーマット(たとえば、メッシュ(3D空間における三角形および/または多角形)など)のうちのいずれかにおいて与えられ得る。その上、表現は、実質的リアルタイムまたは準リアルタイムにおいて与えられ得、それによって、ARアプリケーションは、物理的光景の画像がモバイルデバイスによって撮られている間に、AR環境を表示することができる。
【０１１１】
ブロック1910において、コンピューティングデバイスの構成要素は、少なくとも1つの平坦面と平坦面上に配置された1つまたは複数の物理的対象物とを含む物理的光景についての情報を取得する。いくつかの例では、カメラは、物理的光景についての情報を捕捉し得る。他の例では、情報は、コンピューティングデバイスに与えられるかまたはコンピューティングデバイス上のバッファに記憶されるかのいずれかであり得る。ブロック1920において、コンピューティングデバイスの構成要素は、物理的光景内で平坦面を識別する。
【０１１２】
ブロック1930において、コンピューティングデバイスの構成要素は、平坦面に対応するAR平面を決定し、AR平面は、平坦面の少なくとも一部分を含み、平坦面上に配置された1つまたは複数の物理的対象物のうちの第1の対象物に関連する少なくとも1つの穴を取り囲む。いくつかの実施形態では、AR平面は、複数のセルを含み、複数のセルの各セルは、バーチャル対象物が第1の対象物と衝突することなく進むことができる領域を表す。
【０１１３】
いくつかの実施態様では、平坦面に対応するAR平面を決定するステップは、第1の対象物を含む物理的光景の少なくとも2つの画像を解析するステップと、物理的光景の少なくとも2つの画像の解析に基づいて、AR平面が物理的光景に対応し、物理的対象物に対応する少なくとも1つの領域を排除するようにAR平面を作成するステップとを含み得る。
【０１１４】
さらに、いくつかの実施態様では、物理的光景の少なくとも2つの画像を解析するステップは、第1のロケーションにおける物理的光景の、第1の対象物を含む第1の画像をカメラを使用して撮るステップと、カメラが第1のロケーションから第2のロケーションに移動した距離を決定するステップと、第2のロケーションにおける物理的光景の、第1の対象物を含む第2の画像をカメラを使用して撮るステップと、第1の画像と第2の画像とを使用して第1の対象物に対する深さ情報を決定するステップとを含み得る。
【０１１５】
いくつかの実施態様では、平坦面に対応するAR平面を決定するステップは、物理的光景内の平坦面の初期部分を識別するステップと、平坦面の追加部分を識別するステップとを含み得、追加部分の各々は、追加部分に関連する少なくとも1つの視覚特性または幾何学的特性と、平坦面の一部であるとすでに識別されている1つまたは複数の部分に関連する少なくとも1つの対応する視覚特性または幾何学的特性との間の類似性を決定することに基づいて平坦面の一部であるとして識別される。
【０１１６】
いくつかの態様では、平坦面の追加部分を識別するステップは、平坦面が存在する平坦領域のモデルを確立するステップと、平坦領域を複数のセルに区分するステップと、各セルを平坦面の潜在的な追加部分として評価するステップとを含み得る。いくつかの例では、各セルを評価するステップは、平坦面の追加部分として識別された各セルに対するステップを反復するステップと、平坦面の一部としてまだ識別されていない隣接セルを識別するステップと、識別された隣接セルの各々に対して、隣接セルを平坦面の潜在的部分として評価するステップとを含む。
【０１１７】
ブロック1940において、コンピューティングデバイスの構成要素は、AR平面についての情報に少なくとも部分的に基づいて第1の対象物に関連する1つまたは複数の特性を決定する。いくつかの実施形態では、第1の対象物に関連する1つまたは複数の特性を決定するステップは、少なくとも1つまたは複数の特徴点を識別するステップにさらに基づき得る。いくつかの実施形態では、第1の対象物に関連する1つまたは複数の特性は、平坦面上の第1の対象物のロケーションに対応する1つまたは複数の領域を平坦面内で識別するステップと、1つまたは複数の凸領域および1つまたは複数の特徴点のロケーションに基づいて第1の対象物の1つまたは複数の外面を決定するステップとを含み得る。しかしながら、他の技法が、本発明の範囲から逸脱することなく使用されることがある。いくつかの実施形態では、第1の対象物のデジタル表現を構築するステップは、第1の対象物によって遮られた平坦面の一部分の形状に基づいて、対象物を平坦面に垂直な方向に押し出すステップを含み得る。
【０１１８】
ブロック1950において、コンピューティングデバイスの構成要素は、第1の対象物に関連する特性とAR平面に関連する情報とを使用して第1の対象物の3次元(3D)モデルを生成する。いくつかの態様では、第1の対象物の3Dモデルを生成するステップは、第1の対象物の1つまたは複数の特徴点を取得するステップであって、1つまたは複数の特徴点の各特徴点が第1の対象物の外面上の点の、平坦面に対するロケーションを示す、取得するステップと、第1の対象物の見えない部分の形状を、平坦面に関連する情報と1つまたは複数の特徴点とを使用して推定するステップと、その推定に基づいて3D再構築対象物を構築するステップとを含み得る。いくつかの態様では、第1の対象物の見えない部分の形状を推定するステップは、スプライン表現、射影対称性対象物表現、平坦表現、または湾曲表現など、1つまたは複数の表現技法を使用するステップを含み得る。図15A、図15B、図16、図17、および前に説明した任意の他の図面に関連して説明した技法は、第1の対象物の3次元(3D)モデルを生成するために使用され得る。
【０１１９】
ブロック1960において、コンピューティングデバイスの構成要素が、AR平面および第1の対象物の3Dモデルを含むAR環境のデジタル表現を生成する。
【０１２０】
図20は、いくつかの実施形態による、光景を表すために使用され得るデバイスの潜在的な一実装形態を説明する。一実施形態では、図1で説明するデバイス102は、具体的に説明したプロセス300の詳細によって実施され得る。図20に示すデバイス2000の実施形態では、カメラ2021および画像処理モジュール2022などの専用モジュールは、提案された方法を使用して画像を撮って処理するために必要な機能を含み得る。カメラ2021および画像処理モジュール2022は、デバイス2000の様々な他のモジュールと対話するために実装され得る。たとえば、組み合わされた画像が、ディスプレイ出力2003に出力され得る。加えて、画像処理モジュールは、ユーザ入力モジュール2006からのユーザ入力を介して制御され得る。ユーザ入力モジュール2006は、表された光景に関するユーザ選好を規定するため、または光景内の初期化目標を識別するために、入力を受けることができる。メモリ2020は、画像を記憶するように構成され、同じく、カメラおよびデバイスがどのように動作するかを決定する設定および命令を記憶することができる。
【０１２１】
図20に示す実施形態では、デバイスは、モバイルデバイスであってよく、いくつかの構成要素において動作を実施するための命令を実行するように構成されたプロセッサ2010を含んでよく、たとえば、ポータブル電子デバイス内の実装に適した汎用プロセッサまたはマイクロプロセッサであってよい。したがって、プロセッサ2010は、本明細書で説明するカメラおよび画像処理モジュールを動作させるための特定のステップのいずれかまたはすべてを実施することができる。プロセッサ2010は、モバイルデバイス2000内の複数の構成要素と通信可能に結合される。この通信可能結合を実現するために、プロセッサ2010は、バス2060を介して他の例示された構成要素と通信することができる。バス2060は、モバイルデバイス2000内でデータを転送するように適合された任意のサブシステムであり得る。バス2060は、複数のコンピュータバスであってよく、データを転送するための追加の回路を含む。
【０１２２】
メモリ2020は、プロセッサ2010に接続され得る。いくつかの実施形態では、メモリ2020は、短期ストレージと長期ストレージの両方を提供し、実際には、いくつかのユニットに分割され得る。ユーザの選択に応じて、短期メモリが、解析後に廃棄され得る画像を記憶してよく、またはすべての画像が、長期記憶装置に記憶されてもよい。メモリ2020は、スタティックランダムアクセスメモリ(SRAM)および/もしくはダイナミックランダムアクセスメモリ(DRAM)など、揮発性であってよく、かつ/または読取り専用メモリ(ROM)、フラッシュメモリなど、不揮発性であってもよい。さらに、メモリ2020は、セキュアデジタル(SD)カードなど、取外し可能記憶デバイスを含み得る。したがって、メモリ2020は、モバイルデバイス2000用のコンピュータ可読命令、データ構造、プログラムモジュール、および他のデータのストレージを提供する。いくつかの実施形態では、メモリ2020は、異なるハードウェアモジュールに分散され得る。
【０１２３】
いくつかの実施形態では、メモリ2020は、複数のアプリケーション2026を記憶する。アプリケーション2026は、プロセッサ2010によって実行されるべき特定の命令を含む。代替実施形態では、他のハードウェアモジュールが、いくつかのアプリケーションまたはアプリケーションの一部をさらに実行し得る。メモリ2020は、いくつかの実施形態に従って走査を実施するモジュール用のコンピュータ可読命令を記憶するのに使うことができ、データベースの一部として簡潔なオブジェクト表現を記憶することもできる。
【０１２４】
いくつかの実施形態では、メモリ2020はオペレーティングシステム2023を含む。オペレーティングシステム2023は、アプリケーションモジュールによって与えられる命令の実行を開始し、かつ/または他のハードウェアモジュールならびにワイヤレストランシーバ2012およびリンク2016を使い得る通信モジュールとのインターフェースを管理するように動作可能であり得る。オペレーティングシステム2023は、スレッディングと、リソース管理と、データ記憶制御と、他の類似の機能性とを含めて、モバイルデバイス2000の構成要素を通して他の動作を実施するように適合され得る。
【０１２５】
いくつかの実施形態では、モバイルデバイス2000は、複数の他のハードウェアモジュール2001を含む。その他のハードウェアモジュール2001の各々は、モバイルデバイス2000内の物理モジュールである。しかしながら、ハードウェアモジュール2001の各々は、構造として永続的に構成されるが、ハードウェアモジュールのそれぞれは、特定の機能を実施するように一時的に構成され得るか、または一時的にアクティブ化され得る。
【０１２６】
他の実施形態が、デバイス2000に組み込まれたセンサを含み得る。センサ2062の一例は、たとえば、加速度計、Wi-Fiトランシーバ、衛星ナビゲーションシステム受信機(たとえば、GPSモジュール)、圧力モジュール、温度モジュール、音声出力および/または入力モジュール(たとえば、マイクロフォン)、カメラモジュール、近接センサ、代替回線サービス(ALS)モジュール、容量性タッチセンサ、近距離通信(NFC)モジュール、Bluetooth（登録商標）トランシーバ、セルラートランシーバ、磁力計、ジャイロスコープ、慣性センサ(たとえば、加速度計とジャイロスコープとを結合するモジュール)、周辺光センサ、相対湿度センサ、または知覚出力を提供するように、かつ/もしくは知覚入力を受信するように動作可能な任意の他の類似のモジュールであってよい。いくつかの実施形態では、センサ2062の1つまたは複数の機能は、ハードウェア、ソフトウェア、またはファームウェアとして実施され得る。さらに、本明細書に記載するように、加速度計、GPSモジュール、ジャイロスコープ、慣性センサ、または他のそのようなモジュールなど、いくつかのハードウェアモジュールが、追加の情報を提供するためにカメラおよび画像処理モジュールとともに使用され得る。いくつかの実施形態では、ユーザは、画像を解析する方法を選択するために、ユーザ入力モジュール2006を使用することができる。
【０１２７】
デバイス2000は、アンテナ2016およびワイヤレストランシーバ2012を、ワイヤレス通信に必要な他のどのハードウェア、ファームウェア、またはソフトウェアとも統合することができるワイヤレス通信モジュールなどの構成要素を含み得る。そのようなワイヤレス通信モジュールは、ネットワークおよびネットワークアクセスポイントなどのアクセスポイントを介して、データソースなど、様々なデバイスから信号を受信するように構成され得る。いくつかの実施形態では、簡潔なオブジェクト表現が、リモートデータベースに記憶されるとともに、デバイスがオブジェクト認識機能性を実行するとき、複数の他のデバイスによって使われるために、サーバコンピュータ、他のモバイルデバイス、または他のネットワーク化コンピューティングデバイスに通信され得る。
【０１２８】
他のハードウェアモジュールおよびメモリ2020中のアプリケーションに加えて、モバイルデバイス2000は、ディスプレイ出力2003と、ユーザ入力モジュール2006とを有し得る。ディスプレイ出力2003は、モバイルデバイス2000からの情報をユーザにグラフィカルに提示する。この情報は、1つもしくは複数のアプリケーションモジュール、1つもしくは複数のハードウェアモジュール、それらの組合せ、または(たとえば、オペレーティングシステム2023によって)ユーザ用のグラフィカルコンテンツを分解するための任意の他の適切な手段から導出され得る。ディスプレイ出力2003は、液晶ディスプレイ(LCD)技術、発光ポリマーディスプレイ(LPD)技術、または何らかの他のディスプレイ技術であってよい。いくつかの実施形態では、ディスプレイモジュール2003は、容量性または抵抗性のタッチスクリーンであり、ユーザとの触覚および/または触知性接触に反応し得る。そのような実施形態において、ディスプレイ出力2003は、マルチタッチセンシティブディスプレイを備え得る。次いで、ディスプレイ出力2003は、警報、設定、しきい値、ユーザインターフェース、または他のそのような制御など、カメラ2021または画像処理モジュール2022に関連する任意の数の出力を表示するために使用され得る。
【０１２９】
上記で説明した方法、システム、およびデバイスは、例である。様々な実施形態は、様々な手順または構成要素を、適宜、省略し、置換し、または加えることができる。たとえば、代替構成では、説明する本方法は、説明する順序とは異なる順序で実施されてもよく、ならびに/または、様々なステージが加えられ、省略され、および/もしくは組み合わされてもよい。さらに、いくつかの実施形態に関して説明された特徴が、様々な他の実施形態で組み合わされ得る。実施形態の相異なる態様および要素が同様に組み合わされ得る。
【０１３０】
実施形態の完全な理解を与えるために、説明に具体的な詳細が与えられている。しかし、実施形態は、いくつかの特定の詳細なしに実施され得る。たとえば、実施形態を不明瞭することを避けるために、周知の回路、プロセス、アルゴリズム、構造、および技法が、不要な詳細なしに言及された。この説明は、例示的な実施形態のみを提供し、様々な実施形態の範囲、適用可能性、または構成を限定することは意図されない。むしろ、実施形態の前述の説明は、実施形態を実施するための権能を付与する記載を当業者に提供する。様々な実施形態の趣旨および範囲から逸脱することなく、要素の機能および構成に様々な変更を行うことができる。
【０１３１】
また、いくつかの実施形態について、プロセス矢印を用いて、フローの形で示され得るプロセスとして説明した。各々は動作を順次プロセスとして説明するが、動作の多くは、並列または同時に実施され得る。加えて、動作の順序は並べ替えられ得る。プロセスは、図に含まれていない追加のステップを有し得る。さらに、本方法の実施形態は、ハードウェア、ソフトウェア、ファームウェア、ミドルウェア、マイクロコード、ハードウェア記述言語、またはそれらの任意の組合せによって実装され得る。ソフトウェア、ファームウェア、ミドルウェア、またはマイクロコードで実装されるとき、関連するタスクを実施するプログラムコードまたはコードセグメントは、記憶媒体などのコンピュータ可読媒体に記憶され得る。プロセッサは、関連するタスクを実施し得る。さらに、上記要素は単に、より大きいシステムの構成要素であってよく、ここで他の規則が、様々な実施形態のアプリケーションに優先するか、またはそうでなければ修正し、任意の数のステップが、どの実施形態の要素も実装される前、最中、または後に始められ得る。
【０１３２】
本明細書で説明する方法は、ソフトウェアで実施されてよいことに留意されたい。ソフトウェアは、一般に、非一時的記憶デバイス(たとえば、メモリ)に記憶されてよく、プロセッサ(たとえば、汎用プロセッサ、デジタル信号プロセッサなど)によって実行されてよい。
【０１３３】
上記で説明した方法、システム、およびデバイスは、例である。様々な構成は、様々な手順または構成要素を適宜、省略、置換、または追加し得る。たとえば、代替の構成では、本方法は、説明した順序とは異なる順序で実行され得、かつ/または様々なステージが、追加、省略、および/もしくは連結され得る。いくつかの構成に関して説明された特徴は、様々な他の構成で組み合わされてよい。構成の様々な態様および要素は同様の方式で組み合わされ得る。要素の多くは例であり、本開示の範囲または特許請求の範囲を限定しない。
【０１３４】
例示的な構成(実装形態を含む)の完全な理解をもたらすために、具体的な詳細が説明において与えられている。しかしながら、構成はこれらの具体的な詳細を伴わずに実施され得る。たとえば、構成を不明瞭にするのを避けるために、既知の回路、プロセス、アルゴリズム、構造、および技法は、不必要な詳細を伴わずに示されてきた。この説明は、例示的な構成のみを提供し、特許請求の範囲の範囲、適用可能性、または構成を限定しない。むしろ、これらの構成の上述の説明は、説明した技法を実装するための有効な説明を当業者に提供することになる。本開示の趣旨または範囲から逸脱することなく、要素の機能および構成に様々な変更を行うことができる。
【０１３５】
また、構成は、流れ図またはブロック図として示されるプロセスとして説明されることがある。各構成では動作を逐次プロセスとして記述し得るが、動作の多くを並行して実行するかあるいは同時に実行することができる。加えて、動作の順序は並べ替えられ得る。プロセスは、図に含まれていない追加のステップを有し得る。さらに、方法の例は、ハードウェア、ソフトウェア、ファームウェア、ミドルウェア、マイクロコード、ハードウェア記述言語、またはそれらの任意の組合せによって実装され得る。ソフトウェア、ファームウェア、ミドルウェア、またはマイクロコードで実装されるとき、必要なタスクを実行するプログラムコードまたはコードセグメントは、記憶媒体などの非一時的コンピュータ可読媒体に記憶され得る。プロセッサは説明したタスクを実行し得る。
【０１３６】
いくつかの例示的な構成について説明してきたが、本開示の趣旨から逸脱することなく、様々な変更、代替構造、および均等物が使用され得る。たとえば、上記の要素は、より大きいシステムの構成要素であり得、他の規則が、本発明の適用例よりも優先されるか、または本発明の適用例を変更し得る。また、上記の要素が考慮される前に、その間に、またはその後に、いくつかのステップが行われ得る。
【符号の説明】
【０１３７】
100  拡張現実(AR)システム
102  コンピューティングデバイス
104  テーブル
106  3次元のキャラクタ
200  物理的光景
210  テーブル、平坦面
215  物理的対象物
217  画像目標、対象物
230  ディスプレイ
310  AR平面
315  三角形のメッシュ、線
320  穴
502  点
600  システム
610  同時位置推定およびマッピング(SLAM)プロセスエンジン
620  表面マッピングエンジン
630  点群クラスタ化エンジン
640  対象物モデリングエンジン
650  AR平面構築エンジン
660  AR平面実装アプリケーション
710-1  基準点
710-2  基準点
802  基準点
804  線
1102  黒一色の表面
1104  穴
1202  幾何学的モデル
1510-A  穴
1510-B  修正された穴
1520-A  第2の部分
1520-B  低減された第2の部分
1530  第1の部分
1610  対象物215を囲む黒い輪郭線
1615  投影される部分
1710-1  特徴点
1710-2  特徴点
1720  平面
2000  デバイス、コンピューティングデバイス
2001  ハードウェアモジュール
2003  ディスプレイ出力
2006  ユーザ入力モジュール
2010  プロセッサ、汎用プロセッサ
2012  ワイヤレストランシーバ
2016  アンテナ、リンク
2020  メモリ
2021  カメラ
2022  画像処理モジュール
2023  オペレーティングシステム
2026  アプリケーション
2060  バス
2062  センサ
【図１】
0006423435.tif 000002
【図２】
0006423435.tif 000003
【図３】
0006423435.tif 000004
【図４】
0006423435.tif 000005
【図５Ａ】
0006423435.tif 000006
【図５Ｂ】
0006423435.tif 000007
【図６】
0006423435.tif 000008
【図７】
0006423435.tif 000009
【図８】
0006423435.tif 000010
【図９】
0006423435.tif 000011
【図１０】
0006423435.tif 000012
【図１１】
0006423435.tif 000013
【図１２】
0006423435.tif 000014
【図１３】
0006423435.tif 000015
【図１４】
0006423435.tif 000016
【図１５Ａ】
0006423435.tif 000017
【図１５Ｂ】
0006423435.tif 000018
【図１６】
0006423435.tif 000019
【図１７】
0006423435.tif 000020
【図１８】
0006423435.tif 000021
【図１９】
0006423435.tif 000022
【図２０】
0006423435.tif 000023