JP6203406B2 - 拡張現実環境内の平面の広がりを判定するためのシステムおよび方法 - Google Patents

拡張現実環境内の平面の広がりを判定するためのシステムおよび方法 Download PDF

Info

Publication number
JP6203406B2
JP6203406B2 JP2016538974A JP2016538974A JP6203406B2 JP 6203406 B2 JP6203406 B2 JP 6203406B2 JP 2016538974 A JP2016538974 A JP 2016538974A JP 2016538974 A JP2016538974 A JP 2016538974A JP 6203406 B2 JP6203406 B2 JP 6203406B2
Authority
JP
Japan
Prior art keywords
map
flat
occlusion
support
constructing
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2016538974A
Other languages
English (en)
Other versions
JP2016534466A (ja
JP2016534466A5 (ja
Inventor
ゲルハルト・ライトメイヤー
Original Assignee
クアルコム,インコーポレイテッド
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by クアルコム,インコーポレイテッド filed Critical クアルコム,インコーポレイテッド
Publication of JP2016534466A publication Critical patent/JP2016534466A/ja
Publication of JP2016534466A5 publication Critical patent/JP2016534466A5/ja
Application granted granted Critical
Publication of JP6203406B2 publication Critical patent/JP6203406B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • G06T19/006Mixed reality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • G06T17/10Constructive solid geometry [CSG] using solid primitives, e.g. cylinders, cubes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/30Determination of transform parameters for the alignment of images, i.e. image registration
    • G06T7/32Determination of transform parameters for the alignment of images, i.e. image registration using correlation-based methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/30Determination of transform parameters for the alignment of images, i.e. image registration
    • G06T7/33Determination of transform parameters for the alignment of images, i.e. image registration using feature-based methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/70Determining position or orientation of objects or cameras
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/70Determining position or orientation of objects or cameras
    • G06T7/73Determining position or orientation of objects or cameras using feature-based methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/60Type of objects
    • G06V20/64Three-dimensional objects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10016Video; Image sequence
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10024Color image
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10028Range image; Depth image; 3D point clouds

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Graphics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Geometry (AREA)
  • Multimedia (AREA)
  • Processing Or Creating Images (AREA)
  • Length Measuring Devices By Optical Means (AREA)
  • Image Processing (AREA)

Description

本開示の態様は、拡張現実(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 作業メモリ

Claims (20)

  1. 平らなオブジェクトの表現を構築するための方法であって、
    見る位置から撮影された物理的シーンのデプス画像を取得するステップであって、前記デプス画像が、複数のデプス値を含むとともに、前記物理的シーン内の複数の点に対応し、各デプス値が、前記見る位置から前記物理的シーン内の前記複数の点のうちの1つまでの距離を示す、ステップと、
    平らな表面を特定するステップであって、前記平らなオブジェクトが前記平らな表面に沿って位置付けられると推定される、ステップと、
    サポートマップを構築するステップであって、前記サポートマップが、前記平らなオブジェクトによって占められる前記平らな表面の部分および前記平らなオブジェクトの上に載っているオブジェクトのあり得る表面を示す、ステップと、
    遮蔽マップを構築するステップであって、
    前記平らな表面を複数のセルに区切るステップと、
    各セルに関して、前記見る位置から広がり、かつ前記平らな表面において前記セルを横切るのに十分なだけ大きなデプス値を有する点の数を数えるステップと
    を含み、前記遮蔽マップが、前記平らなオブジェクトがない前記平らな表面の部分を示す、ステップと、
    前記遮蔽マップおよび前記サポートマップを用いて前記平らな表面の境界をテストするステップと、
    前記テストするステップに基づいて前記平らな表面の境界を構築するステップと、
    前記遮蔽マップおよび前記サポートマップを用いて前記平らなオブジェクトの少なくとも1つの境界の表現を構築するステップと、
    前記遮蔽マップおよび前記平らなオブジェクトの前記少なくとも1つの境界に基づいて遮蔽傾きマップを構築するステップと、
    前記サポートマップおよび前記平らなオブジェクトの前記少なくとも1つの境界に基づいてサポート傾きマップを構築するステップと、
    前記遮蔽傾きマップおよび前記サポート傾きマップに基づいて前記平らなオブジェクトの境界に関連するセグメントを分類するステップと
    を含む、方法。
  2. 平らなオブジェクトの表現を構築するための方法であって、
    見る位置から撮影された物理的シーンのデプス画像を取得するステップであって、前記デプス画像が、複数のデプス値を含むとともに、前記物理的シーン内の複数の点に対応し、各デプス値が、前記見る位置から前記物理的シーン内の前記複数の点のうちの1つまでの距離を示す、ステップと、
    平らな表面を特定するステップであって、前記平らなオブジェクトが前記平らな表面に沿って位置付けられると推定される、ステップと、
    サポートマップを構築するステップであって、
    前記平らな表面を複数のセルに区切るステップと、
    各セルに関して、前記見る位置から前記セルまで、または前記セルの上の空間の垂直なカラム内の位置まで広がるようにデプス値を有する点の数を数えるステップと
    を含み、前記サポートマップが、前記平らなオブジェクトによって占められる前記平らな表面の部分および前記平らなオブジェクトの上に載っているオブジェクトのあり得る表面を示す、ステップと、
    遮蔽マップを構築するステップであって、前記遮蔽マップが、前記平らなオブジェクトがない前記平らな表面の部分を示す、ステップと、
    前記遮蔽マップおよび前記サポートマップを用いて前記平らな表面の境界をテストするステップと、
    前記テストするステップに基づいて前記平らな表面の境界を構築するステップと、
    前記遮蔽マップおよび前記サポートマップを用いて前記平らなオブジェクトの少なくとも1つの境界の表現を構築するステップと、
    前記遮蔽マップおよび前記平らなオブジェクトの前記少なくとも1つの境界に基づいて遮蔽傾きマップを構築するステップと、
    前記サポートマップおよび前記平らなオブジェクトの前記少なくとも1つの境界に基づいてサポート傾きマップを構築するステップと、
    前記遮蔽傾きマップおよび前記サポート傾きマップに基づいて前記平らなオブジェクトの境界に関連するセグメントを分類するステップと
    を含む、方法。
  3. 平らなオブジェクトの表現を構築するための方法であって、
    見る位置から撮影された物理的シーンのデプス画像を取得するステップであって、前記デプス画像が、複数のデプス値を含むとともに、前記物理的シーン内の複数の点に対応し、各デプス値が、前記見る位置から前記物理的シーン内の前記複数の点のうちの1つまでの距離を示す、ステップと、
    平らな表面を特定するステップであって、前記平らなオブジェクトが前記平らな表面に沿って位置付けられると推定される、ステップと、
    サポートマップを構築するステップであって、前記サポートマップが、前記平らなオブジェクトによって占められる前記平らな表面の部分および前記平らなオブジェクトの上に載っているオブジェクトのあり得る表面を示す、ステップと、
    遮蔽マップを構築するステップであって、前記遮蔽マップが、前記平らなオブジェクトがない前記平らな表面の部分を示す、ステップと、
    前記遮蔽マップおよび前記サポートマップを用いて前記平らな表面の境界をテストするステップと、
    前記テストするステップに基づいて前記平らな表面の境界を構築するステップと、
    前記遮蔽マップおよび前記サポートマップを用いて前記平らなオブジェクトの少なくとも1つの境界の表現を構築するステップと、
    前記遮蔽マップおよび前記平らなオブジェクトの前記少なくとも1つの境界に基づいて遮蔽傾きマップを構築するステップと、
    前記サポートマップおよび前記平らなオブジェクトの前記少なくとも1つの境界に基づいてサポート傾きマップを構築するステップと、
    前記遮蔽傾きマップおよび前記サポート傾きマップに基づいて前記平らなオブジェクトの境界に関連するセグメントを分類するステップであって、
    線分を前記サポートマップに射影するステップと、
    前記線分を前記遮蔽マップに射影するステップと、
    前記射影された線分が前記平らなオブジェクトの真の端と一致するかどうかを判定するステップと
    を含む、ステップと
    を含む、方法。
  4. 前記平らなオブジェクトが、前記物理的シーン内のテーブルトップである、請求項1〜3のいずれか一項に記載の方法。
  5. 前記デプス画像が、RGBデプスカメラを用いて取得される、請求項1〜3のいずれか一項に記載の方法。
  6. 平らなオブジェクトの表現を構築するためのデバイスであって、
    メモリと、
    見る位置から撮影された物理的シーンのデプス画像を取得するためのカメラであって、前記デプス画像が、複数のデプス値を含むとともに、前記物理的シーン内の複数の点に対応し、各デプス値が、前記見る位置から前記物理的シーン内の前記複数の点のうちの1つまでの距離を示す、カメラと、
    1つまたは複数のプロセッサであって、
    平らな表面を特定することであって、前記平らなオブジェクトが前記平らな表面に沿って位置付けられると推定される、特定することと、
    サポートマップを構築することであって、前記サポートマップが、前記平らなオブジェクトによって占められる前記平らな表面の部分および前記平らなオブジェクトの上に載っているオブジェクトのあり得る表面を示す、構築することと、
    遮蔽マップを構築することであって、
    前記平らな表面を複数のセルに区切ることと、
    各セルに関して、前記見る位置から広がり、かつ前記平らな表面において前記セルを横切るのに十分なだけ大きなデプス値を有する点の数を数えることと
    を含み、前記遮蔽マップが、前記平らなオブジェクトがない前記平らな表面の部分を示す、構築することと、
    前記遮蔽マップおよび前記サポートマップを用いて前記平らな表面の境界をテストすることと、
    前記テストすることに基づいて前記平らな表面の境界を構築することと、
    前記遮蔽マップおよび前記サポートマップを用いて前記平らなオブジェクトの少なくとも1つの境界の表現を構築することと、
    前記遮蔽マップおよび前記平らなオブジェクトの前記少なくとも1つの境界に基づいて遮蔽傾きマップを構築することと、
    前記サポートマップおよび前記平らなオブジェクトの前記少なくとも1つの境界に基づいてサポート傾きマップを構築することと、
    前記遮蔽傾きマップおよび前記サポート傾きマップに基づいて前記平らなオブジェクトの境界に関連するセグメントを分類することと
    を行うように構成される、プロセッサと
    を備える、デバイス。
  7. 平らなオブジェクトの表現を構築するためのデバイスであって、
    メモリと、
    見る位置から撮影された物理的シーンのデプス画像を取得するためのカメラであって、前記デプス画像が、複数のデプス値を含むとともに、前記物理的シーン内の複数の点に対応し、各デプス値が、前記見る位置から前記物理的シーン内の前記複数の点のうちの1つまでの距離を示す、カメラと、
    1つまたは複数のプロセッサであって、
    平らな表面を特定することであって、前記平らなオブジェクトが前記平らな表面に沿って位置付けられると推定される、特定することと、
    サポートマップを構築することであって、
    前記平らな表面を複数のセルに区切ることと、
    各セルに関して、前記見る位置から前記セルまで、または前記セルの上の空間の垂直なカラム内の位置まで広がるようにデプス値を有する点の数を数えることと
    を含み、前記サポートマップが、前記平らなオブジェクトによって占められる前記平らな表面の部分および前記平らなオブジェクトの上に載っているオブジェクトのあり得る表面を示す、構築することと、
    遮蔽マップを構築することであって、前記遮蔽マップが、前記平らなオブジェクトがない前記平らな表面の部分を示す、構築することと、
    前記遮蔽マップおよび前記サポートマップを用いて前記平らな表面の境界をテストすることと、
    前記テストすることに基づいて前記平らな表面の境界を構築することと、
    前記遮蔽マップおよび前記サポートマップを用いて前記平らなオブジェクトの少なくとも1つの境界の表現を構築することと、
    前記遮蔽マップおよび前記平らなオブジェクトの前記少なくとも1つの境界に基づいて遮蔽傾きマップを構築することと、
    前記サポートマップおよび前記平らなオブジェクトの前記少なくとも1つの境界に基づいてサポート傾きマップを構築することと、
    前記遮蔽傾きマップおよび前記サポート傾きマップに基づいて前記平らなオブジェクトの境界に関連するセグメントを分類することと
    を行うように構成される、プロセッサと
    備える、デバイス。
  8. 平らなオブジェクトの表現を構築するためのデバイスであって、
    メモリと、
    見る位置から撮影された物理的シーンのデプス画像を取得するためのカメラであって、前記デプス画像が、複数のデプス値を含むとともに、前記物理的シーン内の複数の点に対応し、各デプス値が、前記見る位置から前記物理的シーン内の前記複数の点のうちの1つまでの距離を示す、カメラと、
    1つまたは複数のプロセッサであって、
    平らな表面を特定することであって、前記平らなオブジェクトが前記平らな表面に沿って位置付けられると推定される、特定することと、
    サポートマップを構築することであって、前記サポートマップが、前記平らなオブジェクトによって占められる前記平らな表面の部分および前記平らなオブジェクトの上に載っているオブジェクトのあり得る表面を示す、構築することと、
    遮蔽マップを構築することであって、前記遮蔽マップが、前記平らなオブジェクトがない前記平らな表面の部分を示す、構築することと、
    前記遮蔽マップおよび前記サポートマップを用いて前記平らな表面の境界をテストすることと、
    前記テストすることに基づいて前記平らな表面の境界を構築することと、
    前記遮蔽マップおよび前記サポートマップを用いて前記平らなオブジェクトの少なくとも1つの境界の表現を構築することと、
    前記遮蔽マップおよび前記平らなオブジェクトの前記少なくとも1つの境界に基づいて遮蔽傾きマップを構築することと、
    前記サポートマップおよび前記平らなオブジェクトの前記少なくとも1つの境界に基づいてサポート傾きマップを構築することと、
    前記遮蔽傾きマップおよび前記サポート傾きマップに基づいて前記平らなオブジェクトの境界に関連するセグメントを分類することであって、
    線分を前記サポートマップに射影することと、
    前記線分を前記遮蔽マップに射影することと、
    前記射影された線分が前記平らなオブジェクトの真の端と一致するかどうかを判定することと
    を含む、分類することと
    を行うように構成される、プロセッサと
    を備える、デバイス。
  9. 前記平らなオブジェクトが、前記物理的シーン内のテーブルトップである、請求項6〜8のいずれか一項に記載のデバイス。
  10. 前記カメラが、RGBデプスカメラである、請求項6〜8のいずれか一項に記載のデバイス。
  11. 実行されるときに、デバイスに含まれる1つまたは複数のコンピューティングデバイスに、
    見る位置から撮影された物理的シーンのデプス画像を取得することであって、前記デプス画像が、複数のデプス値を含むとともに、前記物理的シーン内の複数の点に対応し、各デプス値が、前記見る位置から前記物理的シーン内の前記複数の点のうちの1つまでの距離を示す、取得することと、
    平らな表面を特定することであって、前記平らなオブジェクトが前記平らな表面に沿って位置付けられると推定される、特定することと、
    サポートマップを構築することであって、前記サポートマップが、前記平らなオブジェクトによって占められる前記平らな表面の部分および前記平らなオブジェクトの上に載っているオブジェクトのあり得る表面を示す、構築することと、
    遮蔽マップを構築することであって、
    前記平らな表面を複数のセルに区切ることと、
    各セルに関して、前記見る位置から広がり、かつ前記平らな表面において前記セルを横切るのに十分なだけ大きなデプス値を有する点の数を数えることと
    を含み、前記遮蔽マップが、前記平らなオブジェクトがない前記平らな表面の部分を示す、構築することと、
    前記遮蔽マップおよび前記サポートマップを用いて前記平らな表面の境界をテストすることと、
    前記テストすることに基づいて前記平らな表面の境界を構築することと、
    前記遮蔽マップおよび前記サポートマップを用いて前記平らなオブジェクトの少なくとも1つの境界の表現を構築することと、
    前記遮蔽マップおよび前記平らなオブジェクトの前記少なくとも1つの境界に基づいて遮蔽傾きマップを構築することと、
    前記サポートマップおよび前記平らなオブジェクトの前記少なくとも1つの境界に基づいてサポート傾きマップを構築することと、
    前記遮蔽傾きマップおよび前記サポート傾きマップに基づいて前記平らなオブジェクトの境界に関連するセグメントを分類することと
    を行わせる、平らなオブジェクトの表現を構築するためのコンピュータが実行可能な命令を記憶する、1つまたは複数の非一時的コンピュータ可読記録媒体。
  12. 実行されるときに、デバイスに含まれる1つまたは複数のコンピューティングデバイスに、
    見る位置から撮影された物理的シーンのデプス画像を取得することであって、前記デプス画像が、複数のデプス値を含むとともに、前記物理的シーン内の複数の点に対応し、各デプス値が、前記見る位置から前記物理的シーン内の前記複数の点のうちの1つまでの距離を示す、取得することと、
    平らな表面を特定することであって、前記平らなオブジェクトが前記平らな表面に沿って位置付けられると推定される、特定することと、
    サポートマップを構築することであって、
    前記平らな表面を複数のセルに区切ることと、
    各セルに関して、前記見る位置から前記セルまで、または前記セルの上の空間の垂直なカラム内の位置まで広がるようにデプス値を有する点の数を数えることと
    を含み、前記サポートマップが、前記平らなオブジェクトによって占められる前記平らな表面の部分および前記平らなオブジェクトの上に載っているオブジェクトのあり得る表面を示す、構築することと、
    遮蔽マップを構築することであって、前記遮蔽マップが、前記平らなオブジェクトがない前記平らな表面の部分を示す、構築することと、
    前記遮蔽マップおよび前記サポートマップを用いて前記平らな表面の境界をテストすることと、
    前記テストすることに基づいて前記平らな表面の境界を構築することと、
    前記遮蔽マップおよび前記サポートマップを用いて前記平らなオブジェクトの少なくとも1つの境界の表現を構築することと、
    前記遮蔽マップおよび前記平らなオブジェクトの前記少なくとも1つの境界に基づいて遮蔽傾きマップを構築することと、
    前記サポートマップおよび前記平らなオブジェクトの前記少なくとも1つの境界に基づいてサポート傾きマップを構築することと、
    前記遮蔽傾きマップおよび前記サポート傾きマップに基づいて前記平らなオブジェクトの境界に関連するセグメントを分類することと
    を行わせる、平らなオブジェクトの表現を構築するためのコンピュータが実行可能な命令を記憶する、1つまたは複数の非一時的コンピュータ可読記録媒体。
  13. 実行されるときに、デバイスに含まれる1つまたは複数のコンピューティングデバイスに、
    見る位置から撮影された物理的シーンのデプス画像を取得することであって、前記デプス画像が、複数のデプス値を含むとともに、前記物理的シーン内の複数の点に対応し、各デプス値が、前記見る位置から前記物理的シーン内の前記複数の点のうちの1つまでの距離を示す、取得することと、
    平らな表面を特定することであって、前記平らなオブジェクトが前記平らな表面に沿って位置付けられると推定される、特定することと、
    サポートマップを構築することであって、前記サポートマップが、前記平らなオブジェクトによって占められる前記平らな表面の部分および前記平らなオブジェクトの上に載っているオブジェクトのあり得る表面を示す、構築することと、
    遮蔽マップを構築することであって、前記遮蔽マップが、前記平らなオブジェクトがない前記平らな表面の部分を示す、構築することと、
    前記遮蔽マップおよび前記サポートマップを用いて前記平らな表面の境界をテストすることと、
    前記テストすることに基づいて前記平らな表面の境界を構築することと、
    前記遮蔽マップおよび前記サポートマップを用いて前記平らなオブジェクトの少なくとも1つの境界の表現を構築することと、
    前記遮蔽マップおよび前記平らなオブジェクトの前記少なくとも1つの境界に基づいて遮蔽傾きマップを構築することと、
    前記サポートマップおよび前記平らなオブジェクトの前記少なくとも1つの境界に基づいてサポート傾きマップを構築することと、
    前記遮蔽傾きマップおよび前記サポート傾きマップに基づいて前記平らなオブジェクトの境界に関連するセグメントを分類することであって
    線分を前記サポートマップに射影することと、
    前記線分を前記遮蔽マップに射影することと、
    前記射影された線分が前記平らなオブジェクトの真の端と一致するかどうかを判定することと
    を含む、分類することと
    を行わせる、平らなオブジェクトの表現を構築するためのコンピュータが実行可能な命令を記憶する、1つまたは複数の非一時的コンピュータ可読記録媒体。
  14. 前記平らなオブジェクトが、前記物理的シーン内のテーブルトップである、請求項11〜13のいずれか一項に記載の非一時的コンピュータ可読記録媒体。
  15. 前記デプス画像が、RGBデプスカメラを用いて取得される、請求項11〜13のいずれか一項に記載の非一時的コンピュータ可読記録媒体。
  16. 平らなオブジェクトの表現を構築するための装置であって、
    見る位置から撮影された物理的シーンのデプス画像を取得するための手段であって、前記デプス画像が、複数のデプス値を含むとともに、前記物理的シーン内の複数の点に対応し、各デプス値が、前記見る位置から前記物理的シーン内の前記複数の点のうちの1つまでの距離を示す、手段と、
    平らな表面を特定するための手段であって、前記平らなオブジェクトが前記平らな表面に沿って位置付けられると推定される、手段と、
    サポートマップを構築するための手段であって、前記サポートマップが、前記平らなオブジェクトによって占められる前記平らな表面の部分および前記平らなオブジェクトの上に載っているオブジェクトのあり得る表面を示す、手段と、
    遮蔽マップを構築するための手段であって、
    前記平らな表面を複数のセルに区切るための手段と、
    各セルに関して、前記見る位置から広がり、かつ前記平らな表面において前記セルを横切るのに十分なだけ大きなデプス値を有する点の数を数えるための手段と
    を含み、前記遮蔽マップが、前記平らなオブジェクトがない前記平らな表面の部分を示す、手段と、
    前記遮蔽マップおよび前記サポートマップを用いて前記平らな表面の境界をテストするための手段と、
    前記テストすることに基づいて前記平らな表面の境界を構築するための手段と、
    前記遮蔽マップおよび前記サポートマップを用いて前記平らなオブジェクトの少なくとも1つの境界の表現を構築するための手段と、
    前記遮蔽マップおよび前記平らなオブジェクトの前記少なくとも1つの境界に基づいて遮蔽傾きマップを構築するための手段と、
    前記サポートマップおよび前記平らなオブジェクトの前記少なくとも1つの境界に基づいてサポート傾きマップを構築するための手段と、
    前記遮蔽傾きマップおよび前記サポート傾きマップに基づいて前記平らなオブジェクトの境界に関連するセグメントを分類するための手段と
    を含む、装置。
  17. 平らなオブジェクトの表現を構築するための装置であって、
    見る位置から撮影された物理的シーンのデプス画像を取得するための手段であって、前記デプス画像が、複数のデプス値を含むとともに、前記物理的シーン内の複数の点に対応し、各デプス値が、前記見る位置から前記物理的シーン内の前記複数の点のうちの1つまでの距離を示す、手段と、
    平らな表面を特定するための手段であって、前記平らなオブジェクトが前記平らな表面に沿って位置付けられると推定される、手段と、
    サポートマップを構築するための手段であって、
    前記平らな表面を複数のセルに区切るための手段と、
    各セルに関して、前記見る位置から前記セルまで、または前記セルの上の空間の垂直なカラム内の位置まで広がるようにデプス値を有する点の数を数えるための手段
    を含み、前記サポートマップが、前記平らなオブジェクトによって占められる前記平らな表面の部分および前記平らなオブジェクトの上に載っているオブジェクトのあり得る表面を示す、手段と、
    遮蔽マップを構築するための手段であって、前記遮蔽マップが、前記平らなオブジェクトがない前記平らな表面の部分を示す、手段と、
    前記遮蔽マップおよび前記サポートマップを用いて前記平らな表面の境界をテストするための手段と、
    前記テストすることに基づいて前記平らな表面の境界を構築するための手段と、
    前記遮蔽マップおよび前記サポートマップを用いて前記平らなオブジェクトの少なくとも1つの境界の表現を構築するための手段と、
    前記遮蔽マップおよび前記平らなオブジェクトの前記少なくとも1つの境界に基づいて遮蔽傾きマップを構築するための手段と、
    前記サポートマップおよび前記平らなオブジェクトの前記少なくとも1つの境界に基づいてサポート傾きマップを構築するための手段と、
    前記遮蔽傾きマップおよび前記サポート傾きマップに基づいて前記平らなオブジェクトの境界に関連するセグメントを分類するための手段と
    を含、装置。
  18. 平らなオブジェクトの表現を構築するための装置であって、
    見る位置から撮影された物理的シーンのデプス画像を取得するための手段であって、前記デプス画像が、複数のデプス値を含むとともに、前記物理的シーン内の複数の点に対応し、各デプス値が、前記見る位置から前記物理的シーン内の前記複数の点のうちの1つまでの距離を示す、手段と、
    平らな表面を特定するための手段であって、前記平らなオブジェクトが前記平らな表面に沿って位置付けられると推定される、手段と、
    サポートマップを構築するための手段であって、前記サポートマップが、前記平らなオブジェクトによって占められる前記平らな表面の部分および前記平らなオブジェクトの上に載っているオブジェクトのあり得る表面を示す、手段と、
    遮蔽マップを構築するための手段であって、前記遮蔽マップが、前記平らなオブジェクトがない前記平らな表面の部分を示す、手段と、
    前記遮蔽マップおよび前記サポートマップを用いて前記平らな表面の境界をテストするための手段と、
    前記テストすることに基づいて前記平らな表面の境界を構築するための手段と、
    前記遮蔽マップおよび前記サポートマップを用いて前記平らなオブジェクトの少なくとも1つの境界の表現を構築するための手段と、
    前記遮蔽マップおよび前記平らなオブジェクトの前記少なくとも1つの境界に基づいて遮蔽傾きマップを構築するための手段と、
    前記サポートマップおよび前記平らなオブジェクトの前記少なくとも1つの境界に基づいてサポート傾きマップを構築するための手段と、
    前記遮蔽傾きマップおよび前記サポート傾きマップに基づいて前記平らなオブジェクトの境界に関連するセグメントを分類するための手段であって、
    線分を前記サポートマップに射影するための手段と、
    前記線分を前記遮蔽マップに射影するための手段と、
    前記射影された線分が前記平らなオブジェクトの真の端と一致するかどうかを判定するための手段
    を含む、手段と
    を含む、装置。
  19. 前記平らなオブジェクトが、前記物理的シーン内のテーブルトップである、請求項16〜18のいずれか一項に記載の装置。
  20. 前記デプス画像が、RGBデプスカメラを用いて取得される、請求項16〜18のいずれか一項に記載の装置。
JP2016538974A 2013-08-30 2014-08-20 拡張現実環境内の平面の広がりを判定するためのシステムおよび方法 Active JP6203406B2 (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201361872436P 2013-08-30 2013-08-30
US61/872,436 2013-08-30
US14/268,721 US9514574B2 (en) 2013-08-30 2014-05-02 System and method for determining the extent of a plane in an augmented reality environment
US14/268,721 2014-05-02
PCT/US2014/051955 WO2015031139A1 (en) 2013-08-30 2014-08-20 System and method for determining the extent of a plane in an augmented reality environment

Publications (3)

Publication Number Publication Date
JP2016534466A JP2016534466A (ja) 2016-11-04
JP2016534466A5 JP2016534466A5 (ja) 2017-03-16
JP6203406B2 true JP6203406B2 (ja) 2017-09-27

Family

ID=52582548

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016538974A Active JP6203406B2 (ja) 2013-08-30 2014-08-20 拡張現実環境内の平面の広がりを判定するためのシステムおよび方法

Country Status (6)

Country Link
US (1) US9514574B2 (ja)
EP (1) EP3039655B1 (ja)
JP (1) JP6203406B2 (ja)
KR (1) KR20160048901A (ja)
CN (1) CN105493154B (ja)
WO (1) WO2015031139A1 (ja)

Families Citing this family (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9304582B1 (en) * 2013-12-19 2016-04-05 Amazon Technologies, Inc. Object-based color detection and correction
WO2016079960A1 (en) * 2014-11-18 2016-05-26 Seiko Epson Corporation Image processing apparatus, control method for image processing apparatus, and computer program
JP2017007033A (ja) * 2015-06-22 2017-01-12 シャープ株式会社 ロボット
JP6602096B2 (ja) * 2015-08-18 2019-11-06 株式会社明和eテック 欠陥検出装置
US10088736B2 (en) * 2015-09-24 2018-10-02 Amazon Technologies, Inc. Unmanned aerial vehicle descent
KR102337931B1 (ko) 2016-06-27 2021-12-13 로베르트 보쉬 게엠베하 동적 가림 핸들링을 위한 시스템들 및 방법들
US10565786B1 (en) * 2016-06-30 2020-02-18 Google Llc Sensor placement interface
KR102246841B1 (ko) * 2016-10-05 2021-05-03 매직 립, 인코포레이티드 표면 모델링 시스템들 및 방법들
CN108629800A (zh) * 2017-03-20 2018-10-09 北京三星通信技术研究有限公司 平面确定方法及增强现实显示信息的显示方法、相应装置
DK180470B1 (en) 2017-08-31 2021-05-06 Apple Inc Systems, procedures, and graphical user interfaces for interacting with augmented and virtual reality environments
US10402646B2 (en) 2017-09-21 2019-09-03 Amazon Technologies, Inc. Object detection and avoidance for aerial vehicles
EP3468182A1 (en) * 2017-10-06 2019-04-10 InterDigital VC Holdings, Inc. A method and apparatus for encoding a point cloud representing three-dimensional objects
KR102509823B1 (ko) * 2017-12-27 2023-03-14 삼성전자주식회사 그리드 기반의 평면 추정 방법 및 장치
DK180842B1 (en) 2018-01-24 2022-05-12 Apple Inc Devices, procedures, and graphical user interfaces for System-Wide behavior for 3D models
US11126257B2 (en) * 2018-04-17 2021-09-21 Toyota Research Institute, Inc. System and method for detecting human gaze and gesture in unconstrained environments
KR102540546B1 (ko) 2018-08-23 2023-06-05 현대자동차주식회사 가솔린 egr 시스템의 밸브개방 제어장치 및 방법
CN109472873B (zh) * 2018-11-02 2023-09-19 北京微播视界科技有限公司 三维模型的生成方法、装置、硬件装置
CN110070600B (zh) * 2018-11-02 2023-09-15 北京微播视界科技有限公司 三维模型的生成方法、装置、硬件装置
CN113168820A (zh) 2018-12-13 2021-07-23 麦克赛尔株式会社 显示终端、显示控制系统以及显示控制方法
JP2020148712A (ja) * 2019-03-15 2020-09-17 東芝インフォメーションシステムズ株式会社 測距システム、測距装置及び配置方法
US11030474B1 (en) * 2019-05-28 2021-06-08 Apple Inc. Planar region boundaries based on intersection
JP2021033572A (ja) * 2019-08-22 2021-03-01 株式会社豊田自動織機 画像データ収集装置及び画像データ仕分け方法
US20220335649A1 (en) * 2019-10-30 2022-10-20 Hewlett-Packard Development Company, L.P. Camera pose determinations with depth
JP7366797B2 (ja) 2020-02-19 2023-10-23 株式会社Ihiインフラシステム コンクリート床版の平坦度計測装置
KR20210157601A (ko) 2020-06-22 2021-12-29 현대자동차주식회사 결빙 개선을 위한 lp-egr 시스템의 제어장치 및 방법
CN111899293B (zh) * 2020-09-29 2021-01-08 成都索贝数码科技股份有限公司 Ar应用中的虚实遮挡处理方法
US11960009B2 (en) * 2020-12-30 2024-04-16 Zoox, Inc. Object contour determination
US11972524B2 (en) * 2021-03-30 2024-04-30 Hcl Technologies Limited Method and system for generating tightest revolve envelope for computer-aided design (CAD) model

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6420698B1 (en) 1997-04-24 2002-07-16 Cyra Technologies, Inc. Integrated system for quickly and accurately imaging and modeling three-dimensional objects
US7509241B2 (en) 2001-07-06 2009-03-24 Sarnoff Corporation Method and apparatus for automatically generating a site model
JP4162095B2 (ja) 2003-12-11 2008-10-08 ストライダー ラブス,インコーポレイテッド 遮蔽された部分の表面を対称性の算出により見込み復元するための技術
US8050491B2 (en) * 2003-12-17 2011-11-01 United Technologies Corporation CAD modeling system and method
JP2006065608A (ja) * 2004-08-27 2006-03-09 Fuji Xerox Co Ltd 3次元モデル生成装置および方法
JP2006323608A (ja) * 2005-05-18 2006-11-30 Kozo Keikaku Engineering Inc 立体構造物群モデル作成装置、立体構造物群モデル作成方法及び立体モデル作成システム
WO2010049850A1 (en) 2008-10-28 2010-05-06 Koninklijke Philips Electronics N.V. Generation of occlusion data for image properties
US8933925B2 (en) 2009-06-15 2015-01-13 Microsoft Corporation Piecewise planar reconstruction of three-dimensional scenes
KR101686169B1 (ko) * 2010-02-09 2016-12-14 삼성전자주식회사 옥트리 기반의 3차원 맵 생성 장치 및 방법
CN102509342A (zh) * 2011-09-22 2012-06-20 北京航空航天大学 一种共享增强现实场景中协同式虚实遮挡处理方法
US9092657B2 (en) * 2013-03-13 2015-07-28 Microsoft Technology Licensing, Llc Depth image processing

Also Published As

Publication number Publication date
CN105493154A (zh) 2016-04-13
JP2016534466A (ja) 2016-11-04
CN105493154B (zh) 2019-05-31
WO2015031139A1 (en) 2015-03-05
EP3039655A1 (en) 2016-07-06
EP3039655B1 (en) 2020-04-29
US9514574B2 (en) 2016-12-06
US20150062117A1 (en) 2015-03-05
KR20160048901A (ko) 2016-05-04

Similar Documents

Publication Publication Date Title
JP6203406B2 (ja) 拡張現実環境内の平面の広がりを判定するためのシステムおよび方法
US10083540B2 (en) Virtual light in augmented reality
KR102529120B1 (ko) 영상을 획득하는 방법, 디바이스 및 기록매체
JP6423435B2 (ja) 物理的光景を表すための方法および装置
US10789776B2 (en) Structural modeling using depth sensors
KR101227255B1 (ko) 마커 크기 기반 인터렉션 방법 및 이를 구현하기 위한 증강 현실 시스템
JP2018507476A (ja) コンピュータビジョンに関する遮蔽処理
EP3629302B1 (en) Information processing apparatus, information processing method, and storage medium
US9595125B2 (en) Expanding a digital representation of a physical plane
KR20160027862A (ko) 이미지 데이터를 처리하는 방법과 이를 지원하는 전자 장치
US11562545B2 (en) Method and device for providing augmented reality, and computer program
KR102561274B1 (ko) 디스플레이 장치 및 디스플레이 장치의 제어 방법
CN110286906B (zh) 用户界面显示方法、装置、存储介质与移动终端
KR101308184B1 (ko) 윈도우 형태의 증강현실을 제공하는 장치 및 방법
CN113178017A (zh) Ar数据展示方法、装置、电子设备及存储介质
JP2017016166A (ja) 画像処理装置及び画像処理方法
JP7107015B2 (ja) 点群処理装置、点群処理方法およびプログラム
CN109710054B (zh) 用于头戴式显示设备的虚拟物体呈现方法和装置
KR101939530B1 (ko) 지형정보 인식을 기반으로 증강현실 오브젝트를 표시하는 방법 및 그 장치
KR20130015617A (ko) 포즈 예측 방법과 장치 그리고 증강 현실 시스템

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170206

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170206

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20170206

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20170331

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20170406

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170424

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170721

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20170731

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170829

R150 Certificate of patent or registration of utility model

Ref document number: 6203406

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250