(57)【要約】  平らなオブジェクトの表現を構築するための方法、システム、コンピュータ可読媒体、および装置が提示される。一部の実施形態において、平らなオブジェクトの表現を構築するための技術が開示される。一部の実施形態によれば、平らなオブジェクトの表現を構築するための方法が、見る位置から撮影された物理的シーンのデプス画像を取得するステップを含む場合がある。デプス画像は、複数のデプス値を含むとともに、物理的シーン内の複数の点に対応する場合がある。本方法は、平らなオブジェクトがそれに沿って位置付けられると推定される平らな表面を特定するステップをさらに含む場合がある。さらに、本方法は、サポートマップを構築するステップを含む場合がある。さらに、本方法は、遮蔽マップを構築するステップであって、遮蔽マップが、平らなオブジェクトがない平らな表面の部分を示すステップを含む場合がある。その後、本方法は、遮蔽マップを用いて平らなオブジェクトの少なくとも1つの境界の表現を構築するステップを含む場合がある。
2016534466.tif 000002
【特許請求の範囲】
【請求項１】
平らなオブジェクトの表現を構築するための方法であって、
見る位置から撮影された物理的シーンのデプス画像を取得するステップであって、前記デプス画像が、複数のデプス値を含むとともに、前記物理的シーン内の複数の点に対応し、各デプス値が、前記見る位置から前記物理的シーン内の前記複数の点のうちの1つまでの距離を示す、ステップと、
平らな表面を特定するステップであって、前記平らなオブジェクトが前記平らな表面に沿って位置付けられると推定される、ステップと、
サポートマップを構築するステップであって、前記サポートマップが、前記平らなオブジェクトによって占められる前記平らな表面の部分および前記平らなオブジェクトの上に載っているオブジェクトのあり得る表面を示す、ステップと、
遮蔽マップを構築するステップであって、前記遮蔽マップが、前記平らなオブジェクトがない前記平らな表面の部分を示す、ステップと、
前記遮蔽マップおよび前記サポートマップを用いて前記平らなオブジェクトの少なくとも1つの境界の表現を構築するステップとを含む、方法。
【請求項２】
前記平らなオブジェクトが、前記物理的シーン内のテーブルトップである、請求項1に記載の方法。
【請求項３】
前記遮蔽マップを構築するステップが、
前記平らな表面を複数のセルに区切るステップと、
各セルに関して、前記見る位置から広がり、前記平らな表面において前記セルを横切るのに十分なだけ大きなデプス値を有する点の数を数えるステップとを含む、請求項1に記載の方法。
【請求項４】
前記サポートマップを構築するステップが、
前記平らな表面を複数のセルに区切るステップと、
各セルに関して、前記見る位置から前記セルまでまたは前記セルの上の空間の垂直なカラム内の位置まで広がるようにデプス値を有する点の数を数えるステップとを含む、請求項1に記載の方法。
【請求項５】
前記遮蔽マップおよび前記平らなオブジェクトの前記少なくとも1つの境界に基づいて遮蔽傾きマップを構築するステップと、
前記サポートマップおよび前記平らなオブジェクトの前記少なくとも1つの境界に基づいてサポート傾きマップを構築するステップと、
前記遮蔽傾きマップおよび前記サポート傾きマップに基づいて前記平らなオブジェクトの境界に関連するセグメントを分類するステップとをさらに含む、請求項1に記載の方法。
【請求項６】
前記平らなオブジェクトの前記境界に関連する前記セグメントを分類するステップが、
線分を前記サポートマップに射影するステップと、
前記線分を前記遮蔽マップに射影するステップと、
前記射影された線分が前記平らなオブジェクトの真の端と一致するかどうかを判定するステップとを含む、請求項5に記載の方法。
【請求項７】
前記デプス画像が、RGBデプスカメラを用いて取得される、請求項1に記載の方法。
【請求項８】
平らなオブジェクトの表現を構築するためのデバイスであって、
メモリと、
見る位置から撮影された物理的シーンのデプス画像を取得するためのカメラであって、前記デプス画像が、複数のデプス値を含むとともに、前記物理的シーン内の複数の点に対応し、各デプス値が、前記見る位置から前記物理的シーン内の前記複数の点のうちの1つまでの距離を示す、カメラと、
1つまたは複数のプロセッサとを含み、前記1つまたは複数のプロセッサが、
平らな表面を特定することであって、前記平らなオブジェクトが前記平らな表面に沿って位置付けられると推定される、特定することと、
サポートマップを構築することであって、前記サポートマップが、前記平らなオブジェクトによって占められる前記平らな表面の部分および前記平らなオブジェクトの上に載っているオブジェクトのあり得る表面を示す、構築することと、
遮蔽マップを構築することであって、前記遮蔽マップが、前記平らなオブジェクトがない前記平らな表面の部分を示す、構築することと、
前記遮蔽マップおよび前記サポートマップを用いて前記平らなオブジェクトの少なくとも1つの境界の表現を構築することとを行うように構成される、デバイス。
【請求項９】
前記平らなオブジェクトが、前記物理的シーン内のテーブルトップである、請求項8に記載のデバイス。
【請求項１０】
前記遮蔽マップを構築することが、
前記平らな表面を複数のセルに区切ることと、
各セルに関して、前記見る位置から広がり、前記平らな表面において前記セルを横切るのに十分なだけ大きなデプス値を有する点の数を数えることとを含む、請求項8に記載のデバイス。
【請求項１１】
前記サポートマップを構築することが、
前記平らな表面を複数のセルに区切ることと、
各セルに関して、前記見る位置から前記セルまでまたは前記セルの上の空間の垂直なカラム内の位置まで広がるようにデプス値を有する点の数を数えることとを含む、請求項8に記載のデバイス。
【請求項１２】
前記1つまたは複数のプロセッサが、
前記遮蔽マップおよび前記平らなオブジェクトの前記少なくとも1つの境界に基づいて遮蔽傾きマップを構築することと、
前記サポートマップおよび前記平らなオブジェクトの前記少なくとも1つの境界に基づいてサポート傾きマップを構築することと、
前記遮蔽傾きマップおよび前記サポート傾きマップに基づいて前記平らなオブジェクトの境界に関連するセグメントを分類することとを行うように構成される、請求項8に記載のデバイス。
【請求項１３】
前記平らなオブジェクトの前記境界に関連する前記セグメントを分類することが、
線分を前記サポートマップに射影することと、
前記線分を前記遮蔽マップに射影することと、
前記射影された線分が前記平らなオブジェクトの真の端と一致するかどうかを判定することとを含む、請求項12に記載のデバイス。
【請求項１４】
前記カメラが、RGBデプスカメラである、請求項8に記載のデバイス。
【請求項１５】
実行されるときに、デバイスに含まれる1つまたは複数のコンピューティングデバイスに、
見る位置から撮影された物理的シーンのデプス画像を取得することであって、前記デプス画像が、複数のデプス値を含むとともに、前記物理的シーン内の複数の点に対応し、各デプス値が、前記見る位置から前記物理的シーン内の前記複数の点のうちの1つまでの距離を示す、取得することと、
平らな表面を特定することであって、前記平らなオブジェクトが前記平らな表面に沿って位置付けられると推定される、特定することと、
サポートマップを構築することであって、前記サポートマップが、前記平らなオブジェクトによって占められる前記平らな表面の部分および前記平らなオブジェクトの上に載っているオブジェクトのあり得る表面を示す、構築することと、
遮蔽マップを構築することであって、前記遮蔽マップが、前記平らなオブジェクトがない前記平らな表面の部分を示す、構築することと、
前記遮蔽マップおよび前記サポートマップを用いて前記平らなオブジェクトの少なくとも1つの境界の表現を構築することと
を行わせる、平らなオブジェクトの表現を構築するためのコンピュータが実行可能な命令を記憶する、1つまたは複数の非一時的コンピュータ可読記録媒体。
【請求項１６】
前記平らなオブジェクトが、前記物理的シーン内のテーブルトップである、請求項15に記載の非一時的コンピュータ可読記録媒体。
【請求項１７】
前記遮蔽マップを構築することが、
前記平らな表面を複数のセルに区切ることと、
各セルに関して、前記見る位置から広がり、前記平らな表面において前記セルを横切るのに十分なだけ大きなデプス値を有する点の数を数えることとを含む、請求項15に記載の非一時的コンピュータ可読記録媒体。
【請求項１８】
前記サポートマップを構築することが、
前記平らな表面を複数のセルに区切ることと、
各セルに関して、前記見る位置から前記セルまでまたは前記セルの上の空間の垂直なカラム内の位置まで広がるようにデプス値を有する点の数を数えることとを含む、請求項15に記載の非一時的コンピュータ可読記録媒体。
【請求項１９】
前記コンピュータが実行可能な命令が、実行されるときに、前記デバイスに含まれる前記1つまたは複数のコンピューティングデバイスに、さらに、
前記遮蔽マップおよび前記平らなオブジェクトの前記少なくとも1つの境界に基づいて遮蔽傾きマップを構築させ、
前記サポートマップおよび前記平らなオブジェクトの前記少なくとも1つの境界に基づいてサポート傾きマップを構築させ、
前記遮蔽傾きマップおよび前記サポート傾きマップに基づいて前記平らなオブジェクトの境界に関連するセグメントを分類させる、請求項15に記載の非一時的コンピュータ可読記録媒体。
【請求項２０】
前記平らなオブジェクトの前記境界に関連する前記セグメントを分類することが、
線分を前記サポートマップに射影することと、
前記線分を前記遮蔽マップに射影することと、
前記射影された線分が前記平らなオブジェクトの真の端と一致するかどうかを判定することとを含む、請求項19に記載の非一時的コンピュータ可読記録媒体。
【請求項２１】
前記デプス画像が、RGBデプスカメラを用いて取得される、請求項15に記載の非一時的コンピュータ可読記録媒体。
【請求項２２】
平らなオブジェクトの表現を構築するための装置であって、
見る位置から撮影された物理的シーンのデプス画像を取得するための手段であって、前記デプス画像が、複数のデプス値を含むとともに、前記物理的シーン内の複数の点に対応し、各デプス値が、前記見る位置から前記物理的シーン内の前記複数の点のうちの1つまでの距離を示す、手段と、
平らな表面を特定するための手段であって、前記平らなオブジェクトが前記平らな表面に沿って位置付けられると推定される、手段と、
サポートマップを構築するための手段であって、前記サポートマップが、前記平らなオブジェクトによって占められる前記平らな表面の部分および前記平らなオブジェクトの上に載っているオブジェクトのあり得る表面を示す、手段と、
遮蔽マップを構築するための手段であって、前記遮蔽マップが、前記平らなオブジェクトがない前記平らな表面の部分を示す、手段と、
前記遮蔽マップおよび前記サポートマップを用いて前記平らなオブジェクトの少なくとも1つの境界の表現を構築するための手段とを含む、装置。
【請求項２３】
前記平らなオブジェクトが、前記物理的シーン内のテーブルトップである、請求項22に記載の装置。
【請求項２４】
前記遮蔽マップを構築することが、
前記平らな表面を複数のセルに区切るための手段と、
各セルに関して、前記見る位置から広がり、前記平らな表面において前記セルを横切るのに十分なだけ大きなデプス値を有する点の数を数えることとを含む、請求項22に記載の装置。
【請求項２５】
前記サポートマップを構築することが、
前記平らな表面を複数のセルに区切る手段と、
各セルに関して、前記見る位置から前記セルまでまたは前記セルの上の空間の垂直なカラム内の位置まで広がるようにデプス値を有する点の数を数えることとを含む、請求項22に記載の装置。
【請求項２６】
前記遮蔽マップおよび前記平らなオブジェクトの前記少なくとも1つの境界に基づいて遮蔽傾きマップを構築するための手段と、
前記サポートマップおよび前記平らなオブジェクトの前記少なくとも1つの境界に基づいてサポート傾きマップを構築するための手段と、
前記遮蔽傾きマップおよび前記サポート傾きマップに基づいて前記平らなオブジェクトの境界に関連するセグメントを分類するための手段とをさらに含む、請求項22に記載の装置。
【請求項２７】
前記平らなオブジェクトの前記境界に関連する前記セグメントを分類することが、
線分を前記サポートマップに射影することと、
前記線分を前記遮蔽マップに射影することと、
前記射影された線分が前記平らなオブジェクトの真の端と一致するかどうかを判定することとを含む、請求項26に記載の装置。
【請求項２８】
前記デプス画像が、RGBデプスカメラを用いて取得される、請求項22に記載の装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示の態様は、拡張現実(AR)に関する。より詳細には、本開示の態様は、AR環境内の平面の広がりを判定するためにサポートマップ(support map)および遮蔽マップ(occlusion map)を構築することに関する。
【背景技術】
【０００２】
拡張現実は、コンピュータによって生成された仮想オブジェクトによって拡張された現実世界の環境のビューを提供する。場合によっては、ARは、物理的な環境への仮想オブジェクトの重ね合わせを伴う。
【０００３】
RGBデプス(RGBD: RGB-Depth)カメラは、シーンの3次元(3D)ジオメトリを記述する点群を生成するための方法を提供する。RGBDカメラによって撮影された複数のデプス画像が、テーブルトップの表面またはより大きな部屋の環境の大きな3Dモデルを生成するために位置合わせされるとともに組み合わされる可能性がある。
【０００４】
しかし、多くのアプリケーションは、シーンの表面のサンプリングされた表現を必要とするに留まらない。たとえば、一部のアプリケーションは、点群を単一のオブジェクト(たとえば、物理的なテーブル)に対応するサブセットにセグメント分けすることを必要とする場合がある。モバイルデバイスの拡張現実アプリケーションに関して、テーブルトップの表面は、概してユーザがインタラクションする領域を定義するのでシーンの重要な部分である場合がある。定義された領域との適切なインタラクションのために、定義された領域に関連する境界が必要とされる場合がある。現在の方法は、境界が表面の真の境界であるのかまたは記録されたデータの境界であるに過ぎないのかを判定することができない可能性がある。
【０００５】
現在の方法は、テーブルトップの表面などの単一のオブジェクトに対応する点を抽出することにのみ注目する。現在の方法は、境界を見つけることができる可能性があるが、オブジェクトの物理的な境界と再構築の境界とのどちらであるかを決定しない。この区別は、アプリケーションにとって重要であり、たとえば、ゲームは、再構築の境界では大きくなり得るが、表面の物理的な境界では大きくなり得ないことを知っている必要がある。
【発明の概要】
【発明が解決しようとする課題】
【０００６】
したがって、拡張現実環境内でオブジェクトの表面の真の境界を正しく判定するニーズが存在する。
【課題を解決するための手段】
【０００７】
特定の実施形態は、AR環境内の平らなオブジェクトの表現を構築するためのシステムおよび方法を説明する。
【０００８】
一部の実施形態において、平らなオブジェクトの表現を構築するための方法は、見る位置から撮影された物理的シーンのデプス画像を取得するステップであって、デプス画像が、複数のデプス値を含むとともに、物理的シーン内の複数の点に対応し、各デプス値が、見る位置から物理的シーン内の複数の点のうちの1つまでの距離を示す、ステップを含む。本方法は、平らな表面を特定するステップであって、平らなオブジェクトが平らな表面に沿って位置付けられると推定される、ステップをさらに含む。本方法は、サポートマップを構築するステップであって、サポートマップが、平らなオブジェクトによって占められる平らな表面の部分および平らなオブジェクトの上に載っているオブジェクトのあり得る表面を示す、ステップも含む。加えて、本方法は、遮蔽マップを構築するステップであって、遮蔽マップが、平らなオブジェクトがない平らな表面の部分を示す、ステップを含む。本方法は、遮蔽マップおよびサポートマップを用いて平らなオブジェクトの少なくとも1つの境界の表現を構築するステップも含む。
【０００９】
一部の実施形態において、平らなオブジェクトは、物理的シーン内のテーブルトップである。
【００１０】
一部の実施形態において、遮蔽マップを構築するステップは、平らな表面を複数のセルに区切るステップと、各セルに関して、見る位置から広がり、平らな表面においてセルを横切るのに十分なだけ大きなデプス値を有する点の数を数えるステップとを含む。
【００１１】
一部の実施形態において、サポートマップを構築するステップは、平らな表面を複数のセルに区切るステップと、各セルに関して、見る位置からセルまでまたはセルの上の空間の垂直なカラム内の位置まで広がるようにデプス値を有する点の数を数えるステップとを含む。
【００１２】
一部の実施形態において、本方法は、遮蔽マップおよび平らなオブジェクトの少なくとも1つの境界に基づいて遮蔽傾きマップ(occlusion gradient map)を構築するステップをさらに含む。加えて、本方法は、サポートマップおよび平らなオブジェクトの少なくとも1つの境界に基づいてサポート傾きマップ(support gradient map)を構築するステップを含む。本方法は、遮蔽傾きマップおよびサポート傾きマップに基づいて平らなオブジェクトの境界に関連するセグメントを分類するステップも含む。
【００１３】
一部の実施形態において、平らなオブジェクトの境界に関連するセグメントを分類するステップは、線分をサポートマップに射影するステップと、線分を遮蔽マップに射影するステップと、射影された線分が平らなオブジェクトの真の端と一致するかどうかを判定するステップとを含む。
【００１４】
一部の実施形態において、デプス画像は、RGBデプスカメラを用いて取得される。
【００１５】
一部の実施形態において、平らなオブジェクトの表現を構築するためのデバイスは、メモリと、カメラと、1つまたは複数のプロセッサとを含む。カメラは、見る位置から撮影された物理的シーンのデプス画像を取得することであって、デプス画像が、複数のデプス値を含むとともに、物理的シーン内の複数の点に対応し、各デプス値が、見る位置から物理的シーン内の複数の点のうちの1つまでの距離を示す、取得することを行うように構成される。1つまたは複数のプロセッサは、平らな表面を特定することであって、平らなオブジェクトが平らな表面に沿って位置付けられると推定される、特定することと、サポートマップを構築することであって、サポートマップが、平らなオブジェクトによって占められる平らな表面の部分および平らなオブジェクトの上に載っているオブジェクトのあり得る表面を示す、構築することと、遮蔽マップを構築することであって、遮蔽マップが、平らなオブジェクトがない平らな表面の部分を示す、構築することと、遮蔽マップおよびサポートマップを用いて平らなオブジェクトの少なくとも1つの境界の表現を構築することとを行うように構成される。
【００１６】
一部の実施形態において、1つまたは複数の非一時的コンピュータ可読媒体は、実行されるときに、デバイスに含まれる1つまたは複数のコンピューティングデバイスに、平らな表面を特定することであって、平らなオブジェクトが平らな表面に沿って位置付けられると推定される、特定することと、サポートマップを構築することであって、サポートマップが、平らなオブジェクトによって占められる平らな表面の部分および平らなオブジェクトの上に載っているオブジェクトのあり得る表面を示す、構築することと、遮蔽マップを構築することであって、遮蔽マップが、平らなオブジェクトがない平らな表面の部分を示す、構築することと、遮蔽マップおよびサポートマップを用いて平らなオブジェクトの少なくとも1つの境界の表現を構築することとを行わせる、平らなオブジェクトの表現を構築するためのコンピュータが実行可能な命令を記憶する。
【００１７】
一部の実施形態において、平らなオブジェクトの表現を構築するための装置は、見る位置から撮影された物理的シーンのデプス画像を取得するための手段であって、デプス画像が、複数のデプス値を含むとともに、物理的シーン内の複数の点に対応し、各デプス値が、見る位置から物理的シーン内の複数の点のうちの1つまでの距離を示す、手段を含む。装置は、平らな表面を特定するための手段であって、平らなオブジェクトが平らな表面に沿って位置付けられると推定される、手段も含む。加えて、装置は、サポートマップを構築するための手段であって、サポートマップが、平らなオブジェクトによって占められる前記平らな表面の部分および平らなオブジェクトの上に載っているオブジェクトのあり得る表面を示す、手段を含む。装置は、遮蔽マップを構築するための手段であって、遮蔽マップが、平らなオブジェクトがない平らな表面の部分を示す、手段をさらに含む。装置は、遮蔽マップおよびサポートマップを用いて平らなオブジェクトの少なくとも1つの境界の表現を構築するための手段も含む。
【００１８】
本開示の態様は、例として示される。添付の図面において、同様の参照番号は、同様の要素を示す。
【図面の簡単な説明】
【００１９】
【図１】1つまたは複数の実施形態を組み込んでもよいシステムの簡略化された図である。
【図２Ａ】平らなオブジェクトの表現を構築するように構成されたモバイルデバイスまたは何らかのその他のデバイスの構成要素の実施形態を示す図である。
【図２Ｂ】モバイルデバイスの一部であるコンピュータ可読記録媒体の簡略化された図である。
【図３Ａ】RGBDカメラが1つもしくは複数の画像および/または3Dの点を用いるその他のデータを撮影することができる物理的シーンの例示的な図である。
【図３Ｂ】サポート面(support surface)の表現をさらに示す図3Aの物理的シーンの図である。
【図４Ａ】一部の実施形態によるサポートマップを示す図である。
【図４Ｂ】一部の実施形態による遮蔽マップを示す図である。
【図５Ａ】ヒートマップとしてレンダリングされたサポートマップの例の図である。
【図５Ｂ】ヒートマップとしてレンダリングされた遮蔽マップの例の図である。
【図６】一部の実施形態による改善ステップによって計算された凸包と凹形の輪郭との間の違いを示す図である。
【図７】一部の実施形態による境界のポリゴンの線分を分類する方法を示す図である。
【図８】平らなオブジェクトの表現を構築するための方法の実施形態を示す図である。
【図９】1つまたは複数の実施形態が実装される場合があるコンピューティングシステムの例を示す図である。
【発明を実施するための形態】
【００２０】
いくつかの例示的な実施形態が、以降、本明細書の一部を形成する添付の図面に関連して説明される。本開示の1つまたは複数の態様が実装される場合がある特定の実施形態が以降で説明されるが、本開示の範囲または添付の請求項の精神を逸脱することなくその他の実施形態が使用される可能性があり、様々な修正がなされる可能性がある。
【００２１】
図1は、1つまたは複数の実施形態を組み込んでもよいシステム10の簡略化された図を示す。
【００２２】
本発明の実施形態は、AR環境内の平面の広がり(たとえば、オブジェクトの物理的な境界)を判定するための技術を説明する可能性がある。場合によっては、本技術は、情報の2つのソースを使用する可能性がある。第1に、本技術は、RGBDカメラによって取得された3Dの点の測定値によってサポートされるオブジェクトのあり得る表面領域(たとえば、テーブルの表面領域)を探す場合がある。第2に、本技術は、その他の3Dの点の測定値を遮る可能性がある、あり得る表面領域(たとえば、テーブルの表面領域)を排除することができる。情報のこれら2つのソースを組み合わせることが、表面の真の広がりの推定および表面の真の物理的な境界の判定を可能にすることができる。
【００２３】
点群が、空間内で位置合わせされる複数のRGBD画像から生成され得る。点群は、座標系内のデータ点のセットであり、オブジェクトの外面を表すように意図される。場合によっては、RGBDの位置および向きが、共通の基準系内で知られる可能性がある。その後、3D点群が、個々のRGBD画像のすべてのデプスマップを共通の基準系に変換することによって生成され得る。共通の基準系におけるカメラの位置および向きを知ることによって、システムは、AR環境内のそれぞれの3Dの点に関する3Dの可視性の情報を持つことができる。
【００２４】
ここで図1を参照すると、ARシステム10が示されている。ARシステム10は、デバイス、たとえば、AR対応モバイルデバイス12およびオブジェクト14を含む。この特定の例において、オブジェクト14は、テーブルであってもよい。モバイルデバイス12は、カメラなどの入力感知ユニットおよびディスプレイを有する任意のコンピューティングデバイスである場合がある。本明細書において説明される機能はスマートフォンに限定されないが、ここでは、モバイルデバイス12はスマートフォンである。たとえば、モバイルデバイス12は、デジタルカメラ、カムコーダ、タブレットコンピュータ、携帯情報端末、ビデオゲームコンソール、ヘッドマウントディスプレイ(HMD)もしくはその他のウェアラブルディスプレイ、プロジェクタデバイス、RGBDカメラ、デプスカメラ、またはその他のデバイスである場合がある。さらに、モバイルデバイス12の代わりに、パーソナルコンピュータ(たとえば、デスクトップコンピュータ)、またはその他の非ハンドヘルドデバイス、もしくは通常はモバイルデバイスと呼ばれないデバイスなどのデバイスが、使用される可能性がある。モバイルデバイス12は、現実世界の物理的な環境内の物理オブジェクトの画像を撮影するためのカメラを含む。見る位置(viewing position)は、1つの特定の視点(たとえば、RGB、デプスカメラ、ソナー(SONAR)、レーザ(LASER)スキャン)または複数の視点(たとえば、深さを感知することができるステレオカメラ)からである可能性がある。加えて、モバイルデバイス12は、スタンドアロンのRGBカメラおよびスタンドアロンのデプスカメラなどの複数のカメラを含み得る。
【００２５】
本明細書において使用されるとき、点群(point cloud)は、モバイルデバイス12のカメラによって視野18内で可視である物理オブジェクトの少なくとも一部に対応する3次元空間内の点の集合である。点群は、たとえば、モバイルデバイス12の(後述される)カメラからの画像データに基づいてモバイルデバイス12のプロセッサによって実行される1つまたは複数の技術によって決定されてもよい。モバイルデバイス12は、物理的な環境の画像を撮影し、ここでは、オブジェクト14(たとえば、テーブル)の画像を撮影し、1つまたは複数の仮想オブジェクトによって補足されたさらなる画像を透明または半透明のディスプレイ上に表示することによって現実を拡張するように構成され、ここでは、3次元キャラクタ16が、オブジェクト14の画像の上に重ね合わされ、モバイルデバイス12のディスプレイ上に表示される。3次元キャラクタ16は、任意の形態の仮想オブジェクトであってよく、人型のキャラクタに限定されない。3次元キャラクタ16は、本明細書において詳細に説明されるように、オブジェクト14の表面上の様々な位置に移動することを許されてもよい。したがって、ARシステム10がテーブルの端を判定することが重要である。たとえば、ARシステム10は、仮想オブジェクトの移動をテーブル内に制限したい場合がある。
【００２６】
したがって、モバイルデバイス12は、以下にさらに詳細に説明される方法および技術を用いてオブジェクト14の表面の真の境界を判定する場合がある。
【００２７】
図2Aは、平らなオブジェクトの表現を構築するように構成されたモバイルデバイスまたは何らかのその他のデバイスの構成要素の実施形態を示す。
【００２８】
図2Aを参照すると、モバイルデバイス12(またはその他の形態のARデバイス)は、センサ20、センサプロセッサ22、1つまたは複数のカメラ24、カメラプロセッサ26、ディスプレイ28、グラフィックスプロセッサ30、タッチセンサ32、タッチセンサプロセッサ34、通信モジュール36、プロセッサ38、(非一時的)メモリ40、およびコンピュータ可読媒体46を含む場合がある。プロセッサ22、26、30、34、通信モジュール36、プロセッサ38、メモリ40、コンピュータ可読媒体46は、示されるようにバス42を通じて通信可能なように結合されるか、または直接結合されるかもしくは別の方法で結合されてもよい。プロセッサ22、26、30、34は、単一のプロセッサの一部であるか、またはメモリ40に記憶され、プロセッサ38によって実行されるソフトウェアコードの異なる部分によって実装されるか、または別個の専用のプロセッサであるか、またはこれらの組合せであってもよい(たとえば、プロセッサ22、26、30、34の1つもしくは複数が専用の1つのプロセッサもしくは複数のプロセッサであり、その他がプロセッサ38の一部である)。プロセッサ22、26、30、34、38は、1つもしくは複数の汎用プロセッサおよび/または(デジタル信号処理チップ、グラフィックスアクセラレーションプロセッサなどの)1つもしくは複数の専用プロセッサであってもよい。センサ20は、様々な感知されたパラメータの1つの指示および/または複数の指示、たとえば、モバイルデバイス12の向きに対する(モバイルデバイス12のデバイスの座標系に対する)重力の方向の指示を提供することができる。
【００２９】
センサ20およびセンサプロセッサ22は、モバイルデバイス12の向きを判定するように構成されてもよい。センサ20は、モバイルデバイス12の向きを判定する際に使用するための情報を感知するように構成された、向きセンサである。たとえば、センサ20は、ジャイロスコープ、1つもしくは複数の加速度計、慣性測定ユニット(IMU)、ならびに/またはその他の1つの種類のおよび/もしくはその他の複数のセンサなどの1つまたは複数の慣性センサを含む場合がある。センサプロセッサ22は、センサ20によって測定/収集されたデータを処理してモバイルデバイス12の向きを判定するように構成される。モバイルデバイス12が動かされる距離および/または方向などのその他の情報も、計算され得る。
【００３０】
カメラ24およびカメラプロセッサ26は、画像情報を撮影するとともに生成するように構成される。カメラ24は、拡張論理を用いて(拡張、たとえば、テキストまたはデザインが現実世界の表面上に置かれるようにして)拡張され得る現実世界のシーンの画像および/または動画を撮影するように構成される。カメラは、深さを感知することができるデプスカメラ、RGBデプスカメラ、ソナー、レーザスキャン、またはステレオカメラを含み得る。デプスカメラは、深さを測定するための異なる方法を有する可能性がある。カメラプロセッサ26は、カメラ26によって収集されたデータを処理して、データを拡張論理によって使用され得るフォーマットに変換するように構成される。カメラプロセッサ26は、ディスプレイ28上に表示するためにコンテンツを準備するために、カメラ24から収集されたデータに対して様々な種類の画像または動画処理を実行するように構成される。見る位置は、1つの特定の視点(たとえば、デプスカメラ、RGBデプスカメラ、ソナー、レーザスキャン)または複数の視点(たとえば、深さを感知することができるステレオカメラ)からである可能性がある。
【００３１】
ディスプレイ28およびグラフィックスプロセッサ30は、カメラ24によって撮影され、カメラプロセッサ26によって処理されたデータに基づくビジュアル情報を提供し、拡張論理によって生成された情報に基づくビジュアル情報を提供するように構成される。ディスプレイ28は、タッチセンサ32を含むタッチスクリーンインターフェースである可能性がある。グラフィックスプロセッサ30は、ディスプレイ28上に表示するためのグラフィカルなデータを生成するように構成される。グラフィックスプロセッサ30は、拡張論理によって提供された情報を用いて拡張された画像またはビデオコンテンツを表示するように構成される。
【００３２】
タッチセンサプロセッサ34は、タッチセンサ32によって出力されたデータを処理して、ユーザがタッチスクリーンにタッチするときを特定することができる。タッチセンサプロセス34は、タッチスクリーンの複数の指によるタッチを含む様々なタッチジェスチャを特定するように構成され得る。拡張論理は、タッチセンサプロセッサ34によって決定されたジェスチャ情報を用いて、少なくとも部分的に、ユーザ入力に応じて拡張がどのように反応すべきかを決定することができる。
【００３３】
通信モジュール36は、モバイルデバイス12が1つまたは複数のワイヤレスプロトコルを用いて通信することを可能にするように構成される。通信モジュール36は、モバイルデバイス12がデータを送信し、ワイヤレスアクセスポイントおよびその他のAR対応デバイスを含む近くのワイヤレスデバイスからデータを受信することを可能にするように構成される。通信モジュール36は、モデム、ワイヤレスネットワークカード、赤外線通信デバイス、(Bluetooth(登録商標)デバイスなどの近距離ワイヤレスデバイス、または802.11デバイス、WiFiデバイス、WiMaxデバイス、セルラー通信設備などの)ワイヤレス通信デバイスおよび/またはチップセットなどを含む場合がある。通信モジュール36は、データがネットワーク、その他のコンピュータシステム、および/またはその他のデバイスと交換されることを可能にしてもよい。
【００３４】
プロセッサ38は、センサプロセッサ22、カメラプロセッサ26、グラフィックスプロセッサ30、またはタッチセンサプロセッサ34のうちの1つまたは複数を制御するように構成される。センサプロセッサ22、カメラプロセッサ26、グラフィックスプロセッサ30、またはタッチセンサプロセッサ34のうちの1つまたは複数は、プロセッサ38によって実装されてもよい。
【００３５】
メモリ40は、AR対応モバイルデバイス12の様々な構成要素によって使用されるデータを記憶するための揮発性のおよび/または永続的な非一時的メモリを含む。メモリ40は、ローカルでおよび/またはネットワークを介してアクセスされ得るストレージ、ディスクドライブ、ドライブアレイ、光ストレージデバイス、プログラミング可能、フラッシュ更新可能などである可能性があるランダムアクセスメモリ("RAM")および/または読み出し専用メモリ("ROM")などのソリッドステートストレージデバイスを含む場合がある。そのようなストレージデバイスは、様々なファイルシステム、データベース構造などを限定なしに含む任意の適切なデータストレージを実装するように構成されてもよい。
【００３６】
メモリ40は、モバイルデバイス12に含まれるプロセッサのうちの1つまたは複数のためのプロセッサが読み取り可能なプロセッサ実行可能なソフトウェアプログラムコード44を記憶する。(説明はソフトウェアまたはプロセッサが機能を実行すると読める場合があるが)ソフトウェアコード44は後述される機能を実行するようにプロセッサを制御するための命令を含む。場合によっては、拡張論理は、メモリ40に記憶されたプロセッサ実行可能な命令として実装され得る。ソフトウェア44は、オペレーティングシステム、デバイスドライバ、実行可能ライブラリ、および/または本明細書において説明される方法を実施する場合がある1つもしくは複数のアプリケーションプログラムなどのその他のソフトウェアコード命令を含む。たとえば、本明細書において説明される1つまたは複数の手順は、プロセッサによって実行されるソフトウェアコード命令として実装される可能性がある。そのような命令は、本明細書において説明されるように多目的コンピュータ(またはその他のデバイス)に1つまたは複数の動作を実行させることができる。ソフトウェア44は、モバイルデバイス12内に組み込まれたメモリ40の取り外し不可能な部分に記憶される場合があり、またはコンパクトディスクなどの取り外し可能な媒体に記憶され、および/またはインストールパッケージで提供される場合がある。命令は、プロセッサによって直接実行可能である実行可能コードの形態をとる場合があり、または代替的に、(たとえば、様々な広く利用可能なコンパイラ、インストールプログラム、圧縮/解凍ユーティリティなどのいずれかを用いて)コンパイルおよび/もしくはインストールされると実行可能コードの形態をとるソースおよび/もしくはインストール可能なコードの形態をとる場合がある。
【００３７】
コンピュータ可読記録媒体46は、任意の磁気式、電子式、光学式、またはその他のコンピュータ可読記録媒体である可能性がある。コンピュータ可読記録媒体46は、以下にさらに詳細に説明される1つまたは複数のコードモジュールを含む場合がある。
【００３８】
図2Bは、モバイルデバイス12の一部であるコンピュータ可読記録媒体46の簡略化された図を示す。コンピュータ可読記録媒体46は、平らな表面特定モジュール210、サポートマップ構築モジュール220、遮蔽マップ構築モジュール230、および境界表現構築モジュール240を含むコードモジュールを含むコンピュータ可読コードを記憶する。
【００３９】
平らな表面特定モジュール210は、プロセッサ38によって実行されるときに、平らなオブジェクトがそれに沿って位置付けられると推定される平らな表面を特定するコードを含む。平らな表面特定モジュール210は、物理的シーンの撮影されたデプス画像にアクセスするためにカメラ24および/またはカメラプロセッサ26とのインターフェースをとってもよい。物理的シーンの撮影されたデプス画像にアクセスすると、平らな表面特定モジュール210は、画像を分析して物理的シーン内の平らな表面を特定する場合がある。一部の実施形態において、物理的シーン内の平らな表面の特定は、平らな表面特定モジュール210によって決定される、オブジェクトの表面がある場合がある空間内の基準平面に関する仮定または最善の推測であってもよい。物理的シーンの画像内の平らな表面は、3Dの点の測定値を利用することによって特定されてもよい。たとえば、基準法線(normal)方向が仮定されてもよく、すべての3Dの点がこの方向に射影されてもよい。この方向に沿った分布のピークが、これがほとんどの3Dの点がある場合がある点であるので選択されてもよい。一部の実施形態において、ピークの周りの区間内に投影するすべての3Dの点が選択され、3D平面がこのセットにしっかりと嵌まる。そして、結果として得られる平面パラメータが、テーブルトップの表面に関する平面の仮定を記述する。
【００４０】
サポートマップ構築モジュール220は、プロセッサ38によって実行されるときに、平らなオブジェクトによって占められる平らな表面の部分および平らなオブジェクトの上に載っているオブジェクトのあり得る表面を示すサポートマップを構築するコードを含む。サポートマップ構築モジュール220は、物理的シーン内で特定された平らな表面がある場所を判定するために平らな表面特定モジュールとのインターフェースをとってもよい。サポートマップ構築モジュール220によって生成されるサポートマップは、平らな表面特定モジュール210によって特定された3D平面の一部に広がる規則的な2Dグリッドによって定義される場合がある。マップは、それに入る場合がある各グリッドのセルに関する点の数を記憶する値の2次元行列であってもよい。構築されたサポートマップは、3D点群のどの点があり得るオブジェクトの表面上またはそれよりも上にあるかを記憶してもよい。サポートマップ構築モジュール220は、基準平面に沿ってグリッドのセルにそれぞれの3Dの点を射影してもよい。点が基準平面上またはそれよりも上にある場合、特定のセルに対応するサポートマップの値がインクリメントされてもよい。点が基準平面よりも下にある場合、いずれのグリッドのセルにも変更がなされない場合がある。
【００４１】
遮蔽マップ構築モジュール230は、プロセッサ38によって実行されるときに、平らなオブジェクトがない平らな表面の部分を示す遮蔽マップを構築するコードを含む。遮蔽マップは、2Dグリッド構造のどのセルがデプスカメラによって見られる3Dの点を遮る可能性があるかを記録してもよい。遮蔽マップ構築モジュール230は、光線をそれぞれの3Dの点とその3Dの点が見られたカメラの中心との間で基準平面と交差させてもよい。そして、どのセルに交差があるかについての判定がなされてもよい。交差がカメラの中心と3Dの点との間にある場合、特定のセルに対応する遮蔽マップの値がインクリメントされてもよく、そうでない場合、変更がなされなくてもよい。
【００４２】
境界表現構築モジュール240は、プロセッサ38によって実行されるときに、遮蔽マップおよびサポートマップを用いて平らなオブジェクトの少なくとも1つの境界の表現を構築するコードを含む。遮蔽マップは、遮蔽マップ構築モジュール230によって生成されている場合があり、サポートマップは、サポートマップ構築モジュール220によって構築されている場合がある。境界表現は、オブジェクトの表面に関連するすべての3Dの点に関して計算されてもよい。第1に、境界表現構築モジュール240は、すべての3Dの点を推定された平面に射影し、2Dの平面の点のセットを取得する。次に、境界表現構築モジュール240は、点のセットの凸包を計算する。凸包は、点のセットによって包含される領域を過大に見積もる可能性があるので、2Dの平面の点の凹形の輪郭を形成するポリゴンの辺を挿入することによって繰り返し改善される。境界表現の改善および構築は、以下にさらに詳細に説明される。
【００４３】
モバイルデバイス12に関連して上述された要素のうちの1つまたは複数は、省略される場合がある。たとえば、通信モジュール36ならびに/またはタッチセンサ32およびタッチセンサプロセッサ34が、省略される場合がある。さらに、追加的な要素が、一部の実施形態に含まれる場合がある。プロセッサ22、26、30、34のうちの1つもしくは複数は、プロセッサ38と組み合わされるかもしくはプロセッサ38に実装される場合があり、および/またはプロセッサ22、26、30、34のうちの1つもしくは複数の一部のもしくはすべての機能は、メモリ40に記憶された命令によって実装される場合がある。
【００４４】
図3Aは、赤緑青(RGB)デプスRGBDカメラが1つもしくは複数の画像および/または3Dの点を用いるその他のデータを撮影することができる物理的シーンの例示的な図である。RGBDカメラ305が、オブジェクト310(たとえば、テーブルトップ)と全体的な環境315(たとえば、テーブルの下の地面)の3Dの点307との両方の上の3Dの点を観測することができる。図3Aに示されるように、それぞれの3Dの点に関する3Dの可視性の情報が、3Dの点307とカメラの中心との間の真っ直ぐな視線306に基づく可能性がある。加えて、図3Aに示されるように、真っ直ぐな視線306は遮られない。
【００４５】
図3Bは、サポート面320の表現をさらに示す図3Aの物理的シーンの図である。場合によっては、テーブルトップの広がりおよび特性を推定するとき、3Dの点307は、テーブルの領域の一部をサポートするかまたはテーブルの領域の一部によって遮られるかのどちらかである可能性がある。
【００４６】
次のステップにおいて、システムは、サポート面320に対応する基準平面を定義することができる。たとえば、サポート面320は、図3A〜図3Bのテーブルトップの表面である可能性がある。場合によっては、サポート面320は基準法線方向を有し、すべての3Dの点をサポート面320の方向に射影することが仮定され得る。サポート面320の方向に沿った分布のピークは、基準平面になるように選択され得る。分布のピークは、3Dの点のほとんどがある場所である可能性がある。加えて、ピークの周りの区間内に投影するすべての3Dの点が選択され、3D平面が選択された3Dの点のセットにしっかりと嵌まる。したがって、結果として得られる平面パラメータが、テーブルトップの表面に関する平面の仮定を記述し得る。
【００４７】
図4Aおよび図4Bは、一部の実施形態による基準平面に関するサポート情報と遮蔽情報との両方を記録するための2つのマップを示す。マップは、サポート面320(たとえば、テーブルトップの表面)の位置の3D平面の一部に広がる規則的な2Dグリッドによって定義され得る。マップは、各グリッドに入る各グリッドのセルに関する点の数を記憶する値の2次元行列である可能性がある。マップは、上述のように、サポートマップ構築モジュール220によって構築されるサポートマップおよび遮蔽マップ構築モジュール230によって構築される遮蔽マップである場合がある。
【００４８】
図4Aは、一部の実施形態によるサポートマップを示す。サポートマップは、あり得るサポート面320(たとえば、テーブルの表面)上またはそれよりも上にある場合がある3D点群の点を記録することができる。たとえば、サポート面320を決定するために、RGBDカメラ305は、平面に沿ったそれぞれの3Dの点307をグリッドのセル415に垂直に射影する可能性がある。射影された点307が平面上またはそれよりも上にある場合(たとえば、図4Aの点405)、システムは、そのセルに対応するサポートマップの値をインクリメントしてもよい。代替的に、射影された点が平面よりも下にある場合(たとえば、図4Bの点410)、システムは、射影された点を無視してもよい。
【００４９】
図4Bは、一部の実施形態による遮蔽マップを示す。遮蔽マップは、2Dグリッド構造のどのセル415がカメラ305によって見られるときに3Dの点を遮るかを記録する。遮られる3Dの点を決定するために、システムは、光線をそれぞれの3Dの点307とカメラ305の中心との間で平面と交差させてもよい。そして、交差があるセル415が決定されてもよい。交差がカメラ305の中心と3Dの点との間にある場合、システムは、決定されたセル415に対応する遮蔽マップの値をインクリメントすることができる。代替的に、交差が3Dの点307とカメラ305の中心との間にない場合、システムは、遮蔽マップの値をインクリメントしなくてもよい。
【００５０】
図4Aに示されるように、3Dの点307の一部(たとえば、点405)は、テーブルの平面の上に射影され、そのセルに対応するサポートマップの値をインクリメントするために使用され得る。加えて、図4Bに示されるように、3Dの点の一部(たとえば、点410)は、テーブルの平面の下に射影され、そのセル415に対応する遮蔽マップの値をインクリメントするために使用され得る。平面の下の3Dの点307(たとえば、点410)への光線は、遮蔽を判定するために平面と交差される。さらに、グリッドのセル415内の値は、それぞれの3Dの点307に関するサポートまたは遮蔽を数えるために更新される。
【００５１】
図5Aおよび図5Bは、一部の実施形態によるサポートヒートマップ(support heat map)および遮蔽ヒートマップ(occlusion heat map)の例を示す。
【００５２】
図5Aは、ヒートマップとしてレンダリングされたサポートマップの例である。図5Bは、ヒートマップとしてレンダリングされた遮蔽マップの例である。この例において、比較的明るい陰影510は、0までの小さい値を示し、一方、比較的暗い陰影520は、高い値を示す。図5Aに示されるサポートマップにおいて、陰影に基づいて、システムは、長方形のテーブルの形状の一部およびテーブルの上のいくつかのオブジェクトを決定することができる。加えて、図5Bに示される遮蔽マップは、その他の測定値を遮るテーブルの端を丁度超えた領域を示す。
【００５３】
図5Aと図5Bとの両方において、左下角の領域530内の境界は、十分な情報を持っておらず、これは、左下角の領域内の3Dの点の欠如が原因である可能性がある。
【００５４】
テーブルの輪郭の表現を取得するために、システムは、テーブルの表面に関連付けられたすべての3Dの点に関するポリゴンの輪郭を計算することができる。第1に、システムは、すべての3Dの点を推定された平面に射影し、2次元の平面の点のセットを取得する場合がある。それから、システムは、2Dの平面の点のセットの凸包を計算してもよい。場合によっては、凸包は、2Dの平面の点のセットによって包含される領域を過大に見積もる場合があり、したがって、システムは、2Dの平面の点のセットの凹形の輪郭を形成するポリゴンの辺を挿入することによって凸包を繰り返し改善し、小さくすることができる。
【００５５】
たとえば、凸包の改善ステップは、それぞれのポリゴンのセグメントを順番に見る可能性がある。システムは、2Dの点のセットのすべての点に関して、ポリゴンのセグメントの2つの端点A、Bおよび2Dの点のセットからの第3の点Cと交差する円を計算することができる。そして、システムは、最も大きな半径を有し、中心がセグメントの反対側にある円を生成する2Dの点を決定する場合がある。そのとき、アルファシェイプ(alpha shape)の理論が、いかなるその他の点もその円内にないことを保証する。したがって、システムは、AをCに接続し、CをBに接続する2つの新しいセグメントによって元のセグメントを置き換えることができる。結果として得られる改善されたポリゴンの輪郭は、今や、いかなる2Dの点も除外せずに前よりもきつく2Dの点のセットを包み込む場合がある。
【００５６】
図6は、一部の実施形態による改善ステップによって計算された凸包610(太線)と凹形の輪郭620(細線)との間の違いを示す。この例において、入力された2D点群630は、菱形によって示される。結果として得られる輪郭は、上述のように、テーブルの現在の再構築の境界を示すポリゴンを定義し得る。
【００５７】
再構築の境界のどの部分が真のオブジェクトの境界と一致するかを判定するために、システムは、上述のステップにおいて構築されたサポートマップおよび遮蔽マップに対して境界をテストすることができる。
【００５８】
図7は、一部の実施形態による境界のポリゴンの線分を分類する方法を示す。線分(たとえば、線分705、710)は、マップ(たとえば、サポートマップおよび遮蔽マップ)に射影され得る。2つのマップ(陰影の付いた領域)の局所的な傾きが、線が真のオブジェクトの境界にあるか否かを決定する。この例において、左の領域内の線分710は境界になく、一方、より下の領域内の線分705は境界にある。より下の領域内の線分705は、両方の傾きが存在し、右方向を指すので境界にある。
【００５９】
再構築の境界の一部が真のオブジェクトの境界と一致するかどうかを判定するために、ポリゴンの輪郭の各線分(たとえば、線分705、710)が、サポートマップおよび遮蔽マップに射影される。線分が真のオブジェクトの端と一致する場合、サポートマップは、線分の内側715で高いサポートマップの値(たとえば、図5Aにおいては中ぐらい以上の暗さの陰影)を有し、線分の外側720で低い/ゼロであるサポートマップの値を有するはずである。反対に、遮蔽マップは、点がオブジェクトの表面を通して可視でない場合があるので線分の内側725で低い/ゼロである遮蔽マップの値を有するはずである。加えて、遮蔽マップは、他の場合なら遮られる測定された点があるので線分の外側730で高い遮蔽マップの値(たとえば、図5Bにおいては中ぐらい以上の暗さの陰影)を有するはずである。
【００６０】
両方の基準が、線分に沿ったサポートマップおよび遮蔽マップの傾きを積分することによってテストされ得る。サポートマップの傾きは、内側を指し、特定の閾値を超える可能性があり、一方、遮蔽マップの傾きは、外側を指し、やはり特定の閾値を超えなければならない。両方の基準が満たされる場合、システムは、線分が真のオブジェクトの境界を表すと仮定することができる。それ以外の場合、システムは、十分な情報を集められなかった場合があり、したがって、境界は未知であり、不自然な境界のみが再構築に存在すると仮定される場合がある。
【００６１】
図1、図2、および図3のシステムおよびデバイスを用いて、様々な方法が実行される場合がある。図8は、平らなオブジェクトの表現を構築するための方法800の実施形態を示す。方法800は、図1、図2A、図2B、および図3A、図3Bのシステムおよび/もしくはデバイスによって、または物理的な環境を分析するように構成された何らかのその他のシステムによって実行されてもよい。方法800のステップを実行するための手段は、図1、図2A、図2B、および図3A、図3Bのシステムの構成要素の1つまたは複数のインスタンスを含む。
【００６２】
ステップ810において、システム(たとえば、ARシステム10、モバイルデバイス12)が、見る位置から撮影された物理的シーンのデプス画像を取得する可能性がある。デプス画像は、複数のデプス値を含むとともに、物理的シーン内の複数の点に対応する可能性がある。加えて、各デプス値は、見る位置から物理的シーン内の複数の点のうちの1つまでの距離を示す。見る位置は、1つの特定の視点(たとえば、RGBデプスカメラ、ソナー、レーザスキャン)または複数の視点(たとえば、深さを感知することができるステレオカメラ)からである可能性がある。見る位置から撮影された物理的シーンのデプス画像を取得するステップは、カメラ24と、図2Aのデバイス12の構成要素26、22、30、38、および46に関連して検討されたプロセスのうちの1つまたは複数とによって実行される場合がある。代替的に、デプスカメラ305が、ステップ810を実行してもよい。
【００６３】
ステップ820において、システム(たとえば、ARシステム10)が、平らなオブジェクトがそれに沿って位置付けられると推定される平らな表面を特定する可能性がある。平らな表面を特定するステップは、カメラ24と、図2Aのデバイス12の構成要素26、22、30、38、および46に関連して検討されたプロセスのうちの1つまたは複数とによって実行される場合がある。代替的に、デプスカメラ305が、ステップ820を実行してもよい。
【００６４】
ステップ830において、システム(たとえば、ARシステム10)が、サポートマップを構築する可能性がある。サポートマップは、平らなオブジェクトによって占められる平らな表面の部分および平らなオブジェクトの上に載っているオブジェクトのあり得る表面を示す。たとえば、サポートマップは、メモリ40と、図2のデバイス12の構成要素26、22、30、38、および46に関連して検討されたプロセスのうちの1つまたは複数とを用いて構築され得る。
【００６５】
ステップ840において、システム(たとえば、ARシステム10)が、遮蔽マップを構築する可能性があり、遮蔽マップは、平らなオブジェクトがない平らな表面の部分を示す。たとえば、遮蔽マップは、メモリ40と、図2のデバイス12の構成要素26、22、30、および38に関連して検討されたプロセスのうちの1つまたは複数とを用いて構築され得る。
【００６６】
ステップ850において、システム(たとえば、ARシステム10)が、遮蔽マップを用いて平らなオブジェクトの少なくとも1つの境界の表現を構築する可能性がある。たとえば、平らなオブジェクトの少なくとも1つの境界の表現は、メモリ40と、図2Aのデバイス12の構成要素26、22、30、38、および46に関連して検討されたプロセスのうちの1つまたは複数とを用いて構築され得る。
【００６７】
一部の実施形態によれば、方法800は、遮蔽マップおよび平らなオブジェクトの少なくとも1つの境界に基づいて遮蔽傾きマップを構築するステップをさらに含む場合がある。加えて、方法800は、サポートマップおよび平らなオブジェクトの少なくとも1つの境界に基づいてサポート傾きマップを構築するステップを含む場合がある。さらに、本方法は、遮蔽傾きマップおよびサポート傾きマップに基づいて平らなオブジェクトの境界に関連するセグメントを分類するステップを含む場合がある。
【００６８】
さらに、サポートマップを構築するステップは、平らな表面を複数のセルに区切るステップを含む場合がある。さらに、各セルに関して、見る位置からセルまでまたはセルの上の空間の垂直なカラム内の位置まで広がるようにデプス値を有する点の数を数える。
【００６９】
1つまたは複数の構成において、平らなオブジェクトは、物理的シーン内のテーブルトップである可能性がある。
【００７０】
1つまたは複数の構成において、遮蔽マップを構築するステップは、平らな表面を複数のセルに区切るステップを含む場合がある。加えて、各セルに関して、見る位置から広がり、平らな表面においてセルを横切るのに十分なだけ大きなデプス値を有する点の数を数える。
【００７１】
1つまたは複数の構成において、表現を構築するステップは、線分をサポートマップに射影するステップと、線分を遮蔽マップに射影するステップと、射影された線分が平らなオブジェクトの真の端と一致するかどうかを判定するステップとを含む場合がある。
【００７２】
図9は、1つまたは複数の実施形態が実装される場合があるコンピューティングシステムの例を示す。図9に示されるコンピュータシステムは、上述のコンピュータ化されたデバイスの一部として組み込まれる場合がある。たとえば、コンピュータシステム900は、テレビの構成要素の一部、コンピューティングデバイス、サーバ、デスクトップ、ワークステーション、自動車の制御もしくはインタラクションシステム、タブレット、ネットブック、または任意のその他の好適なコンピューティングシステムを表す可能性がある。コンピューティングデバイスは、画像撮影デバイスまたは入力感知ユニットおよびユーザ出力デバイスを有する任意のコンピューティングデバイスである場合がある。画像撮影デバイスまたは入力感知ユニットは、カメラデバイスである場合がある。ユーザ出力デバイスは、ディスプレイユニットである場合がある。コンピューティングデバイスの例は、ビデオゲームコンソール、タブレット、スマートフォン、および任意のその他のハンドヘルドデバイスを含むがこれらに限定されない。図9は、本明細書に記載の様々なその他の実施形態によって提供される方法を実行することができ、ならびに/あるいはホストコンピュータシステム、リモートキオスク/端末、販売時点情報管理デバイス、自動車の電話もしくはナビゲーションもしくはマルチメディアインターフェース、コンピューティングデバイス、セットトップボックス、テーブルコンピュータ、および/またはコンピュータシステムとして機能することができるコンピュータシステム900の一実施形態の概略図を提供する。図9は、様々な構成要素の一般化された図を提供するようにのみ意図されており、それらの様々な構成要素のいずれかまたはすべては、必要に応じて利用される可能性がある。したがって、図9は、個々のシステムの要素がどのようにして比較的分かれてまたは比較的より統合的に実装される場合があるかを幅広く示す。一部の実施形態において、コンピュータシステム900は、図1のデバイス12の機能を実装するために使用される場合がある。
【００７３】
バス902に電気的に結合され得る(または別の方法で必要に応じて通信する場合がある)ハードウェア要素を含むコンピュータシステム900が示される。ハードウェア要素は、1つもしくは複数の汎用プロセッサおよび/もしくは(デジタル信号処理チップ、グラフィックスアクセラレーションプロセッサなどの)1つもしくは複数の専用プロセッサを限定なしに含む1つまたは複数のプロセッサ904と、1つもしくは複数のカメラ、センサ、マウス、キーボード、超音波もしくはその他の音を検出するように構成されたマイクロホンなどを限定なしに含み得る1つまたは複数の入力デバイス908と、本発明の実施形態において使用されるデバイスなどのディスプレイユニット、プリンタなどを限定なしに含み得る1つまたは複数の出力デバイス910とを含む場合がある。
【００７４】
本発明の実施形態の一部の実装において、様々な入力デバイス908および出力デバイス910は、ディスプレイデバイス、テーブル、床、壁、および窓のスクリーンなどのインターフェースに組み込まれる場合がある。さらに、プロセッサに結合された入力デバイス908および出力デバイス910が、多次元追跡システムを形成する場合がある。
【００７５】
コンピュータシステム900は、ローカルおよび/もしくはネットワークアクセス可能なストレージを限定なしに含む可能性があり、ならびに/またはディスクドライブ、ドライブアレイ、光学式ストレージデバイス、ランダムアクセスメモリ("RAM")および/もしくはプログラミング可能、フラッシュ更新可能などである可能性がある読み出し専用メモリ("ROM")などのソリッドステートストレージデバイスを限定なしに含む可能性がある1つまたは複数の非一時的ストレージデバイス906をさらに含む(および/またはそのような非一時的ストレージデバイス906と通信する)場合がある。そのようなストレージデバイスは、様々なファイルシステム、データベース構造などを限定なしに含む任意の適切なデータストレージを実装するように構成されてもよい。
【００７６】
コンピュータシステム900は、モデム、(ワイヤレスまたは有線)ネットワークカード、赤外線通信デバイス、(Bluetooth(登録商標)デバイス、802.11デバイス、Wi-Fiデバイス、WiMaxデバイス、セルラー通信設備などの)ワイヤレス通信デバイスおよび/またはチップセットなどを限定なしに含み得る通信サブシステム912も含む可能性がある。通信サブシステム912は、データがネットワーク、その他のコンピュータシステム、および/または本明細書に記載の任意のその他のデバイスと交換されることを可能にする場合がある。多くの実施形態において、コンピュータシステム900は、上述のように、RAMまたはROMデバイスを含み得る非一時的作業メモリ918をさらに含む。
【００７７】
コンピュータシステム900は、オペレーティングシステム914、デバイスドライバ、実行可能ライブラリ、ならびに/または様々な実施形態によって提供されるコンピュータプログラムを含む場合があり、および/もしくは本明細書に記載のその他の実施形態によって提供される方法を実装しおよび/もしくはシステムを構成するように設計される場合がある1つもしくは複数のアプリケーションプログラム916などのその他のコードを含む、作業メモリ918に現在配置されているものとして示されるソフトウェア要素も含む可能性がある。単に例として、上で検討された方法に関連して説明された1つまたは複数の手順は、コンピュータ(および/またはコンピュータ内のプロセッサ)によって実行可能なコードおよび/または命令として実装される可能性があり、そのとき、一態様において、そのようなコードおよび/または命令は、説明された方法に従って1つまたは複数の動作を実行するように多目的コンピュータ(またはその他のデバイス)を構成および/または適合するために使用され得る。
【００７８】
これらの命令および/またはコードのセットは、上述のストレージデバイス906などのコンピュータ可読記録媒体に記憶される可能性がある。場合によっては、記録媒体は、コンピュータシステム900などのコンピュータシステム内に組み込まれる可能性がある。その他の実施形態において、記録媒体は、コンピュータシステムと分かれており(たとえば、コンパクトディスクなどの取り外し可能な媒体)、ならびに/または記録媒体がその記録媒体に記憶された命令/コードによって多目的コンピュータをプログラミング、構成、および/もしくは適合するために使用され得るようにインストールパッケージで提供される可能性がある。これらの命令は、コンピュータシステム900によって実行可能である実行可能コードの形態をとる可能性があり、ならびに/または(たとえば、様々な広く利用可能なコンパイラ、インストールプログラム、圧縮/解凍ユーティリティなどのいずれかを用いて)コンピュータシステム900でコンパイルおよび/もしくはインストールされると実行可能コードの形態をとるソースおよび/もしくはインストール可能なコードの形態をとる可能性がある。
【００７９】
特定の要件に従って、大きな変更が行われてもよい。たとえば、カスタマイズされたハードウェアが使用される可能性もあり、および/または特定の要素がハードウェア、(アプレットなどのポータブルソフトウェアを含む)ソフトウェア、もしくはこれら両方で実装される可能性がある。さらに、ネットワーク入力/出力デバイスなどのその他のコンピューティングデバイスへの接続が、使用される場合がある。一部の実施形態において、コンピュータシステム900の1つまたは複数の要素は省略される場合があり、または図示されたシステムとは別に実装される場合がある。たとえば、プロセッサ904および/またはその他の要素が、入力デバイス908とは別に実装される場合がある。一実施形態において、プロセッサは、別に実装される1つまたは複数のカメラから画像を受信するように構成される。一部の実施形態において、図9に示された要素以外の要素は、コンピュータシステム900に含まれる場合がある。
【００８０】
一部の実施形態は、(コンピュータシステム900などの)コンピュータシステムを使用して、本開示による方法を実行する場合がある。たとえば、説明された方法の手順の一部またはすべては、プロセッサ904が作業メモリ918に含まれる(オペレーティングシステム914および/もしくはアプリケーションプログラム916などのその他のコードに組み込まれる可能性がある)1つまたは複数の命令の1つまたは複数のシーケンスを実行することに応じてコンピュータシステム900によって実行されてもよい。そのような命令は、ストレージデバイス906のうちの1つまたは複数などの別のコンピュータ可読媒体から作業メモリ918に読み込まれる可能性がある。単に例として、作業メモリ918に含まれる命令のシーケンスの実行が、プロセッサ904に本明細書に記載の方法の1つまたは複数の手順を実行させる可能性がある。
【００８１】
本明細書において使用されるとき、用語「機械可読媒体」および「コンピュータ可読媒体」は、機械を特定の方法で動作させるデータを提供することに関与する任意の媒体を指す。コンピュータシステム900を用いて実装される一部の実施形態において、様々なコンピュータ可読媒体は、実行するために命令/コードをプロセッサ904に提供することに関与させられる可能性があり、ならびに/またはそのような命令/コードを(たとえば信号として)記憶しおよび/もしくは運ぶために使用される可能性がある。多くの実装において、コンピュータ可読媒体は、物理的なおよび/または有形の記録媒体である。そのような媒体は、不揮発性媒体、揮発性媒体、および送信媒体を含むがこれらに限定されない多くの形態をとってよい。不揮発性媒体は、たとえば、ストレージデバイス906などの光および/または磁気ディスクを含む。揮発性媒体は、作業メモリ918などの動的メモリを限定なしに含む。送信媒体は、バス902を含む配線を含む同軸ケーブル、銅線、および光ファイバ、ならびに通信サブシステム912の様々な構成要素(および/または通信サブシステム912がその他のデバイスとの通信を提供する媒体)を限定なしに含む。したがって、送信媒体は、(無線波および赤外線データ通信中に生成される無線波、音波、および/または光波などの無線波、音波、および/または光波を限定なしに含む)波の形態をとる可能性もある。
【００８２】
よくある形態の物理的なおよび/または有形のコンピュータ可読媒体は、たとえば、フロッピー(登録商標)ディスク、フレキシブルディスク、ハードディスク、磁気テープ、もしくは任意のその他の磁気媒体、CD-ROM、任意のその他の光媒体、パンチカード、紙テープ、穴のパターンを用いる任意のその他の物理的媒体、RAM、PROM、EPROM、FLASH-EPROM、任意のその他のメモリチップもしくはカートリッジ、後述される搬送波、またはコンピュータが命令および/もしくはコードを読み取ることができる任意のその他の媒体を含む。
【００８３】
様々な形態のコンピュータ可読媒体が、実行するためにプロセッサ904に1つまたは複数の命令の1つまたは複数のシーケンスを運ぶことに関与させられる場合がある。単に例として、命令は、最初、リモートコンピュータの磁気ディスクおよび/または光ディスクで運ばれる場合がある。リモートコンピュータは、命令をそのリモートコンピュータの動的メモリにロードし、コンピュータシステム900によって受信および/または実行されるように送信媒体を介して命令を信号として送信する可能性がある。電磁的な信号、音響信号、光信号などの形態である可能性があるこれらの信号は、すべて、本発明の様々な実施形態による、命令が符号化され得る搬送波の例である。
【００８４】
概して、通信サブシステム912(および/または通信サブシステム912の構成要素)が、信号を受信し、そして、バス902が、信号(および/または信号によって運ばれるデータ、命令など)を作業メモリ918に運ぶ可能性があり、作業メモリ918からプロセッサ904が命令を取り出し、実行する。作業メモリ918によって受信された命令は、任意で、プロセッサ904による実行の前かまたは後かのどちらかに非一時的ストレージデバイス906に記憶される場合がある。
【００８５】
上で検討された方法、システム、およびデバイスは、例である。様々な構成は、必要に応じて様々な手順または構成要素を省略、置換、または追加する場合がある。たとえば、代替的な構成において、本方法は、説明された順序とは異なる順序で実行される場合があり、ならびに/または様々な段階が、追加され、省略され、および/もしくは組み合わされる場合がある。また、特定の構成に関連して説明された特徴は、様々なその他の構成で組み合わされる場合がある。構成の異なる態様および要素は、同様にして組み合わされる場合がある。さらに、テクノロジーは発展し、したがって、要素の多くは例であり、本開示または特許請求の範囲を限定しない。
【００８６】
(実装を含む)例示的な構成が完全に理解されるように、説明において特定の詳細が与えられている。しかし、構成は、これらの特定の詳細なしに実施されてもよい。たとえば、よく知られている回路、プロセス、アルゴリズム、構造、および技術は、構成を曖昧にすることを避けるために不必要な詳細なしに示された。この説明は、例示的な構成を提供するだけであり、特許請求の範囲、適用可能性、または構成を限定しない。むしろ、構成の前述の説明は、説明された技術を実装するための実施を可能にする説明を当業者に与える。本開示の精神または範囲を逸脱することなく、要素の機能および構成に様々な変更がなされる場合がある。
【００８７】
また、構成は、流れ図またはブロック図として示されるプロセスとして説明される場合がある。それぞれは動作を連続的なプロセスとして示す場合があるが、動作の多くは、並列的にまたは同時に実行され得る。加えて、動作の順序は、再編成される場合がある。プロセスは、図に含まれていない追加のステップを有する場合がある。さらに、方法の例は、ハードウェア、ソフトウェア、ファームウェア、ミドルウェア、マイクロコード、ハードウェア記述言語、またはこれらの任意の組合せによって実装される場合がある。ソフトウェア、ファームウェア、ミドルウェア、またはマイクロコードで実装されるとき、必要なタスクを実行するためのプログラムコードまたはコードセグメントは、記録媒体などの非一時的コンピュータ可読媒体に記憶される場合がある。プロセッサが、説明されたタスクを実行する場合がある。
【００８８】
いくつかの例示的な構成を説明したが、本開示の精神から逸脱することなく様々な修正、代替的な構造、および均等物が使用されてもよい。たとえば、上記の要素は、より大きなシステムの構成要素である場合があり、その他の規則が、本発明の応用よりも優先するか、またはそうでなければ本発明の応用を修正する場合がある。また、いくつかのステップが、上記の要素が考慮される前に、間に、または後に開始される場合がある。
【符号の説明】
【００８９】
10  ARシステム
12  AR対応モバイルデバイス
14  オブジェクト
16  3次元キャラクタ
18  視野
20  センサ
22  センサプロセッサ
24  カメラ
26  カメラプロセッサ
28  ディスプレイ
30  グラフィックスプロセッサ
32  タッチセンサ
34  タッチセンサプロセッサ
36  通信モジュール
38  プロセッサ
40  (非一時的)メモリ
42  バス
44  ソフトウェアプログラムコード
46  コンピュータ可読媒体
210  平らな表面特定モジュール
220  サポートマップ構築モジュール
230  遮蔽マップ構築モジュール
240  境界表現構築モジュール
305  RGBDカメラ
306  視線
307  3Dの点
310  オブジェクト
315  全体的な環境
320  サポート面
405  点
410  点
415  グリッドのセル
510  比較的明るい陰影
520  比較的暗い陰影
530  左下角の領域
610  凸包
620  凹形の輪郭
630  2D点群
705  線分
710  線分
715  線分の内側
720  線分の外側
725  線分の内側
730  線分の外側
800  方法
900  コンピュータシステム
902  バス
904  プロセッサ
906  ストレージデバイス
908  入力デバイス
910  出力デバイス
912  通信サブシステム
914  オペレーティングシステム
916  アプリケーションプログラム
918  作業メモリ
【図１】
2016534466.tif 000003
【図２Ａ】
2016534466.tif 000004
【図２Ｂ】
2016534466.tif 000005
【図３Ａ】
2016534466.tif 000006
【図３Ｂ】
2016534466.tif 000007
【図４Ａ】
2016534466.tif 000008
【図４Ｂ】
2016534466.tif 000009
【図５Ａ】
2016534466.tif 000010
【図５Ｂ】
2016534466.tif 000011
【図６】
2016534466.tif 000012
【図７】
2016534466.tif 000013
【図８】
2016534466.tif 000014
【図９】
2016534466.tif 000015
【国際調査報告】
2016534466.tif 000016
2016534466.tif 000017
2016534466.tif 000018