JP2023507498A - 3dライン接合部を用いた位置決定およびマッピング - Google Patents

3dライン接合部を用いた位置決定およびマッピング Download PDF

Info

Publication number
JP2023507498A
JP2023507498A JP2022538066A JP2022538066A JP2023507498A JP 2023507498 A JP2023507498 A JP 2023507498A JP 2022538066 A JP2022538066 A JP 2022538066A JP 2022538066 A JP2022538066 A JP 2022538066A JP 2023507498 A JP2023507498 A JP 2023507498A
Authority
JP
Japan
Prior art keywords
map
client device
line
camera
line junctions
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.)
Granted
Application number
JP2022538066A
Other languages
English (en)
Other versions
JP7453383B2 (ja
Inventor
エッカティ アンヴィズ
ユアン ロン
ジェイン シッダーント
イン ダイアナ フー シー
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Niantic Inc
Original Assignee
Niantic Inc
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 Niantic Inc filed Critical Niantic Inc
Publication of JP2023507498A publication Critical patent/JP2023507498A/ja
Application granted granted Critical
Publication of JP7453383B2 publication Critical patent/JP7453383B2/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
    • 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
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/20Input arrangements for video game devices
    • A63F13/21Input arrangements for video game devices characterised by their sensors, purposes or types
    • A63F13/213Input arrangements for video game devices characterised by their sensors, purposes or types comprising photodetecting means, e.g. cameras, photodiodes or infrared cells
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/20Input arrangements for video game devices
    • A63F13/21Input arrangements for video game devices characterised by their sensors, purposes or types
    • A63F13/216Input arrangements for video game devices characterised by their sensors, purposes or types using geographical information, e.g. location of the game device or player using GPS
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/60Generating or modifying game content before or while executing the game program, e.g. authoring tools specially adapted for game development or game-integrated level editor
    • A63F13/65Generating or modifying game content before or while executing the game program, e.g. authoring tools specially adapted for game development or game-integrated level editor automatically by game devices or servers from real world data, e.g. measurement in live racing competition
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01CMEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
    • G01C21/00Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
    • G01C21/26Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 specially adapted for navigation in a road network
    • G01C21/28Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 specially adapted for navigation in a road network with correlation of data from several navigational instruments
    • G01C21/30Map- or contour-matching
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01CMEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
    • G01C21/00Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
    • G01C21/26Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 specially adapted for navigation in a road network
    • G01C21/34Route searching; Route guidance
    • G01C21/36Input/output arrangements for on-board computers
    • G01C21/3602Input other than that of destination using image analysis, e.g. detection of road signs, lanes, buildings, real preceding vehicles using a camera
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01CMEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
    • G01C21/00Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
    • G01C21/26Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 specially adapted for navigation in a road network
    • G01C21/34Route searching; Route guidance
    • G01C21/36Input/output arrangements for on-board computers
    • G01C21/3626Details of the output of route guidance instructions
    • G01C21/3635Guidance using 3D or perspective road maps
    • G01C21/3638Guidance using 3D or perspective road maps including 3D objects and buildings
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01CMEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
    • G01C21/00Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
    • G01C21/38Electronic maps specially adapted for navigation; Updating thereof
    • G01C21/3863Structures of map data
    • G01C21/3867Geometry of map features, e.g. shape points, polygons or for simplified maps
    • 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
    • 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
    • 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
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/25Output arrangements for video game devices
    • 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/30Subject of image; Context of image processing
    • G06T2207/30244Camera pose
    • 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)
  • Radar, Positioning & Navigation (AREA)
  • Multimedia (AREA)
  • Remote Sensing (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Theoretical Computer Science (AREA)
  • Automation & Control Theory (AREA)
  • Human Computer Interaction (AREA)
  • Geometry (AREA)
  • Environmental & Geological Engineering (AREA)
  • Processing Or Creating Images (AREA)
  • Image Analysis (AREA)
  • Apparatus For Radiation Diagnosis (AREA)
  • Measurement And Recording Of Electrical Phenomena And Electrical Characteristics Of The Living Body (AREA)
  • Image Processing (AREA)

Abstract

クライアントデバイスの位置を決定するためのシステムおよび方法が本明細書で説明される。特に、クライアントデバイスは、クライアントデバイスにおけるカメラによってキャプチャされた画像を受信する。クライアントデバイスは、画像内の特徴を識別する。特徴は、ライン接合部、ライン、曲線、または画像内に見出される任意の他の特徴であり得る。クライアントデバイスは、マップデータベースから環境の3Dマップを検索し、識別された特徴を、マップライン接合部、マップライン、マップ曲線などのマップ特徴を含む環境の3Dマップと比較する。クライアントデバイスは、画像から識別された特徴とマップ特徴との間の対応関係を識別し、対応関係に基づいて現実世界におけるクライアントデバイスの位置を決定する。クライアントデバイスは、現実世界における位置に対応する仮想世界における位置を表す視覚データを表示できる。

Description

本開示は、概して3Dマッピングに関し、特に、3Dライン接合部を使用してデバイスの位置を決定することに関する。
[関連出願の相互参照]
本出願は、2019年12月20日に出願された米国仮出願第62/952,016号の利益を主張し、その全体が参照により組み込まれる。
並行現実ゲームは、現実世界の少なくとも一部と並行する共有された仮想世界を提供し得、プレイヤーのコミュニティを引き付けることができる様々な相互作用をホストできる。仮想世界に現実世界の少なくとも一部と並行する地理を提供することは、プレイヤーが現実世界をナビゲートすることによって仮想世界をナビゲートすることを可能にする。プレイ中、プレイヤーは、コンピュータ媒介現実技術を使用して、プレイヤーの環境の視覚的または聴覚的知覚を加算、減算、または他の方法で変更するハンドヘルドまたはウェアラブルデバイス全体にわたって仮想世界を見得る。
しかし、環境のプレイヤーの視覚的知覚を正確に変更することは、典型的には、現実世界におけるプレイヤーの位置を正確に知ることを伴う。従来の測位デバイスは、かなりの範囲のエラーなしにプレイヤーの位置を決定するのに十分なほど正確ではないので、これを確認することは困難であり得る。したがって、現実世界におけるプレイヤーの位置を決定するための改善されたアプローチが望まれる。
[概要]
位置ベースの平行現実ゲームでは、プレイヤーは、スマートフォンなどの位置認識クライアントデバイスを用いて、現実世界を移動することによって仮想世界をナビゲートする。平行現実ゲームでプレイヤーによって使用される多くのクライアントデバイスは、プレイヤーが平行現実ゲームをプレイしながら現実世界全体を移動するときにプレイヤーの位置情報を追跡する測位デバイスを含み得る。様々な実施形態において、クライアントデバイスは、デバイス上のカメラによってキャプチャされた画像データを使用して、プレイヤーの位置を決定し、これは、測位デバイスから収集されたプレイヤーの位置情報の代わりに、またはそれを補足するために使用され得る。クライアントデバイスは、決定されたプレイヤー位置に基づいて、拡張現実(AR)画像を生成して、画像データ上にオーバーレイし得る。
一実施形態によれば、ARプラットフォームは、平行現実ゲームのための環境内のカメラの位置を決定する。カメラによってキャプチャされた1つまたは複数の画像を使用して、ARプラットフォームは、1つまたは複数の画像内の、空間内のラインが交差する点であるライン接合部を識別する。ARプラットフォームは、これらのライン接合部を環境の三次元(3D)マップと比較して、ライン接合部が3Dマップ内のマップライン接合部に対応するか否かを決定する。ARプラットフォームによって識別された1つまたは複数の対応関係に基づいて、ARプラットフォームは、環境内のカメラの位置を決定する。ARプラットフォームは、現実世界における決定された位置に対応する仮想世界における位置を反映する、カメラに関連付けられたクライアントデバイス上での表示のためのコンピュータ媒介現実画像を生成し得る。
追加または代替の実施形態では、ARプラットフォームは、カメラによって見られる環境の準リアルタイム視点を表す1つまたは複数の画像と、クライアントデバイスに統合されたジオロケーション/全地球測位システムからのジオロケーション位置と、を受信し得る。ARプラットフォームは、特定の時点におけるカメラ位置および1つまたは複数の画像内の1つまたは複数のマッピング点の間の距離を推定する。推定された距離に基づいて、ARプラットフォームは1つまたは複数の画像を3Dマップ内の特定の位置に位置するコンピュータ生成画像にオーバーレイする。コンピュータ生成画像は、プレイヤーがカメラを空間内の異なる位置に移動させても、特定の位置に配置されたままである。
これらおよび他の特徴、態様および利点は、以下の説明および添付の特許請求の範囲を参照してよりよく理解され得る。添付の図面は特定の実施形態を示し、説明と共に様々な原理を説明する役割を果たす。しかし、図面は限定するものと見なされるべきではない。むしろ、保護の範囲は特許請求の範囲から決定されるべきである。
図1は、一実施形態による、ARコンピューティングシステム100のブロック図である。 図2Aは、一実施形態によるライン接合部を示す。 図2Bは、一実施形態によるライン接合部における交差するラインを示す。 図2Cは、一実施形態による、2Dおよび3Dにおけるライン接合部の表現を示す。 図3は、一実施形態による、拡張現実データを生成および表示するための図1のコンピューティングシステムによって実行可能なプロセスを図示する、フローチャートである。 図4は、一実施形態による、位置ベースの並行現実ゲームのプレイヤーのためのゲームボードとして作用できる、現実世界と並行する仮想世界の概念図を描写する。 図5は、一実施形態による、環境内のカメラの位置を決定するためのプロセスを示すフローチャートである。 図6は、一実施形態による、図1のネットワーク化コンピューティング環境で使用するのに適した例示的なコンピュータシステムを示すブロック図である。
[詳細な説明]
システムおよび方法は、環境内のクライアントデバイスの位置を決定し、その位置に基づいてクライアントデバイスを介した現実世界とのユーザの相互作用を可能にする。さらに、システムはクライアントデバイスの位置を決定するために使用する環境の三次元(3D)マップ(例えば、1センチメートルの解像度を有する)を作成し得る。様々な実施形態において、マッピングはクライアント側(例えば、電話またはヘッドセット)で達成され、以前にコンパイルされた画像およびマッピングをクライアントデバイスに提供するバックエンドサーバとペアリングされる。
一実施形態において、システムは、カメラによってキャプチャされた1つまたは複数の画像に基づいてカメラの位置(例えば、クライアントデバイス上の)を評価するために、1つまたは複数のモデルを使用する。1つまたはモデルを使用することは、システムが1つまたは複数の画像内のライン接合部を検出し、3D空間と2D空間との間のライン接合部を投影して、それらがカメラの周囲の環境の3Dマップからのマップライン接合部に対応するかどうかを決定することを含む。ライン接合部とマップライン接合部との間の対応関係に基づいて、システムは空間内のカメラの位置を三角測量できる。この位置を使用して、システムは、クライアントデバイスを使用するゲームのプレイヤーが、現実世界におけるそれらの位置に対応する仮想世界における仮想要素または他の仮想情報を見得るように、平行現実ゲームのための1つまたは複数の画像を拡張できる。
[例示的なシステム]
図1は、一実施形態による、ARコンピューティングシステム100のブロック図である。ARコンピューティングシステム100は、ネットワーク104を介してアクセスされる要素と協働するクライアントデバイス102を含む。例えば、要素は、ARデータを生成するように構成されたサーバデバイスのコンポーネントであり得る。図示された実施形態において、クライアントデバイス102はゲームエンジン106およびARプラットフォーム108を含む。ゲームエンジン106はクライアントデバイス102のユーザがプレイするための平行現実ゲームをレンダリングする。ゲームエンジンはUNITY(登録商標)ゲームエンジンまたは別の物理/レンダリングエンジンであり得る。ARプラットフォーム108はクライアントデバイス102のカメラによってキャプチャされた画像データに対してセグメント化およびオブジェクト認識を実行し得る。
図1に示されるARプラットフォーム108は、複合ビジョンモジュール110と、位置推定およびマッピングモジュール112と、マップ検索モジュール114と、ディープラーニングモジュール116とを含む。他の実施形態では、ARプラットフォームは、トレーニングモジュールまたはオブジェクト認識モジュールなどの代替または追加のモジュールを含み得る。さらに、いくつかの実施形態では、ARプラットフォームは要素とともにサーバデバイスに位置し、ネットワーク104を介してアクセスされ得る、または要素はARプラットフォーム108に位置し得る。
複合コンピュータビジョンモジュール110は、クライアント側の画像処理を実行する。そのような画像処理は、画像セグメンテーション、ローカル3D推定などを含み得る。いくつかの実施形態では、複合コンピュータビジョンモジュール110は、画像を点群に変換する、または画像を処理して、画像に描写された特徴をクライアントデバイス102の周囲の環境の3Dマップに追加し得る。
位置推定およびマッピングモジュール112はクライアントデバイス102の周囲の環境をマッピングし、環境におけるクライアントデバイス102の位置を決定する。位置推定およびマッピングモジュール112は環境をマッピングするための複数のアプローチの1つまたは複数を使用し、クライアントデバイス102の位置を決定し得る。
位置推定およびマッピングモジュール112はクライアントデバイス102のカメラから1つまたは複数の画像(またはビデオなどの他の画像データ)を受信する。いくつかの実施形態では、位置推定およびマッピングモジュール112はクライアントデバイス102によってキャプチャされた他のセンサデータ(例えば、照明データ、画像データ、および/またはGPS座標)を受信し、位置推定およびマッピングモジュール112はクライアントデバイス102の位置を決定するために使用し得る。位置推定およびマッピングモジュール112はクライアントデバイス102が環境内を移動する際にリアルタイムで画像(およびセンサデータ)を受信し得る。
位置推定およびマッピングモジュール112は、受信された画像に基づいて環境内のクライアントデバイス102の位置を決定する。いくつかの実施形態では、位置推定およびマッピングモジュール112は、クライアントデバイス102に位置する全地球測位システムから現実世界におけるクライアントデバイス102のGPS座標を受信する。位置推定およびマッピングモジュール112はこれらのGPS座標を使用してクライアントデバイス102の位置を表し得、またはこれらのGPS座標をクライアントデバイス102の一般的な位置の基準として使用して、1つまたは複数の他のモデルまたはシステムを使用してクライアントデバイス102のより正確な位置を決定し得る。
いくつかの実施形態において、位置推定およびマッピングモジュール112は、Simultaneous Localization and Mapping(SLAM)ソフトウェア開発キット(SDK)関数を使用して、環境のマップを生成する。特に、SLAM SDK機能は、環境のマップを形成するために使用される際の画像または他の画像データに基づいて点群を構築するマッピングシステムを含み得る。位置推定およびマッピングモジュール112は、マップをローカルに記憶し得る、またはマップをマップデータベース124に記憶し得る。マップに基づいて、位置推定およびマッピングモジュール112は空間におけるクライアントデバイス102の位置を見つけるためにトラッキングを使用し得る。位置推定およびマッピングモジュール112はさらに、SLAMプロセスを使用して、クライアントデバイスのユーザに表示するために、1つまたは複数のアニメーションまたは拡張値を画像上に再投影する。例えば、クライアントデバイスの位置に基づいて、位置推定およびマッピングモジュール112は仮想世界からの1つまたは複数の仮想要素または他の情報を、見るべきユーザの画像に追加し得る。仮想要素などは図4に関連して説明される。
他の実施形態では、位置推定およびマッピングモジュール112は、クライアントデバイス102の位置を決定するために利用可能な複数のモデルを有する。これらのモデルは、点群ベースのモデル(例えば、SLAMによって提供されるような)、平面マッチングモデル、ラインマッチングモデル、地理情報システム(GIS)モデル、建物認識モデル、および風景認識モデルを含み得る。位置推定およびマッピングモジュール112は、クライアントデバイス102によってキャプチャされたセンサデータに基づいて、位置推定のためのモデルの1つまたは複数を選択し得る。例えば、平面およびラインマッチングモデルは屋内で最も正確であり得るが、風景および建物モデルは屋外で最も正確であり得る。したがって、クライアントデバイス102はセンサデータに基づいてクライアントデバイス102が屋内または屋外にあると決定し、位置推定のためのより効果的なモデルを選択し得る。
1つの例示的な実施形態では、位置推定およびマッピングモジュール112は、ライン接合部モデルを画像に適用して、クライアントデバイス102を位置推定する。特に、ライン接合部モデルは、1つまたは複数の画像内の1つまたは複数のライン接合部を識別する。ライン接合部は、画像内に示されるように、空間内の2つまたは複数のラインが交わる点である。例えば、デスクの正面の画像は、エッジ(例えば、ライン)が交わるデスク上の各角部におけるライン接合部を示し得る。いくつかの実施形態では、ライン接合部モデルは曲線などの画像内の他の特徴を識別し得る。
ライン接合部モデルは環境の3Dマップにアクセスする。3Dマップはクライアントデバイスにローカルに記憶またはネットワーク104を介してアクセスされるマップデータベース124に記憶され得る。3Dマップは3Dマップ内で既に識別されたライン接合部であるマップライン接合部またはラインおよび曲線などの他の特徴を含み得る。代替的に、マップ検索モジュール114はライン接合部モデルの3Dマップにアクセスし、3Dマップをライン接合部モデルに入力し得る。
ライン接合部モデルは、識別されたライン接合部(または、いくつかのケースでは、特徴)を3Dマップと比較して、対応するライン接合部(または特徴)を見つける。ライン接合部モデルによって見つけられた対応関係に基づいて、ライン接合部モデルは環境内のクライアントデバイス102の位置を決定する。クライアントデバイス102の位置を決定するためにライン接合部モデルによって使用されるプロセスは図2A乃至図2Cに関連してさらに説明される。
一実施形態では、1つまたは複数のモデルを選択するために、位置推定およびマッピングモジュール112はモデルがクライアントデバイス102の正確な位置を生成する可能性を示すスコアを各モデルに割り当てる。スコアはセンサデータによって示されるようなクライアントデバイス102の現在の状況に基づいて決定され得る。位置推定およびマッピングモジュール112は、スコアおよび1組の選択基準に基づいて、位置推定のための1つまたは複数のモデルを選択する。例えば、クライアントデバイス102は、最高スコアを伴うモデル、3つの最高スコアモデル、または閾値を上回るスコアを伴う全てのモデルを選択し得る。
追加または代替として、位置推定およびマッピングモジュール112は、どのモデルが同様の場所において以前に選択されたかに基づいて、1つまたは複数のモデルを選択し得る。例えば、平面マッチングモデルが以前に正常に使用されたGPS座標の閾値内に、クライアントデバイス102のGPS座標がある場合、位置推定およびマッピングモジュール112は、別のモデルのスコアが平面マッチングモデルのスコアを閾値量だけ超えない限り、平面マッチングモデルのスコアを増す(boost)、または平面マッチングモジュールを選択し得る。同様に、特定のモデルが以前に選択され、正確な位置を提供することに失敗した場合、位置推定およびマッピングモジュール112はそのモデルのスコアを低減し得る。したがって、同様のGPS座標におけるモデルの成功および失敗は、GPS座標によって提供されるよりも正確な位置(例えば、1センチメートル以内)を決定するために、位置推定およびマッピングモジュール112がどのモデル(1つまたは複数)を選択するかを知らせるために使用され得る。
同様に、位置推定およびマッピングモジュール112はセンサデータが示す位置におけるモデルの成功および失敗がクライアントデバイス102の現在位置と同様であると考え得る。例えば、位置推定およびマッピングモジュール112は、クライアントデバイス102が現在屋内または屋外にあることをセンサデータが示すかどうかに基づいて、位置を屋内および屋外として分類し、いくつかのモデルを除外または選択し(あるいはそれらの対応するスコアを増加または減少させ)得る。同様に、位置推定およびマッピングモジュール112は照明レベルに基づいて1つまたは複数のモデルを選択し得る(例えば、1つのモデルは低照度条件において他のモデルに対して特に有効であり、したがって、クライアントデバイス102によって検出された照明レベルが閾値を下回る場合、優先的に選択され得る)。収集されたデータを使用して現在の条件において正確な結果を生成する可能性が最も高いモデルの選択を優先するためにどのモデル(単数または複数)を選択するかに影響を与え得る他の方法を、当業者は認識するであろう。
位置推定およびマッピングモジュール112は、クライアントデバイス102のための潜在的な位置を生成するために、選択された1つまたは複数のモデルを適用し得る。単一のモデルのみが選択されたケースでは、位置推定およびマッピングモジュール112は、生成された位置をクライアントデバイス102の実際の位置に使用し得る。しかし、GPS座標が利用可能である場合、モデルを使用して決定された位置がGPS座標から閾値量を超えて異なる場合、位置推定およびマッピングモジュール112は、追加のモデルを適用する、またはそうでなければ現在の位置を検証しようとし得る。
2つまたは複数のモデルが選択された場合、各モデルは、クライアントデバイス102の潜在的な位置を生成し得る。位置推定およびマッピングモジュール112は、潜在的な位置に基づいてクライアントデバイス102の現在の位置を決定する。一実施形態では、位置推定およびマッピングモジュール112は、モデルによって生成された位置の平均として現在の位置を計算する。別の実施形態では、位置推定およびマッピングモジュール112は、潜在的な位置の加重平均を使用する。例えば、位置推定およびマッピングモジュール112は、モデル選択フェーズからのそのスコアによって各モデルの寄与率(contribution)を重み付けし得る。代替的に、位置推定およびマッピングモジュール112は、特定のモデルを他のモデルよりも優先するように重み付けを事前設定し得る。さらなる実施形態では、位置推定およびマッピングモジュール112は、デバイスのGPS座標に最も密接に一致するものを採用するなど、他の方法で潜在的な位置を組み合わせ得る。
いくつかの実施形態では、位置推定およびマッピングモジュール112がクライアントデバイス102の位置を決定すると、位置推定およびマッピングモジュール112は、クライアントデバイス102において提示される1つまたは複数の画像に対する仮想世界を描写するARデータを検索する。例えば、位置推定およびマッピングモジュール112は、マップデータベース124(ローカルに記憶されている、またはネットワーク104を介してアクセスされるサーバデバイスに記憶されている)にアクセスして、画像に追加するために仮想世界から追加のもしくはより多くの仮想要素または他の情報を検索し得る。仮想要素などは図4に関連して説明される。
マップ検索モジュール114は以前に生成されたマップを検索する。例えば、マップ検索モジュール114は、ネットワーク104を介してマップデータベース124にアクセスし、マップデータベースから検索された情報を位置推定およびマッピングモジュール112などのクライアントデバイス102の1つまたは複数の他のモジュールに送信し得る。いくつかの実施形態では、マップ検索モジュール114はいくつかのマップ(例えば、ユーザの自宅位置のためのマップ)をローカルに記憶し得る。ディープラーニングモジュール116は、オブジェクト認識のために機械学習アルゴリズムを適用する。ディープラーニングモジュール116は、ネットワーク104を介してトレーニングした後に機械学習アルゴリズムを取得し得る。いくつかの実施形態では、ディープラーニングモジュール116はまた、さらなるモデルトレーニングを可能にするために、オブジェクト認識および/またはユーザフィードバックの結果を提供し得る。
示される実施形態では、ネットワーク104を介して(例えば、サーバコンピューティングデバイスにおいて)アクセスされるコンポーネントは、ワンワールドマッピングモジュール120、オブジェクト認識モジュール122、マップデータベース124、オブジェクトデータベース126、およびディープラーニングトレーニングモジュール128と通信するARバックエンドエンジン118を含む。他の実施形態では、追加のまたは異なるコンポーネントが含まれ得る。さらに、機能は本明細書で説明されるものとは異なるように分散され得る。例えば、オブジェクト認識の機能の一部または全部はクライアントデバイス102において実行され得る。
ワンワールドマッピングモジュール120は、異なるローカルマップを一緒に融合して、複合現実世界マップを作成する。前述のように、マップを最初に生成したクライアントデバイス102からのGPS位置データは、隣接または重複している可能性のあるローカルマップを識別するために使用され得る。次いで、パターンマッチングを使用して、マップの重複部分または2つのローカルマップが互いに隣接していることを識別し得る(例えば、それらが同じオブジェクトの反対側の表現を含むため)。2つのローカルマップが重複または隣接していると決定された場合、2つのマップがどのように互いに関係するかを示すマッピングを記憶することができる(例えば、マップデータベース内に)。
オブジェクト認識モジュール122は、画像/オブジェクト情報および収集された3Dデータを使用して、データ内に表される現実世界内の特徴を識別する。このようにして、サーバ104は、例えば、椅子が3Dの位置にあることを決定し、その位置に関連付けられたオブジェクトデータベース126にアクセスする。ディープラーニングモジュール128は、マップ情報をオブジェクト情報と融合するために使用され得る。このようにして、システム100は、オブジェクト認識のためにおよび融合のために、3D情報をマップに接続し直し得る。
マップデータベース124は、クライアントデバイス102によって生成されたマップデータを記憶するように構成された1つまたは複数のコンピュータ可読媒体を含む。マップデータは、ある位置においてクライアントデバイス102によって収集された画像および他のセンサデータに関連付けて記憶された3D点群のローカルマップを含むことができる。マップデータはまた、異なるローカルマップ間の地理的関係を示すマッピング情報を含み得る。同様に、オブジェクトデータベース126は、認識されたオブジェクトに関する情報を記憶するように構成された1つまたは複数のコンピュータ可読媒体を含む。例えば、オブジェクトデータベース126は、既知のオブジェクト(例えば、椅子、デスク、木、建物など)のリストを、それらのオブジェクトの特性とともに対応する位置とともに含み得る。特性はオブジェクトタイプに対して一般的であってもよく、またはオブジェクトの各インスタンスに対して具体的に定義され得る(例えば、全ての椅子は家具と見なされるが、それぞれの我々の位置は個別に定義され得る)。マップデータベース124およびオブジェクトデータベース126は単一のエンティティとして示されているが、それらは複数のデバイスにおいて複数の記憶媒体にわたって分散され得る(例えば、分散データベースとして)。
[例示的なライン接合部モデル]
位置推定およびマッピングモジュール112は、クライアントデバイス102を、それがキャプチャする1つまたは複数の画像に基づいて、位置推定するために3Dマップを使用するライン接合部モデルを採用し得る。以下の段落は、モデルの一実施形態がどのように定義され、数学的に適用されるかを説明する。
1.3D接合部をパラメータ化
図2Aは一実施形態による3Dライン接合部の一例を示す。ライン接合部は、点Qと、方向ベクトル(または、いくつかの実施形態では、ラインもしくはラインセグメント)D1およびD2とを含む。各方向ベクトルは単位ベクトルであり、長さ1を有する。各3Dライン接合部は7つの自由度を有し、点Qの3つは3D空間におけるその位置を表し、2つは単位ベクトルであるため、それらは各方向ベクトル(D1およびD2)に対するものである。
制約された最適化を回避するために、ライン接合部モデルは、以下のように2つの方向ベクトルをパラメータ化し、ここで、X、Y、Zは、3次元空間における方向ベクトルの座標を表し、θは+Z軸からの角度が増加する方向を表し、αは+Z軸から反時計回りにX-Y平面における角度が増加する方向を表し、
1=(X1,Y1,Z1)=(cosθ1cosα1, cosθ1sinα1, sinθ1
2=(X2,Y2,Z2)=(cosθ2cosα2, cosθ2sinα2, sinθ2
となる。単位ベクトルのノルムは1であるので、次いで、
(cosθcosα)2+(cosθsinα)2+(sinθ)2
=cos2θ(cos2α+sin2α)+sin2θ
=ωs2θ+sin2θ
=1 (1)
となる。したがって、ライン接合部モデルは、3Dライン接合部を7ベクトル(θx、θy、θz、θ1、α1、θ2、α2)としてパラメータ化できる。
2.3D接合部を2D空間に投影
ライン接合部モデルは、3Dライン接合部を2D空間に投影して、図2Bに示すように、2つの交差するライン(L1およびL2)を得る。特に、点Q、1つの方向ベクトルD1、およびカメラ姿勢(R、T)を使用して、2Dライン関数はライン上の2つの別個の点(P1およびP2)の外積として定義され、以下の式
Ρ1∧Ρ2
~(RQ+T)∧(R(Q+D1)T)
~(RQ+T)∧(RQ+T+RD1
~(RQ+T)∧(RQ+T)+(RQ+T)∧(RD1
~(RQ+T)∧(RD1
~R(Q∧D1)+T∧RD1
~(RQx+TxR)D1 (2)
を導き、ここで、P1、P2は直線上の2つの点であり、∧はクロス積(cross product)であり、Qx、TxはベクトルQおよびTの歪対称行列(the skew-symmetric matrices)である。
したがって、2D射影は方向ベクトルD1について、(RQx+TxR)D1である。ライン接合部モデルは方向ベクトルD2の2D投影を導出するために同じプロセスを使用し得る。
3.再投影エラー
ライン接合部モデルは、1つまたは複数の画像内のキーラインを決定して、3Dライン接合部から2D投影を作成する際のエラーを決定する。キーラインは、画像内の異なる色の領域を分離する境界線である。2D投影はライン関数であるので、ライン接合部モデルは、検出されたキーラインの両方の端点からの点とラインの距離を比較できる。4つの端点が、2つのキーライン上でそれぞれu、v、x、およびyとして示される場合、ライン接合部モデルはそれぞれの距離を決定し得る。uを一例にとると、距離は
Figure 2023507498000002
であり、ここでL=(A、B、C)は2Dライン投影の2Dライン方程式であり、d2=A2+B2であり、
L=(RQx+TxR)D(3)
である。
1およびL2がそれぞれ2つの3Dラインの2D投影である場合、実際の残差は、以下
Figure 2023507498000003
のような4ベクトルである。
4.最適化設定
2D投影の設定を最適化するために、ライン接合部モデルは非制約最小化問題(an unconstrained minimization problem)を解いて、環境内のクライアントデバイス102(例えば、カメラ)の位置を決定しなければならない。非線形性に起因して、一実施形態では、ライン接合部モデルはLevenberg-Marquardt(または「LM」)ソルバを使用する。一般的な更新のステップは、以下のように、
ΔΡ=-(JTJ+λI)-1t
であり、ここで、Jは再投影エラーのヤコビアンであり、rは残差であり、λはreq項である。
1つまたは複数の画像は、複数のランドマーク(例えば、ライン接合部、点群、ラインなど)を含み、典型的な画像には多くのランドマークがあるので、ライン接合部モデルは、設定を最適化するために交互方向のアプローチを使用し得る。これは、ライン接合部モデルが、すべての他の変数を固定しながら、一度に1つのランドマークまたは画像のフレームについてのステップを計算することを可能にする。このアプローチの利点はヤコビアン行列が比較的小さいサイズを有することであり、これはライン接合部モデルのためのより高速な計算につながる。
一実施形態では、最適化のためにライン接合部モデルが後に続くパイプラインは、以下、
収束していないが
各ランドマークについて、
LMステップを計算する
ランドマークを更新する
各フレームについて、
LMステップを計算する
フレームを更新する
のように要約できる。
ライン接合部モデルは、以下で説明されるように、各変数についてヤコビアンを最適化および計算するために、このプロセスを使用する。これらの導出はライン接合部モデルに関して説明されるが、いくつかの実施形態では、ライン接合部モデルは、適用されるたびにこれらの導出を完了し得ない、またはライン接合部モデルは、導出自体を完了するのではなく、クライアントデバイス102の位置を決定するために、結果として生じる方程式のみを使用し得る。
5.ヤコビアン-3D接合部-接合点Q
Q、JQに対するヤコビアンを計算するために、ヤコビアンは、4k x 3のサイズであるべきであり、ここで、kは、1つまたは複数の画像におけるフレームの数である。各フレームkに対して、残差rkは以下
Figure 2023507498000004
である。
残差rkから、ライン接合部モデルは、各フレームkについてヤコビアンJQを導出することができ、
Figure 2023507498000005
である。
第1の行を一例にとると、他の行も同様に分析することができ、
Figure 2023507498000006
とする。A=-RDxQ,B=TxRD(9)とする。
ここで(8)および(9)に従って、
Figure 2023507498000007
であり、
Figure 2023507498000008
とする。ここで、
Figure 2023507498000009
であるので、
Figure 2023507498000010
である。
したがって、これらの方程式を使用して、ライン接合部モデルは、ヤコビアンJKの第1の行について解き、同様に他の行について解き得る。
6.ヤコビアン-3D接合部-接合方向D1、D2
ライン接合部モデルは、D1およびD2のヤコビアンを計算する。例として、D1を使用すると、D2の導出は実質的に同一であるので、ライン接合部モデルは、上記のセクション5で説明したように、残差およびヤコビアン次元から開始する。残差は式(6)と同一であり、一方でヤコビアンは、
Figure 2023507498000011
である。
セクション5とは異なり、
Figure 2023507498000012
は全て0である。したがって、ライン接合部モデルは、JKのサイズをR2x2に低減し、残差rkのサイズをR2x1に低減できる。
さらに、ライン接合部モデルは、導関数(derivatives)の連鎖にもう1つのステップを追加し、
Figure 2023507498000013
とする。前述したものと同様のアプローチを使用することは、(θ1、Q2、α1、∂2)に対するヤコビアンを与え、それらを組み合わせることは、1つのフレームに対する完全なヤコビアンJk-R4x7を与える。
6.ヤコビアン-R、T
ヤコビアン行列Rを導出することは、Tに対するヤコビアン行列を導出することよりもライン接合部モデルに対してより多くの作業を伴う。ライン接合部モデルは、
Figure 2023507498000014
3つのオイラー角に関するヤコビアンを決定することを目的とする。
オイラー角から回転行列への変換を定義することは、
Figure 2023507498000015
をもたらし、ここで、
Figure 2023507498000016
である。Rが展開されると、
Figure 2023507498000017
である場合、ライン接合部モデルは
Figure 2023507498000018
を得る。
以下のステップは、オイラー角に関する導関数を計算するとき、連鎖律(the chain rule)の内側で、ライン接合部モデルが余分なステップを挿入し、それが
Figure 2023507498000019
であることを除いて、セクション5および6と同様である。
計算後。
Figure 2023507498000020
である。
接合部三角測量
上記で導出された式を使用して、ライン接合部モデルは、1つまたは複数の画像が与えられた環境におけるカメラ(例えば、クライアントデバイス102)の姿勢(位置および方向)を決定できる。一実施形態では、ライン接合部モデルは、3Dマップを使用して、3Dライン接合部のための頂点として使用される3Dマップ内の端点を決定する。ライン接合部モデルは、端点が1つまたは複数の画像に反映されるかどうかを決定するために、予測された姿勢を使用して端点を3Dから2Dに投影する。投影にエラーがあるので、ライン接合部モデルは、再投影エラーを低減するために、再投影エラーを計算し、1つまたは複数の画像についてのカメラの予測された姿勢(1つまたは複数の)を更新する。複数の反復についてカメラ姿勢を変化させることによって、ライン接合部モデルは、計算されたエラーが閾値未満になるまで、カメラの姿勢のその推定を収束させ得る。ライン接合部モデルは、この決定された位置を環境内のカメラの位置として使用する。
ライン接合部モデルは、上記の式を使用して環境内のカメラの位置を決定する。具体的には、K個のフレームと、カメラの内部パラメータおよび外部パラメータとが与えられると、
Figure 2023507498000021
と表され、ここで、Mi
Figure 2023507498000022
の形式を有し、Piは、
Figure 2023507498000023
の形式を有し、各フレーム上には、2つの2Dライン方程式と1つの交点(図2AのQまたは図2BのPに類似)とから構成される2Dライン接合部Ji=(li1、li2、Pi)があり、ここで2つのラインが交わる。
2Dラインの方程式は、カメラの中心とラインの2つの端点とを接続することによって張られる、3D空間内の2Dラインの法線ベクトルであることに留意されたい。全てのカメラが較正を伴うと仮定することによって、ライン接合部モデルはカメラ座標で機能できる。例えば、Ji-(li1、li2、Pi)は全てカメラ座標システム内にある。
ライン接合部のK個の対応関係が与えられると、ライン接合部モデルの目標は、対応を3D空間に三角測量して、3Dライン接合部を取得することとなる。ライン接合部モデルは、任意の適切な3D点三角測量法を使用し得る(例えば、2Dおよび3D接合点を使用する)。一実施形態では、3Dライン接合部は、J-(L1、L2、P)として定義されることができ、L1、L2は、2つの方向を示す2つの単位ベクトルであり、Pは、2つの3Dラインが3D空間内で交わる接合点である。
2つの2Dラインとは異なり、2つの3Dラインは、それらが平行でないかどうかにかかわらず交差しない可能性がある。しかし、一実施形態では、ライン接合部モデルは、それらの2つの3Dラインが交差するという制約を強制し、ライン接合部モデルが2つの方向ベクトルおよび1つの点を使用して3Dライン接合部を表すことを可能にする。2つの方向ベクトルは、前述したように単位ベクトルであるので、この表現は7つの自由度を有する。これは図2Cによって表され、これは、世界空間220内の点PとラインL1およびL2とを有する3Dライン接合部に対する、カメラ空間210内の点Piとラインli1およびli2を有する2Dライン接合部を示す。ライン接合部モデルまたは位置推定およびマッピングモジュール112は、1つまたは複数の画像を頂点(点)およびエッジ(ライン)のグラフに投影することによって、図2Cに類似する環境の表現を作成し、その表現を使用してライン接合部を識別し得る。
[3Dから2Dへ]
図2Cは、3Dライン接合部が2Dライン接合部にどのように関連するかを示す。カメラ中心Oi、画像のフレーム上の2Dライン接合部の点Pi、およびラインl上の任意の点は、クライアントデバイス102のカメラに対するカメラ空間210内の平面200を与える。平面200の法線ベクトルは、ラインlに対する方程式li1である。
フレームiのライン1上の任意の点qiおよびライン2上のsiを見つけるために、
Figure 2023507498000024
となる。xiとして示される、{Oi、Pi、qi}によって張られた平面上の任意の点は、
Figure 2023507498000025
である。
方向ベクトルもこの平面上の点を表すが、カメラ空間210ではなく世界空間220内にあることに留意されたい。L1をフレームi上のカメラ空間210にもたらすために、ライン接合部モデルは、以下の変換
i=Ri1+ti
を使用する。しかし、L1は方向ベクトルであるので、変換(translation)は無視することができ、その結果、
Figure 2023507498000026
となる。
式(2)および(3)を組み合わせることは、以下
Figure 2023507498000027
に示すように、3Dライン接合部方向ベクトルと2Dラインとの間の直接的な関係が得られる。これは、すべてのフレームi=1,.,Kに当てはまる。
点Pを、
i=RiP+ti
(5)
を使用して、世界空間220からカメラ220空間に転送できる。フレーム上のその画像は、両方の2Dラインと同時に交差するはずであるため、式(2)および(5)を組み合わせると、
Figure 2023507498000028
が得られる。
[2Dから3Dへ]
式(4)および(6)は、2D接合部の対応関係から3D接合部を解くための式を与える。
Figure 2023507498000029
2つのkx3行列とする。
式(4)によれば、これは、
Figure 2023507498000030
である。
1およびL2は両方とも単位ベクトルであるので。
Figure 2023507498000031
であり、ライン接合部モデルは、特異値分解(SVD)をN1およびN2に適用して、
Figure 2023507498000032
とすることができ、ここで、L1は最小特異値に関連づけられた特異ベクトルとし、L2についても同様とする。
式(6)によれば、
Figure 2023507498000033
とし、
Figure 2023507498000034
とすると、ライン接合部モデルは、NP=bの最小二乗解(the least square solution)を見つけることによってPを解くことができる。したがって、
Figure 2023507498000035
である。
ライン接合部モデルは、カメラ(例えば、クライアントデバイス102)が環境を動き回り、より多くの画像をキャプチャするので、上記で説明したプロセスを使用し、カメラのロケーションを何度も計算し得る。
[例示的なデータフロー]
図3は、一実施形態による、ARデータを生成および表示するためにクライアントデバイス102およびサーバデバイスによって実行されるプロセスを示すフローチャートである。クライアントデバイス102およびサーバデバイス(集合的に、「デバイス」)は、図1に示されるものと同様であり得、サーバデバイスは、ネットワーク104によってクライアントデバイス102に接続される要素によって表される。破線は、クライアントデバイス102とサーバデバイスとの間のデータの通信を表し、一方、実線は、デバイスの1つの中のデータの通信を示す。他の実施形態では、機能はデバイス間で異なるように分散され得る、および/または異なるデバイスが使用され得る。
302にて、センサデータは、クライアントデバイス102上の1つまたは複数のセンサによってクライアントデバイス102において収集される。一実施形態において、センサデータは、画像および慣性測定情報を含む。画像は、1つまたは複数のカメラによってキャプチャされる。慣性測定情報は、クライアントデバイス102上の全地球測位システム(例えば、GPS)およびジャイロスコープ/加速度計モジュールを使用して収集され得る。圧力レベル、照明レベル、音レベル、オーディオデータなどの追加のセンサデータが収集され得る。
クライアントデバイス102は、304にてローカルマップストレージを維持し得る。ローカルマップストレージは、図1に示される位置推定およびマッピングモジュール112に、またはクライアントデバイス102における別の位置に、含まれ得る。ローカルマップストレージはローカルの点群データを含む。点群データは、1つまたは複数の環境の3Dマップ内に構築できるメッシュ表面を形成する空間における位置を含み、これはまた、ローカルマップストレージに記憶され得る。
マップが306にて初期化される場合、クライアントデバイス102は、308にて、位置推定およびマッピングモジュール112においてSLAM機能を開始し得る。SLAM機能は、点群を構築し、トラッキングを使用して、空間内のカメラ(例えば、クライアントデバイス102上の)の位置を見つける、マッピングシステムを含む。例示的なSLAMプロセスはさらに、アニメーションまたは拡張された値を現実世界に再投影する。304にてローカルマップストレージに記憶され得るマップが310にて位置していない場合、クライアントデバイス102は、312にて初期化モジュールを使用してマップを作成する。
314にて環境内の新規の視点が検出された場合(例えば、マッピング/画像化されていないエリアに曲がり角を曲がる場合、または重複があり、現実世界の現在見える部分のすべてがマッピング/画像化されているわけではない場合)、クライアントデバイス102は、316にて、クライアントデバイス102におけるローカル環境推論(a local environment inference)によって収集されたデータを記録し得る。例えば、クライアントデバイス102が現在新規の視点を有すると決定すると、その視点でカメラによってキャプチャされた画像がサーバデバイスに送信され得る。ローカル環境推論は、クライアントデバイス102とサーバデバイスとの間で3Dデータを有する画像をいつどのように送信するかを決定するために使用され得る。ローカル環境推論は、ローカルマッピングシステム(例えば、位置推定およびマッピングモジュール112)のための更新されたキーフレームと、シリアル化された画像および/またはマップデータとを含み得る。
アクションがサーバデバイスによって実行されるサーバ側では、318において、新規の視点データ(例えば、メッシュデータを上部に有する点群情報を有する)がクラウドマップストレージに記憶され得る。サーバデバイスは、記憶されたクラウドマップストレージ320およびオブジェクトデータベース322からの現実世界のマップの異なる部分を追加し得る。クラウド環境推論324(クライアントデバイス102によってキャプチャされ、サーバデバイスによって処理された追加データを含む)は、クライアントデバイス102に送り返され得る。追加データは、ポイントおよびメッシュ、ならびに304においてローカルマップストレージに記憶されるセマンティックラベル(例えば、壁またはベッド)を有するオブジェクトデータを含み得る。
[仮想世界の概念図]
図4は、一実施形態による、位置ベースの並行現実ゲームのプレイヤーのためのゲームボードとして機能できる、現実世界400と並行する仮想世界410の概念図を示す。図1のクライアントデバイス102は、図4に示すように、現実世界400に対応する仮想世界410を有する並行現実ゲーム(または他の位置ベースのゲーム)をホストし得る。
図示されるように、仮想世界410は、現実世界400の地理と平行な地理を含むことができる。特に、現実世界400内の地理的なエリアまたは空間を定義する座標の範囲は、仮想世界410内の仮想空間を定義する対応する座標の範囲にマッピングされる。現実世界400内の座標の範囲を、町、近隣、都市、キャンパス、ロケール、国、大陸、地球全体、または他の地理的エリアに関連付けることができる。地理的な座標の範囲内の各地理的座標は、仮想世界内の仮想空間内の対応する座標にマッピングされる。
仮想世界410内のプレイヤーの位置は、現実世界400内のプレイヤーの位置に対応する。例えば、現実世界400内の位置412に位置するプレイヤーAは、仮想世界410内の対応する位置422を有する。同様に、現実世界内の位置414に位置するプレイヤーBは、仮想世界内の対応する位置424を有する。プレイヤーが現実世界400内の地理的座標の範囲内で動き回ると、プレイヤーは、仮想世界410内の仮想空間を定義する座標の範囲内でも動き回る。特に、プレイヤーによって携行されるクライアントデバイス102に関連付けられた測位システム(例えば、GPSシステムまたは位置推定およびマッピングモジュール112によって使用される他のシステム)を使用して、プレイヤーが現実世界内の地理的座標の範囲をナビゲートする際にプレイヤーの位置をトラッキングできる。現実世界400におけるプレイヤーの位置に関連付けられたデータは、仮想世界410における仮想空間を定義する座標の対応する範囲におけるプレイヤーの位置を更新するために使用される。このようにして、プレイヤーは、現実世界400内の特定の離散位置における位置情報をチェックインまたは定期的に更新する必要なく、現実世界400内の地理的座標の対応する範囲の間を単に移動することによって、仮想世界410内の仮想空間を定義する座標の範囲内の連続トラッキングをナビゲートできる。
平行現実ゲームは、仮想世界410内の様々な仮想位置に分散する様々な仮想要素および/または仮想オブジェクトまで移動するおよび/またはそれらと対話することをプレイヤーに要求する複数のゲームの目標を含むことができる。プレイヤーは、現実世界400内の仮想要素またはオブジェクトの対応する位置に移動することによって、これらの仮想位置に移動できる。例えば、クライアントデバイス102の測位システムは、プレイヤーが現実世界400を連続的にナビゲートすると、プレイヤーは並行仮想世界410も連続的にナビゲートするように、プレイヤーの位置を連続的にトラッキングできる。次いで、プレイヤーは、1つまたは複数のゲームの目標を達成または実行するために、特定の位置で様々な仮想要素および/またはオブジェクトと対話できる。
例えば、図4を参照すると、ゲームの目標は、プレイヤーに、仮想世界410内の様々な仮想位置に位置する仮想要素430の所有権を獲得または主張することを要求できる。これらの仮想要素430は、現実世界400内のランドマーク、地理的位置、またはオブジェクト440にリンクできる。現実世界のランドマークまたはオブジェクト440は、芸術作品、モニュメント、建物、企業、図書館、博物館、または他の適切な現実世界のランドマークもしくはオブジェクトとできる。これらの仮想要素430をキャプチャするために、プレイヤーは、現実世界における仮想要素430にリンクされたランドマーク、地理的位置、またはオブジェクト440に移動しなければならず、仮想世界410における仮想要素430との任意の必要な相互作用を実行しなければならない。例えば、図4のプレイヤーAは、クライアントデバイス102を介して、その特定のランドマーク240にリンクされた仮想要素430と対話する、またはそれをキャプチャするために、現実世界400内のランドマーク440に移動しなければならない。仮想要素430との相互作用は、写真を撮ること、および/または仮想要素430に関連付けられたランドマークもしくはオブジェクト440に関する他の情報を検証、取得、もしくはキャプチャすることなど、現実世界400におけるアクションを必要とし得る。
ゲームの目標は、平行現実ゲームにおいてプレイヤーによって収集される1つまたは複数の仮想アイテムを使用することを、プレイヤーに要求する可能性がある。例えば、プレイヤーは、ゲームの目標を達成するために有用であり得る仮想アイテム(例えば、武器または他のアイテム)を求めて仮想世界410を移動しなければならない場合がある。これらの仮想アイテムは、現実世界400内の異なる場所に移動することによって、または仮想世界410もしくは現実世界400のいずれかにおいて様々なアクションを完了することによって、見出される、または収集されることができる。図4に示される例では、プレイヤーは、仮想アイテム432を使用して、1つまたは複数の仮想要素430をキャプチャする。特に、プレイヤーは、仮想要素430に近接する仮想世界410内の位置に仮想アイテム432を展開できる。仮想要素430に近接する1つまたは複数の仮想アイテム432を展開することは、特定のプレイヤーまたは特定のプレイヤーのチームおよび/もしくは陣営(faction)のための仮想要素430のキャプチャをもたらすことができる。
1つの特定の実施形態では、プレイヤーは、平行現実ゲームの一部として仮想エネルギーを収集しなければならない場合がある。図4に示されているように、仮想エネルギー450を仮想世界210内の異なる位置に分散させることができる。プレイヤーは、現実世界400内の仮想エネルギー450の対応する位置に移動することによって、仮想エネルギー450を収集できる。仮想エネルギー450は、仮想アイテムに動力を供給するために、および/または平行現実ゲーム内の様々なゲームの目標を実行するために使用できる。すべての仮想エネルギー450を失ったプレイヤーは平行現実ゲームから接続を断たれる可能性がある。
本開示の態様によれば、平行現実ゲームを、平行現実ゲーム内のすべての参加者が同じ仮想世界を共有する大規模なマルチプレイヤー位置ベースゲームとすることができる。プレイヤーは別個のチームまたは陣営に分割されることができ、仮想要素430の所有権を獲得または主張するなど、1つまたは複数のゲームの目標を達成するために協働できる。このようにして、平行現実ゲームは、本質的に平行現実ゲーム内のプレイヤー間の協力を促すソーシャルゲームとすることができる。対戦するチームからのプレイヤーは平行現実ゲーム中に互いに妨害できる。プレイヤーは仮想アイテム432を使用して、対戦するチームのプレイヤーを攻撃するまたはその進行を妨げることができる。
平行現実ゲームは、平行現実ゲーム内のゲームプレイを向上させ、促すための様々な特徴を有することができる。例えば、プレイヤーは、平行現実ゲーム全体にわたって使用できる仮想通貨または他の仮想報酬を蓄積できる。プレイヤーは、1つまたは複数のゲームの目標を完了し、平行現実ゲーム内で経験を得るにつれて、様々なレベルに進むことができる。プレイヤーは平行現実ゲーム内に設けられた1つまたは複数の通信インターフェースを介して互いに通信できる。プレイヤーはまた、平行現実ゲーム内でゲームの目標を完了するために使用できる強化された「パワー」または仮想アイテム432を取得できる。当業者であれば、本明細書で提供される開示を使用して、本開示の範囲から逸脱することなく、様々な他のゲーム機能を平行現実ゲームに含めることができることを理解するはずである。
[例示的な方法]
図5は、一実施形態による、環境内のカメラの位置を決定するためのプロセス(または「方法」)を示すフローチャートである。図5のステップは、プロセス500を実行するクライアントデバイス102の観点から示されている。しかし、ステップの一部または全部は、サーバデバイスなど、他のエンティティまたはコンポーネントによって実行され得る。加えて、いくつかの実施形態は、ステップを並行して実行、ステップを異なる順序で実行、または異なるステップを実行し得る。
図5に示される実施形態では、プロセス500は、クライアントデバイス102のカメラによってキャプチャされた画像をクライアントデバイス102が受信する(510)ことから始まる。いくつかの実施形態では、クライアントデバイス102は、ビデオ、オーディオ、光レベル、音レベル、慣性データ、方位、圧力、および/または任意の他の利用可能なデータを含む追加のセンサデータをセンサから受信し得る。クライアントデバイス102は画像内の特徴を識別する(520)。特徴は、ライン接合部、ライン、曲線、または画像内に見出される任意の他の特徴であり得る。
クライアントデバイス102は、マップデータベース124から環境の3Dマップを検索する。3Dマップは、1つまたは複数のカメラによってキャプチャされた環境の画像データと、画像データがキャプチャされたときの1つまたは複数のカメラの相対位置と、を使用して、クライアントデバイス102またはサーバデバイスによって作成され得る。クライアントデバイス102は識別された特徴を、マップライン接合部、マップライン、マップ曲線などのマップ特徴を含む環境の3Dマップと比較する(530)。クライアントデバイス102は画像から識別された特徴(520)とマップ特徴との間の対応関係を識別する(540)。いくつかの実施形態では、クライアントデバイス102は、識別された特徴(520)および3Dマップにパターンマッチングを適用して、識別された特徴(520)および3Dマップが重複または隣接する(例えば、対応する)かどうかを決定し得る。クライアントデバイス102は対応関係に基づいてクライアントデバイス102の位置を決定する(550)。位置は平行現実ゲームのための仮想世界における位置に対応する現実世界の位置であり得る。位置がサーバデバイスにおいて決定された場合、サーバデバイスは、プレイヤーがディスプレイを介して見るために、仮想世界における位置の視点をクライアントデバイス102に送信し得る。
いくつかの実施形態では、クライアントデバイス102は、他の位置推定モデルを選択および適用して、クライアントデバイス102のための潜在的な位置を生成し得る。例えば、各モデルは、潜在的な位置を出力し得る。潜在的な位置は、ローカルマップ内の座標システムに基づいて定義され得る(例えば、クライアントデバイス102のGPS座標に基づいて選択されるように)。例えば、GPS座標はクライアントデバイス102が建物の中のどこかにある可能性が高いことを示し得、したがって、その建物のためのローカルマップが使用される。クライアントデバイス102は、決定された(550)位置を潜在的な位置と比較して、建物内のクライアントデバイス102のより正確な位置を決定し得る(例えば、1センチメートルの精度を目指す)。いくつかの実施形態では、クライアントデバイス102は、潜在的な位置に基づいて決定された(550)位置を変更し得る、または決定された(550)位置を潜在的な位置と組み合わせて、クライアントデバイス102の新しい位置を生成し得る。さらに、決定された(550)位置および潜在的な位置から新しい位置を生成するために、平均、重み付けされた組合せ、または他の適切な技術が使用され得る。
さらに、クライアントデバイス102は、センサデータに基づいて、実行可能性について決定された(550)位置をチェックし得る。例えば、クライアントデバイス102は、決定された(550)位置がGPS座標によって示される位置の閾値距離内にあるかどうか、画像内で検出された照明レベルが決定された(550)位置に対する予想と一致するかどうか、クライアントデバイス102によってキャプチャされた画像が同様の位置でキャプチャされた他の画像と一致するかどうか、などを決定し得る。
いくつかの実施形態では、クライアントデバイス102は平行現実ゲームにおいてクライアントデバイス102に接続された追加のクライアントデバイスから1つまたは複数の追加の画像を受信し得る。追加の画像は環境内のクライアントデバイス102を示し得、クライアントデバイス102はこれらの追加の画像を使用してクライアントデバイスの位置を決定し得る。
[コンピューティングマシンアーキテクチャ]
図6は、クライアントデバイス102またはサーバとして使用するのに適した例示的なコンピュータ600を示す高レベルブロック図である。例示的なコンピュータ600は、チップセット604に結合された少なくとも1つのプロセッサ602を含む。チップセット604は、メモリコントローラハブ620と、入力/出力(I/O)コントローラハブ622とを含む。メモリ606およびグラフィックアダプタ612は、メモリコントローラハブ620に結合され、ディスプレイ618は、グラフィックアダプタ612に結合される。ストレージデバイス608、キーボード610、ポインティングデバイス614、およびネットワークアダプタ616はI/Oコントローラハブ622に結合される。コンピュータ600の他の実施形態は異なるアーキテクチャを有する。
図6に示される実施形態では、ストレージデバイス608は、ハードドライブ、コンパクトディスク読み出し専用メモリ(CD-ROM)、DVD、またはソリッドステートメモリデバイスなどの非一時的コンピュータ可読記憶媒体である。メモリ606は、プロセッサ602によって使用される命令およびデータを保持する。ポインティングデバイス614は、マウス、トラックボール、タッチスクリーン、または他のタイプのポインティングデバイスであり、コンピュータシステム600にデータを入力するためにキーボード610(オンスクリーンキーボードであり得る)と組み合わせて使用される。グラフィックアダプタ612は、ディスプレイ618上に画像および他の情報を表示する。ネットワークアダプタ616は、コンピュータシステム600を1つまたは複数のコンピュータネットワークに結合する。
図1のエンティティによって使用されるコンピュータのタイプは、実施形態およびエンティティによって必要とされる処理能力に応じて変化できる。例えば、サーバは、説明された機能を提供するために協働する複数のブレードサーバを含む分散データベースシステムを含み得る。さらに、コンピュータは、キーボード610、グラフィックアダプタ612、およびディスプレイ618など、上記で説明したコンポーネントのいくつかを欠くことができる。
当業者は、説明された概念から逸脱することなく、の多数の使用および修正、ならびに本明細書に開示された装置および技術からの逸脱を行うことができる。例えば、本開示において例示または説明されるコンポーネントまたは特徴は、図示または説明される場所、設定、またはコンテキストに限定されない。本開示による装置の例は、前述の図の1つまたは複数を参照して説明されるすべての、より少ない、または異なるコンポーネントを含むことができる。したがって、本開示は、本明細書で説明する特定の実施形態に限定されるべきではなく、発行され得る任意の特許請求の範囲およびその均等物と一致する可能な限り最も広い範囲が与えられるべきである。
実世界の少なくとも一部と並行する共有された仮想世界を提供し得る並行現実ゲームは、プレイヤーのコミュニティを引き付けることができる様々な相互作用をホストできる。仮想世界に現実世界の少なくとも一部と並行する地理を提供することは、プレイヤーが現実世界をナビゲートすることによって仮想世界をナビゲートすることを可能にする。プレイ中、プレイヤーは、コンピュータ媒介現実技術を使用して、プレイヤーの環境の視覚的または聴覚的知覚を加算、減算、または他の方法で変更するハンドヘルドまたはウェアラブルデバイス全体にわたって仮想世界を見得る。
一実施形態において、システムは、カメラによってキャプチャされた1つまたは複数の画像に基づいてカメラの位置(例えば、クライアントデバイス上の)を評価するために、1つまたは複数のモデルを使用する。1つまたは複数のモデルを使用することは、システムが1つまたは複数の画像内のライン接合部を検出し、3D空間と2D空間との間のライン接合部を投影して、それらがカメラの周囲の環境の3Dマップからのマップライン接合部に対応するかどうかを決定することを含む。ライン接合部とマップライン接合部との間の対応関係に基づいて、システムは空間内のカメラの位置を三角測量できる。この位置を使用して、システムは、クライアントデバイスを使用するゲームのプレイヤーが、現実世界におけるそれらの位置に対応する仮想世界における仮想要素または他の仮想情報を見得るように、平行現実ゲームのための1つまたは複数の画像を拡張できる。
いくつかの実施形態において、位置推定およびマッピングモジュール112は、Simultaneous Localization and Mapping(SLAM)ソフトウェア開発キット(SDK)関数を使用して、環境のマップを生成する。特に、SLAM SDK機能は、環境のマップを形成するために使用され画像または他の画像データに基づいて点群を構築するマッピングシステムを含み得る。位置推定およびマッピングモジュール112は、マップをローカルに記憶し得る、またはマップをマップデータベース124に記憶し得る。マップに基づいて、位置推定およびマッピングモジュール112は空間におけるクライアントデバイス102の位置を見つけるためにトラッキングを使用し得る。位置推定およびマッピングモジュール112はさらに、SLAMプロセスを使用して、クライアントデバイスのユーザに表示するために、1つまたは複数のアニメーションまたは拡張値を画像上に再投影する。例えば、クライアントデバイスの位置に基づいて、位置推定およびマッピングモジュール112は仮想世界からの1つまたは複数の仮想要素または他の情報を、見るべきユーザの画像に追加し得る。仮想要素などは図4に関連して説明される。
位置推定およびマッピングモジュール112は、クライアントデバイス102のための潜在的な位置を生成するために、選択された1つまたは複数のモデルを適用し得る。単一のモデルのみが選択されたケースでは、位置推定およびマッピングモジュール112は、生成された位置をクライアントデバイス102の実際の位置として使用し得る。しかし、GPS座標が利用可能である場合、モデルを使用して決定された位置がGPS座標から閾値量を超えて異なる場合、位置推定およびマッピングモジュール112は、追加のモデルを適用する、またはそうでなければ現在の位置を検証しようとし得る。
いくつかの実施形態では、位置推定およびマッピングモジュール112がクライアントデバイス102の位置を決定すると、位置推定およびマッピングモジュール112は、クライアントデバイス102において提示される1つまたは複数の画像に追加する仮想世界を描写するARデータを検索する。例えば、位置推定およびマッピングモジュール112は、マップデータベース124(ローカルに記憶されている、またはネットワーク104を介してアクセスされるサーバデバイスに記憶されている)にアクセスして、画像に追加するために仮想世界から追加のもしくはより多くの仮想要素または他の情報を検索し得る。仮想要素などは図4に関連して説明される。
オブジェクト認識モジュール122は、画像/オブジェクト情報および収集された3Dデータを使用して、データ内に表される現実世界内の特徴を識別する。このようにして、サーバデバイスは、例えば、椅子が3Dの位置にあることを決定し、その位置に関連付けられたオブジェクトデータベース126にアクセスする。ディープラーニングモジュール128は、マップ情報をオブジェクト情報と融合するために使用され得る。このようにして、システム100は、オブジェクト認識のためにおよび融合のために、3D情報をマップに接続し直し得る。
マップデータベース124は、クライアントデバイス102によって生成されたマップデータを記憶するように構成された1つまたは複数のコンピュータ可読媒体を含む。マップデータは、ある位置においてクライアントデバイス102によって収集された画像および他のセンサデータに関連付けて記憶された3D点群のローカルマップを含むことができる。マップデータはまた、異なるローカルマップ間の地理的関係を示すマッピング情報を含み得る。同様に、オブジェクトデータベース126は、認識されたオブジェクトに関する情報を記憶するように構成された1つまたは複数のコンピュータ可読媒体を含む。例えば、オブジェクトデータベース126は、既知のオブジェクト(例えば、椅子、デスク、木、建物など)のリストを、それらのオブジェクトの特性とともに対応する位置とともに含み得る。特性はオブジェクトタイプに対して一般的であってもよく、またはオブジェクトの各インスタンスに対して具体的に定義され得る(例えば、全ての椅子は家具と見なされるが、それぞれの位置は個別に定義され得る)。マップデータベース124およびオブジェクトデータベース126は単一のエンティティとして示されているが、それらは複数のデバイスにおいて複数の記憶媒体にわたって分散され得る(例えば、分散データベースとして)。
.ヤコビアン-R、T
ヤコビアン行列Rを導出することは、Tに対するヤコビアン行列を導出することよりもライン接合部モデルに対してより多くの作業を伴う。ライン接合部モデルは、
であることを除いて、セクション5および6と同様である。
計算後
[3Dから2Dへ]
図2Cは、3Dライン接合部が2Dライン接合部にどのように関連するかを示す。カメラ中心Oi、画像のフレーム上の2Dライン接合部の点Pi、およびラインl i1 上の任意の点は、クライアントデバイス102のカメラに対するカメラ空間210内の平面200を与える。平面200の法線ベクトルは、ラインlに対する方程式li1である。
点Pを、
i=RiP+ti
(5)
を使用して、世界空間220からカメラ空210に転送できる。フレーム上のその画像は、両方の2Dラインと同時に交差するはずであるため、式(2)および(5)を組み合わせると、
1およびL2は両方とも単位ベクトルであるので
アクションがサーバデバイスによって実行されるサーバ側では、318において、新規の視点データ(例えば、メッシュデータを上部に有する点群情報を有する)がクラウドマップストレージ320に記憶され得る。マップがクラウドマップストレージ320に記憶されていない場合(326)、サーバデバイスは、新しいマップを作成してクラウドマップストレージ320に記憶し得る(328)。サーバデバイスは、記憶されたクラウドマップストレージ320およびオブジェクトデータベース322からの現実世界のマップの異なる部分を追加し得る。クラウド環境推論324(クライアントデバイス102によってキャプチャされ、サーバデバイスによって処理された追加データを含む)は、クライアントデバイス102に送り返され得る。追加データは、ポイントおよびメッシュ、ならびに304においてローカルマップストレージに記憶されるセマンティックラベル(例えば、壁またはベッド)を有するオブジェクトデータを含み得る。
例えば、図4を参照すると、ゲームの目標は、プレイヤーに、仮想世界410内の様々な仮想位置に位置する仮想要素430の所有権を獲得または主張することを要求できる。これらの仮想要素430は、現実世界400内のランドマーク、地理的位置、またはオブジェクト440にリンクできる。現実世界のランドマークまたはオブジェクト440は、芸術作品、モニュメント、建物、企業、図書館、博物館、または他の適切な現実世界のランドマークもしくはオブジェクトとできる。これらの仮想要素430をキャプチャするために、プレイヤーは、現実世界における仮想要素430にリンクされたランドマーク、地理的位置、またはオブジェクト440に移動しなければならず、仮想世界410における仮想要素430との任意の必要な相互作用を実行しなければならない。例えば、図4のプレイヤーAは、クライアントデバイス102を介して、その特定のランドマーク40にリンクされた仮想要素430と対話する、またはそれをキャプチャするために、現実世界400内のランドマーク440に移動しなければならない。仮想要素430との相互作用は、写真を撮ること、および/または仮想要素430に関連付けられたランドマークもしくはオブジェクト440に関する他の情報を検証、取得、もしくはキャプチャすることなど、現実世界400におけるアクションを必要とし得る。
1つの特定の実施形態では、プレイヤーは、平行現実ゲームの一部として仮想エネルギーを収集しなければならない場合がある。図4に示されているように、仮想エネルギー450を仮想世界10内の異なる位置に分散させることができる。プレイヤーは、現実世界400内の仮想エネルギー450の対応する位置に移動することによって、仮想エネルギー450を収集できる。仮想エネルギー450は、仮想アイテムに動力を供給するために、および/または平行現実ゲーム内の様々なゲームの目標を実行するために使用できる。すべての仮想エネルギー450を失ったプレイヤーは平行現実ゲームから接続を断たれる可能性がある。

Claims (20)

  1. カメラによってキャプチャされた1つまたは複数の画像から環境内のカメラの位置を特定するための方法であって、
    クライアントデバイスの前記カメラによってキャプチャされた1つまたは複数の画像を受信することと、
    前記1つまたは複数の画像のライン接合部を識別することと、
    前記識別されたライン接合部を前記環境の3Dマップと比較することであって、前記3Dマップはマップライン接合部を含む、ことと、
    識別されたライン接合部とマップライン接合部との間の対応関係を識別することと、
    前記対応関係を使用して前記環境内の前記カメラの姿勢を決定することと、
    を含む方法。
  2. 前記1つまたは複数の画像をグラフの頂点およびエッジに投影することによって、前記カメラの周囲の前記環境の表現を作成することと、をさらに含み、
    前記識別されたライン接合部は前記表現から識別され、前記識別されたライン接合部は前記表現において重複するエッジを含む、請求項1に記載の方法。
  3. 仮想ゲームのために前記クライアントデバイスに接続された追加のクライアントデバイスから画像データを受信することをさらに含む、請求項1に記載の方法。
  4. 前記識別されたライン接合部を前記環境の3Dマップと比較することは、
    パターンマッチングを前記識別されたライン接合部および3Dマップに適用して、前記識別されたライン接合部および3Dマップが重複または隣接しているかどうかを決定することを含む、請求項1に記載の方法。
  5. 前記3Dマップは、1つまたは複数のカメラによってキャプチャされた前記環境の画像データと、前記画像データがキャプチャされたときの前記1つまたは複数のカメラの相対位置とを使用して作成された、請求項1に記載の方法。
  6. 前記決定された位置は仮想世界内の位置に対応する、請求項1に記載の方法。
  7. 前記クライアントデバイスに、前記決定された位置に対応する前記仮想世界内の前記位置の視点を送信すること、をさらに含む、請求項6に記載の方法。
  8. 前記識別されたライン接合部の各々は7つの自由度を有し、3つの自由度は接合点に対してのものであり、2つの自由度は2つの方向ベクトルの各々に対してのものである、請求項1に記載の方法。
  9. 前記1つまたは複数の画像は、Levenberg-Marquardtソルバを用いて前記ライン接合部についての更新を計算することによって、フレームごとにそれぞれ最適化される、請求項1に記載の方法。
  10. 前記1つまたは複数の画像内のライン接合部を識別することが、
    前記1つまたは複数の画像内のラインの2Dライン方程式を決定することであって、各2Dライン方程式が3D空間内の法線ベクトルを描写する、ことと
    前記1つまたは複数の画像の各々の内の2Dライン接合部を決定することであって、各2Dライン接合部が2つの2Dライン方程式および交点から構成されている、ことと
    3D空間において前記2Dライン接合部を三角測量して、3Dライン接合部を取得することと、
    を含む請求項1に記載の方法。
  11. 前記2Dライン接合部を三角測量することは、
    前記1つまたは複数の画像の各々からの前記2Dライン接合部の座標を1つのカメラ座標空間に変換することと、
    前記変換された2Dライン接合部を3Dライン接合部に変換することと、
    を含む請求項10に記載の方法。
  12. カメラによってキャプチャされた1つまたは複数の画像から環境内のカメラの位置を特定するための命令を含む非一時的コンピュータ可読記憶媒体であって、前記命令は、
    クライアントデバイスの前記カメラによってキャプチャされた1つまたは複数の画像を受信するための命令と、
    前記1つまたは複数の画像のライン接合部を識別するための命令と、
    前記識別されたライン接合部を前記環境の3Dマップと比較するための命令であって、前記3Dマップはマップライン接合部を含む、命令と、
    識別されたライン接合部とマップライン接合部との間の対応関係を識別するための命令と、
    前記対応関係を使用して前記環境内の前記カメラの位置を決定するための命令と、
    を含む非一時的コンピュータ可読記憶媒体。
  13. 前記命令は、
    前記1つまたは複数の画像をグラフの頂点およびエッジに投影することによって、前記カメラの周囲の前記環境の表現を作成するための命令をさらに含み、
    前記識別されたライン接合部は前記表現から識別され、前記識別されたライン接合部は前記表現において重複するエッジを含む、請求項1に記載の非一時的コンピュータ可読記憶媒体。
  14. 前記命令は、仮想ゲームのために前記クライアントデバイスに接続された追加のクライアントデバイスから画像データを受信するための命令をさらに含む、請求項1に記載の非一時的コンピュータ可読記憶媒体。
  15. 前記識別されたライン接合部を前記環境の3Dマップと比較するための命令は、
    パターンマッチングを前記識別されたライン接合部および3Dマップに適用して、前記識別されたライン接合部および3Dマップが重複または隣接しているかどうかを決定するための命令を含む、請求項1に記載の非一時的コンピュータ可読記憶媒体。
  16. 前記3Dマップは、1つまたは複数のカメラによってキャプチャされた前記環境の画像データと、前記画像データがキャプチャされたときの前記1つまたは複数のカメラの相対位置とを使用して作成された、請求項1に記載の方法。
  17. 前記決定された位置は仮想世界内の位置に対応する、請求項1に記載の方法。
  18. 前記命令は、
    前記クライアントデバイスに、前記決定された位置に対応する前記仮想世界内の前記位置の視点を送信するための命令をさらに含む、請求項17に記載の方法。
  19. 前記識別されたライン接合部の各々は7つの自由度を有し、3つの自由度は接合点に対してのものであり、2つの自由度は2つの方向ベクトルの各々に対してのものである、請求項1に記載の方法。
  20. コンピュータプロセッサと、
    環境内のカメラを、前記カメラによってキャプチャされた1つまたは複数の画像から位置を特定するための命令を記憶する非一時的コンピュータ可読記憶媒体と、
    を含むコンピュータシステムであって、
    前記命令は、前記コンピュータプロセッサによって実行されると、
    クライアントデバイスの前記カメラによってキャプチャされた1つまたは複数の画像を受信することと、
    前記1つまたは複数の画像内のライン接合部を識別することと、
    前記識別されたライン接合部を前記環境の3Dマップと比較することであって、前記3Dマップはマップライン接合部を含む、ことと、
    識別されたライン接合部とマップライン接合部との間の対応関係を識別することと、
    前記対応関係を使用して前記環境内の前記カメラの位置を決定することと、
    を含む動作を実行する、コンピュータシステム。
JP2022538066A 2019-12-20 2020-12-18 3dライン接合部を用いた位置決定およびマッピング Active JP7453383B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201962952016P 2019-12-20 2019-12-20
US62/952,016 2019-12-20
PCT/IB2020/062238 WO2021124286A1 (en) 2019-12-20 2020-12-18 Location determination and mapping with 3d line junctions

Publications (2)

Publication Number Publication Date
JP2023507498A true JP2023507498A (ja) 2023-02-22
JP7453383B2 JP7453383B2 (ja) 2024-03-19

Family

ID=76437965

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2022538066A Active JP7453383B2 (ja) 2019-12-20 2020-12-18 3dライン接合部を用いた位置決定およびマッピング

Country Status (9)

Country Link
US (2) US11847792B2 (ja)
EP (1) EP4076693A1 (ja)
JP (1) JP7453383B2 (ja)
KR (1) KR20220119664A (ja)
CN (1) CN115175749A (ja)
AU (1) AU2020404610A1 (ja)
CA (1) CA3165417A1 (ja)
TW (1) TWI760978B (ja)
WO (1) WO2021124286A1 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20240046564A1 (en) * 2022-08-02 2024-02-08 Niantic, Inc. Simulated Consistency Check for Points of Interest on Three-Dimensional Maps
CN117170501B (zh) * 2023-08-24 2024-05-03 北京自动化控制设备研究所 基于点线融合特征的视觉跟踪方法

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5109294B2 (ja) 2006-06-19 2012-12-26 三菱電機株式会社 3次元位置補正装置
US8506404B2 (en) 2007-05-07 2013-08-13 Samsung Electronics Co., Ltd. Wireless gaming method and wireless gaming-enabled mobile terminal
US8049750B2 (en) * 2007-11-16 2011-11-01 Sportvision, Inc. Fading techniques for virtual viewpoint animations
US20150213590A1 (en) * 2011-07-29 2015-07-30 Google Inc. Automatic Pose Setting Using Computer Vision Techniques
GB201208088D0 (en) * 2012-05-09 2012-06-20 Ncam Sollutions Ltd Ncam
KR101415016B1 (ko) * 2012-11-07 2014-07-08 한국과학기술연구원 영상기반 실내 위치 검출방법 및 이를 이용한 휴대용 단말기
JP6278790B2 (ja) * 2014-03-31 2018-02-14 株式会社デンソーアイティーラボラトリ 車両位置検出装置、車両位置検出方法及び車両位置検出用コンピュータプログラムならびに車両位置検出システム
EP4206870A1 (en) 2014-06-14 2023-07-05 Magic Leap, Inc. Method for updating a virtual world
JP6716996B2 (ja) 2016-03-29 2020-07-01 富士通株式会社 画像処理プログラム、画像処理装置、及び画像処理方法
US10885714B2 (en) * 2017-07-07 2021-01-05 Niantic, Inc. Cloud enabled augmented reality
US10841486B2 (en) * 2017-07-20 2020-11-17 Eclo, Inc. Augmented reality for three-dimensional model reconstruction
JP6828668B2 (ja) * 2017-12-04 2021-02-10 株式会社デンソー 車線ネットワークデータ生成装置、車線ネットワークデータ生成プログラム及び記憶媒体
TWI648556B (zh) * 2018-03-06 2019-01-21 仁寶電腦工業股份有限公司 同步定位與地圖建構及手勢辨識方法
AU2019291869B2 (en) * 2018-06-27 2021-02-25 Niantic, Inc. Multi-sync ensemble model for device localization

Also Published As

Publication number Publication date
US20210190538A1 (en) 2021-06-24
EP4076693A4 (en) 2022-10-26
TWI760978B (zh) 2022-04-11
CN115175749A (zh) 2022-10-11
JP7453383B2 (ja) 2024-03-19
KR20220119664A (ko) 2022-08-30
US11847792B2 (en) 2023-12-19
EP4076693A1 (en) 2022-10-26
WO2021124286A1 (en) 2021-06-24
TW202135009A (zh) 2021-09-16
CA3165417A1 (en) 2021-06-24
US20240078701A1 (en) 2024-03-07
AU2020404610A1 (en) 2022-08-18

Similar Documents

Publication Publication Date Title
JP6931138B1 (ja) デバイスローカリゼーションのためのマルチシンクアンサンブルモデル
KR102493185B1 (ko) 깊이 힌트를 사용하는 깊이 추정 모델의 자가 감독 훈련
US20100103196A1 (en) System and method for generating a mixed reality environment
US20240078701A1 (en) Location determination and mapping with 3d line junctions
JP7466649B2 (ja) マッピングデバイスからのローカルマップのマージング
Unal et al. Distant augmented reality: Bringing a new dimension to user experience using drones
JP2023517661A (ja) 単一画像からの通行可能空間の決定方法
KR20230130110A (ko) 구조 평면도에 3d 증강 장면의 등록
TWI839513B (zh) 用於利用深度提示之深度預估模型之自我監督訓練之電腦實施之方法及非暫時性電腦可讀儲存媒體
TWI797715B (zh) 用於使用從透視校正影像中所提取之特徵的特徵匹配之電腦實施方法、電腦系統及非暫時性電腦可讀記憶體

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220819

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20220819

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20230628

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20230711

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20231011

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20231031

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20240125

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20240307

R150 Certificate of patent or registration of utility model

Ref document number: 7453383

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150