IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ ナイアンティック, インコーポレイテッドの特許一覧

特表2024-520505ウェーブレット分解を用いた画像深度予測
<>
  • 特表-ウェーブレット分解を用いた画像深度予測 図1
  • 特表-ウェーブレット分解を用いた画像深度予測 図2
  • 特表-ウェーブレット分解を用いた画像深度予測 図3
  • 特表-ウェーブレット分解を用いた画像深度予測 図4A
  • 特表-ウェーブレット分解を用いた画像深度予測 図4B
  • 特表-ウェーブレット分解を用いた画像深度予測 図5
  • 特表-ウェーブレット分解を用いた画像深度予測 図6
  • 特表-ウェーブレット分解を用いた画像深度予測 図7
  • 特表-ウェーブレット分解を用いた画像深度予測 図8
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-05-24
(54)【発明の名称】ウェーブレット分解を用いた画像深度予測
(51)【国際特許分類】
   G06T 7/55 20170101AFI20240517BHJP
   G06T 7/00 20170101ALI20240517BHJP
【FI】
G06T7/55
G06T7/00 350C
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2023573224
(86)(22)【出願日】2022-05-20
(85)【翻訳文提出日】2024-01-29
(86)【国際出願番号】 IB2022054753
(87)【国際公開番号】W WO2022249007
(87)【国際公開日】2022-12-01
(31)【優先権主張番号】63/193,005
(32)【優先日】2021-05-25
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】519087723
【氏名又は名称】ナイアンティック, インコーポレイテッド
【氏名又は名称原語表記】NIANTIC,INC.
【住所又は居所原語表記】One Ferry Building,Suite 200 San Francisco,CA 94111 United States of America
(74)【代理人】
【識別番号】110001243
【氏名又は名称】弁理士法人谷・阿部特許事務所
(72)【発明者】
【氏名】ミカエル ラライナ ラマモンジソア
(72)【発明者】
【氏名】マイケル デイビッド ファーマン
(72)【発明者】
【氏名】ジェームズ ワトソン
(72)【発明者】
【氏名】ダニヤル トゥルムカムベトフ
【テーマコード(参考)】
5L096
【Fターム(参考)】
5L096AA09
5L096DA02
5L096FA29
5L096FA66
5L096FA69
5L096HA11
5L096KA04
(57)【要約】
入力画像から深度マップを予測するための深度予測モデルが開示される。深度予測モデルは、計算を最小化するためにウェーブレット分解を活用する。深度予測モデルは、複数の符号化層、粗予測層、複数の復号層、及び複数の逆離散ウェーブレット変換(IDWT)を備える。符号化層は、画像を入力し、画像を、粗特徴マップを含む特徴マップにダウンサンプリングするように構成される。粗深度予測層は、粗特徴マップを入力し、粗深度マップを出力するように構成される。復号層は、特徴マップを入力し、特徴マップに基づいてウェーブレット係数を予測するように構成される。IDWTは、入力画像と同じ解像度で、予測されたウェーブレット係数に基づいて粗深度マップを最終深度マップにアップサンプリングするように構成される。
【特許請求の範囲】
【請求項1】
クライアントデバイス上のカメラによってキャプチャされる画像を受信するステップと、
深度予測モデルを前記画像に適用して、前記画像に基づいて深度マップを生成するステップであって、前記深度予測モデルは、
前記画像を入力し、前記画像を、粗特徴マップを含む1つ又は複数の特徴マップにダウンサンプリングするように構成された複数の符号化層と、
前記粗特徴マップを入力し、前記粗特徴マップに基づいて粗深度マップを出力するように構成された粗深度予測層と、
前記1つ又は複数の特徴マップを入力し、前記1つ又は複数の特徴マップに基づいてウェーブレット係数を予測するように構成された複数の復号層と、
前記予測されたウェーブレット係数に基づいて前記粗深度マップをアップサンプリングするように構成された複数の逆離散ウェーブレット変換と
を備える、ステップと、
前記深度マップに基づいて、仮想要素を生成するステップと、
前記クライアントデバイスの電子ディスプレイ上に前記画像と共に前記仮想要素を表示するステップと
を含む、方法。
【請求項2】
各符号化層は、共通因数でダウンサンプリングするように構成され、各復号層は、前記共通因数でアップサンプリングするように構成される
請求項1に記載の方法。
【請求項3】
第1の符号化層は、第1の因数でダウンサンプリングするように構成され、第2の符号化層は、前記第1の因数とは異なる第2の因数でダウンサンプリングするように構成される
請求項1に記載の方法。
【請求項4】
各復号層は、Haarウェーブレット係数、Daubechiesウェーブレット係数、及びLeGall-Tabatai5/3ウェーブレット係数のうちの少なくとも1つを予測するように構成される
請求項1に記載の方法。
【請求項5】
第1の復号層は、
第1の解像度で前記粗特徴マップを入力し、
前記第1の解像度でウェーブレット係数を予測し、
前記第1の解像度よりも高い第2の解像度で第1の特徴マップを出力する
ように構成され、
第2の復号層は、
前記第1の復号層によって出力される前記第1の特徴マップを前記第2の解像度で入力し、
前記第2の解像度でスパースウェーブレット係数を予測し、
前記第2の解像度よりも高い第3の解像度で第2の特徴マップを出力する
ように構成される
請求項1に記載の方法。
【請求項6】
前記第2の復号層は、
前記第2の解像度における前記第1の特徴マップを、前記符号化層のうちの1つによって出力される、前記第2の解像度における第3の特徴マップと連結し、
前記第3の特徴マップと連結された前記第1の特徴マップを入力する
ようにさらに構成される
請求項5に記載の方法。
【請求項7】
前記第2の復号層は、前記第1の解像度における前記ウェーブレット係数に基づいて生成されるバイナリマスクを適用することによって、前記スパースウェーブレット係数を予測するように構成される
請求項5に記載の方法。
【請求項8】
符号化層の数は、復号層の数に等しい
請求項1に記載の方法。
【請求項9】
前記深度マップは、前記画像と同じ解像度を有する
請求項1に記載の方法。
【請求項10】
前記深度予測モデルは、グラウンドトゥルース深度マップを有する複数のトレーニング画像を使用してトレーニングされた機械学習モデルである
請求項1に記載の方法。
【請求項11】
命令を記憶した非一時的コンピュータ可読記憶媒体であって、前記命令は、プロセッサによって実行されると、前記プロセッサに、
クライアントデバイス上のカメラによってキャプチャされた画像を受信することと、
深度予測モデルを前記画像に適用して、前記画像に基づいて深度マップを生成することであって、前記深度予測モデルは、
前記画像を入力し、前記画像を、粗特徴マップを含む1つ又は複数の特徴マップにダウンサンプリングするように構成された複数の符号化層と、
前記粗特徴マップを入力し、前記粗特徴マップに基づいて粗深度マップを出力するように構成された粗深度予測層と、
前記1つ又は複数の特徴マップを入力し、前記1つ又は複数の特徴マップに基づいてウェーブレット係数を予測するように構成された複数の復号層と、
前記予測されたウェーブレット係数に基づいて前記粗深度マップをアップサンプリングするように構成された複数の逆離散ウェーブレット変換と
を備える、生成することと、
前記深度マップに基づいて、仮想要素を生成することと、
前記クライアントデバイスの電子ディスプレイ上に前記画像と共に前記仮想要素を表示することと
を含む動作を実行させる、非一時的コンピュータ可読記憶媒体。
【請求項12】
各符号化層は、共通因数でダウンサンプリングするように構成され、各復号層は、前記共通因数でアップサンプリングするように構成される
請求項11に記載の非一時的コンピュータ可読記憶媒体。
【請求項13】
第1の符号化層は、第1の因数でダウンサンプリングするように構成され、第2の符号化層は、前記第1の因数とは異なる第2の因数でダウンサンプリングするように構成される
請求項11に記載の非一時的コンピュータ可読記憶媒体。
【請求項14】
各復号層は、Haarウェーブレット係数、Daubechiesウェーブレット係数、及びLeGall-Tabatai5/3ウェーブレット係数のうちの少なくとも1つを予測するように構成される
請求項11に記載の非一時的コンピュータ可読記憶媒体。
【請求項15】
第1の復号層は、
第1の解像度で前記粗特徴マップを入力し、
前記第1の解像度でウェーブレット係数を予測し、
前記第1の解像度よりも高い第2の解像度で第1の特徴マップを出力する
ように構成され、
第2の復号層は、
前記第1の復号層によって出力される前記第1の特徴マップを前記第2の解像度で入力し、
前記第2の解像度でスパースウェーブレット係数を予測し、
前記第2の解像度よりも高い第3の解像度で第2の特徴マップを出力する
ように構成される
請求項11に記載の非一時的コンピュータ可読記憶媒体。
【請求項16】
前記第2の復号層は、
前記第2の解像度における前記第1の特徴マップを、前記符号化層のうちの1つによって出力される、前記第2の解像度における第3の特徴マップと連結し、
前記第3の特徴マップと連結された前記第1の特徴マップを入力する
ようにさらに構成される
請求項15に記載の非一時的コンピュータ可読記憶媒体。
【請求項17】
前記第2の復号層は、前記第1の解像度における前記ウェーブレット係数に基づいて生成されるバイナリマスクを適用することによって、前記スパースウェーブレット係数を予測するように構成される
請求項15に記載の非一時的コンピュータ可読記憶媒体。
【請求項18】
符号化層の数は、復号層の数に等しい
請求項11に記載の非一時的コンピュータ可読記憶媒体。
【請求項19】
前記深度マップは、前記画像と同じ解像度を有する
請求項11に記載の非一時的コンピュータ可読記憶媒体。
【請求項20】
前記深度予測モデルは、グラウンドトゥルース深度マップを有する複数のトレーニング画像を使用してトレーニングされた機械学習モデルである
請求項11に記載の非一時的コンピュータ可読記憶媒体。
【請求項21】
自律エージェント上のカメラによってキャプチャされた画像を受信するステップと、
深度予測モデルを前記画像に適用して、前記画像に基づいて深度マップを生成するステップであって、前記深度予測モデルは、
前記画像を入力し、前記画像を、粗特徴マップを含む1つ又は複数の特徴マップにダウンサンプリングするように構成された複数の符号化層と、
前記粗特徴マップを入力し、前記粗特徴マップに基づいて粗深度マップを出力するように構成された粗深度予測層と、
前記1つ又は複数の特徴マップを入力し、前記1つ又は複数の特徴マップに基づいてウェーブレット係数を予測するように構成された複数の復号層と、
前記予測されたウェーブレット係数に基づいて前記粗深度マップをアップサンプリングするように構成された複数の逆離散ウェーブレット変換と
を備える、ステップと、
前記深度マップに基づいて、ナビゲーション命令を生成するステップと、
前記ナビゲーション命令に基づいて、前記自律エージェントをナビゲートするステップと
を含む、方法。
【発明の詳細な説明】
【技術分野】
【0001】
説明される主題は、一般に、入力画像内の画素の深度を予測することに関する。
【背景技術】
【0002】
関連出願の相互参照
本出願は、その全体が参照により組み込まれている、2021年5月25日に出願された米国特許仮出願第63/193,005号の利益及び優先権を主張するものである。
【0003】
拡張現実(AR)アプリケーションでは、仮想環境は現実世界環境とコロケートされる。現実世界環境の画像(例えば、ビデオフィード)をキャプチャしているカメラの姿勢が正確に決定された場合、仮想要素は、現実世界環境の描写上に正確にオーバーレイされ得る。例えば、仮想帽子は実像の上に配置され得、仮想キャラクタは物理的対象物の後ろに部分的に描かれ得る、などである。
【0004】
AR経験を改善するために、キャプチャされた画像内の画素の深度を知ることは、仮想要素が現実世界要素とどのように対話することになるかを知らせる。例えば、現実世界対象物の後ろ又は前を移動している仮想要素を示すためには、現実世界対象物の深度を知ることが必要とされる。深度を決定するための旧来の方法は、検出センサー及び測距センサー、例えば、光検出及び測距(LIDAR)センサーを利用することを含む。しかしながら、LIDARセンサーは、高価であり、一般にユーザデバイス、例えば、携帯電話内に実装されない。その上、深度マップを提供するカメラ及びLIDARセンサーの同期に課題が生じる。したがって、画像からの高精度深度予測のための方法が必要である。
【発明の概要】
【0005】
本開示は、ウェーブレット分解を使用した入力画像からの深度予測のための手法について説明する。様々な実施形態において、深度予測モデルは、画像を特徴マップに符号化し、(粗特徴マップから予測された)予測された粗深度マップをウェーブレット係数で反復的に改良するために、ウェーブレット分解を組み込む。深度予測モデルは、復号層によってウェーブレット係数をスパースに計算するためにバイナリマスキングをさらに実装する。バイナリマスクは、より低い解像度でウェーブレット係数をしきい値処理し、マスクをアップサンプリングすることによって、生成され得る。
【0006】
深度予測モデルは、概して、複数の符号化層及び複数の復号層を備える。符号化層は、様々な解像度で画像を入力し、特徴マップを出力するように構成され、各符号化層は、入力画像又は前の符号化層によって作り出された特徴マップの解像度を低減するように構成される。特徴マップは、最低解像度を有する粗特徴マップ及び入力画像ならびに粗特徴マップの間の解像度を有する1つ又は複数の中間特徴マップを含む。復号層は、特徴マップを入力し、様々な解像度で中間特徴マップ及びウェーブレット係数を出力するように構成される。各復号層は、符号化層からの特徴マップ及び前の復号層からの特徴マップを入力し、スパース中間特徴マップを出力し、スパースウェーブレット係数を予測するように構成される。ウェーブレット係数は、深度マップの解像度を増大するために逆離散ウェーブレット変換を実施することによって、ウェーブレット係数よりも高い解像度で深度マップを出力する。最終復号層は、例えば、入力画像と同じ解像度であるフル解像度で最終深度マップを出力する。深度予測モデルでウェーブレット分解を実装することは、深度予測における高い精度を維持しながら、入力画像からの深度予測のために必要とされる計算を最小化する。
【0007】
ウェーブレット分解を使用した深度予測のアプリケーションは、生成される深度マップに基づいて、拡張現実アプリケーションにおいて仮想画像を生成することを含み得る。生成された仮想画像は、正確な深度予測を条件に、現実世界内の対象物とシームレスに対話し得る。ウェーブレット分解を使用する深度予測の他のアプリケーションは、エージェントの自律ナビゲーションを含む。
【図面の簡単な説明】
【0008】
図1】1つ又は複数の実施形態による、ネットワーク接続されたコンピューティング環境を例示する図である。
図2】1つ又は複数の実施形態による、現実世界と並行する地理を有する仮想世界の表現を描く図である。
図3】1つ又は複数の実施形態による、並行現実ゲームの例示的なゲームインターフェースを描く図である。
図4A】1つ又は複数の実施形態による、深度予測モジュールのアーキテクチャを例示するブロック図である。
図4B】1つ又は複数の実施形態による、復号層がスパースウェーブレット係数を予測するためにバイナリマスクを生成する例を例示する図である。
図5】1つ又は複数の実施形態による、深度予測モデルを適用するプロセスを説明するフローチャートである。
図6】1つ又は複数の実施形態による、深度予測モデルをトレーニングするプロセスを説明するフローチャートである。
図7】1つ又は複数の実施形態による、深度予測モデルによって予測される深度マップを利用するプロセスを説明するフローチャートである。
図8】1つ又は複数の実施形態による、深度予測モデルをトレーニング又は適用する際の使用に適した例示的なコンピュータシステムを例示する図である。
【発明を実施するための形態】
【0009】
図及び以下の説明は、単なる例示として、いくつかの実施形態について説明する。当業者は、説明される原理から逸脱せずに、構造及び方法の代替的実施形態が採用され得ることを以下の説明から容易に認識されよう。ここで、いくつかの実施形態への参照が行われ、その例が、添付の図において例示される。
【0010】
例示的なロケーションベースの並行現実ゲームシステム
現実世界におけるプレーヤの移動及びアクションが仮想世界のアクションに影響を及ぼし、またその逆であるように、現実世界地理の少なくとも一部分と並行する仮想世界地理内の拡張現実コンテンツを含む並行現実ゲームの文脈で様々な実施形態について説明される。本明細書で提供される開示を使用する当業者は、説明される主題が入力画像からの深度予測が望まれる他の状況において適用可能であることを理解されよう。加えて、コンピュータベースシステム固有のフレキシビリティは、システムの構成要素同士の間のタスク及び機能性の多種多様な考えられる構成、組合せ、及び分割を可能にする。例えば、本開示の態様によるシステム及び方法は、単一のコンピューティングデバイスを使用して、又は(例えば、コンピュータネットワーク内で接続された)複数のコンピューティングデバイスにわたって、実装され得る。
【0011】
図1は、1つ又は複数の実施形態による、ネットワーク接続されたコンピューティング環境100を例示する。ネットワーク接続されたコンピューティング環境100は、現実世界と並行する地理を有する仮想世界内のプレーヤの対話を提供する。具体的には、現実世界内の地理的エリアは、仮想世界の対応するエリアに直接的にリンク又はマッピングされ得る。プレーヤは、現実世界内の様々な地理的ロケーションに移動することによって、仮想世界内を動き回ることができる。例えば、現実世界内のプレーヤの位置が追跡され、仮想世界内のプレーヤの位置を更新するために使用され得る。一般に、現実世界内のプレーヤの位置は、それを通してプレーヤが仮想世界と対話するクライアントデバイス120のロケーションを見出し、プレーヤが同じ(又はほぼ同じ)ロケーションにいることを仮定することによって決定される。例えば、様々な実施形態において、現実世界内のプレーヤのロケーションが仮想世界内の仮想要素の仮想ロケーションに対応する現実世界ロケーションのしきい値距離(例えば、10メートル、20メートルなど)内にある場合、プレーヤは仮想要素と対話し得る。便宜上、様々な実施形態は「プレーヤのロケーション」を参照しながら説明されるが、そのような参照はプレーヤのクライアントデバイス120のロケーションを指し得ることを当業者は諒解されよう。
【0012】
次に、一実施形態による、並行現実ゲームのプレーヤのためのゲームボードとして働き得る現実世界200と並行する仮想世界210の概念図を描く図2を参照する。例示されるように、仮想世界210は、現実世界200の地理と並行する地理を含み得る。具体的には、現実世界200内の地理的エリア又は空間を定義する座標範囲が仮想世界210内の仮想空間を定義する、対応する座標範囲にマッピングされる。現実世界200内の座標範囲は、町、近所、都市、構内、地元、国、大陸、地球全体、又は他の地理的エリアに関連付けられ得る。地理的座標範囲内の各地理的座標は、仮想世界内の仮想空間内の対応する座標にマッピングされる。
【0013】
仮想世界210内のプレーヤの位置は、現実世界200内のプレーヤの位置に対応する。例えば、現実世界200内の位置212内に位置するプレーヤAは、仮想世界210内に対応する位置222を有する。同様に、現実世界内の位置214に位置するプレーヤBは、仮想世界内に対応する位置224を有する。プレーヤが現実世界内の地理的座標範囲の中を動き回るにつれて、プレーヤは、仮想世界210内の仮想空間を定義する座標範囲の中をやはり動き回る。具体的には、プレーヤが携帯するモバイルコンピューティングデバイスに関連付けられた測位システム(例えば、GPSシステム)は、プレーヤが現実世界内で地理的座標範囲をナビゲートするにつれて、プレーヤの位置を追跡するために使用され得る。現実世界200内のプレーヤの位置に関連付けられたデータは、仮想世界210内の仮想空間を定義する、対応する座標範囲内のプレーヤの位置を更新するために使用される。このようにして、プレーヤは、チェックインする必要なく、現実世界200内の対応する地理的座標範囲の間を単に進むことによって、仮想世界210内の仮想空間を定義する座標範囲内の継続的な軌道に沿ってナビゲートすること、又は現実世界200内の特定の個別のロケーションにおいてロケーション情報を周期的に更新することができる。
【0014】
ロケーションベースゲームは、プレーヤが仮想世界内の様々な仮想ロケーションに散在する様々な仮想要素及び/又は仮想対象物に進むこと及び/又はそれと対話することを必要とする複数のゲーム目標を含み得る。プレーヤは、仮想要素の対応するロケーション又は現実世界内の対象物に進むことによって、これらの仮想ロケーションに進むことができる。例えば、測位システムは、プレーヤが現実世界を継続的にナビゲートするにつれて、プレーヤが並行する仮想世界をやはり継続的にナビゲートするように、プレーヤの位置を継続的に追跡し得る。プレーヤは、次いで、1つ又は複数のゲーム目標を達成するか又は実施するために、特定のロケーションにおいて様々な仮想要素及び/又は対象物と対話し得る。
【0015】
例えば、ゲーム目標は、仮想世界210内の様々な仮想ロケーションに位置する仮想要素230と対話するプレーヤを有する。これらの仮想要素230は、現実世界200内のランドマーク、地理的ロケーション、又は対象物240にリンクされ得る。現実世界ランドマーク又は対象物240は、芸術品、モニュメント、建物、企業、図書館、博物館、又は他の適切な現実世界ランドマーク又は対象物であってよい。対話は、キャプチャすること、その所有権を主張すること、何らかの仮想アイテムを使用すること、何らかの仮想通貨を消費することなどを含む。これらの仮想要素230をキャプチャするために、プレーヤは、現実世界内の仮想要素230にリンクされたランドマーク又は地理的ロケーション240に進まなければならず、仮想世界210内の仮想要素230との何らかの必要な対話を実施しなければならない。例えば、図2のプレーヤAは、特定のランドマーク240にリンクされた仮想要素230と対話するために又はそれをキャプチャするために、現実世界200内のランドマーク240に進まなければならないことがある。仮想要素230との対話は、写真を撮影すること、及び/又は仮想要素230に関連付けられたランドマーク又は対象物240に関する他の情報を検証すること、取得すること、又はキャプチャすることなど、現実世界内でのアクションを必要とし得る。
【0016】
ゲーム目標は、プレーヤがロケーションベースゲーム内でプレーヤによって収集された1つ又は複数の仮想アイテムを使用することを必要とし得る。例えば、プレーヤは、ゲーム目標を完了するために有用であり得る仮想アイテム(例えば、武器、生き物、パワーアップ、又は他のアイテム)を探索して仮想世界210を進むことができる。これらの仮想アイテムは、現実世界200内の異なるロケーションに進むことによって、又は仮想世界210又は現実世界200のいずれかの中の様々なアクションを完了することによって、見出され得るか又は収集され得る。図2に示される例では、プレーヤは、1つ又は複数の仮想要素230をキャプチャするために仮想アイテム232を使用する。具体的には、プレーヤは、仮想要素230に近接した又はその中の仮想世界210内のロケーションにおいて仮想アイテム232を展開し得る。1つ又は複数の仮想アイテム232をこのように展開することは、特定のプレーヤに対する又は特定のプレーヤのチーム/分派に対する仮想要素230のキャプチャをもたらし得る。
【0017】
1つの特定の実装形態において、プレーヤは、並行現実ゲームの一部として仮想エネルギーを集めなければならないことがある。図2に描かれるように、仮想エネルギー250は、仮想世界210内の異なるロケーションに散在し得る。プレーヤは、実世界200内の仮想エネルギー250の対応するロケーションに進むことによって、仮想エネルギー250を収集し得る。仮想エネルギー250は、仮想アイテムに動力供給するために及び/又はゲーム内で様々なゲーム目標を実施するために使用され得る。すべての仮想エネルギー250を失うプレーヤは、ゲームから断たれ得る。
【0018】
本開示の態様によれば、並行現実ゲームは、ゲームのすべての参加者が同じ仮想世界を共有するマッシブマルチプレーヤロケーションベースゲームであり得る。プレーヤは、別個のチーム又は分派に分割されてよく、仮想要素の所有権をキャプチャ又は主張するためになど、1つ又は複数のゲーム目標を達成するために協働し得る。このようにして、並行現実ゲームは本質的に、ゲーム内でプレーヤ同士の間の協調を奨励するソーシャルゲームであり得る。対抗チームからのプレーヤは、並行現実ゲーム中、互いと対抗して動作し(又は、時には相互目的を達成するために協調し)得る。プレーヤは、対抗チームにおけるプレーヤの前進を攻撃又は妨害するために仮想アイテムを使用し得る。場合によっては、プレーヤは、並行現実ゲーム内の協調イベント又は対話型イベントのために現実世界ロケーションに集合するように奨励される。これらの場合、ゲームサーバは、プレーヤが実際に物理的に存在し、スプーフィングではないことを確実にすることを求める。
【0019】
並行現実ゲームは、並行現実ゲーム内のゲームプレイを拡張及び奨励するための様々な特徴を有し得る。例えば、プレーヤは、(例えば、ゲーム内アイテムを購入するために、他のアイテムを償還するために、アイテムをクラフティングするために、など)ゲーム全体にわたって使用され得る仮想通貨又は別の仮想報酬(例えば、仮想トークン、仮想ポイント、仮想物質資源など)を蓄積し得る。プレーヤが1つ又は複数のゲーム目標を完了し、ゲーム内で経験を積むにつれて、プレーヤは様々なレベルを進むことができる。いくつかの実施形態において、プレーヤは、ゲーム内で提供される1つ又は複数の通信インターフェースを通して互いと通信し得る。プレーヤは、ゲーム内でゲーム目標を完了するために使用され得る拡張「パワー」又は仮想アイテムを取得することもできる。本明細書で提供される開示を使用する当業者は、本開示の範囲から逸脱せずに、様々な他のゲーム特徴が並行現実ゲーム内に含まれ得ることを理解されたい。
【0020】
図1を参照すると、ネットワーク接続されたコンピューティング環境100は、ゲームサーバ120が、クライアントデバイス110において並行現実ゲームをプレーヤに提供するために、ネットワーク105上でクライアントデバイス110と通信するクライアントサーバアーキテクチャを使用する。ネットワーク接続されたコンピューティング環境100は、スポンサー/広告主システム又は企業システムなど、他の外部システムを含んでもよい。1つのクライアントデバイス110のみが図1に例示されているが、任意の数のクライアント110又は他の外部システムがネットワーク105上でゲームサーバ120に接続され得る。さらに、ネットワーク接続されたコンピューティング環境100は、異なる又は追加の要素を含有してよく、機能性は、以下で説明されるのとは異なる方法でクライアントデバイス110及びサーバ120の間で分散されてよい。
【0021】
クライアントデバイス110は、ゲームサーバ120とインターフェースするためにプレーヤによって使用され得る任意のポータブルコンピューティングデバイスであってよい。例えば、クライアントデバイス110は、ワイヤレスデバイス、携帯情報端末(PDA)、ポータブルゲームデバイス、セルラーフォン、スマートフォン、タブレット、ナビゲーションシステム、ハンドヘルドGPSシステム、ウェアラブルコンピューティングデバイス、1つ又は複数のプロセッサを有するディスプレイ、又は他のそのようなデバイスであってよい。別の場合には、クライアントデバイス110は、デスクトップコンピュータ又はラップトップコンピュータなど、従来のコンピュータシステムを含む。さらにまた、クライアントデバイス110は、コンピューティングデバイスを備えた車両であってよい。要するに、クライアントデバイス110は、プレーヤがゲームサーバ120と対話することを可能にし得る任意のコンピュータデバイス又はコンピュータシステムであってよい。コンピューティングデバイスとして、クライアントデバイス110は、1つ又は複数のプロセッサ及び1つ又は複数のコンピュータ可読記憶媒体を含み得る。コンピュータ可読記憶媒体は、プロセッサに動作を実施させる命令を記憶し得る。クライアントデバイス110は、好ましくは、スマートフォン又はタブレットなど、プレーヤと共に容易に携帯又はさもなければ移送され得るポータブルコンピューティングデバイスである。
【0022】
クライアントデバイス110は、ゲームサーバ120と通信して、ゲームサーバ120に物理的環境の知覚データを提供する。クライアントデバイス110は、クライアントデバイス110がある物理的環境内のシーンの2次元の画像データをキャプチャするカメラアセンブリ125を含む。図1に示される実施形態において、各クライアントデバイス110は、ゲームモジュール135及び測位モジュール140など、ソフトウェア構成要素を含む。クライアントデバイス110はまた、入力画像に関する深度を予測するための深度予測モジュール142を含む。クライアントデバイス110は、プレーヤから情報を受信するための及び/又はそこに情報を提供するための様々な他の入力/出力デバイスを含み得る。例示的な入力/出力デバイスは、ディスプレイスクリーン、タッチスクリーン、タッチパッド、データ入力キー、スピーカ、及び音声認識に適したマイクロフォンを含む。クライアントデバイス110は、限定はしないが、動きセンサー、加速度計、ジャイロスコープ、他の慣性測定ユニット(IMU)、気圧計、測位システム、温度計、光センサーなどを含めて、クライアントデバイス110からのデータを記録するための他の様々なセンサーを含んでもよい。クライアントデバイス110は、ネットワーク105上で通信を提供するためのネットワークインターフェースをさらに含んでよい。ネットワークインターフェースは、例えば、送信機、受信機、ポート、コントローラ、アンテナ、又は他の適切な構成要素を含めて、1つ複数のネットワークとインターフェースするための任意の適切な構成要素を含んでよい。
【0023】
カメラアセンブリ125は、クライアントデバイス110がある環境のシーンの画像データをキャプチャする。カメラアセンブリ125は、様々なキャプチャレートで様々なカラーキャプチャ範囲を有する多種多様な様々なフォトセンサーを利用し得る。カメラアセンブリ125は、広角レンズ又は望遠レンズを含有し得る。カメラアセンブリ125は、単一の画像又はビデオを画像データとしてキャプチャするように構成され得る。加えて、カメラアセンブリ125の配向は、カメラアセンブリ125が水平線に照準した状態で地上と並行してよい。カメラアセンブリ125は、画像データをキャプチャし、画像データをクライアントデバイス110上でコンピューティングデバイスと共有する。画像データには、知覚データ(例えば、温度、環境の輝度)又はキャプチャデータ(例えば、露光、暖かさ、シャッター速度、焦点距離、キャプチャ時間など)を含む画像データの他の詳細を説明するメタデータが添付され得る。カメラアセンブリ125は、画像データをキャプチャし得る1つ又は複数のカメラを含み得る。1つの場合には、カメラアセンブリ125は、1つのカメラを備え、単眼画像データをキャプチャするように構成される。別の場合には、カメラアセンブリ125は、2つのカメラを備え、立体視画像データ(stereoscopic image data)をキャプチャするように構成される。様々な他の実装形態において、カメラアセンブリ125は、各々が画像データをキャプチャするように構成された複数のカメラを備える。
【0024】
ゲームモジュール135は、並行現実ゲームに参加するためのインターフェースをプレーヤに提供する。ゲームサーバ120は、ゲームのローカルバージョンをゲームサーバ120から離れたロケーションにおいてプレーヤに提供するために、クライアントデバイス110においてゲームモジュール135によって使用するためのゲームデータをネットワーク105上でクライアントデバイス110に送信する。ゲームサーバ120は、ネットワーク105上で通信を提供するためのネットワークインターフェースを含み得る。ネットワークインターフェースは、例えば、送信機、受信機、ポート、コントローラ、アンテナ、又は他の適切な構成要素を含めて、1つ複数のネットワークとインターフェースするための任意の適切な構成要素を含み得る。
【0025】
クライアントデバイス110によって実行されるゲームモジュール135は、プレーヤ及び並行現実ゲームの間にインターフェースを提供する。ゲームモジュール135は、ゲームに関連付けられた仮想世界を表示し(例えば、仮想世界の像をレンダリングし)、ユーザが様々なゲーム目標を実施するために仮想世界内で対話することを可能にするユーザインターフェースをクライアントデバイス110に関連付けられたディスプレイデバイス上に提示し得る。いくつかの他の実施形態において、ゲームモジュール135は、並行現実ゲームからの仮想要素で拡張された(例えば、カメラアセンブリ125によってキャプチャされた)現実世界からの画像データを提示する。これらの実施形態において、ゲームモジュール135は、クライアントデバイス110の他の構成要素から受信された他の情報に従って、仮想コンテンツを生成し、及び/又は仮想コンテンツを調整し得る。例えば、ゲームモジュール135は、画像データ内でキャプチャされたシーンの深度マップに従って、ユーザインターフェース上に表示されるように仮想対象物を調整し得る。
【0026】
ゲームモジュール135はまた、プレーヤがディスプレイスクリーンを見ることを必要とせずに、プレーヤがゲームと対話することを可能にするための様々な他の出力を制御し得る。例えば、ゲームモジュール135は、プレーヤがディスプレイスクリーンを見ずに、ゲームをプレイすることを可能にする様々な音声通知、振動通知、又は他の通知を制御し得る。ゲームモジュール135は、ゲームの正確な表現をユーザに提供するために、ゲームサーバ120から受信されたゲームデータにアクセスし得る。ゲームモジュール135は、プレーヤ入力を受信して処理し、ネットワーク105上でゲームサーバ120に更新を提供し得る。ゲームモジュール135はまた、クライアントデバイス110によって表示されるようにゲームコンテンツを生成及び/又は調整し得る。例えば、ゲームモジュール135は、例えば、カメラアセンブリ125によってキャプチャされた画像、及び/又は深度予測モジュール142によって生成される深度マップに基づいて、仮想要素を生成し得る。
【0027】
測位モジュール140は、クライアントデバイス110の位置を監視するための任意のデバイス又は回路であってよい。例えば、測位モジュール140は、IPアドレスに基づいて、衛星ナビゲーション測位システム(例えば、GPSシステム、Galileo測位システム、全地球ナビゲーション衛星システム(GLONASS)、BeiDou衛星ナビゲーション及び測位システム)、慣性ナビゲーションシステム、デッドレコニングシステムを使用することによって、三角測量及び/もしくはセルラータワー又はWi-Fiホットスポットに対する近接度、ならびに/又は位置を決定するための他の適切な技法を使用することによって、実際の位置又は相対的な位置を決定し得る。測位モジュール140は、クライアントデバイス110ロケーションを正確に測位する際の助けとなり得る様々な他のセンサーをさらに含み得る。
【0028】
プレーヤが現実世界内でクライアントデバイス110をもって動き回るにつれて、測位モジュール140は、プレーヤの位置を追跡し、プレーヤ位置情報をゲームモジュール135に提供する。ゲームモジュール135は、現実世界内のプレーヤの実際の位置に基づいて、ゲームに関連付けられた仮想世界内のプレーヤの位置を更新する。したがって、プレーヤは、現実世界内でクライアントデバイス110を単に携帯又は移送することによって、仮想世界と対話し得る。具体的には、仮想世界内のプレーヤのロケーションは、現実世界内のプレーヤのロケーションに対応し得る。ゲームモジュール135は、ネットワーク105上でプレーヤ位置情報をゲームサーバ120に提供し得る。応答して、ゲームサーバ120は、詐欺師がクライアントデバイス110ロケーションをスプーフィングすることを防止するためにクライアントデバイス110ロケーションを検証するための様々な技法を実践し得る。プレーヤに関連付けられたロケーション情報は、プレーヤのロケーション情報にアクセスされること、及びロケーション情報がゲームの文脈で(例えば、仮想世界内のプレーヤ位置を更新するために)どのように利用されるべきかについてプレーヤが通知された後で許可が与えられた場合のみ利用されることを理解されたい。加えて、プレーヤに関連付けられるいずれのロケーション情報も、プレーヤのプライバシーを保護する方法で記憶され維持される。
【0029】
深度予測モジュール142は、カメラアセンブリ125によってキャプチャされた画像に関する深度マップを予測するために深度予測モデルを適用する。深度マップは、対応する画像の画素(例えば、各画素)に対する深度を説明する。一実施形態において、深度予測モデルは、計算コストを最小化するためにウェーブレット分解を活用する。深度予測モデルは、画像に関する深度マップを予測するために複数の符号化層、粗深度予測層、複数の復号層、及び複数の逆離散ウェーブレット変換(IDWT)を備える。符号化層は、入力画像を中間特徴マップにダウンサンプリングし、即ち、ダウンサンプリングは、入力データの解像度を低減することを伴う。粗深度予測層は、最小中間特徴マップから粗深度マップを予測する。復号層は、スパースウェーブレット係数を反復的に予測する。IDWTは、予測されたスパースウェーブレット係数を用いて深度マップを反復的にアップサンプリングし、即ち、アップサンプリングは、入力データの解像度を増大することを伴う。ウェーブレット係数予測を介したダウンサンプリング及びアップサンプリングのこのプロセスは、特徴マップを様々な解像度で処理し、よりコンパクトな予測計算を通して深度マップ解像度を反復的に改良することによって、計算速度を改善し得る。
【0030】
深度マップは、クライアントデバイス110の他の構成要素にとっても有用であり得る。例えば、ゲームモジュール135は、深度マップに基づいて、拡張現実のための仮想要素を生成し得る。これは、仮想要素が環境内の現実世界対象物の深度を考慮に入れて、その環境と対話することを可能にし得る。例えば、仮想キャラクタは、環境内のその配置及びその配置における深度に従って、サイズを変更し得る。クライアントデバイス110が車両に関連付けられる実施形態において、他の構成要素は、深度マップに基づいて、車両をナビゲートするための制御信号を生成し得る。制御信号は、環境内で対象物との衝突を回避する際に有用であり得る。
【0031】
ゲームサーバ120は、任意のコンピューティングデバイスであってよく、1つ又は複数のプロセッサ及び1つ又は複数のコンピュータ可読記憶媒体を含んでよい。コンピュータ可読記憶媒体は、プロセッサに動作を実施させる命令を記憶し得る。ゲームサーバ120は、ゲームデータベース115を含むことがあるか、又はそれと通信していることがある。ゲームデータベース115は、ネットワーク105上でクライアント120にサービス又は提供される並行現実ゲーム内で使用されるゲームデータを記憶する。
【0032】
ゲームデータベース115内に記憶されたゲームデータは、(1)並行現実ゲーム内の仮想世界に関連付けられたデータ(例えば、ディスプレイデバイス上に仮想世界をレンダリングするために使用される像データ、仮想世界内のロケーションの地理的座標、など);(2)並行現実ゲームのプレーヤに関連付けられたデータ(例えば、限定はしないが、プレーヤ情報、プレーヤ経験レベル、プレーヤ通貨、仮想世界/現実世界内の現在のプレーヤ位置、プレーヤエネルギーレベル、プレーヤ選好、チーム情報、分派情報、などを含む、プレーヤプロファイル);(3)ゲーム目標に関連付けられたデータ(例えば、現在のゲーム目標に関連付けられたデータ、ゲーム目標の状態、過去のゲーム目標、将来のゲーム目標、所望のゲーム目標、など);(4)仮想世界内の仮想要素に関連付けられたデータ(例えば、仮想要素の位置、仮想要素のタイプ、仮想要素に関連付けられたゲーム目標;仮想要素に関する、対応する実世界位置情報;仮想要素の挙動、仮想要素の関連性、など);(5)仮想世界要素にリンクされた現実世界対象物、ランドマーク、位置に関連付けられたデータ(例えば、現実世界対象物/ランドマークのロケーション、現実世界対象物/ランドマークの説明、現実世界対象物にリンクされた仮想要素の関連性、など);(6)ゲーム状態(例えば、現在のプレーヤ数、現在のゲーム目標状態、プレーヤリーダーボード、など);(7)プレーヤアクション/入力に関連付けられたデータ(例えば、現在のプレーヤ位置、過去のプレーヤ位置、プレーヤ移動、プレーヤ入力、プレーヤクエリ、プレーヤ通信、など);及び(8)並行現実ゲームの実装中に使用される、関係する又は取得される任意の他のデータを含み得る。ゲームデータベース115内に記憶されたゲームデータは、システム管理者によって、かつ/又はネットワーク105上でクライアントデバイス110からなど、システム100のユーザ/プレーヤから受信されたデータによって、オフライン又はリアルタイムのいずれかでポピュレートされ得る。
【0033】
ゲームサーバ120は、クライアントデバイス110から(例えば、リモートプロシージャ呼出(RPC)を介して)ゲームデータに対する要求を受信し、ネットワーク105を介してそれらの要求に応答するように構成され得る。例えば、ゲームサーバ120は、1つ又は複数のデータファイル内のゲームデータを符号化し、データファイルをクライアントデバイス110に提供し得る。加えて、ゲームサーバ120は、ネットワーク105を介してゲームデータ(例えば、プレーヤ位置、プレーヤアクション、プレーヤ入力、など)をクライアントデバイス110から受信するように構成され得る。例えば、クライアントデバイス110は、ゲームサーバ120がゲームに関する任意の及びすべての変更された条件を反映するためにゲームデータベース115内のゲームデータを更新するために使用するプレーヤ入力及び他の更新をゲームサーバ120に周期的に送信するように構成され得る。
【0034】
示される実施形態において、サーバ120は、ユニバーサルゲームモジュール145、商用ゲームモジュール150、データ収集モジュール155、イベントモジュール160、及び深度予測トレーニングシステム170を含む。上述のように、ゲームサーバ120は、ゲームサーバ120の部分であり得るか又はリモートでアクセスされ得るゲームデータベース115と対話する(例えば、ゲームデータベース115は、ネットワーク105を介してアクセスされる分散型データベースであり得る)。他の実施形態において、ゲームサーバ120は、異なる及び/又は追加の要素を含有する。加えて、機能は、説明されるのとは異なる方法で、要素同士の間で分散され得る。例えば、ゲームデータベース115は、ゲームサーバ120内に統合され得る。
【0035】
ユニバーサルゲームモジュール145は、すべてのプレーヤのための並行現実ゲームをホストし、すべてのプレーヤのための並行現実ゲームの現在の状態に対する正式な情報源(authoritative source)として働く。ホストとして、ユニバーサルゲームモジュール145は、例えば、それらのそれぞれのクライアントデバイス110を介してプレーヤに提示するためのゲームコンテンツを生成する。ユニバーサルゲームモジュール145は、並行現実ゲームをホストしているとき、ゲームデータを取り出す及び/又は記憶するためにゲームデータベース115にアクセスし得る。ユニバーサルゲームモジュール145はまた、クライアントデバイス110からゲームデータ(例えば、深度情報、プレーヤ入力、プレーヤ位置、プレーヤアクション、ランドマーク情報、など)を受信し、受信されたゲームデータを並行現実ゲームのすべてのプレーヤのために並行現実ゲーム全体に組み込む。ユニバーサルゲームモジュール145はまた、ネットワーク105を介したゲームデータのクライアントデバイス110への配信を管理し得る。ユニバーサルゲームモジュール145はまた、限定はしないが、クライアントデバイス110及びゲームサーバ120の間の接続をセキュアにすること、様々なクライアントデバイス110同士の間で接続を確立すること、及び様々なクライアントデバイス110のロケーションを検証することを含めて、クライアントデバイス110のセキュリティ面を取り仕切ることもできる。
【0036】
商用ゲームモジュール150は、商用ゲームモジュール150が含まれる実施形態において、ユニバーサルゲームモジュール145とは別個であってよく、又はその一部分であってもよい。商用ゲームモジュール150は、現実世界内の商業活動にリンクされた様々なゲーム特徴を並行現実ゲーム内に含めることを管理し得る。例えば、商用ゲームモジュール150は、並行現実ゲーム内の商業活動にリンクされたゲーム特徴を含めるために、ネットワーク105を介して(ネットワークインターフェースを介して)、スポンサー/広告主、企業、又は他のエンティティなど、外部システムから要求を受信し得る。商用ゲームモジュール150は、次いで、並行現実ゲーム内にこれらのゲーム特徴を含めることを手配し得る。
【0037】
ゲームサーバ120は、データ収集モジュール155をさらに含んでよい。データ収集モジュール155は、1つが含まれる実施形態において、ユニバーサルゲームモジュール145とは別個であってよく、又はその一部分であってもよい。データ収集モジュール155は、現実世界内のデータ収集活動にリンクされた様々なゲーム特徴を並行現実ゲーム内に含めることを管理し得る。例えば、データ収集モジュール155は、データ収集活動にリンクされたゲーム特徴を並行現実ゲーム内に含めるために、ゲームデータベース115内に記憶されたゲームデータを修正し得る。データ収集モジュール155はまた、分析することもでき、及びデータ収集活動に従ってプレーヤによって収集されたデータ、ならびに様々なプラットフォームによるアクセスのためにデータを提供する。
【0038】
イベントモジュール160は、並行現実ゲーム内のイベントへのプレーヤアクセスを管理する。「イベント」という用語が便宜上使用されるが、この用語は特定のロケーション又は時間における特定のイベントを指すとは限らないことを諒解されたい。むしろ、それは、プレーヤがそのコンテンツにアクセスし得るかどうかを決定するために1つ又は複数のアクセス基準が使用される、アクセス制御されたゲームコンテンツの任意のプロビジョンを指すことがある。そのようなコンテンツは、アクセス制御があまりないか又は全くないゲームコンテンツを含む、より大きな並行現実ゲームの部分であってよいか、又はスタンドアロンのアクセス制御された並行現実ゲームであってもよい。
【0039】
深度予測トレーニングシステム170は、深度予測モジュール142によって使用されるモデルをトレーニングする。深度予測トレーニングシステム170は、深度予測モジュール142のモデルをトレーニングする際に使用するための画像データを受信する。概して、深度予測トレーニングシステム170は、深度予測モジュール142のモデルの自己教師ありトレーニングを実施し得る。自己教師ありトレーニングを用いて、特定の1つ又は複数のモデルをトレーニングするために使用されるデータセットは、何のラベル又はグラウンドトゥルース深度も有さない。トレーニングシステム170は、損失を最適化するために深度予測モジュール142の重みを反復的に調整する。
【0040】
深度予測モジュール142がトレーニングされると、深度予測モジュール142は、画像を受信し、画像に対する(又は、追加実施形態において、2つ以上の画像に対する)深度マップを予測する。深度予測トレーニングシステム170は、トレーニングされた深度予測モジュール142をクライアントデバイス110に提供する。クライアントデバイス110は、(例えば、デバイス上のカメラアセンブリによってキャプチャされた)入力画像に基づいて深度を予測するために、トレーニングされた深度予測モジュール142を使用する。
【0041】
ウェーブレット分解を使用した深度予測の様々な実施形態及びそのトレーニングのための手法が、本開示及び明細書の一部分である付録A及びBにおいて詳細に説明される。付録A及びBは、例示的な実施形態を説明し、重要である、重大である、必須であるとして説明されることがあるか、もしくはそのように暗示されることがある、又はさもなければ、その付録において必要とされることがある任意の特徴は、説明される特定の実施形態においてのみ必要とされ、すべての実施形態において必要とされないと理解すべきであることに留意されたい。
【0042】
ネットワーク105は、ローカルエリアネットワーク(例えば、イントラネット)、広域ネットワーク(例えば、インターネット)、又はそれらの何らかの組合せなど、任意のタイプの通信ネットワークであってよい。ネットワークは、クライアントデバイス110及びゲームサーバ120の間の直接接続を含んでもよい。概して、ゲームサーバ120及びクライアントデバイス110の間の通信は、任意のタイプのワイヤード及び/又はワイヤレス接続を使用して、様々な通信プロトコル(例えば、TCP/IP、HTTP、SMTP、FTP)、符号化もしくはフォーマット(例えば、HTML、XML、JSON)、及び/又は保護方式(例えば、VPN、セキュアHTTP、SSL)を使用して、ネットワークインターフェースを介して搬送され得る。
【0043】
本明細書で論じられる技術は、サーバ、データベース、ソフトウェアアプリケーション、及び他のコンピュータベースシステム、ならびにとられるアクション及びそのようなシステムとの間で送信される情報を参照する。コンピュータベースシステムの固有のフレキシビリティは構成要素同士の間のタスク及び機能性の多種多様な考えられる構成、組合せ、及び分割を可能にすることを当業者は認識されよう。例えば、本明細書で論じられるサーバプロセスは、単一のサーバ又は組み合わせて動作する複数のサーバを使用して実装され得る。データベース及びアプリケーションは、単一のシステム上で実装されてよく、又は複数のシステムにわたって分散されてもよい。分散型構成要素は、連続的に又は並行して動作し得る。
【0044】
加えて、本明細書で論じられるシステム及び方法がユーザに関する個人情報にアクセスし分析する、又はロケーション情報などの個人情報を使用する状況では、プログラム又は特徴がその情報を収集するかどうかを制御する、及びシステム又は他のアプリケーションからのコンテンツを受信するかどうか及び/又はどのように受信するかを制御するための機会がユーザに提供され得る。何の情報が収集されることになり、その情報がどのように使用されるかについての有意味な通知がユーザに提供されるまで、そのような情報又はデータは何も収集又は使用されない。任意の時点でユーザによって無効化又は修正され得る合意をユーザが提供しない限り、情報は収集又は使用されない。したがって、ユーザは、アプリケーション又はシステムによってユーザに関する情報がどのように収集され使用されるかについて制御し得る。加えて、一定の情報又はデータは、個人的に識別可能な情報が除去されるように、それが記憶又は使用される前に、1つ又は複数の方法で扱われ得る。例えば、ユーザの識別情報は、そのユーザに関する何の個人的に識別可能な情報も決定することができないように、扱われ得る。
【0045】
例示的なゲームインターフェース
図3は、プレーヤ及び仮想世界210の間のインターフェースの部分としてクライアント120のディスプレイ上に提示され得るゲームインターフェース300の一実施形態を描く。ゲームインターフェース300は、仮想世界210、ならびに仮想世界210内のプレーヤ位置222、及び仮想要素230、仮想アイテム232、ならびに仮想エネルギー250のロケーションなど、ゲームの様々な他の態様を表示するために使用され得るディスプレイウィンドウ310を含む。ユーザインターフェース300はまた、ゲームデータ情報、ゲーム通信、プレーヤ情報、クライアントロケーション検証命令、及びゲームに関連付けられた他の情報など、他の情報を表示することもできる。例えば、ユーザインターフェースは、プレーヤ名、経験レベル、及び他の情報など、プレーヤ情報315を表示し得る。ユーザインターフェース300は、様々なゲーム設定及びゲームに関連付けられた他の情報にアクセスするためのメニュー320を含み得る。ユーザインターフェース300は、ゲームシステム及びプレーヤの間の、又は並行現実ゲームの1人又は複数のプレーヤ同士の間の通信を可能にする通信インターフェース330を含んでもよい。
【0046】
本開示の態様によれば、プレーヤは、現実世界内でクライアントデバイス120を単に携帯して動き回ることによって並行現実ゲームと対話し得る。例えば、プレーヤは、スマートフォン上で並行現実ゲームに関連付けられたアプリケーションに単にアクセスし、そのスマートフォンをもって現実世界内を動き回ることによって、ゲームをプレイし得る。この点で、ロケーションベースゲームをプレイするために、プレーヤはディスプレイスクリーン上の仮想世界の視覚的表現を連続的に見る必要はない。結果として、ユーザインターフェース300は、ユーザがゲームと対話することを可能にする、複数の非視覚的要素を含み得る。例えば、ゲームインターフェースは、プレーヤがゲーム内で仮想要素又は対象物に近づいているとき又は並行現実ゲーム内で重要なイベントが発生するとき、プレーヤに可聴通知を提供し得る。プレーヤは、オーディオ制御340を用いてこれらの可聴通知を制御し得る。仮想要素又はイベントのタイプに応じて、異なるタイプの可聴通知がユーザに提供されてよい。可聴通知は、プレーヤの仮想要素又は仮想対象物までの近接性に応じて、周波数又は音量を増大又は低減し得る。振動通知又は他の適切な通知又は信号など、他の非視覚的通知及び信号がユーザに提供されてもよい。
【0047】
本明細書で提供される開示を使用する当業者は、本開示に照らして、多数のゲームインターフェース構成及び基礎となる機能性が明らかになることを諒解されよう。本開示は、任意の1つの特定の構成に限定されることを意図しない。
【0048】
深度予測モデルアーキテクチャ
図4Aは、1つ又は複数の実施形態による、深度予測モデル400の例示的なアーキテクチャを例示するブロック図である。深度予測モデル400は、画像深度予測においてウェーブレット分解を活用する。示された実施形態において、深度予測モデル400は、複数の符号化層、粗深度予測層、複数の復号層、及び複数のIDWTを備える。例示のために、符号化層の数及び復号層の数は両方とも2つに設定されている;しかしながら、説明される原理は、追加の符号化層及び追加の復号層に提供され得る。
【0049】
符号化層は、画像405を入力し、低減された解像度で特徴マップを出力するように構成される。各符号化層は、何らかの因数で、例えば、2分の1に、4分の1に、8分の1に、16分の1に、32分の1になど、入力画像の解像度を低減し得る。符号化層は、他の符号化層とは異なる因数で解像度を低減し得る。例えば、第1の符号化層(必ずしも順番が最初とは限らない)は、第1の因数に従って解像度を低減させてよく、第2の符号化層(必ずしも順番が2番目とは限らない)は第1の因数とは異なる第2の因数に従って解像度を低減させてよい。符号化層は、いくつかの圧縮技法のうちのいずれか1つによって解像度を低減し得る。符号化層は、解像度を低減するために、プーリング層などの機械学習技法を活用してもよい。例えば、符号化層の数は、1から100の範囲から選択されてよい。
【0050】
粗深度予測層420は、粗特徴マップ416を入力し、粗深度マップ422を予測する。粗深度マップ422は、粗特徴マップ416と同じ解像度であってよい。粗深度予測層420は、例えば、教師あり機械学習アルゴリズムを通して、別個にトレーニングされてよい。例えば、粗深度予測層は、グラウンドトゥルース深度マップを有する複数のトレーニング画像を使用してトレーニングされる。
【0051】
復号層は、特徴マップを入力し、スパースウェーブレット係数を予測するように構成される。各復号層は、入力された特徴マップに基づいて、スパースウェーブレット係数及びより高い解像度の特徴マップを予測するように構成される。スパースウェーブレット係数は、粗深度マップ422の解像度を最終深度マップ462に増大するために、粗深度マップと共に利用される。DWTは、ウェーブレット関数に従って、入力信号、例えば画像をスパースウェーブレット係数信号に分解する。ウェーブレット関数は、Haarウェーブレット、Daubechiesウェーブレット、LeGall-Tabatai5/3ウェーブレット、などを含む。ウェーブレット関数のパラメータは、信号内の異なるレベルの周波数をターゲットにするように調整され得る。スパースウェーブレット係数は、入力信号の周波数分解を表す。1つ又は複数の例では、Haarウェーブレット関数は、入力信号を、より低い次元の入力信号であり得る低周波数信号、及び例えば、オクルージョン境界、対象物輪郭などをキャプチャし得る、1つ又は複数の高周波数信号に分解する。復号層は、スパースロケーションにおいて計算を実施し、必要とされる総計算量を最小化する。復号層は、何らかの因数で、例えば、2倍に、4倍に、8倍に、16倍に、32倍になど、解像度を増大することを目指し得る。1つ又は複数の実施形態において、復号層は、他の復号層とは異なる因数により解像度を増大し得る。
【0052】
逆離散ウェーブレット変換(IDWT)は、深度マップ及びスパースウェーブレット係数を入力し、より高い解像度の深度マップを出力するように構成される。IDWTは、離散ウェーブレット変換(DWT)の逆である決定性関数である。DWTの逆として、IDWTは、スパースウェーブレット係数信号を元の信号に組み合わせる。一実施形態によれば、HaarウェーブレットのIDWTは、3つの高周波数構成要素をすべて初期解像度で低周波数深度マップと組み合わせて、初期解像度よりも高いターゲット解像の深度マップにする。
【0053】
各復号層は、予測された深度マップの解像度を増大するために、IDWTと対にされてよい。述べたように、IDWTは、深度マップ及びスパースウェーブレット係数を入力して、より高い解像度の深度マップを出力する。復号層は、深度マップをアップサンプリングするためにIDWTのためのスパースウェーブレット係数を予測することを目指す。追加の復号層は、スパースウェーブレット係数をより高い解像度で反復的に予測し得、追加のIDWTは、深度マップの解像度を画像405の元の解像度に反復的にスケールアップし得る。
【0054】
図4Aに示される例によれば、各々が解像度を2分の1に低減する、2つの符号化層が存在する。第1の符号化層410は、中間特徴マップ412と定義される半解像度特徴マップ(画像405の1/2解像度)を生成するために、入力画像405の解像度を半分にする。第2の符号化層414は、粗特徴マップ416として識別される1/4解像度特徴マップ(画像405の1/4の解像度)を生成するために、半解像度特徴マップを半分にする。最終符号化層によって生成された画像は、粗特徴マップ416と定義される。粗特徴マップ416は、低解像度であるが、画像405の高次元表現である。粗深度予測層420は、粗特徴マップ416を入力し、粗深度マップ422(画像405の1/4解像度)を予測する。
【0055】
第1の復号層430は、粗特徴マップ416に基づいて、中間特徴マップ432及びウェーブレット係数434を予測する。中間特徴マップ432(画像405の1/2解像度)は、入力された粗特徴マップ416の解像度の2倍である。図4Aに示されるように、中間深度マップ432(画像405の1/2解像度)は、中間特徴マップ412(画像405の1/2解像度)と同じ解像度のものである;両方とも画像405よりも低い解像度。画素すべてがオンのバイナリマスクは第1の復号層430に適用され、完全に密なウェーブレット係数434をもたらし得る。バイナリマスクの生成は、図4Bにおいてさらに論じられる。IDWT440は、(例えば、粗特徴マップ422の解像度の2倍、及び画像405の解像度の1/2である)中間深度マップ442を決定するために、粗深度マップ422及びウェーブレット係数434を入力する。
【0056】
第2の復号層450は、中間特徴マップ412及び中間特徴マップ432の連結に基づいて、特徴マップ452及びスパースウェーブレット係数454を予測する。特徴マップ452は、入力された中間特徴マップ412及び432(画像405と同じ解像度)の解像度の2倍である。オンであるスパース画素を有するバイナリマスクは、第2の復号層450に適用され得る。バイナリマスクは、図4Bにおいてさらに説明される、ウェーブレット係数434に基づいて生成される。IDWT460は、(例えば、中間深度マップ442の解像度の2倍、及び画像405と同じ解像度である)最終深度マップ462を決定するために、中間深度マップ442及びスパースウェーブレット係数454を入力する。他の実施形態において、第2の復号層450は、中間特徴マップ412だけを、又は中間特徴マップ432だけを入力し得る。最終復号層及びIDWTは、画像405と同じ解像度で最終深度マップ462を出力する。
【0057】
深度予測モデル400の追加実施形態は、ウェーブレット分解を使用して2つ以上の画像の深度を予測することを含む。画像は、既知の相対的姿勢で2つのカメラによって同時にキャプチャされた立体対、又は異なる時点で同じカメラによってキャプチャされた2つ以上の画像を含む時間的画像シーケンスであってよい。符号化層は、入力画像を低解像度特徴マップに符号化するために同様に動作し得る。加えて、2つ以上の画像からの特徴マップは、立体深度推定アルゴリズムにおいて使用されるコストボリューム(cost volume)を計算するために使用され得る。コストボリュームは、符号化層によって特徴マップとして符号化され得る。復号層は、粗深度マップを予測するために、低解像度マップ又は粗特徴マップ及びコストボリュームと共に採用され得る。復号層は、粗深度マップの解像度をターゲット解像度、例えば、入力画像の元の解像度に改良又は増大するために、異なる解像度でスパースウェーブレット係数を反復的に予測する。
【0058】
図4Bは、1つ又は複数の実施形態による、復号層がスパースウェーブレット係数を予測するためのバイナリマスクを生成する例を例示する。深度予測モデル400は、入力画像470を入力する。図4Aで説明されたように、深度予測モデル400は、入力画像を特徴マップにダウンサンプリングするために1つ又は複数の符号化層を適用する。復号層は、スパースウェーブレット係数を予測するために特徴マップを入力する。深度予測モデル400は、スパースウェーブレット係数を予測する際に使用するためのバイナリマスクを生成する。深度予測モデル400は、予測されたスパースウェーブレット係数に基づいて、いくつかのバイナリマスクを生成する。バイナリマスクは、スパースウェーブレット係数を予測するとき、復号層による計算を低減する。
【0059】
マスク生成器490は、バイナリマスクを生成する。一実施形態において、マスク生成器490は、すべての画素がオンの1/4解像度でバイナリマスク492を初期化する。深度予測モデル400は、バイナリマスク492を粗深度予測層420及び第1の復号層430に適用する。図4Aで述べられたように、粗深度予測層420は粗深度マップ422を出力し、第1の復号層430はウェーブレット係数434及び中間特徴マップ432を出力する。ウェーブレット係数434は、バイナリマスク492がすべてオンであると仮定すると、完全に密であり得る。
【0060】
後続の復号層のための後続のバイナリマスクを生成するために、マスク生成器490は、第2のアップサンプリングされた解像度でスパースウェーブレット係数を予測する後続の復号層のためのバイナリマスクを生成するために、第1のより低い解像度でスパースウェーブレット係数を入力する。マスク生成器490は、バイナリマスク494を作成するために、ウェーブレット係数434に対してしきい値処理及びアップサンプリングを実施する。しきい値処理は、バイナリマスクの画素がオンであるか又はオフであるかを決定するために、ウェーブレット値しきい値を利用する。バイナリマスク内でオンである画素は、その画素を復号計算から保留し、バイナリマスク内でオフである画素は、その画素を復号計算から除去する。ウェーブレット値しきい値は、アグリゲートにおいてウェーブレット係数のセットに適用され得る。例えば、マスク生成器490は、画素単位ベースで少なくとも1つのウェーブレット係数がウェーブレット値しきい値を超える値を有するかどうかを評価し得る。別の例では、マスク生成器490は、ウェーブレット係数の平均値を計算し、画素単位ベースでその平均値がウェーブレット値しきい値を上回るかどうかを評価し得る。マスク生成器490は、1/2解像度になるようにバイナリマスク494をアップサンプリングする。
【0061】
深度予測モデル400は、第2の復号層450が、入力された特徴マップからのみ、バイナリマスク494内でオンである画素に対するスパースウェーブレット係数454を予測するように、バイナリマスク494を第2の復号層450に適用する。追加の復号層を用いた実施形態において、マスク生成器490は、追加の復号層のためのバイナリマスクを生成するために、より低い解像度からのスパースウェーブレット係数を入力することによって、追加のバイナリマスクを作成する。
【0062】
特に、各復号段階において、バイナリマスクは、エッジ境界においてウェーブレット予測を改良しながら、冗長計算を最小化するためにますます少ない画素を包含する。ウェーブレット値しきい値は、計算コスト及び精度をトレードオフするために調整可能である。最低ウェーブレット値しきい値は、計算的節約における増分利益のために、最小量の精度を犠牲にする。最高ウェーブレット値しきい値は、著しい計算的節約のために最大精度を犠牲にする。
【0063】
例示的な方法
図5は、1つ又は複数の実施形態による、深度予測モデルを適用するプロセス500を説明するフローチャートである。プロセス500は、他のプロセス、例えば、深度予測モデルのトレーニング、及び/又は深度マップを予測するためにトレーニングされた深度予測モデルを利用することに組み込まれてよい。プロセス500のステップは、深度予測モデルによって実施されるものとして説明される。プロセス500のステップを実行するために他のコンピュータプロセッサが使用され得ることを当業者は理解されよう。
【0064】
深度予測モデルは、入力画像よりも低い解像度の1つ又は複数の特徴マップを生成するために、複数の符号化層を適用する。各符号化層は、第1の解像度で画像又は特徴マップを入力し、第1の解像度よりも低い第2の解像度で第2の特徴マップを出力する。符号化層は、因数で、例えば、2分の1に、4分の1に、8分の1に、16分の1に、32分の1になど、解像度を低減し得る。各符号化層は、固定された決定性ダウンサンプリング関数を利用し得る。他の実施形態において、各符号化層はトレーニングされ得る。
【0065】
深度予測モデルは、粗特徴マップから粗深度マップを予測するために、粗深度予測層を適用する。符号化層によって出力された最低解像度特徴マップは、粗特徴マップと定義される。粗予測層は、粗特徴マップを入力し、粗深度マップを出力する。深度マップは、環境の対応する画像内の各画素における任意の対象物の深度を示す。粗深度マップは、1対1の画素相関が存在するように、粗特徴マップと同じ解像度のものであってよい。粗深度マップの各画素は、粗特徴マップと同じ画素ロケーションに位置する対象物の深度を示す。
【0066】
深度予測モデルは、スパースウェーブレット係数の1つ又は複数のセットを生成するために、複数の復号層を適用する。各復号層は、1つ又は複数の特徴マップを入力し、スパースウェーブレット係数の予測されるセットを出力する。いくつかの実施形態において、入力された特徴マップ及びスパースウェーブレット係数の予測されるセットは、同じ解像度のものである。例えば、復号層は、元の画像解像度の1/2倍で特徴マップを入力し、元の画像解像度の1/2倍でスパースウェーブレット係数の予測されるセットを出力する。スパースウェーブレット係数の予測されるセットは、1つ又は複数のスパースウェーブレット係数を備え得る。各スパースウェーブレット係数は、そのスパースウェーブレット係数による値のマップである。各復号層はまた、入力された特徴マップから予測される、アップサンプリングされた特徴マップを出力し得る。各復号層はまた、符号化層によって生成された特徴マップ及び前の復号層によって予測される特徴マップを連結し入力し得る。いくつかの実施形態において、深度予測モデルは、スパースウェーブレット係数を予測するために、バイナリマスクを復号層に適用する。深度予測モデルは、(例えば、先行復号層によって予測される)より低い解像度でウェーブレット係数をしきい値処理し、バイナリマスクをより高い解像度にアップサンプリングすることによって、バイナリマスクを生成し得る。粗深度予測層及び第1の復号層に適用される第1のバイナリマスクは、すべてオンになるように初期化される。
【0067】
深度予測モデルは、粗深度マップを最終深度マップにアップサンプリングするために複数の逆離散ウェーブレット変換(IDWT)を適用する。IDWTは、第1の解像度で深度マップ及び予測されたスパースウェーブレット係数を入力し、第1の解像度よりも高い第2の解像度で、アップサンプリングされた深度マップを出力する。IDWTは、決定性関数であってよい。復号層と順にIDWTの作業。最終IDWTは、入力されたトレーニング画像と同じ解像度で最終深度マップを出力する。
【0068】
図6は、1つ又は複数の実施形態による、深度予測モデルをトレーニングするプロセス600を説明するフローチャートである。深度予測トレーニングシステム170は、プロセス600の一部又は全部のステップを実施し得る。他の実施形態において、他のコンピュータシステムは、例えば、深度予測トレーニングシステム170から独立して、又は深度予測トレーニングシステム170と共に、プロセス600の一部又は全部のステップを実施し得る。
【0069】
深度予測トレーニングシステム170は、深度予測モデルをトレーニングする際に使用するための複数のトレーニング画像を受信する610。(ステップ630~650でさらに説明される)1つ又は複数の実施形態において、深度予測トレーニングシステム170は、画像対同士の間の教師なし投影方法で深度予測モデルをトレーニングする。ある画像から別の画像への投影は、投影されている画像の深度マップに基づく。画像対は、立体視画像対又は疑似立体視画像対であってよい。立体視画像対は、2つのカメラによって同時に撮影された2つの画像の対である。2つのカメラ同士の間の姿勢は、固定であってよく、深度予測トレーニングシステム170によって知られていてよい。他の実施形態において、姿勢は、例えば、位置センサー、加速度計、ジャイロスコープ、姿勢推定モデル、他の姿勢推定技法などを使用して推定される。姿勢推定モデル形成は、その全体が参照により組み込まれている、2017年9月12に出願した特許文献1においてさらに説明される。疑似立体視画像対は、単一のカメラによってキャプチャされたビデオから撮影された2つの画像の対である。2つの画像同士の間の姿勢は、概して、未知であり、例えば、位置センサー、加速度計、ジャイロスコープ、姿勢推定モデル、他の姿勢推定技法などを使用して決定され得る。
【0070】
(ステップ660~670でさらに説明される)他の実施形態において、深度予測トレーニングシステム170は、教師あり方法で深度予測モデルをトレーニングする。教師ありトレーニングに従って、各画像は、対応するグラウンドトゥルース深度マップを有する。深度マップは、物理的センサー、例えば、LIDARのような検出及び測距センサーを用いて検出され得る。
【0071】
深度予測トレーニングシステム170は、深度予測モデルをトレーニング画像に適用して、複数の深度マップを予測する620。深度予測トレーニングシステム170は、トレーニング画像のための深度マップを決定するためにプロセス500を実施する。
【0072】
この時点で、深度予測トレーニングシステム170は、画像対を使用して、教師なしトレーニングを介して深度予測モデルをトレーニングし得る。深度予測トレーニングシステム170は、各画像対に対して、一方の画像を他方の画像上に投影する630。深度予測トレーニングシステム170は、深度予測モデルを介して、第1の画像及び第2の画像の間の姿勢、ならびに第1の画像に対して予測された深度マップに部分的に基づいて、第1の画像から第2の画像上に投影する。真の立体視画像対では、深度予測トレーニングシステム170は、左画像から右画像上に投影する、及び/又はその逆である。疑似立体視画像対では、深度予測トレーニングシステム170は、やはり2つの画像同士の間の推定された姿勢、及び深度予測モデルによって予測される深度マップに基づいて、一方の画像からもう一方の画像上に投影する、及び/又はその逆である。
【0073】
深度予測トレーニングシステム170は、各画像対に対して、測光再構成誤差(photometric reconstruction error)を計算する640。概して、投影は、ターゲット画像に対して比較される。深度予測トレーニングシステム170が画素単位誤差を特に最小化するために深度予測モデルをトレーニングすることができるように、誤差は画素単位ベースで計算され得る。
【0074】
深度予測トレーニングシステム170は、深度予測モデルをトレーニングして、測光再構成誤差を最小化する650。概して、深度予測モデルをトレーニングするために、深度予測トレーニングシステム170は、誤差を最小化するために深度予測モデルのパラメータを調整するために、深度予測モデルを通して誤差を伝搬する。深度予測トレーニングシステム170は、様々なエポックに対するバッチトレーニングを利用し得る。トレーニングは、バッチ同士の間の相互検証を含んでもよい。トレーニングは、一定の基準が達成されたときに完了する。例示的な基準は、一定のしきい値精度、精測、他の統計的測度などを達成することを含む。
【0075】
教師なしトレーニングに対する代替案では、深度予測トレーニングシステム170は、グラウンドトゥルース深度マップを使用して教師ありトレーニングを実施し得る。深度予測トレーニングシステム170は、各トレーニング画像に対して、予測される深度マップ及びグラウンドトゥルース深度マップの間の誤差を計算する660。誤差は、画素単位の差として計算され得る。
【0076】
深度予測トレーニングシステム170は、深度予測モデルをトレーニングして、誤差を最小化する670。深度予測トレーニングシステム170はまた、誤差を最小化するために深度予測モデルのパラメータを調整するために、深度予測モデルを通して誤差を伝搬する。深度予測トレーニングシステム170は、様々なエポックに対するバッチトレーニングを利用し得る。トレーニングは、バッチ同士の間の相互検証を含んでもよい。トレーニングは、一定の基準が達成されたときに完了する。
【0077】
1つ又は複数の実施形態において、深度予測トレーニングシステム170は、深度予測モデルをエンドツーエンドでトレーニングする。エンドツーエンドトレーニング方式では、深度予測トレーニングシステム170は、誤差を最小化するために、深度予測モデルの様々な層(例えば、符号化層、復号層、粗深度予測層、又はこれらの何らかの組合せ)のすべてのパラメータを伝搬し調整する。
【0078】
他の実施形態において、深度予測トレーニングシステム170は、深度予測モデルの様々な層のトレーニングを分離し得る。例えば、深度予測トレーニングシステム170は、第1の段階において、1つの符号化層、粗予測層、及び1つの復号層を備えた深度予測モデルの第1の反復をトレーニングし得る。第1の符号化層及び第1の復号層の十分なトレーニング時に、深度予測トレーニングシステム170は、(例えば、図4Aで想定されたように)第2の符号化層及び第2の復号層を含めるために、深度予測モデルのアーキテクチャを拡張し得る。深度予測トレーニングシステム170は、第1の符号化層及び第1の復号層のパラメータを固定し得る。次いで、トレーニングの第2の段階において、深度予測トレーニングシステム170は、第2の符号化層及び第2の復号層を(及び随意に、粗予測層も)トレーニングし得る。深度予測トレーニングシステム170は、アーキテクチャを拡張すること、前にトレーニングされた層を固定すること、次いでより深い層上でのトレーニングに集中することの追加の反復を実施し得る。
【0079】
他の実施形態において、深度予測トレーニングシステム170はまた、粗深度予測層を別個にトレーニングし得る。そのような実施形態において、深度予測トレーニングシステム170は、粗深度予測層をトレーニングすることに対処するためにトレーニングデータをキュレートし得る。例えば、深度予測トレーニングシステム170は、グラウンドトゥルース深度マップを有するトレーニング画像を利用し、トレーニング画像及びグラウンドトゥルース深度マップをダウンサンプリングし得る。ダウンサンプリングされたトレーニング画像及びダウンサンプリングされたグラウンドトゥルース深度マップを用いて、深度予測トレーニングシステム170は、教師あり方法で粗予測層をトレーニングし得る。
【0080】
図7は、1つ又は複数の実施形態による、深度予測モデルによって予測される深度マップを利用するプロセス700を説明するフローチャートである。プロセス700は、入力画像の各画素で深度を説明する深度マップをもたらす。図7のステップのうちのいくつかは、クライアントデバイスの観点から例示される。しかしながら、ステップのうちの一部又は全部は、クライアントデバイスの他のエンティティ及び/又は特定の構成要素によって実施され得る。加えて、いくつかの実施形態は、ステップを並列で実施すること、ステップを異なる順序で実施すること、又は異なるステップを実施することができる。他の構成要素は、仮想コンテンツ生成又は環境内のエージェントのナビゲーション制御のために、予測される深度マップを利用し得る。
【0081】
クライアントデバイスは、クライアントデバイス上のカメラ、例えば、カメラアセンブリ125によってキャプチャされた画像を受信する710。画像は、カラー画像又はモノクロームであってよい。カメラは、既知のカメラ固有のパラメータ、例えば、焦点距離、センサーサイズ、主点などを有し得る。
【0082】
クライアントデバイスは、深度予測モデルを画像に適用して、画像に基づいて深度マップを生成する720。深度予測モデルの適用は、図5で説明されたプロセス500の実施形態である。深度予測モデルは、図4Aで説明されたようなアーキテクチャを有する、図6で説明されたプロセス600に従ってトレーニングされ得る。深度マップは、キャプチャされた画像と同じ解像度のものである。深度マップは、画像内のピクセルロケーションにおける対象物の深度に対応する各画素に対する深度値を有する。
【0083】
1つ又は複数の実施形態において、クライアントデバイスは、深度マップに基づいて仮想要素を生成する730。クライアントデバイスは、拡張現実ゲームの部分としてのクライアントデバイス110の実施形態であり得る。クライアントデバイスは、拡張現実ゲームの部分としてカメラによってキャプチャされているライブフィードをストリーミングするように構成された電子ディスプレイを含み得る。クライアントデバイスは、カメラによってキャプチャされたライブフィード上にオーバーレイされた仮想要素を組み込み、それによって、拡張現実コンテンツを表示する。クライアントデバイスは、深度予測モデルによって予測される深度マップに基づいて、1つ又は複数の仮想要素を生成する。1つの仮想要素は、プレーヤによってアクセスされ得るゲーム内アイテムであってよい。クライアントデバイスは、深度マップに基づいて、仮想要素の視覚的特性を適合させることができる。例えば、仮想対象物のサイズは、環境内の異なる深度における対象物の配置に基づいてスケーリングされる。別の例では、仮想要素は、深度マップによって知らされる環境を動き回ることができる仮想キャラクタであってよい。
【0084】
他の実施形態において、クライアントデバイスは、環境内でエージェントをナビゲートするための深度マップに基づいて、ナビゲーション命令を生成し得る750。そのような実施形態において、クライアントデバイスは、自律エージェント上のコンピューティングシステムであってよい。ナビゲーション命令は、予測される深度マップに部分的に基づいてよい。ナビゲーション命令を生成する際に他のデータ、例えば、対象物追跡、対象物検出及び分類などが使用されてもよい。
【0085】
クライアントデバイス760は、ナビゲーション命令に基づいて、環境内でエージェントをナビゲートすること760を進めることができる。ナビゲーション命令は、エージェントをナビゲートするための命令の複数のセットを含み得る。例えば、命令の1つのセットは、加速度を制御することであってよく、別のセットは、制動を制御することであってよく、別のセットは、ステアリングを制御することであってよい、などである。
【0086】
例示的なコンピューティングシステム
図8は、一実施形態による、コンピューティングデバイスの例示的なアーキテクチャである。図8は、位置実施形態による、本明細書において説明される1つ又は複数のエンティティの一部又は全部として使用されるコンピュータの物理的構成要素を例示するハイレベルブロック図であるが、コンピュータは、図8において提供される構成要素の追加の構成要素、より少ない構成要素、又はそのバリエーションを有してもよい。図8は、コンピュータ800を描くが、この図は、本明細書において説明される実装形態の構造図よりも、コンピュータシステム内に存在し得る様々な特徴の機能的説明として意図される。実際には、当業者によって認識されるように、別個に示されるアイテムは、組み合わされてよく、いくつかのアイテムは分離されてもよい。
【0087】
図8に例示されるのは、チップセット804に結合された、少なくとも1つのプロセッサ802である。やはりチップセット804に結合されるのは、メモリ806、記憶デバイス808、キーボード810、グラフィックスアダプタ812、ポインティングデバイス814、及びネットワークアダプタ816である。ディスプレイ818は、グラフィックスアダプタ812に結合される。一実施形態において、チップセット804の機能性は、メモリコントローラハブ820及びI/Oハブ822によって提供される。別の実施形態において、メモリ806は、チップセット804の代わりに、プロセッサ802に直接結合される。いくつかの実施形態において、コンピュータ800は、これらの構成要素を相互接続するための1つ又は複数の通信バスを含む。1つ又は複数の通信バスは、システム構成要素同士の間の通信を相互接続し制御する回路(チップセットと呼ばれることがある)を随意に含む。
【0088】
記憶デバイス808は、ハードドライブ、コンパクトディスク読取り専用メモリ(CD-ROM)、DVD、又は固体メモリデバイスもしくは他の光記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置もしくは他の磁気記憶デバイス、磁気ディスク記憶デバイス、光ディスク記憶デバイス、フラッシュメモリデバイス、又は他の不揮発性固体記憶デバイスなど、任意の非一時的コンピュータ可読記憶媒体である。そのような記憶デバイス808は、永続メモリと呼ばれることもある。ポインティングデバイス814は、マウス、トラックボール、又は他のタイプのポインティングデバイスであってよく、データをコンピュータ800に入力するためにキーボード810と組み合わせて使用される。グラフィックスアダプタ812は、画像及び他の情報をディスプレイ818上に表示する。ネットワークアダプタ816は、コンピュータ800をローカルエリアネットワーク又は広域ネットワークに結合する。
【0089】
メモリ806は、プロセッサ802によって使用される命令及びデータを保持する。メモリ806は、非永続メモリであってよく、その例は、DRAM、SRAM、DDR RAM、ROM、EEPROM、フラッシュメモリなど、高速ランダムアクセスメモリを含む。
【0090】
当技術分野で知られているように、コンピュータ800は、図8に示されたものとは異なる及び/又は他の構成要素を有し得る。加えて、コンピュータ800は、いくつかの例示された構成要素に欠くことがある。一実施形態において、サーバとして働くコンピュータ800は、キーボード810、ポインティングデバイス814、グラフィックスアダプタ812、及び/又はディスプレイ818に欠くことがある。その上、記憶デバイス808は、ローカルであってよい、及び/又は(ストレージエリアネットワーク(SAN)内で具現されるような)コンピュータ800からリモートであってよい。
【0091】
当技術分野で知られているように、コンピュータ800は、本明細書において説明される機能性を提供するためのコンピュータプログラムモジュールを実行するように適応される。本明細書で使用される「モジュール」という用語は、指定された機能性を提供するために利用されるコンピュータプログラム論理を指す。したがって、モジュールは、ハードウェア、ファームウェア、及び/又はソフトウェアで実装され得る。一実施形態において、プログラムモジュールは、記憶デバイス808上に記憶され、メモリ806内にロードされ、プロセッサ802によって実行される。
【0092】
追加の考慮事項
上記の説明のいくつかの部分は、アルゴリズムプロセス又はアルゴリズム動作の観点から実施形態を説明する。これらのアリゴリズムの説明及び表現は、データ処理分野の当業者によって、かれらの作品の要旨を他の当業者に効果的に伝えるために一般に使用される。これらの動作は、機能的に、計算的に、又は論理的に説明されるが、プロセッサ又は同等の電気回路、マイクロコードなどによる実行のための命令を備えたコンピュータプログラムによって実装されることが理解される。さらに、一般性を失わずに、機能的動作のこれらの配置をモジュールと呼ぶことが、時々好都合であることがやはり実証済みである。
【0093】
本明細書で使用される「一実施形態」又は「実施形態」のいずれの参照も、実施形態に関して説明された特定の要素、特徴、構造、又は特性が少なくとも1つの実施形態の中に含まれることを意味する。明細書の様々な場所での「一実施形態において」という句の出現は、すべて必ずしも同じ実施形態を指すとは限らない。
【0094】
いくつかの実施形態は、その派生物と共に「結合される」及び「接続される」と言う表現を使用して説明されることがある。これらの用語は、互いに対する同義語と意図されないことを理解されたい。例えば、いくつかの実施形態は、2つ以上の要素が互いと直接的に物理的に接触している又は電気的に接触していることを示すために「接続される」という用語を使用して説明されることがある。別の例では、いくつかの実施形態は、2つ以上の要素が直接的に物理的に接触している又は電気的に接触していることを示すために「結合される」という用語を使用して説明されることがある。「結合される」と言う用語は、しかしながら、2つ以上の要素が互いと直接的に接触していないが、依然として互いと協働するか又は対話することを意味することもある。これらの実施形態は本文脈において限定されない。
【0095】
本明細書で使用される「備える」、「備えている」、「含む」、「含んでいる」、「有する」、「有している」という用語、又はこれらの任意の他のバリエーションは、非排他的包含をカバーすることが意図される。例えば、要素のリストを備えるプロセス、方法、物品、又は装置は、必ずしもそれらの要素のみに限定されるとは限らず、明示的に列挙されない、又はそのようなプロセス、方法、物品、又は装置に固有でない他の要素を含み得る。さらに、別段に明記されていない限り、「又は(or)」は、排他的な「又は」ではなく、包含的な「又は」を指す。例えば、条件A又はBは、以下のうちのいずれか1つによって満たされる:Aは真である(又は存在する)及びBは偽である(又は存在しない)、Aは偽である(又は存在しない)及びBは真である(又は存在する)、ならびにAとBの両方は真である(又は存在する)。
【0096】
加えて、「ある(a)」又は「ある(an)」の使用は、実施形態の要素及び構成要素を説明するために採用される。これは、便宜上、開示の一般的な意味を与えるために行われるにすぎない。本明細書は、1つ又は少なくとも1つを含めるとして読まれるべきであり、そうでないことを意味することが明らかでない限り、単数形は複数形も含む。
【0097】
本開示を読めば、オンラインサービスプロバイダとのアカウントを検証するためのシステム及びプロセスのためのさらなる追加の代替的な構造上の及び機能的な設計が真正の事業に対応することを当業者は諒解されよう。したがって、特定の実施形態及び適用例が例示され説明されてきたが、説明された主題は、本明細書において開示される正確な構成及び構成要素に限定されず、当業者に明らかになる様々な変形、変更、及びバリエーションが、開示される方法及び装置の配置、動作、及び詳細において行われてよいことを理解されたい。保護の範囲は、以下の特許請求の範囲によってのみ限定されるものとする。
図1
図2
図3
図4A
図4B
図5
図6
図7
図8
【手続補正書】
【提出日】2024-01-30
【手続補正1】
【補正対象書類名】明細書
【補正対象項目名】0011
【補正方法】変更
【補正の内容】
【0011】
図1は、1つ又は複数の実施形態による、ネットワーク接続されたコンピューティング環境100を例示する。ネットワーク接続されたコンピューティング環境100は、現実世界と並行する地理を有する仮想世界内のプレーヤの対話を提供する。具体的には、現実世界内の地理的エリアは、仮想世界の対応するエリアに直接的にリンク又はマッピングされ得る。プレーヤは、現実世界内の様々な地理的ロケーションに移動することによって、仮想世界内を動き回ることができる。例えば、現実世界内のプレーヤの位置が追跡され、仮想世界内のプレーヤの位置を更新するために使用され得る。一般に、現実世界内のプレーヤの位置は、それを通してプレーヤが仮想世界と対話するクライアントデバイス110のロケーションを見出し、プレーヤが同じ(又はほぼ同じ)ロケーションにいることを仮定することによって決定される。例えば、様々な実施形態において、現実世界内のプレーヤのロケーションが仮想世界内の仮想要素の仮想ロケーションに対応する現実世界ロケーションのしきい値距離(例えば、10メートル、20メートルなど)内にある場合、プレーヤは仮想要素と対話し得る。便宜上、様々な実施形態は「プレーヤのロケーション」を参照しながら説明されるが、そのような参照はプレーヤのクライアントデバイス110のロケーションを指し得ることを当業者は諒解されよう。
【手続補正2】
【補正対象書類名】明細書
【補正対象項目名】0022
【補正方法】変更
【補正の内容】
【0022】
クライアントデバイス110は、ゲームサーバ120と通信して、ゲームサーバ120に物理的環境の知覚データを提供する。クライアントデバイス110は、クライアントデバイス110がある物理的環境内のシーンの2次元の画像データをキャプチャするカメラアセンブリ125を含む。図1に示される実施形態において、各クライアントデバイス110は、ゲームモジュール135及び測位モジュール140など、ソフトウェア構成要素を含む。クライアントデバイス110はまた、入力画像に関する深度を予測するための深度予測モジュール142を含む。クライアントデバイス110は、プレーヤから情報を受信するための及び/又はそこに情報を提供するための様々な他の入力/出力デバイスを含み得る。例示的な入力/出力デバイスは、ディスプレイスクリーン、タッチスクリーン、タッチパッド、データ入力キー、スピーカ、及び音声認識に適したマイクロフォンを含む。クライアントデバイス110は、限定はしないが、動きセンサー、加速度計、ジャイロスコープ、他の慣性測定ユニット(IMU)、気圧計、測位システム、温度計、光センサーなどを含めて、クライアントデバイス110からのデータを記録するための他の様々なセンサーを含んでもよい。クライアントデバイス110は、ネットワーク105上で通信を提供するためのネットワークインターフェースをさらに含んでよい。ネットワークインターフェースは、例えば、送信機、受信機、ポート、コントローラ、アンテナ、又は他の適切な構成要素を含めて、1つ又は複数のネットワークとインターフェースするための任意の適切な構成要素を含んでよい。
【手続補正3】
【補正対象書類名】明細書
【補正対象項目名】0024
【補正方法】変更
【補正の内容】
【0024】
ゲームモジュール135は、並行現実ゲームに参加するためのインターフェースをプレーヤに提供する。ゲームサーバ120は、ゲームのローカルバージョンをゲームサーバ120から離れたロケーションにおいてプレーヤに提供するために、クライアントデバイス110においてゲームモジュール135によって使用するためのゲームデータをネットワーク105上でクライアントデバイス110に送信する。ゲームサーバ120は、ネットワーク105上で通信を提供するためのネットワークインターフェースを含み得る。ネットワークインターフェースは、例えば、送信機、受信機、ポート、コントローラ、アンテナ、又は他の適切な構成要素を含めて、1つ又は複数のネットワークとインターフェースするための任意の適切な構成要素を含み得る。
【手続補正4】
【補正対象書類名】明細書
【補正対象項目名】0046
【補正方法】変更
【補正の内容】
【0046】
本開示の態様によれば、プレーヤは、現実世界内でクライアントデバイス110を単に携帯して動き回ることによって並行現実ゲームと対話し得る。例えば、プレーヤは、スマートフォン上で並行現実ゲームに関連付けられたアプリケーションに単にアクセスし、そのスマートフォンをもって現実世界内を動き回ることによって、ゲームをプレイし得る。この点で、ロケーションベースゲームをプレイするために、プレーヤはディスプレイスクリーン上の仮想世界の視覚的表現を連続的に見る必要はない。結果として、ユーザインターフェース300は、ユーザがゲームと対話することを可能にする、複数の非視覚的要素を含み得る。例えば、ゲームインターフェースは、プレーヤがゲーム内で仮想要素又は対象物に近づいているとき又は並行現実ゲーム内で重要なイベントが発生するとき、プレーヤに可聴通知を提供し得る。プレーヤは、オーディオ制御340を用いてこれらの可聴通知を制御し得る。仮想要素又はイベントのタイプに応じて、異なるタイプの可聴通知がユーザに提供されてよい。可聴通知は、プレーヤの仮想要素又は仮想対象物までの近接性に応じて、周波数又は音量を増大又は低減し得る。振動通知又は他の適切な通知又は信号など、他の非視覚的通知及び信号がユーザに提供されてもよい。
【手続補正5】
【補正対象書類名】明細書
【補正対象項目名】0085
【補正方法】変更
【補正の内容】
【0085】
クライアントデバイス110は、ナビゲーション命令に基づいて、環境内でエージェントをナビゲートすること760を進めることができる。ナビゲーション命令は、エージェントをナビゲートするための命令の複数のセットを含み得る。例えば、命令の1つのセットは、加速度を制御することであってよく、別のセットは、制動を制御することであってよく、別のセットは、ステアリングを制御することであってよい、などである。
【国際調査報告】