JP2024515995A - 注目点の再現性予測 - Google Patents

注目点の再現性予測 Download PDF

Info

Publication number
JP2024515995A
JP2024515995A JP2023566745A JP2023566745A JP2024515995A JP 2024515995 A JP2024515995 A JP 2024515995A JP 2023566745 A JP2023566745 A JP 2023566745A JP 2023566745 A JP2023566745 A JP 2023566745A JP 2024515995 A JP2024515995 A JP 2024515995A
Authority
JP
Japan
Prior art keywords
interest
points
reproducibility
images
game
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.)
Pending
Application number
JP2023566745A
Other languages
English (en)
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 JP2024515995A publication Critical patent/JP2024515995A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/50Context or environment of the image
    • 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/174Segmentation; Edge detection involving the use of two or more images
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/10Segmentation; Edge detection
    • G06T7/194Segmentation; Edge detection involving foreground-background segmentation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/70Determining position or orientation of objects or cameras
    • G06T7/73Determining position or orientation of objects or cameras using feature-based methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • 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
    • G06T7/74Determining position or orientation of objects or cameras using feature-based methods involving reference images or patches
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/768Arrangements for image or video recognition or understanding using pattern recognition or machine learning using context analysis, e.g. recognition aided by known co-occurring patterns
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/77Processing image or video features in feature spaces; using data integration or data reduction, e.g. principal component analysis [PCA] or independent component analysis [ICA] or self-organising maps [SOM]; Blind source separation
    • G06V10/774Generating sets of training patterns; Bootstrap methods, e.g. bagging or boosting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/90Identifying an image sensor based on its output data
    • 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/20Special algorithmic details
    • G06T2207/20081Training; Learning
    • 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/30232Surveillance
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Multimedia (AREA)
  • Computing Systems (AREA)
  • Artificial Intelligence (AREA)
  • Health & Medical Sciences (AREA)
  • Databases & Information Systems (AREA)
  • Evolutionary Computation (AREA)
  • General Health & Medical Sciences (AREA)
  • Medical Informatics (AREA)
  • Software Systems (AREA)
  • Processing Or Creating Images (AREA)
  • Image Analysis (AREA)

Abstract

本開示は、注目点を含むシーンをキャプチャした画像における注目点の検出の再現性に基づいて、位置特定のための注目点を評価するためのアプローチを記載する。注目点の再現性は、訓練された再現性モデルを使用して決定される。再現性モデルは、シーンの時系列画像を解析し、シーン内の各注目点の再現性関数を決定することによって訓練される。再現性関数は、時系列画像中のどの画像が注目点検出モデルによる注目点の検出を可能にしたかを識別することによって決定される。

Description

1.技術分野
[0001]記載される主題は、一般にカメラ位置特定に関し、特に、注目点の再現性を決定してカメラ位置特定アプリケーションにおける注目点の有用性を評価することに関する。
2.課題
[0002]カメラ位置特定とは、一般に、カメラによってキャプチャされた画像を使用して、環境内のカメラの位置および向き(姿勢)を決定するプロセスを指す。カメラ位置特定は、広範かつ多様な用途に使用されている。拡張現実(AR)アプリケーションでは、仮想環境が現実環境と同じ位置に配置される。現実環境の画像(例えば、ビデオ入力)をキャプチャしているカメラの姿勢が正確に決定されれば、仮想要素を現実環境の描写に正確に重ねることができる。例えば、仮想の帽子を現実の像の頭上に配置し得、仮想キャラクタを物理的な物体の後ろに部分的に描写し得る。
[0003]カメラ位置特定は、カメラによってキャプチャされた画像内の注目点を識別し、その注目点を3次元(3D)マップにマッピングすることによって、実行され得る。しかし、現実世界ではいつも状況が変化するため、注目点が、時どきシーンから消失し得る。例えば、移動する車両が注目点の前を通過することが原因で、注目点が時どき消失し得る。別の例では、照明条件によって、注目点を検出するためのモデルが、シーンの画像内の注目点の識別に失敗し得る。このように、注目点が位置特定に好適な候補であるかを決定できるように、注目点がどの程度安定しているかを決定できることが必要である。
[0004]本開示は、注目点を含むシーンをキャプチャする画像における注目点の検出の再現性に基づいて、位置特定用途のための注目点を評価するアプローチを記載する。注目点の再現性は、訓練された再現性モデルを用いて決定される。再現性モデルは、シーンの時系列画像を解析し、シーン内の各注目点の再現性関数を決定することによって訓練される。再現性関数は、時系列画像中のどの画像が注目点検出モデルによる注目点の検出を可能にしたかを識別することによって決定される。
[0005]再現性モデルは、現在の時刻において検出される可能性が低い注目点をフィルタリングすることによって、要約マップを生成するために使用され得る。さらに、再現性モデルは、入力画像内の注目点を識別し、3Dマップを照会して入力画像をキャプチャしたカメラの姿勢を決定する位置特定アルゴリズムを実行するための情報を受信するために使用され得る。
[0006]図1は、一実施形態による、現実世界に似せた(parallels)地理を有する仮想世界の表現を示す図である。 [0007]図2は、一実施形態による、パラレルリアリティゲームの例示的なゲームインタフェースを示す図である。 [0008]図3は、1つまたは複数の実施形態による、ネットワークコンピューティング環境を示す図である。 [0009]図4Aは、1つまたは複数の実施形態による、再現性モデルを訓練するための全体的な処理を説明するフローチャートである。 [0010]図4Bは、1つまたは複数の実施形態による、シーンの時系列画像を示す図である。 [0011]図5は、1つまたは複数の実施形態による、再現性機能を使用して3Dマップを構築する例を説明するフローチャートである。 [0012]図6は、1つまたは複数の実施形態による、再現性機能を使用してカメラの姿勢を決定する例を説明するフローチャートである。 [0013]図7は、1つまたは複数の実施形態による、再現性機能を使用して要約マップを構築する例を説明するフローチャートである。 [0014]図8は、1つまたは複数の実施形態による、再現性機能の訓練または適用に使用することに適したコンピュータシステムの一例を示す図である。
[0015]図面および以下の記載は、例示のためにのみ特定の実施形態を説明する。当業者であれば、以下の記載から、説明される原理から逸脱することなく、構造および方法の代替の実施形態を採用され得ることを容易に認識するであろう。次に、添付の図面に例示される実施形態を参照する。
[0016]図面および以下の記載は、例示のためにのみ特定の実施形態を説明する。当業者であれば、以下の記載から、説明される原理から逸脱することなく、構造および方法の代替の実施形態が採用され得ることを認識するであろう。可能な限り、類似または同様の参照番号が、類似または同様の機能を示すために図面において使用される。共通の数字の後に異なる文字が続く要素の場合、これはその要素が類似または同一であることを示す。数字のみへの参照は、文脈が他を示さない限り、一般に、そのような要素の何れか1つまたは任意の組み合わせを指す。
[0017]様々な実施形態が、現実世界におけるプレイヤの移動および行動が仮想世界における行動に影響を及ぼすように、現実世界の地理の少なくとも一部分に似せた仮想世界の地理の中に拡張現実コンテンツを含むパラレルリアリティゲームの文脈において説明される。加えて、コンピュータベースのシステム固有の柔軟性は、システムの構成要素間および構成要素のうちのタスクおよび機能の多種多様な構成、組み合わせ、および、分割を可能にする。
[0018]図1は、現実世界100に似せた仮想世界110の概念図である。仮想世界110は、パラレルリアリティゲームのプレイヤのためのゲームボードとして機能することが可能である。図示されるように、仮想世界110は、現実世界100の地理に似せた地理を含む。特に、現実世界100の地理的な領域または空間を定義する座標の範囲が、仮想世界110の仮想空間を定義する座標の対応する範囲にマッピングされる。現実世界100の座標範囲は、町、近隣、都市、キャンパス、場所(locale)、国、大陸、地球全体、または他の地理的領域に関連付けられることが可能である。地理座標の範囲における各地理的座標は、仮想世界110における仮想空間内の対応する座標にマッピングされる。
[0019]仮想世界110におけるプレイヤの位置は、現実世界100におけるプレイヤの位置に対応する。例えば、現実世界100において位置112に位置するプレイヤAは、仮想世界110において対応する位置122を有する。同様に、現実世界100の位置114に位置するプレイヤBは、仮想世界110において対応する位置124を有する。現実世界100の地理座標の範囲内をプレイヤが動き回ると、仮想世界110の仮想空間を定義する座標の範囲内のプレイヤも動き回る。特に、プレイヤが携帯するモバイルコンピューティングデバイスに関連付けられた測位システム(例えば、GPSシステム、位置特定システム、またはその両方)は、プレイヤが現実世界100における地理的座標の範囲を移動する際に、プレイヤの位置を追跡するために使用できる。現実世界100におけるプレイヤの位置に関連付けられたデータは、仮想世界110における仮想空間を定義する座標の対応する範囲におけるプレイヤの位置を更新するために使用される。このようにして、プレイヤは、現実世界100における特定の離散的な場所で位置情報を登録(check in)したり定期的に更新したりすることなく、現実世界100における対応する地理的座標の範囲内を単に移動(traveling)することで、仮想世界110における仮想空間を定義する座標範囲における連続的な軌道に沿って進む(navigate)ことが可能である。
[0020]位置ベースのゲームは、仮想世界110内の様々な仮想位置に散在する様々な仮想エレメントまたは仮想オブジェクトに進むか、またはそれらと相互作用することをプレイヤに要求するゲーム目標を含むことが可能である。プレイヤは、仮想エレメントまたは仮想オブジェクトの現実世界100における対応する位置に進むことによって、これらの仮想位置に進むことが可能である。例えば、測位システムは、プレイヤが現実世界100を進むにつれてパラレル仮想世界110をプレイヤが進むように、プレイヤの位置を追跡することが可能である。そして、プレイヤは、特定の場所において様々な仮想エレメントおよび仮想オブジェクトと相互作用して、1つまたは複数のゲーム目標を達成または実行することが可能である。
[0021]ゲームの目的は、プレイヤに仮想世界110の様々な仮想位置に位置する仮想エレメント130と相互作用させ得る。これらの仮想エレメント130は、現実世界100のランドマーク、地理的な位置、またはオブジェクト140にリンクされることが可能である。現実世界のランドマークまたはオブジェクト140は、芸術作品、記念碑、建物、企業、図書館、博物館、または他の適切な現実世界のランドマークまたはオブジェクトであることが可能である。相互作用には、キャプチャ、所有権の主張、幾らかの仮想アイテムの使用、幾らかの仮想通貨の消費などが含まれる。これらの仮想エレメント130を捕獲するために、プレイヤは、仮想エレメント130にリンクされた現実世界のランドマークまたは地理的な場所140へ進み、仮想世界110における仮想エレメント130と必要な相互作用(ゲームのルールとして定義された)を実行する。例えば、プレイヤAは、現実世界100におけるランドマーク140へ進み、その特定のランドマーク140にリンクされた仮想エレメント130と相互作用したり、その仮想エレメント130をキャプチャしたりしなければならないことがある。仮想エレメント130との相互作用は、写真を撮ったり、仮想エレメント130に関連付けられたランドマークまたはオブジェクト140についての他の情報を確認、取得、またはキャプチャしたりするなど、現実世界での行動を必要とすることが可能である。
[0022]ゲームの目的は、プレイヤが位置ベースのゲームにおいて収集した1つまたは複数の仮想アイテムを使用することをプレイヤに要求し得る。例えば、プレイヤは、ゲームの目的を完遂するために有用な仮想アイテム132(例えば、武器、クリーチャー、パワーアップ、または他のアイテム)を探し求めて仮想世界110を移動し得る。これらの仮想アイテム132は、現実世界100の異なる場所へ移動したり、仮想世界110または現実世界100のいずれかにおいて様々なアクション(仮想エレメント130との相互作用、ノンプレイヤキャラクタまたは他のプレイヤとの戦闘、またはクエストの完遂など)を完遂したりすることによって、発見または収集することが可能である。図1に示す例では、プレイヤは、仮想アイテム132を使用して1つまたは複数の仮想エレメント130をキャプチャする。特に、プレイヤは、仮想エレメント130に近い、または仮想エレメント130内の仮想世界110における位置に仮想アイテム132を配置すること可能である。このように1つまたは複数の仮想アイテム132を配置することで、プレイヤのために、またはプレイヤのチーム/派閥のために、仮想エレメント130をキャプチャすることが可能になる。
[0023]特定の実装において、プレイヤは、パラレルリアリティゲームの一部として仮想エネルギーを集めなければならないかもしれない。仮想エネルギー150は、仮想世界110内の異なる場所に散在させることが可能である。プレイヤは、仮想世界110内の仮想エネルギーの場所に対応する現実世界100における場所に移動する(または、その場所の閾値距離内に移動する)ことによって、仮想エネルギー150を収集することが可能である。仮想エネルギー150は、仮想アイテムに電力を供給したり、ゲームにおいて様々なゲーム目標を実行したりするために使用することが可能である。すべての仮想エネルギー150を失ったプレイヤは、ゲームから切り離されることがあり、または、一定時間または追加の仮想エネルギー150を収集するまでプレイできなくなることがある。
[0024]本開示の態様によれば、パラレルリアリティゲームは、ゲームの参加者全員が同じ仮想世界を共有する大規模マルチプレイヤ位置ベースゲームとすることが可能である。プレイヤは、別々のチームまたは派閥に分けられることが可能であり、仮想エレメントの所有権をキャプチャまたは主張するなど、1つまたは複数のゲームの目的を達成するために協力することが可能である。このように、パラレルリアリティゲームは、本質的に、ゲーム内でプレイヤ間の協力を促すソーシャルゲームであることが可能である。パラレルリアリティゲーム中において、対立するチームのプレイヤは、互いに協力し合うことが可能である(すなわち、互いの目的を達成するために協力し合うことがある)。プレイヤは、仮想アイテムを使って、対戦チームのプレイヤを攻撃したり、進行を妨害したりすることが可能である。幾つかのケースにおいては、パラレルリアリティゲーム内の協力イベントまたはインタラクティブイベントのために、プレイヤが現実世界の場所に集まることが促される。これらのケースにおいて、ゲームサーバは、プレイヤが実際に物理的に存在し、かつ、それらの位置を偽装していないことの保証を求める。
[0025]図2は、プレイヤと仮想世界110との間のインタフェースの一部として(例えば、プレイヤのスマートフォン上に)提示されることが可能なゲームインタフェース200の一実施形態を示す。ゲームインタフェース200は、プレイヤの位置122、仮想世界110における仮想エレメント130、仮想アイテム132、仮想エネルギー150の位置といった、仮想世界110およびゲームの様々な他の態様を表示するために使用可能な表示ウィンドウ210を含む。また、ユーザインタフェース200は、ゲームデータ情報、ゲーム通信、プレイヤ情報、クライアント位置検証指示、および、ゲームに関連付けられた他の情報のような、他の情報を表示することも可能である。例えば、ユーザインタフェースは、プレイヤ名、経験レベル、および、他の情報といった、プレイヤ情報215を表示することができる。ユーザインタフェース200は、様々なゲーム設定およびゲームに関連付けられた他の情報にアクセスするためのメニュー220を含むことが可能である。また、ユーザインタフェース200は、ゲームシステムとプレイヤとの間、および、パラレルリアリティゲームの1人または複数のプレイヤの間の通信を可能にする通信インタフェース230を含むことが可能である。
[0026]本開示の態様によれば、プレイヤは、クライアントデバイス310を現実世界において携帯することによって、パラレルリアリティゲームとインタラクトすることが可能である。例えば、プレイヤは、スマートフォン上でパラレルリアリティゲームに関連付けられたアプリケーションにアクセスし、スマートフォンと共に現実世界を移動することによって、ゲームをプレイすることが可能である。この点において、位置情報ゲームをプレイするために、プレイヤは、ディスプレイ画面上で仮想世界の視覚表現を継続的に表示する必要がない。その結果、ユーザインタフェース200は、ユーザがゲームとインタラクトすることを可能にする非視覚エレメントを含むことが可能である。例えば、ゲームインタフェースは、プレイヤがゲーム内の仮想エレメントまたは仮想オブジェクトに近づいた場合、または、パラレルリアリティゲームにおいて重要なイベントが発生した場合に、プレイヤに可聴通知を提供することが可能である。幾つかの実施形態において、プレイヤは、音声制御240を用いてこれらの可聴通知を制御することが可能である。仮想エレメントまたは仮想イベントのタイプに応じて、異なるタイプの可聴通知をユーザに提供することが可能である。可聴通知は、プレイヤが仮想エレメントまたは仮想オブジェクトに接近したかどうかに応じて、頻度または音量を増減することが可能である。振動通知、または他の適切な通知または信号のような、他の非視覚的な通知または信号をユーザに提供することも可能である。
[0027]幾つかの実施形態において、仮想世界は同時に複数のプレイヤ間で共有される。すなわち、仮想世界に配置された仮想オブジェクトは、同じ仮想世界において相互作用している全ユーザにとって同じ(または、実質的に同じ)位置に現れる。さらに、仮想オブジェクトと相互作用するユーザは、同じ仮想世界において相互作用している他のユーザのゲームプレイに影響を与える。例えば、第1のプレイヤが仮想オブジェクトを第1の場所から第2の場所に動かした場合、同じ仮想世界において相互作用している他のプレイヤは、そのオブジェクトが第1の場所から第2の場所に動くことを体験するであろう。
[0028]パラレルワールドの設定において、仮想世界における位置が現実世界における位置に対応する場合、仮想世界における仮想アイテムの位置は、現実世界における位置に対応する。拡張現実アプリケーションが仮想世界との相互作用に使用される場合、拡張現実コンテンツを生成するために使用されるカメラの位置を知ることは有益である。さらに、複数のユーザがそれぞれの拡張現実インタフェースを介して同じ仮想オブジェクトを見たり、または相互作用したりすることが可能であり得るため、仮想現実コンテンツを生成するために使用されるカメラの実際の姿勢を知ることも有益である。すなわち、拡張現実コンテンツを生成するために使用されるカメラの位置および姿勢を知ることによって、プレイヤに提示される拡張現実インタフェース内の仮想コンテンツの位置および向きを改善することが可能であり、その結果、複数のプレイヤが仮想世界において同じオブジェクトと同時に相互作用する場合に、より正確な体験をもたらす。
[0029]パラレルリアリティゲームは、パラレルリアリティゲーム内でのゲームプレイを強化および促進するための様々な特徴を有することが可能である。例えば、プレイヤは、ゲーム全体を通じて使用できる(例えば、ゲーム内アイテムを購入するため、他のアイテムと交換するため、アイテムを作るためなど)仮想通貨または別の仮想報酬(例えば、仮想トークン、仮想ポイント、仮想材料資源など)を蓄積することが可能である。プレイヤは、1つまたは複数のゲーム目標を完遂し、かつ、ゲーム内において経験を積むことで、様々なレベルを進むことが可能である。プレイヤは、また、ゲーム内のゲーム目標を完遂するために使用可能な、強化された「パワー」または仮想アイテムを取得することが可能であり得る。
[0030]当業者であれば、提供された開示を使用することにより、多数のゲームインタフェース構成および基本的な機能が可能であることを理解するであろう。本開示は、反対のことが明示されない限り、特定の構成に限定されることを意図しない。
例示的な位置ベースのパラレルリアリティゲームシステム
[0031]様々な実施形態が、現実世界におけるプレイヤの移動および行動が仮想世界における行動に影響を及ぼし、またその逆も同様であるように、現実世界の地理の少なくとも一部に似せた仮想世界の地理において拡張現実コンテンツを含むパラレルリアリティゲームの文脈において説明される。当業者であれば、本明細書において提供される開示内容を用いて、記載される主題が、画像において注目点の再現性を決定することが望ましい他の状況においても適用可能であることを理解するであろう。加えて、コンピュータベースのシステム固有の柔軟性が、システムの構成要素間および構成要素内のタスクおよび機能の多種多様な可能な構成、組み合わせ、および、分割を許容する。例えば、本開示の態様によるシステムおよび方法は、単一のコンピューティングデバイスを使用して、または複数のコンピューティングデバイスにわたって(例えば、コンピュータネットワークで接続されて)実装されることが可能である。
[0032]図3は、ネットワークコンピューティング環境300の一実施形態を示す。ネットワークコンピューティング環境300は、クライアント-サーバアーキテクチャを使用し、ゲームサーバ320がネットワーク370を介してクライアントデバイス310と通信し、クライアントデバイス310のプレイヤにパラレルリアリティゲームを提供する。ネットワークコンピューティング環境300はまた、スポンサー/広告主システムまたはビジネスシステムといった他の外部システムを含むことが可能である。図3には1つだけのクライアントデバイス310が示されるが、あらゆる数のクライアントデバイス310または他の外部システムが、ネットワーク370を介してゲームサーバ320に接続され得る。さらに、ネットワークコンピューティング環境300は、異なるまたは追加の要素を含み得、機能は、以下の記載とは異なる方法で、クライアントデバイス310とサーバ320との間に分散され得る。
[0033]ネットワークコンピューティング環境300は、現実世界に似せた地理を有する仮想世界におけるプレイヤの相互作用を提供する。特に、現実世界の地理的エリアは、仮想世界の対応するエリアに直接にリンクまたはマッピングされることが可能である。プレイヤは、現実世界の様々な地理的位置に移動することで、仮想世界内を移動することが可能である。例えば、現実世界におけるプレイヤの位置は、仮想世界におけるプレイヤの位置を更新するために追跡および使用されることが可能である。典型的には、現実世界におけるプレイヤの位置は、プレイヤが仮想世界と相互作用しているクライアントデバイス310の位置を発見し、プレイヤが同じ(または略同じ)位置にいると仮定することによって、決定される。例えば、様々な実施形態において、現実世界におけるプレイヤの位置が、仮想世界における仮想エレメントの仮想位置に対応する現実世界の位置から閾値距離(例えば、10メートル、20メートルなど)内である場合、プレイヤは仮想エレメントと相互作用し得る。便宜上、様々な実施形態が「プレイヤの位置」を参照して説明されるが、当業者であれば、このような参照はプレイヤのクライアントデバイス310の位置を指し得ることが理解されるであろう。
[0034]ネットワークコンピューティング環境300は、クライアント-サーバアーキテクチャを使用し、ゲームサーバ320がネットワーク370を介してクライアントデバイス310と通信し、クライアントデバイス310のプレイヤにパラレルリアリティゲームを提供する。ネットワークコンピューティング環境300は、スポンサー/広告主システムまたはビジネスシステムといった他の外部システムを含むことも可能である。図3には1つだけのクライアントデバイス310が図示されるが、あらゆる数のクライアントデバイス310または他の外部システムが、ネットワーク370を介してゲームサーバ320に接続され得る。さらに、ネットワークコンピューティング環境300は、異なるまたは追加の要素を含むことが可能であり、機能は、以下の記載とは異なる方法で、クライアントデバイス310とサーバ320との間に分散され得る。
[0035]クライアントデバイス310は、ゲームサーバ320とインタフェースするためにプレイヤが使用可能なあらゆる携帯コンピューティングデバイスであることが可能である。例えば、クライアントデバイス310は、スマートフォン、ポータブルゲーミングデバイス、拡張現実(AR)ヘッドセット、セルラーフォン、タブレット、パーソナルデジタルアシスタント(PDA)、ナビゲーションシステム、ハンドヘルドGPSシステム、または他のそのようなデバイスといった、プレイヤによって携帯可能なポータブル無線デバイスであることが好ましい。幾つかのユースケースにおいて、クライアントデバイス310は、デスクトップまたはラップトップコンピュータのような、あまり移動しないデバイスであってもよい。さらに、クライアントデバイス310は、コンピューティングデバイスを内蔵した車両であってもよい。
[0036]クライアントデバイス310は、ゲームサーバ320に物理的環境の知覚(sensory)データを提供するゲームサーバ320と通信する。クライアントデバイス310は、クライアントデバイス310が存在する物理的環境におけるシーンの二次元の画像データをキャプチャするカメラアセンブリ312を含む。図3に示す実施形態では、各クライアントデバイス310は、ゲーミングモジュール314および測位(positioning)モジュール316といったソフトウェアコンポーネントを含む。クライアントデバイス310は、位置特定(localization)モジュール318も含む。クライアントデバイス310は、プレイヤから情報を受信し、および/または、プレイヤに情報を提供するための他の様々な入出力デバイスを含み得る。入出力デバイスの例は、ディスプレイスクリーン、タッチスクリーン、タッチパッド、データ入力キー、スピーカ、音声認識に適したマイクを含む。クライアントデバイス310はまた、クライアントデバイス310からのデータを記録するための、動作センサ、加速度計、ジャイロスコープ、他の慣性測定ユニット(IMU)、気圧計、測位システム、温度計、光センサなどを含む他の様々なセンサを含み得るが、これらに限定されない。クライアントデバイス310は、ネットワーク370を介した通信を提供するためのネットワークインタフェースをさらに含み得る。ネットワークインタフェースは、例えば、送信機、受信機、ポート、コントローラ、アンテナ、または他の適切なコンポーネントを含む、1つまたは複数のネットワークとインタフェースするためのあらゆる適切なコンポーネントを含むことが可能である。
[0037]カメラアセンブリ312は、画像データをキャプチャすることが可能な1つまたは複数のカメラを含む。カメラは、特定の姿勢(環境内におけるカメラの位置および向き)でクライアントデバイス310を取り囲む環境のシーンを描写する画像データをキャプチャする。カメラアセンブリ312は、様々なカラーキャプチャ範囲および様々なキャプチャレートを有する様々な光センサ(photosensor)を使用し得る。同様に、カメラアセンブリ312は、広角レンズまたは望遠レンズといった様々なレンズを有するカメラを含み得る。カメラアセンブリ312は、単一の画像または複数の画像をビデオのフレームとしてキャプチャするように構成されてもよい。
[0038]追加的に、カメラアセンブリ312の向きは、カメラアセンブリ312が地平線に向けられている状態で地面と平行であり得る。カメラアセンブリ312は、画像データをキャプチャし、画像データをクライアントデバイス310上のコンピューティングデバイスと共有する。画像データには、知覚データ(例えば、温度、環境の明るさ)またはキャプチャデータ(例えば、露出、暖かさ、シャッター速度、焦点距離、キャプチャ時間など)を含む、画像データの他の詳細を記述するメタデータを付加することが可能である。カメラアセンブリ312は、画像データをキャプチャすることが可能な1または複数のカメラを含むことが可能である。一例において、カメラアセンブリ312は、1つのカメラから構成され、単眼画像データをキャプチャするように構成される。他の例において、カメラアセンブリ312は、2つのカメラから構成され、立体画像データをキャプチャするように構成される。他の様々な実施態様において、カメラアセンブリ312は、それぞれが画像データをキャプチャするように構成された複数のカメラを備える。
[0039]クライアントデバイス310はまた、動きセンサ、加速度計、ジャイロスコープ、気圧計、温度計、光センサ、マイクロフォンなどのような、クライアントデバイスを取り囲む環境に関するデータを収集するための追加のセンサを含み得る。カメラアセンブリ312によってキャプチャされた画像データには、追加の知覚データ(例えば、温度、環境の明るさ、気圧、位置、姿勢など)、または、キャプチャデータ(例えば、露出長、シャッター速度、焦点距離、キャプチャ時間など)といった、画像データについての他の情報を記述するメタデータを付加することが可能である。
[0040]ゲーミングモジュール314は、パラレルリアリティゲームに参加するためのインタフェースをプレイヤに提供する。ゲームサーバ320は、クライアントデバイス310のゲーミングモジュール314によって使用されるゲームデータを、ネットワーク370を介してクライアントデバイス310に送信して、ゲームサーバ320から離れた場所にいるプレイヤにゲームのローカルバージョンを提供する。ゲームサーバ320は、ネットワーク370を介して通信を提供するためのネットワークインタフェースを含むことが可能である。ネットワークインタフェースは、例えば、送信機、受信機、ポート、コントローラ、アンテナ、または他の適切なコンポーネントを含む、1つまたは複数のネットワークとインタフェースするためのあらゆる適切なコンポーネントを含むことが可能である。
[0041]ゲーミングモジュール314は、パラレルリアリティゲームに参加するためのインタフェースをプレイヤに提供する。ゲームサーバ320は、ゲーミングモジュール314によって使用されるゲームデータを、ネットワーク370を介してクライアントデバイス310に送信して、ゲームサーバから離れた場所にいるプレイヤにゲームのローカルバージョンを提供する。一実施形態において、ゲーミングモジュール314は、仮想世界を描写する(例えば、仮想世界の画像をレンダリングする)クライアントデバイス310のディスプレイ上にユーザインタフェースを提示して、ユーザが仮想世界と相互作用して様々なゲームの目的を実行できるようにする。幾つかの実施形態において、ゲーミングモジュール314は、パラレルリアリティゲームからの仮想エレメントで拡張された現実世界の画像(例えば、カメラアセンブリ312によってキャプチャされた)を提示する。これらの実施形態において、ゲーミングモジュール314は、クライアントデバイス310の他の構成要素から受信した他の情報に従って仮想コンテンツを生成または調整し得る。例えば、ゲーミングモジュール314は、画像データにおいてキャプチャされたシーンの深度マップに従って、ユーザインタフェース上に表示される仮想オブジェクトを調整し得る。
[0042]ゲーミングモジュール314は、プレイヤがディスプレイスクリーンを見ることを必要とせずにゲームと相互作用できるようにするために、他の様々な出力を制御することも可能である。例えば、ゲーミングモジュール314は、プレイヤがディスプレイスクリーンを見ずにゲームをプレイできるように、様々な音声、振動、または他の通知を制御することが可能である。ゲーミングモジュール314は、ゲームサーバ320から受信したゲームデータにアクセスして、ゲームの正確な表現をユーザに提供することが可能である。ゲーミングモジュール314は、プレイヤの入力を受信および処理して、ネットワーク370を介してゲームサーバ320に更新を提供することが可能である。ゲーミングモジュール314は、クライアントデバイス310によって表示されるゲームコンテンツを生成および/または調整し得る。例えば、ゲーミングモジュール314は、深度情報に基づいて仮想エレメントを生成し得る。
[0043]測位モジュール316は、クライアントデバイス310の位置を決定するためのあらゆるデバイスまたは回路であることが可能である。例えば、測位モジュール316は、衛星ナビゲーション測位システム(例えば、GPSシステム、ガリレオ測位システム、グローバルナビゲーション衛星システム(GLONASS)、バイドゥ(BeiDou)衛星ナビゲーションおよび測位システム)、慣性ナビゲーションシステム、推測航法(dead reckoning)システム、IPアドレス解析、三角測量および/またはセルラータワー、またはWi-Fiホットスポットへの近接、または他の適切な技術を使用して、実際の位置または相対位置を決定することが可能である。
[0044]プレイヤが現実世界においてクライアントデバイス310と共に移動すると、測位モジュール316は、プレイヤの位置を追跡し、かつ、プレイヤの位置情報をゲーミングモジュール314に提供する。ゲーミングモジュール315は、現実世界におけるプレイヤの実際の位置に基づいて、ゲームに関連付けられた仮想世界におけるプレイヤの位置を更新する。よって、プレイヤは、現実世界においてクライアントデバイス310を単に携帯または運搬することで、仮想世界と相互作用することが可能である。特に、仮想世界におけるプレイヤの位置は、現実世界におけるプレイヤの位置に対応付けることが可能である。ゲーミングモジュール314は、ネットワーク370を介してゲームサーバ320にプレイヤの位置情報を提供することが可能である。これに応答して、ゲームサーバ320は、クライアントデバイス310の位置を確認するための様々な技術を実施して、不正行為者による位置のなりすましを防止し得る。プレイヤに関連付けられた位置情報は、プレイヤの位置情報がアクセスされること、および、位置情報がゲームのコンテキストにおいてどのように利用されるか(例えば、仮想世界におけるプレイヤの位置を更新すること)がプレイヤに通知された後に許可が与えられた場合にのみ利用されることを理解すべきである。加えて、プレイヤに関連付けられたあらゆる位置情報は、プレイヤのプライバシーを保護する方法で保存および管理される。
[0045]位置特定モジュール318は、測位モジュール316によってクライアントデバイス310に関して決定された位置を受信し、カメラアセンブリ312の1つまたは複数のカメラの姿勢を決定することによってそれを改善する。一実施形態において、位置特定モジュール318は、測位モジュール316によって生成された位置を使用して、クライアントデバイス310の周囲の環境の3Dマップを選択する。位置特定モジュール318は、ローカルストレージまたはゲームサーバ320から3Dマップを取得し得る。3Dマップは、点群、メッシュ、または、クライアントデバイス310の周囲の環境の他のあらゆる適切な3D表現であってよい。
[0046]一実施形態において、位置特定モジュール318は、訓練されたモデルを適用して、カメラアセンブリ312によってキャプチャされた画像の3Dマップに対する姿勢を決定する。したがって、位置特定モデルは、クライアントデバイス310の位置および向きを正確に(例えば、数センチメートルおよび数度の角度内において)決定することが可能である。そして、クライアントデバイス310の位置は、センサの読み取り値、周期的な位置再特定、またはその両方の組み合わせに基づいて推測航法を使用して経時的に追跡することが可能である。クライアントデバイス310の正確な姿勢によって、ゲーミングモジュール314に、現実世界の画像上に(例えば、カメラアセンブリ312からのリアルタイムフィードと併せて仮想エレメントをディスプレイに表示することによって)、または、仮想オブジェクトが現実世界と相互作用しているかのような印象を与える方法によって(例えば、ARヘッドセットの透明なディスプレイに仮想エレメントを表示することによって)現実世界そのものに、仮想コンテンツをオーバーレイして提示することを可能にさせ得る。例えば、仮想のキャラクタが現実の木の後ろに隠れたり、仮想の帽子が現実の像の上に置かれたり、現実の人があまりにも早く近づくと仮想の生物が走って隠れたりし得る。
[0047]幾つかの実施形態において、位置特定モジュール318によって使用されるモデルは、カメラによってキャプチャされた1つまたは複数の画像から、クライアントデバイス310の周囲の物理的な環境の1つまたは複数の既存の画像に対するカメラの相対姿勢を決定するように訓練される。一実施形態において、位置特定モジュール318は、1つまたは複数の既存の画像の既知の絶対姿勢を基準にして、相対姿勢を絶対姿勢に変換し得る。例えば、ゲームデータベース315は、異なる姿勢のカメラによってキャプチャされた物理的な環境の参照画像のセットを保存し得る。各参照画像の絶対姿勢は、参照画像と関連付けて(例えば、メタデータとして)保存され得る。したがって、クライアントデバイス310のカメラの姿勢が1つまたは複数の参照画像に対して決定されると、クライアントデバイスのカメラの絶対姿勢が、参照画像の絶対姿勢およびカメラの相対姿勢を使用して決定され得る。
[0048]ゲームサーバ320は、クライアントデバイス310にゲーム機能を提供する1つまたは複数のコンピューティングデバイスを含む。ゲームサーバ320は、ゲームデータベース330を含むか、またはゲームデータベース330と通信することが可能である。ゲームデータベース330は、ネットワーク370を介してクライアントデバイス310に供給(served)または提供(provided)されるパラレルリアリティゲームにおいて使用されるゲームデータを保存する。
[0049]ゲームデータベース330に保存されるゲームデータは、(1)パラレルリアリティゲームにおける仮想世界に関連付けられたデータ(例えば、ディスプレイデバイス上に仮想世界をレンダリングするために使用される画像データ、仮想世界における場所の地理座標など)、(2)パラレルリアリティゲームのプレイヤに関連付けられたデータ(例えば、プレイヤ情報、プレイヤの経験レベル、プレイヤの通貨、仮想世界/現実世界における現在のプレイヤの位置、プレイヤのエネルギーレベル、プレイヤの嗜好(preferences)、チーム情報、派閥情報などを含むがこれらに限定されないプレイヤプロフィール)、(3)ゲーム目標に関連付けられたデータ(例えば、現在のゲーム目標、ゲーム目標のステータス、過去のゲーム目標、将来のゲーム目標、望まれるゲーム目標などに関連付けられたデータ)、(4)仮想世界における仮想エレメントに関連付けられたデータ(例えば、仮想エレメントの位置、仮想エレメントの種類、仮想エレメントに関連付けられたゲーム目標、仮想エレメントに対応する実際の世界の位置情報、仮想エレメントの挙動、仮想エレメントの関連性など)、(5)現実世界のオブジェクト、ランドマーク、仮想世界のエレメントにリンクされた位置に関連付けられたデータ(例えば、現実世界のオブジェクト/ランドマークの位置、現実世界のオブジェクト/ランドマークの記述、現実世界のオブジェクトにリンクされた仮想エレメントの関連性など)、(6)ゲームのステータス(例えば、現在のプレイヤ数、ゲーム目標の現在のステータス、プレイヤのスコアボード(leaderboard)など)、(7)プレイヤのアクション/入力に関連付けられたデータ(例えば、現在のプレイヤの位置、過去のプレイヤの位置、プレイヤの動き、プレイヤの入力、プレイヤのクエリ、プレイヤの通信など)、または、(8)パラレルリアリティゲームの実行中に使用、関連、または取得されたその他のデータを含むことが可能である。ゲームデータベース330に保存されたゲームデータは、システム管理者によって、またはネットワーク370を介してクライアントデバイス310からのように、システムのユーザ(例えば、プレイヤ)から受信したデータによって、オフラインまたはリアルタイムに取り込むことが可能である。
[0050]ゲームサーバ320は、クライアントデバイス310から(例えば、リモートプロシージャコール(RPC)を介して)ゲームデータに対する要求を受信し、かつ、ネットワーク370を介してそれらの要求に応答するように構成されることが可能である。例えば、ゲームサーバ320は、ゲームデータを1つまたは複数のデータファイルにエンコードし、かつ、データファイルをクライアントデバイス310に提供することが可能である。加えて、ゲームサーバ320は、ゲームデータ(例えば、プレイヤの位置、プレイヤのアクション、プレイヤの入力など)をクライアントデバイス310からネットワーク370を介して受信するように構成されることが可能である。例えば、クライアントデバイス310は、プレイヤ入力および他の更新をゲームサーバ320に定期的に送信するように構成されることが可能であり、ゲームサーバ320はこれを使用して、ゲームデータベース315内のゲームデータを更新して、ゲームのあらゆるおよびすべての変更されたゲームの条件を反映する。
[0051]図3に示される実施形態において、ゲームサーバ320は、ユニバーサルゲーミングモジュール322、コマーシャルゲームモジュール323、データ収集モジュール324、イベントモジュール326、再現性訓練システム380、再現性モデル385、マッピングシステム327、および、3Dマップ328を含む。上述したように、ゲームサーバ320は、ゲームサーバ320の一部であり得る、または、遠隔にアクセスされ得るゲームデータベース315と相互作用する(例えば、ゲームデータベース315は、ネットワーク370を介してアクセスされる分散データベースであり得る)。他の実施形態において、ゲームサーバ320は、異なるエレメントおよび/または追加のエレメントを含む。加えて、機能は、記載された方法とは異なる方法にてエレメント中に分散され得る。例えば、ゲームデータベース315は、ゲームサーバ320に統合されることが可能である。
[0052]ユニバーサルゲームモジュール322は、プレイヤセット(例えば、パラレルリアリティゲームのすべてのプレイヤ)に対するパラレルリアリティゲームのインスタンスをホストし、かつ、プレイヤセットに対するパラレルリアリティゲームの現在のステータスについての信頼できる情報源として機能する。ホストとして、ユニバーサルゲームモジュール322は、プレイヤに提示するゲームコンテンツを生成する(例えば、プレイヤそれぞれのクライアントデバイス310を介して)。ユニバーサルゲームモジュール322は、パラレルリアリティゲームをホストする場合に、ゲームデータベース330にアクセスしてゲームデータを読み出しまたは保存することが可能である。ユニバーサルゲームモジュール322はまた、クライアントデバイス310からゲームデータ(例えば、深度情報、プレイヤの入力、プレイヤの位置、プレイヤのアクション、ランドマーク情報など)を受信し得、受信したゲームデータをプレイヤセット全体のためにパラレルリアリティゲーム全体に組み込む。ユニバーサルゲームモジュール322は、ネットワーク370上でのクライアントデバイス310へのゲームデータの配信を管理することも可能である。幾つかの実施形態において、ユニバーサルゲームモジュール322は、クライアントデバイスとゲームサーバ320との間の接続を保護する、様々なクライアントデバイス間の接続を確立する、または、プレイヤが位置を偽装することによる不正行為を防止するために様々なクライアントデバイス310の位置を検証するといった、クライアントデバイス310のパラレルリアリティゲームとの相互作用のセキュリティ態様も管理する。
[0053]コマーシャルゲームモジュール323は、ユニバーサルゲームモジュール322とは分離されることが可能であるか、または、ユニバーサルゲームモジュール322の一部であることが可能である。コマーシャルゲームモジュール323は、現実世界のコマーシャル活動にリンクされた、パラレルリアリティゲーム内の様々なゲーム特徴の包含を管理することが可能である。例えば、コマーシャルゲームモジュール323は、スポンサー/広告主、企業、または他のエンティティといった外部システムからネットワーク370上で現実世界のコマーシャル活動にリンクされたゲーム特徴を含める要求を受信することが可能である。そして、コマーシャルゲームモジュール323は、リンクされたコマーシャル活動が発生したことを確認すると、これらのゲーム特徴をパラレルリアリティゲームに含めるようにアレンジすることが可能である。例えば、企業がパラレルリアリティゲームのプロバイダに合意された金額を支払う場合、その企業を識別する仮想オブジェクトが、パラレルリアリティゲームにおいて現実世界の企業(例えば、店舗またはレストラン)の位置に対応する仮想的な位置に現れる。
[0054]データ収集モジュール324は、ユニバーサルゲームモジュール322とは分離されることが可能であるか、または、ユニバーサルゲームモジュール322の一部であることが可能である。データ収集モジュール324は、現実世界のデータ収集活動とリンクされた、パラレルリアリティゲーム内の様々なゲーム特徴の包含を管理することが可能である。例えば、データ収集モジュール324は、ゲームデータベース330に保存されたゲームデータを修正して、パラレルリアリティゲーム内のデータ収集活動にリンクされたゲーム特徴を含めることが可能である。データ収集モジュール324は、データ収集活動に従ってプレイヤによって収集されたデータを分析し、様々なプラットフォームによるアクセスのためにデータを提供することも可能である。
[0055]イベントモジュール326は、パラレルリアリティゲームにおけるイベントへのプレイヤのアクセスを管理する。「イベント」という用語は便宜的に使用されるが、この用語は、特定の位置または時間の特定のイベントを指す必要はないこと理解すべきである。むしろ、プレイヤがそのコンテンツにアクセスしてよいかを決定するために1つまたは複数のアクセス基準が使用される、アクセスが制御されたゲームコンテンツのあらゆる規定を指し得る。そのようなコンテンツは、アクセス制御がほとんどない、または、まったくないゲームコンテンツを含む、より大規模なパラレルリアリティゲームの一部であってもよいし、または、スタンドアロンのアクセス制御されたパラレルリアリティゲームであってもよい。
[0056]再現性訓練システム380は、再現性モデル385を訓練する。再現性訓練システム380は、再現性モデル385の訓練に使用するための画像データを受信する。一般に、再現性訓練システム380は、時系列の画像を再現性モデル385に入力して、画像内で識別された注目点の再現性関数を生成または予測する。本明細書において使用される場合、注目点は、その描写(例えば、画像またはビデオ)内で点を確実に検出できる特性を有する地理的領域内の物体および表面上の3D点である。注目点は、画像(または、ビデオ)内に描写され、注目点を描写する画像の部分を識別することによって画像内において識別され得る。再現性訓練システム380は、再現性モデル385を訓練するために教師あり訓練アルゴリズムを使用することが可能である。再現性訓練システム380は、再現性モデルが再現性関数の推定において十分に正確であるかを決定するために使用することが可能な再現性モデルについての総損失閾値を定義し得る。
[0057]再現性モデル385が訓練されると、再現性モデルは、注目点に関するデータ(例えば、注目点を描写する画像データ)を受信し、注目点の再現性の予測を出力する。本明細書において使用される場合、再現性とは、同じシーンをキャプチャしているが異なる条件(例えば、異なる時刻/日付、照明条件、角度、天候など)の下で注目点が検出されるであろう尤度(likelihood)を指す。幾つかの実施形態において、再現性の予測は、設定された期間内の各時間間隔の再現性値を示す再現性関数の形式である。
[0058]マッピングシステム327は、画像のセットに基づいて地理的領域の3Dマップを生成する。3Dマップは、点群、ポリゴンメッシュ、または、地理的領域の3D形状のあらゆる他の適切な表現であり得る。3Dマップは、オブジェクト(テーブル、椅子、時計、街灯、木など)、材料(コンクリート、水、レンガ、草など)、または、ゲームプロパティ(例えば、キャラクタによって通過可能である、特定のゲーム内アクションに適するなど)を識別するような、追加のコンテキスト情報を提供する意味論的ラベリングを含み得る。一実施形態において、マッピングシステム327は、3Dマップをあらゆる意味論的/文脈的な情報と共に3Dマップストア328に保存する。3Dマップは、位置情報(例えば、3Dマップの中心のGPS座標、3Dマップの範囲を定義するリングフェンスなど)と共に3Dマップストア328に保存され得る。したがって、ゲームサーバ320は、3Dマップによってカバーされる地理的領域内またはその付近に位置することを示す位置データを提供するクライアントデバイス310に3Dマップを提供することが可能である。
[0059]マッピングシステム390は、追加的に、画像内の注目点を識別(例えば、注目点を描写する画像の領域を識別)し、かつ、注目点に関する情報を3Dマップ328に保存する。幾つかの実施形態において、マッピングシステム390は、様々な角度から注目点を描いた複数の画像に基づいて注目点の位置を計算することにより、3Dマップを生成する。
[0060]マッピングシステム390は、追加的に、完全な3Dマップに含まれるデータのサブセットを含む要約マップ3Dを生成する。要約マップは、帯域幅またはストレージ能力に制限のあるクライアントデバイス(例えば、モバイルデバイス)によるマップの送信および保存を可能にするために生成されることが可能である。要約マップは、特定の時間におけるクライアントデバイスに関連する情報を含む。幾つかの実施形態において、クライアントデバイスが移動するにつれて、または時間が経過するにつれて、マッピングシステム390は要約マップを更新して、もはや関連性のなくなった注目点を削除し(例えば、現在の時間における注目点の再現性値が閾値を下回るため)、かつ、関連性があることになった新しい注目点を追加する。
[0061]ネットワーク370は、ローカルエリアネットワーク(例えば、イントラネット)、ワイドエリアネットワーク(例えば、インターネット)、またはそれらの幾つかの組み合わせといったあらゆるタイプの通信ネットワークであることが可能である。ネットワークはまた、クライアントデバイス310とゲームサーバ320との間の直接接続を含むことも可能である。一般に、ゲームサーバ320とクライアントデバイス310との間の通信は、あらゆるタイプの有線接続または無線接続、様々な通信プロトコル(例えば、TCP/IP、HTTP、SMTP、FTP)、エンコーディングまたはフォーマット(例えば、HTML、XML、JSON)、または、プロテクションスキーム(例えば、VPN、セキュアHTTP、SSL)を使用して、ネットワークインタフェースを介して行うことが可能である。
[0062]本開示は、サーバ、データベース、ソフトウェアアプリケーション、および、その他のコンピュータベースのシステム、並びに、そのようなシステムにおいて採られるアクション、および、そのようなシステムへ送信され、かつ、そのようなシステムから送信される情報について言及する。当業者であれば、コンピュータベースのシステムに固有の柔軟性により、構成要素間および構成要素内のタスクおよび機能の多種多様な可能な構成、組み合わせ、および、分割が可能であることを認識するであろう。例えば、サーバによって実行されるものとして開示されたプロセスは、単一のサーバを使用して実行されてもよいし、組み合わせて動作する複数のサーバを使用して実行されてもよい。データベースおよびアプリケーションは、単一のシステムに実装されてもよいし、複数のシステムに分散して実装されてもよい。分散されたコンポーネントは、逐次的に動作してもよいし、並列的に動作してもよい。
[0063]開示されたシステムおよび方法が、ユーザに関する個人情報にアクセスして分析する状況、または位置情報のような個人情報を利用する状況において、ユーザは、プログラムまたは機能が情報を収集するかどうかを制御し、かつ、システムまたは他のアプリケーションからコンテンツを受信するかどうかまたはどのように受信するかを制御する機会を提供され得る。どのような情報が収集され、かつ、情報がどのように使用されるかについてユーザに意味のある通知がなされるまでは、そのような情報またはデータは収集または使用されない。ユーザが同意しない限り、情報は収集または使用されず、その同意はユーザによっていつでも撤回または変更することが可能である。したがって、ユーザは、ユーザに関する情報がどのように収集され、かつ、アプリケーションまたはシステムによって使用されるかを制御することが可能である。加えて、特定の情報またはデータは、保存または使用される前に、個人を特定可能な情報が削除されるように、1つまたは複数の方法において処理されることが可能である。例えば、ユーザの身元は、そのユーザについて個人を特定可能な情報を特定できないように処理されることが可能である。
例示的な方法
[0064]図4Aは、1つまたは複数の実施形態による、参照画像を用いて再現性モデル385をトレーニングする方法400の1つの反復を説明するフローチャートである。訓練時に、方法400は、典型的には、1つまたは複数の訓練目標が満たされるまで、異なる入力画像を用いて多数回繰り返される。方法400は、入力画像内に描写された注目点の再現性を決定することが可能な訓練された再現性モデル385を生み出す。図4Aの各ステップは、方法400を実行する再現性訓練システム380の観点から図示されている。しかしながら、各ステップの幾つかまたは全部は、他のエンティティおよび/またはコンポーネントによって実行されてもよい。加えて、幾つかの実施形態において、各ステップは、並行して実行されてもよいし、異なる順序で実行されてもよいし、または、異なるステップが実行されてもよい。
[0065]図示した実施形態において、方法400は、再現性訓練システム380が一連の訓練画像(例えば、クライアントデバイス310のカメラによってキャプチャされた一連のRGB画像)の受信410から開始する。幾つかの実施形態において、一連の訓練画像は、設定された期間(例えば、1日、1週間、1ヶ月、または1年)にわたってキャプチャされる。さらに、一連の訓練画像における各画像には、その画像がいつキャプチャされたかを示すタイムスタンプが関連付けられる。幾つかの実施形態において、一連の訓練画像は、設定された期間にわたって記録された1つまたは複数のビデオから抽出される。
[0066]図4Bは、1つまたは複数の実施形態による、シーンの時系列の訓練画像を示す図である。具体的に、図4Bは、6つの異なる時刻(T0からT5)に撮影された同じシーンの6つの画像を示す。図4Bの例において、第1の画像470Aは第1のタイムスタンプT0に関連付けられ、第2の画像470Bは第2のタイムスタンプT1に関連付けられ、第3の画像470Cは第3のタイムスタンプT2に関連付けられ、第4の画像470Dは第4のタイムスタンプT3に関連付けられ、第5の画像470Eは第5のタイムスタンプT4に関連付けられ、第6の画像470Fは第6のタイムスタンプT5に関連付けられる。
[0067]再現性訓練システム380は、受信した一連の訓練画像において画像内に描写された注目点のセットを識別420する。幾つかの実施形態において、再現性訓練システム380は、入力画像内の注目点を検出する(例えば、注目点を描写する入力画像の部分を識別する)ための訓練済みモデルを使用する。図4Bの例において、再現性訓練システム380は、建物の窓に対応する注目点480A、建物の前に駐車しているピックアップトラックに対応する注目点480B、および、道路上の車に対応する注目点480Cを識別する。
[0068]識別された各注目点について、再現性訓練システム380は、一連の訓練画像内において注目点が検出された画像を識別430する。すなわち、一連の訓練画像における各画像について、再現性訓練システム380は、注目点を検出するための訓練済みモデルが特定の注目点を検出したかを決定する。この識別に基づいて、再現性訓練システム380は、注目点の再現性関数を生成440する。幾つかの実施形態において、再現性関数は、さらに、一連の訓練画像の各画像に関連付けられたタイムスタンプに基づいて生成される。例えば、再現性関数は、一連の訓練画像に関連付けられた設定期間の各時間間隔(例えば、10分毎、1時間毎、午前/午後/夕方/夜間、1日毎、1月毎など)の間に、一連の訓練画像内の画像において注目点が検出されたかどうかを示す。代替的に、各時間間隔が複数の画像に関連付けられている場合(例えば、複数の画像が同じ時間間隔内のタイムスタンプに関連付けられている場合)、再現性関数は、注目点が検出された特定の時間間隔に関連付けられた画像のパーセンテージを示してよい。
[0069]例えば、図4Bの実施形態において、再現性訓練システム380は、第1の注目点480Aについての再現性関数、第2の注目点480Bについての再現性関数、および、第3の注目点480Cについての再現性関数を生成する。第1の注目点480Aについての再現性関数は、第1の注目点480Aが6つの画像470Aから470Fのすべてにおいて(タイムスタンプT0からT5にわたって)検出されたことを特定し得る。第2の注目点480Bについての再現性関数は、第2の注目点が最初の5つの画像470Aから470Eにおいて(タイムスタンプT0からT4にわたって)検出されたことを特定し得る。最後に、第3の注目点480Cについての再現性関数は、第3の注目点が第1の画像470A(タイムスタンプT0において)のみ検出されたことを特定し得る。
[0070]生成された再現性関数を使用して、再現性訓練システム380は、入力画像において検出された注目点の再現性関数を推定するための再現性モデル385を訓練する。幾つかの実施形態において、再現性モデル385は、注目点が位置するシーンの画像において注目点が検出される時系列の尤度を決定するように訓練される。すなわち、設定された時間期間内の各時間間隔について、再現性モデル385は、特定の時間間隔内にカメラによってキャプチャされたシーンの注目点が含まれる画像において注目点が検出されるであろう尤度を予測するように訓練される。
[0071]図5は、1つまたは複数の実施形態による、3Dマップ328を構築するために再現性モデル385を使用する方法500を説明するフローチャートである。方法500は、入力された注目点のセットの描写を含むシーンをキャプチャした入力画像を撮影したカメラの姿勢を決定するための情報を集めるためにクエリされることが可能な注目点のデータベースをもたらす。図5の各ステップは、方法500を実行するマッピングシステム390の観点から図示される。しかしながら、各ステップの幾つかまたは全部は、他のエンティティおよび/またはコンポーネントによって実行されてもよい。加えて、幾つかの実施形態において、各ステップは、並行して実行されてもよいし、異なる順序で実行されてもよいし、または、異なるステップが実行されてもよい。
[0072]マッピングシステム390は、シーンの画像510を受信する。マッピングシステム390は、受信した画像内に描写された注目点520を識別する。幾つかの実施形態において、マッピングシステム390は、入力画像内の注目点を検出する(例えば、注目点を描写する入力画像の部分を識別する)ために訓練されたモデルを使用する。例えば、マッピングシステム390は、入力画像内に描写された注目点を識別するために再現性訓練システム380によって使用されるのと同じトレーニングモデルを使用する。
[0073]識別された各注目点について、マッピングシステム390は、再現性訓練システム380によって訓練された再現性モデル385を使用して、注目点の再現性を予測530する。例えば、再現性モデル385は、注目点の再現性関数(または再現性スコア)を決定するために使用される。決定された再現性関数に基づいて、マッピングシステム390は、注目点のサブセットを選択540する。例えば、マッピングシステム390は、特定の閾値を超える平均再現性を示す反復性関数を有する注目点を選択する。代替的に、マッピングシステム390は、それぞれの再現性関数に基づいて注目点をランク付けし、かつ、そのランク付けに基づいて最上位の注目点を選択する。そして、マッピングシステム390は、選択された注目点のサブセット内の各注目点に関する情報を記憶550して、3Dマップ328を構築する。例えば、マッピングシステム390は、選択された注目点のサブセット内の各注目点についての画像、座標、および、その他の関連情報を記憶する。
[0074]図6は、1つまたは複数の実施形態による、カメラの姿勢を決定するために再現性モデル385を使用する方法600を説明するフローチャートである。方法600は、入力画像に対する推定姿勢をもたらす。図6の各ステップは、方法600を実行するクライアントデバイス310の観点から図示される。しかしながら、各ステップの一部または全部は、他のエンティティおよび/またはコンポーネントによって実行されてもよい。加えて、幾つかの実施形態において、各ステップは、並行して実行されてもよいし、異なる順序で実行されてもよいし、または、異なるステップが実行されてもよい。
[0075]クライアントデバイス310の位置特定モジュールは、シーンの画像を受信610する。シーンの画像は、クライアントデバイス310の構成要素であるカメラまたはクライアントデバイス310の外部カメラによってキャプチャされ得る。パラレルリアリティゲームの文脈において、シーンは、仮想世界の仮想位置にマッピングされ得る現実世界の位置であり得る。シーンの画像はまた、画像をキャプチャしたカメラの幾何学的特性に対応する固有性(intrinsics)を有し得る。画像は、カメラによってキャプチャされた単一の画像であり得る。代替的に、画像は、カメラによってキャプチャされたビデオからのフレームであってもよい。
[0076]位置特定モジュール318は、受信した画像内に描写された注目点のセットを識別620する。幾つかの実施形態において、位置特定モジュール318は、入力画像内の注目点を検出する(例えば、注目点を描写する入力画像の部分を識別する)ために訓練されたモデルを使用する。例えば、位置特定モジュール318は、入力画像内に描写された注目点を識別するために、再現性訓練システム380によって使用されるのと同じ訓練モデルを使用する。
[0077]識別された各注目点について、位置特定モジュール318は、再現性訓練システム380によって訓練された再現性モデル385を適用して、注目点の再現性を予測630する。例えば、再現性モデル385は、識別された各注目点の再現性関数(または再現性スコア)を決定するために使用される。決定された再現性関数に基づいて、位置特定モジュール318は、注目点のサブセットを選択640する。例えば、位置特定モジュール318は、特定の閾値を超える平均再現性を示す再現性関数を有する注目点を選択する。代替的に、位置特定モジュール318は、それぞれの再現性関数に基づいて注目点をランク付けし、かつ、そのランク付けに基づいて最上位の注目点を選択する。そして、位置特定モジュール318は、3Dマップ328内の注目点を検索650し、3Dマップ328から1つまたは複数の注目点に関する情報を読み出す660。検索された1つまたは複数の注目点に関する情報に基づいて、位置特定モジュール318は、受信した画像をキャプチャしたカメラの姿勢を決定670する。
[0078]図7は、1つまたは複数の実施形態による、特定位置の要約マップを構築するために再現性モデル385を使用する方法700を説明するフローチャートである。方法600は、クライアントデバイスが3D空間内でクライアントデバイスの姿勢を決定できるようにクライアントデバイス310に送信されることが可能な要約マップをもたらす。図7の各ステップは、方法700を実行するマッピングシステム390の観点から図示される。しかしながら、各ステップの幾つかまたは全部は、他のエンティティおよび/またはコンポーネントによって実行されてもよい。加えて、幾つかの実施形態において、各ステップは、並行して実行されてもよいし、異なる順序で実行されてもよいし、または、異なるステップが実行されてもよい。
[0079]マッピングシステム390は、クライアントデバイス310の現在時刻を決定710する。マッピングシステム390は、クライアントデバイスから現在時刻を受信してもよいし、ゲームサーバ320の内部時刻およびクライアントデバイス310の位置に基づいてクライアントデバイスの現在のローカル時刻を決定してもよい。他の実施形態において、マッピングシステム390は、ユニバーサル時刻(例えば、UTC)を使用して時刻地を保存する。したがって、クライアントデバイス310の現在時刻は、マッピングシステム390のローカル時刻と同じである。マッピングシステム390は、設定された地理的領域内の注目点のセットを識別720する。例えば、マッピングシステム390は、クライアントデバイス310の近傍にある注目点のセット(例えば、k近傍(k-nearest)注目点)を識別する。
[0080]マッピングシステム390は、再現性モデル385を、注目点のセット内の識別された注目点のそれぞれに適用して、現在時刻における注目点の再現性を予測730する。例えば、再現性モデル385は、現在の時刻における各注目点の再現性値を決定するために使用される。各注目点の決定された再現性に基づいて、マッピングシステム390は、要約マップに含める注目点のサブセットを選択740する。例えば、マッピングシステム390は、特定の閾値を超える現在時刻の再現性値を有する注目点を選択する。代替的に、マッピングシステム390は、それぞれの再現性値に基づいて注目点をランク付けし、かつ、そのランク付けに基づいて最上位の注目点を選択する。そして、マッピングシステム390は、選択された注目点のサブセットに基づいて要約マップを生成750する。要約マップは、クライアントデバイスの姿勢を決定するために使用され得る(例えば、図6の方法600を使用して)。
例示的なコンピューティングシステム
[0081]図8は、一実施形態による、コンピューティングデバイスの例示的なアーキテクチャである。図8は、本明細書において記載される1つまたは複数のエンティティの一部または全部として使用されるコンピュータの物理的な構成要素を示すハイレベルのブロック図であるが、一実施形態に従って、コンピュータは、図8において提供される構成要素の追加、減少、または変形を有し得る。図8は、コンピュータ800を示すが、この図は、本明細書において説明する実施形態の構造的な模式図としてよりも、コンピュータシステムに存在し得る様々な特徴の機能的な説明として意図される。実際には、当業者によって認識されるように、個別に示されたアイテムは組み合わされることが可能であり、かつ、幾つかのアイテムは分離されることが可能である。
[0082]図8に図示されるのは、チップセット804に結合された少なくとも1つのプロセッサ802である。また、チップセット804に結合されるのは、メモリ806、記憶装置808、キーボード810、グラフィックスアダプタ812、ポインティングデバイス814、および、ネットワークアダプタ816である。グラフィックスアダプタ812には、ディスプレイ818が結合される。一実施形態において、チップセット804の機能は、メモリコントローラハブ820およびI/Oハブ822によって提供される。他の実施形態において、メモリ806は、チップセット804の代わりにプロセッサ802に直接結合される。幾つかの実施形態において、コンピュータ800は、これらのコンポーネントを相互接続するための1つまたは複数の通信バスを含む。1つまたは複数の通信バスは、オプション的に、システムコンポーネント間の通信を相互接続し、かつ、制御する回路(チップセットと呼ばれることもある)を含む。
[0083]記憶装置808は、ハードドライブ、コンパクトディスク読み取り専用メモリ(CD-ROM)、DVD、または、ソリッドステートメモリデバイスもしくは他の光ストレージ、磁気カセット、磁気テープ、磁気ディスクストレージもしくは他の磁気ストレージデバイス、磁気ディスクストレージデバイス、光ディスクストレージデバイス、フラッシュメモリデバイス、または他の不揮発性ソリッドステートストレージデバイスといった、あらゆる非一時的なコンピュータ読み取り可能な記憶媒体である。このような記憶装置808は、永続性(persistent)メモリと呼ぶことも可能である。ポインティングデバイス814は、マウス、トラックボール、または他のタイプのポインティングデバイスであってよく、コンピュータ800にデータを入力するためにキーボード810と組み合わせて使用される。グラフィックアダプタ812は、ディスプレイ818に画像およびその他の情報を表示する。ネットワークアダプタ816は、コンピュータ800をローカルエリアネットワークまたはワイドエリアネットワークに接続する。
[0084]メモリ806は、プロセッサ802によって使用される命令およびデータを保持する。メモリ806は、DRAM、SRAM、DDR RAM、ROM、EEPROM、フラッシュメモリといった、高速ランダムアクセスメモリを含む非永続性メモリであることが可能である。
[0085]本技術分野において知られるように、コンピュータ800は、図8に示される構成要素とは異なるおよび/または他の構成要素を有することが可能である。加えて、コンピュータ800は、特定の図示された構成要素を欠くことが可能である。一実施形態において、サーバとして動作するコンピュータ800は、キーボード810、ポインティングデバイス814、グラフィックアダプタ812、および/または、ディスプレイ818を欠くことが可能である。さらに、記憶装置808は、ローカルおよび/またはコンピュータ800から遠隔であり得る(ストレージエリアネットワーク(SAN)内において具現化されるように)。
[0086]本技術分野において知られるように、コンピュータ800は、本明細書において説明される機能を提供するためのコンピュータプログラムモジュールを実行するように適合される。本明細書において使用される場合、用語「モジュール」は、指定された機能を提供するために利用されるコンピュータプログラムロジックを指す。したがって、モジュールは、ハードウェア、ファームウェア、および/または、ソフトウェアにおいて実装されることが可能である。一実施形態において、プログラムモジュールは、記憶装置808に保存され、メモリ806にロードされ、プロセッサ802によって実行される。
追加の考慮事項
[0087]上述した説明の幾つかの部分は、アルゴリズム的なプロセスまたは動作の観点から実施形態を説明する。これらのアルゴリズム的な説明および表現は、データ処理技術分野の当業者によって、当業者にその作業の本質を効果的に伝えるために共通に使用される。これらの動作は、機能的、計算的、または論理的に記載されるが、プロセッサまたは等価の電気回路による実行のための命令またはマイクロコードを含むコンピュータプログラムによって実行されるものと理解される。さらに、一般性を損なうことなく、これらの機能的な動作の配置をモジュールと呼ぶことも、場合によって利便であることが証明される。
[0088]本明細書において使用される場合、「1つの実施形態」または「一実施形態」への言及は、実施形態に関連して説明される特定の要素、特徴、構造、または特性が、少なくとも1つの実施形態に含まれることを意味する。本明細書において様々な箇所で「実施形態において」という表現が現れるが、必ずしも全てが同じ実施形態を指すわけではない。
[0089]幾つかの実施形態において、「結合される」および「接続される」という表現がそれらの派生語と共に用いて記載される場合がある。これらの用語は、互いの同義語として意図されていないことが理解されるべきである。例えば、幾つかの実施形態は、2つ以上の要素が互いに直接に物理的または電気的に接触することを示すために、「接続される」という用語を用いて説明される場合がある。他の例において、幾つかの実施形態は、2つ以上の要素が直接に物理的または電気的に接触することを示すために、「結合される」という用語を用いて説明されることがある。しかし、「結合」という用語は、2つ以上の要素が互いに直接には接触していないが、それでもなお互いに協力または相互作用することを意味し得る。実施形態はこの文脈において限定されない。
[0090]本明細書において使用される場合、用語「comprises」、「comprising」、「includes」、「including」、「has」、「having」またはその他の変形は、非排他的な包含をカバーすることを意図している。例えば、要素のリストから構成されるプロセス、方法、成形品、または装置は、必ずしもそれらの要素のみに限定されず、明示的に列挙されていない、またはそのようなプロセス、方法、物品、または装置に固有の他の要素を含み得る。さらに、明示的に反対の記載がない限り、「または」は包括的な意味であり、排他的な意味ではない。例えば、条件AまたはBは、以下の何れか1つによって満たされる:Aは真(または存在する)であり、Bは偽(または存在しない)である、Aは偽(または存在しない)であり、Bは真(または存在する)である、および、AとBの両方が真(または存在する)である。
[0091]加えて、「a」または「an」の使用は、実施形態の要素および構成要素を説明するために採用される。これは、単に便宜的に、かつ、本開示の一般的な意味を与えるために行われるにすぎない。本明細書は、他の意味であることが明らかでない限り、1つまたは少なくとも1つを含むように読み取られるべきであり、かつ、単数形は複数形も含む。
[0092]本開示を読めば、当業者であれば、注目点の再現性を決定または使用するシステムおよびプロセスについて、さらなる代替の構造的および機能的な設計を理解するであろう。したがって、特定の実施形態および用途が図示および説明されてきたが、説明された主題は、本明細書において開示された詳細な構造および構成要素に限定されず、当業者には明らかであろう様々な修正、変更および変形が、開示された方法および装置の配置、動作および詳細においてなされ得ることが理解されるべきである。保護の範囲は、以下の特許請求の範囲によってのみ限定されるべきである。
[0047]幾つかの実施形態において、位置特定モジュール318によって使用されるモデルは、カメラによってキャプチャされた1つまたは複数の画像から、クライアントデバイス310の周囲の物理的な環境の1つまたは複数の既存の画像に対するカメラの相対姿勢を決定するように訓練される。一実施形態において、位置特定モジュール318は、1つまたは複数の既存の画像の既知の絶対姿勢を基準にして、相対姿勢を絶対姿勢に変換し得る。例えば、ゲームデータベース330は、異なる姿勢のカメラによってキャプチャされた物理的な環境の参照画像のセットを保存し得る。各参照画像の絶対姿勢は、参照画像と関連付けて(例えば、メタデータとして)保存され得る。したがって、クライアントデバイス310のカメラの姿勢が1つまたは複数の参照画像に対して決定されると、クライアントデバイスのカメラの絶対姿勢が、参照画像の絶対姿勢およびカメラの相対姿勢を使用して決定され得る。
[0051]図3に示される実施形態において、ゲームサーバ320は、ユニバーサルゲームモジュール322、コマーシャルゲームモジュール323、データ収集モジュール324、イベントモジュール326、再現性訓練システム380、再現性モデル385、マッピングシステム327、および、3Dマップ328を含む。上述したように、ゲームサーバ320は、ゲームサーバ320の一部であり得る、または、遠隔にアクセスされ得るゲームデータベース315と相互作用する(例えば、ゲームデータベース315は、ネットワーク370を介してアクセスされる分散データベースであり得る)。他の実施形態において、ゲームサーバ320は、異なるエレメントおよび/または追加のエレメントを含む。加えて、機能は、記載された方法とは異なる方法にてエレメント中に分散され得る。例えば、ゲームデータベース315は、ゲームサーバ320に統合されることが可能である。
[0078]図7は、1つまたは複数の実施形態による、特定位置の要約マップを構築するために再現性モデル385を使用する方法700を説明するフローチャートである。方法700は、クライアントデバイスが3D空間内でクライアントデバイスの姿勢を決定できるようにクライアントデバイス310に送信されることが可能な要約マップをもたらす。図7の各ステップは、方法700を実行するマッピングシステム390の観点から図示される。しかしながら、各ステップの幾つかまたは全部は、他のエンティティおよび/またはコンポーネントによって実行されてもよい。加えて、幾つかの実施形態において、各ステップは、並行して実行されてもよいし、異なる順序で実行されてもよいし、または、異なるステップが実行されてもよい。

Claims (20)

  1. コンピュータに実装される方法であって、
    クライアントデバイスの位置の識別を受信することと、
    前記クライアントデバイスの位置の近傍に位置する複数の注目点を識別することと、
    前記識別された注目点それぞれの再現性スコアを決定することと、
    前記識別された注目点それぞれの前記決定された再現性スコアに基づいて、注目点のサブセットを選択することと、
    前記選択された注目点のサブセットに基づいて、前記クライアントデバイスの前記位置の近傍の要約マップを生成することと、
    前記要約マップを前記クライアントデバイスに送信することと、
    を含む、方法。
  2. 前記選択された注目点のサブセット内の各注目点に関する情報を3Dマップに保存することをさらに含む、請求項1に記載の方法。
  3. 識別された注目点についての再現性スコアの決定は、前記識別された注目点に基づいて再現性モデルを適用することであって、前記再現性モデルは、設定された期間にわたるシーンの時系列画像に基づいて訓練される、ことを含む、請求項1に記載の方法。
  4. 現在時刻を決定することであって、
    前記識別された注目点の前記再現性スコアは、前記決定された現在時刻にさらに基づく、ことをさらに含む、請求項3に記載の方法。
  5. 前記現在時刻は、前記クライアントデバイスから受信した時刻、または、前記クライアントデバイスの識別された位置およびサーバの内部時刻の少なくとも1つに基づいて決定される、請求項4に記載の方法。
  6. 前記再現性モデルは、
    設定された期間にわたるシーンの時系列画像を受信すること、
    注目点検出モデルを使用して、前記受信した時系列画像における訓練注目点のセットを識別すること、
    前記訓練注目点のセット内の各訓練注目点それぞれについて、前記訓練注目点が前記注目点検出モデルによって検出された前記時系列画像内の画像を識別することによって、再現性関数を決定すること、および、
    前記訓練注目点のセットからの1つまたは複数の訓練用関心点に関連付けられた情報と、前記1つまたは複数の訓練用注目点の対応する再現性関数とを使用して、前記再現性モデルを訓練すること、によって訓練される、請求項3に記載の方法。
  7. 前記再現性スコアは、訓練された注目点検出モデルが前記クライアントデバイスによってキャプチャされた画像に基づいて前記注目点を検出するであろう尤度を示す、請求項1に記載の方法。
  8. 命令を記憶するように構成された非一時的なコンピュータ可読記憶媒体であって、前記命令はプロセッサによって実行されると、前記プロセッサに、
    シーンの画像を受信することと、
    前記受信したシーンの画像から注目点のセットを識別することと、
    前記注目点のセットにおける各注目点の再現性スコアを決定することと、
    前記識別された各注目点の前記決定された再現性に基づいて、注目点のサブセットを選択することと、
    前記選択された注目点のサブセットから1つまたは複数の注目点をマップ内において検索することと、
    前記選択された注目点のサブセットから1つまたは複数の注目点に関する情報を受信することと、
    前記1つまたは複数の注目点に関する前記受信した情報に基づいて、前記シーンの前記画像をキャプチャしたカメラの姿勢を決定することと、を実行させる、非一時的なコンピュータ可読記憶媒体。
  9. 前記注目点のセットは、訓練された注目点検出モデルに基づいて識別される、請求項8に記載の非一時的なコンピュータ可読記憶媒体。
  10. 識別された注目点についての前記再現性スコアは、前記識別された注目点に基づいて再現性モデルを適用することによって決定される、請求項8に記載の非一時的なコンピュータ可読記憶媒体。
  11. 前記再現性モデルは、設定された期間にわたる時系列画像に基づいて訓練される、請求項10に記載の非一時的なコンピュータ可読記憶媒体。
  12. 前記選択された注目点のサブセットから1つまたは複数の注目点をマップ内において検索することは、3次元(3D)マップにおいて前記1つまたは複数の注目点を検索することを含む、請求項10に記載の非一時的なコンピュータ可読記憶媒体。
  13. 前記シーンの前記画像をキャプチャしたカメラの姿勢を決定することは、
    前記1つまたは複数の注目点に関する前記受信した情報に基づいて、前記カメラの相対姿勢を決定することと、
    参照画像のセットと前記決定された前記カメラの相対姿勢とに基づいて、前記カメラの絶対姿勢を決定することと、を含む、請求項8に記載の非一時的なコンピュータ可読記憶媒体。
  14. 前記シーンは、仮想世界の仮想位置にマッピングされた現実世界の位置に対応する、請求項8に記載の非一時的なコンピュータ可読記憶媒体。
  15. コンピュータに実装される方法であって、
    設定された期間にわたるシーンの時系列画像を受信することと、
    注目点検出モデルを使用して、前記受信した時系列画像における注目点のセットを識別することと、
    前記注目点のセット内の各注目点それぞれについて、前記注目点検出モデルによって前記注目点が検出された前記時系列画像における画像を識別することによって、再現性関数を決定することと、
    前記注目点のセットからの1つまたは複数の注目点に関連付けられた情報と、前記1つまたは複数の注目点の対応する再現性関数とを使用して、再現性モデルを訓練することと、を含む、方法。
  16. 前記時系列画像における各画像は、タイムスタンプに関連付けられており、かつ、前記再現性関数は、前記注目点検出モデルによって前記注目点が検出された画像のそれぞれに関連付けられたタイムスタンプにさらに基づく、請求項15に記載の方法。
  17. 前記再現性関数は、前記期間のセットの各期間のそれぞれについて、前記注目点検出モデルによって前記注目点が検出されたかを前記期間に対応する画像において示す、請求項15に記載の方法。
  18. 前記再現性関数は、前記期間のセットの各期間それぞれについて、前記注目点検出モデルによって前記注目点が検出された期間に対応する画像のパーセンテージを示す、請求項15に記載の方法。
  19. 前記再現性モデルは、所与の時間間隔内にキャプチャされた画像から前記注目点検出モデルによってターゲット注目点が検出されるであろう尤度を予測するように訓練される、請求項15に記載の方法。
  20. 前記再現性モデルは、前記注目点が位置する前記シーンの画像から、前記注目点検出モデルによってターゲット注目点が検出される時系列の尤度を予測するように訓練される、請求項15に記載の方法。
JP2023566745A 2021-04-30 2022-04-27 注目点の再現性予測 Pending JP2024515995A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US202163182648P 2021-04-30 2021-04-30
US63/182,648 2021-04-30
PCT/US2022/026471 WO2022232226A1 (en) 2021-04-30 2022-04-27 Repeatability predictions of interest points

Publications (1)

Publication Number Publication Date
JP2024515995A true JP2024515995A (ja) 2024-04-11

Family

ID=83807731

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2023566745A Pending JP2024515995A (ja) 2021-04-30 2022-04-27 注目点の再現性予測

Country Status (6)

Country Link
US (1) US20220351518A1 (ja)
EP (1) EP4330929A1 (ja)
JP (1) JP2024515995A (ja)
KR (1) KR20240005790A (ja)
TW (1) TW202300201A (ja)
WO (1) WO2022232226A1 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US12039665B2 (en) * 2022-08-02 2024-07-16 Niantic, Inc. Simulated consistency check for points of interest on three-dimensional maps
KR102616029B1 (ko) * 2023-04-21 2023-12-20 주식회사 브이알크루 비주얼 로컬라이제이션을 효율적으로 수행하기 위한 방법 및 장치

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9449233B2 (en) * 2010-12-01 2016-09-20 The Trustees Of The University Of Pennsylvania Distributed target tracking using self localizing smart camera networks
US20120301014A1 (en) * 2011-05-27 2012-11-29 Microsoft Corporation Learning to rank local interest points
CN108073933B (zh) * 2016-11-08 2021-05-25 杭州海康威视数字技术股份有限公司 一种目标检测方法及装置
US11003956B2 (en) * 2019-05-16 2021-05-11 Naver Corporation System and method for training a neural network for visual localization based upon learning objects-of-interest dense match regression
JP7422785B2 (ja) * 2019-05-17 2024-01-26 マジック リープ, インコーポレイテッド ニューラルネットワークおよび角検出器を使用した角検出のための方法および装置

Also Published As

Publication number Publication date
EP4330929A1 (en) 2024-03-06
WO2022232226A1 (en) 2022-11-03
KR20240005790A (ko) 2024-01-12
US20220351518A1 (en) 2022-11-03
TW202300201A (zh) 2023-01-01

Similar Documents

Publication Publication Date Title
CN112805748B (zh) 使用深度提示对深度估计模型的自我监督训练
US20220189060A1 (en) Visual Camera Re-Localization using Graph Neural Networks and Relative Pose Supervision
US20220351518A1 (en) Repeatability predictions of interest points
TW202238068A (zh) 自監督多圖框單眼深度估計模型
US20240216809A1 (en) Refining Camera Re-Localization Determination Using Prior Pose Model
US20240046610A1 (en) Determining visual overlap of images by using box embeddings
JP2024095794A (ja) 相互作用可能な拡張仮想現実体験
TW202331652A (zh) 來自輸入影像資料之高速即時場景重建
TWI797571B (zh) 用於自單一影像判定可遍歷空間之電腦實施方法及電腦可讀儲存媒體
JP7340746B2 (ja) 拡張現実環境におけるマルチユーザルート追跡
US12039665B2 (en) Simulated consistency check for points of interest on three-dimensional maps
US20230277943A1 (en) Mapping traversable space in a scene using a three-dimensional mesh
US20230421985A1 (en) Localization using Audio and Visual Data
US20240075379A1 (en) Dynamically Generated Local Virtual Events
US20240108989A1 (en) Generating additional content items for parallel-reality games based on geo-location and usage characteristics
US20230016152A1 (en) Reducing latency in anticheat dataflow

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20240105