JP7282175B2 - 人工現実システムにおいて平面を識別すること - Google Patents

人工現実システムにおいて平面を識別すること Download PDF

Info

Publication number
JP7282175B2
JP7282175B2 JP2021530141A JP2021530141A JP7282175B2 JP 7282175 B2 JP7282175 B2 JP 7282175B2 JP 2021530141 A JP2021530141 A JP 2021530141A JP 2021530141 A JP2021530141 A JP 2021530141A JP 7282175 B2 JP7282175 B2 JP 7282175B2
Authority
JP
Japan
Prior art keywords
vanishing point
image
virtual object
straight line
line segments
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
JP2021530141A
Other languages
English (en)
Other versions
JP2022520517A (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 JP2022520517A publication Critical patent/JP2022520517A/ja
Application granted granted Critical
Publication of JP7282175B2 publication Critical patent/JP7282175B2/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/20Editing of 3D images, e.g. changing shapes or colours, aligning objects or positioning parts
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • G06T11/60Editing figures and text; Combining figures or text
    • 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
    • G06T3/00Geometric image transformations in the plane of the image
    • G06T3/04Context-preserving transformations, e.g. by using an importance map
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/10Segmentation; Edge detection
    • G06T7/11Region-based segmentation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/10Segmentation; Edge detection
    • G06T7/13Edge detection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/50Depth or shape recovery
    • G06T7/536Depth or shape recovery from perspective effects, e.g. by using vanishing points
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/50Depth or shape recovery
    • G06T7/55Depth or shape recovery from multiple images
    • G06T7/579Depth or shape recovery from multiple images from motion
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/90Determination of colour characteristics
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/40Extraction of image or video features
    • G06V10/44Local feature extraction by analysis of parts of the pattern, e.g. by detecting edges, contours, loops, corners, strokes or intersections; Connectivity analysis, e.g. of connected components
    • G06V10/443Local feature extraction by analysis of parts of the pattern, e.g. by detecting edges, contours, loops, corners, strokes or intersections; Connectivity analysis, e.g. of connected components by matching or filtering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/35Categorising the entire scene, e.g. birthday party or wedding scene
    • G06V20/38Outdoor scenes
    • G06V20/39Urban scenes
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/20Image preprocessing
    • G06V10/24Aligning, centring, orientation detection or correction of the image
    • G06V10/247Aligning, centring, orientation detection or correction of the image by affine transforms, e.g. correction due to perspective effects; Quadrilaterals, e.g. trapezoids
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/20Scenes; Scene-specific elements in augmented reality scenes

Landscapes

  • Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Software Systems (AREA)
  • Computer Graphics (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Architecture (AREA)
  • User Interface Of Digital Computer (AREA)
  • Processing Or Creating Images (AREA)
  • Image Analysis (AREA)
  • Image Generation (AREA)

Description

本開示は、一般に、人工現実システムに関し、詳細には、人工現実システムにおいて平坦面を識別することに関する。
本発明の実施形態は、人工現実システムを含むか、または人工現実システムに関連して実装され得る。人工現実は、ユーザへの提示の前に何らかの様式で調整された形式の現実であり、これは、たとえば、仮想現実(VR)、拡張現実(AR)、複合現実(MR)、ハイブリッド現実、あるいはそれらの何らかの組合せおよび/または派生物を含み得る。人工現実コンテンツは、完全に生成されたコンテンツ、またはキャプチャされたコンテンツ(たとえば、現実世界の写真)と組み合わせられた生成されたコンテンツを含み得る。人工現実コンテンツは、ビデオ、オーディオ、触覚フィードバック、またはそれらの何らかの組合せを含み得、それらのいずれも、単一のチャネルまたは複数のチャネルにおいて提示され得る(観察者に3次元効果をもたらすステレオビデオなど)。加えて、いくつかの実施形態では、人工現実は、たとえば、人工現実におけるコンテンツを作り出すために使用される、および/または人工現実において使用される(たとえば、人工現実におけるアクティビティを実施する)アプリケーション、製品、アクセサリ、サービス、またはそれらの何らかの組合せに関連付けられ得る。人工現実コンテンツを提供する人工現実システムは、ホストコンピュータシステムに接続されたヘッドマウントディスプレイ(HMD)、スタンドアロンHMD、モバイルデバイスまたはコンピューティングシステム、あるいは、1人または複数の観察者に人工現実コンテンツを提供することが可能な任意の他のハードウェアプラットフォームを含む、様々なプラットフォーム上に実装され得る。
特定の実施形態では、人工現実システムにおけるコンピューティングデバイスが、直線セグメントの対応する消失点によって分類された検出された直線セグメントに基づいて、画像における1つまたは複数の平面を識別し得る。コンピューティングデバイスは、仮想オブジェクトをユーザの周りの現実と融合することを必要とされ得る。仮想オブジェクトを現実と融合するために、コンピューティングデバイスは、ユーザの周りの物理世界の画像におけるまたは一連の画像フレームにおける、壁、床、天井、および他の物理平面を識別することができる必要があり得る。コンピューティングデバイスは、物理世界の画像における識別された平面上に仮想オブジェクトを表示し得る。平面を識別するための前のソリューションは、ステレオおよび/または深度算出を必要とし得、これは、同時位置特定およびマッピング(SLAM)などにおいて、2つまたはそれ以上のカメラ(ステレオ)を必要とするか、または2つまたはそれ以上のカメラを有することをシミュレートするためにカメラを四方に振ることを必要とし得る。本出願で導入されるコンピューティングデバイスは、検出された直線セグメントに基づいて、単一の画像における平面を識別し得る。コンピューティングデバイスは、検出された直線セグメントに基づいて、画像における複数の消失点を検出し得る。消失点は、3次元空間における互いに平行の線の2次元透視投影が収束するように見える、画像平面上の点である。コンピューティングデバイスは、2つの直交する消失点に対応する近くの検出された直線セグメントに基づいて、2次元平面領域を識別し得る。コンピューティングデバイスは、識別された平面領域上に1つまたは複数の仮想オブジェクトを配置し得る。仮想オブジェクトは、2次元オブジェクトまたは3次元オブジェクトであり得る。
コンピューティングデバイスは、物理世界シーンの画像にアクセスし得る。コンピューティングデバイスは、アクセスされた画像における複数の直線セグメントを検出し得る。コンピューティングデバイスは、画像における第1の消失点および第2の消失点を識別し得、各消失点は複数の直線セグメントのサブセットに対応し、第1の消失点と第2の消失点とは直交する。コンピューティングデバイスは、第1の消失点に関連する1つまたは複数の直線セグメントと、第2の消失点に関連する1つまたは複数の直線セグメントとに基づいて、アクセスされた画像における平面領域を識別し得る。コンピューティングデバイスは、平面領域に関連する1つまたは複数の特性に基づいて平面領域に関連する仮想オブジェクトを変換し得る。コンピューティングデバイスは、画像上で、変換された仮想オブジェクトを表示し得る。
本明細書で開示される実施形態は例にすぎず、本開示の範囲はそれらに限定されない。特定の実施形態は、本明細書で開示される実施形態の構成要素、要素、特徴、機能、動作、またはステップのすべてを含むか、いくつかを含むか、またはいずれをも含まないことがある。本発明による実施形態は、特に、方法、記憶媒体、およびシステムを対象とする添付の特許請求の範囲で開示され、1つの請求項カテゴリー、たとえば、方法において述べられた任意の特徴は、別の請求項カテゴリー、たとえば、システム、記憶媒体、およびコンピュータプログラム製品においても請求され得る。添付の特許請求の範囲における従属関係または参照は、形式的理由で選定されるにすぎない。ただし、前の請求項への意図的な参照(特に複数の従属関係)から生じる主題も請求され得、その結果、請求項とその特徴との任意の組合せが、開示され、添付の特許請求の範囲で選定された従属関係にかかわらず請求され得る。請求され得る主題は、添付の特許請求の範囲に記載の特徴の組合せだけでなく、特許請求の範囲における特徴の任意の他の組合せをも含み、特許請求の範囲において述べられた各特徴は、特許請求の範囲における任意の他の特徴または他の特徴の組合せと組み合わせられ得る。さらに、本明細書で説明または示される実施形態および特徴のいずれかは、別個の請求項において、ならびに/あるいは、本明細書で説明もしくは示される任意の実施形態もしくは特徴との、または添付の特許請求の範囲の特徴のいずれかとの任意の組合せで請求され得る。
一実施形態では、方法、特に、コンピュータ実装方法は、
コンピューティングデバイスによって、物理世界シーンの画像にアクセスすることと、
コンピューティングデバイスによって、アクセスされた画像における複数の直線セグメントを検出することと、
コンピューティングデバイスによって、画像における第1の消失点および第2の消失点を識別することであって、各消失点が複数の直線セグメントのサブセットに対応し、第1の消失点と第2の消失点とが直交する、第1の消失点および第2の消失点を識別することと、
コンピューティングデバイスによって、第1の消失点に関連する1つまたは複数の直線セグメントと、第2の消失点に関連する1つまたは複数の直線セグメントとに基づいて、アクセスされた画像における平面領域を識別することと、
コンピューティングデバイスによって、平面領域に関連する1つまたは複数の特性に基づいて平面領域に関連する仮想オブジェクトを変換することと、
コンピューティングデバイスによって、画像上で、変換された仮想オブジェクトを表示することと
を含み得る。
アクセスされた画像における複数の直線セグメントを検出することは、
アクセスされた画像におけるエッジを検出することであって、エッジは、画像輝度が不連続性を有する点のセットである、アクセスされた画像におけるエッジを検出することと、
アクセスされた画像における検出されたエッジから非直線エッジをフィルタ処理することと
を含み得る。
アクセスされた画像におけるエッジは、オブジェクトの境界、物質特性の境界、またはライティングの境界を表し得る。
アクセスされた画像におけるエッジは、ステップエッジとバーエッジとを含み得る。
第1の消失点または第2の消失点は、複数の直線セグメントの関連するサブセットから延長された線が、画像を含む2次元平面における点において交差し得る、有限消失点であり得る。
第1の消失点または第2の消失点は無限消失点であり得、関連する直線セグメントから延長された線は、画像において平行のままであり得る。
第1の消失点または第2の消失点を識別することは、複数の直線セグメントをクラスタリングすることを含み得る。
第1の消失点または第2の消失点を識別することは、候補消失点を生成するために、ランダムサンプルコンセンサス(RANSAC)を利用することを含み得る。
第1の消失点または第2の消失点を識別することは、コンピューティングデバイス上で利用可能な慣性測定ユニット(IMU)情報に基づき得る。
同時位置特定およびマッピング(SLAM)からの点群が、平面領域の深度を検出するために使用され得る。
仮想オブジェクトは2次元オブジェクトであり得る。
仮想オブジェクトは3次元オブジェクトであり得る。
一実施形態では、方法は、
ユーザからのコマンドに基づいて、平面領域内の新しい位置に仮想オブジェクトを移動することであって、仮想オブジェクトが、平面領域の配向に対する仮想オブジェクトの相対配向と、平面領域のサイズに対する仮想オブジェクトの相対サイズとを移動後に同じに保つやり方で変換される、仮想オブジェクトを移動すること
を含み得る。
一実施形態では、方法は、
ユーザからのコマンドに基づいて、平面領域内の仮想オブジェクトをリサイズすることであって、仮想オブジェクトが、平面領域の配向に対する仮想オブジェクトの相対配向と、仮想オブジェクトの配置位置とをリサイズ後に同じに保つやり方で変換される、仮想オブジェクトをリサイズすること
を含み得る。
平面領域は、平面追跡アルゴリズムを利用することによって後続のフレームにおいて追跡され得る。
一実施形態では、方法は、
後のフレームにおいて平面領域の配向が変化することを検出することと、
平面領域の配向に対する仮想オブジェクトの相対配向を整合するように維持するように、仮想オブジェクトを変換することと
を含み得る。
一実施形態では、方法は、
後のフレームにおいて平面領域のスケールが変化することを検出することと、
平面領域のサイズに対する仮想オブジェクトの相対サイズを整合するように維持するように、仮想オブジェクトを変換することと
を含み得る。
一実施形態では、1つまたは複数のコンピュータ可読非一時的記憶媒体がソフトウェアを具現し得、ソフトウェアは、実行されたとき、
物理世界シーンの画像にアクセスすることと、
アクセスされた画像における複数の直線セグメントを検出することと、
画像における第1の消失点および第2の消失点を識別することであって、各消失点が複数の直線セグメントのサブセットに対応し、第1の消失点と第2の消失点とが直交する、第1の消失点および第2の消失点を識別することと、
第1の消失点に関連する1つまたは複数の直線セグメントと、第2の消失点に関連する1つまたは複数の直線セグメントとに基づいて、アクセスされた画像における平面領域を識別することと、
平面領域に関連する1つまたは複数の特性に基づいて平面領域に関連する仮想オブジェクトを変換することと、
画像上で、変換された仮想オブジェクトを表示することと
を行うように動作可能である。
アクセスされた画像における複数の直線セグメントを検出することは、
アクセスされた画像におけるエッジを検出することであって、エッジは、画像輝度が不連続性を有する点のセットである、アクセスされた画像におけるエッジを検出することと、
アクセスされた画像における検出されたエッジから非直線エッジをフィルタ処理することと
を含み得る。
一実施形態では、システムは、1つまたは複数のプロセッサと、プロセッサによって実行可能な命令を備える、プロセッサに結合された非一時的メモリとを備え得、プロセッサは、命令を実行したとき、
物理世界シーンの画像にアクセスすることと、
アクセスされた画像における複数の直線セグメントを検出することと、
画像における第1の消失点および第2の消失点を識別することであって、各消失点が複数の直線セグメントのサブセットに対応し、第1の消失点と第2の消失点とが直交する、第1の消失点および第2の消失点を識別することと、
第1の消失点に関連する1つまたは複数の直線セグメントと、第2の消失点に関連する1つまたは複数の直線セグメントとに基づいて、アクセスされた画像における平面領域を識別することと、
平面領域に関連する1つまたは複数の特性に基づいて平面領域に関連する仮想オブジェクトを変換することと、
画像上で、変換された仮想オブジェクトを表示することと
を行うように動作可能である。
本発明による一実施形態では、1つまたは複数のコンピュータ可読非一時的記憶媒体は、実行されたとき、本発明による方法または上述の実施形態のいずれかを実施するように動作可能であるソフトウェアを具現し得る。
本発明による一実施形態では、システムは、1つまたは複数のプロセッサと、プロセッサに結合され、プロセッサによって実行可能な命令を備える少なくとも1つのメモリとを備え得、プロセッサは、命令を実行したとき、本発明による方法または上述の実施形態のいずれかを実施するように動作可能である。
本発明による一実施形態では、好ましくはコンピュータ可読非一時的記憶媒体を備えるコンピュータプログラム製品は、データ処理システム上で実行されたとき、本発明による方法または上述の実施形態のいずれかを実施するように動作可能であり得る。
画像における検出された平面上に仮想オブジェクトが配置された、例示的なシナリオを示す図である。 画像における検出された平面上に仮想オブジェクトを表示するコンピューティングデバイスの例示的なアーキテクチャを示す図である。 簡略化された例示的な画像を示す図である。 画像における例示的な直線セグメント検出を示す図である。 画像における例示的な消失点を示す図である。 2つの直交する消失点からの直線セグメントに基づいて識別された例示的な平面領域を示す図である。 画像における識別された平面領域上に配置された例示的な仮想オブジェクトを示す図である。 後続のフレームにおける例示的な平面領域追跡を示す図である。 画像における平面領域上に仮想オブジェクトを表示するための例示的な方法を示す図である。 ソーシャルネットワーキングシステムに関連する例示的なネットワーク環境を示す図である。 例示的なコンピュータシステムを示す図である。
特定の実施形態では、人工現実システムにおけるコンピューティングデバイスが、直線セグメントの対応する消失点によって分類された検出された直線セグメントに基づいて、画像における1つまたは複数の平面を識別し得る。コンピューティングデバイスは、仮想オブジェクトをユーザの周りの現実と融合することを必要とされ得る。仮想オブジェクトを現実と融合するために、コンピューティングデバイスは、ユーザの周りの物理世界の画像におけるまたは一連の画像フレームにおける、壁、床、天井、および他の物理平面を識別することができる必要があり得る。コンピューティングデバイスは、物理世界の画像における識別された平面上に仮想オブジェクトを表示し得る。平面を識別するための前のソリューションは、ステレオおよび/または深度算出を必要とし得、これは、同時位置特定およびマッピング(SLAM)などにおいて、2つまたはそれ以上のカメラ(ステレオ)を必要とするか、または2つまたはそれ以上のカメラを有することをシミュレートするためにカメラを四方に振ることを必要とし得る。本出願で導入されるコンピューティングデバイスは、検出された直線セグメントに基づいて、単一の画像における平面を識別し得る。コンピューティングデバイスは、検出された直線セグメントに基づいて、画像における複数の消失点を検出し得る。消失点は、3次元空間における互いに平行の線の2次元透視投影が収束するように見える、画像平面上の点である。コンピューティングデバイスは、2つの直交する消失点に対応する近くの検出された直線セグメントに基づいて、2次元平面領域を識別し得る。コンピューティングデバイスは、識別された平面領域上に1つまたは複数の仮想オブジェクトを配置し得る。仮想オブジェクトは、2次元オブジェクトまたは3次元オブジェクトであり得る。本開示は、特定の様式で画像における1つまたは複数の平面を識別することについて説明するが、本開示は、任意の好適な様式で画像における1つまたは複数の平面を識別することを企図する。
図1は、画像における検出された平面上に仮想オブジェクトが配置された、例示的なシナリオを示す。ユーザが、ユーザのコンピューティングデバイス101上のカメラをオンにし、そのカメラを使用してユーザの周囲環境をキャプチャし得る。コンピューティングデバイス101に関連するディスプレイ103が、現在キャプチャされた画像を提示し得る。ユーザは、キャプチャされた画像における建築物の壁に仮想フラグ105を配置し得る。仮想フラグ105の配向は、仮想フラグ105が配置された壁の配向に整合し得る。仮想フラグ105が壁に配置された後に、コンピューティングデバイス101は、仮想フラグ105が壁の一部であるかのように、仮想フラグ105をレンダリングし得る。ユーザが建築物をズームアップする場合、コンピューティングデバイス101は、壁と仮想フラグ105との間のスケール比が整合するように、仮想フラグ105のサイズを調整し得る。ユーザがカメラを動かすので、壁の配向が変化するとき、コンピューティングデバイス101は、仮想フラグ105の配向が壁の配向に整合するように、仮想フラグ105の配向を調整し得る。本開示は、画像における平面上に仮想オブジェクトを表示するための特定のシナリオについて説明するが、本開示は、画像における平面上に仮想オブジェクトを表示するための任意の好適なシナリオを企図する。
図2は、画像における検出された平面上に仮想オブジェクトを表示するコンピューティングデバイスの例示的なアーキテクチャを示す。コンピューティングデバイス101は、周辺デバイス210に関連し得る。周辺機器210は、慣性測定ユニット(IMU)211、1つまたは複数のカメラ213、1つまたは複数のディスプレイ215、または任意の他の好適な周辺デバイスを備え得る。IMU211は、加速度計とジャイロスコープと、随意に磁力計との組合せを使用して、コンピューティングデバイスの配向、線形加速度および角加速度、ならびに時々コンピューティングデバイス101の周囲の磁界を測定し得る。コンピューティングデバイス101は、所与のデジタル画像において1つまたは複数の平面領域を検出する平面領域検出モジュール群220を備え得る。平面領域検出モジュール群220は、線セグメント検出モジュール221と、消失点検出モジュール223と、平面領域検出モジュール225と、任意の好適なモジュールとを備え得る。コンピューティングデバイス101は、1つまたは複数の検出された平面領域上に1つまたは複数の仮想オブジェクトを表示する仮想オブジェクト拡張モジュール群230をも備え得る。仮想オブジェクト拡張モジュール群230は、オブジェクト変換モジュール231と、平面追跡モジュール233と、任意の好適なモジュールとを備え得る。本開示は、画像における検出された平面上に仮想オブジェクトを表示するためのコンピューティングデバイスの特定のアーキテクチャについて説明するが、本開示は、画像における検出された平面上に仮想オブジェクトを表示するためのコンピューティングデバイスの任意の好適なアーキテクチャを企図する。
特定の実施形態では、コンピューティングデバイス101は、物理世界シーンの画像にアクセスし得る。特定の実施形態では、画像は、コンピューティングデバイス101に関連するカメラによって、リアルタイムでキャプチャされ得る。図3Aは、簡略化された例示的な画像300を示す。図3A中の画像300は、ある側にドアがあり、別の側に2つの窓がある、建築物をキャプチャする。限定としてではなく一例として、図3Aに示されているように、コンピューティングデバイス101は、コンピューティングデバイス101に関連するカメラによってキャプチャされたデジタル画像300を受信し得る。コンピューティングデバイス101は、コンピューティングデバイス101に関連するディスプレイ103上に、デジタル画像300を提示し得る。デジタル画像300は、コンピューティングデバイス101がさらにデジタル画像300を処理し得るように、コンピューティングデバイス101に関連するメモリの一部に記憶され得る。限定としてではなく別の例として、コンピューティングデバイス101に関連するユーザが、複数の利用可能なデジタル画像からデジタル画像を選択し得る。コンピューティングデバイス101は、コンピューティングデバイス101に関連するディスプレイ103上に、選択された画像を提示し得る。コンピューティングデバイス101は、コンピューティングデバイス101に関連するメモリの一部上の選択されたデジタル画像にアクセスすることが可能であり得る。本開示は、特定の様式でデジタル画像にアクセスすることについて説明するが、本開示は、任意の好適な様式でデジタル画像にアクセスすることを企図する。
特定の実施形態では、コンピューティングデバイス101の線セグメント検出モジュール221は、アクセスされた画像における複数の直線セグメントを検出し得る。最初に、線セグメント検出モジュール221は、アクセスされた画像におけるエッジを検出し得る。画像におけるエッジは、画像輝度が不連続性を有する点のセットであり得る。アクセスされた画像におけるエッジはステップエッジであり得、ステップエッジは、画像輝度が迅速に変化する点のセットである。アクセスされた画像におけるエッジはバーエッジであり得、バーエッジは、両側からの画像輝度が異なる点のセットである。線セグメント検出モジュール221は、OpenCVライブラリからの線セグメント検出器であり得る。特定の実施形態では、線セグメント検出モジュール221は、ステップエッジとバーエッジの両方を検出することができるプロプライエタリモジュールであり得る。アクセスされた画像における検出されたエッジは、オブジェクトの境界、物質特性の境界、またはライティングの境界を表し得る。複数の直線セグメントを検出するために、線セグメント検出モジュール221は、アクセスされた画像における検出されたエッジから非直線エッジをフィルタ処理し得る。図3Bは、画像における例示的な直線セグメント検出を示す。限定としてではなく一例として、図3Bに示されているように、線セグメント検出モジュール221は、エッジ検出アルゴリズムを使用して、画像300における複数のエッジを検出し得る。線セグメント検出モジュール221は、画像300における直線セグメントを得るために、検出されたエッジから非直線エッジをフィルタ処理し得る。図3Bに示されている例では、直線セグメント301の第1のサブセットが、画像300の左側のほうへ伸びる。直線セグメント301の第1のサブセットは、3次元空間において互いに平行であり得る。直線セグメント303の第2のサブセットが、画像300の右側のほうへ伸びる。直線セグメント301の第2のサブセットは、3次元空間において互いに平行であり得る。また、直線セグメント305の第3のサブセットが、画像300の上側のほうへ伸びる。直線セグメント301の第3のサブセットは、3次元空間において互いに平行であり得る。本開示は、特定の様式で所与の画像における直線セグメントを検出することについて説明するが、本開示は、任意の好適な様式で所与の画像における直線セグメントを検出することを企図する。
図3Cは、画像における例示的な消失点を示す。画像は、3次元空間の2次元表現であり得る。画像における消失点は、画像における直線セグメントのセットに関連し得る。第1の消失点311は、直線セグメント301の第1のサブセットから延長された直線が交差する、画像平面における点であり得る。第2の消失点313は、直線セグメント303の第2のサブセットから延長された直線が交差する、画像平面における点であり得る。第1の消失点311および第2の消失点313は、関連する直線セグメントが消失点において交差するので、有限消失点と呼ばれることがある。画像の所与の視点から有限消失点への想像線が、3次元空間における有限消失点に関連する直線セグメントのセットに平行であり得る。想像線は、有限消失点に対応する方向を表し得る。直線セグメント305の第3のサブセットは、図3B中の画像平面において互いに平行に伸びる。直線セグメント305のサブセットは単一の点において交差しないので、第3の消失点315は、無限消失点と呼ばれることがある。無限消失点に関連する各直線セグメントは、3次元空間における無限消失点に関連する方向を表し得る。
特定の実施形態では、コンピューティングデバイス101の消失点検出モジュール223は、画像における第1の消失点および第2の消失点を識別し得、第1の消失点と第2の消失点とは直交し得る。各消失点は、画像における複数の直線セグメントのサブセットに関連し得る。特定の実施形態では、第1の消失点または第2の消失点は、複数の直線セグメントの関連するサブセットから延長された線が、画像を含む2次元平面における点において交差する、有限消失点であり得る。特定の実施形態では、第1の消失点または第2の消失点は無限消失点であり得、関連する直線セグメントから延長された線は、画像を含む2次元平面において平行のままであり得る。限定としてではなく一例として、図3Cに示されているように、コンピューティングデバイス101の消失点検出モジュール223は、第1の消失点311と第3の消失点315とを検出し、第1の消失点311と第3の消失点315とが直交すると決定し得る。第1の消失点311と第3の消失点315とが直交するかどうかを決定するために、コンピューティングデバイス101の消失点検出モジュール223は、(ピクセルに換算した、または画像の幅または高さの何分の1かとしての)焦点距離を決定するために、カメラ較正を実施し得る。正確な焦点距離が利用可能でないとき、推定される1つまたは複数の消失点が、焦点距離を改良するのに役立ち得る。第1の消失点311は、第1の消失点311に関連する直線セグメント301の第1のサブセットが第1の消失点311において交差するので、有限消失点である。第3の消失点315は、直線セグメント305の第3のサブセットが画像平面において平行のままであるので、無限消失点である。限定としてではなく別の例として、同じく図3Cに示されているように、コンピューティングデバイス101の消失点検出モジュール223は、第2の消失点313をも検出し、第2の消失点313と第3の消失点315とが直交すると決定し得る。第2の消失点313は有限消失点である。本開示は、特定の様式で画像における直交する2つの消失点を識別することについて説明するが、本開示は、任意の好適な様式で画像における直交する2つの消失点を識別することを企図する。
特定の実施形態では、コンピューティングデバイス101の消失点検出モジュール223は、消失点を識別するために複数の直線セグメントをクラスタリングし得る。特定の実施形態では、コンピューティングデバイス101の消失点検出モジュール223は、消失点を識別するために、候補消失点を生成するためにランダムサンプルコンセンサス(RANSAC)を利用し得る。特定の実施形態では、RANSACを利用する代わりに、コンピューティングデバイス101の消失点検出モジュール223は、2D投票(ハフ変換の変形態)を介して消失点を識別し得、画像における各直線セグメントが3D方向に投票し得る。そのような方向は、ヘミキューブ(hemicube)データ構造を介して符号化され得、画像線が点として表され得る。消失点は共点線(concurrent line)のセットに対応し得、これは、ヘミキューブにおいて共線点(collinear point)のセットにマッピングし得る。1つまたは複数の消失点は、ヘミキューブにおいて、近くの点のグループに線を適合させることによって見つけられ得る。特定の実施形態では、コンピューティングデバイス101の消失点検出モジュール223は、コンピューティングデバイス101上で利用可能なIMU211情報に基づいて消失点を識別し得る。コンピューティングデバイス101の消失点検出モジュール223は、IMU211からの情報に基づいて垂直消失点の位置を推定し得る。コンピューティングデバイス101の消失点検出モジュール223はまた、水平線(カメラがその上にある水平平面の投影である線)を算出し得る。コンピューティングデバイス101の消失点検出モジュール223は、1D投票(1Dハフ変換)を介して垂直消失点に直交する1つまたは複数の消失点を識別し得る。本開示は、特定の様式で消失点を識別することについて説明するが、本開示は、任意の好適な様式で消失点を識別することを企図する。
特定の実施形態では、コンピューティングデバイス101の平面領域検出モジュール225は、第1の消失点に関連する1つまたは複数の直線セグメントと、第2の消失点に関連する1つまたは複数の直線セグメントとに基づいて、アクセスされた画像における平面領域を識別し得、第1の消失点と第2の消失点とは直交する。図3Dは、2つの直交する消失点からの直線セグメントに基づいて識別された例示的な平面領域を示す。限定としてではなく一例として、図3Dに示されているように、コンピューティングデバイス101の平面領域検出モジュール225は、第1の消失点311に関連する直線セグメント301と第3の消失点315に関連する直線セグメント305とによって第1の平面領域321を識別し得る。第1の消失点311と第3の消失点315とは互いに直交し得る。直線セグメントはまた、複数のフレーム上で仮想オブジェクトの整合するスケールを確立するために使用され得る。平面領域検出モジュール225は、第1の消失点311および第2の消失点315に関連する1つまたは複数の直線セグメントに基づいて、第1の平面領域321の境界を識別し得る。平面領域検出モジュール225は、第2の消失点313に関連する直線セグメント303と第3の消失点315に関連する直線セグメント305とによって第2の平面領域323をも識別し得る。第2の消失点313と第3の消失点315とは互いに直交し得る。本開示は、特定の様式で画像における平面領域を識別することについて説明するが、本開示は、任意の好適な様式で画像における平面領域を識別することを企図する。
特定の実施形態では、コンピューティングデバイス101のオブジェクト変換モジュール231は、平面領域に関連する1つまたは複数の特性に基づいて平面領域に関連する仮想オブジェクトを変換し得る。1つまたは複数の特性は、平面領域に関連する配向、サイズ、ロケーションまたは任意の好適な特性を含み得る。特定の実施形態では、仮想オブジェクトは2次元オブジェクトであり得る。特定の実施形態では、仮想オブジェクトは3次元オブジェクトであり得る。図3Eは、画像における識別された平面領域上に配置された例示的な仮想オブジェクトを示す。限定としてではなく一例として、仮想フラグ331が、第1の平面領域321上に配置される。図3Eに示されている例では、仮想フラグ331の配向は、第1の平面領域321の配向に整合し得る。コンピューティングデバイス101は、指定されたロケーションに仮想フラグ331を配置するためのコマンドをユーザから受信し得る。指定されたロケーションは、第1の平面領域321に属し得る。オブジェクト変換モジュール231は、仮想フラグ331の配向が第1の平面領域321の配向に整合するように、仮想フラグ331を変換し得る。オブジェクト変換モジュール231は、仮想フラグ331のサイズなど、仮想フラグ331の任意の特性についてのユーザからの要求を満たすように、仮想フラグ331を変換し得る。本開示は、特定の様式で平面領域に関連する仮想オブジェクトを変換することについて説明するが、本開示は、任意の好適な様式で平面領域に関連する仮想オブジェクトを変換することを企図する。
特定の実施形態では、コンピューティングデバイス101は、画像上で、変換された仮想オブジェクトを表示し得る。限定としてではなく一例として、前の例を続けると、コンピューティングデバイス101は、変換された仮想フラグ331を画像における指定されたロケーションに配置し得る。指定されたロケーションは、第1の平面領域321に属し得る。本開示は、特定の様式で画像上で、変換された仮想オブジェクトを表示することについて説明するが、本開示は、任意の好適な様式で画像上で、変換された仮想オブジェクトを表示することを企図する。
特定の実施形態では、コンピューティングデバイス101は、ユーザから、仮想オブジェクトを平面領域内の新しい位置に移動するためのコマンドを受信し得る。コンピューティングデバイス101のオブジェクト変換モジュール231は、平面領域の配向に対する仮想オブジェクトの相対配向と、平面領域のサイズに対する仮想オブジェクトの相対サイズとを移動後に不変に保つやり方で、仮想オブジェクトを変換し得る。コンピューティングデバイス101は、変換された仮想オブジェクトを平面領域内の新しい位置に移動し得る。コンピューティングデバイス101は、仮想オブジェクトに近い直線セグメントを追跡することによって、平面領域の配向に対する仮想オブジェクトの相対配向と、平面領域のサイズに対する仮想オブジェクトの相対サイズとを保ち得る。限定としてではなく一例として、前の例を続けると、ユーザは、第1の平面領域321内で第1のロケーションから第2のロケーションに仮想フラグ331をドラッグし、第2のロケーションにおいて仮想フラグ331をドロップし得る。コンピューティングデバイス101のオブジェクト変換モジュール231は、第1の平面領域321の配向に対する仮想フラグ331の相対配向と、平面領域321のサイズに対する仮想フラグ331の相対サイズとを移動後に不変にするように、仮想フラグ331を変換し得る。コンピューティングデバイス101は、第1の平面領域321に属する第2のロケーションにおいて、変換された仮想フラグ331を表示し得る。限定としてではなく別の例として、ユーザは、第1の平面領域321に属する第1のロケーションから、第2の平面領域323に属する第3のロケーションに仮想フラグ331をドラッグし、ドロップし得る。仮想フラグ331が新しい平面領域323に移動されるので、オブジェクト変換モジュール231は、仮想フラグ331が最初に第2の平面領域323上に配置されたかのように、仮想フラグ331を変換し得る。コンピューティングデバイス101は、第2の平面領域323に属する第3のロケーションにおいて、変換された仮想フラグ331を表示し得る。本開示は、特定の様式で平面領域内で仮想オブジェクトを移動することについて説明するが、本開示は、任意の好適な様式で平面領域内で仮想オブジェクトを移動することを企図する。
特定の実施形態では、コンピューティングデバイス101は、ユーザから、平面領域内の仮想オブジェクトをリサイズするためのコマンドを受信し得る。コンピューティングデバイス101のオブジェクト変換モジュール231は、平面領域の配向に対する仮想オブジェクトの相対配向と、仮想オブジェクトの配置位置とをリサイズ後に同じに保つやり方で、仮想オブジェクトを変換し得る。コンピューティングデバイス101は、配置位置において、変換された仮想オブジェクトを再レンダリングし得る。限定としてではなく一例として、前の例を続けると、ユーザは、コンピューティングデバイス101にコマンドを提供することによって、仮想フラグ331を拡大し得る。コンピューティングデバイス101のオブジェクト変換モジュール231は、平面領域の配向に対する仮想フラグの相対配向と、仮想フラグ331の配置位置とを、仮想フラグ331を拡大した後に不変に保つように、仮想フラグ331を変換し得る。コンピューティングデバイス101は、第1のロケーションにおいて、変換された仮想フラグ331を再レンダリングし得、第1のロケーションは、拡大前の仮想フラグ331のロケーションである。本開示は、特定の様式で仮想オブジェクトをリサイズすることについて説明するが、本開示は、任意の好適な様式で仮想オブジェクトをリサイズすることを企図する。
特定の実施形態では、コンピューティングデバイス101の平面追跡モジュール233は、平面追跡アルゴリズムを利用することによって、後続のフレームにおいて平面領域を追跡し得る。平面追跡アルゴリズムは、特に、点追跡が機能しない特徴に乏しい環境では、検出された直線セグメントおよび消失点を利用し得る。後のフレームにおいて平面領域の配向が変化することを検出したとき、コンピューティングデバイス101のオブジェクト変換モジュール231は、平面領域の配向に対する仮想オブジェクトの相対配向を整合するように維持するように、仮想オブジェクトを変換し得る。後のフレームにおいて平面領域のスケールが変化することを検出したとき、コンピューティングデバイス101のオブジェクト変換モジュール231は、平面領域のサイズに対する仮想オブジェクトの相対サイズを整合するように維持するように、仮想オブジェクトを変換し得る。コンピューティングデバイス101のオブジェクト変換モジュール231は、仮想オブジェクトに近い直線セグメントを追跡することによって、平面領域の配向に対する仮想オブジェクトの相対配向と、平面領域のサイズに対する仮想オブジェクトの相対サイズとを保ち得る。限定としてではなく一例として、前の例を続けると、コンピューティングデバイス101の平面追跡モジュール233は、後続のフレームにおいて第1の平面領域321がズームアップされることを検出し得る。コンピューティングデバイス101のオブジェクト変換モジュール231は、第1の平面領域321のサイズに対する仮想フラグ331の相対サイズを整合するように維持するように、仮想フラグ331を変換し得る。コンピューティングデバイス101は、変換された仮想フラグ331を再レンダリングし得る。図3Fは、後続のフレームにおける例示的な平面領域追跡を示す。限定としてではなく別の例として、図3Fに示されているように、コンピューティングデバイス101の平面追跡モジュール233は、後続のフレームにおいて第1の平面領域321の配向が変化したことを検出し得る。コンピューティングデバイス101のオブジェクト変換モジュール231は、第1の平面領域321の配向に対する仮想フラグ331の相対配向を整合するように維持するように、仮想フラグ331を変換し得る。コンピューティングデバイス101は、変換された仮想フラグ331を再レンダリングし得る。本開示は、特定の様式で後続のフレームにおいて平面領域を追跡し、それに応じて仮想オブジェクトを変換することについて説明するが、本開示は、任意の好適な様式で後続のフレームにおいて平面領域を追跡し、それに応じて仮想オブジェクトを変換することを企図する。
特定の実施形態では、コンピューティングデバイス101は、平面領域の深度を検出するために、同時位置特定およびマッピング(SLAM)からの点群を利用し得る。ここで開示される平面領域検出は、平面領域の深度を検出しないことがある。制限を克服するために、コンピューティングデバイス101は、SLAMからの点群を利用し得る。本開示は、特定の様式で平面領域の深度を検出することについて説明するが、本開示は、任意の好適な様式で平面領域の深度を検出することを企図する。
図4は、画像における平面領域上に仮想オブジェクトを表示するための例示的な方法400を示す。方法はステップ410において開始し得、コンピューティングデバイスは物理世界シーンの画像にアクセスし得る。ステップ420において、コンピューティングデバイスは、アクセスされた画像における複数の直線セグメントを検出し得る。ステップ430において、コンピューティングデバイスは、画像における第1の消失点および第2の消失点を識別し得、各消失点は複数の直線セグメントのサブセットに対応し、第1の消失点と第2の消失点とは直交する。ステップ440において、コンピューティングデバイスは、第1の消失点に関連する1つまたは複数の直線セグメントと、第2の消失点に関連する1つまたは複数の直線セグメントとに基づいて、アクセスされた画像における平面領域を識別し得る。ステップ450において、コンピューティングデバイスは、平面領域に関連する1つまたは複数の特性に基づいて平面領域に関連する仮想オブジェクトを変換し得る。ステップ460において、コンピューティングデバイスは、画像上で、変換された仮想オブジェクトを表示し得る。特定の実施形態は、適切な場合、図4の方法の1つまたは複数のステップを繰り返し得る。本開示は、図4の方法の特定のステップを、特定の順序で行われるものとして説明し、示すが、本開示は、図4の方法の任意の好適なステップが任意の好適な順序で行われることを企図する。その上、本開示は、図4の方法の特定のステップを含む、画像における平面領域上に仮想オブジェクトを表示するための例示的な方法を説明し、示すが、本開示は、適切な場合、図4の方法のステップのすべてを含むか、いくつかを含むか、またはいずれも含まないことがある、任意の好適なステップを含む、画像における平面領域上に仮想オブジェクトを表示するための任意の好適な方法を企図する。さらに、本開示は、図4の方法の特定のステップを行う特定の構成要素、デバイス、またはシステムを説明し、示すが、本開示は、図4の方法の任意の好適なステップを行う任意の好適な構成要素、デバイス、またはシステムの任意の好適な組合せを企図する。
システムの全体像
図5は、ソーシャルネットワーキングシステムに関連する例示的なネットワーク環境500を示す。ネットワーク環境500は、ネットワーク510によって互いに接続された、ユーザ501と、クライアントシステム530と、ソーシャルネットワーキングシステム560と、サードパーティシステム570とを含む。図5は、ユーザ501、クライアントシステム530、ソーシャルネットワーキングシステム560、サードパーティシステム570、およびネットワーク510の特定の構成を示すが、本開示は、ユーザ501、クライアントシステム530、ソーシャルネットワーキングシステム560、サードパーティシステム570、およびネットワーク510の任意の好適な構成を企図する。限定としてではなく一例として、クライアントシステム530、ソーシャルネットワーキングシステム560、およびサードパーティシステム570のうちの2つまたはそれ以上が、ネットワーク510をバイパスして、直接互いに接続され得る。別の例として、クライアントシステム530、ソーシャルネットワーキングシステム560、およびサードパーティシステム570のうちの2つまたはそれ以上が、全体的にまたは部分的に、物理的にまたは論理的に互いとコロケートされ得る。その上、図5は、特定の数のユーザ501、クライアントシステム530、ソーシャルネットワーキングシステム560、サードパーティシステム570、およびネットワーク510を示すが、本開示は、任意の好適な数のユーザ501、クライアントシステム530、ソーシャルネットワーキングシステム560、サードパーティシステム570、およびネットワーク510を企図する。限定としてではなく一例として、ネットワーク環境500は、複数のユーザ501と、クライアントシステム530と、ソーシャルネットワーキングシステム560と、サードパーティシステム570と、ネットワーク510とを含み得る。
特定の実施形態では、ユーザ501は、ソーシャルネットワーキングシステム560と、またはソーシャルネットワーキングシステム560上で、対話または通信する個人(人間ユーザ)、エンティティ(たとえば、企業、ビジネス、またはサードパーティアプリケーション)、または(たとえば、個人またはエンティティの)グループであり得る。特定の実施形態では、ソーシャルネットワーキングシステム560は、オンラインソーシャルネットワークをホストするネットワークアドレス指定可能なコンピューティングシステムであり得る。ソーシャルネットワーキングシステム560は、たとえば、ユーザプロファイルデータ、概念プロファイルデータ、ソーシャルグラフ情報、またはオンラインソーシャルネットワークに関係する他の好適なデータなど、ソーシャルネットワーキングデータを生成し、記憶し、受信し、送り得る。ソーシャルネットワーキングシステム560は、直接的にまたはネットワーク510を介してのいずれかで、ネットワーク環境500の他の構成要素によってアクセスされ得る。特定の実施形態では、ソーシャルネットワーキングシステム560は、ユーザ501が、たとえば、適切なプライバシーセッティングをセットすることによって、そのユーザのアクションがソーシャルネットワーキングシステム560によってロギングされるか、または他のシステム(たとえば、サードパーティシステム570)と共有されることをオプトインまたはオプトアウトすることを可能にする許可サーバ(または(1つまたは複数の)他の好適な構成要素)を含み得る。ユーザのプライバシーセッティングは、ユーザに関連するどの情報がロギングされ得るか、ユーザに関連する情報がどのようにロギングされ得るか、ユーザに関連する情報がいつロギングされ得るか、ユーザに関連する情報を誰がロギングし得るか、ユーザに関連する情報が誰と共有され得るか、およびユーザに関連する情報がどのような目的でロギングまたは共有され得るかを決定し得る。許可サーバは、ブロッキング、データのハッシュ化、匿名化、または適宜に他の好適な技法を通して、ソーシャルネットワーキングシステム30のユーザの1つまたは複数のプライバシーセッティングを施行するために使用され得る。特定の実施形態では、サードパーティシステム570は、ネットワークアドレス指定可能なコンピューティングシステムであり得る。サードパーティシステム570は、直接的にまたはネットワーク510を介してのいずれかで、ネットワーク環境500の他の構成要素によってアクセスされ得る。特定の実施形態では、1つまたは複数のユーザ501は、ソーシャルネットワーキングシステム560またはサードパーティシステム570にアクセスし、そこにデータを送り、そこからデータを受信するために、1つまたは複数のクライアントシステム530を使用し得る。クライアントシステム530は、直接的に、ネットワーク510を介して、またはサードパーティシステムを介して、ソーシャルネットワーキングシステム560またはサードパーティシステム570にアクセスし得る。限定としてではなく一例として、クライアントシステム530は、ソーシャルネットワーキングシステム560を介してサードパーティシステム570にアクセスし得る。クライアントシステム530は、たとえば、パーソナルコンピュータ、ラップトップコンピュータ、セルラー電話、スマートフォン、タブレットコンピュータ、または拡張/仮想現実デバイスなど、任意の好適なコンピューティングデバイスであり得る。
本開示は、任意の好適なネットワーク510を企図する。限定としてではなく一例として、ネットワーク510の1つまたは複数の部分は、アドホックネットワーク、イントラネット、エクストラネット、仮想プライベートネットワーク(VPN)、ローカルエリアネットワーク(LAN)、ワイヤレスLAN(WLAN)、ワイドエリアネットワーク(WAN)、ワイヤレスWAN(WWAN)、メトロポリタンエリアネットワーク(MAN)、インターネットの一部分、公衆交換電話網(PSTN)の一部分、セルラー電話ネットワーク、またはこれらのうちの2つまたはそれ以上の組合せを含み得る。ネットワーク510は、1つまたは複数のネットワーク510を含み得る。
リンク550は、クライアントシステム530と、ソーシャルネットワーキングシステム560と、サードパーティシステム570とを、通信ネットワーク510にまたは互いに接続し得る。本開示は、任意の好適なリンク550を企図する。特定の実施形態では、1つまたは複数のリンク550は、1つまたは複数の、(たとえば、デジタル加入者回線(DSL)またはデータオーバーケーブルサービスインターフェース仕様(DOCSIS)などの)ワイヤラインリンク、(たとえば、Wi-Fiまたはワールドワイドインターオペラビリティフォーマイクロウェーブアクセス(WiMAX)などの)ワイヤレスリンク、または(たとえば、同期光ネットワーク(SONET)または同期デジタルハイアラーキ(SDH)などの)光リンクを含む。特定の実施形態では、1つまたは複数のリンク550は、各々、アドホックネットワーク、イントラネット、エクストラネット、VPN、LAN、WLAN、WAN、WWAN、MAN、インターネットの一部分、PSTNの一部分、セルラー技術ベースネットワーク、衛星通信技術ベースネットワーク、別のリンク550、または2つまたはそれ以上のそのようなリンク550の組合せを含む。リンク550は、ネットワーク環境500の全体にわたって必ずしも同じである必要はない。1つまたは複数の第1のリンク550は、1つまたは複数の第2のリンク550とは1つまたは複数の点で異なり得る。
システムおよび方法
図6は、例示的なコンピュータシステム600を示す。特定の実施形態では、1つまたは複数のコンピュータシステム600は、本明細書で説明または示される1つまたは複数の方法の1つまたは複数のステップを実施する。特定の実施形態では、1つまたは複数のコンピュータシステム600は、本明細書で説明または示される機能性を提供する。特定の実施形態では、1つまたは複数のコンピュータシステム600上で稼働しているソフトウェアは、本明細書で説明または示される1つまたは複数の方法の1つまたは複数のステップを実施するか、あるいは本明細書で説明または示される機能性を提供する。特定の実施形態は、1つまたは複数のコンピュータシステム600の1つまたは複数の部分を含む。本明細書では、コンピュータシステムへの言及は、適切な場合、コンピューティングデバイスを包含し得、その逆も同様である。その上、コンピュータシステムへの言及は、適切な場合、1つまたは複数のコンピュータシステムを包含し得る。
本開示は、任意の好適な数のコンピュータシステム600を企図する。本開示は、任意の好適な物理的形態をとるコンピュータシステム600を企図する。限定としてではなく例として、コンピュータシステム600は、組込み型コンピュータシステム、システムオンチップ(SOC)、(たとえば、コンピュータオンモジュール(COM)またはシステムオンモジュール(SOM)などの)シングルボードコンピュータシステム(SBC)、デスクトップコンピュータシステム、ラップトップまたはノートブックコンピュータシステム、対話型キオスク、メインフレーム、コンピュータシステムのメッシュ、携帯電話、携帯情報端末(PDA)、サーバ、タブレットコンピュータシステム、拡張/仮想現実デバイス、あるいはこれらのうちの2つまたはそれ以上の組合せであり得る。適切な場合、コンピュータシステム600は、1つまたは複数のコンピュータシステム600を含むか、単一または分散型であるか、複数のロケーションにわたるか、複数のマシンにわたるか、複数のデータセンターにわたるか、あるいは1つまたは複数のネットワーク中の1つまたは複数のクラウド構成要素を含み得るクラウド中に常駐し得る。適切な場合、1つまたは複数のコンピュータシステム600は、実質的な空間的または時間的制限なしに、本明細書で説明または示される1つまたは複数の方法の1つまたは複数のステップを実施し得る。限定としてではなく一例として、1つまたは複数のコンピュータシステム600は、リアルタイムでまたはバッチモードで、本明細書で説明または示される1つまたは複数の方法の1つまたは複数のステップを実施し得る。1つまたは複数のコンピュータシステム600は、適切な場合、異なる時間においてまたは異なるロケーションにおいて、本明細書で説明または示される1つまたは複数の方法の1つまたは複数のステップを実施し得る。
特定の実施形態では、コンピュータシステム600は、プロセッサ602と、メモリ604と、ストレージ606と、入出力(I/O)インターフェース608と、通信インターフェース610と、バス612とを含む。本開示は、特定の構成において特定の数の特定の構成要素を有する特定のコンピュータシステムを説明し、示すが、本開示は、任意の好適な構成において任意の好適な数の任意の好適な構成要素を有する任意の好適なコンピュータシステムを企図する。
特定の実施形態では、プロセッサ602は、コンピュータプログラムを作り上げる命令など、命令を実行するためのハードウェアを含む。限定としてではなく一例として、命令を実行するために、プロセッサ602は、内部レジスタ、内部キャッシュ、メモリ604、またはストレージ606から命令を取り出し(またはフェッチし)、それらの命令を復号および実行し、次いで、内部レジスタ、内部キャッシュ、メモリ604、またはストレージ606に1つまたは複数の結果を書き込み得る。特定の実施形態では、プロセッサ602は、データ、命令、またはアドレスのための1つまたは複数の内部キャッシュを含み得る。本開示は、適切な場合、任意の好適な数の任意の好適な内部キャッシュを含むプロセッサ602を企図する。限定としてではなく一例として、プロセッサ602は、1つまたは複数の命令キャッシュと、1つまたは複数のデータキャッシュと、1つまたは複数のトランスレーションルックアサイドバッファ(TLB)とを含み得る。命令キャッシュ中の命令は、メモリ604またはストレージ606中の命令のコピーであり得、命令キャッシュは、プロセッサ602によるそれらの命令の取出しを高速化し得る。データキャッシュ中のデータは、プロセッサ602において実行する命令が動作する対象のメモリ604またはストレージ606中のデータのコピー、プロセッサ602において実行する後続の命令によるアクセスのための、またはメモリ604もしくはストレージ606に書き込むための、プロセッサ602において実行された前の命令の結果、あるいは他の好適なデータであり得る。データキャッシュは、プロセッサ602による読取りまたは書込み動作を高速化し得る。TLBは、プロセッサ602のための仮想アドレストランスレーション(virtual-address translation)を高速化し得る。特定の実施形態では、プロセッサ602は、データ、命令、またはアドレスのための1つまたは複数の内部レジスタを含み得る。本開示は、適切な場合、任意の好適な数の任意の好適な内部レジスタを含むプロセッサ602を企図する。適切な場合、プロセッサ602は、1つまたは複数の算術論理ユニット(ALU)を含むか、マルチコアプロセッサであるか、または1つまたは複数のプロセッサ602を含み得る。本開示は、特定のプロセッサを説明し、示すが、本開示は任意の好適なプロセッサを企図する。
特定の実施形態では、メモリ604は、プロセッサ602が実行するための命令、またはプロセッサ602が動作する対象のデータを記憶するためのメインメモリを含む。限定としてではなく一例として、コンピュータシステム600は、ストレージ606または(たとえば、別のコンピュータシステム600などの)別のソースからメモリ604に命令をロードし得る。プロセッサ602は、次いで、メモリ604から内部レジスタまたは内部キャッシュに命令をロードし得る。命令を実行するために、プロセッサ602は、内部レジスタまたは内部キャッシュから命令を取り出し、それらの命令を復号し得る。命令の実行中またはその後に、プロセッサ602は、(中間結果または最終結果であり得る)1つまたは複数の結果を内部レジスタまたは内部キャッシュに書き込み得る。プロセッサ602は、次いで、メモリ604にそれらの結果のうちの1つまたは複数を書き込み得る。特定の実施形態では、プロセッサ602は、1つまたは複数の内部レジスタまたは内部キャッシュ中の、あるいは(ストレージ606または他の場所とは対照的な)メモリ604中の命令のみを実行し、1つまたは複数の内部レジスタまたは内部キャッシュ中の、あるいは(ストレージ606または他の場所とは対照的な)メモリ604中のデータのみに対して動作する。(アドレスバスおよびデータバスを各々含み得る)1つまたは複数のメモリバスが、プロセッサ602をメモリ604に結合し得る。バス612は、以下で説明されるように、1つまたは複数のメモリバスを含み得る。特定の実施形態では、1つまたは複数のメモリ管理ユニット(MMU)が、プロセッサ602とメモリ604との間に常駐し、プロセッサ602によって要求されるメモリ604へのアクセスを容易にする。特定の実施形態では、メモリ604は、ランダムアクセスメモリ(RAM)を含む。このRAMは、適切な場合、揮発性メモリであり得る。適切な場合、このRAMは、ダイナミックRAM(DRAM)またはスタティックRAM(SRAM)であり得る。その上、適切な場合、このRAMは、シングルポートまたはマルチポートRAMであり得る。本開示は、任意の好適なRAMを企図する。メモリ604は、適切な場合、1つまたは複数のメモリ604を含み得る。本開示は、特定のメモリを説明し、示すが、本開示は任意の好適なメモリを企図する。
特定の実施形態では、ストレージ606は、データまたは命令のための大容量ストレージを含む。限定としてではなく一例として、ストレージ606は、ハードディスクドライブ(HDD)、フロッピーディスクドライブ、フラッシュメモリ、光ディスク、光磁気ディスク、磁気テープ、またはユニバーサルシリアルバス(USB)ドライブ、あるいはこれらのうちの2つまたはそれ以上の組合せを含み得る。ストレージ606は、適切な場合、リムーバブルまたは非リムーバブル(または固定)媒体を含み得る。ストレージ606は、適切な場合、コンピュータシステム600の内部または外部にあり得る。特定の実施形態では、ストレージ606は、不揮発性ソリッドステートメモリである。特定の実施形態では、ストレージ606は、読取り専用メモリ(ROM)を含む。適切な場合、このROMは、マスクプログラムROM、プログラマブルROM(PROM)、消去可能PROM(EPROM)、電気的消去可能PROM(EEPROM)、電気的書き換え可能ROM(EAROM)、またはフラッシュメモリ、あるいはこれらのうちの2つまたはそれ以上の組合せであり得る。本開示は、任意の好適な物理的形態をとる大容量ストレージ606を企図する。ストレージ606は、適切な場合、プロセッサ602とストレージ606との間の通信を容易にする1つまたは複数のストレージ制御ユニットを含み得る。適切な場合、ストレージ606は、1つまたは複数のストレージ606を含み得る。本開示は、特定のストレージを説明し、示すが、本開示は任意の好適なストレージを企図する。
特定の実施形態では、I/Oインターフェース608は、コンピュータシステム600と1つまたは複数のI/Oデバイスとの間の通信のための1つまたは複数のインターフェースを提供する、ハードウェア、ソフトウェア、またはその両方を含む。コンピュータシステム600は、適切な場合、これらのI/Oデバイスのうちの1つまたは複数を含み得る。これらのI/Oデバイスのうちの1つまたは複数は、人とコンピュータシステム600との間の通信を可能にし得る。限定としてではなく一例として、I/Oデバイスは、キーボード、キーパッド、マイクロフォン、モニタ、マウス、プリンタ、スキャナ、スピーカー、スチールカメラ、スタイラス、タブレット、タッチスクリーン、トラックボール、ビデオカメラ、別の好適なI/Oデバイス、またはこれらのうちの2つまたはそれ以上の組合せを含み得る。I/Oデバイスは1つまたは複数のセンサーを含み得る。本開示は、任意の好適なI/Oデバイスと、それらのI/Oデバイスのための任意の好適なI/Oインターフェース608とを企図する。適切な場合、I/Oインターフェース608は、プロセッサ602がこれらのI/Oデバイスのうちの1つまたは複数を駆動することを可能にする1つまたは複数のデバイスまたはソフトウェアドライバを含み得る。I/Oインターフェース608は、適切な場合、1つまたは複数のI/Oインターフェース608を含み得る。本開示は、特定のI/Oインターフェースを説明し、示すが、本開示は任意の好適なI/Oインターフェースを企図する。
特定の実施形態では、通信インターフェース610は、コンピュータシステム600と、1つまたは複数の他のコンピュータシステム600または1つまたは複数のネットワークとの間の(たとえば、パケットベース通信などの)通信のための1つまたは複数のインターフェースを提供する、ハードウェア、ソフトウェア、またはその両方を含む。限定としてではなく一例として、通信インターフェース610は、イーサネットまたは他のワイヤベースネットワークと通信するためのネットワークインターフェースコントローラ(NIC)またはネットワークアダプタ、あるいはWI-FIネットワークなどのワイヤレスネットワークと通信するためのワイヤレスNIC(WNIC)またはワイヤレスアダプタを含み得る。本開示は、任意の好適なネットワークと、そのネットワークのための任意の好適な通信インターフェース610とを企図する。限定としてではなく一例として、コンピュータシステム600は、アドホックネットワーク、パーソナルエリアネットワーク(PAN)、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、メトロポリタンエリアネットワーク(MAN)、またはインターネットの1つまたは複数の部分、あるいはこれらのうちの2つまたはそれ以上の組合せと通信し得る。これらのネットワークのうちの1つまたは複数の1つまたは複数の部分は、ワイヤードまたはワイヤレスであり得る。一例として、コンピュータシステム600は、(たとえば、BLUETOOTH WPANなどの)ワイヤレスPAN(WPAN)、WI-FIネットワーク、WI-MAXネットワーク、(たとえば、モバイル通信用グローバルシステム(GSM)ネットワークなどの)セルラー電話ネットワーク、または他の好適なワイヤレスネットワーク、あるいはこれらのうちの2つまたはそれ以上の組合せと通信し得る。コンピュータシステム600は、適切な場合、これらのネットワークのいずれかのための任意の好適な通信インターフェース610を含み得る。通信インターフェース610は、適切な場合、1つまたは複数の通信インターフェース610を含み得る。本開示は、特定の通信インターフェースを説明し、示すが、本開示は任意の好適な通信インターフェースを企図する。
特定の実施形態では、バス612は、コンピュータシステム600の構成要素を互いに結合する、ハードウェア、ソフトウェア、またはその両方を含む。限定としてではなく一例として、バス612は、アクセラレーテッドグラフィックスポート(AGP)または他のグラフィックスバス、拡張業界標準アーキテクチャ(EISA)バス、フロントサイドバス(FSB)、HYPERTRANSPORT(HT)相互接続、業界標準アーキテクチャ(ISA)バス、INFINIBAND相互接続、ローピンカウント(LPC)バス、メモリバス、マイクロチャネルアーキテクチャ(MCA)バス、周辺構成要素相互接続(PCI)バス、PCI-Express(PCIe)バス、シリアルアドバンストテクノロジーアタッチメント(SATA)バス、ビデオエレクトロニクス規格協会ローカル(VLB)バス、または別の好適なバス、あるいはこれらのうちの2つまたはそれ以上の組合せを含み得る。バス612は、適切な場合、1つまたは複数のバス612を含み得る。本開示は、特定のバスを説明し、示すが、本開示は任意の好適なバスまたは相互接続を企図する。
本明細書では、1つまたは複数のコンピュータ可読非一時的記憶媒体は、適切な場合、(たとえば、フィールドプログラマブルゲートアレイ(FPGA)または特定用途向けIC(ASIC)などの)1つまたは複数の半導体ベースまたは他の集積回路(IC)、ハードディスクドライブ(HDD)、ハイブリッドハードドライブ(HHD)、光ディスク、光ディスクドライブ(ODD)、光磁気ディスク、光磁気ドライブ、フロッピーディスケット、フロッピーディスクドライブ(FDD)、磁気テープ、ソリッドステートドライブ(SSD)、RAMドライブ、セキュアデジタルカードまたはドライブ、任意の他の好適なコンピュータ可読非一時的記憶媒体、あるいはこれらのうちの2つまたはそれ以上の任意の好適な組合せを含み得る。コンピュータ可読非一時的記憶媒体は、適切な場合、揮発性、不揮発性、または揮発性と不揮発性との組合せであり得る。
本明細書では、「または」は、明確に別段に指示されていない限り、またはコンテキストによって別段に指示されていない限り、包括的であり、排他的ではない。したがって、本明細書では、「AまたはB」は、明確に別段に指示されていない限り、またはコンテキストによって別段に指示されていない限り、「A、B、またはその両方」を意味する。その上、「および」は、明確に別段に指示されていない限り、またはコンテキストによって別段に指示されていない限り、共同と個別の両方である。したがって、本明細書では、「AおよびB」は、明確に別段に指示されていない限り、またはコンテキストによって別段に指示されていない限り、「共同でまたは個別に、AおよびB」を意味する。
本開示の範囲は、当業者が理解するであろう、本明細書で説明または示される例示的な実施形態に対するすべての変更、置換、変形、改変、および修正を包含する。本開示の範囲は、本明細書で説明または示される例示的な実施形態に限定されない。その上、本開示は、本明細書のそれぞれの実施形態を、特定の構成要素、要素、特徴、機能、動作、またはステップを含むものとして説明し、示すが、これらの実施形態のいずれも、当業者が理解するであろう、本明細書のどこかに説明または示される構成要素、要素、特徴、機能、動作、またはステップのうちのいずれかの任意の組合せまたは置換を含み得る。さらに、特定の機能を実施するように適応されるか、構成されるか、実施することが可能であるか、実施するように設定されるか、実施することが可能にされるか、実施するように動作可能であるか、または実施するように動作する、装置またはシステムあるいは装置またはシステムの構成要素に対する添付の特許請求の範囲における参照は、その装置、システム、または構成要素が、そのように適応されるか、構成されるか、可能であるか、設定されるか、可能にされるか、動作可能であるか、または動作する限り、その装置、システム、構成要素またはその特定の機能が、アクティブにされるか、オンにされるか、またはロック解除されるか否かにかかわらず、その装置、システム、構成要素を包含する。さらに、本開示は、特定の実施形態を、特定の利点を提供するものとして説明するかまたは示すが、特定の実施形態は、これらの利点のいずれをも提供しないか、いくつかを提供するか、またはすべてを提供し得る。

Claims (20)

  1. コンピューティングデバイスによって、物理世界シーンの画像にアクセスすることと、
    前記コンピューティングデバイスによって、アクセスされた画像における複数の直線セグメントを検出することと、
    前記コンピューティングデバイスによって、前記画像における第1の消失点および第2の消失点を識別することであって、各消失点が前記複数の直線セグメントのサブセットに対応し、前記第1の消失点と前記第2の消失点とが直交する、第1の消失点および第2の消失点を識別することと、
    前記コンピューティングデバイスによって、前記第1の消失点に関連する1つまたは複数の直線セグメントと、前記第2の消失点に関連する1つまたは複数の直線セグメントとに基づいて、前記アクセスされた画像における平面領域を識別することと、
    前記コンピューティングデバイスによって、前記平面領域に関連する1つまたは複数の特性に基づいて前記平面領域に関連する仮想オブジェクトを変換することと、
    前記コンピューティングデバイスによって、前記画像上で、変換された前記仮想オブジェクトを表示することと
    前記コンピューティングデバイスによって、後のフレームにおいて前記第1の消失点に対応する1つまたは複数の直線セグメントを追跡することと、
    前記コンピューティングデバイスによって、変換された前記仮想オブジェクトの相対サイズを、後のフレームにおいて追跡された前記1つまたは複数の直線セグメントのサイズに維持することと
    を含む、方法。
  2. 前記アクセスされた画像における前記複数の直線セグメントを検出することが、
    前記アクセスされた画像におけるエッジを検出することであって、エッジは、画像輝度が不連続性を有する点のセットである、前記アクセスされた画像におけるエッジを検出することと、
    前記アクセスされた画像における検出された前記エッジから非直線エッジをフィルタ処理することと
    を含む、請求項1に記載の方法。
  3. 前記アクセスされた画像におけるエッジが、オブジェクトの境界、物質特性の境界、またはライティングの境界を表す、請求項2に記載の方法。
  4. 前記アクセスされた画像におけるエッジが、ステップエッジとバーエッジとを含む、請求項2に記載の方法。
  5. 前記第1の消失点または前記第2の消失点は、前記複数の直線セグメントの関連する前記サブセットから延長された線が、前記画像を含む2次元平面における点において交差する、有限消失点である、請求項1に記載の方法。
  6. 前記第1の消失点または前記第2の消失点が無限消失点であり、関連する前記直線セグメントから延長された線が、前記画像において平行のままである、請求項1に記載の方法。
  7. 前記第1の消失点または前記第2の消失点を識別することが、前記複数の直線セグメントをクラスタリングすることを含む、請求項1に記載の方法。
  8. 前記第1の消失点または前記第2の消失点を識別することが、候補消失点を生成するために、ランダムサンプルコンセンサス(RANSAC)を利用することを含む、請求項1に記載の方法。
  9. 前記第1の消失点または前記第2の消失点を識別することが、前記コンピューティングデバイス上で利用可能な慣性測定ユニット(IMU)情報に基づく、請求項1に記載の方法。
  10. 同時位置特定およびマッピング(SLAM)からの点群が、前記平面領域の深度を検出するために使用される、請求項1に記載の方法。
  11. 前記仮想オブジェクトが2次元オブジェクトである、請求項1に記載の方法。
  12. 前記仮想オブジェクトが3次元オブジェクトである、請求項1に記載の方法。
  13. ユーザからのコマンドに基づいて、前記平面領域内の新しい位置に前記仮想オブジェクトを移動することであって、前記仮想オブジェクトが、前記平面領域の配向に対する前記仮想オブジェクトの相対配向と、前記平面領域のサイズに対する前記仮想オブジェクトの相対サイズとを移動後に同じに保つやり方で変換される、前記仮想オブジェクトを移動すること
    をさらに含む、請求項1に記載の方法。
  14. ユーザからのコマンドに基づいて、前記平面領域内の前記仮想オブジェクトをリサイズすることであって、前記仮想オブジェクトが、前記平面領域の配向に対する前記仮想オブジェクトの相対配向と、前記仮想オブジェクトの配置位置とをリサイズ後に同じに保つやり方で変換される、前記仮想オブジェクトをリサイズすること
    をさらに含む、請求項1に記載の方法。
  15. 前記平面領域が、平面追跡アルゴリズムを利用することによって後続のフレームにおいて追跡される、請求項1に記載の方法。
  16. 後のフレームにおいて前記平面領域の配向が変化することを検出することと、
    前記平面領域の前記配向に対する前記仮想オブジェクトの相対配向を整合するように維持するように、前記仮想オブジェクトを変換することと
    をさらに含む、請求項15に記載の方法。
  17. 後のフレームにおいて前記平面領域のスケールが変化することを検出することと、
    前記平面領域のサイズに対する前記仮想オブジェクトの相対サイズを整合するように維持するように、前記仮想オブジェクトを変換することと
    をさらに含む、請求項15に記載の方法。
  18. ソフトウェアを具現する1つまたは複数のコンピュータ可読非一時的記憶媒体であって、前記ソフトウェアは、実行されたとき、
    物理世界シーンの画像にアクセスすることと、
    アクセスされた画像における複数の直線セグメントを検出することと、
    前記画像における第1の消失点および第2の消失点を識別することであって、各消失点が前記複数の直線セグメントのサブセットに対応し、前記第1の消失点と前記第2の消失点とが直交する、第1の消失点および第2の消失点を識別することと、
    前記第1の消失点に関連する1つまたは複数の直線セグメントと、前記第2の消失点に関連する1つまたは複数の直線セグメントとに基づいて、前記アクセスされた画像における平面領域を識別することと、
    前記平面領域に関連する1つまたは複数の特性に基づいて前記平面領域に関連する仮想オブジェクトを変換することと、
    前記画像上で、変換された前記仮想オブジェクトを表示することと
    後のフレームにおいて前記第1の消失点に対応する1つまたは複数の直線セグメントを追跡することと、
    変換された前記仮想オブジェクトの相対サイズを、後のフレームにおいて追跡された前記1つまたは複数の直線セグメントのサイズに維持することと
    を行うように動作可能である、1つまたは複数のコンピュータ可読非一時的記憶媒体。
  19. 前記アクセスされた画像における前記複数の直線セグメントを検出することが、
    前記アクセスされた画像におけるエッジを検出することであって、エッジは、画像輝度が不連続性を有する点のセットである、前記アクセスされた画像におけるエッジを検出することと、
    前記アクセスされた画像における検出された前記エッジから非直線エッジをフィルタ処理することと
    を含む、請求項18に記載の媒体。
  20. 1つまたは複数のプロセッサと、前記プロセッサによって実行可能な命令を備える、前記プロセッサに結合された非一時的メモリとを備えるシステムであって、前記プロセッサは、前記命令を実行したとき、
    物理世界シーンの画像にアクセスすることと、
    アクセスされた画像における複数の直線セグメントを検出することと、
    前記画像における第1の消失点および第2の消失点を識別することであって、各消失点が前記複数の直線セグメントのサブセットに対応し、前記第1の消失点と前記第2の消失点とが直交する、第1の消失点および第2の消失点を識別することと、
    前記第1の消失点に関連する1つまたは複数の直線セグメントと、前記第2の消失点に関連する1つまたは複数の直線セグメントとに基づいて、前記アクセスされた画像における平面領域を識別することと、
    前記平面領域に関連する1つまたは複数の特性に基づいて前記平面領域に関連する仮想オブジェクトを変換することと、
    前記画像上で、変換された前記仮想オブジェクトを表示することと
    後のフレームにおいて前記第1の消失点に対応する1つまたは複数の直線セグメントを追跡することと、
    変換された前記仮想オブジェクトの相対サイズを、後のフレームにおいて追跡された前記1つまたは複数の直線セグメントのサイズに維持することと
    を行うように動作可能である、システム。
JP2021530141A 2019-01-15 2019-02-19 人工現実システムにおいて平面を識別すること Active JP7282175B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/248,654 US10878608B2 (en) 2019-01-15 2019-01-15 Identifying planes in artificial reality systems
US16/248,654 2019-01-15
PCT/US2019/018538 WO2020149867A1 (en) 2019-01-15 2019-02-19 Identifying planes in artificial reality systems

Publications (2)

Publication Number Publication Date
JP2022520517A JP2022520517A (ja) 2022-03-31
JP7282175B2 true JP7282175B2 (ja) 2023-05-26

Family

ID=71516765

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2021530141A Active JP7282175B2 (ja) 2019-01-15 2019-02-19 人工現実システムにおいて平面を識別すること

Country Status (6)

Country Link
US (1) US10878608B2 (ja)
EP (1) EP3912141A4 (ja)
JP (1) JP7282175B2 (ja)
KR (1) KR20210104905A (ja)
CN (1) CN113302666A (ja)
WO (1) WO2020149867A1 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11741676B2 (en) 2021-01-21 2023-08-29 Samsung Electronics Co., Ltd. System and method for target plane detection and space estimation
US20230100507A1 (en) * 2021-09-29 2023-03-30 Canoo Technologies Inc. Vanishing point determination, symmetry-based boundary refinement, and component detection for vehicle object detection or other applications
CN117351185A (zh) * 2022-06-29 2024-01-05 北京字跳网络技术有限公司 虚拟特效挂载平面检测方法、装置、设备及存储介质
US11935207B2 (en) * 2022-07-06 2024-03-19 Adobe Inc. Spacing guides for objects in perspective views

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017059041A (ja) 2015-09-17 2017-03-23 株式会社リコー 画像処理装置、画像処理方法、およびプログラム
JP2018200699A (ja) 2018-07-09 2018-12-20 パイオニア株式会社 表示制御装置、制御方法、プログラム及び記憶媒体

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120180084A1 (en) * 2011-01-12 2012-07-12 Futurewei Technologies, Inc. Method and Apparatus for Video Insertion
US8638986B2 (en) 2011-04-20 2014-01-28 Qualcomm Incorporated Online reference patch generation and pose estimation for augmented reality
JPWO2015145544A1 (ja) * 2014-03-24 2017-04-13 パイオニア株式会社 表示制御装置、制御方法、プログラム及び記憶媒体
US20150371440A1 (en) 2014-06-19 2015-12-24 Qualcomm Incorporated Zero-baseline 3d map initialization
WO2016028813A1 (en) 2014-08-18 2016-02-25 Groopic, Inc. Dynamically targeted ad augmentation in video
US20170256096A1 (en) * 2016-03-07 2017-09-07 Google Inc. Intelligent object sizing and placement in a augmented / virtual reality environment
CN108492284B (zh) * 2018-03-12 2020-03-03 百度在线网络技术(北京)有限公司 用于确定图像的透视形状的方法和装置

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017059041A (ja) 2015-09-17 2017-03-23 株式会社リコー 画像処理装置、画像処理方法、およびプログラム
JP2018200699A (ja) 2018-07-09 2018-12-20 パイオニア株式会社 表示制御装置、制御方法、プログラム及び記憶媒体

Also Published As

Publication number Publication date
JP2022520517A (ja) 2022-03-31
CN113302666A (zh) 2021-08-24
WO2020149867A1 (en) 2020-07-23
EP3912141A4 (en) 2022-04-06
US10878608B2 (en) 2020-12-29
EP3912141A1 (en) 2021-11-24
US20200226805A1 (en) 2020-07-16
KR20210104905A (ko) 2021-08-25

Similar Documents

Publication Publication Date Title
JP7282175B2 (ja) 人工現実システムにおいて平面を識別すること
JP6458371B2 (ja) 3次元モデルのためのテクスチャデータを取得する方法、ポータブル電子デバイス、及びプログラム
US10600150B2 (en) Utilizing an inertial measurement device to adjust orientation of panorama digital images
US10049490B2 (en) Generating virtual shadows for displayable elements
JP2018507476A (ja) コンピュータビジョンに関する遮蔽処理
US9972131B2 (en) Projecting a virtual image at a physical surface
US11922568B2 (en) Finite aperture omni-directional stereo light transport
US20230037750A1 (en) Systems and methods for generating stabilized images of a real environment in artificial reality
US11625862B2 (en) Mirror reconstruction
US11030820B1 (en) Systems and methods for surface detection
CN110313021B (zh) 增强现实提供方法、装置以及计算机可读记录介质
EP3956752B1 (en) Semantic-augmented artificial-reality experience
US11210860B2 (en) Systems, methods, and media for visualizing occluded physical objects reconstructed in artificial reality
KR20210110164A (ko) 전자 장치 및 전자 장치에서 깊이 맵의 재-투사 방법
KR20210123994A (ko) 전자 장치 및 페어링된 전자 장치를 이용한 객체 식별 방법
CN115516517A (zh) 用于构建三维几何图形的方法和装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20211203

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20220916

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20221011

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230106

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: 20230425

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20230516

R150 Certificate of patent or registration of utility model

Ref document number: 7282175

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150